home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / programming / misc_programming / int05.doc < prev    next >
Text File  |  1989-12-27  |  2KB  |  44 lines

  1. INT 05H - PRINT_SCREEN
  2.         This logic eill be invoked by interrupt 05H to print the screen.
  3.         The cursor position at the time this routine is invoked will be saved
  4.         and restored upon completion. The routine is intended to run with 
  5.         interrupts enabled. If a subsequent Print Screen Key is depressed 
  6.         while this routine is printing it will be ignored. The base printers
  7.         status is checked for not busy and not out of paper. An initial
  8.         status error will abend the print request. 
  9.         Address 0050:0000 contains the status of the print screen:
  10.  
  11.         50:00   = 0     Print Screen has not been called or upon return
  12.                          from a call. this indicates a successful operation.
  13.                 = 1     Print Screen is in progress - Ignore the request.
  14.                 = 255   Error encountered during printing.
  15.  
  16. PDL:
  17.  
  18.         Save all registers
  19.         IF STATUS_BYTE (50:00) is in progress (= 01)
  20.         THEN 
  21.             jump to EXIT: (ignore this key progress)
  22.         ELSE
  23.             get currnt page, number of rows, and number of columns on screen
  24.             get printer status from INT 17h
  25.             IF printer stataus is Busy or Out_of_Paper
  26.             THEN
  27.                 set STATUS_BYTE to error status (= 0FFh),
  28.                 jump to EXIT:
  29.             ELSE 
  30.                 print the screen
  31.                 IF printer stataus is error during process
  32.                 THEN
  33.                     set STATUS_BYTE to error status (= 0FFh),
  34.                     jump to EXIT:
  35.                 ELSE
  36.                     set STATUS_BYTE to no error status (= 00h)
  37.                 ENDIF
  38.             ENDIF
  39.         ENDIF
  40.  
  41.         EXIT:
  42.         restore all registers
  43.         return
  44.