;:remprint"{clr}vorsicht ! quelltext direkt auf floppy !":stop
;:poke56,128:clr
;:rem  open2,8,2,"code,p,w
;:sys36864
	;.opt oo
	*= $8000	;   2141                    	;*****
vic	=$d000
bsout	=$ffd2
tmp	=2
puffer	=$c100       	;*****
cr	=$d
clall	=$ffe7
cint	=$ff81
setcr	=58732
spalte	=211
satcr	=$e56a
crscol	=646
crs1	=204
crs2	=205
crs3	=207
get	=65508
key	=198
txtptr	=$7a
chrgot	=121
round	=$bc1b
ascflt	=$bcf3
integer	=$b7f7
return	=$aad7
axout	=$bdcd
zeile	=214
space	=$ab3f
open	=$ffc0
close	=open+3
setpar	=$ffba
setnam	=$ffbd
clrchn	=$ffcc
chkout	=$ffc9
chkin	=$ffc6
fa	=$ba
sa	=$b9
talk	=$ffb4
sectalk	=$ff96
iecin	=$ffa5
untalk	=$ffab
textanf	=$c200            	;*****
textend	=$d000
status	=144
word	= $c000              	;*****
textocr	=$5f
konf	=1
tmp2	=tmp+2
deal	=$d020 	; deadlock bei fehler
reset	=$fffc
bm	=1023
workpos	=56231
clrx	=59903
quote	=212
textost	=$a3
home	=$e566
textotr	=$a2
keybuf	=631
	jsr efirst
	jmp packmas
tit	.byte "\x93\x17\x9bU\x08\x19\x16\xc0I\x1a\x17\xdd \x05mehrspaltenkonverter \x97\xdd"
	.byte "\x9b\x1a\x17\xdd\x05  fuer textomat plus  \x97\xdd\x1a\x17\x9b\xdd \x05(c) nss 3/87"
	.byte "\x19\x04 v1.2 \x97\xdd\x1a\x17J\x19\x16\xc0K\x1a\x03"
mask1	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90textname alt:\x19\x0f t \x97\xdd\x1a\x16J\x19\x1f\xc0K"
	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90textname neu:\x19\x0f t \x97\xdd\x1a\x16J\x19\x1f\xc0K"
	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90anzahl der spalten:\x19\x0b \x97\xdd\x1a\x16J\x19\x1f\xc0K"
	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90breite einer spalte:\x19\x0a \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x16\x9b"
	.byte "U\x19\x1f\xc0I\x1a\x16\xdd \x90zeichen pro zeile (schirm):   \x97\xdd\x1a\x16J\x19\x1f\xc0K"
	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd\xa0"
err3	.byte "\x90erechn. abstand d. spalten:   \x97\xdd\xa0"
	.byte "\x1a\x16\x9b\xdd\x90 ok ? [j/n]\x19\x14 \x97\xdd\x1a\x16J\x19\x1f\xc0K\x03"
bsp	.byte "\x9d \x9d\x03"
err1	.byte "\x13\x19\x16\x11\x16\x1d \x05eingabefehler !! (return)  \x1a"
	.byte "\x16\x1d\x19\x0b \x03"
err2	.byte "\x13\x19\x16\x11\x16\x1d \x03"
source	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90quelldiskette einlegen !"
	.byte "\x19\x06 \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x03"
errmask	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90diskettenfehler !!"
	.byte "\x19\x0c \x97\xdd\x1a\x9b\x16\xdd\x19\x1f \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x91\x91\x16\x1d \x05\x03"
fullt	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x05textspeicher voll !"
	.byte "\x19\x0b \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x03"
numbt	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90anz. zeilen pro spal"
	.byte "te:\x19\x07 \x97\xdd\x1a\x16\x9b\xdd \x90ok ? [j/n]\x19\x14 \x97\xdd"
	.byte "\x1a\x16J\x19\x1f\xc0K\x05\x1a\x91\x91\x91\x16\x19\x1a\x1d\x03"
desti	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90zieldiskette einlegen !"
	.byte "\x19\x07 \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x03"
opend	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90operation erfolgreich"
	.byte "\x19\x09 \x97\xdd\x1a\x16\x9b\xdd \x90beendet. noch ein text ?\x19\x06 \x97\xdd"
	.byte "\x1a\x16J\x19\x1f\xc0K\x1a\x05\x91\x91\x03"
workt	.byte "\x13\x19\x16\x11\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd\x19\x0c \x90working\x19\x0c \x97\xdd\x1a\x16J\x19\x1f\xc0K\x13\x19\x09\x11\x03"
trennt	.byte "\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90trennvorschlag ?\x19\x0e \x97\xdd"
	.byte "\x1a\x16\x9b\xdd\x19\x1f \x97\xdd\x1a\x16\x9b\xdd\x19\x1f \x97\xdd\x1a\x16\x9b\xdd\x19\x1f \x97\xdd\x1a\x16\x9b\xdd \x90crsr tasten"
	.byte ", return = ende\x19\x04 \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x19\x05\x91\x16\x05\x1d\x1d\x03"
trenncr	.byte " \x12\xa9\xdf\x92 \x11\x19\x04\x9d \xbc\xbe \x03"
warwas	.byte "\x13\x19\x0f\x11\x16\x9bU\x19\x1f\xc0I\x1a\x16B \x90vorsicht: ich habe\x19\x0c \x97\xdd"
	.byte "\x1a\x16\x9b\xdd \x90steuerzeichen gefunden !\x19\x06 \x97\xdd\x1a"
	.byte "\x16J\x19\x1f\xc0K\x05\x03"
disk	.byte "\x1a\x1a\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd \x90textomat \xdb disk einlegen !"
	.byte "\x19\x04 \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x03"
service	.byte "\x1a\x1a\x1a\x16\x9bU\x19\x1f\xc0I\x1a\x16\xdd\x90 textomat plus nach"
	.byte "laden ?\x19\x05 \x97\xdd\x1a\x16J\x19\x1f\xc0K\x1a\x91\x91\x05\x03"
ladt	.byte "\x93\x90textomat plus wird nachgeladen !\x1a"
	.byte "\x98loA"
	.byt 34
	.byte ":*"
	.byt 34
	.byte ",8,1\x19\x05\x11rU\x03"
firt	.byte "\x93\x19\x05\x11\x17\x9bU\x08\x19\x1b\xc0I\x1a\x17\xdd\x90 mehrspaltenkonverter fuer"
	.byte " \x97\xdd\x1a\x17\x9b\xdd\x90\x19\x03 'textomat plus', v1.2\x19\x03 \x97\xdd"
	.byte "\x1a\x17\x9b\xdd\x19\x1b \x97\xdd\x1a\x17\x9b\xdd \x90  von  nikolaus heusler   \x97\xdd"
	.byte "\x1a\x17\x9b\xdd\x90 (c) nss  maerz/april 1987 \x97\xdd\x1a\x17J\x19\x1b\xc0K\x03"
pufft	.byt 19,141,13,13
oldname	.byte "               T,p,r"
newname	.byte "               T,p,w"
numflg	brk
maxln	brk
pos	brk
anzspa	brk
breit	brk
cpz	brk
zw1	brk
zw2	brk
abst	brk
anzzl	.word 0
wordlen	brk
posit	brk
momlen	brk
daspace	brk
vonda	brk
worth	brk
endflg	brk
anzline	.word 0
puffpos	brk
nums	brk
reest	brk
t1	.word 0
t2	.word 0
an	.word 0
flag	brk
stz	.word 0
ymerk	brk
tpos	brk
wordlin	brk
adrs	.word 0,0,0,0,0,0,0,0,0
titout	lda #<tit
	ldy #>tit
strout	tax
	lda tmp
	pha
	lda tmp+1
	pha
	stx tmp
	sty tmp+1
sout	ldy #0
	lda (tmp),y
	beq fin
	cmp #"\x03"
	beq fin
	cmp #"\x1a"
	bne nocr
	lda #cr
nocr	cmp #"\x19"
	beq repeat
	cmp #"\x17"
	beq tab
	cmp #"\x16"
	beq spa
	jsr bsout
next	inc tmp
	bne sout
	inc tmp+1
	bne sout
fin	pla
	sta tmp+1
	pla
	sta tmp
	rts
repeat	iny
	lda (tmp),y
	tax
	iny
	lda (tmp),y
rep	jsr bsout
	dex
	bne rep
	lda #3
	clc
	adc tmp
	sta tmp
	bcc sout
	inc tmp+1
	bne sout
spa	lda #2
	.byt $2c
tab	lda #6
	sta spalte
	jsr setcr
	jmp next
inform	sta maxln
	stx numflg
	pha
	jsr satcr
	ldx #1
	stx crscol
	dex
	stx key
	pla
	tax
	lda spalte
	pha
clrplz	jsr space
	dex
	bne clrplz
	pla
	sta spalte
	jsr setcr
	ldx #0
inloop	stx pos
inloop2	lda #0
	sta crs1
	sta quote
ilp	jsr get
	beq ilp
	ldx #2
	stx crs2
ipp	ldx crs3
	bne ipp
	inc crs1
	ldx pos
	cmp #cr
	beq cer
	cmp #20
	bne nodel
	txa
	beq inloop
	dex
	stx pos
	lda #<bsp
	ldy #>bsp
	jsr strout
	jmp inloop2
nodel	cmp #32
	bcc inloop2
	tay
	bpl okay
	cmp #149
	bcc inloop2
	cmp #156
	bcc okay
	cmp #160
	bcc inloop2
okay	ldy numflg
	beq okay2
	cmp #"0"
	bcc inloop2
	cmp #"9"+1
	bcs inloop2
okay2	cpx maxln
	bcs inloop2
	sta puffer,x
	inx
	jsr bsout
	bcc inloop
cer	lda #0
	sta puffer,x
	lda numflg
	bne ahanoch
	rts
ahanoch	lda txtptr
	pha
	lda txtptr+1
	pha
	lda #<puffer
	ldy #>puffer
	sta txtptr
	sty txtptr+1
	jsr chrgot
	jsr ascflt
	jsr round
	jsr integer
	tax
	pla
	sta txtptr+1
	pla
	sta txtptr
	rts
askzpar	lda #24
	sta spalte
	ldy #13
	ldx #1
	lda #1
	jsr inform
	cpy #2
	bcc askzpar
	sty anzspa
	dey
	sty zw2
askbrei	lda #25
	sta spalte
	ldy #16
	ldx #1
	lda #2
	jsr inform
	cpy #8
	bcc askbrei
	sty breit
askcpz	lda #31
	sta spalte
	ldy #19
	ldx #1
	lda #3
	jsr inform
	cpx #1
	bcs askcpz
	cpy #30
	bcc askcpz
	cpy #241
	bcs askcpz
	sty cpz
	stx zw1
	ldx anzspa
mallp	lda zw1
	clc
	adc breit
	sta zw1
	bcs fehl
	dex
	bne mallp
	lda cpz
	sec
	sbc #1
	sbc zw1
	bcc fehl
	ldx #-1
div	inx
	sec
	sbc zw2
	bcs div
	txa
	beq fehl
	sta abst
	pha
	ldy #31
	sty spalte
	ldy #22
	jsr satcr
	pla
	tax
	lda #0
	jsr axout
fill	ldx spalte
	cpx #34
	bcs flend
	jsr space
	bcc fill
flend	rts
fehl	lda #<err1
	ldy #>err1
	jsr strout
	jsr getkey
	jmp errc
getkey	lda #0
	sta key
wk	lda key
	beq wk
	dec key
	rts
errc	lda #<err2
	ldy #>err2
	jsr strout
	lda #<err3
	ldy #>err3
	jsr strout
	jmp askzpar
asknames	lda #17
	sta spalte
	ldy #7
	lda #15
	ldx #0
	jsr inform
	ldx #0
setnam1	lda puffer,x
	beq endn1
	sta oldname,x
	inx
	bne setnam1
endn1	lda #32
filln1	cpx #15
	bcs full1
	sta oldname,x
	inx
	bne filln1
full1	lda #17
	sta spalte
	ldy #10
	lda #15
	ldx #0
	jsr inform
	ldx #0
setnam2	lda puffer,x
	beq endn2
	sta newname,x
	inx
	bne setnam2
endn2	lda #32
filln2	cpx #15
	bcs full2
	sta newname,x
	inx
	bne filln2
full2	rts
diskerr	lda #8
	sta fa
	jsr talk
	lda #$6f
	sta sa
	jsr sectalk
	ldx #0
errin	jsr iecin
	cmp #cr
	beq erred
	sta puffer,x
	inx
	bne errin
erred	lda #0
	sta puffer,x
	jsr untalk
	lda puffer
	cmp #"0"
	bne falsch
	rts
falsch	pla
	pla
	lda #<errmask
	ldy #>errmask
	jsr strout
	lda #<puffer
	ldy #>puffer
	jsr strout
	jsr escape
	jsr return
	jmp return
getny	lda endflg
	beq doit
	pla
	pla
	jmp escape
doit	jsr iecin
	sta worth
	lda status
	beq nullsta
	inc endflg
nullsta	lda worth
	rts
ram	lda #54
	.byt $2c
rom	lda #55
	sta konf
	rts
put	sta !0
	inc put+1
	bne rtt
	inc put+2
rtt	lda put+2
	cmp #>textend
	bcc passt
	pla
	pla
	pla
	pla
	pla
	pla
	lda #<fullt
	ldy #>fullt
	jsr strout
escape	ldx #22
clr2224	jsr clrx
	inx
	cpx #25
	bcc clr2224
	jsr clrchn
	lda #2
	jmp close
passt	rts
readtext	lda #0
	sta anzzl
	sta anzzl+1
	sta endflg
	sta stz
	sta stz+1
	ldx #2
	jsr chkin
	lda #<textanf
	ldy #>textanf
	sta put+1
	sty put+2
readline	ldx #0
readaword	ldy #0
readword	jsr getny
	cmp #textocr
	beq qlineend
	cmp #32
	beq wordend
	cmp #textost
	bne normword
	jsr steuer
	bne readword
qlineend	jmp lineend
normword	cmp #textotr
	beq readword
	sta word,y
	iny
	bne readword
wordend	tya
	beq readword
	sty wordlen
	txa
	clc
	adc wordlen
	cmp breit
	beq setmot
	bcs passnedmer
setmot	ldy #0
transmot	lda word,y
	sta puffer,x
	inx
	iny
	dec wordlen
	bne transmot
	lda #" "
	sta puffer,x
	inx
	bne readaword
passnedmer	lda #0
	sta puffer-1,x
	jsr puffr
	lda breit
	cmp wordlen
	bcs bigenough
	jsr trennv
tratew	lda word,x
	sta puffer,x
	dex
	bpl tratew
	ldx tpos
	dec wordlen
	lda #"-"
	sta puffer+1,x
	lda #0
	sta puffer+2,x
	jsr puffrein
	ldy #0
	ldx tpos
restword	lda word+1,x
	sta word,y
	iny
	inx
	cpx wordlen
	bcc restword
	ldx #0
	beq wordend
bigenough	ldx #0
	beq setmot
lineend	sty wordlen
	txa
	clc
	adc wordlen
	cmp breit
	beq dasnch
	bcs passnidmer
dasnch	ldy #0
transmt2	lda word,y
	sta puffer,x
	inx
	iny
	dec wordlen
	bne transmt2
	jsr bundpuf
	jmp readline
passnidmer	lda #0
	sta puffer-1,x
	jsr puffr
	lda breit
	cmp wordlen
	bcs bigen
	jsr trennv
tratwe	lda word,x
	sta puffer,x
	dex
	bpl tratwe
	ldx tpos
	dec wordlen
	lda #"-"
	sta puffer+1,x
	lda #0
	sta puffer+2,x
	jsr puffrein
	ldy #0
	ldx tpos
restw	lda word+1,x
	sta word,y
	iny
	inx
	cpx wordlen
	bcc restw
	ldx #0
	beq lineend
bigen	ldx #0
	beq dasnch
bundpuf	lda #160
bundit	cpx breit
	bcs bound
	sta puffer,x
	inx
	bne bundit
bound	lda #0
	sta puffer,x
	jmp puffrein
puffr	txa
	bne puffrein
	rts
puffrein	jsr testlen
	txa
	lsr
	sta posit
puffrei2	jsr testlen
	cpx breit
	beq formed
	stx momlen
	ldx posit
suchs	lda puffer,x
	cmp #" "
	beq foundsp
	inx
	cpx momlen
	bcc suchsp2
	ldx #0
suchsp2	cpx posit
	bne suchs
	lda breit
	sec
	sbc momlen
	lsr
	clc
	adc momlen
	tax
	dex
	ldy momlen
	dey
	stx vonda
center	lda puffer,y
	sta puffer,x
	dex
	dey
	bpl center
	lda #160
fillli	sta puffer,x
	dex
	bpl fillli
	ldx vonda
fillre	inx
	cpx breit
	bcs fauchd
	sta puffer,x
	jmp fillre
fauchd	lda #0
	sta puffer,x
	beq formed
foundsp	stx daspace
	ldx momlen
rueckhi	lda puffer,x
	sta puffer+1,x
	dex
	cpx daspace
	bcs rueckhi
	inx
	inx
	inx
	stx posit
	bne puffrei2
formed	jsr blink
	ldx #0
frmd	lda puffer,x
	beq erled
	jsr put
	inx
	bne frmd
erled	inc anzzl
	bne noinc
	inc anzzl+1
noinc	rts
testlen	ldx #0
tlen	lda puffer,x
	beq found0
	inx
	bne tlen
found0	rts
blink	sty ymerk
	ldy #6
blk	lda workpos,y
	eor #12
	sta workpos,y
	dey
	bpl blk
	ldy ymerk
	rts
writetext	ldx anzline
	ldy anzline+1
	lda #0
	sta tmp
	sta tmp+1
	sta flag
	cpx #0
	bne nox0
	dey
nox0	dex
multy	lda tmp
	clc
	adc breit
	sta tmp
	bcc multy2
	inc tmp+1
multy2	dex
	cpx #-1
	bne multy
	dey
	cpy #-1
	bne multy
	inx
	ldy #8
	lda #>textanf
	stx tmp2
	sta tmp2+1
putty	lda tmp2
	sta adrs,x
	inx
	lda tmp2+1
	sta adrs,x
	inx
	lda tmp2
	clc
	adc tmp
	sta tmp2
	lda tmp2+1
	adc tmp+1
	sta tmp2+1
	dey
	bne putty
	ldx #2
	jsr chkout
lineput	jsr ram
	ldy #0
	sty puffpos
	sty nums
spaput	lda nums
	asl
	tax
	lda adrs,x
	sta tmp
	lda adrs+1,x
	sta tmp+1
	ldx puffpos
trans1	lda (tmp),y
	sta puffer,x
	inx
	iny
	cpy breit
	bcc trans1
	stx puffpos
	jsr weiters
	ldx nums
	inx
	cpx anzspa
	bcs puffvoll
	stx nums
	ldy abst
	ldx puffpos
	lda #32
trennspa	sta puffer,x
	inx
	dey
	bne trennspa
	stx puffpos
	beq spaput
puffvoll	lda #textocr
	ldx puffpos
	sta puffer,x
	lda #0
	sta puffer+1,x
	lda flag
	beq pass1
	txa
	sec
	sbc breit
	sbc abst
	tax
	lda #textocr
	sta puffer,x
	lda #0
	sta puffer+1,x
pass1	jsr rom
	jsr rausda
	lda an
	cmp #2
	bcs qqlineput
	lda an+1
	beq qqrom
qqlineput	dec an
	lda an
	cmp #-1
	bne qlineput
	dec an+1
qlineput	jmp lineput
qqrom	lda flag
	bne rausen
	dec flag
	lda reest
	beq rausen
	sta an
	lda #0
	sta an+1
	beq qlineput
rausda	jsr blink
	ldx #0
rada	lda puffer,x
	beq rausen
	cmp #32
	bne no32
	lda #160
no32	jsr bsout
	inx
	bne rada
rausen	rts
weiters	lda nums
	asl
	tax
	lda adrs,x
	clc
	adc breit
	sta adrs,x
	lda adrs+1,x
	adc #0
	sta adrs+1,x
	rts
trennv	ldx breit
	dex
	cpx #29
	bcc trennx
	ldx #28
trennx	stx tpos
	lda wordlen
	cmp #30
	bcc trenny
	lda #30
trenny	sta wordlin
	jsr clrchn
	lda #<trennt
	ldy #>trennt
	jsr strout
	ldy #0
wordout	lda word,y
	jsr bsout
	iny
	cpy wordlin
	bcc wordout
	jsr return
	lda #0
	sta key
tlp	lda tpos
	clc
	adc #2
	sta spalte
	ldy #13
	jsr satcr
	lda #<trenncr
	ldy #>trenncr
	jsr strout
getlr	jsr get
	cmp #cr
	beq cerr
	cmp #"\x11"
	beq left
	cmp #"\x9d"
	beq left
	cmp #"\x1d"
	bne getlr
	ldx tpos
	inx
	cpx breit
	bcs getlr
	cpx #29
	bcs getlr
	inc tpos
	bne tlp
left	ldx tpos
	dex
	beq getlr
	dec tpos
	bne tlp
cerr	ldx #10
clr1020	jsr clrx
	inx
	cpx #17
	bcc clr1020
	jsr return
	ldy #9
	jsr satcr
	ldx #2
	jsr chkin
	dec tpos
	ldx tpos
	rts
calcall	lda #0
	sta tmp
	sta tmp+1
	lda anzzl
	ldy anzzl+1
	sta tmp2
	sty tmp2+1
div1	lda tmp2+1
	bne div11
	lda tmp2
	cmp anzspa
	bcc div12
div11	lda tmp2
	sec
	sbc anzspa
	sta tmp2
	lda tmp2+1
	sbc #0
	sta tmp2+1
	inc tmp
	bne div1
	inc tmp+1
	bne div1
div12	ldx anzspa
	lda #0
	sta tmp2
	sta tmp2+1
mul1	lda tmp2
	clc
	adc tmp
	sta tmp2
	lda tmp2+1
	adc tmp+1
	sta tmp2+1
	dex
	bne mul1
	lda tmp2
	cmp anzzl
	bne norm
	lda tmp2+1
	cmp anzzl+1
	bne norm
	lda #0
	sta reest
	lda tmp
	ldy tmp+1
	sta an
	sty an+1
	rts
norm	lda tmp
	clc
	adc #1
	sta t1
	lda tmp+1
	adc #0
	sta t1+1
	lda #0
	sta t2
	sta t2+1
	lda t1
	ldy t1+1
	sta tmp
	sty tmp+1
mul2	lda t2
	clc
	adc zw2
	sta t2
	lda t2+1
	adc #0
	sta t2+1
	lda tmp+1
	bne mul21
	lda tmp
	cmp #1
	beq mul22
mul21	lda tmp
	sec
	sbc #1
	sta tmp
	lda tmp+1
	sbc #0
	sta tmp+1
	jmp mul2
mul22	lda anzzl
	sec
	sbc t2
	sta an
	lda anzzl+1
	sbc t2+1
	sta an+1
	lda t1
	sec
	sbc an
	sta reest
	lda t1+1
	sbc an+1
	beq gut
dl	inc deal
	jmp dl
gut	rts
steuer	inc stz
	bne stend
	inc stz+1
stend	rts
viellst	lda stz
	bne aberja
	lda stz+1
	bne aberja
	rts
aberja	lda #<warwas
	ldy #>warwas
	jsr strout
	lda #23
	sta spalte
	ldy #16
	jsr satcr
	ldx stz
	lda stz+1
	jsr axout
	jsr home
	ldy #9
	jmp satcr
packmas	jsr init
	jsr titout
	lda #<mask1
	ldy #>mask1
	jsr strout
neunam	jsr asknames
	jsr askzpar
	lda #0
	sta key
	lda #15
	sta spalte
	ldy #23
	jsr satcr
ggjn	lda #0
	sta crs1
gjn	jsr get
	beq gjn
	ldx #2
	stx crs2
waus	ldx crs3
	bne waus
	inc crs1
	cmp #"n"
	beq neunam
	cmp #"j"
	bne ggjn
	jsr titout
	lda #<source
	ldy #>source
	jsr strout
	jsr getkey
	ldx #<oldname
	ldy #>oldname
	lda #20
	jsr setnam
	lda #2
	tay
	ldx #8
	jsr setpar
	jsr open
	jsr diskerr
	lda #<workt
	ldy #>workt
	jsr strout
	jsr readtext
	jsr diskerr
	jsr viellst
	lda #<numbt
	ldy #>numbt
	jsr strout
	jsr calcall
	lda reest
	clc
	adc an
	sta anzline
	lda an+1
	adc #0
	sta anzline+1
	ldx anzline
	lda anzline+1
	jsr axout
	jsr return
	lda #15
	sta spalte
	jsr setcr
ggjn2	lda #0
	sta crs1
gjn2	jsr get
	beq gjn2
	ldx #2
	stx crs2
waus2	ldx crs3
	bne waus2
	inc crs1
	cmp #"n"
	beq qpackmas
	cmp #"j"
	bne ggjn2
	clc
	bcc zweivor
qpackmas	jmp packmas
zweivor	jsr titout
	lda #<desti
	ldy #>desti
	jsr strout
	jsr getkey
	ldx #<newname
	ldy #>newname
	lda #20
	jsr setnam
	ldx #8
	lda #2
	tay
	jsr setpar
	jsr open
	jsr diskerr
	lda #<workt
	ldy #>workt
	jsr strout
	jsr writetext
	jsr escape
	jsr diskerr
	lda #<opend
	ldy #>opend
	jsr strout
	lda #29
	sta spalte
	jsr setcr
ggjn3	lda #0
	sta crs1
gjn3	jsr get
	beq gjn3
	ldx #2
	stx crs2
waus3	ldx crs3
	bne waus3
	inc crs1
	cmp #"j"
	beq qpackmas
	cmp #"n"
	bne ggjn3
	lda #<service
	ldy #>service
	jsr strout
	lda #30
	sta spalte
	jsr setcr
ggjn4	lda #0
	sta crs1
gjn4	jsr get
	beq gjn4
	ldx #2
	stx crs2
waus4	ldx crs3
	bne waus4
	inc crs1
	cmp #"j"
	beq postload
	cmp #"n"
	bne ggjn4
	jmp (reset)
postload	lda #<disk
	ldy #>disk
	jsr strout
	jsr getkey
	lda #<ladt
	ldy #>ladt
	jsr strout
	ldx #4
	stx key
	dex
filp	lda pufft,x
	sta keybuf,x
	dex
	bpl filp
	rts
efirst	jsr init
	lda #<firt
	ldy #>firt
	jsr strout
	jmp getkey
init	jsr cint
	lda #12
	sta vic+33
	sta vic+32
	jmp clall
