home *** CD-ROM | disk | FTP | other *** search
- {* * * * * * * * * * * * * * * * * * * *
- * *
- * UNIT: PRINTERS *
- * ersetzt die Standard-Unit *
- * PRINTER für den Anschluß von *
- * zwei Druckern an LPT1 und LPT2 *
- * *
- * *
- * Turbo Pascal dt. 6.0 - P91123423 *
- * MS-DOS 4.01 TEMA 386-SX *
- * *
- * (c) Mai 1991 *
- * Karl Friedrich Wieneke *
- * An der Tiefburg 6 *
- * D-6900 Heidelberg *
- * Tel: 06221-413692 *
- * *
- * * * * * * * * * * * * * * * * * * * *}
-
-
- unit printers;
-
- interface
-
- uses dos;
-
- var lst, lst2 : text;
-
- function whichlst : shortint;
- procedure swaplst;
-
-
- implementation
-
- const lst_no_error = 144;
-
- var standardlst : boolean;
- reg : registers;
-
- function lstok : boolean;
- begin
- reg.ah := 2;
- if standardlst
- then reg.dx := 0
- else reg.dx := 1;
- intr($17,reg);
- lstok := (reg.ah = lst_no_error)
- end;
-
- function lst2ok : boolean;
- begin
- reg.ah := 2;
- if standardlst
- then reg.dx := 1
- else reg.dx := 0;
- intr($17,reg);
- lst2ok := (reg.ah = lst_no_error)
- end;
-
- procedure initlst;
- begin
- assign(lst,'lpt1');
- rewrite(lst);
- assign(lst2,'lpt2');
- rewrite(lst2);
- standardlst := true
- end;
-
- procedure swaplst;
- begin
- close(lst);
- close(lst2);
- if standardlst then
- begin
- assign(lst,'lpt2');
- rewrite(lst);
- assign(lst2,'lpt1');
- rewrite(lst2);
- standardlst := false
- end
- else initlst
- end;
-
- function whichlst : shortint;
- var helpwhich : shortint;
- begin
- helpwhich := 0;
- if lstok then inc(helpwhich,1);
- if lst2ok then inc(helpwhich,2);
- if standardlst
- then whichlst := helpwhich
- else whichlst := -helpwhich;
- end;
-
- begin
- initlst
- end.
-
-