u mnie miałem tak:
procedure gr_zamaluj(bufor:pointer; kolor:byte);assembler;
asm
<asm> pusha
les di, bufor {pobierz segment i offset}
mov di, 0 {zacznij od poczatku} **
mov ah, kolor {kolor do ax}
mov al, ah
mov cx, 32000
cld
rep stosw
popa
end;{koniec gr_zamaluj}</delphi>
żeby rysować pixel musisz w linijce ** zamiast 0 dać przesunięcie
mov ax, y
mov di, ax
shl ax, 8
shl di, 6
add di, ax
add di, x
pojedynczą komórkę wypełnia się tak:
mov byte ptr es:[di], al
w al jest oczywiście kolor
Milka napisał(a)
u mnie miałem tak:
procedure gr_zamaluj(bufor:pointer; kolor:byte);assembler;
asm
<asm> pusha
les di, bufor {pobierz segment i offset}
mov di, 0 {zacznij od poczatku} **
mov ah, kolor {kolor do ax}
mov al, ah
mov cx, 32000
cld
rep stosw
popa
end;{koniec gr_zamaluj}</delphi>
żeby rysować pixel musisz w linijce ** zamiast 0 dać przesunięcie
mov ax, y
mov di, ax
shl ax, 8
shl di, 6
add di, ax
add di, x
pojedynczą komórkę wypełnia się tak:
mov byte ptr es:[di], al
w al jest oczywiście kolor
co do samej płynności to jest jeszcze coś takiego jak vsync...