{"id":930533,"date":"2019-03-31T23:31:19","date_gmt":"2019-03-31T22:31:19","guid":{"rendered":"https:\/\/sindik.at\/?p=930533"},"modified":"2019-03-31T23:31:27","modified_gmt":"2019-03-31T22:31:27","slug":"cp-m-na-zx-spectrum","status":"publish","type":"post","link":"https:\/\/sindik.at\/?p=930533","title":{"rendered":"CP\/M na ZX Spectrum"},"content":{"rendered":"\n<p>V r\u00e1mci nede\u013en\u00e9ho retra tu m\u00e1me jeden opr\u00e1\u0161en\u00fd \u010dl\u00e1nok z AR 9\/88, k o\u017eiveniu ktor\u00e9ho ma in\u0161piroval Doda na Foreveri, ke\u010f mi predv\u00e1dzal svoje Spektrum upraven\u00e9 pr\u00e1ve  pod\u013ea tohto n\u00e1vodu. <\/p>\n\n\n\n<!--more-->\n\n\n\n<p><strong>Jak jsme ji\u017e d\u0159\u00edve sl\u00edbili, p\u0159in\u00e1\u0161\u00edme dnes kompletn\u00ed n\u00e1vod na roz\u0161\u00ed\u0159en\u00ed pam\u011bti pro mikropo\u010d\u00edta\u010d ZX Spectrum na 80 a\u017e 528 kB a podrobn\u00fd popis implementace opera\u010dn\u00edho syst\u00e9mu CP\/M 60 kB v. 2.2 na tento po\u010d\u00edta\u010d. Autory jsou Ji\u0159\u00ed Lama\u010d &#8211; software a Jakub Van\u011bk &#8211; hardware, text \u010dl\u00e1nku napsal Daniel Meca.<br> R\u016fzn\u00fdch n\u00e1vod\u016f na \u00fapravu pam\u011bt\u00ed tohoto u n\u00e1s v\u016fbec nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00edho po\u010d\u00edta\u010de vy\u0161lo ji\u017e i na str\u00e1nk\u00e1ch AR velk\u00e9 mno\u017estv\u00ed. P\u0159esto si pr\u00e1v\u011b tato \u00faprava zaslou\u017e\u00ed zvl\u00e1\u0161tn\u00ed pozornost. Na rozd\u00edl od ostatn\u00edch se toti\u017e auto\u0159i neomezili jen na pouh\u00e9 roz\u0161\u00ed\u0159en\u00ed pam\u011bti, ale na maxim\u00e1ln\u00ed roz\u0161\u00ed\u0159en\u00ed mo\u017enost\u00ed po\u010d\u00edta\u010de, p\u0159i zachov\u00e1n\u00ed jednoduchosti a dostupn\u00e9 po\u0159izovac\u00ed ceny. V tom jde popisovan\u00e1 \u00faprava d\u016fsledn\u011b \u201eve stop\u00e1ch sira Sinclaira\u201c.<\/strong><\/p>\n\n\n\n<p>Pro takto upraven\u00fd po\u010d\u00edta\u010d bylo ji\u017e naps\u00e1no mnoho zaj\u00edmav\u00fdch a u\u017eite\u010dn\u00fdch program\u016f, kter\u00e9 pln\u011b vyu\u017e\u00edvaj\u00ed nov\u00e9 konfigurace pam\u011bti a jej\u00edch mo\u017enost\u00ed. Mnoho u\u017eivatel\u016f jist\u011b zaujme komfortn\u00ed kop\u00edrovac\u00ed program s voln\u00fdm pracovn\u00edm prostorem pln\u00fdch 64 kB, s pr\u016fb\u011b\u017en\u00fdm zobrazov\u00e1n\u00edm velikosti pam\u011bti b\u011bhem nahr\u00e1v\u00e1n\u00ed. Program umo\u017e\u0148uje libovoln\u011b kop\u00edrovat z kazety i Microdrive a to t\u00e9\u017e prost\u0159ednictv\u00edm s\u00edt\u011b NET.<\/p>\n\n\n\n<p>Zaj\u00edmav\u00fd je nesporn\u011b i monitor a disassembler s pronikav\u011b roz\u0161\u00ed\u0159en\u00fdm pracovn\u00edm prostorem. Pro dal\u0161\u00ed roz\u0161\u00ed\u0159en\u00ed mo\u017enost\u00ed Spectra navrhl J. Lama\u010d novou EPROM na m\u00edsto p\u016fvodn\u00ed ROM. Ta zachov\u00e1v\u00e1 v\u0161echny p\u016fvodn\u00ed mo\u017enosti, nav\u00edc v\u0161ak opravuje chyby p\u016fvodn\u00edho syst\u00e9mu a obsahuje vestav\u011bn\u00fd monitor pam\u011bti. D\u00e1le umo\u017e\u0148uje zad\u00e1vat kl\u00ed\u010dov\u00e1 slova BASIC vyps\u00e1n\u00edm, zkratkou, nebo jedinou kl\u00e1vesou. Pomoc\u00ed t\u00e9to EPROM Ize t\u00e9\u017e p\u0159\u00edmo z BASICU ovl\u00e1dat RAM-DISK. Korunou tohoto sna\u017een\u00ed je v\u0161ak \u00fasp\u011b\u0161n\u00e1 implementace opera\u010dn\u00edho syst\u00e9mu CP\/M v. 2.2, kter\u00e1 pov\u00fd\u0161ila r\u00e1zem po\u010d\u00edta\u010d, p\u016fvodn\u011b ur\u010den\u00fd p\u0159ev\u00e1\u017en\u011b pro televizn\u00ed hry, do kategorie bl\u00edzk\u00e9 profesion\u00e1ln\u00edm po\u010d\u00edta\u010d\u016fm.<\/p>\n\n\n\n<center><h2><strong>N\u011bco o CP\/M jako takov\u00e9m<\/strong><\/h2><\/center>\n\n\n\n<p>Prvn\u00ed pou\u017eiteln\u00e1 verze opera\u010dn\u00edho syst\u00e9mu CP\/M se roz\u0161\u00ed\u0159ila do sv\u011bta ji\u017e v roce 1976, kdy jeho autor, Gary Kildall, zalo\u017eil firmu Digital Research. Tehdy se jednalo O verzi 1.3. N\u00e1sledovaly verze 2.2 a 3.1, kter\u00e9 okam\u017eit\u011b po sv\u00e9m zve\u0159ejn\u011bn\u00ed opanovaly sf\u00e9ru osmibitov\u00fdch po\u010d\u00edta\u010d\u016f a sv\u00e9 prvenstv\u00ed si udr\u017eely dodnes. Ostatn\u00ed opera\u010dn\u00ed syst\u00e9my, a\u0165 u\u017e to byl multiprogramov\u00fd Concurent CP\/M, multiu\u017eivatelsk\u00fd MP\/M, p\u0159\u00edpadn\u011b CP\/NET, kter\u00fd mohl sd\u00edlet prost\u0159edky v r\u00e1mci po\u010d\u00edta\u010dov\u00e9 s\u00edt\u011b, p\u0159esto\u017ee z CP\/M bezprost\u0159edn\u011b vych\u00e1zely, se nikdy tak masov\u011b neroz\u0161\u00ed\u0159ily. Z CP\/M v podstat\u011b vych\u00e1zel i opera\u010dn\u00ed syst\u00e9m ISIS II firmy Intel, kter\u00fd je ur\u010den\u00fd pro v\u00fdvojov\u00e9 syst\u00e9my s procesorem 8080. S n\u00e1stupem \u0160estn\u00e1ctibitov\u00fdch procesor\u016f rozhodn\u011b sl\u00e1va CP\/M nepohasla ale prom\u00edtla se do opera\u010dn\u00edho syst\u00e9mu CP\/M-86.<\/p>\n\n\n\n<p>Zde je dob\u0159e si uv\u011bdomit, \u017ee podstatou velik\u00e9ho \u00fasp\u011bchu CP\/M byla mo\u017enost p\u0159i zp\u016fsoben\u00ed pro nejr\u016fzn\u011bj\u0161\u00ed hardwarov\u00e9 konfigurace po\u010d\u00edta\u010d\u016f r\u016fzn\u00fdch v\u00fdrobc\u016f. Jeho j\u00e1dro je toti\u017e syst\u00e9mov\u011b nez\u00e1visl\u00e9 a p\u0159izp\u016fsoben\u00ed ke konkr\u00e9tn\u00edmu po\u010d\u00edta\u010di zprost\u0159edkov\u00e1v\u00e1 pouze modul BIOS. Programy pracuj\u00edc\u00ed nad CP\/M jsou pak pln\u011b p\u0159enositeln\u00e9 z jednoho po\u010d\u00edta\u010de na druh\u00fd a vzhledem ke shodn\u00fdm z\u00e1kladn\u00edm instruk\u010dn\u00edm k\u00f3d\u016fm, mohou v\u011bt\u0161inou pracovat s procesory 8080 i Z80.<\/p>\n\n\n\n<p>Masov\u00e1 produkce IBM PC naopak donutila ostatn\u00ed v\u00fdrobce p\u0159izp\u016fsobit sv\u00e9 \u0161estn\u00e1ctibitov\u00e9 po\u010d\u00edta\u010de nejen opera\u010dn\u00edmu syst\u00e9mu MS-DOS, ale i hardwarov\u00e9mu uspo\u0159\u00e1d\u00e1n\u00ed vzoru.<\/p>\n\n\n\n<p>P\u0159esto\u017ee se v \u010cSSR za\u010d\u00ednaj\u00ed \u0161\u00ed\u0159it i po\u010d\u00edta\u010de kompatibiln\u00ed s IBM PC, nen\u00ed jich zat\u00edm tolik, aby se dalo mluvit o masov\u00e9m roz\u0161\u00ed\u0159en\u00ed. Ostatn\u011b, na \u0159adu aplikaci by byl IBM PC zbyte\u010dn\u011b velk\u00fd kalibr. Osmibitov\u00e9 po\u010d\u00edta\u010de tedy je\u0161t\u011b dost dlouho budou u n\u00e1s pat\u0159it mezi nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00ed v profesion\u00e1ln\u00edm nasazen\u00ed. A zde se pr\u00e1v\u011b pou\u017e\u00edv\u00e1 CP\/M v. 2.2, bud&#8216; pod ozna\u010den\u00edm MIKROS u na\u0161ich po\u010d\u00edta\u010d\u016f, nebo jako SCP u dov\u00e1\u017een\u00fdch po\u010d\u00edta\u010d\u016f Robotron 1715 z NDR.<\/p>\n\n\n\n<p>P\u0159i prudk\u00e9m rozvoji elektronizace na\u0161eho hospod\u00e1\u0159stv\u00ed je zapot\u0159eb\u00ed mnoha zku\u0161en\u00fdch program\u00e1tor\u016f i oper\u00e1tor\u016f k po\u010d\u00edta\u010d\u016fm. Nejlep\u0161\u00edm \u0161kolen\u00edm je jist\u011b praxe a tu umo\u017en\u00ed mimo jin\u00e9 i zm\u00edn\u011bn\u00e1 implementace CP\/M na nejroz\u0161\u00ed\u0159en\u011bj\u0161\u00ed mikropo\u010d\u00edta\u010d Sinclair ZX Spectrum. \u00dapravy schopn\u00fd by byl i kompatibiln\u00ed Didaktik Gama, v\u00fdrobek dru\u017estva Slu\u017eba Skalica, kter\u00fd je na na\u0161em trhu. Na \u00farovni tohoto opera\u010dn\u00edho syst\u00e9mu se v\u0161ak mohou sej\u00edt u\u017eivatel\u00e9 Spectra s u\u017eivateli \u0159ady dal\u0161\u00edch u n\u00e1s dostupn\u00fdch osobn\u00edch mikropo\u010d\u00edta\u010d\u016f a vym\u011b\u0148ovat si programy. Berte to jako v\u00fdzvu k implementaci tohoto syst\u00e9mu i na dal\u0161\u00ed po\u010d\u00edta\u010de, pokud j\u00edm nejsou vybaveny ji\u017e v\u00fdrobcem.<\/p>\n\n\n\n<p><strong>Daniel Meca<\/strong><\/p>\n\n\n\n<center><h2><strong>ZX Spectrum 528 kB <br>\u00daprava vhodn\u00e1 k implementaci CP\/M<\/strong><\/h2><\/center>\n\n\n\n<p>N\u00e1sleduj\u00edc\u00ed zapojen\u00ed umo\u017e\u0148uje roz\u0161\u00ed\u0159it pam\u011b\u0165 po\u010d\u00edta\u010de ZX Spectrum na 80 a\u017e 528 kB tak, aby mohl mimo jin\u00e9 pracovat t\u00e9\u017e s opera\u010dn\u00edm syst\u00e9mem CP\/M. Byla ov\u011b\u0159ena v\u00fdborn\u00e1 implementace CP\/M v. 2.2. jej\u00edm\u017e autorem je J. Lama\u010d. P\u0159i pou\u017eit\u00ed pam\u011bti RAM 4164, je dosa\u017een\u00e1 kapacita pam\u011bti 80 kB, p\u0159i jedn\u00e9 sad\u011b 41256 (4256) vzroste na 272 kB, v p\u0159\u00edpad\u011b pou\u017eit\u00ed dvou sad, a\u017e na 528 kB. Pro cel\u00e9 zapojen\u00ed je navr\u017eena deska plo\u0161n\u00fdch spoj\u016f, kter\u00e1 umo\u017e\u0148uje v\u0161echny popsan\u00e9 varianty osazen\u00ed. Jeji rozm\u011bry jsou zvoleny tak, aby ji bylo mo\u017en\u00e9 vestav\u011bt p\u0159\u00edmo do po\u010d\u00edta\u010de (i do tzv..gumaku&#8220;) (vlastn\u00ed pam\u011bti se osazuj\u00ed p\u0159\u00edmo do z\u00e1kladn\u00ed desky po\u010d\u00edta\u010de).<\/p>\n\n\n\n<p>S v\u00fdjimkou [1] a [2] pou\u017e\u00edvala v\u0161echna dosud zn\u00e1m\u00e1 zapojen\u00ed roz\u0161\u00ed\u0159en\u00ed pam\u011bti str\u00e1nkov\u00e1n\u00edm horn\u00edch 32k, tak\u017ee se nehodila k implementaci opera\u010dn\u00edho syst\u00e9mu CP\/M. V literatu\u0159e [2] je sice pou\u017eito str\u00e1nkov\u00e1n\u00ed spodn\u00ed \u010d\u00e1sti adresov\u00e9ho prostoru, ale zapojen\u00ed je p\u0159\u00edli\u0161 slo\u017eit\u00e9 a nepo\u010d\u00edt\u00e1 z\u0159ejm\u011b s dal\u0161\u00edm roz\u0161i\u0159ov\u00e1n\u00edm pam\u011bti. Nav\u00edc se zapojen\u00ed nevejde do po\u010d\u00edta\u010de. Podstatn\u00fdm nedostatkem zapojen\u00ed podle [2] je v\u0161ak to, \u017ee p\u0159i pou\u017eit\u00ed ZX Interface 1, Beta-disk, Opus Discovery, ZX Interface 3, Kempston E, Lprint 4 a dal\u0161\u00edch standardn\u00edch perif\u00e9ri\u00ed, str\u00e1nkuj\u00edc\u00edch ROM, doch\u00e1z\u00ed ke koliz\u00edm na sb\u011brnici. To je u na\u0161eho zapojen\u00ed uve\u0159ejn\u011bn\u00e9ho v [1] i u zde p\u0159edkl\u00e1dan\u00e9ho, softwarov\u011b s n\u00edm zcela kompatibilniho zapojen\u00ed, zcela vylou\u010deno.<br><\/p>\n\n\n\n<center><h2><strong>Popis zapojen\u00ed<\/strong><\/h2><\/center>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"887\" height=\"1024\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr1-887x1024.jpg\" alt=\"\" class=\"wp-image-930535\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr1-887x1024.jpg 887w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr1-260x300.jpg 260w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr1-768x886.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr1.jpg 974w\" sizes=\"auto, (max-width: 887px) 100vw, 887px\" \/><\/figure>\n\n\n\n<p>P\u0159edev\u0161\u00edm n\u011bco o tom, jak je v ZXSpectrum adresov\u00e1na pam\u011bt. Od adresy 0000h do 3FFFh je norm\u00e1ln\u011b pam\u011bt ROM. V oblasti od 4000h do 7FFFh je fyzicky odd\u011blen\u00e1 RAM, v jej\u00ed\u017e \u010d\u00e1sti je ulo\u017eena obrazov\u00e1 pam\u011b\u0165 a kter\u00e1 je p\u0159ednostn\u011b obsluhov\u00e1na zobrazovac\u00ed \u010d\u00e1sti obvodu ULA. V dal\u0161\u00edm textu bude ozna\u010dovan\u00e1 jako VRAM. Od 8000h do FFFFh je zcela nez\u00e1visl\u00e1 RAM.<br>V\u00fdb\u011brov\u00e9 obvody pro ROM a VRAM jsou um\u00edst\u011bny v obvodu ULA a pracuji n\u00e1sledovn\u011b:<\/p>\n\n\n\n<table><tr><td>A15<\/td><td>A14<\/td><td>ROM<\/td><td>VRAM<\/td><\/tr>\n<tr><td>0<\/td><td>0<\/td><td>aktivn\u00ed<\/td><td>odpojen\u00e1<\/td><\/td>\n<tr><td>0<\/td><td>1<\/td><td>odpojen\u00e1<\/td><td>aktivn\u00ed<\/td><\/td>\n<tr><td>1<\/td><td>X<\/td><td>odpojen\u00e1<\/td><td>odpojen\u00e1<\/td><\/td>\n<\/table>\n\n\n\n\n<p>V\u00fdb\u011brov\u00fd obvod pam\u011bti RAM je u verzi Spectra 2 a\u017e 4 tvo\u0159en obvody 74LS32 a 74LS00, u verze 6 (Spectrum +) slou\u017e\u00ed k tomu \u00fa\u010delu obvod ULA2.<br>V navr\u017een\u00e9m zapojen\u00ed je vyu\u017eit stav, kdy A15 na 74LSOO (ULA2 pin 37) je na \u00farovni logick\u00e9 jedni\u010dky a pam\u011bti ROM I VRAM jsou odpojeny. Zapojen\u00ed je na obr. 1.<br>K \u0159\u00edzen\u00ed a str\u00e1nkov\u00e1n\u00ed pam\u011bti RAM je pou\u017eit port na adrese 253 (OFDh). Tento port byl zvolen z n\u00e1sleduj\u00edc\u00edch d\u016fvod\u016f:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>v \u017e\u00e1dn\u00e9 standardni perif\u00e9rii ZX Spectra nen\u00ed vyu\u017eit;<\/li><li>mo\u017enost pou\u017eit\u00ed line\u00e1rn\u00ed adresace pomoc\u00ed A1;<\/li><li>p\u0159\u00edm\u00e1 n\u00e1vaznost na roz\u0161\u00ed\u0159en\u00ed pro 80 kB z (1);<\/li><li>tento port je pou\u017eit t\u00e9\u017e na str\u00e1nkov\u00e1n\u00ed ZX Spectrum 128k, +2 a +3, kde je v\u0161ak navic, pon\u011bkud ne\u0161\u0165astn\u011b, p\u0159ipojen je\u0161t\u011b zvukov\u00fd gener\u00e1tor a tisk\u00e1rna<\/li><li><\/li><\/ul>\n\n\n\n<p>V\u00fdb\u011brov\u00fd obvod roz\u0161\u00ed\u0159en\u00e9 pam\u011bti je tvo\u0159en dv\u011bma hradly OR (IO1c a IO1d). Ten p\u0159i aktivn\u00edch sign\u00e1lech IORQ=0 a A1=0 zap\u00ed\u0161e vzestupnou hranou sign\u00e1lu WR data z datov\u00e9 sb\u011brnice do \u0161estin\u00e1sobn\u00e9ho registru D (IO5).<br>Rezistor, za\u0159azen\u00fd mezi v\u00fdstupem v\u00fdb\u011brov\u00e9ho obvodu (IO1c) a hodinov\u00fdm vstupem registru, spolu se sp\u00edna\u010dem slou\u017e\u00ed k zablokov\u00e1n\u00ed z\u00e1pisu do registru, tak\u017ee nelze manipulovat s pam\u011bt\u00ed a po\u010d\u00edta\u010d se chov\u00e1 jako bez \u00fapravy (nutno pou\u017e\u00edt u her firmy ULTIMATE a u her pro ZX 48\/128).<br>Po p\u0159ipojen\u00ed nap\u00e1jen\u00ed, nebo po resetu, je registr nastaven do v\u00fdchoz\u00ed polohy, tj. m\u00f3d 48k<br> K v\u00fdznamu jednotliv\u00fdch bitu:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>bit 7<\/strong> &#8211; odpojuje ROM a VRAM a p\u0159ipojuje RAM od adresy 0000h &#8211; jedn\u00e1 se vlastn\u011b o m\u00f3d 80k, jako v [1];<\/li><li><strong>bity 6, 5, 4 a (3)<\/strong> \u2013 ur\u010duji \u010d\u00edslo str\u00e1nky (str\u00e1nka = 32k);<\/li><li><strong>bit 0<\/strong> &#8211; softwarov\u011b ovl\u00e1dan\u00e1 LED<\/li><\/ul>\n\n\n\n<p>Z KO (klopn\u00fd obvod) bitu 7 je \u0159\u00edzeno hradlo OR (IO1b), kter\u00e9 pos\u00edlenou A15 upravi na A15&#8242;. Pokud je bit 7 na log. O, pak A15&#8242; = A15. P\u0159i bitu 7 na log. 1, je A15 trvale na log. 1. Proto\u017ee A 15&#8242; je vedena na obvod ULA a na 74LS00 (ULA2), je zaji\u0161t\u011bno odpojen\u00ed ROM a VRAM. RAM m\u016f\u017ee b\u00fdt tedy p\u0159ipojena od adresy 0000h. A proto\u017ee je A15 vyveden\u00e1 i na vn\u011bj\u0161\u00ed sb\u011brnici, nem\u016f\u017ee b\u00fdt p\u0159i takov\u00e9m p\u0159estr\u00e1nkov\u00e1n\u00ed na t\u00e9to sb\u011brnici ni\u017e\u0161\u00ed adresa ne\u017e 8000h, co\u017e automaticky vylu\u010duje p\u0159ipojen\u00ed vn\u011bj\u0161\u00ed ROM a z toho pramen\u00edc\u00ed kolize.<\/p>\n\n\n\n<p><strong>Bity 6 a 5<\/strong> jsou vedeny z KO na IO7, kter\u00fd multiplexuje dev\u00e1t\u00fd adresov\u00fd vodi\u010d A8-256 pro obvody 41256 (pin 1). P\u0159ep\u00ednac\u00edm sign\u00e1lem je sign\u00e1l &#8218;S p\u016fvodn\u00edho 74LS157 (ULA2 pin 35). Za IO7b je hradlo NOR (IO2c), kter\u00e9 zaji\u0161\u0165uje spolu s hradly OR (IO6a,d) adresov\u00e1n\u00ed posledn\u00edch str\u00e1nek (str\u00e1nky &#8218;7&#8216;, p\u0159\u00edpadn\u011b &#8218;F&#8216;) od adresy 8000h.<\/p>\n\n\n\n<p><strong>Bit 4<\/strong> je zaveden p\u0159es hradlo OR (IO6a) na v\u00fdstup A15&#8243;, kter\u00fd se p\u0159ipoji na vstup A multiplexeru 74LS157 (ULA2 pin 25\/24) m\u00edsto propojky Tl (viz obr. 2).<\/p>\n\n\n\n<p><strong>Bit 3<\/strong> se pou\u017e\u00edv\u00e1 pouze p\u0159i zapojen\u00ed pro 528K a hradla IO6b, c, d a IO2b slou\u017e\u00ed pro p\u0159ep\u00edn\u00e1n\u00ed sign\u00e1lu CAS do p\u0159\u00edslu\u0161n\u00e9 sady.<\/p>\n\n\n\n<p><strong>Bit 0<\/strong> je rezervn\u00ed a v sou\u010dasn\u00e9 dob\u011b je vyu\u017e\u00edv\u00e1n pro softwarov\u011b ovl\u00e1danou LED, kter\u00e1 m\u016f\u017ee nap\u0159\u00edklad indikovat pou\u017eit\u00ed RAM atd.<br><\/p>\n\n\n\n<p><strong>Bity 1 a 2 <\/strong>nejsou pou\u017eity. V\u0161echny pam\u011bti 41256 a n\u011bkter\u00e9 4164 vy\u017eaduj\u00ed osmibitov\u00fd ob\u010derstvovac\u00ed cyklus (refresh) a Z80 generuje pouze sedmibitov\u00fd. Proto je sou\u010d\u00e1st\u00ed zapojen\u00ed t\u00e9\u017e obvod vytv\u00e1\u0159ej\u00edc\u00ed osm\u00fd bit refreshe. Do klopn\u00e9ho obvodu D (IO4a) je vzestupnou hranou sign\u00e1lu MREQ v dob\u011b, kdy je aktivn\u00ed sign\u00e1l RFSH, p\u0159eps\u00e1n stav A6. V t\u00e9 dob\u011b je na adresov\u00e9 sb\u011brnici platn\u00e1 ob\u010derstvovac\u00ed adresa. Druh\u00fd KO D (IO4b) je zapojen jako d\u011bli\u010dka dv\u011bma. IO3 tvo\u0159\u00ed multiplex pro A14 a osm\u00fd bit refreshe. Sign\u00e1l A14 je zaveden na vstup &#8218;B&#8216; multiplexeru 745157 (ULA2 pin 24\/25) misto propojky OKI (viz <strong>obr. 2<\/strong>).<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"863\" height=\"226\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr2-1.jpg\" alt=\"\" class=\"wp-image-930536\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr2-1.jpg 863w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr2-1-300x79.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr2-1-768x201.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr2-1-500x131.jpg 500w\" sizes=\"auto, (max-width: 863px) 100vw, 863px\" \/><\/figure>\n\n\n\n<p>U verzi Spectra 2, 3 a 4 je obvod 74LS00 ozna\u010den jako IC24, 74LS32 jako IC23 a 74LS157 jako IC26.<\/p>\n\n\n\n<p>Cel\u00e9 zapojen\u00ed je um\u00edst\u011bno na jednostrann\u00e9m plo\u0161n\u00e9m spoji podle <strong>obr. 3<\/strong>; rozm\u00edst\u011bn\u00ed sou\u010d\u00e1stek je na <strong>obr. 4<\/strong>. Tato desti\u010dka se vejde u verz\u00ed Spectra 2, 3 a 4 p\u0159esn\u011b mezi procesor Z80A a obvod ULA, u verze 6 je ji mo\u017eno um\u00edstit prakticky kamkoliv, proto\u017ee v pouzd\u0159e ZX Spectrum + je m\u00edsta dostatek.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"827\" height=\"1024\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr3-827x1024.jpg\" alt=\"\" class=\"wp-image-930537\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr3-827x1024.jpg 827w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr3-242x300.jpg 242w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr3-768x951.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr3.jpg 841w\" sizes=\"auto, (max-width: 827px) 100vw, 827px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"877\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr4.jpg\" alt=\"\" class=\"wp-image-930538\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr4.jpg 874w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr4-150x150.jpg 150w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr4-300x300.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr4-768x771.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr4-299x300.jpg 299w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><\/figure>\n\n\n\n<p>Mista nejvhodn\u011bj\u0161\u00edho p\u0159e\u0161kr\u00e1bnut\u00ed A15 a CAS jsou vyzna\u010dena na <strong>obr. 5<\/strong>. P\u0159i osazov\u00e1n\u00ed 41256 je nutno pin 1 ohnout stranou a u v\u0161ech osmi (\u0161estn\u00e1cti) obvodu spojit s A8-256. P\u0159i pou\u017eit\u00ed \u0161estn\u00e1cti obvod\u016f 41256 se mus\u00ed v\u017edy dva obvody um\u00edstit na sebe s t\u00edm, \u017ee horn\u00ed sada m\u00e1 piny 15 vyhnuty nahoru a spojeny vodi\u010dem se sign\u00e1lem CAS1.<br>Pro modifikaci 80k se osazuj\u00ed IO1 a IO5, p\u0159\u00edpadn\u011b pro refresh IO2, IO3 a IO4. Z vodi\u010d\u016f se zapoj\u00ed A15, A15&#8242;, D7, WR, IORQ, A1, RESET a m\u00edsto A15&#8243; se ve Spectru zapoj\u00ed A15. V p\u0159\u00edpad\u011b pou\u017eit\u00ed obvodu pro generov\u00e1n\u00ed osm\u00e9ho bitu ob\u010derstven\u00ed se zapoj\u00ed A6, A14, A147, MREQ a REFR. Pro variantu 272k se zapoj\u00ed v\u0161e, krom\u011b D3, CAS, CASO, CAS1.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"831\" height=\"600\" src=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr5.jpg\" alt=\"\" class=\"wp-image-930539\" srcset=\"https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr5.jpg 831w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr5-300x217.jpg 300w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr5-768x555.jpg 768w, https:\/\/sindik.at\/wp-content\/uploads\/2019\/03\/cpm_obr5-416x300.jpg 416w\" sizes=\"auto, (max-width: 831px) 100vw, 831px\" \/><\/figure>\n\n\n\n<p>P\u0159i pou\u017eit\u00ed variant s pam\u011bti 272k a 528k je v\u017edy posledn\u00ed str\u00e1nka RAM p\u0159\u00edstupn\u00e1 dvakr\u00e1t. Je to t\u0159eba m\u00edt na z\u0159eteli p\u0159i psan\u00ed programu.<\/p>\n\n\n\n<p>D\u016fle\u017eit\u00e9 v\u00fdvody v ZX Spectru: <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>A15&#8230; pin 5 CPU Z80; <\/li><li>A15&#8217;&#8230; pin 37 ULA, konektor 1B, nebo pin 37 ULA2 (obr. 5);<\/li><li>A15&#8243; m\u00edsto propojky Ti <strong>obr. 2<\/strong>;<\/li><li>CAS&#8230; pin 6 IC23 (74LS32), nebo pin 34 ULA2;<\/li><li>A14 &#8230; st\u0159ed propojek TI a OKI (<strong>obr. 2<\/strong>);<\/li><li>A14&#8242; &#8230; m\u00edsto propojky OKI (obr. 2); S&#8217;&#8230; pin 1 1026 (74LS157), nebo pin 35 ULA2 <\/li><\/ul>\n\n\n\n<p><strong>Jakub Van\u011bk<\/strong> (autor zapojen\u00ed), <strong>Daniel Meca<\/strong><\/p>\n\n\n\n<p>Literatura:<br>[1] Lama\u010d, J.: 80k RAM pro ZX Spectrum. Mikrob\u00e1ze 06, str. 141<br>[2] Troller, P.; C\u00edsa\u0159, P.: Uprava adresov\u00e1n\u00ed a zv\u011bt\u0161en\u00ed rozsahu pam\u011bti po\u010d\u00edta\u010de ZX Spectrum. ST 11\/87, str. 417 <br>[3] Nep\u0159ebern\u00e9 mno\u017estv\u00ed \u010dl\u00e1nk\u016f v AR i v zahrani\u010dn\u00ed literatu\u0159e.<br><\/p>\n\n\n\n<hr class=\"wp-block-separator\"\/>\n\n\n\n<p>P\u00f4vodne vy\u0161lo v pr\u00edlohe Mikroelektronika \u010dasopisu Amat\u00e9rske radio 9\/1988<\/p>\n\n\n\n<p><br><br><br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>V r\u00e1mci nede\u013en\u00e9ho retra tu m\u00e1me jeden opr\u00e1\u0161en\u00fd \u010dl\u00e1nok z AR 9\/88, k o\u017eiveniu ktor\u00e9ho ma in\u0161piroval Doda na Foreveri, ke\u010f mi predv\u00e1dzal svoje Spektrum upraven\u00e9 pr\u00e1ve pod\u013ea tohto n\u00e1vodu.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[5],"tags":[],"class_list":["post-930533","post","type-post","status-publish","format-standard","hentry","category-tema-2-hardware-php"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5aqy8-3U4B","jetpack_likes_enabled":true,"jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930533","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=930533"}],"version-history":[{"count":2,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930533\/revisions"}],"predecessor-version":[{"id":930541,"href":"https:\/\/sindik.at\/index.php?rest_route=\/wp\/v2\/posts\/930533\/revisions\/930541"}],"wp:attachment":[{"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=930533"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=930533"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sindik.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=930533"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}