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 / ENTERPRS / CPM / UTILS / F / LZH21SRC.LBR / GETCPUTC.MYC / GETCPUTC.MYC
Text File  |  2000-06-30  |  1KB  |  65 lines

  1. ;
  2. ;   GETC_ - Get a character from user routine
  3. ;
  4. ;    Action    - Registers saved and user routine is called to fetch
  5. ;          a character.
  6. ;    Input    - none
  7. ;    Output    - char is in A reg. On EOF carry flag is set
  8. ;    Entry    - getc_
  9. ;    Registers - All preserved but A:PSW
  10. ;    Calls    - none
  11.  
  12.     CSEG
  13. GETC_:
  14.     PUSH    H            ; Save
  15.     PUSH    D            ; Save
  16.     PUSH    B            ; Save
  17.  
  18.      IF    CRUNCH
  19.     EXTRN    GLZHEN
  20.     CALL    GLZHEN
  21.      ELSE
  22.     EXTRN    GLZHUN
  23.     CALL    GLZHUN
  24.      ENDIF
  25.  
  26.     POP    B            ; Get
  27.     POP    D            ; Get
  28.     POP    H            ; Get
  29.     RET                ; Exit
  30.  
  31.  
  32. ;   PUTC_ - Char to output
  33. ;
  34. ;    Action    - Char is output to user's routine. All regs are saved.
  35. ;          User routine is called with ZERO bit set every 256
  36. ;          characters
  37. ;    Input    - A register is character to output
  38. ;    Output    - As above
  39. ;    Entry    - putc_
  40. ;    Registers - All registers preserved except A:PSW
  41. ;    Calls    - none
  42. ;
  43.     DSEG
  44. PUTCCNT:DS    1            ; Output character count
  45.  
  46.     CSEG
  47. PUTC_:
  48.     PUSH    H            ; Save
  49.     PUSH    D            ; Save
  50.     PUSH    B            ; Save
  51.     LXI    H,PUTCCNT        ; Point to counter
  52.     DCR    M            ; Will be zero every 256
  53.      IF    CRUNCH
  54.     EXTRN    PLZHEN
  55.     CALL    PLZHEN
  56.      ELSE
  57.     EXTRN    PLZHUN
  58.     CALL    PLZHUN
  59.      ENDIF
  60.  
  61.     POP    B            ; Get
  62.     POP    D            ; Get
  63.     POP    H            ; Get
  64.     RET                ; Exit
  65.