Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Původní podoba příspěvku

Anonym Zpět na příspěvek

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"></td><td align=right valign="middle"></td></tr></table><BR>       <div><font>Ahoj,</font></div> <div><font></font>&nbsp;</div> <div><font>Mal som na mysli nasledovné:</font></div> <div><font></font>&nbsp;</div> <div><font>Prvý OUT 78h: zápis D0..D7 do záchytného registra.</font></div> <div><font>Druhý OUT 78h: obsah záchytného registra do HDD (D0..D7) plus D0..D7 do HDD (D8..D15).</font></div> <div><font></font>&nbsp;</div> <div><font>A tak dalej striedavo... Podobne pri vstupe:</font></div> <div><font></font>&nbsp;</div> <div><font>Prvý IN 78h: D0..D7 z HDD do D0..D7 na MZ, D8..D15 z HDD do záchytného registra.</font></div> <div><font>Druhý IN 78h: čítanie D0..D7 zo záchytného registra.</font></div> <div><font></font>&nbsp;</div> <div><font>Iný sled resp. náväznosť&nbsp;bajtov neprichádza do úvahy (kvôli rýchlosti a kompatibilite s PC).</font></div> <div><font></font>&nbsp;</div> <div><font>V podstate ide o pridanie deličky jedna ku dvom na dekodér adresy 78h, ktorá by striedavo&nbsp;prepínala medzi HDD a záchytným registrom. To nemôže byť predsa až tak zložité, v žiadnom prípade netreba GAL či dokonca 8052!</font></div> <div><font></font>&nbsp;</div> <div><font>Marek.</font></div> <div><font></font>&nbsp;</div> <div><font>P.S. pokiaľ ide o filesystém FAT, už sa na ňom pracuje... ;-)</font></div>  <div>----- Original Message ----- </div> <div><b>From:</b> <a href="mailto:sharpemu@pandora.cz)">Petr Žydek (sharpemu@pandora.cz)</a> </div> <div><b>To:</b> <a href="mailto:sharpemu@pandora.cz">Konference Počítač SHARP MZ-800 a emulátory</a> </div> <div><b>Sent:</b> Monday, May 26, 2003 10:33 AM</div> <div><b>Subject:</b> 2. service packec pro MZ-IDE 16bit</div> <div><br/></div> <p> </p><p><br/>Tak tu máme service packec č. 2.<br/>K aktivitě mě inspirovala reakce Marka<br/>Šmihly na zveřejněný návrh 16bitového<br/>rozhraní HDD pro Sharpa. Sice jsem se<br/>nepokoušel počítat, jak se liší doba<br/>přenosu jednoho 512ti bajtového sektoru<br/>přes běžné I/O instrukce se současnou<br/>manipulací se všemi potřebnými registry<br/>A, BC, HL oproti použití repetičních<br/>instrukcí INIR, OTIR, ale přesto jsem zkusil<br/>podumat nad jinou alternativou...</p> <p><br/>Co je třeba dodržet, docílit:<br/>-potřebujeme 16ti bitový přenos dat, aby<br/>&nbsp;byla využita celá kapacita HDD<br/>-možnost přenosu dat z/na porty<br/>&nbsp;repetičními I/O instrukcemi<br/>-možnost použít funkci autodetekce<br/>&nbsp;parametrů disku<br/>-zařízení by mělo být kompatibilní<br/>&nbsp;s původní 8bitovou verzí<br/>-obvodové řešení musí být co možná<br/>&nbsp;nejjednodušší, malý počet IC snižuje cenu,<br/>&nbsp;šetří místo v případě vývoje kombo desek<br/>-v případě manipulace se signálem disku<br/>&nbsp;/sels se nabízí možnost obsluhy dvou<br/>&nbsp;HDD, tedy princip master/slave jako u PC<br/>-pokud by byla akceptována možnost provozu<br/>&nbsp;dvou HDD, pak se jasně nabízí možnost<br/>&nbsp;využití souborových systémů FAT(32), tím<br/>&nbsp;nemyslím přímé začlenění do CP/M, slave<br/>&nbsp;disk by sloužil jako přenosný element<br/>&nbsp;Sharp &lt;-&gt; PC. Konverzi souborových<br/>&nbsp;systémů a vlastních dat může provádět<br/>&nbsp;aplikační program pod CP/M typu<br/>&nbsp;file-manažer; stejně tak CP/Movsky<br/>&nbsp;nahraný disk by byl čitelný pro<br/>&nbsp;aplikační program v PC, ten by ho<br/>&nbsp;přečetl celý raz dva</p> <p>Jak to tedy vyřešit:</p> <p>Tahhle nějak vypadá zápis 512ti bajtového<br/>sektoru na MZ-IDE 8bit (odhaduju):</p> <p>xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; nastav příslušné hodnoty<br/>xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; do registru stopy,<br/>xxx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; sektoru atd.<br/>LD HL, "odkud"&nbsp; ; adresa dat v paměti<br/>LD B,00h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 256 bajtů dat<br/>LD C,78h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; adresa datového portu HDD<br/>OTIR***&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; přenese B bajtů na port<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 78h od adresy v HL <br/>OTIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; ještě jednou totéž</p> <p>Doufám, že jsem se nespletl, už jsem si<br/>dlouho v asm Z80 nehrál, je-li pravda, že<br/>po instrukci *** B=00h, HL="odkud"+256 a C<br/>se nemění, pak se vykoná přenos jako dvě<br/>256tice I/O cyklů po sobě pomocí instrukcí<br/>OTIR (???)</p> <p>U PC bych si představil něco podobného, jen<br/>registry jsou víceslovné (to je výraz!) a<br/>datová sběrnice je 16ti bitová, takže se<br/>přenese jedním "OTIRem" (dejme tomu) jediná<br/>256tice najednou, protože je široká 16 bitů<br/>a ne 8.</p> <p>Pokud by měl na tomto místě fungovat nějaký<br/>obvodový supervizor, který by datový tok<br/>na port 78h střídavě přepínal tak, abychom<br/>docílili připravenosti 16ti bitů dat každé<br/>dva I/O zápisy a pak by se provedl jeden<br/>vybavovací zápis do HDD, připomíná mi to<br/>křižovatku se semafory kde se po každém<br/>projetém autě mění volný směr jízdy.</p> <p>Můj návrh zní: využít toho, že se v každém<br/>případě přenáší 256 bajtů 2x po sobě, navíc<br/>obsah registru B sám inkrementuje a posílá<br/>se na A8-A15 adresové sběrnice Sharpa!!!<br/>Obvodové řešení by vycházelo z mého<br/>původního návrhu 16ti bitového rozhraní tj.:<br/>&nbsp;&nbsp; 1x 74LS245<br/>&nbsp;&nbsp; 1x 27xxx<br/>&nbsp;&nbsp; 1-2 další 74LS241, 245 (podle výsledku)<br/>&nbsp;&nbsp; 1x SRAM 6116 2kB</p> <p>Příklad zápisu:<br/>LD HL,"odkud"&nbsp; ; adresa dat v paměti<br/>LD B,00h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; 256 bajtů dat<br/>LD C,77h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; adresa pomocného bufferu<br/>OTIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; naplní se pomocný 256ti<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; bajtový buffer (Statická RAM)<br/>LD C,78h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; adresa datového portu HDD<br/>OTIR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; přenos 256ti bajtů na<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; D0-D7 HDD, synchronně a<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; "skrytě" se také přenáší<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ; obsah bufferu na D8-D15 HDD</p> <p>-čtení by probíhalo obdobným způsobem<br/>-rutina s příkladem přenosu je o jedinou<br/>&nbsp;instrukci delší<br/>-je třeba vyřešit správnou návaznost a<br/>&nbsp;kontinuitu dat (záležitost OS), neboť<br/>&nbsp;u PC je při 16ti bitovém přenosu sled dat<br/>&nbsp;následující (pokud se pletu, tak prosím<br/>&nbsp;nenadávat):<br/>&nbsp;<br/>0. bajt na D0-D7 ; 1. 16ti bitový zápis<br/>1. bajt na D8-D15</p> <p>2. bajt na D0-D7 ; 2. 16ti bitový zápis<br/>3. bajt na D8-D15</p> <p>&nbsp; .<br/>&nbsp; .<br/>&nbsp; .<br/>&nbsp; .<br/>511. bajt na D0-D7 ; 256. 16ti bitový zápis<br/>512. bajt na D8=D15</p> <p>&nbsp;a tady se posílá jedna 256ka dat, fik ho,<br/>&nbsp;druhá 256ka, hotovo<br/>-je-li toto velký problém, pak zůstává ve<br/>&nbsp;hře původní verze 16ti bitového rozhraní,<br/>&nbsp;jednodušší Hw řešení nedovedu vymyslet</p> <p><br/>V průběhu týdne možná opravím výkres a<br/>upřesním význam portů a počet IC.</p> <p>Petr de Zviqov 26.5. 2003 0:55hod<br/></p><pre></pre> <p>-- <br/><b>Máte problémy s mobilem? <a href="http://mobil.cz/ad_campaign.html?client=poradna">Zkuste poradnu na Mobil.cz!</a></b></p>