[Back to PRINTING SWAG index] [Back to Main SWAG index] [Original]
===========================================================================
BBS: The Beta Connection
Date: 07-06-93 (15:28) Number: 1525
From: CHRIS PRIEDE Refer#: 1378
To: PETER KIRKWOOD Recvd: NO
Subj: Printer Ready? Conf: (232) T_Pascal_R
---------------------------------------------------------------------------
PK> Any suggestions as to how I can check if a printer is online
PK>and/or ready would be appreciated.
Interrupt 17h service 02h returns printer status flags. We are
interested in three:
bit 7 = 1 Ready
bit 5 = 1 Out of paper
bit 3 = 1 I/O error
Bit 7 should be 1 and bits 5, 3 -- 0. You can use the following
BASM routine to check it:
const
pnLPT1 = 0;
pnLPT2 = 1;
pnLPT3 = 2;
function PrinterReady(PN: word): boolean; assembler;
asm
mov dx, PN {printer number goes in DX}
mov ah, 02h
int 17h {int. 17h service 02h}
xor al, al {assume false}
and ah, 10101000b {clear all other bits}
cmp ah, 10000000b {ready & not out of paper or error?}
jne @Done {no -- leave result false}
inc ax {yes -- change to true}
@Done:
end;
---
* D.W.'s TOOLBOX, Atlanta GA, 404-471-6636
* PostLink(tm) v1.06 DWTOOLBOX (#1035) : RelayNet(tm)
[Back to PRINTING SWAG index] [Back to Main SWAG index] [Original]