test.pas 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604
  1. Program Test;
  2. {$Description Test for FreePascal Netware-RTL}
  3. {$Version 1.1.0}
  4. {$I-}
  5. {$Mode Delphi}
  6. USES Strings, Dos, SysUtils, CRT, Video, Keyboard;
  7. TYPE Str255 = STRING [255];
  8. PROCEDURE ErrorCheck (Action,FN : STRING);
  9. VAR Err : INTEGER;
  10. BEGIN
  11. Err := IOResult;
  12. IF Err = 0 THEN
  13. BEGIN
  14. WriteLn (' OK');
  15. EXIT;
  16. END;
  17. WriteLn (' ! Error (',Action,' in ',FN,'), IOResult: ',Err);
  18. HALT;
  19. END;
  20. PROCEDURE FileTest;
  21. CONST TestFN = 'SYS:TEST/TEST.DAT';
  22. NumBlocks = 100;
  23. BlockSize = 1024;
  24. VAR F : FILE;
  25. Err : LONGINT;
  26. Buffer : ARRAY [0..BlockSize-1] OF BYTE;
  27. Written: LONGINT;
  28. I : BYTE;
  29. J : LONGINT;
  30. BEGIN
  31. Write ('Creating ',TestFN);
  32. Assign (F,TestFN);
  33. ReWrite (F,1);
  34. ErrorCheck ('Create',TestFN);
  35. FOR I := 1 TO NumBlocks DO
  36. BEGIN
  37. FillChar (Buffer, SIZEOF (Buffer), CHAR(I));
  38. Write ('BlockWrite');
  39. BlockWrite (F,Buffer,SIZEOF(Buffer));
  40. ErrorCheck ('BlockWrite',TestFN);
  41. END;
  42. Write ('Seek');
  43. Seek (F,0);
  44. ErrorCheck ('Seek',TestFN);
  45. FOR I := 1 TO NumBlocks DO
  46. BEGIN
  47. Write ('BlockRead');
  48. BlockRead (F,Buffer,SIZEOF(Buffer));
  49. ErrorCheck ('BlockRead',TestFN);
  50. FOR J := LOW (Buffer) TO HIGH (Buffer) DO
  51. IF Buffer[J] <> I THEN
  52. BEGIN
  53. WriteLn ('Verify-Error');
  54. HALT;
  55. END;
  56. END;
  57. Write ('Close');
  58. Close (F);
  59. ErrorCheck ('Close',TestFN);
  60. Write ('Erase');
  61. Erase (F);
  62. ErrorCheck ('Erase',TestFN);
  63. END;
  64. PROCEDURE TextFileTest;
  65. CONST NumLines = 100;
  66. FN = 'SYS:TEST/TEST.TXT';
  67. VAR I : LONGINT;
  68. S,S1 : STRING;
  69. T : TEXT;
  70. BEGIN
  71. Assign (T,FN);
  72. ReWrite (T);
  73. ErrorCheck ('ReWrite',FN);
  74. FOR I := 1 TO NumLines DO
  75. BEGIN
  76. Str (I, S);
  77. Write ('WriteLn');
  78. WriteLn (T, S);
  79. ErrorCheck ('WriteLn',FN);
  80. END;
  81. Write ('Close'); Close (T); ErrorCheck ('Close',FN);
  82. Assign (T,FN);
  83. Reset (T);
  84. ErrorCheck ('Reset',FN);
  85. FOR I := 1 TO NumLines DO
  86. BEGIN
  87. Str (I, S1);
  88. Write ('ReadLn');
  89. ReadLn (T, S);
  90. ErrorCheck ('ReadLn',FN);
  91. IF (S <> S1) THEN
  92. BEGIN
  93. WriteLn ('Verify-Error "',S,'" <> "',S1,'"');
  94. HALT;
  95. END;
  96. END;
  97. Write ('Close'); Close (T); ErrorCheck ('Close',FN);
  98. Write ('Erase'); Erase (T); ErrorCheck ('Erase',FN);
  99. END;
  100. PROCEDURE MemTest;
  101. CONST NumBlocks = 1000;
  102. BlockSize = 1024;
  103. VAR I : LONGINT;
  104. P : ARRAY [0..NumBlocks-1] OF POINTER;
  105. BEGIN
  106. Write ('GetMem/FreeMem Test');
  107. FillChar (P, SIZEOF(P), 0);
  108. FOR I := 0 TO NumBlocks-1 DO
  109. BEGIN
  110. Write ('g');
  111. GetMem (P[I],BlockSize);
  112. FillChar (P[I]^,BlockSize,$FF);
  113. END;
  114. FOR I := 0 TO NumBlocks-1 DO
  115. BEGIN
  116. Write ('f');
  117. FreeMem (P[I],BlockSize);
  118. END;
  119. WriteLn (' Ok');
  120. END;
  121. PROCEDURE DosTest;
  122. VAR Year, Month, Day, DayVal, hour, Minute, Second, Sec100 : WORD;
  123. BEGIN
  124. GetDate (Year,Month, Day, DayVal);
  125. WriteLn ('GetDate: ',Year,'/',Month,'/',Day);
  126. GetTime (hour, Minute, Second, Sec100);
  127. WriteLn ('GetTime: ',Hour,':',Minute,':',Second,':',Sec100);
  128. END;
  129. PROCEDURE ExceptTest;
  130. BEGIN
  131. TRY
  132. WriteLn ('Raising Exception');
  133. Raise (Exception.Create (''));
  134. EXCEPT
  135. WriteLn ('Fine, Except-Handler called');
  136. END;
  137. END;
  138. {PROCEDURE ReadDirTest;
  139. VAR EntryH, DirH : PNWDirEnt;
  140. T : DateTime;
  141. BEGIN
  142. DirH := _opendir ('SYS:TEST/*.*');
  143. IF DirH <> NIL THEN
  144. BEGIN
  145. EntryH := _readdir (DirH);
  146. WHILE (EntryH <> NIL) DO
  147. BEGIN
  148. unpacktime (EntryH^.d_time + (LONGINT (EntryH^.d_date) SHL 16),T);
  149. WriteLn ('Name: "', EntryH^.d_nameDOS,'" size:',EntryH^.d_size,' namespace-name: "',EntryH^.d_name,'" ',T.Day,'.',T.Month,'.',T.Year,' ',T.Hour,':',T.Min,':',T.Sec);
  150. EntryH := _readdir (DirH);
  151. END;
  152. _closedir (DirH);
  153. END ELSE
  154. WriteLn ('opendir failed');
  155. END;}
  156. PROCEDURE FindTest;
  157. VAR f : Dos.SearchRec;
  158. t : Dos.DateTime;
  159. s : string [5];
  160. fh: FILE;
  161. time: LONGINT;
  162. attr: word;
  163. BEGIN
  164. Dos.FindFirst ('SYS:TEST\*.*',anyfile,f);
  165. WHILE Dos.DosError = 0 DO
  166. BEGIN
  167. unpacktime (f.time,t);
  168. IF f.attr AND directory <> 0 THEN
  169. S := '<DIR>'
  170. ELSE
  171. S := '';
  172. WriteLn (f.Name:15,f.attr:6,S:6,f.size:6,' ',t.Month:2,'/',t.day:2,'/',t.year,' ',t.hour:2,':',t.min:2,':',t.sec:2);
  173. Dos.FindNext (f);
  174. END;
  175. Dos.FindClose (f);
  176. {WriteLn ('Directories:');
  177. Dos.FindFirst ('SYS:SYSTEM\*.*',directory,f);
  178. WHILE Dos.DosError = 0 DO
  179. BEGIN
  180. WriteLn (f.Name:15);
  181. Dos.FindNext (f);
  182. END;
  183. Dos.FindClose (f);}
  184. WriteLn;
  185. Assign (FH,ParamStr(0));
  186. Reset (FH,1);
  187. ErrorCheck ('Reset',ParamStr(0));
  188. Getftime (FH, time);
  189. Getfattr (FH, attr);
  190. Close (FH);
  191. unpacktime (time,t);
  192. WriteLn (ParamStr(0),attr:6,' ',t.Month:2,'/',t.day:2,'/',t.year,' ',t.hour:2,':',t.min:2,':',t.sec:2);
  193. WriteLn ('GetEnv (XX): "',GetEnv ('XX'),'"');
  194. END;
  195. {PROCEDURE VolInfo;
  196. VAR I : LONGINT;
  197. Buf: ARRAY [0..255] OF CHAR;
  198. TotalBlocks : WORD;
  199. SectorsPerBlock : WORD;
  200. availableBlocks : WORD;
  201. totalDirectorySlots : WORD;
  202. availableDirSlots : WORD;
  203. volumeisRemovable : WORD;
  204. Err : LONGINT;
  205. BEGIN
  206. WriteLn ('Number of Volumes: ',_GetNumberOfVolumes);
  207. FOR I := 0 TO _GetNumberOfVolumes-1 DO
  208. BEGIN
  209. _GetVolumeName (I,@Buf);
  210. WriteLn (I,': "',Buf,'"');
  211. Err := _GetVolumeInfoWithNumber (I,@Buf,
  212. TotalBlocks,
  213. SectorsPerBlock,
  214. availableBlocks,
  215. totalDirectorySlots,
  216. availableDirSlots,
  217. volumeisRemovable);
  218. IF Err = 0 THEN
  219. BEGIN
  220. WriteLn ('TotalBlocks: ',TotalBlocks,' Sectors/Block: ',SectorsPerBlock,' avail: ',availableBlocks);
  221. END ELSE
  222. WriteLn ('Err: ',Err);
  223. END;
  224. FOR I := 0 TO 5 DO
  225. BEGIN
  226. WriteLn ('DiskFree(',I,'): ',Dos.DiskFree(I));
  227. WriteLn ('DiskSize(',I,'): ',Dos.DiskSize(I));
  228. END;
  229. END;}
  230. PROCEDURE CrtTest;
  231. VAR C : CHAR;
  232. I : INTEGER;
  233. PROCEDURE KeyTest;
  234. VAR C : CHAR;
  235. BEGIN
  236. WriteLn ('Key-Test, CR will be converted to ausgegeben, End with ESC');
  237. Repeat
  238. C := ReadKey;
  239. CASE C OF
  240. #0 : Write ('#0');
  241. #13: Write (#13#10)
  242. ELSE Write (C);
  243. END;
  244. Until C = #27;
  245. END;
  246. PROCEDURE FillScreen;
  247. VAR I : INTEGER;
  248. BEGIN
  249. ClrScr;
  250. TextColor (Green);
  251. FOR I := 1 TO 24 DO
  252. Write ('12345678901234567890123456789012345678901234567890123456789012345678901234567890');
  253. TextColor (Yellow);
  254. FOR I := 1 TO 25 DO
  255. BEGIN
  256. GotoXY (76,I); Write (' ',I,' ');
  257. END;
  258. TextColor (LightGray);
  259. END;
  260. BEGIN
  261. {GotoXY (1,1); writeln ('Text @ 1,1');
  262. GotoXY (2,2); writeln ('Text @ 2,2');
  263. GotoXY (3,3); writeln ('Text @ 3,3');
  264. GotoXY (4,4); writeln ('Text @ 4,4, Delay 5 Secs');
  265. GotoXY (1,1);
  266. IF WhereX <> 1 THEN
  267. BEGIN
  268. GotoXY (1,10); Write ('WhereX - ERROR');
  269. END;
  270. GotoXY (1,1);
  271. IF WhereY <> 1 THEN
  272. BEGIN
  273. GotoXY (1,11); Write ('WhereY - ERROR');
  274. END;
  275. Delay (1000);
  276. }
  277. ClrScr;
  278. WriteLn ('Empty Screen ');
  279. Delay (1000);
  280. WriteLn ('Cursoroff '); CursorOff;
  281. Delay (1000);
  282. WriteLn ('Cursorbig '); CursorBig;
  283. Delay (1000);
  284. WriteLn ('Cursoron '); CursorOn;
  285. LowVideo; Write ('Low '); HighVideo; Write ('High '); LowVideo; Write ('Low ');
  286. Delay (1000);
  287. KeyTest;
  288. FillScreen;
  289. Window (10,10,40,15);
  290. ClrScr; Write ('Window 10,10,20,15');
  291. KeyTest;
  292. Window (1,1,80,25);
  293. FillScreen;
  294. GotoXY (10,10); ClrEol;
  295. GotoXY (1,21); Write (' ClrEol @ 10,10 ');
  296. ReadKey;
  297. FillScreen;
  298. GotoXY (10,10); InsLine;
  299. GotoXY (1,21); Write (' Insline @ 10,10 ');
  300. ReadKey;
  301. Write ('Waiting for keypress: ');
  302. WHILE NOT Keypressed DO
  303. BEGIN
  304. Delay (500);
  305. END;
  306. Write ('OK'); ReadKey;
  307. FOR I := 1 TO 5 DO
  308. BEGIN
  309. Write (^G); Delay (200);
  310. END;
  311. Delay (1000);
  312. GotoXY (1,25); ClrEol;
  313. END;
  314. {
  315. Function FileSetDate (Handle,Age : Longint) : Longint;
  316. Function FileSetAttr (Const Filename : String; Attr: longint) : Longint;
  317. }
  318. PROCEDURE SysUtilsTest;
  319. VAR H,I,Attr : LONGINT;
  320. X : ARRAY [0..255] OF CHAR;
  321. TD: TDateTime;
  322. SR: TSearchRec;
  323. ST1,ST2: STRING;
  324. BEGIN
  325. WriteLn ('FileExists SYS:SYSTEM/CLIB.NLM: ',FileExists ('SYS:SYSTEM/CLIB.NLM'));
  326. WriteLn ('FileExists SYS:SYSTEM\CLIB.NLM: ',FileExists ('SYS:SYSTEM\CLIB.NLM'));
  327. WriteLn ('FileExists SYS:SYSTEM/CLIB.N: ',FileExists ('SYS:SYSTEM/CLIB.N'));
  328. WriteLn ('FileExists SYS:SYSTEM\CLIB.N: ',FileExists ('SYS:SYSTEM\CLIB.N'));
  329. WriteLn ('FileExists SYS:SYSTEM: ',FileExists ('SYS:SYSTEM\CLIB.N'));
  330. H := FileOpen ('SYS:TEST/Autoexec.ncf',0);
  331. IF H >= 0 THEN
  332. BEGIN
  333. I := FileRead (H, X, 20); X[20] := #0;
  334. WriteLn ('FileRead returned ',I,' Buffer: "',X,'"');
  335. END ELSE
  336. WriteLn ('FileOpen failed');
  337. FileClose (H);
  338. H := FileAge ('SYS:SYSTEM/CLIB.NLM');
  339. TD := FileDateToDateTime (H);
  340. WriteLn ('CLIBs file date: ',DateTimeToStr (TD));
  341. H := FileAge ('SYS:SYSTEM/DSREPAIR.LOG');
  342. TD := FileDateToDateTime (H);
  343. WriteLn ('DSREPAIR.LOGs file date: ',DateTimeToStr (TD));
  344. H := SysUtils.FindFirst ('SYS:SYSTEM/CLIB.nlm',faAnyFile,SR);
  345. IF H = 0 THEN
  346. BEGIN
  347. WriteLn (SR.Name:20,SR.Size:6,' ',DateTimeToStr (FileDateToDateTime (SR.time)):20,' ',hexstr (SR.attr,8));
  348. END ELSE WriteLn ('FindFirst failed');
  349. FindClose (SR);
  350. H := SysUtils.FindFirst ('SYS:SYSTEM/CLIB.N',faAnyFile,SR);
  351. IF H = 0 THEN
  352. WriteLn ('FindFirst on non existing file returned 0 !');
  353. FindClose (SR);
  354. H := SysUtils.FindFirst ('SYS:SYSTEM/DSREPAIR.LOG',faAnyFile,SR);
  355. IF H = 0 THEN
  356. BEGIN
  357. WriteLn (SR.Name:20,SR.Size:6,' ',DateTimeToStr (FileDateToDateTime (SR.time)):20,' ',hexstr (SR.attr,8));
  358. END ELSE WriteLn ('FindFirst failed');
  359. FindClose (SR);
  360. H := FileOpen ('SYS:SYSTEM/DSRepair.log',0);
  361. IF H >= 0 THEN
  362. BEGIN
  363. I := FileGetDate (H);
  364. FileClose (H);
  365. TD := FileDateToDateTime (I);
  366. WriteLn ('DSREPAIR.LOGs file date via FileGetDate: ',DateTimeToStr (TD));
  367. END ELSE WriteLn ('FileOpen failed');
  368. Attr := FileGetAttr ('SYS:SYSTEM/CLIB.NLM');
  369. WriteLn ('Attr of clib: ',hexstr (Attr,8));
  370. chdir ('sys:test');
  371. H := FileCreate ('TEST12.DAT');
  372. IF H >= 0 THEN
  373. BEGIN
  374. IF NOT FileExists ('SYS:TEST/TEST12.DAT') THEN
  375. WriteLn ('FileCreate returned ok but FileExists returned false !');
  376. FillChar (X,SIZEOF(X),BYTE('X'));
  377. I := FileWrite (H,X,SIZEOF(X));
  378. WriteLn ('FileWrite returned ',I);
  379. IF I = SIZEOF (X) THEN
  380. BEGIN
  381. IF NOT FileTruncate (H,SIZEOF(X) DIV 2) THEN
  382. WriteLn ('FileTruncate failed');
  383. END;
  384. FileClose (H);
  385. I := SysUtils.FindFirst ('TEST12.DAT',faAnyFile,SR);
  386. IF I <> 0 THEN
  387. WriteLn ('FindFirst failed')
  388. ELSE
  389. IF SR.Size <> (SIZEOF (X) DIV 2) THEN
  390. WriteLn ('FileTruncate: wrong FileSize after truncate (',SR.Size,')');
  391. FindClose (SR);
  392. IF NOT RenameFile ('TEST12.DAT','TEST12.BAK') THEN
  393. WriteLn ('RenameFile failed')
  394. ELSE
  395. BEGIN
  396. IF NOT FileExists ('SYS:TEST/TEST12.BAK') THEN
  397. WriteLn ('FileRename returned ok but FileExists returned false');
  398. IF NOT DeleteFile ('TEST12.BAK') THEN
  399. WriteLn ('DeleteFile failed')
  400. ELSE
  401. IF FileExists ('SYS:TEST/TEST12.BAK') THEN
  402. WriteLn ('DeleteFile returned ok but FileExists returned true');
  403. END;
  404. END ELSE WriteLn ('FileCreate failed');
  405. H := FileCreate ('TEST12.DAT');
  406. IF H >= 0 THEN
  407. BEGIN
  408. FillChar (X,SIZEOF(X),BYTE('X'));
  409. FileWrite (H,X,SIZEOF(X));
  410. I := FileSeek (H,10,fsFromBeginning);
  411. X[0] := '0';
  412. FileWrite (H,X,1);
  413. IF I <> 10 THEN WriteLn ('FileSeek returned wrong result at 10 (',I,')');
  414. I := FileSeek (H,10,fsFromCurrent);
  415. X[0] := '1';
  416. FileWrite (H,X,1);
  417. IF I <> 21 THEN WriteLn ('FileSeek returned wrong result at 21 (',I,')');
  418. I := FileSeek (H,-10,fsFromEnd);
  419. X[0] := '2';
  420. FileWrite (H,X,1);
  421. IF I <> SIZEOF(X)-10 THEN WriteLn ('FileSeek returned wrong result at End-10 (',I,')');
  422. FileClose (H);
  423. END ELSE WriteLn ('FileCreate failed');
  424. ST1 := 'SYS:ETC;SYS:TEST;SYS:SYSTEM/;SYS:PUBLIC';
  425. ST2 := FileSearch ('clib.nlm',ST1);
  426. WriteLn ('FileSearch (clib.nlm,',ST1,') returned "',ST2,'"');
  427. WriteLn ('FExpand (TEST12.DAT): "',FExpand ('TEST12.DAT'));
  428. WriteLn ('FExpand (.\TEST12.DAT): "',FExpand ('.\TEST12.DAT'));
  429. WriteLn ('FExpand (..\SYSTEM\CLIB.NLM): "',FExpand ('..\SYSTEM\CLIB.NLM'));
  430. END;
  431. PROCEDURE VideoTest;
  432. PROCEDURE WriteString (S : STRING; X,Y : WORD; Fore,Back: BYTE);
  433. VAR I : INTEGER;
  434. W : WORD;
  435. P : POINTER;
  436. Textattr : WORD;
  437. BEGIN
  438. W := X + (Y * Video.ScreenWidth);
  439. P := Pointer (@VideoBuf^[W]);
  440. TextAttr := (Fore and $f) or (Back shl 4);
  441. FOR I := 1 TO Length (S) DO
  442. BEGIN
  443. W := (TextAttr SHL 8) or byte (S[I]);
  444. PWord(P)^ := w;
  445. INC (PChar(P),2);
  446. END;
  447. END;
  448. BEGIN
  449. InitVideo;
  450. Video.ClearScreen;
  451. WriteString ('Test @ 0,0, LightGray on Black',0,0,LightGray,Black);
  452. UpdateScreen (false);
  453. WriteString ('Test @ 10,1, Yellow on Blue',1,1,Yellow,Blue);
  454. UpdateScreen (false);
  455. ReadKey;
  456. Video.ClearScreen;
  457. WriteString ('Cursor crHidden',0,0,Yellow,Blue);
  458. SetCursorPos (0,0);
  459. SetCursorType (crHidden);
  460. UpdateScreen (false);
  461. ReadKey;
  462. Video.ClearScreen;
  463. WriteString ('Cursor crUnderLine',0,0,Yellow,Blue);
  464. SetCursorPos (0,0);
  465. SetCursorType (crUnderLine);
  466. UpdateScreen (false);
  467. ReadKey;
  468. Video.ClearScreen;
  469. WriteString ('Cursor crBlock',0,0,Yellow,Blue);
  470. SetCursorPos (0,0);
  471. SetCursorType (crBlock);
  472. UpdateScreen (false);
  473. ReadKey;
  474. Video.ClearScreen;
  475. WriteString ('Cursor crHalfBlock',0,0,Yellow,Blue);
  476. SetCursorPos (0,0);
  477. SetCursorType (crHalfBlock);
  478. UpdateScreen (false);
  479. ReadKey;
  480. CRT.ClrScr;
  481. SetCursorType (crUnderLine);
  482. END;
  483. PROCEDURE KeyboardTest;
  484. VAR T : TKeyEvent;
  485. BEGIN
  486. InitKeyboard;
  487. WriteLn ('Keyboard-Test, ESC Ends');
  488. REPEAT
  489. T := GetKeyEvent;
  490. WriteLn (' Event: ',HexStr (T,8),' EventChar: "',GetKeyEventChar(T),'" KeyEventCode: ',HexStr (GetKeyEventCode(T),8));
  491. T := TranslateKeyEvent (T);
  492. WriteLn ('Translated Event: ',HexStr (T,8),' EventChar: "',GetKeyEventChar(T),'" KeyEventCode: ',HexStr (GetKeyEventCode(T),8));
  493. WriteLn;
  494. UNTIL GetKeyEventChar (T) = #27;
  495. END;
  496. VAR I : LONGINT;
  497. S : STRING [255];
  498. C : CHAR;
  499. P : ^Str255;
  500. BEGIN
  501. New (P);
  502. Dispose (P);
  503. // WriteLn ('Test');
  504. //__ConsolePrintf ('Ok, this is PASCALMAIN'#13#10,0);
  505. WriteLn ('Test via WriteLn');
  506. WriteLn ('No of params: ', ParamCount);
  507. //__EnterDebugger;
  508. WriteLn ('ParamStr(0): "', ParamStr(0),'"');
  509. IF ParamCount > 0 THEN
  510. FOR I := 1 TO ParamCount DO
  511. WriteLn (I:6,': "',ParamStr(I),'"');
  512. GetDir (0, S);
  513. WriteLn ('Current Directory: "',S,'"');
  514. // ChDir ('TEST');
  515. // GetDir (0, S);
  516. // WriteLn ('Current Directory: "',S,'"');
  517. // MkDir ('SYS:TEST');
  518. // IF IOResult <> 0 THEN WriteLn ('MkDir SYS:TEST failed (Ok)');
  519. // Write ('MkDir'); MkDir ('SYS:TEST/TESTDIR');
  520. // ErrorCheck ('MkDir','SYS:TEST/TESTDIR');
  521. // Write ('RmDir'); RmDir ('SYS:TEST/TESTDIR');
  522. // ErrorCheck ('RmDir','SYS:TEST/TESTDIR');
  523. REPEAT
  524. WriteLn;
  525. WriteLn ('1 : File-Test');
  526. WriteLn ('2 : Textfile-Test');
  527. WriteLn ('3 : GetMem/FreeMem Test');
  528. WriteLn ('4 : DosTest');
  529. WriteLn ('5 : ExceptTest');
  530. WriteLn ('6 : Video-Test');
  531. WriteLn ('7 : Find-Test');
  532. WriteLn ('8 : SysUtils-Test');
  533. WriteLn ('9 : CrtTest');
  534. WriteLn ('K : Keyboard-Test');
  535. WriteLn ('E : Ende');
  536. WriteLn;
  537. Write ('?: ');
  538. C := Crt.ReadKey;
  539. WriteLn (C);
  540. CASE upcase(C) OF
  541. '1' : FileTest;
  542. '2' : TextfileTest;
  543. '3' : MemTest;
  544. '4' : DosTest;
  545. '5' : ExceptTest;
  546. '6' : VideoTest;
  547. '7' : FindTest;
  548. '8' : SysUtilsTest;
  549. '9' : CrtTest;
  550. 'K' : KeyboardTest;
  551. END;
  552. UNTIL UpCase (C) = 'E';
  553. (*$IFDEF Netware*)
  554. PressAnyKeyToContinue;
  555. (*$ENDIF*)
  556. END.