; ; SYSLIB Module Name: SLOUT ; Author: Richard Conn ; SYSLIB Version Number: 2.0 ; Module Version Number: 1.0 ; Module Entry Points: ; LOUT ; Module External References: ; None ; ; ; LOUT -- ; LIST OUTPUT ROUTINE ; OUTPUT CHAR IN REG A TO LST: ; 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 LOUT:: 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,L$OFF ; PRINTER OUTPUT ADR LXI D,LRET ; SET UP RET ADR PUSH D ; ... ON STACK PCHL LRET: 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 L$OFF EQU 0FH ; LIST OUTPUT OFFSET END