home *** CD-ROM | disk | FTP | other *** search
- INT 05H - PRINT_SCREEN
- This logic eill be invoked by interrupt 05H to print the screen.
- The cursor position at the time this routine is invoked will be saved
- and restored upon completion. The routine is intended to run with
- interrupts enabled. If a subsequent Print Screen Key is depressed
- while this routine is printing it will be ignored. The base printers
- status is checked for not busy and not out of paper. An initial
- status error will abend the print request.
- Address 0050:0000 contains the status of the print screen:
-
- 50:00 = 0 Print Screen has not been called or upon return
- from a call. this indicates a successful operation.
- = 1 Print Screen is in progress - Ignore the request.
- = 255 Error encountered during printing.
-
- PDL:
-
- Save all registers
- IF STATUS_BYTE (50:00) is in progress (= 01)
- THEN
- jump to EXIT: (ignore this key progress)
- ELSE
- get currnt page, number of rows, and number of columns on screen
- get printer status from INT 17h
- IF printer stataus is Busy or Out_of_Paper
- THEN
- set STATUS_BYTE to error status (= 0FFh),
- jump to EXIT:
- ELSE
- print the screen
- IF printer stataus is error during process
- THEN
- set STATUS_BYTE to error status (= 0FFh),
- jump to EXIT:
- ELSE
- set STATUS_BYTE to no error status (= 00h)
- ENDIF
- ENDIF
- ENDIF
-
- EXIT:
- restore all registers
- return