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>definitivní verze IDE16 (varianta E):</B></td><td align=right valign="middle"></td></tr></table><BR><p>Obecný programátorský popis IDE16 chystám<br/>v HTML, s obrázky a komentářem. U datového<br/>portu 78H se využívá skutečnosti, že u<br/>instrukcí s nepřímou adresou<br/>(IN A,(C); OUT (C),A; INI; INIR; OUTI; OTIR)<br/>se posílá obsah B registru na AD8-AD15.<br/>Tento při např. OUTI automaticky dekrementuje<br/>a je oním rozhodovacím elementem při směrování<br/>dat na IDE. Vždycky je třeba přenést SUDÝ počet<br/>bajtů např. při odesílání čtyř bajtů se tyto<br/>přenesou jako dva "dvoubajty":</p> <p>ld bc,0478H ; počet bajtů, adresa datového portu<br/>ld hl,"odkud" ; adresa bloku dat<br/>outi ; B bylo 04 tj. sudé ... data se zachytí <br/> v registru pro DD0-DD7 IDE<br/>outi ; B bylo 03 tj. liché ... data projdou<br/> registrem pro DD8-DD15 HDD na IDE piny<br/> DD8-DD15, data zachycená v registru pro<br/> DD0-DD7 se ukáží na IDE pinech DD0-DD7<br/> aktivuje se /IOW signál, HDD přijme data-<br/> dva bajty najednou, aniž by tušil, že<br/> první z nich byl připraven předem<br/>outi ; B bylo 02 tj. sudé ... stejné jako B=04h<br/>outi ; B bylo 01 tj. liché ... stejné jako při B=03H<br/>přenos je ukončen</p> <p>V praxi je blok dat vždy dlouhý 512 bajtů, takže má<br/>smysl transakci zahajovat s nulou v B:</p> <p>ld hl,"odkud"<br/>ld bc,0078H<br/>vyber aktivní IDE jednotku<br/>iniciuj příslušné registry stopy, sektoru atd.<br/>in 7fH,a ; čti IDE status (event. čekej)<br/>ld a,31H ; příkaz zapsání sektoru<br/>out (7fH),a ; odešli<br/>in (7fH),a ; čti IDE status (event. čekej)<br/> ; čeká se na 58H (device ready, data request)<br/>OTIR ; odešle 256 bajtů dat počínaje adresou "odkud"<br/>OTIR ; odešle zbylých 256 bajtů dat, B se před touto<br/> ; instrukcí přetočilo znovu k nule a HL je<br/> ; o 256 bajtů vyšší (není třeba přenastavovat)<br/>přenos je ukončen<br/>in 7fH,a ; čti status (měl by být 50H=device ready, bez chyb)</p> <p>Ono se to bez těch obrázků těžko vysvětluje, ale všechno vyplývá<br/>ze schemat a pravdivostních tabulek...</p> <p>Petr de Zviqov</p>