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
|