:D
---
вот наверное
---
ню думаю разберешся
--
ASM вставки монон убрать
и место точки поставить круг, Элипс, тачку, ж...п
ну вообщем все что Вы хотели
---
Код
Var
x,y,x1,y1,x2,y2:Integer;
sol_x,sol_y:Integer;
Procedure PixelOut(x,y:Word;c:Byte);
label we,exit;
Begin
y:=y*320; {rachet coordin for Y}
asm
xor ax,ax {AX in zero}
mov bx,x {in di 1000 smeshenie v video memory}
mov cx,y {in CX znachen y }
add bx,cx {sum BX and CX}
mov al,c {in AL color}
cmp bx,63999 {conez video buff}
je we {then exit}
mov es:[bx],al {in vid memory es:di out ds:si}
we:
end;
end;
Procedure Sync; assembler;{Procedura Zaderjki lucha}
asm
mov dx, 3DAh {addr port}
@@Wait:
in al, dx {data iz port v AL}
test al, 08h {}
jz @@Wait {shdem}
end;
BEGIN
asm
mov ax,013h {320*200 256 color}
int 10h {BIOS interrupt}
mov ax,0a000h {this video memory addr in AX}
mov es,ax {ES(segm) init video}
end;
sol_x:=250;
sol_y:=100;
pixelOut(sol_x,sol_y,14);{tipa solnce :) SONSHAIM}
for x1:=0 to 250 do begin {prodolhitelnost poleta}
y:=round(820*(sin(x1*0.035))*0.05); {movenau to X;620 diametr orbit}
{0.05 skorost; 0.09-koeff zhatija}
x:=round(820*(cos(x1*0.035))*0.05); {movenay to Y;620 diametr orbit}
{0.05 skorost; 0.09-koeff szhatia}
{mono srubit sctobi po spiali letala}
PixelOut(x+sol_x,y+sol_y,15);
Sync;{na moem kompe eto nado }
PixelOut(x+sol_x,y+sol_y,17);
for x2:=0 to 1000 do begin { }
for y2:=0 to 500 do begin { zaderka }
end; { / }
end; {/ }
{formyli primenimi vezde}
{dallee vrode sam smojesh}
{dobit progy}
{}
{}
end;
asm
mov ah,0 {wait}
int 16h {key}
end;
end.