![]() | ![]() |
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:Schemat:

Opis zworek:

Przykładowy projekt płytki drukowanej:
