83 lines
1.2 KiB
NASM
83 lines
1.2 KiB
NASM
cseg segment
|
|
assume cs:cseg, ds:cseg, ss:cseg
|
|
org 100h
|
|
.386
|
|
start:
|
|
|
|
mov ax, 13h
|
|
int 10h
|
|
|
|
mov dx, 3c8h
|
|
xor al, al
|
|
out dx, al
|
|
inc dx
|
|
mov cx, 256
|
|
xor al, al
|
|
lopp: out dx, al
|
|
out dx, al
|
|
out dx, al
|
|
inc al
|
|
dec cx
|
|
jnz lopp
|
|
|
|
mov ax, 0a000h
|
|
mov es, ax
|
|
|
|
|
|
fild y_rad
|
|
fild x_rad
|
|
|
|
loopdr:
|
|
fild angle
|
|
fsincos
|
|
|
|
fmul st, st(2)
|
|
fistp x_co
|
|
|
|
fmul st, st(2)
|
|
fistp y_co
|
|
|
|
add x_co, 160
|
|
add y_co, 100
|
|
|
|
xor di, di
|
|
mov ax, y_co
|
|
shl ax, 6
|
|
add di, ax
|
|
shl ax, 2
|
|
add di, ax
|
|
add di, x_co
|
|
|
|
mov byte ptr es:[di], cl
|
|
inc cl
|
|
|
|
fadd yvel
|
|
fxch st(1)
|
|
fadd xvel
|
|
fxch st(1)
|
|
|
|
inc angle
|
|
jnz loopdr
|
|
|
|
xor ax, ax
|
|
int 16h
|
|
|
|
mov ax, 3
|
|
int 10h
|
|
|
|
int 20h
|
|
|
|
x_co dw 0
|
|
y_co dw 0
|
|
|
|
x_rad dw 10
|
|
y_rad dw 10
|
|
|
|
xvel dq 0.001
|
|
yvel dq 0.001
|
|
|
|
angle dw 0
|
|
|
|
|
|
cseg ends
|
|
end start |