' CheckPrinter.LST von Sandro Paolini
'                      Freiligrathstr. 79
'                      W-5600 Wuppertal 2
'                      Tel.: 0202 / 62 88 66
'
' CheckPrinter.LST ist Freeware! (Es darf also nicht ohne meine Genehmigung
' in andere FD-Serien übernommen oder irgendwo abgedruckt werden!!!)
'
' Wer in seinem Gfa-Basic Programm etwas ausdrucken wollte, konnte bis jetzt
' nur auf die Fähigkeit des Benutzers hoffen, da sich das Programm bei nicht
' bereitem Drucker beendete und eventuell eingegebene Daten verloren gingen.
' Im Interpreter konnte man die Fehlermeldung noch abfangen, am in compilierten
' Programmen war ein Datenverlust meist unvermeidbar.
'
' Mit der Procedure checkprinter kann man nun prüfen, ob der Drucker wirklich
' bereit ist. Der Peek müßte zwar mit allen Druckern laufen, aber falls es mal
' zu einem unbegründetem Fehler in der Routine kommen sollte, kann der Benutzer
' noch selber bestätigen, daß der Drucker bereit ist.
'
' ACHTUNG!!! In einigen Magazinen wurden ähnliche Peeks abgedruckt. Diese sol-
' lte man auf keinen Fall verwenden (!!!!), da diese auf einigen Druckern nicht
' funktionieren. Aussagen wie "Papier fehlt" oder "Drucker ist offline" können
' NICHT (!!!) durch solche Peeks bestätigt werden. Man kann mit diesem Peek nur
' überprüfen, ob der Drucker wirklich bereit ist oder nicht.
'
OPENW #0
PRINT
PRINT "Es wird geprüft ob der Drucker bereit ist."
@checkprinter
PRINT
IF druck!=TRUE
  PRINT "Alles in Ordnung! Der Drucker ist bereit!"
ELSE
  PRINT "Achtung! Drucker ist nicht bereit!"
ENDIF
REPEAT
UNTIL MOUSEK OR INKEY$<>""
CLOSEW #0
EDIT
'
PROCEDURE checkprinter
  '
  ' Der PEEK-Befehl stammt von Henrich Deppenheimer aus seinem PIN-ED
  '
  IF (PEEK(&HBFD000) AND 7)=4
    druck!=TRUE
  ELSE
    ALERT 0,"Druckerfehler!||Sind Sie sicher, daß|der Drucker bereit ist?",2," Ja | Nein ",cho%
    IF cho%=1
      druck!=TRUE
    ELSE
      druck!=FALSE
    ENDIF
  ENDIF
RETURN
