Rozszerzamy Pamięć RAM

Dla wielu osób praca ze stacją dysków jest znacznie utrudniona przy 64 KB pamięci RAM komputera. Prędzej czy później jesteśmy zmuszeni rozszerzyć pamięć naszego Ataraka. Chyba najczęściej wykorzystywana jest dodatkowa pamięć jako RAM-dysk, ale i gracze znajdą coś dla siebie (np. "Karateka", "World Karate" czy "Problem Jasia" w wersji na Atari 130XE). Szczególnie korzystne jest rozszerzenie podczas pracy z takimi systemami, jak: QMEG-OS, Freezer itp. Niewątpliwie najpopularniejszym (przynajmniej u nas) rozszerzeniem jest układ wykorzystujący rejestr PORTB do sterowania dodatkową pamięcią komputera, jeśli takową posiadamy. Oczywiście istnieje wiele innych rozszerzeń (NEWELL INDUSTRIES, RAMBO ICD, AXLON oraz inne), lecz opisane poniżej wydaje się być najwygodniejszym.

W modelach Atari 400 i 800 znajdowały się cztery gniazda do podłączenia manipulatorów (m.in. joyów). Natomiast w modelach serii XL i XE rejestr PORTB przystosowano do zarządzania układami pamięci komputera. W efekcie zamiast grać czterema joyami, możemy spokojnie umieszczać dane pod ROM-em, szybko przejść do "Self Testu" itp. Możemy również wykorzystywać dodatkową pamięć poprzez przełączanie banków pamięci. Może zanim do tego przejdziemy, wyjaśnimy sobie zasadę działania rejestru PORTB (adres $D301 = 54017).

Znaczenie poszczególnych bitów:

0 - ustawiony włącza system operacyjny
1 - skasowany włącza Atari BASIC
2 - numer dodatkowego banku pamięci
3 - numer dodatkowego banku pamięci
4 - dostęp 6502 do dodatkowej pamięci, jeśli bit jest skasowany
5 - dostęp ANTIC-a do dodatkowej pamięci, jeśli bit jest skasowany
6 - standardowo niewykorzystywany
7 - skasowany włącza program testujący

Największe znaczenie mają dla nas bity: 2-5, gdyż to właśnie one decydują o wykorzystaniu dodatkowej pamięci. Ponieważ bity 2 i 3 decydują o numerze banku (w tym przypadku "bankiem" nazywany następujący obszar pamięci: 16384-32767 [$4000-$7FFF]), to mamy do wyboru 4 banki po 16 KB każdy, czyli razem 64 KB RAM. Lecz wybranie samego banku nie wystarcza do sterowania dodatkową pamięcią, aby ją wykorzystać trzeba skasować bity 4 i 5. Dzięki zastosowaniu oddzielnych bitów dla ANTIC-a i CPU możemy, np. umieścić grafikę w dodatkowej pamięci, a jednocześnie kod programu w pamięci podstawowej od adresu $4000. Tak właśnie wykorzystują dodatkową pamięć komputery Atari 130XE.

Dla wielu ludzi 128 KB pamięci okazało się niewystarczającym rozszerzeniem. Otóż, gdyby wykorzystać jeszcze bit 6, to razem mielibyśmy 2 ^ 3, czyli 8 banków (128 KB dodatkowej pamięci). Takie podejście do sprawy z pewnością będzie wystarczającym rozwiązaniem dla wielu atarowców. Ale jeśliby użyć 4 bitów, to wtedy mielibyśmy razem 256 KB dodatkowej pamięci, co łącznie z podstawową daje 320 KB RAM. Pozostaje tylko pytanie, który bit wykorzystać jako czwarty. Niektórzy rozwiązali ten problem w ten sposób, że jako numer banku wykorzystali bit ANTIC-a (bit 5), co w efekcie uniemożliwia odrębne sterowanie dodatkową pamięcią dla ANTIC-a i CPU (oznacza to, że jeśli włączymy dodatkową pamięć dla 6502, to i jednocześnie włączamy ją dla procesora graficznego). Jak widać powyższe rozwiązanie może uniemożliwić prawidłowe działanie niektórych programów. Chyba znacznie lepszym rozwiązaniem jest wykorzystanie bitu 7 (SELF TEST) do sterowania dodatkową pamięcią. Otóż kiedy bit 4 lub 5 są skasowane, to bit 7 służy do wyboru banku. Natomiast jeśli oba są ustawione (ani 6502, ani ANTIC nie korzystają z rozszerzenia), wtedy bit 7 działa w normalnym trybie i spokojnie możemy korzystać z "ogromnych oraz wspaniałych możliwości niezastąpionego" programu testującego.

Optymalnym rozwiązaniem (PORTB!) jest powiększenie pamięci dodatkowej do 1 MB! Wykorzystane są bity: 1 (BASIC), 2, 3, 5 (ANTIC), 6, 7(SELF TEST). Daje to razem 6 bitów do zarządzania extra RAM-em, czyli 64 banki pamięci...

Jestem użytkownikiem nieco wcześniej opisanego rozszerzenia (320 KB RAM) i bez żadnych kompleksów mogę powiedzieć, iż całkowicie z niego zadowolonym.

Podczas codziennej pracy używam QMEG-a oraz MYDOS-a 4.5 i oba systemy potrafią wykorzystać moje rozszerzenie.

W MYDOS-ie należy wybrać polecenie "O", a na pytanie: "RAMdisk present ?", naciskamy klawisz "Y". Komputer wyświetli kolejne pytanie: "[A]xlon or [X]E type RAMdisk ?" - odpowiadamy klawiszem "X". Na pytanie: "Use default config for 256K ?", naciskamy "Y". Potem pozostaje już tylko wybrać numer RAM-dysku (np. 8), a następnie sformatować RAM-dysk i mamy do dyspozycji 2032 sektory (w pojedynczej gęstości), co razem daje: 2032 * 128 = 254 KB.

QMEG umożliwia założenie następujących RAM-dysków: -S,S (2*90 KB); -M,X (130 KB i 64 KB); -D,- (180 KB). Jak więc widać QMEG również rozpoznaje moje rozszerzenie.

BiboDOS 5.1N zakłada RAM-dysk wielkości 253,5 KB (1014 sektorów double). Wymaga to odpowiedniego skonfigurowania systemu (w zasadzie wystarczy wybrać odpowiedni rozmiar RAM-dysku, czyli 256 KB, w czasie gdy DOS o to prosi. Do konfigurowania RAM-dysku pośrednio służy opcja "H" z menu BiboDOS-a).

Jeżeli chodzi o inne DOS-y, to niestety RAM-dyski, przez nie zakładane, są zbyt małe, aby w pełni potrafiły wykorzystać możliwości mojego rozszerzenia... DOS 2.5 instaluje RAM-dysk o pojemności 611 sektorów single (co daje nieco ponad 76 KB). DOS XL umożliwia (przy pomocy pliku "RAM130.COM") zorganizowanie w dodatkowej pamięci RAM-dysku, który ma 503 sektory po 128 bajtów (około 63 KB), czyli ten DOS "widzi" mój komputer jako zwykłe 130 XE.

Nieco dziwnie programiści z firmy ICD kodowali SPARTA DOS-a X, wszakże to najlepszy system operacyjny na "małym" Atari. Otóż nie przewidzieli oni (lub im się nie chciało "widzieć") RAM-dysku większego niż 128 KB. W rezultacie dysponujemy tylko 504 sektorami double, oczywiście po odpowiednim napisaniu pliku "CONFIG.SYS"... Rozwiązanie powyższego problemu zostało przedstawione w artykule Konrada Kokoszkiewicza "SPARTA DOS X - 192 KB RAM-dysku w 260 XE", zamieszczonym w numerze 3/4 (1993) "Atari Magazynu".

Jeżeli zaś chodzi o inne programy, które standardowo wykorzystują dodatkową pamięć, to zaobserwowałem ich bardzo dobrą współpracę z moim rozszerzeniem. Przede wszystkim chodzi mi tu o wszelkie programy, które wykorzystują dodatkową pamięć nie tylko na kod, ale również i na grafikę (w przypadku takich programów użytkownicy rozszerzenia TOMS 260XE nie mogą być pewni jego poprawnej pracy), jak np. "The Atari Planetarium (130XE), "Video Blitz" (130XE) czy "The Wormhole" (320 KB, część "The Halle Project Demo 1994") itp. Jednakże należy zaznaczyć, że istnieje część programów, które wprawdzie wykorzystują 256 KB RAM, ale (niestety!) nie rozpoznają, w moim komputerze, pamięci większej niż 192 KB. Za przykład mogą tu posłużyć następujące programy: "Toms Copier 2.0" czy też "Toms Turbo Drive Kopier 1.15". Nie jest to, w żadnym przypadku, wina rozszerzenia (po prostu autorzy tych kopierów nie uwzględnili innych powiększeń pamięci, powyżej 192 KB, niż TOMS 260XE).

Podsumowując, opisane w niniejszym artykule rozszerzenie pamięci RAM do 320 KB jest bardzo atrakcyjnym powiększeniem pamięci, ponieważ oferuje dostatecznie dużą ilość pamięci RAM, przy jednoczesnym zachowaniu 100-procentowej zgodności z komputerem ATARI 130XE i standardowym rozszerzeniem pamięci RAM do 192 KB. Większość programów, chodzących na maszynach z pamięcią większą niż 192 KB, powinna rozpoznawać niniejsze rozszerzenie pamięci. W przeciwnym przypadku winą należy obarczyć autora programu, gdyż jest to w miarę dobrze znane rozszerzenie i koderzy powinni je uwzględniać...

Za zamontowanie systemu QMEG 4.2 oraz wyżej opisanego rozszerzenia zapłaciłem, w maju 1993 roku, pół miliona zł. Od autorów dowiedziałem się, iż obecnie rozszerzenie RAM 320 KB montowane jest za pośrednictwem firmy Mirage Software:

Mirage Software
[...]

Aktualna cena rozszerzenia (wrzesień'94) waha się w granicach 600 tys. zł.

Rozszerzenie opisał
- P.W. -