program q;
uses Crt;
var
stary: Word;
procedure pixel(x,y:Integer;r, g, b:Byte);
var
pom, p: LongInt;
offset, bank: Word;
begin
pom := (y shl 10) + x;
bank := y shr 4;
if bank <> stary then
begin
stary := bank;
asm
mov dx, bank
mov ax, 4f05h
mov bx, 0
int 10h
end;
end;
offset := Word(pom shl 2);
Mem[$A000:offset]:=r;
Mem[$A000:offset+1]:=g;
Mem[$A000:offset+2]:=b;
end;
var
i, j: Integer;
begin
asm
mov ax,4f02h
mov bx,118h
int 10h
end;
stary := 0;
for j := 0 to 767 do
for i:=0 to 1023 do
pixel(i, j, i mod 256, j mod 256, 255);
readkey;
end.
a dlaczego nie użyć VESY 2.0 z liniowym buforem?
Bo w TP w trybie rzeczywistym zrobic tego nie moze.