Program TestVid; { High speed Text-video routines For working With binary Files, direct } { screen access etc. (c)1993 Chris Lautenbach } { } { You are hereby permitted to use this routines, so long as you give me } { credit. If you modify them, do not distribute the modified version. } { } { This is the example Program, see SPEEDVID.PAS For the actual Unit } { code, and usage information. } { } { "ScreenFile" is a File containing sequential binary screen images. The } { easiest way to make these, is to draw several screens in a Program } { like TheDraw, then save them as Binary. After you are done, copy them } { all to one File, like so: } { } { COPY /B SCREEN1.BIN+SCREEN2.BIN+SCREEN3.BIN SCREEN.BIN } { } { Note: the /B option is NECESSARY. Without specifying binary mode, } { COPY will insert ^Z's and other wierd stuff that will screw up } { the resulting File. } Uses Dos, Crt, SpeedVid; Var ScreenFile : File of ScreenLine; StartLine, TempLine, idx : Integer; Cmd : Char; p : Pointer; Procedure ShowScreenLine(Index:Word); begin If StartLine+Index0 then begin Writeln('Error: Cannot open SCREEN.BIN.'); Halt; end; StartLine:=0; For TempLine:=1 to ScreenHeight do ShowScreenLine(TempLine); Repeat Repeat Until KeyPressed; Cmd:=ReadKey; If Cmd=#0 then begin Cmd:=ReadKey; Case Cmd of {Down} #80 : If StartLine+1=0 then begin Dec(StartLine); ScrollScreen(Down); ShowScreenLine(1); end; {PgDn} #81 : begin If StartLine+ScreenHeight=0 then TempLine:=ScreenHeight ELSE TempLine:=StartLine; For idx:=1 to TempLine do begin Dec(StartLine); ScrollScreen(Down); ShowScreenLine(1); end; end; end; {case} end; Until Cmd=#27; {ESC} Close(ScreenFile); RestoreScreen(P); end.