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 ENDS

    CODE SEGMENT

    ASSUME CS:CODE, DS:DATEN, ES:NOTHING, SS:STAPEL

    Anfang: mov ax,DATEN
    mov ds,ax

    mov 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 fehler

    test ah,00100000b ;Bit 5 gesetzt?(Kein Papier)
    jne fehler

    mov dx,offset Bereit

    mov ah,9

    int 21h

    mov ah,4Ch

    int 21h

    Fehler:
    mov dx,offset Fehlermeldung

    mov 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...


Anmelden zum Antworten