home *** CD-ROM | disk | FTP | other *** search
/ The CDPD Public Domain Collection for CDTV 3 / CDPDIII.bin / pd / aga_software / tmap-demo / sincos.asm < prev    next >
Assembly Source File  |  1993-02-18  |  5KB  |  401 lines

  1. ; $$TABS=8
  2.  
  3.     include    "demo.i"
  4. sin::
  5. ; input d0=angle output d0=sin(d0)
  6. ; trashes d1/d2,a0
  7.     clr    d2
  8.     move.b    d0,d2
  9.     lsr    #8,d0
  10.     add    d0,d0
  11.     lea    sin_table(pc),a0
  12.     move    2(a0,d0.w),d1
  13.     move    0(a0,d0.w),d0
  14.     sub    d0,d1
  15.     muls    d2,d1
  16.     asr.l    #8,d1
  17.     add    d1,d0
  18.     rts
  19. cos::
  20. ; input d0=angle output d0=cos(d0)
  21. ; trashes d1/d2,a0
  22.     clr    d2
  23.     move.b    d0,d2
  24.     lsr    #8,d0
  25.     add    d0,d0
  26.     lea    sin_table(pc),a0
  27.     move    2(a0,d0.w),d1
  28.     move    0(a0,d0.w),d0
  29.     sub    d0,d1
  30.     muls    d2,d1
  31.     asr.l    #8,d1
  32.     add    d1,d0
  33.     rts
  34.  
  35.  
  36. sincos::
  37. ; input d0=angle -32768 to 32767
  38. ; output d0=sin d1=cosine
  39. ; uses interpolation
  40. ; trashes d0,a0,d1,d2,d3
  41.     move    d0,d2
  42.     and    #$ff,d2
  43.     lsr    #8,d0
  44.     add    d0,d0
  45.     lea    cos_table(pc),a0
  46.     move    0(a0,d0.w),d1
  47.     move    2(a0,d0.w),d3
  48.     sub    d1,d3
  49.     muls    d2,d3
  50.     asr.l    #8,d3
  51.     add    d3,d1
  52.  
  53.     lea    sin_table(pc),a0
  54.     move    2(a0,d0.w),d3
  55.     move    0(a0,d0.w),d0
  56.     sub    d0,d3
  57.     muls    d2,d3
  58.     asr.l    #8,d3
  59.     add    d3,d0
  60.     rts
  61.  
  62. fast_sincos::
  63. ; input d0=angle -32768 to 32767
  64. ; output d0=sin d1=cosine
  65. ; no interpolation
  66. ; trashes d0,a0,d1
  67.     lsr    #8,d0
  68.     add    d0,d0
  69.     lea    cos_table(pc),a0
  70.     move    0(a0,d0.w),d1
  71.     lea    sin_table(pc),a0
  72.     move    0(a0,d0.w),d0
  73.     rts
  74.  
  75.  
  76.  
  77. sin_table    dc.w    0
  78.     dc.w    804
  79.     dc.w    1608
  80.     dc.w    2411
  81.     dc.w    3212
  82.     dc.w    4011
  83.     dc.w    4808
  84.     dc.w    5602
  85.     dc.w    6393
  86.     dc.w    7180
  87.     dc.w    7962
  88.     dc.w    8740
  89.     dc.w    9512
  90.     dc.w    10279
  91.     dc.w    11039
  92.     dc.w    11793
  93.     dc.w    12540
  94.     dc.w    13279
  95.     dc.w    14010
  96.     dc.w    14733
  97.     dc.w    15447
  98.     dc.w    16151
  99.     dc.w    16846
  100.     dc.w    17531
  101.     dc.w    18205
  102.     dc.w    18868
  103.     dc.w    19520
  104.     dc.w    20160
  105.     dc.w    20788
  106.     dc.w    21403
  107.     dc.w    22006
  108.     dc.w    22595
  109.     dc.w    23170
  110.     dc.w    23732
  111.     dc.w    24279
  112.     dc.w    24812
  113.     dc.w    25330
  114.     dc.w    25833
  115.     dc.w    26320
  116.     dc.w    26791
  117.     dc.w    27246
  118.     dc.w    27684
  119.     dc.w    28106
  120.     dc.w    28511
  121.     dc.w    28899
  122.     dc.w    29269
  123.     dc.w    29622
  124.     dc.w    29957
  125.     dc.w    30274
  126.     dc.w    30572
  127.     dc.w    30853
  128.     dc.w    31114
  129.     dc.w    31357
  130.     dc.w    31581
  131.     dc.w    31786
  132.     dc.w    31972
  133.     dc.w    32138
  134.     dc.w    32286
  135.     dc.w    32413
  136.     dc.w    32522
  137.     dc.w    32610
  138.     dc.w    32679
  139.     dc.w    32729
  140.     dc.w    32758
  141. cos_table    dc.w    32767
  142.     dc.w    32758
  143.     dc.w    32729
  144.     dc.w    32679
  145.     dc.w    32610
  146.     dc.w    32522
  147.     dc.w    32413
  148.     dc.w    32286
  149.     dc.w    32138
  150.     dc.w    31972
  151.     dc.w    31786
  152.     dc.w    31581
  153.     dc.w    31357
  154.     dc.w    31114
  155.     dc.w    30853
  156.     dc.w    30572
  157.     dc.w    30274
  158.     dc.w    29957
  159.     dc.w    29622
  160.     dc.w    29269
  161.     dc.w    28899
  162.     dc.w    28511
  163.     dc.w    28106
  164.     dc.w    27684
  165.     dc.w    27246
  166.     dc.w    26791
  167.     dc.w    26320
  168.     dc.w    25833
  169.     dc.w    25330
  170.     dc.w    24812
  171.     dc.w    24279
  172.     dc.w    23732
  173.     dc.w    23170
  174.     dc.w    22595
  175.     dc.w    22006
  176.     dc.w    21403
  177.     dc.w    20788
  178.     dc.w    20160
  179.     dc.w    19520
  180.     dc.w    18868
  181.     dc.w    18205
  182.     dc.w    17531
  183.     dc.w    16846
  184.     dc.w    16151
  185.     dc.w    15447
  186.     dc.w    14733
  187.     dc.w    14010
  188.     dc.w    13279
  189.     dc.w    12540
  190.     dc.w    11793
  191.     dc.w    11039
  192.     dc.w    10279
  193.     dc.w    9512
  194.     dc.w    8740
  195.     dc.w    7962
  196.     dc.w    7180
  197.     dc.w    6393
  198.     dc.w    5602
  199.     dc.w    4808
  200.     dc.w    4011
  201.     dc.w    3212
  202.     dc.w    2411
  203.     dc.w    1608
  204.     dc.w    804
  205.     dc.w    0
  206.     dc.w    -804
  207.     dc.w    -1608
  208.     dc.w    -2411
  209.     dc.w    -3212
  210.     dc.w    -4011
  211.     dc.w    -4808
  212.     dc.w    -5602
  213.     dc.w    -6393
  214.     dc.w    -7180
  215.     dc.w    -7962
  216.     dc.w    -8740
  217.     dc.w    -9512
  218.     dc.w    -10279
  219.     dc.w    -11039
  220.     dc.w    -11793
  221.     dc.w    -12540
  222.     dc.w    -13279
  223.     dc.w    -14010
  224.     dc.w    -14733
  225.     dc.w    -15447
  226.     dc.w    -16151
  227.     dc.w    -16846
  228.     dc.w    -17531
  229.     dc.w    -18205
  230.     dc.w    -18868
  231.     dc.w    -19520
  232.     dc.w    -20160
  233.     dc.w    -20788
  234.     dc.w    -21403
  235.     dc.w    -22006
  236.     dc.w    -22595
  237.     dc.w    -23170
  238.     dc.w    -23732
  239.     dc.w    -24279
  240.     dc.w    -24812
  241.     dc.w    -25330
  242.     dc.w    -25833
  243.     dc.w    -26320
  244.     dc.w    -26791
  245.     dc.w    -27246
  246.     dc.w    -27684
  247.     dc.w    -28106
  248.     dc.w    -28511
  249.     dc.w    -28899
  250.     dc.w    -29269
  251.     dc.w    -29622
  252.     dc.w    -29957
  253.     dc.w    -30274
  254.     dc.w    -30572
  255.     dc.w    -30853
  256.     dc.w    -31114
  257.     dc.w    -31357
  258.     dc.w    -31581
  259.     dc.w    -31786
  260.     dc.w    -31972
  261.     dc.w    -32138
  262.     dc.w    -32286
  263.     dc.w    -32413
  264.     dc.w    -32522
  265.     dc.w    -32610
  266.     dc.w    -32679
  267.     dc.w    -32729
  268.     dc.w    -32758
  269.     dc.w    -32767
  270.     dc.w    -32758
  271.     dc.w    -32729
  272.     dc.w    -32679
  273.     dc.w    -32610
  274.     dc.w    -32522
  275.     dc.w    -32413
  276.     dc.w    -32286
  277.     dc.w    -32138
  278.     dc.w    -31972
  279.     dc.w    -31786
  280.     dc.w    -31581
  281.     dc.w    -31357
  282.     dc.w    -31114
  283.     dc.w    -30853
  284.     dc.w    -30572
  285.     dc.w    -30274
  286.     dc.w    -29957
  287.     dc.w    -29622
  288.     dc.w    -29269
  289.     dc.w    -28899
  290.     dc.w    -28511
  291.     dc.w    -28106
  292.     dc.w    -27684
  293.     dc.w    -27246
  294.     dc.w    -26791
  295.     dc.w    -26320
  296.     dc.w    -25833
  297.     dc.w    -25330
  298.     dc.w    -24812
  299.     dc.w    -24279
  300.     dc.w    -23732
  301.     dc.w    -23170
  302.     dc.w    -22595
  303.     dc.w    -22006
  304.     dc.w    -21403
  305.     dc.w    -20788
  306.     dc.w    -20160
  307.     dc.w    -19520
  308.     dc.w    -18868
  309.     dc.w    -18205
  310.     dc.w    -17531
  311.     dc.w    -16846
  312.     dc.w    -16151
  313.     dc.w    -15447
  314.     dc.w    -14733
  315.     dc.w    -14010
  316.     dc.w    -13279
  317.     dc.w    -12540
  318.     dc.w    -11793
  319.     dc.w    -11039
  320.     dc.w    -10279
  321.     dc.w    -9512
  322.     dc.w    -8740
  323.     dc.w    -7962
  324.     dc.w    -7180
  325.     dc.w    -6393
  326.     dc.w    -5602
  327.     dc.w    -4808
  328.     dc.w    -4011
  329.     dc.w    -3212
  330.     dc.w    -2411
  331.     dc.w    -1608
  332.     dc.w    -804
  333.     dc.w    0
  334.     dc.w    804
  335.     dc.w    1608
  336.     dc.w    2411
  337.     dc.w    3212
  338.     dc.w    4011
  339.     dc.w    4808
  340.     dc.w    5602
  341.     dc.w    6393
  342.     dc.w    7180
  343.     dc.w    7962
  344.     dc.w    8740
  345.     dc.w    9512
  346.     dc.w    10279
  347.     dc.w    11039
  348.     dc.w    11793
  349.     dc.w    12540
  350.     dc.w    13279
  351.     dc.w    14010
  352.     dc.w    14733
  353.     dc.w    15447
  354.     dc.w    16151
  355.     dc.w    16846
  356.     dc.w    17531
  357.     dc.w    18205
  358.     dc.w    18868
  359.     dc.w    19520
  360.     dc.w    20160
  361.     dc.w    20788
  362.     dc.w    21403
  363.     dc.w    22006
  364.     dc.w    22595
  365.     dc.w    23170
  366.     dc.w    23732
  367.     dc.w    24279
  368.     dc.w    24812
  369.     dc.w    25330
  370.     dc.w    25833
  371.     dc.w    26320
  372.     dc.w    26791
  373.     dc.w    27246
  374.     dc.w    27684
  375.     dc.w    28106
  376.     dc.w    28511
  377.     dc.w    28899
  378.     dc.w    29269
  379.     dc.w    29622
  380.     dc.w    29957
  381.     dc.w    30274
  382.     dc.w    30572
  383.     dc.w    30853
  384.     dc.w    31114
  385.     dc.w    31357
  386.     dc.w    31581
  387.     dc.w    31786
  388.     dc.w    31972
  389.     dc.w    32138
  390.     dc.w    32286
  391.     dc.w    32413
  392.     dc.w    32522
  393.     dc.w    32610
  394.     dc.w    32679
  395.     dc.w    32729
  396.     dc.w    32758
  397.     dc.w    32767
  398.     dc.w    32767
  399.  
  400.  
  401.