home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 303.lha / AssemTools / Include / sine.i < prev    next >
Text File  |  1980-12-03  |  2KB  |  76 lines

  1. ; ****** Mathematics Sine and Cosine macro definitions ******
  2.  
  3. ; Metacomco Macro Assembler
  4. ; Version 1.0 Date: 15-06-88 (Created)
  5.  
  6. sine        macro
  7.         and.w    #255,\1
  8.         lea    _SinValues(pc),a0
  9.         add.w    \1,\1
  10.         move.w    0(a0,\1.w),\3
  11.         muls    \2,\3
  12.         lsr.l    #8,\3
  13.         ifnd    _SinValues
  14.         bra    _ov_SinValues
  15.  
  16. _SinValues    dc.w    0,6,13,19,25,31,38,44
  17.         dc.w    50,56,62,68,74,80,86,92
  18.         dc.w    98,104,109,115,121,126,132,137
  19.         dc.w    142,147,152,157,162,167,172,177
  20.         dc.w    181,185,190,194,198,202,206,209
  21.         dc.w    213,216,220,223,226,229,231,234
  22.         dc.w    237,239,241,243,245,247,248,250
  23.         dc.w    251,252,253,254,255,255,256,256
  24.         dc.w    256,256,256,255,255,254,253,252
  25.         dc.w    251,250,248,247,245,243,241,239
  26.         dc.w    237,234,231,229,226,223,220,216
  27.         dc.w    213,209,206,202,198,194,190,185
  28.         dc.w    181,177,172,167,162,157,152,147
  29.         dc.w    142,137,132,126,121,115,109,104
  30.         dc.w    98,92,86,80,74,68,62,56
  31.         dc.w    50,44,38,31,25,19,13,6
  32.         dc.w    0,-6,-13,-19,-25,-31,-38,-44
  33.         dc.w    -50,-56,-62,-68,-74,-80,-86,-92
  34.         dc.w    -98,-104,-109,-115,-121,-126,-132,-137
  35.         dc.w    -142,-147,-152,-157,-162,-167,-172,-177
  36.         dc.w    -181,-185,-190,-194,-198,-202,-206,-209
  37.         dc.w    -213,-216,-220,-223,-226,-229,-231,-234
  38.         dc.w    -237,-239,-241,-243,-245,-247,-248,-250
  39.         dc.w    -251,-252,-253,-254,-255,-255,-256,-256
  40.         dc.w    -256,-256,-256,-255,-255,-254,-253,-252
  41.         dc.w    -251,-250,-248,-247,-245,-243,-241,-239
  42.         dc.w    -237,-234,-231,-229,-226,-223,-220,-216
  43.         dc.w    -213,-209,-206,-202,-198,-194,-190,-185
  44.         dc.w    -181,-177,-172,-167,-162,-157,-152,-147
  45.         dc.w    -142,-137,-132,-126,-121,-115,-109,-104
  46.         dc.w    -98,-92,-86,-80,-74,-68,-62,-56
  47.         dc.w    -50,-44,-38,-31,-25,-19,-13,-6
  48. _ov_SinValues    ;
  49.         endc
  50.         endm
  51.  
  52. ;Usage:    sine    <Dx>,<Dy>,<Dz>
  53. ;Computes the sine of parameter Dx, multiplies it by Dy
  54. ;and returns the result in Dz.
  55. ;Notes:    All the parameters but not Dy must be DATA registers.
  56. ;    The contents of the registers A0 and Dx will be lost.
  57. ;    The parameter Dx is given in the scale 0-255 re-
  58. ;    presenting the degree values 0-359, thus +1 in Dx
  59. ;    means +360/256 in degrees.
  60.  
  61.  
  62. cosine        macro
  63.         add.b    #64,\1
  64.         sine    \1,\2,\3
  65.         endm
  66.  
  67. ;Usage:    cosine    <Dx>,<Dy>,<Dz>
  68. ;Computes the cosine of parameter Dx, multiplies it by Dy
  69. ;and returns the result in Dz.
  70. ;Notes:    All the parameters but not Dy must be DATA registers.
  71. ;    The contents of the registers A0 and Dx will be lost.
  72. ;    The parameter Dx is given in the scale 0-255 re-
  73. ;    presenting the degree values 0-359, thus +1 in Dx
  74. ;    means +360/256 in degrees.
  75.  
  76.