FIOX.LST 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
  1. Listing:
  2. 1 (*# call(o_a_size=>off) *)
  3. 2 (*# call(o_a_copy=>off) *)
  4. 3 (*# call(near_call=>on) *)
  5. 4 IMPLEMENTATION MODULE FIOx;
  6. 5 (*
  7. 6 Copyright (C) 1988,1989,1990 Jensen & Partners International
  8. 7 *)
  9. 8
  10. 9
  11. 10 IMPORT FIO;
  12. 11 (*%T _OS2 *) IMPORT Dos; (*%E*)
  13. 12 (*%F _OS2 *) IMPORT Lib, SYSTEM, Str (*%T _mthread *),Process (*%E *); (*%E*)
  14. 13
  15. 14 VAR
  16. 15 _multi_mode : MultiMode;
  17. ***** ^ undeclared identifier
  18. 16 LocalError : CARDINAL;
  19. 17
  20. 18 (*************************)
  21. 19 (****** DOS Section ******)
  22. 20 (*************************)
  23. 21 (*%F _OS2 *)
  24. 22
  25. 23 VAR
  26. 24 DosVerMaj,
  27. 25 DosVerMin : SHORTCARD;
  28. 26
  29. 27
  30. 28 PROCEDURE FileLocks(f: File; VAR unlock,lock: LockRec): CARDINAL;
  31. 29 VAR
  32. 30 regs : SYSTEM.Registers;
  33. 31 tmp : POINTER TO LockRec;
  34. 32 mode : SHORTCARD;
  35. 33 BEGIN
  36. 34 mode := 1;
  37. 35 tmp := SYSTEM.ADR(unlock);
  38. 36 LOOP
  39. 37 IF tmp#NIL THEN
  40. 38 WITH regs DO
  41. 39 AH := 5CH;
  42. 40 AL := mode;
  43. 41 BX := f;
  44. 42 CX := CARDINAL(tmp^.pos DIV 65536);
  45. 43 DX := CARDINAL(tmp^.pos MOD 65536);
  46. 44 SI := CARDINAL(tmp^.len DIV 65536);
  47. 45 DI := CARDINAL(tmp^.len MOD 65536);
  48. 46 END;
  49. 47 (*%T _mthread *) Process.Lock(); (*%E *)
  50. 48 Lib.Dos(regs);
  51. 49 (*%T _mthread *) Process.Unlock(); (*%E *)
  52. 50 IF SYSTEM.CarryFlag IN regs.Flags THEN
  53. 51 RETURN regs.AX;
  54. 52 END;
  55. 53 END;
  56. 54 IF mode=0 THEN
  57. 55 EXIT;
  58. 56 END;
  59. 57 tmp := SYSTEM.ADR(lock);
  60. 58 DEC(mode);
  61. 59 END;
  62. 60 RETURN NO_ERROR;
  63. 61 END FileLocks;
  64. 62
  65. 63
  66. 64 PROCEDURE Multi(): MultiMode;
  67. 65 BEGIN
  68. 66 RETURN _multi_mode;
  69. 67 END Multi;
  70. 68
  71. 69
  72. 70 PROCEDURE MultiFile(f: File): BOOLEAN;
  73. 71 VAR
  74. 72 regs : SYSTEM.Registers;
  75. 73 BEGIN
  76. 74 IF _multi_mode=_multi_file THEN
  77. 75 WITH regs DO
  78. 76 AH := 44H;
  79. 77 AL := 0AH;
  80. 78 BX := f;
  81. 79 Lib.Dos(regs);
  82. 80 RETURN NOT (SYSTEM.CarryFlag IN Flags) AND (15 IN BITSET(DX));
  83. 81 END;
  84. 82 ELSE
  85. 83 RETURN _multi_mode=_multi_yes;
  86. 84 END;
  87. 85 END MultiFile;
  88. 86
  89. 87
  90. 88
  91. 89
  92. 90 (*# save *)
  93. 91 (*%T _fcall *) (*# call(near_call=>off) *) (*%E *)
  94. 92 PROCEDURE DelayDefault();
  95. 93 BEGIN
  96. 94 (*%T _mthread *) Process.Delay(DelayDefaultValue DIV 50); (*%E *)
  97. 95 (*%F _mthread *) Lib.Delay(DelayDefaultValue); (*%E *)
  98. 96 END DelayDefault;
  99. 97 (*# restore *)
  100. 98
  101. 99
  102. 100 PROCEDURE Init;
  103. 101 VAR
  104. 102 regs : SYSTEM.Registers;
  105. 103 str : ARRAY[0..5] OF CHAR;
  106. 104 BEGIN
  107. 105 _multi_mode := _multi_file;
  108. 106 WITH regs DO
  109. 107 AH := 30H;
  110. 108 Lib.Dos(regs);
  111. 109 DosVerMaj := AL;
  112. 110 DosVerMin := AH;
  113. 111 Lib.EnvironmentFind('multi',str);
  114. 112 Str.Caps(str);
  115. 113 IF Str.Compare(str,'YES')=0 THEN
  116. 114 _multi_mode := _multi_yes;
  117. 115 ELSIF Str.Compare(str,'NO')=0 THEN
  118. 116 _multi_mode := _multi_no;
  119. 117 ELSIF DosVerMaj >= 3 THEN
  120. 118 AH := 10H;
  121. 119 AL := 0;
  122. 120 Lib.Intr(regs,2FH);
  123. 121 IF AL=0FFH THEN
  124. 122 _multi_mode := _multi_yes;
  125. 123 END;
  126. 124 END;
  127. 125 END;
  128. 126 END Init;
  129. 127
  130. 128
  131. 129 (*%E *)
  132. 130 (**************************)
  133. 131 (****** OS/2 Section ******)
  134. 132 (**************************)
  135. 133 (*%T _OS2 *)
  136. 134
  137. 135
  138. 136
  139. 137 PROCEDURE Multi(): MultiMode;
  140. ***** ^ undeclared identifier
  141. 138 BEGIN
  142. 139 RETURN _multi_yes;
  143. ***** ^ undeclared identifier
  144. 140 END Multi;
  145. ***** ^ not supported yet
  146. 141
  147. 142
  148. 143 PROCEDURE MultiFile(f: File): BOOLEAN;
  149. ***** ^ undeclared identifier
  150. 144 BEGIN
  151. 145 RETURN TRUE;
  152. 146 END MultiFile;
  153. ***** ^ not supported yet
  154. 147
  155. 148
  156. 149
  157. 150
  158. 151 (*%F _fptr *)
  159. 152 (*# save *)
  160. 153 (*# call(inline=>on) *)
  161. 154 (*# call(reg_param=>(cx)) *)
  162. 155 (*# call(reg_return=>(cx,dx)) *)
  163. 156 (*# call(reg_saved=>(ax,bx,cx,si,di,ds,es,st1,st2)) *)
  164. 157 (*# data(near_ptr=>off) *)
  165. 158 TYPE
  166. 159 A6 = ARRAY[0..5] OF SHORTCARD;
  167. 160 LR_PTR = POINTER TO Dos.LOCKRANGE;
  168. 161 PROCEDURE LR_ptr(a: NearADDRESS): LR_PTR=A6(033H,0D2H, (* xor dx,dx *)
  169. 162 0E3H,002H, (* jcxz $0 *)
  170. 163 08CH,0DAH);(* mov dx,ds *)
  171. 164 (* $0: *)
  172. 165 (*# restore *)
  173. 166 (*%E *)
  174. 167
  175. 168
  176. 169 PROCEDURE FileLocks(f: File; VAR unlock,lock: LockRec): CARDINAL;
  177. ***** ^ undeclared identifier
  178. ***** ^ undeclared identifier
  179. 170 BEGIN
  180. 171 (*%T _fptr *)
  181. 172 RETURN Dos.FileLocks(f,Dos.LOCKRANGE(unlock),Dos.LOCKRANGE(lock));
  182. ***** ^ not supported yet
  183. ***** ^ not supported yet
  184. ***** ^ not supported yet
  185. ***** ^ not supported yet
  186. ***** ^ not supported yet
  187. ***** ^ not supported yet
  188. ***** ^ not supported yet
  189. ***** ^ not supported yet
  190. ***** ^ not supported yet
  191. 173 (*%E *)
  192. 174 (*%F _fptr *)
  193. 175 RETURN Dos.FileLocks(f,LR_ptr(ADR(unlock))^,LR_ptr(ADR(lock))^);
  194. 176 (*%E *)
  195. 177 END FileLocks;
  196. ***** ^ not supported yet
  197. 178
  198. 179
  199. 180 (*# save *)
  200. 181 (*%T _fcall *) (*# call(near_call=>off) *) (*%E *)
  201. 182 PROCEDURE DelayDefault();
  202. 183 BEGIN
  203. 184 Dos.Sleep(DelayDefaultValue);
  204. ***** ^ not supported yet
  205. ***** ^ not supported yet
  206. ***** ^ undeclared identifier
  207. 185 END DelayDefault;
  208. ***** ^ not supported yet
  209. 186 (*# restore *)
  210. 187
  211. 188
  212. 189 PROCEDURE Init();
  213. 190 BEGIN
  214. 191 END Init;
  215. ***** ^ not supported yet
  216. 192
  217. 193
  218. 194 (*%E *)
  219. 195 (****************************)
  220. 196 (****** Common Section ******)
  221. 197 (****************************)
  222. 198
  223. 199 PROCEDURE Open(Name: ARRAY OF CHAR; Share,ReadOnly,Create: BOOLEAN): File;
  224. ***** ^ not supported yet
  225. ***** ^ undeclared identifier
  226. 200 TYPE
  227. 201 Mn = ARRAY BOOLEAN OF BITSET;
  228. ***** ^ not supported yet
  229. ***** ^ undeclared identifier
  230. 202 Mj = ARRAY BOOLEAN OF Mn;
  231. ***** ^ not supported yet
  232. ***** ^ not supported yet
  233. 203 ST = ARRAY[0..64] OF CHAR;
  234. ***** ^ not supported yet
  235. ***** ^ not supported yet
  236. 204 CONST
  237. 205 m_Std = {};
  238. ***** ^ not supported yet
  239. 206 m_ReadWrite = {1};
  240. ***** ^ not supported yet
  241. 207 m_ReadOnly = {};
  242. ***** ^ not supported yet
  243. 208 m_DenyAll = {4};
  244. ***** ^ not supported yet
  245. 209 m_DenyWrite = {5};
  246. ***** ^ not supported yet
  247. 210 m_DenyNone = {6};
  248. ***** ^ not supported yet
  249. 211 M = Mj(Mn((m_Std+m_ReadWrite+m_DenyAll),
  250. 212 (m_Std+m_ReadWrite+m_DenyNone)),
  251. ***** ^ not supported yet
  252. 213 Mn((m_Std+m_ReadOnly +m_DenyAll),
  253. 214 (m_Std+m_ReadOnly +m_DenyWrite)));
  254. ***** ^ not supported yet
  255. 215 m_Test = (m_Std+m_ReadOnly+m_DenyNone);
  256. 216 VAR
  257. 217 multi : BOOLEAN;
  258. 218 h : File;
  259. ***** ^ undeclared identifier
  260. 219 savesharemode : BITSET;
  261. ***** ^ undeclared identifier
  262. 220 BEGIN
  263. 221 IF Create AND (ReadOnly OR Share) THEN
  264. 222 RETURN MAX(CARDINAL);
  265. ***** ^ undeclared identifier
  266. ***** ^ not supported yet
  267. 223 END;
  268. 224 (*%T _mthread *) (*%F _OS2*) Process.Lock(); (*%E*) (*%E *)
  269. 225 IF Create THEN
  270. 226 h := FIO.Create(ST(Name));
  271. ***** ^ not supported yet
  272. ***** ^ not supported yet
  273. ***** ^ not supported yet
  274. ***** ^ not supported yet
  275. 227 ELSE
  276. 228 savesharemode := FIO.ShareMode;
  277. ***** ^ not supported yet
  278. ***** ^ not supported yet
  279. ***** ^ not supported yet
  280. 229 IF Share AND (_multi_mode=_multi_file) THEN
  281. ***** ^ not supported yet
  282. ***** ^ undeclared identifier
  283. 230 FIO.ShareMode := m_Test;
  284. ***** ^ not supported yet
  285. ***** ^ not supported yet
  286. 231 h := FIO.OpenRead(ST(Name));
  287. ***** ^ not supported yet
  288. ***** ^ not supported yet
  289. ***** ^ not supported yet
  290. ***** ^ not supported yet
  291. 232 multi := MultiFile(h);
  292. ***** ^ not supported yet
  293. ***** ^ not supported yet
  294. 233 FIO.Close(h);
  295. ***** ^ not supported yet
  296. ***** ^ not supported yet
  297. ***** ^ not supported yet
  298. 234 ELSE
  299. 235 multi := _multi_mode=_multi_yes;
  300. ***** ^ not supported yet
  301. ***** ^ undeclared identifier
  302. 236 END;
  303. 237 FIO.ShareMode := M[ReadOnly,Share AND multi];
  304. ***** ^ not supported yet
  305. ***** ^ not supported yet
  306. ***** ^ not supported yet
  307. 238 h := FIO.OpenRead(ST(Name));
  308. ***** ^ not supported yet
  309. ***** ^ not supported yet
  310. ***** ^ not supported yet
  311. ***** ^ not supported yet
  312. 239 FIO.ShareMode := savesharemode;
  313. ***** ^ not supported yet
  314. ***** ^ not supported yet
  315. ***** ^ not supported yet
  316. 240 END;
  317. 241 (*%T _mthread *) (*%F _OS2*) Process.Unlock(); (*%E *) (*%E*)
  318. 242 RETURN h;
  319. ***** ^ not supported yet
  320. 243 END Open;
  321. ***** ^ not supported yet
  322. 244
  323. 245
  324. 246 PROCEDURE Truncate(f: File; l: LONGCARD);
  325. ***** ^ undeclared identifier
  326. ***** ^ undeclared identifier
  327. 247 VAR
  328. 248 s : LONGCARD;
  329. ***** ^ undeclared identifier
  330. 249 BEGIN
  331. 250 s := Size(f);
  332. ***** ^ not supported yet
  333. ***** ^ undeclared identifier
  334. ***** ^ not supported yet
  335. 251 IF FIO.IOresult()=0 THEN
  336. ***** ^ not supported yet
  337. ***** ^ not supported yet
  338. ***** ^ not supported yet
  339. 252 IF s<l THEN
  340. ***** ^ not supported yet
  341. ***** ^ not supported yet
  342. 253 Seek(f,l-1);
  343. ***** ^ undeclared identifier
  344. ***** ^ not supported yet
  345. ***** ^ not supported yet
  346. ***** ^ not supported yet
  347. 254 IF FIO.IOresult()=0 THEN
  348. ***** ^ not supported yet
  349. ***** ^ not supported yet
  350. ***** ^ not supported yet
  351. 255 Write(f,0,1);
  352. ***** ^ undeclared identifier
  353. ***** ^ not supported yet
  354. ***** ^ not supported yet
  355. 256 IF FIO.IOresult()<>0 THEN
  356. ***** ^ not supported yet
  357. ***** ^ not supported yet
  358. ***** ^ not supported yet
  359. 257 LocalError := FIO.IOresult();
  360. ***** ^ not supported yet
  361. ***** ^ not supported yet
  362. ***** ^ not supported yet
  363. 258 IF (Size(f)#s) THEN
  364. ***** ^ undeclared identifier
  365. ***** ^ not supported yet
  366. ***** ^ not supported yet
  367. 259 Truncate(f,s);
  368. ***** ^ not supported yet
  369. ***** ^ not supported yet
  370. ***** ^ not supported yet
  371. 260 END;
  372. 261 END;
  373. 262 END;
  374. 263 ELSIF s>l THEN
  375. ***** ^ not supported yet
  376. ***** ^ not supported yet
  377. 264 Seek(f,l);
  378. ***** ^ undeclared identifier
  379. ***** ^ not supported yet
  380. ***** ^ not supported yet
  381. 265 FIO.Truncate(f);
  382. ***** ^ not supported yet
  383. ***** ^ not supported yet
  384. ***** ^ not supported yet
  385. 266 END;
  386. 267 END;
  387. 268 END Truncate;
  388. ***** ^ not supported yet
  389. 269
  390. 270
  391. 271
  392. 272 CONST
  393. 273 Locking = _mthread AND NOT _OS2;
  394. ***** ^ undeclared identifier
  395. ***** ^ undeclared identifier
  396. 274
  397. 275
  398. 276 (*# save *)
  399. 277 (*# call(result_optional=>on) *)
  400. 278 PROCEDURE Common(f: File; x: LockRec; l: BOOLEAN): BOOLEAN;
  401. ***** ^ undeclared identifier
  402. ***** ^ undeclared identifier
  403. 279 VAR
  404. 280 cnt,
  405. 281 res : CARDINAL;
  406. 282 BEGIN
  407. 283 cnt := RetryCount();
  408. ***** ^ undeclared identifier
  409. ***** ^ not supported yet
  410. 284 LOOP
  411. 285 IF l THEN
  412. 286 res := FileLocks(f,NULL^,x);
  413. ***** ^ not supported yet
  414. ***** ^ not supported yet
  415. ***** ^ undeclared identifier
  416. ***** ^ not supported yet
  417. 287 ELSE
  418. 288 res := FileLocks(f,x,NULL^);
  419. ***** ^ not supported yet
  420. ***** ^ not supported yet
  421. ***** ^ not supported yet
  422. ***** ^ undeclared identifier
  423. 289 END;
  424. 290 IF (res=NO_ERROR) OR (cnt=0) OR NOT l THEN
  425. ***** ^ undeclared identifier
  426. 291 EXIT;
  427. 292 END;
  428. 293 DEC(cnt);
  429. ***** ^ undeclared identifier
  430. ***** ^ not supported yet
  431. 294 Delay();
  432. ***** ^ undeclared identifier
  433. ***** ^ not supported yet
  434. 295 END;
  435. 296 RETURN res=NO_ERROR;
  436. ***** ^ undeclared identifier
  437. 297 END Common;
  438. ***** ^ not supported yet
  439. 298 (*# restore *)
  440. 299
  441. 300
  442. 301 PROCEDURE Lock(f: File; x: LockRec): BOOLEAN;
  443. ***** ^ undeclared identifier
  444. ***** ^ undeclared identifier
  445. 302 BEGIN
  446. 303 RETURN Common(f,x,TRUE);
  447. ***** ^ not supported yet
  448. ***** ^ not supported yet
  449. ***** ^ not supported yet
  450. ***** ^ not supported yet
  451. 304 END Lock;
  452. ***** ^ not supported yet
  453. 305
  454. 306
  455. 307 PROCEDURE UnLock(f: File; x: LockRec);
  456. ***** ^ undeclared identifier
  457. ***** ^ undeclared identifier
  458. 308 BEGIN
  459. 309 Common(f,x,FALSE);
  460. ***** ^ not supported yet
  461. ***** ^ not supported yet
  462. ***** ^ not supported yet
  463. ***** ^ not supported yet
  464. 310 END UnLock;
  465. ***** ^ not supported yet
  466. 311
  467. 312
  468. 313 (*# save *)
  469. 314 (*# call(o_a_size=>on) *)
  470. 315 (*# call(o_a_copy=>off) *)
  471. 316 (*# call(result_optional=>on) *)
  472. 317 PROCEDURE RangeCommon(f: File; x: ARRAY OF LockRec; lock: BOOLEAN): BOOLEAN;
  473. ***** ^ undeclared identifier
  474. ***** ^ undeclared identifier
  475. 318 VAR
  476. 319 i,
  477. 320 j : CARDINAL;
  478. 321 res : BOOLEAN;
  479. 322 BEGIN
  480. 323 res := TRUE;
  481. 324 i := 0;
  482. 325 LOOP
  483. 326 IF NOT res OR (i>HIGH(x)) OR (x[i].pos=MAX(LONGCARD)) THEN
  484. ***** ^ undeclared identifier
  485. ***** ^ not supported yet
  486. ***** ^ not supported yet
  487. ***** ^ not supported yet
  488. ***** ^ not supported yet
  489. ***** ^ undeclared identifier
  490. ***** ^ undeclared identifier
  491. 327 EXIT;
  492. 328 END;
  493. 329 res := Common(f,x[i],lock);
  494. ***** ^ not supported yet
  495. ***** ^ not supported yet
  496. ***** ^ not supported yet
  497. ***** ^ not supported yet
  498. ***** ^ not supported yet
  499. 330 INC(i);
  500. ***** ^ undeclared identifier
  501. ***** ^ not supported yet
  502. 331 END;
  503. 332 IF NOT res AND (i>1) THEN
  504. 333 DEC(i);
  505. ***** ^ undeclared identifier
  506. ***** ^ not supported yet
  507. 334 LOOP
  508. 335 DEC(i);
  509. ***** ^ undeclared identifier
  510. ***** ^ not supported yet
  511. 336 Common(f,x[i],NOT lock);
  512. ***** ^ not supported yet
  513. ***** ^ not supported yet
  514. ***** ^ not supported yet
  515. ***** ^ not supported yet
  516. ***** ^ not supported yet
  517. 337 IF i = 0 THEN
  518. 338 EXIT;
  519. 339 END;
  520. 340 END;
  521. 341 END;
  522. 342 RETURN res;
  523. 343 END RangeCommon;
  524. ***** ^ not supported yet
  525. 344 (*# restore *)
  526. 345
  527. 346
  528. 347 (*# save *)
  529. 348 (*# call(o_a_size=>on) *)
  530. 349 (*# call(o_a_copy=>off) *)
  531. 350 PROCEDURE LockRange(f: File; x: ARRAY OF LockRec): BOOLEAN;
  532. ***** ^ undeclared identifier
  533. ***** ^ undeclared identifier
  534. 351 BEGIN
  535. 352 RETURN RangeCommon(f,x,TRUE);
  536. ***** ^ not supported yet
  537. ***** ^ not supported yet
  538. ***** ^ not supported yet
  539. ***** ^ not supported yet
  540. 353 END LockRange;
  541. ***** ^ not supported yet
  542. 354 (*# restore *)
  543. 355
  544. 356
  545. 357 (*# save *)
  546. 358 (*# call(o_a_size=>on) *)
  547. 359 (*# call(o_a_copy=>off) *)
  548. 360 PROCEDURE UnLockRange(f: File; x: ARRAY OF LockRec);
  549. ***** ^ undeclared identifier
  550. ***** ^ undeclared identifier
  551. 361 BEGIN
  552. 362 RangeCommon(f,x,FALSE);
  553. ***** ^ not supported yet
  554. ***** ^ not supported yet
  555. ***** ^ not supported yet
  556. ***** ^ not supported yet
  557. 363 END UnLockRange;
  558. ***** ^ not supported yet
  559. 364 (*# restore *)
  560. 365
  561. 366 PROCEDURE Error(): CARDINAL;
  562. 367 VAR res : CARDINAL;
  563. 368 BEGIN
  564. 369 IF LocalError<>0 THEN
  565. 370 LocalError := 0;
  566. 371 ELSE
  567. 372 res := FIO.IOresult();
  568. ***** ^ not supported yet
  569. ***** ^ not supported yet
  570. ***** ^ not supported yet
  571. 373 END;
  572. 374 RETURN res;
  573. 375 END Error;
  574. ***** ^ not supported yet
  575. 376
  576. 377
  577. 378 (*# save *)
  578. 379 (*%T _fcall *) (*# call(near_call=>off) *) (*%E *)
  579. 380 PROCEDURE RetryCountDefault() : CARDINAL;
  580. 381 BEGIN
  581. 382 RETURN RetryCountDefaultValue;
  582. ***** ^ undeclared identifier
  583. 383 END RetryCountDefault;
  584. ***** ^ not supported yet
  585. 384 (*# restore *)
  586. 385
  587. 386 PROCEDURE Read(f: File; VAR b: ARRAY OF BYTE; c: CARDINAL);
  588. ***** ^ undeclared identifier
  589. ***** ^ undeclared identifier
  590. 387 VAR p : ADDRESS;
  591. ***** ^ undeclared identifier
  592. 388 BEGIN
  593. 389 p := ADR(b);
  594. ***** ^ not supported yet
  595. ***** ^ undeclared identifier
  596. ***** ^ not supported yet
  597. 390 IF FIO.RdBin(f,p^,c)<>c THEN
  598. ***** ^ not supported yet
  599. ***** ^ not supported yet
  600. ***** ^ not supported yet
  601. ***** ^ not supported yet
  602. ***** ^ not supported yet
  603. 391 LocalError := PAST_EOF;
  604. ***** ^ undeclared identifier
  605. 392 END;
  606. 393 END Read;
  607. ***** ^ not supported yet
  608. 394
  609. 395 PROCEDURE Write(f: File; b: ARRAY OF BYTE; c: CARDINAL);
  610. ***** ^ undeclared identifier
  611. ***** ^ undeclared identifier
  612. 396 VAR p : ADDRESS;
  613. ***** ^ undeclared identifier
  614. 397 BEGIN
  615. 398 p := ADR(b);
  616. ***** ^ not supported yet
  617. ***** ^ undeclared identifier
  618. ***** ^ not supported yet
  619. 399 FIO.WrBin(f,p^,c);
  620. ***** ^ not supported yet
  621. ***** ^ not supported yet
  622. ***** ^ not supported yet
  623. ***** ^ not supported yet
  624. ***** ^ not supported yet
  625. 400 IF FIO.IOresult()=FIO.DiskFull THEN
  626. ***** ^ not supported yet
  627. ***** ^ not supported yet
  628. ***** ^ not supported yet
  629. ***** ^ not supported yet
  630. ***** ^ not supported yet
  631. 401 LocalError := PAST_EOF;
  632. ***** ^ undeclared identifier
  633. 402 END;
  634. 403 END Write;
  635. ***** ^ not supported yet
  636. 404
  637. 405
  638. 406 BEGIN
  639. 407 _multi_mode := _multi_yes;
  640. ***** ^ not supported yet
  641. ***** ^ undeclared identifier
  642. 408 LocalError := 0;
  643. 409 RetryCount := RetryCountDefault;
  644. ***** ^ undeclared identifier
  645. ***** ^ not supported yet
  646. 410 Delay := DelayDefault;
  647. ***** ^ undeclared identifier
  648. ***** ^ not supported yet
  649. 411 Init();
  650. ***** ^ not supported yet
  651. ***** ^ not supported yet
  652. 412 END FIOx.
  653. ***** ^ not supported yet
  654. 240 errors