Jak zainicjalizować tryb 13h i rysować w nim
jareq007
Inicjalizacja trybu graficznego
procedure init;assembler;
asm
mov ah, 00h
mov ax, 13h;
int 10h;
end;
Powrót do trybu tekstowego
procedure init_txt;assembler;
asm
mov ah, 00h
mov ax, 03h;
int 10h;
end;
Narysowanie pixela w punkcie (x, y)
procedure putpixel(x, y : word; kolor : byte);
var zmienna : word;
begin
zmienna:=(y shl 8)+(y shl 6) + x;
asm
mov ax, 0A000h;
mov es, ax;
mov di, zmienna;
mov al, kolor;
mov byte ptr es:[di], al;
end;
end;
Pobranie koloru pixela z punktu (x, y)
function getpixel(x, y : word):byte;assembler;
asm
mov ah, 0Dh;
mov cx, x;
mov dx, y;
int 10h;
end;
Na podstawie procedury putpixel() można napisać funkcję rysującą dowolny kształt - możliwości ograniczone jedynie Twoją wyobraźnią :)
Zobacz też:
Przykłady z książki "Tworzenie gier 2D i 3D w języku TP"
umm a jak zrobić żeby w devie się to nie wykrzaczyło? (wyskakuje mi runtime error 216)
Inna wersja GetPixel\PutPixel\InitGraph
linie :
mov ah, 00h
mov ax, 13h
jest nie potrzebna można je zastąpić jedną :
mov ah, 13h
Mam nadzieje, że faq w pascalu wkońcu ruszy.
Lepiej by było napisać getpixel bez użycia przerwania - tak jak putpixel. Raczej wiekszość sobie z tym poradzi, ale nie wszyscy.