font.inc
changeset 89 1b3cea759eff
parent 88 c923295ee520
child 90 13c2deb919d1
--- a/font.inc	Mon Jun 02 18:27:08 2014 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-;; Basic LED matrix fonts
-;; vim: set ft=avr:
-
-.cseg
-
-;; Font definition
-; Defines FONT_8x6 symbol
-.include "font.def"
-
-; Font to use
-.set FONT_TABLE     = FONT_8x6
-.set FONT_START     = FONT_8x6_START
-.set FONT_END       = FONT_8x6_END
-.set FONT_COLS      = FONT_8x6_COLS
-.set FONT_ROWS      = FONT_8x6_ROWS     ; XXX: fixed to 8
-
-;; Render the given ASCII char into the given buffer
-; Input:    r16 - ASCII char code
-;           Y   - dest buf (Wx8 column data)
-Font_Render:
-    ; Test char index
-
-        ; test under-range
-        ldi     r17, FONT_START
-        cp      r16, r17
-        brlt    font_r_invalid
-
-        ; test over-range
-        ldi     r17, FONT_END
-        cp      r17, r16
-        brlt    font_r_invalid
-
-        ; compute offset in chars (r16)
-        subi    r16, FONT_START
-
-        ; ok
-        rjmp    font_r_render
-
-font_r_invalid:
-        ; use first sym
-        ldi     r16, 0
-
-    cbi         PORTD, PIND7
-
-font_r_render:
-        ; compute offset in bytes (r1:r0)
-        ldi     r17, FONT_COLS
-        mul     r16, r17
-
-        ; font table start offset from words
-        ldi     ZL, low(FONT_TABLE * 2)
-        ldi     ZH, high(FONT_TABLE * 2)
-
-        ; apply offset
-        add     ZL, r0
-        adc     ZH, r1
-
-    ; Copy column pixel data
-        ; count columns
-        ldi     r16, FONT_COLS
-font_r_cpy:
-        
-        ; copy via r17
-        lpm     r17, Z+
-        st      Y+, r17
-
-        dec     r16
-        brne    font_r_cpy
-
-
-    ; Done
-        ret
-