System information
;(MONITOR)
 ;
 ; MDS MONITOR EQUATES
 F800 = MON80 EQU 0F800H ;MDS MONITOR
 FF0F = RMON80 EQU 0FF0FH ;RESTART MON80 (BOOT ERROR)
 F803 = CI EQU 0F803H ;CONSOLE CHARACTER TO REG-A
 F806 = RI EQU 0F806H ;READER IN TO REG-A
 F809 = CO EQU 0F809H ;CONSOLE CHAR FROM C TO 
;CONSOLE OUT
 F80C = PO EQU 0F80CH ;PUNCH CHAR FROM C TO PUNCH DEVICE
 F80F = LO EQU 0F80FH ;LIST FROM C TO LIST DEVICE
 F812 = CSTS EQU 0F812H ;CONSOLE STATUS 00/FF TO 
;REGISTER A
 ;
 ; DISK PORTS AND COMMANDS
 0078 = BASE EQU 78H ;BASE OF DISK COMMAND IO PORTS
 0078 = DSTAT EQU BASE ;DISK STATUS (INPUT)
 0079 = RTYPE EQU BASE+1 ;RESULT TYPE (INPUT)
 007B = RBYTEEQU BASE+3 ;RESULT BYTE (INPUT)
 ;
 0079 = ILOW EQU BASE+1 ;IOPB LOW ADDRESS (OUTPUT)
 007A = IHIGH EQU BASE+2 ;IOPB HIGH ADDRESS (OUTPUT)
 ;
 0004 = READF EQU 4H ;READ FUNCTION
 0006 = WRITF EQU 6H ;WRITE FUNCTION
 0003 = RECAL EQU 3H ;RECALIBRATE DRIVE
 0004 = IORDY EQU 4H ;I/O FINISHED MASK
 000D = CR EQU 0DH ;CARRIAGE RETURN
 000A = LF EQU 0AH ;LINE FEED
 ;
 SIGNON: ;SIGNON MESSAGE: XXK CP/M VERS Y.Y
 169C 0D0A0A  DB CR,LF,LF
  IF TEST
  DB '32' ;32K EXAMPLE BIOS
  ENDIF
  IF NOT TEST
 169F 3030  DB '00' ;MEMORY SIZE FILLED BY RELOCATOR
  ENDIF
 16A1 6B2043502F DB 'k CP/M vers '
 16AD 322E32  DB VERS/10+'0','.',VERS MOD 10+'0'
 16B0 0D0A00  DB CR,LF,0
 ;
 BOOT: ;PRINT SIGNON MESSAGE AND GO TO CCP
 ; (NOTE: MDS BOOT INITIALIZED IOBYTE AT 0003H)
 16B3 310001  LXI SP,BUFF+80H
Appendix A : The MDS-800 BIOS CP/M Operating System Manual
A-5










