;:sys36864
	*= $c000
	;.opt oo
vic	=$d000
tmp	=2
irqvec	=788
basvec	=44
konf	=1
spptr	=2040
screen	=$400
cint	=65409
chrgot	=121
chkcom	=$aefd
gettwo	=$b7eb
byte	=$14
chrvec	=$326
outdev	=$9a
cr	=13
color	=646
rvs	=199
tmp2	=4
quote	=212
insert	=$d8
space	=$ab3f
basanf	=44
basic	=$a00
strout	=$ab1e
keyanz	=198
keybuf	=631
	jmp init
bsout	jmp 61898
select	brk
zeile	brk
chars	.word $d000
konfsel	.byt 51
ymerk	brk
xmerk	brk
amerk	brk
nextflag	brk
aktcol	brk
aktrvs	brk
neunum	brk
read	brk
write	brk
vier	brk
allow	brk
special	brk
grbit	.byt 1,2,4,8,$10,$20,$40,$80
titel	.byt cr
	.byte "\x93grosse anfangsbuchstaben  v2.0"
	.byt cr
	.byte "programmiert von n. heusler 060787"
	.byt cr
	.byte " (c) nss 1987"
	.byt cr+$80
	.byte "\x11\x11\x11\x11new\x91\x91\x91"
	brk
init	lda irqvec+1
	cmp #>irqneu
	beq irqset
	sei
	sta irqold+2
	lda irqvec
	sta irqold+1
	lda #<irqneu
	sta irqvec
	lda #>irqneu
	sta irqvec+1
	cli
irqset	lda #39
	ldy #7
i4	sta spptr,y
	sec
	sbc #1
	dey
	bpl i4
	jsr cint
	lda #-1
	sta vic+23
	sta vic+29
	lda #0
	tax
	sta nextflag
clrbasic	sta $800,x
	sta $900,x
	dex
	bne clrbasic
	jsr getpar
	lda chrvec+1
	cmp #>chrneu
	beq chrset
	sta bsout+2
	lda chrvec
	sta bsout+1
	lda #<chrneu
	sta chrvec
	lda #>chrneu
	sta chrvec+1
chrset	lda basvec
	cmp #10
	bcs sat
	lda #10
	sta basvec
	lda #0
	sta basic
	sta basic+1
	sta basic+2
	lda #1
	sta keyanz
	lda #cr
	sta keybuf
sat	lda #<titel
	ldy #>titel
	jmp strout
getpar	jsr chrgot
	bne nowas
	rts
nowas	jsr chkcom
	jsr gettwo
	lda byte
	ldy byte+1
	sta chars
	sty chars+1
	stx konfsel
	rts
irqneu	jsr find
	lda select
	sta vic+21
irqold	jmp $ea31
find	lda tmp
	pha
	lda tmp+1
	pha
	lda #>screen
	sta tmp+1
	ldy #0
	sty tmp
	sty select
	ldx #24
i1	ldy #0
	lda (tmp),y
	cmp #-1
	bne i2
	stx zeile
	iny
	lda (tmp),y
	and #7
	tax
	ldy #40
	lda (tmp),y
	sta vic+39,x
	lda grbit,x
	ora select
	sta select
	txa
	asl
	tay
	lda #24
	sta vic,y
	lda #24
	sec
	sbc zeile
	asl
	asl
	asl
	adc #50
	sta vic+1,y
	ldx zeile
i2	lda tmp
	clc
	adc #40
	sta tmp
	bcc i3
	inc tmp+1
i3	dex
	bne i1
	pla
	sta tmp+1
	pla
	sta tmp
	rts
yello	bit special
	bpl norm
	dec allow
norm	rts
ah	lda #0
	.byt $2c
be	lda #-1
	sta allow
	clc
	rts
ce	lda #0
	.byt $2c
de	lda #-1
	sta special
	clc
	rts
chrneu	pha
	lda outdev
	cmp #3
	beq schirm
	pla
bs	jmp bsout
schirm	pla
	cmp #"\x01"
	beq ah
	cmp #"\x02"
	beq be
	cmp #"\x03"
	beq ce
	cmp #"\x04"
	beq de
	bit allow
	bmi bs
	cmp #cr
	beq jacr
	pha
	lda nextflag
	bne buffed
	pla
	jmp bsout
jacr	pha
	lda #1
	sta nextflag
	pla
wrong	jmp bsout
buffed	pla
	cmp #" "
	bcc wrong
	cmp #128
	bcc right
	cmp #149
	bcc wrong
	cmp #156
	bcc right
	cmp #160
	bcc wrong
right	jsr yello
	stx xmerk
	sty ymerk
	sta amerk
	dec nextflag
	jsr find
	ldx #7
fis	lda select
	and grbit,x
	beq found
	dex
	bpl fis
	ldx xmerk
	ldy ymerk
	lda amerk
	jmp bsout
found	stx neunum
	lda color
	sta aktcol
	lda rvs
	sta aktrvs
	lda #1
	sta rvs
	lda vic+33
	and #15
	sta color
	jsr space
	lda #"\x9d"
	jsr bsout
	lda #"\xbf"
	jsr bsout
	lda neunum
	ora #48
	jsr bsout
	lda #141
	jsr bsout
	dec rvs
	lda aktcol
	ora #48
	jsr bsout
	jsr bsout
	sta color
	lda aktrvs
	sta rvs
	lda aktcol
	sta color
	jsr copy
	lda amerk
	ldy ymerk
	ldx xmerk
	clc
	rts
copy	lda vic+24
	and #2
	asl
	asl
	sta vier
	sei
	lda konf
	pha
	lda konfsel
	sta konf
	lda amerk
	bpl k128
	and #$7f
	cmp #$7f
	bne nopi
	lda #$5e
nopi	ora #$40
	bne auswert
aus	jmp auswert
k128	cmp #$60
	bcc k160
	and #$df
	bne auswert
k160	and #$3f
auswert	ldx aktrvs
	beq off
	ora #$80
off	ldx #0
	stx tmp+1
	ldx #2
mal8	asl
	rol tmp+1
	dex
	bpl mal8
	clc
	adc chars
	sta tmp
	lda tmp+1
	adc chars+1
	adc vier
	sta tmp+1
	lda neunum
	asl
	asl
	asl
	asl
	asl
	asl
	sta tmp2
	lda #8
	adc #0
	sta tmp2+1
	ldy #21
	sty write
	ldy #7
copyc	lda (tmp),y
	sty read
	ldy write
	sta (tmp2),y
	dey
	dey
	dey
	sty write
	ldy read
	dey
	bpl copyc
	pla
	sta konf
	cli
	rts
