;:poke56,128
;:sys36864
	*= $8800 	;34816
	;.opt oo
holx	= $b7f1
linex	= $e9f0
setcol	= $ea24
farbptr	= $f3
fremevl	= $ad9e
chkcom	= $aefd
frestr	= $b6a3
stradr	= $22
irqvek	= $314
chrout	= $ffd2
himem	= 55
latch	= 32768
wpnt	= 167
rpnt	= 169
store	= 2030
farb	= 2031
aktcol	= 2024
len	= 2032
screen	= 53281
cnt	= 2025
linptr	= 209
mem1	= 2026
mem2	= 2027
mem3	= 2028
mem4	= 2029
illegal	= $b248
setcr	= 58732
zeile	= 214
spalte	= 211
	jmp init
	jmp set
	jmp off
cl	jmp clear
	jmp speed
init	sei
	lda irqvek
	cmp #<newirq
	beq noset
	sta oldirq+1
	lda irqvek+1
	sta oldirq+2
	lda #<newirq
	ldy #>newirq
	sta irqvek
	sty irqvek+1
noset	jsr cl
	lda #<latch
	sta himem
	lda #>latch
	sta himem+1
	rts
newirq	dec cnt
	bne oldirq
spd	lda #20
	sta cnt
	jsr put1
	jsr irq
	jsr put2
oldirq	jmp 0
clear	lda #<latch
	sta wpnt
	lda #>latch
	sta wpnt+1
	lda #255
	sta latch
	rts
off	sei
	lda oldirq+1
	ldy oldirq+2
	sta irqvek
	sty irqvek+1
	cli
rt	rts
irq	lda #<latch
	sta rpnt
	lda #>latch
	sta rpnt+1
	lda aktcol
	beq eins
	lda #0
	beq null
eins	lda #1
null	sta aktcol
loop	jsr getchr
	cmp #255
	beq rt
	lda aktcol
	beq col1
	lda screen
	clc
	bcc col2
col1	ldy #3
	lda (rpnt),y
col2	sta farb
	ldy #0
	lda (rpnt),y
	tax
	jsr linex
	jsr setcol
	iny
	lda (rpnt),y
	tax
	iny
	lda (rpnt),y
	sta len
	txa
	tay
	ldx #0
	lda farb
loop2	sta (farbptr),y
	iny
	inx
	cpx len
	bne loop2
	lda rpnt
	clc 
	 adc #4
	sta rpnt
	bcc noinc
	inc rpnt+1
noinc	jmp loop
set	sei
	jsr getx
	cpx #25
	bcc gut
ill	cli
	jmp illegal
gut	ldy #0
	txa
	sta zeile
	sta (wpnt),y
	jsr getx
	cpx #40
	bcs ill
	iny
	txa
	sta spalte
	sta (wpnt),y
	jsr getx
	cpx #16
	bcs ill
	iny
	iny
	txa
	sta (wpnt),y
	jsr chkcom
	jsr fremevl
	jsr frestr
	cmp #0
	beq ill
	cmp #255
	beq ill
	ldy #2
	sta (wpnt),y
	sta len
	jsr setcr
	ldy #0
loop3	lda (stradr),y
	jsr chrout
	iny
	cpy len
	bne loop3
	lda wpnt
	clc 
	 adc #4
	sta wpnt
	bcc no
	inc wpnt+1
no	ldy #0
	lda #255
	sta (wpnt),y
	cli
	rts
getchr	sty store
	ldy #0
	lda (rpnt),y
	ldy store
	cmp #0
	rts
put1	lda farbptr
	sta mem1
	lda farbptr+1
	sta mem2
	lda linptr
	sta mem3
	lda linptr+1
	sta mem4
	rts
put2	lda mem4
	sta linptr+1
	lda mem3
	sta linptr
	lda mem2
	sta farbptr+1
	lda mem1
	sta farbptr
	rts
getx	sty store
	jsr holx
	ldy store
	rts
speed	jsr holx
	stx spd+1
	rts
