;:poke56,30000/256:clr:print"{clr}"fre(0)"bytes free
;:sys36864
	;.opt oo
anf	*= 30000
	jmp start
cursor	=$fff0
vi	=$d000
bsout	=$ffd2
pc	=$8d
rgt	=$ab42
ad	=$a7
spo	=$8f00
zws	=$a9
return	=$aad7
farb	=646
key	=197
cbm	=653
tast	=198
exit	=$e386
basin	=$abfd
absp	=$200
a	=$8b
brkvec	=$fffe
space	=$ab3f
j	.byt 0
ac	.byt 0
xr	.byt 0
yr	.byt 0
sr	.byt 0
sp	.byt 0
n	.byt 0
v	.byt 0
b	.byt 0
d	.byt 0
i	.byt 0
z	.byt 0
c	.byt 0
e	.word 0
s	.word 0
p	.word 0
op	.byt 0
de	.byt 0
es	.byt 0
l	.byt 0
text	.byte "\x08\x8e\x93\x81\x1d\x1d\x1d\x1d\x1d\x1d6510 einzelschritt-simulator"
	.byt 13
	.byte "  juergen zahn/nicki heusler (run sh2)"
	.byt 13
	.byte "\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3"
	.byt 0
text2	.byte "\x96    \xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4\xa4"
	.byt 13
	.byte "    \xa5\x98 pc \x96\xa7\x98 ac xr yr sr sp\x96 \xa5\x98nv bdizc\x96\xa7"
	.byt 13
	.byte "    \xa5    \xa7                \xa5\xa0       \xa7"
	.byt 13
	.byte "    \xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\xa3\x11"
	.byt 0
tpc	.byte "pc  "
	.byt 0
tac	.byte "ac  "
	.byt 0
txr	.byte "xr  "
	.byt 0
tyr	.byte "yr  "
	.byt 0
tsp	.byte "sp  "
	.byt 0
techt	.byte "echtsimulation   "
fjs	.byte "?\x9d\x9d\x9d"
	.byt 0
tadr	.byte "adresse:   ****\x9d\x9d\x9d\x9d\x9d\x9d"
	.byt 0
hexa	.byte "0123456789abcdef"
oper	.byt 11,35,0,63,65,35,3,63,37,35,3,0,66,35,3,63
	.byt 10,35,0,63,65,35,3,63,14,35,34,63,66,35,3,63
	.byt 29,2,0,61,7,2,40,61,39,2,40,0,7,2,40,61,8,2,0
	.byt 61,65,2,40,61,45,2,34,61,66,2,40,61,42,24,0
	.byt 64,65,24,33,64,36,24,33,0,28,24,33,64,12,24
	.byt 0,64,65,24,33,64,16,24,34,64,66,24,33,64,43,1
	.byt 0,62,65,1,41,62,38,1,41,0,28,1,41,62,13,1,0
	.byt 62,65,1,41,62,47,1,34,62,66,1,41,62,0,48,65
	.byt 57,50,48,49,57,23,0,54,0,50,48,49,57,4,48,0,0
	.byt 50,48,49,57,56,48,55,0,0,48,0,0,32,30,31,60
	.byt 32,30,31,60,52,30,51,0,32,30,31,60,5,30,0,60
	.byt 32,30,31,60,17,30,53,0,32,30,31,60,20,18,65
	.byt 58,20,18,21,58,27,18,22,0,20,18,21,58,9,18
	.byt 0,58,65,18,21,58,15,18,34,58,66,18,21,58,19
	.byt 44,65,59,19,44,25,59,26,44,34,0,19,44,25,59
	.byt 6,44,0,59,65,44,25,59,46,44,34,59,66,44,25,59
adresse	.word prog,ladc,land,lasl,lbcc
	.word lbcs,lbeq,lbit,lbmi,lbne,lbpl
	.word lbrk,lbvc,lbvs,lclc,lcld,lcli
	.word lclv,lcmp,lcpx,lcpy,ldec,ldex,ldey
	.word leor,linc,linx,liny,ljmp,ljsr
	.word llda,lldx,lldy,llsr,prog,lora,lpha,lphp
	.word lpla,lplp,lrol,lror,lrti,lrts
	.word lsbc,lsec,lsed,lsei,lsta,lstx,lsty,ltax
	.word ltay,ltsx,ltxa,ltxs,ltya,laax
	.word ldcp,lisc,llax,lrla,lrra,lslo,lsre
	.word lnop2,lnop2
adart	.byt 1,11,1,10,3,3,3,3,1,2,4,1,5,5,5,5,12,10,1,11
	.byt 3,6,6,6,1,9,1,9,5,8,8,8,5,11,1,11,3,3,3,3,1,2,4
	.byt 1,5,5,5,5,12,10,1,10,3,6,6,6,1,9,1,9,5,8,8,8,1
	.byt 11,1,11,3,3,3,3,1,2,4,1,5,5,5,5,12,10,1,10,3,6
	.byt 6,6,1,9,1,9,5,8,8,8,1,11,1,11,3,3,3,3,1,2,4,1
	.byt 13,5,5,5,12,10,1,10,3,6,6,6,1,9,1,9,5,8,8,8,1
	.byt 11,3,11,3,3,3,3,1,1,1,1,5,5,5,5,12,10,1,1,6,6,7
	.byt 7,1,9,1,1,1,8,1,1,2,11,2,11,3,3,3,3,1,2,1,1,5
	.byt 5,5,5,12,10,1,10,6,6,7,7,1,9,1,1,8,8,9,9,2,11
	.byt 3,11,3,3,3,3,1,2,1,1,5,5,5,5,12,10,1,10,3,6,6
	.byt 6,1,9,1,9,5,8,8,8,2,11,3,11,3,3,3,3,1,2,1,1,5
	.byt 5,5,5,12,10,1,10,3,6,6,6,1,9,1,9,5,8,8,8
oprb	.word let,ln,zp,let,abs,zpx,zpy,absx,absy
	.word indy,indx,rel,ind
mne	.byte "???adcandaslbccbcs"
	.byte "beqbitbmibnebplbrk"
	.byte "bvcbvsclccldcliclv"
	.byte "cmpcpxcpydecdexdey"
	.byte "eorincinxinyjmpjsr"
	.byte "ldaldxldylsrnopora"
	.byte "phaphpplaplprolror"
	.byte "rtirtssbcsecsedsei"
	.byte "stastxstytaxtaytsx"
	.byte "txatxstyaaaxdcpisc"
	.byte "laxrlarraslosrenopnop"
leerz	.word leer,l7,l7,leer,l8,l7,l7,l8
	.word l8,l7,l7,l7,l8
prt	.word g1,g2,u1,g1,g5,g6,g7,k8,g9,g10,g11,g12,g13
strout	tax
	lda pc
	pha
	lda pc+1
	pha
	stx pc
	sty pc+1
	ldy #0
nss	lda (pc),y
	beq ssn
	jsr bsout
	inc pc
	bne nss
	inc pc+1
	bne nss
ssn	pla
	sta pc+1
	pla
	sta pc
	rts
prtext	lda #<text
	ldy #>text
	jsr strout
	lda #<text2
	ldy #>text2
	jsr strout
	lda #0
	sta vi+33
	lda #6
	sta vi+32
	rts
ru2	jsr rgt
	jmp bsout
stri	lda #"$"
	jsr bsout
	lda p
	sta zws
	lda p+1
	sta zws+1
	ldy #1
	lda (zws),y
	sta a
	iny
	lda (zws),y
	sta a+1
umrec	lda a+1
	lsr
	lsr
	lsr
	lsr
	tax
	lda hexa,x
	jsr bsout
	lda a+1
	and #15
	tax
	lda hexa,x
	jsr bsout
	lda a
aout	pha
	lsr
	lsr
	lsr
	lsr
	tax
	lda hexa,x
	jsr bsout
	pla
	and #15
	tax
	lda hexa,x
	jmp bsout
fout	and #1
	clc
	adc #"0"
	jmp bsout
super	jsr bsout
	dex
	bne super
	rts
turn	bne turn0
	lda #-1
	.byt $2c
turn0	lda #0
	rts
l1	lda ac
	and #128
	beq zer7
	lda #1
zer7	sta n
	lda ac
	bne zer8
	ldx #1
	.byt $2c
zer8	ldx #0
	stx z
prog	ldx l
	inx
	txa
	clc
	adc pc
	sta pc
	lda pc+1
	adc #0
	sta pc+1
out	lda pc+1
	sta s+1
	sta e+1
	lda pc
	sta s
	sta e
not	lda cbm
	and #2
	bne noc
	ldy #0
	ldx #8
	clc
	jsr cursor
	jsr clr
noc	jmp reg
status	lda #32
	ldx n
	beq no1
	ora #128
no1	ldx v
	beq no2
	ora #64
no2	ldx b
	beq no3
	ora #16
no3	ldx d
	beq no4
	ora #8
no4	ldx i
	beq no5
	ora #4
no5	ldx z
	beq no6
	ora #2
no6	ldx c
	beq no7
	ora #1
no7	sta sr
	rts
berec	ldx sr
	txa
	and #128
	sta n
	txa
	and #64
	sta v
	txa
	and #16
	sta b
	txa
	and #8
	sta d
	txa
	and #4
	sta i
	txa
	and #2
	sta z
	txa
	and #1
	sta c
	rts
end	lda absp
	cmp #"*"
	bne rech
	jmp essie
rech	ldx #0
ju	lda absp,x
	ldy #15
vergl	cmp hexa,y
	beq found
	dey
	bpl vergl
	pla
	pla
	jmp nprt
found	tya
	cpx #0
	bne found2
	asl
	asl
	asl
	asl
	sta a+1
	inx
	bne ju
found2	cpx #1
	bne found3
	ora a+1
	sta a+1
	inx
	bne ju
found3	cpx #2
	bne found4
	asl
	asl
	asl
	asl
	sta a
	inx
	bne ju
found4	ora a
	sta a
	rts
end1	lda absp
	cmp #"*"
	bne rech1
	jmp essie
rech1	ldx #0
ju1	lda absp,x
	ldy #15
vergl1	cmp hexa,y
	beq found5
	dey
	bpl vergl1
	pla
	pla
	jmp nprt
found5	tya
	cpx #0
	bne found4
	asl
	asl
	asl
	asl
	sta a
	inx
	bne ju1
pcoua	lda #<tpc
	ldy #>tpc
	jsr strout
	lda pc
	sta a
	lda pc+1
	sta a+1
	jsr umrec
	lda #"\x9d"
	ldx #6
	jsr super
	jsr basin
	jsr end
	lda a
	sta pc
	lda a+1
	sta pc+1
	jmp out
akkua	ldx ac
	lda #<tac
	ldy #>tac
	jsr nimm
	lda a
	sta ac
	jmp reg
xrega	ldx xr
	lda #<txr
	ldy #>txr
	jsr nimm
	lda a
	sta xr
	jmp reg
yrega	ldx yr
	lda #<tyr
	ldy #>tyr
	jsr nimm
	lda a
	sta yr
	jmp reg
staca	ldx sp
	lda #<tsp
	ldy #>tsp
	jsr nimm
	lda a
	sta sp
	jmp reg
nimm	stx a
	jsr strout
	lda a
	jsr aout
	ldx #4
	lda #"\x9d"
	jsr super
	jsr basin
	jmp end1
adr	lda #<tadr
	ldy #>tadr
	jsr strout
	jsr basin
	jsr end
	lda #"\x91"
	jsr bsout
	lda #"\x1d"
	ldx #20
	jsr super
	lda a
	sta ad
	lda a+1
	sta ad+1
	jsr pruef
	dey
	beq opst
	iny
	lda (a),y
	sta op
opst	lda op
	jsr aout
	ldx #4
	lda #"\x9d"
	jsr super
	jsr basin
	jsr end1
	jsr poke
	lda #"\x91"
	jsr bsout
	ldx #29
	lda #" "
	jsr super
	lda ad
	cmp pc
	beq testing
regis	jmp reg
testing	lda ad+1
	cmp ad+1
	bne regis
	jmp out
pruef	ldx ad+1
	dex
	beq notre
	ldy #0
	rts
notre	ldx ad
	lda spo,x
	sta op
	ldy #1
	rts
poke	ldx ad+1
	cpx #1
	bne ret
	ldx ad
	lda a
	sta spo,x
	rts
ret	lda es
	beq ret1
	lda a
	ldy #0
	sta (ad),y
ret1	rts
echt	jsr def
	lda #<techt
	ldy #>techt
	jsr strout
	jsr basin
	lda absp
	cmp #"j"
	beq yes
	cmp #"y"
	beq yes
	cmp #"n"
	bne weg
	lda #0
	.byt $2c
yes	lda #1
	sta es
	jmp reg
weg	jmp essie
echtout	lda es
	beq n0
	lda #7
	.byt $2c
n0	lda #9
	sta farb
	lda #"e"
	jsr bsout
	lda #1
	sta farb
	rts
def	lda es
	beq aus
	lda #"j"
	
	.byt $2c
aus	lda #"n"
	sta fjs
	rts
operh	ldy #0
	lda (pc),y
	tax
	lda adart,x
	asl
	sec
	sbc #2
	tax
	lda oprb,x
	sta goto+1
	lda oprb+1,x
	sta goto+2
	jmp goto
ind	ldy #1
	lda (pc),y
	sta zws
	iny
	lda (pc),y
	sta zws+1
	ldy #0
	lda (zws),y
	sta ad
	iny
	lda (zws),y
	sta ad+1
	dey
	lda (ad),y
	sta op
	jmp pruef
rel	ldy #1
	lda (pc),y
	bmi brmi
	clc
	adc #2
	adc pc
	sta pc
	lda #0
	adc pc+1
	sta pc+1
	jmp let
brmi	eor #-1
	clc
	adc #1
	sta zws
	lda pc
	sec
	sbc zws
	sta zws
	lda pc+1
	sbc #0
	sta zws+1
	lda zws
	clc
	adc #2
	sta pc
	lda zws+1
	adc #0
	sta pc+1
let	lda #0
	sta ad
	sta ad+1
	jmp pruef
abs	ldy #1
	lda (pc),y
	sta ad
	iny
	lda (pc),y
	sta ad+1
	ldy #0
	lda (ad),y
	sta op
	ldx #2
	stx l
	jmp pruef
absx	ldy #1
	lda (pc),y
	clc
	adc xr
absi	sta ad
	iny
	lda (pc),y
	adc #0
	sta ad+1
	sty l
	ldy #0
	lda (ad),y
	sta op
	jmp pruef
absy	ldy #1
	lda (pc),y
	clc
	adc yr
	jmp absi
ln	lda pc
	clc
	adc #1
	sta ad
	lda pc+1
	adc #0
	sta ad+1
	ldy #0
	lda (ad),y
	sta op
	lda #1
	sta l
	jmp pruef
zp	ldy #0
	sty ad+1
	iny
	lda (pc),y
	sta ad
	dey
	lda (ad),y
	sta op
	lda #1
	sta l
	jmp pruef
zpx	ldy #1
	lda (pc),y
	clc
	adc xr
zeri	sta ad
	dey
	sty ad+1
	lda (ad),y
	sta op
	iny
	sty l
	jmp pruef
zpy	ldy #1
	lda (pc),y
	clc
	adc yr
	jmp zeri
indy	ldy #1
	lda (pc),y
	tax
	lda 0,x
	tay
	lda 1,x
	sta ad+1
	tya
	clc
	adc yr
	sta ad
	lda #0
	tay
	adc ad+1
	sta ad+1
	lda (ad),y
	sta op
	iny
	sty l
	jmp pruef
indx	ldy #1
	lda (pc),y
	clc
	adc xr
	tax
	lda 0,x
	sta ad
	lda 1,x
	sta ad+1
	sty l
	dey
	lda (ad),y
	sta op
	jmp pruef
deci	lda ac
	sed
	adc op
	cld
	sta ac
	rts
deci1	lda ac
	sed
	sbc op
	cld
	sta ac
	rts
string	lda #"$"
	jsr bsout
l9	lda p
	sta zws
	lda p+1
	sta zws+1
	ldy #1
pk	lda (zws),y
	jmp aout
leer	ldx #5
r2	lda #" "
	jmp super
l7	jsr l9
	ldx #3
	bne r2
l8	jsr l9
	jsr space
	lda p
	sta zws
	lda p+1
	sta zws+1
	ldy #2
	bne pk
start	ldx #0
	txa
	stx pc
	ldy #$c0
	sty pc+1
vl1	sta spo,x
	dex
	bne vl1
	ldx #22
vl2	sta j,x
	dex
	bpl vl2
	dec sp
nprt	jsr prtext
reg	lda #13
	sta farb
	ldx #5
	ldy #5
	clc
	jsr cursor
	lda pc
	sta a
	lda pc+1
	sta a+1
	jsr umrec
	jsr status
	jsr ru2
	lda ac
	jsr aout
	jsr rgt
	lda xr
	jsr aout
	jsr rgt
	lda yr
	jsr aout
	jsr rgt
	lda sr
	jsr aout
	jsr rgt
	lda sp
	jsr aout
	jsr ru2
	lda n
	jsr fout
	lda v
	jsr fout
	lda #"1"
	jsr bsout
	lda b
	jsr fout
	lda d
	jsr fout
	lda i
	jsr fout
	lda z
	jsr fout
	lda c
	jsr fout
	jsr ru2
	jsr echtout
	jsr return
	lda #"\x11"
	ldx #5
	jsr super
	lda #" "
	ldx #23
	jsr super
	lda #"\x9d"
	ldx #22
	jsr super
get	ldx key
	lda cbm
	bne get1
	cpx #64
	bne get
get1	ldx key
	cpx #64
	beq get1
	ldy #0
	sty tast
	cpx #63
	bne ccomp
essie	lda #14
	sta vi+32
	sta farb
	lda #6
	sta vi+33
	jmp exit
ccomp	cpx #60
	beq simu
	cpx #41
	beq pcou
	cpx #10
	beq akku
	cpx #23
	beq xreg
	cpx #25
	beq yreg
	cpx #13
	beq stac
	cpx #39
	bne tt5
	lda n
	jsr turn
	sta n
	jmp reg
simu	jmp sim
pcou	jmp pcoua
xreg	jmp xrega
akku	jmp akkua
yreg	jmp yrega
stac	jmp staca
tt5	cpx #31
	bne tt6
	lda v
	jsr turn
	sta v
	jmp reg
tt6	cpx #28
	bne tt7
	lda b
	jsr turn
	sta b
	jmp reg
tt7	cpx #18
	bne tt8
	lda d
	jsr turn
	sta d
	jmp reg
tt8	cpx #33
	bne tt9
	lda i
	jsr turn
	sta i
	jmp reg
tt9	cpx #12
	bne tta
	lda z
	jsr turn
	sta z
	jmp reg
tta	cpx #20
	bne ttb
	lda c
	jsr turn
	sta c
	jmp reg
ttb	cpx #7
	bne ttc
	lda p
	sta s
	sta e
	sta pc
	lda p+1
	sta s+1
	sta e+1
	sta pc+1
	jmp not
ttc	cpx #36
	bne ttd
	jmp adr
ttd	cpx #14
	bne tte
	jmp echt
tte	jmp get
sim	lda #0
	sta l
	tay
	lda (pc),y
	tax
	lda oper,x
	asl
	tax
	lda adresse,x
	sta goto+1
	lda adresse+1,x
	sta goto+2
goto	jmp 0
lsec	lda #1
	.byt $2c
lclc	lda #0
	sta c
	jmp prog
lsei	lda #1
	.byt $2c
lcli	lda #0
	sta i
	jmp prog
lsed	lda #1
	.byt $2c
lcld	lda #0
	sta d
	jmp prog
lclv	lda #0
	sta v
	jmp prog
ldey	dec yr
	jmp incry
ldex	dec xr
	jmp incrx
liny	inc yr
incry	ldx yr
	stx op
	jmp incre
linx	inc xr
incrx	ldx xr
	stx op
	jmp incre
ltax	lda ac
	sta xr
	jmp incrx
ltay	lda ac
	sta yr
	jmp incry
ltsx	lda sp
	sta xr
	jmp incrx
ltxa	lda xr
	sta ac
	jmp l1
ltxs	lda xr
	sta sp
	jmp prog
ltya	lda yr
	sta ac
	jmp l1
lpha	ldx sp
	lda ac
	sta spo,x
	dec sp
	jmp prog
lpla	inc sp
	ldx sp
	lda spo,x
	sta ac
	jmp l1
lphp	jsr status
	ldx sp
	lda sr
	sta spo,x
	dec sp
	jmp prog
lplp	inc sp
	ldx sp
	lda spo,x
	sta sr
	jsr berec
	jmp prog
lbcc	lda c
	jsr turn
	jmp bra
lbcs	lda c
	jmp bra
lbne	lda z
	jsr turn
	jmp bra
lbeq	lda z
	jmp bra
lbpl	lda n
	jsr turn
	jmp bra
lbmi	lda n
	jmp bra
lbvc	lda v
	jsr turn
	jmp bra
lbvs	lda v
bra	bne hh1
	lda #1
	sta l
	jmp prog
hh1	jsr rel
	jmp out
lbrk	lda #2
	clc
	adc pc
	sta pc
	lda pc+1
	adc #0
	sta pc+1
	bvc inord
	lda pc
	sec
	sbc #2
	sta pc
	lda pc+1
	sbc #0
	sta pc+1
inord	ldx sp
	lda pc+1
	sta spo,x
	dex
	lda pc
	sta spo,x
	dec sp
	dec sp
	dex
	lda sr
	sta spo,x
	dec sp
	lda #1
	sta i
	sta b
	jsr status
	lda brkvec
	ldy brkvec+1
	sta pc
	sty pc+1
	jmp out
linc	jsr operh
	inc op
updown	lda op
	sta a
	jsr poke
incre	lda op
	bpl ee4
	ldx #1
	.byt $2c
ee4	ldx #0
	stx n
	tax
	beq ee5
	ldx #0
	.byt $2c
ee5	ldx #1
	stx z
	jmp prog
ldec	jsr operh
	dec op
	jmp updown
ljmp	jsr operh
	lda ad
	sta pc
	lda ad+1
	sta pc+1
	jmp out
ljsr	lda pc
	clc
	adc #2
	sta a
	lda pc+1
	adc #0
	sta a+1
	ldx sp
	lda a+1
	sta spo,x
	dex
	lda a
	sta spo,x
	dec sp
	dec sp
	ldy #1
	lda (pc),y
	tax
	iny
	lda (pc),y
	stx pc
	sta pc+1
	jmp out
land	jsr operh
	lda ac
	and op
logo	sta ac
	jmp l1
lora	jsr operh
	lda ac
	ora op
	jmp logo
leor	jsr operh
	lda ac
	eor op
	jmp logo
llda	jsr operh
	lda op
	sta ac
	jmp l1
lldx	jsr operh
	lda op
	sta xr
	jmp incrx
lldy	jsr operh
	lda op
	sta yr
	jmp incry
lrti	inc sp
	ldx sp
	lda spo,x
	sta sr
	jsr berec
lrts	ldx sp
	inx
	lda spo,x
	sta pc
	inx
	lda spo,x
	sta pc+1
	inc sp
	inc sp
	jmp prog
lsta	jsr operh
	lda ac
tos1	sta a
	jsr poke
	jmp prog
lstx	jsr operh
	lda xr
	jmp tos1
lsty	jsr operh
	lda yr
	jmp tos1
lnop2	jsr operh
	jmp prog
lasl	ldy #0
	lda (pc),y
	tax
	lda adart,x
	cmp #4
	bne l2asl
	asl ac
	bcc cc1
	ldy #1
cc1	sty c
	jmp l1
l2asl	jsr operh
	asl op
	bcc cc2
	ldy #1
	.byt $2c
cc2	ldy #0
	sty c
	jsr poke
	lda op
	bmi cc3
	ldy #0
	.byt $2c
cc3	ldy #1
	sty n
	lda op
	beq cc4
	ldy #1
	.byt $2c
cc4	ldy #0
	sty z
	jmp prog
llsr	ldy #0
	lda (pc),y
	tax
	tax
	lda adart,x
	cmp #4
	bne l2
l3	lsr ac
l4	bcc ff1
	lda #1
	.byt $2c
ff1	lda #0
	sta c
	jmp l1
l2	jsr operh
	lsr op
	bcc ff2
	lda #1
	.byt $2c
ff2	lda #0
	sta c
	jsr poke
	jmp incre
ladc	lda d
	bne l2adc
	jsr operh
	jsr cho
	lda ac
	adc op
	sta ac
bbb	bvs bb4
	lda #0
	.byt $2c
bb4	lda #1
	sta v
	jsr cse
	lda ac
	bmi nega
	lda #0
	.byt $2c
nega	lda #1
	sta n
	jmp l1
l2adc	jsr operh
	lda c
	beq bb5
	sec
	.byt $24
bb5	clc
	jsr deci
	jmp bbb
lsbc	lda d
	bne l2sbc
	jsr operh
	jsr cho
	lda ac
	sbc op
	sta ac
	jmp bbb
l2sbc	jsr operh
	jsr cho
	jsr deci1
	jmp bbb
lslo	jsr operh
	asl op
	jsr cse
	lda op
	sta a
	jsr poke
	jmp lora
lsre	jsr operh
	lsr op
	jsr cse
	lda op
	sta a
	jsr poke
	jmp leor
lrla	jsr operh
	jsr cho
	rol op
	jsr cse
	lda op
	sta a
	jsr poke
	jmp land
lrra	jsr operh
	jsr cho
	ror op
	jsr cse
	lda op
	sta a
	jsr poke
	jmp ladc
lisc	jsr operh
	inc op
	lda op
	sta a
	jsr poke
	jmp lsbc
llax	jsr operh
	lda op
	sta ac
	sta xr
	jmp l1
laax	jsr operh
	lda ac
	and xr
	sta a
	jsr poke
	sta op
	jmp incre
ldcp	jsr operh
	dec op
	lda op
	sta a
	jsr poke
	jmp lcmp
lbit	jsr operh
	lda op
	bmi dd1
	ldy #0
	.byt $2c
dd1	ldy #1
	sty n
	and #64
	beq zebi
	ldy #1
	.byt $2c
zebi	ldy #0
	sty v
	lda ac
	and op
	beq zeb2
	ldy #0
	.byt $2c
zeb2	ldy #1
	sty z
	jmp prog
lror	ldy #0
	lda (pc),y
	tax
	lda adart,x
	cmp #4
	bne l2ror
	jsr cho
	ror ac
	jmp m1
l2ror	jsr operh
	jsr cho
	ror op
	jmp lrl
cse	bcc nc
	lda #1
	.byt $2c
nc	lda #0
	sta c
	rts
cho	lda c
	beq clec
	sec
	rts
clec	clc
	rts
lrol	ldy #0
	lda (pc),y
	tax
	lda adart,x
	cmp #4
	bne l2rol
	jsr cho
	rol ac
m1	jsr cse
	jmp l1
l2rol	jsr operh
	jsr cho
	rol op
lrl	jsr cse
	lda op
	sta a
	jsr poke
	jmp incre
lcmp	jsr operh
	lda ac
comp	cmp op
	bmi ee1
	ldx #0
	.byt $2c
ee1	ldx #1
	stx n
	cmp op
	beq ee2
	ldx #0
	.byt $2c
ee2	ldx #1
	stx z
	cmp op
	jsr cse
	jmp prog
lcpx	jsr operh
	lda xr
	jmp comp
lcpy	jsr operh
	lda yr
	jmp comp
clr	jsr space
	lda s
	sta p
	sta a
	lda s+1
	sta p+1
	sta a+1
	jsr umrec
	jsr space
	lda p
	sta zws
	lda p+1
	sta zws+1
	ldy #0
	lda (zws),y
	sta a
	jsr aout
	jsr space
	ldx a
	stx j
	lda adart,x
	asl
	sec
	sbc #2
	tay
	lda leerz+1,y
	sta goto+2
	lda leerz,y
	sta goto+1
	jsr goto
	jsr space
	ldx j
	lda oper,x
	sta zws
	asl
	clc
	adc zws
	tay
	ldx #3
pmne	lda mne,y
	jsr bsout
	iny
	dex
	bne pmne
	jsr space
	ldx j
	lda adart,x
	asl
	sec
	sbc #2
	tay
	lda prt,y
	sta goto+1
	lda prt+1,y
	sta goto+2
	jsr goto
	ldx j
	lda adart,x
	cmp #6
	bcc notprint
	cmp #12
	beq notprint
	jsr printad
notprint	ldx #18
	lda #" "
	jsr super
	jsr return
	clc
	lda p
	adc #1
	sta p
	lda p+1
	adc #0
	sta p+1
g1	rts
g2	lda #"#"
	jsr bsout
u1	jsr string
u4	inc p
	bne nothi
	inc p+1
nothi	rts
g5	jsr stri
u5	lda p
	clc
	adc #2
	sta p
	lda p+1
	adc #0
	sta p+1
	rts
g6	jsr u1
u2	lda #","
	jsr bsout
	lda #"x"
	jmp bsout
g7	jsr u1
u3	lda #","
	jsr bsout
	lda #"y"
	jmp bsout
k8	jsr g5
	jmp u2
g9	jsr g5
	jmp u3
g10	lda #"("
	jsr bsout
	jsr u1
	lda #")"
	jsr bsout
	jmp u3
g11	lda #"("
	jsr bsout
	jsr u1
	jsr u2
	lda #")"
	jmp bsout
g12	lda p
	sta zws
	lda p+1
	sta zws+1
	ldy #1
	lda (zws),y
	bmi prmi
	clc
	adc #2
	adc p
	sta a
	lda p+1
	adc #0
	sta a+1
	jmp cont1
prmi	eor #-1
	clc
	adc #1
	sta a
	lda p
	sec
	sbc a
	sta a
	lda p+1
	sbc #0
	sta a+1
	lda a
	clc
	adc #2
	sta a
	lda a+1
	adc #0
	sta a+1
cont1	lda #"$"
	jsr bsout
	jsr umrec
	jmp u4
g13	lda #"("
	jsr bsout
	jsr stri
	lda #")"
	jsr bsout
	jmp u5
printad	jsr operh
	jsr space
	jsr bsout
	lda #"["
	jsr bsout
	lda ad
	sta a
	lda ad+1
	sta a+1
	jsr umrec
	lda #"="
	jsr bsout
	lda op
	jsr aout
	lda #"]"
	jmp bsout
