Initial. Don't... just don't ask.
This commit is contained in:
commit
00bae13bba
586 changed files with 129057 additions and 0 deletions
83
demos/rwpage.pp
Normal file
83
demos/rwpage.pp
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
PROGRAM ScrollTest;
|
||||
|
||||
Uses svgalib;
|
||||
|
||||
type
|
||||
VideoMemType = array[0..65535] of byte;
|
||||
|
||||
var
|
||||
i,mode,StartupMode : longint;
|
||||
SeparateReadWriteWindows : boolean;
|
||||
modeinfo : ^vga_modeinfo;
|
||||
VideoMem : ^VideoMemType;
|
||||
p : pointer;
|
||||
|
||||
|
||||
Procedure DrawRectangle(x1,y1,x2,y2 : integer);
|
||||
begin
|
||||
vga_drawline(x1,y1,x2,y1);
|
||||
vga_drawline(x1,y2,x2,y2);
|
||||
vga_drawline(x1,y1,x1,y2);
|
||||
vga_drawline(x2,y1,x2,y2);
|
||||
end; {DrawRectangle}
|
||||
|
||||
|
||||
Procedure Scroll;
|
||||
{ copies first bank of screen to the last bank (for 1024x768x256 mode) }
|
||||
var i : word;
|
||||
begin
|
||||
vga_setreadpage(0);
|
||||
vga_setwritepage(11);
|
||||
for i := 65535 downto 0 do VideoMem^[i] := VideoMem^[i];
|
||||
end; {Scroll}
|
||||
(*
|
||||
Procedure Scroll; Assembler;
|
||||
{ copies first bank of screen to the last bank (for 1024x768x256 mode) }
|
||||
var popreturn : longint;
|
||||
asm
|
||||
mov esi,SegA000
|
||||
mov edi,esi
|
||||
mov eax,0
|
||||
push eax
|
||||
call vga_setreadpage {set read bank}
|
||||
pop popreturn {tidy stack}
|
||||
mov eax,11
|
||||
push eax
|
||||
call vga_setwritepage {set write bank}
|
||||
pop popreturn {tidy stack}
|
||||
mov ecx,16384
|
||||
rep movsd {copy all of bank 0 to bank 11}
|
||||
end; {Scroll}
|
||||
*)
|
||||
|
||||
begin
|
||||
mode := 12; {1024x768x256}
|
||||
i := vga_init;
|
||||
StartupMode := vga_getcurrentmode;
|
||||
vga_setmode(mode);
|
||||
gl_setcontextvga(mode);
|
||||
p := vga_getgraphmem;
|
||||
VideoMem := p;
|
||||
modeinfo := vga_getmodeinfo(mode);
|
||||
SeparateReadWriteWindows := (modeinfo^.flags and HAVE_RWPAGE <> 0);
|
||||
if SeparateReadWriteWindows <> False then begin
|
||||
vga_setcolor(14);
|
||||
gl_fillbox(100,0,823,63,13);
|
||||
|
||||
DrawRectangle(100,0,923,63);
|
||||
vga_setcolor(3);
|
||||
vga_drawline(0,0,1023,767);
|
||||
vga_drawline(1023,0,0,767);
|
||||
for i := 0 to 5000000 do vga_drawpixel(10,10); {delay}
|
||||
|
||||
Scroll; {copy first 64 lines down to last 64 lines of screen}
|
||||
|
||||
for i := 0 to 5000000 do vga_drawpixel(10,10); {delay}
|
||||
|
||||
end;
|
||||
|
||||
vga_setmode(StartupMode);
|
||||
|
||||
writeln('SeparateReadWriteWindows = ',SeparateReadWriteWindows);
|
||||
writeln('vgamode = ',mode);
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue