├── .gitignore
├── LICENSE
├── README.md
├── backspire.c
├── charmaps.h
├── console.c
├── console.h
├── makefile
├── nand.h
├── ndlessext.c
├── ndlessext.h
├── s_screen.c
├── screen.c
├── screen.h
├── types.h
├── utils.c
└── utils.h
/.gitignore:
--------------------------------------------------------------------------------
1 | *.o
2 | *.elf
3 | *.tns
4 |
5 | .idea/
6 | .vscode/
7 | .DS_Store
8 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 3, 29 June 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU General Public License is a free, copyleft license for
11 | software and other kinds of works.
12 |
13 | The licenses for most software and other practical works are designed
14 | to take away your freedom to share and change the works. By contrast,
15 | the GNU General Public License is intended to guarantee your freedom to
16 | share and change all versions of a program--to make sure it remains free
17 | software for all its users. We, the Free Software Foundation, use the
18 | GNU General Public License for most of our software; it applies also to
19 | any other work released this way by its authors. You can apply it to
20 | your programs, too.
21 |
22 | When we speak of free software, we are referring to freedom, not
23 | price. Our General Public Licenses are designed to make sure that you
24 | have the freedom to distribute copies of free software (and charge for
25 | them if you wish), that you receive source code or can get it if you
26 | want it, that you can change the software or use pieces of it in new
27 | free programs, and that you know you can do these things.
28 |
29 | To protect your rights, we need to prevent others from denying you
30 | these rights or asking you to surrender the rights. Therefore, you have
31 | certain responsibilities if you distribute copies of the software, or if
32 | you modify it: responsibilities to respect the freedom of others.
33 |
34 | For example, if you distribute copies of such a program, whether
35 | gratis or for a fee, you must pass on to the recipients the same
36 | freedoms that you received. You must make sure that they, too, receive
37 | or can get the source code. And you must show them these terms so they
38 | know their rights.
39 |
40 | Developers that use the GNU GPL protect your rights with two steps:
41 | (1) assert copyright on the software, and (2) offer you this License
42 | giving you legal permission to copy, distribute and/or modify it.
43 |
44 | For the developers' and authors' protection, the GPL clearly explains
45 | that there is no warranty for this free software. For both users' and
46 | authors' sake, the GPL requires that modified versions be marked as
47 | changed, so that their problems will not be attributed erroneously to
48 | authors of previous versions.
49 |
50 | Some devices are designed to deny users access to install or run
51 | modified versions of the software inside them, although the manufacturer
52 | can do so. This is fundamentally incompatible with the aim of
53 | protecting users' freedom to change the software. The systematic
54 | pattern of such abuse occurs in the area of products for individuals to
55 | use, which is precisely where it is most unacceptable. Therefore, we
56 | have designed this version of the GPL to prohibit the practice for those
57 | products. If such problems arise substantially in other domains, we
58 | stand ready to extend this provision to those domains in future versions
59 | of the GPL, as needed to protect the freedom of users.
60 |
61 | Finally, every program is threatened constantly by software patents.
62 | States should not allow patents to restrict development and use of
63 | software on general-purpose computers, but in those that do, we wish to
64 | avoid the special danger that patents applied to a free program could
65 | make it effectively proprietary. To prevent this, the GPL assures that
66 | patents cannot be used to render the program non-free.
67 |
68 | The precise terms and conditions for copying, distribution and
69 | modification follow.
70 |
71 | TERMS AND CONDITIONS
72 |
73 | 0. Definitions.
74 |
75 | "This License" refers to version 3 of the GNU General Public License.
76 |
77 | "Copyright" also means copyright-like laws that apply to other kinds of
78 | works, such as semiconductor masks.
79 |
80 | "The Program" refers to any copyrightable work licensed under this
81 | License. Each licensee is addressed as "you". "Licensees" and
82 | "recipients" may be individuals or organizations.
83 |
84 | To "modify" a work means to copy from or adapt all or part of the work
85 | in a fashion requiring copyright permission, other than the making of an
86 | exact copy. The resulting work is called a "modified version" of the
87 | earlier work or a work "based on" the earlier work.
88 |
89 | A "covered work" means either the unmodified Program or a work based
90 | on the Program.
91 |
92 | To "propagate" a work means to do anything with it that, without
93 | permission, would make you directly or secondarily liable for
94 | infringement under applicable copyright law, except executing it on a
95 | computer or modifying a private copy. Propagation includes copying,
96 | distribution (with or without modification), making available to the
97 | public, and in some countries other activities as well.
98 |
99 | To "convey" a work means any kind of propagation that enables other
100 | parties to make or receive copies. Mere interaction with a user through
101 | a computer network, with no transfer of a copy, is not conveying.
102 |
103 | An interactive user interface displays "Appropriate Legal Notices"
104 | to the extent that it includes a convenient and prominently visible
105 | feature that (1) displays an appropriate copyright notice, and (2)
106 | tells the user that there is no warranty for the work (except to the
107 | extent that warranties are provided), that licensees may convey the
108 | work under this License, and how to view a copy of this License. If
109 | the interface presents a list of user commands or options, such as a
110 | menu, a prominent item in the list meets this criterion.
111 |
112 | 1. Source Code.
113 |
114 | The "source code" for a work means the preferred form of the work
115 | for making modifications to it. "Object code" means any non-source
116 | form of a work.
117 |
118 | A "Standard Interface" means an interface that either is an official
119 | standard defined by a recognized standards body, or, in the case of
120 | interfaces specified for a particular programming language, one that
121 | is widely used among developers working in that language.
122 |
123 | The "System Libraries" of an executable work include anything, other
124 | than the work as a whole, that (a) is included in the normal form of
125 | packaging a Major Component, but which is not part of that Major
126 | Component, and (b) serves only to enable use of the work with that
127 | Major Component, or to implement a Standard Interface for which an
128 | implementation is available to the public in source code form. A
129 | "Major Component", in this context, means a major essential component
130 | (kernel, window system, and so on) of the specific operating system
131 | (if any) on which the executable work runs, or a compiler used to
132 | produce the work, or an object code interpreter used to run it.
133 |
134 | The "Corresponding Source" for a work in object code form means all
135 | the source code needed to generate, install, and (for an executable
136 | work) run the object code and to modify the work, including scripts to
137 | control those activities. However, it does not include the work's
138 | System Libraries, or general-purpose tools or generally available free
139 | programs which are used unmodified in performing those activities but
140 | which are not part of the work. For example, Corresponding Source
141 | includes interface definition files associated with source files for
142 | the work, and the source code for shared libraries and dynamically
143 | linked subprograms that the work is specifically designed to require,
144 | such as by intimate data communication or control flow between those
145 | subprograms and other parts of the work.
146 |
147 | The Corresponding Source need not include anything that users
148 | can regenerate automatically from other parts of the Corresponding
149 | Source.
150 |
151 | The Corresponding Source for a work in source code form is that
152 | same work.
153 |
154 | 2. Basic Permissions.
155 |
156 | All rights granted under this License are granted for the term of
157 | copyright on the Program, and are irrevocable provided the stated
158 | conditions are met. This License explicitly affirms your unlimited
159 | permission to run the unmodified Program. The output from running a
160 | covered work is covered by this License only if the output, given its
161 | content, constitutes a covered work. This License acknowledges your
162 | rights of fair use or other equivalent, as provided by copyright law.
163 |
164 | You may make, run and propagate covered works that you do not
165 | convey, without conditions so long as your license otherwise remains
166 | in force. You may convey covered works to others for the sole purpose
167 | of having them make modifications exclusively for you, or provide you
168 | with facilities for running those works, provided that you comply with
169 | the terms of this License in conveying all material for which you do
170 | not control copyright. Those thus making or running the covered works
171 | for you must do so exclusively on your behalf, under your direction
172 | and control, on terms that prohibit them from making any copies of
173 | your copyrighted material outside their relationship with you.
174 |
175 | Conveying under any other circumstances is permitted solely under
176 | the conditions stated below. Sublicensing is not allowed; section 10
177 | makes it unnecessary.
178 |
179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
180 |
181 | No covered work shall be deemed part of an effective technological
182 | measure under any applicable law fulfilling obligations under article
183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
184 | similar laws prohibiting or restricting circumvention of such
185 | measures.
186 |
187 | When you convey a covered work, you waive any legal power to forbid
188 | circumvention of technological measures to the extent such circumvention
189 | is effected by exercising rights under this License with respect to
190 | the covered work, and you disclaim any intention to limit operation or
191 | modification of the work as a means of enforcing, against the work's
192 | users, your or third parties' legal rights to forbid circumvention of
193 | technological measures.
194 |
195 | 4. Conveying Verbatim Copies.
196 |
197 | You may convey verbatim copies of the Program's source code as you
198 | receive it, in any medium, provided that you conspicuously and
199 | appropriately publish on each copy an appropriate copyright notice;
200 | keep intact all notices stating that this License and any
201 | non-permissive terms added in accord with section 7 apply to the code;
202 | keep intact all notices of the absence of any warranty; and give all
203 | recipients a copy of this License along with the Program.
204 |
205 | You may charge any price or no price for each copy that you convey,
206 | and you may offer support or warranty protection for a fee.
207 |
208 | 5. Conveying Modified Source Versions.
209 |
210 | You may convey a work based on the Program, or the modifications to
211 | produce it from the Program, in the form of source code under the
212 | terms of section 4, provided that you also meet all of these conditions:
213 |
214 | a) The work must carry prominent notices stating that you modified
215 | it, and giving a relevant date.
216 |
217 | b) The work must carry prominent notices stating that it is
218 | released under this License and any conditions added under section
219 | 7. This requirement modifies the requirement in section 4 to
220 | "keep intact all notices".
221 |
222 | c) You must license the entire work, as a whole, under this
223 | License to anyone who comes into possession of a copy. This
224 | License will therefore apply, along with any applicable section 7
225 | additional terms, to the whole of the work, and all its parts,
226 | regardless of how they are packaged. This License gives no
227 | permission to license the work in any other way, but it does not
228 | invalidate such permission if you have separately received it.
229 |
230 | d) If the work has interactive user interfaces, each must display
231 | Appropriate Legal Notices; however, if the Program has interactive
232 | interfaces that do not display Appropriate Legal Notices, your
233 | work need not make them do so.
234 |
235 | A compilation of a covered work with other separate and independent
236 | works, which are not by their nature extensions of the covered work,
237 | and which are not combined with it such as to form a larger program,
238 | in or on a volume of a storage or distribution medium, is called an
239 | "aggregate" if the compilation and its resulting copyright are not
240 | used to limit the access or legal rights of the compilation's users
241 | beyond what the individual works permit. Inclusion of a covered work
242 | in an aggregate does not cause this License to apply to the other
243 | parts of the aggregate.
244 |
245 | 6. Conveying Non-Source Forms.
246 |
247 | You may convey a covered work in object code form under the terms
248 | of sections 4 and 5, provided that you also convey the
249 | machine-readable Corresponding Source under the terms of this License,
250 | in one of these ways:
251 |
252 | a) Convey the object code in, or embodied in, a physical product
253 | (including a physical distribution medium), accompanied by the
254 | Corresponding Source fixed on a durable physical medium
255 | customarily used for software interchange.
256 |
257 | b) Convey the object code in, or embodied in, a physical product
258 | (including a physical distribution medium), accompanied by a
259 | written offer, valid for at least three years and valid for as
260 | long as you offer spare parts or customer support for that product
261 | model, to give anyone who possesses the object code either (1) a
262 | copy of the Corresponding Source for all the software in the
263 | product that is covered by this License, on a durable physical
264 | medium customarily used for software interchange, for a price no
265 | more than your reasonable cost of physically performing this
266 | conveying of source, or (2) access to copy the
267 | Corresponding Source from a network server at no charge.
268 |
269 | c) Convey individual copies of the object code with a copy of the
270 | written offer to provide the Corresponding Source. This
271 | alternative is allowed only occasionally and noncommercially, and
272 | only if you received the object code with such an offer, in accord
273 | with subsection 6b.
274 |
275 | d) Convey the object code by offering access from a designated
276 | place (gratis or for a charge), and offer equivalent access to the
277 | Corresponding Source in the same way through the same place at no
278 | further charge. You need not require recipients to copy the
279 | Corresponding Source along with the object code. If the place to
280 | copy the object code is a network server, the Corresponding Source
281 | may be on a different server (operated by you or a third party)
282 | that supports equivalent copying facilities, provided you maintain
283 | clear directions next to the object code saying where to find the
284 | Corresponding Source. Regardless of what server hosts the
285 | Corresponding Source, you remain obligated to ensure that it is
286 | available for as long as needed to satisfy these requirements.
287 |
288 | e) Convey the object code using peer-to-peer transmission, provided
289 | you inform other peers where the object code and Corresponding
290 | Source of the work are being offered to the general public at no
291 | charge under subsection 6d.
292 |
293 | A separable portion of the object code, whose source code is excluded
294 | from the Corresponding Source as a System Library, need not be
295 | included in conveying the object code work.
296 |
297 | A "User Product" is either (1) a "consumer product", which means any
298 | tangible personal property which is normally used for personal, family,
299 | or household purposes, or (2) anything designed or sold for incorporation
300 | into a dwelling. In determining whether a product is a consumer product,
301 | doubtful cases shall be resolved in favor of coverage. For a particular
302 | product received by a particular user, "normally used" refers to a
303 | typical or common use of that class of product, regardless of the status
304 | of the particular user or of the way in which the particular user
305 | actually uses, or expects or is expected to use, the product. A product
306 | is a consumer product regardless of whether the product has substantial
307 | commercial, industrial or non-consumer uses, unless such uses represent
308 | the only significant mode of use of the product.
309 |
310 | "Installation Information" for a User Product means any methods,
311 | procedures, authorization keys, or other information required to install
312 | and execute modified versions of a covered work in that User Product from
313 | a modified version of its Corresponding Source. The information must
314 | suffice to ensure that the continued functioning of the modified object
315 | code is in no case prevented or interfered with solely because
316 | modification has been made.
317 |
318 | If you convey an object code work under this section in, or with, or
319 | specifically for use in, a User Product, and the conveying occurs as
320 | part of a transaction in which the right of possession and use of the
321 | User Product is transferred to the recipient in perpetuity or for a
322 | fixed term (regardless of how the transaction is characterized), the
323 | Corresponding Source conveyed under this section must be accompanied
324 | by the Installation Information. But this requirement does not apply
325 | if neither you nor any third party retains the ability to install
326 | modified object code on the User Product (for example, the work has
327 | been installed in ROM).
328 |
329 | The requirement to provide Installation Information does not include a
330 | requirement to continue to provide support service, warranty, or updates
331 | for a work that has been modified or installed by the recipient, or for
332 | the User Product in which it has been modified or installed. Access to a
333 | network may be denied when the modification itself materially and
334 | adversely affects the operation of the network or violates the rules and
335 | protocols for communication across the network.
336 |
337 | Corresponding Source conveyed, and Installation Information provided,
338 | in accord with this section must be in a format that is publicly
339 | documented (and with an implementation available to the public in
340 | source code form), and must require no special password or key for
341 | unpacking, reading or copying.
342 |
343 | 7. Additional Terms.
344 |
345 | "Additional permissions" are terms that supplement the terms of this
346 | License by making exceptions from one or more of its conditions.
347 | Additional permissions that are applicable to the entire Program shall
348 | be treated as though they were included in this License, to the extent
349 | that they are valid under applicable law. If additional permissions
350 | apply only to part of the Program, that part may be used separately
351 | under those permissions, but the entire Program remains governed by
352 | this License without regard to the additional permissions.
353 |
354 | When you convey a copy of a covered work, you may at your option
355 | remove any additional permissions from that copy, or from any part of
356 | it. (Additional permissions may be written to require their own
357 | removal in certain cases when you modify the work.) You may place
358 | additional permissions on material, added by you to a covered work,
359 | for which you have or can give appropriate copyright permission.
360 |
361 | Notwithstanding any other provision of this License, for material you
362 | add to a covered work, you may (if authorized by the copyright holders of
363 | that material) supplement the terms of this License with terms:
364 |
365 | a) Disclaiming warranty or limiting liability differently from the
366 | terms of sections 15 and 16 of this License; or
367 |
368 | b) Requiring preservation of specified reasonable legal notices or
369 | author attributions in that material or in the Appropriate Legal
370 | Notices displayed by works containing it; or
371 |
372 | c) Prohibiting misrepresentation of the origin of that material, or
373 | requiring that modified versions of such material be marked in
374 | reasonable ways as different from the original version; or
375 |
376 | d) Limiting the use for publicity purposes of names of licensors or
377 | authors of the material; or
378 |
379 | e) Declining to grant rights under trademark law for use of some
380 | trade names, trademarks, or service marks; or
381 |
382 | f) Requiring indemnification of licensors and authors of that
383 | material by anyone who conveys the material (or modified versions of
384 | it) with contractual assumptions of liability to the recipient, for
385 | any liability that these contractual assumptions directly impose on
386 | those licensors and authors.
387 |
388 | All other non-permissive additional terms are considered "further
389 | restrictions" within the meaning of section 10. If the Program as you
390 | received it, or any part of it, contains a notice stating that it is
391 | governed by this License along with a term that is a further
392 | restriction, you may remove that term. If a license document contains
393 | a further restriction but permits relicensing or conveying under this
394 | License, you may add to a covered work material governed by the terms
395 | of that license document, provided that the further restriction does
396 | not survive such relicensing or conveying.
397 |
398 | If you add terms to a covered work in accord with this section, you
399 | must place, in the relevant source files, a statement of the
400 | additional terms that apply to those files, or a notice indicating
401 | where to find the applicable terms.
402 |
403 | Additional terms, permissive or non-permissive, may be stated in the
404 | form of a separately written license, or stated as exceptions;
405 | the above requirements apply either way.
406 |
407 | 8. Termination.
408 |
409 | You may not propagate or modify a covered work except as expressly
410 | provided under this License. Any attempt otherwise to propagate or
411 | modify it is void, and will automatically terminate your rights under
412 | this License (including any patent licenses granted under the third
413 | paragraph of section 11).
414 |
415 | However, if you cease all violation of this License, then your
416 | license from a particular copyright holder is reinstated (a)
417 | provisionally, unless and until the copyright holder explicitly and
418 | finally terminates your license, and (b) permanently, if the copyright
419 | holder fails to notify you of the violation by some reasonable means
420 | prior to 60 days after the cessation.
421 |
422 | Moreover, your license from a particular copyright holder is
423 | reinstated permanently if the copyright holder notifies you of the
424 | violation by some reasonable means, this is the first time you have
425 | received notice of violation of this License (for any work) from that
426 | copyright holder, and you cure the violation prior to 30 days after
427 | your receipt of the notice.
428 |
429 | Termination of your rights under this section does not terminate the
430 | licenses of parties who have received copies or rights from you under
431 | this License. If your rights have been terminated and not permanently
432 | reinstated, you do not qualify to receive new licenses for the same
433 | material under section 10.
434 |
435 | 9. Acceptance Not Required for Having Copies.
436 |
437 | You are not required to accept this License in order to receive or
438 | run a copy of the Program. Ancillary propagation of a covered work
439 | occurring solely as a consequence of using peer-to-peer transmission
440 | to receive a copy likewise does not require acceptance. However,
441 | nothing other than this License grants you permission to propagate or
442 | modify any covered work. These actions infringe copyright if you do
443 | not accept this License. Therefore, by modifying or propagating a
444 | covered work, you indicate your acceptance of this License to do so.
445 |
446 | 10. Automatic Licensing of Downstream Recipients.
447 |
448 | Each time you convey a covered work, the recipient automatically
449 | receives a license from the original licensors, to run, modify and
450 | propagate that work, subject to this License. You are not responsible
451 | for enforcing compliance by third parties with this License.
452 |
453 | An "entity transaction" is a transaction transferring control of an
454 | organization, or substantially all assets of one, or subdividing an
455 | organization, or merging organizations. If propagation of a covered
456 | work results from an entity transaction, each party to that
457 | transaction who receives a copy of the work also receives whatever
458 | licenses to the work the party's predecessor in interest had or could
459 | give under the previous paragraph, plus a right to possession of the
460 | Corresponding Source of the work from the predecessor in interest, if
461 | the predecessor has it or can get it with reasonable efforts.
462 |
463 | You may not impose any further restrictions on the exercise of the
464 | rights granted or affirmed under this License. For example, you may
465 | not impose a license fee, royalty, or other charge for exercise of
466 | rights granted under this License, and you may not initiate litigation
467 | (including a cross-claim or counterclaim in a lawsuit) alleging that
468 | any patent claim is infringed by making, using, selling, offering for
469 | sale, or importing the Program or any portion of it.
470 |
471 | 11. Patents.
472 |
473 | A "contributor" is a copyright holder who authorizes use under this
474 | License of the Program or a work on which the Program is based. The
475 | work thus licensed is called the contributor's "contributor version".
476 |
477 | A contributor's "essential patent claims" are all patent claims
478 | owned or controlled by the contributor, whether already acquired or
479 | hereafter acquired, that would be infringed by some manner, permitted
480 | by this License, of making, using, or selling its contributor version,
481 | but do not include claims that would be infringed only as a
482 | consequence of further modification of the contributor version. For
483 | purposes of this definition, "control" includes the right to grant
484 | patent sublicenses in a manner consistent with the requirements of
485 | this License.
486 |
487 | Each contributor grants you a non-exclusive, worldwide, royalty-free
488 | patent license under the contributor's essential patent claims, to
489 | make, use, sell, offer for sale, import and otherwise run, modify and
490 | propagate the contents of its contributor version.
491 |
492 | In the following three paragraphs, a "patent license" is any express
493 | agreement or commitment, however denominated, not to enforce a patent
494 | (such as an express permission to practice a patent or covenant not to
495 | sue for patent infringement). To "grant" such a patent license to a
496 | party means to make such an agreement or commitment not to enforce a
497 | patent against the party.
498 |
499 | If you convey a covered work, knowingly relying on a patent license,
500 | and the Corresponding Source of the work is not available for anyone
501 | to copy, free of charge and under the terms of this License, through a
502 | publicly available network server or other readily accessible means,
503 | then you must either (1) cause the Corresponding Source to be so
504 | available, or (2) arrange to deprive yourself of the benefit of the
505 | patent license for this particular work, or (3) arrange, in a manner
506 | consistent with the requirements of this License, to extend the patent
507 | license to downstream recipients. "Knowingly relying" means you have
508 | actual knowledge that, but for the patent license, your conveying the
509 | covered work in a country, or your recipient's use of the covered work
510 | in a country, would infringe one or more identifiable patents in that
511 | country that you have reason to believe are valid.
512 |
513 | If, pursuant to or in connection with a single transaction or
514 | arrangement, you convey, or propagate by procuring conveyance of, a
515 | covered work, and grant a patent license to some of the parties
516 | receiving the covered work authorizing them to use, propagate, modify
517 | or convey a specific copy of the covered work, then the patent license
518 | you grant is automatically extended to all recipients of the covered
519 | work and works based on it.
520 |
521 | A patent license is "discriminatory" if it does not include within
522 | the scope of its coverage, prohibits the exercise of, or is
523 | conditioned on the non-exercise of one or more of the rights that are
524 | specifically granted under this License. You may not convey a covered
525 | work if you are a party to an arrangement with a third party that is
526 | in the business of distributing software, under which you make payment
527 | to the third party based on the extent of your activity of conveying
528 | the work, and under which the third party grants, to any of the
529 | parties who would receive the covered work from you, a discriminatory
530 | patent license (a) in connection with copies of the covered work
531 | conveyed by you (or copies made from those copies), or (b) primarily
532 | for and in connection with specific products or compilations that
533 | contain the covered work, unless you entered into that arrangement,
534 | or that patent license was granted, prior to 28 March 2007.
535 |
536 | Nothing in this License shall be construed as excluding or limiting
537 | any implied license or other defenses to infringement that may
538 | otherwise be available to you under applicable patent law.
539 |
540 | 12. No Surrender of Others' Freedom.
541 |
542 | If conditions are imposed on you (whether by court order, agreement or
543 | otherwise) that contradict the conditions of this License, they do not
544 | excuse you from the conditions of this License. If you cannot convey a
545 | covered work so as to satisfy simultaneously your obligations under this
546 | License and any other pertinent obligations, then as a consequence you may
547 | not convey it at all. For example, if you agree to terms that obligate you
548 | to collect a royalty for further conveying from those to whom you convey
549 | the Program, the only way you could satisfy both those terms and this
550 | License would be to refrain entirely from conveying the Program.
551 |
552 | 13. Use with the GNU Affero General Public License.
553 |
554 | Notwithstanding any other provision of this License, you have
555 | permission to link or combine any covered work with a work licensed
556 | under version 3 of the GNU Affero General Public License into a single
557 | combined work, and to convey the resulting work. The terms of this
558 | License will continue to apply to the part which is the covered work,
559 | but the special requirements of the GNU Affero General Public License,
560 | section 13, concerning interaction through a network will apply to the
561 | combination as such.
562 |
563 | 14. Revised Versions of this License.
564 |
565 | The Free Software Foundation may publish revised and/or new versions of
566 | the GNU General Public License from time to time. Such new versions will
567 | be similar in spirit to the present version, but may differ in detail to
568 | address new problems or concerns.
569 |
570 | Each version is given a distinguishing version number. If the
571 | Program specifies that a certain numbered version of the GNU General
572 | Public License "or any later version" applies to it, you have the
573 | option of following the terms and conditions either of that numbered
574 | version or of any later version published by the Free Software
575 | Foundation. If the Program does not specify a version number of the
576 | GNU General Public License, you may choose any version ever published
577 | by the Free Software Foundation.
578 |
579 | If the Program specifies that a proxy can decide which future
580 | versions of the GNU General Public License can be used, that proxy's
581 | public statement of acceptance of a version permanently authorizes you
582 | to choose that version for the Program.
583 |
584 | Later license versions may give you additional or different
585 | permissions. However, no additional obligations are imposed on any
586 | author or copyright holder as a result of your choosing to follow a
587 | later version.
588 |
589 | 15. Disclaimer of Warranty.
590 |
591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
599 |
600 | 16. Limitation of Liability.
601 |
602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
610 | SUCH DAMAGES.
611 |
612 | 17. Interpretation of Sections 15 and 16.
613 |
614 | If the disclaimer of warranty and limitation of liability provided
615 | above cannot be given local legal effect according to their terms,
616 | reviewing courts shall apply local law that most closely approximates
617 | an absolute waiver of all civil liability in connection with the
618 | Program, unless a warranty or assumption of liability accompanies a
619 | copy of the Program in return for a fee.
620 |
621 | END OF TERMS AND CONDITIONS
622 |
623 | How to Apply These Terms to Your New Programs
624 |
625 | If you develop a new program, and you want it to be of the greatest
626 | possible use to the public, the best way to achieve this is to make it
627 | free software which everyone can redistribute and change under these terms.
628 |
629 | To do so, attach the following notices to the program. It is safest
630 | to attach them to the start of each source file to most effectively
631 | state the exclusion of warranty; and each file should have at least
632 | the "copyright" line and a pointer to where the full notice is found.
633 |
634 |
635 | Copyright (C)
636 |
637 | This program is free software: you can redistribute it and/or modify
638 | it under the terms of the GNU General Public License as published by
639 | the Free Software Foundation, either version 3 of the License, or
640 | (at your option) any later version.
641 |
642 | This program is distributed in the hope that it will be useful,
643 | but WITHOUT ANY WARRANTY; without even the implied warranty of
644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
645 | GNU General Public License for more details.
646 |
647 | You should have received a copy of the GNU General Public License
648 | along with this program. If not, see .
649 |
650 | Also add information on how to contact you by electronic and paper mail.
651 |
652 | If the program does terminal interaction, make it output a short
653 | notice like this when it starts in an interactive mode:
654 |
655 | Copyright (C)
656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
657 | This is free software, and you are welcome to redistribute it
658 | under certain conditions; type `show c' for details.
659 |
660 | The hypothetical commands `show w' and `show c' should show the appropriate
661 | parts of the General Public License. Of course, your program's commands
662 | might be different; for a GUI interface, you would use an "about box".
663 |
664 | You should also get your employer (if you work as a programmer) or school,
665 | if any, to sign a "copyright disclaimer" for the program, if necessary.
666 | For more information on this, and how to apply and follow the GNU GPL, see
667 | .
668 |
669 | The GNU General Public License does not permit incorporating your program
670 | into proprietary programs. If your program is a subroutine library, you
671 | may consider it more useful to permit linking proprietary applications with
672 | the library. If this is what you want to do, use the GNU Lesser General
673 | Public License instead of this License. But first, please read
674 | .
675 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # backSpire
2 |
3 | **A TI-Nspire (CX (II)) OS downgrader**
4 |
5 | 
6 |
7 | **More info/details**: https://tiplanet.org/forum/viewtopic.php?t=25952
8 |
9 | **License**: GPLv3
10 |
--------------------------------------------------------------------------------
/backspire.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "types.h"
3 | #include "ndlessext.h"
4 | #include "nand.h"
5 | #include "screen.h"
6 | #include "utils.h"
7 | #include "charmaps.h"
8 | #include "console.h"
9 |
10 | // classic Nspire & older Nspire CX partition table
11 | static const u32 classic_parts_pages_offsets[CLASSIC_CX_NPARTS+1]={MANUF_PAGE_OFFSET,BOOT2_PAGE_OFFSET,BOOTD_PAGE_OFFSET,DIAGS_PAGE_OFFSET,FILES_PAGE_OFFSET,0};
12 |
13 | // Nspire CX2 partition table
14 | static const u32 cx2_parts_pages_offsets[CX2_NPARTS+1]={CX2_MANUF_PAGE_OFFSET,CX2_BOOTL_PAGE_OFFSET,CX2_PTTDT_PAGE_OFFSET,CX2_UNKN1_PAGE_OFFSET,CX2_DEVCR_PAGE_OFFSET,CX2_OSLDR_PAGE_OFFSET,CX2_INSTL_PAGE_OFFSET,CX2_OINST_PAGE_OFFSET,CX2_OSDAT_PAGE_OFFSET,CX2_DIAGS_PAGE_OFFSET,CX2_UNKN2_PAGE_OFFSET,CX2_OSYST_PAGE_OFFSET,CX2_LOGIN_PAGE_OFFSET,CX2_FILES_PAGE_OFFSET,0};
15 |
16 | // classic Nspire & older Nspire CX boot partitions
17 | static const char* classic_bootmodes[2]={"Boot2","Diags"};
18 |
19 | // Nspire CX2 boot partitions
20 | static const char* cx2_bootmodes[3]={"OSLoader","Installer","Diags"};
21 |
22 | extern u16 sscreen[SCREEN_PIXELS];
23 |
24 | #define LINETEXT_SIZE 128
25 |
26 | static void dispBytesNum(u16 x, u16 y, u32 val,char* suffix, int unit, int n) {
27 | setBytesColor();
28 | dispNum(x,y,val,suffix,unit,n);
29 | resetCurColor();
30 | }
31 |
32 | static void dispPagesNum(u16 x, u16 y, u32 val, char* suffix, int unit, int n) {
33 | setPagesColor();
34 | dispNum(x,y,val,suffix,unit,n);
35 | resetCurColor();
36 | }
37 |
38 | static void dispBlocksNum(u16 x, u16 y, u32 val, char* suffix, int unit, int n) {
39 | setBlocksColor();
40 | dispNum(x,y,val,suffix,unit,n);
41 | resetCurColor();
42 | }
43 |
44 | static void dispPartitionsNum(u16 x, u16 y, u8 val) {
45 | char txt[3] = {0};
46 | sprintf(txt, "%02d", val);
47 | setCurColorRGB(0,0,0);
48 | drwBufStr(x,y,txt,0,0,0);
49 | resetCurColor();
50 | }
51 |
52 | static void dispVersionStr(char* txt, int flags) {
53 | setCurColorRGB(0,0xFF,0x7F);
54 | disp(txt,flags);
55 | resetCurColor();
56 | }
57 |
58 | static void dispKey(t_key key, char* txt) {
59 | if(!isKeyPressed(key)) setCurColorRGB(0xFF,0xFF,0xFF);
60 | else setCurColorRGB(0,0xFF,0xFF);
61 | disp(txt,0);
62 | if(!strcmp(txt,"<") || !strcmp(txt,">")) {
63 | setConsoleCol(getConsoleCol()-1);
64 | disp("-",I_TRANSP);
65 | }
66 | else if(!strcmp(txt,"^") || !strcmp(txt,"v")) {
67 | setConsoleCol(getConsoleCol()-1);
68 | disp("|",I_TRANSP);
69 | }
70 | resetCurColor();
71 | }
72 |
73 | static void sprintVersion(char* txt, const u32* version_ptr) {
74 | u8 major = *(((u8*)version_ptr)+3);
75 | u8 minor = *(((u8*)version_ptr)+2);
76 | u16 build = *((u16*)version_ptr);
77 | sprintf(txt,"%d.%d.%d.%d",major,(int)(minor/10),minor%10,build);
78 | }
79 |
80 | enum {ACTION_NONE, ACTION_LEFT, ACTION_RIGHT, ACTION_UP, ACTION_DOWN, ACTION_TAB, ACTION_DEL, ACTION_REBOOT, ACTION_ESC};
81 |
82 | static int horizRate(int val, int max) {
83 | return 1+val*(SCREEN_WIDTH-3)/max;
84 | }
85 |
86 | int main(int argc, char** argv) {
87 | u8 action = ACTION_NONE;
88 | u8* buffer = malloc(MANUF_FILES_OFFSET);
89 | u8 nparts, idownpart;
90 | u8 nboots;
91 | u32 size, offset;
92 | u32* parts_pages_offsets;
93 | char** bootmodes;
94 | char txt[LINETEXT_SIZE];
95 | u8* ptr=0;
96 | u8* last_ptr;
97 | u8 signature[4];
98 | u8 i;
99 | u8 ok=1;
100 | u32* minos_ptr;
101 | u32* boot_ptr;
102 | u32* last_minos_ptr;
103 | u8 type = getHardwareType();
104 | u8 field = 0;
105 | u8 nfields = 2;
106 |
107 | initScreen();
108 | startScreen();
109 | convertRGB565(sscreen,SCR_320x240_565);
110 |
111 | while(action!=ACTION_ESC) {
112 | if (type == NS_CX2) { // CX2
113 | memcpy(signature, "DATA", 4);
114 | nparts=CX2_NPARTS;
115 | parts_pages_offsets = cx2_parts_pages_offsets;
116 | idownpart = 8;
117 | nboots = 3;
118 | bootmodes = cx2_bootmodes;
119 | }
120 | else {
121 | memcpy(signature, "\xAA\xC6\x8C\x92", 4);
122 | nparts = CLASSIC_CX_NPARTS;
123 | parts_pages_offsets = classic_parts_pages_offsets;
124 | char* buffer=malloc(MANUF_FILES_OFFSET+4);
125 | ext_read_nand(buffer,MANUF_FILES_OFFSET+4,0,0,0,NULL);
126 | idownpart = 2;
127 | nboots = 2;
128 | bootmodes = classic_bootmodes;
129 |
130 | // TI-Nspire CX/CM partition table
131 | if(!memcmp(buffer+MANUF_PTABLE_OFFSET,MANUF_PTABLE_ID,strlen(MANUF_PTABLE_ID))) {
132 | const long int offsets_offsets[CLASSIC_CX_NPARTS]={0,MANUF_BOOT2_OFFSET,MANUF_BOOTD_OFFSET,MANUF_DIAGS_OFFSET,MANUF_FILES_OFFSET};
133 | for(i=1;ibuffer:last_ptr>=buffer; last_ptr -= NAND_PAGE_SIZE) {
148 | ok = !memcmp(last_ptr, signature, 4);
149 | if(ok) break;
150 | }
151 | if(ptr < buffer || ptr > last_ptr) ptr = last_ptr;
152 | minos_ptr = ptr+(type==NS_CX2?0xC:4);
153 | boot_ptr = ptr+(type==NS_CX2?4:0x10);
154 | last_minos_ptr = last_ptr+(type==NS_CX2?0xC:4);
155 |
156 | clrBuf(getScreen());
157 | memcpy(getOffScreen(),sscreen,SCREEN_SIZE);
158 |
159 | resetConsole();
160 | resetCurColor();
161 | displn(" backSpire 1.1.1",I_TRANSP|I_BOLD);
162 |
163 | resetConsole();
164 | for(i=0;i<5;i++) displn("",0);
165 | disp(" ",I_TRANSP);
166 | switch(type) {
167 | case NS_CX2:
168 | strcpy(txt,"CX II");
169 | break;
170 | case NS_CX:
171 | strcpy(txt,"CX");
172 | break;
173 | case NS_CM:
174 | strcpy(txt,"CM");
175 | break;
176 | case NS_CL:
177 | strcpy(txt,"classic");
178 | break;
179 | case NS_OTHER:
180 | strcpy(txt,"unknown");
181 | break;
182 | }
183 | setCurColorRGB(0xFF,0x7F,0);
184 | disp(txt,I_TRANSP|I_BOLD);
185 |
186 | resetConsole();
187 | for(i=0;i<1;i++) displn("",0);
188 | if(ok) {
189 | if(*last_minos_ptr) {
190 | sprintVersion(txt, last_minos_ptr);
191 | setCurColorRGB(0xFF,0,0);
192 | disp("OS < ",I_TRANSP);
193 | dispVersionStr(txt,0);
194 | setCurColorRGB(0xFF,0,0);
195 | displn(" forbidden",I_TRANSP);
196 | }
197 | else {
198 | setCurColorRGB(0,0x7F,0);
199 | displn("Any OS allowed",I_TRANSP);
200 | }
201 | }
202 | else displn("",I_TRANSP);
203 |
204 | if(ok) {
205 | resetConsole();
206 | for(i=0;i<2;i++) displn("",I_TRANSP);
207 | setInactiveColor();
208 | displn("To install an older OS:",I_TRANSP|I_BOLD);
209 | if(*last_minos_ptr) displn("- Patch minOS on active page",I_TRANSP|I_BOLD);
210 | if(type==NS_CX2) {
211 | displn("- Reboot into maintenance menu",I_TRANSP|I_BOLD);
212 | displn("- Delete the current OS",I_TRANSP|I_BOLD);
213 | displn("- Reboot once completed",I_TRANSP|I_BOLD);
214 | displn("- Send the older OS",I_TRANSP|I_BOLD);
215 | }
216 | else {
217 | displn("- Exit this program",I_TRANSP|I_BOLD);
218 | displn("- Send the older OS",I_TRANSP|I_BOLD);
219 | }
220 | }
221 |
222 | setInactiveColor();
223 | u16 y0 = 9*CHAR_HEIGHT;
224 | u16 y = y0+2;
225 | u16 lmargin = 2;
226 | u16 x = SCREEN_WIDTH/2-4*CHAR_WIDTH;
227 | u16 x1 = 7*CHAR_WIDTH;
228 | u16 x2 = x+7*CHAR_WIDTH;
229 | drwBufStr(lmargin,y, " Flash NAND",0,1,0);
230 | drwBufStr(x+lmargin,y," BootData partition",0,1,0);
231 | y += CHAR_HEIGHT+1;
232 | drwBufHoriz(y,0,SCREEN_WIDTH-1);
233 | y+=1;
234 | drwBufStr(lmargin,y,"parts:",0,1,0);
235 | dispPartitionsNum(x1,y,nparts);
236 | setInactiveColor();
237 | drwBufStr(x+lmargin,y,"part :",0,1,0);
238 | dispPartitionsNum(x2,y,idownpart);
239 | y += CHAR_HEIGHT;
240 | setInactiveColor();
241 | drwBufStr(lmargin,y,"size :",0,1,0);
242 | dispBlocksNum(x1,y,parts_pages_offsets[nparts]/(NAND_BLOCK_SIZE/NAND_PAGE_SIZE),"blocks",1,3);
243 | setInactiveColor();
244 | drwBufStr(x+lmargin,y,"start:",0,1,0);
245 | dispBlocksNum(x2,y,offset/NAND_BLOCK_SIZE,"b",1,3);
246 | dispPagesNum(x2+6*CHAR_WIDTH,y,offset/NAND_PAGE_SIZE,"p",1,5);
247 | dispBytesNum(x2+14*CHAR_WIDTH,y,offset,"B",1,7);
248 | y += CHAR_HEIGHT;
249 | dispPagesNum(x1-2*CHAR_WIDTH,y,parts_pages_offsets[nparts],"pages",1,5);
250 | setInactiveColor();
251 | drwBufStr(x+lmargin,y,"end :",0,1,0);
252 | dispBlocksNum(x2,y,(offset+size)/NAND_BLOCK_SIZE-1,"b",1,3);
253 | dispPagesNum(x2+6*CHAR_WIDTH,y,(offset+size)/NAND_PAGE_SIZE-1,"p",1,5);
254 | dispBytesNum(x2+14*CHAR_WIDTH,y,offset+size-1,"B",1,7);
255 | y += CHAR_HEIGHT;
256 | dispBytesNum(x1-4*CHAR_WIDTH,y,parts_pages_offsets[nparts]*NAND_PAGE_SIZE,"Bytes",1,7);
257 | setInactiveColor();
258 | drwBufStr(x+lmargin,y,"size :",0,1,0);
259 | dispBlocksNum(x2,y,size/NAND_BLOCK_SIZE,"b",1,3);
260 | dispPagesNum(x2+6*CHAR_WIDTH,y,size/NAND_PAGE_SIZE,"p",1,5);
261 | dispBytesNum(x2+14*CHAR_WIDTH,y,size,"B",1,7);
262 | y += CHAR_HEIGHT;
263 | setBlocksColor();
264 | invertCurColorRGB();
265 | drwBufStr(lmargin,y,"block=",0,1,0);
266 | dispPagesNum(lmargin+6*CHAR_WIDTH,y,NAND_BLOCK_SIZE/NAND_PAGE_SIZE,"p",1,2);
267 | setPagesColor();
268 | invertCurColorRGB();
269 | drwBufStr(lmargin+11*CHAR_WIDTH,y,"page=",0,1,0);
270 | dispBytesNum(lmargin+16*CHAR_WIDTH,y,NAND_PAGE_SIZE,"B",1,3);
271 | setInactiveColor();
272 | drwBufStr(x+lmargin,y,"used :",0,1,0);
273 | dispPagesNum(x2,y,(last_ptr-buffer)/NAND_PAGE_SIZE+ok,"/",0,5);
274 | dispPagesNum(x2+6*CHAR_WIDTH,y,size/NAND_PAGE_SIZE,"pages",1,5);
275 | y += CHAR_HEIGHT;
276 | setInactiveColor();
277 | drwBufBox(0,y0,SCREEN_WIDTH-1,y);
278 | drwBufVert(x,y0,y);
279 |
280 | resetConsole();
281 | resetCurColor();
282 | for(i=0;i<18;i++) displn("",I_TRANSP);
283 |
284 | if(!ok) {
285 | setCurColorRGB(0xFF,0,0);
286 | displn("Unsupported partition content !",I_TRANSP);
287 | resetCurColor();
288 | displn("Press any key to exit...",I_TRANSP);
289 | showScreen();
290 | while(any_key_pressed());
291 | while(!any_key_pressed());
292 | while(any_key_pressed());
293 | break;
294 | }
295 |
296 | resetConsole();
297 | for(i=0;i<18;i++) displn("",0);
298 |
299 | y0=getConsoleRow()*CHAR_HEIGHT-CHAR_HEIGHT-4;
300 | y=y0+CHAR_HEIGHT+3;
301 |
302 | drwBufBox(0,y0,SCREEN_WIDTH-1,y);
303 | u8* tptr;
304 | for(tptr=buffer;tptr=nboots) bootmode = nboots-1;
345 | disp(bootmodes[bootmode],I_TRANSP);
346 | resetCurColor();
347 |
348 | action = ACTION_NONE;
349 | while(action==ACTION_NONE || (action!=ACTION_LEFT && action!=ACTION_RIGHT && any_key_pressed())) {
350 | static const u32 nullVersion = 0;
351 | resetConsole();
352 | for(i=0;i<21;i++) displn("",I_TRANSP);
353 | drwBufHoriz(getConsoleRow()*CHAR_HEIGHT-1,0,SCREEN_WIDTH-1);
354 | dispKey(KEY_NSPIRE_TAB,"tab");
355 | disp(": patch minimum allowed OS version to ",I_TRANSP);
356 | sprintVersion(txt, &nullVersion);
357 | dispVersionStr(txt,0);
358 | displn("",I_TRANSP);
359 | if(is_touchpad) {
360 | dispKey(KEY_NSPIRE_DOC,"doc");
361 | disp(" + ",I_TRANSP);
362 | dispKey(KEY_NSPIRE_ENTER,"enter");
363 | disp(" + ",I_TRANSP);
364 | dispKey(KEY_NSPIRE_EE,"EE");
365 | }
366 | else {
367 | dispKey(KEY_NSPIRE_HOME,"home");
368 | disp(" + ",I_TRANSP);
369 | dispKey(KEY_NSPIRE_ENTER,"enter");
370 | disp(" + ",I_TRANSP);
371 | dispKey(KEY_NSPIRE_P,"P");
372 | }
373 | displn(": reboot into maintenance menu (hold)",I_TRANSP);
374 | dispKey(KEY_NSPIRE_ESC,"esc");
375 | disp(": exit ",I_TRANSP);
376 | dispKey(KEY_NSPIRE_LEFT,"<");
377 | dispKey(KEY_NSPIRE_RIGHT,">");
378 | disp(": prev/next page ",I_TRANSP);
379 | dispKey(KEY_NSPIRE_UP,"^");
380 | dispKey(KEY_NSPIRE_DOWN,"v");
381 | displn(": prev/next field",I_TRANSP);
382 | showScreen();
383 |
384 | if(isKeyPressed(KEY_NSPIRE_ESC)) action=ACTION_ESC;
385 | else if(isKeyPressed(KEY_NSPIRE_TAB)) action=ACTION_TAB;
386 | else if(isKeyPressed(KEY_NSPIRE_LEFT)) action=ACTION_LEFT;
387 | else if(isKeyPressed(KEY_NSPIRE_RIGHT)) action=ACTION_RIGHT;
388 | else if(isKeyPressed(KEY_NSPIRE_UP)) action=ACTION_UP;
389 | else if(isKeyPressed(KEY_NSPIRE_DOWN)) action=ACTION_DOWN;
390 | else if(isKeyPressed(KEY_NSPIRE_DEL)) action=ACTION_DEL;
391 |
392 | if( (is_touchpad && isKeyPressed(KEY_NSPIRE_DOC) && isKeyPressed(KEY_NSPIRE_ENTER) && isKeyPressed(KEY_NSPIRE_EE))
393 | || (!is_touchpad && isKeyPressed(KEY_NSPIRE_HOME) && isKeyPressed(KEY_NSPIRE_ENTER) && isKeyPressed(KEY_NSPIRE_P))) {
394 | action = ACTION_REBOOT;
395 | break;
396 | }
397 | }
398 |
399 | if(action==ACTION_LEFT) {
400 | if(ptr > buffer && (type < NS_CX2 || ptr - NAND_PAGE_SIZE > buffer)) ptr -= NAND_PAGE_SIZE;
401 | }
402 | else if(action==ACTION_RIGHT) {
403 | if(ptr < last_ptr) ptr += NAND_PAGE_SIZE;
404 | }
405 | if(action==ACTION_UP) {
406 | if(field>0) field--;
407 | }
408 | else if(action==ACTION_DOWN) {
409 | if(field+1=nboots) *boot_ptr=0;
420 | }
421 | }
422 | else if(action==ACTION_DEL) {
423 | memset(ptr,0xFF,NAND_PAGE_SIZE);
424 | ptr -= NAND_PAGE_SIZE;
425 | }
426 | ext_erase_nand(offset, offset+size-1);
427 | ext_write_nand(buffer, size, offset);
428 | }
429 |
430 | }
431 | stopScreen();
432 | free(buffer);
433 | return 0;
434 | }
435 |
--------------------------------------------------------------------------------
/charmaps.h:
--------------------------------------------------------------------------------
1 | /* gameplaySP
2 | *
3 | * Copyright (C) 2006 Exophase
4 | *
5 | * This program is free software; you can redistribute it and/or
6 | * modify it under the terms of the GNU General Public License as
7 | * published by the Free Software Foundation; either version 2 of
8 | * the License, or (at your option) any later version.
9 | *
10 | * This program is distributed in the hope that it will be useful,
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 | * General Public License for more details.
14 | *
15 | * You should have received a copy of the GNU General Public License
16 | * along with this program; if not, write to the Free Software
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 | */
19 |
20 | /* Generated by convbdf on Fri Aug 18 17:44:10 2006. */
21 | /* Slightly modified by Exophase. Big thanks to ajs for converting this! */
22 |
23 | #define CHAR_WIDTH 6
24 | #define CHAR_HEIGHT 10
25 |
26 | /* Font information:
27 | name: 6x10
28 | facename: -Misc-Fixed-Medium-R-Normal--10-100-75-75-C-60-ISO8859-1
29 | w x h: 6x10
30 | size: 256
31 | ascent: 8
32 | descent: 2
33 | first char: 0 (0x00)
34 | last char: 255 (0xff)
35 | default char: 0 (0x00)
36 | proportional: no
37 | Public domain terminal emulator font. Share and enjoy.
38 | */
39 |
40 | /* Font character bitmap data. */
41 | static const unsigned char _font_bits[][CHAR_HEIGHT] =
42 | {
43 | /* Character 0 (0x00):
44 | width 6
45 | +------+
46 | | |
47 | |* * * |
48 | | |
49 | |* * |
50 | | |
51 | |* * |
52 | | |
53 | |* * * |
54 | | |
55 | | |
56 | +------+ */
57 | 0x00,
58 | 0xa8,
59 | 0x00,
60 | 0x88,
61 | 0x00,
62 | 0x88,
63 | 0x00,
64 | 0xa8,
65 | 0x00,
66 | 0x00,
67 |
68 | /* Character 1 (0x01):
69 | width 6
70 | +------+
71 | | |
72 | | |
73 | | * |
74 | | *** |
75 | |***** |
76 | | *** |
77 | | * |
78 | | |
79 | | |
80 | | |
81 | +------+ */
82 | 0x00,
83 | 0x00,
84 | 0x20,
85 | 0x70,
86 | 0xf8,
87 | 0x70,
88 | 0x20,
89 | 0x00,
90 | 0x00,
91 | 0x00,
92 |
93 | /* Character 2 (0x02):
94 | width 6
95 | +------+
96 | |* * * |
97 | | * * *|
98 | |* * * |
99 | | * * *|
100 | |* * * |
101 | | * * *|
102 | |* * * |
103 | | * * *|
104 | |* * * |
105 | | * * *|
106 | +------+ */
107 | 0xa8,
108 | 0x54,
109 | 0xa8,
110 | 0x54,
111 | 0xa8,
112 | 0x54,
113 | 0xa8,
114 | 0x54,
115 | 0xa8,
116 | 0x54,
117 |
118 | /* Character 3 (0x03):
119 | width 6
120 | +------+
121 | | |
122 | |* * |
123 | |* * |
124 | |**** |
125 | |* * |
126 | |* * |
127 | | **** |
128 | | * |
129 | | * |
130 | | * |
131 | +------+ */
132 | 0x00,
133 | 0x90,
134 | 0x90,
135 | 0xf0,
136 | 0x90,
137 | 0x90,
138 | 0x78,
139 | 0x10,
140 | 0x10,
141 | 0x10,
142 |
143 | /* Character 4 (0x04):
144 | width 6
145 | +------+
146 | | |
147 | |*** |
148 | |* |
149 | |** |
150 | |* |
151 | |* *** |
152 | | * |
153 | | ** |
154 | | * |
155 | | * |
156 | +------+ */
157 | 0x00,
158 | 0xe0,
159 | 0x80,
160 | 0xc0,
161 | 0x80,
162 | 0xb8,
163 | 0x20,
164 | 0x30,
165 | 0x20,
166 | 0x20,
167 |
168 | /* Character 5 (0x05):
169 | width 6
170 | +------+
171 | | |
172 | | *** |
173 | |* |
174 | |* |
175 | | *** |
176 | | *** |
177 | | * * |
178 | | *** |
179 | | * * |
180 | | * * |
181 | +------+ */
182 | 0x00,
183 | 0x70,
184 | 0x80,
185 | 0x80,
186 | 0x70,
187 | 0x70,
188 | 0x48,
189 | 0x70,
190 | 0x48,
191 | 0x48,
192 |
193 | /* Character 6 (0x06):
194 | width 6
195 | +------+
196 | | |
197 | |* |
198 | |* |
199 | |* |
200 | |**** |
201 | | **** |
202 | | * |
203 | | *** |
204 | | * |
205 | | * |
206 | +------+ */
207 | 0x00,
208 | 0x80,
209 | 0x80,
210 | 0x80,
211 | 0xf0,
212 | 0x78,
213 | 0x40,
214 | 0x70,
215 | 0x40,
216 | 0x40,
217 |
218 | /* Character 7 (0x07):
219 | width 6
220 | +------+
221 | | |
222 | | * |
223 | | * * |
224 | | * |
225 | | |
226 | | |
227 | | |
228 | | |
229 | | |
230 | | |
231 | +------+ */
232 | 0x00,
233 | 0x20,
234 | 0x50,
235 | 0x20,
236 | 0x00,
237 | 0x00,
238 | 0x00,
239 | 0x00,
240 | 0x00,
241 | 0x00,
242 |
243 | /* Character 8 (0x08):
244 | width 6
245 | +------+
246 | | |
247 | | |
248 | | * |
249 | | * |
250 | |***** |
251 | | * |
252 | | * |
253 | |***** |
254 | | |
255 | | |
256 | +------+ */
257 | 0x00,
258 | 0x00,
259 | 0x20,
260 | 0x20,
261 | 0xf8,
262 | 0x20,
263 | 0x20,
264 | 0xf8,
265 | 0x00,
266 | 0x00,
267 |
268 | /* Character 9 (0x09):
269 | width 6
270 | +------+
271 | | |
272 | |* * |
273 | |** * |
274 | |** * |
275 | |* ** |
276 | |* * |
277 | | * |
278 | | * |
279 | | * |
280 | | **** |
281 | +------+ */
282 | 0x00,
283 | 0x90,
284 | 0xd0,
285 | 0xd0,
286 | 0xb0,
287 | 0x90,
288 | 0x40,
289 | 0x40,
290 | 0x40,
291 | 0x78,
292 |
293 | /* Character 10 (0x0a):
294 | width 6
295 | +------+
296 | | |
297 | |* * |
298 | |* * |
299 | | ** |
300 | | * |
301 | | **** |
302 | | * |
303 | | * |
304 | | * |
305 | | * |
306 | +------+ */
307 | 0x00,
308 | 0x90,
309 | 0x90,
310 | 0x60,
311 | 0x40,
312 | 0x78,
313 | 0x10,
314 | 0x10,
315 | 0x10,
316 | 0x10,
317 |
318 | /* Character 11 (0x0b):
319 | width 6
320 | +------+
321 | | * |
322 | | * |
323 | | * |
324 | | * |
325 | | * |
326 | |*** |
327 | | |
328 | | |
329 | | |
330 | | |
331 | +------+ */
332 | 0x20,
333 | 0x20,
334 | 0x20,
335 | 0x20,
336 | 0x20,
337 | 0xe0,
338 | 0x00,
339 | 0x00,
340 | 0x00,
341 | 0x00,
342 |
343 | /* Character 12 (0x0c):
344 | width 6
345 | +------+
346 | | |
347 | | |
348 | | |
349 | | |
350 | | |
351 | |*** |
352 | | * |
353 | | * |
354 | | * |
355 | | * |
356 | +------+ */
357 | 0x00,
358 | 0x00,
359 | 0x00,
360 | 0x00,
361 | 0x00,
362 | 0xe0,
363 | 0x20,
364 | 0x20,
365 | 0x20,
366 | 0x20,
367 |
368 | /* Character 13 (0x0d):
369 | width 6
370 | +------+
371 | | |
372 | | |
373 | | |
374 | | |
375 | | |
376 | | ****|
377 | | * |
378 | | * |
379 | | * |
380 | | * |
381 | +------+ */
382 | 0x00,
383 | 0x00,
384 | 0x00,
385 | 0x00,
386 | 0x00,
387 | 0x3c,
388 | 0x20,
389 | 0x20,
390 | 0x20,
391 | 0x20,
392 |
393 | /* Character 14 (0x0e):
394 | width 6
395 | +------+
396 | | * |
397 | | * |
398 | | * |
399 | | * |
400 | | * |
401 | | ****|
402 | | |
403 | | |
404 | | |
405 | | |
406 | +------+ */
407 | 0x20,
408 | 0x20,
409 | 0x20,
410 | 0x20,
411 | 0x20,
412 | 0x3c,
413 | 0x00,
414 | 0x00,
415 | 0x00,
416 | 0x00,
417 |
418 | /* Character 15 (0x0f):
419 | width 6
420 | +------+
421 | | * |
422 | | * |
423 | | * |
424 | | * |
425 | | * |
426 | |******|
427 | | * |
428 | | * |
429 | | * |
430 | | * |
431 | +------+ */
432 | 0x20,
433 | 0x20,
434 | 0x20,
435 | 0x20,
436 | 0x20,
437 | 0xfc,
438 | 0x20,
439 | 0x20,
440 | 0x20,
441 | 0x20,
442 |
443 | /* Character 16 (0x10):
444 | width 6
445 | +------+
446 | |******|
447 | | |
448 | | |
449 | | |
450 | | |
451 | | |
452 | | |
453 | | |
454 | | |
455 | | |
456 | +------+ */
457 | 0xfc,
458 | 0x00,
459 | 0x00,
460 | 0x00,
461 | 0x00,
462 | 0x00,
463 | 0x00,
464 | 0x00,
465 | 0x00,
466 | 0x00,
467 |
468 | /* Character 17 (0x11):
469 | width 6
470 | +------+
471 | | |
472 | | |
473 | |******|
474 | | |
475 | | |
476 | | |
477 | | |
478 | | |
479 | | |
480 | | |
481 | +------+ */
482 | 0x00,
483 | 0x00,
484 | 0xfc,
485 | 0x00,
486 | 0x00,
487 | 0x00,
488 | 0x00,
489 | 0x00,
490 | 0x00,
491 | 0x00,
492 |
493 | /* Character 18 (0x12):
494 | width 6
495 | +------+
496 | | |
497 | | |
498 | | |
499 | | |
500 | | |
501 | |******|
502 | | |
503 | | |
504 | | |
505 | | |
506 | +------+ */
507 | 0x00,
508 | 0x00,
509 | 0x00,
510 | 0x00,
511 | 0x00,
512 | 0xfc,
513 | 0x00,
514 | 0x00,
515 | 0x00,
516 | 0x00,
517 |
518 | /* Character 19 (0x13):
519 | width 6
520 | +------+
521 | | |
522 | | |
523 | | |
524 | | |
525 | | |
526 | | |
527 | | |
528 | |******|
529 | | |
530 | | |
531 | +------+ */
532 | 0x00,
533 | 0x00,
534 | 0x00,
535 | 0x00,
536 | 0x00,
537 | 0x00,
538 | 0x00,
539 | 0xfc,
540 | 0x00,
541 | 0x00,
542 |
543 | /* Character 20 (0x14):
544 | width 6
545 | +------+
546 | | |
547 | | |
548 | | |
549 | | |
550 | | |
551 | | |
552 | | |
553 | | |
554 | | |
555 | |******|
556 | +------+ */
557 | 0x00,
558 | 0x00,
559 | 0x00,
560 | 0x00,
561 | 0x00,
562 | 0x00,
563 | 0x00,
564 | 0x00,
565 | 0x00,
566 | 0xfc,
567 |
568 | /* Character 21 (0x15):
569 | width 6
570 | +------+
571 | | * |
572 | | * |
573 | | * |
574 | | * |
575 | | * |
576 | | ****|
577 | | * |
578 | | * |
579 | | * |
580 | | * |
581 | +------+ */
582 | 0x20,
583 | 0x20,
584 | 0x20,
585 | 0x20,
586 | 0x20,
587 | 0x3c,
588 | 0x20,
589 | 0x20,
590 | 0x20,
591 | 0x20,
592 |
593 | /* Character 22 (0x16):
594 | width 6
595 | +------+
596 | | * |
597 | | * |
598 | | * |
599 | | * |
600 | | * |
601 | |*** |
602 | | * |
603 | | * |
604 | | * |
605 | | * |
606 | +------+ */
607 | 0x20,
608 | 0x20,
609 | 0x20,
610 | 0x20,
611 | 0x20,
612 | 0xe0,
613 | 0x20,
614 | 0x20,
615 | 0x20,
616 | 0x20,
617 |
618 | /* Character 23 (0x17):
619 | width 6
620 | +------+
621 | | * |
622 | | * |
623 | | * |
624 | | * |
625 | | * |
626 | |******|
627 | | |
628 | | |
629 | | |
630 | | |
631 | +------+ */
632 | 0x20,
633 | 0x20,
634 | 0x20,
635 | 0x20,
636 | 0x20,
637 | 0xfc,
638 | 0x00,
639 | 0x00,
640 | 0x00,
641 | 0x00,
642 |
643 | /* Character 24 (0x18):
644 | width 6
645 | +------+
646 | | |
647 | | |
648 | | |
649 | | |
650 | | |
651 | |******|
652 | | * |
653 | | * |
654 | | * |
655 | | * |
656 | +------+ */
657 | 0x00,
658 | 0x00,
659 | 0x00,
660 | 0x00,
661 | 0x00,
662 | 0xfc,
663 | 0x20,
664 | 0x20,
665 | 0x20,
666 | 0x20,
667 |
668 | /* Character 25 (0x19):
669 | width 6
670 | +------+
671 | | * |
672 | | * |
673 | | * |
674 | | * |
675 | | * |
676 | | * |
677 | | * |
678 | | * |
679 | | * |
680 | | * |
681 | +------+ */
682 | 0x20,
683 | 0x20,
684 | 0x20,
685 | 0x20,
686 | 0x20,
687 | 0x20,
688 | 0x20,
689 | 0x20,
690 | 0x20,
691 | 0x20,
692 |
693 | /* Character 26 (0x1a):
694 | width 6
695 | +------+
696 | | |
697 | | ** |
698 | | ** |
699 | |* |
700 | | ** |
701 | | ** |
702 | | |
703 | |***** |
704 | | |
705 | | |
706 | +------+ */
707 | 0x00,
708 | 0x18,
709 | 0x60,
710 | 0x80,
711 | 0x60,
712 | 0x18,
713 | 0x00,
714 | 0xf8,
715 | 0x00,
716 | 0x00,
717 |
718 | /* Character 27 (0x1b):
719 | width 6
720 | +------+
721 | | |
722 | |** |
723 | | ** |
724 | | * |
725 | | ** |
726 | |** |
727 | | |
728 | |***** |
729 | | |
730 | | |
731 | +------+ */
732 | 0x00,
733 | 0xc0,
734 | 0x30,
735 | 0x08,
736 | 0x30,
737 | 0xc0,
738 | 0x00,
739 | 0xf8,
740 | 0x00,
741 | 0x00,
742 |
743 | /* Character 28 (0x1c):
744 | width 6
745 | +------+
746 | | |
747 | | |
748 | | |
749 | |***** |
750 | | * * |
751 | | * * |
752 | | * * |
753 | | * * |
754 | | |
755 | | |
756 | +------+ */
757 | 0x00,
758 | 0x00,
759 | 0x00,
760 | 0xf8,
761 | 0x50,
762 | 0x50,
763 | 0x50,
764 | 0x50,
765 | 0x00,
766 | 0x00,
767 |
768 | /* Character 29 (0x1d):
769 | width 6
770 | +------+
771 | | |
772 | | * |
773 | | * |
774 | |***** |
775 | | * |
776 | |***** |
777 | | * |
778 | |* |
779 | | |
780 | | |
781 | +------+ */
782 | 0x00,
783 | 0x08,
784 | 0x10,
785 | 0xf8,
786 | 0x20,
787 | 0xf8,
788 | 0x40,
789 | 0x80,
790 | 0x00,
791 | 0x00,
792 |
793 | /* Character 30 (0x1e):
794 | width 6
795 | +------+
796 | | |
797 | | ** |
798 | | * * |
799 | | * |
800 | |*** |
801 | | * |
802 | | * * |
803 | |* ** |
804 | | |
805 | | |
806 | +------+ */
807 | 0x00,
808 | 0x30,
809 | 0x48,
810 | 0x40,
811 | 0xe0,
812 | 0x40,
813 | 0x48,
814 | 0xb0,
815 | 0x00,
816 | 0x00,
817 |
818 | /* Character 31 (0x1f):
819 | width 6
820 | +------+
821 | | |
822 | | |
823 | | |
824 | | |
825 | | * |
826 | | |
827 | | |
828 | | |
829 | | |
830 | | |
831 | +------+ */
832 | 0x00,
833 | 0x00,
834 | 0x00,
835 | 0x00,
836 | 0x20,
837 | 0x00,
838 | 0x00,
839 | 0x00,
840 | 0x00,
841 | 0x00,
842 |
843 | /* Character 32 (0x20):
844 | width 6
845 | +------+
846 | | |
847 | | |
848 | | |
849 | | |
850 | | |
851 | | |
852 | | |
853 | | |
854 | | |
855 | | |
856 | +------+ */
857 | 0x00,
858 | 0x00,
859 | 0x00,
860 | 0x00,
861 | 0x00,
862 | 0x00,
863 | 0x00,
864 | 0x00,
865 | 0x00,
866 | 0x00,
867 |
868 | /* Character 33 (0x21):
869 | width 6
870 | +------+
871 | | |
872 | | * |
873 | | * |
874 | | * |
875 | | * |
876 | | * |
877 | | |
878 | | * |
879 | | |
880 | | |
881 | +------+ */
882 | 0x00,
883 | 0x20,
884 | 0x20,
885 | 0x20,
886 | 0x20,
887 | 0x20,
888 | 0x00,
889 | 0x20,
890 | 0x00,
891 | 0x00,
892 |
893 | /* Character 34 (0x22):
894 | width 6
895 | +------+
896 | | |
897 | | * * |
898 | | * * |
899 | | * * |
900 | | |
901 | | |
902 | | |
903 | | |
904 | | |
905 | | |
906 | +------+ */
907 | 0x00,
908 | 0x50,
909 | 0x50,
910 | 0x50,
911 | 0x00,
912 | 0x00,
913 | 0x00,
914 | 0x00,
915 | 0x00,
916 | 0x00,
917 |
918 | /* Character 35 (0x23):
919 | width 6
920 | +------+
921 | | |
922 | | * * |
923 | | * * |
924 | |***** |
925 | | * * |
926 | |***** |
927 | | * * |
928 | | * * |
929 | | |
930 | | |
931 | +------+ */
932 | 0x00,
933 | 0x50,
934 | 0x50,
935 | 0xf8,
936 | 0x50,
937 | 0xf8,
938 | 0x50,
939 | 0x50,
940 | 0x00,
941 | 0x00,
942 |
943 | /* Character 36 (0x24):
944 | width 6
945 | +------+
946 | | |
947 | | * |
948 | | *** |
949 | |* * |
950 | | *** |
951 | | * * |
952 | | *** |
953 | | * |
954 | | |
955 | | |
956 | +------+ */
957 | 0x00,
958 | 0x20,
959 | 0x70,
960 | 0xa0,
961 | 0x70,
962 | 0x28,
963 | 0x70,
964 | 0x20,
965 | 0x00,
966 | 0x00,
967 |
968 | /* Character 37 (0x25):
969 | width 6
970 | +------+
971 | | |
972 | | * * |
973 | |* * * |
974 | | * * |
975 | | * |
976 | | * * |
977 | |* * * |
978 | |* * |
979 | | |
980 | | |
981 | +------+ */
982 | 0x00,
983 | 0x48,
984 | 0xa8,
985 | 0x50,
986 | 0x20,
987 | 0x50,
988 | 0xa8,
989 | 0x90,
990 | 0x00,
991 | 0x00,
992 |
993 | /* Character 38 (0x26):
994 | width 6
995 | +------+
996 | | |
997 | | * |
998 | |* * |
999 | |* * |
1000 | | * |
1001 | |* * * |
1002 | |* * |
1003 | | ** * |
1004 | | |
1005 | | |
1006 | +------+ */
1007 | 0x00,
1008 | 0x40,
1009 | 0xa0,
1010 | 0xa0,
1011 | 0x40,
1012 | 0xa8,
1013 | 0x90,
1014 | 0x68,
1015 | 0x00,
1016 | 0x00,
1017 |
1018 | /* Character 39 (0x27):
1019 | width 6
1020 | +------+
1021 | | |
1022 | | * |
1023 | | * |
1024 | | * |
1025 | | |
1026 | | |
1027 | | |
1028 | | |
1029 | | |
1030 | | |
1031 | +------+ */
1032 | 0x00,
1033 | 0x20,
1034 | 0x20,
1035 | 0x20,
1036 | 0x00,
1037 | 0x00,
1038 | 0x00,
1039 | 0x00,
1040 | 0x00,
1041 | 0x00,
1042 |
1043 | /* Character 40 (0x28):
1044 | width 6
1045 | +------+
1046 | | |
1047 | | * |
1048 | | * |
1049 | | * |
1050 | | * |
1051 | | * |
1052 | | * |
1053 | | * |
1054 | | |
1055 | | |
1056 | +------+ */
1057 | 0x00,
1058 | 0x10,
1059 | 0x20,
1060 | 0x40,
1061 | 0x40,
1062 | 0x40,
1063 | 0x20,
1064 | 0x10,
1065 | 0x00,
1066 | 0x00,
1067 |
1068 | /* Character 41 (0x29):
1069 | width 6
1070 | +------+
1071 | | |
1072 | | * |
1073 | | * |
1074 | | * |
1075 | | * |
1076 | | * |
1077 | | * |
1078 | | * |
1079 | | |
1080 | | |
1081 | +------+ */
1082 | 0x00,
1083 | 0x40,
1084 | 0x20,
1085 | 0x10,
1086 | 0x10,
1087 | 0x10,
1088 | 0x20,
1089 | 0x40,
1090 | 0x00,
1091 | 0x00,
1092 |
1093 | /* Character 42 (0x2a):
1094 | width 6
1095 | +------+
1096 | | |
1097 | | |
1098 | |* * |
1099 | | * * |
1100 | |***** |
1101 | | * * |
1102 | |* * |
1103 | | |
1104 | | |
1105 | | |
1106 | +------+ */
1107 | 0x00,
1108 | 0x00,
1109 | 0x88,
1110 | 0x50,
1111 | 0xf8,
1112 | 0x50,
1113 | 0x88,
1114 | 0x00,
1115 | 0x00,
1116 | 0x00,
1117 |
1118 | /* Character 43 (0x2b):
1119 | width 6
1120 | +------+
1121 | | |
1122 | | |
1123 | | * |
1124 | | * |
1125 | |***** |
1126 | | * |
1127 | | * |
1128 | | |
1129 | | |
1130 | | |
1131 | +------+ */
1132 | 0x00,
1133 | 0x00,
1134 | 0x20,
1135 | 0x20,
1136 | 0xf8,
1137 | 0x20,
1138 | 0x20,
1139 | 0x00,
1140 | 0x00,
1141 | 0x00,
1142 |
1143 | /* Character 44 (0x2c):
1144 | width 6
1145 | +------+
1146 | | |
1147 | | |
1148 | | |
1149 | | |
1150 | | |
1151 | | |
1152 | | ** |
1153 | | * |
1154 | | * |
1155 | | |
1156 | +------+ */
1157 | 0x00,
1158 | 0x00,
1159 | 0x00,
1160 | 0x00,
1161 | 0x00,
1162 | 0x00,
1163 | 0x30,
1164 | 0x20,
1165 | 0x40,
1166 | 0x00,
1167 |
1168 | /* Character 45 (0x2d):
1169 | width 6
1170 | +------+
1171 | | |
1172 | | |
1173 | | |
1174 | | |
1175 | |***** |
1176 | | |
1177 | | |
1178 | | |
1179 | | |
1180 | | |
1181 | +------+ */
1182 | 0x00,
1183 | 0x00,
1184 | 0x00,
1185 | 0x00,
1186 | 0xf8,
1187 | 0x00,
1188 | 0x00,
1189 | 0x00,
1190 | 0x00,
1191 | 0x00,
1192 |
1193 | /* Character 46 (0x2e):
1194 | width 6
1195 | +------+
1196 | | |
1197 | | |
1198 | | |
1199 | | |
1200 | | |
1201 | | |
1202 | | * |
1203 | | *** |
1204 | | * |
1205 | | |
1206 | +------+ */
1207 | 0x00,
1208 | 0x00,
1209 | 0x00,
1210 | 0x00,
1211 | 0x00,
1212 | 0x00,
1213 | 0x20,
1214 | 0x70,
1215 | 0x20,
1216 | 0x00,
1217 |
1218 | /* Character 47 (0x2f):
1219 | width 6
1220 | +------+
1221 | | |
1222 | | * |
1223 | | * |
1224 | | * |
1225 | | * |
1226 | | * |
1227 | |* |
1228 | |* |
1229 | | |
1230 | | |
1231 | +------+ */
1232 | 0x00,
1233 | 0x08,
1234 | 0x08,
1235 | 0x10,
1236 | 0x20,
1237 | 0x40,
1238 | 0x80,
1239 | 0x80,
1240 | 0x00,
1241 | 0x00,
1242 |
1243 | /* Character 48 (0x30):
1244 | width 6
1245 | +------+
1246 | | |
1247 | | * |
1248 | | * * |
1249 | |* * |
1250 | |* * |
1251 | |* * |
1252 | | * * |
1253 | | * |
1254 | | |
1255 | | |
1256 | +------+ */
1257 | 0x00,
1258 | 0x20,
1259 | 0x50,
1260 | 0x88,
1261 | 0x88,
1262 | 0x88,
1263 | 0x50,
1264 | 0x20,
1265 | 0x00,
1266 | 0x00,
1267 |
1268 | /* Character 49 (0x31):
1269 | width 6
1270 | +------+
1271 | | |
1272 | | * |
1273 | | ** |
1274 | |* * |
1275 | | * |
1276 | | * |
1277 | | * |
1278 | |***** |
1279 | | |
1280 | | |
1281 | +------+ */
1282 | 0x00,
1283 | 0x20,
1284 | 0x60,
1285 | 0xa0,
1286 | 0x20,
1287 | 0x20,
1288 | 0x20,
1289 | 0xf8,
1290 | 0x00,
1291 | 0x00,
1292 |
1293 | /* Character 50 (0x32):
1294 | width 6
1295 | +------+
1296 | | |
1297 | | *** |
1298 | |* * |
1299 | | * |
1300 | | ** |
1301 | | * |
1302 | |* |
1303 | |***** |
1304 | | |
1305 | | |
1306 | +------+ */
1307 | 0x00,
1308 | 0x70,
1309 | 0x88,
1310 | 0x08,
1311 | 0x30,
1312 | 0x40,
1313 | 0x80,
1314 | 0xf8,
1315 | 0x00,
1316 | 0x00,
1317 |
1318 | /* Character 51 (0x33):
1319 | width 6
1320 | +------+
1321 | | |
1322 | |***** |
1323 | | * |
1324 | | * |
1325 | | ** |
1326 | | * |
1327 | |* * |
1328 | | *** |
1329 | | |
1330 | | |
1331 | +------+ */
1332 | 0x00,
1333 | 0xf8,
1334 | 0x08,
1335 | 0x10,
1336 | 0x30,
1337 | 0x08,
1338 | 0x88,
1339 | 0x70,
1340 | 0x00,
1341 | 0x00,
1342 |
1343 | /* Character 52 (0x34):
1344 | width 6
1345 | +------+
1346 | | |
1347 | | * |
1348 | | ** |
1349 | | * * |
1350 | |* * |
1351 | |***** |
1352 | | * |
1353 | | * |
1354 | | |
1355 | | |
1356 | +------+ */
1357 | 0x00,
1358 | 0x10,
1359 | 0x30,
1360 | 0x50,
1361 | 0x90,
1362 | 0xf8,
1363 | 0x10,
1364 | 0x10,
1365 | 0x00,
1366 | 0x00,
1367 |
1368 | /* Character 53 (0x35):
1369 | width 6
1370 | +------+
1371 | | |
1372 | |***** |
1373 | |* |
1374 | |* ** |
1375 | |** * |
1376 | | * |
1377 | |* * |
1378 | | *** |
1379 | | |
1380 | | |
1381 | +------+ */
1382 | 0x00,
1383 | 0xf8,
1384 | 0x80,
1385 | 0xb0,
1386 | 0xc8,
1387 | 0x08,
1388 | 0x88,
1389 | 0x70,
1390 | 0x00,
1391 | 0x00,
1392 |
1393 | /* Character 54 (0x36):
1394 | width 6
1395 | +------+
1396 | | |
1397 | | ** |
1398 | | * |
1399 | |* |
1400 | |* ** |
1401 | |** * |
1402 | |* * |
1403 | | *** |
1404 | | |
1405 | | |
1406 | +------+ */
1407 | 0x00,
1408 | 0x30,
1409 | 0x40,
1410 | 0x80,
1411 | 0xb0,
1412 | 0xc8,
1413 | 0x88,
1414 | 0x70,
1415 | 0x00,
1416 | 0x00,
1417 |
1418 | /* Character 55 (0x37):
1419 | width 6
1420 | +------+
1421 | | |
1422 | |***** |
1423 | | * |
1424 | | * |
1425 | | * |
1426 | | * |
1427 | | * |
1428 | | * |
1429 | | |
1430 | | |
1431 | +------+ */
1432 | 0x00,
1433 | 0xf8,
1434 | 0x08,
1435 | 0x10,
1436 | 0x10,
1437 | 0x20,
1438 | 0x40,
1439 | 0x40,
1440 | 0x00,
1441 | 0x00,
1442 |
1443 | /* Character 56 (0x38):
1444 | width 6
1445 | +------+
1446 | | |
1447 | | *** |
1448 | |* * |
1449 | |* * |
1450 | | *** |
1451 | |* * |
1452 | |* * |
1453 | | *** |
1454 | | |
1455 | | |
1456 | +------+ */
1457 | 0x00,
1458 | 0x70,
1459 | 0x88,
1460 | 0x88,
1461 | 0x70,
1462 | 0x88,
1463 | 0x88,
1464 | 0x70,
1465 | 0x00,
1466 | 0x00,
1467 |
1468 | /* Character 57 (0x39):
1469 | width 6
1470 | +------+
1471 | | |
1472 | | *** |
1473 | |* * |
1474 | |* ** |
1475 | | ** * |
1476 | | * |
1477 | | * |
1478 | | ** |
1479 | | |
1480 | | |
1481 | +------+ */
1482 | 0x00,
1483 | 0x70,
1484 | 0x88,
1485 | 0x98,
1486 | 0x68,
1487 | 0x08,
1488 | 0x10,
1489 | 0x60,
1490 | 0x00,
1491 | 0x00,
1492 |
1493 | /* Character 58 (0x3a):
1494 | width 6
1495 | +------+
1496 | | |
1497 | | |
1498 | | * |
1499 | | *** |
1500 | | * |
1501 | | |
1502 | | * |
1503 | | *** |
1504 | | * |
1505 | | |
1506 | +------+ */
1507 | 0x00,
1508 | 0x00,
1509 | 0x20,
1510 | 0x70,
1511 | 0x20,
1512 | 0x00,
1513 | 0x20,
1514 | 0x70,
1515 | 0x20,
1516 | 0x00,
1517 |
1518 | /* Character 59 (0x3b):
1519 | width 6
1520 | +------+
1521 | | |
1522 | | |
1523 | | * |
1524 | | *** |
1525 | | * |
1526 | | |
1527 | | ** |
1528 | | * |
1529 | | * |
1530 | | |
1531 | +------+ */
1532 | 0x00,
1533 | 0x00,
1534 | 0x20,
1535 | 0x70,
1536 | 0x20,
1537 | 0x00,
1538 | 0x30,
1539 | 0x20,
1540 | 0x40,
1541 | 0x00,
1542 |
1543 | /* Character 60 (0x3c):
1544 | width 6
1545 | +------+
1546 | | |
1547 | | * |
1548 | | * |
1549 | | * |
1550 | | * |
1551 | | * |
1552 | | * |
1553 | | * |
1554 | | |
1555 | | |
1556 | +------+ */
1557 | 0x00,
1558 | 0x08,
1559 | 0x10,
1560 | 0x20,
1561 | 0x40,
1562 | 0x20,
1563 | 0x10,
1564 | 0x08,
1565 | 0x00,
1566 | 0x00,
1567 |
1568 | /* Character 61 (0x3d):
1569 | width 6
1570 | +------+
1571 | | |
1572 | | |
1573 | | |
1574 | |***** |
1575 | | |
1576 | |***** |
1577 | | |
1578 | | |
1579 | | |
1580 | | |
1581 | +------+ */
1582 | 0x00,
1583 | 0x00,
1584 | 0x00,
1585 | 0xf8,
1586 | 0x00,
1587 | 0xf8,
1588 | 0x00,
1589 | 0x00,
1590 | 0x00,
1591 | 0x00,
1592 |
1593 | /* Character 62 (0x3e):
1594 | width 6
1595 | +------+
1596 | | |
1597 | | * |
1598 | | * |
1599 | | * |
1600 | | * |
1601 | | * |
1602 | | * |
1603 | | * |
1604 | | |
1605 | | |
1606 | +------+ */
1607 | 0x00,
1608 | 0x40,
1609 | 0x20,
1610 | 0x10,
1611 | 0x08,
1612 | 0x10,
1613 | 0x20,
1614 | 0x40,
1615 | 0x00,
1616 | 0x00,
1617 |
1618 | /* Character 63 (0x3f):
1619 | width 6
1620 | +------+
1621 | | |
1622 | | *** |
1623 | |* * |
1624 | | * |
1625 | | * |
1626 | | * |
1627 | | |
1628 | | * |
1629 | | |
1630 | | |
1631 | +------+ */
1632 | 0x00,
1633 | 0x70,
1634 | 0x88,
1635 | 0x10,
1636 | 0x20,
1637 | 0x20,
1638 | 0x00,
1639 | 0x20,
1640 | 0x00,
1641 | 0x00,
1642 |
1643 | /* Character 64 (0x40):
1644 | width 6
1645 | +------+
1646 | | |
1647 | | *** |
1648 | |* * |
1649 | |* ** |
1650 | |* * * |
1651 | |* ** |
1652 | |* |
1653 | | *** |
1654 | | |
1655 | | |
1656 | +------+ */
1657 | 0x00,
1658 | 0x70,
1659 | 0x88,
1660 | 0x98,
1661 | 0xa8,
1662 | 0xb0,
1663 | 0x80,
1664 | 0x70,
1665 | 0x00,
1666 | 0x00,
1667 |
1668 | /* Character 65 (0x41):
1669 | width 6
1670 | +------+
1671 | | |
1672 | | * |
1673 | | * * |
1674 | |* * |
1675 | |* * |
1676 | |***** |
1677 | |* * |
1678 | |* * |
1679 | | |
1680 | | |
1681 | +------+ */
1682 | 0x00,
1683 | 0x20,
1684 | 0x50,
1685 | 0x88,
1686 | 0x88,
1687 | 0xf8,
1688 | 0x88,
1689 | 0x88,
1690 | 0x00,
1691 | 0x00,
1692 |
1693 | /* Character 66 (0x42):
1694 | width 6
1695 | +------+
1696 | | |
1697 | |**** |
1698 | | * * |
1699 | | * * |
1700 | | *** |
1701 | | * * |
1702 | | * * |
1703 | |**** |
1704 | | |
1705 | | |
1706 | +------+ */
1707 | 0x00,
1708 | 0xf0,
1709 | 0x48,
1710 | 0x48,
1711 | 0x70,
1712 | 0x48,
1713 | 0x48,
1714 | 0xf0,
1715 | 0x00,
1716 | 0x00,
1717 |
1718 | /* Character 67 (0x43):
1719 | width 6
1720 | +------+
1721 | | |
1722 | | *** |
1723 | |* * |
1724 | |* |
1725 | |* |
1726 | |* |
1727 | |* * |
1728 | | *** |
1729 | | |
1730 | | |
1731 | +------+ */
1732 | 0x00,
1733 | 0x70,
1734 | 0x88,
1735 | 0x80,
1736 | 0x80,
1737 | 0x80,
1738 | 0x88,
1739 | 0x70,
1740 | 0x00,
1741 | 0x00,
1742 |
1743 | /* Character 68 (0x44):
1744 | width 6
1745 | +------+
1746 | | |
1747 | |**** |
1748 | | * * |
1749 | | * * |
1750 | | * * |
1751 | | * * |
1752 | | * * |
1753 | |**** |
1754 | | |
1755 | | |
1756 | +------+ */
1757 | 0x00,
1758 | 0xf0,
1759 | 0x48,
1760 | 0x48,
1761 | 0x48,
1762 | 0x48,
1763 | 0x48,
1764 | 0xf0,
1765 | 0x00,
1766 | 0x00,
1767 |
1768 | /* Character 69 (0x45):
1769 | width 6
1770 | +------+
1771 | | |
1772 | |***** |
1773 | |* |
1774 | |* |
1775 | |**** |
1776 | |* |
1777 | |* |
1778 | |***** |
1779 | | |
1780 | | |
1781 | +------+ */
1782 | 0x00,
1783 | 0xf8,
1784 | 0x80,
1785 | 0x80,
1786 | 0xf0,
1787 | 0x80,
1788 | 0x80,
1789 | 0xf8,
1790 | 0x00,
1791 | 0x00,
1792 |
1793 | /* Character 70 (0x46):
1794 | width 6
1795 | +------+
1796 | | |
1797 | |***** |
1798 | |* |
1799 | |* |
1800 | |**** |
1801 | |* |
1802 | |* |
1803 | |* |
1804 | | |
1805 | | |
1806 | +------+ */
1807 | 0x00,
1808 | 0xf8,
1809 | 0x80,
1810 | 0x80,
1811 | 0xf0,
1812 | 0x80,
1813 | 0x80,
1814 | 0x80,
1815 | 0x00,
1816 | 0x00,
1817 |
1818 | /* Character 71 (0x47):
1819 | width 6
1820 | +------+
1821 | | |
1822 | | *** |
1823 | |* * |
1824 | |* |
1825 | |* |
1826 | |* ** |
1827 | |* * |
1828 | | *** |
1829 | | |
1830 | | |
1831 | +------+ */
1832 | 0x00,
1833 | 0x70,
1834 | 0x88,
1835 | 0x80,
1836 | 0x80,
1837 | 0x98,
1838 | 0x88,
1839 | 0x70,
1840 | 0x00,
1841 | 0x00,
1842 |
1843 | /* Character 72 (0x48):
1844 | width 6
1845 | +------+
1846 | | |
1847 | |* * |
1848 | |* * |
1849 | |* * |
1850 | |***** |
1851 | |* * |
1852 | |* * |
1853 | |* * |
1854 | | |
1855 | | |
1856 | +------+ */
1857 | 0x00,
1858 | 0x88,
1859 | 0x88,
1860 | 0x88,
1861 | 0xf8,
1862 | 0x88,
1863 | 0x88,
1864 | 0x88,
1865 | 0x00,
1866 | 0x00,
1867 |
1868 | /* Character 73 (0x49):
1869 | width 6
1870 | +------+
1871 | | |
1872 | | *** |
1873 | | * |
1874 | | * |
1875 | | * |
1876 | | * |
1877 | | * |
1878 | | *** |
1879 | | |
1880 | | |
1881 | +------+ */
1882 | 0x00,
1883 | 0x70,
1884 | 0x20,
1885 | 0x20,
1886 | 0x20,
1887 | 0x20,
1888 | 0x20,
1889 | 0x70,
1890 | 0x00,
1891 | 0x00,
1892 |
1893 | /* Character 74 (0x4a):
1894 | width 6
1895 | +------+
1896 | | |
1897 | | *** |
1898 | | * |
1899 | | * |
1900 | | * |
1901 | | * |
1902 | |* * |
1903 | | ** |
1904 | | |
1905 | | |
1906 | +------+ */
1907 | 0x00,
1908 | 0x38,
1909 | 0x10,
1910 | 0x10,
1911 | 0x10,
1912 | 0x10,
1913 | 0x90,
1914 | 0x60,
1915 | 0x00,
1916 | 0x00,
1917 |
1918 | /* Character 75 (0x4b):
1919 | width 6
1920 | +------+
1921 | | |
1922 | |* * |
1923 | |* * |
1924 | |* * |
1925 | |** |
1926 | |* * |
1927 | |* * |
1928 | |* * |
1929 | | |
1930 | | |
1931 | +------+ */
1932 | 0x00,
1933 | 0x88,
1934 | 0x90,
1935 | 0xa0,
1936 | 0xc0,
1937 | 0xa0,
1938 | 0x90,
1939 | 0x88,
1940 | 0x00,
1941 | 0x00,
1942 |
1943 | /* Character 76 (0x4c):
1944 | width 6
1945 | +------+
1946 | | |
1947 | |* |
1948 | |* |
1949 | |* |
1950 | |* |
1951 | |* |
1952 | |* |
1953 | |***** |
1954 | | |
1955 | | |
1956 | +------+ */
1957 | 0x00,
1958 | 0x80,
1959 | 0x80,
1960 | 0x80,
1961 | 0x80,
1962 | 0x80,
1963 | 0x80,
1964 | 0xf8,
1965 | 0x00,
1966 | 0x00,
1967 |
1968 | /* Character 77 (0x4d):
1969 | width 6
1970 | +------+
1971 | | |
1972 | |* * |
1973 | |* * |
1974 | |** ** |
1975 | |* * * |
1976 | |* * |
1977 | |* * |
1978 | |* * |
1979 | | |
1980 | | |
1981 | +------+ */
1982 | 0x00,
1983 | 0x88,
1984 | 0x88,
1985 | 0xd8,
1986 | 0xa8,
1987 | 0x88,
1988 | 0x88,
1989 | 0x88,
1990 | 0x00,
1991 | 0x00,
1992 |
1993 | /* Character 78 (0x4e):
1994 | width 6
1995 | +------+
1996 | | |
1997 | |* * |
1998 | |* * |
1999 | |** * |
2000 | |* * * |
2001 | |* ** |
2002 | |* * |
2003 | |* * |
2004 | | |
2005 | | |
2006 | +------+ */
2007 | 0x00,
2008 | 0x88,
2009 | 0x88,
2010 | 0xc8,
2011 | 0xa8,
2012 | 0x98,
2013 | 0x88,
2014 | 0x88,
2015 | 0x00,
2016 | 0x00,
2017 |
2018 | /* Character 79 (0x4f):
2019 | width 6
2020 | +------+
2021 | | |
2022 | | *** |
2023 | |* * |
2024 | |* * |
2025 | |* * |
2026 | |* * |
2027 | |* * |
2028 | | *** |
2029 | | |
2030 | | |
2031 | +------+ */
2032 | 0x00,
2033 | 0x70,
2034 | 0x88,
2035 | 0x88,
2036 | 0x88,
2037 | 0x88,
2038 | 0x88,
2039 | 0x70,
2040 | 0x00,
2041 | 0x00,
2042 |
2043 | /* Character 80 (0x50):
2044 | width 6
2045 | +------+
2046 | | |
2047 | |**** |
2048 | |* * |
2049 | |* * |
2050 | |**** |
2051 | |* |
2052 | |* |
2053 | |* |
2054 | | |
2055 | | |
2056 | +------+ */
2057 | 0x00,
2058 | 0xf0,
2059 | 0x88,
2060 | 0x88,
2061 | 0xf0,
2062 | 0x80,
2063 | 0x80,
2064 | 0x80,
2065 | 0x00,
2066 | 0x00,
2067 |
2068 | /* Character 81 (0x51):
2069 | width 6
2070 | +------+
2071 | | |
2072 | | *** |
2073 | |* * |
2074 | |* * |
2075 | |* * |
2076 | |* * |
2077 | |* * * |
2078 | | *** |
2079 | | * |
2080 | | |
2081 | +------+ */
2082 | 0x00,
2083 | 0x70,
2084 | 0x88,
2085 | 0x88,
2086 | 0x88,
2087 | 0x88,
2088 | 0xa8,
2089 | 0x70,
2090 | 0x08,
2091 | 0x00,
2092 |
2093 | /* Character 82 (0x52):
2094 | width 6
2095 | +------+
2096 | | |
2097 | |**** |
2098 | |* * |
2099 | |* * |
2100 | |**** |
2101 | |* * |
2102 | |* * |
2103 | |* * |
2104 | | |
2105 | | |
2106 | +------+ */
2107 | 0x00,
2108 | 0xf0,
2109 | 0x88,
2110 | 0x88,
2111 | 0xf0,
2112 | 0xa0,
2113 | 0x90,
2114 | 0x88,
2115 | 0x00,
2116 | 0x00,
2117 |
2118 | /* Character 83 (0x53):
2119 | width 6
2120 | +------+
2121 | | |
2122 | | *** |
2123 | |* * |
2124 | |* |
2125 | | *** |
2126 | | * |
2127 | |* * |
2128 | | *** |
2129 | | |
2130 | | |
2131 | +------+ */
2132 | 0x00,
2133 | 0x70,
2134 | 0x88,
2135 | 0x80,
2136 | 0x70,
2137 | 0x08,
2138 | 0x88,
2139 | 0x70,
2140 | 0x00,
2141 | 0x00,
2142 |
2143 | /* Character 84 (0x54):
2144 | width 6
2145 | +------+
2146 | | |
2147 | |***** |
2148 | | * |
2149 | | * |
2150 | | * |
2151 | | * |
2152 | | * |
2153 | | * |
2154 | | |
2155 | | |
2156 | +------+ */
2157 | 0x00,
2158 | 0xf8,
2159 | 0x20,
2160 | 0x20,
2161 | 0x20,
2162 | 0x20,
2163 | 0x20,
2164 | 0x20,
2165 | 0x00,
2166 | 0x00,
2167 |
2168 | /* Character 85 (0x55):
2169 | width 6
2170 | +------+
2171 | | |
2172 | |* * |
2173 | |* * |
2174 | |* * |
2175 | |* * |
2176 | |* * |
2177 | |* * |
2178 | | *** |
2179 | | |
2180 | | |
2181 | +------+ */
2182 | 0x00,
2183 | 0x88,
2184 | 0x88,
2185 | 0x88,
2186 | 0x88,
2187 | 0x88,
2188 | 0x88,
2189 | 0x70,
2190 | 0x00,
2191 | 0x00,
2192 |
2193 | /* Character 86 (0x56):
2194 | width 6
2195 | +------+
2196 | | |
2197 | |* * |
2198 | |* * |
2199 | |* * |
2200 | | * * |
2201 | | * * |
2202 | | * * |
2203 | | * |
2204 | | |
2205 | | |
2206 | +------+ */
2207 | 0x00,
2208 | 0x88,
2209 | 0x88,
2210 | 0x88,
2211 | 0x50,
2212 | 0x50,
2213 | 0x50,
2214 | 0x20,
2215 | 0x00,
2216 | 0x00,
2217 |
2218 | /* Character 87 (0x57):
2219 | width 6
2220 | +------+
2221 | | |
2222 | |* * |
2223 | |* * |
2224 | |* * |
2225 | |* * * |
2226 | |* * * |
2227 | |** ** |
2228 | |* * |
2229 | | |
2230 | | |
2231 | +------+ */
2232 | 0x00,
2233 | 0x88,
2234 | 0x88,
2235 | 0x88,
2236 | 0xa8,
2237 | 0xa8,
2238 | 0xd8,
2239 | 0x88,
2240 | 0x00,
2241 | 0x00,
2242 |
2243 | /* Character 88 (0x58):
2244 | width 6
2245 | +------+
2246 | | |
2247 | |* * |
2248 | |* * |
2249 | | * * |
2250 | | * |
2251 | | * * |
2252 | |* * |
2253 | |* * |
2254 | | |
2255 | | |
2256 | +------+ */
2257 | 0x00,
2258 | 0x88,
2259 | 0x88,
2260 | 0x50,
2261 | 0x20,
2262 | 0x50,
2263 | 0x88,
2264 | 0x88,
2265 | 0x00,
2266 | 0x00,
2267 |
2268 | /* Character 89 (0x59):
2269 | width 6
2270 | +------+
2271 | | |
2272 | |* * |
2273 | |* * |
2274 | | * * |
2275 | | * |
2276 | | * |
2277 | | * |
2278 | | * |
2279 | | |
2280 | | |
2281 | +------+ */
2282 | 0x00,
2283 | 0x88,
2284 | 0x88,
2285 | 0x50,
2286 | 0x20,
2287 | 0x20,
2288 | 0x20,
2289 | 0x20,
2290 | 0x00,
2291 | 0x00,
2292 |
2293 | /* Character 90 (0x5a):
2294 | width 6
2295 | +------+
2296 | | |
2297 | |***** |
2298 | | * |
2299 | | * |
2300 | | * |
2301 | | * |
2302 | |* |
2303 | |***** |
2304 | | |
2305 | | |
2306 | +------+ */
2307 | 0x00,
2308 | 0xf8,
2309 | 0x08,
2310 | 0x10,
2311 | 0x20,
2312 | 0x40,
2313 | 0x80,
2314 | 0xf8,
2315 | 0x00,
2316 | 0x00,
2317 |
2318 | /* Character 91 (0x5b):
2319 | width 6
2320 | +------+
2321 | | |
2322 | | *** |
2323 | | * |
2324 | | * |
2325 | | * |
2326 | | * |
2327 | | * |
2328 | | *** |
2329 | | |
2330 | | |
2331 | +------+ */
2332 | 0x00,
2333 | 0x70,
2334 | 0x40,
2335 | 0x40,
2336 | 0x40,
2337 | 0x40,
2338 | 0x40,
2339 | 0x70,
2340 | 0x00,
2341 | 0x00,
2342 |
2343 | /* Character 92 (0x5c):
2344 | width 6
2345 | +------+
2346 | | |
2347 | |* |
2348 | |* |
2349 | | * |
2350 | | * |
2351 | | * |
2352 | | * |
2353 | | * |
2354 | | |
2355 | | |
2356 | +------+ */
2357 | 0x00,
2358 | 0x80,
2359 | 0x80,
2360 | 0x40,
2361 | 0x20,
2362 | 0x10,
2363 | 0x08,
2364 | 0x08,
2365 | 0x00,
2366 | 0x00,
2367 |
2368 | /* Character 93 (0x5d):
2369 | width 6
2370 | +------+
2371 | | |
2372 | | *** |
2373 | | * |
2374 | | * |
2375 | | * |
2376 | | * |
2377 | | * |
2378 | | *** |
2379 | | |
2380 | | |
2381 | +------+ */
2382 | 0x00,
2383 | 0x70,
2384 | 0x10,
2385 | 0x10,
2386 | 0x10,
2387 | 0x10,
2388 | 0x10,
2389 | 0x70,
2390 | 0x00,
2391 | 0x00,
2392 |
2393 | /* Character 94 (0x5e):
2394 | width 6
2395 | +------+
2396 | | |
2397 | | * |
2398 | | * * |
2399 | |* * |
2400 | | |
2401 | | |
2402 | | |
2403 | | |
2404 | | |
2405 | | |
2406 | +------+ */
2407 | 0x00,
2408 | 0x20,
2409 | 0x50,
2410 | 0x88,
2411 | 0x00,
2412 | 0x00,
2413 | 0x00,
2414 | 0x00,
2415 | 0x00,
2416 | 0x00,
2417 |
2418 | /* Character 95 (0x5f):
2419 | width 6
2420 | +------+
2421 | | |
2422 | | |
2423 | | |
2424 | | |
2425 | | |
2426 | | |
2427 | | |
2428 | | |
2429 | |***** |
2430 | | |
2431 | +------+ */
2432 | 0x00,
2433 | 0x00,
2434 | 0x00,
2435 | 0x00,
2436 | 0x00,
2437 | 0x00,
2438 | 0x00,
2439 | 0x00,
2440 | 0xf8,
2441 | 0x00,
2442 |
2443 | /* Character 96 (0x60):
2444 | width 6
2445 | +------+
2446 | | * |
2447 | | * |
2448 | | |
2449 | | |
2450 | | |
2451 | | |
2452 | | |
2453 | | |
2454 | | |
2455 | | |
2456 | +------+ */
2457 | 0x20,
2458 | 0x10,
2459 | 0x00,
2460 | 0x00,
2461 | 0x00,
2462 | 0x00,
2463 | 0x00,
2464 | 0x00,
2465 | 0x00,
2466 | 0x00,
2467 |
2468 | /* Character 97 (0x61):
2469 | width 6
2470 | +------+
2471 | | |
2472 | | |
2473 | | |
2474 | | *** |
2475 | | * |
2476 | | **** |
2477 | |* * |
2478 | | **** |
2479 | | |
2480 | | |
2481 | +------+ */
2482 | 0x00,
2483 | 0x00,
2484 | 0x00,
2485 | 0x70,
2486 | 0x08,
2487 | 0x78,
2488 | 0x88,
2489 | 0x78,
2490 | 0x00,
2491 | 0x00,
2492 |
2493 | /* Character 98 (0x62):
2494 | width 6
2495 | +------+
2496 | | |
2497 | |* |
2498 | |* |
2499 | |* ** |
2500 | |** * |
2501 | |* * |
2502 | |** * |
2503 | |* ** |
2504 | | |
2505 | | |
2506 | +------+ */
2507 | 0x00,
2508 | 0x80,
2509 | 0x80,
2510 | 0xb0,
2511 | 0xc8,
2512 | 0x88,
2513 | 0xc8,
2514 | 0xb0,
2515 | 0x00,
2516 | 0x00,
2517 |
2518 | /* Character 99 (0x63):
2519 | width 6
2520 | +------+
2521 | | |
2522 | | |
2523 | | |
2524 | | *** |
2525 | |* * |
2526 | |* |
2527 | |* * |
2528 | | *** |
2529 | | |
2530 | | |
2531 | +------+ */
2532 | 0x00,
2533 | 0x00,
2534 | 0x00,
2535 | 0x70,
2536 | 0x88,
2537 | 0x80,
2538 | 0x88,
2539 | 0x70,
2540 | 0x00,
2541 | 0x00,
2542 |
2543 | /* Character 100 (0x64):
2544 | width 6
2545 | +------+
2546 | | |
2547 | | * |
2548 | | * |
2549 | | ** * |
2550 | |* ** |
2551 | |* * |
2552 | |* ** |
2553 | | ** * |
2554 | | |
2555 | | |
2556 | +------+ */
2557 | 0x00,
2558 | 0x08,
2559 | 0x08,
2560 | 0x68,
2561 | 0x98,
2562 | 0x88,
2563 | 0x98,
2564 | 0x68,
2565 | 0x00,
2566 | 0x00,
2567 |
2568 | /* Character 101 (0x65):
2569 | width 6
2570 | +------+
2571 | | |
2572 | | |
2573 | | |
2574 | | *** |
2575 | |* * |
2576 | |***** |
2577 | |* |
2578 | | *** |
2579 | | |
2580 | | |
2581 | +------+ */
2582 | 0x00,
2583 | 0x00,
2584 | 0x00,
2585 | 0x70,
2586 | 0x88,
2587 | 0xf8,
2588 | 0x80,
2589 | 0x70,
2590 | 0x00,
2591 | 0x00,
2592 |
2593 | /* Character 102 (0x66):
2594 | width 6
2595 | +------+
2596 | | |
2597 | | ** |
2598 | | * * |
2599 | | * |
2600 | |**** |
2601 | | * |
2602 | | * |
2603 | | * |
2604 | | |
2605 | | |
2606 | +------+ */
2607 | 0x00,
2608 | 0x30,
2609 | 0x48,
2610 | 0x40,
2611 | 0xf0,
2612 | 0x40,
2613 | 0x40,
2614 | 0x40,
2615 | 0x00,
2616 | 0x00,
2617 |
2618 | /* Character 103 (0x67):
2619 | width 6
2620 | +------+
2621 | | |
2622 | | |
2623 | | |
2624 | | **** |
2625 | |* * |
2626 | |* * |
2627 | | **** |
2628 | | * |
2629 | |* * |
2630 | | *** |
2631 | +------+ */
2632 | 0x00,
2633 | 0x00,
2634 | 0x00,
2635 | 0x78,
2636 | 0x88,
2637 | 0x88,
2638 | 0x78,
2639 | 0x08,
2640 | 0x88,
2641 | 0x70,
2642 |
2643 | /* Character 104 (0x68):
2644 | width 6
2645 | +------+
2646 | | |
2647 | |* |
2648 | |* |
2649 | |* ** |
2650 | |** * |
2651 | |* * |
2652 | |* * |
2653 | |* * |
2654 | | |
2655 | | |
2656 | +------+ */
2657 | 0x00,
2658 | 0x80,
2659 | 0x80,
2660 | 0xb0,
2661 | 0xc8,
2662 | 0x88,
2663 | 0x88,
2664 | 0x88,
2665 | 0x00,
2666 | 0x00,
2667 |
2668 | /* Character 105 (0x69):
2669 | width 6
2670 | +------+
2671 | | |
2672 | | * |
2673 | | |
2674 | | ** |
2675 | | * |
2676 | | * |
2677 | | * |
2678 | | *** |
2679 | | |
2680 | | |
2681 | +------+ */
2682 | 0x00,
2683 | 0x20,
2684 | 0x00,
2685 | 0x60,
2686 | 0x20,
2687 | 0x20,
2688 | 0x20,
2689 | 0x70,
2690 | 0x00,
2691 | 0x00,
2692 |
2693 | /* Character 106 (0x6a):
2694 | width 6
2695 | +------+
2696 | | |
2697 | | * |
2698 | | |
2699 | | ** |
2700 | | * |
2701 | | * |
2702 | | * |
2703 | | * * |
2704 | | * * |
2705 | | ** |
2706 | +------+ */
2707 | 0x00,
2708 | 0x08,
2709 | 0x00,
2710 | 0x18,
2711 | 0x08,
2712 | 0x08,
2713 | 0x08,
2714 | 0x48,
2715 | 0x48,
2716 | 0x30,
2717 |
2718 | /* Character 107 (0x6b):
2719 | width 6
2720 | +------+
2721 | | |
2722 | |* |
2723 | |* |
2724 | |* * |
2725 | |* * |
2726 | |*** |
2727 | |* * |
2728 | |* * |
2729 | | |
2730 | | |
2731 | +------+ */
2732 | 0x00,
2733 | 0x80,
2734 | 0x80,
2735 | 0x88,
2736 | 0x90,
2737 | 0xe0,
2738 | 0x90,
2739 | 0x88,
2740 | 0x00,
2741 | 0x00,
2742 |
2743 | /* Character 108 (0x6c):
2744 | width 6
2745 | +------+
2746 | | |
2747 | | ** |
2748 | | * |
2749 | | * |
2750 | | * |
2751 | | * |
2752 | | * |
2753 | | *** |
2754 | | |
2755 | | |
2756 | +------+ */
2757 | 0x00,
2758 | 0x60,
2759 | 0x20,
2760 | 0x20,
2761 | 0x20,
2762 | 0x20,
2763 | 0x20,
2764 | 0x70,
2765 | 0x00,
2766 | 0x00,
2767 |
2768 | /* Character 109 (0x6d):
2769 | width 6
2770 | +------+
2771 | | |
2772 | | |
2773 | | |
2774 | |** * |
2775 | |* * * |
2776 | |* * * |
2777 | |* * * |
2778 | |* * |
2779 | | |
2780 | | |
2781 | +------+ */
2782 | 0x00,
2783 | 0x00,
2784 | 0x00,
2785 | 0xd0,
2786 | 0xa8,
2787 | 0xa8,
2788 | 0xa8,
2789 | 0x88,
2790 | 0x00,
2791 | 0x00,
2792 |
2793 | /* Character 110 (0x6e):
2794 | width 6
2795 | +------+
2796 | | |
2797 | | |
2798 | | |
2799 | |* ** |
2800 | |** * |
2801 | |* * |
2802 | |* * |
2803 | |* * |
2804 | | |
2805 | | |
2806 | +------+ */
2807 | 0x00,
2808 | 0x00,
2809 | 0x00,
2810 | 0xb0,
2811 | 0xc8,
2812 | 0x88,
2813 | 0x88,
2814 | 0x88,
2815 | 0x00,
2816 | 0x00,
2817 |
2818 | /* Character 111 (0x6f):
2819 | width 6
2820 | +------+
2821 | | |
2822 | | |
2823 | | |
2824 | | *** |
2825 | |* * |
2826 | |* * |
2827 | |* * |
2828 | | *** |
2829 | | |
2830 | | |
2831 | +------+ */
2832 | 0x00,
2833 | 0x00,
2834 | 0x00,
2835 | 0x70,
2836 | 0x88,
2837 | 0x88,
2838 | 0x88,
2839 | 0x70,
2840 | 0x00,
2841 | 0x00,
2842 |
2843 | /* Character 112 (0x70):
2844 | width 6
2845 | +------+
2846 | | |
2847 | | |
2848 | | |
2849 | |* ** |
2850 | |** * |
2851 | |* * |
2852 | |** * |
2853 | |* ** |
2854 | |* |
2855 | |* |
2856 | +------+ */
2857 | 0x00,
2858 | 0x00,
2859 | 0x00,
2860 | 0xb0,
2861 | 0xc8,
2862 | 0x88,
2863 | 0xc8,
2864 | 0xb0,
2865 | 0x80,
2866 | 0x80,
2867 |
2868 | /* Character 113 (0x71):
2869 | width 6
2870 | +------+
2871 | | |
2872 | | |
2873 | | |
2874 | | ** * |
2875 | |* ** |
2876 | |* * |
2877 | |* ** |
2878 | | ** * |
2879 | | * |
2880 | | * |
2881 | +------+ */
2882 | 0x00,
2883 | 0x00,
2884 | 0x00,
2885 | 0x68,
2886 | 0x98,
2887 | 0x88,
2888 | 0x98,
2889 | 0x68,
2890 | 0x08,
2891 | 0x08,
2892 |
2893 | /* Character 114 (0x72):
2894 | width 6
2895 | +------+
2896 | | |
2897 | | |
2898 | | |
2899 | |* ** |
2900 | |** * |
2901 | |* |
2902 | |* |
2903 | |* |
2904 | | |
2905 | | |
2906 | +------+ */
2907 | 0x00,
2908 | 0x00,
2909 | 0x00,
2910 | 0xb0,
2911 | 0xc8,
2912 | 0x80,
2913 | 0x80,
2914 | 0x80,
2915 | 0x00,
2916 | 0x00,
2917 |
2918 | /* Character 115 (0x73):
2919 | width 6
2920 | +------+
2921 | | |
2922 | | |
2923 | | |
2924 | | *** |
2925 | |* |
2926 | | *** |
2927 | | * |
2928 | |**** |
2929 | | |
2930 | | |
2931 | +------+ */
2932 | 0x00,
2933 | 0x00,
2934 | 0x00,
2935 | 0x70,
2936 | 0x80,
2937 | 0x70,
2938 | 0x08,
2939 | 0xf0,
2940 | 0x00,
2941 | 0x00,
2942 |
2943 | /* Character 116 (0x74):
2944 | width 6
2945 | +------+
2946 | | |
2947 | | * |
2948 | | * |
2949 | |**** |
2950 | | * |
2951 | | * |
2952 | | * * |
2953 | | ** |
2954 | | |
2955 | | |
2956 | +------+ */
2957 | 0x00,
2958 | 0x40,
2959 | 0x40,
2960 | 0xf0,
2961 | 0x40,
2962 | 0x40,
2963 | 0x48,
2964 | 0x30,
2965 | 0x00,
2966 | 0x00,
2967 |
2968 | /* Character 117 (0x75):
2969 | width 6
2970 | +------+
2971 | | |
2972 | | |
2973 | | |
2974 | |* * |
2975 | |* * |
2976 | |* * |
2977 | |* ** |
2978 | | ** * |
2979 | | |
2980 | | |
2981 | +------+ */
2982 | 0x00,
2983 | 0x00,
2984 | 0x00,
2985 | 0x88,
2986 | 0x88,
2987 | 0x88,
2988 | 0x98,
2989 | 0x68,
2990 | 0x00,
2991 | 0x00,
2992 |
2993 | /* Character 118 (0x76):
2994 | width 6
2995 | +------+
2996 | | |
2997 | | |
2998 | | |
2999 | |* * |
3000 | |* * |
3001 | | * * |
3002 | | * * |
3003 | | * |
3004 | | |
3005 | | |
3006 | +------+ */
3007 | 0x00,
3008 | 0x00,
3009 | 0x00,
3010 | 0x88,
3011 | 0x88,
3012 | 0x50,
3013 | 0x50,
3014 | 0x20,
3015 | 0x00,
3016 | 0x00,
3017 |
3018 | /* Character 119 (0x77):
3019 | width 6
3020 | +------+
3021 | | |
3022 | | |
3023 | | |
3024 | |* * |
3025 | |* * |
3026 | |* * * |
3027 | |* * * |
3028 | | * * |
3029 | | |
3030 | | |
3031 | +------+ */
3032 | 0x00,
3033 | 0x00,
3034 | 0x00,
3035 | 0x88,
3036 | 0x88,
3037 | 0xa8,
3038 | 0xa8,
3039 | 0x50,
3040 | 0x00,
3041 | 0x00,
3042 |
3043 | /* Character 120 (0x78):
3044 | width 6
3045 | +------+
3046 | | |
3047 | | |
3048 | | |
3049 | |* * |
3050 | | * * |
3051 | | * |
3052 | | * * |
3053 | |* * |
3054 | | |
3055 | | |
3056 | +------+ */
3057 | 0x00,
3058 | 0x00,
3059 | 0x00,
3060 | 0x88,
3061 | 0x50,
3062 | 0x20,
3063 | 0x50,
3064 | 0x88,
3065 | 0x00,
3066 | 0x00,
3067 |
3068 | /* Character 121 (0x79):
3069 | width 6
3070 | +------+
3071 | | |
3072 | | |
3073 | | |
3074 | |* * |
3075 | |* * |
3076 | |* ** |
3077 | | ** * |
3078 | | * |
3079 | |* * |
3080 | | *** |
3081 | +------+ */
3082 | 0x00,
3083 | 0x00,
3084 | 0x00,
3085 | 0x88,
3086 | 0x88,
3087 | 0x98,
3088 | 0x68,
3089 | 0x08,
3090 | 0x88,
3091 | 0x70,
3092 |
3093 | /* Character 122 (0x7a):
3094 | width 6
3095 | +------+
3096 | | |
3097 | | |
3098 | | |
3099 | |***** |
3100 | | * |
3101 | | * |
3102 | | * |
3103 | |***** |
3104 | | |
3105 | | |
3106 | +------+ */
3107 | 0x00,
3108 | 0x00,
3109 | 0x00,
3110 | 0xf8,
3111 | 0x10,
3112 | 0x20,
3113 | 0x40,
3114 | 0xf8,
3115 | 0x00,
3116 | 0x00,
3117 |
3118 | /* Character 123 (0x7b):
3119 | width 6
3120 | +------+
3121 | | |
3122 | | ** |
3123 | | * |
3124 | | * |
3125 | | ** |
3126 | | * |
3127 | | * |
3128 | | ** |
3129 | | |
3130 | | |
3131 | +------+ */
3132 | 0x00,
3133 | 0x18,
3134 | 0x20,
3135 | 0x10,
3136 | 0x60,
3137 | 0x10,
3138 | 0x20,
3139 | 0x18,
3140 | 0x00,
3141 | 0x00,
3142 |
3143 | /* Character 124 (0x7c):
3144 | width 6
3145 | +------+
3146 | | |
3147 | | * |
3148 | | * |
3149 | | * |
3150 | | * |
3151 | | * |
3152 | | * |
3153 | | * |
3154 | | |
3155 | | |
3156 | +------+ */
3157 | 0x00,
3158 | 0x20,
3159 | 0x20,
3160 | 0x20,
3161 | 0x20,
3162 | 0x20,
3163 | 0x20,
3164 | 0x20,
3165 | 0x00,
3166 | 0x00,
3167 |
3168 | /* Character 125 (0x7d):
3169 | width 6
3170 | +------+
3171 | | |
3172 | | ** |
3173 | | * |
3174 | | * |
3175 | | ** |
3176 | | * |
3177 | | * |
3178 | | ** |
3179 | | |
3180 | | |
3181 | +------+ */
3182 | 0x00,
3183 | 0x60,
3184 | 0x10,
3185 | 0x20,
3186 | 0x18,
3187 | 0x20,
3188 | 0x10,
3189 | 0x60,
3190 | 0x00,
3191 | 0x00,
3192 |
3193 | /* Character 126 (0x7e):
3194 | width 6
3195 | +------+
3196 | | |
3197 | | * * |
3198 | |* * * |
3199 | |* * |
3200 | | |
3201 | | |
3202 | | |
3203 | | |
3204 | | |
3205 | | |
3206 | +------+ */
3207 | 0x00,
3208 | 0x48,
3209 | 0xa8,
3210 | 0x90,
3211 | 0x00,
3212 | 0x00,
3213 | 0x00,
3214 | 0x00,
3215 | 0x00,
3216 | 0x00,
3217 |
3218 | /* Character 160 (0xa0):
3219 | width 6
3220 | +------+
3221 | | |
3222 | | |
3223 | | |
3224 | | |
3225 | | |
3226 | | |
3227 | | |
3228 | | |
3229 | | |
3230 | | |
3231 | +------+ */
3232 | 0x00,
3233 | 0x00,
3234 | 0x00,
3235 | 0x00,
3236 | 0x00,
3237 | 0x00,
3238 | 0x00,
3239 | 0x00,
3240 | 0x00,
3241 | 0x00,
3242 |
3243 | /* Character 161 (0xa1):
3244 | width 6
3245 | +------+
3246 | | |
3247 | | * |
3248 | | |
3249 | | * |
3250 | | * |
3251 | | * |
3252 | | * |
3253 | | * |
3254 | | |
3255 | | |
3256 | +------+ */
3257 | 0x00,
3258 | 0x20,
3259 | 0x00,
3260 | 0x20,
3261 | 0x20,
3262 | 0x20,
3263 | 0x20,
3264 | 0x20,
3265 | 0x00,
3266 | 0x00,
3267 |
3268 | /* Character 162 (0xa2):
3269 | width 6
3270 | +------+
3271 | | |
3272 | | |
3273 | | * |
3274 | | **** |
3275 | |* * |
3276 | |* * |
3277 | |* * |
3278 | | **** |
3279 | | * |
3280 | | |
3281 | +------+ */
3282 | 0x00,
3283 | 0x00,
3284 | 0x20,
3285 | 0x78,
3286 | 0xa0,
3287 | 0xa0,
3288 | 0xa0,
3289 | 0x78,
3290 | 0x20,
3291 | 0x00,
3292 |
3293 | /* Character 163 (0xa3):
3294 | width 6
3295 | +------+
3296 | | |
3297 | | ** |
3298 | | * * |
3299 | | * |
3300 | |*** |
3301 | | * |
3302 | | * * |
3303 | |* ** |
3304 | | |
3305 | | |
3306 | +------+ */
3307 | 0x00,
3308 | 0x30,
3309 | 0x48,
3310 | 0x40,
3311 | 0xe0,
3312 | 0x40,
3313 | 0x48,
3314 | 0xb0,
3315 | 0x00,
3316 | 0x00,
3317 |
3318 | /* Character 164 (0xa4):
3319 | width 6
3320 | +------+
3321 | | |
3322 | | |
3323 | | |
3324 | |* * |
3325 | | *** |
3326 | | * * |
3327 | | *** |
3328 | |* * |
3329 | | |
3330 | | |
3331 | +------+ */
3332 | 0x00,
3333 | 0x00,
3334 | 0x00,
3335 | 0x88,
3336 | 0x70,
3337 | 0x50,
3338 | 0x70,
3339 | 0x88,
3340 | 0x00,
3341 | 0x00,
3342 |
3343 | /* Character 165 (0xa5):
3344 | width 6
3345 | +------+
3346 | | |
3347 | |* * |
3348 | |* * |
3349 | | * * |
3350 | | * |
3351 | |***** |
3352 | | * |
3353 | | * |
3354 | | * |
3355 | | |
3356 | +------+ */
3357 | 0x00,
3358 | 0x88,
3359 | 0x88,
3360 | 0x50,
3361 | 0x20,
3362 | 0xf8,
3363 | 0x20,
3364 | 0x20,
3365 | 0x20,
3366 | 0x00,
3367 |
3368 | /* Character 166 (0xa6):
3369 | width 6
3370 | +------+
3371 | | |
3372 | | * |
3373 | | * |
3374 | | * |
3375 | | |
3376 | | * |
3377 | | * |
3378 | | * |
3379 | | |
3380 | | |
3381 | +------+ */
3382 | 0x00,
3383 | 0x20,
3384 | 0x20,
3385 | 0x20,
3386 | 0x00,
3387 | 0x20,
3388 | 0x20,
3389 | 0x20,
3390 | 0x00,
3391 | 0x00,
3392 |
3393 | /* Character 167 (0xa7):
3394 | width 6
3395 | +------+
3396 | | |
3397 | | *** |
3398 | |* |
3399 | |*** |
3400 | |* * |
3401 | | * * |
3402 | | *** |
3403 | | * |
3404 | | *** |
3405 | | |
3406 | +------+ */
3407 | 0x00,
3408 | 0x70,
3409 | 0x80,
3410 | 0xe0,
3411 | 0x90,
3412 | 0x48,
3413 | 0x38,
3414 | 0x08,
3415 | 0x70,
3416 | 0x00,
3417 |
3418 | /* Character 168 (0xa8):
3419 | width 6
3420 | +------+
3421 | | * * |
3422 | | |
3423 | | |
3424 | | |
3425 | | |
3426 | | |
3427 | | |
3428 | | |
3429 | | |
3430 | | |
3431 | +------+ */
3432 | 0x50,
3433 | 0x00,
3434 | 0x00,
3435 | 0x00,
3436 | 0x00,
3437 | 0x00,
3438 | 0x00,
3439 | 0x00,
3440 | 0x00,
3441 | 0x00,
3442 |
3443 | /* Character 169 (0xa9):
3444 | width 6
3445 | +------+
3446 | | |
3447 | | *** |
3448 | |* * |
3449 | |* * * |
3450 | |** * |
3451 | |* * * |
3452 | |* * |
3453 | | *** |
3454 | | |
3455 | | |
3456 | +------+ */
3457 | 0x00,
3458 | 0x70,
3459 | 0x88,
3460 | 0xa8,
3461 | 0xc8,
3462 | 0xa8,
3463 | 0x88,
3464 | 0x70,
3465 | 0x00,
3466 | 0x00,
3467 |
3468 | /* Character 170 (0xaa):
3469 | width 6
3470 | +------+
3471 | | |
3472 | | *** |
3473 | | * * |
3474 | | * ** |
3475 | | * * |
3476 | | |
3477 | | **** |
3478 | | |
3479 | | |
3480 | | |
3481 | +------+ */
3482 | 0x00,
3483 | 0x38,
3484 | 0x48,
3485 | 0x58,
3486 | 0x28,
3487 | 0x00,
3488 | 0x78,
3489 | 0x00,
3490 | 0x00,
3491 | 0x00,
3492 |
3493 | /* Character 171 (0xab):
3494 | width 6
3495 | +------+
3496 | | |
3497 | | |
3498 | | |
3499 | | * *|
3500 | | * * |
3501 | |* * |
3502 | | * * |
3503 | | * *|
3504 | | |
3505 | | |
3506 | +------+ */
3507 | 0x00,
3508 | 0x00,
3509 | 0x00,
3510 | 0x24,
3511 | 0x48,
3512 | 0x90,
3513 | 0x48,
3514 | 0x24,
3515 | 0x00,
3516 | 0x00,
3517 |
3518 | /* Character 172 (0xac):
3519 | width 6
3520 | +------+
3521 | | |
3522 | | |
3523 | | |
3524 | | |
3525 | | **** |
3526 | | * |
3527 | | |
3528 | | |
3529 | | |
3530 | | |
3531 | +------+ */
3532 | 0x00,
3533 | 0x00,
3534 | 0x00,
3535 | 0x00,
3536 | 0x78,
3537 | 0x08,
3538 | 0x00,
3539 | 0x00,
3540 | 0x00,
3541 | 0x00,
3542 |
3543 | /* Character 173 (0xad):
3544 | width 6
3545 | +------+
3546 | | |
3547 | | |
3548 | | |
3549 | | |
3550 | | **** |
3551 | | |
3552 | | |
3553 | | |
3554 | | |
3555 | | |
3556 | +------+ */
3557 | 0x00,
3558 | 0x00,
3559 | 0x00,
3560 | 0x00,
3561 | 0x78,
3562 | 0x00,
3563 | 0x00,
3564 | 0x00,
3565 | 0x00,
3566 | 0x00,
3567 |
3568 | /* Character 174 (0xae):
3569 | width 6
3570 | +------+
3571 | | |
3572 | | *** |
3573 | |* * |
3574 | |*** * |
3575 | |** * |
3576 | |** * |
3577 | |* * |
3578 | | *** |
3579 | | |
3580 | | |
3581 | +------+ */
3582 | 0x00,
3583 | 0x70,
3584 | 0x88,
3585 | 0xe8,
3586 | 0xc8,
3587 | 0xc8,
3588 | 0x88,
3589 | 0x70,
3590 | 0x00,
3591 | 0x00,
3592 |
3593 | /* Character 175 (0xaf):
3594 | width 6
3595 | +------+
3596 | |***** |
3597 | | |
3598 | | |
3599 | | |
3600 | | |
3601 | | |
3602 | | |
3603 | | |
3604 | | |
3605 | | |
3606 | +------+ */
3607 | 0xf8,
3608 | 0x00,
3609 | 0x00,
3610 | 0x00,
3611 | 0x00,
3612 | 0x00,
3613 | 0x00,
3614 | 0x00,
3615 | 0x00,
3616 | 0x00,
3617 |
3618 | /* Character 176 (0xb0):
3619 | width 6
3620 | +------+
3621 | | |
3622 | | * |
3623 | | * * |
3624 | | * |
3625 | | |
3626 | | |
3627 | | |
3628 | | |
3629 | | |
3630 | | |
3631 | +------+ */
3632 | 0x00,
3633 | 0x20,
3634 | 0x50,
3635 | 0x20,
3636 | 0x00,
3637 | 0x00,
3638 | 0x00,
3639 | 0x00,
3640 | 0x00,
3641 | 0x00,
3642 |
3643 | /* Character 177 (0xb1):
3644 | width 6
3645 | +------+
3646 | | |
3647 | | |
3648 | | * |
3649 | | * |
3650 | |***** |
3651 | | * |
3652 | | * |
3653 | |***** |
3654 | | |
3655 | | |
3656 | +------+ */
3657 | 0x00,
3658 | 0x00,
3659 | 0x20,
3660 | 0x20,
3661 | 0xf8,
3662 | 0x20,
3663 | 0x20,
3664 | 0xf8,
3665 | 0x00,
3666 | 0x00,
3667 |
3668 | /* Character 178 (0xb2):
3669 | width 6
3670 | +------+
3671 | | ** |
3672 | | * * |
3673 | | * |
3674 | | * |
3675 | | **** |
3676 | | |
3677 | | |
3678 | | |
3679 | | |
3680 | | |
3681 | +------+ */
3682 | 0x30,
3683 | 0x48,
3684 | 0x10,
3685 | 0x20,
3686 | 0x78,
3687 | 0x00,
3688 | 0x00,
3689 | 0x00,
3690 | 0x00,
3691 | 0x00,
3692 |
3693 | /* Character 179 (0xb3):
3694 | width 6
3695 | +------+
3696 | | *** |
3697 | | * |
3698 | | ** |
3699 | | * |
3700 | | *** |
3701 | | |
3702 | | |
3703 | | |
3704 | | |
3705 | | |
3706 | +------+ */
3707 | 0x70,
3708 | 0x08,
3709 | 0x30,
3710 | 0x08,
3711 | 0x70,
3712 | 0x00,
3713 | 0x00,
3714 | 0x00,
3715 | 0x00,
3716 | 0x00,
3717 |
3718 | /* Character 180 (0xb4):
3719 | width 6
3720 | +------+
3721 | | * |
3722 | | * |
3723 | | |
3724 | | |
3725 | | |
3726 | | |
3727 | | |
3728 | | |
3729 | | |
3730 | | |
3731 | +------+ */
3732 | 0x10,
3733 | 0x20,
3734 | 0x00,
3735 | 0x00,
3736 | 0x00,
3737 | 0x00,
3738 | 0x00,
3739 | 0x00,
3740 | 0x00,
3741 | 0x00,
3742 |
3743 | /* Character 181 (0xb5):
3744 | width 6
3745 | +------+
3746 | | |
3747 | | |
3748 | | |
3749 | |* * |
3750 | |* * |
3751 | |* * |
3752 | |** * |
3753 | |* ** |
3754 | |* |
3755 | | |
3756 | +------+ */
3757 | 0x00,
3758 | 0x00,
3759 | 0x00,
3760 | 0x88,
3761 | 0x88,
3762 | 0x88,
3763 | 0xc8,
3764 | 0xb0,
3765 | 0x80,
3766 | 0x00,
3767 |
3768 | /* Character 182 (0xb6):
3769 | width 6
3770 | +------+
3771 | | |
3772 | | **** |
3773 | |*** * |
3774 | |*** * |
3775 | | ** * |
3776 | | * * |
3777 | | * * |
3778 | | * * |
3779 | | |
3780 | | |
3781 | +------+ */
3782 | 0x00,
3783 | 0x78,
3784 | 0xe8,
3785 | 0xe8,
3786 | 0x68,
3787 | 0x28,
3788 | 0x28,
3789 | 0x28,
3790 | 0x00,
3791 | 0x00,
3792 |
3793 | /* Character 183 (0xb7):
3794 | width 6
3795 | +------+
3796 | | |
3797 | | |
3798 | | |
3799 | | |
3800 | | * |
3801 | | |
3802 | | |
3803 | | |
3804 | | |
3805 | | |
3806 | +------+ */
3807 | 0x00,
3808 | 0x00,
3809 | 0x00,
3810 | 0x00,
3811 | 0x20,
3812 | 0x00,
3813 | 0x00,
3814 | 0x00,
3815 | 0x00,
3816 | 0x00,
3817 |
3818 | /* Character 184 (0xb8):
3819 | width 6
3820 | +------+
3821 | | |
3822 | | |
3823 | | |
3824 | | |
3825 | | |
3826 | | |
3827 | | |
3828 | | |
3829 | | * |
3830 | | * |
3831 | +------+ */
3832 | 0x00,
3833 | 0x00,
3834 | 0x00,
3835 | 0x00,
3836 | 0x00,
3837 | 0x00,
3838 | 0x00,
3839 | 0x00,
3840 | 0x10,
3841 | 0x20,
3842 |
3843 | /* Character 185 (0xb9):
3844 | width 6
3845 | +------+
3846 | | * |
3847 | | ** |
3848 | | * |
3849 | | * |
3850 | | *** |
3851 | | |
3852 | | |
3853 | | |
3854 | | |
3855 | | |
3856 | +------+ */
3857 | 0x20,
3858 | 0x60,
3859 | 0x20,
3860 | 0x20,
3861 | 0x70,
3862 | 0x00,
3863 | 0x00,
3864 | 0x00,
3865 | 0x00,
3866 | 0x00,
3867 |
3868 | /* Character 186 (0xba):
3869 | width 6
3870 | +------+
3871 | | |
3872 | | ** |
3873 | | * * |
3874 | | * * |
3875 | | ** |
3876 | | |
3877 | | **** |
3878 | | |
3879 | | |
3880 | | |
3881 | +------+ */
3882 | 0x00,
3883 | 0x30,
3884 | 0x48,
3885 | 0x48,
3886 | 0x30,
3887 | 0x00,
3888 | 0x78,
3889 | 0x00,
3890 | 0x00,
3891 | 0x00,
3892 |
3893 | /* Character 187 (0xbb):
3894 | width 6
3895 | +------+
3896 | | |
3897 | | |
3898 | | |
3899 | |* * |
3900 | | * * |
3901 | | * *|
3902 | | * * |
3903 | |* * |
3904 | | |
3905 | | |
3906 | +------+ */
3907 | 0x00,
3908 | 0x00,
3909 | 0x00,
3910 | 0x90,
3911 | 0x48,
3912 | 0x24,
3913 | 0x48,
3914 | 0x90,
3915 | 0x00,
3916 | 0x00,
3917 |
3918 | /* Character 188 (0xbc):
3919 | width 6
3920 | +------+
3921 | | * |
3922 | |** |
3923 | | * |
3924 | | * |
3925 | |*** *|
3926 | | **|
3927 | | * *|
3928 | | ****|
3929 | | *|
3930 | | |
3931 | +------+ */
3932 | 0x40,
3933 | 0xc0,
3934 | 0x40,
3935 | 0x40,
3936 | 0xe4,
3937 | 0x0c,
3938 | 0x14,
3939 | 0x3c,
3940 | 0x04,
3941 | 0x00,
3942 |
3943 | /* Character 189 (0xbd):
3944 | width 6
3945 | +------+
3946 | | * |
3947 | |** |
3948 | | * |
3949 | | * |
3950 | |*** * |
3951 | | * *|
3952 | | *|
3953 | | * |
3954 | | ***|
3955 | | |
3956 | +------+ */
3957 | 0x40,
3958 | 0xc0,
3959 | 0x40,
3960 | 0x40,
3961 | 0xe8,
3962 | 0x14,
3963 | 0x04,
3964 | 0x08,
3965 | 0x1c,
3966 | 0x00,
3967 |
3968 | /* Character 190 (0xbe):
3969 | width 6
3970 | +------+
3971 | |** |
3972 | | * |
3973 | | * |
3974 | | * |
3975 | |** * |
3976 | | ** |
3977 | | * * |
3978 | | **** |
3979 | | * |
3980 | | |
3981 | +------+ */
3982 | 0xc0,
3983 | 0x20,
3984 | 0x40,
3985 | 0x20,
3986 | 0xc8,
3987 | 0x18,
3988 | 0x28,
3989 | 0x78,
3990 | 0x08,
3991 | 0x00,
3992 |
3993 | /* Character 191 (0xbf):
3994 | width 6
3995 | +------+
3996 | | |
3997 | | * |
3998 | | |
3999 | | * |
4000 | | * |
4001 | | * |
4002 | |* * |
4003 | | *** |
4004 | | |
4005 | | |
4006 | +------+ */
4007 | 0x00,
4008 | 0x20,
4009 | 0x00,
4010 | 0x20,
4011 | 0x20,
4012 | 0x40,
4013 | 0x88,
4014 | 0x70,
4015 | 0x00,
4016 | 0x00,
4017 |
4018 | /* Character 192 (0xc0):
4019 | width 6
4020 | +------+
4021 | | * |
4022 | | * |
4023 | | *** |
4024 | |* * |
4025 | |* * |
4026 | |***** |
4027 | |* * |
4028 | |* * |
4029 | | |
4030 | | |
4031 | +------+ */
4032 | 0x40,
4033 | 0x20,
4034 | 0x70,
4035 | 0x88,
4036 | 0x88,
4037 | 0xf8,
4038 | 0x88,
4039 | 0x88,
4040 | 0x00,
4041 | 0x00,
4042 |
4043 | /* Character 193 (0xc1):
4044 | width 6
4045 | +------+
4046 | | * |
4047 | | * |
4048 | | *** |
4049 | |* * |
4050 | |* * |
4051 | |***** |
4052 | |* * |
4053 | |* * |
4054 | | |
4055 | | |
4056 | +------+ */
4057 | 0x10,
4058 | 0x20,
4059 | 0x70,
4060 | 0x88,
4061 | 0x88,
4062 | 0xf8,
4063 | 0x88,
4064 | 0x88,
4065 | 0x00,
4066 | 0x00,
4067 |
4068 | /* Character 194 (0xc2):
4069 | width 6
4070 | +------+
4071 | | * |
4072 | | * * |
4073 | | *** |
4074 | |* * |
4075 | |* * |
4076 | |***** |
4077 | |* * |
4078 | |* * |
4079 | | |
4080 | | |
4081 | +------+ */
4082 | 0x20,
4083 | 0x50,
4084 | 0x70,
4085 | 0x88,
4086 | 0x88,
4087 | 0xf8,
4088 | 0x88,
4089 | 0x88,
4090 | 0x00,
4091 | 0x00,
4092 |
4093 | /* Character 195 (0xc3):
4094 | width 6
4095 | +------+
4096 | | * * |
4097 | |* ** |
4098 | | *** |
4099 | |* * |
4100 | |* * |
4101 | |***** |
4102 | |* * |
4103 | |* * |
4104 | | |
4105 | | |
4106 | +------+ */
4107 | 0x48,
4108 | 0xb0,
4109 | 0x70,
4110 | 0x88,
4111 | 0x88,
4112 | 0xf8,
4113 | 0x88,
4114 | 0x88,
4115 | 0x00,
4116 | 0x00,
4117 |
4118 | /* Character 196 (0xc4):
4119 | width 6
4120 | +------+
4121 | | * * |
4122 | | |
4123 | | *** |
4124 | |* * |
4125 | |* * |
4126 | |***** |
4127 | |* * |
4128 | |* * |
4129 | | |
4130 | | |
4131 | +------+ */
4132 | 0x50,
4133 | 0x00,
4134 | 0x70,
4135 | 0x88,
4136 | 0x88,
4137 | 0xf8,
4138 | 0x88,
4139 | 0x88,
4140 | 0x00,
4141 | 0x00,
4142 |
4143 | /* Character 197 (0xc5):
4144 | width 6
4145 | +------+
4146 | | * |
4147 | | * * |
4148 | | *** |
4149 | |* * |
4150 | |* * |
4151 | |***** |
4152 | |* * |
4153 | |* * |
4154 | | |
4155 | | |
4156 | +------+ */
4157 | 0x20,
4158 | 0x50,
4159 | 0x70,
4160 | 0x88,
4161 | 0x88,
4162 | 0xf8,
4163 | 0x88,
4164 | 0x88,
4165 | 0x00,
4166 | 0x00,
4167 |
4168 | /* Character 198 (0xc6):
4169 | width 6
4170 | +------+
4171 | | |
4172 | | ****|
4173 | | * * |
4174 | |* * |
4175 | |* ***|
4176 | |**** |
4177 | |* * |
4178 | |* ***|
4179 | | |
4180 | | |
4181 | +------+ */
4182 | 0x00,
4183 | 0x3c,
4184 | 0x50,
4185 | 0x90,
4186 | 0x9c,
4187 | 0xf0,
4188 | 0x90,
4189 | 0x9c,
4190 | 0x00,
4191 | 0x00,
4192 |
4193 | /* Character 199 (0xc7):
4194 | width 6
4195 | +------+
4196 | | |
4197 | | *** |
4198 | |* * |
4199 | |* |
4200 | |* |
4201 | |* |
4202 | |* * |
4203 | | *** |
4204 | | * |
4205 | | * |
4206 | +------+ */
4207 | 0x00,
4208 | 0x70,
4209 | 0x88,
4210 | 0x80,
4211 | 0x80,
4212 | 0x80,
4213 | 0x88,
4214 | 0x70,
4215 | 0x20,
4216 | 0x40,
4217 |
4218 | /* Character 200 (0xc8):
4219 | width 6
4220 | +------+
4221 | | * |
4222 | |***** |
4223 | |* |
4224 | |* |
4225 | |**** |
4226 | |* |
4227 | |* |
4228 | |***** |
4229 | | |
4230 | | |
4231 | +------+ */
4232 | 0x40,
4233 | 0xf8,
4234 | 0x80,
4235 | 0x80,
4236 | 0xf0,
4237 | 0x80,
4238 | 0x80,
4239 | 0xf8,
4240 | 0x00,
4241 | 0x00,
4242 |
4243 | /* Character 201 (0xc9):
4244 | width 6
4245 | +------+
4246 | | * |
4247 | |***** |
4248 | |* |
4249 | |* |
4250 | |**** |
4251 | |* |
4252 | |* |
4253 | |***** |
4254 | | |
4255 | | |
4256 | +------+ */
4257 | 0x10,
4258 | 0xf8,
4259 | 0x80,
4260 | 0x80,
4261 | 0xf0,
4262 | 0x80,
4263 | 0x80,
4264 | 0xf8,
4265 | 0x00,
4266 | 0x00,
4267 |
4268 | /* Character 202 (0xca):
4269 | width 6
4270 | +------+
4271 | | * |
4272 | |***** |
4273 | |* |
4274 | |* |
4275 | |**** |
4276 | |* |
4277 | |* |
4278 | |***** |
4279 | | |
4280 | | |
4281 | +------+ */
4282 | 0x20,
4283 | 0xf8,
4284 | 0x80,
4285 | 0x80,
4286 | 0xf0,
4287 | 0x80,
4288 | 0x80,
4289 | 0xf8,
4290 | 0x00,
4291 | 0x00,
4292 |
4293 | /* Character 203 (0xcb):
4294 | width 6
4295 | +------+
4296 | | * * |
4297 | |***** |
4298 | |* |
4299 | |* |
4300 | |**** |
4301 | |* |
4302 | |* |
4303 | |***** |
4304 | | |
4305 | | |
4306 | +------+ */
4307 | 0x50,
4308 | 0xf8,
4309 | 0x80,
4310 | 0x80,
4311 | 0xf0,
4312 | 0x80,
4313 | 0x80,
4314 | 0xf8,
4315 | 0x00,
4316 | 0x00,
4317 |
4318 | /* Character 204 (0xcc):
4319 | width 6
4320 | +------+
4321 | | * |
4322 | | * |
4323 | | *** |
4324 | | * |
4325 | | * |
4326 | | * |
4327 | | * |
4328 | | *** |
4329 | | |
4330 | | |
4331 | +------+ */
4332 | 0x40,
4333 | 0x20,
4334 | 0x70,
4335 | 0x20,
4336 | 0x20,
4337 | 0x20,
4338 | 0x20,
4339 | 0x70,
4340 | 0x00,
4341 | 0x00,
4342 |
4343 | /* Character 205 (0xcd):
4344 | width 6
4345 | +------+
4346 | | * |
4347 | | * |
4348 | | *** |
4349 | | * |
4350 | | * |
4351 | | * |
4352 | | * |
4353 | | *** |
4354 | | |
4355 | | |
4356 | +------+ */
4357 | 0x10,
4358 | 0x20,
4359 | 0x70,
4360 | 0x20,
4361 | 0x20,
4362 | 0x20,
4363 | 0x20,
4364 | 0x70,
4365 | 0x00,
4366 | 0x00,
4367 |
4368 | /* Character 206 (0xce):
4369 | width 6
4370 | +------+
4371 | | * |
4372 | | * * |
4373 | | *** |
4374 | | * |
4375 | | * |
4376 | | * |
4377 | | * |
4378 | | *** |
4379 | | |
4380 | | |
4381 | +------+ */
4382 | 0x20,
4383 | 0x50,
4384 | 0x70,
4385 | 0x20,
4386 | 0x20,
4387 | 0x20,
4388 | 0x20,
4389 | 0x70,
4390 | 0x00,
4391 | 0x00,
4392 |
4393 | /* Character 207 (0xcf):
4394 | width 6
4395 | +------+
4396 | | * * |
4397 | | |
4398 | | *** |
4399 | | * |
4400 | | * |
4401 | | * |
4402 | | * |
4403 | | *** |
4404 | | |
4405 | | |
4406 | +------+ */
4407 | 0x50,
4408 | 0x00,
4409 | 0x70,
4410 | 0x20,
4411 | 0x20,
4412 | 0x20,
4413 | 0x20,
4414 | 0x70,
4415 | 0x00,
4416 | 0x00,
4417 |
4418 | /* Character 208 (0xd0):
4419 | width 6
4420 | +------+
4421 | | |
4422 | |**** |
4423 | | * * |
4424 | | * * |
4425 | |*** * |
4426 | | * * |
4427 | | * * |
4428 | |**** |
4429 | | |
4430 | | |
4431 | +------+ */
4432 | 0x00,
4433 | 0xf0,
4434 | 0x48,
4435 | 0x48,
4436 | 0xe8,
4437 | 0x48,
4438 | 0x48,
4439 | 0xf0,
4440 | 0x00,
4441 | 0x00,
4442 |
4443 | /* Character 209 (0xd1):
4444 | width 6
4445 | +------+
4446 | | * * |
4447 | | * * |
4448 | |* * |
4449 | |** * |
4450 | |* * * |
4451 | |* ** |
4452 | |* * |
4453 | |* * |
4454 | | |
4455 | | |
4456 | +------+ */
4457 | 0x28,
4458 | 0x50,
4459 | 0x88,
4460 | 0xc8,
4461 | 0xa8,
4462 | 0x98,
4463 | 0x88,
4464 | 0x88,
4465 | 0x00,
4466 | 0x00,
4467 |
4468 | /* Character 210 (0xd2):
4469 | width 6
4470 | +------+
4471 | | * |
4472 | | * |
4473 | | *** |
4474 | |* * |
4475 | |* * |
4476 | |* * |
4477 | |* * |
4478 | | *** |
4479 | | |
4480 | | |
4481 | +------+ */
4482 | 0x40,
4483 | 0x20,
4484 | 0x70,
4485 | 0x88,
4486 | 0x88,
4487 | 0x88,
4488 | 0x88,
4489 | 0x70,
4490 | 0x00,
4491 | 0x00,
4492 |
4493 | /* Character 211 (0xd3):
4494 | width 6
4495 | +------+
4496 | | * |
4497 | | * |
4498 | | *** |
4499 | |* * |
4500 | |* * |
4501 | |* * |
4502 | |* * |
4503 | | *** |
4504 | | |
4505 | | |
4506 | +------+ */
4507 | 0x10,
4508 | 0x20,
4509 | 0x70,
4510 | 0x88,
4511 | 0x88,
4512 | 0x88,
4513 | 0x88,
4514 | 0x70,
4515 | 0x00,
4516 | 0x00,
4517 |
4518 | /* Character 212 (0xd4):
4519 | width 6
4520 | +------+
4521 | | * |
4522 | | * * |
4523 | | *** |
4524 | |* * |
4525 | |* * |
4526 | |* * |
4527 | |* * |
4528 | | *** |
4529 | | |
4530 | | |
4531 | +------+ */
4532 | 0x20,
4533 | 0x50,
4534 | 0x70,
4535 | 0x88,
4536 | 0x88,
4537 | 0x88,
4538 | 0x88,
4539 | 0x70,
4540 | 0x00,
4541 | 0x00,
4542 |
4543 | /* Character 213 (0xd5):
4544 | width 6
4545 | +------+
4546 | | * * |
4547 | | * * |
4548 | | *** |
4549 | |* * |
4550 | |* * |
4551 | |* * |
4552 | |* * |
4553 | | *** |
4554 | | |
4555 | | |
4556 | +------+ */
4557 | 0x28,
4558 | 0x50,
4559 | 0x70,
4560 | 0x88,
4561 | 0x88,
4562 | 0x88,
4563 | 0x88,
4564 | 0x70,
4565 | 0x00,
4566 | 0x00,
4567 |
4568 | /* Character 214 (0xd6):
4569 | width 6
4570 | +------+
4571 | | * * |
4572 | | |
4573 | | *** |
4574 | |* * |
4575 | |* * |
4576 | |* * |
4577 | |* * |
4578 | | *** |
4579 | | |
4580 | | |
4581 | +------+ */
4582 | 0x50,
4583 | 0x00,
4584 | 0x70,
4585 | 0x88,
4586 | 0x88,
4587 | 0x88,
4588 | 0x88,
4589 | 0x70,
4590 | 0x00,
4591 | 0x00,
4592 |
4593 | /* Character 215 (0xd7):
4594 | width 6
4595 | +------+
4596 | | |
4597 | | |
4598 | | |
4599 | |* * |
4600 | | * * |
4601 | | * |
4602 | | * * |
4603 | |* * |
4604 | | |
4605 | | |
4606 | +------+ */
4607 | 0x00,
4608 | 0x00,
4609 | 0x00,
4610 | 0x88,
4611 | 0x50,
4612 | 0x20,
4613 | 0x50,
4614 | 0x88,
4615 | 0x00,
4616 | 0x00,
4617 |
4618 | /* Character 216 (0xd8):
4619 | width 6
4620 | +------+
4621 | | |
4622 | | *** |
4623 | |* ** |
4624 | |* ** |
4625 | |* * * |
4626 | |** * |
4627 | |** * |
4628 | | *** |
4629 | | |
4630 | | |
4631 | +------+ */
4632 | 0x00,
4633 | 0x70,
4634 | 0x98,
4635 | 0x98,
4636 | 0xa8,
4637 | 0xc8,
4638 | 0xc8,
4639 | 0x70,
4640 | 0x00,
4641 | 0x00,
4642 |
4643 | /* Character 217 (0xd9):
4644 | width 6
4645 | +------+
4646 | | * |
4647 | | * |
4648 | |* * |
4649 | |* * |
4650 | |* * |
4651 | |* * |
4652 | |* * |
4653 | | *** |
4654 | | |
4655 | | |
4656 | +------+ */
4657 | 0x40,
4658 | 0x20,
4659 | 0x88,
4660 | 0x88,
4661 | 0x88,
4662 | 0x88,
4663 | 0x88,
4664 | 0x70,
4665 | 0x00,
4666 | 0x00,
4667 |
4668 | /* Character 218 (0xda):
4669 | width 6
4670 | +------+
4671 | | * |
4672 | | * |
4673 | |* * |
4674 | |* * |
4675 | |* * |
4676 | |* * |
4677 | |* * |
4678 | | *** |
4679 | | |
4680 | | |
4681 | +------+ */
4682 | 0x10,
4683 | 0x20,
4684 | 0x88,
4685 | 0x88,
4686 | 0x88,
4687 | 0x88,
4688 | 0x88,
4689 | 0x70,
4690 | 0x00,
4691 | 0x00,
4692 |
4693 | /* Character 219 (0xdb):
4694 | width 6
4695 | +------+
4696 | | * |
4697 | | * * |
4698 | | |
4699 | |* * |
4700 | |* * |
4701 | |* * |
4702 | |* * |
4703 | | *** |
4704 | | |
4705 | | |
4706 | +------+ */
4707 | 0x20,
4708 | 0x50,
4709 | 0x00,
4710 | 0x88,
4711 | 0x88,
4712 | 0x88,
4713 | 0x88,
4714 | 0x70,
4715 | 0x00,
4716 | 0x00,
4717 |
4718 | /* Character 220 (0xdc):
4719 | width 6
4720 | +------+
4721 | | * * |
4722 | | |
4723 | |* * |
4724 | |* * |
4725 | |* * |
4726 | |* * |
4727 | |* * |
4728 | | *** |
4729 | | |
4730 | | |
4731 | +------+ */
4732 | 0x50,
4733 | 0x00,
4734 | 0x88,
4735 | 0x88,
4736 | 0x88,
4737 | 0x88,
4738 | 0x88,
4739 | 0x70,
4740 | 0x00,
4741 | 0x00,
4742 |
4743 | /* Character 221 (0xdd):
4744 | width 6
4745 | +------+
4746 | | * |
4747 | | * |
4748 | |* * |
4749 | |* * |
4750 | | * * |
4751 | | * |
4752 | | * |
4753 | | * |
4754 | | |
4755 | | |
4756 | +------+ */
4757 | 0x10,
4758 | 0x20,
4759 | 0x88,
4760 | 0x88,
4761 | 0x50,
4762 | 0x20,
4763 | 0x20,
4764 | 0x20,
4765 | 0x00,
4766 | 0x00,
4767 |
4768 | /* Character 222 (0xde):
4769 | width 6
4770 | +------+
4771 | | |
4772 | |* |
4773 | |**** |
4774 | |* * |
4775 | |**** |
4776 | |* |
4777 | |* |
4778 | |* |
4779 | | |
4780 | | |
4781 | +------+ */
4782 | 0x00,
4783 | 0x80,
4784 | 0xf0,
4785 | 0x88,
4786 | 0xf0,
4787 | 0x80,
4788 | 0x80,
4789 | 0x80,
4790 | 0x00,
4791 | 0x00,
4792 |
4793 | /* Character 223 (0xdf):
4794 | width 6
4795 | +------+
4796 | | |
4797 | | *** |
4798 | |* * |
4799 | |* * |
4800 | |* * |
4801 | |* * |
4802 | |* * |
4803 | |* ** |
4804 | | |
4805 | | |
4806 | +------+ */
4807 | 0x00,
4808 | 0x70,
4809 | 0x88,
4810 | 0x90,
4811 | 0xa0,
4812 | 0x90,
4813 | 0x88,
4814 | 0xb0,
4815 | 0x00,
4816 | 0x00,
4817 |
4818 | /* Character 224 (0xe0):
4819 | width 6
4820 | +------+
4821 | | * |
4822 | | * |
4823 | | |
4824 | | *** |
4825 | | * |
4826 | | **** |
4827 | |* * |
4828 | | **** |
4829 | | |
4830 | | |
4831 | +------+ */
4832 | 0x40,
4833 | 0x20,
4834 | 0x00,
4835 | 0x70,
4836 | 0x08,
4837 | 0x78,
4838 | 0x88,
4839 | 0x78,
4840 | 0x00,
4841 | 0x00,
4842 |
4843 | /* Character 225 (0xe1):
4844 | width 6
4845 | +------+
4846 | | * |
4847 | | * |
4848 | | |
4849 | | *** |
4850 | | * |
4851 | | **** |
4852 | |* * |
4853 | | **** |
4854 | | |
4855 | | |
4856 | +------+ */
4857 | 0x10,
4858 | 0x20,
4859 | 0x00,
4860 | 0x70,
4861 | 0x08,
4862 | 0x78,
4863 | 0x88,
4864 | 0x78,
4865 | 0x00,
4866 | 0x00,
4867 |
4868 | /* Character 226 (0xe2):
4869 | width 6
4870 | +------+
4871 | | * |
4872 | | * * |
4873 | | |
4874 | | *** |
4875 | | * |
4876 | | **** |
4877 | |* * |
4878 | | **** |
4879 | | |
4880 | | |
4881 | +------+ */
4882 | 0x20,
4883 | 0x50,
4884 | 0x00,
4885 | 0x70,
4886 | 0x08,
4887 | 0x78,
4888 | 0x88,
4889 | 0x78,
4890 | 0x00,
4891 | 0x00,
4892 |
4893 | /* Character 227 (0xe3):
4894 | width 6
4895 | +------+
4896 | | * * |
4897 | | * * |
4898 | | |
4899 | | *** |
4900 | | * |
4901 | | **** |
4902 | |* * |
4903 | | **** |
4904 | | |
4905 | | |
4906 | +------+ */
4907 | 0x28,
4908 | 0x50,
4909 | 0x00,
4910 | 0x70,
4911 | 0x08,
4912 | 0x78,
4913 | 0x88,
4914 | 0x78,
4915 | 0x00,
4916 | 0x00,
4917 |
4918 | /* Character 228 (0xe4):
4919 | width 6
4920 | +------+
4921 | | |
4922 | | * * |
4923 | | |
4924 | | *** |
4925 | | * |
4926 | | **** |
4927 | |* * |
4928 | | **** |
4929 | | |
4930 | | |
4931 | +------+ */
4932 | 0x00,
4933 | 0x50,
4934 | 0x00,
4935 | 0x70,
4936 | 0x08,
4937 | 0x78,
4938 | 0x88,
4939 | 0x78,
4940 | 0x00,
4941 | 0x00,
4942 |
4943 | /* Character 229 (0xe5):
4944 | width 6
4945 | +------+
4946 | | * |
4947 | | * * |
4948 | | * |
4949 | | *** |
4950 | | * |
4951 | | **** |
4952 | |* * |
4953 | | **** |
4954 | | |
4955 | | |
4956 | +------+ */
4957 | 0x20,
4958 | 0x50,
4959 | 0x20,
4960 | 0x70,
4961 | 0x08,
4962 | 0x78,
4963 | 0x88,
4964 | 0x78,
4965 | 0x00,
4966 | 0x00,
4967 |
4968 | /* Character 230 (0xe6):
4969 | width 6
4970 | +------+
4971 | | |
4972 | | |
4973 | | |
4974 | | **** |
4975 | | * *|
4976 | | *****|
4977 | |* * |
4978 | | *****|
4979 | | |
4980 | | |
4981 | +------+ */
4982 | 0x00,
4983 | 0x00,
4984 | 0x00,
4985 | 0x78,
4986 | 0x14,
4987 | 0x7c,
4988 | 0x90,
4989 | 0x7c,
4990 | 0x00,
4991 | 0x00,
4992 |
4993 | /* Character 231 (0xe7):
4994 | width 6
4995 | +------+
4996 | | |
4997 | | |
4998 | | |
4999 | | *** |
5000 | |* * |
5001 | |* |
5002 | |* * |
5003 | | *** |
5004 | | * |
5005 | | * |
5006 | +------+ */
5007 | 0x00,
5008 | 0x00,
5009 | 0x00,
5010 | 0x70,
5011 | 0x88,
5012 | 0x80,
5013 | 0x88,
5014 | 0x70,
5015 | 0x20,
5016 | 0x40,
5017 |
5018 | /* Character 232 (0xe8):
5019 | width 6
5020 | +------+
5021 | | * |
5022 | | * |
5023 | | |
5024 | | *** |
5025 | |* * |
5026 | |***** |
5027 | |* |
5028 | | *** |
5029 | | |
5030 | | |
5031 | +------+ */
5032 | 0x40,
5033 | 0x20,
5034 | 0x00,
5035 | 0x70,
5036 | 0x88,
5037 | 0xf8,
5038 | 0x80,
5039 | 0x70,
5040 | 0x00,
5041 | 0x00,
5042 |
5043 | /* Character 233 (0xe9):
5044 | width 6
5045 | +------+
5046 | | * |
5047 | | * |
5048 | | |
5049 | | *** |
5050 | |* * |
5051 | |***** |
5052 | |* |
5053 | | *** |
5054 | | |
5055 | | |
5056 | +------+ */
5057 | 0x10,
5058 | 0x20,
5059 | 0x00,
5060 | 0x70,
5061 | 0x88,
5062 | 0xf8,
5063 | 0x80,
5064 | 0x70,
5065 | 0x00,
5066 | 0x00,
5067 |
5068 | /* Character 234 (0xea):
5069 | width 6
5070 | +------+
5071 | | * |
5072 | | * * |
5073 | | |
5074 | | *** |
5075 | |* * |
5076 | |***** |
5077 | |* |
5078 | | *** |
5079 | | |
5080 | | |
5081 | +------+ */
5082 | 0x20,
5083 | 0x50,
5084 | 0x00,
5085 | 0x70,
5086 | 0x88,
5087 | 0xf8,
5088 | 0x80,
5089 | 0x70,
5090 | 0x00,
5091 | 0x00,
5092 |
5093 | /* Character 235 (0xeb):
5094 | width 6
5095 | +------+
5096 | | |
5097 | | * * |
5098 | | |
5099 | | *** |
5100 | |* * |
5101 | |***** |
5102 | |* |
5103 | | *** |
5104 | | |
5105 | | |
5106 | +------+ */
5107 | 0x00,
5108 | 0x50,
5109 | 0x00,
5110 | 0x70,
5111 | 0x88,
5112 | 0xf8,
5113 | 0x80,
5114 | 0x70,
5115 | 0x00,
5116 | 0x00,
5117 |
5118 | /* Character 236 (0xec):
5119 | width 6
5120 | +------+
5121 | | * |
5122 | | * |
5123 | | |
5124 | | ** |
5125 | | * |
5126 | | * |
5127 | | * |
5128 | | *** |
5129 | | |
5130 | | |
5131 | +------+ */
5132 | 0x40,
5133 | 0x20,
5134 | 0x00,
5135 | 0x60,
5136 | 0x20,
5137 | 0x20,
5138 | 0x20,
5139 | 0x70,
5140 | 0x00,
5141 | 0x00,
5142 |
5143 | /* Character 237 (0xed):
5144 | width 6
5145 | +------+
5146 | | * |
5147 | | * |
5148 | | |
5149 | | ** |
5150 | | * |
5151 | | * |
5152 | | * |
5153 | | *** |
5154 | | |
5155 | | |
5156 | +------+ */
5157 | 0x20,
5158 | 0x40,
5159 | 0x00,
5160 | 0x60,
5161 | 0x20,
5162 | 0x20,
5163 | 0x20,
5164 | 0x70,
5165 | 0x00,
5166 | 0x00,
5167 |
5168 | /* Character 238 (0xee):
5169 | width 6
5170 | +------+
5171 | | * |
5172 | | * * |
5173 | | |
5174 | | ** |
5175 | | * |
5176 | | * |
5177 | | * |
5178 | | *** |
5179 | | |
5180 | | |
5181 | +------+ */
5182 | 0x20,
5183 | 0x50,
5184 | 0x00,
5185 | 0x60,
5186 | 0x20,
5187 | 0x20,
5188 | 0x20,
5189 | 0x70,
5190 | 0x00,
5191 | 0x00,
5192 |
5193 | /* Character 239 (0xef):
5194 | width 6
5195 | +------+
5196 | | |
5197 | | * * |
5198 | | |
5199 | | ** |
5200 | | * |
5201 | | * |
5202 | | * |
5203 | | *** |
5204 | | |
5205 | | |
5206 | +------+ */
5207 | 0x00,
5208 | 0x50,
5209 | 0x00,
5210 | 0x60,
5211 | 0x20,
5212 | 0x20,
5213 | 0x20,
5214 | 0x70,
5215 | 0x00,
5216 | 0x00,
5217 |
5218 | /* Character 240 (0xf0):
5219 | width 6
5220 | +------+
5221 | | |
5222 | |** |
5223 | | ** |
5224 | | *** |
5225 | |* * |
5226 | |* * |
5227 | |* * |
5228 | | *** |
5229 | | |
5230 | | |
5231 | +------+ */
5232 | 0x00,
5233 | 0xc0,
5234 | 0x30,
5235 | 0x70,
5236 | 0x88,
5237 | 0x88,
5238 | 0x88,
5239 | 0x70,
5240 | 0x00,
5241 | 0x00,
5242 |
5243 | /* Character 241 (0xf1):
5244 | width 6
5245 | +------+
5246 | | * * |
5247 | | * * |
5248 | | |
5249 | |* ** |
5250 | |** * |
5251 | |* * |
5252 | |* * |
5253 | |* * |
5254 | | |
5255 | | |
5256 | +------+ */
5257 | 0x28,
5258 | 0x50,
5259 | 0x00,
5260 | 0xb0,
5261 | 0xc8,
5262 | 0x88,
5263 | 0x88,
5264 | 0x88,
5265 | 0x00,
5266 | 0x00,
5267 |
5268 | /* Character 242 (0xf2):
5269 | width 6
5270 | +------+
5271 | | * |
5272 | | * |
5273 | | |
5274 | | *** |
5275 | |* * |
5276 | |* * |
5277 | |* * |
5278 | | *** |
5279 | | |
5280 | | |
5281 | +------+ */
5282 | 0x40,
5283 | 0x20,
5284 | 0x00,
5285 | 0x70,
5286 | 0x88,
5287 | 0x88,
5288 | 0x88,
5289 | 0x70,
5290 | 0x00,
5291 | 0x00,
5292 |
5293 | /* Character 243 (0xf3):
5294 | width 6
5295 | +------+
5296 | | * |
5297 | | * |
5298 | | |
5299 | | *** |
5300 | |* * |
5301 | |* * |
5302 | |* * |
5303 | | *** |
5304 | | |
5305 | | |
5306 | +------+ */
5307 | 0x10,
5308 | 0x20,
5309 | 0x00,
5310 | 0x70,
5311 | 0x88,
5312 | 0x88,
5313 | 0x88,
5314 | 0x70,
5315 | 0x00,
5316 | 0x00,
5317 |
5318 | /* Character 244 (0xf4):
5319 | width 6
5320 | +------+
5321 | | * |
5322 | | * * |
5323 | | |
5324 | | *** |
5325 | |* * |
5326 | |* * |
5327 | |* * |
5328 | | *** |
5329 | | |
5330 | | |
5331 | +------+ */
5332 | 0x20,
5333 | 0x50,
5334 | 0x00,
5335 | 0x70,
5336 | 0x88,
5337 | 0x88,
5338 | 0x88,
5339 | 0x70,
5340 | 0x00,
5341 | 0x00,
5342 |
5343 | /* Character 245 (0xf5):
5344 | width 6
5345 | +------+
5346 | | * * |
5347 | | * * |
5348 | | |
5349 | | *** |
5350 | |* * |
5351 | |* * |
5352 | |* * |
5353 | | *** |
5354 | | |
5355 | | |
5356 | +------+ */
5357 | 0x28,
5358 | 0x50,
5359 | 0x00,
5360 | 0x70,
5361 | 0x88,
5362 | 0x88,
5363 | 0x88,
5364 | 0x70,
5365 | 0x00,
5366 | 0x00,
5367 |
5368 | /* Character 246 (0xf6):
5369 | width 6
5370 | +------+
5371 | | |
5372 | | * * |
5373 | | |
5374 | | *** |
5375 | |* * |
5376 | |* * |
5377 | |* * |
5378 | | *** |
5379 | | |
5380 | | |
5381 | +------+ */
5382 | 0x00,
5383 | 0x50,
5384 | 0x00,
5385 | 0x70,
5386 | 0x88,
5387 | 0x88,
5388 | 0x88,
5389 | 0x70,
5390 | 0x00,
5391 | 0x00,
5392 |
5393 | /* Character 247 (0xf7):
5394 | width 6
5395 | +------+
5396 | | |
5397 | | |
5398 | | * |
5399 | | |
5400 | |***** |
5401 | | |
5402 | | * |
5403 | | |
5404 | | |
5405 | | |
5406 | +------+ */
5407 | 0x00,
5408 | 0x00,
5409 | 0x20,
5410 | 0x00,
5411 | 0xf8,
5412 | 0x00,
5413 | 0x20,
5414 | 0x00,
5415 | 0x00,
5416 | 0x00,
5417 |
5418 | /* Character 248 (0xf8):
5419 | width 6
5420 | +------+
5421 | | |
5422 | | |
5423 | | |
5424 | | **** |
5425 | |* ** |
5426 | |* * * |
5427 | |** * |
5428 | |**** |
5429 | | |
5430 | | |
5431 | +------+ */
5432 | 0x00,
5433 | 0x00,
5434 | 0x00,
5435 | 0x78,
5436 | 0x98,
5437 | 0xa8,
5438 | 0xc8,
5439 | 0xf0,
5440 | 0x00,
5441 | 0x00,
5442 |
5443 | /* Character 249 (0xf9):
5444 | width 6
5445 | +------+
5446 | | * |
5447 | | * |
5448 | | |
5449 | |* * |
5450 | |* * |
5451 | |* * |
5452 | |* ** |
5453 | | ** * |
5454 | | |
5455 | | |
5456 | +------+ */
5457 | 0x40,
5458 | 0x20,
5459 | 0x00,
5460 | 0x88,
5461 | 0x88,
5462 | 0x88,
5463 | 0x98,
5464 | 0x68,
5465 | 0x00,
5466 | 0x00,
5467 |
5468 | /* Character 250 (0xfa):
5469 | width 6
5470 | +------+
5471 | | * |
5472 | | * |
5473 | | |
5474 | |* * |
5475 | |* * |
5476 | |* * |
5477 | |* ** |
5478 | | ** * |
5479 | | |
5480 | | |
5481 | +------+ */
5482 | 0x10,
5483 | 0x20,
5484 | 0x00,
5485 | 0x88,
5486 | 0x88,
5487 | 0x88,
5488 | 0x98,
5489 | 0x68,
5490 | 0x00,
5491 | 0x00,
5492 |
5493 | /* Character 251 (0xfb):
5494 | width 6
5495 | +------+
5496 | | * |
5497 | | * * |
5498 | | |
5499 | |* * |
5500 | |* * |
5501 | |* * |
5502 | |* ** |
5503 | | ** * |
5504 | | |
5505 | | |
5506 | +------+ */
5507 | 0x20,
5508 | 0x50,
5509 | 0x00,
5510 | 0x88,
5511 | 0x88,
5512 | 0x88,
5513 | 0x98,
5514 | 0x68,
5515 | 0x00,
5516 | 0x00,
5517 |
5518 | /* Character 252 (0xfc):
5519 | width 6
5520 | +------+
5521 | | |
5522 | | * * |
5523 | | |
5524 | |* * |
5525 | |* * |
5526 | |* * |
5527 | |* ** |
5528 | | ** * |
5529 | | |
5530 | | |
5531 | +------+ */
5532 | 0x00,
5533 | 0x50,
5534 | 0x00,
5535 | 0x88,
5536 | 0x88,
5537 | 0x88,
5538 | 0x98,
5539 | 0x68,
5540 | 0x00,
5541 | 0x00,
5542 |
5543 | /* Character 253 (0xfd):
5544 | width 6
5545 | +------+
5546 | | |
5547 | | * |
5548 | | * |
5549 | |* * |
5550 | |* * |
5551 | |* ** |
5552 | | ** * |
5553 | | * |
5554 | |* * |
5555 | | *** |
5556 | +------+ */
5557 | 0x00,
5558 | 0x10,
5559 | 0x20,
5560 | 0x88,
5561 | 0x88,
5562 | 0x98,
5563 | 0x68,
5564 | 0x08,
5565 | 0x88,
5566 | 0x70,
5567 |
5568 | /* Character 254 (0xfe):
5569 | width 6
5570 | +------+
5571 | | |
5572 | | |
5573 | |* |
5574 | |**** |
5575 | |* * |
5576 | |* * |
5577 | |* * |
5578 | |**** |
5579 | |* |
5580 | |* |
5581 | +------+ */
5582 | 0x00,
5583 | 0x00,
5584 | 0x80,
5585 | 0xf0,
5586 | 0x88,
5587 | 0x88,
5588 | 0x88,
5589 | 0xf0,
5590 | 0x80,
5591 | 0x80,
5592 |
5593 | /* Character 255 (0xff):
5594 | width 6
5595 | +------+
5596 | | |
5597 | | * * |
5598 | | |
5599 | |* * |
5600 | |* * |
5601 | |* ** |
5602 | | ** * |
5603 | | * |
5604 | |* * |
5605 | | *** |
5606 | +------+ */
5607 | 0x00,
5608 | 0x50,
5609 | 0x00,
5610 | 0x88,
5611 | 0x88,
5612 | 0x98,
5613 | 0x68,
5614 | 0x08,
5615 | 0x88,
5616 | 0x70,
5617 | };
--------------------------------------------------------------------------------
/console.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "screen.h"
3 | #include "console.h"
4 | #include "utils.h"
5 | #include "charmaps.h"
6 |
7 | int col=0;
8 | int line=0;
9 |
10 | int getConsoleCol() {
11 | return col;
12 | }
13 |
14 | int getConsoleRow() {
15 | return line;
16 | }
17 |
18 | void setConsoleCol(int newcol) {
19 | col = newcol;
20 | }
21 |
22 | void setConsoleRow(int newline) {
23 | line = newline;
24 | }
25 |
26 | void dispBuf(char* message, int params)
27 | { int ret = params & I_AUTORET;
28 | int trsp = params & I_TRANSP;
29 | int bold = params & I_BOLD;
30 | int l = strlen(message);
31 | int i, stop=0;
32 | for (i = 0; i < l && !stop; i++) {
33 | if (message[i] == 0x0A) {
34 | if ( ret )
35 | { col = 0;
36 | line ++;
37 | }
38 | else
39 | { putChar(col*CHAR_WIDTH, line*CHAR_HEIGHT, ' ', trsp, bold);
40 | col++;
41 | }
42 | } else {
43 | putChar(col*CHAR_WIDTH, line*CHAR_HEIGHT, message[i], trsp, bold);
44 | col ++;
45 | }
46 | if (col >= MAX_COL)
47 | { if ( !ret ) stop=1;
48 | else
49 | { col = 0;
50 | line ++;
51 | }
52 | }
53 | if(line>=MAX_LGN) { line=0; }
54 | }
55 | }
56 |
57 | void disp(char* msg, int params)
58 | { dispBuf(msg,params);
59 | }
60 |
61 | void displnBuf( unsigned char* buf, char* message, int params)
62 | { dispBuf(message, params);
63 | col=0;
64 | line++;
65 | if(line>=MAX_LGN) { line=0; }
66 | }
67 |
68 | void displn(char* msg, int params)
69 | { displnBuf(getScreen(),msg,params);
70 | }
71 |
72 | void resetConsole()
73 | { col=0;
74 | line=0;
75 | }
--------------------------------------------------------------------------------
/console.h:
--------------------------------------------------------------------------------
1 | #define MAX_COL SCREEN_WIDTH/CHAR_WIDTH
2 | #define MAX_LGN SCREEN_HEIGHT/CHAR_HEIGHT
3 | #define LSEPARATOR "----------------------------------------"
4 |
5 | #define I_AUTORET 1
6 | #define I_TRANSP 2
7 | #define I_BOLD 4
8 |
9 |
10 | void dispBuf(char* message, int params);
11 | void disp(char* msg, int params);
12 | void displnBuf( unsigned char* buf, char* message, int params);
13 | void displn(char* msg, int params);
14 | void resetConsole();
15 | int getConsoleCol();
16 | int getConsoleRow();
17 | void setConsoleCol(int col);
18 | void setConsoleRow(int line);
19 |
20 |
--------------------------------------------------------------------------------
/makefile:
--------------------------------------------------------------------------------
1 | DEBUG = FALSE
2 |
3 | GCC = nspire-gcc
4 | AS = nspire-as
5 | GXX = nspire-g++
6 | LD = nspire-ld
7 | GENZEHN = genzehn
8 |
9 | GCCFLAGS = -Wall -W -Wextra -marm -Wno-missing-braces -Wno-unused-parameter -flto
10 | LDFLAGS = -flto
11 | ZEHNFLAGS = --name "backSpire" --240x320-support true
12 |
13 | ifeq ($(DEBUG),FALSE)
14 | GCCFLAGS += -Os
15 | else
16 | GCCFLAGS += -O0 -g
17 | endif
18 |
19 | OBJS = $(patsubst %.c, %.o, $(shell find . -name \*.c))
20 | OBJS += $(patsubst %.cpp, %.o, $(shell find . -name \*.cpp))
21 | OBJS += $(patsubst %.S, %.o, $(shell find . -name \*.S))
22 | EXE = backspire
23 | DISTDIR = .
24 | vpath %.tns $(DISTDIR)
25 | vpath %.elf $(DISTDIR)
26 |
27 | all: $(EXE).tns
28 |
29 | %.o: %.c
30 | $(GCC) $(GCCFLAGS) -c $< -o $@
31 |
32 | %.o: %.cpp
33 | $(GXX) $(GCCFLAGS) -c $< -o $@
34 |
35 | %.o: %.S
36 | $(AS) -c $< -o $@
37 |
38 | $(EXE).elf: $(OBJS)
39 | mkdir -p $(DISTDIR)
40 | $(LD) $^ -o $@ $(LDFLAGS)
41 |
42 | $(EXE).tns: $(EXE).elf
43 | $(GENZEHN) --input $^ --output $@.zehn $(ZEHNFLAGS)
44 | make-prg $@.zehn $@
45 | rm $@.zehn
46 |
47 | clean:
48 | rm -f $(OBJS) $(DISTDIR)/$(EXE).tns $(DISTDIR)/$(EXE).elf $(DISTDIR)/$(EXE).zehn
49 |
--------------------------------------------------------------------------------
/nand.h:
--------------------------------------------------------------------------------
1 | #define NAND_PAGE_SIZE (has_colors?0x800:0x200)
2 | #define NAND_BLOCK_SIZE ((has_colors?0x40:0x20)*NAND_PAGE_SIZE)
3 | #define NAND_SIZE ((has_colors?128:32)*1024*1024)
4 |
5 | #define CLASSIC_CX_NPARTS 5
6 | #define CX2_NPARTS 14
7 |
8 | // offsets for the older Nspire CX manuf partition
9 | #define MANUF_PARTTABLE_OFFSET 0x818
10 | #define MANUF_PARTTABLE_ID "\x91\x5F\x9E\x4C"
11 | #define MANUF_PARTTABLE_ID_SIZE 4
12 | #define MANUF_DIAGS_OFFSET 0x82c
13 | #define MANUF_BOOT2_OFFSET 0x830
14 | #define MANUF_BOOTD_OFFSET 0x834
15 | #define MANUF_FILES_OFFSET 0x838
16 | #define MANUF_PTABLE_OFFSET 0x818
17 | #define MANUF_PTABLE_ID "\x91\x5F\x9E\x4C"
18 | #define MANUF_CR4_OFFSET 0x81D
19 |
20 | // page offsets for classic Nspire partitions, or older Nspire CX without a partition table
21 | #define MANUF_PAGE_OFFSET 0x00000
22 | #define BOOT2_PAGE_OFFSET 0x00020
23 | #define BOOTD_PAGE_OFFSET 0x00A80
24 | #define DIAGS_PAGE_OFFSET 0x00B00
25 | #define FILES_PAGE_OFFSET 0x01000
26 | #define NDEND_PAGE_OFFSET 0x10000
27 |
28 | #define CX2_MANUF_PAGE_OFFSET 0x00000
29 | #define CX2_BOOTL_PAGE_OFFSET 0x00040
30 | #define CX2_PTTDT_PAGE_OFFSET 0x00140
31 | #define CX2_UNKN1_PAGE_OFFSET 0x00180
32 | #define CX2_DEVCR_PAGE_OFFSET 0x001C0
33 | #define CX2_OSLDR_PAGE_OFFSET 0x00200
34 | #define CX2_INSTL_PAGE_OFFSET 0x002C0
35 | #define CX2_OINST_PAGE_OFFSET 0x004C0
36 | #define CX2_OSDAT_PAGE_OFFSET 0x006C0
37 | #define CX2_DIAGS_PAGE_OFFSET 0x00740
38 | #define CX2_UNKN2_PAGE_OFFSET 0x00880
39 | #define CX2_OSYST_PAGE_OFFSET 0x00900
40 | #define CX2_LOGIN_PAGE_OFFSET 0x01C80
41 | #define CX2_FILES_PAGE_OFFSET 0x03240
42 | #define CX2_NDEND_PAGE_OFFSET 0x10000
43 |
--------------------------------------------------------------------------------
/ndlessext.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "nand.h"
3 |
4 | // indexes of OSes as used in Ndless
5 | enum {
6 | OSCL31N,OSCL31C,OSCX31N,OSCX31C,OSCM31N,OSCM31C,
7 | OSCL36N,OSCL36C,OSCX36N,OSCX36C,
8 | OSCL390N,OSCL390C,OSCX390N,OSCX390C,
9 | OSCL391N,OSCL391C,OSCX391N,OSCX391C,
10 | OSCX400N,OSCX400C,
11 | OSCX403N,OSCX403C,
12 | OSCX42N,OSCX42C,
13 | OSCX43N,OSCX43C,
14 | OSCX44N,OSCX44C,
15 | OSCX450N,OSCX450C,
16 | OSCX451N,OSCX451C,
17 | OSCX453N,OSCX453C,
18 | OSCXII52N,OSCXII52T,OSCXII52C,
19 | OSCX454N,OSCX454C,
20 | OSCXII53N,OSCXII53T,OSCXII53C,
21 | OSCX455N, OSCX455C,
22 | OSCXII62N, OSCXII62T, OSCXII62C,
23 | N_OS
24 | };
25 |
26 | // get current OS index for Ndless
27 | int get_os() {
28 | unsigned int vals[N_OS];
29 | for(int i=0; i= OSCL31N && os <=OSCM31C && nl_ndless_rev() < 989) // Ndless 3.1
104 | read_nand_31(dest, size, offset, unknown, percent_max, progress_cb);
105 | else
106 | read_nand(dest, size, offset, unknown, percent_max, progress_cb);
107 | }
108 |
109 | int ext_write_nand(void *source,int size, unsigned int offset) {
110 | int os = get_os();
111 | if((os >= OSCXII52N && os <= OSCXII52C) || (os >= OSCXII53N && os <= OSCXII53C) || (os >= OSCXII62N && os <= OSCXII62C)) {
112 | while(size) {
113 | uint32_t tsize = (size > NAND_BLOCK_SIZE) ? NAND_BLOCK_SIZE : size;
114 | write_nand_cx2(offset, source, size);
115 | size -= tsize;
116 | offset += tsize;
117 | source += tsize;
118 | }
119 | }
120 | else if (os >= OSCL31N && os <=OSCM31C && nl_ndless_rev() < 989) // Ndless 3.1
121 | return write_nand_31(source, size, offset);
122 | else
123 | return write_nand(source, size, offset);
124 | }
125 |
126 | int ext_erase_nand(int offset,int end) {
127 | int os = get_os();
128 | if((os >= OSCXII52N && os <= OSCXII52C) || (os >= OSCXII53N && os <= OSCXII53C) || (os >= OSCXII62N && os <= OSCXII62C)) {
129 | int blocks = (int)((end+1-offset)/NAND_PAGE_SIZE/0x40);
130 | return erase_nand_cx2(offset, blocks);
131 | }
132 | else if (os >= OSCL31N && os <=OSCM31C && nl_ndless_rev() < 989) // Ndless 3.1
133 | return erase_nand_31(offset, end);
134 | else
135 | return nand_erase_range(offset, end);
136 | }
137 |
138 |
--------------------------------------------------------------------------------
/ndlessext.h:
--------------------------------------------------------------------------------
1 | int get_os();
2 | void ext_read_nand(void* dest, int size, int offset, int unknown, int percent_max, void *progress_cb);
3 | int ext_write_nand(void *source,int size, unsigned int offset);
4 | int ext_erase_nand(int offset,int end);
--------------------------------------------------------------------------------
/screen.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include "types.h"
3 | #include "utils.h"
4 | #include "screen.h"
5 | #include "charmaps.h"
6 | #include "nand.h"
7 | #include "ndlessext.h"
8 | #define SCREEN_CONTRAST_ADDR 0x900F0020
9 |
10 | #define SCREEN_BASE_PTR 0xC0000010
11 | #define SCREEN_MODE_ADDR 0xC000001C
12 | #define SCREEN_INT_ADDR 0xC0000020
13 |
14 | u16* SCREEN_BASE_ADDR = 0;
15 | u16* orig_screen=0;
16 | u16* malloc_screen=0;
17 | u16 offscreen[SCREEN_WIDTH*SCREEN_HEIGHT];
18 | //u8 offscreen[SCREEN_SIZE];
19 | int contrast=0;
20 | u8 screen_type = SCR_320x240_565;
21 | u16 curcolor=0;
22 |
23 | u16* getScreen()
24 | { return SCREEN_BASE_ADDR;
25 | }
26 |
27 | u16* getOffScreen()
28 | { return offscreen;
29 | }
30 |
31 | void setScreen(u16* buf)
32 | {
33 | SCREEN_BASE_ADDR=buf;
34 | *(volatile unsigned*) SCREEN_BASE_PTR = buf;
35 | }
36 |
37 | u8 getScreenType() {
38 | if(has_colors) {
39 | if(nl_ndless_rev() >= 2004) { // Ndless 4.2+
40 | if(lcd_type()==SCR_240x320_565)
41 | return SCR_240x320_565;
42 | }
43 | else { // Ndless < 4.2
44 | char f=0;
45 | ext_read_nand(&f, 1, MANUF_CR4_OFFSET, 0, 0, 0);
46 | if(f==1)
47 | return SCR_240x320_565;
48 | }
49 | }
50 | return SCR_320x240_565;
51 | }
52 |
53 | void initScreen()
54 | {
55 | screen_type=getScreenType();
56 | setCurColorRGB(0,0,0);
57 | SCREEN_BASE_ADDR =*(u16**)SCREEN_BASE_PTR;
58 | orig_screen = SCREEN_BASE_ADDR;
59 | contrast=*(volatile unsigned*) SCREEN_CONTRAST_ADDR;
60 | }
61 |
62 |
63 | u8 off_mode=0;
64 | unsigned int setContrast(unsigned int level)
65 | { unsigned int lowlevel = level &0b11111111;
66 | if(lowlevel>CONTRAST_MAX) lowlevel=CONTRAST_MAX;
67 | if(lowlevel>3;
180 | r=(val&0b1111100000000000)>>8;
181 | *ptr=rgb2gs(r,g,b);
182 | ptr++;
183 | }
184 | }
185 |
186 | void convertRGB565320to240(u16* buffer) {
187 | u16 i,j;
188 | u16* ptr=buffer;
189 | u16* tmpbuffer=malloc(SCREEN_SIZE);
190 | u16 val;
191 | for(j=0;j0) {
238 | for (i=0;i= SCREEN_WIDTH-CHAR_WIDTH)
264 | { if(ret)
265 | { x = 0;
266 | y += CHAR_HEIGHT;
267 | }
268 | else
269 | stop=1;
270 | }
271 | }
272 | }
273 |
274 | void dispBufImgRGB(u16* buf, int16_t xoff, int16_t yoff, u8* img, u16 width, u16 height,u8 border)
275 | {
276 | u16 dwidth=width, dheight=height;
277 | u16 data_x=0, data_y=0;
278 | u16 x = 0, y = 0;
279 | float i, j;
280 | if(xoff < 0){
281 | dwidth = dwidth + xoff;
282 | data_x = (int)(-xoff);
283 | xoff = 0;
284 | }
285 | if(yoff < 0){
286 | dheight = dheight + yoff;
287 | data_y = (int)(-yoff);
288 | yoff = 0;
289 | }
290 | u8 r,g,b;
291 | for(i=0, x=0; (int)i < dwidth && x < SCREEN_WIDTH; i+= 1, x++)
292 | for(j=0, y=0; (int)j < dheight && y < SCREEN_HEIGHT; j+= 1, y++)
293 | { b=img[(((int)j+data_y)*width+(int)i+data_x)*3];
294 | g=img[(((int)j+data_y)*width+(int)i+data_x)*3+1];
295 | r=img[(((int)j+data_y)*width+(int)i+data_x)*3+2];
296 | if(!border || b!=0 || g!=0 || r!=0)
297 | setPixelRGB(xoff + x, yoff + dheight-1-y, r, g, b);
298 | }
299 | }
300 |
301 | void clrBuf(u16* buf)
302 | {
303 | if(has_colors || malloc_screen)
304 | clrBufBox(offscreen,0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
305 | else
306 | memset(SCREEN_BASE_ADDR,0,SCREEN_PIXELS/2);
307 | }
308 |
309 | void clrBufBox(u16* buf, u16 x, u16 y, u16 w, u16 h) {
310 | u16 color=~curcolor;
311 | u16 i,j;
312 | for(j=0;j
2 | #include "types.h"
3 |
4 | #define SCREEN_PIXELS (SCREEN_WIDTH*SCREEN_HEIGHT)
5 | #define SCREEN_SIZE (SCREEN_PIXELS*2)
6 | #define CONTRAST_MIN 0x60
7 | #define CONTRAST_MAX 0xC0
8 |
9 | #define rgb2gs(r,g,b) (((~((((r)*30+(g)*59+(b)*11)/100)>>4))&0b1111)<<1)
10 | #define rgb565(r,g,b) ((((r)<<8)&0xf800)|(((g)<<3)&0x07e0)|((b)>>3))
11 |
12 | u8 getScreenType();
13 |
14 | void convertRGB565toGS(u16* sscreen, u16 w, u16 h);
15 | void convertRGB565320to240(u16* buffer);
16 | void convertRGB565(u16* buffer, u8 buf_type);
17 | void setCurColorRGB(u8 r,u8 g,u8 b);
18 | void invertCurColorRGB();
19 |
20 | void setPixel(u16 x, u16 y, u16 color);
21 | void setPixelRGB(u16 x, u16 y, u8 r, u8 g, u8 b);
22 |
23 | void initScreen();
24 | void showScreen();
25 | void startScreen();
26 | void stopScreen();
27 |
28 | void setScreen(u16* buf);
29 | u16* getScreen();
30 | u16* getOffScreen();
31 |
32 | void switchScrOffOn(u8 s);
33 | unsigned int setContrast(unsigned int level);
34 |
35 | void putChar(u16 x, u16 y, char ch, u8 trsp, u8 bold);
36 | void drwBufStr(u16 x, u16 y, char* str, u8 ret, u8 trsp, u8 bold);
37 |
38 | void dispBufImgRGB(u16* buf, int16_t xoff, int16_t yoff, u8* img, u16 width, u16 height,u8 border);
39 |
40 | void drwBufHoriz(u16 y, u16 x1, u16 x2);
41 | void drwBufVert(u16 x, u16 y1, u16 y2);
42 |
43 | void drwBufBox(u16 x1, u16 y1, u16 x2, u16 y2);
44 | void drawBufFullBox(u16 x1, u16 y1, u16 x2, u16 y2);
45 |
46 | void clrBuf(u16* buf);
47 | void clrBufBox(u16* buf, u16 x, u16 y, u16 w, u16 h);
48 |
--------------------------------------------------------------------------------
/types.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | typedef uint64_t u64;
4 | typedef uint32_t u32;
5 | typedef uint16_t u16;
6 | typedef uint8_t u8;
7 |
--------------------------------------------------------------------------------
/utils.c:
--------------------------------------------------------------------------------
1 | #include "utils.h"
2 | #include "screen.h"
3 | #include "charmaps.h"
4 |
5 | void wait(int timesec) {
6 | volatile long int i;
7 | for(i=0;i
2 | #include "types.h"
3 |
4 | #define max(a,b) (((a)<(b))?(b):(a))
5 | #define min(a,b) (((a)<(b))?(a):(b))
6 |
7 | void wait(int timesec);
8 | void trigger_reset(void);
9 |
10 | enum {NS_CL, NS_CX, NS_CM, NS_CX2, NS_OTHER};
11 | u8 getHardwareType(void);
12 |
13 | void resetCurColor(void);
14 | void setBlocksColor(void);
15 | void setPagesColor(void);
16 | void setBytesColor(void);
17 | void setInactiveColor(void);
18 |
19 | void dispNumStr(u16 x, u16 y, char* txt, int unit);
20 | void dispNum(u16 x, u16 y, u32 val,char* suffix, int unit, int n);
21 |
--------------------------------------------------------------------------------