home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 4 / AACD04.ISO / AACD / Programming / powerd / lib / PowerD / EStrCopy.ass < prev    next >
Encoding:
Text File  |  1999-09-17  |  521 b   |  23 lines

  1. ; (4,a7)  - dest
  2. ; (8,a7)  - source
  3. ; (12,a7) - length=-1
  4.  
  5.     xdef    _EStrCopy
  6.  
  7. _EStrCopy    move.l    (4,a7),a0        ; estr
  8.     move.l    (8,a7),a1        ; str
  9.     move.l    (12,a7),d0    ; length
  10.     bge.s    .getlen
  11.     move.w    (-4,a0),d0    ; get max length
  12. .getlen    ext.l    d0        ; word only
  13.     move.l    d0,d1        ; d0 now contains max copy length, store it
  14. .loop    move.b    (a1)+,(a0)+    ; src -> dst
  15.     beq.s    .stop
  16.     dbf.s    d0,.loop
  17.     clr.b    (a0)        ; change last byte to zero
  18. .stop    sub.w    d0,d1
  19.     move.l    (4,a7),a0
  20.     move.w    d1,(-2,a0)    ; save string length
  21.     move.l    a0,d0        ; return dest
  22.     rts
  23.