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

  1. ; (4,a7)  - estr
  2. ; (8,a7)  - str
  3. ; (12,a7) - length=-1
  4.  
  5.     xdef    _EStrAdd
  6.  
  7. _EStrAdd    movem.l    d2-d3/a2,-(a7)
  8.     moveq    #0,d0
  9.     move.w    (14+12,a7),d0    ; read word only
  10.     move.l    (8+12,a7),a1
  11.     move.l    (4+12,a7),a0
  12.     moveq    #0,d3
  13.     move.w    (-2,a0),d3
  14.     move.l    a0,a2
  15.     moveq    #0,d1
  16.     move.w    (-4,a0),d1
  17.     sub.l    d3,d1
  18.     add.l    d3,a0
  19.     cmp.l    d0,d1
  20.     bpl.s    .skip
  21.     move.l    d1,d0
  22. .skip    move.w    d0,d2
  23.     beq.s    .dontfit
  24.     subq.l    #1,d0
  25. .loop    move.b    (a1)+,(a0)+
  26.     beq.s    .done
  27.     dbra    d0,.loop
  28.     move.b    #0,(a0)+
  29. .done    addq.w    #1,d0
  30.     sub.w    d0,d2
  31.     add.w    d3,d2
  32.     move.w    d2,(-2,a2)
  33. .dontfit    move.l    a2,d0
  34.     movem.l    (a7)+,d2-d3/a2
  35.     rts
  36.