home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 November: Tool Chest / Dev.CD Nov 00 TC Disk 1.toast / Sample Code / Contributed / SpriteWorld / SpriteWorld Files / Utils / SWFastLine.a < prev    next >
Encoding:
Text File  |  2000-10-06  |  3.1 KB  |  117 lines  |  [TEXT/MPS ]

  1. ; File for MPW Asm
  2.  
  3.     MACHINE MC68020
  4.     CASE    OBJECT
  5.  
  6.     PROC
  7.  
  8. ;Hunk:    Kind=HUNK_GLOBAL_CODE  Name="BlitLine68kAsm"(2)  Size=272
  9.     EXPORT        BlitLine68kAsm
  10. BlitLine68kAsm:
  11.     link      a6,#0
  12.     movem.l   d0-d7/a0-a6,-(a7)
  13.     moveq     #0,d0
  14.     moveq     #0,d1
  15.     moveq     #0,d2
  16.     moveq     #0,d3
  17.     move.w    16(a6),d0
  18.     move.w    20(a6),d1
  19.     move.w    18(a6),d2
  20.     move.w    22(a6),d3
  21.     sub.w     d0,d2
  22.     bpl.s     *+8            ; 0x0000002a
  23.     exg       d1,d3
  24.     neg.w     d2
  25.     sub.w     d2,d0
  26.     sub.w     d1,d3
  27.     movea.l   8(a6),a0
  28.     move.l    12(a6),d6
  29.     mulu.l    d6,d1
  30.     add.l     d1,d0
  31.     adda.l    d0,a0
  32.     move.b    24(a6),d7
  33.     tst.w     d3
  34.     bmi.s     *+108          ; 0x000000ae
  35.     beq.s     *+88           ; 0x0000009c
  36.     tst.w     d2
  37.     beq.s     *+92           ; 0x000000a4
  38.     cmp.w     d2,d3
  39.     beq.s     *+36           ; 0x00000070
  40.     bpl.s     *+48           ; 0x0000007e
  41.     moveq     #0,d0
  42.     divu.l    d2,d3:d0
  43.     moveq     #0,d1
  44.     move.b    d7,(a0)+
  45.     add.l     d0,d1
  46.     bcs.s     *+10           ; 0x00000066
  47.     dbra      d2,*-6         ; 0x00000058
  48.     bra.w     *+166          ; 0x00000108
  49.     adda.l    d6,a0
  50.     dbra      d2,*-16        ; 0x00000058
  51.     bra.w     *+156          ; 0x00000108
  52.     addq.l    #1,d6
  53.     move.b    d7,(a0)
  54.     adda.l    d6,a0
  55.     dbra      d2,*-4         ; 0x00000072
  56.     bra.w     *+142          ; 0x00000108
  57.     moveq     #0,d0
  58.     divu.l    d3,d2:d0
  59.     moveq     #0,d1
  60.     move.b    d7,(a0)
  61.     adda.l    d6,a0
  62.     add.l     d0,d1
  63.     bcs.s     *+8            ; 0x00000094
  64.     dbra      d3,*-8         ; 0x00000086
  65.     bra.s     *+118          ; 0x00000108
  66.     addq.l    #1,a0
  67.     dbra      d3,*-16        ; 0x00000086
  68.     bra.s     *+110          ; 0x00000108
  69.     move.b    d7,(a0)+
  70.     dbra      d2,*-2         ; 0x0000009c
  71.     bra.s     *+102          ; 0x00000108
  72.     move.b    d7,(a0)
  73.     adda.l    d6,a0
  74.     dbra      d3,*-4         ; 0x000000a4
  75.     bra.s     *+92           ; 0x00000108
  76.     neg.w     d3
  77.     tst.w     d2
  78.     beq.s     *+78           ; 0x00000100
  79.     cmp.w     d2,d3
  80.     beq.s     *+32           ; 0x000000d6
  81.     bpl.s     *+42           ; 0x000000e2
  82.     moveq     #0,d0
  83.     divu.l    d2,d3:d0
  84.     moveq     #0,d1
  85.     move.b    d7,(a0)+
  86.     add.l     d0,d1
  87.     bcs.s     *+8            ; 0x000000ce
  88.     dbra      d2,*-6         ; 0x000000c2
  89.     bra.s     *+60           ; 0x00000108
  90.     suba.l    d6,a0
  91.     dbra      d2,*-14        ; 0x000000c2
  92.     bra.s     *+52           ; 0x00000108
  93.     subq.l    #1,d6
  94.     move.b    d7,(a0)
  95.     suba.l    d6,a0
  96.     dbra      d2,*-4         ; 0x000000d8
  97.     bra.s     *+40           ; 0x00000108
  98.     moveq     #0,d0
  99.     divu.l    d3,d2:d0
  100.     moveq     #0,d1
  101.     move.b    d7,(a0)
  102.     suba.l    d6,a0
  103.     add.l     d0,d1
  104.     bcs.s     *+8            ; 0x000000f8
  105.     dbra      d3,*-8         ; 0x000000ea
  106.     bra.s     *+18           ; 0x00000108
  107.     addq.l    #1,a0
  108.     dbra      d3,*-16        ; 0x000000ea
  109.     bra.s     *+10           ; 0x00000108
  110.     move.b    d7,(a0)
  111.     suba.l    d6,a0
  112.     dbra      d3,*-4         ; 0x00000100
  113.     movem.l   (a7)+,d0-d7/a0-a6
  114.     unlk      a6
  115.     rts
  116.     
  117.     END