Ugyan régi a topic, de - úgy érzem - ide tartozik. Mivel az ExDOS bővítésem
összeállni látszik, az IDE interfész a következő megoldandó feladat. "Gyorsan" átfutottam a témát, remélem mindent jól értek...

Az
első bejegyzésben szereplő rajz a jelenleg használatos interfész kapcsolási rajza? A címdekódolást vizsgálva "kijön" a 0xE8..0xEB illetve 0xEC..0xEF címtartomány a (talán) JP1 állása alapján, az _IORQ + ezen címekkor aktív (magas) lesz a 'HCT21 8-as lába, illetve a 'HCT04 10-ese emiatt alacsony. Ezt az "aktív" jelet meg az _RD meg a _WR alapján kétfelé bontja az U12 egy-egy kapuja, ezekből plusz a két alsó címbitből meg két demultiplexer ('HCT139) csinál 4-4 olvasáskor / íráskor aktív jelet. A regiszterek kiosztása is annak tűnik, mint ami az első hozzászólásban szerepel, ez eddig jónak tűnik...
A 'HCT139 kimenetei aktív alacsonyak, viszont a használt 'HCT273-as tárolók felfutóélre tárolnak. Emiatt azoknak a kimeneteik a
ciklus végén állnak be. Ez az adatvonalak beírásánál semmi extra dolgot nem okoz. De a "parancsport" része egy kicsit trükkösnek tűnik. Ez itt az adat beírása, ami a topic elején van:
LD C,0ECH ;adatport alsó 8 bit
OUT (C),L
INC C ; adatport felsõ 8 bit
OUT (C),H
LD A,WR+DATA ;írás mûvelet+a regiszter cime
LD C,0EFH ;parancsport
OUT (C),A
OR WR+RD ;irás+olvasás bitek visszaállítása 1-re
OUT (C),A
Első körben a B7..0 illetve B15..8 kerül beírásra (1..4 sorok), eddig sima. Utána jön a "regisztercím + írás" beállítása a "parancsport" regiszterbe (5..7 sorok). Az IDE busz fele akkor generálódik az ALE, IOR illetve IOW jel, amikor ezt a regisztert írja a Z80. Azt, hogy az IOR vagy az IOW lesz-e aktív, azt a "parancsport" hozzá tartozó két bitje határozza meg. Igen ám, de ezek csak akkor fognak beállni, amikor ez a beírási ciklus véget ért, tehát ekkor még nem történik semmi. A tényleges IDE regiszterírás akkor fog bekövetkezni, amikor az RD illetve WR bitek visszaállítását végzi a kód (8, 9 sorok), mivel a Z80 írási ciklusa közben ekkor aktív még a tároló RD vagy WR vonala.
Jól fejtegetek?