Jak jsme již dříve slíbili, přinášíme dnes kompletní návod na rozšířeni paměti pro mikropočítač ZX Spectrum na 80 až 528 kB a podrobný popis implementace operačního systému CP/M 80 kB v. 2.2 na tento počítač. Autory jsou Jiří Lamač - software a Jakub Vaněk - hardware, text článku napsal Daniel Meca.
Různých návodů na úpravu paměti tohoto u nás vůbec nejrozšířenějšího počítače vyšlo již i na stránkách AR velké množství. Přesto si právě tato úprava zaslouží zvláštní pozornost. Na rozdíl od ostatních se totiž autoři neomezili jen na pouhé rozšíření paměti, ale na maximální rozšíření možnosti počítače, při zachování jednoduchosti a dostupné pořizovací ceny. V tom jde popisovaná úprava důsledně "ve stopách sira Sinclaira".
Pro takto upravený počítač bylo již napsáno mnoho zajímavých a užitečných programů, které plné využívají nové konfigurace paměti a jejích možností. Mnoho uživatelů jistě zaujme komfortní kopírovací program s volným pracovním prostorem plných 64 kB, s průběžným zobrazováním velikosti paměti během nahráváni. Program umožňuje libovolně kopírovat z kazety i Microdrive a to též prostřednictvím sítě NET.
Zajímavý je nesporně i monitor a disassembler s pronikavě rozšířeným pracovním prostorem. Pro další rozšíření možností Spectra navrhl J. Lamač novou EPROM na místo původní ROM. Ta zachovává všechny původni možnosti, navíc však opravuje chyby původního systému a obsahuje vestavěný monitor paměti. Dále umožňuje zadávat klíčová slova BASICu vypsáním zkratkou, nebo jedinou klávesou. Pomocí této EPROM lze též přímo z BASICu ovládat RAM-DISK. Korunou tohoto snažení je však úspěšná implementace operačního systému CP/M v. 2.2, která povýšila rázem počítač, původně určený převážně pro televizní hry, do kategorie blízké profesionálním počítačům.
První použitelná verze operačního systému CP/M se rozšířila do světa již v roce 1976, kdy jeho autor, Gary Kildall, založil firmu Digital Research. Tehdy se jednalo o verzi 1.3. Následovaly verze 2.2 a 3.1, které okamžitě po svém zveřejnění opanovaly sféru osmibitových počítačů a své prvenství si udržely dodnes. Ostatní operační systémy, ať už to byl multiprogramový Concurent CP/M, multiuživatelský MP/M, připadne CP/NET, který mohl sdílet prostředky v rámci počítačové sítě, přestože z CP/M bezprostředné vycházely, se nikdy tak masově nerozšířily. Z CP/M v podstatě vycházel i operační systém ISIS II firmy Intel, který je určený pro vývojové systémy s procesorem 8080. S nástupem šestnácti bitových procesorů rozhodně sláva CP/M nepohasla ale promítla se do operačního systému CP/M-86
Zde je dobře si uvědomit, že podstatou velikého úspěchu CP/M byla možnost přizpůsobení pro nejrůznější hardwarové konfigurace počítačů různých výrobců. Jeho jádro je totiž systémově nezávislé a přizpůsobení ke konkrétnímu počítači zprostředkovává pouze modul BIOS. Programy pracující nad CP/M jsou pak plně přenositelné z jednoho počítače na druhý a vzhledem ke shodným základním instrukčním kódům, mohou většinou pracovat s procesory 8080 i Z80.
Masová produkce IBM PC naopak donutila ostatní výrobce přizpůsobit své šestnáctibitové počítače nejen operačnímu systému MS-DOS, ale i hardwarovému uspořádání vzoru.
Přestože se v ČSSR začínají šířit i počítače kompatibilní s IBM PC, není jich zatím tolik, aby se dalo mluvit o masovém rozšíření. Ostatně, na řadu aplikací by byl IBM PC zbytečné velký kalibr. Osmibitové počítače tedy ještě dost dlouho budou u nás patřit mezi nejrozšířenější v profesionálním nasazení. A zde se právě používá CP/M v. 2.2, buď pod označením MIKROS u našich počítačů, nebo jako SCP u dovážených počítačů Robotron 1715 z NDR.
Při prudkém rozvoji elektronizace našeho hospodářství je zapotřebí mnoha zkušených programátorů i operátorů k počítačům. Nejlepším školením je jistě praxe a tu umožní mimo jiné i zmíněná implementace CP/M na nejrozšířenější mikropočítač Sinclair ZX Spectrum. Úpravy schopný by byl i kompatibilní Didaktik Gama, výrobek družstva Služba Skalica, který je na našem trhu. Na úrovni tohoto operačního systému se však mohou sejít uživatelé Spectra s uživateli řady dalších u nás dostupných osobních mikropočítačů a vyměňovat si programy. Berte to jako výzvu k implementaci tohoto systému i na další počítače, pokud jím nejsou vybaveny již výrobcem.
Daniel Meca
Následující zapojení umožňuje rozšířit paměť počítače ZX Spectrum na 80 až 528 kB tak, aby mohl mimo jiné pracovat též s operačním systémem CP/M. Byla ověřena výborná implementace CP/M v. 2.2, jejímž autorem je J. Lamač. Při použití paměti RAM 4164, je dosažená kapacita paměti 80 kB, při jedné sadě 41256 (4256) vzroste na 272 kB, v případě použití dvou sad, až na 528 kB. Pro celé zapojení je navržena deska plošných spojů, která umožňuje všechny popsané varianty osazení. Její rozměry jsou zvoleny tak, aby ji bylo možné vestavět přímo do počítače (i do tzv. "gumáku") (vlastní paměti se osazují přímo do základní desky počítače).
S výjimkou [1] a [2] používala všechna dosud známá zapojení rozšíření paměti stránkováním horních 32k, takže se nehodila k implementaci operačního systému CP/M. V literatuře [2] je sice použito stránkování spodní části adresového prostoru, ale zapojení je příliš složité a nepočítá zřejmě s dalším rozšiřováním paměti. Navíc se zapojení nevejde do počítače. Podstatným nedostatkem zapojení podle [2] je však to, že při použití ZX Interface 1, Beta-disk, Opus Discovery, ZX Interface 3, Kempston E, Lprint 4 a dalších standardních periférií, stránkujících ROM, dochází ke kolizím na sběrnici. To je u našeho zapojení uveřejněného v [1] i u zde předkládaného, softwarově s ním zcela kompatibilního zapojení, zcela vyloučeno.
Především něco o tom, jak je v ZX-Spectrum adresována paměť. Od adresy 0000h do 3FFFH je normálně paměf ROM. V oblasti od 4000h do 7FFFh je fyzicky oddělená RAM, v jejíž části je uložena obrazová paměť a která je přednostně obsluhována zobrazovací částí obvodu ULA. V dalším textu bude označovaná jako VRAM. Od 8000h do FFFFh je zcela nezávislá RAM.
Výběrové obvody pro ROM a VRAM jsou umístěny v obvodu ULA a pracují následovně:
A15 | A14 | ; | ROM | VRAM |
0 | 0 | ; | aktivní | odpojená |
0 | 1 | ; | odpojená | aktivní |
1 | x | ; | odpojená | odpojená |
Výběrový obvod pamětí RAM je u verzí Spectra 2 až 4 tvořen obvody 74LS32 a 74LS00, u verze 6 (Spectrum +) slouží k tomu účelu obvod ULA2.
V navrženém zapojení je využit stav, kdy A15 na 74LS00 (ULA2 pin 37) je na úrovni logické jedničky a paměti ROM i VRAM jsou odpojeny. Zapojení je na obr. 1.
K řízení a stránkování pamětí RAM je použit port na adrese 253 (0FDh). Tento port byl zvolen z následujících důvodů:
- v žádné standardní periférii ZX Spectra není využit;
- možnost použiti lineární adresace pomocí A1;
- přímá návaznost na rozšíření pro 80 kB
z [1];
- tento port je použit též na stránkování ZX Spectrum I28k, +2 a +3. kde je však
navíc, poněkud nešťastné, připojen ještě zvukový generátor a tiskárna.
Výběrový obvod rozšířené paměti je tvořen dvěma hradly OR (I01c a I01d). Ten při aktivních signálech IORQ=0 a A1=0 zapíše vzestupnou hranou signálu WR data z datové sběrnice do šestinásobného registru D (I05).
Rezistor, zařazený mezi výstupem výběrového obvodu (I01 c) a hodinovým vstupem registru, spolu se spínačem slouží k zablokování zápisu do registru, takže nelze manipulovat s paměti a počítač se chová jako bez úpravy (nutno použit u her firmy ULTIMATE a u her pro ZX 48/128).
Po připojení napájení, nebo po resetu, je registr nastaven do výchozí polohy, tj. mód 48k.
K významu jednotlivých bitů:
bit 7 - odpojuje ROM a VRAM a připojuje RAM od adresy 0000h - jedná se vlastně o mód 80k, jako v [1];
bity 6, 5, 4 a (3) - určují číslo stránky (stránka = 32k);
bit 0 - softwarově ovládaná LED.
Z KO (klopný obvod) bitu 7 je řízeno hradlo OR (I01 b), které posílenou A15 upraví na A15'. Pokud je bit 7 na log. O, pak A15' = A15. Při bitu 7 na log. 1, je A15' trvale na log. 1. Protože A15' je vedena na obvod ULA a na 74LS00 (ULA2), je zajištěno odpojeni ROM a VRAM. RAM může být tedy připojena od adresy 0000h. A protože je A15' vyvedená i na vnější sběrnici, nemůže být při takovém přestránkování na této sběrnici nižší adresa než 8000h, což automaticky vylučuje připojeni vnější ROM a z toho pramenící kolize.
Bity 6 a 5 jsou vedeny z KO na I07, který multiplexuje devátý adresový vodič A8-256 pro obvody 41256 (pin 1). Přepínacím signálem je signál 'S' původního 74LS157 (ULA2 pin 35). Za I07b je hradlo NOR (I02c), které zajišťuje spolu s hradly OR (I06a,d) adresování posledních stránek (stránky '7', případně 'F') od adresy 8000h.
Bit 4 je zaveden přes hradlo OR (I06a) na výstup A15", který se připojí na vstup 'A' multiplexeru 74LS157 (ULA2 pin 25/24) místo propojky TI (viz obr. 2).
Bit 3 se používá pouze při zapojeni pro 528K a hradla I06b, c, d a I02b slouží pro přepínání signálu CAS do příslušné sady.
Bit 0 je rezervní a v současné době je využíván pro softwarové ovládanou LED, která může například indikovat použití RAM atd.
Bity 1 a 2 nejsou použity.
Všechny paměti 41256 a některé 4164 vyžadují osmibitový občerstvovací cyklus (refresh) a Z80 generuje pouze sedmibitový. Proto je součástí zapojení též obvod vytvářející osmý bit refreshe. Do klopného obvodu D (I04a) je vzestupnou hranou signálu MREQ v době, kdy je aktivní signál RFSH, přepsán stav A6. V té době je na adresové sběrnici platná občerstvovací adresa. Druhý KO D (I04b) je zapojen jako délička dvěma. I03 tvoří multiplex pro A14 a osmý bit refreshe. Signál A14' je zaveden na vstup 'B' multiplexeru 74S157 (ULA2 pin 24/25) místo propojky OKI (viz obr. 2).
U verzi Spectra 2, 3 a 4 je obvod 74LS00 označen jako IC24. 74LS32 jako IC23 a 74LS157 jako IC26.
Celé zapojení je umístěno na jednostranném plošném spoji podle obr. 3;
rozmístění součástek je na obr. 4.
Tato destička se vejde u verzí Spectra 2, 3 a 4 přesně mezi procesor Z80A a obvod ULA, u verze 6 je ji možno umístit prakticky kamkoliv, protože v pouzdře ZX Spectrum + je místa dostatek.
Místa nejvhodnějšího přeškrábnutí A15 a CAS jsou vyznačena na obr. 5.
Při osazování 41256 je nutno pin 1 ohnout stranou a u všech osmi (šestnácti) obvodů spojit s A8-256. Při použití šestnácti obvodů 41256 se musí vždy dva obvody umístit na sebe s tím, že horní sada má piny 15 vyhnuty nahoru a spojeny vodičem se signálem CAS1.
Pro modifikaci 80k se osazuji I01 a I05, případně pro refresh I02, I03 a I04. Z vodičů se zapojí A15, A15', D7, WR, IORQ, A1, RESET a místo A15" se ve Spectru zapojí A15. V případě použití obvodu pro generování osmého bitu občerstvení se zapojí A6. A14, A14/, MREQ a REFR. Pro variantu 272k se zapojí vše, kromě D3, CAS, CASO, CAS1.
Při použití variant s pamětí 272k a 538k je vždy poslední stránka RAM přístupná dvakrát. Je to třeba mít na zřeteli při psaní programů.
A15... | pin 5 CPU Z80; |
A15'... | pin 37 ULA, konektor 1B. nebo pin 37 ULA2 (obr. 5); |
A15"... | místo propojky TI obr. 2; |
CAS ... | pin 6 IC23 (74LS32). nebo pin 34 ULA2; |
A14 ... | střed propojek TI a OKI (obr. 2); |
A14'... | místo propojky OKI (obr. 2); |
'S'... | pin 1 I026 (74LS157), nebo pin 35 ULA2. |
Jakub Vaněk (autor zapojeni), Daniel Meca
[1] Lamač. J.: 80k RAM pro ZX Spectrum. Mikrobáze 06, str. 141.
[2] Troller. P.; Císař, P.: Úprava adresování a zvětšení rozsahu paměti počítače ZX Spectrum. ST 11/87, str. 417. (Více zde.)
[3]Nepřeberné množství článků v AR i v zahraniční literatuře.
Stránka byla už zobrazena: 2230 ×
Aktualizováno: 2. 5. 2018, 18:56
Stránka načtena za 0.00281 sekund.