1 Ostatnio edytowany przez _tzok_ (2018-01-01 16:41:37)

Zastanawiałem się nad możliwością instalacji sprzętowego przełącznika 4MB/2MB w moim Atari STe. RAM jest na "krótkich" SIMMach o pojemności 1MB każdy. SIMMy są 8-bitowe (w zasadzie to 9-bitowe), więc muszą być parami. Znam rozwiązanie z przecięciem linii A19 przy modułach i podciąganiem jej do masy lub Vcc po stronie modułów. Problem w tym, że trzeba ciąć ścieżki na płycie.
Patrząc na schematy wymyśliłem inne rozwiązanie i zastanawiam się, czy może już ktoś go testował. Mianowicie, moim zdaniem wystarczyłoby "podnieść" rezystor R446 od strony MCU (t.j. linię XRAS1) i wstawić tam przełącznik, dołączający albo Vcc (co blokowało by tę linię) albo pin ~RAS1 (czyli tak jak było w oryginale) do wolnego końca tego rezystora. Podciągnięcie linii XRAS1 do Vcc zablokowało by możliwość adresowania co 2-giego (czyli prawidłowo, bo w konfiguracji 2MB jest obsadzony właśnie co 2-gi moduł) modułu SIMM. Pozostaje jedynie kwestia szczegółów sposobu wykrywania ilości dostępnej pamięci przez ST.

Dlaczego przełącznik 2MB/4MB, a nie 1MB/4MB... bo tak łatwiej, a po drugie problematyczne jest tylko 4MB.

Moja kolekcja: Atari 1040STe (4MB), Atari 1040STfm (4MB, BLiTTER, AT-ONCE+), Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Atari 600XL (64kB), Sinclair ZX SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB), Commodore A600 (2MB+4MB, HDD CF 4GB), Commodore C64C.

2

_tzok_ napisał/a:

a po drugie problematyczne jest tylko 4MB.

z jakiego powodu?

Kontakt: pin@usdk.pl

3

No właśnie: też się dołączam do pytania i prosił bym w miarę możliwości o odpowiedź szerszą: tzn. interesuje mnie jakie konfiguracje pamięci robią jaki problem.

Pytam dlatego, że mam STE z 4MB i nie natknąłem się na żaden problem z tym związany.

Natomiast mam też STFM rozszerzony do 2MB właśnie w taki sposób, że te 2MB dostępne jest w całości w banku 0, a bank 1 jest pusty. No i na tym STFM trafiłem jakąś starą grę, która wywalała bomby i pamiętam, że sprawdzałem wtedy, że oznaczały one jakiś problem z adresowaniem i logicznie wynikało z tego, że kłopot jest w tym, że gra próbuje adresować bank 1, bo widziała, że jest więcej niż 512kB, więc jakby zakładała obecność dalszej pamięci w banku 1. Niestety z powodu, że nie było to dla mnie ważne, nie pamiętam co to była za gra...

Robiłem też testy na STE i wkładałem w różnych konfiguracjach pamięci SIMM 1MB oraz 256kB. Mieszałem je ze sobą, zostawiałem puste sloty itp. Przetestowałem wszystkie konfiguracje i wyciągnąłem wnioski, że żeby wszystko śmigało, to trzeba mieć obsadzone wszystkie 4 sloty i to równymi pamięciami co do wielkości. Jeżeli wsadziło się nierówne wielkości w bank 0 i bank 1 (oczywiście parami), robiąc np. konfigurację 2.5MB, to niektóre programy diagnostyczne rozpoznawały i testowały tą pamięć poprawnie jako 2.5MB, ale niektóre pokazywały, że jest 4MB, po czym oczywiście szły w maliny na testach tej pamięci, której nie było. Dokładnie ten sam efekt miałem przy obsadzonym tylko jednym banku 2MB. Dlatego myślę, że sposób rozpoznawania ilości RAM przez różne gry i programy jest czasem dobry, a czasem "patenciarski" i żeby każdy z tych sposobów zadziałał, to trzeba mieć równo w bankach. Pewnie stosowano uproszczenia w grach i przykładowo ktoś odczytywał z TOSu informację ile jest ramu tylko po to, żeby stwierdzić czy jest 520ST czy 1040ST. Jak więcej niż 512kB, to znaczy że 1040ST i jazda z adresowaniem pamięci, której nie ma, bo np. jest 2MB. Ale to tak jak mówię moje domysły na podstawie kilku eksperymentów.

4

Pytam po prostu dlatego, bo nie stwierdziłem żadnych problemów związanych z obecnością 4MB ram. Jedyny skutek, to działają programy wymagające 4MB, lub odpalają z HDD programy, którym przy 1MB ram przeszkadzało wysokie MemLo (podniesione przez driver do hdd np.)

Kontakt: pin@usdk.pl

Co do konfiguracji 2.5MB, to system wykrywa ją jako 4MB, i tyle mówi programom które korzystają z systemu. W momencie w którym system przydzieli zakres którego fizycznie nie ma - program się wywala. Można to obejść prostym programikiem, który informuje system że pamięci jest mniej niż mu się wydaje. Niektóre programy testujące potrafią to wykryć, dlatego poprawnie raportują 2.5MB.

Róznica pomiędzy 2MB a 4MB najprawdopodobniej objawia się w driverze dysku twardego. Tenże widząc więcej pamięci, alokuje sobie trochę więcej pamięci na bufory, niestety robi to pod adresami które źle napisane gry i dema używają i to powoduje że całość się sypie. Na szczęście takie programy są nieliczne, a większość została spatchowana.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

6

W zasadzie to wiem czemu. Na chwilę obecną mam 2MB w dwóch kościach po 1MB. Z dawnych czasów pamiętam, że "mądrzy ludzie" z giełdy w Katowicach, mieli w swoich ST przełącznik do wyłączania części RAMu. Obecnie przedawne moduły rozszerzeń pamięci do ST również często mają zworkę ograniczającą ilość pamięci do 1MB. Są też programiki modyfikujące rejestr konfiguracyjny, tak by programy widziały tylko 1MB. Ponoć są jakieś gry które nie działają przy 4MB.

Moja kolekcja: Atari 1040STe (4MB), Atari 1040STfm (4MB, BLiTTER, AT-ONCE+), Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Atari 600XL (64kB), Sinclair ZX SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB), Commodore A600 (2MB+4MB, HDD CF 4GB), Commodore C64C.

7

Nie znalazłem takich, albo jeszcze nie trafiłem. Ale dla spraw domniemanych nie zadawałbym sobie tyle trudu ;)

Kontakt: pin@usdk.pl

8

Nieodpalanie się pewnych rzeczy prędzej bym zwalił na różnice w TOSach niż na ilość RAMu. Jest trochę starych rzeczy co nie chce iść na 2.06, być może również i na 1.62.

Atari Falcon 030 14MB+SD16GB; Atari TT 030 4MB ST-RAM, 64 MB TT-RAM; Atari 1040 STFM; Atari 1040 STE 4MB+NetUsbee+UltraSatan; Commodore 64+1541-II+XE1541; Atari 65 XE+CA-2001+Ultimate 1MB+Side2;  P166MMX+GUS.

9 Ostatnio edytowany przez _tzok_ (2018-01-01 23:55:41)

Dobra, więc temat przełącznika RAMu na razie odpuszczam, włożę 4MB i zobaczę co się będzie działo. Swoją drogą dopiero teraz dowiedziałem się czemu jako dziecko nie mogłem na swoim STE zagrać w Arkanoid I (obecnie istnieje spatchowana wersja, która działa na TOSie 1.06/1.62 jak i 2.06).

Moja kolekcja: Atari 1040STe (4MB), Atari 1040STfm (4MB, BLiTTER, AT-ONCE+), Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Atari 600XL (64kB), Sinclair ZX SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB), Commodore A600 (2MB+4MB, HDD CF 4GB), Commodore C64C.

Generalnie, tak wersja TOSu ma o wiele większy wpływ. TOSy do 1.04 włącznie był wielkości 192KB, a powyżej już 256KB. Zdarzało się że leniwi koderzy, przyzwyczajeni do kodowania na maszynach ośmiobitowych, gdzie generalnie zarządzania pamięcią nie było, używali sztywnych obszarów pamięci, i jeśli trafili akurat w obszar, który pod TOSem 192KB był wolny ale 256KB już nie, to takie produkcje nie działały, trochę tego było.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

11

Adam Klobukowski napisał/a:

gdzie generalnie zarządzania pamięcią nie było

Adam, rozwiń temat, bo według mnie mocno się mylisz... Szczególnie przy kodowaniu na A8.

Sikor umarł...

12

Pomieszanie z poplątaniem po raz kolejny.

ST- przełącznik z''giełdy'' 1MB/4MB - wystarczy dodać włącznik na adresie A9, sygnał podczas instalacji podłączany bezpośrednio do MMU

ST 2.5MB lub 3MB - wszystko działa a pamięć jest POPRAWNIE widziana przez system (wyjątek stanowi MMU produkowane przez IMP gdzie oba banki MUSZĄ mieć jednakowy rozmiar czyli 2x512 lub 2x2MB. W innym wypadku pamięć będzie widoczna podwójna konfiguracja banku 0 czyli: 1x512, 2x512, 1x512 1x2MB = 1MB, 1x2MB 1x512kb - nie wstanie, 2x2MB)

STE 2.5MB - można zamontować ale będzie niepoprawnie rozpoznawane (błąd w STE MMU), można zainstalować programowy patch . Po co? 4x1mb kosztuje 20zł


W ST przełącznik 1MB/4MB był wykorzystywany w erze dinozaurów, oprogramowanie z roku 86/87 mogło mieć problem z działaniem na 4MB. A problem przeważnie dotyczył złych cracków niż samego softu.

STE 2MB - znowu błąd cracków. Kilka menu disc od Pompey Pitares nie działa poprawnie na STE 4MB, za to działa na konfiguracji  1MB/2MB. Po raz kolejny źle złamane oprogramowanie (autor pewnie miał właśnie konfig z 2MB). Można łatwo przetestować w Hatari bawiąc się konfiguracją pamięci. Dla przykładu PP48, PP55.

Na dzień dzisiejszy montaż jakiegokolwiek przełącznika pamięci to strata czasu. Większość softu jest już spatchowana lub istnieje inna poprawnie działająca wersja.

Who loves kids? Charlie Waffles!! Damn right...

13

Bartek, dzięki za ten opis. Pominąłeś konfigurację ST(FM) z 2MB. Co o tym sądzisz/wiesz? Będzie obowiązywał ten sam Twój opis, który dałeś do STE 2MB?
Mam taką konfiguracje u siebie w 520STFM, no i z racji, że rozszerzenie jest i działa, a kabli jest tam cała masa, to zastanawiam się czy tak zostawić, czy dokładać drugie 2MB, czy może wyrzucić całość tego co jest i zrobić bardziej współczesne rozszerzenie 1MB lub 4MB z obsadzeniem obu banków. Chodzi mi o kompatybilność i bezproblemowe działanie większości gier z dyskietek. Z moich obserwacji wynika, że raczej wszystko na tym mi chodzi, ale trudno mówić o jakiejś statystyce, bo mam to Atari od kilku miesięcy, a równolegle mam STE z 4MB, więc tego STFM-a używałem raptem kilka razy w sumie...

14

ST traktuje jako ST, STF, STFM, MST, STm, ST+, 260ST itp.

Na ST działa (prawie) wszystko niezależnie od konfiguracji pamięci. Jakiś czas temu długo szukałem dowolnej starej gry która działa na 512kb/1MB a nie działa na 2MB/4MB - niestety nie znalazłem.

Więcej problemów z kompatybilnością było między TOS 1.00 a TOS 1.02 - ale to znowu wina cracków. TOS 1.04 rozwiązał problem.

Jeśli działa to szkoda ruszać. Szybciej i łatwiej jest zamontować 4MB na dziewiczej płycie niż robić poprawki. Sprawdzone wielokrotnie.

Who loves kids? Charlie Waffles!! Damn right...

15

No właśnie - wiem, że na dziewiczej płycie jest dużo łatwiej, dlatego nie chciało mi się tego ruszać, ale potrzebowałem opinii kogoś, kto siedzi bardziej w 16-bit, bo ja w tym dziale jestem dopiero od kilku miesięcy, więc siłą rzeczy za dużo jeszcze nie widziałem:-)
To moje rozszerzenie jest "z epoki", siedzi pod shifterem płytka, na której jest całe stado kości o łącznej pojemności 2MB, RAM na płycie (512kB) jest odłączony tylko, a te 2MB siedzi jako bank 0. Do tego kupa kabli, ale ładnie wszystko solidnie i profesjonalnie polutowane. Gdybym chciał dołożyć drugie 2MB, to musiał bym w tym celu skonstruować drugie osobne rozszerzenie, zmieścić to gdzieś, wpiąć się itd. - to by było bez sensu, już wtedy lepiej było by wyrzucić całkiem to wszystko i zrobić nowe mniejsze i współczesne rozszerzenie 4MB, ale to bezcelowe chyba jednak. Zostawiam jak jest.

16

Mq napisał/a:

To moje rozszerzenie jest "z epoki", siedzi pod shifterem płytka, na której jest całe stado kości o łącznej pojemności 2MB, RAM na płycie (512kB) jest odłączony tylko, a te 2MB siedzi jako bank 0.

Hmm, a może jakieś zdjęcie ku potomności, do atariki dodać nawet?

Sikor umarł...

17

Sikor, będę pamiętał i jak otworzę kiedyś tą Atarkę przy jakiejś okazji, to wrzucę zdjęcie tego rozszerzenia. Atarka jest poskładana, pozamykane ekrany ma, wszystko skręcone w komplecie, a do tego leży w kartonach z innymi kompami, bo na wierzchu trzymam tylko STE do bieżącego użytku. Za dużo mam tego sprzętu, więc nie jestem w stanie mieć wszystkiego pod ręką:-)

Co do tego mojego rozszerzenia jeszcze, to z głowy pamiętam i mogę powiedzieć jak wygląda mniej-więcej.
To jest płytka pod Shifterem, na tej płytce są jakieś chyba dwa bufory TTL i kilka kości DRAM w obudowach SIP (nie pamiętam ile i jakich tych kości, ale na pewno w obudowach SIP, bo pamiętam, że mnie to zaskoczyło). Do płytki jest wpięta taśma i przylutowana z drugiej strony do odpowiednich sygnałów przy oryginalnych pamięciach i MMU na płycie głównej. Rozszerzenie myślę, że jest z epoki właśnie ze względu na to, że zastosowano te kości SIP. Kilka miesięcy temu jak miałem rozebrane to Atari, to szukałem w necie podobnego rozszerzenia, bo sam byłem ciekaw co to za produkcja, ale nie znalazłem takiego nigdzie...

@Sikor: chodzi mi o to że na 8bita Atari ze 'standardowym' DOSem, jedyne zarządzanie pamięcią jakie jest to MEMLO, no i programy zasadniczo nie są relokowalne.

Na ST jest lepsze zarządzanie pamięcią: programy są relokowalne, i jeśli potrzebują pamięci - powinny o nią poprosić system, a jak już jej nie potrzebują mogą ją zwolnić do systemu. Ponieważ mogą zostać uruchomione pod różnymi adresami, a pamięć o która proszą system może być przyznana pod różnymi adresami, w związku z czym nie powinny one nigdy używać sztywnych adresów, tylko jak w danym momencie wypadnie (z wyjątkiem odwoływania się do rejestrów sprzętowych). Niestety, zwłaszcza w pierwszych latach, było to często ignorowane. Jeszcze pół biedy z programem który całkowicie ignoruje system (wszelkie całodyskowe, botowane z bootsectora gry i dema), chociaż tez się mogą wywalić jeśli próbują używać zakresów pamięci które są używane przez nowsze TOSY (192kb vs 256kb). Najgorzej jest jeśli program jest ładowany już spod TOSa i nie przestrzega on zasad tego jak sie powinno pod TOSem zachowywać. Taki program nie dość że może mieć problem z nowszy, TOSem, to jeszcze inne programy (np. driver dysku, czy cokolwiek z AUTO) mogą w nim wejść w konflikt. Dodatkowo, zdarzały sie programy które skakały pod określone adresy w TOSie (co jest kompletną głupotą, bo to sie w każdej wersji TOSa zmienia) i robiły ogólnie dziwne i generalnie niedozwolone sztuczki z TOSem.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

19

Włożyłem 4MB i śmiga, ale na razie przepartycjonowałem dysk i wrzucam na niego jego zawartość... leci przez Ghostlink @19200bps więc trochę to potrwa. Zdjąłem górę obudowy i dałem "biedactwu" wentylatorek na zasilacz, żeby się za bardzo nie zgrzał, bo do przesłania ma ze 30MB.

Moja kolekcja: Atari 1040STe (4MB), Atari 1040STfm (4MB, BLiTTER, AT-ONCE+), Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Atari 600XL (64kB), Sinclair ZX SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB), Commodore A600 (2MB+4MB, HDD CF 4GB), Commodore C64C.

20

@Adam, i tu się mocno mylisz. Poczytaj na przykłąd o Display List. W odróżnieniu od innych systemów atari 8-bit nie ma właściwie nic narzuconego na stałe. Program może być w dowolnym miejscu i (prawie) w dowolnej konfiguracji w pamięci. Memlo określa nam jedynie dolny zakres, w który nie powinniśmy wchodzić. Ale jest nawet możliwość systemowego wyłączenia ROM-u (no, prawie). Więc to co piszesz jest oczywistą nieprawdą.
A relokowalność programó jest jak najbardziej duża, przy odpowiednio napisanych programach, no i przy assemblerze.

Sikor umarł...

21

...to jest tak jak z wielozadaniowością w Windows 3.1 - niby była, ale programy same musiały zadbać o zwalnianie czasu procesora i zasobów i wzajemne przekazywanie sobie kontroli. Zarządzanie pamięcią jest wtedy, kiedy robi to system, a programu nie obchodzi obszar w którym zostaje ulokowany przez system. To że da się wczytać program do wskazanego obszaru pamięci i go stamtąd uruchomić to jeszcze nie zarządzanie pamięcią.

Moja kolekcja: Atari 1040STe (4MB), Atari 1040STfm (4MB, BLiTTER, AT-ONCE+), Atari 800XE (SIMM EXP 1MB), Atari 800XL (RAMBO XL 256kB), Atari 600XL (64kB), Sinclair ZX SPECTRUM+ (48kB), TIMEX Computer 2048 (48kB), Commodore A600 (2MB+4MB, HDD CF 4GB), Commodore C64C.

@Sikor piszesz o czymś zupełnie innym, co nie ma nic wspólnego z tym o czym ja piszę - czyli o zarządzaniu pamięcią. Na 8bit program nie ma możliwości spytać OSa z jakiej pamięci może skorzystać a z jakiej nie. Może jedynie sprawdzić MEMLO i powiedzieć czy jest za duże. Nie mówię tu też o ręcznej konfiguracji i wybieraniu banków - chodzi o mechanizmy w 100% automatyczne. A relokowalność programów nie jest standardowym mechanizmem i wymaga odpowiedniego napisania programu. I o to jest ta zasadnicza różnica o którą chodzi. Na ST każdy program odpalany pod TOSem jest relokowalny i nie powinien się spodziewać niczego jeśli chodzi o pamięć. Powinien o nią grzecznie prosić i grzecznie oddawać, czego program na 8bit nie może zrobić, bo nie ma takiego mechanizmu. I to jest zasadnicza różnica. I jeszcze tylko przypomnę że mówimy o rzeczywistości przed 1990 rokiem.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

23

@Adam, a sparta dos X z jego konfiguratorem? I to też jest z epoki. Co do programów pod TOS - o ile pamiętam Calamus 1.09 nie był relokowalny, zajmował po prostu całą pamięć, przypuszczam że więcej takich programów by się znalazło. Ale nie zaśmiecajmy wątku.

Sikor umarł...

@Sikor: źle pamiętasz. Każdy program odpalany pod TOSem jest z definicji relokowalny, taki jest po prostu format binarki. Sparta Dos X jest, owszem wyjątkiem, ale 'w epoce' jego użycie było raczej śladowe, a chodzi tu o ogólny trend a nie wyjątkowe rozwiązania.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

25

@co do śladowości - polemizowałbym. Poza tym - inicjalizery, które siedzą naprawdę nisko. Oprócz tego - plkiki kasetowe, gdzie właściwie schodzimy na sam dół. Pamięć Antica w dowolnym obszarze. Itp, itd.

Sikor umarł...