home *** CD-ROM | disk | FTP | other *** search
- CSECT text,0,,1,2
- ;
- ; This routine is a fast machine-language block move, that moves
- ; exactly one block of data. Do not change TRACKSIZE and expect
- ; this still to work!
- ;
-
- XDEF fcpy
- XDEF fcmp
-
- fcpy:
- ; source is in A0, dest in A1
-
- movem.l a0-a6/d0-d7,-(a7)
- move.l #43,d0
- lsdf:
- movem.l (a0)+,a2-a6/d1-d7
- movem.l a2-a6/d1-d7,(a1)
- add.w #48,a1
- movem.l (a0)+,a2-a6/d1-d7
- movem.l a2-a6/d1-d7,(a1)
- add.w #48,a1
- movem.l (a0)+,a2-a6/d1-d7
- movem.l a2-a6/d1-d7,(a1)
- add.w #48,a1
- movem.l (a0)+,a2-a6/d1-d7
- movem.l a2-a6/d1-d7,(a1)
- add.w #48,a1
- movem.l (a0)+,a2-a6/d1-d7
- movem.l a2-a6/d1-d7,(a1)
- add.w #48,a1
- movem.l (a0)+,a2-a5
- movem.l a2-a5,(a1)
- add.w #16,a1
- dbra d0,lsdf
- movem.l (a7)+,a0-a6/d0-d7
- rts
-
- ;
- ; Another fast assembly language routine for verifying a buffer. This
- ; routine returns 0 if the two buffers are the same, and something else
- ; otherwise.
- ;
-
- fcmp:
- ; source is in A0, dest in A1;
- movem.l a0/a1,-(a7)
- move.l #2815,d0
- alsdf:
- cmp.l (a0)+,(a1)+
- dbne d0,alsdf
- addq.w #1,d0
- ext.l d0
- movem.l (a7)+,a0/a1
- rts
-