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