; -*-asm-*- include(`common.m4') ;; BRA r :_gfont_reset ; RESB ;; NOP i ; IRQ ;; _gfont_reset: LDX # ff ;; TXS i ;; JSR a :gfont_init ;; LDA # ^97 ;; JSR a :gfont_draw_c2 ;; stop: BRA r :stop ;; Set pins 0-4 on Port A to Output gfont_init: LDA # hh(L_DDR_MASK) STA a VIA0_DDRA ;; Display ON/OFF: ;; D7 D6 D5 D4 D3 D2 D1 D0 ;; 0 0 1 1 1 1 1 D ;; LDA # %00111111 JSR a :glcd_w_rs0_c2 LDA # %00111111 JSR a :glcd_w_rs0_c1 STZ zp 0 JSR a :glcd_fill LDA # %01000000 ; Y address ORA # ^55 JSR a :glcd_w_rs0_c2 LDA # %10111000 ; X page ORA # ^7 JSR a :glcd_w_rs0_c2 RTS s ;;; begin gfont_draw_c2 (A) ;; begin A << 3 gfont_draw_c2: STA zp 0 STZ zp 1 ASL zp 0 ROL zp 1 ASL zp 0 ROL zp 1 ASL zp 0 ROL zp 1 ;; end A << 3 CLC i LDA # :_bin_res/font_start_l ADC zp 0 STA zp 0 LDA # :_bin_res/font_start_h ADC zp 1 STA zp 1 LDY # 4 _gfont_c2_y_loop: LDA (zp),y 0 JSR a :glcd_w_rs1_c2 DEY i BPL r :_gfont_c2_y_loop RTS s ;;; end gfont_draw_c2 ;;; begin gfont_draw_c1 (A) ;; begin A << 3 gfont_draw_c1: STA zp 0 STZ zp 1 ASL zp 0 ROL zp 1 ASL zp 0 ROL zp 1 ASL zp 0 ROL zp 1 ;; end A << 3 CLC i LDA # :_bin_res/font_start_l ADC zp 0 STA zp 0 LDA # :_bin_res/font_start_h ADC zp 1 STA zp 1 LDY # 4 _gfont_c1_y_loop: LDA (zp),y 0 JSR a :glcd_w_rs1_c1 DEY i BPL r :_gfont_c1_y_loop RTS s ;;; end gfont_draw_c1