; ; SYSLIB Module Name: SCOUT ; Author: Richard Conn ; SYSLIB Version Number: 2.0 ; Module Version Number: 1.0 ; Module Entry Points: ; COUT ; Module External References: ; None ; ; ; COUT -- ; CONSOLE OUTPUT ROUTINE ; OUTPUT CHAR IN REG A ON CON: ; AFFECT NO REGISTERS OR FLAGS ; PUTRG MACRO PUSH B ; SAVE BC, DE, HL PUSH D PUSH H ENDM GETRG MACRO POP H ; RESTORE HL, DE, BC POP D POP B ENDM COUT:: PUSH PSW ; SAVE REG A AND FLAGS PUTRG ; SAVE REGISTERS MOV C,A ; CHAR IN C LHLD JTABL ; GET ADDRESS OF JUMP TABLE MVI L,CO$OFF ; CONSOLE OUTPUT ADR LXI D,CRET2 ; SET UP RET ADR PUSH D ; ... ON STACK PCHL CRET2: GETRG ; RESTORE REGISTERS POP PSW ; RESTORE REG A AND FLAGS RET BOOT EQU 0 ; CP/M BOOT ADDRESS JTABL EQU BOOT+1 ; CP/M JUMP TABLE ADDRESS CO$OFF EQU 0CH ; CONSOLE OUTPUT OFFSET END