Subversion Repositories Projects

Compare Revisions

Regard whitespace Rev 1280 → Rev 1281

/C-OSD/trunk/CHANGE.LOG
18,6 → 18,13
* 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,50 → 5127,49
01010101
01010101
01010101
01010100
01010101
01010101
01010010
01010101
01010101
01010010
01010101
01010101
01001010
01010101
01011010
10101010
10101001
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01001010
01010101
01010101
01011001
01010010
01010101
01010101
01011001
01010010
01010101
01101010
10101010
10101010
01010101
01010100
01010101
01010101
01010101
5184,184 → 5183,72
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01101010
01010100
00000000
00010101
00000010
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
01011001
01010110
00101010
10000101
01010101
01011001
01010110
01000000
10000101
01010101
01100101
01010110
01010101
01100101
01010110
00010101
01010101
01100101
01010110
01010101
10010101
01010110
00010101
01010101
10010101
01010110
01010110
01010101
01010110
01010110
00010101
01010101
01010110
01011001
01010101
01101001
10000101
01010101
01000000
10000101
01010101
00101010
10000101
01010101
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
00101010
10100001
01010100
10101010
10100101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01011001
01010101
01101010
10101000
00000010
10101000
00101010
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
5369,12 → 5256,16
01010101
01010101
01010101
00010101
01010101
01010101
00010101
01010101
01010101
00010101
01010101
01010101
00010101
01010101
01010101
01010101
5385,46 → 5276,36
01010101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01010100
00000000
00000001
00010100
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
5431,64 → 5312,64
01010101
01010101
01010101
01010100
00000000
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011010
00000010
10101010
01010100
10101010
01011001
01010110
10101010
01010010
10101000
00000000
01010010
10100001
01010101
01100101
01010110
01001010
10000101
01010101
01100101
01010110
01001010
10000101
01010101
01001010
10000101
01010101
01010110
01001010
00010101
01010101
01001010
00010101
01010101
01010110
01001010
00010101
01010101
01001010
10000101
01010101
01010110
01001010
10000101
01010101
01001010
10000101
01010101
01010110
01010010
10100001
01010101
01010010
10101000
00000000
01010100
00101010
10101010
01010101
01011001
01000000
10101000
01010101
01010101
01011001
01010101
01010101
01100101
01010101
01010110
10010101
01010101
01010101
01010101
5496,11 → 5377,58
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
5511,143 → 5439,187
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
01011010
01001010
10000101
00010101
01010010
10000101
00010101
01001010
10000101
10000000
00001010
10000101
10101010
10101001
10101010
00010101
10101010
10100000
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01011010
01000000
00000000
00000001
01001010
10101010
10101001
10101000
01001010
10101010
10101010
01001010
00000000
00001010
01001010
00010101
01010010
01001010
00010101
01010010
01001010
00010101
01010100
01001010
00010101
01010100
01001010
00010101
01010101
01001010
00010101
01010101
01001010
00010101
01010101
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
01001010
00010101
01010100
01001010
00010101
01010100
01001010
00010101
01010010
01001010
00010101
01010010
01001010
00000000
00001010
01001010
10101010
10101010
01010110
01001010
10101010
10100000
01010101
01100101
01010110
01010101
01100101
01010110
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
01100101
01010101
01010101
10010101
00010101
01010101
01010101
10010101
10000101
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
5654,33 → 5626,66
01010101
01010101
01010101
01010110
01101010
10010101
01010110
01010101
01100101
01010110
01010101
01010101
01010110
01010101
01010101
01010110
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01100101
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
01010101
01010110
10010101
01101010
10101001
01010101
01010101
01010101
5691,320 → 5696,250
01010101
01010101
01010101
00000000
00010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01010101
01101010
00000000
00010101
00000000
10101010
10101001
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
01010101
00101000
10000101
01010101
01011001
00101000
10000101
01010101
00101000
10000101
01010101
01100101
00101000
10000101
01010101
00101010
00000101
01010101
01100101
00000000
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
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
00101000
10101010
01101010
10010101
01010110
01010110
01010101
01011001
01010110
00101000
00101010
01010101
01100101
01010110
00101000
00101010
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
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
00010010
10101010
00000101
00010010
10000010
10000101
00010010
10000010
10000101
00010010
10000100
10100001
00010010
10000100
00000001
00010010
10000000
01010101
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
00010000
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
6016,10 → 5951,60
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
6027,73 → 6012,63
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
01100101
00000101
01010101
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
00000000
10100000
01010100
10101010
10100101
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
01010101
01010101
01010101
6103,31 → 6078,67
01010101
01010101
01010101
01101010
10101010
10101010
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
01010101
01010101
01011001
00010101
01000000
00000000
10000001
01001010
10101000
10100001
01001010
00000000
10100001
01001010
00010101
00100001
01001010
00010101
00101000
01001010
00010101
00000000
01001010
00000000
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
6141,17 → 6152,6
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
// Thu, 31 Mar 2011 11:55:52 +0200
// Wed, 21 Sep 2011 13:46:48 +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, 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};
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};
 
 
// 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 = {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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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 = {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};
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};
 
 
// 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 = {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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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, 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};
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};
 
 
// 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 = {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};
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};
 
 
// 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 = {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};
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};
 
 
// 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, 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};
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};
 
 
// 0 ------------
5924,6 → 5924,7
// 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,13 → 51,12
 
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, 2, PSTR("Loading from EEPROM")); // Loading data
if (verbose) write_ascii_string_pgm(2, 6, 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);
66,7 → 65,7
scope[i] = eeprom_read_byte(&ee_COSD_SCOPE[i]);
}
} else {
if (verbose) write_ascii_string_pgm(2, 2, PSTR("No Data in EEPROM")); // Loading data
if (verbose) write_ascii_string_pgm(2, 6, PSTR("No Data in EEPROM")); // Loading data
}
}
 
89,13 → 88,27
*/
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, 3, PSTR("FC only Mode"));
write_ascii_string_pgm(2, 4, PSTR("FC only Mode"));
#else
write_ascii_string_pgm(2, 3, PSTR("NaviCtrl Mode"));
write_ascii_string_pgm(2, 4, PSTR("NaviCtrl Mode"));
 
usart1_EnableTXD();
usart1_puts_pgm(PSTR(REQUEST_UART_TO_FC));
110,9 → 123,9
paramset_serial setting;
setting = *((paramset_serial*)pRxData);
 
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);
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);
 
uint8_t cells = 0;
write_ascii_string_pgm(2, 8, PSTR("Battery:")); // Guessing Number of Cells
145,14 → 158,7
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,7 → 25,8
TARGET = C-OSD.elf
CC = avr-gcc
AVRDUDE = avrdude
ISPTYPE = usbasp
#ISPTYPE = usbasp
ISPTYPE = avrispmkII
ISPPORT = usb
 
 
/C-OSD/trunk/osd-logo.png
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/C-OSD/trunk/osd_helpers.c
101,7 → 101,26
//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
* ##########################################################################*/
 
312,51 → 331,53
#if FCONLY
#else
uint8_t line = 3;
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
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
 
draw_logo(19, 4);
 
if (COSD_FLAGS_CONFIG & COSD_FLAG_FEET) {
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
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
} else {
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_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_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
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
if ((COSD_FLAGS_RUNTIME & COSD_FLAG_STROMREC) || (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT)) {
write_ascii_string_pgm(1, ++line, PSTR("max current :")); // ampere
write_ascii_string_pgm(1, ++line, PSTR("max curr:")); // ampere
write_ndigit_number_u_10th(16, line, max_ampere / 10, 3, 0);
write_char_xy(20, line, 0x9F); // small A
write_char_xy(17, 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(21, line, (ampere_wasted / 10) - wasted_ampere_offset, 5, 0);
write_ndigit_number_u(18, line, (ampere_wasted / 10) - wasted_ampere_offset, 5, 0);
} else if (COSD_FLAGS_MODES & COSD_FLAG_FCCURRENT) {
 
write_ndigit_number_u(21, line, naviData.UsedCapacity - wasted_ampere_offset, 5, 0);
write_ndigit_number_u(18, line, naviData.UsedCapacity - wasted_ampere_offset, 5, 0);
}
 
write_char_xy(26, line, 0xB5); // mah
write_char_xy(23, line, 0xB5); // mah
}
write_ascii_string_pgm(1, ++line, PSTR("max Time:")); // max time
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);
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);
#endif
}
 
/C-OSD/trunk/osd_helpers.h
49,6 → 49,11
*/
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
* ##########################################################################*/