69 lines
No EOL
1.5 KiB
NASM
69 lines
No EOL
1.5 KiB
NASM
.MODEL large,PASCAL
|
|
.CODE
|
|
.386
|
|
|
|
oldpos dw 7000 dup (0)
|
|
rows dw 210 dup(0)
|
|
op dw 0
|
|
|
|
rowinit proc far
|
|
PUBLIC rowinit
|
|
mov cx,200
|
|
mov ax,0
|
|
mov bx,0
|
|
@ri: mov cs:rows[bx],ax
|
|
add ax,320
|
|
add bx,2
|
|
loop @ri
|
|
ret
|
|
rowinit endp
|
|
|
|
|
|
init proc far
|
|
PUBLIC init
|
|
mov word ptr cs:op,0
|
|
ret
|
|
init endp
|
|
|
|
Putrouts PROC FAR
|
|
PUBLIC Putrouts
|
|
push ds
|
|
mov ds,ax
|
|
|
|
mov ax,0a000h
|
|
mov es,ax
|
|
|
|
; mov byte ptr cs:[@c+3],cl
|
|
mov word ptr cs:[@yad+1],bx
|
|
|
|
mov ax,cs:Op
|
|
mov cx,64
|
|
@dr:
|
|
mov bx,ax
|
|
mov di,word ptr cs:oldpos[bx]
|
|
mov byte ptr es:[di],0
|
|
|
|
@yad: mov bx,1234 ; absolute change, Y base of circle
|
|
add bx,word ptr ds:[si+2] ; add y value
|
|
cmp bx,199
|
|
ja @yli
|
|
mov di,word ptr ds:[si] ; { get x value }
|
|
add di,dx
|
|
cmp di,319
|
|
ja @yli
|
|
add bx,bx
|
|
add di,word ptr cs:rows[bx]
|
|
@c: mov byte ptr es:[di],15
|
|
|
|
@yli: mov bx,ax
|
|
mov word ptr cs:oldpos[bx],di
|
|
add ax,2
|
|
|
|
add si,4
|
|
loop @dr
|
|
mov cs:Op,ax
|
|
pop ds
|
|
ret
|
|
Putrouts ENDP
|
|
|
|
end |