ZX81 32K: Różnice pomiędzy wersjami
(Nie pokazano 5 wersji utworzonych przez jednego użytkownika) | |||
Linia 2: | Linia 2: | ||
== Opis == | == Opis == | ||
+ | [[File:ZX81_32K_02.jpg|thumb|300px|Moduł 32KB]] | ||
+ | |||
Modyfikcja ta polega na rozszerzeniu wewnętrznej pamięci w ZX81/TS1000 z 1KB/2KB do 32KB w obszarze 8K - 40K. Do tego celu została zaprojektowany moduł na którym znajduje się układ pamięci statycznej o pojemności 32KB oraz dekoder adresów (74HC251). Schemat jego jest dość dobrze znany w świecie ZX81 nazwą: "Barebones Internal 32K RAM mapped 8K-40K". Cała idea wykorzystania multiplexera 8:1 została stworzona przez Wilfa Rigtera w 2005r. | Modyfikcja ta polega na rozszerzeniu wewnętrznej pamięci w ZX81/TS1000 z 1KB/2KB do 32KB w obszarze 8K - 40K. Do tego celu została zaprojektowany moduł na którym znajduje się układ pamięci statycznej o pojemności 32KB oraz dekoder adresów (74HC251). Schemat jego jest dość dobrze znany w świecie ZX81 nazwą: "Barebones Internal 32K RAM mapped 8K-40K". Cała idea wykorzystania multiplexera 8:1 została stworzona przez Wilfa Rigtera w 2005r. | ||
Linia 42: | Linia 44: | ||
W efekcie mamy wiecej miejsca dla zmiennych BASICa czy linii programu. | W efekcie mamy wiecej miejsca dla zmiennych BASICa czy linii programu. | ||
+ | |||
+ | |||
+ | == Montaż == | ||
+ | [[File:ZX81_32K_03.jpg|thumb|300px|Układ 32KB zamontowany na PCB wydanie 1]] | ||
+ | |||
+ | W zasadzie pierwsze kroki są identyczne z rozszerzeniem RAMu do 16KB i zostały one opisane na stronie [http://speccy.pl/wiki/index.php?title=ZX81_16K ZX81 16K]. Po wlutowaniu nowej podstawki pod układ pamięci i zworki L2, instalujemy moduł w podstawce oraz wykonujemy 8 połączeń kynarem. Pięć linii adresowych A11 do A15 jest dostępne przy złączu klawiatury i podłączamy je następująco: | ||
+ | * A11 - D1 | ||
+ | * A12 - D3 | ||
+ | * A13 - D5 | ||
+ | * A14 - D7 | ||
+ | * A15 - D8 | ||
+ | |||
+ | Dodatkowo odnajdujemy na płytce ZX81 dogodne miejsca do których należy podłączyć się pod linie: | ||
+ | * [[Sygnał MREQ|/MREQ]] | ||
+ | * [[Sygnał M1|/M1]] | ||
+ | * [[Sygnał ROMCS|/ROMCS]] | ||
==Dokumentacja== | ==Dokumentacja== | ||
* [https://drive.google.com/open?id=1wA_l2307M0ludw8_YoNip8hFV4amNfl6 schemat] | * [https://drive.google.com/open?id=1wA_l2307M0ludw8_YoNip8hFV4amNfl6 schemat] | ||
− | * [https:// | + | * Projekt PCB w formacie [https://drive.google.com/open?id=1gM-5Uq49OHbmR5ntoqMfLQtz_yLl8ego KiCADa] oraz na [https://oshpark.com/shared_projects/9v9FFtOZ OSHPark] |
− | + | ||
− | + | ||
− | + | ||
== Linki == | == Linki == | ||
− | |||
* Wątek na forum Timex Sinclair 1000 - ZX81: [http://forum.tlienhard.com/TS1000/www.ts1000.us/cgi-bin/yabb/YaBB.pl-board=HARDWARE;action=display;num=1159658155.htm Wilf's 64K rampack - (battery backup not working)] | * Wątek na forum Timex Sinclair 1000 - ZX81: [http://forum.tlienhard.com/TS1000/www.ts1000.us/cgi-bin/yabb/YaBB.pl-board=HARDWARE;action=display;num=1159658155.htm Wilf's 64K rampack - (battery backup not working)] | ||
[[Kategoria:Sprzęt]][[Kategoria:Modyfikacje]][[Kategoria:Projekty]] | [[Kategoria:Sprzęt]][[Kategoria:Modyfikacje]][[Kategoria:Projekty]] |
Aktualna wersja na dzień 14:20, 18 paź 2018
Spis treści
Opis
Modyfikcja ta polega na rozszerzeniu wewnętrznej pamięci w ZX81/TS1000 z 1KB/2KB do 32KB w obszarze 8K - 40K. Do tego celu została zaprojektowany moduł na którym znajduje się układ pamięci statycznej o pojemności 32KB oraz dekoder adresów (74HC251). Schemat jego jest dość dobrze znany w świecie ZX81 nazwą: "Barebones Internal 32K RAM mapped 8K-40K". Cała idea wykorzystania multiplexera 8:1 została stworzona przez Wilfa Rigtera w 2005r.
Należy zacząć do pobieżnego opisu organizacji pamięci w ZX81 oraz paru wyjaśnień:
0K-8K - obszar ROMu
8K-16K - zakres ten może być wykorzystany przez programy w kodzie maszynowym i jest wykorzystywany przez programy z Hi-Res oparte o WRX. Ten obszar pamięci nie jest inicjowany i sprawdzany przez procedury ROMu po resecie czy włączeniu zasilania, a także przez wydaniu komendy "NEW"
16K-32K - typowy zakres adresów gdzie urzędują programy w BASICu, łącznie z tymi, które mają wstawki w kodzie maszynowym. Programy Hi-Res mogą być wykonywane z tego obszaru o ile RAM jest dostępny podczas wykonywania RFSH.
32K-40K - zakres ten można wykorzystać jako obszar zmiennych w przypadku dużych programów (np. deklaracja zmiennych DIM). Programy w kodzie maszynowym mogą być przechowywane w tym obszarze pamięci, ale przed ich wykonaniem, należy przenieść je poniżej 32K. Ten zakres można też wykorzystać dla zmienionej zawartości ROMu, ale tablica znaków i semigrafiki zostaje niezmienna i będzie pobierana z oryginalnej zawartości ROMu w obszarze 0K-8K.
Wracając do dekodera, układ 74HC251 posiada 8 wejść, które zostały wykorzystane do wyboru obszarów pamięci ZX81 w następujący sposób:
- I0 = 00-08K = Vcc = RAM wyłączony, ROM włączony
- I1 = 08-16K = GND = RAM włączony, ROM wyłączony
- I2 = 16-24K = GND = RAM włączony, ROM wyłączony
- I3 = 24-32K = GND = RAM włączony, ROM wyłączony
- I4 = 32-40K = GND = RAM włączony, ROM wyłączony
- I5 = 40-48K = Vcc = RAM wyłączony, ROM włączony
- I6 = 48-56K = M1 = jeżeli M1 = 0 -> echo obszaru RAM 16-24K
- I7 = 56-64K = M1 = jeżeli M1 = 0 -> echo obszaru RAM 24-32K
Po zainstalowaniu modułu i wydaniu komendy:
PRINT PEEK 16388+256*PEEK 16389
Otrzymamy odpowiedź:
32768
Co jest prawidłową odpowiedzią, ponieważ jest to standardowa wartość dla RAMTOPu przy 16K pamięci RAM. Z zasady konstrukcji ZX81, BASIC korzysta z obszaru 16K-32K. W takim razie gdzie pozostałe 16K? Miało być przecież 32K? 8K jest w obszarze poza dostępem dla BASICa (8K-16K), a do drugiego 8K które jest pomiędzy 32K a 40K musimy dostać się. Należy podnieść RAMTOP:
POKE 16389,160 NEW
Sprawdzenie:
PRINT PEEK 16388+256*PEEK 16389
Na ekranie zobaczymy:
40960
W efekcie mamy wiecej miejsca dla zmiennych BASICa czy linii programu.
Montaż
W zasadzie pierwsze kroki są identyczne z rozszerzeniem RAMu do 16KB i zostały one opisane na stronie ZX81 16K. Po wlutowaniu nowej podstawki pod układ pamięci i zworki L2, instalujemy moduł w podstawce oraz wykonujemy 8 połączeń kynarem. Pięć linii adresowych A11 do A15 jest dostępne przy złączu klawiatury i podłączamy je następująco:
- A11 - D1
- A12 - D3
- A13 - D5
- A14 - D7
- A15 - D8
Dodatkowo odnajdujemy na płytce ZX81 dogodne miejsca do których należy podłączyć się pod linie:
Dokumentacja
Linki
- Wątek na forum Timex Sinclair 1000 - ZX81: Wilf's 64K rampack - (battery backup not working)