;:poke56,112:clr
;:sys36864
	;.opt oo
	*= $7000
tmp	=2
tmp2	=4
point	=51192
u	=53000
l	=u+30
rt	=l+30
vo	=rt+30
	jmp game
feldt	.byte "\x1d\x1d\x9bNPPONPPONPPONPPONPPONPPO\x1a"
	.byte "\x1d\x1d\xb1  Q\xb1  Q\xb1  Q\xb1  Q\xb1  Q\xb1  Q\x1a"
	.byte "\x1d\x1d\xb1  Q\xb1  Q\xb1  Q\xb1  Q\xb1  Q\xb1  Q\x1a"
	.byte "\x1d\x1d\xae\xb0\xb0\xaf\xae\xb0\xb0\xaf\xae\xb0\xb0\xaf\xae\xb0\xb0\xaf\xae\xb0\xb0\xaf\xae\xb0\xb0\xaf\x1a\x03"
onefeld	.byte "NPPO\x11\x9d\x9d\x9d\x9d\xb1\x1d\x1dQ\x11\x9d\x9d\x9d\x9d\xb1\x1d\x1dQ"
	.byte "\x11\x9d\x9d\x9d\x9d\xae\xb0\xb0\xaf\x9d\x9d\x9d\x9d\x91\x91\x91\x03"
bedien	.byte "\x13\x11\x11\x11"
	.byte "\x19\x9bNPPPPPPPPPO\x1a"
	.byte "\x19\xb1\x05U\x90 quit   \x9bQ\x1a"
	.byte "\x19\xb1         Q\x1a"
	.byte "\x19\xb1\x05U\x90 restart\x9bQ\x1a"
	.byte "\x19\xb1    \x60    Q\x1a"
	.byte "\x19\xb1\x05U\x90 help   \x9bQ\x1a"
	.byte "\x19\xae\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xaf\x1a\x1a\x1a"
	.byte "\x19NPPPPPPPPPO\x1a"
	.byte "\x19\xb1         Q\x1a"
	.byte "\x19\xb1         Q\x1a"
	.byte "\x19\xb1         Q\x1a"
	.byte "\x19\xae\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xaf\x1a\x1a\x1a"
	.byte "\x19NPPPPPPPPPO\x1a"
	.byte "\x19\xb1  \x05chain\x9b  Q\x1a"
	.byte "\x19\xb1\x90reaction\x9b Q\x1a"
	.byte "\x19\xae\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xb0\xaf\x03"
posit	.byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x19\x1dplayer \x03"
suret	.byte "\x9b\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x19\x1dreally ?\x03"
sureo	.byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x19\x1d         \x03"
endt	.byte "\x13\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x11\x19\x1d\x9bwinner\x1a\x19\x1d        \x1a"
	.byte "\x19\x1dplyr.\x03"
title	.byte "\x1a\x93\x08"
	.byte "\x18\x9a BB B B  B  B BB\x1a"
	.byte "\x18B   B B B B B B B\x1a"
	.byte "\x18B   BBB BBB B B B\x1a"
	.byte "\x18B   B B B B B B B\x1a"
	.byte "\x18 BB B B B B B B B\x11\x1a"
	.byte "      BBB BBB  B   BB BBB B BBB BB\x1a"
	.byte "      B B B   B B B    B  B B B B B\x1a"
	.byte "      BBB BB  BBB B    B  B B B B B\x1a"
	.byte "      BB  B   B B B    B  B B B B B\x1a"
	.byte "      B B BBB B B  BB  B  B BBB B B\x11\x11\x1a"
	.byte "\x1eR\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4S\x03"
frame	.byte "\x1a\xb5\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1dT\x03"
cont	.byte "\x1a\xb2\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb3\x91\x91\x91\x91\x91\x91\x91\x91"
	.byte "\x91\x91\x96\x1d\x1d\x1d\x1d\x1dprogrammed by\x60 \x9enikolaus heusler"
	.byte "\x1a\x11\x1d\x1d\x96zwengauerweg 18  \xbe 8000 muenchen 71"
	.byte "\x1a\x11\x1d\x1d\x1d\x99\xa5 nh-120590-arr  \x9ea CD\xa3\xa4\xa3\xa4 program\x1a"
	.byte "\x11\x1d\x1d\x1d\x1d\x05player 1 \xa2           player 2 \x12 \x92"
	.byte "\x13\x11\x11\x11\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\x1d\xb4\xb4\xb4\x1d\xb4\x1d\xb4\x1d\xb4\x1d\xb4\x1d\xb4\x1d\xb4\x1d"
	.byte "\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\x03"
umfra	.byte "R\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4S"
	.byte "\x11\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\xb5\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1dT"
	.byte "\x11\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\xb5\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1d\x1dT"
	.byte "\x11\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\xb2\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb4\xb3\x03"
spiart	.byte "port1port2cbm64"
hortab	.byt 3,24
sidt	.byt 0,0,4,0,12,64,10
	.byt 0,0,0,12,64,12,0
	.byt 0,4,0,12,128,12,0
	.byt 0,50,244,47
plyr	.word 0
selply	brk
key	brk
joy	brk
dran	brk
plx	=247
ply	=248
input	brk
flag	brk
xmerk	brk
expstu	brk
anz	.word 0
wait	brk
kz	brk
lp	brk
lev	brk
anzf	brk
dlay	.word 257
bombt	.word bomb0,bomb1,bomb2,bomb3,bomb4
bomb0	.byte "  \x11\x9d\x9d  \x91\x03"
bomb1	.byte " E\x11\x9d\x9d  \x91\x03"
bomb2	.byte "E \x11\x9d\x9d E\x91\x03"
bomb3	.byte "EE\x11\x9d\x9dE \x91\x03"
bomb4	.byte "EE\x11\x9d\x9dEE\x91\x03"
expot	.word expo0,expo1,expo2,expo3,expo4
expo0	.byte "FG\x11\x9d\x9d\xac\xad\x91\x9d\x9d\x03"
expo1	.byte "HI\x11\x9d\x9d\xa8\xa9\x91\x9d\x9d\x03"
expo2	.byte "JK\x11\x9d\x9d\xaa\xab\x91\x9d\x9d\x03"
expo3	.byte "LM\x11\x9d\x9d\xa6\xa7\x91\x9d\x9d\x03"
expo4	.byte "  \x11\x9d\x9d  \x03"
j	=*
	.byt 2,3,3,3,3,2
	.byt 3,4,4,4,4,3
	.byt 3,4,4,4,4,3
	.byt 3,4,4,4,4,3
	.byt 2,3,3,3,3,2
cd	.byt 1,1,1,1,1,1
	.byt 2,2,2,2,2,2
	.byt 3,3,3,3,3,3
	.byt 4,4,4,4,4,4
	.byt 5,5,5,5,5,5
ca	.byt 1,2,3,4,5,6
	.byt 1,2,3,4,5,6
	.byt 1,2,3,4,5,6
	.byt 1,2,3,4,5,6
	.byt 1,2,3,4,5,6
mult	.byt 0,6,12,18,24
feld	ldx #11
	stx 53280
	inx
	stx 53281
	jsr $e544
	ldx #4
	ldy #0
	sty tmp
	sty tmp2
	lda #216
	sta tmp+1
	lda #196
	sta tmp2+1
fill	lda #11
	sta (tmp),y
	lda #160
	sta (tmp2),y
	iny
	bne fill
	inc tmp+1
	inc tmp2+1
	dex
	bne fill
	lda #5
	sta tmp
	lda #3
	sta 214
	jsr 58732
fd	lda #<feldt
	ldy #>feldt
	jsr strout
	dec tmp
	bne fd
	lda #<bedien
	ldy #>bedien
strout	tax
	lda tmp
	pha
	lda tmp+1
	pha
	stx tmp
	sty tmp+1
st	ldy #0
	lda (tmp),y
	beq stop
	cmp #"\x03"
	beq stop
	cmp #"\x19"
	beq pos
	cmp #"\x1a"
	bne nocr
	lda #13
nocr	cmp #"\x18"
	beq pos2
	jsr $ffd2
next	inc tmp
	bne st
	inc tmp+1
	bne st
pos	lda #28
	.byt $2c
pos2	lda #12
	sta 211
	jmp next
stop	pla
	sta tmp+1
	pla
	sta tmp
	rts
bombout	lda #0
	sta tmp
	lda #4
	sta 214
	jsr 58732
aomb1	lda #0
	sta tmp+1
aomb2	ldx tmp
	lda l,x
	and #15
	sta 646
	lda tmp+1
	asl
	asl
	clc
	adc #3
	sta 211
	lda u,x
	cmp #5
	bcc kl5
	lda #4
kl5	asl
	tax
	lda bombt+1,x
	tay
	lda bombt,x
	jsr strout
	inc tmp
	inc tmp+1
	lda tmp+1
	cmp #6
	bcc aomb2
	lda tmp
	cmp #30
	bcs fini
	lda 214
	clc
	adc #4
	sta 214
	jsr 58732
	jmp aomb1
fini	lda #0
	sta 214
	jmp 58732
irq	jsr irqneu
	jmp $ea31
irqneu	lda input
	bne aktiv
	lda #254
	and 53269
	sta 53269
	rts
aktiv	lda #1
	sta 53269
	lda plx
	cmp #6
	bcs outer
	asl
	asl
	asl
	asl
	asl
	adc #51
	sta 53248
	lda ply
	asl
	asl
	asl
	asl
	asl
	adc #90
	ldx #32
	bne sety
outer	lda #235
	sta 53248
	lda ply
	asl
	asl
	asl
	asl
	adc #84
	ldx #33
sety	sta 53249
	stx point
	rts
mark	lda cd,x
	asl
	asl
	sta 214
	dec 214
	lda ca,x
	asl
	asl
	adc #-2
	sta 211
	jsr 58732
	lda #8
	sta tmp
show1	lda dran
	jsr showx
	lda #15
	jsr showx
	dec tmp
	bne show1
	rts
showx	sta 646
	lda #<onefeld
	ldy #>onefeld
	jsr strout
	ldy #40
	jmp us
game	ldx #$f6
	txs
	jsr 65409
	lda #2
	sta 53264
	lda #51
	sta 53250
	lda #155
	sta 53251
menu	ldx #0
	stx 56576
	stx 53280
	stx 53281
	stx input
setsid	lda #0
	sta 54272,x
	lda sidt,x
	sta 54272,x
	stx 53272
	inx
	cpx #25
	bcc setsid
	lda #196
	sta 648
	lda #<title
	ldy #>title
	jsr strout
	lda #10
	sta tmp
fr	lda #<frame
	ldy #>frame
	jsr strout
	dec tmp
	bne fr
	lda #<cont
	ldy #>cont
	jsr strout
	lda #0
	sta selply
	sta 198
gnd2	lda #22
	sta 214
	lda #5
	sta 211
	jsr 58732
	lda #15
	sta 646
	lda plyr
	asl
	asl
	adc plyr
	tax
	ldy #0
o1	lda spiart,x
	jsr $ffd2
	inx
	iny
	cpy #5
	bcc o1
	lda #26
	sta 211
	lda plyr+1
	asl
	asl
	adc plyr+1
	tax
	ldy #0
o2	lda spiart,x
	jsr $ffd2
	inx
	iny
	cpy #5
	bcc o2
gnd1	ldx selply
	lda hortab,x
	sta 211
	lda #20
	sta 214
	jsr 58732
	lda #5
	sta 646
	lda #<umfra
	ldy #>umfra
	jsr strout
inlop	lda 56320
	and 56321
	cmp joy
	bne rinjoy
	and #31
	cmp #31
	beq rinjoy
	jsr paus
rinjoy	sta joy
	jsr 65508
	sta key
	lda joy
	and #16
	bne nofire
run	jmp losgehts
nofire	lda key
	cmp #13
	beq run
	cmp #"\x9d"
	beq sel1
	lda joy
	and #4
	beq sel1
	lda key
	cmp #"\x1d"
	beq sel2
	lda joy
	and #8
	beq sel2
	lda key
	cmp #"\x11"
	beq updn
	cmp #"\x91"
	beq updn
	lda joy
	and #3
	cmp #3
	beq inlop
	bne updn
sel1	lda #0
	.byt $2c
sel2	lda #1
	pha
	ldx selply
	lda hortab,x
	sta 211
	lda #20
	sta 214
	jsr 58732
	lda #0
	sta 646
	lda #<umfra
	ldy #>umfra
	jsr strout
	pla
	sta selply
	jmp gnd1
updn	ldx selply
	lda plyr,x
	clc
	adc #1
	cmp #3
	bcc set
	lda #0
set	sta plyr,x
	jmp gnd2
paus	ldy #200
	lda #-1
us	dex
	bne us
	dey
	bne us
	rts
losgehts	lda #0
	ldx #29
clrfld	sta u,x
	sta l,x
	dex
	bpl clrfld
	jsr feld
	lda #0
	sta dran
	sei
	lda #<irq
	ldy #>irq
	sta $314
	sty $315
	cli
spiel	lda dran
	sta $d000+39
	sta 646
	lda #<posit
	ldy #>posit
	jsr strout
	lda dran
	tax
	clc
	adc #"1"
	jsr $ffd2
	lda plyr,x
	cmp #2
	bcc mensch
	jsr computer
	jmp ziehe
mensch	jsr human
ziehe	lda dran
	sta l,x
	inc u,x
	jsr bombout
danger	ldx #0
	stx flag
testexp	lda u,x
	cmp j,x
	bcc safe
	jsr explode
	jsr bombout
	inc flag
	ldx xmerk
safe	inx
	cpx #30
	bcc testexp
	lda flag
	beq norm
	jsr testwin
	lda anz
	beq lost1
	lda anz+1
	beq lost2
	bne danger
norm	lda #2
	sta wait
mompls	jsr paus
	dec wait
	bne mompls
	lda dran
	eor #1
	sta dran
	bpl spiel
lost2	lda #"1"
	.byt $2c
lost1	lda #"2"
	pha
	lda #<endt
	ldy #>endt
	jsr strout
	pla
	jsr $ffd2
	sbc #"0"
	eor #1
	sta $d000+40
	lda #0
	sta 198
	lda #34
	sta point+1
	lda #2
	sta 53269
waitrest	lda 56320
	and 56321
	and #16
	beq neu
	lda 198
	beq waitrun
neu	jmp game
waitrun	dec dlay
	bne waitrest
	dec dlay+1
	bne waitrest
	lda #40
	sta dlay+1
	lda point+1
	eor #1
	sta point+1
	bne waitrest
explode	stx xmerk
	lda #0
	sta u,x
	lda #64
	sta 54276
	lda #128
	sta 54290
	lda #65
	sta 54276
	lda #129
	sta 54290
	lda cd,x
	asl
	asl
	sta 214
	lda ca,x
	asl
	asl
	adc #-1
	sta 211
	jsr 58732
	lda dran
	sta 646
	lda #0
expl	sta expstu
	asl
	tax
	lda 1+expot,x
	tay
	lda expot,x
	jsr strout
	jsr paus
	lda expstu
	clc
	adc #1
	cmp #5
	bcc expl
	ldx xmerk
	cpx #6
	bcc l79
	inc u-6,x
	lda dran
	sta l-6,x
l79	cpx #24
	bcs l81
	inc u+6,x
	lda dran
	sta l+6,x
l81	lda ca,x
	cmp #1
	beq l83
	inc u-1,x
	lda dran
	sta l-1,x
l83	lda ca,x
	cmp #6
	beq l85
	inc u+1,x
	lda dran
	sta l+1,x
l85	rts
testwin	ldx #0
	stx anz
	stx anz+1
tw	lda u,x
	beq zero
	lda l,x
	tay
	lda #1
	sta anz,y
zero	inx
	cpx #30
	bcc tw
	rts
human	eor #1
	sta tmp
	lda #>56320
	sta tmp+1
	sta input
	lda #0
	sta plx
	sta ply
getjoy	jsr $eeb3
	ldy #0
	lda (tmp),y
	and #31
	cmp joy
	bne wechsl
	cmp #31
	beq wechsl
	jsr paus
wechsl	sta joy
	and #16
	beq push
	lda joy
	and #4
	bne no4
	lda plx
	beq getjoy
	dec plx
	bpl getjoy
no4	lda joy
	and #8
	bne no8
	lda plx
	cmp #6
	bcs getjoy
	inc plx
	cmp #5
	bcc getjoy
	lda ply
	cmp #3
	bcc getjoy
	lda #2
	sta ply
	bne getjoy
no8	lda joy
	and #1
	bne no1
	lda ply
	beq getjoy
	dec ply
	bpl getjoy
no1	lda joy
	and #2
qjoy	bne getjoy
	lda ply
	ldx plx
	cpx #6
	beq outers
	cmp #4
pruef	bcs getjoy
	inc ply
	bne getjoy
outers	cmp #2
	jmp pruef
push	lda #0
	sta input
	lda plx
	cmp #6
	beq extra
	ldx ply
	adc mult,x
	tax
	nop
	lda u,x
	beq jungfrau
	lda dran
	cmp l,x
	bne quatsch
jungfrau	rts
extra	lda ply
	bne one
	jsr sure
	bne quit
quatsch	inc input
	bne qjoy
quit	jmp 64738
one	cmp #1
	bne two
	jsr sure
	beq quatsch
	jmp game
two	jsr computer
	lda cd,x
	sec
	sbc #1
	sta ply
	lda ca,x
	sec
	sbc #1
	sta plx
	jmp quatsch
sure	lda #<suret
	ldy #>suret
	jsr strout
	lda #0
	sta 198
sjn	jsr 65508
	cmp #"n"
	beq yes
	cmp #"y"
	bne sjn
	lda #-1
yes	php
	lda #<sureo
	ldy #>sureo
	jsr strout
	plp
	rts
gegner	jmp skip
computer	ldx #29
cptst	lda u,x
	beq darf
	lda l,x
	cmp dran
	beq darf
	lda #0
	.byt $2c
darf	lda #-1
	sta rt,x
	dex
	bpl cptst
	ldx #29
main	stx xmerk
	lda rt,x
	beq gegner
	cpx #6
	bcc ts1
	lda u-6,x
	beq ts1
	lda l-6,x
	cmp dran
	beq ts1
	dex
	dex
	dex
	dex
	dex
	dex
	jmp setfg
ts1	lda ca,x
	cmp #1
	beq ts2
	lda u-1,x
	beq ts2
	lda l-1,x
	cmp dran
	beq ts2
	dex
	jmp setfg
ts2	lda ca,x
	cmp #6
	beq ts3
	lda u+1,x
	beq ts3
	lda l+1,x
	cmp dran
	beq ts3
	inx
	bne setfg
ts3	cpx #24
	bcs ts4
	lda u+6,x
	beq ts4
	lda l+6,x
	cmp dran
	beq ts4
	inx
	inx
	inx
	inx
	inx
	inx
setfg	stx kz
	lda #1
	.byt $2c
ts4	lda #0
	sta lp
	ldx xmerk
	lda u,x
	clc
	adc #1
	cmp j,x
	bcc l1080
	lda lp
	beq set1
	ldx kz
	lda u,x
	clc
	adc #1
	cmp j,x
	bcc set2
	bcs set6
l1080	lda j,x
	cmp #2
	bne l1110
	lda lp
	bne l1100
	lda u,x
	beq set4
	bne set1
l1100	cmp u,x
	beq set4
l1110	ldx kz
	lda u,x
	clc
	adc #1
	cmp j,x
	bcs set1
	ldx xmerk
	lda u,x
	clc
	adc #2
	cmp j,x
	bcc l1150
	lda lp
	beq set3
	ldx kz
	lda u,x
	clc
	adc #1
	cmp j,kz
	bcc set5
	bcs set2
l1150	lda lp
	beq set2
set1	lda #1
	.byt $2c
set2	lda #2
	.byt $2c
set3	lda #3
	.byt $2c
set4	lda #4
	.byt $2c
set5	lda #5
	.byt $2c
set6	lda #6
	ldx xmerk
	sta rt,x
skip	dex
	bmi found
	jmp main
found	lda #7
	sta lev
levl	dec lev
	ldx #29
	lda #0
	sta anzf
levlp	lda rt,x
	cmp lev
	bcc pass
	stx xmerk
	txa
	ldx anzf
	inc anzf
	sta vo,x
	ldx xmerk
pass	dex
	bpl levlp
	lda anzf
	beq levl
suchnr	ldx 53266
	cpx anzf
	bcs suchnr
	lda vo,x
	tax
	pha
	jsr mark
	pla
	tax
	rts
