home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol090 / spout.mac < prev    next >
Encoding:
Text File  |  1984-04-29  |  813 b   |  47 lines

  1. ;
  2. ; SYSLIB Module Name:  SPOUT
  3. ; Author:  Richard Conn
  4. ; SYSLIB Version Number:  2.0
  5. ; Module Version Number:  1.0
  6. ; Module Entry Points:
  7. ;    POUT
  8. ; Module External References:
  9. ;    None
  10. ;
  11.  
  12. ;
  13. ;  POUT -- 
  14. ;    PUNCH OUTPUT ROUTINE
  15. ;    OUTPUT CHAR IN REG A ON PUN:
  16. ;    AFFECT NO REGISTERS OR FLAGS
  17. ;
  18. PUTRG    MACRO
  19.     PUSH    B    ; SAVE BC, DE, HL
  20.     PUSH    D
  21.     PUSH    H
  22.     ENDM
  23. GETRG    MACRO
  24.     POP    H    ; RESTORE HL, DE, BC
  25.     POP    D
  26.     POP    B
  27.     ENDM
  28.  
  29. POUT::
  30.     PUSH    PSW    ; SAVE REG A AND FLAGS
  31.     PUTRG        ; SAVE REGISTERS
  32.     MOV    C,A    ; CHAR IN C
  33.     LHLD    JTABL    ; GET ADDRESS OF JUMP TABLE
  34.     MVI    L,P$OFF    ; PUNCH OUTPUT ADR
  35.     LXI    D,PRET    ; SET UP RET ADR
  36.     PUSH    D    ; ... ON STACK
  37.     PCHL
  38. PRET:    GETRG        ; RESTORE REGISTERS
  39.     POP    PSW    ; RESTORE REG A AND FLAGS
  40.     RET
  41.  
  42. BOOT    EQU    0    ; CP/M BOOT ADDRESS
  43. JTABL    EQU    BOOT+1    ; CP/M JUMP TABLE ADDRESS
  44. P$OFF    EQU    12H    ; PUNCH OUTPUT OFFSET
  45.  
  46.     END
  47.