home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* PRINT26.PAS *)
- (* Aufruf von Switch_Print_Char26_On ermöglicht es, *)
- (* auch das ASCII-Zeichen 26 (^Z) mit der Unit Printer *)
- (* auf dem Drucker auszugeben. *)
- (* Dazu wird das Attribut des Gerätetreibers geändert *)
- (* *)
- (* (c) 1991 Gunnar Blumert & TOOLBOX *)
- (* ------------------------------------------------------ *)
- UNIT Print26;
-
- INTERFACE
-
- USES Dos;
-
- VAR
- Lst : TEXT;
-
- FUNCTION Switch_Print_Char26_On : BOOLEAN;
-
- FUNCTION InitLst(Name : PathStr) : BOOLEAN;
-
- PROCEDURE CloseLst;
-
-
- IMPLEMENTATION
-
- VAR
- OldExit : POINTER;
-
-
- FUNCTION Switch_Print_Char26_On : BOOLEAN;
- VAR
- Regs : REGISTERS;
- BEGIN
- Switch_Print_Char26_On := FALSE;
- Regs.bx := TextRec(Lst).Handle;
- Regs.ax := $4400;
- MsDos(Regs); { Treiberattribut lesen }
- IF Regs.Flags AND FCarry <> 0 THEN BEGIN
- WriteLn('Fehler beim Lesen des Treiberattributs' +
- ' (Nr. ', Regs.ax,')');
- Exit;
- END; { Zeichentreiber? }
- IF Regs.dx AND $80 = $80 THEN BEGIN { Ja }
- Regs.dx := (Regs.dx AND $ff) OR $20; { dann: }
- Regs.ax := $4401;
- MsDos(Regs); { Treiberattribut setzen }
- IF Regs.Flags AND FCarry <> 0 THEN BEGIN
- WriteLn('Fehler beim Setzen des Treiberattributs' +
- ' (Nr. ', Regs.ax,')');
- END;
- END;
- Switch_Print_Char26_On := TRUE;
- END;
-
- {$F+}
- PROCEDURE CloseLst;
- BEGIN
- ExitProc := OldExit;
- Close(Lst);
- END;
- {$F-}
-
- FUNCTION InitLst(Name : PathStr) : BOOLEAN;
- BEGIN
- Assign(Lst, Name);
- Rewrite(Lst);
- InitLst := IOResult = 0;
- OldExit := ExitProc; { Druckerkanal bei }
- ExitProc := @CloseLst; { Programmende schließen }
- END;
-
- END.
- (* ------------------------------------------------------ *)
- (* Ende von PRINT26.PAS *)