Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).
<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"><B>Ramdisk Müller se SIMMy s max. 16MB:</B></td><td align=right valign="middle"></td></tr></table><BR><p>Ještě jednou odkaz se schematem:<br/><a href="http://www.mz-800.aktualne.cz/files/tech/rd-256kb.tif">http://www.mz-800.aktualne.cz/files/tech/rd-256kb.tif</a></p> <p>Detailní popis Hw Müllera jsem publikoval v příspěvku<br/>z 25.4. Úprava pro SIMMy je nakonec jednodušší,<br/>než jsem myslel...</p> <p>Pohleďme na osm pamětí 4464. Vždy dvojice dává<br/>osm bitů dat, vstupuje do ní osm adresních vodičů<br/>A0..A7, signály RAS\', CAS\' (ty vedou do všech čipů<br/>zároveň), OE\' a WE\'. Představme si tedy čtyři<br/>dvojice jako čtyři "SIMMy" (modul SIMM 256KB<br/>zredukujeme snadno na 64KB připojením adresního<br/>pinu A8 na úroveň LOW). Pokud je výkonný člen<br/>na bázi PROM 74188 schopen vygenerovat příslušný<br/>počet CAS before RAS refresh cyklů, musí<br/>čtyři vložené moduly 256KB fungovat stejně jako<br/>čtyři dvojice pamětí 4464. Tato hypotéza platí<br/>i pro čtyři moduly 1MB resp. 4MB (není odzkoušeno).</p> <p>Plnou kapacitu ramdisku využijeme samozřejmě jen<br/>správným stránkováním - ovládáním I/O portu E9h.<br/>Jak na to?<br/>U17 74LS193 nahradíme obvodem 74LS273 (osmibitový<br/>registr s nezávislým resetem). Jeho NEJVYŠŠÍ dva<br/>výstupní bity (u Müllera je to naopak!) přivedeme<br/>na vstupy dekodéru U20B 74LS139. Nižších šest bitů<br/>přivedeme na obvod 74LS257 (jediný přibyvší), na<br/>jeho výstupech získáme tři multiplexní adresní<br/>vodiče A8..A10 (modulu 4MB odpovídá 22 bitů<br/>adresy, což je 11 multiplexních vodičů A0..A10).</p> <p>Tato struktura dovoluje osadit libovolný počet<br/>SIMMů s libovolnou kapacitou modulu (256KB, 1MB,<br/>4MB).</p> <p>Stránkový "management" ramdisku 16MB:<br/>-celkem 256 stránek po 64KB, nejvyšší dva bity<br/>při zápisu na port E9h představují adresu<br/>SIMM modulu:</p> <p>out E9h=00h..3Fh ---> 64 stránek "nulté" patice<br/>out E9h=40h..7Fh ---> 64 stránek "první" patice<br/>out E9h=80h..BFh ---> 64 stránek "druhé" patice<br/>out E9h=C0h..FFh ---> 64 stránek "třetí" patice</p> <p>Při zasunutém modulu do nulté patice je zajištěna<br/>funkčnost SRAMu - sériové paměti, rammdisku pro<br/>Basic i systému Lamač CP/M (po resetu je stav<br/>jako při out E9=00h).<br/>Jinak jsou možné i krkolomnosti např.:<br/>nultá patice ... nic<br/>první patice ... SIMM 1MB<br/>druhá patice ... SIMM 4MB<br/>třetí patice ... SIMM 256KB<br/>celková kapacita 5,25MB (blbý, co?)</p> <p>Ale možné to je, obslužný program si musí<br/>ohlídat správné hodnoty na portu E9h:<br/>00h..3Fh ---> nemá smysl<br/>40h..4Fh ---> 16 stránek v modulu 1MB<br/>80h..BFh ---> 64 stránek v modulu 4MB<br/>C0h..C3h ---> 4 stránky v modulu 256KB</p> <p>Autodetekce kapacity SIMMového ramdisku v rámci<br/>nového HDD+CF O.S. (a detekce jednotlivých modulů<br/>a jejich pozic) by mohla probíhat takto:</p> <p>out E9h=00h ... zjistit, zda je osazena nultá patice,<br/>je-li zápis/čtení OK, out E9h=předchozí hodnota+1<br/>(zjišťuje kapacitu SIMMu), atd.<br/>out E9h=40h ... zjistit, zda je osazena první patice,<br/>je-li zápis/čtení OK, out E9h=předchozí hodnota+1<br/>(zjišťuje kapacitu SIMMu), atd.<br/>atd., atd. (druhá, třetí patice)</p> <p>Samozřejmě že refresh i I/O cyklus čtení/zápisu lze<br/>provést i jinak (předložte návrhy, schemata), čím<br/>méně IC, tím lépe.<br/>Ale tu navrhovanou konvenci se správou stránek<br/>(modulů SIMM) mi neberte ...<br/>(Zdá se mi praktická, je na to třeba pamatovat<br/>při výběru aktivní stránky, jinak se programová<br/>obsluha neodlišuje od klasických ramdisků 80. let<br/>ani od High-Capacity variant se SRAM paměťmi)</p> <p>příště:<br/>-definice portů všech zařízení na kombo kartách<br/>-návrh mechanického a rozměrového řešení karty</p> <p><br/>Petr de Zviqov</p>