home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol089 / scout.mac < prev    next >
Text File  |  1984-04-29  |  869b  |  47 lines

  1. ;
  2. ; SYSLIB Module Name:  SCOUT
  3. ; Author:  Richard Conn
  4. ; SYSLIB Version Number:  2.0
  5. ; Module Version Number:  1.0
  6. ; Module Entry Points:
  7. ;    COUT
  8. ; Module External References:
  9. ;    None
  10. ;
  11.  
  12. ;
  13. ;  COUT -- 
  14. ;    CONSOLE OUTPUT ROUTINE
  15. ;    OUTPUT CHAR IN REG A ON CON:
  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. COUT::
  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,CO$OFF    ; CONSOLE OUTPUT ADR
  35.     LXI    D,CRET2    ; SET UP RET ADR
  36.     PUSH    D    ; ... ON STACK
  37.     PCHL
  38. CRET2:    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. CO$OFF    EQU    0CH    ; CONSOLE OUTPUT OFFSET
  45.  
  46.     END
  47.