| Last change
 on this file since cbe2c15 was             3ae31e9, checked in by Thomas Lopatic <thomas@…>, 8 years ago | 
        
          | 
Imported original source code.
 | 
        
          | 
              
Property                 mode
 set to                 100755 | 
        
          | File size:
            1.0 KB | 
      
      
| Line |  | 
|---|
| 1 | * ------------------------------------------------------------------------------ | 
|---|
| 2 | * blkmove.s -- block move function | 
|---|
| 3 | * Version 1 -- 1987-08-28 -- D.N. Lynx Crowe | 
|---|
| 4 | * | 
|---|
| 5 | *       void | 
|---|
| 6 | *       blkmove(to, from, n) | 
|---|
| 7 | *       char *to, *from; | 
|---|
| 8 | *       short n; | 
|---|
| 9 | * | 
|---|
| 10 | *               Copies 'n' bytes from address 'from' to address 'to'. | 
|---|
| 11 | *               Treats overlaps of from and to areas intelligently. | 
|---|
| 12 | * ------------------------------------------------------------------------------ | 
|---|
| 13 | .text | 
|---|
| 14 | * | 
|---|
| 15 | .xdef   _blkmove | 
|---|
| 16 | * | 
|---|
| 17 | _blkmove:       link    a6,#$FFFC | 
|---|
| 18 | move.l  8(a6),d0 | 
|---|
| 19 | cmp.l   12(a6),d0 | 
|---|
| 20 | bcc     blkm3 | 
|---|
| 21 | * | 
|---|
| 22 | bra     blkm2 | 
|---|
| 23 | * | 
|---|
| 24 | blkm1:          movea.l 8(a6),a0 | 
|---|
| 25 | movea.l 12(a6),a1 | 
|---|
| 26 | move.b  (a1),(a0) | 
|---|
| 27 | addq.l  #1,8(a6) | 
|---|
| 28 | addq.l  #1,12(a6) | 
|---|
| 29 | * | 
|---|
| 30 | blkm2:          move.w  16(a6),d0 | 
|---|
| 31 | subq.w  #1,16(a6) | 
|---|
| 32 | tst.w   d0 | 
|---|
| 33 | bne     blkm1 | 
|---|
| 34 | * | 
|---|
| 35 | bra     blkm6 | 
|---|
| 36 | * | 
|---|
| 37 | blkm3:          move.w  16(a6),d0 | 
|---|
| 38 | ext.l   d0 | 
|---|
| 39 | add.l   d0,8(a6) | 
|---|
| 40 | add.l   d0,12(a6) | 
|---|
| 41 | bra     blkm5 | 
|---|
| 42 | * | 
|---|
| 43 | blkm4:          subq.l  #1,8(a6) | 
|---|
| 44 | subq.l  #1,12(a6) | 
|---|
| 45 | movea.l 8(a6),a0 | 
|---|
| 46 | movea.l 12(a6),a1 | 
|---|
| 47 | move.b  (a1),(a0) | 
|---|
| 48 | * | 
|---|
| 49 | blkm5:          move.w  16(a6),d0 | 
|---|
| 50 | subq.w  #1,16(a6) | 
|---|
| 51 | tst.w   d0 | 
|---|
| 52 | bne     blkm4 | 
|---|
| 53 | * | 
|---|
| 54 | blkm6:          unlk    a6 | 
|---|
| 55 | rts | 
|---|
| 56 | * | 
|---|
| 57 | .end | 
|---|
       
      
  Note:
 See   
TracBrowser
 for help on using the repository browser.