;:sys36864
	*= $c000
	;.opt oo
v	=$d000
a	=$dc00
b	=$dd00
	jmp run
pfeil	.byt   0,  0,  0,  0,  0,  0,  0, 28,  0
	.byt   0, 28,  0,  0,127,  0,  0, 62,  0
	.byt   2, 28, 32,  3,  8, 96, 15,128,248
	.byt  15,193,248, 15,128,248,  3,  8, 96
	.byt   2, 28, 32,  0, 62,  0,  0,127,  0
	.byt   0, 28,  0,  0, 28,  0,  0,  0,  0
	.byt   0,  0,  0,  0,  0,  0,  0,  0,  0
g	.byt 1,2,4,8,16,32,64
gg	.byt 128,64,32,16,8,4,2,1
mask	.byte "\x9e\x12\x1d   user-/cassettenport-fernsteuerung   "
	.byte "\x1d       (c) nikolaus heusler 2.93       "
	.byte "\x9a\x1a    \xb0\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xae"
	.byte "\x1a    \xddpb7\xddpb6\xddpb5\xddpb4\xddpb3\xddpb2\xddpb1\xddpb0\xdd"
	.byte "\x1a    \xab\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xb3"
	.byte "\x1a    \x18\x18\x18\x18\x18\x18\x18\x18\xdd"
	.byte "\x1a    \xab\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xb3"
	.byte "\x1a    \x18\x18\x18\x18\x18\x18\x18\x18\xdd"
	.byte "\x1a    \xad\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xbd\x1a"
	.byte "\x1a        \xb0\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xae"
	.byte "\x1a        \xddpa2\xddsp1\xddsp2\xddc/m\xddc/w\xddc/s\xdd"
	.byte "\x1a        \xab\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xb3"
	.byte "\x1a        \x18\x18\x18\xddaus\xddaus\xddein\xdd"
	.byte "\x1a        \xab\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xb3"
	.byte "\x1a        \x18\x18\x18\x18\x18\x18\xdd"
	.byte "\x1a        \xad\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xbd\x1a"
	.byte "\x1a    \xb0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb2\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xae"
	.byte "\x1a    \xdd ende  \xdd druck \xdd init  \xdd wende \xdd"
	.byte "\x1a    \xab\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xdb\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb3"
	.byte "\x1a    \xdd signalton:    \xdd pa2:          \xdd"
	.byte "\x1a    \xad\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xb1\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xbd"
	brk
eiau	.byte "\x99ein\x1d\x96aus\x1d"
lohi	.byte "\x96 0 \x1d\x99 1 \x1d"
lab	.byt 0,15
norm	.byte "   lamron"
posneg	.byte "hi pullo pul"
stri	.byte "   \xdd"
snd	brk
zei	brk
spa	brk
pa2m	brk
pa2a	brk
irq	=*
	lda 56320
	and #1
	bne noup
	lda v+1
	cmp #87
	bcc noup
	dec v+1
noup	lda 56320
	and #2
	bne nodn
	lda v+1
	cmp #227
	bcs nodn
	inc v+1
nodn	lda 56320
	and #4
	bne nole
	lda v+16
	bne le
	lda v
	cmp #49
	bcc nole
le	lda v
	bne le1
	lda #0
	sta v+16
le1	dec v
nole	lda 56320
	and #8
	bne nori
	lda v+16
	beq ri
	lda v
	cmp #46
	bcs nori
ri	inc v
	bne nori
	lda #1
	sta v+16
nori	lda v+1
	sec
	sbc #85
	lsr
	lsr
	lsr
	lsr
	sta 182
	lda v
	sec
	sbc #48
	pha
	lda v+16
	sbc #0
	sta 6
	pla
	lsr 6
	ror
	lsr
	lsr
	lsr
	lsr
	sta 181
	jmp $ea7e
strout	sta 2
	sty 3
st1	ldx #0
	lda (2,x)
	bne st2
	rts
st2	cmp #"\x1a"
	bne st3
	lda #13
st3	cmp #"\x18"
	beq st4
	jsr $ffd2
	inc 2
	bne st1
	inc 3
	bne st1
st6	inc 2
	bne st1
	inc 3
	bne st1
st4	ldx #3
st5	lda stri,x
	jsr $ffd2
	dex
	bpl st5
	bmi st6
run	jsr 65418
	jsr 65409
	lda #0
	sta $d020
	sta $d021
	sei
	lda #0
	sta pa2m
	sta b+3
	lda b+2
	and #251
	sta b+2
	lda #1
	sta snd
	sta v+21
	lda #11
	sta 2040
	ldx #63
d	lda pfeil,x
	sta 704,x
	dex
	bpl d
	lda #156
	sta v+1
	lda #60
	sta v
	lda #1
	sta v+39
	lda #0
	ldx #24
clrsid	sta 54272,x
	dex
	bpl clrsid
	lda #<irq
	ldy #>irq
	sta 788
	sty 789
	lda #0
	sta b+5
	lda #1
	sta b+4
	lda #20
	sta a+5
	lda #%10010000
	sta b+14
	lda #%10000001
	sta b+14
	lda #<mask
	ldy #>mask
	jsr strout
loop	jsr show
	ldx snd
	lda lab,x
	sta 54296
	lda 56320
	and #16
	bne loop
	ldx 181
	lda 182
	beq chdr1
	cmp #1
	beq chda1
	cmp #8
	beq line8
	cmp #7
	beq line7
	cmp #4
	beq qline4
	cmp #5
	beq qline5
nein	jsr err
	jmp loop
qline5	jmp line5
qline4	jmp line4
chdr1	lda b+3
	eor gg,x
	sta b+3
schlu	jsr ok
	jmp loop
chda1	lda b+3
	and gg,x
	beq nein
	lda b+1
	eor gg,x
	sta b+1
	jmp schlu
line8	cpx #4
	bcs pa2u
	lda snd
	eor #1
	sta snd
	bpl schlu
pa2u	lda pa2m
	bne cup
	inc pa2m
	lda #1
	sta pa2a
hat	jsr pa2set
	jmp schlu
cup	inc pa2a
	ldx pa2a
	cpx #10
	bcc hat
	ldx #1
	sta pa2a
	tax
	bmi off
	lda #-1
	.byt $2c
off	lda #0
	sta pa2m
	jmp hat
line7	cpx #2
	bcs weiter
	jmp 64738
weiter	cpx #4
	bcs noprt
	jmp print
noprt	cpx #6
	bcs wend
	jmp run
wend	lda b
	eor #4
	sta b
	lda #-1
	eor b+1
	sta b+1
	lda 1
	eor #40
	sta 1
	lda a+14
	and #64
	beq nix1
	jsr inv1
nix1	lda b+14
	and #64
	beq nix2
	jsr inv2
nix2	jmp schlu
line4	cpx #1
	bne no41
	lda b+2
	eor #4
	sta b+2
	jsr pa2set
	jmp schlu
no41	cpx #2
	bne no42
	lda a+14
	eor #64
	sta a+14
	lda a+12
	sta a+12
	jmp schlu
no42	cpx #3
	bne qnein
	lda b+14
	eor #64
	sta b+14
	lda b+12
	sta b+12
	jmp schlu
line5	cpx #1
	bne no51
	lda b+2
	and #4
	beq qnein
	lda pa2m
	beq switch
	jmp puls
switch	lda b
	eor #4
	sta b
	bne qschlu
no51	cpx #2
	bne no52
	lda a+14
	and #64
	beq qnein
	jsr inv1
	jmp schlu
no52	cpx #3
	bne no53
	lda b+14
	and #64
	beq qnein
qinv2	jsr inv2
	jmp schlu
no53	cpx #4
	bne no54
	lda #32
	bne mot
no54	cpx #5
	bne qnein
	lda #8
mot	eor 1
	sta 1
qschlu	jmp schlu
nopr	inc v+21
qnein	jmp nein
inv1	lda a+12
	beq nil1
	lda #0
	.byt $2c
nil1	lda #-1
	sta a+12
	rts
inv2	lda b+12
	beq nil2
	lda #0
	.byt $2c
nil2	lda #-1
	sta b+12
	rts
print	dec v+21
	jsr $ffe7
	ldx #4
	txa
	ldy #0
	jsr $ffba
	tya
	jsr $ffbd
	txa
	jsr $ffc0
	lda #25
	sta zei
	ldx #4
	stx 3
	jsr $ffc9
	bcs nopr
	jsr $aad7
	jsr $aad7
	ldy #0
	sty 2
pt3	lda #40
	sta spa
	jsr $aad7
	ldx #7
pt4	jsr $ab3f
	dex
	bne pt4
	dec zei
	beq endpt
pt1	ldx #0
	lda (2,x)
	and #127
	cmp #64
	bne no64
	lda #"-"
no64	cmp #93
	bne no93
	lda #"!"
no93	cmp #64
	bcc pt2
	lda #"+"
pt2	cmp #32
	bcs *+4
	ora #64
	jsr $ffd2
	inc 2
	bne pt5
	inc 3
	bne pt5
endpt	jsr $aad7
	jsr $aad7
	jsr $ffcc
	lda #4
	jsr $ffc3
	inc v+21
	jmp schlu
pt5	dec spa
	bne pt1
	beq pt3
pa2set	lda b+2
	and #4
	beq aus
	lda pa2m
	bne an
	rts
an	bpl nied
	lda #4
	.byt $2c
nied	lda #0
	sta 2
	lda b
	and #251
	ora 2
	sta b
aus	rts
puls	dec v+21
	jsr pa2set
	lda b
	sta 2
	eor #4
	sta 3
	lda pa2a
	sta 4
pu1	lda 3
	sta b
	ldy #200
pu2	dey
	bne pu2
	lda 2
	sta b
	ldy #100
pu3	dey
	bne pu3
	dec 4
	bne pu1
	inc v+21
	jmp schlu
show	ldx #6
	ldy #5
	jsr $e50c
	ldx #7
sh1	lda b+3
	and g,x
	jsr io
	dex
	bpl sh1
	ldx #8
	ldy #5
	jsr $e50c
	ldx #7
sh2	lda b+1
	and g,x
	jsr sig
	dex
	bpl sh2
	ldx #14
	ldy #9
	jsr $e50c
	lda b+2
	and #4
	jsr io
	lda a+14
	and #64
	jsr io
	lda b+14
	and #64
	jsr io
	ldx #16
	ldy #9
	jsr $e50c
	jsr pa2out
	lda a+12
	and #1
	jsr sig
	lda b+12
	and #1
	jsr sig
	lda 1
	and #32
	eor #32
	jsr sig
	lda 1
	and #8
	jsr sig
	lda 1
	and #16
	jsr sig
	ldx #22
	ldy #17
	jsr $e50c
	lda snd
	eor #1
	jsr io
	ldy #27
	sty 211
	lda #7
	sta 646
	lda pa2m
	bne aha
	ldx #8
rh	lda norm,x
	jsr $ffd2
	dex
	bpl rh
	rts
aha	lda pa2a
	ora #48
	jsr $ffd2
	jsr $ab3f
	ldx #0
	lda pa2m
	bpl pos
	ldx #6
pos	ldy #5
pone	lda posneg,x
	jsr $ffd2
	inx
	dey
	bpl pone
	rts
pa2out	lda #4
	and b+2
	beq pa2in
	lda pa2m
	bne pa2c
pa2in	lda b
	and #4
	jmp sig
pa2c	jsr $ab3f
	lda #7
	sta 646
	lda #"p"
	jsr $ffd2
	jsr $ab3f
	inc 211
	rts
io	stx 4
	ldy #4
	tax
	beq eing
	ldx #5
eing	lda eiau,x
	jsr $ffd2
	inx
	dey
	bpl eing
	ldx 4
	rts
sig	stx 4
	ldy #4
	tax
	beq low
	ldx #5
low	lda lohi,x
	jsr $ffd2
	inx
	dey
	bpl low
	ldx 4
	rts
ok	lda #120
	sta 54273
	sta 54280
	lda #128
	sta 54272
	lda #34
	sta 54277
	sta 54284
	lda #169
	sta 54278
	sta 54285
	lda #33
	sta 54276
	sta 54283
	ldx #0
	ldy #80
to2	dex
	bne to2
	dey
	bne to2
	lda #32
	sta 54276
	sta 54283
	rts
err	lda #20
	sta 54273
	sta 54280
	lda #200
	sta 54279
	lda #0
	sta 54277
	sta 54284
	lda #240
	sta 54278
	sta 54285
	lda #17
	sta 54276
	sta 54283
	ldx #0
	ldy #120
ton	dex
	bne ton
	dey
	bne ton
	lda #16
	sta 54276
	sta 54283
	rts
