home *** CD-ROM | disk | FTP | other *** search
-
- ; :ts=10
-
- ;copy_structure(source, dest, count)
- ; copy a WORD-alligned structure as fast as possible
- public _copy_structure
- _copy_structure
- ;grab the parameters
- move.l 4(sp),a0
- move.l 8(sp),a1
- move.w 14(sp),d0
-
- move.w d0,d1
- lsr.w #5,d1 ;going to move 32 bytes at a time at first...
- bra zl32
- l32 move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- move.l (a0)+,(a1)+
- zl32 dbra d1,l32
-
- and.w #31,d0
- lsr.w #1,d1 ;the rest goes 2 bytes at a time
- bra zl2
- l2 move.w (a0)+,(a1)+
- zl2 dbra d0,l2
-
- rts
-
- ;copy_chars(s, d, count)
- ; copy character at a time - not WORD alligned
- public _copy_chars
- _copy_chars
- move.l 4(sp),a0
- move.l 8(sp),a1
- move.l 12(sp),d0
- bra zcch
- cch move.b (a0)+,(a1)+
- zcch dbra d0,cch
- rts
-
-