;:poke56,128:clr
;:ifpeek(776)<>228then:exit
;:sys36864:.goto 10
print"******	fehler nummer"en"*****"
	print"****** "err$(en)
ifel>-1thenprint"******	zeile:"el
	resume
print"******	direktmodus"
	end
	;.opt oo
	*= $8000
	jmp init
basvec	=776
chrgot	=121
yptr	=$a8fb
strout	=$ab1e
mem	=55
chrget	=115
prg	=43
t2	=$e460
axout	=$bdcd
frame	=53280
screen	=frame+1
clrvec	=$e453
tmp	=247
basic	=$a7e7
inter	=$a7ae
ptr	=122
funvec	=basvec+2
typ	=$d
funcold	=$ae8d
pk	=$aea8
memfac	=$bba2
yfac	=$b3a2
getklam	=$aef1
facasc	=$bddd
num	=$100
error	=$a445
stradr	=34
exp	=$61
facmem	=$bbd4
facarg	=$bc0c
argfac	=$bbfc
vergl	=$bc5b
int	=$bccc
abs	=$bc58
afac	=$bc3c
memdiv	=$bb0f
pl05	=$b849
getx	=$b79e
return	=$aad7
chkauf	=$aefa
chkzu	=$aef7
frmnum	=$ad9e
overflow	=$b97e
komma	=$aefd
memhoch	=$bf78
memmult	=$ba28
sin	=$e26b
cos	=$e264
tan	=$e2b4
memarg	=$ba8c
div	=$bb12
memmin	=$b850
konf	=1
integer	=$b7f7
tor	=$b0
lat	=182
byt	=20
varb	=$2d
link	=$a533
clr	=$a659
eingabe	=$e39d
tast	=198
get	=$ab92
intfac	=$bc49
fac	=$62
latch	=704
org	=tmp+2
space	=$ab3f
out	=$ffd2
print	=$aaa0
findlin	=$a613
linenr	=$a96b
adr	=$5f
ready	=$a474
line	=$39
undefd	=$a8e3
errvec	=$300
olderr	=$e38b
nextst	=$a906
ffac	=$65
integer2	=$bc9b
sign	=$66
polynom	=$e059
illquan	=$b248
memplus	=$b867
frestr	=$b6a3
fremevl	=$ad9e
sendnam	=$f3d5
fnadr	=$bb
fnlen	=$b7
ga	=$ba
sa	=$b9
talk	=$ffb4
sectalk	=$ff96
iecin	=$ffa5
status	=144
clsfil	=$f642
spalte	=211
stop	=$ffe1
strres	=$b47d
zeig	=$62
desc	=$b4ca
errtab	=$a328
kbuf	=631
key	=203
wf1	=4
wf3	=5
wf5	=6
wf7	=3
irqvec	=788
oldirq	=$ea31
clrvec2	=$ff8a
shift	=653
work	=254
toolong	=$a571
teststack	=$a3fb
suchstack	=$a38a
varnam	=$49
clrx	=59903
setcr	=$e56c
zeile	=214
tend	=$80
untalk	=$ffab
listen	=$ffb1
seclist	=$ff93
unlist	=$ffae
iecout	=$ffa8
float	=$5d
addziff	=$bd7e
var	=$47
typ1	=$d
typ2	=$e
typemiss	=$ad99
intflg	=$10
suchvar	=$b08b
des	=$64
sid	=$d400
page	=648
scroll	=$e8ea
flp	.byt 0,0,0,0,0
dvs	.byt 0,0,0,0,0
flt	.byt 0,0,0,0,0
fme	.byt 0,0,0,0,0
fl2	.byt $82,0,0,0,0
fl180	.byt $86,$65,$2e,$e0,$d4
fl34	.byt $86,$07,$2b,$9e,$4b
flm1	.byt $81,$80,0,0,0
fl27	.byt $82,$2d,$f8,$54,$58
flvic	.byt $90,$50,0,0,0
flsid	.byt $90,$54,0,0,0
flcol	.byt $90,$58,0,0,0
koeff	.byt 8
	.byt $7c,$12,$ea,$af,$02
	.byt $7e,$c6,$2c,$28,$05
	.byt $7f,$76,$e2,$d6,$ca
	.byt $80,$c1,$b7,$5b,$c5
	.byt $80,$6b,$0f,$9a,$c5
	.byt $80,$e5,$a5,$85,$fd
	.byt $80,$7c,$fb,$20,$78
	.byt $80,$93,$c2,$d5,$04
fl1	.byt $81,0,0,0,0
ee1	.byte "integeR"
ee2	.byte "using parameteR"
ee3	.byte "using exponenT"
ee4	.byte "using placE"
ee5	.byte "can't resumE"
ee6	.byte "error numbeR"
ee7	.byte "keynumbeR"
ee8	.byte "until without repeaT"
ee9	.byte "pop without gosuB"
eea	.byte "illegal koordinateS"
et	.word ee1,ee2,ee3,ee4,ee5
	.word ee6,ee7,ee8,ee9,eea
chain	.byt wf1,wf3,wf5,wf7
y1	.word ba,bb,bc,bd
	.word be,bf,bg,bh,bi
	.word bj,bk,bl,bm,bn
	.word bo,bp,bq,br,bs
	.word bt,bu,bv,bw,bx
	.word by,bz,b1,b2
	.word 0
ba	.byte "pi"      
	.byt 0
bb	.byte "sum"     
	.byt 0
bc	.byte "prim"    
	.byt 0
bd	.byte "div"    
	.byt 0
be	.byte "root"   
	.byt 0
bf	.byte "deg"   
	.byt 0
bg	.byte "rad"   
	.byt 0
bh	.byte "rez"   
	.byt 0
bi	.byte "cot"   
	.byt 0
bj	.byte "sec"   
	.byt 0
bk	.byte "csc"   
	.byt 0
bl	.byte "mod"   
	.byt 0
bm	.byte "ram"   
	.byt 0
bn	.byte "chr"   
	.byt 0
bo	.byte "deek"  
	.byt 0
bp	.byte "ex"    
	.byt tor,0
bq	.byte "el"    
	.byt 0
br	.byte "en"    
	.byt 0
bs	.byte "odd"   
	.byt 0
bt	.byte "fac"   
	.byt 0
bu	.byte "err$"  
	.byt 0
bv	.byte "$"     
	.byt 0
bw	.byte "%"     
	.byt 0
bx	.byte "ex"    
	.byt 0
by	.byte "vic"   
	.byt 0
bz	.byte "sid"   
	.byt 0
b1	.byte "col"   
	.byt 0
b2	.byte "vid"   
	.byt 0
y2	.word pi
	.word sum,prim,diiv,root,deg,rad,rez
	.word cot,sek,csc,mod,ram,chr,deek
	.word xor,errl,errn,odd,fak,err,hex
	.word bin,ex,cvic,csid,ccol,cvid
x1	.word aa,ab,ac,ad
	.word ae,af,ag,ah,ai
	.word aj,ak,al,am,an
	.word ao,ap,aq,ar,as
	.word at,au,av
	.word 0
aa	.byte "exit"    
	.byt 0
ab	.byte "restart" 
	.byt 0
ac	.byte "old"     
	.byt 0
ad	.byte "inkey"   
	.byt 0
ae	.byte "use"     
	.byt 0
af	.byte "trap"    
	.byt 0
ag	.byte "off"     
	.byt 0
ah	.byte "resume"  
	.byt 0
ai	.byte "dir"     
	.byt 0
aj	.byte "key"     
	.byt 0
ak	.byte "repeat"  
	.byt 0
al	.byte "until"   
	.byt 0
am	.byte "pop"     
	.byt 0
an	.byte "erase"   
	.byt 0
ao	.byte "at"      
	.byt 0
ap	.byte "s"
	.byt tend,0
aq	.byte "disk"    
	.byt 0
ar	.byte "swap"    
	.byt 0
as	.byte "beep"    
	.byt 0
at	.byte "doke"    
	.byt 0
au	.byte "scroll"  
	.byt 0
av	.byte "mark"    
	.byt 0
x2	.word exit,init,old,inkey,use
	.word trap,toff,resume,dir,setkey
	.word repeat,until,pop,erase,pat
	.word send,disk,swap,beep,doke
	.word scroll,mark
t1	.byte "\x93\x05\x08\x8e\x11    **** nss mathematical basic ****"
	.byt 13,13
	.byte " 64k ram system  "
	.byt 0
t3	.byt 13
	.byte "-- bye bye ! --"
	.byt 13,13,0
t4	.byte "lO "
	.byt 0
t5	.byte ",8,1 ("
	.byt 0
t6	.byt 13
	.byte "\x91\x12files found: "
	.byt 0
t7	.byt ".",13,0
t8	.byte " error"
	.byt 0
t9	.byte "key "
	.byt 0
ktab	.word f1,f2,f3,f4,f5,f6,f7,f8
f1	.byte "lI_\x01-------"
f2	.byte "rU_\x01-------"
f3	.byte "dir_\x01------"
f4	.byte "send"
	.byt 34
	.byte "\x01-----"
f5	.byte "key_\x01------"
f6	.byte "exit_\x01-----"
f7	.byte "disk_\x01-----"
f8	.byte "sY4096*\x01---"
en	.byt 0
el	.word 0
ea	.word 0
ep	.word 0
last	.byt 0
exit	jsr clrvec
	sei
	jsr clrvec2
	cli
	lda #<t3
	ldy #>t3
	jmp strout
dump	jmp (tmp)
pi	lda #<pk
	ldy #>pk
piend	jsr memfac
	lda #0
	sta typ
	rts
ex	lda #<fl27
	ldy #>fl27
	jmp piend
errx	dex
	txa
	asl
	tax
	lda et,x
	sta stradr
	lda et+1,x
	jmp error
cvic	lda #<flvic
	ldy #>flvic
	jmp piend
csid	lda #<flsid
	ldy #>flsid
	jmp piend
ccol	lda #<flcol
	ldy #>flcol
	jmp piend
cvid	lda #0
	sta fac+1
	lda page
	sta fac
	ldx #$90
	sec
	jmp intfac
sum	jsr getklam
	jsr facasc
	ldy #0
	sty tmp
	dey
add	iny
	lda num,y
	beq sumend
	cmp #"1"
	bcc add
	cmp #"9"+1
	bcs add
	sec
	sbc #"0"
	clc
	adc tmp
	sta tmp
	jmp add
sumend	ldy tmp
	jsr yfac
	jmp back
prim1	jsr getklam
	jsr abs
	jsr ganz
	beq priok
	ldx #1
	jmp errx
priok	lda #<fl2
	ldy #>fl2
	jsr vergl
	cmp #1
	beq facgr
	ldx #<dvs
	ldy #>dvs
	jsr facmem
prim0	lda #0
	jmp aus
facgr	ldx #<flp
	ldy #>flp
	jsr facmem
	lda #<fl2
	ldy #>fl2
	jsr memfac
testdiv	ldx #<dvs
	ldy #>dvs
	jsr facmem
	lda #<flp
	ldy #>flp
	jsr memdiv
	jsr ganz
	beq prim0
	lda #<dvs
	ldy #>dvs
	jsr memfac
	jsr pl05
	jsr pl05
	lda #<flp
	ldy #>flp
	jsr vergl
	bmi testdiv
	lda #-1
aus	pha
	jsr afac
	pla
	rts
prim	jsr prim1
back	lda #0
	sta typ
	lda #-1
	rts
diiv	jsr prim1
	beq filz
	lda #<flp
	ldy #>flp
	jmp piend
filz	lda #<dvs
	ldy #>dvs
	jmp piend
ganz	ldx #<flt
	ldy #>flt
	jsr facmem
	jsr int
	lda #<flt
	ldy #>flt
	jsr vergl
	cmp #0
	rts
deg	jsr getklam
	lda #<fl180
	ldy #>fl180
	jsr memmult
	jmp back
rad	jsr getklam
	lda #<fl180
	ldy #>fl180
	jsr memdiv
	jmp rezi
facout	ldx #<fme
	ldy #>fme
	jsr facmem
	jsr facasc
	jsr strout
	jsr return
	lda #<fme
	ldy #>fme
	jmp memfac
root	jsr chkauf
	jsr frmnum
	jsr rezi
	ldx #<flp
	ldy #>flp
	jsr facmem
	jsr komma
	jsr frmnum
	jsr chkzu
	jsr facarg
	lda #<flp
	ldy #>flp
	jsr memhoch
	jmp back
rez	jsr getklam
rezi	lda #<fl1
	ldy #>fl1
	jsr memdiv
	jmp back
ram	lda #48
	jmp writeln
chr	lda #49
writeln	sta lat
	jsr getklam
	lda byt
	pha
	lda byt+1
	pha
	jsr integer
	lda konf
	pha
	sei
	lda lat
	sta konf
	ldy #0
	lda (byt),y
	tay
	pla
	sta konf
	cli
	pla
	sta byt+1
	pla
	sta byt
	jmp yfac
cot	jsr getklam
	jsr tan
	jmp rezi
csc	jsr getklam
	jsr sin
	jmp rezi
sek	jsr getklam
	jsr cos
	jmp rezi
mod	jsr chkauf
	jsr frmnum
	ldx #<flp
	ldy #>flp
	jsr facmem
	jsr komma
	jsr frmnum
	jsr chkzu
	ldx #<dvs
	ldy #>dvs
	jsr facmem
	lda #<flp
	ldy #>flp
	jsr memarg
	lda exp
	jsr div
	jsr int
	lda #<dvs
	ldy #>dvs
	jsr memmult
	lda #<flp
	ldy #>flp
	jsr memmin
	jmp back
old	lda #1
	tay
	sta (prg),y
	jsr link
	lda stradr
	ldy stradr+1
	clc
	adc #2
	bcc noiny
	iny
noiny	sta varb
	sty varb+1
	jsr clr
	jmp eingabe
init	jsr clrsid
	jsr clrvec
	lda #<exnw
	ldy #>exnw
	sta basvec
	sty basvec+1
	lda #<func
	ldy #>func
	sta funvec
	sty funvec+1
	lda #<irq
	ldy #>irq
	sta irqvec
	sty irqvec+1
	lda mem+1
	bpl klei
	lda #128
	sta mem+1
klei	lda #<t1
	ldy #>t1
	jsr strout
	lda mem
	sec
	sbc prg
	tax
	lda mem+1
	sbc prg+1
	jsr axout
	lda #<t2
	ldy #>t2
	jsr strout
	lda #6
	sta frame
	sta screen
	rts
exnw	jsr chrget
	ldx #$ff
nss	inx
	txa
	asl
	tay
	lda x1,y
	sta tmp
	lda x1+1,y
	sta tmp+1
	bne nofin
	lda tmp
	bne nofin
	jsr chrgot
	jmp basic
nofin	ldy #255
ssuch	iny
	lda (tmp),y
	beq wirkl
	cmp (ptr),y
	beq ssuch
	bne nss
wirkl	txa
	asl
	tax
	lda x2,x
	sta tmp
	lda x2+1,x
	sta tmp+1
	jsr yptr
	jsr chrgot
	jsr dump
	jmp inter
func	lda #0
	sta typ
	jsr chrget
	ldx #$ff
ssn	inx
	txa
	asl
	tay
	lda y1,y
	sta tmp
	lda y1+1,y
	sta tmp+1
	bne noinf
	lda tmp
	bne noinf
	jsr chrgot
	jmp funcold
noinf	ldy #$ff
naja	iny
	lda (tmp),y
	beq sowas
	cmp (ptr),y
	beq naja
	bne ssn
sowas	txa
	asl
	tax
	lda y2,x
	sta tmp
	lda y2+1,x
	sta tmp+1
	jsr yptr
	jsr dump
	jmp chrgot
inkey	lda #0
	sta tast
wk	lda tast
	beq wk
	jmp illquan
deek	jsr getklam
	lda byt
	pha
	lda byt+1
	pha
	jsr integer
	ldy #0
	lda (byt),y
	sta fac+1
	iny
	lda (byt),y
	sta fac
rest	ldx #$90
	sec
	jsr intfac
	pla
	sta byt+1
	pla
	sta byt
	jmp back
xor	jsr chkauf
	jsr frmnum
	lda byt
	pha
	lda byt+1
	pha
	jsr integer
	lda byt
	pha
	lda byt+1
	pha
	jsr komma
	jsr frmnum
	jsr integer
	jsr chkzu
	pla
	eor byt+1
	sta fac
	pla
	eor byt
	sta fac+1
	jmp rest
use1	jsr getx
	dex
	cpx #30
	bcc gut1
ill	ldx #2
	jmp errx
gut1	txa
	pha
	jsr komma
	jsr getx
	cpx #30
	bcs ill
	txa
	pha
	jsr komma
	jsr frmnum
	jsr facasc
	pla
	sta tmp
	pla
	sta tmp+1
	ldx #0
suchp	lda num,x
	beq fnd
	cmp #"e"
	beq illexp
	cmp #"."
	beq fnd
	inx
	bne suchp
fnd	dex
	stx org
	lda tmp+1
	sec
	sbc org
	cmp tmp+1
	beq gut2
	bcs plc
gut2	tax
	beq mn
vorzeit	jsr space
	dex
	bne vorzeit
	ldx #0
mn	lda num,x
	beq totalend
	cmp #"."
	beq end
	jsr out
	inx
	bne mn
end	jsr out
	ldy #0
	inx
after	lda num,x
	beq tt
	jsr out
	inx
	iny
	cpy tmp
	bcc after
	rts
tt	jsr space
	iny
	cpy tmp
	bcc tt
	rts
totalend	jsr space
	ldy #0
	beq tt
illexp	ldx #3
	jmp errx
plc	ldx #4
	jmp errx
use	jsr use1
	jsr chrgot
	jmp print
trapon	txa
	bpl feh
	jmp ready
feh	lda line
	sta el
	lda line+1
	sta el+1
	stx en
	jsr current
	lda ea
	sta ptr
	lda ea+1
	sta ptr+1
	jmp inter
current	jsr nextst
	tya
	clc
	adc ptr
	sta ep
	lda ptr+1
	adc #0
	sta ep+1
	rts
errn	ldy en
	jmp yfac
errl	lda el+1
	cmp #255
	beq mi1
	sta fac
	lda el
	sta fac+1
	ldx #$90
	sec
	jmp intfac
mi1	lda #-1
	jmp afac
trap	jsr linenr
	jsr findlin
	bcs f
	jmp undefd
f	lda adr
	sec
	sbc #1
	sta ea
	lda adr+1
	sbc #0
	sta ea+1
	
	lda #<trapon
	ldy #>trapon
es	sta errvec
	sty errvec+1
	rts
toff	lda #<olderr
	ldy #>olderr
	jmp es
resume	lda el+1
	cmp #255
	bne ttt
x5	ldx #5
	jmp errx
ttt	ldx ep+1
	beq x5
	sta line+1
	lda el
	sta line
	lda ep
	sta ptr
	lda ep+1
	sta ptr+1
	rts
odd	jsr getklam
	jsr integer2
	lsr ffac
	bcc ger
	lda #0
	.byt $2c
ger	lda #-1
	jmp afac
fak	jsr getklam
	ldx #<flp
	ldy #>flp
	jsr facmem
	bit sign
	bpl facpos
	jmp illquan
facpos	lda #<fl34
	ldy #>fl34
	jsr vergl
	bmi kl34
	jmp overflow
kl34	lda exp
	beq glcheins
	lda #<fl1
	ldy #>fl1
	jsr vergl
	bmi poly
schlei	lda #<flm1
	ldy #>flm1
	jsr memplus
	lda #<fl1
	ldy #>fl1
	jsr vergl
	bmi next
	ldx #<dvs
	ldy #>dvs
	jsr facmem
	lda #<flp
	ldy #>flp
	jsr memmult
	ldx #<flp
	ldy #>flp
	jsr facmem
	lda #<dvs
	ldy #>dvs
	jsr memfac
	jmp schlei
next	lda #<fl1
	ldy #>fl1
	jsr vergl
	bne weiter
	lda #<flp
	ldy #>flp
	jmp memfac
weiter	jsr poly
	lda #<flp
	ldy #>flp
	jmp memmult
glcheins	lda #<fl1
	ldy #>fl1
	jmp memfac
poly	lda #<koeff
	ldy #>koeff
	jmp polynom
dir	lda #"$"
	sta latch
	lda #"0"
	sta latch+1
	ldx #2
	jsr chrgot
	beq nopara
	jsr fremevl
	jsr frestr
	sta tmp
	ldy #-1
	ldx #3
	lda #":"
	sta latch+2
trns	iny
	cpy tmp
	bcs nopara
	lda (stradr),y
	sta latch,x
	inx
	bne trns
nopara	stx fnlen
	lda #<latch
	ldy #>latch
	sta fnadr
	sty fnadr+1
	lda #8
	sta ga
	lda #$60
	sta sa
	jsr sendnam
	lda ga
	jsr talk
	lda sa
	jsr sectalk
	lda #0
	sta status
	ldy #3
	lda #0
	sta dvs
l1	sty tmp
	jsr iecin
	sta tmp+1
	ldy status
	bne l4
	jsr iecin
	ldy status
	bne l4
	ldy tmp
	dey
	bne l1
	sta tmp
	jsr l5
	lda #0
	sta flp
l3	jsr iecin
	ldx status
	bne l4
	ldx flp
	bne l7
l8	tax
	beq l2
	jsr out
	jsr stop
	beq l9
	lda spalte
	cmp #22
	bne l3
	lda #<t5
	ldy #>t5
	jsr strout
	lda #1
	sta flp
	jmp l3
l4	jsr clsfil
	lda #<t6
	ldy #>t6
	jsr strout
	ldx dvs
	dex
	dex
	lda #0
	jsr axout
	lda #<t7
	ldy #>t7
	jmp strout
l5	lda #<t4
	ldy #>t4
	jsr strout
l6	jsr iecin
	and #127
	cmp #32
	beq l6
	cmp #160
	beq l6
	jmp out
l2	lda #")"
	jsr out
	jsr space
	ldx tmp+1
	lda tmp
	jsr axout
	inc dvs
	jsr return
	ldy #2
	jmp l1
l7	and #127
	cmp #32
	beq l3
	cmp #160
	bne l8
	jmp l3
l9	inc dvs
	jmp l4
err	jsr getklam
	jsr integer
	lda byt+1
	beq hi0
th	ldx #6
	jmp errx
hi0	ldx byt
	beq th
	cpx #31
	bcs th
	ldy #0
	dex
	txa
	asl
	tax
	lda errtab,x
	sta stradr
	lda errtab+1,x
	sta stradr+1
text	lda (stradr),y
	pha
	and #$7f
	sta latch,y
	iny
	pla
	bpl text
	ldx #0
post	lda t8,x
	beq fin
	sta latch,y
	iny
	inx
	bne post
fin	tya
	pha
	jsr strres
	pla
	tay
transd	dey
	cpy #255
	beq finn
	lda latch,y
	sta (zeig),y
	jmp transd
finn	jmp desc
irq	jsr tastirq
	jmp oldirq
tastirq	lda key
	ldy #3
	cmp last
	beq rt
	sta last
sucht	cmp chain,y
	beq daisy
	dey
	bpl sucht
rt	rts
daisy	iny
	tya
	asl
	tay
	lda shift
	and #1
	bne sft
	dey
sft	dey
	tya
	asl
	tay
	lda ktab,y
	sta work
	lda ktab+1,y
	sta work+1
	ldy #-1
putbuf	iny
	lda (work),y
	cmp #"\x01"
	beq fnsh
	cmp #"_"
	bne nocr
	lda #13
nocr	sta kbuf,y
	jmp putbuf
fnsh	sty tast
	rts
setkey	beq showkey
	jsr getx
	cpx #1
	bcs gross
illnr	ldx #7
	jmp errx
gross	cpx #9
	bcs illnr
	txa
	pha
	jsr komma
	jsr fremevl
	jsr frestr
	cmp #11
	bcc enough
	jmp toolong
enough	sta flp
	pla
	sec
	sbc #1
	asl
	tay
	sei
	lda ktab,y
	sta work
	lda ktab+1,y
	sta work+1
	ldy #-1
settext	iny
	cpy flp
	bcs full
	lda (stradr),y
	sta (work),y
	jmp settext
full	lda #"\x01"
	sta (work),y
	cli
	rts
showkey	ldx #1
keyloop	stx flp
	dex
	txa
	asl
	tax
	lda ktab,x
	sta tmp
	lda ktab+1,x
	sta tmp+1
	lda #<t9
	ldy #>t9
	jsr strout
	lda #0
	ldx flp
	jsr axout
	lda #","
	jsr out
	jsr space
	lda #34
	ldy #0
	jsr out
letter	lda (tmp),y
	cmp #"\x01"
	beq nextkey
	jsr out
	iny
	bne letter
nextkey	lda #34
	jsr out
	jsr return
	ldx flp
	inx
	cpx #9
	bcc keyloop
	rts
repeat	pla
	sta flp
	pla
	sta dvs
	lda #3
	jsr teststack
	lda ptr
	pha
	lda ptr+1
	pha
	lda line
	pha
	lda line+1
	pha
	lda #"r"
	pha
	lda dvs
	pha
	lda flp
	pha
	rts
until	tsx
	inx
	inx
	lda num+1,x
	cmp #"r"
	bne un2
	txs
	jsr fremevl
	tsx
	lda exp
	bne un1
	jsr ew1
	bne un3
ew1	lda num+2,x
	sta line+1
	lda num+3,x
	sta line
	lda num+4,x
	sta ptr+1
	lda num+5,x
	sta ptr
	rts
un1	txa
	clc
	adc #5
	tax
	txs
un3	jmp inter
un2	ldx #8
	jmp errx
pop	lda #-1
	sta varnam+1
	jsr suchstack
	txs
	cmp #$8d
	bne poperr
	pla
	pla
	pla
	pla
	pla
	rts
poperr	ldx #9
	jmp errx
erase	jsr getx
	cpx #25
	bcc eraok
illk	ldx #10
	jmp errx
eraok	jmp clrx
pat	jsr getx
	cpx #25
	bcs illk
	txa
	pha
	jsr komma
	jsr getx
	cpx #40
	bcs illk
	stx spalte
	pla
	sta zeile
	jsr setcr
	jsr chrgot
	cmp #","
	bne at1
	jsr komma
	jmp print
at1	rts
disk	lda #0
	sta status
	jsr return
	lda #8
	sta ga
	jsr talk
	lda #$6f
	sta sa
	jsr sectalk
erri	jsr iecin
	bit status
	bvs endc
	jsr out
	bcc erri
endc	jmp untalk
send	jsr fremevl
	jsr frestr
	sta flp
	lda #8
	sta ga
	jsr listen
	lda #$6f
	sta sa
	jsr seclist
	ldy #0
cmdout	cpy flp
	bcs cmdouted
	lda (stradr),y
	iny
	sty dvs
	jsr iecout
	ldy dvs
	bne cmdout
cmdouted	jmp unlist
clrfac	lda #0
	ldx #$a
cfac	sta float,x
	dex
	bpl cfac
	rts
hex	jsr clrfac
	jsr chrgot
	jmp frm
gethx	jsr chrget
frm	bcc ziffer
	cmp #"a"
	bcc hend
	cmp #"g"
	bcs hend
	sec
	sbc #7
ziffer	sec
	sbc #"0"
	pha
	lda exp
	beq nochnull
	clc
	adc #4
	bcs over
	sta exp
nochnull	pla
	beq gethx
	jsr addziff
	jmp gethx
hend	rts
over	jmp overflow
bin	jsr clrfac
	jsr chrgot
	jmp fmr
getbi	jsr chrget
fmr	cmp #"2"
	bcs hend
	cmp #"0"
	bcc hend
	sbc #"0"
	pha
	lda exp
	beq nnull
	inc exp
	beq over
nnull	pla
	beq getbi
	jsr addziff
	jmp getbi
swap	lda #0
	sta intflg
	jsr suchvar
	sta des
	sty des+1
	jsr komma
	lda typ2
	pha
	lda typ1
	pha
	jsr suchvar
	pla
	cmp typ1
	bne swerr
	pla
	cmp typ2
	bne swerr
	ldy #4
tausch	lda (var),y
	tax
	lda (des),y
	sta (var),y
	txa
	sta (des),y
	dey
	bpl tausch
	rts
swerr	jmp typemiss
beep	jsr getx
	inx
	stx flp
	jsr clrsid
	lda #15
	sta sid+24
	lda #150
	sta sid+1
	lda #240
	sta sid+6
	lda #9
	sta sid+5
	lda #33
	sta sid+4
klang	jsr paus
	dec flp
	bne klang
	jsr clrsid
	ldx #255
	bne paus1
paus	ldy #0
	ldx #69
paus1	dey
	bne paus1
	dex
	bne paus1
	rts
clrsid	ldy #24
	lda #0
clrsi	sta sid,y
	dey
	bpl clrsi
	rts
doke	jsr frmnum
	jsr integer
	pha
	tya
	pha
	jsr komma
	jsr frmnum
	jsr integer
	ldy #0
	pla
	sta tmp
	pla
	sta tmp+1
	lda byt
	sta (tmp),y
	iny
	lda byt+1
	sta (tmp),y
drin	rts
mark	jsr fremevl
	jsr frestr
	cmp #11
	bcc passt
	jmp toolong
passt	tay
	sty tast
bufcop	dey
	bmi drin
	lda (stradr),y
	sta kbuf,y
	clc
	bcc bufcop
