System information
 17D5 C8  RZ
 ; MORE TO PRINT
 17D6 E5  PUSH H
 17D7 4F  MOV C,A
 17D8 CD6A17  CALL CONOUT
 17DB E1 POP H
 17DC 23  INX H
 17DD C3D317  JMP PRMSG
 ;
 SETFUNC:
 ; SET FUNCTION FOR NEXT I/O (COMMAND IN REG-C)
 17E0 216818  LXI H,IOF ;IO FUNCTION ADDRESS
 17E3 7E  MOV A,M ;GET IT TO ACCUMULATOR FOR MASKING
 17E4 E6F8  ANI 11111000B ;REMOVE PREVIOUS COMMAND
 17E6 B1  ORA C ;SET TO NEW COMMAND
 17E7 77  MOV M,A ;REPLACED IN IOPB
 ; THE MDS-800 CONTROLLER REQUIRES DISK BANK BIT IN SECTOR
BYTE
 ; MASK THE BIT FROM THE CURRENT I/O FUNCTION
 17E8 E620  ANI 00100000B ;MASK THE DISK SELECT BIT
 17EA 216B18  LXI H,IOS ;ADDRESS THE SECTOR SELECT BYTE
 17ED B6 ORA M ;SELECT PROPER DISK BANK
 17EE 77  MOV M,A ;SET DISK SELECT BIT ON/OFF
 17EF C9  RET
 ;
 WAITIO:
 17F0 0E0A  MVI C,RETRY ;MAX RETRIES BEFORE PERM ERROR
 REWAIT:
 ; START THE I/O FUNCTION AND WAIT FOR COMPLETION
 17F2 CD3F18  CALL INTYPE ;IN RTYPE
 17F5 CD4C18  CALL INBYTE ;CLEARS THE CONTROLLER
 ;
 17F8 3A6618  LDA DBANK ;SET BANK FLAGS
 17FB B7  ORA A ;ZERO IF DRIVE 0,1 AND NZ IF 2,3
 17FC 3E67  MVI A,IOPB AND 0FFH ;LOW ADDRESS FOR IOPB
 17FE 0618  MVI B,IOPB SHR 8 ;HIGH ADDRESS FOR IOPB
 1800 C20B18  JNZ IODR1;DRIVE BANK 1?
 1803 D379  OUT ILOW ;LOW ADDRESS TO CONTROLLER
 1805 78  MOV A,B
 1806 D37A  OUT IHIGH ;HIGH ADDRESS
 1808 C31018  JMP WAIT0 ;TO WAIT FOR COMPLETE
 ;
 IODR1: ;DRIVE BANK 1
 180B D389  OUT ILOW+10H ;88 FOR DRIVE BANK 10
 180D 78  MOV A,B
Appendix A : The MDS-800 BIOS CP/M Operating System Manual
A-11










