System information

180E D38A OUT IHIGH+10H
;
1810 CD5918 WAIT0: CALL INSTAT ;WAIT FOR COMPLETION
1813 E604 ANI IORDY ;READY?
1815 CA1018 JZ WAIT0
;
; CHECK IO COMPLETION OK
1818 CD3F18 CALL INTYPE ;MUST BE IO COMPLETE (00)
UNLINKED
; 00 UNLINKED I/O COMPLETE, 01 LINKED I/O COMPLETE (NOT USED)
; 10 DISK STATUS CHANGED 11 (NOT USED)
181B FE02 CPI 10B ;READY STATUS CHANGE?
181D CA3218 JZ WREADY
;
; MUST BE 00 IN THE ACCUMULATOR
1820 B7 ORA A
1821 C23818 JNZ WERROR ;SOME OTHER CONDITION, RETRY
;
; CHECK I/O ERROR BITS
1824 CD4C18 CALL INBYTE
1827 17 RAL
1828 DA3218 JC WREADY ;UNIT NOT READY
182B 1F RAR
182C E6FE ANI 11111110B ;ANY OTHER ERRORS? (DELETED DATA OK)
182E C23818 JNZ WERROR
;
; READ OR WRITE IS OK, ACCUMULATOR CONTAINS ZERO
1831 C9 RET
;
WREADY: ;NOT READY, TREAT AS ERROR FOR NOW
1832 CD4C18 CALL INBYTE ;CLEAR RESULT BYTE
1835 C33818 JMP TRYCOUNT
;
WERROR: ;RETURN HARDWARE MALFUNCTION (CRC, TRACK, SEEK,
;ETC.)
; THE MDS CONTROLLER HAS RETURNED A BIT IN EACH POSITION
; OF THE ACCUMULATOR, CORRESPONDING TO THE CONDITIONS:
; 0 - DELETED DATA (ACCEPTED AS OK ABOVE)
; 1 - CRC ERROR
; 2 - SEEK ERROR
; 3 - ADDRESS ERROR (HARDWARE MALFUNCTION)
; 4 - DATA OVER/UNDER FLOW (HARDWARE MALFUNCTION)
; 5 - WRITE PROTECT (TREATED AS NOT READY)
; 6 - WRITE ERROR (HARDWARE MALFUNCTION)
; 7 - NOT READY
Appendix A : The MDS-800 BIOS CP/M Operating System Manual
A-12