home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Party 1994: Try This At Home
/
disk_image.bin
/
source
/
vexsrc
/
lissaasm.asm
< prev
next >
Wrap
Assembly Source File
|
1995-03-29
|
2KB
|
111 lines
comment #
/*****************************************************************************
ATTENTION!
this source is VOTEWARE,
you may only use it to the conditions listed below:
-You may modify it, or use parts of it in your own source as long as
this header stays on top of all files containing this source.
-You must give proper credit to the author, Niklas Beisert / pascal.
-You may not use it in commercial productions without the written
permission of the author.
-AND MOST IMPORTANT: you have to buy an Assembly '94 CD-ROM
by Sound Solutions (if you don't have it already) and vote for VEX-InTrO
in the PC-64k-Intro-Compo! (if you have already sent your voting card,
buy another one and fill it out CORRECTLY!!!)
*****************************************************************************/
#
;// lissajous function, calculates the coordinates of the points for given
;// parameters
.model large,c
.386
locals
.data
extrn SinTab:dword
.code
public calclissapoints
calclissapoints proc uses ds si edi, pts:dword, num:word, a:dword, b:dword, c:dword, d:dword, e:dword, f:dword
lds si,SinTab
mov es,word ptr pts+2
mov bx,word ptr d+2
shl bx,2
mov di,word ptr d
shl edi,16
mov di,word ptr pts
mov dx,word ptr a
shl edx,16
mov dx,12
mov cx,num
push bp
mov bp,word ptr a+2
shl bp,2
add bp,3
@@l0:
and bx,8188
mov eax,ds:[si+bx]
mov es:[di],eax
add edi,edx
adc bx,bp
loop @@l0
pop bp
mov bx,word ptr e+2
shl bx,2
mov di,word ptr e
shl edi,16
mov di,word ptr pts
add di,4
mov dx,word ptr b
shl edx,16
mov dx,12
mov cx,num
push bp
mov bp,word ptr b+2
shl bp,2
add bp,3
@@l1:
and bx,8188
mov eax,ds:[si+bx]
mov es:[di],eax
add edi,edx
adc bx,bp
loop @@l1
pop bp
mov bx,word ptr f+2
shl bx,2
mov di,word ptr f
shl edi,16
mov di,word ptr pts
add di,8
mov dx,word ptr c
shl edx,16
mov dx,12
mov cx,num
push bp
mov bp,word ptr c+2
shl bp,2
add bp,3
@@l2:
and bx,8188
mov eax,ds:[si+bx]
mov es:[di],eax
add edi,edx
adc bx,bp
loop @@l2
pop bp
ret
endp
end