1 // kln89_symbols.hxx - pixel-encoded symbols for the KLN89 GPS unit simulation.
3 // Written by David Luff, started 2005.
5 // Copyright (C) 2005 David C Luff: daveluff --AT-- ntlworld --D0T-- com
7 // This program is free software; you can redistribute it and/or
8 // modify it under the terms of the GNU General Public License as
9 // published by the Free Software Foundation; either version 2 of the
10 // License, or (at your option) any later version.
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 // General Public License for more details.
17 // You should have received a copy of the GNU General Public License
18 // along with this program; if not, write to the Free Software
19 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
23 const char NumbersBold[][8] = {{0x1E, 0x3F, 0x33, 0x33, 0x33, 0x33, 0x3F, 0x1E}, // 0
24 {0x0C, 0x1C, 0x1C, 0x0C, 0x0C, 0x0C, 0x1E, 0x1E}, // 1
25 {0x1E, 0x3F, 0x33, 0x03, 0x06, 0x1C, 0x3F, 0x3F}, // 2
26 {0x3E, 0x3F, 0x03, 0x1F, 0x1E, 0x03, 0x3F, 0x3E}, // 3
27 {0x06, 0x0E, 0x16, 0x26, 0x3F, 0x3F, 0x06, 0x06}, // 4
28 {0x3F, 0x3F, 0x30, 0x3E, 0x3F, 0x03, 0x3F, 0x3E}, // 5
29 {0x0E, 0x1E, 0x30, 0x3E, 0x3F, 0x33, 0x3F, 0x1E}, // 6
30 {0x3F, 0x3F, 0x03, 0x06, 0x0C, 0x18, 0x18, 0x18}, // 7
31 {0x1E, 0x3F, 0x33, 0x3F, 0x1E, 0x33, 0x3F, 0x1E}, // 8
32 {0x1E, 0x3F, 0x33, 0x3F, 0x1F, 0x03, 0x1E, 0x1C}}; // 9
34 const char UpperAlpha[][8] = {{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // !
35 {0x00, 0x1B, 0x09, 0x12, 0x00, 0x00, 0x00, 0x00}, // "
36 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // #
37 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // $
38 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // %
39 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // &
40 {0x00, 0x06, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00}, // '
41 {0x00, 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02}, // (
42 {0x00, 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08}, // )
43 {0x00, 0x00, 0x0A, 0x04, 0x1F, 0x04, 0x0A, 0x00}, // *
44 {0x00, 0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00}, // +
45 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ,
46 {0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00}, // -
47 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C}, // .
48 {0x00, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00}, // /
49 {0x00, 0x0E, 0x11, 0x13, 0x15, 0x19, 0x11, 0x0E}, // 0
50 {0x00, 0x04, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x0E}, // 1
51 {0x00, 0x0E, 0x11, 0x01, 0x02, 0x04, 0x08, 0x1F}, // 2
52 {0x00, 0x0E, 0x11, 0x01, 0x0E, 0x01, 0x11, 0x0E}, // 3
53 {0x00, 0x02, 0x06, 0x0A, 0x12, 0x1F, 0x02, 0x02}, // 4
54 {0x00, 0x1F, 0x10, 0x1E, 0x01, 0x01, 0x11, 0x0E}, // 5
55 {0x00, 0x06, 0x08, 0x10, 0x1E, 0x11, 0x11, 0x0E}, // 6
56 {0x00, 0x1F, 0x01, 0x02, 0x04, 0x08, 0x08, 0x08}, // 7
57 {0x00, 0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E}, // 8
58 {0x00, 0x0E, 0x11, 0x11, 0x0F, 0x01, 0x02, 0x0C}, // 9
59 {0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x0C, 0x0C}, // :
60 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ;
61 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // <
62 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // =
63 {0x00, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10}, // >
64 {0x00, 0x0E, 0x11, 0x01, 0x02, 0x04, 0x00, 0x04}, // ?
65 {0x00, 0x0E, 0x11, 0x17, 0x15, 0x17, 0x10, 0x0F}, // @
66 {0x00, 0x0E, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11}, // A
67 {0x00, 0x1E, 0x11, 0x11, 0x1E, 0x11, 0x11, 0x1E}, // B
68 {0x00, 0x0E, 0x11, 0x10, 0x10, 0x10, 0x11, 0x0E}, // C
69 {0x00, 0x1C, 0x12, 0x11, 0x11, 0x11, 0x12, 0x1C}, // D
70 {0x00, 0x1F, 0x10, 0x10, 0x1E, 0x10, 0x10, 0x1F}, // E
71 {0x00, 0x1F, 0x10, 0x10, 0x1E, 0x10, 0x10, 0x10}, // F
72 {0x00, 0x0E, 0x11, 0x10, 0x10, 0x17, 0x11, 0x0E}, // G
73 {0x00, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11}, // H
74 {0x00, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E}, // I
75 {0x00, 0x07, 0x02, 0x02, 0x02, 0x02, 0x12, 0x0C}, // J
76 {0x00, 0x11, 0x12, 0x14, 0x18, 0x14, 0x12, 0x11}, // K
77 {0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1F}, // L
78 {0x00, 0x11, 0x1B, 0x15, 0x15, 0x11, 0x11, 0x11}, // M
79 {0x00, 0x11, 0x11, 0x19, 0x15, 0x13, 0x11, 0x11}, // N
80 {0x00, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E}, // O
81 {0x00, 0x1E, 0x11, 0x11, 0x1E, 0x10, 0x10, 0x10}, // P
82 {0x00, 0x0E, 0x11, 0x11, 0x11, 0x15, 0x12, 0x0D}, // Q
83 {0x00, 0x1E, 0x11, 0x11, 0x1E, 0x14, 0x12, 0x11}, // R
84 {0x00, 0x0F, 0x10, 0x10, 0x0E, 0x01, 0x01, 0x1E}, // S
85 {0x00, 0x1F, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04}, // T
86 {0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E}, // U
87 {0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0A, 0x04}, // V
88 {0x00, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0A}, // W
89 {0x00, 0x11, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x11}, // X
90 {0x00, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x04, 0x04}, // Y
91 {0x00, 0x1F, 0x01, 0x02, 0x04, 0x08, 0x10, 0x1F}, // Z
92 {0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E}, // [
93 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, /* \ */ // Have to be carefull with forward slash - it's multiline comment!
94 {0x00, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1E}, // ]
95 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ^
96 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F}, // _
97 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // `
98 {0x00, 0x00, 0x00, 0x0E, 0x01, 0x0F, 0x11, 0x0F}, // a
99 {0x00, 0x10, 0x10, 0x10, 0x16, 0x19, 0x11, 0x1E}, // b
100 {0x00, 0x00, 0x00, 0x0E, 0x10, 0x10, 0x10, 0x0E}, // c
101 {0x00, 0x01, 0x01, 0x01, 0x0D, 0x13, 0x11, 0x0F}, // d
102 {0x00, 0x00, 0x00, 0x0E, 0x11, 0x1F, 0x10, 0x0E}, // e
103 {0x00, 0x06, 0x09, 0x08, 0x1C, 0x08, 0x08, 0x08}, // f
104 {0x00, 0x00, 0x0E, 0x11, 0x11, 0x0F, 0x01, 0x0E}, // g
105 {0x00, 0x10, 0x10, 0x16, 0x19, 0x11, 0x11, 0x11}, // h
106 {0x00, 0x04, 0x00, 0x0C, 0x04, 0x04, 0x04, 0x0E}, // i
107 {0x00, 0x02, 0x00, 0x06, 0x02, 0x02, 0x12, 0x0C}, // j (Never found j - this is a guess!)
108 {0x00, 0x10, 0x10, 0x11, 0x12, 0x1C, 0x12, 0x11}, // k
109 {0x00, 0x0C, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E}, // l
110 {0x00, 0x00, 0x00, 0x1A, 0x15, 0x11, 0x11, 0x11}, // m
111 {0x00, 0x00, 0x00, 0x16, 0x19, 0x11, 0x11, 0x11}, // n
112 {0x00, 0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E}, // o
113 {0x00, 0x00, 0x00, 0x1E, 0x11, 0x1E, 0x10, 0x10}, // p
114 {0x00, 0x00, 0x00, 0x0F, 0x11, 0x0F, 0x01, 0x01}, // q
115 {0x00, 0x00, 0x00, 0x16, 0x19, 0x10, 0x10, 0x10}, // r
116 {0x00, 0x00, 0x00, 0x0E, 0x10, 0x0E, 0x01, 0x0E}, // s
117 {0x00, 0x08, 0x08, 0x1C, 0x08, 0x08, 0x09, 0x06}, // t
118 {0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x13, 0x0D}, // u
119 {0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0A, 0x04}, // v
120 {0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x15, 0x0A}, // w
121 {0x00, 0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11}, // x
122 {0x00, 0x00, 0x00, 0x11, 0x11, 0x0F, 0x01, 0x0E}, // y
123 {0x00, 0x00, 0x00, 0x1F, 0x02, 0x04, 0x08, 0x1F}}; // z
125 const char SpecialChar[][8] = {{0x00, 0x04, 0x0A, 0x04, 0x00, 0x00, 0x00, 0x00}, // 0: degrees sign
126 {0x00, 0x00, 0x00, 0x04, 0x0E, 0x04, 0x00, 0x00}, // 1: Smaller plus sign
127 {0x00, 0x00, 0x00, 0x08, 0x1C, 0x08, 0x00, 0x00}, // 2: Left-shifted smaller plus sign
128 {0x00, 0x00, 0x04, 0x06, 0x3F, 0x06, 0x04, 0x00}, // 3: Active arrow
129 {0x00, 0x00, 0x04, 0x06, 0x1F, 0x06, 0x04, 0x00}, // 4: Slightly shorter active arrow
130 {0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 0x1F}, // 5: +- sign.
131 {0x00, 0x1E, 0x11, 0x11, 0x3F, 0x11, 0x11, 0x1E}, // 6: the barred 'D' of the DTO symbol
132 {0x00, 0x00, 0x04, 0x0C, 0x1F, 0x0C, 0x04, 0x00}}; // 7: Left pointing arrow.
134 // For small char, the first char is the number of pixels horizontally that are used for drawing,
135 // since these chars are not fixed width. (Used for the labels in the moving map display).
136 // The hex values are referenced from the right-most pixel position, and the chars are 5 pixels high (last 5 chars).
137 const char SmallChar[][8] = {{0x03, 0x00, 0x00, 0x07, 0x05, 0x05, 0x05, 0x07}, // 0
138 {0x03, 0x00, 0x00, 0x02, 0x06, 0x02, 0x02, 0x07}, // 1
139 {0x03, 0x00, 0x00, 0x06, 0x01, 0x02, 0x04, 0x07}, // 2
140 {0x03, 0x00, 0x00, 0x07, 0x01, 0x03, 0x01, 0x07}, // 3
141 {0x03, 0x00, 0x00, 0x01, 0x03, 0x05, 0x07, 0x01}, // 4
142 {0x03, 0x00, 0x00, 0x07, 0x04, 0x07, 0x01, 0x07}, // 5
143 {0x03, 0x00, 0x00, 0x07, 0x04, 0x07, 0x05, 0x07}, // 6
144 {0x03, 0x00, 0x00, 0x07, 0x01, 0x02, 0x02, 0x02}, // 7
145 {0x03, 0x00, 0x00, 0x07, 0x05, 0x07, 0x05, 0x07}, // 8
146 {0x03, 0x00, 0x00, 0x07, 0x05, 0x07, 0x01, 0x07}, // 9
147 {0x03, 0x00, 0x00, 0x02, 0x05, 0x05, 0x07, 0x05}, // A
148 {0x03, 0x00, 0x00, 0x06, 0x05, 0x06, 0x05, 0x06}, // B
149 {0x03, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x03}, // C
150 {0x04, 0x00, 0x00, 0x0E, 0x09, 0x09, 0x09, 0x0E}, // D
151 {0x03, 0x00, 0x00, 0x07, 0x04, 0x06, 0x04, 0x07}, // E
152 {0x03, 0x00, 0x00, 0x07, 0x04, 0x06, 0x04, 0x04}, // F
153 {0x04, 0x00, 0x00, 0x06, 0x08, 0x0B, 0x09, 0x06}, // G
154 {0x03, 0x00, 0x00, 0x05, 0x05, 0x07, 0x05, 0x05}, // H
155 {0x03, 0x00, 0x00, 0x07, 0x02, 0x02, 0x02, 0x07}, // I
156 {0x04, 0x00, 0x00, 0x01, 0x01, 0x01, 0x09, 0x06}, // J
157 {0x04, 0x00, 0x00, 0x09, 0x0A, 0x0C, 0x0A, 0x09}, // K
158 {0x03, 0x00, 0x00, 0x04, 0x04, 0x04, 0x04, 0x07}, // L
159 {0x05, 0x00, 0x00, 0x11, 0x1B, 0x15, 0x11, 0x11}, // M
160 {0x04, 0x00, 0x00, 0x09, 0x0D, 0x0F, 0x0B, 0x09}, // N
161 {0x04, 0x00, 0x00, 0x06, 0x09, 0x09, 0x09, 0x06}, // O
162 {0x03, 0x00, 0x00, 0x07, 0x05, 0x07, 0x04, 0x04}, // P
163 {0x04, 0x00, 0x00, 0x06, 0x09, 0x09, 0x0B, 0x07}, // Q
164 {0x04, 0x00, 0x00, 0x0E, 0x09, 0x0E, 0x0A, 0x09}, // R
165 {0x04, 0x00, 0x00, 0x07, 0x08, 0x06, 0x01, 0x0E}, // S
166 {0x03, 0x00, 0x00, 0x07, 0x02, 0x02, 0x02, 0x02}, // T
167 {0x03, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x07}, // U
168 {0x03, 0x00, 0x00, 0x05, 0x05, 0x05, 0x05, 0x02}, // V
169 {0x05, 0x00, 0x00, 0x11, 0x11, 0x11, 0x15, 0x0A}, // W
170 {0x03, 0x00, 0x00, 0x05, 0x05, 0x02, 0x05, 0x05}, // X
171 {0x03, 0x00, 0x00, 0x05, 0x05, 0x07, 0x02, 0x02}, // Y
172 {0x03, 0x00, 0x00, 0x07, 0x01, 0x02, 0x04, 0x07}}; // Z