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>Nabizi se tu jeste jedno elegantni (ikdyz technicky i programatorsky zrejmne narocne reseni) pro rychly prenos mezi HDD a Sharpem, a to pouziti obvodu Z80-DMA ktery by po spravnem naprogramovani mel dokazat data bez zateze CPU primo transformovat do pameti Sharpa na urcene misto. Vyuziti by to jiste melo pro multimedia jako napr. prehravani samplovaneho zvuku, pripadne videosekvenci :-)</font></div> <div><font></font> </div> <div><font>Zdenek</font></div> <div>----- Original Message ----- </div> <div><b>From:</b> <a href="mailto:smihla@[doména skryta] (sharpemu@pandora.cz)">smihla@[doména skryta] (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> Tuesday, May 27, 2003 1:10 PM</div> <div><b>Subject:</b> Re: 2. service packec pro MZ-IDE 16bit</div> <div><br/></div> <p> <div><font>To riešene s 8255 sa mi zdá ešte pomalšie (až 3 inštrukcie OUT na zápis dvoch bajtov!) To radšej zostaňme u pôvodného Petrovho návrhu (tiež je možné využiť až 4 zaridenia, napr. sekundárny kanál na adresách 67h..6Fh - pri použití EPROM ako dekodéru by to nemal byť žiadny problém).</font></div> <div><font></font> </div> <div><font>Trochu som počítal strojové cykly:</font></div> <div><font></font> </div> <div><font>1. najrýchlejší výstup dvoch bajtov:</font></div> <div><font></font> </div> <div><font>OUTI</font></div> <div><font>OUTI</font></div> <div><font></font> </div> <div><font>16+16=32T</font></div> <div><font></font> </div> <div><font>versus</font></div> <div><font></font> </div> <div><font>LD A,(HL)</font></div> <div><font>INC HL</font></div> <div><font>LD B,(HL)</font></div> <div><font>INC HL</font></div> <div><font>OUT (C),A</font></div> <div><font></font> </div> <div><font>7+6+7+6+12=38T, čo neni až tak zlé. Dokonca rýchlejšie než OTIR (21+21=42T)!</font></div> <div><font></font> </div> <div><font>2. najrýchlejší vstup dvoch bajtov:</font></div> <div><font></font> </div> <div><font>INI</font></div> <div><font>INI</font></div> <div> <div><font></font> </div> <div><font>16+16=32T</font></div> <div><font></font> </div> <div><font>versus</font></div> <div><font></font> </div> <div><font>IN A,(78H)</font></div> <div><font>LD (HL),A</font></div> <div><font>INC HL</font></div> <div><font>IN A,(77H)</font></div> <div><font>LD (HL),A</font></div> <div><font>INC HL</font></div> <div><font></font> </div> <div><font>11+7+6+11+7+6=48T, čo je už horšie, ale iba o 50%.</font></div> <div><font></font> </div> <div><font>Tento mierny pokles rýchlosti je na druhú stranu vyvážený jednoduchosťou zapojenia, takže zvažujme...</font></div> <div><font></font> </div> <div><font>Marek.</font></div></div> <div>----- Original Message ----- </div> <div><b>From:</b> <a href="mailto:rdolejsi@[doména skryta] (sharpemu@pandora.cz)">rdolejsi@[doména skryta] (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> Tuesday, May 27, 2003 7:53 AM</div> <div><b>Subject:</b> Re: 2. service packec pro MZ-IDE 16bit</div> <div><br/></div><br/><br/>Jen pro úplnost:<br/><br/> - zdaleka nejrozšířenější 16-bit IDE interface na ZX využívá obvodu 8255.<br/>Je připojen tak, že porty A a B jsou Low/High datové sběrnice<br/>a port C obsahuje A0-A2, IORD/IOWR signály, CS0 first IDE, CS0 second IDE.<br/>Interface umožňuje připojit až 4 IDE zařízení (dva kabely)<br/>a podporuje 16-bit porty pro všechny adresy, což však vzhledem k ATA<br/>designu samozřejmě není potřeba. Ovládání pak vypadá nějak takto:<br/><br/>Zápis:<br/>OUT Ctrl, 0x80 ; přepnutí 8255 do output módu<br/>OUT A, data_low<br/>OUT B, data_high<br/>OUT C, IOWR+CS0+address<br/><br/>Čtení je obdobné..<br/><br/> Osobně jsem ale spíše za zachování jednoduchosti a snadnosti ovládání z<br/>ASM a tak hlasuji za již dříve Markem popsané řešení (překlápění lo/hi pro<br/>datový port).<br/><br/>R.<br/><br/><br/><br/>|---------+---------------------------><br/>| | "<a href="mailto:rdolejsi@eurote">rdolejsi@eurote</a>|<br/>| | l.cz (sharpemu |<br/>| | 27.05.2003 07:38|<br/>| | Odpovězte prosím|<br/>| | uživateli |<br/>| | "Konference |<br/>| | "Počítač SHARP |<br/>| | MZ-800 a |<br/>| | emulátory"" |<br/>| | |<br/>|---------+---------------------------><br/> >--------------------------------------------------------------------------------------------------------------------------------|<br/> | |<br/> | Komu: "Konference "Počítač SHARP MZ-800 a emulátory"" <<a href="mailto:sharpemu@pandora.cz">sharpemu@pandora.cz</a>> |<br/> | Kopie: |<br/> | Předmět: Re: 2. service packec pro MZ-IDE 16bit |<br/> | |<br/> | |<br/> >--------------------------------------------------------------------------------------------------------------------------------|<br/><br/><br/><br/><br/><br/>Ahoj,<br/><br/> taky jsem pro takovéto řešení. Na ZX to implementovali přesně tímto<br/>způsobem (trio DTP; (P)VL byl na NP) a nemají s tím sebemenší problém.<br/>Čtení/zápis provádějí přes INI(R)/OTI(R) a nic jim neschází ;-) Jen si<br/>nejsem jistý, jestli jim vychází časování tak, aby sektor přečetli párem<br/>INIR instrukcí, ale myslím, že ano.<br/><br/>R.<br/><br/>P.S.: Navíc MCE už tento způsob čtení IDE podporuje, tak si ho, Marku,<br/>můžeš otestovat ;-) .. (port-type=16bit-lohi)<br/><br/><br/><br/>|---------+---------------------------><br/>| | "<a href="mailto:smihla@[doména skryta]">smihla@[doména skryta]</a> |<br/>| | (sharpemu |<br/>| | 26.05.2003 17:38|<br/>| | Odpovězte prosím|<br/>| | uživateli |<br/>| | "Konference |<br/>| | "Počítač SHARP |<br/>| | MZ-800 a |<br/>| | emulátory"" |<br/>| | |<br/>|---------+---------------------------><br/> ><br/>--------------------------------------------------------------------------------------------------------------------------------|<br/><br/> |<br/>|<br/> | Komu: "Konference "Počítač SHARP MZ-800 a emulátory""<br/><<a href="mailto:sharpemu@pandora.cz">sharpemu@pandora.cz</a>> |<br/> | Kopie:<br/>|<br/> | Předmět: Re: 2. service packec pro MZ-IDE 16bit<br/>|<br/> |<br/>|<br/> |<br/>|<br/> ><br/>--------------------------------------------------------------------------------------------------------------------------------|<br/><br/><br/><br/><br/>Ahoj,<br/><br/><br/><br/>Mal som na mysli nasledovné:<br/><br/>Prvý OUT 78h: zápis D0..D7 do záchytného registra.<br/>Druhý OUT 78h: obsah záchytného registra do HDD (D0..D7) plus D0..D7 do HDD<br/>(D8..D15).<br/><br/>A tak dalej striedavo... Podobne pri vstupe:<br/><br/>Prvý IN 78h: D0..D7 z HDD do D0..D7 na MZ, D8..D15 z HDD do záchytného<br/>registra.<br/>Druhý IN 78h: čítanie D0..D7 zo záchytného registra.<br/><br/>Iný sled resp. náväznosť bajtov neprichádza do úvahy (kvôli rýchlosti a<br/>kompatibilite s PC).<br/><br/>V podstate ide o pridanie deličky jedna ku dvom na dekodér adresy 78h,<br/>ktorá by striedavo prepínala medzi HDD a záchytným registrom. To nemôže byť<br/>predsa až tak zložité, v žiadnom prípade netreba GAL či dokonca 8052!<br/><br/>Marek.<br/><br/>P.S. pokiaľ ide o filesystém FAT, už sa na ňom pracuje... ;-)<br/> ----- Original Message -----<br/> From: Petr Žydek (<a href="mailto:sharpemu@pandora.cz">sharpemu@pandora.cz</a>)<br/> To: Konference Počítač SHARP MZ-800 a emulátory<br/> Sent: Monday, May 26, 2003 10:33 AM<br/> Subject: 2. service packec pro MZ-IDE 16bit<br/><br/><br/><br/><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...<br/><br/><br/><br/> Co je třeba dodržet, docílit:<br/> -potřebujeme 16ti bitový přenos dat, aby<br/> byla využita celá kapacita HDD<br/> -možnost přenosu dat z/na porty<br/> repetičními I/O instrukcemi<br/> -možnost použít funkci autodetekce<br/> parametrů disku<br/> -zařízení by mělo být kompatibilní<br/> s původní 8bitovou verzí<br/> -obvodové řešení musí být co možná<br/> nejjednodušší, malý počet IC snižuje cenu,<br/> šetří místo v případě vývoje kombo desek<br/> -v případě manipulace se signálem disku<br/> /sels se nabízí možnost obsluhy dvou<br/> HDD, tedy princip master/slave jako u PC<br/> -pokud by byla akceptována možnost provozu<br/> dvou HDD, pak se jasně nabízí možnost<br/> využití souborových systémů FAT(32), tím<br/> nemyslím přímé začlenění do CP/M, slave<br/> disk by sloužil jako přenosný element<br/> Sharp <-> PC. Konverzi souborových<br/> systémů a vlastních dat může provádět<br/> aplikační program pod CP/M typu<br/> file-manažer; stejně tak CP/Movsky<br/> nahraný disk by byl čitelný pro<br/> aplikační program v PC, ten by ho<br/> přečetl celý raz dva<br/><br/><br/> Jak to tedy vyřešit:<br/><br/><br/> Tahhle nějak vypadá zápis 512ti bajtového<br/> sektoru na MZ-IDE 8bit (odhaduju):<br/><br/><br/> xxx ; nastav příslušné hodnoty<br/> xxx ; do registru stopy,<br/> xxx ; sektoru atd.<br/> LD HL, "odkud" ; adresa dat v paměti<br/> LD B,00h ; 256 bajtů dat<br/> LD C,78h ; adresa datového portu HDD<br/> OTIR*** ; přenese B bajtů na port<br/> ; 78h od adresy v HL<br/> OTIR ; ještě jednou totéž<br/><br/><br/> 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 (???)<br/><br/><br/> 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á, </p>