BLUESTARS
lea $150000,a0 lea $152000,a2 lea sprite,a1 sprloop: move (a1),(a0)+ move (a1)+,(a2)+ dbra d1,sprloop lea $151000,a0 lea $153000,a2 lea sprite1,a1 move #100,d1 sprloop1: move (a1),(a0)+ move (a1)+,(a2)+ dbra d1,sprloop1 lea copper,a0 move.l a0,$dff080 move $dff088,d0 move #$83a0,$dff096 testbeam: cmp.b #$20,$dff006 bne wait and #1,$dff004 beq testbeam ;* move sprite in speed1 lea $150001,a1 move #10,d1 sprmov: move.b (a1),d2 add.b #-1,d2 cmp.b #$28,d2 bne cont move.b #$d8,d2 cont: move.b d2,(a1) add #8,a1 dbra d1,sprmov ;* speed2 lea $151001,a1 move #10,d1 sprmov1: move.b (a1),d2 add.b #2,d2 cmp.b #$d8,d2 bne cont1 move.b #$28,d2 cont1: move.b d2,(a1) add #8,a1 dbra d1,sprmov1 ;* speed3 lea $152001,a1 move #10,d1 sprmov2: move.b (a1),d2 add.b #-3,d2 cmp #$28,d2 bne cont2 move.b #$d8,d2 cont2: move.b d2,(a1) add #8,a1 dbra d1,sprmov2 ;* speed4 lea $153001,a1 move #10,d1 sprmov3: move.b (a1),d2 add.b #4,d2 cmp #$d8,d2 bne cont3 move.b #$28,d2 cont3: move.b d2,(a1) add #8,a1 dbra d1,sprmov3 wait: btst #6,$bfe001 bne testbeam move.l 4,a6 lea libname,a1 jsr -408(a6) move.l d0,a1 move.l 38(a1),$dff080 jsr -414(a6) move #$000f,$dff096 rts libname: dc.b 'graphics.library',0 even copper: ;sprite dc.w $0120,$0015,$0122,$0000 dc.w $0124,$0015,$0126,$0000 dc.w $0128,$0015,$012a,$1000 dc.w $012c,$0015,$012e,$0000 dc.w $0130,$0015,$0132,$2000 dc.w $0134,$0015,$0136,$0000 dc.w $0138,$0015,$013a,$3000 dc.w $013c,$0015,$013e,$0000 ;sprite colors dc.w $01a4,$0999,$01ac,$0bbb dc.w $01b4,$0ddd,$01bc,$0fff ;screen dc.w $0100,$1200,$0180,$0000 ;svart i color00 dc.w $008e,$2c81,$0090,$f4c1 dc.w $0092,$0038,$0094,$00d0 dc.w $00e0,$0006,$00e2,$0000 ;data till bplpth1,2 dc.w $c10f,$fffe,$0180,$000f ;wait for line and reload cl dc.w $c20f,$fffe,$0180,$000e dc.w $c30f,$fffe,$0180,$000d dc.w $c40f,$fffe,$0180,$000c dc.w $c50f,$fffe,$0180,$000b dc.w $c60f,$fffe,$0180,$000a dc.w $c70f,$fffe,$0180,$0009 dc.w $c80f,$fffe,$0180,$0008 dc.w $c90f,$fffe,$0180,$0007 dc.w $d00f,$fffe,$0180,$0006 dc.w $d10f,$fffe,$0180,$0005 dc.w $d20f,$fffe,$0180,$0004 dc.w $d30f,$fffe,$0180,$0003 dc.w $d40f,$fffe,$0180,$0002 dc.w $d50f,$fffe,$0180,$0001 dc.w $d60f,$fffe,$0180,$0000 dc.w $ffff,$fffe ;wait for impossible sprite: dc.w $38a0,$3900,0,$1000 dc.w $4840,$4900,0,$1000 dc.w $5870,$5900,0,$1000 dc.w $6890,$6900,0,$1000 dc.w $78c0,$7900,0,$1000 dc.w $8860,$8900,0,$1000 dc.w $9830,$9900,0,$1000 dc.w $a850,$a900,0,$1000 dc.w $b880,$b900,0,$1000 dc.l 0 sprite1: dc.w $3090,$3100,0,$1000 dc.w $4070,$4100,0,$1000 dc.w $5030,$5100,0,$1000 dc.w $60c0,$6100,0,$1000 dc.w $70a0,$7100,0,$1000 dc.w $8050,$8100,0,$1000 dc.w $90b0,$9100,0,$1000 dc.w $a040,$a100,0,$1000 dc.w $b060,$b100,0,$1000 dc.l 0 aud0lch = $dff0a0 aud0len = $dff0a4 aud0per = $dff0a6 aud0vol = $dff0a8 aud1lch = $dff0b0 aud1len = $dff0b4 aud1per = $dff0b6 aud1vol = $dff0b8 aud2lch = $dff0c0 aud2len = $dff0c4 aud2per = $dff0c6 aud2vol = $dff0c8 aud3lch = $dff0d0 aud3len = $dff0d4 aud3per = $dff0d6 aud3vol = $dff0d8 ;set lentgh of sound in bytes len = 6000 sound: kanal0: move.l #ljud,aud0lch move.w #[len/2],aud0len move.w #0358,aud0per move.w #0064,aud0vol kanal1: move.l #ljud,aud1lch move.w #[len/2],aud1len move.w #0358,aud1per move.w #0064,aud1vol kanal2: move.l #ljud,aud2lch move.w #[len/2],aud2len move.w #0358,aud2per move.w #0064,aud2vol kanal3: move.l #ljud,aud3lch move.w #[len/2],aud3len move.w #0358,aud3per move.w #0064,aud3vol dma: move.w #$800f,$dff096 rts ljud: blk.b len,0 move.w #$000f,$dff096 rts