| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- (* Copyright (C) 1987 Jensen & Partners International *)
- DEFINITION MODULE FIO;
- IMPORT Str, Lib;
- CONST
- MaxOpenFiles = 15;
- TYPE
- File = CARDINAL;
- CONST
- DiskFull = 0F0H ; (* Error if Write fails with disk full *)
- StandardInput = 0 ; (* MSDOS standard handles *)
- StandardOutput = 1 ;
- ErrorOutput = 2 ;
- AuxDevice = 3 ;
- PrinterDevice = 4 ;
- TYPE
- BufRec = RECORD
- RWPos,
- EOB,
- BufSize : CARDINAL;
- Buffer : ARRAY[0..0] OF SHORTCARD;
- END;
- CONST
- BufferOverhead = SIZE(BufRec)-1;
- VAR
- IOcheck : BOOLEAN; (* if true errors terminate program with report *)
- EOF : BOOLEAN;
- PROCEDURE IOresult() : CARDINAL;
- PROCEDURE Open (Name: ARRAY OF CHAR) : File;
- PROCEDURE Create(Name: ARRAY OF CHAR) : File;
- PROCEDURE Append(Name: ARRAY OF CHAR) : File;
- PROCEDURE Close (F: File);
- PROCEDURE Size (F: File) : LONGCARD;
- PROCEDURE GetPos(F: File) : LONGCARD;
- PROCEDURE Seek (F: File; Pos: LONGCARD);
- PROCEDURE Truncate(F: File);
- PROCEDURE Exists(Name: ARRAY OF CHAR) : BOOLEAN;
- PROCEDURE Erase (Name: ARRAY OF CHAR);
- PROCEDURE Rename(Name,NewName : ARRAY OF CHAR);
- PROCEDURE AssignBuffer(F : File; VAR Buf: ARRAY OF BYTE);
- PROCEDURE ChDir (Name: ARRAY OF CHAR);
- PROCEDURE MkDir (Name: ARRAY OF CHAR);
- PROCEDURE RmDir (Name: ARRAY OF CHAR);
- PROCEDURE GetDir(Drive: SHORTCARD; VAR Name: ARRAY OF CHAR);
- TYPE
- PathStr = ARRAY[0..64] OF CHAR;
- PathTail = ARRAY[0..12] OF CHAR;
- TYPE
- FileAttr = SET OF (readonly,hidden,system,volume,directory,archive);
- DirEntry = RECORD
- rsvd : ARRAY[0..20] OF SHORTCARD;
- attr : FileAttr;
- time : CARDINAL;
- date : CARDINAL;
- size : LONGCARD;
- Name : PathTail;
- END;
- PROCEDURE ReadFirstEntry(DirName : ARRAY OF CHAR;
- Attr : FileAttr;
- VAR D : DirEntry) : BOOLEAN;
- PROCEDURE ReadNextEntry (VAR D : DirEntry) : BOOLEAN;
- PROCEDURE WrChar (F: File; V: CHAR );
- PROCEDURE WrBool (F: File; V: BOOLEAN ; Length: INTEGER);
- PROCEDURE WrShtInt (F: File; V: SHORTINT ; Length: INTEGER);
- PROCEDURE WrInt (F: File; V: INTEGER ; Length: INTEGER);
- PROCEDURE WrLngInt (F: File; V: LONGINT ; Length: INTEGER);
- PROCEDURE WrShtCard(F: File; V: SHORTCARD; Length: INTEGER);
- PROCEDURE WrCard (F: File; V: CARDINAL ; Length: INTEGER);
- PROCEDURE WrLngCard(F: File; V: LONGCARD ; Length: INTEGER);
- PROCEDURE WrShtHex (F: File; V: SHORTCARD; Length: INTEGER);
- PROCEDURE WrHex (F: File; V: CARDINAL ; Length: INTEGER);
- PROCEDURE WrLngHex (F: File; V: LONGCARD ; Length: INTEGER);
- PROCEDURE WrReal (F: File; V: REAL ; Precision: CARDINAL; Length: INTEGER);
- PROCEDURE WrLngReal(F: File; V: LONGREAL ; Precision: CARDINAL; Length: INTEGER);
- PROCEDURE WrStr (F: File; V: ARRAY OF CHAR);
- PROCEDURE WrStrAdj (F: File; S: ARRAY OF CHAR; Length: INTEGER);
- PROCEDURE WrLn (F: File);
- PROCEDURE WrCharRep(F: File; V: CHAR; Count: CARDINAL );
- PROCEDURE WrBin (F: File; Buf: ARRAY OF BYTE; Count: CARDINAL);
- PROCEDURE RdChar (F: File) : CHAR;
- PROCEDURE RdBool (F: File) : BOOLEAN;
- PROCEDURE RdShtInt (F: File) : SHORTINT;
- PROCEDURE RdInt (F: File) : INTEGER;
- PROCEDURE RdLngInt (F: File) : LONGINT;
- PROCEDURE RdShtCard(F: File) : SHORTCARD;
- PROCEDURE RdCard (F: File) : CARDINAL;
- PROCEDURE RdLngCard(F: File) : LONGCARD;
- PROCEDURE RdShtHex (F: File) : SHORTCARD;
- PROCEDURE RdHex (F: File) : CARDINAL;
- PROCEDURE RdLngHex (F: File) : LONGCARD;
- PROCEDURE RdReal (F: File) : REAL;
- PROCEDURE RdLngReal(F: File) : LONGREAL;
- PROCEDURE RdItem (F: File; VAR V: ARRAY OF CHAR);
- PROCEDURE RdStr (F: File; VAR V: ARRAY OF CHAR);
- PROCEDURE RdBin (F: File; VAR Buf: ARRAY OF BYTE; Count: CARDINAL) : CARDINAL;
- VAR Separators : Str.CHARSET;
- VAR OK : BOOLEAN;
- VAR ChopOff : BOOLEAN;
- VAR Eng : BOOLEAN; (* Engineering notation *)
- END FIO.
|