>extern	"df0:tst-intro1/bitplane_intro1",bitplane1,$10440
>extern	"df0:tst-intro1/charset_intro1",charset,$d800
>extern	"df0:tst-intro1/muzak",data,$df18
; WORKSPACE KB> 270 
;
; stareffekt = sprites
; scroll = blitter
; graphic = 32 colours 320*256 pixels
;
;         intro made by chess of the supply team in 9.1988
 
movem.l 	d0-d7/a0-a6,-(a7)	; register retten

clr.l		$3f0
move.l		#sprite1,d0		; sprite fuer sterneffekt
move.w		d0,spritel		; initialisieren
swap		d0
move.w		d0,spriteh
;
move.l		#bitplane1,d0		; bitplane1 fuer graphic
move.w		d0,lo1			; initialisieren
swap		d0
move.w		d0,hi1
;
move.l		#bitplane2,d0		; bitplane 2
move.w		d0,lo2
swap		d0
move.w		d0,hi2

move.l		#bitplane3,d0		; bitplane 3
move.w		d0,lo3
swap		d0
move.w		d0,hi3

move.l		#bitplane4,d0		; bitplane 4
move.w		d0,lo4
swap		d0
move.w		d0,hi4

move.l		#bitplane5,d0		; bitplane 5
move.w		d0,lo5
swap		d0
move.w		d0,hi5


bsr.l		soundstart			; soundinit

setcolpic:
lea		bildfarben+2,a0			; 32 farben fuer
lea		piccol,a1			; die graphic
move.w		#$0182,d0			; daten hinter
move.w		#31,d1				; dem convertierten
setloop1:					; bild
move.w		d0,(a1)+			; = bitplane 1
move.w		(a0)+,(a1)+
add.w		#2,d0
dbra		d1,setloop1

scrollinit:					; scroll auf anfang
	move.l	#text,textpoint	

setcolscroll:
lea		scrollfarben,a0			; 16 farben fuer
lea		scrcol,a1			; den scroll
move.w		#$0180,d0			; daten bei
move.w		#16,d1				; scrollfarben
setloop2:
move.w		d0,(a1)+
move.w		(a0)+,(a1)+
add.w		#2,d0
dbra		d1,setloop2

;

jsr		setcolours			; setzen der welle
jsr		setscrflash			; setzen des flashes
jsr		setflash			; setzen der vertical
						; raster
move.l		#newcopper,$dff080		; neue copper 
clr.w		$dff088				; initialisieren
move.w		#$8210,$dff096			; dma - controll

initirq:
move.w		#$4000,$dff09a			; neuen irq setzen
move.l		$6c,oldvector
move.l		#newirq,$6c
move.w		#$c020,$dff09a

jmp		wait				; zur mausabfrage

setcolours:				; farben in copperlist 
lea	addcop,a0			; copper adresse
move.l	#$4009,d0			; rasterzeile auf $9009
move.l	#160,d1				; 20 farben
move.w	#$4001,d2

mib:
move.w	$dff006,d2			; zufalls - zahl
or.w	#$4000,d2
and.w	#$40ff,d2
move.w	d0,(a0)+			; rasterzeile
move.w	#$fffe,(a0)+
move.w	#$0140,(a0)+			; sprite 1
move.w	$dff006,d2
or.w	#$4000,d2
and.w	#$40ff,d2
move.w	d2,(a0)+
move.w	#$0102,(a0)+			; welle
move.w	#$0000,(a0)+
add.w	#$0100,d0

dbra	d1,mib
rts

setscrflash:
	lea	scrflash,a0		; farben fuer die verticalen
	lea	scrflashcol,a1		; raster - zeilen
	move.l	#360,d1
scrloop1:
	move.w	#$0180,(a0)+
	move.w	(a1)+,(a0)+	
	dbra	d1,scrloop1
	rts
;
;
setflash:
	lea	colflash,a0		; farben fuer den colour
	move.w	#$0184,d0		; flash
	move.w	#29,d1
flashloop1:
	move.w	d0,(a0)+
	clr.w	(a0)+
	addq.w	#0002,d0
	dbf	d1,flashloop1
	rts
;
;

newirq:					;interrupt beginn
	movem.l	d0-d7/a0-a6,-(a7)
	move.w	$dff01e,d0
	move.w	d0,$dff09c		
	btst	#5,d0			; interrupt - flag abfragen
	bne	makeirq
	bra	endirq
makeirq:	
	bsr.l	movewave		; welle bewegen
	bsr.l	sterne			; sterneffekt
	bsr.l	flashcolour		; colour flash
	bsr.l	replay_muzak		; soundtracker - sound
	bsr.l	scroll			; scroll
endirq:
	movem.l	(a7)+,d0-d7/a0-a6
	rte

;-------------------------------------- unterprogramme

sterne:					; stern effekt

	lea	addcop+6,a0
	move.w	#39,d1			; 39+1 zeilen in copper
loop2:
	move.w	(a0),d2
	add.w	#$1,d2
	and.w	#$40ff,d2
	move.w	d2,(a0)+
	add.l	#10,a0			; 3 wait befehle addieren
;
	move.w	(a0),d2			; naechste geschwindikgeit
	add.w	#$2,d2
	and.w	#$40ff,d2
	move.w	d2,(a0)+
	add.l	#10,a0
;
	move.w	(a0),d2			; naechste geschwindigkeit
	add.w	#$3,d2
	and.w	#$40ff,d2
	move.w	d2,(a0)+
	add.l	#10,a0
;
	move.w	(a0),d2			; naechste geschwindigkeit
	add.w	#$4,d2
	and.w	#$40ff,d2
	move.w	d2,(a0)+
	add.l	#10,a0
;
	dbra	d1,loop2
	rts

movewave:
	lea	waveend-2,a0		; wellendaten umkopieren
	lea	waveend,a1
	move.w	#160,d0
	move.w	waveend-2,d1
loop11:
	move.w	-(a0),-(a1)
	dbra	d0,loop11
	move.w	d1,wavetab

writewave:
	lea	addcop+10,a0		; wellendaten in die copper
	lea	wavetab,a1
	move.w	#160,d1
loop22:
	move.w	(a1)+,(a0)+
	add.l	#10,a0
	dbra	d1,loop22
	rts

flashcolour:
	addq.b	#1,flashspeed		; geschwindigkeit des flashes
	cmpi.b	#3,flashspeed
	bne	flashcolourend	

	clr.b	flashspeed
	lea	flashtabend,a0		; farben umkopieren
	lea	flashtabend-2,a1
	move.w	flashtabend-2,d0
	move.w	#127,d1
flashloop2:
	move.w	-(a1),-(a0)
	dbra	d1,flashloop2
	
	move.w	d0,flashtab

	lea	flashtab,a0		; farben in den copper
	lea	colflash+2,a1
	move.w	#29,d1
flashloop3:
	move.w	(a0)+,(a1)+
	adda	#2,a1
	dbra	d1,flashloop3
flashcolourend:
	rts

flashspeed:	dc.b	0
even
;----------------------------------------------------------------
scroll:					; scroll beginn
	add.b	#2,wert
	cmp.b	#38,wert		; schon 20 punkte gescrollt
	bne	bitplanescroll

textein:				; text einlese routine
	move.b	#0,wert
	move.l	textpoint,a6		; text pointer
	clr.l	d0
	move.b	(a6)+,d0		; zeichen in d0
	bne	textloop1		; letytes zeichen ??
	move.l	#text,a6
	move.b	(a6)+,d0		; scrolltext neu beginn
textloop1:
	move.l	a6,textpoint		; wieder abspeichern
	lea	zeichen,a0		; moegliche zeichen
	clr.l	d1			; 
txtloop1:
	add.b	#1,d1			; zahler fuer zeichen
	cmp.b	(a0),d0			; welches zeichen
	beq	txt1			; es ist ein zeichen !!
	cmp.b	#0,(a0)+
	bne	txtloop1
	rts				; hier abfragen fuer effekte
txt1:
;					zeichen = d1 - 1 * 20 
	clr.l	d0
	clr.l	d2
	sub.b	#1,d1

	divu	#9,d1			; position des zeichen 
	move.l	d1,adresse1		; ausrechnen
	move.w	adresse1,d0
	clr.l	d2
	move.l	adresse1,d2
	and.l	#$00ff,d2
	mulu	#2160,d2
	mulu	#6,d0
	
	lea	charset,a0		; anfangs adresse des zeichens
	adda	d2,a0			; in a0
	adda	d0,a0
	lea	bitplane11+44,a1
	move.b	#4,wert3		; 5 bitplanes 

blitloop2:
	btst	#$0e,$dff002		; auf den blitter warten
	bne	blitloop2
	move.l	a0,$dff050
	move.l	a1,$dff054
	move.w	#$ffff,$dff046
	move.w	#$ffff,$dff044
	move.l	#$09f00000,$dff040
	move.w	#$0030,$dff064
	move.w	#$002e,$dff066

	move.w	#$0a03,$dff058

	add.l	#13824,a0
	add.l	#13312,a1
	sub.b	#1,wert3
	cmp.b	#0,wert3
	bne.s	blitloop2

;		----- bitplane scroll-routine fuer 4 bitplanes
bitplanescroll:
	move.l	#bitplane11,word1
	move.l	#bitplane11+2,word2
	move.b	#4,counter			; fuer vier bitplanes
blitloop1:
	btst	#$0e,$dff002			; wait blitter
	bne	blitloop1
						; blitter umkopier
	move.l	word2,$dff050			; routine fuer 
	move.l	word1,$dff054			; 5 punkte
	move.w	#$ffff,$dff044			; wordmask links
	move.w	#$ffff,$dff046			; wordmask rechts
	move.l	#$e9f00000,$dff040		; lfx , barr shifter
	move.w	#$0000,$dff064			; modulo wert quelle a
	move.w	#$0000,$dff066			; modulo wert quelle d

	move.w	#$0f1a,$dff058			; blitter start

	
	add.l	#13312,word1			; naechste bitplane
	add.l	#13312,word2			; naechste bitplane
	sub.b	#1,counter			; nicht d1 nehmen
	cmp.b	#0,counter			; vier bitplanes ?
	bne	blitloop1			; wenn nicht,dann
	rts					; noch einmal




;
;scrolldaten				; daten fuer den blitterscroll

wert:					; abfrage fuer 32 punkte
	dc.b	0
linke:
	dc.b	0			; linke oder rechte haelfte
counter:	
	dc.b	4			; vier bitplanes ???
wert3:
	dc.b	4			; vier bitplanes ???
even
adresse1:
	dc.l	$0000			; zeichensatz + adress 1
adresse2:
	dc.w	$0000			; vertical adress
barrshift1:
	dc.w	$0000			; barr shift fuer zeichen
textpoint:				; welches zeichen ???
	dc.l	$00000000
word1:					; zeiger auf bitplane
	dc.l	$00000000		; wird um 12288 erhoeht
word2:					; wir word 1
	dc.l	$00000000

zeichen:;-------------------------------; verwendete zeichen

	dc.b	"abcdefghijklmnopqrstuvwxyz1234567890!,.-?(): "
zeichenend:
even



text:;-----------------------------------; scroll text

	dc.b	"              wow      and again ....         "
	dc.b	"a really new production of the legendar  group"
	dc.b	" called :     the supply team       first we "
	dc.b	"over to the credits for this intro :         "
	dc.b	"the coding and graphics are allready done by "
	dc.b	" chess       the really cool muzak was made by "
	dc.b	" the allmighty sound - wizard himself :   ram"
	dc.b	"bones!     . . . . .    now we turn left to "
	dc.b	"the greetings :  i only greet some very cool "
	dc.b	"contacts from me :         mac guyver of genesis"
	dc.b	"projects beeing fast and cool , tac - for sending "
	dc.b	"fast back  ,  syndicate of the beasty boys - for "
	dc.b	"beeing fast and mega cool  ,  exizus - thanx for"
	dc.b	" nice postcard     ......     now some special "
	dc.b	"greetings to other the members of the supply"
	dc.b	" team  :   tsn - the oldest and a really cool "
	dc.b	"member  ,  hagar - the ultimate swapper of tst "
	dc.b	"and a very cool guy , too  , rambones - the old"
	dc.b	" 64 er swapper and also cool compy freaker , "
	dc.b	" kaze - allready the best coder on 64 er and "
	dc.b	" perhaps soon on amiga, too ??   ,  remo - the "
	dc.b	" second german guy in tst , he is the last "
	dc.b	" programmer on the old 64   !!      hope i hear "
	dc.b	" from you all soon !!    here is flying my adress"
	dc.b	" to you   :      chess of the supply team - "
	dc.b	" plk 132824 c   -   2350 neumuenster   -  germany "
	dc.b	"  so that is all for now   please press one of "
	dc.b	"both .... ya now ??     . . . . . . . . . . .  "
	dc.b	"                                              " 
	dc.b	0,0
		

even
geschw1:	dc.w	$4000
geschw2:	dc.w	$4000
geschw3:	dc.w	$4000
geschw4:	dc.w	$4000



;				sound
soundstart:
	bsr.s	start_muzak
	rts

soundstop:
	bsr.L	stop_muzak
	moveq	#0,d0
	rts

start_muzak:
	move.l	#data,muzakoffset	;** get offset

init0:	move.l	muzakoffset,a0		;** get highest used pattern
	add.l	#472,a0
	move.l	#$80,d0
	clr.l	d1
init1:	move.l	d1,d2
	subq.w	#1,d0
init2:	move.b	(a0)+,d1
	cmp.b	d2,d1
	bgt.s	init1
	dbf	d0,init2
	addq.b	#1,d2

init3:	move.l	muzakoffset,a0		;** calc samplepointers
	lea	pointers(pc),a1
	lsl.l	#8,d2
	lsl.l	#2,d2
	add.l	#600,d2
	add.l	a0,d2
	moveq	#14,d0
init4:	move.l	d2,(a1)+
	clr.l	d1
	move.w	42(a0),d1
	lsl.l	#1,d1
	add.l	d1,d2
	add.l	#30,a0
	dbf	d0,init4

init5:	clr.w	$dff0a8			;** clear used values
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8
	clr.w	timpos
	clr.l	trkpos
	clr.l	patpos

init6:	move.l	muzakoffset,a0		;** initialize timer irq
	move.b	470(a0),numpat+1	;number of patterns
	rts

stop_muzak:
	move.l	lev3save+2,$6c.w
	clr.w	$dff0a8
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8
	move.w	#$f,$dff096
	rts

lev3interrupt:
	bsr.s	replay_muzak
lev3save:
	jmp	$0

replay_muzak:
	movem.l	d0-d7/a0-a6,-(a7)
	addq.w	#1,timpos
speed:	cmp.w	#6,timpos
	beq.L	replaystep

chaneleffects:				;** seek effects
	lea	datach0(pc),a6
	tst.b	3(a6)
	beq.s	ceff1
	lea	$dff0a0,a5
	bsr.s	ceff5
ceff1:	lea	datach1(pc),a6
	tst.b	3(a6)
	beq.s	ceff2
	lea	$dff0b0,a5
	bsr.s	ceff5
ceff2:	lea	datach2(pc),a6
	tst.b	3(a6)
	beq.s	ceff3
	lea	$dff0c0,a5
	bsr.s	ceff5
ceff3:	lea	datach3(pc),a6
	tst.b	3(a6)
	beq.s	ceff4
	lea	$dff0d0,a5
	bsr.s	ceff5
ceff4:	movem.l	(a7)+,d0-d7/a0-a6
	rts

ceff5:	move.b	2(a6),d0		;room for some more
	and.b	#$f,d0			;implementations below
	tst.b	d0
	beq.s	arpreggiato
	cmp.b	#1,d0
	beq.L	pitchup
	cmp.b	#2,d0
	beq.L	pitchdown
	cmp.b	#12,d0
	beq.L	setvol
	cmp.b	#14,d0
	beq.L	setfilt
	cmp.b	#15,d0
	beq.L	setspeed
	rts

arpreggiato:				;** spread by time
	cmp.w	#1,timpos
	beq.s	arp1
	cmp.w	#2,timpos
	beq.s	arp2
	cmp.w	#3,timpos
	beq.s	arp3
	cmp.w	#4,timpos
	beq.s	arp1
	cmp.w	#5,timpos
	beq.s	arp2
	rts

arp1:	clr.l	d0			;** get higher note-values
	move.b	3(a6),d0		;   or play original
	lsr.b	#4,d0
	bra.s	arp4
arp2:	clr.l	d0
	move.b	3(a6),d0
	and.b	#$f,d0
	bra.s	arp4
arp3:	move.w	16(a6),d2
	bra.s	arp6
arp4:	lsl.w	#1,d0
	clr.l	d1
	move.w	16(a6),d1
	lea	notetable,a0
arp5:	move.w	(a0,d0.w),d2
	cmp.w	(a0),d1
	beq.s	arp6
	addq.l	#2,a0
	bra.s	arp5
arp6:	move.w	d2,6(a5)
	rts

pitchdown:
	bsr.s	newrou
	clr.l	d0
	move.b	3(a6),d0
	and.b	#$f,d0
	add.w	d0,(a4)
	cmp.w	#$358,(a4)
	bmi.s	ok1
	move.w	#$358,(a4)
ok1:	move.w	(a4),6(a5)
	rts

pitchup:bsr.s	newrou
	clr.l	d0
	move.b	3(a6),d0
	and.b	#$f,d0
	sub.w	d0,(a4)
	cmp.w	#$71,(a4)
	bpl.s	ok2
	move.w	#$71,(a4)
ok2:	move.w	(a4),6(a5)
	rts

setvol:	move.b	3(a6),8(a5)
	rts

setfilt:move.b	3(a6),d0
	and.b	#1,d0
	lsl.b	#1,d0
	and.b	#$fd,$bfe001
	or.b	d0,$bfe001
	rts

setspeed:
	clr.l	d0
	move.b	3(a6),d0
	and.b	#$f,d0
	move.w	d0,speed+2
	rts

newrou:	cmp.l	#datach0,a6
	bne.s	next1
	lea	voi1(pc),a4
	rts
next1:	cmp.l	#datach1,a6
	bne.s	next2
	lea	voi2(pc),a4
	rts
next2:	cmp.l	#datach2,a6
	bne.s	next3
	lea	voi3(pc),a4
	rts
next3:	lea	voi4(pc),a4
	rts

replaystep:				;** work next pattern-step
	clr.w	timpos
	move.l	muzakoffset,a0
	move.l	a0,a3
	add.l	#12,a3			;ptr to soundprefs
	move.l	a0,a2
	add.l	#472,a2			;ptr to pattern-table
	add.l	#600,a0			;ptr to first pattern
	clr.l	d1
	move.l	trkpos,d0		;get ptr to current pattern
	move.b	(a2,d0),d1
	lsl.l	#8,d1
	lsl.l	#2,d1
	add.l	patpos,d1		;get ptr to current step
	clr.w	enbits
	lea	$dff0a0,a5		;chanel 0
	lea	datach0(pc),a6
	bsr.L	chanelhandler
	lea	$dff0b0,a5		;chanel 1
	lea	datach1(pc),a6
	bsr.L	chanelhandler
	lea	$dff0c0,a5		;chanel 2
	lea	datach2(pc),a6
	bsr.L	chanelhandler
	lea	$dff0d0,a5		;chanel 3
	lea	datach3(pc),a6
	bsr.L	chanelhandler
	move.w	#400,d0			;** wait a while and set len
rep1:	dbf	d0,rep1			;   of oneshot to 1 word
	move.w	#$8000,d0
	or.w	enbits,d0
	move.w	d0,$dff096
	cmp.w	#1,datach0+14
	bne.s	rep2
	clr.w	datach0+14
	move.w	#1,$dff0a4
rep2:	cmp.w	#1,datach1+14
	bne.s	rep3
	clr.w	datach1+14
	move.w	#1,$dff0b4
rep3:	cmp.w	#1,datach2+14
	bne.s	rep4
	clr.w	datach2+14
	move.w	#1,$dff0c4
rep4:	cmp.w	#1,datach3+14
	bne.s	rep5
	clr.w	datach3+14
	move.w	#1,$dff0d4

rep5:	add.l	#16,patpos		;next step
	cmp.l	#64*16,patpos		;pattern finished ?
	bne.s	rep6
	clr.l	patpos
	addq.l	#1,trkpos		;next pattern in table
	clr.l	d0
	move.w	numpat,d0
	cmp.l	trkpos,d0		;song finished ?
	bne.s	rep6
	clr.l	trkpos
rep6:	movem.l	(a7)+,d0-d7/a0-a6
	rts

chanelhandler:
	move.l	(a0,d1.l),(a6)		;get period & action-word
	addq.l	#4,d1			;point to next chanel
	clr.l	d2
	move.b	2(a6),d2		;get nibble for soundnumber
	lsr.b	#4,d2
	beq.s	chan2			;no soundchange !
	move.l	d2,d4			;** calc ptr to sample
	lsl.l	#2,d2
	mulu	#30,d4
	lea	pointers-4(pc),a1
	move.l	(a1,d2.l),4(a6)		;store sample-address
	move.w	(a3,d4.l),8(a6)		;store sample-len in words
	move.w	2(a3,d4.l),18(a6)	;store sample-volume

	move.l	d0,-(a7)
	move.b	2(a6),d0
	and.b	#$f,d0
	cmp.b	#$c,d0
	bne.s	ok3
	move.b	3(a6),8(a5)
	bra.s	ok4
ok3:	move.w	2(a3,d4.l),8(a5)	;change chanel-volume
ok4:	move.l	(a7)+,d0

	clr.l	d3
	move.w	4(a3,d4),d3		;** calc repeatstart
	add.l	4(a6),d3
	move.l	d3,10(a6)		;store repeatstart
	move.w	6(a3,d4),14(a6)		;store repeatlength
	cmp.w	#1,14(a6)
	beq.s	chan2			;no sustainsound !
	move.l	10(a6),4(a6)		;repstart  = sndstart
	move.w	6(a3,d4),8(a6)		;replength = sndlength
chan2:	tst.w	(a6)
	beq.s	chan4			;no new note set !
	move.w	22(a6),$dff096		;clear dma
	tst.w	14(a6)
	bne.s	chan3			;no oneshot-sample
	move.w	#1,14(a6)		;allow resume (later)
chan3:	bsr.L	newrou
	move.w	(a6),(a4)
	move.w	(a6),16(a6)		;save note for effect
	move.l	4(a6),0(a5)		;set samplestart
	move.w	8(a6),4(a5)		;set samplelength
	move.w	(a6),6(a5)		;set period
	move.w	22(a6),d0
	or.w	d0,enbits		;store dma-bit
	move.w	18(a6),20(a6)		;volume trigger
chan4:	rts

datach0:	blk.w	11,0
		dc.w	1
datach1:	blk.w	11,0
		dc.w	2
datach2:	blk.w	11,0
		dc.w	4
datach3:	blk.w	11,0
		dc.w	8
voi1:		dc.w	0
voi2:		dc.w	0
voi3:		dc.w	0
voi4:		dc.w	0
pointers:	blk.l	15,0
notetable:	dc.w	856,808,762,720,678,640,604,570
		dc.w	538,508,480,453,428,404,381,360
		dc.w	339,320,302,285,269,254,240,226  
		dc.w	214,202,190,180,170,160,151,143
		dc.w	135,127,120,113,000
muzakoffset:	dc.l	0
trkpos:		dc.l	0
patpos:		dc.l	0
numpat:		dc.w	0
enbits:		dc.w	0
timpos:		dc.w	0
	

; ---- the ende ----
even



wait:
	btst		#6,$bfe001		; left mousebuttom ???
	bne.s		wait

	jsr	stop_muzak

	move.l	#$22f8,$dff080
	clr.w	$dff088

	move.w		#$4000,$dff09a
	move.l		oldvector,$6c
	move.w		#$c000,$dff09a


movem.l		(a7)+,d0-d7/a0-a6
rts

;---------------------------------------------------------------------
newcopper:				; copperliste

	dc.w	$0009,$fffe
	dc.w	$0180,$0000
	dc.w	$0120
spriteh:dc.w	$0000
	dc.w	$0122
spritel:dc.w	$0000
	dc.w	$0124,$0000,$0126,$03f0	; nicht benutze sprites
	dc.w	$0128,$0000,$012a,$03f0	; ausschalten
	dc.w	$012c,$0000,$012e,$03f0
	dc.w	$0130,$0000,$0132,$03f0
	dc.w	$0134,$0000,$0136,$03f0
	dc.w	$0138,$0000,$013a,$03f0
	dc.w	$013c,$0000,$013e,$03f0
;
piccol:
	blk.w	64,0		; farben fuer die graphic
;
	dc.w	$01a2,$0fff
	dc.w	$008e,$2971
	dc.w	$0090,$29c9
	dc.w	$0092,$0030
	dc.w	$0094,$00d8
	dc.w	$0108,$0008
	dc.w	$010a,$0008
	dc.w	$0104,$0003
;
	dc.w	$00e0		
hi1:	dc.w	$0000,$00e2		; bitplane1 hi
lo1:	dc.w	$0000,$00e4		; bitplane1 lo
hi2:	dc.w	$0000,$00e6		; bitplane2 hi
lo2:	dc.w	$0000,$00e8		; bitplane2 lo
hi3:	dc.w	$0000,$00ea		; bitplane3 hi
lo3:	dc.w	$0000,$00ec		; bitplane3 lo
hi4:	dc.w	$0000,$00ee		; bitplane4 hi
lo4:	dc.w	$0000,$00f0		; bitplane4 lo
hi5:	dc.w	$0000,$00f2		; bitplnae5 hi
lo5:	dc.w	$0000			; bitplane5 lo

	dc.w	$0100,%0101000000000000
;
addcop:
blk.w	960,0				; speicher fuer 20 farben
dc.w	$0180,$0000
dc.w	$0180,$0000
;
	dc.w	$a109,$fffe
	dc.w	$0180,$0000
	dc.w	$0182,$0003
	dc.w	$0102,$0000
	
colflash:
	blk.w	60,0
	
	dc.w	$0180,$0000
	dc.w	$0180,$0000
	dc.w	$ed09,$fffe
	dc.w	$0180,$0000
	dc.w	$0100,%0100000000000000
	dc.w	$0102
roller:	dc.w	$0000

;
scrcol:
	blk.w	32,0			; colours fuer scroll
	dc.w	$0180,$0000
	dc.w	$0180,$0000
	dc.w	$ff09,$fffe
scrflash:
	blk.w	720,0

;
dc.w $ffff,$fffe			;copper end
;--------------------------------------------------------------------
oldvector:
dc.l	0
even
blk.w	20,0

flashtab:		; farben fuer den color flash
dc.w	$0111,$0222,$0333,$0444,$0555,$0666,$0777,$0888
dc.w	$0999,$0aaa,$0bbb,$0ccc,$0ddd,$0eee,$0fff,$0eee
dc.w	$0ddd,$0ccc,$0bbb,$0aaa
dc.w	$0999,$0888,$0777,$0666,$0555,$0444,$0333,$0222
dc.w	$0111,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0011,$0022,$0033,$0044,$0055,$0066,$0077,$0088
dc.w	$0099,$00aa,$00bb,$00cc					; 80
dc.w	$00dd,$00ee,$00ff,$00ee,$00dd,$00cc,$00bb,$00aa
dc.w	$0099,$0088,$0077,$0066,$0055,$0044,$0033,$0022
dc.w	$0011,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0006,$0008,$000a,$000c,$000e,$000c,$000a,$0008
dc.w	$0006,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
flashtabend:

wavetab:		; daten fuer die welle
dc.w	$0088,$0099,$00aa,$00bb,$00cc,$00cc,$00dd,$00dd
dc.w	$00ee,$00ee,$00ee,$00ee,$00dd,$00dd,$00cc,$00cc
dc.w	$00bb,$00aa,$0099,$0088
dc.w	$0077,$0066,$0055,$0044,$0033,$0033,$0022,$0022
dc.w	$0011,$0011,$0011,$0011,$0022,$0022,$0033,$0033
dc.w	$0044,$0055,$0066,$0077
dc.w	$0088,$0099,$00aa,$00bb,$00cc,$00cc,$00dd,$00dd
dc.w	$00ee,$00ee,$00ee,$00ee,$00dd,$00dd,$00cc,$00cc
dc.w	$00bb,$00aa,$0099,$0088
dc.w	$0077,$0066,$0055,$0044,$0033,$0033,$0022,$0022
dc.w	$0011,$0011,$0011,$0011,$0022,$0022,$0033,$0033
dc.w	$0044,$0055,$0066,$0077
dc.w	$0088,$0099,$00aa,$00bb,$00cc,$00cc,$00dd,$00dd
dc.w	$00ee,$00ee,$00ee,$00ee,$00dd,$00dd,$00cc,$00cc
dc.w	$00bb,$00aa,$0099,$0088
dc.w	$0077,$0066,$0055,$0044,$0033,$0033,$0022,$0022
dc.w	$0011,$0011,$0011,$0011,$0022,$0022,$0033,$0033
dc.w	$0044,$0055,$0066,$0077
dc.w	$0088,$0099,$00aa,$00bb,$00cc,$00cc,$00dd,$00dd
dc.w	$00ee,$00ee,$00ee,$00ee,$00dd,$00dd,$00cc,$00cc
dc.w	$00bb,$00aa,$0099,$0088
dc.w	$0077,$0066,$0055,$0044,$0033,$0033,$0022,$0022
dc.w	$0011,$0011,$0011,$0011,$0022,$0022,$0033,$0033
dc.w	$0044,$0055,$0066,$0077,$0077
waveend:
even
scrflashcol:
	blk.w	11,0
walze1:						; colourwalze 1
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0111
	dc.w	$0222,$0333,$0444,$0555,$0666,$0777,$0888,$0999
	dc.w	$0aaa,$0bbb,$0ccc,$0ddd,$0eee,$0fff,$0fff,$0eee
	dc.w	$0ddd,$0ccc,$0bbb,$0aaa,$0999,$0888,$0777,$0666
	dc.w	$0555,$0444,$0333,$0222,$0111,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000
walze1end:
;
	blk.w	13,0
walze2:
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$0002,$0003,$0004,$0005,$0006,$0007,$0008,$0009
	dc.w	$000a,$000b,$000c,$000d,$000e,$000f,$000f,$000e
	dc.w	$000d,$000c,$000b,$000a,$0009,$0008,$0007,$0006
	dc.w	$0005,$0004,$0003,$0002,$0001,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000
walze2end:
;
	blk.w	12,0
walze3:		; walzen fuer verticale raster
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0001
	dc.w	$0002,$0003,$0004,$0005,$0006,$0007,$0008,$0009
	dc.w	$000a,$000b,$000c,$000d,$000e,$000f,$000f,$000e
	dc.w	$000d,$000c,$000b,$000a,$0009,$0008,$0007,$0006
	dc.w	$0005,$0004,$0003,$0002,$0001,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000
walze3end:
;
	blk.w	13,0
walze4:
	dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0111
	dc.w	$0222,$0333,$0444,$0555,$0666,$0777,$0888,$0999
	dc.w	$0aaa,$0bbb,$0ccc,$0ddd,$0eee,$0fff,$0fff,$0eee
	dc.w	$0ddd,$0ccc,$0bbb,$0aaa,$0999,$0888,$0777,$0666
	dc.w	$0555,$0444,$0333,$0222,$0111,$0000,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$0000
walze4end:
;
	blk.w	12,0
walze5end:
	dc.w	$0000
	blk.w	300,0

scrollfarben:				; farben fuer den scroll
	dc.w	$0000,$0eca,$0001,$0003,$0005,$0007,$0009,$000b
	dc.w	$000d,$000f,$0666,$0999,$0ccc,$0f70,$0fb0,$0ff0


sprite1:		; sprite mit punkten fuer sterneffekt
dc.b	$40,$90,$e0,$00
dc.w	$0000,$0000,$0000,$0000,$2000,$0000,$2000,$2000,$0400,$0000
dc.w	$0000,$0000,$0008,$0000,$0000,$0000,$0180,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0200,$0000,$0020,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0040,$0000,$0400,$0000,$0000,$0000
dc.w	$0000,$0000,$0020,$0000,$0000,$0000,$2000,$0000,$0010,$0000
dc.w	$0000,$0000,$0800,$0000,$0010,$0000,$0000,$0000,$0000,$0000
dc.w	$1008,$0000,$0018,$0000,$0004,$0000,$0080,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0400,$0000
dc.w	$0010,$0000,$0000,$0000,$3000,$0000,$0000,$0000,$0000,$0000
dc.w	$0010,$0000,$0010,$0000,$0000,$0000,$2200,$0000,$0000,$0000
dc.w	$0000,$0000,$0040,$0000,$0004,$0000,$0004,$0000,$0000,$0000
dc.w	$0180,$0000,$0000,$0000,$1000,$0000,$0020,$0000,$0000,$0000
dc.w	$0200,$0000,$0000,$0000,$0000,$0000,$0080,$0000,$0004,$0000
dc.w	$3000,$0000,$0000,$0000,$0040,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$2080,$0000,$0000,$0000,$0000,$0000,$0002,$0000
dc.w	$0006,$0000,$0000,$0000,$0200,$0000,$0000,$0000,$0000,$0000
dc.w 	$2000,$0000,$0000,$0000,$0010,$0000,$0000,$0000,$0100,$0000
dc.w	$0000,$0000,$1000,$0000,$0040,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$3040,$0000,$0008,$0000,$0000,$0000,$8000,$0000
dc.w	$0800,$0000,$0000,$0000,$0010,$0000,$4200,$0000,$0000,$0000
dc.w	$0008,$0000,$0000,$0000,$6040,$0000,$0000,$0000,$0040,$0000
dc.w	$0008,$0000,$0800,$0000,$1800,$0000,$0000,$0000,$0008,$0000
dc.w	$0040,$0000,$0000,$0000,$2000,$0000,$0208,$0000,$0000,$0000
dc.w	$0000,$0000,$0400,$0000,$0000,$0000,$0020,$0000,$0000,$0000
dc.w	$2000,$0000,$0000,$0000,$0008,$0000,$0400,$0000,$0000,$0000
dc.w	$0004,$0000,$0000,$0000,$2000,$0000,$0020,$0000,$0000,$0000
dc.w	$0402,$0000,$0000,$0000,$0800,$0000,$0000,$0000,$0010,$0000
dc.w	$0800,$0000,$0000,$0000,$0000,$0000,$0820,$0000,$0020,$0000
dc.w	$4000,$0000,$4100,$0000,$0000,$0000,$0000,$0000,$1000,$0000
dc.w	$0000,$0000,$0084,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$0100,$0000,$0000,$0000,$0000,$0000,$2008,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0020,$0000,$0000,$0000
dc.w	$1000,$0000,$0000,$0000,$0000,$0000,$1000,$0000,$0020,$0000
dc.w	$0000,$0000,$0000,$0000,$0008,$0000,$0400,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0010,$0000,$0000,$0000
dc.w	$1000,$0000,$0000,$0000,$0080,$0000,$0000,$0000,$0000,$0000
dc.w	$0008,$0000,$0600,$0000,$0000,$0000,$4000,$0000,$0000,$0000
dc.w	$0020,$0000,$0000,$0000,$0000,$0000,$0404,$0000,$0000,$0000
dc.w	$0000,$0000,$2000,$0000,$0000,$0000,$0010,$0000,$0000,$0000
dc.w	$0400,$0000,$0000,$0000,$0000,$0000,$0030,$0000,$0000,$0000
dc.w	$0000,$0000,$0000,$0000,$0000,$0000,$0008,$0000,$0000,$0000
dc.w	$1000,$0000,$0000,$0000,$0000,$0000,$0000,$0000,$0800,$0000
dc.w	$0000,$0000,$0020,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w	$0000,$0000,$3000,$0000,$0000,$0000,$0000,$0000,$0100,$0000
dc.w	$0008,$0000,$0000,$0000,$0000,$0000,$2000,$0000,$0000,$0000
dc.w	$0000,$0000,$0020,$0000,$0000,$0000,$0800,$0000,$0000,$0000
dc.w	$0100,$0000,$0008,$0000,$0000,$0000,$0000,$0000,$0204,$0000
dc.w	$0000,$0000,$2000,$0000,$0000,$0000,$0000,$0000,$0004,$0000
dc.w	$0000,$0000,$0000,$0000,$0400,$0000,$0000,$0000,$0000,$0000


dc.b	$00,00
sprite1end:

;------------------------------------------ sonstige daten
even
bitplane1:
	blk.b	10192,0
bitplane11:				; scroll bitplane 1
	blk.b	3120,0
bitplane2:
	blk.b	10192,0
bitplane22:				; scroll bitplane 2
	blk.b	3120,0
bitplane3:
	blk.b	10192,0
bitplane33:				; scroll bitplane 3
	blk.b	3120,0
bitplane4:
	blk.b	10192,0
bitplane44:				; scroll bitplane 4
	blk.b	3120,0
bitplane5:
	blk.b	13312,0
bildfarben:
	blk.w	32,0		; farben fuer die graphic
				; legt iff - convert hierhin
charset:
	blk.b	55296,0		; zeichensatz reservieren
data:
	blk.b	57112,0		; soundtracker module laenge

imer:	dc.w	$0000
END
