FUNCTION exp_prn(text$,crlf!,serial!)
  ' MODUL lprint (Teil 1)
  ' Copyright by Torsten Runge (Version 1.4 vom 12.06.1998)
  '
  ' Rückgabe
  '     exp_prn         Druckstatus des Druckers
  '                      TRUE  -> OnLine
  '                      FALSE -> OffLine
  '
  ' Parameter:
  '     text$           Zu druckender Textstring
  '     crlf!           Zeilenende anhängen
  '                      TRUE  -> anhängen
  '                      FALSE -> nicht anhängen
  '                     Wird ab V1.4 nicht mehr verwendet
  '                     und nur zur kompatibilität enthalten.
  '     serial!         Ausgabe über
  '                      TRUE  -> stdaux
  '                      FALSE -> stdprn
  '
  ' Lokale Variablen:
  LOCAL online!                 ! Druckerstatus
  LOCAL i%                      ! Schleifenvariable
  online!=FALSE
  '
  ' Nur %-Werte zurückgeben:
  $F%
  '
  ' Umlaute wandeln:
  FOR i%=1 TO LEN(text$)
    IF MID$(text$,i%,1)="ß"
      MID$(text$,i%,1)=szett$
    ENDIF
  NEXT i%
  '
  ' ...Testen, ob Drucker OnLine ist:
  online!=FN printer_online_test(serial!)
  '
  IF online!=TRUE
    ' Drucker ist OnLine...
    ' ...TextString ausgeben:
    OPEN "",#10,"LST:"
    PRINT #10,text$
    CLOSE #10
  ENDIF
  '
  ' Druckerstatus rückgeben:
  RETURN online!
ENDFUNC
FUNCTION printer_online_test(serial!)
  ' MODUL lprint (Teil 2)
  ' Kontrolle, ob Drucker eingeschaltet ist:
  ' ----------------------------------------
  ' Version vom 29.09.1997
  '
  ' Rückgabe
  '     printer_online_test     Druckerstatus
  '                              TRUE  -> Drucken möglich
  '                              FALSE -> Drucken nicht möglich
  '
  ' Parameter:
  '     serial!                 Ausgabe über
  '                              TRUE  -> stdaux
  '                              FALSE -> stdprn
  '
  ' Lokale Variablen:
  LOCAL drucker&                ! EXIT-Button der Alertbox:
  LOCAL online!                 ! Druckerstatus
  online!=FALSE
  '
  ' Nur %-Werte zurückgeben:
  $F%
  '
  ' Drucker-OnLine-Testschleife:
  '
  REPEAT
    IF GEMDOS(17-2*serial!)=0
      ' Drucker ist nicht bereit...
      '
      ' ...Warnmeldung ausgeben:
      drucker&=FORM_ALERT(1,"[1][| Druckmodul| | Der Drucker ist nicht bereit  | oder OffLine!][Weiter|Abbruch]")
      '
    ELSE
      ' Drucker ist bereit:
      online!=TRUE
    ENDIF
    ' Bis Drucken abbrechen oder Drucken möglich:
  UNTIL online!=TRUE OR drucker&=2
  '
  ' Druckerstatus zurückgeben:
  RETURN online!
ENDFUNC