Made MD* libraries (Parola, MAX72XX) project specific, to be able to use the newest software version from github.
This commit is contained in:
Binary file not shown.
2118
lib/MD_MAX72XX/Font Builder/LCD5x7_fixed_single.txt
Normal file
2118
lib/MD_MAX72XX/Font Builder/LCD5x7_fixed_single.txt
Normal file
File diff suppressed because it is too large
Load Diff
2449
lib/MD_MAX72XX/Font Builder/arabic_var_single.txt
Normal file
2449
lib/MD_MAX72XX/Font Builder/arabic_var_single.txt
Normal file
File diff suppressed because it is too large
Load Diff
681
lib/MD_MAX72XX/Font Builder/greek_var_single.txt
Normal file
681
lib/MD_MAX72XX/Font Builder/greek_var_single.txt
Normal file
@@ -0,0 +1,681 @@
|
||||
.NAME greek_var_single
|
||||
.FONT_HEIGHT 8
|
||||
.HEIGHT 1
|
||||
.WIDTH 0
|
||||
.CHAR 32
|
||||
.NOTE 'space'
|
||||
.WIDTH 2
|
||||
|
||||
.CHAR 33
|
||||
.WIDTH 0
|
||||
.CHAR 128
|
||||
.NOTE 'ALPHA'
|
||||
*
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 129
|
||||
.NOTE 'BETA'
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 130
|
||||
.NOTE 'GAMMA'
|
||||
*****
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 131
|
||||
.NOTE 'DELTA'
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 132
|
||||
.NOTE 'EPSILON'
|
||||
*****
|
||||
*
|
||||
*
|
||||
****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 133
|
||||
.NOTE 'ZETA'
|
||||
*****
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 134
|
||||
.NOTE 'ETA'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 135
|
||||
.NOTE 'THETA'
|
||||
***
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 136
|
||||
.NOTE 'IOTA'
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 137
|
||||
.NOTE 'KAPPA'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
**
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 138
|
||||
.NOTE 'LAMBDA'
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 139
|
||||
.NOTE 'MU'
|
||||
* *
|
||||
** **
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 140
|
||||
.NOTE 'NU'
|
||||
* *
|
||||
** *
|
||||
* * *
|
||||
* **
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 141
|
||||
.NOTE 'XI'
|
||||
*****
|
||||
* *
|
||||
|
||||
***
|
||||
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 142
|
||||
.NOTE 'OMICRON'
|
||||
***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 143
|
||||
.NOTE 'PI'
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 144
|
||||
.NOTE 'RHO'
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 145
|
||||
.NOTE 'SIGMA'
|
||||
*****
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 146
|
||||
.NOTE 'TAU'
|
||||
*****
|
||||
* * *
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 147
|
||||
.NOTE 'UPSILON'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 148
|
||||
.NOTE 'PHI'
|
||||
***
|
||||
*
|
||||
***
|
||||
* * *
|
||||
***
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 149
|
||||
.NOTE 'CHI'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 150
|
||||
.NOTE 'PSI'
|
||||
* * *
|
||||
* * *
|
||||
* * *
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 151
|
||||
.NOTE 'OMEGA'
|
||||
***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
** **
|
||||
|
||||
.CHAR 152
|
||||
.NOTE 'alpha'
|
||||
|
||||
|
||||
*
|
||||
* * *
|
||||
* *
|
||||
* *
|
||||
** *
|
||||
|
||||
.CHAR 153
|
||||
.NOTE 'beta'
|
||||
|
||||
|
||||
**
|
||||
* *
|
||||
***
|
||||
* *
|
||||
***
|
||||
*
|
||||
.CHAR 154
|
||||
.NOTE 'gamma'
|
||||
|
||||
* *
|
||||
* *
|
||||
*
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 155
|
||||
.NOTE 'delta'
|
||||
**
|
||||
*
|
||||
*
|
||||
**
|
||||
* *
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 156
|
||||
.NOTE 'epsilon'
|
||||
|
||||
|
||||
***
|
||||
*
|
||||
**
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 157
|
||||
.NOTE 'zeta'
|
||||
|
||||
****
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
*
|
||||
**
|
||||
.CHAR 158
|
||||
.NOTE 'eta'
|
||||
|
||||
|
||||
* *
|
||||
** *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
.CHAR 159
|
||||
.NOTE 'theta'
|
||||
|
||||
|
||||
***
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 160
|
||||
.NOTE 'iota'
|
||||
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 161
|
||||
.NOTE 'kappa'
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
**
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 162
|
||||
.NOTE 'lambda'
|
||||
**
|
||||
* *
|
||||
*
|
||||
** *
|
||||
* **
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 163
|
||||
.NOTE 'mu'
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
* **
|
||||
*** *
|
||||
* *
|
||||
*
|
||||
.CHAR 164
|
||||
.NOTE 'nu'
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 165
|
||||
.NOTE 'xi'
|
||||
|
||||
***
|
||||
*
|
||||
***
|
||||
*
|
||||
***
|
||||
*
|
||||
*
|
||||
.CHAR 166
|
||||
.NOTE 'omicron'
|
||||
|
||||
|
||||
***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 167
|
||||
.NOTE 'pi'
|
||||
|
||||
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 168
|
||||
.NOTE 'rho'
|
||||
|
||||
|
||||
**
|
||||
* *
|
||||
* *
|
||||
***
|
||||
*
|
||||
*
|
||||
.CHAR 169
|
||||
.NOTE 'sigma'
|
||||
|
||||
|
||||
****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 170
|
||||
.NOTE 'sigma (final)'
|
||||
|
||||
|
||||
****
|
||||
*
|
||||
***
|
||||
*
|
||||
****
|
||||
|
||||
.CHAR 171
|
||||
.NOTE 'tau'
|
||||
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 172
|
||||
.NOTE 'upsilon'
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 173
|
||||
.NOTE 'phi'
|
||||
|
||||
*
|
||||
* * *
|
||||
* * *
|
||||
***
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 174
|
||||
.NOTE 'chi'
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
*
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 175
|
||||
.NOTE 'psi'
|
||||
|
||||
|
||||
* * *
|
||||
* * *
|
||||
***
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 224
|
||||
.NOTE 'omega'
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
|
||||
.CHAR 225
|
||||
.NOTE 'alpha tonos'
|
||||
*
|
||||
|
||||
*
|
||||
* * *
|
||||
* *
|
||||
* *
|
||||
** *
|
||||
|
||||
.CHAR 226
|
||||
.NOTE 'epsilon tonos'
|
||||
*
|
||||
|
||||
***
|
||||
*
|
||||
**
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 227
|
||||
.NOTE 'eta tonos'
|
||||
*
|
||||
|
||||
* *
|
||||
** *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
.CHAR 228
|
||||
.NOTE 'iota dialytika'
|
||||
* *
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 229
|
||||
.NOTE 'iota tonos'
|
||||
*
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 230
|
||||
.NOTE 'omicron tonos'
|
||||
*
|
||||
|
||||
***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 231
|
||||
.NOTE 'upsilon tonos'
|
||||
*
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 232
|
||||
.NOTE 'upsilon dialytika'
|
||||
* *
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 233
|
||||
.NOTE 'omega tonos'
|
||||
*
|
||||
|
||||
* *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
|
||||
.CHAR 234
|
||||
.NOTE 'ALPHA tonos'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 235
|
||||
.NOTE 'EPSILON'
|
||||
*****
|
||||
*
|
||||
*
|
||||
****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 236
|
||||
.NOTE 'ETA tonos'
|
||||
** *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 237
|
||||
.NOTE 'IOTA tonos'
|
||||
* **
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 238
|
||||
.NOTE 'OMICRON tonos'
|
||||
* **
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 239
|
||||
.NOTE 'UPSILON tonos'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 240
|
||||
.NOTE 'OMEGA tonos'
|
||||
* ***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
** **
|
||||
|
||||
.CHAR 244
|
||||
.NOTE 'IOTA dialytika'
|
||||
* *
|
||||
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 245
|
||||
.NOTE 'UPSILON dialytika'
|
||||
* *
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
|
||||
.END
|
908
lib/MD_MAX72XX/Font Builder/katakana_var_single.txt
Normal file
908
lib/MD_MAX72XX/Font Builder/katakana_var_single.txt
Normal file
@@ -0,0 +1,908 @@
|
||||
.NAME katakana_var_single
|
||||
.FONT_HEIGHT 8
|
||||
.HEIGHT 1
|
||||
.WIDTH 0
|
||||
.CHAR 32
|
||||
.WIDTH 2
|
||||
.NOTE 'space'
|
||||
|
||||
.CHAR 33
|
||||
.WIDTH 0
|
||||
.CHAR 161
|
||||
|
||||
|
||||
|
||||
|
||||
***
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 162
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 163
|
||||
|
||||
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 164
|
||||
|
||||
|
||||
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 165
|
||||
.NOTE 'Center dot'
|
||||
|
||||
|
||||
**
|
||||
**
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 166
|
||||
.NOTE 'wo'
|
||||
|
||||
*****
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 167
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
**
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 168
|
||||
|
||||
*
|
||||
*
|
||||
**
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 169
|
||||
|
||||
|
||||
*
|
||||
*****
|
||||
* *
|
||||
*
|
||||
**
|
||||
|
||||
.CHAR 170
|
||||
|
||||
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 171
|
||||
|
||||
|
||||
*
|
||||
*****
|
||||
**
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 172
|
||||
|
||||
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 173
|
||||
|
||||
|
||||
|
||||
***
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 174
|
||||
|
||||
|
||||
*****
|
||||
*
|
||||
*****
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 175
|
||||
|
||||
|
||||
|
||||
* * *
|
||||
* * *
|
||||
*
|
||||
**
|
||||
|
||||
.CHAR 176
|
||||
.NOTE 'Extender'
|
||||
|
||||
|
||||
|
||||
*****
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 177
|
||||
.NOTE 'a'
|
||||
*****
|
||||
*
|
||||
* *
|
||||
**
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 178
|
||||
.NOTE 'i'
|
||||
*
|
||||
*
|
||||
*
|
||||
**
|
||||
* *
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 179
|
||||
.NOTE 'u'
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 180
|
||||
.NOTE 'e'
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 181
|
||||
.NOTE 'o'
|
||||
*
|
||||
*****
|
||||
*
|
||||
**
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 182
|
||||
.NOTE 'ka'
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 183
|
||||
.NOTE 'ki'
|
||||
*
|
||||
*****
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 184
|
||||
.NOTE 'ku'
|
||||
|
||||
****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
**
|
||||
|
||||
.CHAR 185
|
||||
.NOTE 'ke'
|
||||
*
|
||||
****
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 186
|
||||
.NOTE 'ko'
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 187
|
||||
.NOTE 'sa'
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 188
|
||||
.NOTE 'shi'
|
||||
|
||||
**
|
||||
*
|
||||
** *
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 189
|
||||
.NOTE 'su'
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 190
|
||||
.NOTE 'se'
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 191
|
||||
.NOTE 'so'
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
**
|
||||
|
||||
.CHAR 192
|
||||
.NOTE 'ta'
|
||||
|
||||
****
|
||||
* *
|
||||
* * *
|
||||
**
|
||||
*
|
||||
**
|
||||
|
||||
.CHAR 193
|
||||
.NOTE 'chi'
|
||||
*
|
||||
***
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 194
|
||||
.NOTE 'tsu'
|
||||
|
||||
* * *
|
||||
* * *
|
||||
* * *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 195
|
||||
.NOTE 'te'
|
||||
***
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 196
|
||||
.NOTE 'to'
|
||||
*
|
||||
*
|
||||
*
|
||||
**
|
||||
* *
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 197
|
||||
.NOTE 'na'
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 198
|
||||
.NOTE 'ni'
|
||||
|
||||
|
||||
***
|
||||
|
||||
|
||||
*****
|
||||
|
||||
|
||||
.CHAR 199
|
||||
.NOTE 'nu'
|
||||
|
||||
*****
|
||||
*
|
||||
* *
|
||||
*
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 200
|
||||
.NOTE 'ne'
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
***
|
||||
* * *
|
||||
*
|
||||
|
||||
.CHAR 201
|
||||
.NOTE 'no'
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 202
|
||||
.NOTE 'ha'
|
||||
|
||||
*
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 203
|
||||
.NOTE 'hi'
|
||||
*
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
*
|
||||
****
|
||||
|
||||
.CHAR 204
|
||||
.NOTE 'fu'
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
**
|
||||
|
||||
.CHAR 205
|
||||
.NOTE 'he'
|
||||
|
||||
*
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
|
||||
.CHAR 206
|
||||
.NOTE 'ho'
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
* * *
|
||||
* * *
|
||||
*
|
||||
|
||||
.CHAR 207
|
||||
.NOTE 'ma'
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
* *
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 208
|
||||
.NOTE 'mi'
|
||||
|
||||
****
|
||||
|
||||
****
|
||||
*
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 209
|
||||
.NOTE 'mu'
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
*****
|
||||
*
|
||||
|
||||
.CHAR 210
|
||||
.NOTE 'me'
|
||||
|
||||
*
|
||||
*
|
||||
* *
|
||||
*
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 211
|
||||
.NOTE 'mo'
|
||||
|
||||
*****
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 212
|
||||
.NOTE 'ye'
|
||||
*
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 213
|
||||
.NOTE 'yu'
|
||||
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
******
|
||||
|
||||
.CHAR 214
|
||||
.NOTE 'yo'
|
||||
|
||||
*****
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 215
|
||||
.NOTE 'ra'
|
||||
***
|
||||
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 216
|
||||
.NOTE 'ri'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 217
|
||||
.NOTE 'ru'
|
||||
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
* **
|
||||
|
||||
.CHAR 218
|
||||
.NOTE 're'
|
||||
|
||||
*
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 219
|
||||
.NOTE 'ro'
|
||||
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 220
|
||||
.NOTE 'wa'
|
||||
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 221
|
||||
.NOTE 'n'
|
||||
|
||||
**
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 222
|
||||
|
||||
*
|
||||
* *
|
||||
*
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 223
|
||||
|
||||
***
|
||||
* *
|
||||
***
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 224
|
||||
|
||||
|
||||
* *
|
||||
* * *
|
||||
* *
|
||||
* *
|
||||
** *
|
||||
|
||||
.CHAR 225
|
||||
* *
|
||||
|
||||
***
|
||||
*
|
||||
****
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 226
|
||||
|
||||
***
|
||||
* *
|
||||
****
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
.CHAR 227
|
||||
|
||||
|
||||
***
|
||||
*
|
||||
**
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 228
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
* **
|
||||
*** *
|
||||
*
|
||||
*
|
||||
.CHAR 229
|
||||
|
||||
|
||||
****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 230
|
||||
|
||||
|
||||
**
|
||||
* *
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
.CHAR 231
|
||||
|
||||
|
||||
|
||||
****
|
||||
* *
|
||||
****
|
||||
*
|
||||
***
|
||||
.CHAR 232
|
||||
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 233
|
||||
|
||||
*
|
||||
** *
|
||||
*
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 234
|
||||
|
||||
*
|
||||
|
||||
**
|
||||
*
|
||||
*
|
||||
* *
|
||||
**
|
||||
.CHAR 235
|
||||
* *
|
||||
*
|
||||
* *
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 236
|
||||
|
||||
*
|
||||
***
|
||||
* *
|
||||
* * *
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 237
|
||||
*
|
||||
*
|
||||
***
|
||||
*
|
||||
***
|
||||
*
|
||||
****
|
||||
|
||||
.CHAR 238
|
||||
***
|
||||
|
||||
* **
|
||||
** *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 239
|
||||
* *
|
||||
|
||||
***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 240
|
||||
|
||||
|
||||
* **
|
||||
** *
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
.CHAR 241
|
||||
|
||||
|
||||
** *
|
||||
* **
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
.CHAR 242
|
||||
***
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 243
|
||||
|
||||
|
||||
|
||||
* **
|
||||
* * *
|
||||
** *
|
||||
|
||||
|
||||
.CHAR 244
|
||||
|
||||
|
||||
***
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
** **
|
||||
|
||||
.CHAR 245
|
||||
* *
|
||||
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* **
|
||||
** *
|
||||
|
||||
.CHAR 246
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 247
|
||||
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* **
|
||||
|
||||
.CHAR 248
|
||||
*****
|
||||
|
||||
* *
|
||||
* *
|
||||
*
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 249
|
||||
|
||||
|
||||
|
||||
* *
|
||||
* *
|
||||
****
|
||||
*
|
||||
***
|
||||
.CHAR 250
|
||||
|
||||
*
|
||||
****
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 251
|
||||
.NOTE 'Exit (jap)'
|
||||
|
||||
|
||||
*****
|
||||
*
|
||||
****
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 252
|
||||
.NOTE 'Entrance (jap)'
|
||||
|
||||
|
||||
*****
|
||||
* * *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 253
|
||||
.NOTE 'divide'
|
||||
|
||||
*
|
||||
|
||||
*****
|
||||
|
||||
*
|
||||
|
||||
|
||||
.CHAR 255
|
||||
.NOTE '5x7 block'
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
.END
|
11
lib/MD_MAX72XX/Font Builder/make_font.bat
Normal file
11
lib/MD_MAX72XX/Font Builder/make_font.bat
Normal file
@@ -0,0 +1,11 @@
|
||||
txt2font arabic_var_single
|
||||
txt2font greek_var_single
|
||||
txt2font katakana_var_single
|
||||
txt2font LCD5x7_fixed_single
|
||||
txt2font modernArabic_var_single
|
||||
txt2font seg7_fixed_double
|
||||
txt2font seg7_fixed_single
|
||||
txt2font symbol_var_single
|
||||
txt2font sys_fixed_single
|
||||
txt2font sys_var_double
|
||||
txt2font sys_var_single
|
1440
lib/MD_MAX72XX/Font Builder/modernArabic_var_single.txt
Normal file
1440
lib/MD_MAX72XX/Font Builder/modernArabic_var_single.txt
Normal file
File diff suppressed because it is too large
Load Diff
458
lib/MD_MAX72XX/Font Builder/seg7_fixed_double.txt
Normal file
458
lib/MD_MAX72XX/Font Builder/seg7_fixed_double.txt
Normal file
@@ -0,0 +1,458 @@
|
||||
.NAME seg7_fixed_double
|
||||
.FONT_HEIGHT 8
|
||||
.HEIGHT 2
|
||||
.WIDTH 2
|
||||
.CHAR 32
|
||||
.NOTE 'Space'
|
||||
|
||||
.CHAR 46
|
||||
.NOTE '.'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
**
|
||||
**
|
||||
|
||||
|
||||
.CHAR 58
|
||||
.NOTE ':'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
**
|
||||
**
|
||||
|
||||
|
||||
**
|
||||
**
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 124
|
||||
.NOTE '|'
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
.CHAR 48
|
||||
.WIDTH 10
|
||||
.NOTE '0'
|
||||
******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
* *
|
||||
* *
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 49
|
||||
.NOTE '1'
|
||||
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 50
|
||||
.NOTE '2'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
*******
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 51
|
||||
.NOTE '3'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 52
|
||||
.NOTE '4'
|
||||
|
||||
* *
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
*******
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 53
|
||||
.NOTE '5'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
*******
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 54
|
||||
.NOTE '6'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 55
|
||||
.NOTE '7'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 56
|
||||
.NOTE '8'
|
||||
******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 57
|
||||
.NOTE '9'
|
||||
******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
*******
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 65
|
||||
.NOTE 'A'
|
||||
******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
* *
|
||||
|
||||
.CHAR 66
|
||||
.NOTE 'B'
|
||||
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 67
|
||||
.NOTE 'C'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 68
|
||||
.NOTE 'D'
|
||||
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 69
|
||||
.NOTE 'E'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 70
|
||||
.NOTE 'F'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 97
|
||||
.NOTE 'a'
|
||||
******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
* *
|
||||
|
||||
.CHAR 98
|
||||
.NOTE 'b'
|
||||
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 99
|
||||
.NOTE 'c'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 100
|
||||
.NOTE 'd'
|
||||
*
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*******
|
||||
********
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
********
|
||||
******
|
||||
.CHAR 101
|
||||
.NOTE 'e'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
******
|
||||
.CHAR 102
|
||||
.NOTE 'f'
|
||||
******
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
********
|
||||
********
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
*
|
||||
|
||||
.END
|
259
lib/MD_MAX72XX/Font Builder/seg7_fixed_single.txt
Normal file
259
lib/MD_MAX72XX/Font Builder/seg7_fixed_single.txt
Normal file
@@ -0,0 +1,259 @@
|
||||
.NAME seg7_fixed_single
|
||||
.FONT_HEIGHT 8
|
||||
.HEIGHT 1
|
||||
.WIDTH 1
|
||||
.CHAR 32
|
||||
.NOTE 'Space'
|
||||
|
||||
.CHAR 46
|
||||
.NOTE '.'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*
|
||||
|
||||
.CHAR 58
|
||||
.NOTE ':'
|
||||
|
||||
|
||||
*
|
||||
|
||||
*
|
||||
|
||||
|
||||
|
||||
.CHAR 124
|
||||
.NOTE '|'
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 48
|
||||
.WIDTH 5
|
||||
.NOTE '0'
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 49
|
||||
.NOTE '1'
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 50
|
||||
.NOTE '2'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 51
|
||||
.NOTE '3'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 52
|
||||
.NOTE '4'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 53
|
||||
.NOTE '5'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 54
|
||||
.NOTE '6'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 55
|
||||
.NOTE '7'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 56
|
||||
.NOTE '8'
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
|
||||
.CHAR 57
|
||||
.NOTE '9'
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 65
|
||||
.NOTE 'A'
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 66
|
||||
.NOTE 'B'
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 67
|
||||
.NOTE 'C'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 68
|
||||
.NOTE 'D'
|
||||
****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 69
|
||||
.NOTE 'E'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 70
|
||||
.NOTE 'F'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 97
|
||||
.NOTE 'a'
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
|
||||
.CHAR 98
|
||||
.NOTE 'b'
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
* *
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 99
|
||||
.NOTE 'c'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 100
|
||||
.NOTE 'd'
|
||||
****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 101
|
||||
.NOTE 'e'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
|
||||
.CHAR 102
|
||||
.NOTE 'f'
|
||||
*****
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.END
|
280
lib/MD_MAX72XX/Font Builder/src/font2txt/font2txt.c
Normal file
280
lib/MD_MAX72XX/Font Builder/src/font2txt/font2txt.c
Normal file
@@ -0,0 +1,280 @@
|
||||
// Font 2 Text for MD_MAX72xx library
|
||||
//
|
||||
// Quick and not very robust code to create a font defintion text file
|
||||
// from an existing font data table. This is considered a one-off task
|
||||
// followed by some manual editing of the file.
|
||||
// The file is expected to be in the similar format to the output from
|
||||
// txt2font. Specifically,
|
||||
// - it is expected that each character is on one data line in order to
|
||||
// recognise specific parts, like comments.
|
||||
// - it expects all the ascii codes to be present (ie, it does not respect
|
||||
// the version information at the start of the table)
|
||||
//
|
||||
// The shared header file means that some elements in this
|
||||
// code are reversed (eg, the IN file extension is used as the OUT file
|
||||
// extension). Each font element is output as it is completed, without
|
||||
// buffering the while ASCII set.
|
||||
//
|
||||
#include "txt2font.h"
|
||||
|
||||
// Global data ---------------
|
||||
Global_t G;
|
||||
ASCIIDef_t font = { 0 };
|
||||
|
||||
// Code ----------------------
|
||||
void usage(void)
|
||||
{
|
||||
printf("\nusage: font2txt <root_name>\n");
|
||||
printf("\n\ninput file <root_name>.h");
|
||||
printf("\noutput file <root_name>.txt");
|
||||
printf("\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int cmdLine(int argc, char *argv[])
|
||||
// process the command line parameter
|
||||
{
|
||||
if (argc != 2)
|
||||
return(1);
|
||||
|
||||
strcpy(G.fileRoot, argv[1]);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
int initialise(void)
|
||||
// one time initiualisation code
|
||||
{
|
||||
char szFile[FILE_NAME_SIZE];
|
||||
|
||||
// we have no font definition
|
||||
font.comment[0] = NUL;
|
||||
font.size = 0;
|
||||
font.buf = malloc(100*sizeof(font.buf[0])); // pick a big number...
|
||||
|
||||
// open the file for reading
|
||||
strcpy(szFile, G.fileRoot);
|
||||
strcat(szFile, OUT_FILE_EXT);
|
||||
if ((G.fpIn = fopen(szFile, "r")) == NULL)
|
||||
{
|
||||
printf("\nCannot open input ""%s\n""", szFile);
|
||||
return(2);
|
||||
}
|
||||
|
||||
// open the file for writing
|
||||
strcpy(szFile, G.fileRoot);
|
||||
strcat(szFile, IN_FILE_EXT);
|
||||
if ((G.fpOut = fopen(szFile, "w")) == NULL)
|
||||
{
|
||||
printf("\nCannot open output ""%s\n""", szFile);
|
||||
return(3);
|
||||
}
|
||||
|
||||
// other stuff
|
||||
G.name[0] = NUL;
|
||||
G.doubleHeight = 0;
|
||||
G.bufSize = SINGLE_HEIGHT;
|
||||
G.fixedWidth = 0;
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
void trimBuffer(char *buf)
|
||||
// trim the buffer specified of all trailing white space
|
||||
{
|
||||
int i = strlen(buf)-1;
|
||||
|
||||
while (i > 0 && isspace(buf[i]))
|
||||
buf[i--] = NUL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void padBuffer(char *buf, unsigned int len)
|
||||
// pad the supplied buffer with spaces up to the length specified
|
||||
{
|
||||
if (strlen(buf) < len)
|
||||
{
|
||||
for (unsigned int j=strlen(buf); j<len; j++)
|
||||
buf[j] = SPACE;
|
||||
}
|
||||
buf[len] = NUL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned int normaliseBuffers(void)
|
||||
// normalise all the input buffers to the same size
|
||||
{
|
||||
unsigned int max = 0;
|
||||
|
||||
if (G.fixedWidth == 0)
|
||||
{
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
max = max < strlen(G.buf[i]) ? max = strlen(G.buf[i]) : max;
|
||||
}
|
||||
else
|
||||
max = G.fixedWidth;
|
||||
|
||||
// now make them all the same size
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
{
|
||||
padBuffer(G.buf[i], max);
|
||||
}
|
||||
|
||||
return(max);
|
||||
}
|
||||
|
||||
char *getToken(char *buf)
|
||||
// isolate the first token in the buffer and return a pointer to the next non white space after the token
|
||||
{
|
||||
while (isspace(*buf) || ispunct(*buf))
|
||||
buf++;
|
||||
while (!isspace(*buf) && !ispunct(*buf))
|
||||
buf++;
|
||||
*buf++ = NUL;
|
||||
while (isspace(*buf) || ispunct(*buf))
|
||||
buf++;
|
||||
|
||||
return(buf);
|
||||
}
|
||||
|
||||
void saveOutputHeader(void)
|
||||
// save the current definition as a font definition header file
|
||||
{
|
||||
fprintf(G.fpOut, "%c%s %s\n", DOT, CMD_NAME, G.fileRoot);
|
||||
fprintf(G.fpOut, "%c%s %d\n", DOT, CMD_HEIGHT, (G.doubleHeight ? 2: 1));
|
||||
fprintf(G.fpOut, "%c%s %d\n", DOT, CMD_WIDTH, G.fixedWidth);
|
||||
fprintf(G.fpOut, "%c%s %d %s\n", DOT, CMD_FONTHIGH, G.fontHeight, "<- THIS NEEDS EDITING");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void saveOutputFooter(void)
|
||||
// save the current definition as a font definition header file
|
||||
{
|
||||
fprintf(G.fpOut, "%c%s\n", DOT, CMD_END);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void saveOutputChar(void)
|
||||
// Save a single character definition
|
||||
{
|
||||
fprintf(G.fpOut, "%c%s %d\n", DOT, CMD_CHAR, G.curCode);
|
||||
fprintf(G.fpOut, "%c%s %s\n", DOT, CMD_NOTE, font.comment);
|
||||
|
||||
if (G.bufSize != 0)
|
||||
{
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
{
|
||||
trimBuffer(G.buf[i]);
|
||||
fprintf(G.fpOut, "%s\n", G.buf[i]);
|
||||
}
|
||||
}
|
||||
else // need at least one line
|
||||
fprintf(G.fpOut, "\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void createFontData(char *cp)
|
||||
// the font defintions strings are column data, so each byte will be a 'vertical'
|
||||
// stripe of the input buffers. Format is the size followed by size bytes of column data,
|
||||
// separated by commas. The comment is found after the data in a '//' comment and following
|
||||
// the first '-'.
|
||||
{
|
||||
char *cpNext;
|
||||
|
||||
cpNext = getToken(cp);
|
||||
font.size = atoi(cp);
|
||||
cp = cpNext;
|
||||
|
||||
// get all the data from the input into the font defintion
|
||||
for (unsigned int i=0; i<font.size; i++)
|
||||
{
|
||||
// get the data
|
||||
cpNext = getToken(cp);
|
||||
font.buf[i] = atoi(cp);
|
||||
cp = cpNext;
|
||||
}
|
||||
|
||||
// unpack the column data into the text strings
|
||||
// create each input string [j] in turn from the column definition [i] for the char
|
||||
for (unsigned int i=0; i<SINGLE_HEIGHT; i++)
|
||||
{
|
||||
for (unsigned int j=0; j<font.size; j++)
|
||||
G.buf[i][j] = (font.buf[j] & (1<<i)) ? STAR : SPACE;
|
||||
G.buf[i][font.size] = NUL; // terminate the string
|
||||
}
|
||||
|
||||
// save the comment - first search up to after the first '-'
|
||||
while ((*cp != '-') && (*cp != NUL))
|
||||
cp++;
|
||||
if (cp != NUL) cp++;
|
||||
strcpy(font.comment, cp);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void processInput(void)
|
||||
// read the input file and process line by line
|
||||
{
|
||||
char c, inLine[INPUT_BUFFER_SIZE];
|
||||
|
||||
// skip to the opening brace then skip end of line
|
||||
do
|
||||
c = getc(G.fpIn);
|
||||
while ((c != EOF) && (c != '{'));
|
||||
do
|
||||
c = getc(G.fpIn);
|
||||
while ((c == '\n') || (c == '\r'));
|
||||
|
||||
// now read each line in turn
|
||||
while (!feof(G.fpIn) && (G.curCode < ASCII_SIZE))
|
||||
{
|
||||
fgets(inLine, sizeof(inLine), G.fpIn);
|
||||
|
||||
// if we have a blank line, get another one
|
||||
trimBuffer(inLine);
|
||||
if (strlen(inLine) == 0) continue;
|
||||
|
||||
// process the buffers into a font definition and write out what we have created
|
||||
createFontData(inLine);
|
||||
saveOutputChar();
|
||||
|
||||
// reset the font and character buffers, increment current ASCII code
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
G.buf[i][0] = NUL;
|
||||
font.size = 0;
|
||||
G.curCode++;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (cmdLine(argc, argv))
|
||||
{
|
||||
usage();
|
||||
return(1);
|
||||
}
|
||||
|
||||
if ((ret = initialise()) != 0)
|
||||
return(ret);
|
||||
|
||||
saveOutputHeader();
|
||||
processInput();
|
||||
saveOutputFooter();
|
||||
|
||||
|
||||
// close files and exit
|
||||
fclose(G.fpIn);
|
||||
fclose(G.fpOut);
|
||||
|
||||
return(0);
|
||||
}
|
71
lib/MD_MAX72XX/Font Builder/src/font2txt/txt2font.h
Normal file
71
lib/MD_MAX72XX/Font Builder/src/font2txt/txt2font.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* Text 2 Font for MD_MAX72xx library
|
||||
|
||||
Quick and not very robust code to create a font definition data table for the
|
||||
MD_MAX72xx library from a text file representation. The text file has '.' commands
|
||||
to direct how the definition is structured.
|
||||
|
||||
This is a console application written in standard C.
|
||||
Original target is Win32, but no OS dependencies, so should be portable to other OS.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#pragma once
|
||||
|
||||
#define NAME_SIZE 50
|
||||
#define FILE_NAME_SIZE 200 // may include path
|
||||
#define FONT_NAME_SIZE 50
|
||||
#define COMMENT_SIZE 40
|
||||
#define ASCII_SIZE 256
|
||||
#define INPUT_BUFFER_SIZE 200
|
||||
|
||||
#define SINGLE_HEIGHT 8
|
||||
#define DOUBLE_HEIGHT_OFFSET (ASCII_SIZE/2) // ASCII code offset
|
||||
|
||||
#define IN_FILE_EXT ".txt"
|
||||
#define OUT_FILE_EXT ".h"
|
||||
|
||||
#define SPACE ' '
|
||||
#define STAR '*'
|
||||
#define NUL '\0'
|
||||
#define DOT '.'
|
||||
|
||||
#define CMD_NAME "NAME"
|
||||
#define CMD_FONTHIGH "FONT_HEIGHT"
|
||||
#define CMD_HEIGHT "HEIGHT"
|
||||
#define CMD_WIDTH "WIDTH"
|
||||
#define CMD_CHAR "CHAR"
|
||||
#define CMD_NOTE "NOTE"
|
||||
#define CMD_END "END"
|
||||
|
||||
// Data types ----------------
|
||||
typedef struct
|
||||
{
|
||||
// file handling
|
||||
FILE *fpIn;
|
||||
FILE *fpOut;
|
||||
char fileRoot[FILE_NAME_SIZE];
|
||||
|
||||
// font definition header
|
||||
char name[FONT_NAME_SIZE];
|
||||
unsigned int doubleHeight; // 0 or 1
|
||||
unsigned int fixedWidth; // 0 for variable, width otherwise
|
||||
unsigned int fontHeight; // height in pixels, default to 8
|
||||
|
||||
// input buffers and tracking
|
||||
unsigned int curCode; // the current ASCII character being processed
|
||||
unsigned int curBuf; // the current buffer we are up to
|
||||
unsigned int bufSize; // the number of buffers used
|
||||
char buf[SINGLE_HEIGHT*2][INPUT_BUFFER_SIZE];
|
||||
|
||||
} Global_t, *pGlobal_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char comment[COMMENT_SIZE]; // comment for this character
|
||||
unsigned int size; // number of valid
|
||||
unsigned int *buf; // size bytes allocated from memory
|
||||
|
||||
} ASCIIDef_t, *pASCIIDef_t;
|
376
lib/MD_MAX72XX/Font Builder/src/txt2font/txt2font.c
Normal file
376
lib/MD_MAX72XX/Font Builder/src/txt2font/txt2font.c
Normal file
@@ -0,0 +1,376 @@
|
||||
// Text 2 Font for MD_MAX72xx library
|
||||
//
|
||||
// Quick and not very robust code to create a font definition data table for the
|
||||
// MD_MAX72xx library from a text file representation. The text file has '.' commands
|
||||
// to direct how the definition is structured.
|
||||
//
|
||||
#include "txt2font.h"
|
||||
|
||||
//#define DEBUG
|
||||
|
||||
#define DECIMAL_DATA 0 // decimal or hex data selection in font tables
|
||||
|
||||
// Global data ---------------
|
||||
Global_t G;
|
||||
ASCIIDef_t font[ASCII_SIZE] = { 0 };
|
||||
|
||||
// Code ----------------------
|
||||
void usage(void)
|
||||
{
|
||||
printf("\nusage: txt2font <root_name>\n");
|
||||
printf("\n\ninput file <root_name>.txt");
|
||||
printf("\noutput file <root_name>.h");
|
||||
printf("\n");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
int cmdLine(int argc, char *argv[])
|
||||
// process the command line parameter
|
||||
{
|
||||
if (argc != 2)
|
||||
return(1);
|
||||
|
||||
strcpy(G.fileRoot, argv[1]);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
int initialise(void)
|
||||
// one time initialisation code
|
||||
{
|
||||
char szFile[FILE_NAME_SIZE];
|
||||
|
||||
// we have no font definition
|
||||
for (int i=0; i<ASCII_SIZE; i++)
|
||||
{
|
||||
font[i].comment[0] = NUL;
|
||||
font[i].size = 0;
|
||||
font[i].buf = NULL;
|
||||
}
|
||||
|
||||
// open the file for reading
|
||||
strcpy(szFile, G.fileRoot);
|
||||
strcat(szFile, IN_FILE_EXT);
|
||||
if ((G.fpIn = fopen(szFile, "r")) == NULL)
|
||||
{
|
||||
printf("\nCannot open input ""%s\n""", szFile);
|
||||
return(2);
|
||||
}
|
||||
|
||||
// open the file for writing
|
||||
strcpy(szFile, G.fileRoot);
|
||||
strcat(szFile, OUT_FILE_EXT);
|
||||
if ((G.fpOut = fopen(szFile, "w")) == NULL)
|
||||
{
|
||||
printf("\nCannot open output ""%s\n""", szFile);
|
||||
return(3);
|
||||
}
|
||||
|
||||
// other stuff
|
||||
G.name[0] = NUL;
|
||||
G.doubleHeight = 0;
|
||||
G.bufSize = SINGLE_HEIGHT;
|
||||
G.fixedWidth = 0;
|
||||
G.fontHeight = 8;
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
void trimBuffer(char *buf)
|
||||
// trim the buffer specified of all trailing white space
|
||||
{
|
||||
int i = strlen(buf)-1;
|
||||
|
||||
while (i > 0 && isspace(buf[i]))
|
||||
buf[i--] = NUL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void padBuffer(char *buf, unsigned int len)
|
||||
// pad the supplied buffer with spaces up to the length specified
|
||||
{
|
||||
if (strlen(buf) < len)
|
||||
{
|
||||
for (unsigned int j=strlen(buf); j<len; j++)
|
||||
buf[j] = SPACE;
|
||||
}
|
||||
buf[len] = NUL;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned int normaliseBuffers(void)
|
||||
// normalize all the input buffers to the same size
|
||||
{
|
||||
unsigned int max = 0;
|
||||
|
||||
if (G.fixedWidth == 0)
|
||||
{
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
max = max < strlen(G.buf[i]) ? max = strlen(G.buf[i]) : max;
|
||||
}
|
||||
else
|
||||
max = G.fixedWidth;
|
||||
|
||||
// now make them all the same size
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
{
|
||||
padBuffer(G.buf[i], max);
|
||||
}
|
||||
|
||||
return(max);
|
||||
}
|
||||
|
||||
char *getToken(char *buf)
|
||||
// isolate the first token in the buffer and return a pointer to the next non white space after the token
|
||||
{
|
||||
while (!isspace(*buf))
|
||||
buf++;
|
||||
*buf++ = NUL;
|
||||
while (isspace(*buf))
|
||||
buf++;
|
||||
|
||||
return(buf);
|
||||
}
|
||||
|
||||
void createFontChar(void)
|
||||
// the font definition strings are created as columns, so each byte will be a 'vertical'
|
||||
// stripe of the input buffers.
|
||||
{
|
||||
font[G.curCode].size = normaliseBuffers(); // make everything the same length; this is the width of the character
|
||||
|
||||
// allocate memory for the font data
|
||||
if (font[G.curCode].buf != NULL)
|
||||
free(font[G.curCode].buf);
|
||||
font[G.curCode].buf = malloc(font[G.curCode].size * sizeof(*font[0].buf));
|
||||
|
||||
// if double height, check the upper buffers and also copy the font data across
|
||||
if (G.doubleHeight)
|
||||
{
|
||||
if (font[G.curCode+DOUBLE_HEIGHT_OFFSET].buf != NULL)
|
||||
free(font[G.curCode+DOUBLE_HEIGHT_OFFSET].buf);
|
||||
font[G.curCode+DOUBLE_HEIGHT_OFFSET].buf = malloc(font[G.curCode].size * sizeof(*font[0].buf));
|
||||
|
||||
font[G.curCode+DOUBLE_HEIGHT_OFFSET].size = font[G.curCode].size;
|
||||
strcpy(font[G.curCode+DOUBLE_HEIGHT_OFFSET].comment, font[G.curCode].comment);
|
||||
}
|
||||
|
||||
// process the input strings in parallel [j] to create the column definition [i] for the first character
|
||||
for (unsigned int i=0; i<font[G.curCode].size; i++)
|
||||
{
|
||||
unsigned int colL, colH;
|
||||
|
||||
if (G.doubleHeight) // if we are double height, write lower and upper halves separately
|
||||
{
|
||||
colL = colH = 0;
|
||||
// high half of character stored in upper ASCII value, but in low buffers
|
||||
// low half of character stored in lower ASCII value, but in high buffers
|
||||
for (unsigned int j=0; j<SINGLE_HEIGHT; j++)
|
||||
{
|
||||
colH |= (G.buf[j][i] == SPACE) ? 0 : (1 << j);
|
||||
colL |= (G.buf[j+SINGLE_HEIGHT][i] == SPACE) ? 0 : (1 << j);
|
||||
}
|
||||
font[G.curCode+DOUBLE_HEIGHT_OFFSET].buf[i] = colH;
|
||||
font[G.curCode].buf[i] = colL;
|
||||
}
|
||||
else
|
||||
{
|
||||
colL = 0;
|
||||
for (unsigned int j=0; j<SINGLE_HEIGHT; j++)
|
||||
colL |= (G.buf[j][i] == SPACE) ? 0 : (1 << j);
|
||||
// save the column data
|
||||
font[G.curCode].buf[i] = colL;
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void readInput(void)
|
||||
// read the input file and process line by line
|
||||
{
|
||||
char c, *cp, inLine[INPUT_BUFFER_SIZE];
|
||||
|
||||
cp = inLine;
|
||||
|
||||
while ((c = getc(G.fpIn)) != EOF)
|
||||
{
|
||||
if (c != '\n' && c != '\r') // not end of line
|
||||
{
|
||||
*cp++ = c;
|
||||
continue;
|
||||
}
|
||||
|
||||
// we are at end of line, process the line
|
||||
*cp = NUL;
|
||||
trimBuffer(inLine);
|
||||
if (inLine[0] != DOT) // not a command? must be a chr definition line
|
||||
{
|
||||
if (G.curBuf < (SINGLE_HEIGHT*2))
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printf("\nC%02x L%d\t%s", G.curCode, G.curBuf, inLine);
|
||||
#endif
|
||||
strcpy(G.buf[G.curBuf++], inLine); // save the buffer
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
cp = getToken(&inLine[1]);
|
||||
#ifdef DEBUG
|
||||
printf("\nToken: '%s' - '%s'", inLine, cp);
|
||||
#endif
|
||||
if (strcmp(&inLine[1], CMD_NAME) == 0)
|
||||
{
|
||||
strcpy(G.name, cp);
|
||||
#ifdef DEBUG
|
||||
printf("\tfont name: '%s'", G.name);
|
||||
#endif
|
||||
}
|
||||
else if (strcmp(&inLine[1], CMD_FONTHIGH) == 0)
|
||||
{
|
||||
G.fontHeight = abs(atoi(cp));
|
||||
#ifdef DEBUG
|
||||
printf("\tfont height: %d", G.fontHeight);
|
||||
#endif
|
||||
}
|
||||
else if (strcmp(&inLine[1], CMD_HEIGHT) == 0)
|
||||
{
|
||||
G.doubleHeight = (*cp=='1' ? 0 : 1);
|
||||
G.bufSize = (*cp=='1' ? SINGLE_HEIGHT : SINGLE_HEIGHT*2);
|
||||
#ifdef DEBUG
|
||||
printf("\tdouble height: %d", G.doubleHeight);
|
||||
#endif
|
||||
}
|
||||
else if (strcmp(&inLine[1], CMD_WIDTH) == 0)
|
||||
{
|
||||
G.fixedWidth = abs(atoi(cp));
|
||||
#ifdef DEBUG
|
||||
printf("\twidth: %d", G.fixedWidth);
|
||||
#endif
|
||||
}
|
||||
else if ((strcmp(&inLine[1], CMD_CHAR) == 0) ||
|
||||
(strcmp(&inLine[1], CMD_END) == 0))
|
||||
{
|
||||
#ifdef DEBUG
|
||||
printf("\tend char %02x", G.curCode);
|
||||
#endif
|
||||
if (G.curBuf != 0) // we have buffers
|
||||
{
|
||||
// process the buffers into a font definition
|
||||
createFontChar();
|
||||
|
||||
// reset the character buffers
|
||||
for (unsigned int i=0; i<G.bufSize; i++)
|
||||
G.buf[i][0] = NUL;
|
||||
}
|
||||
|
||||
// set up the new character if not at the end
|
||||
if (strcmp(&inLine[1], CMD_END) != 0)
|
||||
{
|
||||
G.curBuf = 0;
|
||||
G.curCode = atoi(cp);
|
||||
#ifdef DEBUG
|
||||
printf("\t set up %02x", G.curCode);
|
||||
#endif
|
||||
if (G.curCode >= (G.doubleHeight ? ASCII_SIZE/2 : ASCII_SIZE))
|
||||
{
|
||||
G.curCode = 0;
|
||||
#ifdef DEBUG
|
||||
printf("\t - boundary check fail");
|
||||
#endif
|
||||
}
|
||||
font[G.curCode].comment[0] = NUL;
|
||||
font[G.curCode].size = 0;
|
||||
}
|
||||
#ifdef DEBUG
|
||||
else
|
||||
printf("\tend of definition");
|
||||
#endif
|
||||
}
|
||||
else if (strcmp(&inLine[1], CMD_NOTE) == 0)
|
||||
{
|
||||
strcpy(font[G.curCode].comment, cp);
|
||||
#ifdef DEBUG
|
||||
printf("\tnote '%s' for char %02x", font[G.curCode].comment, G.curCode);
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
// reset for next line
|
||||
cp = inLine;
|
||||
memset(inLine, NUL, sizeof(inLine));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void saveOutput(void)
|
||||
// save the current definition as a font definition header file
|
||||
{
|
||||
unsigned int minAscii = 0, maxAscii = 0;
|
||||
|
||||
// first parse the font table to work out the min and max ASCII values
|
||||
for (int i=0; i<ASCII_SIZE; i++)
|
||||
if (font[i].buf != NULL) maxAscii = i;
|
||||
|
||||
for (int i=maxAscii; i>=0; i--)
|
||||
if (font[i].buf != NULL) minAscii = i;
|
||||
|
||||
fprintf(G.fpOut, "// Autogenerated font - '%s'\n", G.name);
|
||||
fprintf(G.fpOut, "// %s height, ", (G.doubleHeight ? "Double" : "Single"));
|
||||
if (G.fixedWidth == 0)
|
||||
fprintf(G.fpOut, "Variable spaced");
|
||||
else
|
||||
fprintf(G.fpOut, "Fixed width (%d)", G.fixedWidth);
|
||||
fprintf(G.fpOut, "\n\n");
|
||||
|
||||
fprintf(G.fpOut, "#pragma once\n\n");
|
||||
fprintf(G.fpOut, "const uint8_t PROGMEM _%s[] = \n{\n", (G.name[0] == NUL) ? "font" : G.name);
|
||||
fprintf(G.fpOut, "'F', 1, %d, %d, %d,\n", minAscii, maxAscii, G.fontHeight);
|
||||
|
||||
|
||||
for (int i=minAscii; i<=maxAscii; i++)
|
||||
{
|
||||
fprintf(G.fpOut, "\t%d,", font[i].size);
|
||||
if (font[i].buf != NULL)
|
||||
{
|
||||
for (unsigned int j=0; j<font[i].size; j++)
|
||||
fprintf(G.fpOut, (DECIMAL_DATA ? "%d," : "0x%02x,"), font[i].buf[j]);
|
||||
}
|
||||
fprintf(G.fpOut, "\t// %d", i);
|
||||
if (font[i].comment[0] != NUL)
|
||||
fprintf(G.fpOut," - %s", font[i].comment);
|
||||
fprintf(G.fpOut, "\n");
|
||||
}
|
||||
|
||||
fprintf(G.fpOut, "}\n\n");
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int ret;
|
||||
|
||||
if (cmdLine(argc, argv))
|
||||
{
|
||||
usage();
|
||||
return(1);
|
||||
}
|
||||
|
||||
if ((ret = initialise()) != 0)
|
||||
return(ret);
|
||||
|
||||
// read the input file
|
||||
readInput();
|
||||
|
||||
// write the output file
|
||||
saveOutput();
|
||||
|
||||
// close files and exit
|
||||
fclose(G.fpIn);
|
||||
fclose(G.fpOut);
|
||||
|
||||
return(0);
|
||||
}
|
71
lib/MD_MAX72XX/Font Builder/src/txt2font/txt2font.h
Normal file
71
lib/MD_MAX72XX/Font Builder/src/txt2font/txt2font.h
Normal file
@@ -0,0 +1,71 @@
|
||||
/* Text 2 Font for MD_MAX72xx library
|
||||
|
||||
Quick and not very robust code to create a font definition data table for the
|
||||
MD_MAX72xx library from a text file representation. The text file has '.' commands
|
||||
to direct how the definition is structured.
|
||||
|
||||
This is a console application written in standard C.
|
||||
Original target is Win32, but no OS dependencies, so should be portable to other OS.
|
||||
*/
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#pragma once
|
||||
|
||||
#define NAME_SIZE 50
|
||||
#define FILE_NAME_SIZE 200 // may include path
|
||||
#define FONT_NAME_SIZE 50
|
||||
#define COMMENT_SIZE 40
|
||||
#define ASCII_SIZE 256
|
||||
#define INPUT_BUFFER_SIZE 200
|
||||
|
||||
#define SINGLE_HEIGHT 8
|
||||
#define DOUBLE_HEIGHT_OFFSET (ASCII_SIZE/2) // ASCII code offset
|
||||
|
||||
#define IN_FILE_EXT ".txt"
|
||||
#define OUT_FILE_EXT ".h"
|
||||
|
||||
#define SPACE ' '
|
||||
#define STAR '*'
|
||||
#define NUL '\0'
|
||||
#define DOT '.'
|
||||
|
||||
#define CMD_NAME "NAME"
|
||||
#define CMD_FONTHIGH "FONT_HEIGHT"
|
||||
#define CMD_HEIGHT "HEIGHT"
|
||||
#define CMD_WIDTH "WIDTH"
|
||||
#define CMD_CHAR "CHAR"
|
||||
#define CMD_NOTE "NOTE"
|
||||
#define CMD_END "END"
|
||||
|
||||
// Data types ----------------
|
||||
typedef struct
|
||||
{
|
||||
// file handling
|
||||
FILE *fpIn;
|
||||
FILE *fpOut;
|
||||
char fileRoot[FILE_NAME_SIZE];
|
||||
|
||||
// font definition header
|
||||
char name[FONT_NAME_SIZE];
|
||||
unsigned int doubleHeight; // 0 or 1
|
||||
unsigned int fixedWidth; // 0 for variable, width otherwise
|
||||
unsigned int fontHeight; // height in pixels, default to 8
|
||||
|
||||
// input buffers and tracking
|
||||
unsigned int curCode; // the current ASCII character being processed
|
||||
unsigned int curBuf; // the current buffer we are up to
|
||||
unsigned int bufSize; // the number of buffers used
|
||||
char buf[SINGLE_HEIGHT*2][INPUT_BUFFER_SIZE];
|
||||
|
||||
} Global_t, *pGlobal_t;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char comment[COMMENT_SIZE]; // comment for this character
|
||||
unsigned int size; // number of valid
|
||||
unsigned int *buf; // size bytes allocated from memory
|
||||
|
||||
} ASCIIDef_t, *pASCIIDef_t;
|
995
lib/MD_MAX72XX/Font Builder/symbol_var_single.txt
Normal file
995
lib/MD_MAX72XX/Font Builder/symbol_var_single.txt
Normal file
@@ -0,0 +1,995 @@
|
||||
.NAME symbol_var_single
|
||||
.FONT_HEIGHT 8
|
||||
.HEIGHT 1
|
||||
.WIDTH 0
|
||||
.CHAR 0
|
||||
.NOTE 'Arrow bent BL'
|
||||
|
||||
*
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
.CHAR 1
|
||||
.NOTE 'Arrow bent BR'
|
||||
|
||||
*
|
||||
*
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
*
|
||||
*
|
||||
.CHAR 2
|
||||
.NOTE 'Arrow bent TL'
|
||||
*
|
||||
*
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 3
|
||||
.NOTE 'Arrow bent TR'
|
||||
*
|
||||
*
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 4
|
||||
.NOTE 'Arrow big L'
|
||||
*
|
||||
**
|
||||
*******
|
||||
********
|
||||
*******
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 5
|
||||
.NOTE 'Arrow big R'
|
||||
*
|
||||
**
|
||||
*******
|
||||
********
|
||||
*******
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 6
|
||||
.NOTE 'Arrow empty head L'
|
||||
*
|
||||
**
|
||||
* **
|
||||
*
|
||||
* **
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 7
|
||||
.NOTE 'Arrow empty head R'
|
||||
*
|
||||
**
|
||||
** *
|
||||
*
|
||||
** *
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 8
|
||||
.NOTE 'Arrow empty shaft'
|
||||
|
||||
|
||||
**
|
||||
|
||||
|
||||
**
|
||||
|
||||
|
||||
.CHAR 9
|
||||
.NOTE 'Arrow filled head L'
|
||||
*
|
||||
**
|
||||
****
|
||||
*****
|
||||
****
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 10
|
||||
.NOTE 'Arrow filled head R'
|
||||
*
|
||||
**
|
||||
****
|
||||
*****
|
||||
****
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 11
|
||||
.NOTE 'Arrow shaft'
|
||||
|
||||
|
||||
|
||||
********
|
||||
********
|
||||
|
||||
|
||||
|
||||
.CHAR 12
|
||||
.NOTE 'Arrow simple E'
|
||||
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
|
||||
|
||||
.CHAR 13
|
||||
.NOTE 'Arrow simple N'
|
||||
|
||||
*
|
||||
***
|
||||
* * *
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 14
|
||||
.NOTE 'Arrow simple NE'
|
||||
|
||||
****
|
||||
**
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
|
||||
.CHAR 15
|
||||
.NOTE 'Arrow simple NS'
|
||||
*
|
||||
***
|
||||
* * *
|
||||
*
|
||||
* * *
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 16
|
||||
.NOTE 'Arrow simple NW'
|
||||
|
||||
****
|
||||
**
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
|
||||
.CHAR 17
|
||||
.NOTE 'Arrow simple S'
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
* * *
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 18
|
||||
.NOTE 'Arrow simple SE'
|
||||
|
||||
*
|
||||
* *
|
||||
* *
|
||||
**
|
||||
****
|
||||
|
||||
|
||||
.CHAR 19
|
||||
.NOTE 'Arrow simple SW'
|
||||
|
||||
*
|
||||
* *
|
||||
* *
|
||||
**
|
||||
****
|
||||
|
||||
|
||||
.CHAR 20
|
||||
.NOTE 'Arrow simple W'
|
||||
|
||||
*
|
||||
*
|
||||
*****
|
||||
*
|
||||
*
|
||||
|
||||
|
||||
.CHAR 21
|
||||
.NOTE 'Arrow simple WE'
|
||||
|
||||
* *
|
||||
* *
|
||||
*******
|
||||
* *
|
||||
* *
|
||||
|
||||
|
||||
.CHAR 22
|
||||
.NOTE 'Arrow tail closure'
|
||||
|
||||
|
||||
*
|
||||
*
|
||||
*
|
||||
|
||||
|
||||
|
||||
.CHAR 23
|
||||
.NOTE 'Arrow tail L'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
******
|
||||
******
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
.CHAR 24
|
||||
.NOTE 'Arrow tail R'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
*****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
.CHAR 25
|
||||
.NOTE 'Ball empty'
|
||||
|
||||
****
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 26
|
||||
.NOTE 'Ball filled'
|
||||
|
||||
****
|
||||
******
|
||||
******
|
||||
******
|
||||
******
|
||||
****
|
||||
|
||||
.CHAR 27
|
||||
.NOTE 'Bullet Point empty'
|
||||
|
||||
|
||||
*
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
|
||||
.CHAR 28
|
||||
.NOTE 'Bullet Point empty rev'
|
||||
*****
|
||||
*****
|
||||
** **
|
||||
* * *
|
||||
* * *
|
||||
** **
|
||||
*****
|
||||
*****
|
||||
.CHAR 29
|
||||
.NOTE 'Bullet Point filled'
|
||||
|
||||
|
||||
*
|
||||
***
|
||||
***
|
||||
*
|
||||
|
||||
|
||||
.CHAR 30
|
||||
.NOTE 'Bullet Point filled rev'
|
||||
*****
|
||||
*****
|
||||
** **
|
||||
* *
|
||||
* *
|
||||
** **
|
||||
*****
|
||||
*****
|
||||
.CHAR 31
|
||||
.NOTE 'Deg C'
|
||||
**
|
||||
**
|
||||
***
|
||||
*
|
||||
*
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 32
|
||||
.NOTE 'Deg F'
|
||||
**
|
||||
**
|
||||
****
|
||||
*
|
||||
***
|
||||
*
|
||||
*
|
||||
|
||||
.CHAR 33
|
||||
.NOTE 'Diamond empty'
|
||||
*
|
||||
***
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 34
|
||||
.NOTE 'Diamond filled'
|
||||
*
|
||||
***
|
||||
*****
|
||||
*******
|
||||
*****
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 35
|
||||
.NOTE 'Icon bullet L'
|
||||
*
|
||||
*******
|
||||
* *****
|
||||
* *****
|
||||
* *****
|
||||
*******
|
||||
*
|
||||
|
||||
.CHAR 36
|
||||
.NOTE 'Icon bullet R'
|
||||
*
|
||||
*******
|
||||
***** *
|
||||
***** *
|
||||
***** *
|
||||
*******
|
||||
*
|
||||
|
||||
.CHAR 37
|
||||
.NOTE 'Icon cactus'
|
||||
**
|
||||
**
|
||||
*****
|
||||
********
|
||||
***** **
|
||||
** ** **
|
||||
** **
|
||||
**
|
||||
.CHAR 38
|
||||
.NOTE 'Icon card clubs'
|
||||
***
|
||||
* *
|
||||
*****
|
||||
* * *
|
||||
*****
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 39
|
||||
.NOTE 'Icon card diamond'
|
||||
|
||||
*
|
||||
***
|
||||
*****
|
||||
*****
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 40
|
||||
.NOTE 'Icon card heart'
|
||||
|
||||
* *
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
***
|
||||
*
|
||||
|
||||
.CHAR 41
|
||||
.NOTE 'Icon card spades'
|
||||
*
|
||||
***
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*
|
||||
***
|
||||
|
||||
.CHAR 42
|
||||
.NOTE 'Icon gun'
|
||||
|
||||
|
||||
* *****
|
||||
******
|
||||
****
|
||||
*****
|
||||
** *
|
||||
**
|
||||
.CHAR 43
|
||||
.NOTE 'Icon gun bullets'
|
||||
*
|
||||
*
|
||||
|
||||
** ** **
|
||||
** ** **
|
||||
|
||||
*
|
||||
*
|
||||
.CHAR 44
|
||||
.NOTE 'Icon house'
|
||||
|
||||
**
|
||||
****
|
||||
******
|
||||
********
|
||||
**********
|
||||
*** ***
|
||||
*** ***
|
||||
.CHAR 45
|
||||
.NOTE 'Icon pacman'
|
||||
*****
|
||||
* *
|
||||
* * *
|
||||
* *
|
||||
* *
|
||||
* **
|
||||
* *
|
||||
*****
|
||||
.CHAR 46
|
||||
.NOTE 'Icon pacman ghost'
|
||||
*****
|
||||
* *
|
||||
* * * *
|
||||
* *
|
||||
* *
|
||||
*******
|
||||
* * * *
|
||||
* * * *
|
||||
.CHAR 47
|
||||
.NOTE 'Icon rocket'
|
||||
*
|
||||
***
|
||||
* *
|
||||
***
|
||||
***
|
||||
*****
|
||||
*****
|
||||
* * *
|
||||
.CHAR 48
|
||||
.NOTE 'Icon sex female'
|
||||
***
|
||||
* *
|
||||
* *
|
||||
***
|
||||
*
|
||||
*****
|
||||
*
|
||||
|
||||
.CHAR 49
|
||||
.NOTE 'Icon sex male'
|
||||
|
||||
***
|
||||
**
|
||||
*** *
|
||||
* *
|
||||
* *
|
||||
**
|
||||
|
||||
.CHAR 50
|
||||
.NOTE 'Icon smiley happy'
|
||||
***
|
||||
*****
|
||||
* * *
|
||||
*****
|
||||
* *
|
||||
** **
|
||||
***
|
||||
|
||||
.CHAR 51
|
||||
.NOTE 'Icon smiley sad'
|
||||
***
|
||||
*****
|
||||
* * *
|
||||
*****
|
||||
** **
|
||||
* *
|
||||
***
|
||||
|
||||
.CHAR 52
|
||||
.NOTE 'Icon snowflake'
|
||||
* * *
|
||||
** * **
|
||||
****
|
||||
** * *
|
||||
* * **
|
||||
****
|
||||
** * **
|
||||
* * *
|
||||
.CHAR 53
|
||||
.NOTE 'Icon telephone 1'
|
||||
|
||||
**
|
||||
**
|
||||
*
|
||||
*
|
||||
** *
|
||||
***
|
||||
|
||||
.CHAR 54
|
||||
.NOTE 'Icon telephone 2'
|
||||
*****
|
||||
** **
|
||||
** *** **
|
||||
* * *
|
||||
* *** *
|
||||
* * *
|
||||
*******
|
||||
|
||||
.CHAR 55
|
||||
.NOTE 'Icon tetris'
|
||||
*
|
||||
**** * *
|
||||
**
|
||||
* *
|
||||
* ***
|
||||
* *
|
||||
* **
|
||||
** * **
|
||||
.CHAR 56
|
||||
.NOTE 'Music note 1'
|
||||
****
|
||||
* *
|
||||
****
|
||||
*
|
||||
*
|
||||
**
|
||||
**
|
||||
|
||||
.CHAR 57
|
||||
.NOTE 'Music note 2'
|
||||
****
|
||||
* *
|
||||
****
|
||||
* *
|
||||
* **
|
||||
** **
|
||||
**
|
||||
|
||||
.CHAR 58
|
||||
.NOTE 'Music note 3'
|
||||
*
|
||||
**
|
||||
* *
|
||||
* *
|
||||
**
|
||||
***
|
||||
**
|
||||
|
||||
.CHAR 59
|
||||
.NOTE 'Pattern block bottom'
|
||||
|
||||
|
||||
|
||||
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
.CHAR 60
|
||||
.NOTE 'Pattern block full'
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
********
|
||||
.CHAR 61
|
||||
.NOTE 'Pattern block L'
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
.CHAR 62
|
||||
.NOTE 'Pattern block R'
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
.CHAR 63
|
||||
.NOTE 'Pattern block top'
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
|
||||
|
||||
|
||||
|
||||
.CHAR 64
|
||||
.NOTE 'Pattern box in box'
|
||||
********
|
||||
* *
|
||||
* **** *
|
||||
* * * *
|
||||
* * * *
|
||||
* **** *
|
||||
* *
|
||||
********
|
||||
.CHAR 65
|
||||
.NOTE 'Pattern carrots L'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
.CHAR 66
|
||||
.NOTE 'Pattern carrots R'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
.CHAR 67
|
||||
.NOTE 'Pattern chain link'
|
||||
|
||||
****
|
||||
* *
|
||||
*** ***
|
||||
*** ***
|
||||
* *
|
||||
****
|
||||
|
||||
.CHAR 68
|
||||
.NOTE 'Pattern check big'
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
** **
|
||||
.CHAR 69
|
||||
.NOTE 'Pattern check edge big'
|
||||
** **
|
||||
** **
|
||||
|
||||
|
||||
|
||||
|
||||
** **
|
||||
** **
|
||||
.CHAR 70
|
||||
.NOTE 'Pattern check edge small'
|
||||
* * * *
|
||||
* * * *
|
||||
|
||||
|
||||
|
||||
|
||||
* * * *
|
||||
* * * *
|
||||
.CHAR 71
|
||||
.NOTE 'Pattern check small'
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
.CHAR 72
|
||||
.NOTE 'Pattern round'
|
||||
* ** *
|
||||
* *
|
||||
* *
|
||||
* ** *
|
||||
* ** *
|
||||
* *
|
||||
* *
|
||||
* ** *
|
||||
.CHAR 73
|
||||
.NOTE 'Pattern spiral'
|
||||
********
|
||||
*
|
||||
****** *
|
||||
* * *
|
||||
* * * *
|
||||
* **** *
|
||||
* *
|
||||
********
|
||||
.CHAR 74
|
||||
.NOTE 'Pattern stripes diag L'
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
.CHAR 75
|
||||
.NOTE 'Pattern stripes diag R'
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
* *
|
||||
* * *
|
||||
* * *
|
||||
.CHAR 76
|
||||
.NOTE 'Pattern stripes H'
|
||||
********
|
||||
|
||||
********
|
||||
|
||||
********
|
||||
|
||||
********
|
||||
|
||||
.CHAR 77
|
||||
.NOTE 'Pattern stripes V'
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
* * * *
|
||||
.CHAR 78
|
||||
.NOTE 'Pattern X'
|
||||
* *
|
||||
** **
|
||||
* *
|
||||
**
|
||||
**
|
||||
* *
|
||||
** **
|
||||
* *
|
||||
.CHAR 79
|
||||
.NOTE 'Pointer big E'
|
||||
*
|
||||
**
|
||||
***
|
||||
****
|
||||
***
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 80
|
||||
.NOTE 'Pointer big S'
|
||||
|
||||
|
||||
*******
|
||||
*****
|
||||
***
|
||||
*
|
||||
|
||||
|
||||
.CHAR 81
|
||||
.NOTE 'Pointer big up'
|
||||
|
||||
|
||||
*
|
||||
***
|
||||
*****
|
||||
*******
|
||||
|
||||
|
||||
.CHAR 82
|
||||
.NOTE 'Pointer big W'
|
||||
*
|
||||
**
|
||||
***
|
||||
****
|
||||
***
|
||||
**
|
||||
*
|
||||
|
||||
.CHAR 83
|
||||
.NOTE 'Pointer small E'
|
||||
|
||||
*
|
||||
**
|
||||
***
|
||||
**
|
||||
*
|
||||
|
||||
|
||||
.CHAR 84
|
||||
.NOTE 'Pointer small N'
|
||||
|
||||
|
||||
*
|
||||
***
|
||||
*****
|
||||
|
||||
|
||||
|
||||
.CHAR 85
|
||||
.NOTE 'Pointer small S'
|
||||
|
||||
|
||||
*****
|
||||
***
|
||||
*
|
||||
|
||||
|
||||
|
||||
.CHAR 86
|
||||
.NOTE 'Pointer small W'
|
||||
|
||||
*
|
||||
**
|
||||
***
|
||||
**
|
||||
*
|
||||
|
||||
|
||||
.CHAR 87
|
||||
.NOTE 'Wave Sine'
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
**
|
||||
.CHAR 88
|
||||
.NOTE 'Wave square'
|
||||
*** **
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*****
|
||||
.CHAR 89
|
||||
.NOTE 'Wave triangle'
|
||||
|
||||
*
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*
|
||||
|
||||
.CHAR 90
|
||||
.NOTE 'Pattern bars V 1'
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
.CHAR 91
|
||||
.NOTE 'Pattern bars V 2'
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
.CHAR 92
|
||||
.NOTE 'Pattern bars V 3'
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
.CHAR 93
|
||||
.NOTE 'Pattern bars V 4'
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
.CHAR 94
|
||||
.NOTE 'Pattern bars V 5'
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
*****
|
||||
.CHAR 95
|
||||
.NOTE 'Pattern bars V 6'
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
****
|
||||
.CHAR 96
|
||||
.NOTE 'Pattern bars V 7'
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
***
|
||||
.CHAR 97
|
||||
.NOTE 'Pattern bars V 8'
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
**
|
||||
.CHAR 98
|
||||
.NOTE 'Pattern bars V 9'
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
*
|
||||
.END
|
2543
lib/MD_MAX72XX/Font Builder/sys_fixed_single.txt
Normal file
2543
lib/MD_MAX72XX/Font Builder/sys_fixed_single.txt
Normal file
File diff suppressed because it is too large
Load Diff
1684
lib/MD_MAX72XX/Font Builder/sys_var_double.txt
Normal file
1684
lib/MD_MAX72XX/Font Builder/sys_var_double.txt
Normal file
File diff suppressed because it is too large
Load Diff
2261
lib/MD_MAX72XX/Font Builder/sys_var_single.txt
Normal file
2261
lib/MD_MAX72XX/Font Builder/sys_var_single.txt
Normal file
File diff suppressed because it is too large
Load Diff
BIN
lib/MD_MAX72XX/Font Builder/txt2font.executable
Normal file
BIN
lib/MD_MAX72XX/Font Builder/txt2font.executable
Normal file
Binary file not shown.
Reference in New Issue
Block a user