org	$3d000
load	$3d000

Turn72 = $3a000

s:
begin:

move.l	$4,a6
jsr	-132(a6)
bsr	start_muzak

move.b	#$ff,$bfd100	; Switch Motor of 
move.b	#$87,$bfd100	; Drive 0 off !!!

lea	gfxname,a1
jsr	-408(a6)
move.l	d0,gfxbase

lea	$59000,a0	; Beginning of Picture
lea	$40000,a1	; Entpackted Picture
bsr	unpack		; Depack Charset Picture
lea	$5d000,a0
lea	$43b10+[9*$84],a1
bsr	unpack
bsr	setupcol

bsr	setcoppar

lea	turn72+$948,a0
move.l	a0,a1

copyturn:
move.b	-(a0),(a1)+
cmp.l	#turn72,a0
bne	copyturn

move.l	$6c,oldirq+2	; IRQ Adresse retten

move.l	gfxbase,a0
move.l	38(a0),oldclist	; Betriebsystem Copper Adresse retten

move.w	#$8180,$dff096
move.l	#newclist,$dff080;Set New CopperList
move.w	#0,$dff088	; Start Copper

move.l	#newirq,$6c	; Switch on NewIrq

wait:			; Wait for MouseButton
btst	#6,$bfe001
bne	wait

move.l	oldirq+2,$6c	; Old Irq
move.l	oldclist,$dff080; Old CopperList
move.w	#0,$dff088	; Startup Copper

move.l	$4,a6
move.l	gfxbase,a1
jsr	-414(a6)	; Close Graphics.Library

jsr	-138(a6)	; Allow Multitasking
move.w	#$f,$dff096
bsr	stop_muzak
rts			; Back to System

setcoppar:
lea	coppar,a0
lea	setm,a1
move.l	#$8209,d7
move.l	#$000,d5

scp1:
move.w	d7,(a0)+
move.w	#$fffe,(a0)+
move.l	#$1800000,(a0)+
move.l	#$1080058,(a0)+
move.w	#$10a,(a0)+
move.w	(a1)+,(a0)+
add.l	#$100,d7
cmp.l	#$ca09,d7
bne	scp1
rts

calcnewmod:
lea	$43af8-[0*[3*$2c]],a6
lea	adresses,a5
lea	mod1table,a0	; Order of rasters
move.l	#72,d7		; 72 lines
lea	coppar,a2	; Copperadress

move.w	(a0)+,d0	; Get Line No
mulu	#3*$2c,d0	; multiply by 4 Bitplanes Width 40
add.l	a6,d0		; add Startadress
move.l	d0,d6		; Save Adress

move.l	d0,d1		; Copy Adress
swap	d1
move.w	d1,2(a5)	; High
move.w	d0,6(a5)	; Low
add.l	#$2c,d0		; Next Line

move.l	d0,d1
swap	d1
move.w	d1,10(a5)
move.w	d0,14(a5)
add.l	#$2c,d0

move.l	d0,d1
swap	d1
move.w	d1,18(a5)
move.w	d0,22(a5)

clr.l	d0
move.l	#3*$2c,d4
cnmloop:
move.w	(a0)+,d1	; Get next
gtnxt:
mulu	d4,d1
add.l	a6,d1
move.l	d1,d2
sub.l	#$2c,d1
sub.l	d6,d1
move.w	d1,10(a2)
move.l	d2,d6

add.l	#16,a2
sub.w	#1,d7
bne	cnmloop
rts

mod1table:
dc.w	0,1,2,3,4,5,6,7,8,9
dc.w	10,11,12,13,14,15,16,17,18,19
dc.w	20,21,22,23,24,25,26,27,28,29
dc.w	30,31,32,33,34,35,36,37,38,39
dc.w	40,41,42,43,44,45,46,47,48,49
dc.w	50,51,52,53,54,55,56,57,58,59
dc.w	60,61,62,63,64,65,66,67,68,69
dc.w	70,71,72,73,74,75,76,77,78,79
dc.w	80,81,82,83,84,85,86,87,88,89
dc.w	90,91,92,93,94,95,96,97,98,99
dc.w	100,101,102,103,104,105,106,107,108,109
dc.w	110,111,112,113,114,115,116,117,118,119
dc.w	120,121,122,123,124,125,126,127,128,129
dc.w	130,131,132,133,134,135,136,137,138,139
dc.w	140,141,142,143,144,145,146,147,148,149
dc.w	150,151,152,153,154,155,156,157,158,159
dc.w	160,161,162,163,164,165,166,167,168,169
dc.w	170,171,172,173,174,175,176,177,178,179
dc.w	180,181,182,183,184,185,186,187,188,189
dc.w	190,191,192,193,194,195,196,197,198,199

ti_adr:	dc.l	turn72
ti_mo:	dc.w	0
ti_no:	dc.w	0

turnit:
;rts
lea	mod1table,a0
move.l	ti_adr,a1
clr.l	d0
move.l	#71,d6
move.w	ti_mo,d5
bmi	tunit

turnit2:
move.b	(a1)+,d0
move.w	d0,(a0)+
dbf	d6,turnit2

add.w	#1,ti_no
cmp.w	#66,ti_no
bne	turnit3
sub.l	#72,a1
move.w	#$ffff,ti_mo

turnit3:
move.l	a1,ti_adr
move.w	#1,d0
rts

tunit:

tunit2:
move.b	(a1)+,d0
move.w	d0,(a0)+
dbf	d6,tunit2
sub.l	#72*2,a1
sub.w	#1,ti_no
bne	tunit3
add.l	#72,a1
move.w	#1,ti_mo

tunit3:
move.l	a1,ti_adr
rts

ti_count:	dc.w	0

nextchr:
move.w	#31,newchar	; 32 Pixels to Scroll before New Char
move.l	textzeiger,a6	; Get Current Textpointer

nextchr1:
move.b	(a6)+,d0	; Get New Char
bne	nextchr2	; 0 = Ende
move.l	#text,a6	; STartadress
move.l	#jump,jumpzeiger
move.l	#jump2,jumpzeiger2
bra	nextchr1	; Repeat

nextchr2:
cmp.b	#"S",d0
bne	nextchr3
move.b	(a6)+,d0
cmp.b	#$30,d0
beq	speed0
sub.b	#"0",d0
move.b	d0,xshft+1
bra	nextchr1

speed0:
move.b	#$0,speedbtc
bra	nextchr1
nextchr3:
cmp.b	#"H",d0
bne	nextchr4
move.b	(a6)+,d0
sub.b	#"0",d0
move.b	d0,hoch+1
move.b	#$1,hochrunt
bra	nextchr1

nextchr4:
cmp.b	#"R",d0
bne	nextchr6
move.b	(a6)+,d0
sub.b	#"0",d0
move.b	d0,hoch+1
move.b	#$2,hochrunt
bra	nextchr1

nextchr6:
cmp.b	#"N",d0
bne	nextchr7
clr.b	hochrunt
bra	nextchr1

nextchr7:
cmp.b	#"J",d0
bne	nextchr8
move.b	(a6)+,d0
sub.b	#"0",d0
move.b	d0,move
bra	nextchr1

nextchr8:
cmp.b	#"A",d0
bne	nextchr5
move.b	#$af,move
move.l	#jump,jumpzeiger
move.l	#jump2,jumpzeiger2
move.l	#jump3,jumpzeiger3
bra	nextchr1

nextchr5:		; Search Char in String - ASC -
move.l	#50,d1
lea	asc,a0

lprint:
cmp.b	(a0,d1.l),d0
beq	okprint		; Found Char
sub.l	#1,d1
bpl	lprint		; Continue Search
			; Char is not allowed
move.l	a6,textzeiger
rts

okprint:
lsl.l	#2,d1		; No. of Char
add.l	#atable,d1	; + Start of Adress Table
move.l	d1,a2		; Pointer to the Adress of the Char
move.l	(a2),a0		; Get Adress of Char in Graphic
lea	$5502c,a1	; Where to put the Char

move.l	a6,textzeiger	; New TextPointer

return:
move.l	#25,d0		; 32 Lines

loopset:
move.b	(a0),(a1)	; Move  1st Byte of Bitplane 1
move.b	1(a0),1(a1)	; Move  2nd Byte of Bitplane 1
move.b	2(a0),2(a1)	; Move  3rd Byte of Bitplane 1
move.b	3(a0),3(a1)
move.b	$28(a0),$30(a1)	; Move  1st Byte of Bitplane 2
move.b	$29(a0),$31(a1)	; Move  2nd Byte of Bitplane 2
move.b	$2a(a0),$32(a1) ; Move  3rd Byte of Bitplane 2
move.b	$2b(a0),$33(a1)
move.b	$50(a0),$60(a1)	; Move  1st Byte of Bitplane 3
move.b	$51(a0),$61(a1)	; Move  2nd Byte of Bitplane 3
move.b	$52(a0),$62(a1)	; Move	3rd Byte of Bitplane 3
move.b	$53(a0),$63(a1)
add.w	#$78,a0		; Next Line of Source
add.w	#$90,a1		; Next Line of Destination
sub.w	#1,d0		; Continue
bne	loopset		; until all Lines are Copied
rts

a = $40000
b = $40000 + [$28*3*25]
c = $40000 + [$28*3*50]
d = $40000 + [$28*3*75]
e = $40000 + [$28*3*100]

asc:	dc.b	"abcdefghijklmnopqrstuvwxyz!?:;0123456789^(),-.*#+ "
even

atable:	dc.l	a,a+4,a+8,a+12,a+16,a+20,a+24,a+28,a+32,a+36
	dc.l	b,b+4,b+8,b+12,b+16,b+20,b+24,b+28,b+32,b+36
	dc.l	c,c+4,c+8,c+12,c+16,c+20,c+24,c+28,c+32,c+36
	dc.l	d,d+4,d+8,d+12,d+16,d+20,d+24,d+28,d+32,d+36
	dc.l	e,e+4,e+8,e+12,e+16,e+20,e+24,e+28,e+32,e+36
textzeiger:	dc.l	text

newirq:
movem.l	d0-d7/a0-a6,-(a7)

move.w	#$90,d0
cmp.b	#$1,hochrunt
bne	nextm
mulu	hoch,d0
add.w	d0,def1
add.w	d0,def2
add.w	d0,def3

nextm:
cmp.b	#$2,hochrunt
bne	nextm2
mulu	hoch,d0
sub.w	d0,def1
sub.w	d0,def2
sub.w	d0,def3
nextm2:
cmp.b	#$af,move
bne	nextmo
cmp.w	#$5000,def1
bne	nextmoinit
clr.b	move
bra	nextmo

nextmoinit:
move.w	#$90,d0
add.w	d0,def1
add.w	d0,def2
add.w	d0,def3
nextmo:

cmp.b	#$1,move
bne	nextm8
move.l	jumpzeiger,a0
move.w	(a0)+,d0
cmp.w	#$ffff,d0
bne	nextj
lea	jump,a0
move.w	(a0)+,d0
nextj:
add.w	d0,def1
add.w	d0,def2
add.w	d0,def3
move.l	a0,jumpzeiger

nextm8:
cmp.b	#$2,move
bne	nextm9
move.l	jumpzeiger2,a0
move.w	(a0)+,d0
cmp.w	#$ffff,d0
bne	nextj2
lea	jump2,a0
move.w	(a0)+,d0
nextj2:
add.w	d0,def1
add.w	d0,def2
add.w	d0,def3
move.l	a0,jumpzeiger2

nextm9:
cmp.b	#$3,move
bne	nextm3
move.l	jumpzeiger3,a0
move.w	(a0)+,d0
cmp.w	#$ffff,d0
bne	nextj3
lea	jump3,a0
move.w	(a0)+,d0
nextj3:
add.w	d0,def1
add.w	d0,def2
add.w	d0,def3
move.l	a0,jumpzeiger3

nextm3:
tst.b	speedbtc
beq	next
move.l	#$55000,d0
bsr	scroll		; Scrollen ab Adresse in D0
tst.w	newchar		; No of Rows to Scroll
bpl	irq1		; No New Char
bsr	nextchr		; Neues Zeichen
bra	irq1

next:
add.w	#$1,wcounter
cmp.w	#115,wcounter
bne	irq1
move.b	#$1,speedbtc
clr.w	wcounter
irq1:
cmp.b	#$35,$dff006
bne	irq1

cmp.b	#$53,endeq+1
bcs	v2
sub.b	#4,endeq+1
sub.b	#4,endeq+17
sub.b	#4,endeq+33
sub.b	#4,endeq+49
sub.b	#4,endeq+65
sub.b	#4,endeq+81
sub.b	#4,endeq+97
sub.b	#4,endeq+113
sub.b	#4,endeq+129

v2:
cmp.b	#$53,endeq2+1
bcs	v3
sub.b	#4,endeq2+1
sub.b	#4,endeq2+17
sub.b	#4,endeq2+33
sub.b	#4,endeq2+49
sub.b	#4,endeq2+65
sub.b	#4,endeq2+81
sub.b	#4,endeq2+97
sub.b	#4,endeq2+113
sub.b	#4,endeq2+129

v3:
cmp.b	#$53,endeq3+1
bcs	v4
sub.b	#4,endeq3+1
sub.b	#4,endeq3+17
sub.b	#4,endeq3+33
sub.b	#4,endeq3+49
sub.b	#4,endeq3+65
sub.b	#4,endeq3+81
sub.b	#4,endeq3+97
sub.b	#4,endeq3+113
sub.b	#4,endeq3+129
v4:
cmp.b	#$53,endeq4+1
bcs	playit
sub.b	#4,endeq4+1
sub.b	#4,endeq4+17
sub.b	#4,endeq4+33
sub.b	#4,endeq4+49
sub.b	#4,endeq4+65
sub.b	#4,endeq4+81
sub.b	#4,endeq4+97
sub.b	#4,endeq4+113
sub.b	#4,endeq4+129
playit:
bsr	replay_muzak
bsr	calcnewmod
bsr	turnit

btc4:

lea	rasterhupfen,a2
lea	rasterhl,a3
move.l	stabz,a0
move.b	(a0)+,d0

cmp.b	#$1,d0
bne	check2
move.w	#$90,d0
add.w	d0,scrollu1
add.w	d0,scrollu2
add.w	d0,scrollu3
bra	writea0
check2:
cmp.b	#$2,d0
bne	check00
lea	rasterhupfen,a2
lea	rasterhl,a3
move.w	#$90,d0
sub.w	d0,scrollu1
sub.w	d0,scrollu2
sub.w	d0,scrollu3
bra	writea0
check00:
cmp.b	#$00,d0
bne	check03
bra	writea0
check03:
cmp.b	#$3,d0
bne	check04
move.w	#$120,d0
lea	rasterhupfen,a2
lea	rasterhl,a3
add.w	d0,scrollu1
add.w	d0,scrollu2
add.w	d0,scrollu3
bra	writea0
check04:
cmp.b	#$4,d0
bne	checkff
move.w	#$120,d0
lea	rasterhupfen,a2
lea	rasterhl,a3
sub.w	d0,scrollu1
sub.w	d0,scrollu2
sub.w	d0,scrollu3
bra	writea0
checkff:
cmp.b	#$ff,d0
bne	farb1
move.l	#stab,stabz
bra	farb1
writea0:
move.l	a0,stabz

farb1:
endirq:
bsr	stars
movem.l	(sp)+,d0-d7/a0-a6
oldirq:
jmp	$000000

unpack:	add.l	#12,a0
	move.l	4(a0),d0
	add.l	d0,a0
	add.l	#8,a0
	move.l	a0,cmapchunk

iff1:	cmp.l	#$424f4459,(a0)
	beq	iff0
	add.l	#2,a0
	bra	iff1

iff0:	move.l	4(a0),d0	; Anzahl Bytes
	add.l	#1,d0
	and.l	#$fffffffe,d0

	add.l	#8,a0		; Pointer to first Byte

iff4:	clr.l	d2
	move.b	(a0)+,d2
	bmi	iff6

iff5:	move.b	(a0)+,(a1)+
	subi.l	#1,d0
	subi.b	#1,d2
	bpl	iff5
	bra	iff7
	
iff6:	neg.b	d2
	beq	iff7

iff61:	move.b	(a0),(a1)+
	subi.b	#1,d2
	bpl	iff61
	subi.l	#1,d0
	add.l	#1,a0

iff7:	subi.l	#1,d0
	bmi	iff8
	beq	iff8
	bra	iff4


	; Get 8 Colors from IFF Pic and set it to - COLORS1 -

iff8:	move.l	cmapchunk,a0
	move.l	cmap,a1
	add.l	#8,a0
	move.l	#8,d0

cmaploop:
	clr.l	d1
	move.b	(a0),d1
	lsl.w	#4,d1
	move.b	2(a0),d1
	lsr.b	#4,d1
	or.b	1(a0),d1
	move.w	d1,(a1)+
	add.l	#3,a0
	sub.w	#1,d0
	bne	cmaploop
	rts

cmapchunk:
	dc.l	0

cmap:	dc.l	color1

color1:	blk.w	8,0

setupcol:		; Set 8 Colors in - COLOR1 - to CopperList
lea	color1,a0
lea	copcol,a1
move.l	#$01800000,d0
move.l	#8,d1

suc1:
move.w	(a0)+,d0
move.l	d0,(a1)+
add.l	#$00020000,d0
sub.w	#1,d1
bne	suc1
rts

newchar:dc.w	26	; Rows to Scroll
xshft:	dc.w	2	; Speed of Scroll

scroll:	tst.w	xshft	; Speed <>0
	bne	scroll2	; yes
	rts

scroll2:
move.w	xshft,d1
sub.w	d1,newchar	; Rows - Speed = NewRows
move.l	d0,$dff054	; Destination of Blitter
add.l	#2,d0
move.l	d0,$dff050	; Source of Blitter
move.w	#0,$dff064	; No Source Blitter Modulo
move.w	#0,$dff066	; No Destin. Bliiter Modulo
move.l	#$ffffffff,$dff044	; AND Source with $ffffffff 
move.w	#16,d1		; Blitter only can Shift Right the Source 
sub.w	xshft,d1	; so the Source Adress had to be 2 greater
lsl.w	#8,d1		; than the Destination and the Right Xshft
lsl.w	#4,d1		; had to be 16-Speed
or.w	#$09f0,d1	; Set Xshft
move.w	d1,$dff040	; Set Command for Blitter
move.w	#0,$dff042	; No Extended Command
move.w	#$1818,$dff058	; Start Blitter with Size 352*32 Pixels

bltwait:
btst	#6,$dff002	; Wait for Blitter
bne	bltwait
rts			; Blitter is ready

newclist:
dc.w	$008e,$2571,$0090,$34d1,$0092,$0030,$0094,$00d8
dc.w	$0102,$0000,$0104,$0000
dc.w	$120,0,$122,0,$124,0,$126,0,$128,0,$12a,0,$12c,0
dc.w	$12e,0,$130,0,$132,0,$134,0,$136,0,$138,0,$13a,0
dc.w	$13c,0,$13e,0,$196,$fff
dc.w	$00e0,$0005,$00e8,$0005,$00f0,$0005,$00e2,$0000,$00ea
dc.w	$0028,$00f2,$0050
dc.w	$00e4,$0004,$00e6,$d000,$00ec,$0004,$00ee,$d000,$00f4
dc.w	$0004,$00f6,$0000
dc.w	$0180,0,$182,$ffe,$184,$ddc,$186,$bba,$188,$998,$18a,$776
dc.w	$18c,$554,$18e,$332
dc.w	$108,$64,$10a,00
dc.w	$0100,$5400
dc.w	$3011,$fffe,$180,$5
dc.w	$3211,$fffe,$180,$0
dc.w	$3511,$fffe,$00e2
def1:
dc.w	$5000,$00ea
def2:
dc.w	$5030,$00f2
def3:
dc.w	$5060

dc.w	$3911,$fffe,$180,$500
endeq:
dc.w	$3953,$fffe,$180,0
dc.w	$3a11,$fffe,$180,$711
dc.w	$3a53,$fffe,$180,0
dc.w	$3b11,$fffe,$180,$831
dc.w	$3b53,$fffe,$180,0
dc.w	$3c11,$fffe,$180,$a52
dc.w	$3c53,$fffe,$180,0
dc.w	$3d11,$fffe,$180,$b74
dc.w	$3d53,$fffe,$180,0
dc.w	$3e11,$fffe,$180,$a52
dc.w	$3e53,$fffe,$180,0
dc.w	$3f11,$fffe,$180,$831
dc.w	$3f53,$fffe,$180,0
dc.w	$4011,$fffe,$180,$711
dc.w	$4053,$fffe,$180,0
dc.w	$4111,$fffe,$180,$500
dc.w	$4153,$fffe,$180,0
dc.w	$4211,$fffe,$180,0

dc.w	$4911,$fffe,$180,$500
endeq2:
dc.w	$4953,$fffe,$180,0
dc.w	$4a11,$fffe,$180,$711,$4a53,$fffe,$180,0
dc.w	$4b11,$fffe,$180,$831,$4b53,$fffe,$180,0
dc.w	$4c11,$fffe,$180,$a52,$4c53,$fffe,$180,0
dc.w	$4d11,$fffe,$180,$b74,$4d53,$fffe,$180,0
dc.w	$4e11,$fffe,$180,$a52,$4e53,$fffe,$180,0
dc.w	$4f11,$fffe,$180,$831,$4f53,$fffe,$180,0
dc.w	$5011,$fffe,$180,$711,$5053,$fffe,$180,0
dc.w	$5111,$fffe,$180,$500,$5153,$fffe,$180,0
dc.w	$5a11,$fffe,$180,$500
endeq3:
dc.w	$5a53,$fffe,$180,0
dc.w	$5b11,$fffe,$180,$711,$5b53,$fffe,$180,0
dc.w	$5c11,$fffe,$180,$831,$5c53,$fffe,$180,0
dc.w	$5d11,$fffe,$180,$a52,$5d53,$fffe,$180,0
dc.w	$5e11,$fffe,$180,$c74,$5e53,$fffe,$180,0
dc.w	$5f11,$fffe,$180,$a52,$5f53,$fffe,$180,0
dc.w	$6011,$fffe,$180,$831,$6053,$fffe,$180,0
dc.w	$6111,$fffe,$180,$711,$6153,$fffe,$180,0
dc.w	$6211,$fffe,$180,$500,$6253,$fffe,$180,0
dc.w	$6a11,$fffe,$180,$500
endeq4:
dc.w	$6a53,$fffe,$180,$0
dc.w	$6b11,$fffe,$180,$711,$6b53,$fffe,$180,$0
dc.w	$6c11,$fffe,$180,$831,$6c53,$fffe,$180,$0
dc.w	$6d11,$fffe,$180,$a52,$6d53,$fffe,$180,$0
dc.w	$6e11,$fffe,$180,$b74,$6e53,$fffe,$180,$0
dc.w	$6f11,$fffe,$180,$a52,$6f53,$fffe,$180,$0
dc.w	$7011,$fffe,$180,$831,$7053,$fffe,$180,$0
dc.w	$7111,$fffe,$180,$711,$7153,$fffe,$180,$0
dc.w	$7211,$fffe,$180,$500,$7253,$fffe,$180,$0
dc.w	$7c11,$fffe,$180,5
dc.w	$7d11,$fffe,$180,0;,$92,$38,$94,$d0
dc.w	$7e11,$fffe,$108,$64;,$10a,80
dc.w	$00e4,$0004,$00e6,$d000,$00ec,$0004,$00ee,$d000,$00f4
dc.w	$0004,$00f6,$0000
copcol:
blk.l	8,0
dc.w	$8011,$fffe
adresses:
dc.w	$00e0,$0004,$00e2,$3b10-24,$00e8,$0004,$00ea,$3b3c-24
dc.w	$00f0,$0004,$00f2,$3b68-24

coppar:
blk.l	4*72,0
dc.w	$e2,$0,$ea,0,$f2,0,$e0,5,$e8,5,$f0,5
dc.w	$0180,0,$182,$ffe,$184,$ddc,$186,$bba,$188,$998,$18a,$776
dc.w	$18c,$554,$18e,$332
;coppare:
;dc.w	$182,0,$184,0,$186,0,$188,0,$18a,0,$18c,0,$18e,0
dc.w	$ca11,$fffe
dc.w	$00e4,$0004,$00e6,$d000+$2c,$ec,$4,$ee,$d000+$2c
dc.w	$10a,[2*$2c],$108,$64
dc.w	$cb11,$fffe,$10a,0
dc.w	$cc11,$fffe,$10a,[2*$2c]
dc.w	$cd11,$fffe,$10a,0
dc.w	$ce11,$fffe,$10a,[2*$2c]
dc.w	$cf11,$fffe,$10a,0
dc.w	$d011,$fffe,$10a,[3*$2c]
dc.w	$d111,$fffe,$10a,0
dc.w	$d211,$fffe,$10a,[5*$2c]
dc.w	$d311,$fffe,$10a,0
dc.w	$d411,$fffe,$10a,[1*$2c]
dc.w	$d511,$fffe,$10a,0
dc.w	$d611,$fffe,$10a,[4*$2c]
dc.w	$d711,$fffe,$10a,0
dc.w	$d811,$fffe,$10a,[4*$2c]
dc.w	$d911,$fffe,$10a,0
dc.w	$da11,$fffe,$10a,[1*$2c]
dc.w	$db11,$fffe,$10a,0
dc.w	$dc11,$fffe,$10a,[3*$2c]
dc.w	$dd11,$fffe,$10a,0
dc.w	$de11,$fffe,$10a,[2*$2c]
dc.w	$df11,$fffe,$10a,0
dc.w	$e011,$fffe,$e0,$5,$e8,$5,$f0,$5;,$100,$3200
dc.w	$e2
scrollu1:
dc.w	$5000-[21*$90],$ea
scrollu2:
dc.w	$5030-[21*$90],$f2
scrollu3:
dc.w	$5060-[21*$90],$108,$64,$10a,0

dc.w	$ed11,$fffe,$102,$00
;dc.w	$e0,$5,$e8,$5,$f0,$5,$180,$f00
;dc.w	$182,$ffe,$184,$ddc
;dc.w	$186,$bba,$188,$998,$18a,$776,$18c,$554,$18e,$332
dc.w	$ffd9,$fffe,$190,$555,$190,$555
dc.w	$0711,$fffe,$180,$118,$10a,$ffa8
dc.w	$0811,$fffe,$196,$ccf
dc.w	$1011,$fffe,$182,$ddf
dc.w	$184,$bbd,$186,$99b,$188,$779,$18a,$668
dc.w	$18c,$557,$18e,$446
negativerm:
dc.w	$108,$ff44;,$10a,$ff44;,$e2,$5d80,$e6,$5db0,$ea,$5df0
dc.w	$1111,$fffe,$102,$0
dc.w	$1211,$fffe,$102,$0
dc.w	$1311,$fffe,$102,$11,$190,$f00
rasterhupfen:
dc.w	$1411,$fffe,$102,$11,$190,0
dc.w	$1511,$fffe,$102,$22,$190,0
dc.w	$1611,$fffe,$102,$22,$190,0
dc.w	$1711,$fffe,$102,$33,$190,0
dc.w	$1811,$fffe,$102,$33,$190,0
dc.w	$1911,$fffe,$102,$44,$190,0
dc.w	$1a11,$fffe,$102,$44,$190,0
dc.w	$1b11,$fffe,$102,$55,$190,0
dc.w	$1c11,$fffe,$102,$55,$190,0
dc.w	$1d11,$fffe,$102,$66,$190,0
dc.w	$1e11,$fffe,$102,$66,$190,0
dc.w	$1f11,$fffe,$102,$77,$190,0
dc.w	$2011,$fffe,$102,$77,$190,0
dc.w	$2111,$fffe,$102,$88,$190,0
dc.w	$2211,$fffe,$102,$88,$190,0
dc.w	$2311,$fffe,$102,$99,$190,0
dc.w	$2411,$fffe,$102,$99,$190,0
dc.w	$2511,$fffe,$102,$aa
wert190:
dc.w	$190
colors18e:
dc.w	0
dc.w	$2611,$fffe,$102,$aa,$190,0
dc.w	$2711,$fffe,$102,$bb,$190,0
dc.w	$2811,$fffe,$102,$bb,$190,0
dc.w	$2911,$fffe,$102,$cc,$190,0
dc.w	$2a11,$fffe,$102,$cc,$190,0
dc.w	$2b11,$fffe,$102,$dd,$190,0
dc.w	$2c11,$fffe,$102,$dd,$190,0
dc.w	$2d11,$fffe,$102,$ee,$190,0
dc.w	$2e11,$fffe,$102,$ee,$190,0
dc.w	$2f11,$fffe,$102,$ff,$190,0
rasterhl:
dc.w	$3011,$fffe,$102,$ff,$190,0
;dc.w	$4011,$fffe,$108,80,$10a,80
dc.w	$ffff,$fffe
end:

oldclist:
dc.l	0
gfxbase:
dc.l	0
gfxname:
dc.b	"graphics.library",0
even

text:
dc.b	"S4sargon is proud to present you another part for"
dc.b	" this great megademo !!!    "
dc.b	"J1original idea by btc and also improved by btc      "
dc.b	"J0A   J2"
dc.b	"o.k.   this new group consists of some ex-alpha flight"
dc.b	" members !!!       "
dc.b	" so remember :    sargon  S0 J0is the best A!!!   "
dc.b	"  fR1irst Nhellos to all the other sargon members"
dc.b	"H2..N...real greetings are flying later"
dc.b	"...A "
dc.b	"  contact us..."
dc.b	"J0A  J3    write to :    sargon  S0 (don*t write this line)"
dc.b	"    plk073908c S0       S2"
dc.b	"5060 berg.gladbach2 (you got it ???)     J0  S4   A    "
dc.b	"J2and now i will tell you something about this part ...  "
dc.b	"coding ... btc     muzak ... bb     logo by mike of "
dc.b	"sargon ...       i started "
dc.b	"programming this intro at the 8.8.1988 !!!    "
dc.b	"this is my excuse for this lame part     "
dc.b	"this is a long time ago,but i had to fix this again and"
dc.b	" again     first i released a prerelease at the alpha "
dc.b	"flight copy party in bruessel ...    some months later "
dc.b	"i finished it ... and some moths later i begun to turn "
dc.b	"the logo ...   and now we have february     what a shame "
dc.b	"     why this big delay ???     the reason for this "
dc.b	"is because i have to satisfy some girls and some teachers "
dc.b	"    that was a shit work (only satisfieing the teachers"
dc.b	" !!!)        "
dc.b	"and now i*m to lazy too make more blitter commands"
dc.b	" (e.g. for the scrolly ....)         "
dc.b	"i send fuckings to the following persons :   "
dc.b	"porada (from the whole school(i have her in 3 subjects))"
dc.b	"   lindlau (english ....)      roxy (lamer...)     "
dc.b	"and to lee in goslar ... (sodan was 3 weeks old !!!)   "
dc.b	"we send special greetings to : phalanx - alpha flight"
dc.b	" (hi frankie (nice job you did with prophets ag)) -"
dc.b	" deathstar - vortex 42 - world of wonders - red "
dc.b	"sector and to it !!!       these are only the "
dc.b	"best of the best       the real greetings coming later "
dc.b	"i should finish this little part and do the next one "
dc.b	"     o.k.    btc sends best greetings to his friends "
dc.b	"....       bye      watch out for megademo 2     "
dc.b	"A ",0
speedbtc:
dc.b	1
hochrunt:
dc.b	0
move:
dc.b	0
scrollw:
dc.b	0
ef1:
dc.b	0
ef2:
dc.b	0
ef3:
dc.b	0
stripesw:
dc.b	0
even
wcounter:
dc.w	0
;wert1:
;dc.w	$5000
;wert2:
;dc.w	$5030
;wert3:
;dc.w	$5060
hoch:
dc.w	$0001
jump:
dc.w	0,0,0,0,0,0,0,-$90,-$90,-$90,-$90,-$90,-[2*$90],-[2*$90]
dc.w	-[2*$90],-[2*$90],-[3*$90],-[3*$90],-[3*$90],-[4*$90]
dc.w	-[4*$90],-[5*$90],0
dc.w	[5*$90],[4*$90],[4*$90],[3*$90],[3*$90],[3*$90],[2*$90]
dc.w	[2*$90],[2*$90],[2*$90],$90,$90,$90,$90,$90,0,0,0,0,0
dc.w	$ffff
jumpzeiger:
dc.l	jump
jump2:
dc.w	0,0,0,0,-$90,-$90,-[2*$90],-[2*$90],-[2*$90],-[3*$90]
dc.w	-[3*$90]
dc.w	[3*$90],[3*$90],[2*$90],[2*$90],[2*$90],$90,$90
dc.w	0,$ffff
jumpzeiger2:
dc.l	jump2
jump3:
blk.w	3,0
blk.w	3,-$90
blk.w	10,-[2*$90]
blk.w	8,-[2*$90]
blk.w	3,-$90
blk.w	4,0
blk.w	3,$90
blk.w	8,[2*$90]
blk.w	10,[2*$90]
blk.w	3,$90
blk.w	4,0
dc.w	$ffff
jumpzeiger3:
dc.l	jump3
ftab:
dc.w	0,$111,$222,$333,$444,$555,$666,$777,$888,$999,$aaa
dc.w	$bbb,$ccc,$ddd,$eee,$fff,$eef,$ddf,$ccf,$bbf,$ccf,$99f
dc.w	$88f,$77f,$66f,$55f,$44f,$33f,$22f,$11f,$f,$1f,$2f,$3f
dc.w	$4f,$5f,$6f,$7f,$8f,$9f,$af,$bf,$cf,$df,$ef,$ff,$fe,$fd
dc.w	$fc,$fb,$fa,$f9,$f8,$f7,$f6,$f5,$f4,$f3,$f2,$f1,$f0
dc.w	$1f0,$2f0,$3f0,$4f0,$5f0,$6f0,$7f0,$8f0,$9f0,$af0,$bf0
dc.w	$cf0,$df0,$ef0,$ff0,$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80
dc.w	$f70,$f60,$f50,$f40,$f30,$f20,$f10,$f00
dc.w	$e00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500
dc.w	$400,$300,$200,$100
lftab:

ftabu:
dc.w	3,$114,$225,$336,$447,$558,$669,$77a,$88b,$99c,$aad
dc.w	$bbe,$ccf,$ddf,$def,$eef,$eef,$ddf,$ccf,$bbc,$aac,$99c
dc.w	$88c,$77c,$66c,$55c,$44c,$33c,$22c,$11c,$c,$1c,$2c,$3c
dc.w	$4c,$5c,$6c,$7c,$8c,$9c,$ad,$be,$cf,$df,$ef,$ff,$fe,$fe
dc.w	$fd,$fd,$fc,$fb,$fa,$f9,$f8,$f7,$f6,$f5,$f4,$f3,$f2
dc.w	$1f6,$2f6,$3f6,$4f6,$5f6,$6f6,$7f6,$8f6,$9f6,$af6,$bf6
dc.w	$cf6,$df6,$ef6,$ff6,$fe6,$fd6,$fc6,$fb6,$fa6,$f96,$f86
dc.w	$f76,$f66,$f56,$f46,$f36,$f26,$f16,$f06
dc.w	$e06,$e06,$d06,$c06,$b06,$a06,$906,$806,$706,$606,$506
dc.w	$406,$306,$206,$106
lftabu:
stab:
dc.b	1,3,1,0,1,0,1,0,1,0,1
dc.b	0,0,0,0,0,0,0,0,0,0,0
dc.b	2,0,2,0,2,0,2,0,2,4,2
dc.b	$ff
even
stabz:
dc.l	stab

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,a1
	mulu	#1024,d2
	add.l	#600,d2
	add.l	a0,d2
	move.l	#15-1,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:	move.w	#$0,$dff0a8		;** clear used values
	move.w	#$0,$dff0b8
	move.w	#$0,$dff0c8
	move.w	#$0,$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
	move.l	#240,d0
	sub.b	471(a0),d0
	mulu	#122,d0
	move.b	#$0,$bfde00
	move.b	d0,$bfd400
	lsr.w	#8,d0
	move.b	d0,$bfd500
	rts

stop_muzak:
	move.w	#$0,$dff0a8
	move.w	#$0,$dff0b8
	move.w	#$0,$dff0c8
	move.w	#$0,$dff0d8
	move.w	#$f,$dff096
	rts


replay_muzak:
	addq.w	#1,timpos
speed:	cmp.w	#6,timpos
	beq	replaystep
	clr.w	eql

chaneleffects:				;** seek effects
	lea	datach0,a6
	tst.b	3(a6)
	beq.s	ceff1
	lea	$dff0a0,a5
	bsr.s	ceff5
ceff1:	lea	datach1,a6
	tst.b	3(a6)
	beq.s	ceff2
	lea	$dff0b0,a5
	bsr.s	ceff5
ceff2:	lea	datach2,a6
	tst.b	3(a6)
	beq.s	ceff3
	lea	$dff0c0,a5
	bsr.s	ceff5
ceff3:	lea	datach3,a6
	tst.b	3(a6)
	beq.s	ceff4
	lea	$dff0d0,a5
	bsr.s	ceff5
ceff4:	rts

ceff5:	move.b	2(a6),d0		;room for some more
	and.b	#$0f,d0			;implementations below
	tst.b	d0
	beq.s	arpreggiato
	cmp.b	#1,d0
	beq	pitchup
	cmp.b	#2,d0
	beq	pitchdown
	cmp.b	#12,d0
	beq	setvol
	cmp.b	#14,d0
	beq	setfilt
	cmp.b	#15,d0
	beq	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	#$0f,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	newrou
	clr.l	d0
	move.b	3(a6),d0
	and.b	#$0f,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	newrou
	clr.l	d0
	move.b	3(a6),d0
	and.b	#$0f,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	#$01,d0
	asl.b	#$01,d0
	and.b	#$fd,$bfe001
	or.b	d0,$bfe001
	rts

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

newrou:	cmp.l	#datach0,a6
	bne.s	next1		;1.Stimme
	move.b	#$d1,endeq+1
	move.b	#$d1,endeq+17
	move.b	#$d1,endeq+33
	move.b	#$d1,endeq+49
	move.b	#$d1,endeq+65
	move.b	#$d1,endeq+81
	move.b	#$d1,endeq+97
	move.b	#$d1,endeq+113
	move.b	#$d1,endeq+129
	lea	voi1,a4
	rts
next1:	cmp.l	#datach1,a6
	bne.s	next2
	move.b	#$d1,endeq2+1
	move.b	#$d1,endeq2+17
	move.b	#$d1,endeq2+33
	move.b	#$d1,endeq2+49
	move.b	#$d1,endeq2+65
	move.b	#$d1,endeq2+81
	move.b	#$d1,endeq2+97
	move.b	#$d1,endeq2+113
	move.b	#$d1,endeq2+129
	;move.w	#$80,wert1
	lea	voi2,a4
	rts
next2:	cmp.l	#datach2,a6
	bne.s	next3
	move.b	#$d1,endeq3+1
	move.b	#$d1,endeq3+17
	move.b	#$d1,endeq3+33
	move.b	#$d1,endeq3+49
	move.b	#$d1,endeq3+65
	move.b	#$d1,endeq3+81
	move.b	#$d1,endeq3+97
	move.b	#$d1,endeq3+113
	move.b	#$d1,endeq3+129
	;move.w	#$800,wert2
	lea	voi3,a4
	rts
next3:	move.b	#$d1,endeq4+1
	move.b	#$d1,endeq4+17
	move.b	#$d1,endeq4+33
	move.b	#$d1,endeq4+49
	move.b	#$d1,endeq4+65
	move.b	#$d1,endeq4+81
	move.b	#$d1,endeq4+97
	move.b	#$d1,endeq4+113
	move.b	#$d1,endeq4+129
lea	voi4,a4
	rts

replaystep:				;** work next pattern-step
	move.w	#$1,eql
	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
	mulu	#1024,d1
	add.l	patpos,d1		;get ptr to current step
	clr.w	enbits
	lea	$dff0a0,a5		;chanel 0
	lea	datach0,a6
	bsr	chanelhandler
	lea	$dff0b0,a5		;chanel 1
	lea	datach1,a6
	bsr	chanelhandler
	lea	$dff0c0,a5		;chanel 2
	lea	datach2,a6
	bsr	chanelhandler
	lea	$dff0d0,a5		;chanel 3
	lea	datach3,a6
	bsr	chanelhandler
move.l	#400,d0			;** wait a while and set len
rep1:	dbf	d0,rep1			;   of oneshot to 1 word
	move.l	#$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	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	rep6
	clr.l	trkpos
rep6:	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,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	#$0f,d0
	cmp.b	#$0c,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:	cmp.w	#0,(a6)
	beq.s	chan4			;no new note set !
	move.w	22(a6),$dff096		;clear dma
	cmp.w	#0,14(a6)
	bne.s	chan3			;no oneshot-sample
	move.w	#1,14(a6)		;allow resume (later)
chan3:	bsr	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:	dc.w	0,0,0,0,0,0,0,0,0,0,0,1
datach1:	dc.w	0,0,0,0,0,0,0,0,0,0,0,2
datach2:	dc.w	0,0,0,0,0,0,0,0,0,0,0,4
datach3:	dc.w	0,0,0,0,0,0,0,0,0,0,0,8
voi1:		dc.w	0
voi2:		dc.w	0
voi3:		dc.w	0
voi4:		dc.w	0
pointers:	dc.l	0,0,0,0,0,0,0,0,0,0,0,0,0,0,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
lev6save:	dc.l	0
trkpos:		dc.l	0
patpos:		dc.l	0
numpat:		dc.w	0
enbits:		dc.w	0
timpos:		dc.w	0
eql:		dc.w	0
data = $60000
stars:
	lea	starstab,a5
	move.w	#116,d5
	bsr	nextstar
	rts

nextstar:
lea	$4d000,a0
sub.w	#1,d5

nextstar007:
move.w	(a5),d0
move.w	2(a5),d1
move.w	4(a5),d4
add.w	d4,(a5)

mulu	#44,d1
move.w	d1,d7
move.w	d0,d2
lsr.w	#3,d0
add.w	d0,d7
and.w	#7,d2
moveq	#7,d0
sub.w	d2,d0
bclr	d0,(a0,d7.w)

cmp.w	#352,(a5)
bcs	contsp
sub.w	#352,(a5)

contsp:
move.w	(a5),d0
move.w	d0,d2
lsr.w	#3,d0
add.w	d0,d1
and.w	#7,d2
moveq	#7,d0
sub.w	d2,d0
bset	d0,(a0,d1.w)

add.w	#6,a5
dbf	d5,nextstar007
rts


starstab:
dc.w	165,0,5
dc.w	136,1,2
dc.w	154,2,2
dc.w	275,3,1
dc.w	281,4,2
dc.w	153,5,1
dc.w	242,6,3
dc.w	38,7,7
dc.w	289,8,3
dc.w	350,9,1
dc.w	181,10,3
dc.w	157,11,1
dc.w	245,12,5
dc.w	107,13,1
dc.w	185,14,3
dc.w	196,15,1
dc.w	117,16,2
dc.w	337,17,1
dc.w	106,18,2
dc.w	304,19,7
dc.w	3,20,5
dc.w	308,21,1
dc.w	64,22,4
dc.w	180,23,6
dc.w	139,24,4
dc.w	67,25,3
dc.w	11,26,3
dc.w	258,27,4
dc.w	40,28,6
dc.w	109,29,1
dc.w	270,30,2
dc.w	311,31,5
dc.w	143,32,1
dc.w	205,33,7
dc.w	112,34,7
dc.w	37,35,6
dc.w	47,36,6
dc.w	245,37,5
dc.w	275,38,1
dc.w	100,39,7
dc.w	299,40,4
dc.w	196,41,3
dc.w	136,42,5
dc.w	145,43,5
dc.w	189,44,7
dc.w	307,45,4
dc.w	223,46,6
dc.w	183,47,2
dc.w	125,48,5
dc.w	76,49,2
dc.w	250,50,4
dc.w	254,51,2
dc.w	190,52,7
dc.w	69,53,5
dc.w	186,54,2
dc.w	67,55,3
dc.w	154,56,4
dc.w	291,57,2
dc.w	48,58,7
dc.w	204,59,6
dc.w	265,60,2
dc.w	297,61,7
dc.w	79,62,3
dc.w	170,63,6
dc.w	231,64,3
dc.w	326,65,3
dc.w	349,66,2
dc.w	212,67,2
dc.w	263,68,4
dc.w	34,69,2
dc.w	302,70,6
dc.w	254,71,5
dc.w	302,72,2
dc.w	177,73,6
dc.w	175,74,4
dc.w	192,75,7
dc.w	8,76,3
dc.w	93,77,7
dc.w	25,78,7
dc.w	338,79,5
dc.w	337,80,4
dc.w	265,81,2
dc.w	285,82,3
dc.w	277,83,4
dc.w	285,84,5
dc.w	109,85,3
dc.w	178,86,2
dc.w	341,87,1
dc.w	326,88,3
dc.w	147,89,6
dc.w	352,90,7
dc.w	64,91,6
dc.w	179,92,2
dc.w	91,93,4
dc.w	192,94,7
dc.w	325,95,5
dc.w	79,96,5
dc.w	274,97,3
dc.w	48,98,7
dc.w	342,99,6
dc.w	266,100,5
dc.w	42,101,4

dc.w	175,102,1
dc.w	192,103,3
dc.w	8,104,7
dc.w	93,105,2
dc.w	25,106,5
dc.w	338,107,2
dc.w	337,108,6
dc.w	265,109,1
dc.w	285,110,5
dc.w	277,111,7
dc.w	285,112,3
dc.w	109,113,5
dc.w	178,114,7
dc.w	341,115,2
dc.w	47,116,1
allend:
setm:
dc.w	0,44,0,44,0,44,0,0,0,44,0,44,0,44,0,44,88,0,88,0,44,0,44,0,44
dc.w	44,0,88,0,44,0,44,0,88,0,0,0,0,0,0,0,44,44,0,44,0,44,0,44,0,44
dc.w	0,44,0,88,0,0,44,0,44,0,88,0,44,0,88,0,88,0,44,0,88,0,44,0
dc.w	44,0,88,0,44,0,88,0,44,0,88,0
blk.w	50,$2c
blk.w	100,0
