__MAIN = $1000 .include "dos33.inc" .include "ca65.inc" KEYBOARD = $C000 KEYSTROBE = $C010 TXTCLR = $C050 ; Mode Graphics MIXCLR = $C052 ; Full screen MIXSET = $C053 ; Split screen PAGE1 = $C054 HIRES = $C057 ; Mode HGR HgrLo = $F5 HgrHi = $F6 glyph = $FE DrawChar = $310 DemoCharInspect: BIT PAGE1 ; Page 1 BIT TXTCLR ; not text, but graphics BIT MIXSET ; Split screen text/graphics BIT HIRES ; HGR, no GR LDA #0 ; glyph=0 STA glyph ; save which glyph to draw .a LDA #0 ; screen = 0x2000 STA HgrLo ; LDA #$20 ; HGR Page 1 STA HgrHi ; LDA glyph ; A = glyph LDY #00 ; Y = col JSR DrawChar .b LDA KEYBOARD ; read A=key BPL .b ; no key? STA KEYSTROBE ; debounce key CMP #$88 ; key == <-- ? CTRL-H BNE .d ; DEC glyph ; yes, --glyph .c LDA glyph ; glyph &= 0x7F AND #$7F ; STA glyph ; BPL .a ; always branch, draw prev char .d CMP #$95 ; key == --> ? CTRL-U BNE .e ; INC glyph ; yes, ++glyph CLC ; always branch BCC .c ; draw prev char .e CMP #$9B ; key == ESC ? BNE .b ; RTS ; yes, exit __END: