DB 0BAH,0B9H,0B8h,0B8H,0B7H,0BFH,0B6H,0BDH ;bit 0: 186 Not Ready ;bit 1: 185 Verify error ;bit 2: 184 Data error (ez valójában Lost data) ;bit 3: 184 Data error ;bit 4: 183 Sector not found ;bit 5: 191 ;bit 6: 182 Write protected disk ;bit 7: 189
;WD olvasási műveletek végrehajtó rutinja lde43: CALL LDF50 ;várakozási értékek beállítása OUT (C),A ;12 (13);WD Command kiirása SET 3,C ; 8 ( 9);EXDOS Status registerlde4a: JR LDE4C ;12 (13);várakozáslde4c: LD A,00H ; 7 ( 8);várakozás IN A,(C) ;12 (13);EXDOS Status olvasása JP M,LDE65 ;10 (11);ugrás, ha DRQ aktív
. E05E CD 6F E1 CALL E16F ;várakozási értékek beállítása. E061 ED 79 OUT (C), A ;12 (13);WD Command kiirása. E063 CB D9 SET 3, C ; 8 ( 9);EXDOS Status register. E065 3E 06 LD A, 06 ; 7 ( 8). E067 3D DEC A ; 4 ( 5). E068 20 FD JR NZ, E067 ;12 (13), 7 ( 8) ha Z . E06A ED 78 IN A, (C) ;12 (13);EXDOS Status olvasása. E06C FA 7F E0 JP M, E07F ;10 (11);ugrás, ha DRQ aktív
. E05E CD 6F E1 CALL E16F ;várakozási értékek beállítása. E061 ED 79 OUT (C), A ;10 ;WD Command kiirása. E063 CB D9 SET 3, C ; 7 ;EXDOS Status register. E065 3E 06 LD A, 06 ; 6 . E067 3D DEC A ; 4 . E068 20 FD JR NZ, E067 ; 8, 6 ha Z . E06A ED 78 IN A, (C) ;10 ;EXDOS Status olvasása. E06C FA 7F E0 JP M, E07F ; 9 ;ugrás, ha DRQ aktív
lde43: CALL LDF50 ;várakozási értékek beállítása OUT (C),A ;12 (13);WD Command kiirása SET 3,C ; 8 ( 9);EXDOS Status registerlde4a: JR LDE4C ;12 (13);várakozáslde4c: LD A,00H ; 7 ( 8);várakozás IN A,(C) ;12 (13);EXDOS Status olvasása JP M,LDE65 ;10 (11);ugrás, ha DRQ aktív DEC DE ; 6 ( 7);várakozási számláló csökkentése IN A,(C) ;12 (13);várakozás IN A,(C) ;12 (13);EXDOS Status olvasása JP M,LDE65 ;10 (11);ugrás, ha DRQ aktív LD A,D ; 4 ( 5);számláló OR E ; 4 ( 5);=0? JP Z,LDEE3 ;10 (11);kilépés, ha várakozási időn belül nem érkezett DRQ IN A,(C) ;12 (13);EXDOS Status olvasása JP P,LDE4A ;10 (11);ugrás, ha DRQ nem aktívlde65: DEC C ; 4 ( 5);WD Data IN A,(C) ;12 (13);adat beolvasása LD (HL),A ; 7 ( 8);letárolás INC HL ; 6 ( 7);transzfercím növelése INC C ; 4 ( 5);EXDOS Statuslde6b: IN A,(C) ;12 (13);status olvasása AND 82H ; 7 ( 8);csak DRQ és INTRQ bitek maradnak JR Z,LDE6B ;12 (13), 7 ( 8) ha NZ ;várakozás tovább, ha nincs esemény JP M,LDE65 ;10 (11);ugrás, ha újabb adat érkezett JR LDEE0 ;12 (13);INTRQ esetén kilépés
lde43: CALL 0DF50h ;várakozási értékek beállítása OUT (C),A ;12 (13) ;WD Command kiirása SET 3,C ; 8 ( 9);EXDOS Status registerlde4a: lde4c: IN A,(C) ;12 (13);EXDOS Status olvasása JP M,lde65 ;10 (11);ugrás, ha DRQ aktív DEC DE ; 6 ( 7);várakozási számláló csökkentése IN A,(C) ;12 (13);EXDOS Status olvasása JP M,lde65 ;10 (11);ugrás, ha DRQ aktív LD A,D ; 4 (5);számláló OR E ; 4 (5);=0? JP Z,0DEE3h ;10 (11);kilépés, ha várakozási időn belül nem érkezett DRQ IN A,(C) ;12 (13);EXDOS Status olvasása JP P,lde4c ;10 (11);ugrás, ha DRQ nem aktívlde65: LD E,82H ; 7 ( 8)lde67: IN A,(13H) ;11 (12);adat beolvasása LD (HL),A ; 7 ( 8);letárolás INC HL ; 6 ( 7);transzfercím növelése in a,(c) jp m,lde67 lde6b: IN A,(18h) ;11 (12);status olvasása AND E ; 4 ( 5);csak DRQ és INTRQ bitek maradnak JR Z,lde6b ;10 (11);várakozás tovább, ha nincs esemény JP M,lde67 ;10 (11);ugrás, ha újabb adat érkezett JR ldee0 ;12 (13);INTRQ esetén kilépés