home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 5 / FreshFish_July-August1994.bin / bbs / gfx / piccon-2.20.lha / PicCon / Sources / 16pixSprite.s next >
Text File  |  1994-04-13  |  3KB  |  128 lines

  1. ; Simple sourcecode that moves a 16x16 sprite on the screen.
  2. ;
  3. ; Save a 16x16 unattached sprite with controlwords (binary) to the file
  4. ; 'sprite16.raw'.
  5.  
  6.     include    init.i
  7.  
  8. main
  9.     move.l    sinepointer,a0        ; insert new y coordinate
  10.     cmp.l    #eof_sine,a0
  11.     bne.s    no_wrap
  12.     move.l    #sine,a0
  13. no_wrap    moveq    #0,d0
  14.     move.b    (a0)+,d0
  15.     add.w    #30,d0
  16.     move.l    a0,sinepointer
  17.     lsl.w    #8,d0
  18.     move.w    d0,sprite
  19.     add.w    #16*256,d0
  20.     move.w    d0,sprite+2
  21.  
  22.     move.w    xposition,d0
  23.     cmp.w    #100,d0
  24.     bne.s    no_reset
  25.     move.w    #450,d0
  26. no_reset
  27.     sub.w    #1,d0
  28.     move.w    d0,xposition
  29.     move.w    d0,d1
  30.     lsr.w    #1,d1
  31.     or.w    d1,sprite        ; x position
  32.     andi.w    #1,d0
  33.     or.w    d0,sprite+2
  34.  
  35.     move.l    #255,d0
  36.     rts
  37. ;***
  38. init
  39.     move.l    #empty,d0
  40.     lea    bplp,a0
  41.     move.w    d0,6(a0)        ; insert BPLPTR LOW
  42.     swap    d0
  43.     move.w    d0,2(a0)        ; insert BPLPTR HIGH
  44.  
  45.     move.w  #DMA_SETCLR!DMA_SPRITE!DMA_RASTER!DMA_COPPER!DMA_MASTER,dmacon+$dff000
  46.  
  47.     move.w    #100*256+100,sprite
  48.     move.w    #116*256,sprite+2
  49.  
  50.     move.l    #sprite,d0
  51.     lea    sprp,a0
  52.     move.w    d0,6(a0)
  53.     swap    d0
  54.     move.w    d0,2(a0)
  55.  
  56.     move.l    #copper,d0
  57.     lea    emptspr,a0
  58.     moveq    #7-1,d1
  59. emptlup    move.w    d0,6(a0)
  60.     swap    d0
  61.     move.w    d0,2(a0)
  62.     swap    d0
  63.     add.l    #8,a0
  64.     dbra    d1,emptlup
  65.     rts
  66. ;***
  67.     Section    copper,DATA_C
  68. copper
  69.     dc.w    $0180,$0553,$0182,$0553
  70.     dc.w    $01a2,$0ff0,$01a4,$0000,$01a6,$0f00    ; sprite colors
  71.  
  72.     dc.w    $010c,$0011 
  73.     dc.w    $008e,$2c81
  74.     dc.w    $0100,$1200
  75.     dc.w    $0104,$0224 
  76.     dc.w    $0106,$0c40 
  77.     dc.w    $0090,$2cc1 
  78.     dc.w    $0092,$0038 
  79.     dc.w    $0094,$00d0
  80.     dc.w    $0102,$0000 
  81.     dc.w    $0108,$0000
  82.     dc.w    $010a,$0000 
  83.  
  84. bplp    dc.w    $00e0,$0000,$00e2,$0000
  85.  
  86. sprp    dc.w    $0120,$0000,$0122,$0000
  87.  
  88. emptspr    dc.w    $0124,$0000,$0126,$0000
  89.     dc.w    $0128,$0000,$012a,$0000
  90.     dc.w    $012c,$0000,$012e,$0000
  91.     dc.w    $0130,$0000,$0132,$0000
  92.     dc.w    $0134,$0000,$0136,$0000
  93.     dc.w    $0138,$0000,$013a,$0000
  94.     dc.w    $013c,$0000,$013e,$0000
  95.  
  96.     dc.w    $01fc,$0000
  97.     dc.w    $ffff,$fffe
  98.  
  99. ;***
  100.     Section    empty,BSS_C
  101.     
  102. empty    ds.l    320/8*256
  103.  
  104. ;***
  105.     Section sprite,DATA_C
  106.  
  107. sprite    incbin    sprite16.raw
  108.  
  109. ;***
  110.     Section    sinetable,DATA
  111.  
  112. sine
  113.     dc.l    $6567696b,$6d6f7173,$7576787a,$7c7e8082,$84858789,$8b8c8e90
  114.     dc.l    $91939496,$98999a9c,$9d9fa0a1,$a2a4a5a6,$a7a8a9aa,$abacadae
  115.     dc.l    $aeafb0b0,$b1b1b2b2,$b3b3b3b4,$b4b4b4b4,$b4b4b4b4,$b4b3b3b3
  116.     dc.l    $b2b2b1b1,$b0b0afae,$aeadacab,$aaa9a8a7,$a6a5a4a2,$a1a09f9d
  117.     dc.l    $9c9a9998,$96949391,$908e8c8b,$89878584,$82807e7c,$7a787675
  118.     dc.l    $73716f6d,$6b696765,$63615f5d,$5b595755,$5352504e,$4c4a4846
  119.     dc.l    $4443413f,$3d3c3a38,$37353432,$302f2e2c,$2b292827,$26242322
  120.     dc.l    $21201f1e,$1d1c1b1a,$1a191818,$17171616,$15151514,$14141414
  121.     dc.l    $14141414,$14151515,$16161717,$1818191a,$1a1b1c1d,$1e1f2021
  122.     dc.l    $22232426,$2728292b,$2c2e2f30,$32343537,$383a3c3d,$3f414344
  123.     dc.l    $46484a4c,$4e505253,$5557595b,$5d5f6163
  124. eof_sine
  125.  
  126. sinepointer    dc.l    sine
  127. xposition    dc.w    450
  128.