home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2001 August
/
PCWorld_2001-08_cd.bin
/
Software
/
Vyzkuste
/
archident
/
UMLEIT.PAS
< prev
Wrap
Pascal/Delphi Source File
|
2001-06-24
|
1KB
|
67 lines
(* Die Unit Umleit ermöglicht die Dateiumleitung und Piping trotz Einbindung
von CRT. Einfach mit USES Umleit; einbinden.
The Unit 'Umleit' allows piping to/from stdout/stdin even if CRT is
used. Simply include with USES Umleit; *)
UNIT Umleit;
{$B-,I-,V-,E-,S-,N-,R-,X-,A+}
{$IFNDEF DEBUG}
{$D-,L-}
{$ENDIF}
INTERFACE
VAR EingabeUmgeleitet, (* Input redirected? *)
AusgabeUmgeleitet, (* Output redirected? *)
DeviceFehler: Boolean; (* Device error? *)
Tastatur, (* Variables for keyboard and monitor *)
Schirm: Text;
IMPLEMENTATION
Uses Dos,Crt;
VAR OldExit: Pointer;
PROCEDURE NewExitProc; Far;
BEGIN
Close(Tastatur);
Close(Schirm);
ExitProc := OldExit;
END;
VAR Regs: Registers;
BEGIN
With Regs do
BEGIN
ax := $4400;
bx := 0;
MsDos(Regs);
DeviceFehler := (Flags and FCarry)<>0;
EingabeUmgeleitet := DeviceFehler or (dl and $81<>$81);
ax := $4400;
bx := 1;
MsDos(Regs);
AusgabeUmgeleitet := DeviceFehler or (dl and $82<>$82);
END;
If EingabeUmgeleitet then
BEGIN
Assign(Input,'');
Reset(Input);
END;
If AusgabeUmgeleitet then
BEGIN
Assign(Output,'');
Rewrite(Output);
END;
AssignCrt(Tastatur);
Reset(Tastatur);
AssignCrt(Schirm);
Rewrite(Schirm);
OldExit := ExitProc;
ExitProc := @NewExitProc;
END.