;
; 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