home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 469.lha / DFC_v5.0 / FastRoutines.a < prev    next >
Text File  |  1991-02-09  |  1KB  |  56 lines

  1.     CSECT text,0,,1,2
  2. ;
  3. ;  This routine is a fast machine-language block move, that moves
  4. ;  exactly one block of data.  Do not change TRACKSIZE and expect
  5. ;  this still to work!
  6. ;
  7.  
  8.     XDEF fcpy
  9.     XDEF fcmp
  10.  
  11. fcpy:
  12. ; source is in A0, dest in A1
  13.  
  14.     movem.l    a0-a6/d0-d7,-(a7)
  15.     move.l    #43,d0
  16. lsdf:
  17.     movem.l    (a0)+,a2-a6/d1-d7
  18.     movem.l    a2-a6/d1-d7,(a1)
  19.     add.w    #48,a1
  20.     movem.l    (a0)+,a2-a6/d1-d7
  21.     movem.l    a2-a6/d1-d7,(a1)
  22.     add.w    #48,a1
  23.     movem.l    (a0)+,a2-a6/d1-d7
  24.     movem.l    a2-a6/d1-d7,(a1)
  25.     add.w    #48,a1
  26.     movem.l    (a0)+,a2-a6/d1-d7
  27.     movem.l    a2-a6/d1-d7,(a1)
  28.     add.w    #48,a1
  29.     movem.l    (a0)+,a2-a6/d1-d7
  30.     movem.l    a2-a6/d1-d7,(a1)
  31.     add.w    #48,a1
  32.     movem.l    (a0)+,a2-a5
  33.     movem.l    a2-a5,(a1)
  34.     add.w    #16,a1
  35.     dbra    d0,lsdf
  36.     movem.l    (a7)+,a0-a6/d0-d7
  37.     rts
  38.  
  39. ;
  40. ;  Another fast assembly language routine for verifying a buffer.  This
  41. ;  routine returns 0 if the two buffers are the same, and something else
  42. ;  otherwise.
  43. ;
  44.  
  45. fcmp:
  46. ; source is in A0, dest in A1;
  47.     movem.l    a0/a1,-(a7)
  48.     move.l    #2815,d0
  49. alsdf:
  50.     cmp.l    (a0)+,(a1)+
  51.     dbne    d0,alsdf
  52.     addq.w #1,d0
  53.     ext.l d0
  54.     movem.l    (a7)+,a0/a1
  55.     rts
  56.