;:poke56,128:clr
;:open2,8,2,"code,p,w
;:sys36864
	;.opt o2
	*= 2061
name	=$c240
ready	=$c200
pos	=3
hin	=4
p2	=2
tok	=$c300
error	=$c400
fehler	=$c280
adr	=181
	jmp run
	jmp save
run	jsr 65409
	jsr $ffe7
	lda #47
	sta 0
	lda #55
	sta 1
	lda #15
	sta 53281
	lda #12
	sta 53280
	lda #<hi1
	ldy #>hi1
	jsr $ab1e
	lda #160
	jsr copy
	lda #224
	jsr copy
	ldx #6
	stx 59639
	lda #53
	sta 1
	lda #-1
	sta $ebb4
	sta $ebf5
	sta $ec36
	sta $eb88
	sta $ebc9
	sta $ec0a
	sta $ebc3
	sta $ec04
	lda #<hi2
	ldy #>hi2
	jsr $ab1e
	lda #<hi3
	ldy #>hi3
	jsr $ab1e
	lda #0
	tax
ac	sta $c200,x
	sta $c300,x
	sta $c400,x
	sta $c500,x
	sta $c600,x
	inx
	bne ac
e1	jsr $ffcf
	cmp #13
	beq e2
	sta name,x
	inx
	bne e1
e2	txa
	beq run
	sta $c27f
e5	lda #<hi4
	ldy #>hi4
	jsr $ab1e
	ldx #0
e3	jsr $ffcf
	cmp #13
	beq e4
	sta ready+1,x
	inx
	bne e3
e4	sta ready
	sta ready+1,x
	txa
	beq e5
	lda #<hi5
	ldy #>hi5
	jsr $ab1e
	ldx #0
	stx pos
	stx hin
e6	lda 214
	pha
	lda #<frt
	ldy #>frt
	jsr $ab1e
	lda #255
	eor hin
	tax
	lda #0
	jsr $bdcd
	lda #20
	sta 211
	lda #<dift
	ldy #>dift
	jsr $ab1e
	ldy #32
	lda pos
	sec
	sbc hin
	beq equal
	bpl plus
	ldy #"-"
	eor #-1
	adc #1
	.byt $2c
plus	ldy #"+"
equal	tax
	tya
	jsr $ffd2
	lda #0
	jsr $bdcd
	pla
	sta 214
	lda #<hi6
	ldy #>hi6
	jsr $ab1e
	ldx pos
e7	lda $a09e,x
	pha
	and #127
	jsr $ffd2
	inx
	pla
	bpl e7
	stx p2
	lda #11
	sta 646
	lda #2
	sta 211
	ldx hin
e8	jsr $ffcf
	cmp #13
	beq e9
	and #127
	cmp #32
	beq ee6
	cmp #58
	beq ee6
	sta tok,x
	inx
	bne e8
	jsr $aad7
	lda #<errt
	ldy #>errt
	jsr $ab1e
	jsr key
	jmp run
e9	cpx hin
	bne n
ee6	jmp e6
n	lda tok-1,x
	ora #128
	sta tok-1,x
	stx hin
	ldx p2
	stx pos
	lda $a09e,x
	bne ee6
	lda #<hi7
	ldy #>hi7
	jsr $ab1e
	ldx #0
	stx pos
	ldy #>error
	stx adr
	sty adr+1
	jsr 59903
ea	lda #<hi6
	ldy #>hi6
	jsr $ab1e
	lda pos
	asl
	tax
	lda $a328,x
	sta $22
	lda $a329,x
	sta $23
	ldy #0
eb	lda ($22),y
	pha
	and #127
	jsr $ffd2
	iny
	pla
	bpl eb
	lda #$69
	ldy #$a3
	jsr $ab1e
	lda #11
	sta 646
	lda #2
	sta 211
	ldy #0
ec	jsr $ffcf
	cmp #13
	beq ed
	and #127
	sta (adr),y
	iny
	bne ec
ed	tya
	beq ea
	dey
	lda (adr),y
	ora #128
	sta (adr),y
	iny
	lda pos
	asl
	tax
	lda adr
	sta fehler,x
	lda adr+1
	sta fehler+1,x
	tya
	clc
	adc adr
	sta adr
	bcc ee
	inc adr+1
ee	inc pos
	lda pos
	cmp #30
	bcc ea
	lda #<hi8
	ldy #>hi8
	jsr $ab1e
	jsr key
save	lda #<hi9
	ldy #>hi9
	jsr $ab1e
	lda $c27f
	ldx #<name
	ldy #>name
	jsr $ffbd
	ldx #8
	lda #1
	tay
	jsr $ffba
	jsr $ffc0
	ldx #1
	jsr $ffc9
	lda #0
	tay
	jsr $ffd2
	lda #192
	jsr $ffd2
c1	lda code,y
	jsr $ffd2
	iny
	bne c1
c2	lda code+256,y
	jsr $ffd2
	iny
	bne c2
c3	lda ready,y
	jsr $ffd2
	iny
	bne c3
c4	lda tok,y
	jsr $ffd2
	iny
	bne c4
	sty pos
	lda #>error
	sta pos+1
c5	lda pos+1
	cmp adr+1
	bcc c6
	bne c7
	lda pos
	cmp adr
	bcs c7
c6	lda (pos),y
	jsr $ffd2
	inc pos
	bne c5
	inc pos+1
	bne c5
c7	jsr $ffcc
	lda #1
	jsr $ffc3
	lda #55
	sta 1
	rts
copy	sta 3
	ldy #0
	sty 2
	ldx #32
cp1	lda (2),y
	sta (2),y
	iny
	bne cp1
	inc 3
	dex
	bne cp1
	rts
key	lda #0
	sta 198
ky	cmp 198
	beq ky
	sta 198
	rts
hi1	.byte "\x11\x97\x08 \xac\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xbb"
	.byte "  \x12\xa1    the basic-construction-set      \x92\xa1"
	.byte "  \x12\xa1     von  nikolaus m. heusler       \x92\xa1"
	.byte "  \x12\xa1 customizer   revision #1   nh 3.92 \x92\xa1"
	.byte "  \x12\xa1copyright most strenuously reserved!\x92\xa1"
	.byte "  \xbc\x12\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\xa2\x92\xbe"
	brk
hi2	.byt 13
	.byte "\x11definieren sie ihren persoenlichen basic"
	.byte "dialekt.  ueberschreiben sie die weissen"
	.byte "vorgaben und  betaetigen nach jeder ein-"
	.byte "gabe die return-taste."
	.byt 13
	.byte "bitte nicht die bildschirmzeilen verlas-"
	brk
hi3	.byte "sen!"
	.byt 13
	.byte "\x11\x1fwie soll der basic-dialekt heissen?"
	.byt 13
	.byte "name: \x05cbmbasic\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x9d\x97"
	brk
hi4	.byt 13
	.byte "\x11\x1fprompt: \x05ready.\x9d\x9d\x9d\x9d\x9d\x9d\x97"
	brk
frt	.byte "\x13\x98freie zeichen:\x05    \x9d\x9d\x9d"
	brk
dift	.byte "\x98differenz:\x05     \x9d\x9d\x9d\x9d"
	brk
hi5	.byt 13
	.byte "\x11\x1fbitte die neuen befehlswoerter eingeben"
	.byt 13,0
errt	.byte "\x11\x97achtung: speichergrenze ueberschritten"
	.byt 13
	.byte "(return fuer neustart)"
	brk
hi6	.byt 13
	.byte "\x1f- \x05"
	brk
hi7	.byt 13
	.byte "\x11\x1fjetzt die neuen fehlermeldungen:"
	.byt 13,0
hi8	.byt 13
	.byte "\x11\x1fbitte diskette einlegen - return"
	brk
hi9	.byt 13
	.byte "\x11-wird gespeichert-\x11"
	brk
code	=*
