home *** CD-ROM | disk | FTP | other *** search
- (* ------------------------------------------------------ *)
- (* DEVICES.PAS *)
- (* Einfaches Deklarieren von Gerätetreibern unter *)
- (* Turbo Pascal. *)
- (* (c) 1989 Horst Mende & TOOLBOX *)
- (* ------------------------------------------------------ *)
- {$F+,O+}
- UNIT Devices;
-
- INTERFACE
-
- USES Dos;
-
- PROCEDURE AssignDevice(VAR f : TEXT;
- FOpen,
- FIn,
- FOut,
- FFlush,
- FClose : POINTER);
-
- FUNCTION Ignore(VAR f : TextRec) : INTEGER;
-
- IMPLEMENTATION
-
- VAR
- InFunc, OutFunc : POINTER;
-
- FUNCTION Ignore(VAR f : TextRec) : INTEGER;
- BEGIN
- Ignore := 0
- END;
-
- FUNCTION FInOut(VAR f : TextRec) : INTEGER;
- BEGIN
- WITH f DO BEGIN
- IF (mode = FMINPUT) THEN BEGIN
- InOutFunc := InFunc;
- FlushFunc := @Ignore
- END ELSE BEGIN
- InOutFunc := @OutFunc;
- FlushFunc := @OutFunc;
- END;
- CloseFunc := @Ignore;
- END;
- FInOut := 0;
- END;
-
- { Neuen Handle für Gerätetreiber zuweisen }
- PROCEDURE AssignDevice;
- BEGIN
- WITH TextRec(f) DO BEGIN
- Handle := $FFFF; { Ungültig }
- Mode := FMCLOSED;
- BufSize := SizeOf(Buffer);
- BufPos := 0;
- BufPtr := @Buffer;
- OpenFunc := FOpen;
- InOutFunc := @FInOut;
- FlushFunc := FFlush;
- CloseFunc := FClose;
- Name[0] := #0;
- END;
- InFunc := Fin;
- OutFunc := Fout;
- END;
- END.
- (* ------------------------------------------------------ *)
- (* Ende von DEVICES.PAS *)