www.zx.cz
 Stránkování Gama  |  MGA  |  Speccy128 

Speccy128 - úprava ZX Spectra 48K na ZX Spectrum 128


Historie

Koncem roku 1986 jsem poprvé uviděl ZX Spectrum 128. Od FUXOFTu jsem se dozvěděl, který port je použitý na stránkování pamětí a rozhodl jsem se, že se pustím do úpravy svého ZX Spectra 48. Po zjištění, že stránky paměti číslo 1,3,5,7 jsou zpomalované obvodem ULA bylo vše jasné a po několika experimentech vzniklo zde zveřejněné schéma.


Současnost a budoucnost

Po žádosti Ondry Cahy se mi podařilo schéma najít. Zveřejňuji ho ve stavu, v jakém se zachovalo. Je kreslené tužkou na čtverečkovaný papír, součástky použité odpovídají době vzniku. Pokud bude čas, chci si tuto úpravu znovu zapojit. Uvažuji o použití nějakého malého hradlového pole. Uvidíme...


Princip fungování ZX Spectra 128

ZX Spectrum 128 má oproti od ZX Spectru 48 více paměti, zvukový obvod AY-3-8912, RS-232, keypad a RGB výstup.

Původní ZX Spectrum používá od adresy 0 paměť ROM, pro kterou generuje výběrové signály ULA. Od adresy 16384 je videopaměť tvořená obvody 4116, které jsou na vnitřní sběrnici ULA. Od adresy 32768 je paměť procesoru, kde byly použity 64Kb paměti, které byly v jedné polovině vadné.

ZX Spectrum 128 má rozložení pamětí složitější. ROM je 32KB a stránkuje se po 16KB na adrese 0.

RAM u obvodu ULA je 64KB a stránkuje se po 16KB. Její jednotlivé stránky mají čísla 1,3,5,7 u ZX Spectra od Sinclaira. V dalších verzích od firmy Amstrad mají tyto jiné číslování! Tato RAM se mapuje od adresy 49152 (stránky 1,3,5,7). Stránka číslo 5 je vždy na adrese 16384 (může být zároveň mapovaná i na adresu 49152). Videopaměť je umístěna ve stránkách číslo 5 nebo 7.

RAM u procesoru je 64KB a stránkuje se po 16KB. Její jednotlivé stránky mají čísla 0,2,4,6 a mapují se od adresy 49152. Stránka číslo 2 je vždy na adrese 32768 (může být zároveň mapovaná i na adresu 49152).


Princip fungování Speccy 128

Zde popsaná úprava řeší pouze stránkování paměti. Zapojení zvukového obvodu je poměrně známé. RGB výstup by byl v dané době poměrně složitý a RS232 není problém zapojit podle schématu Spectra +3. Oproti stránkování ZX Spectra 128 je zde navíc možnost namapovat od adresy 0 místo ROM stránku 0,2,4 nebo 6 a případně do ní zakázat zápis. Je možné přepnout stránkování na kompatibilní se stránkováním Jirky Lamače (LEC). A nakonec je počítáno s připojením MGA.


Popis ovládání Speccy 128


bit
$7FFD - zápis
ZX Spectrum 128
$7FFF - zápis
Speccy 128
$7FFF - čtení
Speccy 128
$FD - zápis
stránkování LEC
0 číslo stránky od 49152 číslo stránky od 0 číslo stránky od 0 nepoužito
1 číslo stránky od 49152 číslo stránky od 0 číslo stránky od 0 nepoužito
2 číslo stránky od 49152 RAM od 0 povolena RAM od 0 povolena nepoužito
3 videopaměť 5 nebo 7 MGA aktivní MGA aktivní nepoužito
4 ROM48 nebo ROM128 zákaz zápisu do RAM od 0 zákaz zápisu do RAM od 0 nepoužito
5 uzamknutí portu uzamknutí portu 1=port uzamčen nepoužito
6 nepoužito nepoužito 1=MGA je instalován nepoužito
7 nepoužito Spectrum 128 nebo LEC 1=stránkování LEC 1=full RAM od 0

Poznámky:
$7FFD bit 2-0 - udává číslo stránky standardně
  bit 3 - přepíná videopaměť do stránky číslo 7
$7FFF bit 1-0 - udává číslo sudé stránky, tzn. *2 (např. 1=stránka číslo 2, 3=stránka číslo 6)
$FD bit 7 -  napamuje od adresy 0 stránku 6, od 16384 stránku 4, na adrese 32768 nechá stránku 2 a na adrese 49152 zůstane stránka určená $7FFD bit 2-0.

Zapojení portů Speccy 128

Speccy 128 - porty
(klikněte pro velký obrázek)

(C) 1986 PChe

Zapojení přepínání pamětí Speccy 128

Speccy 128 - přepínání
(klikněte pro velký obrázek)

(C) 1986 PChe

Poznámky: je-li v hradle nakreslená dioda, jednalo se o nahrazení hradla klasicky pomocí dvou diod a rezistoru. Šipka před signálem znamená, že je tento signál už ve schématu a není zde pro přehlednost zakresleno propojení.


Obsah PROM 74188 a popis signálů

Pro zjednodušení byla použita paměť PROM, která nahrazovala v té době neexistující hradlové pole.

LEC A15 A14 Q2 P0
R4 R3 R2 R1 R0
0 0 0 0 0
0 0 0 0 1
0 0 0 1 0
0 0 0 1 1
0 0 1 0 0
0 0 1 0 1
0 0 1 1 0
0 0 1 1 1
0 1 0 0 0
0 1 0 0 1
0 1 0 1 0
0 1 0 1 1
0 1 1 0 0
0 1 1 0 1
0 1 1 1 0
0 1 1 1 1
1 0 0 0 0
1 0 0 0 1
1 0 0 1 0
1 0 0 1 1
1 0 1 0 0
1 0 1 0 1
1 0 1 1 0
1 0 1 1 1
1 1 0 0 0
1 1 0 0 1
1 1 0 1 0
1 1 0 1 1
1 1 1 0 0
1 1 1 0 1
1 1 1 1 0
1 1 1 1 1
X X 0 0 0
X X 0 0 0
X X 0 1 0
X X 0 1 0
0 1 1 0 0
0 1 1 0 0
0 1 1 0 0
0 1 1 0 0
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
1 0 1 0 0
X X 0 1 1
1 0 1 0 0
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
X X 0 1 1
1 0 1 0 0
X X 0 1 1
1 0 1 0 0

Jednotlivé signály:
R0 -> PCF A15, pokud je RAM od 0 se zakázaným zápisem
R1 ->PCF A15 v ostatních případech a ULA A15
R2 =CPU přistupuje do paměti u obvodu ULA
R3 =negovaná A15
R4 =A15
MX1, MX2 ->RAM u CPU pres PCF nebo LS157 (propojky H,L,T1 a OK1,3,4)
RAM u ULY A7 -A7 nových pamětí 4164 u obvodu ULA
ULA A15 -A15 obvodu ULA
PCF A15 -A15 obvodu PCF (Mullard ULA ZX8401) nebo LS00 pro starší issue



 Hlavní stránka  |  ZX Spectrum  |  Moje sbírka  |  Sběratelské burzy  
 Stránkování Gama  |  MGA  |  Speccy128