home *** CD-ROM | disk | FTP | other *** search
/ The Party 1994: Try This At Home / disk_image.bin / source / vexsrc / lissaasm.asm < prev    next >
Assembly Source File  |  1995-03-29  |  2KB  |  111 lines

  1. comment #
  2. /*****************************************************************************
  3.                                   ATTENTION!
  4.                            this source is VOTEWARE,
  5.               you may only use it to the conditions listed below:
  6.  
  7.   -You may modify it, or use parts of it in your own source as long as
  8.     this header stays on top of all files containing this source.
  9.   -You must give proper credit to the author, Niklas Beisert / pascal.
  10.   -You may not use it in commercial productions without the written
  11.     permission of the author.
  12.   -AND MOST IMPORTANT: you have to buy an Assembly '94 CD-ROM
  13.     by Sound Solutions (if you don't have it already) and vote for VEX-InTrO
  14.     in the PC-64k-Intro-Compo! (if you have already sent your voting card,
  15.     buy another one and fill it out CORRECTLY!!!)
  16. *****************************************************************************/
  17. #
  18.  
  19.  
  20.  
  21. ;// lissajous function, calculates the coordinates of the points for given
  22. ;// parameters
  23.  
  24. .model large,c
  25. .386
  26. locals
  27.  
  28. .data
  29. extrn SinTab:dword
  30.  
  31. .code
  32.  
  33. public calclissapoints
  34.  
  35. calclissapoints proc uses ds si edi, pts:dword, num:word, a:dword, b:dword, c:dword, d:dword, e:dword, f:dword
  36.   lds si,SinTab
  37.   mov es,word ptr pts+2
  38.  
  39.   mov bx,word ptr d+2
  40.   shl bx,2
  41.   mov di,word ptr d
  42.   shl edi,16
  43.   mov di,word ptr pts
  44.   mov dx,word ptr a
  45.   shl edx,16
  46.   mov dx,12
  47.   mov cx,num
  48.   push bp
  49.   mov bp,word ptr a+2
  50.   shl bp,2
  51.   add bp,3
  52.   @@l0:
  53.     and bx,8188
  54.     mov eax,ds:[si+bx]
  55.     mov es:[di],eax
  56.     add edi,edx
  57.     adc bx,bp
  58.   loop @@l0
  59.   pop bp
  60.  
  61.   mov bx,word ptr e+2
  62.   shl bx,2
  63.   mov di,word ptr e
  64.   shl edi,16
  65.   mov di,word ptr pts
  66.   add di,4
  67.   mov dx,word ptr b
  68.   shl edx,16
  69.   mov dx,12
  70.   mov cx,num
  71.   push bp
  72.   mov bp,word ptr b+2
  73.   shl bp,2
  74.   add bp,3
  75.   @@l1:
  76.     and bx,8188
  77.     mov eax,ds:[si+bx]
  78.     mov es:[di],eax
  79.     add edi,edx
  80.     adc bx,bp
  81.   loop @@l1
  82.   pop bp
  83.  
  84.   mov bx,word ptr f+2
  85.   shl bx,2
  86.   mov di,word ptr f
  87.   shl edi,16
  88.   mov di,word ptr pts
  89.   add di,8
  90.   mov dx,word ptr c
  91.   shl edx,16
  92.   mov dx,12
  93.   mov cx,num
  94.   push bp
  95.   mov bp,word ptr c+2
  96.   shl bp,2
  97.   add bp,3
  98.   @@l2:
  99.     and bx,8188
  100.     mov eax,ds:[si+bx]
  101.     mov es:[di],eax
  102.     add edi,edx
  103.     adc bx,bp
  104.   loop @@l2
  105.   pop bp
  106.  
  107.   ret
  108. endp
  109.  
  110. end
  111.