Subversion Repositories Projects

Compare Revisions

Regard whitespace Rev 1281 → Rev 1197

/C-OSD/trunk/osd-logo.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Deleted: svn:mime-type
-application/octet-stream
\ No newline at end of property
/C-OSD/trunk/CHANGE.LOG
18,13 → 18,6
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
****************************************************************************/
 
20110921-1425
+logo support
@there is a logo in the new character definitions
@to see it you will have to reflash characters
@insert your own logo if you like to, see osd-logo.png as example
@and use http://www.mylifesucks.de/tools/max7456/
 
20110825-1000
*initial testing stuff for -45° rotated flights (X instead of +)
*some minor code changes
/C-OSD/trunk/c-osd.mcm
5127,49 → 5127,50
01010101
01010101
01010101
01010100
01010101
01010101
01010010
01010101
01010101
01010010
01010101
01010101
01001010
01010101
01011010
10101010
10101001
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01001010
01011001
01010101
01010101
01010010
01011001
01010101
01010101
01010010
01011001
01010101
01101010
10101010
10101010
01010101
01010100
01010101
01010101
01010101
5183,72 → 5184,184
01010101
01010101
01010101
01010100
00000000
00010101
00000010
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01101010
10101010
10000001
10101010
01010101
01011010
01010101
01010101
01100110
01010101
01010101
01100110
01010101
01010101
10010110
01010101
01010101
10010110
01010101
01010110
01010110
01010101
01011001
01010110
01010101
01100101
01010110
01010101
01010101
01010110
01010101
01010101
01011010
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01101010
10101010
10101000
10101000
00000010
10101010
10100001
01010100
10101010
10000101
01010101
00101010
10000101
01011001
01010110
01010101
01000000
10000101
01011001
01010110
01010101
01100101
01010110
01010101
00010101
01100101
01010110
01010101
01100101
01010110
01010101
00010101
10010101
01010110
01010101
10010101
01010110
01010110
01010101
00010101
01010110
01010110
01010101
01010110
01011001
01010101
10000101
01101001
01010101
01000000
10000101
01010101
00101010
10000101
01010101
00101010
10100001
01010100
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01011010
10101010
10101000
00000010
10101000
00101010
10100101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01011001
01010101
01101010
10101010
10100001
01000000
10101010
10000101
01010101
01011001
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010101
01010101
5256,16 → 5369,12
01010101
01010101
01010101
00010101
01010101
01010101
00010101
01010101
01010101
00010101
01010101
01010101
00010101
01010101
01010101
01010101
5276,36 → 5385,46
01010101
01010101
01010101
01100101
01010101
01010100
00000000
00000001
00010100
01010101
01100101
01010101
01010101
10101010
10100001
00010100
10101010
10100001
00010100
00000000
00000001
00010101
01010101
10010101
01010110
01010110
01010101
01010110
01011001
01010101
01010110
01100101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
10010101
01010101
01101010
01010101
01011010
10010101
01010101
01010101
01010101
5312,64 → 5431,64
01010101
01010101
01010101
01010100
00000000
01010101
00000010
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011010
10101010
01010100
10101010
10101010
01010010
10101000
00000000
01010010
10100001
01011001
01010110
01010101
01001010
10000101
01100101
01010110
01010101
01001010
10000101
01100101
01010110
01010101
01001010
10000101
01010101
01001010
00010101
01010110
01010101
01001010
00010101
01010101
01001010
00010101
01010110
01010101
01001010
10000101
01010101
01001010
10000101
01010110
01010101
01001010
10000101
01010101
01010010
10100001
01010110
01010101
01010010
10101000
00000000
01010100
00101010
10101010
01010101
01000000
10101000
01011001
01010101
01010101
01011001
01010101
01010101
01100101
01010101
01010110
10010101
01010101
01010101
01010101
5377,58 → 5496,11
01010101
01010101
01010101
01010100
00000001
01010101
01010010
10101000
01010101
01001010
10101010
00010101
00101010
00101010
00010101
00101010
01001010
10000101
00101000
01001010
10000101
00101010
01001010
10000101
00101010
01001010
10000101
00101010
01010010
10000101
01001010
01001010
10000101
01010000
01001010
10000101
01010101
01001010
10000101
00000000
01001010
10000101
00101010
00101010
00010101
00101010
10101010
00010101
00101010
10100000
01010101
01001010
00000101
01010101
01010000
01010101
01010101
01010101
5439,187 → 5511,143
01010101
01010101
01010101
00000000
00000101
01010101
10101010
10100000
01010101
10101010
10101010
00010101
00000000
00101010
10000101
00010101
01001010
10000101
00010101
01010000
00000101
10000001
01010101
01010101
10101000
00000001
01010101
10101010
10101000
01010101
10101010
10101010
00010101
00001010
10101010
10000101
01010000
00101010
10000101
01010101
01001010
10000101
00010101
01010010
10000101
00010101
01001010
10000101
10000000
00001010
10000101
01011010
10101010
10101010
00010101
10101010
10100000
10101001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01000000
00000000
00000001
01001010
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01011010
10101010
10101000
01001010
10101010
10101010
01001010
00000000
00001010
01001010
00010101
01010010
01001010
00010101
01010010
01001010
00010101
01010100
01001010
00010101
01010100
01001010
00010101
10101001
01010101
01001010
00010101
01010101
01001010
00010101
01010101
01001010
00010101
01010100
01001010
00010101
01010100
01001010
00010101
01010010
01001010
00010101
01010010
01001010
00000000
00001010
01001010
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01010101
01100101
01010110
01010101
01100101
01101010
10101010
10101010
01001010
10101010
10100000
01010110
01010101
01100101
01010110
01010101
01100101
01010110
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
00010101
10010101
01010101
01010101
10000101
10010101
01010101
01011010
01010101
10100001
01010101
10100101
01010101
10100001
01010101
01010101
10101000
01010101
01010101
10101000
01010101
01010101
10101000
01010101
01010101
00101000
01010101
01010101
00101000
01010101
01010101
00101000
01010101
01010101
10101000
01010101
01010101
10101000
01010101
01010101
10101000
01010101
01010101
10100001
01010101
01010101
10100001
01010101
01010101
10000101
01010101
01101010
10010101
01010101
00010101
01010101
01100101
01010101
01010101
01010101
5626,66 → 5654,33
01010101
01010101
01010101
01010110
01101010
10010101
01010110
01010101
01100101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01010000
00000101
01010000
01001010
10100001
01010010
00101000
00101000
01010010
00101000
00101000
01010010
00101000
01001000
01010010
00101000
01001000
01010010
00101000
01001010
00010010
00101000
01001010
00010010
00101000
01001010
00010010
00101000
01001010
00010010
00101000
01001000
01010010
00101000
01001000
01010010
00101000
00101000
01010010
00101000
00101000
01010010
01001010
10100001
01010010
01010000
00000101
01010000
01100101
01010101
01010110
10010101
01101010
10101001
01010101
01010101
01010101
5696,250 → 5691,320
01010101
01010101
01010101
00000000
00010101
01010101
01010101
01010101
00000000
00010101
00000000
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01101010
10101010
00000101
00101010
10000010
10000101
00101000
10000010
10000101
00101000
10000100
10100001
00101000
10000100
10100001
00101000
10000010
10100001
00101000
10000010
10000101
00101010
10101010
10000101
00101000
10000000
00010101
00101000
10000101
10101001
01010101
00101000
10000101
01010101
00101000
10000101
01011001
01010101
00101000
10000101
01010101
00101000
10000101
01100101
01010101
00101010
00000101
01010101
00000000
01100101
01010101
01010101
10010101
01010101
01010101
10010101
01010101
01010110
01010101
01010101
01011010
01010101
01010101
01100101
10010101
01010101
10010101
01100101
01010110
01010101
01011001
01101001
01010101
01010110
01010101
01010101
01010101
01010101
00000001
00000001
01000000
10100001
00100001
01001010
00000001
00101000
01001010
01010101
00101000
01001010
01010101
00101000
00101010
01010101
00101000
00101010
00000001
00101010
00101010
10100001
00101010
00101010
00000001
00101000
10101010
01010101
00101000
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01101010
10101010
01101010
10010101
01010110
01010110
01010101
00101000
00101010
01011001
01010110
01010101
00101000
00101010
01100101
01010110
01010101
00101000
00101010
00000000
00101000
00101010
10101000
00101000
01001010
00000000
00000000
01000000
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010101
10010101
01010101
01010101
01101010
10101001
01010101
01010101
00000001
01010101
01010101
01010101
00010100
00000000
01010101
00010010
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01100101
01010101
01010110
01011001
01010101
01010110
01011001
01010101
01010110
01010110
01010101
01010110
01010101
10010101
01010110
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01100101
01010101
01010101
10010101
01010101
01010110
01010101
01010101
01101001
01010101
01011010
10010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01101010
10101010
00000101
00010010
10000010
10000101
00010010
10000010
10000101
00010010
10000100
10100001
00010010
10000100
00000001
00010010
10000000
01010101
00010000
10010101
01010110
01010101
10010101
01010110
01010110
01010101
01010110
01101001
01100101
01011001
01010101
01011010
01011001
01010101
01010101
10100101
01010101
01010101
01100101
01010101
01010101
10010101
01010101
01011010
01010101
01010101
10100101
01010101
01101010
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01100101
01010101
01010110
10010101
01010101
01101001
01010101
01010110
10010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01101010
10101010
00010101
00010100
00001010
10000101
00010101
01010010
10000101
00010000
00000010
10000101
00010010
10000100
10100001
00010010
10000010
10000101
00010010
10000010
10000101
00010000
10101010
00000101
00010101
00000000
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01100101
01010101
01010101
10010101
01010101
01011010
01010101
01010101
01010101
01010101
01010101
01010000
00000101
01010000
01001010
10100001
01010010
00101000
00101000
01010010
00101000
00101000
01010010
00101000
01001000
01010010
00101000
01001000
01010010
00101000
01001010
00010010
00101000
01001010
00010010
00101000
01001010
00010010
00101000
01001010
00010010
00101000
01001000
01010010
00101000
01001000
01010010
00101000
00101000
01010010
00101000
00101000
01010010
01001010
10100001
01010100
01010000
00000101
01010101
01010101
01010101
5951,60 → 6016,10
01010101
01010101
01010101
00000000
00000101
01010101
01010101
01010101
01010101
00000100
00000001
00000000
10000100
10100001
00101010
10000100
10100001
00101000
10000100
10100001
00101000
10000100
10100001
00101000
10000100
10100001
00101000
10000100
10100001
00101000
10000100
10100001
00101010
10000100
10100001
00101000
10000100
10100001
00101000
10000100
10100001
00101000
10000100
10000101
00101000
10000010
10000101
00101000
10000010
10000101
00101000
10101010
00000101
00101000
00000000
00010101
00000000
01010101
01010101
01010101
6012,63 → 6027,73
01010101
01010101
01010101
01100101
10010101
01011001
01100101
10010101
01011001
01011001
01100101
01011001
01011001
01100101
01011001
01011001
01100101
01011001
01010101
01010101
01011001
01010101
01000000
00000000
00000101
01010101
01100101
01010101
01010101
00000101
01100101
01010101
00000000
10100000
01010100
01010101
10010101
01010101
01010101
10010101
01010101
01010110
01010101
01010101
01011001
01010101
01010101
10100101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
10101010
00101000
01010010
10000000
00001000
01010010
10000100
01001010
00010010
10000101
00101000
01010010
10000101
00101000
01010010
10000101
10000001
01010010
10000101
00101000
01010010
10000101
00101000
01010010
10000101
01001000
01010010
10000101
01001010
00010010
10000100
01001010
00010010
10000100
01001010
00010010
10000000
01001010
00010000
00101010
01000000
00010101
01000000
10100101
01010101
01010101
01010101
6078,67 → 6103,31
01010101
01010101
01010101
01101010
10101010
10101010
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
00010101
01000000
00000000
10000001
01001010
10101000
10100001
01001010
00000000
10100001
01001010
00010101
00100001
01001010
00010101
00101000
01001010
00010101
00000000
01001010
00000000
01011001
01010101
01001010
10101000
00000000
01001010
00000000
00101000
01001010
00010101
00100001
01001010
00010101
10100001
01001010
00010101
10100001
01001010
00010101
10100001
01001010
00000000
10000101
01001010
10101000
00010101
01000000
00000000
01010101
01100101
01010101
01010101
01100101
01010101
01010101
10010101
01010101
01011010
01010101
01010101
01010101
6152,6 → 6141,17
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01010101
01010101
/C-OSD/trunk/characters.c
33,7 → 33,7
*/
// chars 0 - 255 with 54 byte per char
// orginal filename: c-osd.mcm
// Wed, 21 Sep 2011 13:46:48 +0200
// Thu, 31 Mar 2011 11:55:52 +0200
 
 
 
1879,370 → 1879,370
 
// 0 ------------
// 1 ------------
// 2 -----------#
// 3 ----------#
// 4 ----------#
// 5 ---------#
// 6 ---------#
// 7 ---------#
// 8 ---------#
// 9 ---------#
// 10 ---------#
// 11 ---------#
// 12 ---------#
// 13 ---------#
// 14 ----------#
// 15 ----------#
// 16 -----------#
// 2 ------------
// 3 ------------
// 4 ------------
// 5 -- -
// 6 ------ -----
// 7 ------ -----
// 8 ------ -----
// 9 ------ -----
// 10 ------ -----
// 11 ------ -----
// 12 ------ -----
// 13 ------ -----
// 14 ------ -----
// 15 ------ -----
// 16 -
// 17 ------------
// 000000000011
// 012345678901
const char chr80[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x55,0x55,0x52,0x55,0x55,0x52,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x4a,0x55,0x55,0x52,0x55,0x55,0x52,0x55,0x55,0x54,0x55,0x55,0x55};
const char chr80[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5a, 0xaa, 0xa9, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x6a, 0xaa, 0xaa, 0x55, 0x55, 0x55};
 
 
// 0 ---######---
// 1 ### ##-
// 2 #
// 3 ####
// 4 #----#
// 5 #------#
// 6 #-------###
// 7 #----------
// 8 #-----------
// 9 #-----------
// 10 #-----------
// 11 #-------###
// 12 #------#
// 13 #------#
// 14 #----#
// 15 #### #
// 16 # #-
// 17 -### #--
// 0 ------------
// 1 ------------
// 2 ------------
// 3 ------- ----
// 4 ------- ----
// 5 ------- ----
// 6 -
// 7 ------ ----
// 8 ----- - ----
// 9 ----- - ----
// 10 ---- -- ----
// 11 ---- -- ----
// 12 --- --- ----
// 13 -- ---- ----
// 14 - ----- ----
// 15 ------- ----
// 16 ------ ----
// 17 ------------
// 000000000011
// 012345678901
const char chr81[] PROGMEM = {0x54,0x00,0x15,0x02,0xaa,0x81,0xaa,0xaa,0xa8,0xa8,0x02,0xaa,0xa1,0x54,0xaa,0x85,0x55,0x2a,0x85,0x55,0x40,0x85,0x55,0x55,0x15,0x55,0x55,0x15,0x55,0x55,0x15,0x55,0x55,0x85,0x55,0x40,0x85,0x55,0x2a,0x85,0x55,0x2a,0xa1,0x54,0xaa,0xa8,0x02,0xa8,0x2a,0xaa,0xa1,0x40,0xaa,0x85};
const char chr81[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x6a, 0xaa, 0xaa, 0x55, 0x5a, 0x55, 0x55, 0x66, 0x55, 0x55, 0x66, 0x55, 0x55, 0x96, 0x55, 0x55, 0x96, 0x55, 0x56, 0x56, 0x55, 0x59, 0x56, 0x55, 0x65, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x5a, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ------------
// 1 ------------
// 2 ------------
// 3 #-----------
// 4 #-----------
// 5 #-----------
// 6 #-----------
// 7 ------------
// 8 ------------
// 9 ------------
// 10 ---########-
// 11 #--# #-
// 12 #--# #-
// 13 #--########-
// 14 #-----------
// 15 ------------
// 16 ------------
// 3 ------ -----
// 4 ------ -----
// 5 ------ -----
// 6 -
// 7 ------ ----
// 8 ------ ----
// 9 ----- -----
// 10 ----- -----
// 11 ----- -----
// 12 ---- ------
// 13 ---- ------
// 14 --- -------
// 15 --- -------
// 16 -- ------ -
// 17 ------------
// 000000000011
// 012345678901
const char chr82[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x15,0x55,0x55,0x15,0x55,0x55,0x15,0x55,0x55,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x54,0x00,0x01,0x14,0xaa,0xa1,0x14,0xaa,0xa1,0x14,0x00,0x01,0x15,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55};
const char chr82[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x6a, 0xaa, 0xaa, 0x55, 0x59, 0x56, 0x55, 0x59, 0x56, 0x55, 0x65, 0x56, 0x55, 0x65, 0x56, 0x55, 0x65, 0x56, 0x55, 0x95, 0x56, 0x55, 0x95, 0x56, 0x56, 0x55, 0x56, 0x56, 0x55, 0x56, 0x59, 0x55, 0x69, 0x55, 0x55, 0x55};
 
 
// 0 -------#####
// 1 ----###
// 2 ---#
// 3 --# #####
// 4 --# #-----
// 5 -# #------
// 6 -# #------
// 7 -# #------
// 8 -# #-------
// 9 -# #-------
// 10 -# #-------
// 11 -# #------
// 12 -# #------
// 13 -# #------
// 14 --# #-----
// 15 --# #####
// 16 ---##
// 17 -----### #
// 0 ------------
// 1 ------------
// 2 ------------
// 3 ---- -------
// 4 ---- -------
// 5 -- --
// 6 ----- ------
// 7 ----- ------
// 8 ----- ------
// 9 ------ -----
// 10 -
// 11 ------ -----
// 12 ------- ----
// 13 ------- ----
// 14 ------- ----
// 15 -------- ---
// 16 -------- ---
// 17 ------------
// 000000000011
// 012345678901
const char chr83[] PROGMEM = {0x55,0x54,0x00,0x55,0x02,0xaa,0x54,0xaa,0xaa,0x52,0xa8,0x00,0x52,0xa1,0x55,0x4a,0x85,0x55,0x4a,0x85,0x55,0x4a,0x85,0x55,0x4a,0x15,0x55,0x4a,0x15,0x55,0x4a,0x15,0x55,0x4a,0x85,0x55,0x4a,0x85,0x55,0x4a,0x85,0x55,0x52,0xa1,0x55,0x52,0xa8,0x00,0x54,0x2a,0xaa,0x55,0x40,0xa8};
const char chr83[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x95, 0x55, 0x5a, 0xaa, 0xa5, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x59, 0x55, 0x6a, 0xaa, 0xaa, 0x55, 0x59, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x95, 0x55, 0x55, 0x55};
 
 
// 0 -----------#
// 1 ###-------#
// 2 #-----#
// 3 #---#
// 4 # #---#
// 5 -# #--# #
// 6 -# #--#
// 7 -# #--#
// 8 -# #--#
// 9 --# #---#
// 10 -# #----##
// 11 -# #------
// 12 -# #--####
// 13 -# #--#
// 14 # #---#
// 15 #---#
// 16 ##-----#
// 17 ##--------##
// 0 ------------
// 1 ------------
// 2 ------------
// 3 ----- ------
// 4 ----- ------
// 5 ----
// 6 ---- ------
// 7 --- -------
// 8 -- --------
// 9 - -------- -
// 10 ---------- -
// 11 ---------- -
// 12 --------- --
// 13 --------- --
// 14 -------- ---
// 15 ----- ----
// 16 -- -------
// 17 ------------
// 000000000011
// 012345678901
const char chr84[] PROGMEM = {0x55,0x55,0x54,0x01,0x55,0x52,0xa8,0x55,0x4a,0xaa,0x15,0x2a,0x2a,0x15,0x2a,0x4a,0x85,0x28,0x4a,0x85,0x2a,0x4a,0x85,0x2a,0x4a,0x85,0x2a,0x52,0x85,0x4a,0x4a,0x85,0x50,0x4a,0x85,0x55,0x4a,0x85,0x00,0x4a,0x85,0x2a,0x2a,0x15,0x2a,0xaa,0x15,0x2a,0xa0,0x55,0x4a,0x05,0x55,0x50};
const char chr84[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0xaa, 0xaa, 0x55, 0x95, 0x56, 0x56, 0x55, 0x56, 0x59, 0x55, 0x56, 0x65, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x6a, 0x55, 0x5a, 0x95, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ######------
// 1 ##----
// 2 #---
// 3 ##### #--
// 4 #----# #--
// 5 #-----####--
// 6 ##---------
// 7 ####-----
// 8 #----
// 9 #---
// 10 ## #--
// 11 --### #--
// 12 -----# #--
// 13 #-----# #--
// 14 #----# #--
// 15 ##### #--
// 16 #---
// 17 ##----
// 0 ------------
// 1 ------------
// 2 ------------
// 3 -- ---------
// 4 -- ---------
// 5 --
// 6 -- ---- ----
// 7 - ----- ----
// 8 - ----- ----
// 9 ------- ----
// 10 ------- ----
// 11 ------- ----
// 12 ------- ----
// 13 ------ -----
// 14 ------ -----
// 15 ----- ------
// 16 --- -------
// 17 ------------
// 000000000011
// 012345678901
const char chr85[] PROGMEM = {0x00,0x05,0x55,0xaa,0xa0,0x55,0xaa,0xaa,0x15,0x00,0x2a,0x85,0x15,0x4a,0x85,0x15,0x50,0x05,0x81,0x55,0x55,0xa8,0x01,0x55,0xaa,0xa8,0x55,0xaa,0xaa,0x15,0x0a,0xaa,0x85,0x50,0x2a,0x85,0x55,0x4a,0x85,0x15,0x52,0x85,0x15,0x4a,0x85,0x80,0x0a,0x85,0xaa,0xaa,0x15,0xaa,0xa0,0x55};
const char chr85[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x5a, 0xaa, 0xaa, 0x59, 0x56, 0x55, 0x65, 0x56, 0x55, 0x65, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x56, 0x95, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 -##########-
// 1 -# #
// 2 -#
// 3 -# ######
// 4 -# #-----#
// 5 -# #-----#
// 6 -# #------#
// 7 -# #------#
// 8 -# #-------
// 9 -# #-------
// 10 -# #-------
// 11 -# #------#
// 12 -# #------#
// 13 -# #-----#
// 14 -# #-----#
// 15 -# ######
// 16 -#
// 17 -# ##
// 0 ------------
// 1 ------------
// 2 ------------
// 3 ------------
// 4 ------------
// 5 -- -
// 6 ---------- -
// 7 ---------- -
// 8 ---------- -
// 9 ---------- -
// 10 ---------- -
// 11 ---------- -
// 12 ---------- -
// 13 ---------- -
// 14 ---------- -
// 15 ---------- -
// 16 -- -
// 17 ------------
// 000000000011
// 012345678901
const char chr86[] PROGMEM = {0x40,0x00,0x01,0x4a,0xaa,0xa8,0x4a,0xaa,0xaa,0x4a,0x00,0x0a,0x4a,0x15,0x52,0x4a,0x15,0x52,0x4a,0x15,0x54,0x4a,0x15,0x54,0x4a,0x15,0x55,0x4a,0x15,0x55,0x4a,0x15,0x55,0x4a,0x15,0x54,0x4a,0x15,0x54,0x4a,0x15,0x52,0x4a,0x15,0x52,0x4a,0x00,0x0a,0x4a,0xaa,0xaa,0x4a,0xaa,0xa0};
const char chr86[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x5a, 0xaa, 0xa9, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x5a, 0xaa, 0xa9, 0x55, 0x55, 0x55};
 
 
// 0 ------------
// 1 #-----------
// 2 #----------
// 3 #---------
// 4 #---------
// 5 #--------
// 6 #--------
// 7 #--------
// 8 # #--------
// 9 # #--------
// 10 # #--------
// 11 #--------
// 12 #--------
// 13 #--------
// 14 #---------
// 15 #---------
// 16 #----------
// 17 #-----------
// 1 ------------
// 2 ------------
// 3 --- ----- --
// 4 --- ----- --
// 5 -
// 6 --- ----- --
// 7 --- ----- --
// 8 --- ----- --
// 9 --------- --
// 10 --------- --
// 11 --------- --
// 12 --------- --
// 13 -------- ---
// 14 -------- ---
// 15 ------ ----
// 16 ---- ------
// 17 ------------
// 000000000011
// 012345678901
const char chr87[] PROGMEM = {0x55,0x55,0x55,0x15,0x55,0x55,0x85,0x55,0x55,0xa1,0x55,0x55,0xa1,0x55,0x55,0xa8,0x55,0x55,0xa8,0x55,0x55,0xa8,0x55,0x55,0x28,0x55,0x55,0x28,0x55,0x55,0x28,0x55,0x55,0xa8,0x55,0x55,0xa8,0x55,0x55,0xa8,0x55,0x55,0xa1,0x55,0x55,0xa1,0x55,0x55,0x85,0x55,0x55,0x15,0x55,0x55};
const char chr87[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x65, 0x56, 0x55, 0x65, 0x6a, 0xaa, 0xaa, 0x56, 0x55, 0x65, 0x56, 0x55, 0x65, 0x56, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x55, 0x95, 0x55, 0x5a, 0x55, 0x55, 0xa5, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ------------
// 1 ------------
// 2 --####----##
// 3 -# #---#
// 4 # ## #--#
// 5 # ## #--#
// 6 # #-# #--#
// 7 # #-# #--#
// 8 # #-# #-#
// 9 # #-# #-#
// 10 # #-# #-#
// 11 # #-# #-#
// 12 # #-# #--#
// 13 # #-# #--#
// 14 # ## #--#
// 15 # ## #--#
// 16 -# #---#
// 17 --####----##
// 2 ------------
// 3 ------------
// 4 - -------
// 5 ----- ------
// 6 ------------
// 7 -----------
// 8 - ------
// 9 ----- -----
// 10 -----------
// 11 -----------
// 12 ---------- -
// 13 ---------- -
// 14 --------- --
// 15 ------- ---
// 16 - -----
// 17 ------------
// 000000000011
// 012345678901
const char chr88[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x50,0x4a,0xa1,0x52,0x28,0x28,0x52,0x28,0x28,0x52,0x28,0x48,0x52,0x28,0x48,0x52,0x28,0x4a,0x12,0x28,0x4a,0x12,0x28,0x4a,0x12,0x28,0x4a,0x12,0x28,0x48,0x52,0x28,0x48,0x52,0x28,0x28,0x52,0x28,0x28,0x52,0x4a,0xa1,0x52,0x50,0x05,0x50};
const char chr88[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6a, 0x95, 0x55, 0x55, 0x65, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x6a, 0x95, 0x56, 0x55, 0x65, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x56, 0x95, 0x6a, 0xa9, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ----#####---
// 0 ------------
// 1 ------------
// 2 #####---####
// 3 ##--#
// 4 ## #--# #
// 5 ## #--# #
// 6 #-# #-# #
// 7 #-# #-# #
// 8 ## #-# #
// 9 ## #--#
// 10 #--# #
// 11 ####---# #
// 12 #------# #
// 13 #------# #
// 14 #------# #
// 15 #------# #
// 16 #------#
// 17 ##------####
// 2 ------------
// 3 ------------
// 4 ------------
// 5 - -
// 6 ---------- -
// 7 --------- --
// 8 --------- --
// 9 -------- ---
// 10 -------- ---
// 11 ------- ----
// 12 ------ ----
// 13 ----- -- ---
// 14 ---- ---- --
// 15 --- ------ -
// 16 - --------
// 17 ------------
// 000000000011
// 012345678901
const char chr89[] PROGMEM = {0x55,0x00,0x15,0x55,0x55,0x55,0x00,0x15,0x00,0xaa,0x05,0x2a,0x82,0x85,0x28,0x82,0x85,0x28,0x84,0xa1,0x28,0x84,0xa1,0x28,0x82,0xa1,0x28,0x82,0x85,0x2a,0xaa,0x85,0x28,0x80,0x15,0x28,0x85,0x55,0x28,0x85,0x55,0x28,0x85,0x55,0x28,0x85,0x55,0x28,0x85,0x55,0x2a,0x05,0x55,0x00};
const char chr89[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6a, 0xaa, 0xa9, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x55, 0x95, 0x55, 0x56, 0x55, 0x55, 0x5a, 0x55, 0x55, 0x65, 0x95, 0x55, 0x95, 0x65, 0x56, 0x55, 0x59, 0x69, 0x55, 0x56, 0x55, 0x55, 0x55};
 
 
// 0 ------------
// 1 ------------
// 2 ###-###--###
// 3 #-# #--#
// 4 ###-# #-#
// 5 ----# #-#
// 6 ----# ##
// 7 ----# ##
// 8 ###-# #
// 9 #-# #
// 10 ###-# #
// 11 ----# #
// 12 ----# ##
// 13 ----# ##
// 14 ----# ##
// 15 ##### ##
// 16 ## #-#
// 17 ########-###
// 2 ------------
// 3 --- --------
// 4 --- --------
// 5 --- --------
// 6 --- --------
// 7 --- -
// 8 - ------
// 9 --- ------ -
// 10 --- ----- --
// 11 --- --------
// 12 --- --------
// 13 --- --------
// 14 --- --------
// 15 ---- -------
// 16 ----- -
// 17 ------------
// 000000000011
// 012345678901
const char chr90[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x01,0x01,0x40,0xa1,0x21,0x4a,0x01,0x28,0x4a,0x55,0x28,0x4a,0x55,0x28,0x2a,0x55,0x28,0x2a,0x01,0x2a,0x2a,0xa1,0x2a,0x2a,0x01,0x28,0xaa,0x55,0x28,0xaa,0x55,0x28,0x2a,0x55,0x28,0x2a,0x55,0x28,0x2a,0x00,0x28,0x2a,0xa8,0x28,0x4a,0x00,0x00,0x40};
const char chr90[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x6a, 0xaa, 0x6a, 0x95, 0x56, 0x56, 0x55, 0x59, 0x56, 0x55, 0x65, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x55, 0x95, 0x55, 0x55, 0x6a, 0xa9, 0x55, 0x55, 0x55};
 
 
// 0 --------###-
// 0 ------------
// 1 ------------
// 2 #--#####----
// 3 #-# ##--
// 4 #-# ## #--
// 5 #-# ## #--
// 6 #-# #-# #-
// 7 #-# #-####-
// 8 #-# ###----
// 9 #-## #---
// 10 #--### #--
// 11 #-----# #--
// 12 #-##### #--
// 13 #-# #-# #-
// 14 #-# ## #--
// 15 #-# ## #--
// 16 #-## ##--
// 17 #---####----
// 2 ------------
// 3 ------------
// 4 -----------
// 5 - ---------
// 6 -- --------
// 7 -- --------
// 8 --- -------
// 9 ---- ------
// 10 ---------- -
// 11 ---------- -
// 12 --------- --
// 13 -------- ---
// 14 ------- ----
// 15 ----- -----
// 16 -- -------
// 17 ------------
// 000000000011
// 012345678901
const char chr91[] PROGMEM = {0x55,0x55,0x01,0x55,0x55,0x55,0x14,0x00,0x55,0x12,0xaa,0x05,0x12,0x82,0x85,0x12,0x82,0x85,0x12,0x84,0xa1,0x12,0x84,0x01,0x12,0x80,0x55,0x10,0xaa,0x15,0x14,0x0a,0x85,0x15,0x52,0x85,0x10,0x02,0x85,0x12,0x84,0xa1,0x12,0x82,0x85,0x12,0x82,0x85,0x10,0xaa,0x05,0x15,0x00,0x55};
const char chr91[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x65, 0x55, 0x56, 0x59, 0x55, 0x56, 0x59, 0x55, 0x56, 0x56, 0x55, 0x56, 0x55, 0x95, 0x56, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x56, 0x55, 0x55, 0x69, 0x55, 0x5a, 0x95, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ------------
// 1 ------------
// 2 --####----##
// 3 -# #---#
// 4 # ## #--#
// 5 # ## #--#
// 6 # #-# #--#
// 7 # #-# #--#
// 8 # #-# #-#
// 9 # #-# #-#
// 10 # #-# #-#
// 11 # #-# #-#
// 12 # #-# #--#
// 13 # #-# #--#
// 14 # ## #--#
// 15 # ## #--#
// 16 -# #----#
// 17 --####------
// 2 ------------
// 3 ----- ------
// 4 ----- ------
// 5 -----
// 6 ---- ------
// 7 ---- ------
// 8 --- -------
// 9 - -- ---- -
// 10 ------ -- -
// 11 -------- --
// 12 --------- --
// 13 -------- ---
// 14 ------ ----
// 15 ---- ------
// 16 - --------
// 17 ------------
// 000000000011
// 012345678901
const char chr92[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x50,0x05,0x50,0x4a,0xa1,0x52,0x28,0x28,0x52,0x28,0x28,0x52,0x28,0x48,0x52,0x28,0x48,0x52,0x28,0x4a,0x12,0x28,0x4a,0x12,0x28,0x4a,0x12,0x28,0x4a,0x12,0x28,0x48,0x52,0x28,0x48,0x52,0x28,0x28,0x52,0x28,0x28,0x52,0x4a,0xa1,0x54,0x50,0x05,0x55};
const char chr92[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x6a, 0xaa, 0x55, 0x95, 0x56, 0x55, 0x95, 0x56, 0x56, 0x55, 0x56, 0x69, 0x65, 0x59, 0x55, 0x5a, 0x59, 0x55, 0x55, 0xa5, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x5a, 0x55, 0x55, 0xa5, 0x55, 0x6a, 0x55, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ######------
// 0 ------------
// 1 ------------
// 2 ##-####-####
// 3 #-# #-#
// 4 #-# #-# #
// 5 #-# #-# #
// 6 #-# #-# #
// 7 #-# #-# #
// 8 #-# #-# #
// 9 #-# #-#
// 10 #-# #-# #
// 11 #-# #-# #
// 12 #-# #-# #
// 13 #-# #--# #
// 14 ## #--# #
// 15 ## #--# #
// 16 ##--# #
// 17 #####---####
// 2 ------------
// 3 --------- --
// 4 ------- ---
// 5 ----- -----
// 6 --- -- ----
// 7 ------- ----
// 8 ------- ----
// 9 -
// 10 ------- ----
// 11 ------- ----
// 12 ------ -----
// 13 ------ -----
// 14 ----- ------
// 15 ---- -------
// 16 -- --------
// 17 ------------
// 000000000011
// 012345678901
const char chr93[] PROGMEM = {0x00,0x05,0x55,0x55,0x55,0x55,0x04,0x01,0x00,0x84,0xa1,0x2a,0x84,0xa1,0x28,0x84,0xa1,0x28,0x84,0xa1,0x28,0x84,0xa1,0x28,0x84,0xa1,0x28,0x84,0xa1,0x2a,0x84,0xa1,0x28,0x84,0xa1,0x28,0x84,0xa1,0x28,0x84,0x85,0x28,0x82,0x85,0x28,0x82,0x85,0x28,0xaa,0x05,0x28,0x00,0x15,0x00};
const char chr93[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x55, 0x56, 0x95, 0x55, 0x69, 0x55, 0x56, 0x96, 0x55, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x6a, 0xaa, 0xaa, 0x55, 0x56, 0x55, 0x55, 0x56, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x5a, 0x55, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 -#########--
// 0 ------------
// 1 ------------
// 2 ##------####
// 3 ##---#
// 4 # #--# ###
// 5 ## #--# #-#
// 6 -# #-# #--
// 7 # #--# #--
// 8 # #--# #--
// 9 ##---# #--
// 10 # #--# #--
// 11 # #--# #--
// 12 -# #--# #--
// 13 -# #-# #-#
// 14 -# #-# #-#
// 15 -# #-# ###
// 16 -# #-###
// 17 -####----###
// 2 ------------
// 3 ------------
// 4 - -- ----- -
// 5 - -- ----- -
// 6 -- -- ---- -
// 7 -- -- ---- -
// 8 -- -- ---- -
// 9 ---------- -
// 10 --------- --
// 11 --------- --
// 12 -------- ---
// 13 -------- ---
// 14 ------- ----
// 15 ------ -----
// 16 ---- ------
// 17 ------------
// 000000000011
// 012345678901
const char chr94[] PROGMEM = {0x40,0x00,0x05,0x55,0x55,0x55,0x05,0x55,0x00,0xa0,0x54,0xaa,0x28,0x52,0x80,0x08,0x52,0x84,0x4a,0x12,0x85,0x28,0x52,0x85,0x28,0x52,0x85,0x81,0x52,0x85,0x28,0x52,0x85,0x28,0x52,0x85,0x48,0x52,0x85,0x4a,0x12,0x84,0x4a,0x12,0x84,0x4a,0x12,0x80,0x4a,0x10,0x2a,0x40,0x15,0x40};
const char chr94[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x65, 0x95, 0x59, 0x65, 0x95, 0x59, 0x59, 0x65, 0x59, 0x59, 0x65, 0x59, 0x59, 0x65, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x55, 0x95, 0x55, 0x56, 0x55, 0x55, 0x59, 0x55, 0x55, 0xa5, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ------------
// 1 ------------
// 2 #----#######
// 3 ##--# #
// 4 #--# ####
// 5 #--# #---
// 6 # #--# #---
// 7 # #-# #---
// 8 ####-# ####
// 9 -----# #
// 10 ####-# ####
// 11 # #-# #---
// 12 # #--# #---
// 13 #--# #---
// 14 #--# #---
// 15 #--# ####
// 16 #---# #
// 17 #----#######
// 2 ------------
// 3 ------------
// 4 --- --
// 5 ------------
// 6 ------------
// 7 ------------
// 8 -
// 9 ------ -----
// 10 ------ -----
// 11 ------ -----
// 12 ------ -----
// 13 ----- ------
// 14 ----- ------
// 15 ---- -------
// 16 -- --------
// 17 ------------
// 000000000011
// 012345678901
const char chr95[] PROGMEM = {0x55,0x55,0x55,0x55,0x55,0x55,0x15,0x40,0x00,0x81,0x4a,0xa8,0xa1,0x4a,0x00,0xa1,0x4a,0x15,0x21,0x4a,0x15,0x28,0x4a,0x15,0x00,0x4a,0x00,0x55,0x4a,0xa8,0x00,0x4a,0x00,0x28,0x4a,0x15,0x21,0x4a,0x15,0xa1,0x4a,0x15,0xa1,0x4a,0x15,0xa1,0x4a,0x00,0x85,0x4a,0xa8,0x15,0x40,0x00};
const char chr95[] PROGMEM = {0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0xaa, 0xa5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x6a, 0xaa, 0xaa, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x59, 0x55, 0x55, 0x65, 0x55, 0x55, 0x65, 0x55, 0x55, 0x95, 0x55, 0x5a, 0x55, 0x55, 0x55, 0x55, 0x55};
 
 
// 0 ------------
5924,7 → 5924,6
// 012345678901
const char chr255[] PROGMEM = {0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa};
 
 
const char *chars[] PROGMEM = { chr0, chr1, chr2, chr3, chr4, chr5, chr6, chr7, chr8, chr9, chr10, chr11, chr12, chr13, chr14, chr15, chr16, chr17, chr18, chr19, chr20, chr21, chr22, chr23, chr24, chr25, chr26, chr27, chr28, chr29, chr30, chr31, chr32, chr33, chr34, chr35, chr36, chr37, chr38, chr39, chr40, chr41, chr42, chr43, chr44, chr45, chr46, chr47, chr48, chr49, chr50, chr51, chr52, chr53, chr54, chr55, chr56, chr57, chr58, chr59, chr60, chr61, chr62, chr63, chr64, chr65, chr66, chr67, chr68, chr69, chr70, chr71, chr72, chr73, chr74, chr75, chr76, chr77, chr78, chr79, chr80, chr81, chr82, chr83, chr84, chr85, chr86, chr87, chr88, chr89, chr90, chr91, chr92, chr93, chr94, chr95, chr96, chr97, chr98, chr99, chr100, chr101, chr102, chr103, chr104, chr105, chr106, chr107, chr108, chr109, chr110, chr111, chr112, chr113, chr114, chr115, chr116, chr117, chr118, chr119, chr120, chr121, chr122, chr123, chr124, chr125, chr126, chr127, chr128, chr129, chr130, chr131, chr132, chr133, chr134, chr135, chr136, chr137, chr138, chr139, chr140, chr141, chr142, chr143, chr144, chr145, chr146, chr147, chr148, chr149, chr150, chr151, chr152, chr153, chr154, chr155, chr156, chr157, chr158, chr159, chr160, chr161, chr162, chr163, chr164, chr165, chr166, chr167, chr168, chr169, chr170, chr171, chr172, chr173, chr174, chr175, chr176, chr177, chr178, chr179, chr180, chr181, chr182, chr183, chr184, chr185, chr186, chr187, chr188, chr189, chr190, chr191, chr192, chr193, chr194, chr195, chr196, chr197, chr198, chr199, chr200, chr201, chr202, chr203, chr204, chr205, chr206, chr207, chr208, chr209, chr210, chr211, chr212, chr213, chr214, chr215, chr216, chr217, chr218, chr219, chr220, chr221, chr222, chr223, chr224, chr225, chr226, chr227, chr228, chr229, chr230, chr231, chr232, chr233, chr234, chr235, chr236, chr237, chr238, chr239, chr240, chr241, chr242, chr243, chr244, chr245, chr246, chr247, chr248, chr249, chr250, chr251, chr252, chr253, chr254, chr255};
 
/**
/C-OSD/trunk/config.c
51,12 → 51,13
 
const displaymode_t * mode;
 
 
/**
* read data saved in eeprom, print out message if <verbose> is set
*/
void get_eeprom(uint8_t verbose) {
if (eeprom_read_byte(&ee_checkbyte1) == CHECKBYTE1 && eeprom_read_byte(&ee_checkbyte2) == CHECKBYTE2) {
if (verbose) write_ascii_string_pgm(2, 6, PSTR("Loading from EEPROM")); // Loading data
if (verbose) write_ascii_string_pgm(2, 2, PSTR("Loading from EEPROM")); // Loading data
COSD_FLAGS_MODES = eeprom_read_byte(&ee_COSD_FLAGS_MODES);
COSD_FLAGS_CONFIG = eeprom_read_byte(&ee_COSD_FLAGS_CONFIG);
COSD_DISPLAYMODE = eeprom_read_byte(&ee_COSD_DISPLAYMODE);
65,7 → 66,7
scope[i] = eeprom_read_byte(&ee_COSD_SCOPE[i]);
}
} else {
if (verbose) write_ascii_string_pgm(2, 6, PSTR("No Data in EEPROM")); // Loading data
if (verbose) write_ascii_string_pgm(2, 2, PSTR("No Data in EEPROM")); // Loading data
}
}
 
88,27 → 89,13
*/
void init_cosd(uint8_t UBat) {
clear();
write_ascii_string_pgm(2, 1, PSTR("C-OSD Init"));
write_ascii_string_pgm(2, 4, PSTR(BUILDDATE));
 
write_ascii_string_pgm(2, 1, PSTR("C-OSD"));
write_ascii_string_pgm(3, 2, PSTR("boot"));
draw_logo(11, 1);
 
write_ascii_string_pgm(2, 5, PSTR(BUILDDATE));
 
get_eeprom(1);
 
//write_ascii_string_pgm(23, 2, vm[COSD_FLAGS & COSD_FLAG_NTSC]);
if (COSD_FLAGS_CONFIG & COSD_FLAG_NTSC) {
write_ascii_string_pgm(23, 1, VM_NTSC);
} else {
write_ascii_string_pgm(23, 1, VM_PAL);
}
 
 
#if FCONLY
write_ascii_string_pgm(2, 4, PSTR("FC only Mode"));
write_ascii_string_pgm(2, 3, PSTR("FC only Mode"));
#else
write_ascii_string_pgm(2, 4, PSTR("NaviCtrl Mode"));
write_ascii_string_pgm(2, 3, PSTR("NaviCtrl Mode"));
 
usart1_EnableTXD();
usart1_puts_pgm(PSTR(REQUEST_UART_TO_FC));
123,9 → 110,9
paramset_serial setting;
setting = *((paramset_serial*)pRxData);
 
write_ascii_string_pgm(2, 7, PSTR("Setting :"));
write_ndigit_number_u(10, 7, setting.SettingsIndex, 1, 1);
write_ascii_string_len(13, 7, setting.param.Name, 12);
write_ascii_string_pgm(2, 6, PSTR("Setting :"));
write_ndigit_number_u(10, 6, setting.SettingsIndex, 1, 1);
write_ascii_string_len(13, 6, setting.param.Name, 12);
 
uint8_t cells = 0;
write_ascii_string_pgm(2, 8, PSTR("Battery:")); // Guessing Number of Cells
158,7 → 145,14
write_ascii_string_pgm(14, 9, PSTR("Max:")); // Max Voltage
write_ndigit_number_s_10th(20, 9, max_voltage, 3, 0);
 
get_eeprom(1);
 
//write_ascii_string_pgm(23, 2, vm[COSD_FLAGS & COSD_FLAG_NTSC]);
if (COSD_FLAGS_CONFIG & COSD_FLAG_NTSC) {
write_ascii_string_pgm(23, 1, VM_NTSC);
} else {
write_ascii_string_pgm(23, 1, VM_PAL);
}
 
// request version from board
#if FCONLY
/C-OSD/trunk/default/Makefile
25,8 → 25,7
TARGET = C-OSD.elf
CC = avr-gcc
AVRDUDE = avrdude
#ISPTYPE = usbasp
ISPTYPE = avrispmkII
ISPTYPE = usbasp
ISPPORT = usb
 
 
/C-OSD/trunk/osd_helpers.c
101,26 → 101,7
//write_ndigit_number_u(x, y-1, percent * 13 / 100, 100, 0);
}
 
 
 
/* ##########################################################################
* draw logo
* ##########################################################################*/
 
/**
* draw the logo at <x>/<y>
*/
void draw_logo(uint8_t x, uint8_t y) {
uint8_t chr = 0x50;
 
for (uint8_t yy = y; yy < y + 2; yy++) {
for (uint8_t xx = x; xx < x + 8; xx++) {
write_char_xy(xx, yy, chr++);
}
}
}
 
/* ##########################################################################
* variometer
* ##########################################################################*/
 
331,53 → 312,51
#if FCONLY
#else
uint8_t line = 3;
write_ascii_string_pgm(1, line, PSTR("max Alt :")); // max Altitude
write_ascii_string_pgm(1, ++line, PSTR("max Spd :")); // max Speed
write_ascii_string_pgm(1, ++line, PSTR("max Dist:")); // max Distance
write_ascii_string_pgm(1, line, PSTR("max Altitude:")); // max Altitude
write_ascii_string_pgm(1, ++line, PSTR("max Speed :")); // max Speed
write_ascii_string_pgm(1, ++line, PSTR("max Distance:")); // max Distance
 
draw_logo(19, 4);
 
if (COSD_FLAGS_CONFIG & COSD_FLAG_FEET) {
write_ndigit_number_s(13, line - 2, max_Altimeter * 32 / 10, 4, 0);
write_char_xy(17, line - 2, 0x7E); // small feet ft
write_ndigit_number_u(14, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)279) / (uint32_t)12500), 3, 0);
write_char_xy(17, line - 1, 0x7D); // mp/h
write_ndigit_number_u(13, line - 0, max_Distance / 10 * 32 / 10, 4, 0);
write_char_xy(17, line - 0, 0x7E); // small feet ft
write_ndigit_number_s(16, line - 2, max_Altimeter * 32 / 10, 4, 0);
write_char_xy(20, line - 2, 0x7E); // small feet ft
write_ndigit_number_u(17, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)279) / (uint32_t)12500), 3, 0);
write_char_xy(20, line - 1, 0x7D); // mp/h
write_ndigit_number_u(16, line - 0, max_Distance / 10 * 32 / 10, 4, 0);
write_char_xy(20, line - 0, 0x7E); // small feet ft
} else {
write_ndigit_number_s(13, line - 2, max_Altimeter, 4, 0);
write_char_xy(17, line - 2, 204); // small meters m
write_ndigit_number_u(14, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)9) / (uint32_t)250), 3, 0);
write_char_xy(17, line - 1, 203); // km/h
write_ndigit_number_u(13, line - 0, max_Distance / 10, 4, 0);
write_char_xy(17, line - 0, 204); // small meters m
write_ndigit_number_s(16, line - 2, max_Altimeter, 4, 0);
write_char_xy(20, line - 2, 204); // small meters m
write_ndigit_number_u(17, line - 1, (uint16_t)(((uint32_t)max_GroundSpeed * (uint32_t)9) / (uint32_t)250), 3, 0);
write_char_xy(20, line - 1, 203); // km/h
write_ndigit_number_u(16, line - 0, max_Distance / 10, 4, 0);
write_char_xy(20, line - 0, 204); // small meters m
}
 
write_ascii_string_pgm(1, ++line, PSTR("min Volt:")); // min voltage
write_ndigit_number_u_10th(13, line, min_UBat, 3, 0);
write_char_xy(17, line, 0x9E); // small V
write_ascii_string_pgm(1, ++line, PSTR("min Voltage :")); // min voltage
write_ndigit_number_u_10th(16, line, min_UBat, 3, 0);
write_char_xy(20, line, 0x9E); // small V
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
write_ascii_string_pgm(1, ++line, PSTR("max curr:")); // ampere
write_ascii_string_pgm(1, ++line, PSTR("max current :")); // ampere
write_ndigit_number_u_10th(16, line, max_ampere / 10, 3, 0);
write_char_xy(17, line, 0x9F); // small A
write_char_xy(20, line, 0x9F); // small A
 
// wasted mampere in this flight (will count up after landing)
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) && !(COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
write_ndigit_number_u(18, line, (ampere_wasted / 10) - wasted_ampere_offset, 5, 0);
write_ndigit_number_u(21, line, (ampere_wasted / 10) - wasted_ampere_offset, 5, 0);
} else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) {
 
write_ndigit_number_u(18, line, naviData.UsedCapacity - wasted_ampere_offset, 5, 0);
write_ndigit_number_u(21, line, naviData.UsedCapacity - wasted_ampere_offset, 5, 0);
}
 
write_char_xy(23, line, 0xB5); // mah
write_char_xy(26, line, 0xB5); // mah
}
write_ascii_string_pgm(1, ++line, PSTR("max Time:")); // max time
write_time(11, line, max_FlyingTime);
write_char_xy(17, line, 210); // fly clock
write_ascii_string_pgm(1, ++line, PSTR("long :")); // longitude
write_gps_pos(11, line, naviData.CurrentPosition.Longitude);
write_ascii_string_pgm(1, ++line, PSTR("lat :")); // latitude
write_gps_pos(11, line, naviData.CurrentPosition.Latitude);
write_time(14, line, max_FlyingTime);
write_char_xy(20, line, 210); // fly clock
write_ascii_string_pgm(1, ++line, PSTR("longitude :")); // longitude
write_gps_pos(14, line, naviData.CurrentPosition.Longitude);
write_ascii_string_pgm(1, ++line, PSTR("latitude:")); // latitude
write_gps_pos(14, line, naviData.CurrentPosition.Latitude);
#endif
}
 
/C-OSD/trunk/osd_helpers.h
49,11 → 49,6
*/
void draw_battery(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t);
 
/**
* draw the logo at <x>/<y>
*/
void draw_logo(uint8_t x, uint8_t y);
 
/* ##########################################################################
* variometer
* ##########################################################################*/