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