org 100h                   
mov al,13h
int 10h
loopage:
inc word [angle]
fld dword [pie]
fimul word [angle]
fsincos
fimul word [xradius]
fistp word [x]
fimul word [yradius]
fistp word [y]

mov ax,3
int 33h
cmp bl,0
jne near endage
mov ax,dx
mov bx,cx

push ax
push bx

fld dword [pie]
fimul word [angle]
fsincos
fimul word [xradius]
fistp word [x]
fimul word [yradius]
fistp word [y]


mov dx,[y]
add dx,ax
mov cx,[x]
add cx,bx
mov ah,0Ch
xor bx,bx
int 10h

pop bx
pop ax

mov dx,[x]
add dx,ax
mov cx,[y]
add cx,bx
mov ah,0Ch
xor bx,bx
int 10h

cmp word [angle],360
jb loopage

mov word [y],0
mov word [x],0
mov word [angle],0

mov ax,word [xradius]
add ax,word [a]
mov word [xradius],ax

mov ah,1 
xor cx,cx
xor dx,dx
int 1Ah
waitage:
xor ah,ah 
int 1Ah 
cmp dl,1
jb waitage

push 0a000h
pop es
xor ax,ax
mov cx,32000
rep stosw

cmp word [xradius],1
je change

cmp word [xradius],50
je change

keyp: 
xor ah,ah   
in al,60h

dec ax
jnz loopage

endage:
mov ax,3h
int 10h
mov ah,9
mov dx,exit_msg
int 21h
int 20h

change:
neg word [a]
jmp keyp

y dw 0
x dw 0
angle dw 0
a dw -1
exit_msg db "LOOK AT MY HAT$"
pie dd 0.01756
yradius dw 50
xradius dw 50