;       CheckPrinter v0.38
;       (cli-ausgabe)
;       DevPac-Version
;       Istvan 'Isy' Bognar


CheckPrinter:

sysbase        equ  4           ; basis von exec
OpenLib        equ -552         ; library oeffnen
CloseLib       equ -414         ; library schliessen
Output         equ -60          ; output-handle holen
Write          equ -48          ; systemausgabe

        lea.l  $bfd000,a0       ; druckeradresse nach a0 laden
        move.l (a0),d0          ; druckerstatus nach d0 laden
        and.b  #%111,d0         ; statusbyte ausmaskieren
        cmp.w  #$ff00,d0        ; ist papier im drucker ?
        beq.s  NoPaper          ; wenn nein, dann ausgabe kein papier
        cmp.w  #$fd00,d0        ; ist der drucker online ?
        beq.s  OffLine          ; wenn nein, dann ausgabe offline
        cmp.w  #$fc00,d0        ; ist der drucker online ?
        beq.s  OnLine           ; wenn ja, dann ausgabe online
        rts

OffLine:
        move.l #OffLine_text,d2 ; text nach d2 laden
        move.l #23,d3           ; textlaenge
        jsr    Ausgabe          ; springe zur ausgaberoutine
        rts

OnLine: 
        move.l #OnLine_text,d2  ; text nach d2 laden
        move.l #21,d3           ; textlaenge
        jsr    Ausgabe          ; springe zur ausgaberoutine
        rts

NoPaper:
        move.l #NoPaper_text,d2 ; text nach d2 laden
        move.l #46,d3           ; textlaenge
        jsr    Ausgabe          ; springe zur ausgaberoutine
        rts


Ausgabe:
        move.l  #dosname,a1     ; name der DOS-library
        moveq   #0,d0           ; dos-library version
        move.l  sysbase,a6      ; basic exec
        jsr     OpenLib(a6)     ; dos-library oeffnen
        tst.l   d0              ; fehler aufgetreten ?
        beq     ende            ; wenn ja, dann ende
        move.l  d0,dosbase      ; zeiger merken
        move.l  dosbase,a6      ; DOS-funktion aufrufen
        jsr     Output(a6)      ; output-handle holen
        move.l  d0,d4           ; und in d4 merken
        move.l  d4,d1           ; ausgabe-handle
        move.l  dosbase,a6      ; basis DOS
        jsr     Write(a6)       ; systemausgabe aufrufen
        move.l  dosbase,a1      ; basis der library
        move.l  sysbase,a6      ; basis exec
        jsr     CloseLib(a6)    ; libraries schliessen
ende:   rts

        

OffLine_text:
        dc.b    'Drucker ist offline !',7,10
        cnop    0,2
        
OnLine_text:
        dc.b    'Drucker ist online !',10
        cnop    0,2
        
NoPaper_text:
        dc.b    'Kein Papier oder Drucker ist ausgeschaltet !',7,10
        cnop    0,2
        

dosbase dc.l    0

dosname dc.b    'dos.library',0
        cnop    0,2

