home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 2 / MECOMP-CD-II.iso / amiga / tools / libs / graphics3d / src / example / 3dlib-020.asm next >
Encoding:
Assembly Source File  |  1998-04-21  |  2.3 KB  |  171 lines

  1.     machine    68020
  2.     opt    0
  3.     opt    NQLPSMRBT
  4.     section    "CODE",code
  5.     public    _mul_ii
  6.     cnop    0,4
  7. _mul_ii
  8.     movem.l    l2,-(a7)
  9.     move.l    (4+l4,a7),d0
  10.     muls.l    (8+l4,a7),d0
  11. l2    reg
  12. l4    EQU    0
  13.     rts
  14.     cnop    0,4
  15.     cnop    0,4
  16.     cnop    0,4
  17.     machine    68020
  18.     opt    0
  19.     opt    NQLPSMRBT
  20.     public    _div_ii
  21.     cnop    0,4
  22. _div_ii
  23.     movem.l    l6,-(a7)
  24.     move.l    (8+l8,a7),d0
  25.     divs.l    (4+l8,a7),d0
  26. l6    reg
  27. l8    EQU    0
  28.     rts
  29.     cnop    0,4
  30.     cnop    0,4
  31.     cnop    0,4
  32.     machine    68020
  33.     opt    0
  34.     opt    NQLPSMRBT
  35.     public    _sqri_i
  36.     cnop    0,4
  37. _sqri_i
  38.     movem.l    l31,-(a7)
  39.     move.l    (4+l33,a7),d4
  40.     move.l    d4,d1
  41.     asr.l    #1,d1
  42.     moveq    #0,d2
  43.     cmp.l    #45000,d1
  44.     ble    l16
  45.     move.l    #20000,d1
  46. l16
  47.     tst.l    d1
  48.     ble    l30
  49. l29
  50.     move.l    d2,d3
  51.     add.l    d1,d3
  52.     move.l    d3,d0
  53.     muls.l    d3,d0
  54.     cmp.l    d0,d4
  55.     bge    l21
  56.     asr.l    #1,d1
  57.     bra    l22
  58. l21
  59.     move.l    d3,d2
  60. l22
  61.     tst.l    d1
  62.     bgt    l29
  63. l30
  64.     move.l    d2,d0
  65. l31    reg    d2/d3/d4
  66.     movem.l    (a7)+,l31
  67. l33    EQU    12
  68.     rts
  69.     cnop    0,4
  70.     cnop    0,4
  71.     cnop    0,4
  72.     machine    68020
  73.     opt    0
  74.     opt    NQLPSMRBT
  75.     public    _normalpol_iiii
  76.     cnop    0,4
  77. _normalpol_iiii
  78.     movem.l    l35,-(a7)
  79.     move.l    (16+l37,a7),a4
  80.     move.l    (4+l37,a7),a3
  81.     move.l    (12+l37,a7),a2
  82.     move.l    (8+l37,a7),a1
  83.     move.l    #128,d1
  84.     add.l    (a4),d1
  85.     move.l    #128,d0
  86.     add.l    (4,a4),d0
  87.     move.l    #128,d5
  88.     add.l    (8,a4),d5
  89.     move.l    d1,d3
  90.     sub.l    (a2),d3
  91.     asr.l    #8,d3
  92.     move.l    d0,d2
  93.     sub.l    (4,a2),d2
  94.     asr.l    #8,d2
  95.     move.l    d5,d6
  96.     sub.l    (8,a2),d6
  97.     asr.l    #8,d6
  98.     sub.l    (a1),d1
  99.     asr.l    #8,d1
  100.     sub.l    (4,a1),d0
  101.     asr.l    #8,d0
  102.     sub.l    (8,a1),d5
  103.     asr.l    #8,d5
  104.     move.l    d5,d7
  105.     muls.l    d2,d7
  106.     move.l    d0,d4
  107.     muls.l    d6,d4
  108.     move.l    d0,-(a7)
  109.     move.l    d7,d0
  110.     sub.l    d4,d0
  111.     move.l    d0,(a3)
  112.     move.l    (a7)+,d0
  113.     move.l    d1,d4
  114.     muls.l    d6,d4
  115.     muls.l    d3,d5
  116.     sub.l    d5,d4
  117.     move.l    d4,(4,a3)
  118.     muls.l    d3,d0
  119.     muls.l    d2,d1
  120.     sub.l    d1,d0
  121.     move.l    d0,(8,a3)
  122. l35    reg    a2/a3/a4/d2/d3/d4/d5/d6/d7
  123.     movem.l    (a7)+,l35
  124. l37    EQU    36
  125.     rts
  126.     cnop    0,4
  127.     cnop    0,4
  128.     cnop    0,4
  129.     machine    68020
  130.     opt    0
  131.     opt    NQLPSMRBT
  132.     public    _dotproduct_ii
  133.     cnop    0,4
  134. _dotproduct_ii
  135.     movem.l    l39,-(a7)
  136.     move.l    (8+l41,a7),a2
  137.     move.l    (4+l41,a7),a1
  138.     move.l    #128,d5
  139.     add.l    (a2),d5
  140.     asr.l    #8,d5
  141.     move.l    #128,d4
  142.     add.l    (4,a2),d4
  143.     asr.l    #8,d4
  144.     move.l    #128,d2
  145.     add.l    (8,a2),d2
  146.     asr.l    #8,d2
  147.     move.l    #128,d3
  148.     add.l    (a1),d3
  149.     asr.l    #8,d3
  150.     move.l    #128,d1
  151.     add.l    (4,a1),d1
  152.     asr.l    #8,d1
  153.     move.l    #128,d0
  154.     add.l    (8,a1),d0
  155.     asr.l    #8,d0
  156.     muls.l    d5,d3
  157.     muls.l    d4,d1
  158.     add.l    d3,d1
  159.     muls.l    d2,d0
  160.     add.l    d1,d0
  161. l39    reg    a2/d2/d3/d4/d5
  162.     movem.l    (a7)+,l39
  163. l41    EQU    20
  164.     rts
  165.     cnop    0,4
  166.     cnop    0,4
  167.     cnop    0,4
  168.     cnop    0,4
  169.     cnop    0,4
  170.     cnop    0,4
  171.