--- 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
-