home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug040.ark / EJECT.ASM < prev    next >
Encoding:
Assembly Source File  |  1984-04-29  |  997 b   |  40 lines

  1. ;PRINTER EJECT ROUTINE    1/20/80 BY WARD CHRISTENSEN
  2. ;
  3. ;    To eject 1 or more pages of paper in your printer
  4. ;assuming that a control-L will eject a page.
  5. ;
  6. ;    EJECT        to eject 1 page.
  7. ;    EJECT n        to eject 1 to 9 pages
  8. ;
  9. ;DEPENDENCIES:
  10. ;    Uses the CP/M list device call - the list device
  11. ;must eject a page when a control-L (form feed) is received.
  12. ;
  13.     ORG    0100H
  14. ;
  15. FFCHR    EQU    'L'-40H    ;FORM FEED CHAR
  16. BDOS    EQU    5
  17. FCB    EQU    5CH    ;PICK UP PARM FROM FCB+1
  18. ;
  19.     LDA    FCB+1    ;A NUMBER REQUESTED?
  20.     CPI    ' '
  21.     JZ    NEWPAGE    ;NO, JUST DO ONE, RET TO CP/M
  22.     ANI    0FH    ;HACK BACK TO NUMBER
  23.     MOV    B,A    ;B = # OF PAGES
  24.     JNZ    PAGELP    ;MAKE SURE NOT 0
  25.     MVI    B,1    ;DEFAULT TO 1 PAGE
  26. PAGELP    CALL    NEWPAGE    ;EJECT ONE PAGE
  27.     DCR    B    ;MORE PAGES?
  28.     JNZ    PAGELP    ;..YES, LOOP
  29.     RET        ;..NO, RETURN TO CP/M
  30. ;
  31. ;HERE IS AN EJECT ROUTINE FOR 1 PAGE. 
  32. ;    WAITS FOR PRINTER READY FIRST.
  33. ;
  34. NEWPAGE    PUSH    B
  35.     MVI    E,FFCHR    ;CTL-L (FORMS FEED)
  36.     MVI    C,5    ;WRITE LIST DEV
  37.     CALL    BDOS    ;SEND IT
  38.     POP    B
  39.     RET        ;RET TO CALLER (CP/M OR PAGELP)
  40.