home *** CD-ROM | disk | FTP | other *** search
- (*========================================================*)
- (* NETPRINT.PAS *)
- (* (c) Wolfgang Thiel & DMV-Verlag *)
- (*========================================================*)
- {$S- D- R- F-}
-
- UNIT NetPrint;
-
- INTERFACE
-
- VAR
- LPT1,
- LPT2,
- LPT3 : Text;
- Lst : Text ABSOLUTE LPT1;
- PRN : Text ABSOLUTE LPT1;
-
- PROCEDURE Start_PRN;
- PROCEDURE Start_LST;
- PROCEDURE Start_LPT1;
- PROCEDURE Start_LPT2;
- PROCEDURE Start_LPT3;
-
- FUNCTION Install_LPT2:WORD;
- FUNCTION Install_LPT3:WORD;
- PROCEDURE Kill_LPT2;
- PROCEDURE Kill_LPT3;
-
-
- IMPLEMENTATION
-
- USES
- Dos;
-
-
- PROCEDURE Close_Printer(VAR Printer: Text);
- (*========================================================*)
- (* Schließen des Druckerfile, wenn offen *)
- (*========================================================*)
- VAR
- Text_Struc: FILEREC ABSOLUTE Printer;
- BEGIN
- IF Text_Struc.Mode = $D7B2 THEN Close(Printer);
- END;
-
-
- PROCEDURE Start_Printer(VAR Printer: Text);
- (*========================================================*)
- (* Starten des Druckvorganges im Netz *)
- (*========================================================*)
- BEGIN
- Close_Printer(Printer);
- Rewrite(Printer);
- END;
-
-
- FUNCTION Install_Printer(VAR Printer: Text): WORD;
- (*========================================================*)
- (* Allg. Einrichten der Drucker (LPT2 und LPT3) *)
- (* Returncode entspricht IoResult *)
- (*========================================================*)
- BEGIN
- Close_Printer(Printer);
- {$I-}
- Rewrite(Printer);
- {$I+}
- Install_Printer := IOResult;
- END;
-
- (*========================================================*)
- (* Starten des Druck für den jeweiligen Drucker *)
- (*========================================================*)
- PROCEDURE Start_LPT1; BEGIN Start_Printer(LPT1); END;
- PROCEDURE Start_LPT2; BEGIN Start_Printer(LPT2); END;
- PROCEDURE Start_LPT3; BEGIN Start_Printer(LPT3); END;
- PROCEDURE Start_LST; BEGIN Start_Printer(LPT1); END;
- PROCEDURE Start_PRN; BEGIN Start_Printer(LPT1); END;
-
- (*========================================================*)
- (* Öffnen der Drucker LPT2 und LPT3 *)
- (*========================================================*)
- FUNCTION Install_LPT2: WORD;
- BEGIN
- Install_LPT2 := Install_Printer(LPT2);
- END;
-
- FUNCTION Install_LPT3: WORD;
- BEGIN
- Install_LPT3 := Install_Printer(LPT3);
- END;
-
- (*========================================================*)
- (* Endgültiges Schließen des Druckers und Freigeben des *)
- (* Kanals *)
- (*========================================================*)
- PROCEDURE Kill_LPT2; BEGIN Close_Printer(LPT2); END;
- PROCEDURE Kill_LPT3; BEGIN Close_Printer(LPT3); END;
-
- BEGIN
- (*========================================================*)
- (* Initialisierung der Unit *)
- (* Die File-Variablen LPT1..3 werden initialisiert und *)
- (* der LPT1-Drucker geöffnet. *)
- (*========================================================*)
- Assign(LPT1,'LPT1');
- Assign(LPT2,'LPT2');
- Assign(LPT3,'LPT3');
- {$I-}
- Rewrite(Lst);
- {$I+}
- IF IOResult <> 0 THEN BEGIN
- WriteLn('Fehler in der Initialisierung von NetPrint');
- WriteLn('Programmabbruch');
- Halt;
- END;
- END.
-
- (*========================================================*)
- (* Ende von NETPRINT.PAS *)
-
-