home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / SIMTEL20 / SYSLIB / SLIB1.LBR / SCOUT.Z80 < prev    next >
Text File  |  2000-06-30  |  896b  |  44 lines

  1. ;
  2. ; SYSLIB Module Name:  SCOUT
  3. ; Author:  Richard Conn
  4. ; SYSLIB Version Number:  3.6
  5. ; Module Version Number:  1.1
  6.  
  7.     public    cout
  8.  
  9. ;
  10. ;  COUT -- 
  11. ;    CONSOLE OUTPUT ROUTINE
  12. ;    OUTPUT CHAR IN REG A ON CON:
  13. ;    AFFECT NO REGISTERS OR FLAGS
  14. ;
  15. PUTRG    MACRO
  16.     PUSH    BC    ; SAVE BC, DE, HL
  17.     PUSH    DE
  18.     PUSH    HL
  19.     ENDM
  20. GETRG    MACRO
  21.     POP    HL    ; RESTORE HL, DE, BC
  22.     POP    DE
  23.     POP    BC
  24.     ENDM
  25.  
  26. COUT:
  27.     PUSH    AF        ; SAVE REG A AND FLAGS
  28.     PUTRG            ; SAVE REGISTERS
  29.     LD    C,A        ; CHAR IN C
  30.     LD    HL,(JTABL)    ; GET ADDRESS OF JUMP TABLE
  31.     LD    L,CO$OFF    ; CONSOLE OUTPUT ADR
  32.     LD    DE,CRET2    ; SET UP RET ADR
  33.     PUSH    DE        ; ... ON STACK
  34.     JP    (HL)
  35. CRET2:    GETRG            ; RESTORE REGISTERS
  36.     POP    AF        ; RESTORE REG A AND FLAGS
  37.     RET
  38.  
  39. BOOT    EQU    0    ; CP/M BOOT ADDRESS
  40. JTABL    EQU    BOOT+1    ; CP/M JUMP TABLE ADDRESS
  41. CO$OFF    EQU    0CH    ; CONSOLE OUTPUT OFFSET
  42.  
  43.     END
  44.