[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]
{
> I have one little question: how do I program my ET4000
> graphics card in SVGA modes??? Without using some sort of
> BGI or unit!
}
program tsenglabs_et4000_640x480x256_mode;
{ Direct screen writing in SuperVGA mode 640x480x256 on a TsengLabs ET4000 }
{ By Bas van Gaalen, Holland, PD }
uses crt;
var x,y:word; i,page:byte;
procedure setvideo(md:word); assembler;
{ 02dh - 630x350
02eh - 640x480
02fh - 640x400 }
asm
mov ax,md
int 10h
end;
procedure setpal(col,r,g,b : byte); assembler;
asm
mov dx,03c8h
mov al,col
out dx,al
inc dx
mov al,r
out dx,al
mov al,g
out dx,al
mov al,b
out dx,al
end;
procedure writescreen; assembler;
asm
mov es,sega000
mov x,0
mov y,0
@l1:
mov ax,y
mov dx,640
mul dx
add ax,x
adc dx,0
mov di,ax
cmp dl,page
je @skip
mov page,dl
mov al,dl
mov dx,03cdh
out dx,al
@skip:
mov ax,x
add ax,y
mov [es:di],al
inc y
cmp y,480
jne @l1
mov y,0
inc x
cmp x,640
jne @l1
end;
begin
setvideo($2e);
for i:=1 to 255 do setpal(i,255-i div 4,255-i div 4,30);
writescreen;
repeat until keypressed;
textmode(lastmode);
end.
[Back to EGAVGA SWAG index] [Back to Main SWAG index] [Original]