;:poke55,168:poke56,97:clr:printfre(0)"free
;:sys36864
	;.opt oo
	*= 25000
vicinit	=$ff81
vic	=$d000
bsout	=$ffd2
bsin	=$ffcf
strout	=$ab1e
tmp	=251
open	=$ffc0
close	=$ffc3
clall	=$ffe7
setnam	=$ffbd
setpar	=$ffba
chkin	=$ffc6
chkout	=$ffc9
clrchn	=$ffcc
cr	=13
prompt	=">"
return	=$aad7
basic	=$e37b
getin	=$ffe4
space	=$ab3f
big	=8
rvs	=199
quote	=212
keybuf	=631
nmbkey	=198
repeat	=650
big2	=32
setcr	=58732
spalte	=211
axout	=$bdcd
status	=$90
himem	=55
himem2	=51
getx	=$b7f1
chrgot	=121
befe	=$a09e
integer	=$b7f7
round	=$bc1b
ascfloat	=$bcf3
chrptr	=$7a
byte	=$14
exp	=$61
vorz	=$66
st	jmp mainstart
;
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
;
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
;
typ	.byt 1,2,2,1,3,2,2,3,3,2,2,2,3
adtab	.word ad0,ad2,ad3,ad4,ad5,ad6,ad7,ad8,ad9
	.word ad10,ad11,ad12,ad13
mne	.byte "\x9d  adcandaslbccbcsbeqbitbmibnebplbrk"
	.byte "bvcbvsclccldcliclvcmpcpxcpydecdexdey"
	.byte "eorincinxinyjmpjsrldaldxldylsrnopora"
	.byte "phaphpplaplprolrorrtirtssbcsecsedsei"
	.byte "stastxstytaxtaytsxtxatxstyaaaxdcpisc"
	.byte "laxrlarraslosrenopnop"
hello	.byte "\x93\x11\x8e\x9f  **** nss diskmemorymonitor v1.1 ****"
	.byt cr
	.byte "\x11 cbm 64 with vc 1541      (c) nh 270786\x11"
	.byt cr
	.byt "\x11",prompt
	.byte ";enter '?' for a help !"
	.byt cr,0
restxt	.byte "uj"
errtxt	.byt cr
	.byte "\x91\x91\x12"
	.byt prompt,cr,0
ovtxt	.byte "\x12stack overflow"
	.byt cr,0
untxt	.byte "\x12stack underflow"
	.byt cr,0
toman	.byte "\x12too often found"
	.byt cr,0
jobtxt	.byt prompt
	.byte ";buf# job/error        tr se (dec)"
	.byt cr,0
puff	.byt prompt
	.byte "; nr jo tr se  adr"
	.byt cr,0
pufff	.byte "00-ff"
	.byt cr,0
i	.byte "i0"
suchtxt	.byte "uc"
sadr	.word 0,0
	.byt 0
	.word 0
oft	.byte "x found"
	.byt cr,0
hex	.byte "0123456789abcdef"
transtxt	.byte "\x91write to $"
	.byt 0
flop	.byte "uc"
ad1	.word 0
	.byt 0
memtxt	.byte "\x91\x1d:"
	.byt 0
chrtxt	.byte "\x91\x1d;"
	.byt 0
write	.byte "m-w"
wr1	.word 0
	.byt 0
jo0	.byte "read"
	.byt 0
jo1	.byte "write"
	.byt 0
jo2	.byte "verify"
	.byt 0
jo3	.byte "search"
	.byt 0
jo4	.byte "bump & goto"
	.byt 0
jo5	.byte "execute"
	.byt 0
jobte	.word jo0,jo1,jo2,jo3,jo4,jo5,jo5
jobread	.byte "m-r"
low	.word 0
ok	.byte "ok"
	.byt 0
nc	.byte "n.c."
	.byt 0
erro	.byte "error #"
	.byt 0
testtxt	.byte "m-r\x02\x05"
exectxt	.byte "m-e"
exadr	.word 0
listtxt	.byte "\x12h\x92exdump, \x12t\x92ext, \x12b\x92asic or \x12q\x92uit ?"
	.byt cr,0
nerr	.byte "device missing"
	.byt cr,0
lerr	.byte "file not found"
	.byt cr,0
first	.byte "byte 1 & 2 = startadress ? [yn]"
	.byt cr,0
jobwrite	.byte "m-w"
to	.word 0,$100
device	.byt 8
fg	.byt 0
neu	.word 0
temp	.byt 0
sp	.byt 0
ptr	.byt 0
stack	.word 0,0,0,0,0
latch	.word 0,0,0,0
temp2	.byt 0
char	.byt 0
stat	.byte "x;m:cd?*@^glnjr$#bsty"
	.byt 0
adr	.word exit,rem,mem,change,charr,disas,help,restart
	.word cmd,job,exec,list,number,setjob,reset
	.word hexdez,dezhex,bump,such,transmit,copy
newprg	.byte "m-w"
	.byt 0,5,f2-f1
f1	pla
	pla
	lda $202
	sta $6f
	lda $203
	sta $70
	dec $204
	ldy $204
x7	lda ($6f),y
	sta $580,y
	dey
	bpl x7
	lda $204
f2	.byte "m-w"
	.byt f2-newprg-6,5,f3-f4
f4	sta $249
	lda $580
	sta $85
	lda #$81
	sta $a5
	lda #$5
	jmp $cb40
f3	=*
newprg2	.byte "m-w"
	.byt 0,5,g2-g1
g1	ldy #0
	sty $4ff
	sty $4fe
	lda $202
	ldy $203
	sta $14
	sty $15
	ldy #-1
gg1	iny
	cpy $206
	beq *+30
	lda $207,y
	cmp ($14),y
	beq gg1
g2	.byte "m-w"
	.byt g2-newprg2-6,5,g3-g4
g4	inc $14
	bne gg3
	inc $15
gg3	lda $14
	cmp $204
	bne *-26
	lda $15
	cmp $205
	bne *-33
	rts
	ldx $4ff
	lda $14
	sta $300,x
	lda $15
	sta $600,x
g3	.byte "m-w"
	.byt g3-newprg2-12,5,g5-g6
g6	inc $4ff
	bne *-37
	lda #-1
	sta $4fe
	rts
g5	=*
htxt	.byte "\x11m memory     : change     * restart"
	.byt cr
	.byte "? help       ; remark     d disasembly"
	.byt cr
	.byte "c char       @ errchn, send cmds, dir"
	.byt cr
	.byte "^ list jobs  g execute    l list prg"
	.byt cr
	.byte "n device#    j set jobs   r reset drive"
	.byt cr
	.byte "$ hex->dez   # dez->hex   x quit"
	.byt 0
cont	.byt cr
	.byte "b bump       s search     t transfer"
	.byt cr
	.byte "y copy"
	.byt cr,0
mainstart	jsr chrgot
	beq main
	jsr getx
	stx device
main	lda #<st
	ldy #>st
	sta himem
	sta himem2
	sty himem+1
	sty himem2+1
	jsr init
	lda #<hello
	ldy #>hello
	jsr strout
run	jsr clrpuf
	jsr input
	jsr get
	bcs run
	sta char
	ldx #0
r0	lda stat,x
	beq err
	cmp char
	beq r1
	inx
	bne r0
err	lda #<errtxt
	ldy #>errtxt
	jsr strout
	jmp run
r1	txa
	asl
	tax
	lda adr,x
	sta goto+1
	lda adr+1,x
	sta goto+2
goto	jsr 0
	bcc run
	bcs err
input	jsr ptout
	ldx #0
	stx fg
	stx ptr
i0	jsr bsin
	cmp #cr
	beq i1
	sta buff,x
	inx
	bne i0
i1	lda #0
	sta buff,x
	ldx #-1
	ldy #-1
i2	inx
	lda buff,x
	beq i3
	cmp #34
	bne i4
	lda fg
	eor #-1
	sta fg
	lda #34
i4	bit fg
	bmi i5
	cmp #prompt
	beq i2
	cmp #32
	beq i2
	cmp #160
	beq i2
i5	iny
	sta buff,y
	jmp i2
i3	iny
	sta buff,y
	jmp return
get	jsr putx
	ldx ptr
	inc ptr
	lda buff,x
	beq g0
	jsr holx
	clc
	rts
g0	jsr holx
	sec
	rts
putx	pha
	txa
	ldx sp
	sta stack,x
	inc sp
	inx
	cpx #10
	bcs over
	tax
	pla
	rts
over	lda #<ovtxt
	ldy #>ovtxt
	jsr strout
	pla
	rts
holx	pha
	dec sp
	bmi under
	ldx sp
	lda stack,x
	tax
	pla
	rts
under	lda #<untxt
	ldy #>untxt
	jsr strout
	pla
	rts
initf	jsr clall
	ldx #<i
	ldy #>i
	lda #2
	jsr setnam
	lda #15
	tay
	ldx device
	jsr setpar
	jsr open
	jmp test
init	jsr vicinit
	lda #0
	sta sp
	lda #128
	sta repeat
	lda #0
	sta tmp
	sta tmp+1
	sta vic+32
	sta vic+33
	jmp initf
hexout	pha
	lsr
	lsr
	lsr
	lsr
	jsr h0
	pla
h0	and #$f
	tax
	lda hex,x
	jmp bsout
hexin	jsr get
	bcs h1
	jsr h2
	bcs h1
	asl
	asl
	asl
	asl
	sta add+1
	jsr get
	bcs h1
	jsr h2
	bcs h1
add	adc #0
	rts
h2	ldx #15
h3	cmp hex,x
	beq h4
	dex
	bpl h3
	sec
	.byt $2c
h4	txa
	clc
h1	rts
tmp8	lda tmp
	clc
	adc #big
	sta tmp
	lda tmp+1
	adc #0
	sta tmp+1
	rts
tmp32	lda tmp
	clc
	adc #big2
	sta tmp
	lda tmp+1
	adc #0
	sta tmp+1
	rts
adrout	lda tmp+1
	jsr hexout
	lda tmp
	jmp hexspa
getadr	jsr hexin
	bcs h1
	sta temp
	jsr hexin
	bcs h5
	sta tmp
	lda temp
	sta tmp+1
	rts
h5	lda temp
	sta tmp
	rts
asciout	pha
	lda #1
	sta quote
	pla
	cmp #cr
	bne nocr
	lda #"m"
a0	pha
	lda #1
	sta rvs
	pla
	jsr bsout
	lda #0
	sta rvs
	rts
nocr	cmp #cr+128
	bne noscr
	lda #"M"
	bne a0
noscr	cmp #20
	bne nodel
	lda #"t"
	bne a0
nodel	jsr bsout
	rts
sendfl	stx ad1+2
	lda tmp
	sta ad1
	lda tmp+1
	sta ad1+1
	jsr out15
	ldx #0
s0	lda flop,x
	jsr bsout
	inx
	cpx #memtxt-flop
	bcc s0
	jmp clrchn
setkey	sta keybuf
	lda #"\x9d"
	sta keybuf+1
	lda #2
	sta nmbkey
	rts
sendprg	jsr out15
	ldx #0
sp0	lda newprg,x
	jsr bsout
	inx
	cpx #f2-newprg
	bcc sp0
	jsr clrchn
	jsr out15
	ldx #0
sp1	lda f2,x
	jsr bsout
	inx
	cpx #f3-f2
	bcc sp1
	jmp clrchn
test	jsr out15
	ldx #0
te0	lda testtxt,x
	jsr bsout
	inx
	cpx #5
	bcc te0
	jsr clrchn
	jsr in15
	jsr getin
	pha
	jsr clrchn
	pla
	cmp f1+2
	bne sendprg
	rts
trans	jsr out15
	ldx #0
sp2	lda newprg2,x
	jsr bsout
	inx
	cpx #g2-newprg2
	bcc sp2
	jsr clrchn
	jsr out15
	ldx #0
sp3	lda g2,x
	jsr bsout
	inx
	cpx #g3-g2
	bcc sp3
	jsr clrchn
	jsr out15
	ldx #0
sp4	lda g3,x
	jsr bsout
	inx
	cpx #g5-g3
	bcc sp4
	jmp clrchn
clrpuf	ldy #0
	tya
clp0	sta buff,y
	dey
	bne clp0
	rts
setspa	sta spalte
	jmp setcr
ptout	lda #prompt
	.byt $2c
up	lda #"\x91"
	jmp bsout
hexspa	jsr hexout
	jmp space
out15	ldx #15
	jmp chkout
in15	ldx #15
	jmp chkin
default	lda char
	jmp bsout
tmp1	inc tmp
	bne noinc
	inc tmp+1
noinc	rts
latch1	inc latch
	bne noinc
	inc latch+1
	rts
rem	clc
	rts
exit	lda #15
	jsr close
	jmp basic
help	lda #<htxt
	ldy #>htxt
	jsr strout
	lda #<cont
	ldy #>cont
	jsr strout
	clc
	rts
restart	lda #15
	jsr close
	pla
	pla
	jmp mainstart
number	jsr hexin
	bcc set
	jsr space
	jsr default
	jsr space
	lda device
	jsr hexout
	jsr up
	jmp rtend
set	sta temp
	lda #15
	jsr close
	lda #2
	ldx #<i
	ldy #>i
	jsr setnam
	lda #15
	tay
	ldx temp
	jsr setpar
	jsr open
	php
	lda #15
	jsr close
	plp
	bcc gut
	jsr initf
	lda #<nerr
	ldy #>nerr
	jsr strout
	clc
	rts
gut	lda temp
	sta device
	jsr initf
	clc
	rts
mem	jsr getadr
	lda #<memtxt
	ldy #>memtxt
	jsr strout
	jsr adrout
	jsr test
	ldx #big
	jsr sendfl
	jsr in15
	ldx #big-1
m0	jsr putx
	jsr getin
	sta latch,x
	jsr hexspa
	jsr holx
	dex
	bpl m0
	jsr clrchn
	jsr tmp8
	ldx #big-1
m1	lda latch,x
	jsr asciout
	dex
	bpl m1
	lda #"m"
	jsr setkey
	jsr return
	clc
	rts
charr	jsr getadr
	lda #<chrtxt
	ldy #>chrtxt
	jsr strout
	jsr adrout
	jsr test
	ldx #big2
	jsr sendfl
	jsr in15
	ldx #big2-1
c0	jsr putx
	jsr getin
	jsr asciout
	jsr holx
	dex
	bpl c0
	jsr tmp32
	jsr clrchn
	lda #"c"
	jsr setkey
rtend	jsr return
	clc
	rts
disas	jsr getadr
	lda #<memtxt
	ldy #>memtxt
	jsr strout
	jsr adrout
	jsr space
	jsr space
	jsr test
	ldx #3
	jsr sendfl
	jsr in15
	ldx #0
d0	jsr getin
	sta latch,x
	inx
	cpx #3
	bcc d0
	jsr clrchn
	lda latch
	jsr hexspa
	lda latch
	pha
	tax
	lda adart,x
	tax
	dex
	stx temp2
	lda typ,x
	pha
	tax
	ldy #0
d1	dex
	beq d2
	iny
	lda latch,y
	jsr putx
	jsr hexspa
	jsr holx
	jmp d1
d2	lda #20
	jsr setspa
	lda #":"
	jsr bsout
	pla
	clc
	adc tmp
	sta neu
	lda tmp+1
	adc #0
	sta neu+1
	pla
	tax
	lda oper,x
	sta temp
	asl
	clc
	adc temp
	tay
	lda mne,y
	jsr bsout
	lda mne+1,y
	jsr bsout
	lda mne+2,y
	jsr bsout
	lda temp2
	asl
	tax
	lda adtab,x
	sta adre+1
	lda adtab+1,x
	sta adre+2
	jsr space
adre	jsr 0
	lda neu
	ldy neu+1
	sta tmp
	sty tmp+1
	lda #"d"
	jsr setkey
	jmp rtend
ad0	rts
ad2	lda #"#"
	jsr bsout
ad3	lda latch+1
	jmp hexout
ad4	lda #"a"
	jmp bsout
ad5	lda latch+2
	jsr hexout
	jmp ad3
ad8	jsr ad5
	jmp ad11a
ad9	jsr ad5
ad10a	lda #","
	jsr bsout
	lda #"y"
	jmp bsout
ad6	jsr ad3
ad11a	lda #","
	jsr bsout
	lda #"x"
	jmp bsout
ad7	jsr ad3
	jmp ad10a
ad13	lda #"("
	jsr bsout
	jsr ad5
ad11b	lda #")"
	jmp bsout
ad12	lda latch+1
	pha
	bmi ad12a
	lda #"+"
	.byt $2c
ad12a	lda #"-"
	jsr bsout
	pla
	pha
	bpl ad12b
	eor #-1
	clc
	adc #1
ad12b	jsr hexout
	jmp branch
ad10	lda #"("
	jsr bsout
	jsr ad3
	lda #")"
	jsr bsout
	bcc ad10a
ad11	lda #"("
	jsr bsout
	jsr ad3
	jsr ad11a
	jmp ad11b
branch	jsr space
	jsr bsout
	lda #1
	sta rvs
	pla
	bmi ad12c
	clc
	adc #2
	php
	clc
	adc tmp
	sta tmp
	lda tmp+1
	adc #0
	plp
	adc #0
ad12d	jsr hexout
	lda tmp
	jmp hexout
ad12c	eor #-1
	sec
	sbc #1
	php
	sta temp
	lda tmp
	sec
	sbc temp
	sta tmp
	lda tmp+1
	sbc #0
	plp
	sbc #0
	jmp ad12d
cmd	jsr get
	bcc cm0
	jsr in15
	lda #0
	sta status
cm1	jsr getin
	jsr bsout
	bit status
	bvc cm1
	jmp clrchn
cm0	cmp #"$"
	beq cm4
	jsr out15
	dec ptr
cm2	jsr get
	bcs cm3
	jsr bsout
	bcc cm2
cm3	jsr clrchn
	clc
	rts
cm4	jsr len
	ldx #<buff+1
	ldy #>buff+1
	jsr setnam
	lda #3
	ldy #0
	ldx device
	jsr setpar
	jsr open
	jsr e0
	jsr getbyt
	bcs cm5
	jsr getbyt
cm6	jsr getbyt
	jsr getbyt
	jsr getbyt
	bcs cm5
	tax
	jsr getbyt
	jsr axout
	jsr space
cm7	jsr getbyt
	tax
	beq cm8
	jsr bsout
	jmp cm7
cm8	jsr return
	jsr clrchn
	jsr getin
	cmp #" "
	beq wait
	cmp #"\x03"
	bne cm9
cm5	jsr clrchn
	lda #3
	jmp close
cm9	jsr e0
	jmp cm6
wait	jsr getin
	cmp #" "
	bne wait
	beq cm9
getbyt	jsr getin
	bit status
	bvc gy0
	sec
	rts
gy0	clc
	rts
len	ldx #1
ll0	jsr get
	bcs ll1
	inx
	bne ll0
ll1	txa
	rts
change	jsr getadr
	ldx #0
ch0	jsr putx
	jsr hexin
	php
	jsr holx
	plp
	bcs ch1
	sta latch,x
	inx
	cpx #big
	bcc ch0
ch1	dex
	bpl ch2
	sec
	rts
ch2	lda tmp
	sta wr1
	lda tmp+1
	sta wr1+1
	inx
	stx wr1+2
	jsr putx
	jsr out15
	ldx #0
ch3	lda write,x
	jsr bsout
	inx
	cpx #6
	bcc ch3
	jsr holx
	stx temp
	ldx #0
ch4	lda latch,x
	jsr bsout
	inx
	cpx temp
	bcc ch4
ch5	jsr clrchn
	jsr return
	jsr up
	lda #100
	sta ptr
	jsr mem
	php
	lda #0
	sta nmbkey
	plp
	rts
job	jsr get
	bcs gall
	and #$f
	cmp #6
	bcc one
	rts
gall	jmp all
one	pha
	jsr j0
	pla
	tax
handle	jsr putx
	jsr ptout
	lda #";"
	jsr bsout
	jsr space
	lda #0
	jsr axout
	lda #8
	jsr setspa
	jsr holx
	txa
	pha
	jsr read
	pha
	jsr hexspa
	pla
	bpl j3
	lsr
	lsr
	lsr
	and #$e
	tax
	lda jobte+1,x
	tay
	lda jobte,x
j5	jsr strout
	jmp j2
j3	cmp #1
	bcc j6
	bne j4
	lda #<ok
	ldy #>ok
	bne j5
j6	lda #<nc
	ldy #>nc
	bne j5
j4	pha
	lda #<erro
	ldy #>erro
	jsr strout
	pla
	tax
	lda #0
	jsr axout
j2	lda #24
	jsr setspa
	pla
	asl
	clc
	adc #6
	pha
	jsr read
	tax
	lda #0
	jsr axout
	lda #27
	jsr setspa
	pla
	clc
	adc #1
	jsr read
	tax
	lda #0
	jsr axout
	jmp rtend
all	jsr j0
	ldx #0
j1	jsr putx
	jsr handle
	jsr holx
	inx
	cpx #6
	bcc j1
	clc
	rts
j0	lda #<jobtxt
	ldy #>jobtxt
	jmp strout
read	ldy #0
readabs	sty low+1
	sta low
	jsr out15
	ldx #0
rr0	lda jobread,x
	jsr bsout
	inx
	cpx #5
	bcc rr0
	jsr clrchn
	jsr in15
	jsr getin
	pha
	jsr clrchn
	pla
	rts
exec	jsr getadr
	lda tmp
	sta exadr
	lda tmp+1
	sta exadr+1
	jsr out15
	ldx #0
ex0	lda exectxt,x
	jsr bsout
	inx
	cpx #5
	bcc ex0
	jsr clrchn
	clc
	rts
list	jsr get
	cmp #34
	beq l0
l1	sec
	rts
l0	ldx #0
l3	jsr get
	bcs l2
	cmp #34
	beq l2
	inx
	bne l3
l2	txa
	ldx #<buff+2
	ldy #>buff+2
	jsr setnam
	lda #3
	tay
	ldx device
	jsr setpar
	jsr open
	jsr in15
	jsr getin
	pha
	jsr clrchn
	pla
	cmp #"0"
	beq l4
	lda #<lerr
	ldy #>lerr
	jsr strout
l5	jsr clrchn
	lda #3
	jmp close
l4	lda #<listtxt
	ldy #>listtxt
	jsr strout
	lda #0
	sta nmbkey
	sta status
	sta tmp
	sta tmp+1
wati	jsr getin
	cmp #"q"
	beq l5
	cmp #"b"
	beq basc1
	cmp #"h"
	beq l7
	cmp #"t"
	bne wati
	jsr enterf
l8	bit status
	bvs l6
	jsr getin
	jsr asciout
	jmp l8
l6	jsr return
	jmp l5
basc1	jmp basc
l7	jsr enterf
l9	jsr ptout
	lda #";"
	jsr bsout
	jsr adrout
	ldx #big-1
l10	jsr putx
	jsr getin
	pha
	jsr hexspa
	pla
	jsr holx
	sta latch,x
	dex
	bpl l10
	ldx #big-1
l11	lda latch,x
	jsr asciout
	dex
	bpl l11
	jsr return
	jsr tmp8
	bit status
	bvc l9
	jmp l5
enterf	lda #<first
	ldy #>first
	jsr strout
	jsr clrchn
wati2	jsr getin
	cmp #"n"
	beq e0
	cmp #"y"
	bne wati2
e1	jsr e0
	jsr getin
	sta tmp
	jsr getin
	sta tmp+1
	rts
e0	ldx #3
	jmp chkin
b0	jmp l6
basc	jsr e1
	lda #"\x91"
	jsr bsout
b3	jsr getin
	jsr getin
	beq b0
b1	jsr return
	jsr getin
	tax
	jsr getin
	jsr axout
	jsr space
	lda #0
	sta temp
b2	jsr getin
	beq b3
	cmp #34
	bne b4
	lda temp
	eor #-1
	sta temp
	lda #34
b4	tax
	bpl b5
	cmp #-1
	beq b5
	bit temp
	bmi b5
	sec
	sbc #127
	tax
	ldy #-1
b6	dex
	beq b7
b8	iny
	lda befe,y
	bpl b8
	bmi b6
b7	iny
	lda befe,y
	php
	and #$7f
	jsr bsout
	plp
	bpl b7
	bmi b2
b5	jsr bsout
	jmp b2
setjob	jsr hexin
	bcc q0
	lda #<puff
	ldy #>puff
	jsr strout
	ldx #0
q1	jsr putx
	jsr ptout
	jsr default
	jsr space
	txa
	jsr putx
	jsr hexspa
	jsr holx
	txa
	pha
	pha
	jsr read
	jsr hexspa
	pla
	asl
	clc
	adc #6
	pha
	jsr read
	jsr hexspa
	pla
	clc
	adc #1
	jsr read
	jsr hexspa
	lda #";"
	jsr bsout
	pla
	clc
	adc #"3"
	cmp #"8"
	bcs q9
	jsr bsout
	lda #<pufff
	ldy #>pufff
	jsr strout
q8	jsr holx
	inx
	cpx #6
	bcc q1
	clc
	rts
q9	lda #<nc
	ldy #>nc
	jsr strout
	jsr return
	jmp q8
q0	cmp #6
	bcc q2
q3	rts
q2	sta temp
	jsr hexin
	bcs q3
	sta temp2
	jsr hexin
	bcs q3
	cmp #0
	beq q3
	cmp #42
	bcs q3
	pha
	lda temp
	asl
	clc
	adc #6
	tax
	jsr putx
	pla
	jsr store
	jsr hexin
	bcs q3
	cmp #22
	bcs q3
	jsr holx
	inx
	jsr store
	ldx temp
	lda temp2
	jsr store
	clc
	rts
store	ldy #0
storeabs	sta to+3
	stx to
	sty to+1
	jsr out15
	ldx #0
wrt0	lda jobwrite,x
	jsr bsout
	inx
	cpx #7
	bcc wrt0
	jmp clrchn
reset	jsr out15
	lda restxt
	jsr bsout
	lda restxt+1
	jsr bsout
	jsr clrchn
	ldx #255
	ldy #255
	lda #4
pause	dex
	bne pause
	dey
	bne pause
	sec
	sbc #1
	bne pause
	clc
rt	rts
hexdez	lda #0
	sta temp
	sta temp2
hd0	jsr get
	bcs hd1
	jsr temp16
	bcs rt
	jsr h2
	bcs rt
	clc
	adc temp
	sta temp
	lda temp2
	adc #0
	sta temp2
	jmp hd0
hd1	jsr ptout
	lda #"#"
	jsr bsout
	jsr space
	ldx temp
	lda temp2
	jsr axout
	jsr up
	jmp rtend
temp16	ldx #4
t16	asl temp
	rol temp2
	bcs rt
	dex
	bne t16
	rts
dezhex	lda chrptr
	pha
	lda chrptr+1
	pha
	lda #<buff+1
	ldy #>buff+1
	sta chrptr
	sty chrptr+1
	jsr chrgot
	jsr ascfloat
	jsr round
	pla
	sta chrptr+1
	pla
	sta chrptr
	lda vorz
	bmi dh2
	lda exp
	cmp #$91
	bcs dh2
	jsr integer
	jsr ptout
	lda #"$"
	jsr bsout
	jsr space
	lda #0
	sta temp
	lda byte+1
	pha
	lsr
	lsr
	lsr
	lsr
	jsr hh0
	pla
	jsr hh0
	lda byte
	pha
	lsr
	lsr
	lsr
	lsr
	jsr hh0
	pla
	jsr hh0
	jsr up
	jmp rtend
hh0	and #$f
	bit temp
	bmi hh1
	tax
	beq rt2
	ldx #-1
	stx temp
hh1	jmp h0
dh2	sec
rt2	rts
bump	jsr hexin
	bcs bu1
	cmp #42
	bcc bu0
	rts
bu0	ldx #10
	jsr store
bu1	ldx #2
	lda #$c0
	jsr store
	clc
	rts
such	jsr trans
	jsr getadr
	lda tmp
	ldy tmp+1
	sta sadr
	sty sadr+1
	jsr getadr
	jsr tmp1
	lda tmp
	ldy tmp+1
	sta sadr+2
	sty sadr+3
	ldx #0
	lda ptr
	pha
su0	jsr putx
	jsr hexin
	php
	jsr holx
	plp
	bcs su1
	inx
	cpx #28
	bcc su0
su1	pla
	sta ptr
	stx sadr+4
	jsr out15
	ldx #0
su2	lda suchtxt,x
	jsr bsout
	inx
	cpx #7
	bcc su2
su3	jsr hexin
	jsr bsout
	dec sadr+4
	bne su3
	jsr clrchn
	lda #$fe
	ldy #4
	jsr readabs
	tax
	beq su4
	lda #<toman
	ldy #>toman
	jsr strout
	clc
	rts
su4	lda #$ff
	ldy #4
	jsr readabs
	tax
	jsr putx
	lda #0
	jsr axout
	lda #<oft
	ldy #>oft
	jsr strout
	lda #0
	sta temp
	jsr holx
su6	txa
	beq su5
	jsr putx
	lda temp
	ldy #6
	jsr readabs
	jsr hexout
	lda temp
	inc temp
	ldy #3
	jsr readabs
	jsr hexspa
	jsr holx
	dex
	jmp su6
su5	jmp rtend
transmit	jsr getadr
	lda tmp
	ldy tmp+1
	sta latch
	sty latch+1
	sta latch+4
	sty latch+5
	jsr getadr
	jsr tmp1
	lda tmp
	ldy tmp+1
	sta latch+2
	sty latch+3
	jsr getadr
	jsr return
	lda tmp
	sec
	sbc latch
	sta latch+6
	lda tmp+1
	sbc latch+1
	sta latch+7
tr0	lda #<transtxt
	ldy #>transtxt
	jsr strout
	jsr adrout
	jsr return
	lda latch
	ldy latch+1
	jsr readabs
	pha
	ldx tmp
	ldy tmp+1
	jsr storeabs
	pla
	tax
	lda adart,x
	tax
	dex
	lda typ,x
	tax
	cpx #2
	bcc tor2
	bne tr3
	jsr tmp1
	jsr latch1
	lda latch
	ldy latch+1
	jsr readabs
	ldx tmp
	ldy tmp+1
	jsr storeabs
tor2	jmp tr2
tr3	jsr latch1
	lda latch
	ldy latch+1
	jsr readabs
	sta temp
	jsr latch1
	lda latch
	ldy latch+1
	jsr readabs
	sta temp2
	cmp latch+5
	bcc uebernehm
	bne calc1
	lda temp
	cmp latch+4
	bcc uebernehm
calc1	lda temp2
	cmp latch+3
	bcc rechne
	bne uebernehm
	lda temp
	cmp latch+2
	bcs uebernehm
rechne	lda temp
	clc
	adc latch+6
	pha
	lda temp2
	adc latch+7
	tay
	pla
	jmp setzein
uebernehm	lda temp
	ldy temp2
setzein	sta temp
	tya
	pha
	jsr tmp1
	ldx tmp
	ldy tmp+1
	lda temp
	jsr storeabs
	jsr tmp1
	pla
	ldx tmp
	ldy tmp+1
	jsr storeabs
tr2	jsr tmp1
	jsr latch1
	lda latch
	cmp latch+2
	bne tr1
	lda latch+1
	cmp latch+3
	bne tr1
	clc
	rts
tr1	jmp tr0
copy	jsr getadr
	lda tmp
	ldy tmp+1
	sta latch
	sty latch+1
	jsr getadr
	jsr tmp1
	lda tmp
	ldy tmp+1
	sta latch+2
	sty latch+3
	jsr getadr
	jsr return
co0	lda #<transtxt
	ldy #>transtxt
	jsr strout
	jsr adrout
	jsr return
	lda latch
	ldy latch+1
	jsr readabs
	ldx tmp
	ldy tmp+1
	jsr storeabs
	jsr latch1
	jsr tmp1
	lda latch
	cmp latch+2
	bne co0
	lda latch+1
	cmp latch+3
	bne co0
	clc
	rts
buff	.byt 0
