summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfishsoupisgood <github@madingley.org>2020-06-15 14:02:42 +0100
committerfishsoupisgood <github@madingley.org>2020-06-15 14:02:42 +0100
commit4ced1453cee7a3131459040efd57f73bfc77aece (patch)
tree78cbcbdcef4847b5b194cf65470ffb45a3e7a8e3
parentd23934fedc0b76863fcb2ba653560e108309bce6 (diff)
downloadrobs_speedo-4ced1453cee7a3131459040efd57f73bfc77aece.tar.gz
robs_speedo-4ced1453cee7a3131459040efd57f73bfc77aece.tar.bz2
robs_speedo-4ced1453cee7a3131459040efd57f73bfc77aece.zip
guage code
-rw-r--r--Makefile.rules2
-rw-r--r--app/Makefile7
-rw-r--r--app/font21x32.c189
-rw-r--r--app/font8x16.c1566
-rw-r--r--app/font8x8.c24
-rw-r--r--app/gauge.c145
-rw-r--r--app/i2c.c9
-rw-r--r--app/i2c_hw.c142
-rw-r--r--app/led.c12
-rw-r--r--app/main.c59
-rw-r--r--app/oled.c112
-rw-r--r--app/oled1.c55
-rw-r--r--app/oled2.c55
-rw-r--r--app/prototypes.h5
-rw-r--r--app/ring.c23
-rw-r--r--app/ring.h3
-rw-r--r--app/tacho.c10
-rw-r--r--app/ticker.c31
-rw-r--r--app/usart.c55
19 files changed, 1588 insertions, 916 deletions
diff --git a/Makefile.rules b/Makefile.rules
index a723e6f..ec27405 100644
--- a/Makefile.rules
+++ b/Makefile.rules
@@ -184,7 +184,7 @@ fish:
clean:
@#printf " CLEAN\n"
- $(Q)$(RM) *.o *.d *.elf *.bin *.hex *.srec *.list *.map *~ *.dfu ${EXTRACLEANS}
+ $(Q)$(RM) *.o *.d *.elf *.bin *.hex *.srec *.list *.map *~ *.dfu ${EXTRACLEANS} *.orig *~
stylecheck: $(STYLECHECKFILES:=.stylecheck)
styleclean: $(STYLECHECKFILES:=.styleclean)
diff --git a/app/Makefile b/app/Makefile
index 7fa09f4..f50e524 100644
--- a/app/Makefile
+++ b/app/Makefile
@@ -23,7 +23,7 @@ PROG=speedo
V=1
default: ${PROG}.elf
-CSRCS=main.c led.c i2c.c usart.c ring.c ticker.c oled.c i2c_hw.c font8x8.c font8x16.c tacho.c oled1.c oled2.c font21x32.c
+CSRCS=main.c led.c i2c.c usart.c ring.c ticker.c oled.c i2c_hw.c font8x8.c font8x16.c tacho.c oled1.c oled2.c font21x32.c gauge.c
HSRCS=i2c.h oled.h project.h ring.h
@@ -60,5 +60,10 @@ protos: ${CSRCS}
${CPROTO} $(INCLUDES) $(DEFINES) -e -v ${CSRCS} > prototypes.h.tmp
mv -f prototypes.h.tmp prototypes.h
+tidy:
+# indent -i2 -ts0 ${CSRCS} ${HSRCS}
+ astyle -A3 -s2 --attach-extern-c -L -c -w -Y -m0 -f -p -H -U -k3 -xj -xd ${CSRCS} ${HSRCS}
+
+
#${OBJCOPY} -I binary -O elf32-littlearm -B arm --rename-section .data=.rodata.almanac,alloc,load,readonly,data,contents $< $@
diff --git a/app/font21x32.c b/app/font21x32.c
index 67d1018..4e29869 100644
--- a/app/font21x32.c
+++ b/app/font21x32.c
@@ -1,83 +1,105 @@
#include "project.h"
static uint8_t font21x32[][84] = {
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
- 0xfc, 0xfe, 0xff, 0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x0f,
- 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0xff,
- 0xe0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xf8, 0xff, 0x7f, 0x3f,
- 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x06, 0x06, 0x06, 0x06, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0,
- 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
- 0x1e, 0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x83, 0xc7, 0xff,
- 0xff, 0xfe, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0,
- 0xf0, 0xf8, 0xfc, 0xf4, 0xf6, 0xf3, 0xf3, 0xf1, 0xf1, 0xf1, 0xf0, 0xfc,
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x3c, 0x7e, 0x7f, 0x7b, 0x11, 0x01, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff,
- 0xfe, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
- 0x00, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x0f, 0x3b, 0xfb, 0xf9, 0xf0, 0xe0,
- 0xc0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x6f, 0x6e, 0x40, 0xc0,
- 0xc0, 0xc0, 0xc0, 0x60, 0x78, 0x7f, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x38, 0x0c, 0xfe, 0xff, 0xff,
- 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xdc, 0xc6,
- 0xc3, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0,
- 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
- 0x60, 0x60, 0x60, 0x7f, 0x7f, 0x7f, 0x7f, 0x60, 0x60, 0x60, 0x40, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x07,
- 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0x8f,
- 0x06, 0x02, 0x03, 0x03, 0x01, 0x03, 0x03, 0x1e, 0xfe, 0xfc, 0xfc, 0xf0,
- 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x37, 0x67, 0x63, 0x40, 0xc0,
- 0xc0, 0xc0, 0x40, 0x60, 0x78, 0x7f, 0x3f, 0x1f, 0x0f, 0x01, 0x00, 0x00,},
- {0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0x1e, 0x06, 0x02, 0x03, 0x03,
- 0x03, 0x03, 0x3b, 0x7e, 0x7e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0x0c, 0x06, 0x02, 0x02, 0x02, 0x02, 0x06, 0xfe,
- 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x7f,
- 0xff, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xff, 0x7f, 0x7f, 0x1f,
- 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff,
- 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xcf, 0xef, 0x7f,
- 0x3f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0xff,
- 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0xf0, 0xfc, 0xfe, 0xc2, 0x82, 0x03, 0x03, 0x03, 0x03,
- 0x03, 0x03, 0x06, 0xfe, 0xfc, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
- 0xc1, 0xe7, 0xef, 0x3f, 0x1f, 0x1f, 0x3f, 0x3e, 0x7e, 0xfc, 0xfe, 0xfb,
- 0xfb, 0xf1, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xe0,
- 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc1, 0x63, 0x7f, 0x3f,
- 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
- 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
- 0xfc, 0xfe, 0xfe, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0xff,
- 0xfe, 0xfc, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x3f,
- 0x7f, 0x60, 0x40, 0x40, 0x40, 0x40, 0x20, 0x18, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x7e, 0x5c, 0xc0, 0xc0,
- 0xc0, 0x40, 0x60, 0x70, 0x38, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00,},
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+ 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8,
+ 0xfc, 0xfe, 0xff, 0x07, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x0f,
+ 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0xff,
+ 0xe0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xf8, 0xff, 0x7f, 0x3f,
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x06, 0x06, 0x06, 0x06, 0x02, 0x02, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c,
+ 0x1e, 0x1f, 0x1f, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x83, 0xc7, 0xff,
+ 0xff, 0xfe, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xe0, 0xf0,
+ 0xf0, 0xf8, 0xfc, 0xf4, 0xf6, 0xf3, 0xf3, 0xf1, 0xf1, 0xf1, 0xf0, 0xfc,
+ 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x3c, 0x7e, 0x7f, 0x7b, 0x11, 0x01, 0x01, 0x01, 0x01, 0x83, 0xff, 0xff,
+ 0xfe, 0xfe, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00,
+ 0x00, 0x04, 0x04, 0x04, 0x04, 0x0e, 0x0f, 0x3b, 0xfb, 0xf9, 0xf0, 0xe0,
+ 0xc0, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x6f, 0x6e, 0x40, 0xc0,
+ 0xc0, 0xc0, 0xc0, 0x60, 0x78, 0x7f, 0x3f, 0x3f, 0x1f, 0x07, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x38, 0x0c, 0xfe, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xdc, 0xc6,
+ 0xc3, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xc0,
+ 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+ 0x60, 0x60, 0x60, 0x7f, 0x7f, 0x7f, 0x7f, 0x60, 0x60, 0x60, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x0f, 0x0f, 0x07,
+ 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x8f, 0x8f,
+ 0x06, 0x02, 0x03, 0x03, 0x01, 0x03, 0x03, 0x1e, 0xfe, 0xfc, 0xfc, 0xf0,
+ 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x37, 0x67, 0x63, 0x40, 0xc0,
+ 0xc0, 0xc0, 0x40, 0x60, 0x78, 0x7f, 0x3f, 0x1f, 0x0f, 0x01, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0x1e, 0x06, 0x02, 0x03, 0x03,
+ 0x03, 0x03, 0x3b, 0x7e, 0x7e, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0xff, 0xff, 0xff, 0x0c, 0x06, 0x02, 0x02, 0x02, 0x02, 0x06, 0xfe,
+ 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x1f, 0x3f, 0x7f,
+ 0xff, 0xc0, 0xc0, 0x80, 0x80, 0x80, 0x80, 0xc0, 0xff, 0x7f, 0x7f, 0x1f,
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff,
+ 0x1f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0xcf, 0xef, 0x7f,
+ 0x3f, 0x0f, 0x07, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0xc0, 0xf0, 0xfc, 0xfe, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xff, 0xff,
+ 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xf0, 0xfc, 0xfe, 0xc2, 0x82, 0x03, 0x03, 0x03, 0x03,
+ 0x03, 0x03, 0x06, 0xfe, 0xfc, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80,
+ 0xc1, 0xe7, 0xef, 0x3f, 0x1f, 0x1f, 0x3f, 0x3e, 0x7e, 0xfc, 0xfe, 0xfb,
+ 0xfb, 0xf1, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xe0,
+ 0xc0, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0xc1, 0x63, 0x7f, 0x3f,
+ 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+ 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0,
+ 0xfc, 0xfe, 0xfe, 0xff, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x07, 0xff,
+ 0xfe, 0xfc, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x1f, 0x3f,
+ 0x7f, 0x60, 0x40, 0x40, 0x40, 0x40, 0x20, 0x18, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x7e, 0x5c, 0xc0, 0xc0,
+ 0xc0, 0x40, 0x60, 0x70, 0x38, 0x3f, 0x1f, 0x0f, 0x03, 0x00, 0x00, 0x00,
+ },
};
@@ -85,7 +107,7 @@ static uint8_t font21x32[][84] = {
/* this can be budget, since it can only fit one way vertically*/
void
-font21x32_put_ch (uint8_t * vram, unsigned ch, unsigned x)
+font21x32_put_ch (uint8_t *vram, unsigned ch, unsigned x)
{
if ((ch >= '0') && (ch <= '9'))
ch -= '0' - 1;
@@ -104,11 +126,10 @@ font21x32_put_ch (uint8_t * vram, unsigned ch, unsigned x)
void
-font21x32_put_str (uint8_t * vram, char *str, unsigned x)
+font21x32_put_str (uint8_t *vram, char *str, unsigned x)
{
- while (*str)
- {
- font21x32_put_ch (vram, *(str++), x);
- x += 21;
- }
+ while (*str) {
+ font21x32_put_ch (vram, * (str++), x);
+ x += 21;
+ }
}
diff --git a/app/font8x16.c b/app/font8x16.c
index 3591129..80bae43 100644
--- a/app/font8x16.c
+++ b/app/font8x16.c
@@ -1,522 +1,1034 @@
#include "project.h"
static uint8_t font8x16[][16] = {
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0xf0, 0x08, 0x48, 0x08, 0x08, 0x48, 0x08, 0xf0, 0x3f, 0x40, 0x44, 0x4c,
- 0x4c, 0x44, 0x40, 0x3f,},
- {0xf0, 0xf8, 0xb8, 0xf8, 0xf8, 0xb8, 0xf8, 0xf0, 0x3f, 0x7f, 0x7b, 0x73,
- 0x73, 0x7b, 0x7f, 0x3f,},
- {0x80, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0x80, 0x00, 0x0f, 0x1f, 0x3f, 0x7f,
- 0x3f, 0x1f, 0x0f, 0x00,},
- {0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x3f,
- 0x1f, 0x0f, 0x06, 0x00,},
- {0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x0f, 0x0f, 0x4f, 0x70,
- 0x70, 0x4f, 0x0f, 0x0f,},
- {0x00, 0x80, 0xc0, 0xf0, 0xf0, 0xc0, 0x80, 0x00, 0x07, 0x0f, 0x4f, 0x7f,
- 0x7f, 0x4f, 0x0f, 0x07,},
- {0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f,
- 0x0f, 0x07, 0x00, 0x00,},
- {0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf0,
- 0xf0, 0xf8, 0xff, 0xff,},
- {0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x0f, 0x18, 0x10,
- 0x10, 0x18, 0x0f, 0x00,},
- {0xff, 0x7f, 0x3f, 0xbf, 0xbf, 0x3f, 0x7f, 0xff, 0xff, 0xf0, 0xe7, 0xef,
- 0xef, 0xe7, 0xf0, 0xff,},
- {0x00, 0x00, 0x80, 0xc8, 0x68, 0x38, 0x78, 0x00, 0x3e, 0x7f, 0x41, 0x41,
- 0x7f, 0x3e, 0x00, 0x00,},
- {0x00, 0xf0, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x13, 0x17, 0x7c,
- 0x7c, 0x17, 0x13, 0x00,},
- {0x00, 0x00, 0xf8, 0xf8, 0x48, 0x48, 0x78, 0x78, 0x60, 0x70, 0x7f, 0x3f,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0xf8, 0xf8, 0x48, 0x48, 0x48, 0xf8, 0xf8, 0xe0, 0xff, 0x7f, 0x00,
- 0x00, 0x70, 0x7f, 0x3f,},
- {0x80, 0x80, 0x00, 0xe0, 0xe0, 0x00, 0x80, 0x80, 0x16, 0x16, 0x0f, 0x79,
- 0x79, 0x0f, 0x16, 0x16,},
- {0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x3f, 0x1f, 0x0f,
- 0x07, 0x03, 0x03, 0x00,},
- {0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x00, 0x03, 0x03, 0x07, 0x0f,
- 0x1f, 0x3f, 0x7f, 0x00,},
- {0x00, 0x20, 0x30, 0xf8, 0xf8, 0x30, 0x20, 0x00, 0x00, 0x10, 0x30, 0x7f,
- 0x7f, 0x30, 0x10, 0x00,},
- {0x00, 0xf8, 0xf8, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x6f, 0x6f, 0x00,
- 0x00, 0x6f, 0x6f, 0x00,},
- {0xf0, 0xf8, 0x08, 0xf8, 0xf8, 0x08, 0xf8, 0xf8, 0x00, 0x01, 0x01, 0x7f,
- 0x7f, 0x00, 0x7f, 0x7f,},
- {0x10, 0xb8, 0xe8, 0x48, 0xc8, 0x98, 0x10, 0x00, 0x23, 0x67, 0x4c, 0x48,
- 0x5c, 0x77, 0x23, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70,
- 0x70, 0x70, 0x70, 0x00,},
- {0x00, 0x20, 0x30, 0xf8, 0xf8, 0x30, 0x20, 0x00, 0x00, 0x90, 0xb0, 0xff,
- 0xff, 0xb0, 0x90, 0x00,},
- {0x00, 0x20, 0x30, 0xf8, 0xf8, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x7f,
- 0x7f, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x7f,
- 0x7f, 0x30, 0x10, 0x00,},
- {0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x0a,
- 0x0f, 0x07, 0x02, 0x00,},
- {0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x0f, 0x0a,
- 0x02, 0x02, 0x02, 0x00,},
- {0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x10, 0x10,
- 0x10, 0x10, 0x10, 0x00,},
- {0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x07, 0x0f, 0x02,
- 0x02, 0x0f, 0x07, 0x02,},
- {0x00, 0x00, 0x80, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x18, 0x1e, 0x1f, 0x1f,
- 0x1f, 0x1e, 0x18, 0x00,},
- {0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x60, 0x00, 0x00, 0x01, 0x07, 0x1f,
- 0x07, 0x01, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0xf0, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f,
- 0x6f, 0x00, 0x00, 0x00,},
- {0x00, 0x1c, 0x3c, 0x00, 0x00, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x40, 0xf8, 0xf8, 0x40, 0xf8, 0xf8, 0x40, 0x00, 0x08, 0x7f, 0x7f, 0x08,
- 0x7f, 0x7f, 0x08, 0x00,},
- {0xf0, 0xf8, 0x08, 0x0e, 0x0e, 0x18, 0x30, 0x00, 0x30, 0x61, 0x41, 0xc1,
- 0xc1, 0x7f, 0x3e, 0x00,},
- {0x38, 0x38, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x00, 0x60, 0x78, 0x1e, 0x07,
- 0x01, 0x70, 0x70, 0x00,},
- {0x00, 0x70, 0xf8, 0x88, 0xf8, 0x70, 0x00, 0x00, 0x3e, 0x7f, 0x41, 0x47,
- 0x3e, 0x7f, 0x41, 0x00,},
- {0x00, 0x00, 0x20, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0xe0, 0xf0, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f,
- 0x60, 0x40, 0x00, 0x00,},
- {0x00, 0x00, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60,
- 0x3f, 0x1f, 0x00, 0x00,},
- {0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x02, 0x0a, 0x0f, 0x07,
- 0x07, 0x0f, 0x0a, 0x02,},
- {0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x1f,
- 0x1f, 0x02, 0x02, 0x02,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0,
- 0x70, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
- 0x60, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x00, 0x60, 0x78, 0x1e, 0x07,
- 0x01, 0x00, 0x00, 0x00,},
- {0xf0, 0xf8, 0x08, 0x88, 0x08, 0xf8, 0xf0, 0x00, 0x3f, 0x7f, 0x40, 0x47,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x00, 0x20, 0x30, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
- 0x7f, 0x40, 0x40, 0x00,},
- {0x10, 0x18, 0x08, 0x08, 0x88, 0xf8, 0x70, 0x00, 0x78, 0x7c, 0x46, 0x43,
- 0x41, 0x60, 0x60, 0x00,},
- {0x10, 0x18, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x20, 0x60, 0x41, 0x41,
- 0x41, 0x7f, 0x3e, 0x00,},
- {0x00, 0x80, 0xe0, 0x78, 0xf8, 0xf8, 0x00, 0x00, 0x06, 0x07, 0x05, 0x44,
- 0x7f, 0x7f, 0x44, 0x00,},
- {0xf8, 0xf8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x21, 0x61, 0x41, 0x41,
- 0x41, 0x7f, 0x3e, 0x00,},
- {0xe0, 0xf0, 0x18, 0x08, 0x08, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x41, 0x41,
- 0x41, 0x7f, 0x3e, 0x00,},
- {0x18, 0x18, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x78, 0x7e,
- 0x07, 0x01, 0x00, 0x00,},
- {0xf0, 0xf8, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x3e, 0x7f, 0x41, 0x41,
- 0x41, 0x7f, 0x3e, 0x00,},
- {0xf0, 0xf8, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x41, 0x41, 0x41,
- 0x61, 0x3f, 0x1f, 0x00,},
- {0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
- 0x30, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x70,
- 0x30, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x00, 0x03, 0x07, 0x0c,
- 0x18, 0x30, 0x20, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09,
- 0x09, 0x09, 0x09, 0x00,},
- {0x00, 0x10, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x20, 0x30, 0x18,
- 0x0c, 0x07, 0x03, 0x00,},
- {0x30, 0x38, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x6e,
- 0x6f, 0x01, 0x00, 0x00,},
- {0xe0, 0xf0, 0x10, 0x10, 0x10, 0xf0, 0xe0, 0x00, 0x3f, 0x7f, 0x40, 0x4f,
- 0x4f, 0x4f, 0x07, 0x00,},
- {0xc0, 0xe0, 0x30, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x41, 0x7f, 0x3e, 0x00,},
- {0xe0, 0xf0, 0x18, 0x08, 0x08, 0x18, 0x30, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x40, 0x60, 0x30, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x40, 0x7f, 0x7f, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x88, 0x18, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x43, 0x60, 0x70, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x88, 0x18, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x03, 0x00, 0x00, 0x00,},
- {0xe0, 0xf0, 0x18, 0x08, 0x08, 0x18, 0x30, 0x00, 0x1f, 0x3f, 0x60, 0x42,
- 0x42, 0x3e, 0x7e, 0x00,},
- {0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x7f, 0x7f, 0x01, 0x01,
- 0x01, 0x7f, 0x7f, 0x00,},
- {0x00, 0x00, 0x08, 0xf8, 0xf8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0xf8, 0x08, 0x30, 0x70, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x00, 0xc0, 0xf8, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x03,
- 0x0f, 0x7e, 0x70, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x7f, 0x40,
- 0x40, 0x60, 0x70, 0x00,},
- {0xf8, 0xf8, 0x70, 0xe0, 0x70, 0xf8, 0xf8, 0x00, 0x7f, 0x7f, 0x00, 0x01,
- 0x00, 0x7f, 0x7f, 0x00,},
- {0xf8, 0xf8, 0xe0, 0x80, 0x00, 0xf8, 0xf8, 0x00, 0x7f, 0x7f, 0x01, 0x07,
- 0x1e, 0x7f, 0x7f, 0x00,},
- {0xe0, 0xf0, 0x18, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x01, 0x01, 0x00, 0x00,},
- {0xf0, 0xf8, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x3f, 0x7f, 0x40, 0x70,
- 0xe0, 0xff, 0x3f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x40, 0x7f, 0x7f, 0x01,
- 0x07, 0x7f, 0x78, 0x00,},
- {0x70, 0xf8, 0x88, 0x08, 0x08, 0x38, 0x30, 0x00, 0x30, 0x70, 0x41, 0x41,
- 0x43, 0x7e, 0x3c, 0x00,},
- {0x00, 0x38, 0x18, 0xf8, 0xf8, 0x18, 0x38, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x0f, 0x1f, 0x30, 0x60,
- 0x30, 0x1f, 0x0f, 0x00,},
- {0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x1f, 0x7f, 0x70, 0x1e,
- 0x70, 0x7f, 0x1f, 0x00,},
- {0x38, 0xf8, 0xc0, 0x00, 0xc0, 0xf8, 0x38, 0x00, 0x70, 0x7c, 0x0f, 0x03,
- 0x0f, 0x7c, 0x70, 0x00,},
- {0x00, 0xf8, 0xf8, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x41, 0x7f,
- 0x7f, 0x41, 0x00, 0x00,},
- {0x38, 0x18, 0x08, 0x08, 0x88, 0xf8, 0x78, 0x00, 0x78, 0x7c, 0x46, 0x43,
- 0x41, 0x60, 0x70, 0x00,},
- {0x00, 0x00, 0xf8, 0xf8, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f,
- 0x40, 0x40, 0x00, 0x00,},
- {0x18, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
- 0x1e, 0x78, 0x60, 0x00,},
- {0x00, 0x00, 0x08, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40,
- 0x7f, 0x7f, 0x00, 0x00,},
- {0x10, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x04, 0x0c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x08, 0xf8, 0xf8, 0x80, 0x80, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3f, 0x40,
- 0x41, 0x7f, 0x3e, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x61, 0x21, 0x00,},
- {0x00, 0x00, 0x80, 0x88, 0xf8, 0xf8, 0x00, 0x00, 0x3e, 0x7f, 0x41, 0x40,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
- 0x44, 0x67, 0x27, 0x00,},
- {0x00, 0xf0, 0xf8, 0x08, 0x18, 0x30, 0x00, 0x00, 0x41, 0x7f, 0x7f, 0x41,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
- 0xff, 0xff, 0x00, 0x00,},
- {0x08, 0xf8, 0xf8, 0x00, 0x80, 0x80, 0x00, 0x00, 0x40, 0x7f, 0x7f, 0x01,
- 0x00, 0x7f, 0x7f, 0x00,},
- {0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x80, 0x80, 0x00,
- 0x00, 0xff, 0xff, 0x00,},
- {0x08, 0xf8, 0xf8, 0x00, 0x00, 0x80, 0x80, 0x00, 0x40, 0x7f, 0x7f, 0x0c,
- 0x1e, 0x73, 0x61, 0x00,},
- {0x00, 0x00, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x7f, 0x7f, 0x01, 0x1f,
- 0x01, 0x7f, 0x7f, 0x00,},
- {0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x00,
- 0x00, 0x7f, 0x7f, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x20,
- 0x20, 0x3f, 0x1f, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
- 0xff, 0xff, 0x00, 0x00,},
- {0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x00, 0x03, 0x03, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x21, 0x63, 0x46, 0x44,
- 0x4c, 0x79, 0x31, 0x00,},
- {0x80, 0x80, 0xf0, 0xf8, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f,
- 0x40, 0x60, 0x20, 0x00,},
- {0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x1f, 0x3f, 0x60,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x3f, 0x7f, 0x60, 0x3c,
- 0x60, 0x7f, 0x3f, 0x00,},
- {0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x61, 0x73, 0x1e, 0x0c,
- 0x1e, 0x73, 0x61, 0x00,},
- {0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
- 0x20, 0xff, 0xff, 0x00,},
- {0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x61, 0x71, 0x58, 0x4c,
- 0x46, 0x63, 0x61, 0x00,},
- {0x00, 0x00, 0x00, 0xf0, 0xf8, 0x08, 0x08, 0x00, 0x00, 0x03, 0x03, 0x3f,
- 0x7c, 0x40, 0x40, 0x00,},
- {0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
- 0x7f, 0x00, 0x00, 0x00,},
- {0x00, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7c,
- 0x3f, 0x03, 0x03, 0x00,},
- {0x10, 0x18, 0x08, 0x18, 0x10, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x21, 0x20,
- 0x21, 0x3f, 0x3e, 0x00,},
- {0xe0, 0xf0, 0x18, 0x08, 0x08, 0x18, 0x30, 0x00, 0x1f, 0x3f, 0x60, 0xc0,
- 0xc0, 0x60, 0x30, 0x00,},
- {0xb0, 0xb0, 0x00, 0x00, 0xb0, 0xb0, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x80, 0xa0, 0xb0, 0x98, 0x88, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
- 0x44, 0x67, 0x27, 0x00,},
- {0x00, 0xa0, 0xb0, 0x98, 0xb0, 0x20, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x30, 0xb0, 0x80, 0x80, 0xb0, 0x30, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x88, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x90, 0xb8, 0xa8, 0xb8, 0x10, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0xc0,
- 0xc0, 0x61, 0x21, 0x00,},
- {0x00, 0xa0, 0xb0, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
- 0x44, 0x67, 0x27, 0x00,},
- {0x30, 0xb0, 0x80, 0x80, 0xb0, 0xb0, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
- 0x44, 0x67, 0x27, 0x00,},
- {0x00, 0x88, 0x98, 0xb0, 0xa0, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
- 0x44, 0x67, 0x27, 0x00,},
- {0x00, 0x30, 0xb0, 0x80, 0x80, 0x30, 0x30, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x20, 0xb0, 0x98, 0x98, 0x30, 0x20, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x08, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0xc3, 0xe3, 0x30, 0x18, 0x30, 0xe3, 0xc3, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0xc0, 0xe2, 0x37, 0x15, 0x37, 0xe2, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x0a, 0x8b, 0x19, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x43, 0x60, 0x70, 0x00,},
- {0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x38, 0x7c, 0x47, 0x3f,
- 0x7c, 0x47, 0x47, 0x00,},
- {0xe0, 0xf0, 0x18, 0x08, 0xf8, 0xf8, 0x08, 0x00, 0x7f, 0x7f, 0x01, 0x01,
- 0x7f, 0x7f, 0x41, 0x00,},
- {0x00, 0xa0, 0xb0, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x30, 0xb0, 0x80, 0x80, 0x80, 0xb0, 0x30, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x00, 0x88, 0x98, 0xb0, 0xa0, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0xa0, 0xb0, 0x18, 0x18, 0xb0, 0xa0, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x80, 0x88, 0x18, 0x30, 0xa0, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0xb0, 0xb0, 0x00, 0x00, 0x00, 0xb0, 0xb0, 0x00, 0x1f, 0x3f, 0x20, 0x20,
- 0x20, 0xff, 0xff, 0x00,},
- {0xe3, 0xf3, 0x18, 0x08, 0x18, 0xf3, 0xe3, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0xfb, 0xfb, 0x00, 0x00, 0x00, 0xfb, 0xfb, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x00, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x00, 0xbf, 0xff, 0x70, 0x4c,
- 0x43, 0x7f, 0x3f, 0x00,},
- {0x80, 0xf8, 0xfc, 0x84, 0x0c, 0x18, 0x00, 0x00, 0x60, 0x7f, 0x7f, 0x40,
- 0x40, 0x60, 0x20, 0x00,},
- {0xe0, 0xf0, 0x18, 0x88, 0x78, 0xfc, 0xe4, 0x00, 0x9f, 0xff, 0x78, 0x47,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x10, 0x19, 0x0f, 0x06,
- 0x0f, 0x19, 0x10, 0x00,},
- {0x00, 0x00, 0x00, 0xf8, 0xfc, 0x04, 0x0c, 0x08, 0x80, 0x81, 0x01, 0xff,
- 0xff, 0x01, 0x01, 0x00,},
- {0x00, 0x80, 0xa0, 0xb0, 0x98, 0x08, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0x00, 0x00, 0xa0, 0xb0, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x80, 0xa0, 0xb0, 0x98, 0x88, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x80, 0x80, 0x20, 0x30, 0x98, 0x88, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0xa0, 0xb0, 0x10, 0xb0, 0xa0, 0xb0, 0x10, 0x00, 0x00, 0x7f, 0x7f, 0x00,
- 0x00, 0x7f, 0x7f, 0x00,},
- {0xfa, 0xfb, 0xe1, 0x83, 0x02, 0xfb, 0xf9, 0x00, 0x7f, 0x7f, 0x01, 0x07,
- 0x1e, 0x7f, 0x7f, 0x00,},
- {0x00, 0x38, 0x7c, 0x44, 0x7c, 0x7c, 0x40, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x00,},
- {0x00, 0x38, 0x7c, 0x44, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x00, 0x00,},
- {0x00, 0x00, 0xd8, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x43, 0x41,
- 0x40, 0x70, 0x30, 0x00,},
- {0xf0, 0x18, 0xe8, 0x28, 0xc8, 0x18, 0xf0, 0x00, 0x1f, 0x30, 0x2f, 0x21,
- 0x2e, 0x30, 0x1f, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x1f, 0x1f, 0x00,},
- {0xfc, 0xfc, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x00, 0x18, 0x0c, 0x96, 0xcb,
- 0x69, 0x38, 0x10, 0x00,},
- {0xfc, 0xfc, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x00, 0x18, 0x4c, 0x66, 0x73,
- 0xf9, 0xf8, 0x40, 0x00,},
- {0x00, 0x00, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7f,
- 0x7f, 0x38, 0x00, 0x00,},
- {0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x06, 0x0f, 0x19, 0x10,
- 0x06, 0x0f, 0x19, 0x10,},
- {0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x10, 0x19, 0x0f, 0x06,
- 0x10, 0x19, 0x0f, 0x06,},
- {0x00, 0xaa, 0x00, 0x55, 0x00, 0xaa, 0x00, 0x55, 0x00, 0xaa, 0x00, 0x55,
- 0x00, 0xaa, 0x00, 0x55,},
- {0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55,
- 0xaa, 0x55, 0xaa, 0x55,},
- {0x55, 0xff, 0xaa, 0xff, 0x55, 0xff, 0xaa, 0xff, 0x55, 0xff, 0xaa, 0xff,
- 0x55, 0xff, 0xaa, 0xff,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xff,
- 0xff, 0x00, 0x00, 0x00,},
- {0xc0, 0xe0, 0x30, 0x1a, 0x33, 0xe1, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0xc0, 0xe2, 0x33, 0x19, 0x33, 0xe2, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0xc0, 0xe1, 0x33, 0x1a, 0x30, 0xe0, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0xf0, 0x18, 0xc8, 0x28, 0x28, 0x18, 0xf0, 0x00, 0x1f, 0x30, 0x27, 0x28,
- 0x28, 0x30, 0x1f, 0x00,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0xfd, 0xfd,
- 0x00, 0xff, 0xff, 0x00,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x00, 0xff, 0xff, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0xfd, 0xfd,
- 0x01, 0xff, 0xff, 0x00,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0x05, 0x05,
- 0x04, 0x07, 0x07, 0x00,},
- {0x00, 0xc0, 0xe0, 0x38, 0x38, 0x60, 0x40, 0x00, 0x00, 0x0f, 0x1f, 0x70,
- 0x70, 0x18, 0x08, 0x00,},
- {0x00, 0x38, 0x78, 0xc0, 0xc0, 0x78, 0x38, 0x00, 0x00, 0x09, 0x09, 0x7f,
- 0x7f, 0x09, 0x09, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xfe,
- 0xfe, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
- 0x03, 0x02, 0x02, 0x02,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03,
- 0x03, 0x02, 0x02, 0x02,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xfe,
- 0xfe, 0x02, 0x02, 0x02,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
- 0xff, 0x02, 0x02, 0x02,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x02,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xff,
- 0xff, 0x02, 0x02, 0x02,},
- {0x20, 0xb0, 0x90, 0xb0, 0xa0, 0x30, 0x10, 0x00, 0x38, 0x7c, 0x44, 0x44,
- 0x3f, 0x7f, 0x40, 0x00,},
- {0xc2, 0xe3, 0x31, 0x1b, 0x32, 0xe3, 0xc1, 0x00, 0x7f, 0x7f, 0x02, 0x02,
- 0x02, 0x7f, 0x7f, 0x00,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0x07,
- 0x04, 0x05, 0x05, 0x05,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x01, 0xfd, 0xfd, 0x05,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0x05, 0x05,
- 0x04, 0x05, 0x05, 0x05,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0xfd, 0xfd,
- 0x01, 0xfd, 0xfd, 0x05,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0x00, 0xfd, 0xfd, 0x05,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05,
- 0x05, 0x05, 0x05, 0x05,},
- {0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0xfd, 0xfd,
- 0x00, 0xfd, 0xfd, 0x05,},
- {0x90, 0xf0, 0x60, 0x40, 0x60, 0xf0, 0x90, 0x00, 0x27, 0x3f, 0x18, 0x08,
- 0x18, 0x3f, 0x27, 0x00,},
- {0x20, 0xa8, 0x98, 0xb0, 0xe8, 0xc8, 0x80, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x41, 0x7f, 0x7f, 0x41,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x08, 0xfa, 0xfb, 0x09, 0x8b, 0x1a, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x43, 0x60, 0x70, 0x00,},
- {0x08, 0xfb, 0xfb, 0x08, 0x88, 0x1b, 0x3b, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x43, 0x60, 0x70, 0x00,},
- {0x08, 0xf9, 0xfb, 0x0a, 0x88, 0x18, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
- 0x43, 0x60, 0x70, 0x00,},
- {0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x00, 0x08, 0xfa, 0xfb, 0x09, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x02, 0x0b, 0xf9, 0xf9, 0x0b, 0x02, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x03, 0x0b, 0xf8, 0xf8, 0x0b, 0x03, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03,
- 0x03, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe,
- 0xfe, 0x02, 0x02, 0x02,},
- {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe,
- 0xfe, 0xfe, 0xfe, 0xfe,},
- {0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
- 0x7c, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x09, 0xfb, 0xfa, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
- 0x7f, 0x40, 0x00, 0x00,},
- {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x01, 0x01,},
- {0xe0, 0xf0, 0x18, 0x0a, 0x1b, 0xf1, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0xf0, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x7f, 0x7f, 0x00, 0x41,
- 0x43, 0x7e, 0x3c, 0x00,},
- {0xe0, 0xf2, 0x1b, 0x09, 0x1b, 0xf2, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0xe0, 0xf1, 0x1b, 0x0a, 0x18, 0xf0, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x20, 0xb0, 0x90, 0xb0, 0xa0, 0xb0, 0x10, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0xe2, 0xf3, 0x19, 0x0b, 0x1a, 0xf3, 0xe1, 0x00, 0x1f, 0x3f, 0x60, 0x40,
- 0x60, 0x3f, 0x1f, 0x00,},
- {0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0xff, 0xff, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x20,
- 0x20, 0x3f, 0x1f, 0x00,},
- {0x08, 0xf8, 0xf8, 0x48, 0x40, 0xc0, 0x80, 0x00, 0x40, 0x7f, 0x7f, 0x48,
- 0x08, 0x0f, 0x07, 0x00,},
- {0xf8, 0xf8, 0x00, 0x02, 0x03, 0xf9, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0xf8, 0xfa, 0x03, 0x01, 0x03, 0xfa, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0xf8, 0xf9, 0x03, 0x02, 0x00, 0xf8, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
- 0x40, 0x7f, 0x3f, 0x00,},
- {0x80, 0x80, 0x20, 0x30, 0x18, 0x88, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
- 0x20, 0xff, 0xff, 0x00,},
- {0x00, 0xf8, 0xf8, 0x02, 0x03, 0xf9, 0xf8, 0x00, 0x00, 0x00, 0x41, 0x7f,
- 0x7f, 0x41, 0x00, 0x00,},
- {0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x10, 0x18, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
- 0x02, 0x02, 0x02, 0x00,},
- {0x00, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x41, 0x4f,
- 0x4f, 0x41, 0x41, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
- 0x80, 0x80, 0x80, 0x80,},
- {0x84, 0x94, 0xfc, 0x68, 0x80, 0xc0, 0x60, 0x00, 0x18, 0x4c, 0x66, 0x73,
- 0xf9, 0xf8, 0x40, 0x00,},
- {0xf0, 0xf8, 0x08, 0xf8, 0xf8, 0x08, 0xf8, 0xf8, 0x00, 0x01, 0x01, 0x7f,
- 0x7f, 0x00, 0x7f, 0x7f,},
- {0x10, 0xb8, 0xe8, 0x48, 0xc8, 0x98, 0x10, 0x00, 0x23, 0x67, 0x4c, 0x48,
- 0x5c, 0x77, 0x23, 0x00,},
- {0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x32,
- 0x32, 0x02, 0x02, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
- 0xc0, 0x80, 0x00, 0x00,},
- {0x00, 0x38, 0x7c, 0x44, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x0c, 0x0c, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
- 0x02, 0x00, 0x00, 0x00,},
- {0x00, 0x00, 0x08, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x01, 0x00, 0x00,},
- {0x00, 0x88, 0x8c, 0x24, 0xfc, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
- 0x01, 0x00, 0x00, 0x00,},
- {0x00, 0x88, 0xcc, 0x64, 0x3c, 0x98, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
- 0x01, 0x01, 0x00, 0x00,},
- {0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f,
- 0x3f, 0x3f, 0x00, 0x00,},
- {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00,},
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0xf0, 0x08, 0x48, 0x08, 0x08, 0x48, 0x08, 0xf0, 0x3f, 0x40, 0x44, 0x4c,
+ 0x4c, 0x44, 0x40, 0x3f,
+ },
+ {
+ 0xf0, 0xf8, 0xb8, 0xf8, 0xf8, 0xb8, 0xf8, 0xf0, 0x3f, 0x7f, 0x7b, 0x73,
+ 0x73, 0x7b, 0x7f, 0x3f,
+ },
+ {
+ 0x80, 0xc0, 0xc0, 0x80, 0xc0, 0xc0, 0x80, 0x00, 0x0f, 0x1f, 0x3f, 0x7f,
+ 0x3f, 0x1f, 0x0f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x3f,
+ 0x1f, 0x0f, 0x06, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xe0, 0x00, 0x00, 0x0f, 0x0f, 0x4f, 0x70,
+ 0x70, 0x4f, 0x0f, 0x0f,
+ },
+ {
+ 0x00, 0x80, 0xc0, 0xf0, 0xf0, 0xc0, 0x80, 0x00, 0x07, 0x0f, 0x4f, 0x7f,
+ 0x7f, 0x4f, 0x0f, 0x07,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f,
+ 0x0f, 0x07, 0x00, 0x00,
+ },
+ {
+ 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0xf0,
+ 0xf0, 0xf8, 0xff, 0xff,
+ },
+ {
+ 0x00, 0x80, 0xc0, 0x40, 0x40, 0xc0, 0x80, 0x00, 0x00, 0x0f, 0x18, 0x10,
+ 0x10, 0x18, 0x0f, 0x00,
+ },
+ {
+ 0xff, 0x7f, 0x3f, 0xbf, 0xbf, 0x3f, 0x7f, 0xff, 0xff, 0xf0, 0xe7, 0xef,
+ 0xef, 0xe7, 0xf0, 0xff,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xc8, 0x68, 0x38, 0x78, 0x00, 0x3e, 0x7f, 0x41, 0x41,
+ 0x7f, 0x3e, 0x00, 0x00,
+ },
+ {
+ 0x00, 0xf0, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x13, 0x17, 0x7c,
+ 0x7c, 0x17, 0x13, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xf8, 0xf8, 0x48, 0x48, 0x78, 0x78, 0x60, 0x70, 0x7f, 0x3f,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0xf8, 0xf8, 0x48, 0x48, 0x48, 0xf8, 0xf8, 0xe0, 0xff, 0x7f, 0x00,
+ 0x00, 0x70, 0x7f, 0x3f,
+ },
+ {
+ 0x80, 0x80, 0x00, 0xe0, 0xe0, 0x00, 0x80, 0x80, 0x16, 0x16, 0x0f, 0x79,
+ 0x79, 0x0f, 0x16, 0x16,
+ },
+ {
+ 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x3f, 0x1f, 0x0f,
+ 0x07, 0x03, 0x03, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x00, 0x03, 0x03, 0x07, 0x0f,
+ 0x1f, 0x3f, 0x7f, 0x00,
+ },
+ {
+ 0x00, 0x20, 0x30, 0xf8, 0xf8, 0x30, 0x20, 0x00, 0x00, 0x10, 0x30, 0x7f,
+ 0x7f, 0x30, 0x10, 0x00,
+ },
+ {
+ 0x00, 0xf8, 0xf8, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x6f, 0x6f, 0x00,
+ 0x00, 0x6f, 0x6f, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0xf8, 0xf8, 0x08, 0xf8, 0xf8, 0x00, 0x01, 0x01, 0x7f,
+ 0x7f, 0x00, 0x7f, 0x7f,
+ },
+ {
+ 0x10, 0xb8, 0xe8, 0x48, 0xc8, 0x98, 0x10, 0x00, 0x23, 0x67, 0x4c, 0x48,
+ 0x5c, 0x77, 0x23, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70,
+ 0x70, 0x70, 0x70, 0x00,
+ },
+ {
+ 0x00, 0x20, 0x30, 0xf8, 0xf8, 0x30, 0x20, 0x00, 0x00, 0x90, 0xb0, 0xff,
+ 0xff, 0xb0, 0x90, 0x00,
+ },
+ {
+ 0x00, 0x20, 0x30, 0xf8, 0xf8, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x7f,
+ 0x7f, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x10, 0x30, 0x7f,
+ 0x7f, 0x30, 0x10, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x0a,
+ 0x0f, 0x07, 0x02, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x07, 0x0f, 0x0a,
+ 0x02, 0x02, 0x02, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x10, 0x10,
+ 0x10, 0x10, 0x10, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00, 0x02, 0x07, 0x0f, 0x02,
+ 0x02, 0x0f, 0x07, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x18, 0x1e, 0x1f, 0x1f,
+ 0x1f, 0x1e, 0x18, 0x00,
+ },
+ {
+ 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x60, 0x00, 0x00, 0x01, 0x07, 0x1f,
+ 0x07, 0x01, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f,
+ 0x6f, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x1c, 0x3c, 0x00, 0x00, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x40, 0xf8, 0xf8, 0x40, 0xf8, 0xf8, 0x40, 0x00, 0x08, 0x7f, 0x7f, 0x08,
+ 0x7f, 0x7f, 0x08, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0x0e, 0x0e, 0x18, 0x30, 0x00, 0x30, 0x61, 0x41, 0xc1,
+ 0xc1, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0x38, 0x38, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x00, 0x60, 0x78, 0x1e, 0x07,
+ 0x01, 0x70, 0x70, 0x00,
+ },
+ {
+ 0x00, 0x70, 0xf8, 0x88, 0xf8, 0x70, 0x00, 0x00, 0x3e, 0x7f, 0x41, 0x47,
+ 0x3e, 0x7f, 0x41, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x20, 0x3c, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xe0, 0xf0, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f,
+ 0x60, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x60,
+ 0x3f, 0x1f, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x02, 0x0a, 0x0f, 0x07,
+ 0x07, 0x0f, 0x0a, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x1f,
+ 0x1f, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xf0,
+ 0x70, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+ 0x60, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x80, 0xe0, 0x78, 0x18, 0x00, 0x60, 0x78, 0x1e, 0x07,
+ 0x01, 0x00, 0x00, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0x88, 0x08, 0xf8, 0xf0, 0x00, 0x3f, 0x7f, 0x40, 0x47,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x00, 0x20, 0x30, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7f,
+ 0x7f, 0x40, 0x40, 0x00,
+ },
+ {
+ 0x10, 0x18, 0x08, 0x08, 0x88, 0xf8, 0x70, 0x00, 0x78, 0x7c, 0x46, 0x43,
+ 0x41, 0x60, 0x60, 0x00,
+ },
+ {
+ 0x10, 0x18, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x20, 0x60, 0x41, 0x41,
+ 0x41, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0x00, 0x80, 0xe0, 0x78, 0xf8, 0xf8, 0x00, 0x00, 0x06, 0x07, 0x05, 0x44,
+ 0x7f, 0x7f, 0x44, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x21, 0x61, 0x41, 0x41,
+ 0x41, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x08, 0x08, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x41, 0x41,
+ 0x41, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0x18, 0x18, 0x08, 0x08, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x78, 0x7e,
+ 0x07, 0x01, 0x00, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x3e, 0x7f, 0x41, 0x41,
+ 0x41, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x41, 0x41, 0x41,
+ 0x61, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30,
+ 0x30, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x70,
+ 0x30, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x00, 0x03, 0x07, 0x0c,
+ 0x18, 0x30, 0x20, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09,
+ 0x09, 0x09, 0x09, 0x00,
+ },
+ {
+ 0x00, 0x10, 0x30, 0x60, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x20, 0x30, 0x18,
+ 0x0c, 0x07, 0x03, 0x00,
+ },
+ {
+ 0x30, 0x38, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x6e,
+ 0x6f, 0x01, 0x00, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x10, 0x10, 0x10, 0xf0, 0xe0, 0x00, 0x3f, 0x7f, 0x40, 0x4f,
+ 0x4f, 0x4f, 0x07, 0x00,
+ },
+ {
+ 0xc0, 0xe0, 0x30, 0x18, 0x30, 0xe0, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x41, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x08, 0x08, 0x18, 0x30, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x40, 0x60, 0x30, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x40, 0x7f, 0x7f, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x88, 0x18, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x43, 0x60, 0x70, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x88, 0x18, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x03, 0x00, 0x00, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x08, 0x08, 0x18, 0x30, 0x00, 0x1f, 0x3f, 0x60, 0x42,
+ 0x42, 0x3e, 0x7e, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x7f, 0x7f, 0x01, 0x01,
+ 0x01, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x08, 0xf8, 0xf8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x08, 0xf8, 0xf8, 0x08, 0x30, 0x70, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x00, 0xc0, 0xf8, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x03,
+ 0x0f, 0x7e, 0x70, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x7f, 0x40,
+ 0x40, 0x60, 0x70, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x70, 0xe0, 0x70, 0xf8, 0xf8, 0x00, 0x7f, 0x7f, 0x00, 0x01,
+ 0x00, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0xe0, 0x80, 0x00, 0xf8, 0xf8, 0x00, 0x7f, 0x7f, 0x01, 0x07,
+ 0x1e, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x01, 0x01, 0x00, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x3f, 0x7f, 0x40, 0x70,
+ 0xe0, 0xff, 0x3f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x40, 0x7f, 0x7f, 0x01,
+ 0x07, 0x7f, 0x78, 0x00,
+ },
+ {
+ 0x70, 0xf8, 0x88, 0x08, 0x08, 0x38, 0x30, 0x00, 0x30, 0x70, 0x41, 0x41,
+ 0x43, 0x7e, 0x3c, 0x00,
+ },
+ {
+ 0x00, 0x38, 0x18, 0xf8, 0xf8, 0x18, 0x38, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x0f, 0x1f, 0x30, 0x60,
+ 0x30, 0x1f, 0x0f, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x1f, 0x7f, 0x70, 0x1e,
+ 0x70, 0x7f, 0x1f, 0x00,
+ },
+ {
+ 0x38, 0xf8, 0xc0, 0x00, 0xc0, 0xf8, 0x38, 0x00, 0x70, 0x7c, 0x0f, 0x03,
+ 0x0f, 0x7c, 0x70, 0x00,
+ },
+ {
+ 0x00, 0xf8, 0xf8, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x41, 0x7f,
+ 0x7f, 0x41, 0x00, 0x00,
+ },
+ {
+ 0x38, 0x18, 0x08, 0x08, 0x88, 0xf8, 0x78, 0x00, 0x78, 0x7c, 0x46, 0x43,
+ 0x41, 0x60, 0x70, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xf8, 0xf8, 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f,
+ 0x40, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x18, 0x78, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07,
+ 0x1e, 0x78, 0x60, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x08, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40,
+ 0x7f, 0x7f, 0x00, 0x00,
+ },
+ {
+ 0x10, 0x18, 0x0c, 0x06, 0x0c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x04, 0x0c, 0x18, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x80, 0x80, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3f, 0x40,
+ 0x41, 0x7f, 0x3e, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x61, 0x21, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0x88, 0xf8, 0xf8, 0x00, 0x00, 0x3e, 0x7f, 0x41, 0x40,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
+ 0x44, 0x67, 0x27, 0x00,
+ },
+ {
+ 0x00, 0xf0, 0xf8, 0x08, 0x18, 0x30, 0x00, 0x00, 0x41, 0x7f, 0x7f, 0x41,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
+ 0xff, 0xff, 0x00, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x00, 0x80, 0x80, 0x00, 0x00, 0x40, 0x7f, 0x7f, 0x01,
+ 0x00, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x80, 0x98, 0x98, 0x00, 0x00, 0x80, 0x80, 0x00,
+ 0x00, 0xff, 0xff, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x80, 0x80, 0x00, 0x40, 0x7f, 0x7f, 0x0c,
+ 0x1e, 0x73, 0x61, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x08, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x7f, 0x7f, 0x01, 0x1f,
+ 0x01, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x00,
+ 0x00, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x20,
+ 0x20, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
+ 0xff, 0xff, 0x00, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x00, 0x03, 0x03, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x21, 0x63, 0x46, 0x44,
+ 0x4c, 0x79, 0x31, 0x00,
+ },
+ {
+ 0x80, 0x80, 0xf0, 0xf8, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f,
+ 0x40, 0x60, 0x20, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x1f, 0x3f, 0x60,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x3f, 0x7f, 0x60, 0x3c,
+ 0x60, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x61, 0x73, 0x1e, 0x0c,
+ 0x1e, 0x73, 0x61, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
+ 0x20, 0xff, 0xff, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x61, 0x71, 0x58, 0x4c,
+ 0x46, 0x63, 0x61, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xf0, 0xf8, 0x08, 0x08, 0x00, 0x00, 0x03, 0x03, 0x3f,
+ 0x7c, 0x40, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f,
+ 0x7f, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x7c,
+ 0x3f, 0x03, 0x03, 0x00,
+ },
+ {
+ 0x10, 0x18, 0x08, 0x18, 0x10, 0x18, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x3e, 0x3f, 0x21, 0x20,
+ 0x21, 0x3f, 0x3e, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x08, 0x08, 0x18, 0x30, 0x00, 0x1f, 0x3f, 0x60, 0xc0,
+ 0xc0, 0x60, 0x30, 0x00,
+ },
+ {
+ 0xb0, 0xb0, 0x00, 0x00, 0xb0, 0xb0, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x80, 0xa0, 0xb0, 0x98, 0x88, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
+ 0x44, 0x67, 0x27, 0x00,
+ },
+ {
+ 0x00, 0xa0, 0xb0, 0x98, 0xb0, 0x20, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x30, 0xb0, 0x80, 0x80, 0xb0, 0x30, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x88, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x90, 0xb8, 0xa8, 0xb8, 0x10, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0xc0,
+ 0xc0, 0x61, 0x21, 0x00,
+ },
+ {
+ 0x00, 0xa0, 0xb0, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
+ 0x44, 0x67, 0x27, 0x00,
+ },
+ {
+ 0x30, 0xb0, 0x80, 0x80, 0xb0, 0xb0, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
+ 0x44, 0x67, 0x27, 0x00,
+ },
+ {
+ 0x00, 0x88, 0x98, 0xb0, 0xa0, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x44, 0x44,
+ 0x44, 0x67, 0x27, 0x00,
+ },
+ {
+ 0x00, 0x30, 0xb0, 0x80, 0x80, 0x30, 0x30, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x20, 0xb0, 0x98, 0x98, 0x30, 0x20, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x08, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0xc3, 0xe3, 0x30, 0x18, 0x30, 0xe3, 0xc3, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xc0, 0xe2, 0x37, 0x15, 0x37, 0xe2, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x0a, 0x8b, 0x19, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x43, 0x60, 0x70, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x00, 0x00, 0x38, 0x7c, 0x47, 0x3f,
+ 0x7c, 0x47, 0x47, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x08, 0xf8, 0xf8, 0x08, 0x00, 0x7f, 0x7f, 0x01, 0x01,
+ 0x7f, 0x7f, 0x41, 0x00,
+ },
+ {
+ 0x00, 0xa0, 0xb0, 0x98, 0xb0, 0xa0, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x30, 0xb0, 0x80, 0x80, 0x80, 0xb0, 0x30, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x00, 0x88, 0x98, 0xb0, 0xa0, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0xa0, 0xb0, 0x18, 0x18, 0xb0, 0xa0, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x80, 0x88, 0x18, 0x30, 0xa0, 0x80, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0xb0, 0xb0, 0x00, 0x00, 0x00, 0xb0, 0xb0, 0x00, 0x1f, 0x3f, 0x20, 0x20,
+ 0x20, 0xff, 0xff, 0x00,
+ },
+ {
+ 0xe3, 0xf3, 0x18, 0x08, 0x18, 0xf3, 0xe3, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0xfb, 0xfb, 0x00, 0x00, 0x00, 0xfb, 0xfb, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x80, 0x80, 0xc0, 0x40, 0x00, 0xbf, 0xff, 0x70, 0x4c,
+ 0x43, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x80, 0xf8, 0xfc, 0x84, 0x0c, 0x18, 0x00, 0x00, 0x60, 0x7f, 0x7f, 0x40,
+ 0x40, 0x60, 0x20, 0x00,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x88, 0x78, 0xfc, 0xe4, 0x00, 0x9f, 0xff, 0x78, 0x47,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x10, 0x19, 0x0f, 0x06,
+ 0x0f, 0x19, 0x10, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xf8, 0xfc, 0x04, 0x0c, 0x08, 0x80, 0x81, 0x01, 0xff,
+ 0xff, 0x01, 0x01, 0x00,
+ },
+ {
+ 0x00, 0x80, 0xa0, 0xb0, 0x98, 0x08, 0x00, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xa0, 0xb0, 0x98, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x80, 0xa0, 0xb0, 0x98, 0x88, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x20, 0x30, 0x98, 0x88, 0x00, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0xa0, 0xb0, 0x10, 0xb0, 0xa0, 0xb0, 0x10, 0x00, 0x00, 0x7f, 0x7f, 0x00,
+ 0x00, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xfa, 0xfb, 0xe1, 0x83, 0x02, 0xfb, 0xf9, 0x00, 0x7f, 0x7f, 0x01, 0x07,
+ 0x1e, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x00, 0x38, 0x7c, 0x44, 0x7c, 0x7c, 0x40, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x00,
+ },
+ {
+ 0x00, 0x38, 0x7c, 0x44, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xd8, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x7e, 0x43, 0x41,
+ 0x40, 0x70, 0x30, 0x00,
+ },
+ {
+ 0xf0, 0x18, 0xe8, 0x28, 0xc8, 0x18, 0xf0, 0x00, 0x1f, 0x30, 0x2f, 0x21,
+ 0x2e, 0x30, 0x1f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x1f, 0x1f, 0x00,
+ },
+ {
+ 0xfc, 0xfc, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x00, 0x18, 0x0c, 0x96, 0xcb,
+ 0x69, 0x38, 0x10, 0x00,
+ },
+ {
+ 0xfc, 0xfc, 0x00, 0x00, 0x80, 0xc0, 0x60, 0x00, 0x18, 0x4c, 0x66, 0x73,
+ 0xf9, 0xf8, 0x40, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x98, 0x98, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x7f,
+ 0x7f, 0x38, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x06, 0x0f, 0x19, 0x10,
+ 0x06, 0x0f, 0x19, 0x10,
+ },
+ {
+ 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x10, 0x19, 0x0f, 0x06,
+ 0x10, 0x19, 0x0f, 0x06,
+ },
+ {
+ 0x00, 0xaa, 0x00, 0x55, 0x00, 0xaa, 0x00, 0x55, 0x00, 0xaa, 0x00, 0x55,
+ 0x00, 0xaa, 0x00, 0x55,
+ },
+ {
+ 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55,
+ 0xaa, 0x55, 0xaa, 0x55,
+ },
+ {
+ 0x55, 0xff, 0xaa, 0xff, 0x55, 0xff, 0xaa, 0xff, 0x55, 0xff, 0xaa, 0xff,
+ 0x55, 0xff, 0xaa, 0xff,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xff,
+ 0xff, 0x00, 0x00, 0x00,
+ },
+ {
+ 0xc0, 0xe0, 0x30, 0x1a, 0x33, 0xe1, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xc0, 0xe2, 0x33, 0x19, 0x33, 0xe2, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xc0, 0xe1, 0x33, 0x1a, 0x30, 0xe0, 0xc0, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0xf0, 0x18, 0xc8, 0x28, 0x28, 0x18, 0xf0, 0x00, 0x1f, 0x30, 0x27, 0x28,
+ 0x28, 0x30, 0x1f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0xfd, 0xfd,
+ 0x00, 0xff, 0xff, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0xff, 0xff, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0xfd, 0xfd,
+ 0x01, 0xff, 0xff, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0x05, 0x05,
+ 0x04, 0x07, 0x07, 0x00,
+ },
+ {
+ 0x00, 0xc0, 0xe0, 0x38, 0x38, 0x60, 0x40, 0x00, 0x00, 0x0f, 0x1f, 0x70,
+ 0x70, 0x18, 0x08, 0x00,
+ },
+ {
+ 0x00, 0x38, 0x78, 0xc0, 0xc0, 0x78, 0x38, 0x00, 0x00, 0x09, 0x09, 0x7f,
+ 0x7f, 0x09, 0x09, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xfe,
+ 0xfe, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
+ 0x03, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03,
+ 0x03, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xfe,
+ 0xfe, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
+ 0xff, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0xff,
+ 0xff, 0x02, 0x02, 0x02,
+ },
+ {
+ 0x20, 0xb0, 0x90, 0xb0, 0xa0, 0x30, 0x10, 0x00, 0x38, 0x7c, 0x44, 0x44,
+ 0x3f, 0x7f, 0x40, 0x00,
+ },
+ {
+ 0xc2, 0xe3, 0x31, 0x1b, 0x32, 0xe3, 0xc1, 0x00, 0x7f, 0x7f, 0x02, 0x02,
+ 0x02, 0x7f, 0x7f, 0x00,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x07, 0x07,
+ 0x04, 0x05, 0x05, 0x05,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x01, 0xfd, 0xfd, 0x05,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0x05, 0x05,
+ 0x04, 0x05, 0x05, 0x05,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0xfd, 0xfd,
+ 0x01, 0xfd, 0xfd, 0x05,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
+ 0x00, 0xfd, 0xfd, 0x05,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05,
+ 0x05, 0x05, 0x05, 0x05,
+ },
+ {
+ 0x00, 0x00, 0xff, 0xff, 0x00, 0xff, 0xff, 0x00, 0x05, 0x05, 0xfd, 0xfd,
+ 0x00, 0xfd, 0xfd, 0x05,
+ },
+ {
+ 0x90, 0xf0, 0x60, 0x40, 0x60, 0xf0, 0x90, 0x00, 0x27, 0x3f, 0x18, 0x08,
+ 0x18, 0x3f, 0x27, 0x00,
+ },
+ {
+ 0x20, 0xa8, 0x98, 0xb0, 0xe8, 0xc8, 0x80, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x08, 0x18, 0xf0, 0xe0, 0x00, 0x41, 0x7f, 0x7f, 0x41,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x08, 0xfa, 0xfb, 0x09, 0x8b, 0x1a, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x43, 0x60, 0x70, 0x00,
+ },
+ {
+ 0x08, 0xfb, 0xfb, 0x08, 0x88, 0x1b, 0x3b, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x43, 0x60, 0x70, 0x00,
+ },
+ {
+ 0x08, 0xf9, 0xfb, 0x0a, 0x88, 0x18, 0x38, 0x00, 0x40, 0x7f, 0x7f, 0x41,
+ 0x43, 0x60, 0x70, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x08, 0xfa, 0xfb, 0x09, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x02, 0x0b, 0xf9, 0xf9, 0x0b, 0x02, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x03, 0x0b, 0xf8, 0xf8, 0x0b, 0x03, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02, 0x03,
+ 0x03, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe,
+ 0xfe, 0x02, 0x02, 0x02,
+ },
+ {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+ 0xff, 0xff, 0xff, 0xff,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0xfe,
+ 0xfe, 0xfe, 0xfe, 0xfe,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xf8, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c,
+ 0x7c, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x09, 0xfb, 0xfa, 0x08, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f,
+ 0x7f, 0x40, 0x00, 0x00,
+ },
+ {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x01, 0x01,
+ },
+ {
+ 0xe0, 0xf0, 0x18, 0x0a, 0x1b, 0xf1, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0x08, 0xf8, 0xf0, 0x00, 0x00, 0x7f, 0x7f, 0x00, 0x41,
+ 0x43, 0x7e, 0x3c, 0x00,
+ },
+ {
+ 0xe0, 0xf2, 0x1b, 0x09, 0x1b, 0xf2, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0xe0, 0xf1, 0x1b, 0x0a, 0x18, 0xf0, 0xe0, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x20, 0xb0, 0x90, 0xb0, 0xa0, 0xb0, 0x10, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0xe2, 0xf3, 0x19, 0x0b, 0x1a, 0xf3, 0xe1, 0x00, 0x1f, 0x3f, 0x60, 0x40,
+ 0x60, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x00, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0xff, 0xff, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x20,
+ 0x20, 0x3f, 0x1f, 0x00,
+ },
+ {
+ 0x08, 0xf8, 0xf8, 0x48, 0x40, 0xc0, 0x80, 0x00, 0x40, 0x7f, 0x7f, 0x48,
+ 0x08, 0x0f, 0x07, 0x00,
+ },
+ {
+ 0xf8, 0xf8, 0x00, 0x02, 0x03, 0xf9, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0xf8, 0xfa, 0x03, 0x01, 0x03, 0xfa, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0xf8, 0xf9, 0x03, 0x02, 0x00, 0xf8, 0xf8, 0x00, 0x3f, 0x7f, 0x40, 0x40,
+ 0x40, 0x7f, 0x3f, 0x00,
+ },
+ {
+ 0x80, 0x80, 0x20, 0x30, 0x18, 0x88, 0x80, 0x00, 0x1f, 0x3f, 0x20, 0x20,
+ 0x20, 0xff, 0xff, 0x00,
+ },
+ {
+ 0x00, 0xf8, 0xf8, 0x02, 0x03, 0xf9, 0xf8, 0x00, 0x00, 0x00, 0x41, 0x7f,
+ 0x7f, 0x41, 0x00, 0x00,
+ },
+ {
+ 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x10, 0x18, 0x0c, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x02,
+ 0x02, 0x02, 0x02, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x41, 0x41, 0x4f,
+ 0x4f, 0x41, 0x41, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
+ 0x80, 0x80, 0x80, 0x80,
+ },
+ {
+ 0x84, 0x94, 0xfc, 0x68, 0x80, 0xc0, 0x60, 0x00, 0x18, 0x4c, 0x66, 0x73,
+ 0xf9, 0xf8, 0x40, 0x00,
+ },
+ {
+ 0xf0, 0xf8, 0x08, 0xf8, 0xf8, 0x08, 0xf8, 0xf8, 0x00, 0x01, 0x01, 0x7f,
+ 0x7f, 0x00, 0x7f, 0x7f,
+ },
+ {
+ 0x10, 0xb8, 0xe8, 0x48, 0xc8, 0x98, 0x10, 0x00, 0x23, 0x67, 0x4c, 0x48,
+ 0x5c, 0x77, 0x23, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x02, 0x32,
+ 0x32, 0x02, 0x02, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60,
+ 0xc0, 0x80, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x38, 0x7c, 0x44, 0x7c, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x0c, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+ 0x02, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x08, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x01, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x88, 0x8c, 0x24, 0xfc, 0xd8, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01,
+ 0x01, 0x00, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x88, 0xcc, 0x64, 0x3c, 0x98, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
+ 0x01, 0x01, 0x00, 0x00,
+ },
+ {
+ 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x3f, 0x3f, 0x3f,
+ 0x3f, 0x3f, 0x00, 0x00,
+ },
+ {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ },
};
void
-font8x16_put_ch (uint8_t * vram, unsigned ch, unsigned x, unsigned y)
+font8x16_put_ch (uint8_t *vram, unsigned ch, unsigned x, unsigned y)
{
unsigned shift = y & 7;
unsigned page = y >> 3;
@@ -532,32 +1044,28 @@ font8x16_put_ch (uint8_t * vram, unsigned ch, unsigned x, unsigned y)
mask = 0xff >> shift;
if (shift)
- {
- oled_blit_strip (vram, x, x + 8, mask, -shift, font8x16[ch]);
- }
+ oled_blit_strip (vram, x, x + 8, mask, -shift, font8x16[ch]);
shift = y & 7;
oled_blit_strip (vram, x, x + 8, ~mask & (0xff << shift), shift,
&font8x16[ch][8]);
- if (shift)
- {
- x += SSD1306_WIDTH;
- shift = 8 - shift;
- oled_blit_strip (vram, x, x + 8, 0xff >> shift, -shift,
- &font8x16[ch][8]);
- }
+ if (shift) {
+ x += SSD1306_WIDTH;
+ shift = 8 - shift;
+ oled_blit_strip (vram, x, x + 8, 0xff >> shift, -shift,
+ &font8x16[ch][8]);
+ }
}
void
-font8x16_put_str (uint8_t * vram, char *str, unsigned x, unsigned y)
+font8x16_put_str (uint8_t *vram, char *str, unsigned x, unsigned y)
{
- while (*str)
- {
- font8x16_put_ch (vram, *(str++), x, y);
- x += 8;
- }
+ while (*str) {
+ font8x16_put_ch (vram, * (str++), x, y);
+ x += 8;
+ }
}
diff --git a/app/font8x8.c b/app/font8x8.c
index 4d49aa7..629a565 100644
--- a/app/font8x8.c
+++ b/app/font8x8.c
@@ -260,7 +260,7 @@ static uint8_t font8x8[][8] = {
};
void
-font8x8_put_ch (uint8_t * vram, unsigned ch, unsigned x, unsigned y)
+font8x8_put_ch (uint8_t *vram, unsigned ch, unsigned x, unsigned y)
{
unsigned shift = y & 7;
unsigned page = y >> 3;
@@ -269,22 +269,20 @@ font8x8_put_ch (uint8_t * vram, unsigned ch, unsigned x, unsigned y)
oled_blit_strip (vram, x, x + 8, 0xff << shift, shift, font8x8[ch]);
- if (shift)
- {
- x += SSD1306_WIDTH;
- shift = 8 - shift;
- oled_blit_strip (vram, x, x + 8, 0xff >> shift, -shift, font8x8[ch]);
- }
+ if (shift) {
+ x += SSD1306_WIDTH;
+ shift = 8 - shift;
+ oled_blit_strip (vram, x, x + 8, 0xff >> shift, -shift, font8x8[ch]);
+ }
}
void
-font8x8_put_str (uint8_t * vram, char *str, unsigned x, unsigned y)
+font8x8_put_str (uint8_t *vram, char *str, unsigned x, unsigned y)
{
- while (*str)
- {
- font8x8_put_ch (vram, *(str++), x, y);
- x += 8;
- }
+ while (*str) {
+ font8x8_put_ch (vram, * (str++), x, y);
+ x += 8;
+ }
}
diff --git a/app/gauge.c b/app/gauge.c
new file mode 100644
index 0000000..c71d8d9
--- /dev/null
+++ b/app/gauge.c
@@ -0,0 +1,145 @@
+#include "project.h"
+
+#define P1_N GPIO12
+#define P1_N_PORT GPIOB
+#define P1_P GPIO13
+#define P1_P_PORT GPIOB
+#define P2_N GPIO14
+#define P2_N_PORT GPIOB
+#define P2_P GPIO15
+#define P2_P_PORT GPIOB
+
+
+unsigned gauge_target;
+static unsigned gauge_current;
+
+#define GUAGE_N_STATE 6
+static unsigned gauge_state;
+
+
+static inline unsigned
+ccw (unsigned v)
+{
+ v += GUAGE_N_STATE - 1;
+
+ if (v >= GUAGE_N_STATE)
+ v -= GUAGE_N_STATE;
+
+ return v;
+}
+
+
+static inline unsigned
+cw (unsigned v)
+{
+ v += 1;
+
+ if (v >= GUAGE_N_STATE)
+ v -= GUAGE_N_STATE;
+
+ return v;
+}
+
+static inline void
+p1 (int i)
+{
+ if (i < 0) {
+ SET (P1_N);
+ CLEAR (P1_P);
+ } else if (i > 0) {
+ CLEAR (P1_N);
+ SET (P1_P);
+ } else {
+ CLEAR (P1_N);
+ CLEAR (P1_P);
+ }
+}
+
+static inline void
+p2 (int i)
+{
+ if (i < 0) {
+ SET (P2_N);
+ CLEAR (P2_P);
+ } else if (i > 0) {
+ CLEAR (P2_N);
+ SET (P2_P);
+ } else {
+ CLEAR (P2_N);
+ CLEAR (P2_P);
+ }
+}
+
+
+
+void
+gauge_ticker (void)
+{
+
+ if (gauge_current < gauge_target) {
+ gauge_state = cw (gauge_state);
+ gauge_current++;
+ } else if (gauge_current > gauge_target) {
+ gauge_state = ccw (gauge_state);
+ gauge_current--;
+ }
+
+ switch (gauge_state) {
+ case 0:
+ p1 (1);
+ p2 (1);
+ break;
+
+ case 1:
+ p1 (1);
+ p2 (0);
+ break;
+
+ case 2:
+ p1 (0);
+ p2 (-1);
+ break;
+
+ case 3:
+ p1 (-1);
+ p2 (-1);
+ break;
+
+ case 4:
+ p1 (-1);
+ p2 (0);
+ break;
+
+ case 5:
+ p1 (0);
+ p2 (1);
+ }
+
+}
+
+void
+gauge_test (void)
+{
+ char buf[8];
+ uint32_t now = dwt_read_cycle_counter(); /*This wraps every 59.9 seconds or so */
+
+ now &= 0x3fffffff; /* now wraps every 15s */
+ now = now / (0x3fffffff / 810);
+
+ gauge_target = now;
+
+ sprintf (buf, "%3d", gauge_target);
+ font8x8_put_str (vram_1, buf, 90, 24);
+}
+
+
+
+
+void
+gauge_init (void)
+{
+ MAP_OUTPUT_PP (P1_N);
+ MAP_OUTPUT_PP (P1_P);
+ MAP_OUTPUT_PP (P2_N);
+ MAP_OUTPUT_PP (P2_P);
+}
diff --git a/app/i2c.c b/app/i2c.c
index edead09..8c5630e 100644
--- a/app/i2c.c
+++ b/app/i2c.c
@@ -5,11 +5,10 @@ static int mutex = 0;
int
i2c_lock (void)
{
- if (__sync_add_and_fetch (&mutex, 1) != 1)
- {
- __sync_sub_and_fetch (&mutex, 1);
- return -1;
- }
+ if (__sync_add_and_fetch (&mutex, 1) != 1) {
+ __sync_sub_and_fetch (&mutex, 1);
+ return -1;
+ }
return 0;
}
diff --git a/app/i2c_hw.c b/app/i2c_hw.c
index 35bde08..59d2451 100644
--- a/app/i2c_hw.c
+++ b/app/i2c_hw.c
@@ -1,20 +1,20 @@
#include "project.h"
-#define SCL1 GPIO6
-#define SDA1 GPIO7
-#define SCL1_PORT GPIOB
-#define SDA1_PORT GPIOB
+#define SCL1 GPIO6
+#define SDA1 GPIO7
+#define SCL1_PORT GPIOB
+#define SDA1_PORT GPIOB
-#define SCL2 GPIO10
-#define SDA2 GPIO11
-#define SCL2_PORT GPIOB
-#define SDA2_PORT GPIOB
+#define SCL2 GPIO10
+#define SDA2 GPIO11
+#define SCL2_PORT GPIOB
+#define SDA2_PORT GPIOB
void
i2c_clear_start (uint32_t i2c)
{
- I2C_CR1 (i2c) &= ~(uint32_t) I2C_CR1_START;
+ I2C_CR1 (i2c) &= ~ (uint32_t) I2C_CR1_START;
}
@@ -23,8 +23,9 @@ i2cp_start (uint32_t i2c)
{
uint32_t timeout = 1000;
i2c_send_start (i2c);
- while (!((I2C_SR1 (i2c) & I2C_SR1_SB)
- & (I2C_SR2 (i2c) & (I2C_SR2_MSL | I2C_SR2_BUSY))) && (timeout--));
+
+ while (! ((I2C_SR1 (i2c) & I2C_SR1_SB)
+ & (I2C_SR2 (i2c) & (I2C_SR2_MSL | I2C_SR2_BUSY))) && (timeout--));
return timeout ? 0 : -1;
}
@@ -60,12 +61,13 @@ i2cp_send (uint32_t i2c, uint8_t v)
while (!
((reg =
- I2C_SR1 (i2c)) & (I2C_SR1_BTF | I2C_SR1_BERR | I2C_SR1_ARLO |
- I2C_SR1_AF | I2C_SR1_PECERR | I2C_SR1_TIMEOUT |
- I2C_SR1_SMBALERT)) && (timeout--));
+ I2C_SR1 (i2c)) & (I2C_SR1_BTF | I2C_SR1_BERR | I2C_SR1_ARLO |
+ I2C_SR1_AF | I2C_SR1_PECERR | I2C_SR1_TIMEOUT |
+ I2C_SR1_SMBALERT)) && (timeout--));
+
I2C_SR1 (i2c) =
- reg & ~(I2C_SR1_BERR | I2C_SR1_ARLO | I2C_SR1_AF | I2C_SR1_PECERR |
- I2C_SR1_TIMEOUT | I2C_SR1_SMBALERT);
+ reg & ~ (I2C_SR1_BERR | I2C_SR1_ARLO | I2C_SR1_AF | I2C_SR1_PECERR |
+ I2C_SR1_TIMEOUT | I2C_SR1_SMBALERT);
if (!timeout)
return 1;
@@ -79,12 +81,13 @@ int
i2cp_start_transaction (uint32_t i2c, uint8_t a, int wnr)
{
uint32_t reg;
- uint32_t __attribute__((unused)) dummy;
+ uint32_t __attribute__ ((unused)) dummy;
uint32_t timeout = 1000;
i2c_send_start (i2c);
- while (!((I2C_SR1 (i2c) & I2C_SR1_SB)
- & (I2C_SR2 (i2c) & (I2C_SR2_MSL | I2C_SR2_BUSY))) && (timeout--));
+
+ while (! ((I2C_SR1 (i2c) & I2C_SR1_SB)
+ & (I2C_SR2 (i2c) & (I2C_SR2_MSL | I2C_SR2_BUSY))) && (timeout--));
if (!timeout)
return -1;
@@ -93,24 +96,25 @@ i2cp_start_transaction (uint32_t i2c, uint8_t a, int wnr)
while (!
((reg =
- I2C_SR1 (i2c)) & (I2C_SR1_ADDR | I2C_SR1_BERR | I2C_SR1_ARLO |
- I2C_SR1_AF | I2C_SR1_PECERR | I2C_SR1_TIMEOUT |
- I2C_SR1_SMBALERT)) && (timeout--));
+ I2C_SR1 (i2c)) & (I2C_SR1_ADDR | I2C_SR1_BERR | I2C_SR1_ARLO |
+ I2C_SR1_AF | I2C_SR1_PECERR | I2C_SR1_TIMEOUT |
+ I2C_SR1_SMBALERT)) && (timeout--));
+
if (!timeout)
return -1;
dummy = I2C_SR2 (i2c);
I2C_SR1 (i2c) =
- reg & ~(I2C_SR1_BERR | I2C_SR1_ARLO | I2C_SR1_AF | I2C_SR1_PECERR |
- I2C_SR1_TIMEOUT | I2C_SR1_SMBALERT);
+ reg & ~ (I2C_SR1_BERR | I2C_SR1_ARLO | I2C_SR1_AF | I2C_SR1_PECERR |
+ I2C_SR1_TIMEOUT | I2C_SR1_SMBALERT);
return (reg == 0x82) ? 0 : -1;
}
- /*This is stupid, it bit bangs a dummy transaction to get the host i2c controller back in the game */
+/*This is stupid, it bit bangs a dummy transaction to get the host i2c controller back in the game */
void
i2cp1_reset_sm (void)
{
@@ -126,14 +130,14 @@ i2cp1_reset_sm (void)
delay_us (10);
CLEAR (SCL1);
- for (i = 0; i < 9; ++i)
- {
- delay_us (10);
- SET (SCL1);
- delay_us (10);
- CLEAR (SCL1);
- delay_us (10);
- }
+ for (i = 0; i < 9; ++i) {
+ delay_us (10);
+ SET (SCL1);
+ delay_us (10);
+ CLEAR (SCL1);
+ delay_us (10);
+ }
+
SET (SCL1);
delay_us (10);
SET (SDA1);
@@ -159,14 +163,14 @@ i2cp2_reset_sm (void)
delay_us (10);
CLEAR (SCL2);
- for (i = 0; i < 9; ++i)
- {
- delay_us (10);
- SET (SCL2);
- delay_us (10);
- CLEAR (SCL2);
- delay_us (10);
- }
+ for (i = 0; i < 9; ++i) {
+ delay_us (10);
+ SET (SCL2);
+ delay_us (10);
+ CLEAR (SCL2);
+ delay_us (10);
+ }
+
SET (SCL2);
delay_us (10);
SET (SDA2);
@@ -180,7 +184,7 @@ i2cp2_reset_sm (void)
void
-i2cp1_start_dma (uint8_t * buf, int len)
+i2cp1_start_dma (uint8_t *buf, int len)
{
dma_channel_reset (DMA1, DMA_CHANNEL6);
dma_set_peripheral_address (DMA1, DMA_CHANNEL6, (uint32_t) & I2C1_DR);
@@ -200,7 +204,7 @@ i2cp1_start_dma (uint8_t * buf, int len)
void
-i2cp2_start_dma (uint8_t * buf, int len)
+i2cp2_start_dma (uint8_t *buf, int len)
{
dma_channel_reset (DMA1, DMA_CHANNEL4);
dma_set_peripheral_address (DMA1, DMA_CHANNEL4, (uint32_t) & I2C2_DR);
@@ -222,7 +226,7 @@ i2cp2_start_dma (uint8_t * buf, int len)
int
i2cp1_dma_in_progress (void)
{
- return !(DMA1_ISR & (DMA_ISR_TCIF6 | DMA_ISR_TEIF6));
+ return ! (DMA1_ISR & (DMA_ISR_TCIF6 | DMA_ISR_TEIF6));
}
void
@@ -253,7 +257,8 @@ i2cp2_stop_dma (void)
void
i2cp_reset (uint32_t i2c)
{
- while (i2c_lock ());
+ while (i2c_lock());
+
i2cp_start (i2c);
i2cp_abort_start (i2c);
i2cp_stop (i2c);
@@ -263,7 +268,7 @@ i2cp_reset (uint32_t i2c)
i2cp_abort_start (i2c);
i2cp_stop (i2c);
i2cp_abort_stop (i2c);
- i2c_unlock ();
+ i2c_unlock();
}
@@ -276,22 +281,27 @@ i2cp_scan (uint32_t i2c)
i2cp_reset (i2c);
printf ("Probing bus\n");
- for (i = 0; i < 128; ++i)
- {
- printf ("%d\n", i);
- while (i2c_lock ());
- i2cp_start (i2c);
- i2cp_abort_start (i2c);
- i2cp_stop (i2c);
- i2cp_abort_stop (i2c);
- delay_ms (10);
- r = i2cp_start_transaction (i2c, i, I2C_WRITE);
- i2cp_stop (i2c);
- i2c_unlock ();
- if (!r)
- printf ("Found device at address 0x%x\n", i);
- usart1_drain ();
- }
+
+ for (i = 0; i < 128; ++i) {
+ printf ("%d\n", i);
+
+ while (i2c_lock());
+
+ i2cp_start (i2c);
+ i2cp_abort_start (i2c);
+ i2cp_stop (i2c);
+ i2cp_abort_stop (i2c);
+ delay_ms (10);
+ r = i2cp_start_transaction (i2c, i, I2C_WRITE);
+ i2cp_stop (i2c);
+ i2c_unlock();
+
+ if (!r)
+ printf ("Found device at address 0x%x\n", i);
+
+ usart1_drain();
+ }
+
printf ("Done\n");
i2cp_reset (i2c);
@@ -312,9 +322,9 @@ i2cp_bringup (uint32_t i2c)
if (i2c == I2C1)
- i2cp1_reset_sm ();
+ i2cp1_reset_sm();
else
- i2cp2_reset_sm ();
+ i2cp2_reset_sm();
i2c_set_clock_frequency (i2c, I2C_CR2_FREQ_36MHZ);
@@ -335,10 +345,10 @@ i2cp_init (void)
rcc_periph_clock_enable (RCC_I2C2);
rcc_periph_clock_enable (RCC_DMA1);
- while (i2c_lock ());
+ while (i2c_lock());
i2cp_bringup (I2C1);
i2cp_bringup (I2C2);
- i2c_unlock ();
+ i2c_unlock();
}
diff --git a/app/led.c b/app/led.c
index 9dcc543..4f5c084 100644
--- a/app/led.c
+++ b/app/led.c
@@ -32,11 +32,11 @@ led_set (void)
void
led_tick (void)
{
- if (led)
- {
- led--;
- if (!led)
- led_clear ();
- }
+ if (led) {
+ led--;
+
+ if (!led)
+ led_clear();
+ }
}
diff --git a/app/main.c b/app/main.c
index f358f01..d834802 100644
--- a/app/main.c
+++ b/app/main.c
@@ -1,6 +1,6 @@
#include "project.h"
-#define WIGGLE GPIO4
+#define WIGGLE GPIO4
#define WIGGLE_PORT GPIOB
int
@@ -11,7 +11,7 @@ main (void)
//nvic_set_priority_grouping(NVIC_PriorityGroup_4);
/*set up pll */
- rcc_clock_setup_in_hse_8mhz_out_72mhz ();
+ rcc_clock_setup_in_hse_8mhz_out_72mhz();
/*turn on clocks which aren't done elsewhere */
rcc_periph_clock_enable (RCC_GPIOA);
@@ -29,25 +29,28 @@ main (void)
/* Claw some pins pack */
gpio_primary_remap (AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_ON, 0);
- dwt_enable_cycle_counter ();
+ dwt_enable_cycle_counter();
- ticker_init ();
+ ticker_init();
- led_init ();
- usart_init ();
- i2cp_init ();
+ led_init();
+ usart_init();
+ i2cp_init();
printf ("Hello world\n");
- led_set ();
- tacho_init ();
+ led_set();
+ tacho_init();
- delay_ms(100);
+ delay_ms (100);
+
+
+ oled1_init();
+ oled2_init();
+
+ gauge_init();
-
- oled1_init ();
- oled2_init ();
font8x8_put_str (vram_1, "ABC fish soup!", 0, 0);
@@ -55,26 +58,28 @@ main (void)
MAP_OUTPUT_PP (WIGGLE);
- for (;;)
- {
- char buf[20];
+ for (;;) {
+ char buf[20];
+
+ sprintf (buf, "%6u rpm", (unsigned) raw_tacho);
+ font8x16_put_str (vram_1, buf, 30, 8);
+
+ sprintf (buf, "%8d", cnt++);
+ font8x8_put_str (vram_1, buf, 0, 24);
- sprintf (buf, "%6u rpm", (unsigned) raw_tacho);
- font8x16_put_str (vram_1, buf, 30, 8);
+ sprintf (buf, "%6d", cnt >> 4);
+ font21x32_put_str (vram_2, buf, 0);
- sprintf (buf, "%8d", cnt++);
- font8x8_put_str (vram_1, buf, 0, 24);
- sprintf (buf, "%6d", cnt >> 4);
- font21x32_put_str (vram_2, buf, 0);
+ if (cnt & 1)
+ SET (WIGGLE);
+ else
+ CLEAR (WIGGLE);
- if (cnt & 1)
- SET (WIGGLE);
- else
- CLEAR (WIGGLE);
+ gauge_test();
- }
+ }
return 0;
}
diff --git a/app/oled.c b/app/oled.c
index e0c0bee..e5edfed 100644
--- a/app/oled.c
+++ b/app/oled.c
@@ -2,36 +2,34 @@
int
-ssd1306_cmds (uint32_t i2c, uint8_t * buf, size_t len, int delay)
+ssd1306_cmds (uint32_t i2c, uint8_t *buf, size_t len, int delay)
{
int ret = -1;
- while (i2c_lock ());
+ while (i2c_lock());
- do
- {
+ do {
- if (i2cp_start_transaction (i2c, SSD1306_I2C_ADDRESS, I2C_WRITE))
- break;
+ if (i2cp_start_transaction (i2c, SSD1306_I2C_ADDRESS, I2C_WRITE))
+ break;
+
+ if (i2cp_send (i2c, SSD1306_COMMAND))
+ break;
- if (i2cp_send (i2c, SSD1306_COMMAND))
+ while (len--)
+ if (i2cp_send (i2c, * (buf++)))
break;
- while (len--)
- if (i2cp_send (i2c, *(buf++)))
- break;
+ i2cp_stop (i2c);
- i2cp_stop (i2c);
+ if (delay)
+ delay_us (delay);
- if (delay)
- delay_us (delay);
+ ret = 0;
+ } while (0);
- ret = 0;
- }
- while (0);
-
- i2c_unlock ();
+ i2c_unlock();
return ret;
@@ -46,7 +44,7 @@ ssd1306_cmd (uint32_t i2c, uint8_t cmd, int delay)
void
-oled_generate_stream (uint8_t * vram)
+oled_generate_stream (uint8_t *vram)
{
memset (vram, 0, DMA_BUF_SZ);
vram[0] = SSD1306_DATA_CONTINUE;
@@ -56,7 +54,7 @@ oled_generate_stream (uint8_t * vram)
void
-oled_cls (uint8_t * vram)
+oled_cls (uint8_t *vram)
{
memset (vram + 1, 0, SSD1306_VRAM_SIZE);
}
@@ -91,16 +89,16 @@ oled_squirt (void)
ssd1306_cmds (cmds, sizeof (cmds), 0);
- while (i2c_lock ());
+ while (i2c_lock());
i2cp_start_transaction (SSD1306_I2C_ADDRESS, I2C_WRITE);
for (i = 0; i < DMA_BUF_SZ; ++i)
i2cp_send (update_buf[i]);
- i2cp_stop ();
+ i2cp_stop();
- i2c_unlock ();
+ i2c_unlock();
}
#endif
@@ -133,57 +131,49 @@ oled_reset (uint32_t i2c)
void
-oled_const_strip (uint8_t * vram, int x, int xe, uint8_t and, uint8_t or)
+oled_const_strip (uint8_t *vram, int x, int xe, uint8_t and, uint8_t or)
{
uint8_t r;
- for (x++; x <= xe; ++x)
- {
- r = vram[x] & and;
- vram[x] = r | or;
- }
+ for (x++; x <= xe; ++x) {
+ r = vram[x] & and;
+ vram[x] = r | or;
+ }
}
void
-oled_blit_strip (uint8_t * vram, int x, int xe, uint8_t mask, int shift,
- uint8_t * src)
+oled_blit_strip (uint8_t *vram, int x, int xe, uint8_t mask, int shift,
+ uint8_t *src)
{
uint8_t r, s;
- if (shift > 0)
- {
- for (x++; x <= xe; ++x)
- {
- s = *(src++);
- s <<= shift;
- s &= mask;
- r = vram[x] & ~mask;
- vram[x] = r | s;
+ if (shift > 0) {
+ for (x++; x <= xe; ++x) {
+ s = * (src++);
+ s <<= shift;
+ s &= mask;
+ r = vram[x] & ~mask;
+ vram[x] = r | s;
- }
}
- else if (shift < 0)
- {
- shift = -shift;
- for (x++; x <= xe; ++x)
- {
- s = *(src++);
- s >>= shift;
- s &= mask;
- r = vram[x] & ~mask;
- vram[x] = r | s;
- }
+ } else if (shift < 0) {
+ shift = -shift;
+
+ for (x++; x <= xe; ++x) {
+ s = * (src++);
+ s >>= shift;
+ s &= mask;
+ r = vram[x] & ~mask;
+ vram[x] = r | s;
}
- else
- {
- for (x++; x <= xe; ++x)
- {
- s = *(src++);
- s &= mask;
- r = vram[x] & ~mask;
- vram[x] = r | s;
- }
+ } else {
+ for (x++; x <= xe; ++x) {
+ s = * (src++);
+ s &= mask;
+ r = vram[x] & ~mask;
+ vram[x] = r | s;
}
+ }
}
diff --git a/app/oled1.c b/app/oled1.c
index 48c6167..cb1767d 100644
--- a/app/oled1.c
+++ b/app/oled1.c
@@ -24,17 +24,15 @@ start_dma (void)
memcpy (dma_buf, vram_1, DMA_BUF_SZ);
- if (ssd1306_cmds (I2C1, cmds, sizeof (cmds), 0))
- {
- oled_sad++;
- return;
- }
-
- if (i2cp_start_transaction (I2C1, SSD1306_I2C_ADDRESS, I2C_WRITE))
- {
- oled_sad++;
- return;
- }
+ if (ssd1306_cmds (I2C1, cmds, sizeof (cmds), 0)) {
+ oled_sad++;
+ return;
+ }
+
+ if (i2cp_start_transaction (I2C1, SSD1306_I2C_ADDRESS, I2C_WRITE)) {
+ oled_sad++;
+ return;
+ }
refresh_wdt = 0;
dma_in_progress = 1;
@@ -47,16 +45,15 @@ start_dma (void)
void
dma1_channel6_isr (void)
{
- if (dma_in_progress)
- {
- i2cp1_stop_dma ();
+ if (dma_in_progress) {
+ i2cp1_stop_dma();
- i2cp_stop (I2C1);
- dma_in_progress = 0;
- }
+ i2cp_stop (I2C1);
+ dma_in_progress = 0;
+ }
if (refresh_enabled)
- start_dma ();
+ start_dma();
}
void
@@ -72,19 +69,18 @@ oled1_ticker (void)
refresh_wdt = 0;
-/*No refresh for 1s, restart everything */
+ /*No refresh for 1s, restart everything */
- i2cp1_stop_dma ();
+ i2cp1_stop_dma();
i2cp_stop (I2C1);
dma_in_progress = 0;
- if (oled_sad)
- {
- oled_sad = 0;
- i2cp1_reset_sm ();
- }
+ if (oled_sad) {
+ oled_sad = 0;
+ i2cp1_reset_sm();
+ }
- start_dma ();
+ start_dma();
}
@@ -92,7 +88,7 @@ void
oled1_enable_refresh (void)
{
refresh_enabled = 1;
- start_dma ();
+ start_dma();
}
@@ -100,6 +96,7 @@ void
oled1_disable_refresh (void)
{
refresh_enabled = 0;
+
while (dma_in_progress);
}
@@ -115,13 +112,13 @@ oled1_init (void)
oled_generate_stream (vram_1);
nvic_enable_irq (NVIC_DMA1_CHANNEL6_IRQ);
- oled1_enable_refresh ();
+ oled1_enable_refresh();
}
void
oled1_shutdown (void)
{
- oled1_disable_refresh ();
+ oled1_disable_refresh();
oled_off (I2C1);
}
diff --git a/app/oled2.c b/app/oled2.c
index 331e5b7..93b9d0d 100644
--- a/app/oled2.c
+++ b/app/oled2.c
@@ -24,17 +24,15 @@ start_dma (void)
memcpy (dma_buf, vram_2, DMA_BUF_SZ);
- if (ssd1306_cmds (I2C2, cmds, sizeof (cmds), 0))
- {
- oled_sad++;
- return;
- }
-
- if (i2cp_start_transaction (I2C2, SSD1306_I2C_ADDRESS, I2C_WRITE))
- {
- oled_sad++;
- return;
- }
+ if (ssd1306_cmds (I2C2, cmds, sizeof (cmds), 0)) {
+ oled_sad++;
+ return;
+ }
+
+ if (i2cp_start_transaction (I2C2, SSD1306_I2C_ADDRESS, I2C_WRITE)) {
+ oled_sad++;
+ return;
+ }
refresh_wdt = 0;
dma_in_progress = 1;
@@ -47,16 +45,15 @@ start_dma (void)
void
dma1_channel4_isr (void)
{
- if (dma_in_progress)
- {
- i2cp2_stop_dma ();
+ if (dma_in_progress) {
+ i2cp2_stop_dma();
- i2cp_stop (I2C2);
- dma_in_progress = 0;
- }
+ i2cp_stop (I2C2);
+ dma_in_progress = 0;
+ }
if (refresh_enabled)
- start_dma ();
+ start_dma();
}
void
@@ -72,19 +69,18 @@ oled2_ticker (void)
refresh_wdt = 0;
-/*No refresh for 1s, restart everything */
+ /*No refresh for 1s, restart everything */
- i2cp2_stop_dma ();
+ i2cp2_stop_dma();
i2cp_stop (I2C2);
dma_in_progress = 0;
- if (oled_sad)
- {
- oled_sad = 0;
- i2cp2_reset_sm ();
- }
+ if (oled_sad) {
+ oled_sad = 0;
+ i2cp2_reset_sm();
+ }
- start_dma ();
+ start_dma();
}
@@ -92,7 +88,7 @@ void
oled2_enable_refresh (void)
{
refresh_enabled = 1;
- start_dma ();
+ start_dma();
}
@@ -100,6 +96,7 @@ void
oled2_disable_refresh (void)
{
refresh_enabled = 0;
+
while (dma_in_progress);
}
@@ -115,13 +112,13 @@ oled2_init (void)
oled_generate_stream (vram_2);
nvic_enable_irq (NVIC_DMA1_CHANNEL4_IRQ);
- oled2_enable_refresh ();
+ oled2_enable_refresh();
}
void
oled2_shutdown (void)
{
- oled2_disable_refresh ();
+ oled2_disable_refresh();
oled_off (I2C2);
}
diff --git a/app/prototypes.h b/app/prototypes.h
index 60ba26c..d7c2a97 100644
--- a/app/prototypes.h
+++ b/app/prototypes.h
@@ -84,3 +84,8 @@ extern void oled2_shutdown(void);
/* font21x32.c */
extern void font21x32_put_ch(uint8_t *vram, unsigned ch, unsigned x);
extern void font21x32_put_str(uint8_t *vram, char *str, unsigned x);
+/* gauge.c */
+extern unsigned gauge_target;
+extern void gauge_ticker(void);
+extern void gauge_test(void);
+extern void gauge_init(void);
diff --git a/app/ring.c b/app/ring.c
index c4f3458..c1d1803 100644
--- a/app/ring.c
+++ b/app/ring.c
@@ -2,16 +2,18 @@
static inline size_t
-ring_next (ring_t * r, size_t p)
+ring_next (ring_t *r, size_t p)
{
p++;
+
if (p >= r->size)
p -= r->size;
+
return p;
}
void
-ring_init (ring_t * r, uint8_t * buf, size_t len)
+ring_init (ring_t *r, uint8_t *buf, size_t len)
{
r->data = buf;
r->size = len;
@@ -20,7 +22,7 @@ ring_init (ring_t * r, uint8_t * buf, size_t len)
}
int
-ring_write_byte (ring_t * r, uint8_t c)
+ring_write_byte (ring_t *r, uint8_t c)
{
size_t n = ring_next (r, r->write);
@@ -36,7 +38,7 @@ ring_write_byte (ring_t * r, uint8_t c)
int
-ring_read_byte (ring_t * r, uint8_t * c)
+ring_read_byte (ring_t *r, uint8_t *c)
{
size_t n = ring_next (r, r->read);
@@ -50,19 +52,18 @@ ring_read_byte (ring_t * r, uint8_t * c)
}
int
-ring_write (ring_t * r, uint8_t * buf, size_t len)
+ring_write (ring_t *r, uint8_t *buf, size_t len)
{
- while (len--)
- {
- if (ring_write_byte (r, *(buf++)))
- return -1;
- }
+ while (len--) {
+ if (ring_write_byte (r, * (buf++)))
+ return -1;
+ }
return 0;
}
int
-ring_empty (ring_t * r)
+ring_empty (ring_t *r)
{
return (r->read == r->write) ? 1 : 0;
}
diff --git a/app/ring.h b/app/ring.h
index ba8887b..1eae65b 100644
--- a/app/ring.h
+++ b/app/ring.h
@@ -1,5 +1,4 @@
-typedef struct ring
-{
+typedef struct ring {
uint8_t *data;
size_t size;
size_t write;
diff --git a/app/tacho.c b/app/tacho.c
index 87f398f..bf0222c 100644
--- a/app/tacho.c
+++ b/app/tacho.c
@@ -1,6 +1,6 @@
#include "project.h"
-#define SPURIOUS MS(10) /*Anything faster than 6000rpm is a false trigger */
+#define SPURIOUS MS(10) /*Anything faster than 6000rpm is a false trigger */
@@ -20,12 +20,12 @@ TACHO_ISR (void)
uint32_t now, diff;
static uint32_t last_edge;
- if (!(EXTI_PR & TACHO))
+ if (! (EXTI_PR & TACHO))
return;
EXTI_PR = TACHO;
- now = dwt_read_cycle_counter ();
+ now = dwt_read_cycle_counter();
diff = cycle_diff (last_edge, now);
@@ -35,12 +35,12 @@ TACHO_ISR (void)
last_edge = now;
-/* Want RPM, diff is in units of 1/72 us */
+ /* Want RPM, diff is in units of 1/72 us */
if (!diff)
return;
-/* uint32_t is un-able to express 60s in clock ticks, so divide everything by 2 */
+ /* uint32_t is un-able to express 60s in clock ticks, so divide everything by 2 */
diff >>= 1;
diff --git a/app/ticker.c b/app/ticker.c
index 15d5e3f..6950c6b 100644
--- a/app/ticker.c
+++ b/app/ticker.c
@@ -22,9 +22,9 @@ sys_tick_handler (void)
delay_ms_count--;
- led_tick ();
- oled1_ticker ();
- oled2_ticker ();
+ led_tick();
+ oled1_ticker();
+ oled2_ticker();
ticks++;
}
@@ -34,6 +34,7 @@ void
delay_ms (uint32_t d)
{
delay_ms_count = d;
+
while (delay_ms_count);
}
@@ -49,25 +50,23 @@ ticker_init (void)
/* 72MHz / 8 = > 9Mhz */
systick_set_reload (9000);
/* 9MHz / 9000 => 1kHz */
- systick_interrupt_enable ();
- systick_counter_enable ();
+ systick_interrupt_enable();
+ systick_counter_enable();
/*Calibrate the delay loop */
- do
- {
- scale--;
- v = ticks;
+ do {
+ scale--;
+ v = ticks;
- while (v == ticks);
+ while (v == ticks);
- delay_us (1000);
- w = ticks;
- v++;
- w -= v;
- }
- while (w);
+ delay_us (1000);
+ w = ticks;
+ v++;
+ w -= v;
+ } while (w);
}
diff --git a/app/usart.c b/app/usart.c
index 163fe4f..8d98287 100644
--- a/app/usart.c
+++ b/app/usart.c
@@ -22,31 +22,25 @@ usart1_isr (void)
/* Check if we were called because of RXNE. */
if (((USART_CR1 (USART1) & USART_CR1_RXNEIE) != 0) &&
- ((USART_SR (USART1) & USART_SR_RXNE) != 0))
- {
+ ((USART_SR (USART1) & USART_SR_RXNE) != 0)) {
- /* Retrieve the data from the peripheral. */
- data = usart_recv (USART1);
+ /* Retrieve the data from the peripheral. */
+ data = usart_recv (USART1);
- ring_write_byte (&rx1_ring, data);
- }
+ ring_write_byte (&rx1_ring, data);
+ }
/* Check if we were called because of TXE. */
if (((USART_CR1 (USART1) & USART_CR1_TXEIE) != 0) &&
- ((USART_SR (USART1) & USART_SR_TXE) != 0))
- {
-
- if (ring_read_byte (&tx1_ring, &data))
- {
- /*No more data, Disable the TXE interrupt, it's no longer needed. */
- USART_CR1 (USART1) &= ~USART_CR1_TXEIE;
- }
- else
- {
- usart_send (USART1, data);
- }
- }
+ ((USART_SR (USART1) & USART_SR_TXE) != 0)) {
+
+ if (ring_read_byte (&tx1_ring, &data)) {
+ /*No more data, Disable the TXE interrupt, it's no longer needed. */
+ USART_CR1 (USART1) &= ~USART_CR1_TXEIE;
+ } else
+ usart_send (USART1, data);
+ }
}
@@ -56,23 +50,22 @@ _write (int file, char *ptr, int len)
{
int ret;
- if (file == 1)
- {
- ret = len;
+ if (file == 1) {
+ ret = len;
- usart1_drain ();
+ usart1_drain();
- while (len--)
- {
- if (*ptr == '\n')
- ring_write_byte (&tx1_ring, '\r');
- ring_write_byte (&tx1_ring, *(ptr++));
- }
+ while (len--) {
+ if (*ptr == '\n')
+ ring_write_byte (&tx1_ring, '\r');
- USART_CR1 (USART1) |= USART_CR1_TXEIE;
- return ret;
+ ring_write_byte (&tx1_ring, * (ptr++));
}
+ USART_CR1 (USART1) |= USART_CR1_TXEIE;
+ return ret;
+ }
+
errno = EIO;
return -1;
}