Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод точки напрямую в видеопамять
Форум «Всё о Паскале» > Pascal, Object Pascal > Написание игр
Shadow
:D
вывод точки напрямую в видео память
---
своя процедура
---
мне тут помогли (Dark) и я решил......
---
очень быстро
---

Код
Const color:array[0..10,0..14] of Byte=

((24,15,15,24,24,24,15,15,15,24,15,24,24,24,15),
(15,24,22,15,24,15,24,24,24,24,15,15,24,15,15),
(15,22,24,15,24,24,15,15,24,24,15,24,15,24,15),
(15,15,15,15,24,24,24,24,15,24,15,24,24,24,15),
(15,24,24,15,24,15,15,15,24,24,15,24,24,24,15),
(24,24,24,24,24,24,24,24,24,24,24,24,24,24,24),
(15,15,15,24,24,24,15,15,15,24,24,24,15,15,15),
(15,22,24,15,24,15,24,24,24,15,24,15,24,24,24),
(15,15,15,24,24,15,15,15,15,15,24,24,15,15,24),
(15,24,22,24,22,15,24,22,24,15,24,24,24,24,15),
(15,24,22,22,22,15,24,22,24,15,24,15,15,15,24));

Var
x,y,c,col:Word;

Procedure PixelOut(x,y:Word;c:Byte);
label we;
Begin
y:=y*320;

asm
xor ax,ax
mov bx,x            {in di 1000 smeshenie v video memory}
mov cx,y         {}
add bx,cx
    mov al,c
    cmp bx,64000
    je we
mov es:[bx],al  {<=> mov es:di, ds:si move strin byte 11 in vid memory es:di out ds:si}
we:
end;
end;
BEGIN
asm
mov ax,0013h
int 10h
mov ax,0a000h
mov es,ax
end;

for x:=0 to 14 do
   for y:=0 to 10 do begin
   col:=color[y,x];
PixelOut(100+x,50+y,col);
end;

asm
mov ah,0
int 16h
end;

end.
AlaRic
Без помощи асмы напиши!
Shadow
:D а так чем хуже ???
AlaRic
Ничем, только многие асму не знают и соответственно не понимают!  ;)
Shadow
:D
---
а PAS через порты еще более запутанно как в Фаронове
----
AlaRic
А учить еще в нагрузку асму для многих еще запутанее!
Shadow
:D
---
две недели назад я ввобще не рубил ни единого бита в ASMe
---
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.