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