;: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 sta irqvek sty irqvek+1 noset jsr cl 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+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+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