80kB RAM w ZX Spectrum

Rozszerzenie pamięci standardowego ZX Spectrum 48/plus do 80kB RAM

Tekst powstał na podstawie artykułu "ZX Spectrum 80kB" auorstwaStanisława Winieckiego opublikowanego na łamach "Bajtka" nr (55-56)'90 III 9-10,str. 15. Autorowi dziękuję za pozwolenie wykorzystania wiedzy zawartej w w/wartykule.

Budowa rozszerzenia pamięci RAM w standardowym ZXSpectrum do 80kB jest nieskomplikowana ze względu na pierwotny projekt modelu 16kB. Pamięć została zaprojektowana tak, żeby było możliwa praca z 16kB, zaś rozbudowa do modelu 48kB polegała na wlutowaniu dodatkowej pamięci (banku) 32kB. Rzecz w tym, że tak naprawdę standardowo montowane w ZX Spectrum układy pamięci dynamicznej TMS4532 lub M3732 można zastąpić odpowiednikami o dwukrotnie większej pojemności oznaczonymi symbolami 4164, 3764, 4564, 8264 lub 4864 (koniecznie z 7-bitowym cyklem odświeżania). Jak to działa? Pamięci 32kB są w istocie pamięciami 64kB z wyłączoną jedną połówką. Prawdopodobnie jedna z połówek jest uszkodzona (np. w cyklu produkcyjnym) i pamięć została oznaczona jako tańsza 32kB. Po zmianie układów pamięci na pełnosprawne serii 4164 należy skonstruować układ przełączający banki pamięci. Schemat układu znajduje się poniżej. Zadaniem tego układu jest włączanie banku "1" i "2". Po włączeniu komputera jest aktywny bank "1". Układ, który należy samodzielnie zmontować najlepiej we wnętrzu komputera (na dodatkowej płytce) generuje sygnał BNK, który należy doprowadzić do punktu zaznaczonego na rys.2 (obszar zworek, obok złącz MIC i EAR). Zacytuję za autorem:
"Osobnego omówienia wymaga sygnał BNK, przełączający banki, dołączany do punktu zaznaczonego na rys.2. Na rysunku tym przedstawione są zworki znajdujące się na prawo od gniazd EAR i MIC. Są to zworki ustalające typ pamięci 32K zainstalowanych w komputerze. Jak wiemy,pamięci te są "połówkami" pamięci 64K i zworki te ustalają, która z polówek matrycy ma być wykorzystywana. Należy wylutować zworkę dolną, pozostawiając jedynie zworkę górną w połóżeniu prawym (oznaczonym na płytce jako "OKI"). Jeżeli zworka górna była wlutowana w położeniu lewym ("TI"), to należy ją usunąć i wlutować zworkę prawą"
Po włożeniu pamięci, płytki dekodera banku i połączeniu płytki z szyną systemową, można włączyć komputer. Powinien zgłosić się standardowym komunikatem.
Aby przekonać się, czy dodatkowy bank w ogóle działa, należy wykonać polecenie PRINT USR "a". Odpowiedź "65368" świadczy o prawidłowym działaniu drugiego banku, zaś "32600" oznacza, że dodatkowa pamięć w ogóle się nie zgłasza. Prawdopodobną przyczyną jest jakiś błąd w połączeniach, rzadziej wadliwe układy 64kB.
Kolejnym testem będzie umieszczenie dwóch różnych liczb pod tym samym adresem, ale w różnych bankach. Realizuje to poniższy program:

CLEAR 32767      : REM przeniesienie stosu ponizej obszaru gornych 
32kBPOKE 50000,121   : REM umieszczenie liczby 121 w komorce 50000 banku "1"OUT 
255,32       : REM przelaczenie banku ("2" - zapala sie dioda D2)POKE 50000,212  
 : REM umieszczenie liczby 212 w komorce 50000 banku "2"OUT 255,0        : REM 
wlacznie znow banku "1"PRINT PEEK 50000 : REM powinna pojawic sie liczna 121OUT 
255,32       : REM wlaczenie banku "2"PRINT PEEK 50000 : REM powinna pojawic sie 
liczba 212OUT 255,0        : REM wlaczenie banku "1"
Oczywiście trzeba dodać, że w danej chwili może być aktywny tylko jeden bank. Jak można zauważyć z powyższego przykładu (i ze schematu z rys.1) banki przełącza się poleceniami:
OUT 255,0 - bank "1"
OUT 255,32 - bank "2"
Wykorzystanie dodatkowej pamięci należy do autora programów. Podobno jest trochę programów korzystających z tak skonstruowanej dodatkowej pamięci (ja się nie spotkałem), autor artykułu wspomina, że program kopiujący "COPY 80" autorstwa Kato również korzysta z dodatkowego banku pamięci.

Schemat:

schemat 
elektryczny

Opis zworek:

jumpery

Przykładowy projekt płytki drukowanej:

plytka drukowana

Powrót do strony głównej...