fio.def 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. (* Copyright (C) 1987 Jensen & Partners International *)
  2. DEFINITION MODULE FIO;
  3. IMPORT Str, Lib;
  4. CONST
  5. MaxOpenFiles = 15;
  6. TYPE
  7. File = CARDINAL;
  8. CONST
  9. DiskFull = 0F0H ; (* Error if Write fails with disk full *)
  10. StandardInput = 0 ; (* MSDOS standard handles *)
  11. StandardOutput = 1 ;
  12. ErrorOutput = 2 ;
  13. AuxDevice = 3 ;
  14. PrinterDevice = 4 ;
  15. TYPE
  16. BufRec = RECORD
  17. RWPos,
  18. EOB,
  19. BufSize : CARDINAL;
  20. Buffer : ARRAY[0..0] OF SHORTCARD;
  21. END;
  22. CONST
  23. BufferOverhead = SIZE(BufRec)-1;
  24. VAR
  25. IOcheck : BOOLEAN; (* if true errors terminate program with report *)
  26. EOF : BOOLEAN;
  27. PROCEDURE IOresult() : CARDINAL;
  28. PROCEDURE Open (Name: ARRAY OF CHAR) : File;
  29. PROCEDURE Create(Name: ARRAY OF CHAR) : File;
  30. PROCEDURE Append(Name: ARRAY OF CHAR) : File;
  31. PROCEDURE Close (F: File);
  32. PROCEDURE Size (F: File) : LONGCARD;
  33. PROCEDURE GetPos(F: File) : LONGCARD;
  34. PROCEDURE Seek (F: File; Pos: LONGCARD);
  35. PROCEDURE Truncate(F: File);
  36. PROCEDURE Exists(Name: ARRAY OF CHAR) : BOOLEAN;
  37. PROCEDURE Erase (Name: ARRAY OF CHAR);
  38. PROCEDURE Rename(Name,NewName : ARRAY OF CHAR);
  39. PROCEDURE AssignBuffer(F : File; VAR Buf: ARRAY OF BYTE);
  40. PROCEDURE ChDir (Name: ARRAY OF CHAR);
  41. PROCEDURE MkDir (Name: ARRAY OF CHAR);
  42. PROCEDURE RmDir (Name: ARRAY OF CHAR);
  43. PROCEDURE GetDir(Drive: SHORTCARD; VAR Name: ARRAY OF CHAR);
  44. TYPE
  45. PathStr = ARRAY[0..64] OF CHAR;
  46. PathTail = ARRAY[0..12] OF CHAR;
  47. TYPE
  48. FileAttr = SET OF (readonly,hidden,system,volume,directory,archive);
  49. DirEntry = RECORD
  50. rsvd : ARRAY[0..20] OF SHORTCARD;
  51. attr : FileAttr;
  52. time : CARDINAL;
  53. date : CARDINAL;
  54. size : LONGCARD;
  55. Name : PathTail;
  56. END;
  57. PROCEDURE ReadFirstEntry(DirName : ARRAY OF CHAR;
  58. Attr : FileAttr;
  59. VAR D : DirEntry) : BOOLEAN;
  60. PROCEDURE ReadNextEntry (VAR D : DirEntry) : BOOLEAN;
  61. PROCEDURE WrChar (F: File; V: CHAR );
  62. PROCEDURE WrBool (F: File; V: BOOLEAN ; Length: INTEGER);
  63. PROCEDURE WrShtInt (F: File; V: SHORTINT ; Length: INTEGER);
  64. PROCEDURE WrInt (F: File; V: INTEGER ; Length: INTEGER);
  65. PROCEDURE WrLngInt (F: File; V: LONGINT ; Length: INTEGER);
  66. PROCEDURE WrShtCard(F: File; V: SHORTCARD; Length: INTEGER);
  67. PROCEDURE WrCard (F: File; V: CARDINAL ; Length: INTEGER);
  68. PROCEDURE WrLngCard(F: File; V: LONGCARD ; Length: INTEGER);
  69. PROCEDURE WrShtHex (F: File; V: SHORTCARD; Length: INTEGER);
  70. PROCEDURE WrHex (F: File; V: CARDINAL ; Length: INTEGER);
  71. PROCEDURE WrLngHex (F: File; V: LONGCARD ; Length: INTEGER);
  72. PROCEDURE WrReal (F: File; V: REAL ; Precision: CARDINAL; Length: INTEGER);
  73. PROCEDURE WrLngReal(F: File; V: LONGREAL ; Precision: CARDINAL; Length: INTEGER);
  74. PROCEDURE WrStr (F: File; V: ARRAY OF CHAR);
  75. PROCEDURE WrStrAdj (F: File; S: ARRAY OF CHAR; Length: INTEGER);
  76. PROCEDURE WrLn (F: File);
  77. PROCEDURE WrCharRep(F: File; V: CHAR; Count: CARDINAL );
  78. PROCEDURE WrBin (F: File; Buf: ARRAY OF BYTE; Count: CARDINAL);
  79. PROCEDURE RdChar (F: File) : CHAR;
  80. PROCEDURE RdBool (F: File) : BOOLEAN;
  81. PROCEDURE RdShtInt (F: File) : SHORTINT;
  82. PROCEDURE RdInt (F: File) : INTEGER;
  83. PROCEDURE RdLngInt (F: File) : LONGINT;
  84. PROCEDURE RdShtCard(F: File) : SHORTCARD;
  85. PROCEDURE RdCard (F: File) : CARDINAL;
  86. PROCEDURE RdLngCard(F: File) : LONGCARD;
  87. PROCEDURE RdShtHex (F: File) : SHORTCARD;
  88. PROCEDURE RdHex (F: File) : CARDINAL;
  89. PROCEDURE RdLngHex (F: File) : LONGCARD;
  90. PROCEDURE RdReal (F: File) : REAL;
  91. PROCEDURE RdLngReal(F: File) : LONGREAL;
  92. PROCEDURE RdItem (F: File; VAR V: ARRAY OF CHAR);
  93. PROCEDURE RdStr (F: File; VAR V: ARRAY OF CHAR);
  94. PROCEDURE RdBin (F: File; VAR Buf: ARRAY OF BYTE; Count: CARDINAL) : CARDINAL;
  95. VAR Separators : Str.CHARSET;
  96. VAR OK : BOOLEAN;
  97. VAR ChopOff : BOOLEAN;
  98. VAR Eng : BOOLEAN; (* Engineering notation *)
  99. END FIO.