Druckerbereitschaft prüfen
-
Hallo!
Hab folgendes Programm aus einem Buch übernommen:DATEN SEGMENT
Bereit db "Der Drucker ist bereit."
db "$"Fehlermeldung db "Der Drucker ist nicht bereit.Kein Papier vorhanden."
db "$"DATEN ENDS
STAPEL SEGMENT
STAPEL ENDSCODE SEGMENT
ASSUME CS:CODE, DS:DATEN, ES:NOTHING, SS:STAPEL
Anfang: mov ax,DATEN
mov ds,axmov ah,02h ;Mit diesem Interrupt erfragen wir den
;Status des Druckers.xor dx,dx ;Der Druckerstatus wird anschließend
int 17h ;im AH-Register zurückgegeben.test ah,10000000b ;Bit 7 gesetzt?(Drucker bereit)
je fehlertest ah,00100000b ;Bit 5 gesetzt?(Kein Papier)
jne fehlermov dx,offset Bereit
mov ah,9
int 21h
mov ah,4Ch
int 21h
Fehler:
mov dx,offset Fehlermeldungmov ah,9
int 21h
mov ah,4Ch
int 21h
CODE ENDS
END Anfang ;Start des Programms beim
;Sprungziel Anfang:Das meiste hab ich dann trotzdem selbst geschrieben. Aber was läuft hier falsch?Es kommt immer die Meldung,dass der Drucker bereit ist, auch wenn kein Papier sich mehr darin befindet.
Danke für eure Bemühungen!
-
Kann mir keiner helfen?
-
wahrscheinlich wird nur geprüft, ob der drucker online ist... papier kann er ja nur feststellen, wenn er versucht zu drucken... ganz davon abgesehen benutzt du die uralten RM-BIOS-Routinen, die höchstens mit parallel-port-druckern funktionieren... spätestens bei USB-Druckern hörts dann eh auf...