home *** CD-ROM | disk | FTP | other *** search
- PROGRAM FlushDem;
-
- FUNCTION DosFlush(VAR F) : BOOLEAN; Assembler;
- ASM
- MOV AX, 3000h {get DOS version}
- INT 21h
- CMP AL, 3 {DOS < 3? old!}
- JL @old
- CMP AH, 1Eh {DOS < 3.3? old!}
- LES DI, F
- MOV BX, ES:[DI] {file handle is first word}
- MOV AH, 68h {commit file function}
- INT 21h
- JC @BadEnd
- JMP @GoodEnd
-
- @old:
- LES DI, F
- MOV BX, ES:[DI] {file handle is first word}
- MOV AH, 45h {duplicate handle function}
- INT 21h
- JC @BadEnd
- @ok:
- MOV BX, AX {put duped handle in BX...}
- MOV AH, 3Eh {... and close it}
- INT 21h
- JC @BadEnd
- @GoodEnd:
- MOV AX, 0
- @BadEnd:
- END;
-
- VAR
- T1, T2 : Text;
- S : String;
- W : Word;
- BEGIN
- Assign(T1, 'DEMO1.$$$');
- Rewrite(T1);
- Assign(T2, 'DEMO2.$$$');
- Rewrite(T2);
- S := 'This is just a sample line of text.';
- FOR W := 1 to 100 DO
- BEGIN
- WriteLn(T1, W:4, ' ', S);
- WriteLn(T2, W:4, ' ', S);
- END;
- IF DosFlush(T2) THEN
- BEGIN
- WriteLn('Successfully flushed the second demo ',
- 'file. Please reboot your computer.');
- ReadLn;
- WriteLn('Hey, I said PLEASE reboot. Oh well... ',
- ' I will erase the temporary files.');
- Close(T1); Erase(T1);
- Close(T2); Erase(T2);
- END
- ELSE WriteLn('DosFlush routine failed.');
- END.