home *** CD-ROM | disk | FTP | other *** search
- ; (4,a7) - dest
- ; (8,a7) - source
- ; (12,a7) - length=-1
-
- xdef _EStrCopy
-
- _EStrCopy move.l (4,a7),a0 ; estr
- move.l (8,a7),a1 ; str
- move.l (12,a7),d0 ; length
- bge.s .getlen
- move.w (-4,a0),d0 ; get max length
- .getlen ext.l d0 ; word only
- move.l d0,d1 ; d0 now contains max copy length, store it
- .loop move.b (a1)+,(a0)+ ; src -> dst
- beq.s .stop
- dbf.s d0,.loop
- clr.b (a0) ; change last byte to zero
- .stop sub.w d0,d1
- move.l (4,a7),a0
- move.w d1,(-2,a0) ; save string length
- move.l a0,d0 ; return dest
- rts
-