;:sys36864
	;.opt oo
	*= 49152
tmp	=247
tmp2	=249
step	=2
st	=253
mem	=167
end	=180
te	=141
an	=139
len	=143
ptr	=95
hi	=57
hi2	=59
num	=251
zw	=169
zwsp	=171
such	=52000
make	=52100
memo	=52200
s	=2
t1	=4
t2	=181
e	=254
reple	=247
ymm	=248
ym2	=249
lens	=250
lenm	=251
flag	=252
flag2	=253
	jmp help
	jmp del
	jmp renum
	jmp insert
	jmp save
	jmp getli
	jmp defs
	jmp defr
	jmp token
	jmp copy
ht1	.byt 13,13
	.byte "line-utility von nikolaus heusler"
	.byt 13,13
	.byte "ver. 1, 12.91"
	.byt 13,13,13
	.byte "sys 49152      hilfe"
	.byt 13
	.byte "sys 49155,...  delete"
	.byt 13
	.byte "sys 49158,...  renumber"
	.byt 13
	.byte "sys 49161,...  insert"
	.byt 13
	.byte "sys 49164,...  bereich speichern"
	.byt 13
	.byte "sys 49167,...  zeile suchen"
	.byt 13,0
ht2	.byte "sys 49170,...  suchbegriff festlegen"
	.byt 13
	.byte "sys 49173,...  suchen/ersetzen"
	.byt 13
	.byte "sys 49176      tokenwandlung ein/aus"
	.byt 13
	.byte "sys 49179,...  zeilen kopieren"
	.byt 13,13,0
tx01	.byt 13
tx1	.byte "zeile "
	brk
tx2	.byte " beginnt im ram ab "
	brk
tx3	.byte " nicht"
tx4	.byte " gefunden"
	.byt 13,0
tx5	.byt 13
	.byte "tokenwandlung a"
	brk
tx6	.byte " -> "
	brk
lae	brk
tof	.byt -1
yme	brk
diff	brk
help	lda #<ht1
	ldy #>ht1
	jsr $ab1e
	lda #<ht2
	ldy #>ht2
	jmp $ab1e
skipkom	jsr 121
	cmp #","
	bne weiter
	jsr 115
	jmp skipkom
weiter	rts
up	lda #"\x91"
	jmp $ffd2
scope	jsr skipkom
	jsr 121
	bcc l172
	beq l172
	cmp #171
	bne l200
l172	jsr $a96b
	lda 20
	sta an
	lda 21
	sta an+1
	jsr 121
	beq l203
	cmp #44
	beq l203
	cmp #171
	bne l200
	jsr 115
	jsr $a96b
	beq l203
	cmp #44
	beq l203
l200	jmp $af08
l203	lda 20
	ora 21
	bne l216
	ldx #-1
	stx 21
	dex
	stx 20
l216	jsr test
	inc 20
	bne l225
	inc 21
l225	lda 20
	sta end
	lda 21
	sta end+1
	jsr $a613
	lda 95
	sta tmp
	lda 96
	sta tmp+1
getadr	lda an
	sta 20
	lda an+1
	sta 21
	jsr $a613
	lda 95
	sta tmp2
	lda 96
	sta tmp2+1
	rts
test	lda an+1
	cmp 21
	bne l326
	lda an
	cmp 20
	beq l331
l326	bcc l331
	jmp 45640
l331	rts
del	jsr scope
	ldy #0
l257	lda tmp+1
	cmp 46
	bcc l271
	bne l290
	lda tmp
	cmp 45
	bcs l290
l271	lda (tmp),y
	sta (tmp2),y
	inc tmp
	bne l281
	inc tmp+1
l281	inc tmp2
	bne l257
	inc tmp2+1
	bne l257
l290	tya
	sta (tmp2),y
	iny
	sta (tmp2),y
	jsr corr
	jsr $a659
	jmp $e385
renum	lda #10
	sta step
	lda #100
	sta st
	lda #0
	sta st+1
	sta mem
	sta mem+1
	lda #-1
	sta end
	sta end+1
	jsr 121
	beq full
	jsr $aefd
	jsr 43371
	lda 20
	sta st
	lda 21
	sta st+1
	jsr 121
	beq full
	jsr 44797
	jsr 47006
	stx 2
	txa
	bne fein
	jmp $b248
fein	jsr 121
	cmp #44
	bne l223
	jsr 115
	bcc l193
	cmp #171
	beq l193
l190	jmp $af08
l193	jsr $a96b
	lda 20
	sta mem
	lda 21
	sta mem+1
	jsr 121
	cmp #171
	bne l190
	jsr 115
	jsr $a96b
	lda 20
	ora 21
	bne l229
l223	lda #-1
	sta end
	bne l235
l229	lda 20
	sta end
	lda 21
l235	sta end+1
full	sei
	jsr $a68e
l241	ldy #2
	lda (122),y
	bne l250
	jmp l590
l250	ldy #4
	jsr 43259
l255	jsr 115
l258	jsr l669
	cmp #0
	beq l241
	cmp #203
	beq l300
	cmp #141
	beq l307
	cmp #137
	beq l307
	cmp #167
	beq l289
	cmp #138
	beq l289
	cmp #155
	bne l255
l289	jsr 115
	bcc l310
l294	cmp #171
	beq l307
	bne l258
l300	jsr 115
	cmp #164
	bne l255
l307	jsr 115
l310	ldx 122
	stx te
	ldx 123
	stx te+1
	jsr 43371
	lda 20
	sta num
	lda 21
	sta num+1
	jsr l341
	jsr 121
	cmp #44
	beq l307
	bne l294
l341	jsr l650
l344	ldy #1
	lda (ptr),y
	beq l396
	iny
	jsr l697
	cmp end+1
	bne l362
	cpx end
	beq l364
l362	bcs l396
l364	cmp num+1
	bne l372
	cpx 251
	beq l397
l372	bcs l396
	lda step
	adc an
	sta an
	bcc l384
	inc an+1
l384	ldy #0
	jsr l697
	stx ptr
	sta ptr+1
	jmp l344
l396	rts
l397	lda an
	sta 99
	lda an+1
	sta 98
	ldx #144
	sec
	jsr 48201
	jsr 48607
	ldy #-1
l416	iny
	lda 256,y
	bne l416
	sty len
	lda 122
	sec
	sbc te
	sec
	sbc len
	bne l437
	jmp l562
l437	bcc l513
	sta zwsp
	lda 122
	sta hi2
	sbc zwsp
	sta hi
	lda 123
	sta hi2+1
	sbc #0
	sta hi+1
	pha
	sec
	lda 45
	sbc 122
	sta zw
	lda 46
	sbc 123
	sta zw+1
	ldy #0
	ldx zw+1
	beq l491
l477	lda (hi2),y
	sta (hi),y
	iny
	bne l477
	inc hi2+1
	inc hi+1
	dex
	bne l477
l491	ldx zw
	beq l503
l495	lda (hi2),y
	sta (hi),y
	iny
	dex
	bne l495
l503	lda hi
	sta 122
	pla
	sta 123
	jmp l562
l513	sec
	sta zwsp
	lda #0
	sbc zwsp
	sta zwsp
	adc 45
	sta 88
	lda 46
	sta 91
	adc #0
	sta 89
	lda 45
	sta 90
	lda 122
	sta 95
	clc
	adc zwsp
	pha
	lda 123
	sta 96
	adc #0
	pha
	jsr 41919
	pla
	sta 123
	pla
	sta 122
l562	ldy 143
	dey
l565	lda 256,y
	sta (te),y
	dey
	bpl l565
corr	jsr 42291
	lda #2
	clc
	adc 34
	sta 45
	lda 35
	adc #0
	sta 46
	rts
l590	jsr l650
l593	ldy #1
	lda (ptr),y
	bne l606
l599	cli
	jsr 42592
	jmp 58269
l606	iny
	jsr l697
	cmp end+1
	bne l618
	cpx end
	beq l620
l618	bcs l599
l620	lda an+1
	sta (ptr),y
	dey
	lda an
	sta (ptr),y
	clc
	adc step
	sta an
	bcc l638
	inc an+1
l638	ldy #0
	jsr l697
	stx ptr
	sta ptr+1
	jmp l593
l650	lda st
	sta an
	lda st+1
	sta an+1
	lda mem
	sta 20
	lda mem+1
	sta 21
	jmp 42515
l669	cmp #143
	beq l684
	cmp #34
	beq l686
	cmp #131
	bne l696
	lda #58
	.byt $2c
l684	lda #0
l686	tax
	jsr 43275
	jsr 43259
	jsr 121
l696	rts
l697	lda (ptr),y
	tax
	iny
	lda (ptr),y
	rts
insert	jsr $aefd
	jsr $e1d4
	lda #0
	sta 185
	ldy #160
	sta tmp
	sty tmp+1
	tax
	jsr $ffd5
	bcc okay
	jmp 57593
okay	lda 144
	and #191
	beq ret
	jmp $e19c
ret	jsr $aad7
	lda #<cont
	ldy #>cont
	sta 770
	sty 771
cont	ldy #-1
loop	lda #54
	sta 1
	iny
	lda (tmp),y
	inc 1
	cpy #1
	bcc loop
	bne line
	tax
	bne loop
donei	ldx #3
	jsr $e455
	ldx 214
	jsr 59903
	jsr up
	jmp $e1ab
line	cpy #4
	bcs char
	sta 18,y
	bcc loop
char	sta 508,y
	tax
	bne loop
	tya
	pha
	adc tmp
	sta tmp
	bcc noerh
	inc tmp+1
noerh	ldx 20
	lda 21
einsprung	jsr $bdcd
	jsr $aad7
	jsr up
	pla
	tay
	iny
	jmp $a4a2
save	jsr scope
	jsr $aefd
	jsr $e1d4
	ldy #0
	lda (tmp),y
	pha
	tya
	sta (tmp),y
	tax
	iny
	lda (tmp),y
	pha
	txa
	sta (tmp),y
	lda tmp
	clc
	adc #2
	tax
	lda tmp+1
	adc #0
	tay
	lda #tmp2
	jsr $ffd8
	ldy #1
	pla
	sta (tmp),y
	pla
	dey
	sta (tmp),y
	rts
getli	jsr $aefd
	jsr $ad8a
	jsr $b7f7
	lda 43
	sta 2
	lda 44
	sta 3
	lda #0
	sta 4
	jsr $aad7
x1	ldy #1
	lda (2),y
	beq haha
	ldy #3
	lda (2),y
	cmp $15
	bne wr
	dey
	lda (2),y
	cmp $14
	bne wr
	jsr prnt
	lda #<tx2
	ldy #>tx2
	jsr $ab1e
	ldx 2
	lda 3
	sta 4
	jsr $bdcd
	jsr $aad7
wr	ldy #0
	lda (2),y
	pha
	iny
	lda (2),y
	sta 3
	pla
	sta 2
	jmp x1
haha	lda 4
	bne en
	jsr prnt
	lda #<tx3
	ldy #>tx3
	jmp $ab1e
	ldx 2
	ldy 3
	jsr $bdcd
	jsr $aad7
en	rts
prnt	lda #<tx1
	ldy #>tx1
	jsr $ab1e
	ldx $14
	lda $15
	jmp $bdcd
defs	jsr $aefd
	ldx #0
suchs	jsr cat
	beq overs
	sta such,x
	inx
	jsr cet
	bne suchs
overs	sta such,x
	txa
	beq err
	stx lens
	inx
	stx flag
	lda tof
	bne good
	lda #<such
	ldy #>such
	jsr konvert
	sty lens
good	rts
defr	lda #0
	cmp flag
	bne cont1
err	jmp $b3ae
cont1	sta flag
	jsr 121
	beq find
	jsr $aefd
	jsr $aad7
	ldx #0
suchm	jsr cat
	beq overm
	sta make,x
	inx
	jsr cet
	bne suchm
overm	sta make,x
	stx lenm
	lda tof
	bne replace
	lda #<make
	ldy #>make
	jsr konvert
	sty lenm
replace	lda #0
	.byt $2c
find	lda #1
	sta reple
	lda 43
	sta s
	lda 44
	sta s+1
zeile	lda #0
	sta flag2
	jsr up
	ldy #1
	lda (s),y
	bne goon
	jsr 42291
	clc
	lda 34
	adc #2
	sta 45
	sta 47
	sta 49
	lda 35
	adc #0
	sta 46
	sta 48
	sta 50
	jsr $a81d
	ldx #$19
	stx $16
	jsr $a687
	ldx 214
	inx
	jsr 59903
	jmp 57741
goon	lda #<tx01
	ldy #>tx01
	jsr $ab1e
	ldy #2
	lda (s),y
	tax
	iny
	lda (s),y
	jsr $bdcd
	ldy #4
se1	lda (s),y
	beq se5
	sty yme
	ldx #0
se2	lda such,x
	beq se3
	cmp (s),y
	bne se4
	inx
	iny
	bne se2
se4	ldy yme
se4a	iny
	bne se1
se5	iny
	tya
	clc
	adc s
	sta s
	bcc se6
	inc s+1
se6	jmp zeile
se3	lda #0
	cmp reple
	bne re2
	sta diff
	lda lens
	cmp lenm
	beq se7
	bcc se8
	jsr delete
	jmp se7
se8	jsr inst
se7	ldx #0
	ldy yme
repl	lda make,x
	beq re2
	sta (s),y
	iny
	inx
	bne repl
re2	lda flag2
	bne re2a
	lda #<tx4
	ldy #>tx4
	jsr $ab1e
	inc flag2
re2a	lda yme
	clc
	adc diff
	tay
	bne se4a
cet	inc $7a
	bne la1
	inc $7b
la1	rts
cat	ldy #0
	lda ($7a),y
	rts
inst	lda lenm
	sec
	sbc lens
	sta diff
	pha
	lda yme
	clc
	adc s
	sta e
	lda s+1
	adc #0
	sta e+1
	ldx 45
	stx t1
	ldx 46
	stx t1+1
	pla
	clc
	adc 45
	sta 45
	sta t2
	lda 46
	adc #0
	sta 46
	sta t2+1
	ldy #0
icopy	lda e+1
	cmp t1+1
	bcc i1
	lda e
	cmp t1
	bcc i1
	rts
i1	lda (t1),y
	sta (t2),y
	lda t1
	bne i2
	dec t1+1
i2	dec t1
	lda t2
	bne i3
	dec t2+1
i3	dec t2
	jmp icopy
delete	lda lens
	sec
	sbc lenm
	sta diff
	pha
	dec diff
	lda yme
	clc
	adc s
	sta t1
	lda s+1
	adc #0
	sta t1+1
	pla
	clc
	adc t1
	sta t2
	lda t1+1
	adc #0
	sta t2+1
	ldy #0
dcopy	lda t2+1
	cmp 46
	bcc d1
	lda t2
	cmp 45
	bcc d1
	lda t1
	sta 45
	lda t1+1
	sta 46
	rts
d1	lda (t2),y
	sta (t1),y
	inc t1
	bne d2
	inc t1+1
d2	inc t2
	bne d3
	inc t2+1
d3	bne dcopy
konvert	sta s
	sty s+1
	ldy #-1
tr1	iny
	lda (s),y
	sta memo,y
	bne tr1
	ldy #0
	sty $f
	sty lae
lp1	lda memo,y
	beq fritz
	bpl so
	cmp #-1
	beq so
	bit $f
	bmi so
	sec
	sbc #$7f
	tax
	sty ym2
	ldy #-1
a72c	dex
	beq a737
a72f	iny
	lda $a09e,y
	bpl a72f
	bmi a72c
a737	iny
	lda $a09e,y
	bmi ratz
	jsr rein
	jmp a737
so	cmp #34
	bne so2
	lda $f
	eor #-1
	sta $f
	lda #34
so2	jsr rein
	jmp so5
ratz	and #127
	jsr rein
	ldy ym2
so5	iny
	bne lp1
rein	sty ymm
	ldy #0
	sta (s),y
	inc s
	bne r2
	inc s+1
r2	inc lae
	ldy ymm
	rts
fritz	jsr rein
	ldy lae
	dey
	rts
token	lda #<tx5
	ldy #>tx5
	jsr $ab1e
	lda tof
	eor #-1
	sta tof
	bne on
	lda #"u"
	jsr $ffd2
	lda #"s"
	.byt $2c
on	lda #"n"
	jsr $ffd2
	jmp $aad7
illq	jmp $b248
copy	jsr $aefd
	jsr $b7eb
	stx step
	lda 20
	sta st
	lda 21
	sta st+1
	jsr scope
	ldx end+1
	inx
	beq illq
	jsr $aad7
	lda #<cop5
	ldy #>cop5
	sta 770
	sty 771
cop1	ldy #1
	lda (tmp2),y
	bne cop8
cop3	jsr corr
	jsr $a659
	jmp donei
cop8	ldy #3
	lda (tmp2),y
	cmp end+1
	bcc cop2
	bne cop3
	dey
	lda (tmp2),y
	cmp end
	bcs cop3
cop2	ldy #2
	lda (tmp2),y
	tax
	iny
	lda (tmp2),y
	jsr $bdcd
	lda #<tx6
	ldy #>tx6
	jsr $ab1e
	ldy #3
cop4	iny
	lda (tmp2),y
	sta 508,y
	tax
	bne cop4
	tya
	pha
	sec
	adc tmp2
	sta tmp2
	bcc cop7
	inc tmp2+1
cop7	ldy #2
	lda (tmp2),y
	sta an
	iny
	lda (tmp2),y
	sta an+1
	ldx st
	stx 20
	lda st+1
	sta 21
	jmp einsprung
cop5	lda st
	clc
	adc step
	sta st
	bcc cop6
	inc st+1
cop6	jsr getadr
	jmp cop1
