diff options
| author | 2019-04-13 12:40:52 -0400 | |
|---|---|---|
| committer | 2019-04-13 12:40:52 -0400 | |
| commit | 55bfff7cf6541caac172b43186cf14405185b14d (patch) | |
| tree | c1ae99d2b39f8df8933d81ec2e61e81050bdb410 /frontends/calculator/CEdev | |
| parent | 761462861fc1228e65546c4e0f877d5212320082 (diff) | |
| download | cetris-55bfff7cf6541caac172b43186cf14405185b14d.tar.gz cetris-55bfff7cf6541caac172b43186cf14405185b14d.tar.bz2 cetris-55bfff7cf6541caac172b43186cf14405185b14d.zip | |
fix curses on linux
Diffstat (limited to 'frontends/calculator/CEdev')
462 files changed, 25791 insertions, 25791 deletions
diff --git a/frontends/calculator/CEdev/bin/License b/frontends/calculator/CEdev/bin/License index 163b0f5..cd688ec 100644 --- a/frontends/calculator/CEdev/bin/License +++ b/frontends/calculator/CEdev/bin/License @@ -1,120 +1,120 @@ -License-To-Use Agreement for Zilog Software. - -BY CLICKING "Yes" IN THIS INSTALL PROGRAM, YOU AGREE TO BE BOUND BY -THE FOLLOWING TERMS. IF THE INDIVIDUAL INSTALLING THIS SOFTWARE IS AN -EMPLOYEE, AGENT, CONTRACTOR OR ASSISTANT OF AN ENTITY THAT HAS PURCHASED -THE RIGHT TO USE THE SOFTWARE ENCLOSED, THEN AS USED IN THIS AGREEMENT, THE -TERM "YOU" REFERS TO SUCH INDIVIDUAL'S EMPLOYER, ITS AFFILIATES AND -SUBSIDIARIES, IF ANY. OTHERWISE, IF THE PRECEDING SENTENCE DOES NOT APPLY, -AS USED IN THIS AGREEMENT THE TERM "YOU" REFERS TO THE INDIVIDUAL OPENING -THIS PACKAGE - -1. License: Zilog grants you license to use the current version of -the enclosed (Zilog interface & control software) "Programs" and on-line -& written documentation (together herein referred to as, "The Licensed -Software") solely for your own internal purposes, for an unlimited period -of time and under the conditions and restrictions as set out in this -Agreement. - -2. Restrictions: The Licensed Software and documentation in whole -or in part are copyrighted and the title to all copies is retained by Zilog -and/or its Licensors. Except as provided for in Clause 3, you may not -modify, adapt, translate, create derivative works, disassemble, decompile, -imitate or otherwise reverse engineer the Licensed Software. - -3. Compiler Products: You are granted a royalty free right to reproduce -and distribute certain parts of the runtime modules and libraries -("Module") of the Licensed Software provided that you: (a) distribute the -Module in object form only and only in conjunction with and as part of your -software program ("Application") into which it is incorporated; (b) do not -use Zilog's name, logo or trademarks to market your application; (c) agree -to indemnify, hold harmless and defend Zilog or its Licensors from and -against any claims or lawsuits, including attorney's fees, that arise or -result from the use or distribution of your Application; (d) prohibit users -of your Application from modifying, adapting, translating, creating -derivative works, reverse engineering, decompiling or disassembling the -Module. The files that constitute the Module are identified in the -documentation and/or on-line "README" file. - -4. Warranty & Disclaimer: Licensed Software is provided "AS IS" and -without a warranty of any kind. Zilog's entire liability and your -exclusive remedy under this warranty will be the corrections of defects in -media or replacement of media. ZILOG AND ITS LICENSORS DISCLAIMS ALL OTHER -WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT -EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. - -5. High Risk Activities: The Licensed Software is not fault-tolerant -and is not designed, manufactured or intended for use in conjunction with -on-line control equipment in hazardous environments requiring fail-safe -performance such as; in operation of nuclear facilities, (air) craft -navigation or communications systems, air traffic control, direct life -support machines, or weapons systems ("High Risk Activities") in which the -failure of the Licensed Software could lead directly to death, personal -injury or severe physical or environmental damage. Zilog and its licensors -specifically disclaim any express or implied warranty to High Risk -Activities. - -6. Limitation of Liability: TO THE EXTENT NOT PROHIBITED BY APPLICATION -LAW, ZILOG OR ITS LICENSORS WILL NOT BE LIABLE FOR ANY LOST REVENUE, PROFIT -OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTIAL OR PUNITIVE -DAMAGE HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF -THE USE OF OR INABILITY TOUSE THE "Licensed Software", EVEN IF ZILOG HAS -BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event, shall -Zilog's liability whether in contract, tort (including negligence), or -otherwise exceed the license fee paid for the Licensed Software. - -7. Ownership: The copyrights and all other and industrial property rights -for the protection of information with respect to the Licensed Software -(including the methods and techniques on which it is based) is retained by -Zilog and its licensors. Nothing in this Agreement serves to transfer such -rights. - -8. Termination: This Agreement is effective until terminated. You -may terminate this Agreement at any time by destroying all copies of the -Licensed Software. This Agreement will terminate immediately without -notice from Zilog if you fail to comply with any provision of this -Agreement. - -9. Export Regulations: All software and technical data delivered -under this Agreement are subject to U.S. Export control laws and may be -subject to export or import regulations in other countries. You agree to -comply strictly with all such laws and regulations and acknowledge that you -have the responsibility to obtain such licenses to export, re-export or -import as may be required after delivery to you. - -10. Entire Agreement: This Agreement is the entire agreement between you -and Zilog relating to the Licensed Software and supersedes all prior or -contemporaneous oral or written communications, proposals and -representations with respect to its subject matter. No variations of the -terms of this consent, including an express waiver of the terms of this -Agreement, in writing and signed by an officer of Zilog. - -11. Governing Law: This Agreement is governed by the laws of the State -of California and the controlling U.S. federal law. No choice of law rules -of any jurisdiction will apply. The parties hereby submit to the -jurisdiction of, and wave any venue objections against the United States -District Court for the Northern District of California, the Superior Court -of the State of California for the County of Santa Clara, and any mutually -agreed to alternative dispute resolution proceeding taking place in Santa -Clara County, California, in any litigation or claims arising out of this -Agreement. - -12. Copyright Notices: The Licensed Software governed by this agreement -contains the following copyrights and trademarks appearing within the -software or within the source code generating the software, affixed on the -packaging and/or labeling or within the operational displays of the -software. The copyright notice shall be recognized whether visibly labeled -or contained within the Licensed Software by acceptance of this Agreement. - -Copyright (c) 1985 - 2012 Zilog Inc. Milpitas, California - -And/or by other parties by inclusion. The Files governed by this License -Agreement may contain restricted information and are or may be UNPUBLISHED -PROPRIETARY SOURCE CODE OF THE Owners. The Copyright Notices above do not -evidence any actual or intended publication of such source code. - - - - - +License-To-Use Agreement for Zilog Software.
+
+BY CLICKING "Yes" IN THIS INSTALL PROGRAM, YOU AGREE TO BE BOUND BY
+THE FOLLOWING TERMS. IF THE INDIVIDUAL INSTALLING THIS SOFTWARE IS AN
+EMPLOYEE, AGENT, CONTRACTOR OR ASSISTANT OF AN ENTITY THAT HAS PURCHASED
+THE RIGHT TO USE THE SOFTWARE ENCLOSED, THEN AS USED IN THIS AGREEMENT, THE
+TERM "YOU" REFERS TO SUCH INDIVIDUAL'S EMPLOYER, ITS AFFILIATES AND
+SUBSIDIARIES, IF ANY. OTHERWISE, IF THE PRECEDING SENTENCE DOES NOT APPLY,
+AS USED IN THIS AGREEMENT THE TERM "YOU" REFERS TO THE INDIVIDUAL OPENING
+THIS PACKAGE
+
+1. License: Zilog grants you license to use the current version of
+the enclosed (Zilog interface & control software) "Programs" and on-line
+& written documentation (together herein referred to as, "The Licensed
+Software") solely for your own internal purposes, for an unlimited period
+of time and under the conditions and restrictions as set out in this
+Agreement.
+
+2. Restrictions: The Licensed Software and documentation in whole
+or in part are copyrighted and the title to all copies is retained by Zilog
+and/or its Licensors. Except as provided for in Clause 3, you may not
+modify, adapt, translate, create derivative works, disassemble, decompile,
+imitate or otherwise reverse engineer the Licensed Software.
+
+3. Compiler Products: You are granted a royalty free right to reproduce
+and distribute certain parts of the runtime modules and libraries
+("Module") of the Licensed Software provided that you: (a) distribute the
+Module in object form only and only in conjunction with and as part of your
+software program ("Application") into which it is incorporated; (b) do not
+use Zilog's name, logo or trademarks to market your application; (c) agree
+to indemnify, hold harmless and defend Zilog or its Licensors from and
+against any claims or lawsuits, including attorney's fees, that arise or
+result from the use or distribution of your Application; (d) prohibit users
+of your Application from modifying, adapting, translating, creating
+derivative works, reverse engineering, decompiling or disassembling the
+Module. The files that constitute the Module are identified in the
+documentation and/or on-line "README" file.
+
+4. Warranty & Disclaimer: Licensed Software is provided "AS IS" and
+without a warranty of any kind. Zilog's entire liability and your
+exclusive remedy under this warranty will be the corrections of defects in
+media or replacement of media. ZILOG AND ITS LICENSORS DISCLAIMS ALL OTHER
+WARRANTIES, EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTY OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT
+EXCEPT TO THE EXTENT THAT THESE DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
+
+5. High Risk Activities: The Licensed Software is not fault-tolerant
+and is not designed, manufactured or intended for use in conjunction with
+on-line control equipment in hazardous environments requiring fail-safe
+performance such as; in operation of nuclear facilities, (air) craft
+navigation or communications systems, air traffic control, direct life
+support machines, or weapons systems ("High Risk Activities") in which the
+failure of the Licensed Software could lead directly to death, personal
+injury or severe physical or environmental damage. Zilog and its licensors
+specifically disclaim any express or implied warranty to High Risk
+Activities.
+
+6. Limitation of Liability: TO THE EXTENT NOT PROHIBITED BY APPLICATION
+LAW, ZILOG OR ITS LICENSORS WILL NOT BE LIABLE FOR ANY LOST REVENUE, PROFIT
+OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTIAL OR PUNITIVE
+DAMAGE HOWEVER CAUSED AND REGARDLESS OF THEORY OF LIABILITY ARISING OUT OF
+THE USE OF OR INABILITY TOUSE THE "Licensed Software", EVEN IF ZILOG HAS
+BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no event, shall
+Zilog's liability whether in contract, tort (including negligence), or
+otherwise exceed the license fee paid for the Licensed Software.
+
+7. Ownership: The copyrights and all other and industrial property rights
+for the protection of information with respect to the Licensed Software
+(including the methods and techniques on which it is based) is retained by
+Zilog and its licensors. Nothing in this Agreement serves to transfer such
+rights.
+
+8. Termination: This Agreement is effective until terminated. You
+may terminate this Agreement at any time by destroying all copies of the
+Licensed Software. This Agreement will terminate immediately without
+notice from Zilog if you fail to comply with any provision of this
+Agreement.
+
+9. Export Regulations: All software and technical data delivered
+under this Agreement are subject to U.S. Export control laws and may be
+subject to export or import regulations in other countries. You agree to
+comply strictly with all such laws and regulations and acknowledge that you
+have the responsibility to obtain such licenses to export, re-export or
+import as may be required after delivery to you.
+
+10. Entire Agreement: This Agreement is the entire agreement between you
+and Zilog relating to the Licensed Software and supersedes all prior or
+contemporaneous oral or written communications, proposals and
+representations with respect to its subject matter. No variations of the
+terms of this consent, including an express waiver of the terms of this
+Agreement, in writing and signed by an officer of Zilog.
+
+11. Governing Law: This Agreement is governed by the laws of the State
+of California and the controlling U.S. federal law. No choice of law rules
+of any jurisdiction will apply. The parties hereby submit to the
+jurisdiction of, and wave any venue objections against the United States
+District Court for the Northern District of California, the Superior Court
+of the State of California for the County of Santa Clara, and any mutually
+agreed to alternative dispute resolution proceeding taking place in Santa
+Clara County, California, in any litigation or claims arising out of this
+Agreement.
+
+12. Copyright Notices: The Licensed Software governed by this agreement
+contains the following copyrights and trademarks appearing within the
+software or within the source code generating the software, affixed on the
+packaging and/or labeling or within the operational displays of the
+software. The copyright notice shall be recognized whether visibly labeled
+or contained within the Licensed Software by acceptance of this Agreement.
+
+Copyright (c) 1985 - 2012 Zilog Inc. Milpitas, California
+
+And/or by other parties by inclusion. The Files governed by this License
+Agreement may contain restricted information and are or may be UNPUBLISHED
+PROPRIETARY SOURCE CODE OF THE Owners. The Copyright Notices above do not
+evidence any actual or intended publication of such source code.
+
+
+
+
+
diff --git a/frontends/calculator/CEdev/bin/eZ80.ini b/frontends/calculator/CEdev/bin/eZ80.ini index 883aff4..f3355bc 100644 --- a/frontends/calculator/CEdev/bin/eZ80.ini +++ b/frontends/calculator/CEdev/bin/eZ80.ini @@ -1,18 +1,18 @@ -[Compiler] -ProcessorFamily = 0x200 -AUsSizedByType = 0 -NewAUatTypeChange = 0 -BitfieldSize = 24 -IntSize = 24 -DoubleSize = 32 -PointerSize = 24 -NearPointerSize = 24 -FarPointerSize = 24 -Bank0PointerSize = 24 -Bank1PointerSize = 24 -FunctionPointerSize = 24 -CharIsSigned = 1 - -[Backend] -BitfieldsPackL2R = 1 - +[Compiler]
+ProcessorFamily = 0x200
+AUsSizedByType = 0
+NewAUatTypeChange = 0
+BitfieldSize = 24
+IntSize = 24
+DoubleSize = 32
+PointerSize = 24
+NearPointerSize = 24
+FarPointerSize = 24
+Bank0PointerSize = 24
+Bank1PointerSize = 24
+FunctionPointerSize = 24
+CharIsSigned = 1
+
+[Backend]
+BitfieldsPackL2R = 1
+
diff --git a/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map index 4462134..ec5a9cf 100644 --- a/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map +++ b/frontends/calculator/CEdev/examples/debugging/bin/DEMO.map @@ -1,35 +1,35 @@ -Segment Base Top High Length --------- ------ ------ ------ ------- -icon D1A882 D1A882 0h -launcher D1A882 D1A882 0h -libs D1A882 D1A882 0h -startup D1A882 D1A8C1 3Fh -cleanup D1A8C1 D1A8D5 14h -exit D1A8D5 D1A8DB 6h -code D1A8DB D1A9D6 FBh -data D1A9D6 D1A9D6 0h -strsect D1A9D6 D1AA7B A5h -text D1AA7B D1AA7B 0h -bss D031F6 D031F6 D13FD6 0h -header D1A87F D1A882 3h - -Label Value -------------------------- ------ -_os_DisableHomeTextBuffer = D1A8DB -_os_EnableHomeTextBuffer = D1A8ED -_dbg_Debugger = D1A8FF -_dbg_RemoveAllBreakpoints = D1A905 -_dbg_RemoveWatchpoint = D1A90B -_dbg_SetWatchpoint = D1A915 -_dbg_RemoveAllWatchpoints = D1A921 -_dbg_SetWriteWatchpoint = D1A927 -_abort = D1A933 -_sprintf = 0000BC -__ccleanup = D1A8C1 -_errno = D008DC -_init = D1A882 -_exit = D1A8D7 -__exit = D1A8B0 -__exitsp = D1A8B0 -__errsp = D1A8B0 -_main = D1A93C +Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A882 0h
+libs D1A882 D1A882 0h
+startup D1A882 D1A8C1 3Fh
+cleanup D1A8C1 D1A8D5 14h
+exit D1A8D5 D1A8DB 6h
+code D1A8DB D1A9D6 FBh
+data D1A9D6 D1A9D6 0h
+strsect D1A9D6 D1AA7B A5h
+text D1AA7B D1AA7B 0h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A8DB
+_os_EnableHomeTextBuffer = D1A8ED
+_dbg_Debugger = D1A8FF
+_dbg_RemoveAllBreakpoints = D1A905
+_dbg_RemoveWatchpoint = D1A90B
+_dbg_SetWatchpoint = D1A915
+_dbg_RemoveAllWatchpoints = D1A921
+_dbg_SetWriteWatchpoint = D1A927
+_abort = D1A933
+_sprintf = 0000BC
+__ccleanup = D1A8C1
+_errno = D008DC
+_init = D1A882
+_exit = D1A8D7
+__exit = D1A8B0
+__exitsp = D1A8B0
+__errsp = D1A8B0
+_main = D1A93C
diff --git a/frontends/calculator/CEdev/examples/debugging/makefile b/frontends/calculator/CEdev/examples/debugging/makefile index 3ea542a..8617bbc 100644 --- a/frontends/calculator/CEdev/examples/debugging/makefile +++ b/frontends/calculator/CEdev/examples/debugging/makefile @@ -1,18 +1,18 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -# This is just so the main makefile in $CEDEV/examples makes this one be like "make debug" -.DEFAULT_GOAL := debug - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+# This is just so the main makefile in $CEDEV/examples makes this one be like "make debug"
+.DEFAULT_GOAL := debug
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/debugging/readme.md b/frontends/calculator/CEdev/examples/debugging/readme.md index 9d95f90..47c916a 100644 --- a/frontends/calculator/CEdev/examples/debugging/readme.md +++ b/frontends/calculator/CEdev/examples/debugging/readme.md @@ -1,10 +1,10 @@ -### Debugging Demo - -This demo demonstrates how to use a few of the debugging features implemented in CEmu - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Debugging Demo
+
+This demo demonstrates how to use a few of the debugging features implemented in CEmu
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/debugging/src/main.c b/frontends/calculator/CEdev/examples/debugging/src/main.c index 67b5bac..0972efd 100644 --- a/frontends/calculator/CEdev/examples/debugging/src/main.c +++ b/frontends/calculator/CEdev/examples/debugging/src/main.c @@ -1,47 +1,47 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <assert.h> -#include <debug.h> - -/* - * Even though debug.h has prototypes for Debugger, SetWriteWatchpoint, SetWatchpoint, RemoveWatchpoint, RemoveAllWatchpoints, RemoveAllBreakpoints... - * you have to use the dbg_ prefix as shown here: - */ - -void main(void) { - /* Set the intial value of some variables */ - int dbg_test_var_1 = 10; - uint8_t dbg_test_var_2 = 3; - - /* Print a simple debugging string */ - dbg_sprintf(dbgout, "This is the start of a CEmu debugging test\n"); - - /* You can enter the debugger manually */ - dbg_Debugger(); - - /* Set a watchpoint that will break anytime we write/change this variable */ - dbg_SetWriteWatchpoint(&dbg_test_var_1, sizeof dbg_test_var_1); - - /* Set a non breaking watchpoint just so we can see what is in this variable at any given time */ - dbg_SetWatchpoint(&dbg_test_var_2, sizeof dbg_test_var_2); - - /* Now, let's write to the variable to see what happens (Go to the 'Watchpoints' tab in CEmu to view the status) */ - dbg_test_var_1 = 5; - - /* Remove the watchpoint that we had set */ - dbg_RemoveWatchpoint(&dbg_test_var_1); - dbg_RemoveWatchpoint(&dbg_test_var_2); - - /* We can also use those */ - dbg_RemoveAllWatchpoints(); - dbg_RemoveAllBreakpoints(); - - /* Set this value to zero */ - dbg_test_var_2 = 0; - - /* Fail this assertion */ - assert(dbg_test_var_2); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <assert.h>
+#include <debug.h>
+
+/*
+ * Even though debug.h has prototypes for Debugger, SetWriteWatchpoint, SetWatchpoint, RemoveWatchpoint, RemoveAllWatchpoints, RemoveAllBreakpoints...
+ * you have to use the dbg_ prefix as shown here:
+ */
+
+void main(void) {
+ /* Set the intial value of some variables */
+ int dbg_test_var_1 = 10;
+ uint8_t dbg_test_var_2 = 3;
+
+ /* Print a simple debugging string */
+ dbg_sprintf(dbgout, "This is the start of a CEmu debugging test\n");
+
+ /* You can enter the debugger manually */
+ dbg_Debugger();
+
+ /* Set a watchpoint that will break anytime we write/change this variable */
+ dbg_SetWriteWatchpoint(&dbg_test_var_1, sizeof dbg_test_var_1);
+
+ /* Set a non breaking watchpoint just so we can see what is in this variable at any given time */
+ dbg_SetWatchpoint(&dbg_test_var_2, sizeof dbg_test_var_2);
+
+ /* Now, let's write to the variable to see what happens (Go to the 'Watchpoints' tab in CEmu to view the status) */
+ dbg_test_var_1 = 5;
+
+ /* Remove the watchpoint that we had set */
+ dbg_RemoveWatchpoint(&dbg_test_var_1);
+ dbg_RemoveWatchpoint(&dbg_test_var_2);
+
+ /* We can also use those */
+ dbg_RemoveAllWatchpoints();
+ dbg_RemoveAllBreakpoints();
+
+ /* Set this value to zero */
+ dbg_test_var_2 = 0;
+
+ /* Fail this assertion */
+ assert(dbg_test_var_2);
+}
diff --git a/frontends/calculator/CEdev/examples/delay/autotester.json b/frontends/calculator/CEdev/examples/delay/autotester.json index 4eabd14..6ce4042 100644 --- a/frontends/calculator/CEdev/examples/delay/autotester.json +++ b/frontends/calculator/CEdev/examples/delay/autotester.json @@ -1,39 +1,39 @@ -{ - "__comment": "FIXME timing is way too lenient because the autotester framework and travis are trash", - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "delay|4500", - "hashWait|2", - "hashWait|3" - ], - "hashes": { - "1": { - "description": "Waiting for 5000 ms...", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "690F0EEC" ] - }, - "2": { - "description": "Done", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "948248E" ], - "timeout": 1100 - }, - "3": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} +{
+ "__comment": "FIXME timing is way too lenient because the autotester framework and travis are trash",
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|4500",
+ "hashWait|2",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Waiting for 5000 ms...",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "690F0EEC" ]
+ },
+ "2": {
+ "description": "Done",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "948248E" ],
+ "timeout": 1100
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/delay/makefile b/frontends/calculator/CEdev/examples/delay/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/delay/makefile +++ b/frontends/calculator/CEdev/examples/delay/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/delay/readme.md b/frontends/calculator/CEdev/examples/delay/readme.md index 0110f27..f391939 100644 --- a/frontends/calculator/CEdev/examples/delay/readme.md +++ b/frontends/calculator/CEdev/examples/delay/readme.md @@ -1,9 +1,9 @@ -### Delay Demo - -Demonstrates using the millisecond delay function in tice.h. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### Delay Demo
+
+Demonstrates using the millisecond delay function in tice.h.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/delay/src/main.c b/frontends/calculator/CEdev/examples/delay/src/main.c index 2fb8c41..46856a8 100644 --- a/frontends/calculator/CEdev/examples/delay/src/main.c +++ b/frontends/calculator/CEdev/examples/delay/src/main.c @@ -1,16 +1,16 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -void main(void) { - /* Clear the homescreen */ - os_ClrHome(); - - /* Wait for 5 seconds */ - os_PutStrFull("Waiting for 5000 ms..."); - delay(5000); - os_SetCursorPos(1, 22); - os_PutStrFull("Done"); - delay(100); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+void main(void) {
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Wait for 5 seconds */
+ os_PutStrFull("Waiting for 5000 ms...");
+ delay(5000);
+ os_SetCursorPos(1, 22);
+ os_PutStrFull("Done");
+ delay(100);
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/autotester.json b/frontends/calculator/CEdev/examples/fileio_detect/autotester.json index b8563a6..b3c8202 100644 --- a/frontends/calculator/CEdev/examples/fileio_detect/autotester.json +++ b/frontends/calculator/CEdev/examples/fileio_detect/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|1000", - "hash|1", - "key|enter", - "delay|200", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "'LibLoad' is displayed", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "D874E0B0" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "'LibLoad' is displayed",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "D874E0B0" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map index 082420b..6ee8fbb 100644 --- a/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map +++ b/frontends/calculator/CEdev/examples/fileio_detect/bin/DEMO.map @@ -1,148 +1,148 @@ -Segment Base Top High Length --------- ------ ------ ------ ------- -icon D1A882 D1A882 0h -launcher D1A882 D1A8DA 58h -libs D1A8DA D1A8F6 1Ch -startup D1A8F6 D1A935 3Fh -cleanup D1A935 D1A949 14h -exit D1A949 D1A94F 6h -code D1A94F D1AA3B ECh -data D1AA3B D1AA5D 22h -strsect D1AA5D D1AA5D 0h -text D1AA5D D1AA60 3h -bss D031F6 D031F6 D13FD6 0h -header D1A87F D1A882 3h - -Label Value -------------------------- ------ -_os_DisableHomeTextBuffer = D1A94F -_os_EnableHomeTextBuffer = D1A961 -_boot_GetBootMajorVer = 000080 -_boot_GetHardwareVer = 000084 -_boot_GetBootMinorVer = 00008C -_boot_DebugPrintf = 0000B4 -_boot_ClearVRAM = 000374 -_boot_TurnOff = 000388 -_boot_NewLine = 000390 -_boot_Set6MHzMode = 00039C -_boot_Set48MHzMode = 0003A0 -_boot_Set6MHzModeI = 0003A4 -_boot_Set48MHzModeI = 0003A8 -_boot_GetBatteryStatus = 0003B0 -_boot_WaitShort = 0003B4 -_boot_CheckOnPressed = 00057C -_boot_SetDate = 000598 -_boot_GetDate = 0005A8 -_boot_GetTime = 0005B0 -_boot_SetTime = 0005B4 -_boot_IsAfterNoon = 0005C8 -_os_NewLine = 0207F0 -_os_PushErrorHandler = 021C78 -_os_PopErrorHandler = 021C7C -_os_ThrowError = 021C80 -_os_RealCopy = 021C84 -_os_RealAsinRad = 021C88 -_os_RealAcosRad = 021C8C -_os_RealAtanRad = 021C90 -_os_RealAdd = 021C94 -_os_CplxSquare = 021C98 -_os_RealCompare = 021C9C -_os_RealCosRad = 021CA0 -_os_RealRadToDeg = 021CA4 -_os_RealDiv = 021CA8 -_os_RealExp = 021CAC -_os_RealFloor = 021CB0 -_os_RealToStr = 021CB4 -_os_RealFrac = 021CB8 -_os_RealGcd = 021CBC -_os_RealRoundInt = 021CC0 -_os_RealLcm = 021CC4 -_os_RealLog = 021CC8 -_os_RealMax = 021CCC -_os_RealMin = 021CD0 -_os_RealMul = 021CD4 -_os_RealNcr = 021CD8 -_os_RealNeg = 021CDC -_os_RealNpr = 021CE0 -_os_RealPow = 021CE4 -_os_RealDegToRad = 021CE8 -_os_RealRandInt = 021CEC -_os_RealInv = 021CF0 -_os_RealMod = 021CF4 -_os_RealRound = 021CF8 -_os_RealSinRad = 021CFC -_os_RealSqrt = 021D00 -_os_RealSub = 021D04 -_os_RealTanRad = 021D08 -_os_StrToReal = 021D0C -_os_RealInt = 021D10 -_os_SetFlagBits = 021D14 -_os_ResetFlagBits = 021D18 -_os_TestFlagBits = 021D1C -_os_SetFlagByte = 021D20 -_os_GetFlagByte = 021D24 -_os_GetCursorPos = 021D28 -_os_PutStrFull = 021D2C -_os_PutStrLine = 021D30 -_os_SetCursorPos = 021D34 -_os_AppInit = 021D40 -_os_GetKey = 021D38 -_os_GetCSC = 021D3C -_os_DisableCursor = 021DE4 -_os_EnableCursor = 021DE8 -_os_FontDrawText = 021E00 -_os_FontGetHeight = 021E14 -_os_FontGetWidth = 021E18 -_os_InitDrawing = 021E1C -_os_SetDrawBGColor = 021E20 -_os_SetDrawFGColor = 021E24 -_os_FontSelect = 021E28 -_os_RclAns = 021E70 -_os_SetTimer1 = 021EC8 -_os_DisableTimer1 = 021ECC -_os_GetSystemStats = 021ED4 -_os_GetDrawBGColor = 021EE4 -_os_GetDrawFGColor = 021EE8 -_os_FontGetID = 021EEC -_os_RealToInt24 = 021EF4 -_os_Int24ToReal = 021EF8 -_os_ForceCmdNoChar = 021FA8 -_os_GetSymTablePtr = 021FB0 -_os_NextSymEntry = 021FB4 -_os_ChkFindSym = 021FB8 -_os_MemChk = 021FF0 -_os_SetTimer2 = 022080 -_os_DisableTimer2 = 022084 -_os_FloatToReal = 022170 -_os_RealToFloat = 022174 -_os_FontDrawTransText = 022178 -_os_CreateAppVar = 022184 -_asm_MoveDown = 0207F4 -_asm_MoveUp = 020800 -_asm_ClrLCDFull = 020808 -_asm_ClrLCD = 02080C -_asm_ClrTxtShd = 020818 -_asm_HomeUp = 020828 -_asm_RunIndicOn = 020844 -_asm_RunIndicOff = 020848 -_asm_DelRes = 020E5C -_asm_DisableAPD = 021134 -_asm_EnableAPD = 021138 -_asm_DrawStatusBar = 021A3C -_asm_ArcChk = 022040 -__OS = D1A973 -__frameset0 = D1A97D -__icmpzero = D1A988 -__frameset = D1A98D -__findlibload = D1A882 -__ccleanup = D1A935 -_errno = D008DC -_init = D1A882 -_exit = D1A94B -__exit = D1A924 -__exitsp = D1A924 -__errsp = D1A924 -_printText = D1AA19 -_main = D1A99B -_ti_CloseAll = D1A8EE -_ti_Detect = D1A8F2 +Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A8DA 58h
+libs D1A8DA D1A8F6 1Ch
+startup D1A8F6 D1A935 3Fh
+cleanup D1A935 D1A949 14h
+exit D1A949 D1A94F 6h
+code D1A94F D1AA3B ECh
+data D1AA3B D1AA5D 22h
+strsect D1AA5D D1AA5D 0h
+text D1AA5D D1AA60 3h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A94F
+_os_EnableHomeTextBuffer = D1A961
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__OS = D1A973
+__frameset0 = D1A97D
+__icmpzero = D1A988
+__frameset = D1A98D
+__findlibload = D1A882
+__ccleanup = D1A935
+_errno = D008DC
+_init = D1A882
+_exit = D1A94B
+__exit = D1A924
+__exitsp = D1A924
+__errsp = D1A924
+_printText = D1AA19
+_main = D1A99B
+_ti_CloseAll = D1A8EE
+_ti_Detect = D1A8F2
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/makefile b/frontends/calculator/CEdev/examples/fileio_detect/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_detect/makefile +++ b/frontends/calculator/CEdev/examples/fileio_detect/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/readme.md b/frontends/calculator/CEdev/examples/fileio_detect/readme.md index 41ecb73..fdfeaaf 100644 --- a/frontends/calculator/CEdev/examples/fileio_detect/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_detect/readme.md @@ -1,11 +1,11 @@ -### FileIO File Detection Demo - -This demo shows how to use the ti_Detect function to search for a varible that starts with a particular sequence of bytes -LibLoad is used because it is known to exist for demonstration. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### FileIO File Detection Demo
+
+This demo shows how to use the ti_Detect function to search for a varible that starts with a particular sequence of bytes
+LibLoad is used because it is known to exist for demonstration.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detect/src/main.c b/frontends/calculator/CEdev/examples/fileio_detect/src/main.c index d3be5a5..b249c7f 100644 --- a/frontends/calculator/CEdev/examples/fileio_detect/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_detect/src/main.c @@ -1,47 +1,47 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <fileioc.h> - -/* Function prototypes */ -void printText(int8_t xpos, int8_t ypos, const char *text); - -/* Main Function */ -void main(void) { - /* Declare some variables -- search_pos must be NULL to begin with */ - uint8_t *search_pos = NULL; - int8_t y = 0; - ti_var_t myVar; - char *var_name; - - /* First couple bytes of the LibLoad AppVar, which is known to exist * - /* Technically is a null-terminated string, if an odd looking one */ - const char search_string[] = { 0xBF, 0xFE, 0x00 }; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Find all of the variables that start with this string */ - while ((var_name = ti_Detect(&search_pos, search_string)) != NULL) { - /* Print the name of the variable (Should be LibLoad) */ - printText(0, y++, var_name); - } - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Close all open files */ - ti_CloseAll(); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(int8_t xpos, int8_t ypos, const char *text) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables -- search_pos must be NULL to begin with */
+ uint8_t *search_pos = NULL;
+ int8_t y = 0;
+ ti_var_t myVar;
+ char *var_name;
+
+ /* First couple bytes of the LibLoad AppVar, which is known to exist *
+ /* Technically is a null-terminated string, if an odd looking one */
+ const char search_string[] = { 0xBF, 0xFE, 0x00 };
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Find all of the variables that start with this string */
+ while ((var_name = ti_Detect(&search_pos, search_string)) != NULL) {
+ /* Print the name of the variable (Should be LibLoad) */
+ printText(0, y++, var_name);
+ }
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close all open files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json b/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json index b8563a6..b3c8202 100644 --- a/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json +++ b/frontends/calculator/CEdev/examples/fileio_detectany/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|1000", - "hash|1", - "key|enter", - "delay|200", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "'LibLoad' is displayed", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "D874E0B0" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "'LibLoad' is displayed",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "D874E0B0" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map index 4b8f06a..2c0eaf2 100644 --- a/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map +++ b/frontends/calculator/CEdev/examples/fileio_detectany/bin/DEMO.map @@ -1,148 +1,148 @@ -Segment Base Top High Length --------- ------ ------ ------ ------- -icon D1A882 D1A882 0h -launcher D1A882 D1A8DA 58h -libs D1A8DA D1A8F6 1Ch -startup D1A8F6 D1A935 3Fh -cleanup D1A935 D1A949 14h -exit D1A949 D1A94F 6h -code D1A94F D1AA46 F7h -data D1AA46 D1AA68 22h -strsect D1AA68 D1AA68 0h -text D1AA68 D1AA6B 3h -bss D031F6 D031F6 D13FD6 0h -header D1A87F D1A882 3h - -Label Value -------------------------- ------ -_os_DisableHomeTextBuffer = D1A94F -_os_EnableHomeTextBuffer = D1A961 -_boot_GetBootMajorVer = 000080 -_boot_GetHardwareVer = 000084 -_boot_GetBootMinorVer = 00008C -_boot_DebugPrintf = 0000B4 -_boot_ClearVRAM = 000374 -_boot_TurnOff = 000388 -_boot_NewLine = 000390 -_boot_Set6MHzMode = 00039C -_boot_Set48MHzMode = 0003A0 -_boot_Set6MHzModeI = 0003A4 -_boot_Set48MHzModeI = 0003A8 -_boot_GetBatteryStatus = 0003B0 -_boot_WaitShort = 0003B4 -_boot_CheckOnPressed = 00057C -_boot_SetDate = 000598 -_boot_GetDate = 0005A8 -_boot_GetTime = 0005B0 -_boot_SetTime = 0005B4 -_boot_IsAfterNoon = 0005C8 -_os_NewLine = 0207F0 -_os_PushErrorHandler = 021C78 -_os_PopErrorHandler = 021C7C -_os_ThrowError = 021C80 -_os_RealCopy = 021C84 -_os_RealAsinRad = 021C88 -_os_RealAcosRad = 021C8C -_os_RealAtanRad = 021C90 -_os_RealAdd = 021C94 -_os_CplxSquare = 021C98 -_os_RealCompare = 021C9C -_os_RealCosRad = 021CA0 -_os_RealRadToDeg = 021CA4 -_os_RealDiv = 021CA8 -_os_RealExp = 021CAC -_os_RealFloor = 021CB0 -_os_RealToStr = 021CB4 -_os_RealFrac = 021CB8 -_os_RealGcd = 021CBC -_os_RealRoundInt = 021CC0 -_os_RealLcm = 021CC4 -_os_RealLog = 021CC8 -_os_RealMax = 021CCC -_os_RealMin = 021CD0 -_os_RealMul = 021CD4 -_os_RealNcr = 021CD8 -_os_RealNeg = 021CDC -_os_RealNpr = 021CE0 -_os_RealPow = 021CE4 -_os_RealDegToRad = 021CE8 -_os_RealRandInt = 021CEC -_os_RealInv = 021CF0 -_os_RealMod = 021CF4 -_os_RealRound = 021CF8 -_os_RealSinRad = 021CFC -_os_RealSqrt = 021D00 -_os_RealSub = 021D04 -_os_RealTanRad = 021D08 -_os_StrToReal = 021D0C -_os_RealInt = 021D10 -_os_SetFlagBits = 021D14 -_os_ResetFlagBits = 021D18 -_os_TestFlagBits = 021D1C -_os_SetFlagByte = 021D20 -_os_GetFlagByte = 021D24 -_os_GetCursorPos = 021D28 -_os_PutStrFull = 021D2C -_os_PutStrLine = 021D30 -_os_SetCursorPos = 021D34 -_os_AppInit = 021D40 -_os_GetKey = 021D38 -_os_GetCSC = 021D3C -_os_DisableCursor = 021DE4 -_os_EnableCursor = 021DE8 -_os_FontDrawText = 021E00 -_os_FontGetHeight = 021E14 -_os_FontGetWidth = 021E18 -_os_InitDrawing = 021E1C -_os_SetDrawBGColor = 021E20 -_os_SetDrawFGColor = 021E24 -_os_FontSelect = 021E28 -_os_RclAns = 021E70 -_os_SetTimer1 = 021EC8 -_os_DisableTimer1 = 021ECC -_os_GetSystemStats = 021ED4 -_os_GetDrawBGColor = 021EE4 -_os_GetDrawFGColor = 021EE8 -_os_FontGetID = 021EEC -_os_RealToInt24 = 021EF4 -_os_Int24ToReal = 021EF8 -_os_ForceCmdNoChar = 021FA8 -_os_GetSymTablePtr = 021FB0 -_os_NextSymEntry = 021FB4 -_os_ChkFindSym = 021FB8 -_os_MemChk = 021FF0 -_os_SetTimer2 = 022080 -_os_DisableTimer2 = 022084 -_os_FloatToReal = 022170 -_os_RealToFloat = 022174 -_os_FontDrawTransText = 022178 -_os_CreateAppVar = 022184 -_asm_MoveDown = 0207F4 -_asm_MoveUp = 020800 -_asm_ClrLCDFull = 020808 -_asm_ClrLCD = 02080C -_asm_ClrTxtShd = 020818 -_asm_HomeUp = 020828 -_asm_RunIndicOn = 020844 -_asm_RunIndicOff = 020848 -_asm_DelRes = 020E5C -_asm_DisableAPD = 021134 -_asm_EnableAPD = 021138 -_asm_DrawStatusBar = 021A3C -_asm_ArcChk = 022040 -__OS = D1A973 -__frameset0 = D1A97D -__icmpzero = D1A988 -__frameset = D1A98D -__findlibload = D1A882 -__ccleanup = D1A935 -_errno = D008DC -_init = D1A882 -_exit = D1A94B -__exit = D1A924 -__exitsp = D1A924 -__errsp = D1A924 -_printText = D1AA24 -_main = D1A99B -_ti_CloseAll = D1A8EE -_ti_DetectAny = D1A8F2 +Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A8DA 58h
+libs D1A8DA D1A8F6 1Ch
+startup D1A8F6 D1A935 3Fh
+cleanup D1A935 D1A949 14h
+exit D1A949 D1A94F 6h
+code D1A94F D1AA46 F7h
+data D1AA46 D1AA68 22h
+strsect D1AA68 D1AA68 0h
+text D1AA68 D1AA6B 3h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A94F
+_os_EnableHomeTextBuffer = D1A961
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__OS = D1A973
+__frameset0 = D1A97D
+__icmpzero = D1A988
+__frameset = D1A98D
+__findlibload = D1A882
+__ccleanup = D1A935
+_errno = D008DC
+_init = D1A882
+_exit = D1A94B
+__exit = D1A924
+__exitsp = D1A924
+__errsp = D1A924
+_printText = D1AA24
+_main = D1A99B
+_ti_CloseAll = D1A8EE
+_ti_DetectAny = D1A8F2
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/makefile b/frontends/calculator/CEdev/examples/fileio_detectany/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_detectany/makefile +++ b/frontends/calculator/CEdev/examples/fileio_detectany/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/readme.md b/frontends/calculator/CEdev/examples/fileio_detectany/readme.md index 21a7e26..753d2bb 100644 --- a/frontends/calculator/CEdev/examples/fileio_detectany/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_detectany/readme.md @@ -1,11 +1,11 @@ -### FileIO File Detection Demo - -This demo shows how to use the ti_DetectAny function to search for a variable that starts with a particular sequence of bytes -LibLoad is used because it is known to exist for demonstration. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### FileIO File Detection Demo
+
+This demo shows how to use the ti_DetectAny function to search for a variable that starts with a particular sequence of bytes
+LibLoad is used because it is known to exist for demonstration.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c b/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c index 6809123..4262abe 100644 --- a/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_detectany/src/main.c @@ -1,49 +1,49 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <fileioc.h> - -/* Function prototypes */ -void printText(int8_t xpos, int8_t ypos, const char *text); - -/* Main Function */ -void main(void) { - /* Declare some variables -- search_pos must be NULL to begin with */ - uint8_t *search_pos = NULL, type; - int8_t y = 0; - ti_var_t myVar; - char *var_name; - - /* First couple bytes of the LibLoad AppVar, which is known to exist * - /* Technically is a null-terminated string, if an odd looking one */ - const char search_string[] = { 0xBF, 0xFE, 0x00 }; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Find all of the variables that start with this string */ - while ((var_name = ti_DetectAny(&search_pos, search_string, &type)) != NULL) { - if (type == TI_APPVAR_TYPE) { - /* Print the name of the variable (Should be LibLoad) */ - printText(0, y++, var_name); - } - } - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Close all open files */ - ti_CloseAll(); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(int8_t xpos, int8_t ypos, const char *text) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables -- search_pos must be NULL to begin with */
+ uint8_t *search_pos = NULL, type;
+ int8_t y = 0;
+ ti_var_t myVar;
+ char *var_name;
+
+ /* First couple bytes of the LibLoad AppVar, which is known to exist *
+ /* Technically is a null-terminated string, if an odd looking one */
+ const char search_string[] = { 0xBF, 0xFE, 0x00 };
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Find all of the variables that start with this string */
+ while ((var_name = ti_DetectAny(&search_pos, search_string, &type)) != NULL) {
+ if (type == TI_APPVAR_TYPE) {
+ /* Print the name of the variable (Should be LibLoad) */
+ printText(0, y++, var_name);
+ }
+ }
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close all open files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson b/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson index 1e97c78..7381145 100644 --- a/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson +++ b/frontends/calculator/CEdev/examples/fileio_factorize/autotester.badjson @@ -1,37 +1,37 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", --> type input in Ans ; expect known output back in Ans - "delay|500", - "hash|1", - "key|enter", - "delay|200", - "hash|2" - ], - -******* Broken JSON TODO : -******* implement autotester var handling feature ******* - - "hashes": { - "1": { - "description": "Variable Ans is a list [TODO]", - "start": "var_complex_B", - "size": "var_size", - "expected_CRCs": [ "" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch", --> type input in Ans ; expect known output back in Ans
+ "delay|500",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hash|2"
+ ],
+
+******* Broken JSON TODO :
+******* implement autotester var handling feature *******
+
+ "hashes": {
+ "1": {
+ "description": "Variable Ans is a list [TODO]",
+ "start": "var_complex_B",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/makefile b/frontends/calculator/CEdev/examples/fileio_factorize/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_factorize/makefile +++ b/frontends/calculator/CEdev/examples/fileio_factorize/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/readme.md b/frontends/calculator/CEdev/examples/fileio_factorize/readme.md index 196474c..7695265 100644 --- a/frontends/calculator/CEdev/examples/fileio_factorize/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_factorize/readme.md @@ -1,12 +1,12 @@ -### FileIO Factorize Demo - -This demo demonstrates a way to compute the factors of a input number in Ans - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - - - +### FileIO Factorize Demo
+
+This demo demonstrates a way to compute the factors of a input number in Ans
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
+
+
diff --git a/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c b/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c index 3be9992..c95bb46 100644 --- a/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_factorize/src/main.c @@ -1,75 +1,75 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> - -#include <fileioc.h> - -void prime_factors(unsigned int n); - -int primes[512]; -unsigned int total_primes = 0; - -/* Main Function */ -void main(void) { - /* Declare some variables */ - real_t *real_in; - list_t *list_out; - unsigned i; - int in; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Get the answer variable */ - if (ti_RclVar(TI_REAL_TYPE, ti_Ans, &real_in)) return; - if ((in = os_RealToInt24(real_in)) < 1) return; - - /* Get the prime factors of the input */ - prime_factors((unsigned)in); - - /* Create a list to store the primes */ - if (!total_primes) return; - list_out = ti_MallocList(total_primes); // Same as ti_AllocList(total_primes, malloc) - - /* Write out the list of primes */ - for (i=0; i<total_primes; i++) { - list_out->items[i] = os_Int24ToReal(primes[i]); - } - - /* Set the new answer */ - ti_SetVar(TI_REAL_LIST_TYPE, ti_Ans, list_out); -} - -/* Store to an array all the prime numbers */ -void prime_factors(unsigned int n) { - unsigned int div, end; - - while (!(n % 2)) { - primes[total_primes++] = 2; - n /= 2; - } - - if (n == 1) return; - - div = 3; - end = sqrt(n); - - while (div <= end) { - if (!(n % div)) { - do { - primes[total_primes++] = div; - n /= div; - } while (!(n % div)); - if (n == 1) return; - end = sqrt(n); - } - div += 2; - } - - primes[total_primes++] = n; -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <fileioc.h>
+
+void prime_factors(unsigned int n);
+
+int primes[512];
+unsigned int total_primes = 0;
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ real_t *real_in;
+ list_t *list_out;
+ unsigned i;
+ int in;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Get the answer variable */
+ if (ti_RclVar(TI_REAL_TYPE, ti_Ans, &real_in)) return;
+ if ((in = os_RealToInt24(real_in)) < 1) return;
+
+ /* Get the prime factors of the input */
+ prime_factors((unsigned)in);
+
+ /* Create a list to store the primes */
+ if (!total_primes) return;
+ list_out = ti_MallocList(total_primes); // Same as ti_AllocList(total_primes, malloc)
+
+ /* Write out the list of primes */
+ for (i=0; i<total_primes; i++) {
+ list_out->items[i] = os_Int24ToReal(primes[i]);
+ }
+
+ /* Set the new answer */
+ ti_SetVar(TI_REAL_LIST_TYPE, ti_Ans, list_out);
+}
+
+/* Store to an array all the prime numbers */
+void prime_factors(unsigned int n) {
+ unsigned int div, end;
+
+ while (!(n % 2)) {
+ primes[total_primes++] = 2;
+ n /= 2;
+ }
+
+ if (n == 1) return;
+
+ div = 3;
+ end = sqrt(n);
+
+ while (div <= end) {
+ if (!(n % div)) {
+ do {
+ primes[total_primes++] = div;
+ n /= div;
+ } while (!(n % div));
+ if (n == 1) return;
+ end = sqrt(n);
+ }
+ div += 2;
+ }
+
+ primes[total_primes++] = n;
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson b/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson index dbf9e3d..8b713fa 100644 --- a/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson +++ b/frontends/calculator/CEdev/examples/fileio_os_vars/autotester.badjson @@ -1,65 +1,65 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|500", - "hash|1", - "hash|2", - "hash|3", - "hash|4", - "hash|5", - "key|enter", - "delay|200", - "hash|6" - ], - -******* Broken JSON TODO : -******* implement autotester var handling feature ******* - - "hashes": { - "1": { - "description": "Variable B is complex 1.5+2.5i", - "start": "var_complex_B", - "size": "var_size", - "expected_CRCs": [ "" ] - }, - "2": { - "description": "Variable A is real 1.5", - "start": "var_real_A", - "size": "var_size", - "expected_CRCs": [ "" ] - }, - "3": { - "description": "Variable Y1 is equation 2+2", - "start": "var", - "size": "var_equation_Y1", - "expected_CRCs": [ "" ] - }, - "4": { - "description": "Variable L1 is list {1.5,2.5,3.5}", - "start": "var", - "size": "var_list_L1", - "expected_CRCs": [ "" ] - }, - "5": { - "description": "Variable Ans is matrix [[2.5,2.5]]", - "start": "var_Ans", - "size": "var_size", - "expected_CRCs": [ "" ] - }, - "6": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|500",
+ "hash|1",
+ "hash|2",
+ "hash|3",
+ "hash|4",
+ "hash|5",
+ "key|enter",
+ "delay|200",
+ "hash|6"
+ ],
+
+******* Broken JSON TODO :
+******* implement autotester var handling feature *******
+
+ "hashes": {
+ "1": {
+ "description": "Variable B is complex 1.5+2.5i",
+ "start": "var_complex_B",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "2": {
+ "description": "Variable A is real 1.5",
+ "start": "var_real_A",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "3": {
+ "description": "Variable Y1 is equation 2+2",
+ "start": "var",
+ "size": "var_equation_Y1",
+ "expected_CRCs": [ "" ]
+ },
+ "4": {
+ "description": "Variable L1 is list {1.5,2.5,3.5}",
+ "start": "var",
+ "size": "var_list_L1",
+ "expected_CRCs": [ "" ]
+ },
+ "5": {
+ "description": "Variable Ans is matrix [[2.5,2.5]]",
+ "start": "var_Ans",
+ "size": "var_size",
+ "expected_CRCs": [ "" ]
+ },
+ "6": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/makefile b/frontends/calculator/CEdev/examples/fileio_os_vars/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_os_vars/makefile +++ b/frontends/calculator/CEdev/examples/fileio_os_vars/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md b/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md index d628217..2f780d2 100644 --- a/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_os_vars/readme.md @@ -1,10 +1,10 @@ -### FileIO OS Variables Demo - -This demo shows how to use the different OS variable accessing functions. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### FileIO OS Variables Demo
+
+This demo shows how to use the different OS variable accessing functions.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c b/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c index 657f9d9..dd429d5 100644 --- a/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_os_vars/src/main.c @@ -1,101 +1,101 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <fileioc.h> - -/* Some function prototypes. Maybe in the future these functions will become a library */ -cplx_t Int24sToCplx(int real, int imag); -cplx_t FloatsToCplx(float real, float imag); -cplx_t RealsToCplx(real_t real, real_t imag); -cplx_t StrsToCplx(char *real, char **real_end, char *imag, char **imag_end); - -/* Main Function */ -void main(void) { - /* Declare some variables */ - equ_t *my_equ; - list_t *my_list; - matrix_t *my_matrix; - real_t my_real; - cplx_t my_cplx; - real_t real_1_5 = os_FloatToReal(1.5); - real_t real_2_5 = os_FloatToReal(2.5); - real_t real_3_5 = os_FloatToReal(3.5); - - /* Store the value '1.5+2.5i' into the variable B */ - my_cplx = FloatsToCplx(1.5, 2.5); - ti_SetVar(TI_CPLX_TYPE, ti_B, &my_cplx); - - /* Store the value '1.5' into the variable A */ - my_real = real_1_5; - ti_SetVar(TI_REAL_TYPE, ti_A, &my_real); - - /* Store the equation "2+2" into the Y1 variable */ - my_equ = ti_MallocEqu(3); // Same as ti_AllocEqu(3, malloc) - my_equ->data[0] = '2'; - my_equ->data[1] = tAdd; - my_equ->data[2] = '2'; - ti_SetVar(TI_EQU_TYPE, ti_Y1, my_equ); - free(my_equ); - - /* Store the list {1.5,2.5,3.5} to L1 */ - my_list = ti_MallocList(3); // Same as ti_AllocList(3, malloc) - my_list->items[0] = real_1_5; - my_list->items[1] = real_2_5; - my_list->items[2] = real_3_5; - ti_SetVar(TI_REAL_LIST_TYPE, ti_L1, my_list); - free(my_list); - - /* Store the matrix [[2.5,2.5]] to Ans */ - my_matrix = ti_MallocMatrix(1,2); // Same as ti_AllocMatrix(1, 2, malloc) - matrix_element(my_matrix, 0, 0) = real_2_5; - matrix_element(my_matrix, 0, 1) = real_2_5; - ti_SetVar(TI_MATRIX_TYPE, ti_Ans, my_matrix); - free(my_matrix); -} - -/* Stores some ints to a complex variable type */ -cplx_t Int24sToCplx(int real, int imag) { - cplx_t res; - res.real = os_Int24ToReal(real); - res.real.sign |= TI_CPLX_TYPE; - res.imag = os_Int24ToReal(imag); - res.imag.sign |= TI_CPLX_TYPE; - return res; -} - -/* Stores some floats to a complex variable type */ -cplx_t FloatsToCplx(float real, float imag) { - cplx_t res; - res.real = os_FloatToReal(real); - res.real.sign |= TI_CPLX_TYPE; - res.imag = os_FloatToReal(imag); - res.imag.sign |= TI_CPLX_TYPE; - return res; -} - -/* Converts a pair of reals to a complex number */ -cplx_t RealsToCplx(real_t real, real_t imag) { - cplx_t res; - res.real = real; - res.real.sign |= TI_CPLX_TYPE; - res.imag = imag; - res.imag.sign |= TI_CPLX_TYPE; - return res; -} - -/* Converts strings to a complex variable type */ -cplx_t StrsToCplx(char *real, char **real_end, char *imag, char **imag_end) { - cplx_t res; - res.real = os_StrToReal(real, real_end); - res.real.sign |= TI_CPLX_TYPE; - res.imag = os_StrToReal(imag, imag_end); - res.imag.sign |= TI_CPLX_TYPE; - return res; -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Some function prototypes. Maybe in the future these functions will become a library */
+cplx_t Int24sToCplx(int real, int imag);
+cplx_t FloatsToCplx(float real, float imag);
+cplx_t RealsToCplx(real_t real, real_t imag);
+cplx_t StrsToCplx(char *real, char **real_end, char *imag, char **imag_end);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ equ_t *my_equ;
+ list_t *my_list;
+ matrix_t *my_matrix;
+ real_t my_real;
+ cplx_t my_cplx;
+ real_t real_1_5 = os_FloatToReal(1.5);
+ real_t real_2_5 = os_FloatToReal(2.5);
+ real_t real_3_5 = os_FloatToReal(3.5);
+
+ /* Store the value '1.5+2.5i' into the variable B */
+ my_cplx = FloatsToCplx(1.5, 2.5);
+ ti_SetVar(TI_CPLX_TYPE, ti_B, &my_cplx);
+
+ /* Store the value '1.5' into the variable A */
+ my_real = real_1_5;
+ ti_SetVar(TI_REAL_TYPE, ti_A, &my_real);
+
+ /* Store the equation "2+2" into the Y1 variable */
+ my_equ = ti_MallocEqu(3); // Same as ti_AllocEqu(3, malloc)
+ my_equ->data[0] = '2';
+ my_equ->data[1] = tAdd;
+ my_equ->data[2] = '2';
+ ti_SetVar(TI_EQU_TYPE, ti_Y1, my_equ);
+ free(my_equ);
+
+ /* Store the list {1.5,2.5,3.5} to L1 */
+ my_list = ti_MallocList(3); // Same as ti_AllocList(3, malloc)
+ my_list->items[0] = real_1_5;
+ my_list->items[1] = real_2_5;
+ my_list->items[2] = real_3_5;
+ ti_SetVar(TI_REAL_LIST_TYPE, ti_L1, my_list);
+ free(my_list);
+
+ /* Store the matrix [[2.5,2.5]] to Ans */
+ my_matrix = ti_MallocMatrix(1,2); // Same as ti_AllocMatrix(1, 2, malloc)
+ matrix_element(my_matrix, 0, 0) = real_2_5;
+ matrix_element(my_matrix, 0, 1) = real_2_5;
+ ti_SetVar(TI_MATRIX_TYPE, ti_Ans, my_matrix);
+ free(my_matrix);
+}
+
+/* Stores some ints to a complex variable type */
+cplx_t Int24sToCplx(int real, int imag) {
+ cplx_t res;
+ res.real = os_Int24ToReal(real);
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = os_Int24ToReal(imag);
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
+
+/* Stores some floats to a complex variable type */
+cplx_t FloatsToCplx(float real, float imag) {
+ cplx_t res;
+ res.real = os_FloatToReal(real);
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = os_FloatToReal(imag);
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
+
+/* Converts a pair of reals to a complex number */
+cplx_t RealsToCplx(real_t real, real_t imag) {
+ cplx_t res;
+ res.real = real;
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = imag;
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
+
+/* Converts strings to a complex variable type */
+cplx_t StrsToCplx(char *real, char **real_end, char *imag, char **imag_end) {
+ cplx_t res;
+ res.real = os_StrToReal(real, real_end);
+ res.real.sign |= TI_CPLX_TYPE;
+ res.imag = os_StrToReal(imag, imag_end);
+ res.imag.sign |= TI_CPLX_TYPE;
+ return res;
+}
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json b/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json index bd30851..77be90b 100644 --- a/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json +++ b/frontends/calculator/CEdev/examples/fileio_read_write/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|1000", - "hash|1", - "key|enter", - "delay|200", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Assert that the read was succesful", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "D720F0D9" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Assert that the read was succesful",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "D720F0D9" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map index 7cf5131..6d7aa9a 100644 --- a/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map +++ b/frontends/calculator/CEdev/examples/fileio_read_write/bin/DEMO.map @@ -1,154 +1,154 @@ -Segment Base Top High Length --------- ------ ------ ------ ------- -icon D1A882 D1A882 0h -launcher D1A882 D1A8DA 58h -libs D1A8DA D1A906 2Ch -startup D1A906 D1A945 3Fh -cleanup D1A945 D1A959 14h -exit D1A959 D1A95F 6h -code D1A95F D1AB0A 1ABh -data D1AB0A D1AB2F 25h -strsect D1AB2F D1AB6E 3Fh -text D1AB6E D1AB6E 0h -bss D031F6 D03207 D13FD6 11h -header D1A87F D1A882 3h - -Label Value -------------------------- ------ -_os_DisableHomeTextBuffer = D1A95F -_os_EnableHomeTextBuffer = D1A971 -_boot_GetBootMajorVer = 000080 -_boot_GetHardwareVer = 000084 -_boot_GetBootMinorVer = 00008C -_boot_DebugPrintf = 0000B4 -_boot_ClearVRAM = 000374 -_boot_TurnOff = 000388 -_boot_NewLine = 000390 -_boot_Set6MHzMode = 00039C -_boot_Set48MHzMode = 0003A0 -_boot_Set6MHzModeI = 0003A4 -_boot_Set48MHzModeI = 0003A8 -_boot_GetBatteryStatus = 0003B0 -_boot_WaitShort = 0003B4 -_boot_CheckOnPressed = 00057C -_boot_SetDate = 000598 -_boot_GetDate = 0005A8 -_boot_GetTime = 0005B0 -_boot_SetTime = 0005B4 -_boot_IsAfterNoon = 0005C8 -_os_NewLine = 0207F0 -_os_PushErrorHandler = 021C78 -_os_PopErrorHandler = 021C7C -_os_ThrowError = 021C80 -_os_RealCopy = 021C84 -_os_RealAsinRad = 021C88 -_os_RealAcosRad = 021C8C -_os_RealAtanRad = 021C90 -_os_RealAdd = 021C94 -_os_CplxSquare = 021C98 -_os_RealCompare = 021C9C -_os_RealCosRad = 021CA0 -_os_RealRadToDeg = 021CA4 -_os_RealDiv = 021CA8 -_os_RealExp = 021CAC -_os_RealFloor = 021CB0 -_os_RealToStr = 021CB4 -_os_RealFrac = 021CB8 -_os_RealGcd = 021CBC -_os_RealRoundInt = 021CC0 -_os_RealLcm = 021CC4 -_os_RealLog = 021CC8 -_os_RealMax = 021CCC -_os_RealMin = 021CD0 -_os_RealMul = 021CD4 -_os_RealNcr = 021CD8 -_os_RealNeg = 021CDC -_os_RealNpr = 021CE0 -_os_RealPow = 021CE4 -_os_RealDegToRad = 021CE8 -_os_RealRandInt = 021CEC -_os_RealInv = 021CF0 -_os_RealMod = 021CF4 -_os_RealRound = 021CF8 -_os_RealSinRad = 021CFC -_os_RealSqrt = 021D00 -_os_RealSub = 021D04 -_os_RealTanRad = 021D08 -_os_StrToReal = 021D0C -_os_RealInt = 021D10 -_os_SetFlagBits = 021D14 -_os_ResetFlagBits = 021D18 -_os_TestFlagBits = 021D1C -_os_SetFlagByte = 021D20 -_os_GetFlagByte = 021D24 -_os_GetCursorPos = 021D28 -_os_PutStrFull = 021D2C -_os_PutStrLine = 021D30 -_os_SetCursorPos = 021D34 -_os_AppInit = 021D40 -_os_GetKey = 021D38 -_os_GetCSC = 021D3C -_os_DisableCursor = 021DE4 -_os_EnableCursor = 021DE8 -_os_FontDrawText = 021E00 -_os_FontGetHeight = 021E14 -_os_FontGetWidth = 021E18 -_os_InitDrawing = 021E1C -_os_SetDrawBGColor = 021E20 -_os_SetDrawFGColor = 021E24 -_os_FontSelect = 021E28 -_os_RclAns = 021E70 -_os_SetTimer1 = 021EC8 -_os_DisableTimer1 = 021ECC -_os_GetSystemStats = 021ED4 -_os_GetDrawBGColor = 021EE4 -_os_GetDrawFGColor = 021EE8 -_os_FontGetID = 021EEC -_os_RealToInt24 = 021EF4 -_os_Int24ToReal = 021EF8 -_os_ForceCmdNoChar = 021FA8 -_os_GetSymTablePtr = 021FB0 -_os_NextSymEntry = 021FB4 -_os_ChkFindSym = 021FB8 -_os_MemChk = 021FF0 -_os_SetTimer2 = 022080 -_os_DisableTimer2 = 022084 -_os_FloatToReal = 022170 -_os_RealToFloat = 022174 -_os_FontDrawTransText = 022178 -_os_CreateAppVar = 022184 -_asm_MoveDown = 0207F4 -_asm_MoveUp = 020800 -_asm_ClrLCDFull = 020808 -_asm_ClrLCD = 02080C -_asm_ClrTxtShd = 020818 -_asm_HomeUp = 020828 -_asm_RunIndicOn = 020844 -_asm_RunIndicOff = 020848 -_asm_DelRes = 020E5C -_asm_DisableAPD = 021134 -_asm_EnableAPD = 021138 -_asm_DrawStatusBar = 021A3C -_asm_ArcChk = 022040 -__OS = D1A983 -__frameset0 = D1A98D -__frameset = D1A998 -_strcpy = 0000CC -__findlibload = D1A882 -__ccleanup = D1A945 -_errno = D008DC -_init = D1A882 -_exit = D1A95B -__exit = D1A934 -__exitsp = D1A934 -__errsp = D1A934 -_printText = D1AAE8 -_main = D1A9A6 -_data = D031F6 -_appvarName = D1AB2C -_ti_CloseAll = D1A8EE -_ti_Open = D1A8F2 -_ti_Write = D1A8F6 -_ti_Read = D1A8FA -_ti_Rewind = D1A8FE -_ti_GetName = D1A902 +Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A8DA 58h
+libs D1A8DA D1A906 2Ch
+startup D1A906 D1A945 3Fh
+cleanup D1A945 D1A959 14h
+exit D1A959 D1A95F 6h
+code D1A95F D1AB0A 1ABh
+data D1AB0A D1AB2F 25h
+strsect D1AB2F D1AB6E 3Fh
+text D1AB6E D1AB6E 0h
+bss D031F6 D03207 D13FD6 11h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A95F
+_os_EnableHomeTextBuffer = D1A971
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__OS = D1A983
+__frameset0 = D1A98D
+__frameset = D1A998
+_strcpy = 0000CC
+__findlibload = D1A882
+__ccleanup = D1A945
+_errno = D008DC
+_init = D1A882
+_exit = D1A95B
+__exit = D1A934
+__exitsp = D1A934
+__errsp = D1A934
+_printText = D1AAE8
+_main = D1A9A6
+_data = D031F6
+_appvarName = D1AB2C
+_ti_CloseAll = D1A8EE
+_ti_Open = D1A8F2
+_ti_Write = D1A8F6
+_ti_Read = D1A8FA
+_ti_Rewind = D1A8FE
+_ti_GetName = D1A902
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/makefile b/frontends/calculator/CEdev/examples/fileio_read_write/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_read_write/makefile +++ b/frontends/calculator/CEdev/examples/fileio_read_write/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/readme.md b/frontends/calculator/CEdev/examples/fileio_read_write/readme.md index 8666507..5c3a134 100644 --- a/frontends/calculator/CEdev/examples/fileio_read_write/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_read_write/readme.md @@ -1,10 +1,10 @@ -### FileIO Write/Read Demo - -This example demonstrates writing some data to a file and then reading it back out to make sure it was written correctly - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### FileIO Write/Read Demo
+
+This example demonstrates writing some data to a file and then reading it back out to make sure it was written correctly
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c b/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c index a776037..4747b99 100644 --- a/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_read_write/src/main.c @@ -1,88 +1,88 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <fileioc.h> - -/* Declare some variables */ -const char *appvarName = "AppVar"; - -typedef struct { - char name[15]; - uint8_t var1; - uint8_t var2; -} data_t; - -data_t data; - -#define VAR1_VALUE 10 -#define VAR2_VALUE 20 - -/* Function prototypes */ -void printText(int8_t xpos, int8_t ypos, const char *text); - -/* Main Function */ -void main(void) { - char nameBuffer[10]; - ti_var_t myAppVar; - int x; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Declare some variable values */ - strcpy(data.name, "My Data"); - data.var1 = VAR1_VALUE; - data.var2 = VAR2_VALUE; - - /* Close any files that may be open already */ - ti_CloseAll(); - - /* Open a new variable; deleting it if it already exists */ - myAppVar = ti_Open(appvarName, "w"); - - /* Make sure we opened okay */ - if (!myAppVar) goto err; - - /* Write the structure to the appvar */ - if (ti_Write(&data, sizeof(data_t), 1, myAppVar) != 1) goto err; - - /* Go back to the start of the file */ - if (ti_Rewind(myAppVar) == EOF) goto err; - - /* Let's read it just to make sure we wrote it correctly */ - if (ti_Read(&data, sizeof(data_t), 1, myAppVar) != 1) goto err; - - /* Make sure we read these variables correctly too */ - if (data.var1 != VAR1_VALUE && data.var2 != VAR2_VALUE) goto err; - - /* Ensure the name of the AppVar is correct */ - ti_GetName(nameBuffer, myAppVar); - - printText(0, 0, "Appvar: "); - printText(8, 0, nameBuffer); - printText(0, 1, "Read was successful"); - goto noerr; - -err: - printText(0, 0, "An error occured"); -noerr: - - /* Pause */ - while (!os_GetCSC()); - - /* Close all open files */ - ti_CloseAll(); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(int8_t xpos, int8_t ypos, const char *text) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} - +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Declare some variables */
+const char *appvarName = "AppVar";
+
+typedef struct {
+ char name[15];
+ uint8_t var1;
+ uint8_t var2;
+} data_t;
+
+data_t data;
+
+#define VAR1_VALUE 10
+#define VAR2_VALUE 20
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ char nameBuffer[10];
+ ti_var_t myAppVar;
+ int x;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Declare some variable values */
+ strcpy(data.name, "My Data");
+ data.var1 = VAR1_VALUE;
+ data.var2 = VAR2_VALUE;
+
+ /* Close any files that may be open already */
+ ti_CloseAll();
+
+ /* Open a new variable; deleting it if it already exists */
+ myAppVar = ti_Open(appvarName, "w");
+
+ /* Make sure we opened okay */
+ if (!myAppVar) goto err;
+
+ /* Write the structure to the appvar */
+ if (ti_Write(&data, sizeof(data_t), 1, myAppVar) != 1) goto err;
+
+ /* Go back to the start of the file */
+ if (ti_Rewind(myAppVar) == EOF) goto err;
+
+ /* Let's read it just to make sure we wrote it correctly */
+ if (ti_Read(&data, sizeof(data_t), 1, myAppVar) != 1) goto err;
+
+ /* Make sure we read these variables correctly too */
+ if (data.var1 != VAR1_VALUE && data.var2 != VAR2_VALUE) goto err;
+
+ /* Ensure the name of the AppVar is correct */
+ ti_GetName(nameBuffer, myAppVar);
+
+ printText(0, 0, "Appvar: ");
+ printText(8, 0, nameBuffer);
+ printText(0, 1, "Read was successful");
+ goto noerr;
+
+err:
+ printText(0, 0, "An error occured");
+noerr:
+
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Close all open files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/autotester.json b/frontends/calculator/CEdev/examples/fileio_rename/autotester.json index 5b454c9..abe87c4 100644 --- a/frontends/calculator/CEdev/examples/fileio_rename/autotester.json +++ b/frontends/calculator/CEdev/examples/fileio_rename/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|1000", - "hash|1", - "key|enter", - "delay|200", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Assert that the rename was succesful", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "94538693" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Assert that the rename was succesful",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "94538693" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/makefile b/frontends/calculator/CEdev/examples/fileio_rename/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_rename/makefile +++ b/frontends/calculator/CEdev/examples/fileio_rename/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/readme.md b/frontends/calculator/CEdev/examples/fileio_rename/readme.md index 9584b02..518c9ff 100644 --- a/frontends/calculator/CEdev/examples/fileio_rename/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_rename/readme.md @@ -1,8 +1,8 @@ -### FileIO Rename Demo - -This example demonstrates how to rename previously created files - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### FileIO Rename Demo
+
+This example demonstrates how to rename previously created files
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_rename/src/main.c b/frontends/calculator/CEdev/examples/fileio_rename/src/main.c index 6f046bb..49793a9 100644 --- a/frontends/calculator/CEdev/examples/fileio_rename/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_rename/src/main.c @@ -1,77 +1,77 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <fileioc.h> - -/* Function prototypes */ -void printText(int8_t xpos, int8_t ypos, const char *text); - -/* Main Function */ -void main(void) { - /* Declare some variables */ - const char *oldName = "OldFile"; - const char *newName = "NewFile"; - char nameBuffer[10]; - ti_var_t file; - bool err = true; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Close any previously open files */ - ti_CloseAll(); - - /* Delete both the new and old files if they already exist */ - ti_Delete(oldName); - ti_Delete(newName); - - do { - /* Create a file with the old name */ - file = ti_Open(oldName, "w"); - if (!file) break; - - ti_GetName(nameBuffer, file); - printText(0, 0, "Old Name: "); - printText(10, 0, nameBuffer); - - /* Close the old file */ - ti_CloseAll(); - - /* Rename the old file to the new file name */ - ti_Rename(oldName, newName); - - /* Ensure the new name of the file is correct */ - file = ti_Open(newName, "r"); - if (!file) break; - - ti_GetName(nameBuffer, file); - printText(0, 1, "New Name: "); - printText(10, 1, nameBuffer); - - err = false; - } while (0); - - /* Close all open files */ - ti_CloseAll(); - - /* If an error occured, inform the user */ - if (err == true) { - printText(0, 2, "An error occured"); - } - - /* Wait for a keypress */ - while (!os_GetCSC()); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(int8_t xpos, int8_t ypos, const char *text) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} - +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ /* Declare some variables */
+ const char *oldName = "OldFile";
+ const char *newName = "NewFile";
+ char nameBuffer[10];
+ ti_var_t file;
+ bool err = true;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Close any previously open files */
+ ti_CloseAll();
+
+ /* Delete both the new and old files if they already exist */
+ ti_Delete(oldName);
+ ti_Delete(newName);
+
+ do {
+ /* Create a file with the old name */
+ file = ti_Open(oldName, "w");
+ if (!file) break;
+
+ ti_GetName(nameBuffer, file);
+ printText(0, 0, "Old Name: ");
+ printText(10, 0, nameBuffer);
+
+ /* Close the old file */
+ ti_CloseAll();
+
+ /* Rename the old file to the new file name */
+ ti_Rename(oldName, newName);
+
+ /* Ensure the new name of the file is correct */
+ file = ti_Open(newName, "r");
+ if (!file) break;
+
+ ti_GetName(nameBuffer, file);
+ printText(0, 1, "New Name: ");
+ printText(10, 1, nameBuffer);
+
+ err = false;
+ } while (0);
+
+ /* Close all open files */
+ ti_CloseAll();
+
+ /* If an error occured, inform the user */
+ if (err == true) {
+ printText(0, 2, "An error occured");
+ }
+
+ /* Wait for a keypress */
+ while (!os_GetCSC());
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json b/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json index 529758c..d780c28 100644 --- a/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json +++ b/frontends/calculator/CEdev/examples/fileio_tokens/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|1000", - "hash|1", - "key|enter", - "delay|200", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Blank screen", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "349F4775" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|200",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Blank screen",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/makefile b/frontends/calculator/CEdev/examples/fileio_tokens/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/fileio_tokens/makefile +++ b/frontends/calculator/CEdev/examples/fileio_tokens/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/readme.md b/frontends/calculator/CEdev/examples/fileio_tokens/readme.md index a1d5546..9421319 100644 --- a/frontends/calculator/CEdev/examples/fileio_tokens/readme.md +++ b/frontends/calculator/CEdev/examples/fileio_tokens/readme.md @@ -1,10 +1,10 @@ -### FileIO Get Token Demo - -This demo shows how to use the ti_GetDataPtr and ti_GetTokenString functions. It prints out the first two tokens in the basic prgmABC. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### FileIO Get Token Demo
+
+This demo shows how to use the ti_GetDataPtr and ti_GetTokenString functions. It prints out the first two tokens in the basic prgmABC.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c b/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c index d3f6b57..f787180 100644 --- a/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c +++ b/frontends/calculator/CEdev/examples/fileio_tokens/src/main.c @@ -1,59 +1,59 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <fileioc.h> - -/* Declare the program name */ -const char *prgmName = "ABC"; - -/* Function prototypes */ -void printText(int8_t xpos, int8_t ypos, const char *text); - -/* Main Function */ -void main(void) { - ti_var_t prgm; - char *text; - uint8_t *data_ptr; - uint8_t token_length; - uint16_t size; - int8_t y = 0; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Close any files that may be open already */ - ti_CloseAll(); - - /* Open the program for reading */ - prgm = ti_OpenVar(prgmName, "r", TI_PRGM_TYPE); - - /* Make sure we opened okay */ - if (!prgm) goto err; - - data_ptr = ti_GetDataPtr(prgm); - size = ti_GetSize(prgm); - - while (size && y < 8) { - printText(0, y++, ti_GetTokenString(&data_ptr, &token_length, NULL)); - size -= token_length; - } - -err: - /* Pause */ - while (!os_GetCSC()); - - /* Close files */ - ti_CloseAll(); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(int8_t xpos, int8_t ypos, const char *text) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <fileioc.h>
+
+/* Declare the program name */
+const char *prgmName = "ABC";
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+/* Main Function */
+void main(void) {
+ ti_var_t prgm;
+ char *text;
+ uint8_t *data_ptr;
+ uint8_t token_length;
+ uint16_t size;
+ int8_t y = 0;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Close any files that may be open already */
+ ti_CloseAll();
+
+ /* Open the program for reading */
+ prgm = ti_OpenVar(prgmName, "r", TI_PRGM_TYPE);
+
+ /* Make sure we opened okay */
+ if (!prgm) goto err;
+
+ data_ptr = ti_GetDataPtr(prgm);
+ size = ti_GetSize(prgm);
+
+ while (size && y < 8) {
+ printText(0, y++, ti_GetTokenString(&data_ptr, &token_length, NULL));
+ size -= token_length;
+ }
+
+err:
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Close files */
+ ti_CloseAll();
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json b/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json index bb67e72..1a23534 100644 --- a/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_blitting/autotester.json @@ -1,46 +1,46 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2", - "key|enter", - "hashWait|3", - "key|enter", - "hashWait|4" - ], - "hashes": { - "1": { - "description": "Nothing blitted yet, white screen", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "3132DE74" ] - }, - "2": { - "description": "Parts of buffer blitted to screen", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "830291D3" ] - }, - "3": { - "description": "Full buffer blitted to screen", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "EA181DC1" ] - }, - "4": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3",
+ "key|enter",
+ "hashWait|4"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Nothing blitted yet, white screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3132DE74" ]
+ },
+ "2": {
+ "description": "Parts of buffer blitted to screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "830291D3" ]
+ },
+ "3": {
+ "description": "Full buffer blitted to screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "EA181DC1" ]
+ },
+ "4": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/makefile b/frontends/calculator/CEdev/examples/gfx_blitting/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_blitting/makefile +++ b/frontends/calculator/CEdev/examples/gfx_blitting/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/readme.md b/frontends/calculator/CEdev/examples/gfx_blitting/readme.md index caa3bcb..b5db201 100644 --- a/frontends/calculator/CEdev/examples/gfx_blitting/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_blitting/readme.md @@ -1,7 +1,7 @@ -### GraphX Blitting Demo - -This example demonstrates blitting to manually copy data from the drawing buffer to the screen buffer - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### GraphX Blitting Demo
+
+This example demonstrates blitting to manually copy data from the drawing buffer to the screen buffer
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c b/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c index 1582583..da7b90c 100644 --- a/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_blitting/src/main.c @@ -1,47 +1,47 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* This tutorial is meant to be played around with to get a feeling for how blitting works */ -void main(void) { - uint8_t c; - - /* Initialize the 8bpp graphics, screen cleared to white */ - gfx_Begin(); - - /* Draw to buffer instead of directly to screen */ - gfx_SetDrawBuffer(); // This is the same as gfx_SetDraw(gfx_buffer) - - /* Draw a gradient (to the buffer) */ - for (c = 0; c < 8; c++) { - gfx_SetColor(c); - gfx_FillRectangle_NoClip(c * (LCD_WIDTH / 8), 0, LCD_WIDTH / 8, LCD_HEIGHT); - } - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Copy parts of the buffer to the screen */ - gfx_BlitLines(gfx_buffer, LCD_HEIGHT - 32, 32); - gfx_BlitRectangle(gfx_buffer, LCD_WIDTH / 4, LCD_HEIGHT / 4, LCD_WIDTH / 2, LCD_HEIGHT / 2); - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Copy the full buffer to the screen */ - gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer) - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* This tutorial is meant to be played around with to get a feeling for how blitting works */
+void main(void) {
+ uint8_t c;
+
+ /* Initialize the 8bpp graphics, screen cleared to white */
+ gfx_Begin();
+
+ /* Draw to buffer instead of directly to screen */
+ gfx_SetDrawBuffer(); // This is the same as gfx_SetDraw(gfx_buffer)
+
+ /* Draw a gradient (to the buffer) */
+ for (c = 0; c < 8; c++) {
+ gfx_SetColor(c);
+ gfx_FillRectangle_NoClip(c * (LCD_WIDTH / 8), 0, LCD_WIDTH / 8, LCD_HEIGHT);
+ }
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Copy parts of the buffer to the screen */
+ gfx_BlitLines(gfx_buffer, LCD_HEIGHT - 32, 32);
+ gfx_BlitRectangle(gfx_buffer, LCD_WIDTH / 4, LCD_HEIGHT / 4, LCD_WIDTH / 2, LCD_HEIGHT / 2);
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Copy the full buffer to the screen */
+ gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer)
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json b/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json index 6d4c32f..8fef238 100644 --- a/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/autotester.json @@ -1,40 +1,40 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|300", - "hash|1", - "hash|2", - "key|enter", - "delay|300", - "hashWait|3" - ], - "hashes": { - "1": { - "description": "The background will be white (check a part before the cube)", - "start": "vram_start", - "size": "0x500", - "expected_CRCs": [ "5DAA1FBD" ] - }, - "2": { - "description": "The background will be white (check a part after the cube)", - "start": "0xD52700", - "size": "0x500", - "expected_CRCs": [ "5DAA1FBD" ] - }, - "3": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "hash|2",
+ "key|enter",
+ "delay|300",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The background will be white (check a part before the cube)",
+ "start": "vram_start",
+ "size": "0x500",
+ "expected_CRCs": [ "5DAA1FBD" ]
+ },
+ "2": {
+ "description": "The background will be white (check a part after the cube)",
+ "start": "0xD52700",
+ "size": "0x500",
+ "expected_CRCs": [ "5DAA1FBD" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile b/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile +++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md b/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md index 413aa36..c7cf3f4 100644 --- a/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/readme.md @@ -1,10 +1,10 @@ -### GraphX Cube Buffer Demo - -Draws a rotating cube which demonstartes the line and double buffering routines - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Cube Buffer Demo
+
+Draws a rotating cube which demonstartes the line and double buffering routines
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c b/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c index 422e96c..3843d96 100644 --- a/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_buffered_cube/src/main.c @@ -1,113 +1,113 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Function prototypes */ -void rotate(void); - -/* Globals */ -#define ORG (-50) -#define DEG (6.0) -#define ANG (DEG * M_PI / 180.0) - -/* define the verticies for the two rectangles */ -float face1[4][2] = { - { 140, 45 }, - { 240, 45 }, - { 240, 145 }, - { 140, 145 }, -}; - -float face2[4][2] = { - { 140 + ORG, 45 - ORG }, - { 240 + ORG, 45 - ORG }, - { 240 + ORG, 145 - ORG }, - { 140 + ORG, 145 - ORG }, -}; - -/* declare some globals */ -float sin_angle, - cos_angle; - -float midx1, - midy1, - midx2, - midy2; - -/* Place main code in main */ -void main(void) { - uint8_t loop = 0; - - /* Seed the random numbers */ - srand(rtc_Time()); - - /* Get some main variables set up */ - sin_angle = sin(ANG); - cos_angle = cos(ANG); - midx1 = (face1[0][0] + face1[1][0]) / 2.0; - midy1 = (face1[1][1] + face1[2][1]) / 2.0; - midx2 = (face2[0][0] + face2[1][0]) / 2.0; - midy2 = (face2[1][1] + face2[2][1]) / 2.0; - - /* Start the graphics routines */ - gfx_Begin(); - gfx_SetDrawBuffer(); - - /* Loop until a key is pressed */ - while (!os_GetCSC()) { - - /* Change the color of the cube depending on loop (mod 16) */ - if (!((loop++) & 0xf)) { - gfx_SetColor(rand()); - } - - /* Call the rotation code */ - rotate(); - - /* Swap the buffer with the screen */ - gfx_SwapDraw(); - } - - /* End the graphics */ - gfx_End(); -} - -/* Rotation code */ -void rotate(void) { - uint8_t i, j; - float tmp1, tmp2; - - /* Compute the new vertex coordinates */ - for (i=0; i<4; i++) { - tmp1 = face1[i][0] - midx1; - tmp2 = face1[i][1] - midy1; - - face1[i][0] = midx1 + (tmp1 * cos_angle) - (tmp2 * sin_angle); - face1[i][1] = midy1 + (tmp1 * sin_angle) + (tmp2 * cos_angle); - - tmp1 = face2[i][0] - midx2; - tmp2 = face2[i][1] - midy2; - - face2[i][0] = midx2 + (tmp1 * cos_angle) - (tmp2 * sin_angle); - face2[i][1] = midy2 + (tmp1 * sin_angle) + (tmp2 * cos_angle); - } - - /* Clear the drawing buffer */ - gfx_FillScreen(gfx_white); - - /* Draw the cube */ - for (i=0; i<4; i++) { - j = i + 1 & 3; - gfx_Line(face1[i][0], face1[i][1], face1[j][0], face1[j][1]); - gfx_Line(face2[i][0], face2[i][1], face2[j][0], face2[j][1]); - gfx_Line(face1[i][0], face1[i][1], face2[i][0], face2[i][1]); - } -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Function prototypes */
+void rotate(void);
+
+/* Globals */
+#define ORG (-50)
+#define DEG (6.0)
+#define ANG (DEG * M_PI / 180.0)
+
+/* define the verticies for the two rectangles */
+float face1[4][2] = {
+ { 140, 45 },
+ { 240, 45 },
+ { 240, 145 },
+ { 140, 145 },
+};
+
+float face2[4][2] = {
+ { 140 + ORG, 45 - ORG },
+ { 240 + ORG, 45 - ORG },
+ { 240 + ORG, 145 - ORG },
+ { 140 + ORG, 145 - ORG },
+};
+
+/* declare some globals */
+float sin_angle,
+ cos_angle;
+
+float midx1,
+ midy1,
+ midx2,
+ midy2;
+
+/* Place main code in main */
+void main(void) {
+ uint8_t loop = 0;
+
+ /* Seed the random numbers */
+ srand(rtc_Time());
+
+ /* Get some main variables set up */
+ sin_angle = sin(ANG);
+ cos_angle = cos(ANG);
+ midx1 = (face1[0][0] + face1[1][0]) / 2.0;
+ midy1 = (face1[1][1] + face1[2][1]) / 2.0;
+ midx2 = (face2[0][0] + face2[1][0]) / 2.0;
+ midy2 = (face2[1][1] + face2[2][1]) / 2.0;
+
+ /* Start the graphics routines */
+ gfx_Begin();
+ gfx_SetDrawBuffer();
+
+ /* Loop until a key is pressed */
+ while (!os_GetCSC()) {
+
+ /* Change the color of the cube depending on loop (mod 16) */
+ if (!((loop++) & 0xf)) {
+ gfx_SetColor(rand());
+ }
+
+ /* Call the rotation code */
+ rotate();
+
+ /* Swap the buffer with the screen */
+ gfx_SwapDraw();
+ }
+
+ /* End the graphics */
+ gfx_End();
+}
+
+/* Rotation code */
+void rotate(void) {
+ uint8_t i, j;
+ float tmp1, tmp2;
+
+ /* Compute the new vertex coordinates */
+ for (i=0; i<4; i++) {
+ tmp1 = face1[i][0] - midx1;
+ tmp2 = face1[i][1] - midy1;
+
+ face1[i][0] = midx1 + (tmp1 * cos_angle) - (tmp2 * sin_angle);
+ face1[i][1] = midy1 + (tmp1 * sin_angle) + (tmp2 * cos_angle);
+
+ tmp1 = face2[i][0] - midx2;
+ tmp2 = face2[i][1] - midy2;
+
+ face2[i][0] = midx2 + (tmp1 * cos_angle) - (tmp2 * sin_angle);
+ face2[i][1] = midy2 + (tmp1 * sin_angle) + (tmp2 * cos_angle);
+ }
+
+ /* Clear the drawing buffer */
+ gfx_FillScreen(gfx_white);
+
+ /* Draw the cube */
+ for (i=0; i<4; i++) {
+ j = i + 1 & 3;
+ gfx_Line(face1[i][0], face1[i][1], face1[j][0], face1[j][1]);
+ gfx_Line(face2[i][0], face2[i][1], face2[j][0], face2[j][1]);
+ gfx_Line(face1[i][0], face1[i][1], face2[i][0], face2[i][1]);
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_char/autotester.json b/frontends/calculator/CEdev/examples/gfx_char/autotester.json index 66dfe16..fabde19 100644 --- a/frontends/calculator/CEdev/examples/gfx_char/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_char/autotester.json @@ -1,30 +1,30 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Test flipped text on black background", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "198A8841" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Test flipped text on black background",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "198A8841" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_char/makefile b/frontends/calculator/CEdev/examples/gfx_char/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_char/makefile +++ b/frontends/calculator/CEdev/examples/gfx_char/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_char/readme.md b/frontends/calculator/CEdev/examples/gfx_char/readme.md index 7889ac8..10ba641 100644 --- a/frontends/calculator/CEdev/examples/gfx_char/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_char/readme.md @@ -1,10 +1,10 @@ -### GraphX Character Demo - -A simple demo showing an upside down string. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Character Demo
+
+A simple demo showing an upside down string.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_char/src/main.c b/frontends/calculator/CEdev/examples/gfx_char/src/main.c index 7d1b5ec..a7f108e 100644 --- a/frontends/calculator/CEdev/examples/gfx_char/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_char/src/main.c @@ -1,52 +1,52 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Use some random color as the transparent one */ -#define TRANSPARENT_COLOR 10 -#define FONT_WIDTH 8 -#define FONT_HEIGHT 8 - -/* Function prototypes */ -void printu(char *str, int x, int y); - -const char *my_str = "!!DEPPILF si txet sihT"; - -void main(void) { - /* Initialize the 8bpp graphics */ - gfx_Begin(); - gfx_FillScreen(gfx_black); - - /* Setup the colors */ - gfx_SetTextFGColor(gfx_white); - - /* Set the transparent text background color */ - gfx_SetTextBGColor(TRANSPARENT_COLOR); - gfx_SetTextTransparentColor(TRANSPARENT_COLOR); - gfx_SetMonospaceFont(FONT_WIDTH); - - /* Print some upside down text */ - printu(my_str, (LCD_WIDTH - gfx_GetStringWidth(my_str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2); - - /* Wait for key */ - while (!os_GetCSC()); - - /* Finish the graphics */ - gfx_End(); -} - -void printu(char *str, int x, int y) { - gfx_TempSprite(my_char, 8, 8); - - while (*str) { - gfx_TransparentSprite(gfx_RotateSpriteHalf(gfx_GetSpriteChar(*str), my_char), x, y); - x += gfx_GetCharWidth(*str++); - } -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Use some random color as the transparent one */
+#define TRANSPARENT_COLOR 10
+#define FONT_WIDTH 8
+#define FONT_HEIGHT 8
+
+/* Function prototypes */
+void printu(char *str, int x, int y);
+
+const char *my_str = "!!DEPPILF si txet sihT";
+
+void main(void) {
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_FillScreen(gfx_black);
+
+ /* Setup the colors */
+ gfx_SetTextFGColor(gfx_white);
+
+ /* Set the transparent text background color */
+ gfx_SetTextBGColor(TRANSPARENT_COLOR);
+ gfx_SetTextTransparentColor(TRANSPARENT_COLOR);
+ gfx_SetMonospaceFont(FONT_WIDTH);
+
+ /* Print some upside down text */
+ printu(my_str, (LCD_WIDTH - gfx_GetStringWidth(my_str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2);
+
+ /* Wait for key */
+ while (!os_GetCSC());
+
+ /* Finish the graphics */
+ gfx_End();
+}
+
+void printu(char *str, int x, int y) {
+ gfx_TempSprite(my_char, 8, 8);
+
+ while (*str) {
+ gfx_TransparentSprite(gfx_RotateSpriteHalf(gfx_GetSpriteChar(*str), my_char), x, y);
+ x += gfx_GetCharWidth(*str++);
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json b/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json index 13f45cb..a43dad7 100644 --- a/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_clipping/autotester.json @@ -1,52 +1,52 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|300", - "hash|1", - "key|enter", - "delay|300", - "hash|2", - "key|right", - "key|left", - "delay|300", - "hash|3", - "key|enter", - "delay|300", - "hashWait|4" - ], - "hashes": { - "1": { - "description": "Check text scaling", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "BCD2C22B" ] - }, - "2": { - "description": "Check text clipping", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "BCD2C22B" ] - }, - "3": { - "description": "Check clipped region movement and text clipping", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "BE2F6B1A" ] - }, - "4": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hash|2",
+ "key|right",
+ "key|left",
+ "delay|300",
+ "hash|3",
+ "key|enter",
+ "delay|300",
+ "hashWait|4"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Check text scaling",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BCD2C22B" ]
+ },
+ "2": {
+ "description": "Check text clipping",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BCD2C22B" ]
+ },
+ "3": {
+ "description": "Check clipped region movement and text clipping",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BE2F6B1A" ]
+ },
+ "4": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/makefile b/frontends/calculator/CEdev/examples/gfx_clipping/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_clipping/makefile +++ b/frontends/calculator/CEdev/examples/gfx_clipping/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/readme.md b/frontends/calculator/CEdev/examples/gfx_clipping/readme.md index c0f0dbb..819dd6d 100644 --- a/frontends/calculator/CEdev/examples/gfx_clipping/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_clipping/readme.md @@ -1,10 +1,10 @@ -### GraphX Clipping Demo - -This example demonstrates alternating the clipping region and using clipped text properly. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Clipping Demo
+
+This example demonstrates alternating the clipping region and using clipped text properly.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c b/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c index 97f30eb..69308b1 100644 --- a/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_clipping/src/main.c @@ -1,85 +1,85 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Use some random color as the transparent one */ -#define TRANSPARENT_COLOR 10 -#define FONT_WIDTH 8 -#define FONT_HEIGHT 8 - -void main(void) { - uint8_t key = 24; - - /* Starting text posistion */ - int x = (LCD_WIDTH / 2) - 20; - int y = (LCD_HEIGHT / 2) - 5; - - int box_stride = 1; - int box_scale = 20; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - gfx_FillScreen(gfx_black); - - /* Setup the colors */ - gfx_SetColor(gfx_white); - gfx_SetTextFGColor(gfx_red); - - /* Set the transparent text background color */ - gfx_SetTextBGColor(TRANSPARENT_COLOR); - gfx_SetTextTransparentColor(TRANSPARENT_COLOR); - - /* Print some scaled font */ - gfx_SetTextScale(2, 2); - gfx_PrintStringXY("This text is SCALED!!", 15, 10); - - /* Wait for a key before continuing */ - while (!os_GetCSC()); - - /* Configure the font to normal size, clipped, and monospaced */ - gfx_SetTextScale(1, 1); - gfx_SetTextConfig(gfx_text_clip); - gfx_SetMonospaceFont(FONT_WIDTH); - - /* Graphics routines draw to the back buffer */ - gfx_SetDrawBuffer(); - - /* Run until the [ENTER] key is pressed */ - do { - /* Check if any keys are pressed */ - if (key == sk_Left) { x--; } - if (key == sk_Right) { x++; } - if (key == sk_Down) { y++; } - if (key == sk_Up) { y--; } - if (key) { - gfx_SetClipRegion((LCD_WIDTH/2) - box_scale, (LCD_HEIGHT/2) - box_scale, (LCD_WIDTH/2) + box_scale, (LCD_HEIGHT/2) + box_scale); - - gfx_FillScreen(gfx_black); - gfx_PrintStringXY("FUN WITH CLIPPING", x, y); - - /* Draw a rectangle on the edges of the clipping region so we can see it */ - gfx_Rectangle_NoClip((LCD_WIDTH/2) - box_scale, (LCD_HEIGHT/2) - box_scale, box_scale * 2, box_scale * 2); - - /* Change the clipping region */ - box_scale += box_stride; - - /* Check if we should increase or decrease the clip region */ - if (box_scale > 100 || box_scale < 10) { - box_stride = -box_stride; - } - - /* Move the graphics so the user can see it */ - gfx_SwapDraw(); - } - } while ((key = os_GetCSC()) != sk_Enter); - - /* Usual cleanup */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Use some random color as the transparent one */
+#define TRANSPARENT_COLOR 10
+#define FONT_WIDTH 8
+#define FONT_HEIGHT 8
+
+void main(void) {
+ uint8_t key = 24;
+
+ /* Starting text posistion */
+ int x = (LCD_WIDTH / 2) - 20;
+ int y = (LCD_HEIGHT / 2) - 5;
+
+ int box_stride = 1;
+ int box_scale = 20;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_FillScreen(gfx_black);
+
+ /* Setup the colors */
+ gfx_SetColor(gfx_white);
+ gfx_SetTextFGColor(gfx_red);
+
+ /* Set the transparent text background color */
+ gfx_SetTextBGColor(TRANSPARENT_COLOR);
+ gfx_SetTextTransparentColor(TRANSPARENT_COLOR);
+
+ /* Print some scaled font */
+ gfx_SetTextScale(2, 2);
+ gfx_PrintStringXY("This text is SCALED!!", 15, 10);
+
+ /* Wait for a key before continuing */
+ while (!os_GetCSC());
+
+ /* Configure the font to normal size, clipped, and monospaced */
+ gfx_SetTextScale(1, 1);
+ gfx_SetTextConfig(gfx_text_clip);
+ gfx_SetMonospaceFont(FONT_WIDTH);
+
+ /* Graphics routines draw to the back buffer */
+ gfx_SetDrawBuffer();
+
+ /* Run until the [ENTER] key is pressed */
+ do {
+ /* Check if any keys are pressed */
+ if (key == sk_Left) { x--; }
+ if (key == sk_Right) { x++; }
+ if (key == sk_Down) { y++; }
+ if (key == sk_Up) { y--; }
+ if (key) {
+ gfx_SetClipRegion((LCD_WIDTH/2) - box_scale, (LCD_HEIGHT/2) - box_scale, (LCD_WIDTH/2) + box_scale, (LCD_HEIGHT/2) + box_scale);
+
+ gfx_FillScreen(gfx_black);
+ gfx_PrintStringXY("FUN WITH CLIPPING", x, y);
+
+ /* Draw a rectangle on the edges of the clipping region so we can see it */
+ gfx_Rectangle_NoClip((LCD_WIDTH/2) - box_scale, (LCD_HEIGHT/2) - box_scale, box_scale * 2, box_scale * 2);
+
+ /* Change the clipping region */
+ box_scale += box_stride;
+
+ /* Check if we should increase or decrease the clip region */
+ if (box_scale > 100 || box_scale < 10) {
+ box_stride = -box_stride;
+ }
+
+ /* Move the graphics so the user can see it */
+ gfx_SwapDraw();
+ }
+ } while ((key = os_GetCSC()) != sk_Enter);
+
+ /* Usual cleanup */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json b/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json index 01e94ee..0ffc0f3 100644 --- a/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_floodfill/autotester.json @@ -1,36 +1,36 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|300", - "hash|1", - "key|enter", - "delay|300", - "hash|2", - "delay|300", - "key|enter", - "delay|300" - ], - "hashes": { - "1": { - "description": "A black star outline is drawn to the screen", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "7EA01B1B" ] - }, - "2": { - "description": "The rest of the screen will be filled a solid black", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "4CECC590" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hash|2",
+ "delay|300",
+ "key|enter",
+ "delay|300"
+ ],
+ "hashes": {
+ "1": {
+ "description": "A black star outline is drawn to the screen",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "7EA01B1B" ]
+ },
+ "2": {
+ "description": "The rest of the screen will be filled a solid black",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "4CECC590" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/makefile b/frontends/calculator/CEdev/examples/gfx_floodfill/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_floodfill/makefile +++ b/frontends/calculator/CEdev/examples/gfx_floodfill/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md b/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md index e94fd0d..c535cd2 100644 --- a/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_floodfill/readme.md @@ -1,10 +1,10 @@ -### GraphX Flood Fill Demo - -This example demonstrates using the flood fill algorithim implemented in GraphX - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Flood Fill Demo
+
+This example demonstrates using the flood fill algorithim implemented in GraphX
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c b/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c index 31a2090..a282527 100644 --- a/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_floodfill/src/main.c @@ -1,50 +1,50 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -void main(void) { - int pts[10], i; - - int rx = 100; - int ry = 100; - int cx = LCD_WIDTH / 2; - int cy = LCD_HEIGHT / 2; - - /* Build the coordinates of the polygon */ - double theta = -M_PI / 2; - double dtheta = 4 * M_PI / 5; - for (i = 0; i < 10; i += 2) { - pts[i+0] = (int)(cx + rx * cos(theta)), - pts[i+1] = (int)(cy + ry * sin(theta)); - theta += dtheta; - } - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette */ - gfx_SetColor(gfx_black); - - /* Draw a polygon on the buffer */ - gfx_Polygon(pts, 5); - - /* Pause */ - while (!os_GetCSC()); - - /* Flood fill the rest of the screen */ - gfx_FloodFill(0, 0, 0); - - /* Pause */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+void main(void) {
+ int pts[10], i;
+
+ int rx = 100;
+ int ry = 100;
+ int cx = LCD_WIDTH / 2;
+ int cy = LCD_HEIGHT / 2;
+
+ /* Build the coordinates of the polygon */
+ double theta = -M_PI / 2;
+ double dtheta = 4 * M_PI / 5;
+ for (i = 0; i < 10; i += 2) {
+ pts[i+0] = (int)(cx + rx * cos(theta)),
+ pts[i+1] = (int)(cy + ry * sin(theta));
+ theta += dtheta;
+ }
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetColor(gfx_black);
+
+ /* Draw a polygon on the buffer */
+ gfx_Polygon(pts, 5);
+
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Flood fill the rest of the screen */
+ gfx_FloodFill(0, 0, 0);
+
+ /* Pause */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json index 3b57eb8..3d681be 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/autotester.json @@ -1,31 +1,31 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp", - "src/gfx/var_gfx.8xv" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Fullscreen tiled image", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "2846A371" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp",
+ "src/gfx/var_gfx.8xv"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Fullscreen tiled image",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "2846A371" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md index c656e6d..8a20747 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/readme.md @@ -1,9 +1,9 @@ -### GraphX Fullscreen Image Demo - -An example of a compressed tiled image to construct a fullscreen image. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### GraphX Fullscreen Image Demo
+
+An example of a compressed tiled image to construct a fullscreen image.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini index 3c282fe..254b4e1 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/convpng.ini @@ -1,15 +1,15 @@ -// Appvar to place all graphics in - -#AppvarC : var_gfx -#OutputPalettes : tiles_gfx -#PNGImages : - tileset - -// The compressed group for the tileset - -#GroupC : tiles_gfx -#Tilemap : 80,80,true -#Compression : zx7 -#PNGImages : - tileset - +// Appvar to place all graphics in
+
+#AppvarC : var_gfx
+#OutputPalettes : tiles_gfx
+#PNGImages :
+ tileset
+
+// The compressed group for the tileset
+
+#GroupC : tiles_gfx
+#Tilemap : 80,80,true
+#Compression : zx7
+#PNGImages :
+ tileset
+
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c index 7243683..c1c9573 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.c @@ -1,4 +1,4 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h index 1ae708a..edc49ad 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tiles_gfx.h @@ -1,8 +1,8 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __tiles_gfx__ -#define __tiles_gfx__ -#include <stdint.h> - - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c index ff03cd2..e558c26 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/tileset.c @@ -1,18 +1,18 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - -uint8_t *tileset_tiles_compressed[12] = { - (uint8_t*)0, - (uint8_t*)3752, - (uint8_t*)7872, - (uint8_t*)12183, - (uint8_t*)15527, - (uint8_t*)20894, - (uint8_t*)25809, - (uint8_t*)30646, - (uint8_t*)35982, - (uint8_t*)41664, - (uint8_t*)46419, - (uint8_t*)50679, -}; +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t *tileset_tiles_compressed[12] = {
+ (uint8_t*)0,
+ (uint8_t*)3752,
+ (uint8_t*)7872,
+ (uint8_t*)12183,
+ (uint8_t*)15527,
+ (uint8_t*)20894,
+ (uint8_t*)25809,
+ (uint8_t*)30646,
+ (uint8_t*)35982,
+ (uint8_t*)41664,
+ (uint8_t*)46419,
+ (uint8_t*)50679,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c index 6de6afa..3f115b0 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.c @@ -1,31 +1,31 @@ -// convpng -#include <stdint.h> -#include "var_gfx.h" - -#include <fileioc.h> -uint8_t *var_gfx[2] = { - (uint8_t*)0, - (uint8_t*)55530, -}; - -bool var_gfx_init(void) { - unsigned int data, i; - ti_var_t appvar; - - ti_CloseAll(); - - appvar = ti_Open("var_gfx", "r"); - data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0]; - for (i = 0; i < var_gfx_num; i++) { - var_gfx[i] += data; - } - - ti_CloseAll(); - - data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_compressed[0]; - for (i = 0; i < tileset_tiles_num; i++) { - tileset_tiles_compressed[i] += data; - } - - return (bool)appvar; -} +// convpng
+#include <stdint.h>
+#include "var_gfx.h"
+
+#include <fileioc.h>
+uint8_t *var_gfx[2] = {
+ (uint8_t*)0,
+ (uint8_t*)55530,
+};
+
+bool var_gfx_init(void) {
+ unsigned int data, i;
+ ti_var_t appvar;
+
+ ti_CloseAll();
+
+ appvar = ti_Open("var_gfx", "r");
+ data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0];
+ for (i = 0; i < var_gfx_num; i++) {
+ var_gfx[i] += data;
+ }
+
+ ti_CloseAll();
+
+ data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_compressed[0];
+ for (i = 0; i < tileset_tiles_num; i++) {
+ tileset_tiles_compressed[i] += data;
+ }
+
+ return (bool)appvar;
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h index 23b61b1..c03c0ff 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/gfx/var_gfx.h @@ -1,31 +1,31 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __var_gfx__ -#define __var_gfx__ -#include <stdint.h> - -#include <stdbool.h> - -#define var_gfx_num 2 - -extern uint8_t *var_gfx[2]; -#define tileset_compressed ((gfx_sprite_t*)var_gfx[0]) -#define tileset_tiles_num 12 -extern uint8_t *tileset_tiles_compressed[12]; -#define tileset_tile_0_compressed ((gfx_sprite_t*)tileset_tiles_compressed[0]) -#define tileset_tile_1_compressed ((gfx_sprite_t*)tileset_tiles_compressed[1]) -#define tileset_tile_2_compressed ((gfx_sprite_t*)tileset_tiles_compressed[2]) -#define tileset_tile_3_compressed ((gfx_sprite_t*)tileset_tiles_compressed[3]) -#define tileset_tile_4_compressed ((gfx_sprite_t*)tileset_tiles_compressed[4]) -#define tileset_tile_5_compressed ((gfx_sprite_t*)tileset_tiles_compressed[5]) -#define tileset_tile_6_compressed ((gfx_sprite_t*)tileset_tiles_compressed[6]) -#define tileset_tile_7_compressed ((gfx_sprite_t*)tileset_tiles_compressed[7]) -#define tileset_tile_8_compressed ((gfx_sprite_t*)tileset_tiles_compressed[8]) -#define tileset_tile_9_compressed ((gfx_sprite_t*)tileset_tiles_compressed[9]) -#define tileset_tile_10_compressed ((gfx_sprite_t*)tileset_tiles_compressed[10]) -#define tileset_tile_11_compressed ((gfx_sprite_t*)tileset_tiles_compressed[11]) -#define sizeof_tiles_gfx_pal 512 -#define tiles_gfx_pal ((uint16_t*)var_gfx[1]) -bool var_gfx_init(void); - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __var_gfx__
+#define __var_gfx__
+#include <stdint.h>
+
+#include <stdbool.h>
+
+#define var_gfx_num 2
+
+extern uint8_t *var_gfx[2];
+#define tileset_compressed ((gfx_sprite_t*)var_gfx[0])
+#define tileset_tiles_num 12
+extern uint8_t *tileset_tiles_compressed[12];
+#define tileset_tile_0_compressed ((gfx_sprite_t*)tileset_tiles_compressed[0])
+#define tileset_tile_1_compressed ((gfx_sprite_t*)tileset_tiles_compressed[1])
+#define tileset_tile_2_compressed ((gfx_sprite_t*)tileset_tiles_compressed[2])
+#define tileset_tile_3_compressed ((gfx_sprite_t*)tileset_tiles_compressed[3])
+#define tileset_tile_4_compressed ((gfx_sprite_t*)tileset_tiles_compressed[4])
+#define tileset_tile_5_compressed ((gfx_sprite_t*)tileset_tiles_compressed[5])
+#define tileset_tile_6_compressed ((gfx_sprite_t*)tileset_tiles_compressed[6])
+#define tileset_tile_7_compressed ((gfx_sprite_t*)tileset_tiles_compressed[7])
+#define tileset_tile_8_compressed ((gfx_sprite_t*)tileset_tiles_compressed[8])
+#define tileset_tile_9_compressed ((gfx_sprite_t*)tileset_tiles_compressed[9])
+#define tileset_tile_10_compressed ((gfx_sprite_t*)tileset_tiles_compressed[10])
+#define tileset_tile_11_compressed ((gfx_sprite_t*)tileset_tiles_compressed[11])
+#define sizeof_tiles_gfx_pal 512
+#define tiles_gfx_pal ((uint16_t*)var_gfx[1])
+bool var_gfx_init(void);
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c index 1ed734b..2aba306 100644 --- a/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_fullscreen_tiled_image/src/main.c @@ -1,66 +1,66 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <compression.h> -#include <graphx.h> - -/* Include the graphics */ -#include "gfx/tiles_gfx.h" -#include "gfx/var_gfx.h" - -/* Include the external map data */ -extern uint8_t tilemap_map[]; - -#define TILE_WIDTH 80 -#define TILE_HEIGHT 80 - -void main(void) { - unsigned int i; - unsigned int x, y; - gfx_sprite_t *tile; - - tile = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT); - - /* Initialize the graphics */ - if (!var_gfx_init()) { - return; - } - - /* Start the graphics */ - gfx_Begin(); - x = y = i = 0; - - /* Draw offscreen */ - gfx_SetDrawBuffer(); - - /* Decompress the tiles */ - for (; i < tileset_tiles_num; i++) { - zx7_Decompress(tile, tileset_tiles_compressed[i]); - gfx_Sprite_NoClip(tile, x, y); - x += TILE_WIDTH; - if (x >= LCD_WIDTH) { - y += TILE_HEIGHT; - x = 0; - } - } - - /* Copy to visible screen */ - gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0); - gfx_BlitBuffer(); - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Close the graphics and return to the OS */ - gfx_End(); - - /* Free the earlier allocation */ - free(tile); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compression.h>
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+#include "gfx/var_gfx.h"
+
+/* Include the external map data */
+extern uint8_t tilemap_map[];
+
+#define TILE_WIDTH 80
+#define TILE_HEIGHT 80
+
+void main(void) {
+ unsigned int i;
+ unsigned int x, y;
+ gfx_sprite_t *tile;
+
+ tile = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT);
+
+ /* Initialize the graphics */
+ if (!var_gfx_init()) {
+ return;
+ }
+
+ /* Start the graphics */
+ gfx_Begin();
+ x = y = i = 0;
+
+ /* Draw offscreen */
+ gfx_SetDrawBuffer();
+
+ /* Decompress the tiles */
+ for (; i < tileset_tiles_num; i++) {
+ zx7_Decompress(tile, tileset_tiles_compressed[i]);
+ gfx_Sprite_NoClip(tile, x, y);
+ x += TILE_WIDTH;
+ if (x >= LCD_WIDTH) {
+ y += TILE_HEIGHT;
+ x = 0;
+ }
+ }
+
+ /* Copy to visible screen */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_BlitBuffer();
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Close the graphics and return to the OS */
+ gfx_End();
+
+ /* Free the earlier allocation */
+ free(tile);
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json b/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json index 2e8ca49..fd4b55e 100644 --- a/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_hello_world/autotester.json @@ -1,40 +1,40 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|300", - "hash|1", - "hash|2", - "key|enter", - "delay|300", - "hashWait|3" - ], - "hashes": { - "1": { - "description": "The background will be black (check a part before the text)", - "start": "vram_start", - "size": "0x4000", - "expected_CRCs": [ "94640B85" ] - }, - "2": { - "description": "The background will be black (check a part after the text)", - "start": "0xD4EC00", - "size": "0x4000", - "expected_CRCs": [ "94640B85" ] - }, - "3": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "hash|2",
+ "key|enter",
+ "delay|300",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The background will be black (check a part before the text)",
+ "start": "vram_start",
+ "size": "0x4000",
+ "expected_CRCs": [ "94640B85" ]
+ },
+ "2": {
+ "description": "The background will be black (check a part after the text)",
+ "start": "0xD4EC00",
+ "size": "0x4000",
+ "expected_CRCs": [ "94640B85" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/makefile b/frontends/calculator/CEdev/examples/gfx_hello_world/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_hello_world/makefile +++ b/frontends/calculator/CEdev/examples/gfx_hello_world/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md b/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md index 24fed5e..51ad44a 100644 --- a/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_hello_world/readme.md @@ -1,10 +1,10 @@ -### GraphX Hello World Demo - -This example of the graphics library demostrates filling the screen black and then printing `Hello World!` centered on the screen. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Hello World Demo
+
+This example of the graphics library demostrates filling the screen black and then printing `Hello World!` centered on the screen.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c b/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c index 852120e..3843dca 100644 --- a/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_hello_world/src/main.c @@ -1,46 +1,46 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -#define FONT_HEIGHT 8 - -/* Function prototypes */ -void print_string_centered(const char *str); - -void main(void) { - const char *msg = "Hello World!"; - - /* Seed the random numbers */ - srand(rtc_Time()); - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Fill the screen black */ - gfx_FillScreen(gfx_black); - - /* Set the random text color */ - gfx_SetTextFGColor(randInt(1, 255)); - - /* Print the message on the screen */ - print_string_centered(msg); - - /* Wait for a key to be pressed */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} - -/* Prints a screen centered string */ -void print_string_centered(const char *str) { - gfx_PrintStringXY(str, (LCD_WIDTH - gfx_GetStringWidth(str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+#define FONT_HEIGHT 8
+
+/* Function prototypes */
+void print_string_centered(const char *str);
+
+void main(void) {
+ const char *msg = "Hello World!";
+
+ /* Seed the random numbers */
+ srand(rtc_Time());
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Fill the screen black */
+ gfx_FillScreen(gfx_black);
+
+ /* Set the random text color */
+ gfx_SetTextFGColor(randInt(1, 255));
+
+ /* Print the message on the screen */
+ print_string_centered(msg);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
+
+/* Prints a screen centered string */
+void print_string_centered(const char *str) {
+ gfx_PrintStringXY(str, (LCD_WIDTH - gfx_GetStringWidth(str)) / 2, (LCD_HEIGHT - FONT_HEIGHT) / 2);
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json b/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json index 772c268..f1a5915 100644 --- a/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_light_dark/autotester.json @@ -1,63 +1,63 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", "delay|300", "hash|rectangles", "hash|palette_0", - "key|enter", "delay|1000", "hash|palette_25", - "key|enter", "delay|1000", "hash|palette_50", - "key|enter", "delay|1000", "hash|palette_75", - "key|enter", "delay|1000", "hash|palette_100", - "key|enter", "delay|300", "hash|after_exit" - ], - "hashes": { - "rectangles": { - "description": "Test rectangles", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "328D511E" ] - }, - "palette_0": { - "description": "Test lighten/darken fade, 0% progress", - "start": "lcdPalette", - "size": "8", - "expected_CRCs": [ "41C3BFF8" ] - }, - "palette_25": { - "description": "Test lighten/darken fade, 25% progress", - "start": "lcdPalette", - "size": "8", - "expected_CRCs": [ "5F64F889" ] - }, - "palette_50": { - "description": "Test lighten/darken fade, 50% progress", - "start": "lcdPalette", - "size": "8", - "expected_CRCs": [ "C48CEF7C" ] - }, - "palette_75": { - "description": "Test lighten/darken fade, 75% progress", - "start": "lcdPalette", - "size": "8", - "expected_CRCs": [ "81FEDD4E" ] - }, - "palette_100": { - "description": "Test lighten/darken fade, 100% progress", - "start": "lcdPalette", - "size": "8", - "expected_CRCs": [ "B451E096" ] - }, - "after_exit": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch", "delay|300", "hash|rectangles", "hash|palette_0",
+ "key|enter", "delay|1000", "hash|palette_25",
+ "key|enter", "delay|1000", "hash|palette_50",
+ "key|enter", "delay|1000", "hash|palette_75",
+ "key|enter", "delay|1000", "hash|palette_100",
+ "key|enter", "delay|300", "hash|after_exit"
+ ],
+ "hashes": {
+ "rectangles": {
+ "description": "Test rectangles",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "328D511E" ]
+ },
+ "palette_0": {
+ "description": "Test lighten/darken fade, 0% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "41C3BFF8" ]
+ },
+ "palette_25": {
+ "description": "Test lighten/darken fade, 25% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "5F64F889" ]
+ },
+ "palette_50": {
+ "description": "Test lighten/darken fade, 50% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "C48CEF7C" ]
+ },
+ "palette_75": {
+ "description": "Test lighten/darken fade, 75% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "81FEDD4E" ]
+ },
+ "palette_100": {
+ "description": "Test lighten/darken fade, 100% progress",
+ "start": "lcdPalette",
+ "size": "8",
+ "expected_CRCs": [ "B451E096" ]
+ },
+ "after_exit": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/makefile b/frontends/calculator/CEdev/examples/gfx_light_dark/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_light_dark/makefile +++ b/frontends/calculator/CEdev/examples/gfx_light_dark/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md b/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md index e429c6c..238c3e3 100644 --- a/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_light_dark/readme.md @@ -1,10 +1,10 @@ -### GraphX Lighten and Darken Demo - -Demonstrates rectangle drawing and using gfx_Darken and gfx_Lighten to modify colors in the palette to implement fade effects. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Lighten and Darken Demo
+
+Demonstrates rectangle drawing and using gfx_Darken and gfx_Lighten to modify colors in the palette to implement fade effects.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c b/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c index d4c0a06..4f2e4d1 100644 --- a/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_light_dark/src/main.c @@ -1,59 +1,59 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -#define color gfx_RGBTo1555(34, 55, 89) - -void main(void) { - uint8_t i = 0; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* For i in 0..255 */ - do { - - /* Fade out to black */ - gfx_palette[0] = gfx_Darken(color, i); - /* Fade in from black */ - gfx_palette[1] = gfx_Darken(color, ~i); - /* Fade in from white */ - gfx_palette[3] = gfx_Lighten(color, ~i); - /* Fade out to white */ - gfx_palette[2] = gfx_Lighten(color, i); - - /* Fade out to black */ - gfx_SetColor(0); - gfx_FillRectangle_NoClip(0, 0, 160, 120); - /* Fade in from black */ - gfx_SetColor(1); - gfx_FillRectangle_NoClip(160, 0, 160, 120); - /* Fade in from white */ - gfx_SetColor(2); - gfx_FillRectangle_NoClip(0, 120, 160, 120); - /* Fade out to white */ - gfx_SetColor(3); - gfx_FillRectangle_NoClip(160, 120, 160, 120); - - /* Wait for a keypress at the start of each quarter of the fade */ - if (!(i & 0x3f)) { - while (!os_GetCSC()); - } - - /* Loop until i is 0 again because of 8 bit range */ - } while (++i); - - /* Wait for a keypress */ - while (!os_GetCSC()); - - /* Usual cleanup */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+#define color gfx_RGBTo1555(34, 55, 89)
+
+void main(void) {
+ uint8_t i = 0;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* For i in 0..255 */
+ do {
+
+ /* Fade out to black */
+ gfx_palette[0] = gfx_Darken(color, i);
+ /* Fade in from black */
+ gfx_palette[1] = gfx_Darken(color, ~i);
+ /* Fade in from white */
+ gfx_palette[3] = gfx_Lighten(color, ~i);
+ /* Fade out to white */
+ gfx_palette[2] = gfx_Lighten(color, i);
+
+ /* Fade out to black */
+ gfx_SetColor(0);
+ gfx_FillRectangle_NoClip(0, 0, 160, 120);
+ /* Fade in from black */
+ gfx_SetColor(1);
+ gfx_FillRectangle_NoClip(160, 0, 160, 120);
+ /* Fade in from white */
+ gfx_SetColor(2);
+ gfx_FillRectangle_NoClip(0, 120, 160, 120);
+ /* Fade out to white */
+ gfx_SetColor(3);
+ gfx_FillRectangle_NoClip(160, 120, 160, 120);
+
+ /* Wait for a keypress at the start of each quarter of the fade */
+ if (!(i & 0x3f)) {
+ while (!os_GetCSC());
+ }
+
+ /* Loop until i is 0 again because of 8 bit range */
+ } while (++i);
+
+ /* Wait for a keypress */
+ while (!os_GetCSC());
+
+ /* Usual cleanup */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json b/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json index 8093b64..e35c63f 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/autotester.json @@ -1,30 +1,30 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Make sure the sprites are displayed properly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "4F8D6CB" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "4F8D6CB" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile b/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md b/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md index b0c8df7..c919f67 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/readme.md @@ -1,10 +1,10 @@ -### GraphX RLETSprite Demo - -Draws a sprite with RLE transparency in many clipping scenarios and converts to -and from a normal sprite with transparency. Created for testing. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### GraphX RLETSprite Demo
+
+Draws a sprite with RLE transparency in many clipping scenarios and converts to
+and from a normal sprite with transparency. Created for testing.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini index bac699c..369e17a 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/convpng.ini @@ -1,5 +1,5 @@ -#GroupC : logo_gfx -#Style : rlet -#TransparentColor : 255,255,255 -#PNGImages : - ubuntu +#GroupC : logo_gfx
+#Style : rlet
+#TransparentColor : 255,255,255
+#PNGImages :
+ ubuntu
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c index 894a456..1fbc912 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.c @@ -1,203 +1,203 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -uint16_t logo_gfx_pal[197] = { - 0xFFFF, // 00 :: rgb(255,255,255) - 0x7C00, // 01 :: rgb(255,0,0) - 0x6800, // 02 :: rgb(212,2,2) - 0xE821, // 03 :: rgb(213,11,11) - 0xFFE0, // 04 :: rgb(255,255,0) - 0x83E0, // 05 :: rgb(0,255,0) - 0x001F, // 06 :: rgb(0,0,255) - 0x7E20, // 07 :: rgb(251,139,0) - 0x7920, // 08 :: rgb(244,72,0) - 0xFFFF, // 09 :: rgb(255,254,254) - 0x7E20, // 10 :: rgb(251,139,2) - 0x7E20, // 11 :: rgb(251,139,1) - 0xFFFF, // 12 :: rgb(255,253,253) - 0xFE20, // 13 :: rgb(251,140,4) - 0xFFFF, // 14 :: rgb(255,254,253) - 0xFECC, // 15 :: rgb(252,182,97) - 0x7A90, // 16 :: rgb(249,163,128) - 0x7FDC, // 17 :: rgb(254,244,231) - 0xF985, // 18 :: rgb(245,100,40) - 0x7F9A, // 19 :: rgb(253,225,213) - 0x7FDD, // 20 :: rgb(253,242,242) - 0x6D6B, // 21 :: rgb(226,90,90) - 0xFFBC, // 22 :: rgb(254,239,233) - 0xF921, // 23 :: rgb(244,77,7) - 0x7EED, // 24 :: rgb(252,187,107) - 0xFF99, // 25 :: rgb(254,231,203) - 0xFFFE, // 26 :: rgb(255,253,250) - 0xFF16, // 27 :: rgb(251,199,177) - 0xF921, // 28 :: rgb(244,78,8) - 0x7F31, // 29 :: rgb(253,204,143) - 0x7FDD, // 30 :: rgb(252,241,241) - 0xF18C, // 31 :: rgb(229,102,102) - 0x7B5A, // 32 :: rgb(247,212,212) - 0xFF76, // 33 :: rgb(253,221,181) - 0xF652, // 34 :: rgb(237,151,151) - 0x7652, // 35 :: rgb(236,145,145) - 0xE800, // 36 :: rgb(212,3,3) - 0x718C, // 37 :: rgb(228,98,98) - 0xFF54, // 38 :: rgb(253,214,165) - 0x7673, // 39 :: rgb(237,153,153) - 0xFF32, // 40 :: rgb(252,205,148) - 0x7EA8, // 41 :: rgb(251,169,68) - 0x6CC6, // 42 :: rgb(219,48,48) - 0x7FBA, // 43 :: rgb(254,234,211) - 0xE842, // 44 :: rgb(215,20,20) - 0xFB7B, // 45 :: rgb(250,224,224) - 0xFF77, // 46 :: rgb(253,224,187) - 0xF652, // 47 :: rgb(237,149,149) - 0x7F75, // 48 :: rgb(253,218,175) - 0x7FFE, // 49 :: rgb(254,249,249) - 0x7EEC, // 50 :: rgb(252,185,102) - 0x7FBD, // 51 :: rgb(252,236,236) - 0xFFFF, // 52 :: rgb(255,253,251) - 0x7EED, // 53 :: rgb(252,188,109) - 0x7FFF, // 54 :: rgb(254,252,252) - 0xFAF7, // 55 :: rgb(243,189,189) - 0x7B9B, // 56 :: rgb(250,225,225) - 0xFE87, // 57 :: rgb(251,164,56) - 0x7AD2, // 58 :: rgb(250,179,149) - 0xED09, // 59 :: rgb(224,70,70) - 0xECA5, // 60 :: rgb(218,43,43) - 0xFAF4, // 61 :: rgb(250,190,165) - 0x6D29, // 62 :: rgb(224,74,74) - 0x6D4A, // 63 :: rgb(225,82,82) - 0xED08, // 64 :: rgb(223,69,69) - 0x6D08, // 65 :: rgb(222,63,63) - 0x76D6, // 66 :: rgb(242,178,178) - 0xECC6, // 67 :: rgb(220,51,51) - 0xF1AD, // 68 :: rgb(229,109,109) - 0xFFDD, // 69 :: rgb(254,246,235) - 0x718C, // 70 :: rgb(228,97,97) - 0xFFBC, // 71 :: rgb(254,239,234) - 0xFF77, // 72 :: rgb(253,223,187) - 0x76D6, // 73 :: rgb(242,179,179) - 0x6863, // 74 :: rgb(216,26,26) - 0x7AB1, // 75 :: rgb(249,169,136) - 0xE843, // 76 :: rgb(215,21,21) - 0xFF9C, // 77 :: rgb(251,230,230) - 0xF9A6, // 78 :: rgb(245,108,51) - 0x7F97, // 79 :: rgb(253,225,189) - 0x7942, // 80 :: rgb(244,81,13) - 0x7FBA, // 81 :: rgb(254,236,215) - 0xFE21, // 82 :: rgb(251,143,11) - 0x7FBC, // 83 :: rgb(251,234,234) - 0xFB18, // 84 :: rgb(245,197,197) - 0x76D6, // 85 :: rgb(242,177,177) - 0x71AD, // 86 :: rgb(229,106,106) - 0xFAB2, // 87 :: rgb(249,176,144) - 0x7F9A, // 88 :: rgb(253,227,217) - 0x7FDD, // 89 :: rgb(254,242,237) - 0x7FDE, // 90 :: rgb(253,243,243) - 0x7AB1, // 91 :: rgb(249,171,139) - 0xFFBB, // 92 :: rgb(254,239,221) - 0xF694, // 93 :: rgb(240,167,167) - 0xFE87, // 94 :: rgb(251,167,61) - 0xFF7A, // 95 :: rgb(253,224,213) - 0x7F0E, // 96 :: rgb(253,193,117) - 0xFA6F, // 97 :: rgb(249,159,121) - 0x7FFE, // 98 :: rgb(255,251,247) - 0xFEAA, // 99 :: rgb(251,175,80) - 0x7694, // 100 :: rgb(239,161,161) - 0x7AF3, // 101 :: rgb(250,186,160) - 0xE801, // 102 :: rgb(213,5,5) - 0xFA6F, // 103 :: rgb(249,159,122) - 0x7FDB, // 104 :: rgb(254,241,224) - 0xF920, // 105 :: rgb(244,75,4) - 0x7A8F, // 106 :: rgb(249,160,123) - 0x7694, // 107 :: rgb(239,163,163) - 0x7B7B, // 108 :: rgb(249,220,220) - 0xE822, // 109 :: rgb(214,14,14) - 0x6D29, // 110 :: rgb(223,71,71) - 0xFAF7, // 111 :: rgb(244,192,192) - 0xFF55, // 112 :: rgb(253,215,169) - 0x7A8F, // 113 :: rgb(249,161,124) - 0xFF32, // 114 :: rgb(253,207,151) - 0x7FBB, // 115 :: rgb(253,233,224) - 0xF694, // 116 :: rgb(239,165,165) - 0xFFBC, // 117 :: rgb(254,238,231) - 0xFB39, // 118 :: rgb(247,208,208) - 0x7B38, // 119 :: rgb(246,201,201) - 0x6842, // 120 :: rgb(214,16,16) - 0x7FFF, // 121 :: rgb(254,251,251) - 0xFB7B, // 122 :: rgb(250,223,223) - 0xF16C, // 123 :: rgb(227,95,95) - 0x7672, // 124 :: rgb(237,152,152) - 0x7631, // 125 :: rgb(235,138,138) - 0xFE87, // 126 :: rgb(251,165,60) - 0xFFDD, // 127 :: rgb(254,245,240) - 0xFF33, // 128 :: rgb(252,208,154) - 0x7F79, // 129 :: rgb(252,220,207) - 0x7E41, // 130 :: rgb(251,144,12) - 0x7E42, // 131 :: rgb(251,146,19) - 0x7F36, // 132 :: rgb(251,202,182) - 0x7FDC, // 133 :: rgb(254,243,230) - 0x7963, // 134 :: rgb(244,89,24) - 0x7F0E, // 135 :: rgb(252,193,119) - 0xFE87, // 136 :: rgb(251,164,57) - 0x7A2B, // 137 :: rgb(247,138,92) - 0xFA6E, // 138 :: rgb(249,157,119) - 0xFF9B, // 139 :: rgb(253,229,219) - 0x7920, // 140 :: rgb(244,74,3) - 0xFFDE, // 141 :: rgb(254,246,243) - 0xF964, // 142 :: rgb(245,95,32) - 0xF921, // 143 :: rgb(244,76,6) - 0xFAD3, // 144 :: rgb(250,183,155) - 0xFFBA, // 145 :: rgb(254,237,216) - 0xFAD3, // 146 :: rgb(250,182,154) - 0xF985, // 147 :: rgb(245,103,44) - 0x7FFE, // 148 :: rgb(255,252,250) - 0x7FFE, // 149 :: rgb(255,251,250) - 0x6800, // 150 :: rgb(212,1,1) - 0x7B18, // 151 :: rgb(245,195,195) - 0x7AD2, // 152 :: rgb(250,178,148) - 0x7ECB, // 153 :: rgb(251,179,87) - 0x7EA8, // 154 :: rgb(251,169,69) - 0xFEAA, // 155 :: rgb(251,176,82) - 0x7652, // 156 :: rgb(236,146,146) - 0xF942, // 157 :: rgb(244,83,16) - 0xF9E9, // 158 :: rgb(246,126,76) - 0xFFDD, // 159 :: rgb(254,246,242) - 0x71EF, // 160 :: rgb(231,120,120) - 0xFB39, // 161 :: rgb(247,206,206) - 0xFF37, // 162 :: rgb(252,208,190) - 0x6D08, // 163 :: rgb(222,65,65) - 0x7FDE, // 164 :: rgb(253,244,244) - 0x7A4D, // 165 :: rgb(248,147,106) - 0xFB5A, // 166 :: rgb(248,216,216) - 0x7F79, // 167 :: rgb(253,220,206) - 0xFAD3, // 168 :: rgb(250,181,153) - 0x7F15, // 169 :: rgb(251,196,173) - 0x7F31, // 170 :: rgb(252,201,137) - 0xF9C8, // 171 :: rgb(246,116,62) - 0xFAB2, // 172 :: rgb(250,176,145) - 0xFF10, // 173 :: rgb(252,198,131) - 0x7A6E, // 174 :: rgb(248,155,117) - 0xFF9B, // 175 :: rgb(253,232,224) - 0xFFBB, // 176 :: rgb(254,240,221) - 0x7920, // 177 :: rgb(244,74,2) - 0x7FDC, // 178 :: rgb(254,243,229) - 0xFE21, // 179 :: rgb(251,141,6) - 0x7F53, // 180 :: rgb(253,210,155) - 0xF9E9, // 181 :: rgb(247,127,77) - 0xFF58, // 182 :: rgb(252,213,197) - 0xFE87, // 183 :: rgb(251,164,58) - 0xFF54, // 184 :: rgb(253,213,164) - 0xFEA9, // 185 :: rgb(251,174,78) - 0xFE21, // 186 :: rgb(251,143,10) - 0x79E8, // 187 :: rgb(246,120,67) - 0x7E87, // 188 :: rgb(251,163,54) - 0xFFDD, // 189 :: rgb(254,248,240) - 0x7F57, // 190 :: rgb(252,210,193) - 0xFF76, // 191 :: rgb(253,222,183) - 0xC3E0, // 192 :: rgb(128,255,0) - 0x0210, // 193 :: rgb(0,128,128) - 0x7E00, // 194 :: rgb(255,128,0) - 0x4030, // 195 :: rgb(128,8,128) - 0x6800, // 196 :: rgb(212,0,0) +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[197] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x7C00, // 01 :: rgb(255,0,0)
+ 0x6800, // 02 :: rgb(212,2,2)
+ 0xE821, // 03 :: rgb(213,11,11)
+ 0xFFE0, // 04 :: rgb(255,255,0)
+ 0x83E0, // 05 :: rgb(0,255,0)
+ 0x001F, // 06 :: rgb(0,0,255)
+ 0x7E20, // 07 :: rgb(251,139,0)
+ 0x7920, // 08 :: rgb(244,72,0)
+ 0xFFFF, // 09 :: rgb(255,254,254)
+ 0x7E20, // 10 :: rgb(251,139,2)
+ 0x7E20, // 11 :: rgb(251,139,1)
+ 0xFFFF, // 12 :: rgb(255,253,253)
+ 0xFE20, // 13 :: rgb(251,140,4)
+ 0xFFFF, // 14 :: rgb(255,254,253)
+ 0xFECC, // 15 :: rgb(252,182,97)
+ 0x7A90, // 16 :: rgb(249,163,128)
+ 0x7FDC, // 17 :: rgb(254,244,231)
+ 0xF985, // 18 :: rgb(245,100,40)
+ 0x7F9A, // 19 :: rgb(253,225,213)
+ 0x7FDD, // 20 :: rgb(253,242,242)
+ 0x6D6B, // 21 :: rgb(226,90,90)
+ 0xFFBC, // 22 :: rgb(254,239,233)
+ 0xF921, // 23 :: rgb(244,77,7)
+ 0x7EED, // 24 :: rgb(252,187,107)
+ 0xFF99, // 25 :: rgb(254,231,203)
+ 0xFFFE, // 26 :: rgb(255,253,250)
+ 0xFF16, // 27 :: rgb(251,199,177)
+ 0xF921, // 28 :: rgb(244,78,8)
+ 0x7F31, // 29 :: rgb(253,204,143)
+ 0x7FDD, // 30 :: rgb(252,241,241)
+ 0xF18C, // 31 :: rgb(229,102,102)
+ 0x7B5A, // 32 :: rgb(247,212,212)
+ 0xFF76, // 33 :: rgb(253,221,181)
+ 0xF652, // 34 :: rgb(237,151,151)
+ 0x7652, // 35 :: rgb(236,145,145)
+ 0xE800, // 36 :: rgb(212,3,3)
+ 0x718C, // 37 :: rgb(228,98,98)
+ 0xFF54, // 38 :: rgb(253,214,165)
+ 0x7673, // 39 :: rgb(237,153,153)
+ 0xFF32, // 40 :: rgb(252,205,148)
+ 0x7EA8, // 41 :: rgb(251,169,68)
+ 0x6CC6, // 42 :: rgb(219,48,48)
+ 0x7FBA, // 43 :: rgb(254,234,211)
+ 0xE842, // 44 :: rgb(215,20,20)
+ 0xFB7B, // 45 :: rgb(250,224,224)
+ 0xFF77, // 46 :: rgb(253,224,187)
+ 0xF652, // 47 :: rgb(237,149,149)
+ 0x7F75, // 48 :: rgb(253,218,175)
+ 0x7FFE, // 49 :: rgb(254,249,249)
+ 0x7EEC, // 50 :: rgb(252,185,102)
+ 0x7FBD, // 51 :: rgb(252,236,236)
+ 0xFFFF, // 52 :: rgb(255,253,251)
+ 0x7EED, // 53 :: rgb(252,188,109)
+ 0x7FFF, // 54 :: rgb(254,252,252)
+ 0xFAF7, // 55 :: rgb(243,189,189)
+ 0x7B9B, // 56 :: rgb(250,225,225)
+ 0xFE87, // 57 :: rgb(251,164,56)
+ 0x7AD2, // 58 :: rgb(250,179,149)
+ 0xED09, // 59 :: rgb(224,70,70)
+ 0xECA5, // 60 :: rgb(218,43,43)
+ 0xFAF4, // 61 :: rgb(250,190,165)
+ 0x6D29, // 62 :: rgb(224,74,74)
+ 0x6D4A, // 63 :: rgb(225,82,82)
+ 0xED08, // 64 :: rgb(223,69,69)
+ 0x6D08, // 65 :: rgb(222,63,63)
+ 0x76D6, // 66 :: rgb(242,178,178)
+ 0xECC6, // 67 :: rgb(220,51,51)
+ 0xF1AD, // 68 :: rgb(229,109,109)
+ 0xFFDD, // 69 :: rgb(254,246,235)
+ 0x718C, // 70 :: rgb(228,97,97)
+ 0xFFBC, // 71 :: rgb(254,239,234)
+ 0xFF77, // 72 :: rgb(253,223,187)
+ 0x76D6, // 73 :: rgb(242,179,179)
+ 0x6863, // 74 :: rgb(216,26,26)
+ 0x7AB1, // 75 :: rgb(249,169,136)
+ 0xE843, // 76 :: rgb(215,21,21)
+ 0xFF9C, // 77 :: rgb(251,230,230)
+ 0xF9A6, // 78 :: rgb(245,108,51)
+ 0x7F97, // 79 :: rgb(253,225,189)
+ 0x7942, // 80 :: rgb(244,81,13)
+ 0x7FBA, // 81 :: rgb(254,236,215)
+ 0xFE21, // 82 :: rgb(251,143,11)
+ 0x7FBC, // 83 :: rgb(251,234,234)
+ 0xFB18, // 84 :: rgb(245,197,197)
+ 0x76D6, // 85 :: rgb(242,177,177)
+ 0x71AD, // 86 :: rgb(229,106,106)
+ 0xFAB2, // 87 :: rgb(249,176,144)
+ 0x7F9A, // 88 :: rgb(253,227,217)
+ 0x7FDD, // 89 :: rgb(254,242,237)
+ 0x7FDE, // 90 :: rgb(253,243,243)
+ 0x7AB1, // 91 :: rgb(249,171,139)
+ 0xFFBB, // 92 :: rgb(254,239,221)
+ 0xF694, // 93 :: rgb(240,167,167)
+ 0xFE87, // 94 :: rgb(251,167,61)
+ 0xFF7A, // 95 :: rgb(253,224,213)
+ 0x7F0E, // 96 :: rgb(253,193,117)
+ 0xFA6F, // 97 :: rgb(249,159,121)
+ 0x7FFE, // 98 :: rgb(255,251,247)
+ 0xFEAA, // 99 :: rgb(251,175,80)
+ 0x7694, // 100 :: rgb(239,161,161)
+ 0x7AF3, // 101 :: rgb(250,186,160)
+ 0xE801, // 102 :: rgb(213,5,5)
+ 0xFA6F, // 103 :: rgb(249,159,122)
+ 0x7FDB, // 104 :: rgb(254,241,224)
+ 0xF920, // 105 :: rgb(244,75,4)
+ 0x7A8F, // 106 :: rgb(249,160,123)
+ 0x7694, // 107 :: rgb(239,163,163)
+ 0x7B7B, // 108 :: rgb(249,220,220)
+ 0xE822, // 109 :: rgb(214,14,14)
+ 0x6D29, // 110 :: rgb(223,71,71)
+ 0xFAF7, // 111 :: rgb(244,192,192)
+ 0xFF55, // 112 :: rgb(253,215,169)
+ 0x7A8F, // 113 :: rgb(249,161,124)
+ 0xFF32, // 114 :: rgb(253,207,151)
+ 0x7FBB, // 115 :: rgb(253,233,224)
+ 0xF694, // 116 :: rgb(239,165,165)
+ 0xFFBC, // 117 :: rgb(254,238,231)
+ 0xFB39, // 118 :: rgb(247,208,208)
+ 0x7B38, // 119 :: rgb(246,201,201)
+ 0x6842, // 120 :: rgb(214,16,16)
+ 0x7FFF, // 121 :: rgb(254,251,251)
+ 0xFB7B, // 122 :: rgb(250,223,223)
+ 0xF16C, // 123 :: rgb(227,95,95)
+ 0x7672, // 124 :: rgb(237,152,152)
+ 0x7631, // 125 :: rgb(235,138,138)
+ 0xFE87, // 126 :: rgb(251,165,60)
+ 0xFFDD, // 127 :: rgb(254,245,240)
+ 0xFF33, // 128 :: rgb(252,208,154)
+ 0x7F79, // 129 :: rgb(252,220,207)
+ 0x7E41, // 130 :: rgb(251,144,12)
+ 0x7E42, // 131 :: rgb(251,146,19)
+ 0x7F36, // 132 :: rgb(251,202,182)
+ 0x7FDC, // 133 :: rgb(254,243,230)
+ 0x7963, // 134 :: rgb(244,89,24)
+ 0x7F0E, // 135 :: rgb(252,193,119)
+ 0xFE87, // 136 :: rgb(251,164,57)
+ 0x7A2B, // 137 :: rgb(247,138,92)
+ 0xFA6E, // 138 :: rgb(249,157,119)
+ 0xFF9B, // 139 :: rgb(253,229,219)
+ 0x7920, // 140 :: rgb(244,74,3)
+ 0xFFDE, // 141 :: rgb(254,246,243)
+ 0xF964, // 142 :: rgb(245,95,32)
+ 0xF921, // 143 :: rgb(244,76,6)
+ 0xFAD3, // 144 :: rgb(250,183,155)
+ 0xFFBA, // 145 :: rgb(254,237,216)
+ 0xFAD3, // 146 :: rgb(250,182,154)
+ 0xF985, // 147 :: rgb(245,103,44)
+ 0x7FFE, // 148 :: rgb(255,252,250)
+ 0x7FFE, // 149 :: rgb(255,251,250)
+ 0x6800, // 150 :: rgb(212,1,1)
+ 0x7B18, // 151 :: rgb(245,195,195)
+ 0x7AD2, // 152 :: rgb(250,178,148)
+ 0x7ECB, // 153 :: rgb(251,179,87)
+ 0x7EA8, // 154 :: rgb(251,169,69)
+ 0xFEAA, // 155 :: rgb(251,176,82)
+ 0x7652, // 156 :: rgb(236,146,146)
+ 0xF942, // 157 :: rgb(244,83,16)
+ 0xF9E9, // 158 :: rgb(246,126,76)
+ 0xFFDD, // 159 :: rgb(254,246,242)
+ 0x71EF, // 160 :: rgb(231,120,120)
+ 0xFB39, // 161 :: rgb(247,206,206)
+ 0xFF37, // 162 :: rgb(252,208,190)
+ 0x6D08, // 163 :: rgb(222,65,65)
+ 0x7FDE, // 164 :: rgb(253,244,244)
+ 0x7A4D, // 165 :: rgb(248,147,106)
+ 0xFB5A, // 166 :: rgb(248,216,216)
+ 0x7F79, // 167 :: rgb(253,220,206)
+ 0xFAD3, // 168 :: rgb(250,181,153)
+ 0x7F15, // 169 :: rgb(251,196,173)
+ 0x7F31, // 170 :: rgb(252,201,137)
+ 0xF9C8, // 171 :: rgb(246,116,62)
+ 0xFAB2, // 172 :: rgb(250,176,145)
+ 0xFF10, // 173 :: rgb(252,198,131)
+ 0x7A6E, // 174 :: rgb(248,155,117)
+ 0xFF9B, // 175 :: rgb(253,232,224)
+ 0xFFBB, // 176 :: rgb(254,240,221)
+ 0x7920, // 177 :: rgb(244,74,2)
+ 0x7FDC, // 178 :: rgb(254,243,229)
+ 0xFE21, // 179 :: rgb(251,141,6)
+ 0x7F53, // 180 :: rgb(253,210,155)
+ 0xF9E9, // 181 :: rgb(247,127,77)
+ 0xFF58, // 182 :: rgb(252,213,197)
+ 0xFE87, // 183 :: rgb(251,164,58)
+ 0xFF54, // 184 :: rgb(253,213,164)
+ 0xFEA9, // 185 :: rgb(251,174,78)
+ 0xFE21, // 186 :: rgb(251,143,10)
+ 0x79E8, // 187 :: rgb(246,120,67)
+ 0x7E87, // 188 :: rgb(251,163,54)
+ 0xFFDD, // 189 :: rgb(254,248,240)
+ 0x7F57, // 190 :: rgb(252,210,193)
+ 0xFF76, // 191 :: rgb(253,222,183)
+ 0xC3E0, // 192 :: rgb(128,255,0)
+ 0x0210, // 193 :: rgb(0,128,128)
+ 0x7E00, // 194 :: rgb(255,128,0)
+ 0x4030, // 195 :: rgb(128,8,128)
+ 0x6800, // 196 :: rgb(212,0,0)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h index 96abca5..d444966 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/logo_gfx.h @@ -1,17 +1,17 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __logo_gfx__ -#define __logo_gfx__ -#include <stdint.h> - -#define logo_gfx_transparent_color_index 0 - -#define ubuntu_width 31 -#define ubuntu_height 30 -#define ubuntu_size 545 -extern uint8_t ubuntu_data[545]; -#define ubuntu ((gfx_rletsprite_t*)ubuntu_data) -#define sizeof_logo_gfx_pal 394 -extern uint16_t logo_gfx_pal[197]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define logo_gfx_transparent_color_index 0
+
+#define ubuntu_width 31
+#define ubuntu_height 30
+#define ubuntu_size 545
+extern uint8_t ubuntu_data[545];
+#define ubuntu ((gfx_rletsprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 394
+extern uint16_t logo_gfx_pal[197];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c index eed6d7a..18514e9 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/gfx/ubuntu.c @@ -1,25 +1,25 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -// 8 bpp image -uint8_t ubuntu_data[545] = { - 31,30, // width,height - 0x00,0x04,0xC0,0x04,0x04,0x04,0x17,0x04,0x04,0x04,0x04,0xC2,0x00,0x01,0x05,0x14,0x04,0x0C,0x42,0x23,0x6C,0x05,0x01,0x01,0x00,0x01,0x05,0x13,0x06,0x09,0x15,0xC4, - 0xC4,0x03,0x6F,0x04,0x01,0x01,0x00,0x01,0x05,0x0C,0x0D,0x09,0x58,0x3D,0x4B,0x10,0x90,0x16,0xA6,0xC4,0xC4,0xC4,0xC4,0x3E,0x04,0x01,0x01,0x0C,0x0E,0x84,0x12,0x08, - 0x08,0x08,0x08,0x08,0xA9,0xA1,0xC4,0xC4,0xC4,0xC4,0x40,0x05,0x0A,0x01,0x85,0x01,0x0E,0x8B,0x17,0x08,0x08,0x08,0x08,0x08,0xA5,0x09,0xA3,0xC4,0xC4,0x96,0x55,0x05, - 0x09,0x03,0x80,0x83,0x11,0x01,0x0C,0x8A,0x08,0x08,0x08,0x08,0x08,0x17,0xA7,0xA4,0x9C,0xA0,0x97,0x06,0x08,0x04,0x70,0x0B,0x07,0x0F,0x01,0x0E,0x7F,0x86,0x69,0x8E, - 0x93,0x1C,0x08,0x9D,0xA8,0x9F,0x95,0x13,0x5B,0x09,0x04,0x07,0x06,0x5C,0x52,0x07,0x07,0x0A,0x19,0x01,0x02,0x5F,0x59,0x02,0x09,0x94,0xA2,0x9E,0x08,0x08,0x8F,0x08, - 0x08,0x3A,0x04,0x07,0x06,0x9B,0x07,0x07,0x07,0x07,0x87,0x07,0x08,0x09,0x92,0x8C,0x08,0x08,0x08,0x50,0x47,0x03,0x06,0x07,0xB0,0x0B,0x07,0x07,0x07,0x7E,0x1A,0x09, - 0x06,0x57,0x08,0x08,0x08,0x08,0x10,0x03,0x06,0x06,0xB8,0x07,0x07,0x07,0x0A,0x51,0x0A,0x07,0x09,0x4E,0x08,0x08,0x08,0x12,0x09,0x02,0x02,0x04,0x8D,0xAC,0xAE,0xBE, - 0x01,0x04,0x18,0x07,0x07,0x9A,0x0C,0x06,0x65,0x08,0x08,0x08,0x08,0x16,0x02,0x01,0x0A,0x0E,0xAB,0x08,0x08,0xB1,0x1B,0xBD,0xBA,0x07,0xAD,0x0C,0x06,0x75,0x71,0x6A, - 0x67,0x61,0x73,0x02,0x01,0x06,0x81,0x08,0x08,0x08,0x08,0xBB,0x01,0x03,0xB7,0x07,0xB4,0x14,0x01,0x06,0x13,0x08,0x08,0x08,0x08,0xB5,0x01,0x03,0xBC,0x07,0xAA,0x0C, - 0x06,0x5A,0x64,0x6B,0x74,0x5D,0x53,0x02,0x01,0x0A,0x09,0x89,0x08,0x08,0x1C,0xB6,0xB2,0xB3,0x07,0x99,0x0C,0x06,0x49,0xC4,0xC4,0xC4,0xC4,0x4D,0x02,0x02,0x0A,0x0E, - 0x1B,0x98,0xAF,0x1A,0xB9,0x07,0x07,0x82,0x45,0x0B,0x06,0x3F,0xC4,0xC4,0xC4,0x4A,0x0C,0x02,0x06,0x06,0x19,0x07,0x07,0x07,0x07,0x32,0x0A,0x06,0x37,0x02,0xC4,0xC4, - 0xC4,0x44,0x03,0x06,0x07,0x09,0x88,0x07,0x07,0x07,0x07,0x28,0x08,0x07,0x76,0x4C,0xC4,0xC4,0xC4,0x24,0x20,0x03,0x07,0x06,0x48,0x07,0x07,0x07,0x07,0x30,0x01,0x02, - 0x31,0x09,0x03,0x08,0x14,0x7D,0x03,0xC4,0xC4,0xC4,0xC4,0x1F,0x04,0x08,0x13,0x35,0x07,0x07,0x29,0x09,0x36,0x2A,0x43,0x46,0x56,0x6E,0x6D,0xC4,0xC4,0x02,0x03,0xC4, - 0x3C,0x1E,0x04,0x08,0x04,0x34,0x0F,0x0D,0x2B,0x01,0x0D,0x2F,0xC4,0xC4,0xC4,0xC4,0xC4,0xC4,0x78,0x7C,0x14,0x79,0x7A,0x38,0x05,0x0A,0x01,0x2E,0x01,0x0D,0x33,0x2C, - 0xC4,0xC4,0xC4,0xC4,0xC4,0x66,0x77,0x62,0x72,0x60,0x4F,0x06,0x0C,0x0E,0x27,0x02,0xC4,0xC4,0xC4,0xC4,0xC4,0x7B,0x09,0x63,0x07,0x07,0x0B,0x26,0x05,0x0D,0x0D,0x2D, - 0x22,0x25,0x3B,0x41,0x15,0x54,0x68,0x07,0x07,0x07,0x07,0x39,0x05,0x00,0x01,0x05,0x13,0x06,0x11,0x0A,0x07,0x07,0x07,0x5E,0x04,0x01,0x01,0x00,0x01,0x05,0x14,0x05, - 0x18,0x07,0x07,0x0D,0xBF,0x04,0x01,0x01,0x00,0x01,0x05,0x15,0x03,0x21,0x1D,0x91,0x05,0x01,0x01,0x00,0x04,0xC1,0x06,0x06,0x06,0x17,0x04,0x06,0x06,0x06,0xC3, -}; +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[545] = {
+ 31,30, // width,height
+ 0x00,0x04,0xC0,0x04,0x04,0x04,0x17,0x04,0x04,0x04,0x04,0xC2,0x00,0x01,0x05,0x14,0x04,0x0C,0x42,0x23,0x6C,0x05,0x01,0x01,0x00,0x01,0x05,0x13,0x06,0x09,0x15,0xC4,
+ 0xC4,0x03,0x6F,0x04,0x01,0x01,0x00,0x01,0x05,0x0C,0x0D,0x09,0x58,0x3D,0x4B,0x10,0x90,0x16,0xA6,0xC4,0xC4,0xC4,0xC4,0x3E,0x04,0x01,0x01,0x0C,0x0E,0x84,0x12,0x08,
+ 0x08,0x08,0x08,0x08,0xA9,0xA1,0xC4,0xC4,0xC4,0xC4,0x40,0x05,0x0A,0x01,0x85,0x01,0x0E,0x8B,0x17,0x08,0x08,0x08,0x08,0x08,0xA5,0x09,0xA3,0xC4,0xC4,0x96,0x55,0x05,
+ 0x09,0x03,0x80,0x83,0x11,0x01,0x0C,0x8A,0x08,0x08,0x08,0x08,0x08,0x17,0xA7,0xA4,0x9C,0xA0,0x97,0x06,0x08,0x04,0x70,0x0B,0x07,0x0F,0x01,0x0E,0x7F,0x86,0x69,0x8E,
+ 0x93,0x1C,0x08,0x9D,0xA8,0x9F,0x95,0x13,0x5B,0x09,0x04,0x07,0x06,0x5C,0x52,0x07,0x07,0x0A,0x19,0x01,0x02,0x5F,0x59,0x02,0x09,0x94,0xA2,0x9E,0x08,0x08,0x8F,0x08,
+ 0x08,0x3A,0x04,0x07,0x06,0x9B,0x07,0x07,0x07,0x07,0x87,0x07,0x08,0x09,0x92,0x8C,0x08,0x08,0x08,0x50,0x47,0x03,0x06,0x07,0xB0,0x0B,0x07,0x07,0x07,0x7E,0x1A,0x09,
+ 0x06,0x57,0x08,0x08,0x08,0x08,0x10,0x03,0x06,0x06,0xB8,0x07,0x07,0x07,0x0A,0x51,0x0A,0x07,0x09,0x4E,0x08,0x08,0x08,0x12,0x09,0x02,0x02,0x04,0x8D,0xAC,0xAE,0xBE,
+ 0x01,0x04,0x18,0x07,0x07,0x9A,0x0C,0x06,0x65,0x08,0x08,0x08,0x08,0x16,0x02,0x01,0x0A,0x0E,0xAB,0x08,0x08,0xB1,0x1B,0xBD,0xBA,0x07,0xAD,0x0C,0x06,0x75,0x71,0x6A,
+ 0x67,0x61,0x73,0x02,0x01,0x06,0x81,0x08,0x08,0x08,0x08,0xBB,0x01,0x03,0xB7,0x07,0xB4,0x14,0x01,0x06,0x13,0x08,0x08,0x08,0x08,0xB5,0x01,0x03,0xBC,0x07,0xAA,0x0C,
+ 0x06,0x5A,0x64,0x6B,0x74,0x5D,0x53,0x02,0x01,0x0A,0x09,0x89,0x08,0x08,0x1C,0xB6,0xB2,0xB3,0x07,0x99,0x0C,0x06,0x49,0xC4,0xC4,0xC4,0xC4,0x4D,0x02,0x02,0x0A,0x0E,
+ 0x1B,0x98,0xAF,0x1A,0xB9,0x07,0x07,0x82,0x45,0x0B,0x06,0x3F,0xC4,0xC4,0xC4,0x4A,0x0C,0x02,0x06,0x06,0x19,0x07,0x07,0x07,0x07,0x32,0x0A,0x06,0x37,0x02,0xC4,0xC4,
+ 0xC4,0x44,0x03,0x06,0x07,0x09,0x88,0x07,0x07,0x07,0x07,0x28,0x08,0x07,0x76,0x4C,0xC4,0xC4,0xC4,0x24,0x20,0x03,0x07,0x06,0x48,0x07,0x07,0x07,0x07,0x30,0x01,0x02,
+ 0x31,0x09,0x03,0x08,0x14,0x7D,0x03,0xC4,0xC4,0xC4,0xC4,0x1F,0x04,0x08,0x13,0x35,0x07,0x07,0x29,0x09,0x36,0x2A,0x43,0x46,0x56,0x6E,0x6D,0xC4,0xC4,0x02,0x03,0xC4,
+ 0x3C,0x1E,0x04,0x08,0x04,0x34,0x0F,0x0D,0x2B,0x01,0x0D,0x2F,0xC4,0xC4,0xC4,0xC4,0xC4,0xC4,0x78,0x7C,0x14,0x79,0x7A,0x38,0x05,0x0A,0x01,0x2E,0x01,0x0D,0x33,0x2C,
+ 0xC4,0xC4,0xC4,0xC4,0xC4,0x66,0x77,0x62,0x72,0x60,0x4F,0x06,0x0C,0x0E,0x27,0x02,0xC4,0xC4,0xC4,0xC4,0xC4,0x7B,0x09,0x63,0x07,0x07,0x0B,0x26,0x05,0x0D,0x0D,0x2D,
+ 0x22,0x25,0x3B,0x41,0x15,0x54,0x68,0x07,0x07,0x07,0x07,0x39,0x05,0x00,0x01,0x05,0x13,0x06,0x11,0x0A,0x07,0x07,0x07,0x5E,0x04,0x01,0x01,0x00,0x01,0x05,0x14,0x05,
+ 0x18,0x07,0x07,0x0D,0xBF,0x04,0x01,0x01,0x00,0x01,0x05,0x15,0x03,0x21,0x1D,0x91,0x05,0x01,0x01,0x00,0x04,0xC1,0x06,0x06,0x06,0x17,0x04,0x06,0x06,0x06,0xC3,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c index 8d4e485..696088c 100644 --- a/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_rletsprite/src/main.c @@ -1,109 +1,109 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <limits.h> - -#include <graphx.h> - -/* Include the sprite data */ -#include "gfx/logo_gfx.h" - -#define w ubuntu_width -#define h ubuntu_height - -#define xmin ((gfx_lcdWidth-w*6)/2) -#define ymin ((gfx_lcdHeight-h*6)/2) -#define xmax (xmin+w*6) -#define ymax (ymin+h*6) - -#define xmin2 (xmin+w*7/2+4) -#define ymin2 (ymin+h*2+4) -#define xmax2 (xmin2+w-8) -#define ymax2 (ymin2+h-8) - -/* For testing conversions */ -gfx_UninitedSprite(ubuntu_normal, w, h); -gfx_UninitedRLETSprite(ubuntu_uninited, (w + 1) * h); - -void main(void) { - /* For testing conversions */ - gfx_rletsprite_t *ubuntu_malloc; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette for our sprites */ - gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0); - gfx_palette[255] = gfx_RGBTo1555(192, 192, 192); - - /* Set a centered 192*192 clip region, bordered by gray and filled with color index 0 */ - gfx_FillScreen(255); - gfx_SetColor(0); - gfx_FillRectangle_NoClip(xmin, ymin, xmax - xmin, ymax - ymin); - gfx_SetClipRegion(xmin, ymin, xmax, ymax); - - /* Test no clipping */ - gfx_RLETSprite_NoClip(ubuntu, xmin + w * 3 / 2, ymin + h * 2); - gfx_RLETSprite(ubuntu, xmin + w * 5 / 2, ymin + h * 2); - - /* Test top clipping */ - gfx_RLETSprite(ubuntu, xmin + w, ymin); - gfx_RLETSprite(ubuntu, xmin + w * 2, ymin - h + 1); - gfx_RLETSprite(ubuntu, xmin + w * 3, ymin - h); - gfx_RLETSprite(ubuntu, xmin + w * 4, INT_MIN); - - /* Test bottom clipping */ - gfx_RLETSprite(ubuntu, xmin + w * 4, ymax - h); - gfx_RLETSprite(ubuntu, xmin + w * 3, ymax - 1); - gfx_RLETSprite(ubuntu, xmin + w * 2, ymax); - gfx_RLETSprite(ubuntu, xmin + w, INT_MAX); - - /* Test right clipping */ - gfx_RLETSprite(ubuntu, xmax - w, ymin + h); - gfx_RLETSprite(ubuntu, xmax - 1, ymin + h * 2); - gfx_RLETSprite(ubuntu, xmax, ymin + h * 3); - gfx_RLETSprite(ubuntu, INT_MAX, ymin + h * 4); - - /* Test left clipping */ - gfx_RLETSprite(ubuntu, xmin, ymin + h * 4); - gfx_RLETSprite(ubuntu, xmin - w + 1, ymin + h * 3); - gfx_RLETSprite(ubuntu, xmin - w, ymin + h * 2); - gfx_RLETSprite(ubuntu, INT_MIN, ymin + h); - - /* Test corner clipping */ - gfx_RLETSprite(ubuntu, xmin - w + 1, ymin - h + 1); - gfx_RLETSprite(ubuntu, xmax - 1, ymin - h + 1); - gfx_RLETSprite(ubuntu, xmax - 1, ymax - 1); - gfx_RLETSprite(ubuntu, xmin - w + 1, ymax - 1); - - /* Set a centered 16*16 clip region, bordered by gray and filled with color index 0 */ - gfx_SetColor(255); - gfx_FillRectangle_NoClip(xmin2 - 4, ymin2 - 4, xmax2 - xmin2 + 8, ymax2 - ymin2 + 8); - gfx_SetColor(0); - gfx_FillRectangle_NoClip(xmin2, ymin2, xmax2 - xmin2, ymax2 - ymin2); - gfx_SetClipRegion(xmin2, ymin2, xmax2, ymax2); - - /* Test all-around clipping */ - gfx_RLETSprite(ubuntu, xmin2 - 4, ymin2 - 4); - - /* Test conversions */ - gfx_SetTransparentColor(0); - gfx_ConvertFromRLETSprite(ubuntu, ubuntu_normal); - gfx_TransparentSprite_NoClip(ubuntu_normal, xmin + w * 3 / 2, ymin + h * 3); - gfx_ConvertToRLETSprite(ubuntu_normal, ubuntu_uninited); - gfx_RLETSprite_NoClip(ubuntu_uninited, xmin + w * 5 / 2, ymin + h * 3); - ubuntu_malloc = gfx_ConvertMallocRLETSprite(ubuntu_normal); // Same as gfx_ConvertToNewRLETSprite(ubuntu_normal, malloc) - gfx_RLETSprite_NoClip(ubuntu_malloc, xmin + w * 7 / 2, ymin + h * 3); - - /* Wait for a key to be pressed */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include <graphx.h>
+
+/* Include the sprite data */
+#include "gfx/logo_gfx.h"
+
+#define w ubuntu_width
+#define h ubuntu_height
+
+#define xmin ((gfx_lcdWidth-w*6)/2)
+#define ymin ((gfx_lcdHeight-h*6)/2)
+#define xmax (xmin+w*6)
+#define ymax (ymin+h*6)
+
+#define xmin2 (xmin+w*7/2+4)
+#define ymin2 (ymin+h*2+4)
+#define xmax2 (xmin2+w-8)
+#define ymax2 (ymin2+h-8)
+
+/* For testing conversions */
+gfx_UninitedSprite(ubuntu_normal, w, h);
+gfx_UninitedRLETSprite(ubuntu_uninited, (w + 1) * h);
+
+void main(void) {
+ /* For testing conversions */
+ gfx_rletsprite_t *ubuntu_malloc;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette for our sprites */
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+ gfx_palette[255] = gfx_RGBTo1555(192, 192, 192);
+
+ /* Set a centered 192*192 clip region, bordered by gray and filled with color index 0 */
+ gfx_FillScreen(255);
+ gfx_SetColor(0);
+ gfx_FillRectangle_NoClip(xmin, ymin, xmax - xmin, ymax - ymin);
+ gfx_SetClipRegion(xmin, ymin, xmax, ymax);
+
+ /* Test no clipping */
+ gfx_RLETSprite_NoClip(ubuntu, xmin + w * 3 / 2, ymin + h * 2);
+ gfx_RLETSprite(ubuntu, xmin + w * 5 / 2, ymin + h * 2);
+
+ /* Test top clipping */
+ gfx_RLETSprite(ubuntu, xmin + w, ymin);
+ gfx_RLETSprite(ubuntu, xmin + w * 2, ymin - h + 1);
+ gfx_RLETSprite(ubuntu, xmin + w * 3, ymin - h);
+ gfx_RLETSprite(ubuntu, xmin + w * 4, INT_MIN);
+
+ /* Test bottom clipping */
+ gfx_RLETSprite(ubuntu, xmin + w * 4, ymax - h);
+ gfx_RLETSprite(ubuntu, xmin + w * 3, ymax - 1);
+ gfx_RLETSprite(ubuntu, xmin + w * 2, ymax);
+ gfx_RLETSprite(ubuntu, xmin + w, INT_MAX);
+
+ /* Test right clipping */
+ gfx_RLETSprite(ubuntu, xmax - w, ymin + h);
+ gfx_RLETSprite(ubuntu, xmax - 1, ymin + h * 2);
+ gfx_RLETSprite(ubuntu, xmax, ymin + h * 3);
+ gfx_RLETSprite(ubuntu, INT_MAX, ymin + h * 4);
+
+ /* Test left clipping */
+ gfx_RLETSprite(ubuntu, xmin, ymin + h * 4);
+ gfx_RLETSprite(ubuntu, xmin - w + 1, ymin + h * 3);
+ gfx_RLETSprite(ubuntu, xmin - w, ymin + h * 2);
+ gfx_RLETSprite(ubuntu, INT_MIN, ymin + h);
+
+ /* Test corner clipping */
+ gfx_RLETSprite(ubuntu, xmin - w + 1, ymin - h + 1);
+ gfx_RLETSprite(ubuntu, xmax - 1, ymin - h + 1);
+ gfx_RLETSprite(ubuntu, xmax - 1, ymax - 1);
+ gfx_RLETSprite(ubuntu, xmin - w + 1, ymax - 1);
+
+ /* Set a centered 16*16 clip region, bordered by gray and filled with color index 0 */
+ gfx_SetColor(255);
+ gfx_FillRectangle_NoClip(xmin2 - 4, ymin2 - 4, xmax2 - xmin2 + 8, ymax2 - ymin2 + 8);
+ gfx_SetColor(0);
+ gfx_FillRectangle_NoClip(xmin2, ymin2, xmax2 - xmin2, ymax2 - ymin2);
+ gfx_SetClipRegion(xmin2, ymin2, xmax2, ymax2);
+
+ /* Test all-around clipping */
+ gfx_RLETSprite(ubuntu, xmin2 - 4, ymin2 - 4);
+
+ /* Test conversions */
+ gfx_SetTransparentColor(0);
+ gfx_ConvertFromRLETSprite(ubuntu, ubuntu_normal);
+ gfx_TransparentSprite_NoClip(ubuntu_normal, xmin + w * 3 / 2, ymin + h * 3);
+ gfx_ConvertToRLETSprite(ubuntu_normal, ubuntu_uninited);
+ gfx_RLETSprite_NoClip(ubuntu_uninited, xmin + w * 5 / 2, ymin + h * 3);
+ ubuntu_malloc = gfx_ConvertMallocRLETSprite(ubuntu_normal); // Same as gfx_ConvertToNewRLETSprite(ubuntu_normal, malloc)
+ gfx_RLETSprite_NoClip(ubuntu_malloc, xmin + w * 7 / 2, ymin + h * 3);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json b/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json index af3def5..89f6ee2 100644 --- a/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/autotester.json @@ -1,63 +1,63 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2", - "key|enter", - "hashWait|3", - "key|enter", - "hashWait|4", - "key|enter", - "hashWait|5", - "key|enter", - "hashWait|6" - ], - "hashes": { - "1": { - "description": "The empty and filled blue circles are drawn correctly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "2C41178A" ] - }, - "2": { - "description": "The yellow rectangle, red circle, and blue triangle are drawn correctly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "C8E3ED16" ] - }, - "3": { - "description": "Filled yellow rectangle, red circle, and blue triangle are drawn correctly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "D7543DD6" ] - }, - "4": { - "description": "The screen is shifted several times", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "F2BD5102" ] - }, - "5": { - "description": "The screen displays many different triangles", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "CDE95095" ] - }, - "6": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3",
+ "key|enter",
+ "hashWait|4",
+ "key|enter",
+ "hashWait|5",
+ "key|enter",
+ "hashWait|6"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The empty and filled blue circles are drawn correctly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "2C41178A" ]
+ },
+ "2": {
+ "description": "The yellow rectangle, red circle, and blue triangle are drawn correctly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "C8E3ED16" ]
+ },
+ "3": {
+ "description": "Filled yellow rectangle, red circle, and blue triangle are drawn correctly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "D7543DD6" ]
+ },
+ "4": {
+ "description": "The screen is shifted several times",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F2BD5102" ]
+ },
+ "5": {
+ "description": "The screen displays many different triangles",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "CDE95095" ]
+ },
+ "6": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile b/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile +++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md b/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md index 5f163d3..c66cd1d 100644 --- a/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/readme.md @@ -1,10 +1,10 @@ -### GraphX Shapes and Shift Demo - -Draws different shapes, and demonstrates window shifting. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Shapes and Shift Demo
+
+Draws different shapes, and demonstrates window shifting.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c b/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c index cfa784d..382cd12 100644 --- a/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_shapes_shift/src/main.c @@ -1,112 +1,112 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -void main(void) { - uint8_t y; - uint24_t i; - - /* Triangle coordinates */ - int verts[6] = { - 160, 1, /* (x0, y0) */ - 1, 238, /* (x1, y1) */ - 318,238, /* (x2, y2) */ - }; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - gfx_SetColor(gfx_blue); - - /* Draw some circles to make sure they all look the same */ - y = 40; - for (i = 2; i < 13; i++) { - y += i; - gfx_FillCircle_NoClip(80, y, i); - y += i + 3; - } - y = 40; - for (i = 2; i < 13; i++) { - y += i; - gfx_FillCircle(240, y, i); - y += i + 3; - } - y = 40; - for (i = 2; i < 13; i++) { - y += i; - gfx_Circle(160, y, i); - y += i + 3; - } - - /* Wait for any key */ - while (!os_GetCSC()); - - gfx_FillScreen(gfx_white); - gfx_SetColor(gfx_yellow); - gfx_Rectangle(0, 0, 320, 240); - - /* Draw a blue triangle outline */ - gfx_SetColor(gfx_blue); - gfx_Polygon(verts, 3); - - /* Draw a red circle outline */ - gfx_SetColor(gfx_red); - gfx_Circle(160, 152, 80); - - /* Wait for any key */ - while (!os_GetCSC()); - - /* Draw a filled yellow rectangle */ - gfx_SetColor(gfx_yellow); - gfx_FillRectangle(0, 0, 320, 240); - - /* Draw a filled blue triangle */ - gfx_SetColor(gfx_blue); - gfx_FillTriangle(verts[0], verts[1], verts[2], verts[3], verts[4], verts[5]); - - /* Draw a filled red circle */ - gfx_SetColor(gfx_red); - gfx_FillCircle(160, 152, 80); - - /* Wait for any key */ - while (!os_GetCSC()); - - /* Shift the screen around a bit */ - gfx_ShiftDown(20); - gfx_ShiftDown(20); - gfx_ShiftLeft(20); - gfx_ShiftLeft(20); - gfx_ShiftUp(20); - gfx_ShiftRight(20); - - /* Wait for any key */ - while (!os_GetCSC()); - - gfx_FillScreen(gfx_white); - - /* Test triangle drawing */ - gfx_SetColor(gfx_blue); - gfx_FillTriangle(110, 170, 110, 70, 230, 70); - gfx_SetColor(gfx_green); - gfx_FillTriangle_NoClip(110, 170, 230, 70, 230, 170); - gfx_SetColor(gfx_black); - gfx_FillTriangle(110, 170, 200, 200, 230, 200); - gfx_FillTriangle_NoClip(140, 40, 110, 40, 230, 70); - gfx_FillTriangle(1, 1, 318, 1, 1, 1); - gfx_FillTriangle_NoClip(1, 238, 1, 238, 318, 238); - gfx_FillTriangle(1, 3, 1, 236, 1, 236); - gfx_FillTriangle_NoClip(318, 3, 318, 236, 318, 3); - - /* Wait for any key */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+void main(void) {
+ uint8_t y;
+ uint24_t i;
+
+ /* Triangle coordinates */
+ int verts[6] = {
+ 160, 1, /* (x0, y0) */
+ 1, 238, /* (x1, y1) */
+ 318,238, /* (x2, y2) */
+ };
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+ gfx_SetColor(gfx_blue);
+
+ /* Draw some circles to make sure they all look the same */
+ y = 40;
+ for (i = 2; i < 13; i++) {
+ y += i;
+ gfx_FillCircle_NoClip(80, y, i);
+ y += i + 3;
+ }
+ y = 40;
+ for (i = 2; i < 13; i++) {
+ y += i;
+ gfx_FillCircle(240, y, i);
+ y += i + 3;
+ }
+ y = 40;
+ for (i = 2; i < 13; i++) {
+ y += i;
+ gfx_Circle(160, y, i);
+ y += i + 3;
+ }
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ gfx_FillScreen(gfx_white);
+ gfx_SetColor(gfx_yellow);
+ gfx_Rectangle(0, 0, 320, 240);
+
+ /* Draw a blue triangle outline */
+ gfx_SetColor(gfx_blue);
+ gfx_Polygon(verts, 3);
+
+ /* Draw a red circle outline */
+ gfx_SetColor(gfx_red);
+ gfx_Circle(160, 152, 80);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ /* Draw a filled yellow rectangle */
+ gfx_SetColor(gfx_yellow);
+ gfx_FillRectangle(0, 0, 320, 240);
+
+ /* Draw a filled blue triangle */
+ gfx_SetColor(gfx_blue);
+ gfx_FillTriangle(verts[0], verts[1], verts[2], verts[3], verts[4], verts[5]);
+
+ /* Draw a filled red circle */
+ gfx_SetColor(gfx_red);
+ gfx_FillCircle(160, 152, 80);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ /* Shift the screen around a bit */
+ gfx_ShiftDown(20);
+ gfx_ShiftDown(20);
+ gfx_ShiftLeft(20);
+ gfx_ShiftLeft(20);
+ gfx_ShiftUp(20);
+ gfx_ShiftRight(20);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ gfx_FillScreen(gfx_white);
+
+ /* Test triangle drawing */
+ gfx_SetColor(gfx_blue);
+ gfx_FillTriangle(110, 170, 110, 70, 230, 70);
+ gfx_SetColor(gfx_green);
+ gfx_FillTriangle_NoClip(110, 170, 230, 70, 230, 170);
+ gfx_SetColor(gfx_black);
+ gfx_FillTriangle(110, 170, 200, 200, 230, 200);
+ gfx_FillTriangle_NoClip(140, 40, 110, 40, 230, 70);
+ gfx_FillTriangle(1, 1, 318, 1, 1, 1);
+ gfx_FillTriangle_NoClip(1, 238, 1, 238, 318, 238);
+ gfx_FillTriangle(1, 3, 1, 236, 1, 236);
+ gfx_FillTriangle_NoClip(318, 3, 318, 236, 318, 3);
+
+ /* Wait for any key */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json index a88868a..bcf6174 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_sprite/autotester.json @@ -1,31 +1,31 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Make sure the sprites are displayed properly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "DF7FD32" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "DF7FD32" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/makefile b/frontends/calculator/CEdev/examples/gfx_sprite/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/makefile +++ b/frontends/calculator/CEdev/examples/gfx_sprite/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite/readme.md index 9c072c0..39b290e 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_sprite/readme.md @@ -1,10 +1,10 @@ -### GraphX Sprite Demo - -Draws a bunch of different styles of sprites on the screen. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Sprite Demo
+
+Draws a bunch of different styles of sprites on the screen.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini index 7bd3158..b6ba98d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/convpng.ini @@ -1,4 +1,4 @@ -#GroupC : logo_gfx -#TransparentColor : 255,255,255 -#PNGImages : - ubuntu +#GroupC : logo_gfx
+#TransparentColor : 255,255,255
+#PNGImages :
+ ubuntu
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c index 4086cdc..5d2ba8b 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.c @@ -1,195 +1,195 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -uint16_t logo_gfx_pal[189] = { - 0xFFFF, // 00 :: rgb(255,255,255) - 0x7E20, // 01 :: rgb(251,139,1) - 0xFE20, // 02 :: rgb(251,140,4) - 0xFFFF, // 03 :: rgb(255,253,253) - 0x6800, // 04 :: rgb(212,2,2) - 0xE821, // 05 :: rgb(213,11,11) - 0x7E20, // 06 :: rgb(251,139,2) - 0x7E20, // 07 :: rgb(251,139,0) - 0x7920, // 08 :: rgb(244,72,0) - 0xFFFF, // 09 :: rgb(255,254,254) - 0xFFFF, // 10 :: rgb(255,254,253) - 0xFECC, // 11 :: rgb(252,182,97) - 0x7A90, // 12 :: rgb(249,163,128) - 0x7FDC, // 13 :: rgb(254,244,231) - 0xF985, // 14 :: rgb(245,100,40) - 0x7F9A, // 15 :: rgb(253,225,213) - 0x7FDD, // 16 :: rgb(253,242,242) - 0x6D6B, // 17 :: rgb(226,90,90) - 0xFFBC, // 18 :: rgb(254,239,233) - 0xF921, // 19 :: rgb(244,77,7) - 0x7EED, // 20 :: rgb(252,187,107) - 0xFF99, // 21 :: rgb(254,231,203) - 0xFFFE, // 22 :: rgb(255,253,250) - 0xFF16, // 23 :: rgb(251,199,177) - 0xF921, // 24 :: rgb(244,78,8) - 0xFE87, // 25 :: rgb(251,167,61) - 0xFFBA, // 26 :: rgb(254,237,216) - 0x7F31, // 27 :: rgb(253,204,143) - 0xFF76, // 28 :: rgb(253,222,183) - 0x7B7B, // 29 :: rgb(249,220,220) - 0xFAF7, // 30 :: rgb(244,192,192) - 0x7FDD, // 31 :: rgb(252,241,241) - 0xF18C, // 32 :: rgb(229,102,102) - 0xFE87, // 33 :: rgb(251,164,56) - 0x7B5A, // 34 :: rgb(247,212,212) - 0xFF76, // 35 :: rgb(253,221,181) - 0xF652, // 36 :: rgb(237,151,151) - 0x7652, // 37 :: rgb(236,145,145) - 0x6D29, // 38 :: rgb(224,74,74) - 0xE800, // 39 :: rgb(212,3,3) - 0x718C, // 40 :: rgb(228,98,98) - 0xFF54, // 41 :: rgb(253,214,165) - 0x7673, // 42 :: rgb(237,153,153) - 0xFF32, // 43 :: rgb(252,205,148) - 0x7EA8, // 44 :: rgb(251,169,68) - 0x6CC6, // 45 :: rgb(219,48,48) - 0x7FBA, // 46 :: rgb(254,234,211) - 0xE842, // 47 :: rgb(215,20,20) - 0xFB7B, // 48 :: rgb(250,224,224) - 0xFF77, // 49 :: rgb(253,224,187) - 0xF652, // 50 :: rgb(237,149,149) - 0x7F75, // 51 :: rgb(253,218,175) - 0x7FFE, // 52 :: rgb(254,249,249) - 0x7EEC, // 53 :: rgb(252,185,102) - 0x7FBD, // 54 :: rgb(252,236,236) - 0xFFFF, // 55 :: rgb(255,253,251) - 0x7EED, // 56 :: rgb(252,188,109) - 0x7FFF, // 57 :: rgb(254,252,252) - 0xFAF7, // 58 :: rgb(243,189,189) - 0x7B9B, // 59 :: rgb(250,225,225) - 0x7AD2, // 60 :: rgb(250,179,149) - 0xED09, // 61 :: rgb(224,70,70) - 0xECA5, // 62 :: rgb(218,43,43) - 0xFAF4, // 63 :: rgb(250,190,165) - 0x6D4A, // 64 :: rgb(225,82,82) - 0xED08, // 65 :: rgb(223,69,69) - 0x6D08, // 66 :: rgb(222,63,63) - 0x76D6, // 67 :: rgb(242,178,178) - 0xECC6, // 68 :: rgb(220,51,51) - 0xF1AD, // 69 :: rgb(229,109,109) - 0xFFDD, // 70 :: rgb(254,246,235) - 0x718C, // 71 :: rgb(228,97,97) - 0xFFBC, // 72 :: rgb(254,239,234) - 0xFF77, // 73 :: rgb(253,223,187) - 0x76D6, // 74 :: rgb(242,179,179) - 0x6863, // 75 :: rgb(216,26,26) - 0x7AB1, // 76 :: rgb(249,169,136) - 0xE843, // 77 :: rgb(215,21,21) - 0xFF9C, // 78 :: rgb(251,230,230) - 0xF9A6, // 79 :: rgb(245,108,51) - 0x7F97, // 80 :: rgb(253,225,189) - 0x7942, // 81 :: rgb(244,81,13) - 0x7FBA, // 82 :: rgb(254,236,215) - 0xFE21, // 83 :: rgb(251,143,11) - 0x7FBC, // 84 :: rgb(251,234,234) - 0xFB18, // 85 :: rgb(245,197,197) - 0x76D6, // 86 :: rgb(242,177,177) - 0x71AD, // 87 :: rgb(229,106,106) - 0xFAB2, // 88 :: rgb(249,176,144) - 0x7F9A, // 89 :: rgb(253,227,217) - 0x7FDD, // 90 :: rgb(254,242,237) - 0x7FDE, // 91 :: rgb(253,243,243) - 0x7AB1, // 92 :: rgb(249,171,139) - 0xFFBB, // 93 :: rgb(254,239,221) - 0xF694, // 94 :: rgb(240,167,167) - 0xFF7A, // 95 :: rgb(253,224,213) - 0x7F0E, // 96 :: rgb(253,193,117) - 0xFA6F, // 97 :: rgb(249,159,121) - 0x7FFE, // 98 :: rgb(255,251,247) - 0xFEAA, // 99 :: rgb(251,175,80) - 0x7694, // 100 :: rgb(239,161,161) - 0x7AF3, // 101 :: rgb(250,186,160) - 0xE801, // 102 :: rgb(213,5,5) - 0xFA6F, // 103 :: rgb(249,159,122) - 0x7FDB, // 104 :: rgb(254,241,224) - 0xF920, // 105 :: rgb(244,75,4) - 0x7A8F, // 106 :: rgb(249,160,123) - 0x7694, // 107 :: rgb(239,163,163) - 0xE822, // 108 :: rgb(214,14,14) - 0x6D29, // 109 :: rgb(223,71,71) - 0xFF55, // 110 :: rgb(253,215,169) - 0x7A8F, // 111 :: rgb(249,161,124) - 0xFF32, // 112 :: rgb(253,207,151) - 0x7FBB, // 113 :: rgb(253,233,224) - 0xF694, // 114 :: rgb(239,165,165) - 0xFFBC, // 115 :: rgb(254,238,231) - 0xFB39, // 116 :: rgb(247,208,208) - 0x7B38, // 117 :: rgb(246,201,201) - 0x6842, // 118 :: rgb(214,16,16) - 0x7FFF, // 119 :: rgb(254,251,251) - 0xFB7B, // 120 :: rgb(250,223,223) - 0xF16C, // 121 :: rgb(227,95,95) - 0x7672, // 122 :: rgb(237,152,152) - 0x7631, // 123 :: rgb(235,138,138) - 0xFE87, // 124 :: rgb(251,165,60) - 0xFFDD, // 125 :: rgb(254,245,240) - 0xFF33, // 126 :: rgb(252,208,154) - 0x7F79, // 127 :: rgb(252,220,207) - 0x7E41, // 128 :: rgb(251,144,12) - 0x7E42, // 129 :: rgb(251,146,19) - 0x7F36, // 130 :: rgb(251,202,182) - 0x7FDC, // 131 :: rgb(254,243,230) - 0x7963, // 132 :: rgb(244,89,24) - 0x7F0E, // 133 :: rgb(252,193,119) - 0xFE87, // 134 :: rgb(251,164,57) - 0x7A2B, // 135 :: rgb(247,138,92) - 0xFA6E, // 136 :: rgb(249,157,119) - 0xFF9B, // 137 :: rgb(253,229,219) - 0x7920, // 138 :: rgb(244,74,3) - 0xFFDE, // 139 :: rgb(254,246,243) - 0xF964, // 140 :: rgb(245,95,32) - 0xF921, // 141 :: rgb(244,76,6) - 0xFAD3, // 142 :: rgb(250,183,155) - 0xFAD3, // 143 :: rgb(250,182,154) - 0xF985, // 144 :: rgb(245,103,44) - 0x7FFE, // 145 :: rgb(255,252,250) - 0x7FFE, // 146 :: rgb(255,251,250) - 0x6800, // 147 :: rgb(212,1,1) - 0x7B18, // 148 :: rgb(245,195,195) - 0x7AD2, // 149 :: rgb(250,178,148) - 0x7ECB, // 150 :: rgb(251,179,87) - 0x7EA8, // 151 :: rgb(251,169,69) - 0xFEAA, // 152 :: rgb(251,176,82) - 0x7652, // 153 :: rgb(236,146,146) - 0xF942, // 154 :: rgb(244,83,16) - 0xF9E9, // 155 :: rgb(246,126,76) - 0xFFDD, // 156 :: rgb(254,246,242) - 0x71EF, // 157 :: rgb(231,120,120) - 0xFB39, // 158 :: rgb(247,206,206) - 0xFF37, // 159 :: rgb(252,208,190) - 0x6D08, // 160 :: rgb(222,65,65) - 0x7FDE, // 161 :: rgb(253,244,244) - 0x7A4D, // 162 :: rgb(248,147,106) - 0xFB5A, // 163 :: rgb(248,216,216) - 0x7F79, // 164 :: rgb(253,220,206) - 0xFAD3, // 165 :: rgb(250,181,153) - 0x7F15, // 166 :: rgb(251,196,173) - 0x7F31, // 167 :: rgb(252,201,137) - 0xF9C8, // 168 :: rgb(246,116,62) - 0xFAB2, // 169 :: rgb(250,176,145) - 0xFF10, // 170 :: rgb(252,198,131) - 0x7A6E, // 171 :: rgb(248,155,117) - 0xFF9B, // 172 :: rgb(253,232,224) - 0xFFBB, // 173 :: rgb(254,240,221) - 0x7920, // 174 :: rgb(244,74,2) - 0x7FDC, // 175 :: rgb(254,243,229) - 0xFE21, // 176 :: rgb(251,141,6) - 0x7F53, // 177 :: rgb(253,210,155) - 0xF9E9, // 178 :: rgb(247,127,77) - 0xFF58, // 179 :: rgb(252,213,197) - 0xFE87, // 180 :: rgb(251,164,58) - 0xFF54, // 181 :: rgb(253,213,164) - 0xFEA9, // 182 :: rgb(251,174,78) - 0xFE21, // 183 :: rgb(251,143,10) - 0x79E8, // 184 :: rgb(246,120,67) - 0x7E87, // 185 :: rgb(251,163,54) - 0xFFDD, // 186 :: rgb(254,248,240) - 0x7F57, // 187 :: rgb(252,210,193) - 0x6800, // 188 :: rgb(212,0,0) +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[189] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x7E20, // 01 :: rgb(251,139,1)
+ 0xFE20, // 02 :: rgb(251,140,4)
+ 0xFFFF, // 03 :: rgb(255,253,253)
+ 0x6800, // 04 :: rgb(212,2,2)
+ 0xE821, // 05 :: rgb(213,11,11)
+ 0x7E20, // 06 :: rgb(251,139,2)
+ 0x7E20, // 07 :: rgb(251,139,0)
+ 0x7920, // 08 :: rgb(244,72,0)
+ 0xFFFF, // 09 :: rgb(255,254,254)
+ 0xFFFF, // 10 :: rgb(255,254,253)
+ 0xFECC, // 11 :: rgb(252,182,97)
+ 0x7A90, // 12 :: rgb(249,163,128)
+ 0x7FDC, // 13 :: rgb(254,244,231)
+ 0xF985, // 14 :: rgb(245,100,40)
+ 0x7F9A, // 15 :: rgb(253,225,213)
+ 0x7FDD, // 16 :: rgb(253,242,242)
+ 0x6D6B, // 17 :: rgb(226,90,90)
+ 0xFFBC, // 18 :: rgb(254,239,233)
+ 0xF921, // 19 :: rgb(244,77,7)
+ 0x7EED, // 20 :: rgb(252,187,107)
+ 0xFF99, // 21 :: rgb(254,231,203)
+ 0xFFFE, // 22 :: rgb(255,253,250)
+ 0xFF16, // 23 :: rgb(251,199,177)
+ 0xF921, // 24 :: rgb(244,78,8)
+ 0xFE87, // 25 :: rgb(251,167,61)
+ 0xFFBA, // 26 :: rgb(254,237,216)
+ 0x7F31, // 27 :: rgb(253,204,143)
+ 0xFF76, // 28 :: rgb(253,222,183)
+ 0x7B7B, // 29 :: rgb(249,220,220)
+ 0xFAF7, // 30 :: rgb(244,192,192)
+ 0x7FDD, // 31 :: rgb(252,241,241)
+ 0xF18C, // 32 :: rgb(229,102,102)
+ 0xFE87, // 33 :: rgb(251,164,56)
+ 0x7B5A, // 34 :: rgb(247,212,212)
+ 0xFF76, // 35 :: rgb(253,221,181)
+ 0xF652, // 36 :: rgb(237,151,151)
+ 0x7652, // 37 :: rgb(236,145,145)
+ 0x6D29, // 38 :: rgb(224,74,74)
+ 0xE800, // 39 :: rgb(212,3,3)
+ 0x718C, // 40 :: rgb(228,98,98)
+ 0xFF54, // 41 :: rgb(253,214,165)
+ 0x7673, // 42 :: rgb(237,153,153)
+ 0xFF32, // 43 :: rgb(252,205,148)
+ 0x7EA8, // 44 :: rgb(251,169,68)
+ 0x6CC6, // 45 :: rgb(219,48,48)
+ 0x7FBA, // 46 :: rgb(254,234,211)
+ 0xE842, // 47 :: rgb(215,20,20)
+ 0xFB7B, // 48 :: rgb(250,224,224)
+ 0xFF77, // 49 :: rgb(253,224,187)
+ 0xF652, // 50 :: rgb(237,149,149)
+ 0x7F75, // 51 :: rgb(253,218,175)
+ 0x7FFE, // 52 :: rgb(254,249,249)
+ 0x7EEC, // 53 :: rgb(252,185,102)
+ 0x7FBD, // 54 :: rgb(252,236,236)
+ 0xFFFF, // 55 :: rgb(255,253,251)
+ 0x7EED, // 56 :: rgb(252,188,109)
+ 0x7FFF, // 57 :: rgb(254,252,252)
+ 0xFAF7, // 58 :: rgb(243,189,189)
+ 0x7B9B, // 59 :: rgb(250,225,225)
+ 0x7AD2, // 60 :: rgb(250,179,149)
+ 0xED09, // 61 :: rgb(224,70,70)
+ 0xECA5, // 62 :: rgb(218,43,43)
+ 0xFAF4, // 63 :: rgb(250,190,165)
+ 0x6D4A, // 64 :: rgb(225,82,82)
+ 0xED08, // 65 :: rgb(223,69,69)
+ 0x6D08, // 66 :: rgb(222,63,63)
+ 0x76D6, // 67 :: rgb(242,178,178)
+ 0xECC6, // 68 :: rgb(220,51,51)
+ 0xF1AD, // 69 :: rgb(229,109,109)
+ 0xFFDD, // 70 :: rgb(254,246,235)
+ 0x718C, // 71 :: rgb(228,97,97)
+ 0xFFBC, // 72 :: rgb(254,239,234)
+ 0xFF77, // 73 :: rgb(253,223,187)
+ 0x76D6, // 74 :: rgb(242,179,179)
+ 0x6863, // 75 :: rgb(216,26,26)
+ 0x7AB1, // 76 :: rgb(249,169,136)
+ 0xE843, // 77 :: rgb(215,21,21)
+ 0xFF9C, // 78 :: rgb(251,230,230)
+ 0xF9A6, // 79 :: rgb(245,108,51)
+ 0x7F97, // 80 :: rgb(253,225,189)
+ 0x7942, // 81 :: rgb(244,81,13)
+ 0x7FBA, // 82 :: rgb(254,236,215)
+ 0xFE21, // 83 :: rgb(251,143,11)
+ 0x7FBC, // 84 :: rgb(251,234,234)
+ 0xFB18, // 85 :: rgb(245,197,197)
+ 0x76D6, // 86 :: rgb(242,177,177)
+ 0x71AD, // 87 :: rgb(229,106,106)
+ 0xFAB2, // 88 :: rgb(249,176,144)
+ 0x7F9A, // 89 :: rgb(253,227,217)
+ 0x7FDD, // 90 :: rgb(254,242,237)
+ 0x7FDE, // 91 :: rgb(253,243,243)
+ 0x7AB1, // 92 :: rgb(249,171,139)
+ 0xFFBB, // 93 :: rgb(254,239,221)
+ 0xF694, // 94 :: rgb(240,167,167)
+ 0xFF7A, // 95 :: rgb(253,224,213)
+ 0x7F0E, // 96 :: rgb(253,193,117)
+ 0xFA6F, // 97 :: rgb(249,159,121)
+ 0x7FFE, // 98 :: rgb(255,251,247)
+ 0xFEAA, // 99 :: rgb(251,175,80)
+ 0x7694, // 100 :: rgb(239,161,161)
+ 0x7AF3, // 101 :: rgb(250,186,160)
+ 0xE801, // 102 :: rgb(213,5,5)
+ 0xFA6F, // 103 :: rgb(249,159,122)
+ 0x7FDB, // 104 :: rgb(254,241,224)
+ 0xF920, // 105 :: rgb(244,75,4)
+ 0x7A8F, // 106 :: rgb(249,160,123)
+ 0x7694, // 107 :: rgb(239,163,163)
+ 0xE822, // 108 :: rgb(214,14,14)
+ 0x6D29, // 109 :: rgb(223,71,71)
+ 0xFF55, // 110 :: rgb(253,215,169)
+ 0x7A8F, // 111 :: rgb(249,161,124)
+ 0xFF32, // 112 :: rgb(253,207,151)
+ 0x7FBB, // 113 :: rgb(253,233,224)
+ 0xF694, // 114 :: rgb(239,165,165)
+ 0xFFBC, // 115 :: rgb(254,238,231)
+ 0xFB39, // 116 :: rgb(247,208,208)
+ 0x7B38, // 117 :: rgb(246,201,201)
+ 0x6842, // 118 :: rgb(214,16,16)
+ 0x7FFF, // 119 :: rgb(254,251,251)
+ 0xFB7B, // 120 :: rgb(250,223,223)
+ 0xF16C, // 121 :: rgb(227,95,95)
+ 0x7672, // 122 :: rgb(237,152,152)
+ 0x7631, // 123 :: rgb(235,138,138)
+ 0xFE87, // 124 :: rgb(251,165,60)
+ 0xFFDD, // 125 :: rgb(254,245,240)
+ 0xFF33, // 126 :: rgb(252,208,154)
+ 0x7F79, // 127 :: rgb(252,220,207)
+ 0x7E41, // 128 :: rgb(251,144,12)
+ 0x7E42, // 129 :: rgb(251,146,19)
+ 0x7F36, // 130 :: rgb(251,202,182)
+ 0x7FDC, // 131 :: rgb(254,243,230)
+ 0x7963, // 132 :: rgb(244,89,24)
+ 0x7F0E, // 133 :: rgb(252,193,119)
+ 0xFE87, // 134 :: rgb(251,164,57)
+ 0x7A2B, // 135 :: rgb(247,138,92)
+ 0xFA6E, // 136 :: rgb(249,157,119)
+ 0xFF9B, // 137 :: rgb(253,229,219)
+ 0x7920, // 138 :: rgb(244,74,3)
+ 0xFFDE, // 139 :: rgb(254,246,243)
+ 0xF964, // 140 :: rgb(245,95,32)
+ 0xF921, // 141 :: rgb(244,76,6)
+ 0xFAD3, // 142 :: rgb(250,183,155)
+ 0xFAD3, // 143 :: rgb(250,182,154)
+ 0xF985, // 144 :: rgb(245,103,44)
+ 0x7FFE, // 145 :: rgb(255,252,250)
+ 0x7FFE, // 146 :: rgb(255,251,250)
+ 0x6800, // 147 :: rgb(212,1,1)
+ 0x7B18, // 148 :: rgb(245,195,195)
+ 0x7AD2, // 149 :: rgb(250,178,148)
+ 0x7ECB, // 150 :: rgb(251,179,87)
+ 0x7EA8, // 151 :: rgb(251,169,69)
+ 0xFEAA, // 152 :: rgb(251,176,82)
+ 0x7652, // 153 :: rgb(236,146,146)
+ 0xF942, // 154 :: rgb(244,83,16)
+ 0xF9E9, // 155 :: rgb(246,126,76)
+ 0xFFDD, // 156 :: rgb(254,246,242)
+ 0x71EF, // 157 :: rgb(231,120,120)
+ 0xFB39, // 158 :: rgb(247,206,206)
+ 0xFF37, // 159 :: rgb(252,208,190)
+ 0x6D08, // 160 :: rgb(222,65,65)
+ 0x7FDE, // 161 :: rgb(253,244,244)
+ 0x7A4D, // 162 :: rgb(248,147,106)
+ 0xFB5A, // 163 :: rgb(248,216,216)
+ 0x7F79, // 164 :: rgb(253,220,206)
+ 0xFAD3, // 165 :: rgb(250,181,153)
+ 0x7F15, // 166 :: rgb(251,196,173)
+ 0x7F31, // 167 :: rgb(252,201,137)
+ 0xF9C8, // 168 :: rgb(246,116,62)
+ 0xFAB2, // 169 :: rgb(250,176,145)
+ 0xFF10, // 170 :: rgb(252,198,131)
+ 0x7A6E, // 171 :: rgb(248,155,117)
+ 0xFF9B, // 172 :: rgb(253,232,224)
+ 0xFFBB, // 173 :: rgb(254,240,221)
+ 0x7920, // 174 :: rgb(244,74,2)
+ 0x7FDC, // 175 :: rgb(254,243,229)
+ 0xFE21, // 176 :: rgb(251,141,6)
+ 0x7F53, // 177 :: rgb(253,210,155)
+ 0xF9E9, // 178 :: rgb(247,127,77)
+ 0xFF58, // 179 :: rgb(252,213,197)
+ 0xFE87, // 180 :: rgb(251,164,58)
+ 0xFF54, // 181 :: rgb(253,213,164)
+ 0xFEA9, // 182 :: rgb(251,174,78)
+ 0xFE21, // 183 :: rgb(251,143,10)
+ 0x79E8, // 184 :: rgb(246,120,67)
+ 0x7E87, // 185 :: rgb(251,163,54)
+ 0xFFDD, // 186 :: rgb(254,248,240)
+ 0x7F57, // 187 :: rgb(252,210,193)
+ 0x6800, // 188 :: rgb(212,0,0)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h index eba6d22..2be515d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/logo_gfx.h @@ -1,17 +1,17 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __logo_gfx__ -#define __logo_gfx__ -#include <stdint.h> - -#define logo_gfx_transparent_color_index 0 - -#define ubuntu_width 32 -#define ubuntu_height 32 -#define ubuntu_size 1026 -extern uint8_t ubuntu_data[1026]; -#define ubuntu ((gfx_sprite_t*)ubuntu_data) -#define sizeof_logo_gfx_pal 378 -extern uint16_t logo_gfx_pal[189]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define logo_gfx_transparent_color_index 0
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 378
+extern uint16_t logo_gfx_pal[189];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c index ac4f3b9..053323a 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/gfx/ubuntu.c @@ -1,40 +1,40 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -// 8 bpp image -uint8_t ubuntu_data[1026] = { - 32,32, // width,height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x43,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0xBC,0xBC,0x05,0x1E,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x59,0x3F,0x4C,0x0C,0x8E,0x12,0xA3,0xBC,0xBC,0xBC,0xBC,0x26,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x0E,0x08,0x08,0x08,0x08,0x08,0xA6,0x9E,0xBC,0xBC,0xBC,0xBC,0x41,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x89,0x13,0x08,0x08,0x08,0x08,0x08,0xA2,0x09,0xA0,0xBC,0xBC,0x93,0x56,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x81,0x0D,0x00,0x88,0x08,0x08,0x08,0x08,0x08,0x13,0xA4,0xA1,0x99,0x9D,0x94,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x01,0x07,0x0B,0x00,0x7D,0x84,0x69,0x8C,0x90,0x18,0x08,0x9A,0xA5,0x9C,0x92,0x0F,0x5C,0x09,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x53,0x07,0x07,0x06,0x15,0x00,0x5F,0x5A,0x00,0x00,0x91,0x9F,0x9B,0x08,0x08,0x8D,0x08,0x08,0x3C,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x07,0x07,0x07,0x07,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x8F,0x8A,0x08,0x08,0x08,0x51,0x48,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAD,0x01,0x07,0x07,0x07,0x7C,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x07,0x07,0x07,0x06,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x4F,0x08,0x08,0x08,0x0E,0x09,0x00,0x00, - 0x00,0x00,0x00,0x8B,0xA9,0xAB,0xBB,0x00,0x14,0x07,0x07,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x08,0x08,0x08,0x08,0x12,0x00,0x00, - 0x00,0x00,0x0A,0xA8,0x08,0x08,0xAE,0x17,0xBA,0xB7,0x07,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6F,0x6A,0x67,0x61,0x71,0x00,0x00, - 0x00,0x00,0x7F,0x08,0x08,0x08,0x08,0xB8,0x00,0xB4,0x07,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xB2,0x00,0xB9,0x07,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5B,0x64,0x6B,0x72,0x5E,0x54,0x00,0x00, - 0x00,0x00,0x09,0x87,0x08,0x08,0x18,0xB3,0xAF,0xB0,0x07,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xBC,0xBC,0xBC,0xBC,0x4E,0x00,0x00, - 0x00,0x00,0x00,0x0A,0x17,0x95,0xAC,0x16,0xB6,0x07,0x07,0x80,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xBC,0xBC,0xBC,0x4B,0x03,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x07,0x07,0x07,0x07,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0x04,0xBC,0xBC,0xBC,0x45,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x86,0x07,0x07,0x07,0x07,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x4D,0xBC,0xBC,0xBC,0x27,0x22,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x07,0x07,0x07,0x07,0x33,0x00,0x34,0x09,0x00,0x00,0x00,0x10,0x7B,0x05,0xBC,0xBC,0xBC,0xBC,0x20,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x07,0x2C,0x09,0x39,0x2D,0x44,0x47,0x57,0x6D,0x6C,0xBC,0xBC,0x04,0x05,0xBC,0x3E,0x1F,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x0B,0x02,0x2E,0x00,0x32,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0x76,0x7A,0x10,0x77,0x78,0x3B,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x36,0x2F,0xBC,0xBC,0xBC,0xBC,0xBC,0x66,0x75,0x62,0x70,0x60,0x50,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x04,0xBC,0xBC,0xBC,0xBC,0xBC,0x79,0x09,0x63,0x07,0x07,0x01,0x29,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x24,0x28,0x3D,0x42,0x11,0x55,0x68,0x07,0x07,0x07,0x07,0x21,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x06,0x07,0x07,0x07,0x19,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x07,0x07,0x02,0x1C,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x1B,0x1A,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x43,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0xBC,0xBC,0x05,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x59,0x3F,0x4C,0x0C,0x8E,0x12,0xA3,0xBC,0xBC,0xBC,0xBC,0x26,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x0E,0x08,0x08,0x08,0x08,0x08,0xA6,0x9E,0xBC,0xBC,0xBC,0xBC,0x41,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x89,0x13,0x08,0x08,0x08,0x08,0x08,0xA2,0x09,0xA0,0xBC,0xBC,0x93,0x56,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x81,0x0D,0x00,0x88,0x08,0x08,0x08,0x08,0x08,0x13,0xA4,0xA1,0x99,0x9D,0x94,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x01,0x07,0x0B,0x00,0x7D,0x84,0x69,0x8C,0x90,0x18,0x08,0x9A,0xA5,0x9C,0x92,0x0F,0x5C,0x09,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x53,0x07,0x07,0x06,0x15,0x00,0x5F,0x5A,0x00,0x00,0x91,0x9F,0x9B,0x08,0x08,0x8D,0x08,0x08,0x3C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x07,0x07,0x07,0x07,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x8F,0x8A,0x08,0x08,0x08,0x51,0x48,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAD,0x01,0x07,0x07,0x07,0x7C,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x07,0x07,0x07,0x06,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x4F,0x08,0x08,0x08,0x0E,0x09,0x00,0x00,
+ 0x00,0x00,0x00,0x8B,0xA9,0xAB,0xBB,0x00,0x14,0x07,0x07,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x08,0x08,0x08,0x08,0x12,0x00,0x00,
+ 0x00,0x00,0x0A,0xA8,0x08,0x08,0xAE,0x17,0xBA,0xB7,0x07,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6F,0x6A,0x67,0x61,0x71,0x00,0x00,
+ 0x00,0x00,0x7F,0x08,0x08,0x08,0x08,0xB8,0x00,0xB4,0x07,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xB2,0x00,0xB9,0x07,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5B,0x64,0x6B,0x72,0x5E,0x54,0x00,0x00,
+ 0x00,0x00,0x09,0x87,0x08,0x08,0x18,0xB3,0xAF,0xB0,0x07,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xBC,0xBC,0xBC,0xBC,0x4E,0x00,0x00,
+ 0x00,0x00,0x00,0x0A,0x17,0x95,0xAC,0x16,0xB6,0x07,0x07,0x80,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xBC,0xBC,0xBC,0x4B,0x03,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x07,0x07,0x07,0x07,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0x04,0xBC,0xBC,0xBC,0x45,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x86,0x07,0x07,0x07,0x07,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x4D,0xBC,0xBC,0xBC,0x27,0x22,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x07,0x07,0x07,0x07,0x33,0x00,0x34,0x09,0x00,0x00,0x00,0x10,0x7B,0x05,0xBC,0xBC,0xBC,0xBC,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x07,0x2C,0x09,0x39,0x2D,0x44,0x47,0x57,0x6D,0x6C,0xBC,0xBC,0x04,0x05,0xBC,0x3E,0x1F,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x0B,0x02,0x2E,0x00,0x32,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0x76,0x7A,0x10,0x77,0x78,0x3B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x36,0x2F,0xBC,0xBC,0xBC,0xBC,0xBC,0x66,0x75,0x62,0x70,0x60,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x04,0xBC,0xBC,0xBC,0xBC,0xBC,0x79,0x09,0x63,0x07,0x07,0x01,0x29,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x24,0x28,0x3D,0x42,0x11,0x55,0x68,0x07,0x07,0x07,0x07,0x21,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x06,0x07,0x07,0x07,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x07,0x07,0x02,0x1C,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x1B,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c index de618be..95c727a 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite/src/main.c @@ -1,39 +1,39 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Include the sprite data */ -#include "gfx/logo_gfx.h" - -void main(void) { - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette for our sprites */ - gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0); - - /* Fill the screen with color index 0 */ - gfx_FillScreen(0); - - /* Draw a bunch of different styled sprites on the screen */ - gfx_Sprite(ubuntu, 0, 0); - gfx_Sprite_NoClip(ubuntu, 32, 32); - gfx_TransparentSprite(ubuntu, 64, 64); - gfx_TransparentSprite_NoClip(ubuntu, 96, 96); - gfx_ScaledSprite_NoClip(ubuntu, 128, 128, 2, 2); - gfx_ScaledTransparentSprite_NoClip(ubuntu, 128, 0, 3, 3); - - /* Wait for a key to be pressed */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Include the sprite data */
+#include "gfx/logo_gfx.h"
+
+void main(void) {
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette for our sprites */
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ /* Fill the screen with color index 0 */
+ gfx_FillScreen(0);
+
+ /* Draw a bunch of different styled sprites on the screen */
+ gfx_Sprite(ubuntu, 0, 0);
+ gfx_Sprite_NoClip(ubuntu, 32, 32);
+ gfx_TransparentSprite(ubuntu, 64, 64);
+ gfx_TransparentSprite_NoClip(ubuntu, 96, 96);
+ gfx_ScaledSprite_NoClip(ubuntu, 128, 128, 2, 2);
+ gfx_ScaledTransparentSprite_NoClip(ubuntu, 128, 0, 3, 3);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json index 553842a..974161c 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|1000", - "hash|1", - "key|enter", - "delay|300", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "A green apple will be displayed", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "250E0F47" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|1000",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "A green apple will be displayed",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "250E0F47" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md index bd5fb0e..b0b9b48 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/readme.md @@ -1,10 +1,10 @@ -### GraphX Sprite Compression Demo - -An example of decompressing sprites created with ConvPNG. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Sprite Compression Demo
+
+An example of decompressing sprites created with ConvPNG.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c index f546e01..d1c1feb 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.c @@ -1,262 +1,262 @@ -// Converted using ConvPNG -#include <stdint.h> -#include "all_gfx.h" - -uint16_t all_gfx_pal[256] = { - 0xFFFF, // 00 :: rgb(255,255,255) - 0x4AA4, // 01 :: rgb(146,169,33) - 0xFFFF, // 02 :: rgb(255,255,253) - 0xCAA0, // 03 :: rgb(144,173,1) - 0xCAA0, // 04 :: rgb(148,176,1) - 0xCEC0, // 05 :: rgb(154,183,3) - 0xCAC0, // 06 :: rgb(152,181,3) - 0xFFFF, // 07 :: rgb(254,255,255) - 0xFFFF, // 08 :: rgb(253,254,253) - 0x4AC0, // 09 :: rgb(150,178,2) - 0xCAA0, // 10 :: rgb(147,174,3) - 0xC684, // 11 :: rgb(142,166,29) - 0x4AA4, // 12 :: rgb(148,172,32) - 0x7BFE, // 13 :: rgb(250,250,250) - 0x5301, // 14 :: rgb(166,196,5) - 0x4EE0, // 15 :: rgb(158,188,2) - 0x4AA3, // 16 :: rgb(146,170,27) - 0x4EE0, // 17 :: rgb(156,185,3) - 0xFFFF, // 18 :: rgb(255,254,255) - 0xC680, // 19 :: rgb(141,167,3) - 0xCEE0, // 20 :: rgb(160,190,3) - 0xCAA5, // 21 :: rgb(150,173,39) - 0xCAA4, // 22 :: rgb(152,175,31) - 0x4AA5, // 23 :: rgb(147,169,45) - 0xB600, // 24 :: rgb(110,132,3) - 0xCA84, // 25 :: rgb(144,167,34) - 0x4683, // 26 :: rgb(137,160,22) - 0x7FFF, // 27 :: rgb(252,252,251) - 0x4683, // 28 :: rgb(140,162,27) - 0x4684, // 29 :: rgb(140,161,34) - 0x46A0, // 30 :: rgb(143,170,1) - 0xC682, // 31 :: rgb(142,167,19) - 0x4AA7, // 32 :: rgb(150,172,59) - 0x4AA5, // 33 :: rgb(147,169,39) - 0xFBDD, // 34 :: rgb(244,245,242) - 0xD301, // 35 :: rgb(168,198,5) - 0xFBDE, // 36 :: rgb(247,248,245) - 0xCAA3, // 37 :: rgb(150,175,24) - 0x4280, // 38 :: rgb(135,160,3) - 0xBE20, // 39 :: rgb(120,143,3) - 0x3600, // 40 :: rgb(107,129,2) - 0x3A20, // 41 :: rgb(112,136,2) - 0xCAA1, // 42 :: rgb(149,176,6) - 0xCAA6, // 43 :: rgb(151,173,46) - 0x5722, // 44 :: rgb(173,203,15) - 0x4263, // 45 :: rgb(133,154,27) - 0xC664, // 46 :: rgb(137,158,30) - 0xC241, // 47 :: rgb(129,151,12) - 0xC680, // 48 :: rgb(137,164,1) - 0x7FFF, // 49 :: rgb(252,252,253) - 0xC262, // 50 :: rgb(135,158,18) - 0x4AA1, // 51 :: rgb(146,171,8) - 0x4AA3, // 52 :: rgb(147,171,23) - 0x4AA6, // 53 :: rgb(150,172,52) - 0xC260, // 54 :: rgb(131,157,2) - 0x6BB3, // 55 :: rgb(214,234,153) - 0xD2E0, // 56 :: rgb(162,192,3) - 0x4EC2, // 57 :: rgb(153,179,13) - 0x4AA2, // 58 :: rgb(146,172,17) - 0x5721, // 59 :: rgb(172,202,5) - 0xDB22, // 60 :: rgb(177,207,20) - 0x3E46, // 61 :: rgb(124,145,53) - 0x6FD6, // 62 :: rgb(224,241,178) - 0x6BB3, // 63 :: rgb(216,235,159) - 0xE791, // 64 :: rgb(207,229,139) - 0xBE45, // 65 :: rgb(126,149,40) - 0xD702, // 66 :: rgb(170,199,15) - 0x4264, // 67 :: rgb(130,152,35) - 0xEB92, // 68 :: rgb(211,232,146) - 0x3E60, // 69 :: rgb(127,153,1) - 0xC243, // 70 :: rgb(129,151,22) - 0xEFB5, // 71 :: rgb(223,240,173) - 0x5300, // 72 :: rgb(164,194,3) - 0x4262, // 73 :: rgb(132,154,16) - 0x3E45, // 74 :: rgb(123,145,45) - 0xCAA2, // 75 :: rgb(150,175,15) - 0xF7BC, // 76 :: rgb(237,238,233) - 0xB1C0, // 77 :: rgb(98,118,4) - 0xEFB4, // 78 :: rgb(221,238,168) - 0xFFFF, // 79 :: rgb(252,253,255) - 0xBE40, // 80 :: rgb(123,149,2) - 0x4265, // 81 :: rgb(131,153,41) - 0x4AA8, // 82 :: rgb(150,172,68) - 0x77DD, // 83 :: rgb(241,242,237) - 0xC684, // 84 :: rgb(142,164,33) - 0x6FB4, // 85 :: rgb(218,236,165) - 0x6790, // 86 :: rgb(203,225,133) - 0xD2E1, // 87 :: rgb(163,192,11) - 0x3E44, // 88 :: rgb(123,145,36) - 0x2DC0, // 89 :: rgb(94,113,2) - 0x31E0, // 90 :: rgb(101,123,1) - 0x73BC, // 91 :: rgb(232,233,228) - 0xC681, // 92 :: rgb(139,164,9) - 0x3E41, // 93 :: rgb(124,146,6) - 0xCEA9, // 94 :: rgb(154,175,75) - 0xCA85, // 95 :: rgb(144,167,40) - 0x5723, // 96 :: rgb(174,203,28) - 0xDB24, // 97 :: rgb(180,208,30) - 0xDB43, // 98 :: rgb(183,214,27) - 0xBA20, // 99 :: rgb(115,140,2) - 0x4264, // 100 :: rgb(135,155,37) - 0x3A21, // 101 :: rgb(117,138,6) - 0x5B47, // 102 :: rgb(183,212,55) - 0xC685, // 103 :: rgb(142,164,38) - 0xD721, // 104 :: rgb(175,208,7) - 0x73D7, // 105 :: rgb(230,244,191) - 0xB5E0, // 106 :: rgb(106,124,4) - 0xCEAA, // 107 :: rgb(157,176,86) - 0xBE27, // 108 :: rgb(123,143,60) - 0xCEA8, // 109 :: rgb(154,175,62) - 0x3E42, // 110 :: rgb(126,146,18) - 0x73D6, // 111 :: rgb(227,242,183) - 0x5F68, // 112 :: rgb(190,217,65) - 0x5B49, // 113 :: rgb(184,211,74) - 0x636D, // 114 :: rgb(195,220,104) - 0xDB26, // 115 :: rgb(178,206,52) - 0x5F64, // 116 :: rgb(186,217,37) - 0x4ECC, // 117 :: rgb(160,178,98) - 0xD2CD, // 118 :: rgb(165,181,109) - 0x4249, // 119 :: rgb(129,147,77) - 0xDF4C, // 120 :: rgb(189,215,98) - 0xBA25, // 121 :: rgb(118,140,45) - 0xFFFE, // 122 :: rgb(254,255,249) - 0xE36B, // 123 :: rgb(196,223,92) - 0x5F69, // 124 :: rgb(191,218,76) - 0x5B48, // 125 :: rgb(181,209,65) - 0x2DA1, // 126 :: rgb(93,105,5) - 0x5302, // 127 :: rgb(166,195,15) - 0xDB41, // 128 :: rgb(181,214,11) - 0x4AA7, // 129 :: rgb(146,168,56) - 0x6F98, // 130 :: rgb(218,228,199) - 0x5B45, // 131 :: rgb(182,211,42) - 0x678F, // 132 :: rgb(203,226,123) - 0xBA24, // 133 :: rgb(119,140,32) - 0x6792, // 134 :: rgb(207,227,145) - 0xDB25, // 135 :: rgb(177,206,40) - 0xE367, // 136 :: rgb(195,223,56) - 0xE36E, // 137 :: rgb(197,221,117) - 0x6388, // 138 :: rgb(198,225,67) - 0x4EE2, // 139 :: rgb(159,187,13) - 0xBE44, // 140 :: rgb(127,149,30) - 0xBA03, // 141 :: rgb(114,133,22) - 0x4EC5, // 142 :: rgb(156,179,40) - 0x6B97, // 143 :: rgb(213,225,188) - 0x5F66, // 144 :: rgb(188,218,50) - 0x3E47, // 145 :: rgb(127,147,61) - 0x2960, // 146 :: rgb(80,89,3) - 0xBE22, // 147 :: rgb(121,141,15) - 0x5B4A, // 148 :: rgb(185,211,85) - 0xC246, // 149 :: rgb(128,150,46) - 0x5F6A, // 150 :: rgb(191,218,86) - 0xEF7A, // 151 :: rgb(222,223,214) - 0x6F7A, // 152 :: rgb(218,218,210) - 0x56EF, // 153 :: rgb(170,185,121) - 0x739B, // 154 :: rgb(227,227,221) - 0xE774, // 155 :: rgb(206,223,168) - 0x2981, // 156 :: rgb(86,97,5) - 0x5F63, // 157 :: rgb(188,219,24) - 0x3E43, // 158 :: rgb(123,145,27) - 0x7FFE, // 159 :: rgb(251,252,245) - 0x3E49, // 160 :: rgb(126,144,71) - 0x2101, // 161 :: rgb(69,66,9) - 0xEFB5, // 162 :: rgb(219,237,173) - 0x424A, // 163 :: rgb(131,147,86) - 0x678D, // 164 :: rgb(202,227,110) - 0x6758, // 165 :: rgb(208,209,195) - 0xDF65, // 166 :: rgb(193,223,41) - 0xE776, // 167 :: rgb(208,223,178) - 0x6316, // 168 :: rgb(196,195,181) - 0x2541, // 169 :: rgb(74,79,5) - 0xA903, // 170 :: rgb(79,68,22) - 0xC665, // 171 :: rgb(139,159,41) - 0x73BA, // 172 :: rgb(229,234,217) - 0x678C, // 173 :: rgb(202,228,99) - 0x6773, // 174 :: rgb(202,219,159) - 0xEB59, // 175 :: rgb(213,213,202) - 0xEF99, // 176 :: rgb(224,232,207) - 0x5EF5, // 177 :: rgb(190,185,172) - 0x638A, // 178 :: rgb(199,226,81) - 0x4EC3, // 179 :: rgb(154,180,24) - 0xC64C, // 180 :: rgb(136,151,95) - 0xB5E3, // 181 :: rgb(106,125,21) - 0x3A27, // 182 :: rgb(119,137,59) - 0x6737, // 183 :: rgb(203,201,189) - 0xBA06, // 184 :: rgb(114,133,53) - 0xC66C, // 185 :: rgb(142,157,102) - 0x6793, // 186 :: rgb(208,227,154) - 0x5B2D, // 187 :: rgb(177,201,103) - 0xBA04, // 188 :: rgb(113,134,37) - 0xCA6D, // 189 :: rgb(145,159,111) - 0xE790, // 190 :: rgb(209,232,128) - 0x6370, // 191 :: rgb(195,217,130) - 0xDB30, // 192 :: rgb(184,205,130) - 0xF7BB, // 193 :: rgb(236,239,223) - 0x5F51, // 194 :: rgb(191,211,142) - 0x3DCA, // 195 :: rgb(125,115,83) - 0x5AD4, // 196 :: rgb(182,177,161) - 0xD6F0, // 197 :: rgb(176,189,134) - 0x5B2E, // 198 :: rgb(181,204,117) - 0x4E4F, // 199 :: rgb(153,147,125) - 0x5303, // 200 :: rgb(168,196,27) - 0xD271, // 201 :: rgb(163,157,136) - 0xDF12, // 202 :: rgb(186,197,151) - 0xC1EC, // 203 :: rgb(134,125,96) - 0xE755, // 204 :: rgb(202,214,170) - 0xCA86, // 205 :: rgb(144,165,47) - 0xD692, // 206 :: rgb(174,167,149) - 0x5AF2, // 207 :: rgb(178,188,152) - 0xCA8E, // 208 :: rgb(151,164,117) - 0xB146, // 209 :: rgb(98,86,46) - 0x6353, // 210 :: rgb(194,212,154) - 0x6372, // 211 :: rgb(199,220,146) - 0x31C3, // 212 :: rgb(99,114,23) - 0xDF4E, // 213 :: rgb(190,214,115) - 0x4AAA, // 214 :: rgb(151,169,83) - 0xE334, // 215 :: rgb(195,205,168) - 0x6756, // 216 :: rgb(204,212,184) - 0xB5E5, // 217 :: rgb(107,124,41) - 0x52D2, // 218 :: rgb(168,178,144) - 0x4A2E, // 219 :: rgb(144,138,112) - 0xD705, // 220 :: rgb(172,199,43) - 0xF3D8, // 221 :: rgb(232,245,200) - 0x4EE6, // 222 :: rgb(160,185,52) - 0x4EAF, // 223 :: rgb(156,168,126) - 0x3587, // 224 :: rgb(107,97,59) - 0x39A9, // 225 :: rgb(119,106,71) - 0x5F15, // 226 :: rgb(187,194,170) - 0xC669, // 227 :: rgb(142,159,74) - 0xBE09, // 228 :: rgb(120,135,72) - 0x52E4, // 229 :: rgb(162,188,30) - 0xD2B1, // 230 :: rgb(161,173,136) - 0xD70A, // 231 :: rgb(173,200,85) - 0xAD24, // 232 :: rgb(88,77,33) - 0x4266, // 233 :: rgb(133,152,53) - 0x52E9, // 234 :: rgb(163,188,71) - 0x52EB, // 235 :: rgb(165,186,92) - 0x4687, // 236 :: rgb(142,161,55) - 0xEFB7, // 237 :: rgb(226,239,187) - 0x5707, // 238 :: rgb(171,196,59) - 0xAD84, // 239 :: rgb(94,102,31) - 0xFBDC, // 240 :: rgb(249,248,232) - 0x35E7, // 241 :: rgb(109,120,58) - 0x5A45, // 242 :: rgb(178,146,44) - 0xDE48, // 243 :: rgb(190,149,63) - 0x6689, // 244 :: rgb(203,161,74) - 0x5604, // 245 :: rgb(171,131,29) - 0x5628, // 246 :: rgb(169,137,62) - 0xC5A3, // 247 :: rgb(136,108,28) - 0xEAAB, // 248 :: rgb(214,175,88) - 0xC9E4, // 249 :: rgb(152,126,33) - 0x5EA8, // 250 :: rgb(186,168,67) - 0x3521, // 251 :: rgb(104,73,8) - 0x5E8D, // 252 :: rgb(192,163,106) - 0x4DE8, // 253 :: rgb(157,122,65) - 0xCA09, // 254 :: rgb(146,134,76) - 0x566C, // 255 :: rgb(173,152,98) +// Converted using ConvPNG
+#include <stdint.h>
+#include "all_gfx.h"
+
+uint16_t all_gfx_pal[256] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x4AA4, // 01 :: rgb(146,169,33)
+ 0xFFFF, // 02 :: rgb(255,255,253)
+ 0xCAA0, // 03 :: rgb(144,173,1)
+ 0xCAA0, // 04 :: rgb(148,176,1)
+ 0xCEC0, // 05 :: rgb(154,183,3)
+ 0xCAC0, // 06 :: rgb(152,181,3)
+ 0xFFFF, // 07 :: rgb(254,255,255)
+ 0xFFFF, // 08 :: rgb(253,254,253)
+ 0x4AC0, // 09 :: rgb(150,178,2)
+ 0xCAA0, // 10 :: rgb(147,174,3)
+ 0xC684, // 11 :: rgb(142,166,29)
+ 0x4AA4, // 12 :: rgb(148,172,32)
+ 0x7BFE, // 13 :: rgb(250,250,250)
+ 0x5301, // 14 :: rgb(166,196,5)
+ 0x4EE0, // 15 :: rgb(158,188,2)
+ 0x4AA3, // 16 :: rgb(146,170,27)
+ 0x4EE0, // 17 :: rgb(156,185,3)
+ 0xFFFF, // 18 :: rgb(255,254,255)
+ 0xC680, // 19 :: rgb(141,167,3)
+ 0xCEE0, // 20 :: rgb(160,190,3)
+ 0xCAA5, // 21 :: rgb(150,173,39)
+ 0xCAA4, // 22 :: rgb(152,175,31)
+ 0x4AA5, // 23 :: rgb(147,169,45)
+ 0xB600, // 24 :: rgb(110,132,3)
+ 0xCA84, // 25 :: rgb(144,167,34)
+ 0x4683, // 26 :: rgb(137,160,22)
+ 0x7FFF, // 27 :: rgb(252,252,251)
+ 0x4683, // 28 :: rgb(140,162,27)
+ 0x4684, // 29 :: rgb(140,161,34)
+ 0x46A0, // 30 :: rgb(143,170,1)
+ 0xC682, // 31 :: rgb(142,167,19)
+ 0x4AA7, // 32 :: rgb(150,172,59)
+ 0x4AA5, // 33 :: rgb(147,169,39)
+ 0xFBDD, // 34 :: rgb(244,245,242)
+ 0xD301, // 35 :: rgb(168,198,5)
+ 0xFBDE, // 36 :: rgb(247,248,245)
+ 0xCAA3, // 37 :: rgb(150,175,24)
+ 0x4280, // 38 :: rgb(135,160,3)
+ 0xBE20, // 39 :: rgb(120,143,3)
+ 0x3600, // 40 :: rgb(107,129,2)
+ 0x3A20, // 41 :: rgb(112,136,2)
+ 0xCAA1, // 42 :: rgb(149,176,6)
+ 0xCAA6, // 43 :: rgb(151,173,46)
+ 0x5722, // 44 :: rgb(173,203,15)
+ 0x4263, // 45 :: rgb(133,154,27)
+ 0xC664, // 46 :: rgb(137,158,30)
+ 0xC241, // 47 :: rgb(129,151,12)
+ 0xC680, // 48 :: rgb(137,164,1)
+ 0x7FFF, // 49 :: rgb(252,252,253)
+ 0xC262, // 50 :: rgb(135,158,18)
+ 0x4AA1, // 51 :: rgb(146,171,8)
+ 0x4AA3, // 52 :: rgb(147,171,23)
+ 0x4AA6, // 53 :: rgb(150,172,52)
+ 0xC260, // 54 :: rgb(131,157,2)
+ 0x6BB3, // 55 :: rgb(214,234,153)
+ 0xD2E0, // 56 :: rgb(162,192,3)
+ 0x4EC2, // 57 :: rgb(153,179,13)
+ 0x4AA2, // 58 :: rgb(146,172,17)
+ 0x5721, // 59 :: rgb(172,202,5)
+ 0xDB22, // 60 :: rgb(177,207,20)
+ 0x3E46, // 61 :: rgb(124,145,53)
+ 0x6FD6, // 62 :: rgb(224,241,178)
+ 0x6BB3, // 63 :: rgb(216,235,159)
+ 0xE791, // 64 :: rgb(207,229,139)
+ 0xBE45, // 65 :: rgb(126,149,40)
+ 0xD702, // 66 :: rgb(170,199,15)
+ 0x4264, // 67 :: rgb(130,152,35)
+ 0xEB92, // 68 :: rgb(211,232,146)
+ 0x3E60, // 69 :: rgb(127,153,1)
+ 0xC243, // 70 :: rgb(129,151,22)
+ 0xEFB5, // 71 :: rgb(223,240,173)
+ 0x5300, // 72 :: rgb(164,194,3)
+ 0x4262, // 73 :: rgb(132,154,16)
+ 0x3E45, // 74 :: rgb(123,145,45)
+ 0xCAA2, // 75 :: rgb(150,175,15)
+ 0xF7BC, // 76 :: rgb(237,238,233)
+ 0xB1C0, // 77 :: rgb(98,118,4)
+ 0xEFB4, // 78 :: rgb(221,238,168)
+ 0xFFFF, // 79 :: rgb(252,253,255)
+ 0xBE40, // 80 :: rgb(123,149,2)
+ 0x4265, // 81 :: rgb(131,153,41)
+ 0x4AA8, // 82 :: rgb(150,172,68)
+ 0x77DD, // 83 :: rgb(241,242,237)
+ 0xC684, // 84 :: rgb(142,164,33)
+ 0x6FB4, // 85 :: rgb(218,236,165)
+ 0x6790, // 86 :: rgb(203,225,133)
+ 0xD2E1, // 87 :: rgb(163,192,11)
+ 0x3E44, // 88 :: rgb(123,145,36)
+ 0x2DC0, // 89 :: rgb(94,113,2)
+ 0x31E0, // 90 :: rgb(101,123,1)
+ 0x73BC, // 91 :: rgb(232,233,228)
+ 0xC681, // 92 :: rgb(139,164,9)
+ 0x3E41, // 93 :: rgb(124,146,6)
+ 0xCEA9, // 94 :: rgb(154,175,75)
+ 0xCA85, // 95 :: rgb(144,167,40)
+ 0x5723, // 96 :: rgb(174,203,28)
+ 0xDB24, // 97 :: rgb(180,208,30)
+ 0xDB43, // 98 :: rgb(183,214,27)
+ 0xBA20, // 99 :: rgb(115,140,2)
+ 0x4264, // 100 :: rgb(135,155,37)
+ 0x3A21, // 101 :: rgb(117,138,6)
+ 0x5B47, // 102 :: rgb(183,212,55)
+ 0xC685, // 103 :: rgb(142,164,38)
+ 0xD721, // 104 :: rgb(175,208,7)
+ 0x73D7, // 105 :: rgb(230,244,191)
+ 0xB5E0, // 106 :: rgb(106,124,4)
+ 0xCEAA, // 107 :: rgb(157,176,86)
+ 0xBE27, // 108 :: rgb(123,143,60)
+ 0xCEA8, // 109 :: rgb(154,175,62)
+ 0x3E42, // 110 :: rgb(126,146,18)
+ 0x73D6, // 111 :: rgb(227,242,183)
+ 0x5F68, // 112 :: rgb(190,217,65)
+ 0x5B49, // 113 :: rgb(184,211,74)
+ 0x636D, // 114 :: rgb(195,220,104)
+ 0xDB26, // 115 :: rgb(178,206,52)
+ 0x5F64, // 116 :: rgb(186,217,37)
+ 0x4ECC, // 117 :: rgb(160,178,98)
+ 0xD2CD, // 118 :: rgb(165,181,109)
+ 0x4249, // 119 :: rgb(129,147,77)
+ 0xDF4C, // 120 :: rgb(189,215,98)
+ 0xBA25, // 121 :: rgb(118,140,45)
+ 0xFFFE, // 122 :: rgb(254,255,249)
+ 0xE36B, // 123 :: rgb(196,223,92)
+ 0x5F69, // 124 :: rgb(191,218,76)
+ 0x5B48, // 125 :: rgb(181,209,65)
+ 0x2DA1, // 126 :: rgb(93,105,5)
+ 0x5302, // 127 :: rgb(166,195,15)
+ 0xDB41, // 128 :: rgb(181,214,11)
+ 0x4AA7, // 129 :: rgb(146,168,56)
+ 0x6F98, // 130 :: rgb(218,228,199)
+ 0x5B45, // 131 :: rgb(182,211,42)
+ 0x678F, // 132 :: rgb(203,226,123)
+ 0xBA24, // 133 :: rgb(119,140,32)
+ 0x6792, // 134 :: rgb(207,227,145)
+ 0xDB25, // 135 :: rgb(177,206,40)
+ 0xE367, // 136 :: rgb(195,223,56)
+ 0xE36E, // 137 :: rgb(197,221,117)
+ 0x6388, // 138 :: rgb(198,225,67)
+ 0x4EE2, // 139 :: rgb(159,187,13)
+ 0xBE44, // 140 :: rgb(127,149,30)
+ 0xBA03, // 141 :: rgb(114,133,22)
+ 0x4EC5, // 142 :: rgb(156,179,40)
+ 0x6B97, // 143 :: rgb(213,225,188)
+ 0x5F66, // 144 :: rgb(188,218,50)
+ 0x3E47, // 145 :: rgb(127,147,61)
+ 0x2960, // 146 :: rgb(80,89,3)
+ 0xBE22, // 147 :: rgb(121,141,15)
+ 0x5B4A, // 148 :: rgb(185,211,85)
+ 0xC246, // 149 :: rgb(128,150,46)
+ 0x5F6A, // 150 :: rgb(191,218,86)
+ 0xEF7A, // 151 :: rgb(222,223,214)
+ 0x6F7A, // 152 :: rgb(218,218,210)
+ 0x56EF, // 153 :: rgb(170,185,121)
+ 0x739B, // 154 :: rgb(227,227,221)
+ 0xE774, // 155 :: rgb(206,223,168)
+ 0x2981, // 156 :: rgb(86,97,5)
+ 0x5F63, // 157 :: rgb(188,219,24)
+ 0x3E43, // 158 :: rgb(123,145,27)
+ 0x7FFE, // 159 :: rgb(251,252,245)
+ 0x3E49, // 160 :: rgb(126,144,71)
+ 0x2101, // 161 :: rgb(69,66,9)
+ 0xEFB5, // 162 :: rgb(219,237,173)
+ 0x424A, // 163 :: rgb(131,147,86)
+ 0x678D, // 164 :: rgb(202,227,110)
+ 0x6758, // 165 :: rgb(208,209,195)
+ 0xDF65, // 166 :: rgb(193,223,41)
+ 0xE776, // 167 :: rgb(208,223,178)
+ 0x6316, // 168 :: rgb(196,195,181)
+ 0x2541, // 169 :: rgb(74,79,5)
+ 0xA903, // 170 :: rgb(79,68,22)
+ 0xC665, // 171 :: rgb(139,159,41)
+ 0x73BA, // 172 :: rgb(229,234,217)
+ 0x678C, // 173 :: rgb(202,228,99)
+ 0x6773, // 174 :: rgb(202,219,159)
+ 0xEB59, // 175 :: rgb(213,213,202)
+ 0xEF99, // 176 :: rgb(224,232,207)
+ 0x5EF5, // 177 :: rgb(190,185,172)
+ 0x638A, // 178 :: rgb(199,226,81)
+ 0x4EC3, // 179 :: rgb(154,180,24)
+ 0xC64C, // 180 :: rgb(136,151,95)
+ 0xB5E3, // 181 :: rgb(106,125,21)
+ 0x3A27, // 182 :: rgb(119,137,59)
+ 0x6737, // 183 :: rgb(203,201,189)
+ 0xBA06, // 184 :: rgb(114,133,53)
+ 0xC66C, // 185 :: rgb(142,157,102)
+ 0x6793, // 186 :: rgb(208,227,154)
+ 0x5B2D, // 187 :: rgb(177,201,103)
+ 0xBA04, // 188 :: rgb(113,134,37)
+ 0xCA6D, // 189 :: rgb(145,159,111)
+ 0xE790, // 190 :: rgb(209,232,128)
+ 0x6370, // 191 :: rgb(195,217,130)
+ 0xDB30, // 192 :: rgb(184,205,130)
+ 0xF7BB, // 193 :: rgb(236,239,223)
+ 0x5F51, // 194 :: rgb(191,211,142)
+ 0x3DCA, // 195 :: rgb(125,115,83)
+ 0x5AD4, // 196 :: rgb(182,177,161)
+ 0xD6F0, // 197 :: rgb(176,189,134)
+ 0x5B2E, // 198 :: rgb(181,204,117)
+ 0x4E4F, // 199 :: rgb(153,147,125)
+ 0x5303, // 200 :: rgb(168,196,27)
+ 0xD271, // 201 :: rgb(163,157,136)
+ 0xDF12, // 202 :: rgb(186,197,151)
+ 0xC1EC, // 203 :: rgb(134,125,96)
+ 0xE755, // 204 :: rgb(202,214,170)
+ 0xCA86, // 205 :: rgb(144,165,47)
+ 0xD692, // 206 :: rgb(174,167,149)
+ 0x5AF2, // 207 :: rgb(178,188,152)
+ 0xCA8E, // 208 :: rgb(151,164,117)
+ 0xB146, // 209 :: rgb(98,86,46)
+ 0x6353, // 210 :: rgb(194,212,154)
+ 0x6372, // 211 :: rgb(199,220,146)
+ 0x31C3, // 212 :: rgb(99,114,23)
+ 0xDF4E, // 213 :: rgb(190,214,115)
+ 0x4AAA, // 214 :: rgb(151,169,83)
+ 0xE334, // 215 :: rgb(195,205,168)
+ 0x6756, // 216 :: rgb(204,212,184)
+ 0xB5E5, // 217 :: rgb(107,124,41)
+ 0x52D2, // 218 :: rgb(168,178,144)
+ 0x4A2E, // 219 :: rgb(144,138,112)
+ 0xD705, // 220 :: rgb(172,199,43)
+ 0xF3D8, // 221 :: rgb(232,245,200)
+ 0x4EE6, // 222 :: rgb(160,185,52)
+ 0x4EAF, // 223 :: rgb(156,168,126)
+ 0x3587, // 224 :: rgb(107,97,59)
+ 0x39A9, // 225 :: rgb(119,106,71)
+ 0x5F15, // 226 :: rgb(187,194,170)
+ 0xC669, // 227 :: rgb(142,159,74)
+ 0xBE09, // 228 :: rgb(120,135,72)
+ 0x52E4, // 229 :: rgb(162,188,30)
+ 0xD2B1, // 230 :: rgb(161,173,136)
+ 0xD70A, // 231 :: rgb(173,200,85)
+ 0xAD24, // 232 :: rgb(88,77,33)
+ 0x4266, // 233 :: rgb(133,152,53)
+ 0x52E9, // 234 :: rgb(163,188,71)
+ 0x52EB, // 235 :: rgb(165,186,92)
+ 0x4687, // 236 :: rgb(142,161,55)
+ 0xEFB7, // 237 :: rgb(226,239,187)
+ 0x5707, // 238 :: rgb(171,196,59)
+ 0xAD84, // 239 :: rgb(94,102,31)
+ 0xFBDC, // 240 :: rgb(249,248,232)
+ 0x35E7, // 241 :: rgb(109,120,58)
+ 0x5A45, // 242 :: rgb(178,146,44)
+ 0xDE48, // 243 :: rgb(190,149,63)
+ 0x6689, // 244 :: rgb(203,161,74)
+ 0x5604, // 245 :: rgb(171,131,29)
+ 0x5628, // 246 :: rgb(169,137,62)
+ 0xC5A3, // 247 :: rgb(136,108,28)
+ 0xEAAB, // 248 :: rgb(214,175,88)
+ 0xC9E4, // 249 :: rgb(152,126,33)
+ 0x5EA8, // 250 :: rgb(186,168,67)
+ 0x3521, // 251 :: rgb(104,73,8)
+ 0x5E8D, // 252 :: rgb(192,163,106)
+ 0x4DE8, // 253 :: rgb(157,122,65)
+ 0xCA09, // 254 :: rgb(146,134,76)
+ 0x566C, // 255 :: rgb(173,152,98)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h index 514fb34..8a6281d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/all_gfx.h @@ -1,13 +1,13 @@ -// Converted using ConvPNG -// This file contains all the graphics sources for easier inclusion in a project -#ifndef __all_gfx__ -#define __all_gfx__ -#include <stdint.h> - -#define apple_width 220 -#define apple_height 240 -extern uint8_t apple_compressed[21119]; -#define sizeof_all_gfx_pal 512 -extern uint16_t all_gfx_pal[256]; - -#endif +// Converted using ConvPNG
+// This file contains all the graphics sources for easier inclusion in a project
+#ifndef __all_gfx__
+#define __all_gfx__
+#include <stdint.h>
+
+#define apple_width 220
+#define apple_height 240
+extern uint8_t apple_compressed[21119];
+#define sizeof_all_gfx_pal 512
+extern uint16_t all_gfx_pal[256];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c index 8baf3bf..043d52f 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/apple.c @@ -1,667 +1,667 @@ -// Converted using ConvPNG -#include <stdint.h> -#include "all_gfx.h" - -// 8 bpp image -uint8_t apple_compressed[21119] = { - 0xDC,0x20,0xF0,0x00,0x46,0x00,0x02,0x02,0x1B,0x12,0x12,0x07,0x4F,0x83,0x00,0x0D,0x00,0x12,0x02,0x0A,0x20,0x12,0x00,0x32,0x86,0x00,0x7A,0x12,0x22,0xD6,0x01,0x07, - 0x07,0x08,0x02,0x80,0xE4,0x4F,0x12,0x0D,0x20,0x12,0x1B,0x32,0xC0,0xDB,0x24,0x07,0x64,0x31,0xAF,0x7A,0x52,0xF0,0x00,0x02,0x8A,0xBE,0x03,0x34,0xB7,0xA8,0xB4,0x80, - 0x7A,0x9F,0xB7,0xC9,0xE1,0xCB,0x3E,0xC7,0xC1,0x0A,0x01,0x03,0x30,0xB7,0x80,0x4F,0x24,0x02,0xF0,0xA8,0xCB,0x51,0xE1,0x00,0xB7,0x9F,0x82,0xE6,0x31,0x03,0x34,0xB7, - 0x80,0x4F,0x7A,0x98,0xCB,0xE0,0xF7,0x01,0xF6,0xFD,0xFD,0xCE,0xF0,0x7A,0x02,0xA4,0xA2,0x06,0x58,0xDB,0x64,0xA9,0x9F,0x00,0xCE,0xAA,0xFB,0xFB,0xF6,0xF3,0xFC,0xFC, - 0x35,0xCC,0xB0,0xF3,0x40,0x4F,0x65,0x86,0xDB,0xBD,0xE0,0x9F,0xC7,0xE1,0xFD,0xF7,0xF0,0x00,0xDC,0x08,0xFF,0xC4,0xF0,0x1B,0x0C,0xC0,0xDB,0x03,0x07,0x00,0x9F,0xC3, - 0xA1,0xD1,0xDA,0x00,0xF9,0xF3,0xF3,0xF6,0x02,0xFC,0xED,0x9F,0x24,0x4F,0x07,0xB2,0xE4,0xA4,0xB9,0x00,0x08,0xF8,0x1B,0x03,0x0B,0xE0,0xDB,0xC8,0xB7,0xCB,0xA1,0x52, - 0xA1,0x95,0x00,0xF9,0xF8,0xF3,0xFD,0xFF,0xFC,0xB1,0x3C,0xFC,0xF0,0xE5,0x09,0x1B,0x9F,0x7A,0x31,0x42,0xDB,0x02,0xF4,0xDC,0x00,0x31,0x4F,0x02,0xA5,0xC4,0xC9,0x30, - 0xCB,0xE8,0xDC,0x1B,0xF7,0xF4,0xF4,0xD1,0xD2,0x9A,0x01,0x97,0x12,0x08,0x7A,0x0D,0x31,0x61,0xD7,0xC0,0x03,0x5E,0x83,0xDC,0x12,0xCC,0x73,0x22,0x7A,0xBB,0xE5,0xAF, - 0x81,0xDD,0xF5,0xF8,0x90,0xBB,0xF5,0xF5,0xFD,0x3C,0xD7,0x9F,0x13,0xDF,0x38,0x00,0x0C,0x27,0xCB,0xF0,0xD2,0x07,0x08,0xC4,0x01,0x4C,0xA8,0xE1,0x92,0xAE,0xF5,0x52, - 0xF2,0xF7,0xC0,0x63,0x3B,0xD3,0x12,0xBC,0x7D,0x96,0x2C,0x00,0x08,0xAC,0x18,0xDB,0xD1,0xFB,0xDE,0x68,0x94,0xF4,0xC0,0xDF,0xFC,0xB0,0xC2,0xF0,0x03,0x05,0xEE,0x64, - 0xBF,0x03,0x07,0x07,0xE0,0x03,0x22,0x08,0x9B,0x91,0xA5,0xDB,0xE1,0x4A,0xF6,0xF9,0xC8,0xBA,0xF5,0xF6,0x2E,0xC1,0x24,0x1B,0x02,0xF9,0x98,0x1A,0x02,0x00,0x08,0x9A, - 0x02,0x00,0xF3,0xD6,0xE9,0x0B,0xF0,0xCC,0xFE,0xEA,0xCC,0xDC,0x02,0xF6,0xF6,0x4C,0x24,0xEE,0x82,0x03,0x2C,0x00,0x0D,0x22,0x19,0xCE,0xC3,0xF9,0xB8,0x2A,0xF5,0xB1, - 0x74,0x96,0x69,0x0D,0xA7,0xBC,0xE9,0x06,0x20,0xD6,0x48,0xFE,0x61,0x1B,0x0D,0xF0,0xD7,0xA3,0x94,0xF2,0xDD,0x00,0xF8,0xFD,0xFD,0xC1,0x04,0x02,0x4F,0x0D,0x02,0x1B, - 0x06,0x30,0xDB,0x48,0xDD,0x1D,0x8E,0x9C,0xA7,0xFE,0xAD,0x81,0xF2,0xF4,0xF5,0xF7,0xFF,0xF0,0xB1,0x88,0x7A,0x9F,0x01,0x88,0xDA,0x13,0x10,0xBA,0x31,0x02,0x9F,0x0E, - 0xB0,0xFE,0xFF,0xF4,0x89,0xE8,0xDC,0x1C,0x9F,0xC4,0xA0,0x4F,0x31,0xC2,0xDB,0xD4,0x04,0x4F,0xE5,0xA2,0xC1,0xFF,0xF9,0xF8,0xC5,0xF7,0xCA,0x20,0x7A,0x31,0x32,0x83, - 0xDB,0x05,0xE4,0xAD,0x24,0x4F,0x07,0x7A,0x82,0xFE,0xFC,0xFC,0xE6,0x83,0xF9,0xF7,0xD8,0xB8,0x2B,0x16,0x80,0xC7,0xCF,0x72,0x7A,0x1B,0xB8,0xCD,0x7A,0xAC,0x6A,0xE0, - 0xF3,0xF8,0xBC,0xE6,0x40,0x1B,0x63,0x84,0xD8,0x8F,0xCB,0x6B,0xE4,0xA8,0xF3,0xAF,0x7E,0xF9,0x64,0xF4,0xB9,0xF2,0x6F,0xFC,0xCF,0x01,0xA4,0x00,0xC4,0x28,0xD4,0xF9, - 0xB9,0x81,0xF6,0xCC,0x12,0x1B,0x9F,0x90,0xCA,0x07,0x0D,0x07,0x4D,0x08,0x00,0x09,0xCC,0xDE,0x5C,0x00,0x05,0x19,0xC4,0x01,0x9F,0x76,0xF9,0xF6,0xFA,0xF2,0x83,0xDC, - 0xC1,0xCF,0x70,0x00,0x02,0x08,0x02,0x47,0x07,0x84,0xCB,0x05,0xDE,0xEA,0x3B,0x02,0x89,0x7C,0xF6,0xC4,0xF5,0x03,0xF9,0xCE,0x9F,0x31,0x31,0x07,0xBA,0x24,0x0D,0x3F, - 0x32,0x01,0x56,0xDF,0x1C,0xA0,0x98,0xA8,0xFE,0xDA,0x64,0x00,0xFE,0xAC,0x80,0xDB,0x12,0x9C,0xAF,0xA1,0xC4,0x90,0x80,0xA6,0xCF,0x2D,0xD0,0xC2,0x9F,0xC5,0xF6,0xF5, - 0x90,0x94,0xCA,0x0D,0x1B,0x12,0x22,0x9F,0xE0,0xCE,0xC9,0x08,0x1B,0xA5,0x00,0x0D,0x54,0x00,0x06,0xE1,0xD1,0x01,0x54,0xDB,0x00,0x00,0xAC,0xE1,0xF6,0xF2,0xC2,0x00, - 0xFD,0xA5,0x02,0x24,0xA6,0xBC,0x70,0xBC,0x89,0xD7,0x08,0x80,0xE2,0x89,0xD0,0x08,0x0A,0x12,0xBF,0x90,0xC1,0x30,0xD0,0x1A,0x02,0x22,0x99,0xF0,0xE0,0xDD,0xF9,0x37, - 0xFF,0xC1,0xC9,0xE7,0xAD,0x13,0x98,0xA8,0xA6,0x00,0x7C,0x24,0x00,0x04,0x6D,0x12,0x40,0x0D,0x50,0x85,0xDB,0x00,0xB0,0x24,0x53,0xF0,0x05,0xC1,0x24,0x8F,0x93,0xF9, - 0x20,0x96,0xF7,0xCA,0x7A,0xCB,0x0F,0x9F,0x24,0x00,0x69,0x22,0x00,0x53,0x95,0x00,0x4C,0x03,0xF3,0x0D,0x00,0x4B,0x16,0x0A,0x41,0xDF,0x03,0xA8,0xDB,0x36,0x02,0x00, - 0x7A,0xDC,0x7C,0x04,0x82,0x78,0x08,0x4F,0x12,0x53,0x00,0x07,0x07,0xD8,0x53,0x22,0xF0,0xC8,0x0B,0xAE,0x00,0xC1,0xC1,0xAC,0xAC,0x50,0xB0,0x00,0x82,0x8F,0xA7,0x00, - 0xCC,0x9B,0xC2,0xC2,0x9B,0xAE,0xE9,0xF7,0x37,0xF4,0xDE,0xCE,0x30,0xF6,0x55,0x0D,0xAE,0xCC,0xCC,0xA7,0x91,0x00,0x9B,0x52,0x00,0x8C,0x09,0x8F,0x82,0xB0,0x2E,0x5B, - 0xAC,0x89,0x00,0xCA,0x3E,0xC1,0x4C,0xF2,0x0C,0xE3,0x0F,0x31,0x4F,0x00,0xEA,0x23,0x4F,0x08,0x6E,0xE9,0x00,0x74,0x1B,0x48,0x6F,0x07,0x17,0xC2,0xDA,0xE7,0x00,0xD2, - 0x16,0x07,0x00,0x1B,0xB2,0x8C,0xA0,0xD1,0x50,0xAC,0xCC,0x16,0x8F,0xCC,0x00,0xD2,0x98,0x00,0xC2,0xC0,0x78,0xC6,0x02,0x01,0xBF,0xEB,0xF7,0x07,0xF2,0xFA,0xF3,0xF2, - 0xF3,0x0A,0xB8,0x0F,0xC0,0x04,0x8D,0x00,0x20,0xAE,0x83,0xEB,0xA7,0x33,0x61,0x82,0xDD,0x3F,0x00,0x42,0x35,0x00,0x61,0x0A,0xE4,0x82,0xDF,0x9F,0x8A,0xC1,0xF9,0x6E, - 0x05,0x0F,0x89,0x6C,0x81,0x74,0xDA,0x2A,0x04,0x8A,0xA7,0x86,0xD1,0xF3,0x6C,0xF4,0xCE,0xDD,0x8A,0xA6,0x42,0xA4,0xF2,0x00,0xA6,0x60,0xCC,0xB1,0xC0,0xA6,0x00,0xC6, - 0xC3,0x12,0x98,0x06,0xBB,0xBB,0x03,0xE7,0x94,0xBB,0x58,0xEC,0xDC,0x00,0xF4,0xFC,0xBF,0xBB,0xE7,0xBB,0x78,0x4E,0xD5,0x00,0xBF,0xCB,0x00,0xD3,0xD3,0xDB,0x0A,0x00, - 0x4F,0x82,0x00,0xC5,0x46,0x50,0x00,0xE1,0x65,0xC2,0x85,0xDF,0x48,0x70,0x9E,0x77,0x70,0x02,0xF0,0xDB,0x25,0x07,0x83,0x45,0x07,0x06,0xD8,0xAD,0x54,0xFD,0x76,0x8F, - 0x16,0xE3,0x7D,0x00,0x95,0xB2,0x82,0xDC,0xC6,0x6C,0x00,0xD9,0x18,0xE7,0x00,0xEE,0x73,0xDC,0x00,0xEE,0xEE,0xF7,0xF9,0xFA,0xFA,0xF8,0xF4,0x0C,0x78,0x7D,0xEE,0x7D, - 0x00,0x71,0x71,0x31,0x94,0x78,0x00,0x72,0xD5,0x89,0x60,0xDC,0xAE,0xA4,0x9A,0x8C,0xDB,0x09,0x06,0xA3,0x74,0xB2,0xBC,0x18,0xBE,0x8D,0x22,0x0D,0x9D,0x30,0xDD,0xAD, - 0x9F,0xB8,0x7D,0x18,0x8B,0xB7,0xF1,0x5B,0x86,0x49,0x82,0xD9,0xC1,0x8C,0xAE,0x72,0x00,0x22,0x87,0xC0,0x40,0xD5,0xB0,0xD7,0x00,0xEA,0xDE,0xDE,0xEE,0x87,0x57,0x60, - 0x57,0x1C,0x8B,0x87,0x16,0xA8,0x81,0xFA,0xF4,0xF3,0xFA,0xEE,0xDC,0x23,0x00,0x73,0xDF,0x0A,0xDD,0x0B,0xB9,0x22,0xC2,0xD3,0x82,0xDD,0xD3,0x94,0x49,0x9D,0x92,0x24, - 0x4D,0x89,0x00,0xA6,0x8F,0xDB,0x8D,0xDD,0x0B,0xB8,0x2D,0x86,0x60,0x5D,0xDB,0x0B,0x89,0x45,0x02,0x35,0xDD,0x24,0x89,0xC0,0x89,0x8F,0x99,0x9B,0xEC,0xDB,0x27,0xB5, - 0x2B,0xD8,0x0B,0xD9,0x06,0xB3,0x00,0x38,0x1A,0x48,0x57,0x7F,0x02,0x73,0x80,0xD8,0xF4,0xF4,0x00,0xFA,0x7D,0x73,0x66,0x83,0x87,0x60,0x87,0x88,0xDB,0x05,0xC2,0x82, - 0xDB,0xA7,0x50,0xD9,0xB8,0x4B,0x97,0xE7,0x94,0xA9,0x6E,0x05,0x40,0xDD,0xD5,0xFA,0x9F,0x3A,0xF5,0xC0,0xB3,0x00,0x42,0xBD,0x7A,0x32,0x24,0xF0,0xB1,0x9C,0x8A,0x27, - 0x00,0xB7,0xC2,0xC2,0x8C,0x60,0xDB,0x90,0xB3,0xA8,0xDA,0x00,0xE5,0x8B,0x05,0x03,0x11,0x48,0x06,0x14,0x42,0x60,0xC8,0x73,0x90,0x86,0xF4,0xF8,0x03,0x71,0x30,0x7D, - 0x70,0xDC,0xD8,0x00,0x66,0xDB,0x14,0x96,0x96,0x95,0x8B,0xBF,0xD9,0x04,0x8F,0x85,0xAE,0x61,0xD2,0x21,0xF6,0x5B,0xE2,0xCB,0x07,0x7F,0x00,0x20,0x00,0xAC,0x0C,0xCC, - 0xDD,0x06,0xF0,0x9F,0x7A,0xCB,0xF0,0x2F,0x86,0xDB,0x8C,0x98,0xE5,0xCE,0xB9,0x69,0xAE,0x95,0x96,0x8F,0x2A,0xF4,0xCA,0xB9,0x56,0x91,0x81,0xE7,0xEB,0xEA,0x6D,0x40, - 0xDC,0xE5,0x60,0x11,0xDF,0x57,0x09,0x57,0xDC,0x71,0xDC,0x03,0xDB,0x00,0xD4,0xEB,0x7D,0x66,0x05,0x66,0x90,0x70,0x70,0x71,0xAD,0xF4,0x28,0xF1,0xD3,0xD8,0x82,0xB4, - 0xD7,0x63,0xD8,0x97,0xD0,0x00,0xC6,0x68,0xA4,0x56,0xE9,0x02,0xA9,0x2E,0xCD,0x69,0x0C,0xC0,0x34,0xD7,0xE0,0xDC,0x9B,0xF7,0x5F,0xD6,0xC8,0xBA,0x00,0x4F,0x81,0x37, - 0xDC,0xE6,0xD3,0x0A,0xD4,0xCA,0xCC,0xCE,0x9E,0x4A,0x0D,0x53,0xB3,0x2C,0xA6,0xA4,0xDE,0x5A,0xDC,0x09,0xA1,0xE4,0xB0,0x79,0x98,0x73,0xAC,0x55,0xFF,0x20,0xDC,0x4C, - 0xB7,0x58,0x00,0x06,0x06,0x14,0x53,0x7F,0xCC,0xD3,0xC9,0xA8,0xF3,0xDD,0x00,0xD5,0x94,0x71,0x66,0x74,0x62,0x60,0x74,0xDD,0x66,0xD0,0x95,0xD5,0xD3,0xB3,0xEE,0x9C, - 0x93,0x6C,0xA0,0xB0,0xDE,0xA0,0xD8,0x50,0x56,0xDE,0x5A,0xD7,0x2C,0xBF,0xA5,0x57,0xD5,0xEE,0x36,0xDF,0x0A,0xCC,0x2B,0x3A,0xB0,0x53,0x9C,0xC3,0x85,0x83,0x0B,0xC8, - 0x88,0x12,0xC3,0xE2,0xAF,0x2D,0xE5,0x6B,0xCC,0x16,0x4F,0xD9,0x16,0x8C,0x1C,0x00,0x4B,0xED,0x59,0xB9,0x4D,0x93,0x8E,0xB0,0x1B,0xC2,0xDD,0x40,0xDC,0xC0,0xDA,0x39, - 0x05,0x00,0x11,0x05,0x09,0x11,0x14,0x38,0xC8,0x66,0x53,0x70,0xC9,0xB0,0xF3,0xDA,0x29,0xFA,0x72,0x93,0x05,0x61,0x61,0x83,0x2E,0xEF,0x90,0x8B,0xBA,0x3A,0xA4,0xC9, - 0xB2,0xB0,0xE8,0x00,0xD2,0x28,0xB7,0x8B,0xD5,0x78,0xC2,0x97,0x72,0x03,0xF7,0x3F,0xAE,0xB2,0x90,0xC6,0x22,0xF2,0x69,0x98,0x31,0x64,0x97,0x4C,0x24,0xF5,0xC4,0x5E, - 0xFF,0x87,0x10,0x26,0x3C,0xD3,0x96,0xDE,0x9F,0xC1,0xD9,0xED,0x20,0xD8,0x13,0xBA,0xBA,0x87,0xDA,0x09,0x4B,0xB3,0xD5,0x0F,0x09,0x85,0xE0,0xAB,0xB9,0xD8,0xE0,0x39, - 0x0B,0xBA,0x94,0x40,0x8E,0xB3,0x06,0x09,0x00,0x06,0x05,0x7F,0xC8,0xE5,0xDE,0xE7,0x78,0x0C,0xFA,0xF2,0xF5,0xF5,0xB7,0x8B,0xFA,0x89,0xBB,0x0A,0xE7,0x5B,0x30,0x2D, - 0xA2,0x9B,0xC1,0x32,0xA4,0x50,0x89,0x00,0x84,0xD5,0x72,0xE8,0x00,0xD8,0x14,0x94,0xB4,0x9F,0x02,0x03,0xBD,0x00,0xEE,0x00,0xB6,0x3D,0x9D,0xE5,0x47,0x00,0xA2,0xBB, - 0xC0,0xDD,0xD8,0xAF,0x30,0xAC,0x24,0xD5,0x81,0x44,0xDB,0x28,0xDD,0x19,0x24,0xB3,0x24,0x8F,0xC1,0x8C,0xD0,0x09,0x37,0xBA,0x64,0x00,0xF2,0x15,0x86,0x5A,0x08,0xA2, - 0x49,0x87,0xD7,0xBB,0x34,0xBE,0xB9,0x81,0x62,0xF9,0xDE,0xC0,0xDC,0x4B,0x16,0x69,0x8E,0x90,0xFC,0x00,0xBE,0xEE,0x76,0x21,0x84,0xFA,0xCD,0xE6,0xAE,0x36,0x87,0xA9, - 0xD8,0xAE,0xED,0xDE,0x52,0xBF,0x06,0xCE,0xC4,0x14,0x00,0x7C,0xAA,0x07,0xC7,0x91,0x66,0x73,0x73,0xCF,0xCA,0x00,0xF6,0x06,0x00,0x37,0xBB,0xBE,0xFD,0xBB,0x04,0xF9, - 0x56,0xCA,0xD4,0xEE,0xAC,0xB0,0x73,0xBC,0xD5,0xA8,0x7A,0x02,0x5A,0xEF,0xF5,0x80,0xD3,0xF6,0xAC,0xB3,0x2B,0xD8,0x09,0x92,0x00,0x86,0x2E,0x00,0xAE,0x08,0x70,0xE4, - 0xA5,0xB2,0x90,0xDF,0x28,0xFF,0x3B,0x04,0x9C,0x4C,0x97,0xAC,0x99,0xB2,0xC2,0xFA,0x00,0x03,0xF1,0xAC,0xD4,0x2E,0x13,0xE9,0x12,0x00,0xD5,0x64,0xA6,0x94,0xB7,0xDB, - 0xBE,0x00,0xC0,0x5F,0x90,0x03,0x06,0x86,0xD4,0xDD,0x03,0x73,0x61,0x3C,0xB5,0x4B,0xB7,0x4F,0xF6,0xBE,0xF7,0xA4,0x9A,0x88,0x00,0xC3,0xDE,0x4E,0xDD,0xFB,0xC1,0x25, - 0x8D,0xC0,0x94,0xDB,0x02,0x08,0x9F,0x22,0xCB,0xB4,0xC9,0x04,0xAE,0xE0,0xD6,0x40,0x29,0x40,0x56,0x00,0xBE,0xEB,0x08,0x07,0x84,0x09,0xE7,0x00,0xE2,0x84,0xC0,0xE7, - 0xC8,0x6B,0xA7,0x2E,0x06,0xC7,0x0B,0xC0,0xCE,0xAF,0x1C,0x02,0x6B,0xBF,0x12,0xE7,0xAA,0x29,0x26,0xB1,0xA6,0xB3,0x94,0x00,0x74,0x00,0x83,0xAF,0x02,0x0D,0xD2,0x0C, - 0xB0,0xB3,0x16,0x3C,0x68,0xDC,0x00,0x3C,0x87,0x7D,0x96,0x0A,0x94,0x7D,0xDC,0xC8,0xBB,0x27,0xE7,0x30,0x26,0x00,0xA0,0x34,0xBB,0x59,0xBA,0x58,0xDC,0x67,0xC3,0x02, - 0x20,0xDB,0x48,0x04,0x1B,0x1C,0x0D,0xC1,0xAC,0x9C,0xA6,0x9B,0xAF,0x24,0x40,0xA0,0xCA,0x84,0x90,0x00,0xA4,0xAD,0x6B,0x7B,0x00,0x72,0x00,0x2A,0x89,0xD5,0xD4,0x82, - 0x44,0x84,0x78,0xE7,0xCF,0xE1,0xBA,0x09,0x01,0x8F,0xBB,0x6B,0xDE,0xD1,0x00,0xA5,0x6B,0xE9,0x9D,0x14,0xE7,0x71,0x29,0x15,0xA9,0xE5,0x00,0xA0,0xBB,0xD2,0x62,0x00, - 0x74,0x83,0x02,0xD4,0x1A,0x04,0x80,0xD7,0x0B,0x66,0xFC,0x94,0xE0,0x06,0x68,0x3B,0xDC,0x1E,0x01,0xE5,0x14,0xA2,0x98,0xDC,0x29,0xC8,0xD3,0x39,0xF3,0xAE,0x02,0x00, - 0x8B,0xFD,0xF7,0x55,0xC2,0x22,0x97,0x24,0xC2,0xDB,0x04,0x6C,0x00,0xDA,0x12,0x24,0x06,0xDA,0xE5,0xA5,0xD3,0x44,0x94,0xA7,0xCA,0x00,0x89,0xD0,0x03,0x7B,0x7C,0xCC, - 0x3C,0x00,0x70,0x7C,0xD6,0x00,0x96,0xA4,0xEC,0x56,0xE8,0xE8,0x91,0x2B,0xF7,0xFA,0x05,0xE2,0x0F,0x02,0x12,0xC1,0x8E,0x94,0x58,0x11,0xCA,0x03,0x83,0x60,0x61,0x60, - 0x60,0x04,0xD5,0xCB,0x60,0x47,0xF1,0xE1,0x21,0xD9,0x83,0xBE,0x68,0xD1,0x06,0x9D,0x02,0x74,0xA2,0xB8,0x56,0x9D,0x00,0x08,0x70,0x6D,0x8A,0x4B,0x62,0x1B,0x60,0xFA, - 0x18,0x19,0x02,0x2C,0xB1,0x26,0x83,0x28,0x23,0x0E,0xDC,0x1A,0xDE,0x00,0xEA,0x45,0x00,0xEB,0x20,0x97,0xCA,0xD7,0x82,0x10,0x4C,0x31,0x12,0x20,0x97,0xB1,0x03,0x52, - 0xF3,0x31,0x09,0x4F,0x9F,0xC1,0x8F,0x27,0x93,0xD7,0x0F,0x00,0xA8,0x2A,0x82,0x4C,0x04,0x56,0x89,0xCB,0xB0,0xD6,0x00,0x8A,0xB2,0xB2,0x88,0x1F,0xA6,0xA6,0x88,0x8B, - 0x7A,0x02,0x00,0x83,0x83,0x00,0x87,0x62,0x2C,0x42,0xB2,0x5C,0xBF,0x31,0xFA,0x30,0x23,0x23,0xC7,0xAA,0x08,0xF0,0xAD,0x14,0x3C,0xF2,0x0E,0x02,0x2C,0x00,0x80,0x03, - 0x62,0x66,0x32,0x78,0x89,0x2D,0x3C,0x80,0xAC,0x00,0xDB,0x31,0x98,0xE9,0x44,0x97,0x32,0xB8,0xB0,0xE6,0x64,0x62,0xAE,0x87,0xE8,0x16,0xB7,0xA8,0x32,0x3C,0xC8,0xC4, - 0x92,0x0E,0x23,0xA9,0xE7,0xE6,0xE8,0x93,0x99,0xD3,0xBA,0xC0,0x2E,0xFC,0x4C,0xBB,0xC5,0xDC,0x06,0x8F,0x4C,0x4F,0xF2,0xA3,0x12,0x1B,0x31,0xAF,0x94,0x08,0x1C,0xAF, - 0xE8,0x03,0x69,0x05,0x22,0x9E,0xC4,0x55,0xE4,0x52,0xBE,0x86,0x6D,0x00,0xA4,0x88,0x18,0xB2,0xCE,0x19,0x8A,0x8A,0xB7,0x36,0x88,0x00,0xA6,0xF8,0x34,0x9B,0x0A,0x3C, - 0x00,0x6A,0x68,0x05,0x61,0xDA,0x3A,0xFA,0x10,0x3B,0x3B,0x2C,0x60,0xB2,0xA3,0xC2,0xAB,0x8F,0xE8,0x15,0xE7,0x10,0x00,0xC3,0xB9,0xCD,0x01,0x7B,0xA4,0x7C,0xE5,0x15, - 0xAA,0xE4,0x0A,0xB8,0xA6,0xB2,0xF4,0x61,0x8A,0xDC,0x8C,0xA2,0x80,0xDB,0x80,0x51,0x83,0xBB,0x6D,0x3C,0x2C,0x1A,0x3C,0x86,0x34,0x2C,0x3C,0x60,0x0E,0x00,0x57,0xFF, - 0x80,0xDD,0x05,0xEA,0x01,0xDB,0x8E,0x8E,0x44,0xBE,0xEB,0x30,0x76,0xC5,0xDD,0xD0,0x96,0x1B,0x02,0xA2,0xBA,0x70,0x07,0x05,0x6A,0xDA,0x09,0x08,0x03,0xDF,0x41,0x1C, - 0x02,0xF0,0xB0,0xF2,0x5E,0xDF,0xC8,0xE7,0xBA,0x89,0x0C,0x56,0xA4,0xB2,0xD2,0x2B,0x02,0x00,0xC2,0xD4,0xF0,0x08,0xD9,0xF0,0x00,0xD8,0xB0,0xA8,0xA0,0xB6,0xA0,0x92, - 0x65,0x83,0x15,0x90,0x61,0x02,0xDB,0x68,0xDD,0x91,0x62,0x96,0xB7,0xB0,0x14,0xA7,0xFA,0xD0,0xC4,0x52,0x00,0xD8,0xE0,0xCD,0x96,0x65,0x96,0xF4,0x45,0xAC,0x5B,0x19, - 0x2D,0x70,0x0E,0xA2,0xFE,0xE8,0x47,0xB9,0xAB,0x28,0x10,0x90,0xDB,0x16,0x61,0x8E,0xD4,0x45,0x0E,0x19,0x48,0x48,0x14,0x00,0x0F,0x11,0x45,0xB4,0x57,0xD2,0x80,0xDC, - 0xDE,0x6D,0x6B,0xC1,0xDD,0x99,0x91,0xBA,0x4C,0x7A,0x7B,0xF2,0xF4,0xCA,0x1D,0x48,0xA4,0x08,0x12,0x07,0x2F,0xF0,0x82,0xD2,0x2B,0xB7,0xC6,0x40,0xBE,0xA4,0xDF,0xAD, - 0xAD,0x03,0x96,0x85,0x95,0x03,0x89,0xA6,0x03,0xB0,0xD9,0xC3,0xD7,0xF9,0x1C,0x0A,0x90,0x88,0xA0,0xBC,0x98,0xF4,0xF4,0x84,0x4A,0x90,0xA6,0x56,0xA9,0x1E,0x16,0x05, - 0xA6,0xF5,0x07,0xCC,0xB3,0xFF,0xFA,0x05,0x0C,0x9B,0x2B,0xBF,0x42,0x7D,0x7C,0xB1,0x00,0x83,0xF2,0x00,0xE4,0xF0,0x45,0xE9,0xCD,0x84,0x7C,0xC9,0x4A,0xB0,0x39,0x80, - 0xD1,0xE5,0x63,0xA0,0x4D,0x9B,0x95,0xB4,0xA0,0x98,0x23,0x48,0x38,0x31,0x14,0x38,0x02,0x0F,0x39,0xE5,0x83,0xDC,0xE5,0x00,0xC0,0xDC,0x6D,0x5E,0xAB,0xD1,0xC8,0xBB, - 0xA5,0x53,0x6B,0x7A,0xAB,0x94,0xB7,0x1E,0x60,0xE7,0x07,0x53,0xB0,0xCA,0xB4,0xB1,0xBE,0x86,0x6B,0xE4,0x85,0x81,0x02,0x82,0x70,0xA8,0x00,0xAB,0xB0,0xA2,0xC3,0xD9, - 0x00,0x53,0x7C,0x84,0xAC,0xA6,0xBF,0xAC,0xDA,0x25,0xDD,0x0C,0xAB,0xBF,0x00,0x0D,0xBB,0x74,0x90,0xDC,0x00,0x1D,0xD5,0xE7,0x25,0x0D,0xB5,0xA2,0x5B,0x36,0xFB,0xF5, - 0x05,0x48,0x95,0xC0,0x4E,0xE6,0xB0,0x37,0xED,0x36,0x99,0x85,0x83,0xA6,0x4D,0xB5,0x96,0xDB,0x8F,0x92,0x0C,0x00,0x68,0x42,0x0E,0xD9,0x29,0x96,0x00,0x14,0x05,0x09, - 0xB3,0xDC,0xE5,0x51,0xB3,0xB8,0x00,0xEA,0x6B,0x5E,0x5E,0x6B,0x75,0x76,0x03,0xCF,0x8F,0xF0,0x02,0x4F,0x12,0xF4,0xD8,0x3B,0xD9,0xCA,0x90,0x4C,0xDA,0x16,0xD3,0x8C, - 0x99,0xB3,0x51,0xC7,0xF8,0x00,0xA5,0x53,0xBB,0xEB,0x04,0x88,0xD0,0x0B,0xDB,0x0A,0x0E,0xC3,0xE8,0x04,0x9C,0xEF,0xED,0xB3,0x6D,0x00,0x96,0xB5,0x92,0x0A,0x89,0x96, - 0xDA,0x99,0xB9,0x00,0xD2,0x48,0x7B,0xC4,0x1D,0x00,0xE5,0x0D,0xFA,0xDF,0x15,0x0B,0x13,0xC8,0x40,0x0F,0xBE,0xEA,0x00,0xCC,0xE9,0xC6,0xB6,0xC2,0xB1,0x85,0x99,0xDC, - 0x34,0x98,0xA5,0xF0,0x17,0x42,0x42,0x7F,0x00,0x40,0xDC,0x4B,0xC0,0xD9,0x4B,0x3A,0xB0,0xDC,0x30,0x5E,0x52,0xDB,0xC0,0xDC,0xC5,0x82,0x34,0x9F,0x07,0x94,0x83,0x75, - 0xEF,0xB0,0xDB,0x5A,0x24,0xEB,0xAB,0x86,0x95,0xBA,0xEC,0xB5,0xA2,0xC6,0xF5,0x82,0xDA,0x4C,0x00,0xF1,0x6C,0xDD,0x3B,0x00,0x9A,0x45,0xA6,0xBD,0x94,0x86,0x90,0xD7, - 0x1B,0xDB,0xAC,0xAD,0x82,0x81,0xAD,0x89,0x40,0x44,0x44,0x52,0xCA,0xBE,0xF0,0x05,0x08,0x37,0x37,0x55,0xA2,0x2F,0xA2,0x40,0x00,0xC2,0x0B,0x10,0x92,0xC3,0xE4,0xE2, - 0x04,0x72,0x80,0xD6,0x56,0xF7,0x22,0x00,0xBE,0x1D,0x71,0xA4,0x49,0xEF,0x61,0xDB,0x49,0xD0,0x96,0xFE,0xB5,0x54,0xBC,0x5A,0x94,0x53,0xCD,0xE1,0xDA,0x81,0x00,0x7F, - 0xB3,0x3A,0x09,0x04,0x03,0x80,0xE0,0x8E,0x6D,0x6D,0x18,0x20,0x52,0xD6,0x00,0x76,0xCA,0xB0,0x74,0x1B,0xC2,0x12,0x83,0x9B,0x84,0x3C,0x24,0x4C,0xD5,0xA7,0xC6,0xC0, - 0xDA,0x89,0x7C,0xBC,0xC2,0xAA,0x00,0x80,0x45,0x90,0xA6,0x86,0xBF,0x77,0xFC,0x52,0xAF,0xF6,0xE1,0x15,0x11,0x6E,0x85,0x8A,0x30,0xAD,0xBE,0xC8,0xC3,0xBC,0xB9,0x02, - 0x86,0x9B,0x81,0xCE,0xBA,0x80,0xD5,0x3F,0x55,0x3F,0xB0,0xD9,0x07,0x6F,0x69,0x69,0x4E,0x55,0x00,0xBA,0x0B,0x44,0x12,0x20,0xBA,0x05,0xA9,0x21,0x89,0x89,0x84,0x56, - 0x05,0xD8,0x17,0x12,0x20,0xF4,0x61,0xEE,0xDA,0x67,0x93,0x2A,0x80,0x80,0xED,0xB4,0x9D,0x3B,0x01,0x02,0xDC,0x48,0x95,0xF3,0xE5,0xA0,0x91,0x4B,0x09,0x06,0x14,0x04, - 0x09,0x39,0xB9,0x4A,0x35,0xDC,0x0C,0xBB,0x81,0xDF,0xE2,0x4C,0x12,0x4F,0x06,0x80,0xDB,0x9F,0xC8,0xEF,0x31,0x7A,0x6B,0x9F,0xEB,0x73,0xA1,0x91,0x80,0x96,0x7D,0xB2, - 0xF3,0x7C,0xF9,0xA5,0xA6,0x6F,0x99,0x60,0xD4,0x96,0x5D,0x8A,0x05,0x5B,0x04,0x00,0x90,0xEA,0x3C,0xE5,0x0A,0x70,0x96,0xA6,0x24,0x37,0x8D,0x00,0x3F,0x00,0xA2,0xD0, - 0x00,0xCC,0x6E,0x00,0x3E,0x07,0xC1,0xDA,0x69,0x74,0x07,0x12,0xA2,0x29,0xED,0xDD,0x0A,0x4E,0x84,0xE9,0xC1,0xCE,0x41,0xD9,0x23,0x30,0x55,0x08,0xB1,0x94,0xA4,0x96, - 0xB4,0xC7,0x79,0x70,0xFB,0x41,0xD6,0xA2,0x95,0x3C,0x50,0xDA,0xC3,0xD9,0xCE,0x70,0x57,0xC8,0x7F,0x05,0x60,0x0A,0xDA,0x09,0x01,0x2A,0x4B,0x16,0x16,0x0C,0x5F,0x81, - 0x44,0xB8,0x6B,0x02,0x99,0xD7,0x53,0x07,0x0D,0x12,0xC3,0xDD,0xEC,0xC8,0x2C,0x9B,0x43,0x02,0x07,0x34,0x79,0x9F,0xD7,0x40,0xDA,0xBF,0x7F,0xD5,0xEB,0xE6,0x8D,0xDB, - 0x1D,0x00,0x85,0xDB,0xFD,0xC2,0xAA,0xE1,0x8A,0x5B,0x84,0xBB,0x80,0xD9,0x13,0x88,0xAF,0x6A,0xB9,0xAD,0xA0,0xDA,0xA2,0xA7,0xBA,0x00,0xA3,0x2B,0xC8,0x0B,0x00,0x60, - 0x3E,0xC9,0x3E,0x60,0xED,0xDA,0xED,0x55,0x6F,0x07,0x81,0xDF,0xDD,0xDD,0xD8,0x0B,0xDB,0x5D,0x00,0x94,0xD4,0xC0,0xDA,0x4E,0xAB,0x05,0xDB,0x0A,0xAE,0x8F,0xFC,0x36, - 0x05,0x70,0x97,0x98,0xDB,0x49,0xA7,0x34,0x95,0x94,0xDC,0x0B,0x38,0xDB,0x06,0x8B,0xD9,0x00,0x0A,0x1E,0x04,0x4B,0x25,0x0B,0x16,0x10,0x54,0x81,0x95,0x40,0x75,0xCF, - 0x98,0x0D,0x97,0xBB,0xB0,0xDA,0x82,0xDE,0xC3,0x69,0x31,0x31,0xC1,0x40,0xDA,0x78,0x94,0x61,0x71,0xD5,0x51,0xD2,0x7F,0xBC,0x40,0xDA,0x80,0xB0,0xDB,0x56,0x9D,0xD7, - 0x60,0xCD,0x7B,0xE8,0x08,0xC4,0xB7,0xCE,0xD0,0x8B,0x84,0x7B,0xB2,0xB4,0x48,0x3F,0xD0,0x18,0xB9,0x73,0x06,0xB0,0x00,0x47,0xD3,0x50,0x6F,0xDA,0x61,0xCF,0xD3,0x01, - 0x00,0x3E,0x0C,0x7B,0xDD,0x00,0x06,0x47,0xDB,0x07,0x47,0x0A,0xB9,0x00,0x3E,0x07,0x0A,0xE4,0xAC,0x32,0xE6,0x25,0x94,0x40,0x90,0x7C,0xA4,0x56,0x30,0x72,0x70,0xDB, - 0xC3,0xDC,0xD6,0x0A,0x80,0xFE,0x00,0xAC,0x86,0x38,0x48,0x7C,0x8B,0xC1,0x11,0x00,0x11,0x8B,0x06,0x0A,0x03,0x0A,0x3A,0x25,0x03,0x3A,0x1F,0x5F,0x20,0xE3,0xE3,0xDC, - 0x0D,0x95,0x04,0x5B,0x7A,0x08,0xF1,0xF7,0x05,0x74,0xFB,0x07,0x1A,0x02,0x4C,0x82,0xEC,0xA8,0xD2,0xDA,0x1C,0x71,0x00,0x94,0xF7,0x90,0xB2,0xB3,0x59,0x62,0xB7,0x54, - 0x09,0x97,0x81,0x26,0xE1,0x59,0xC4,0x61,0xD9,0x6F,0xB6,0x4B,0xD9,0x45,0x9A,0x84,0xB5,0xA7,0xFF,0xD8,0x0B,0xBE,0x4A,0xDA,0x0B,0xDD,0x00,0x90,0xDE,0x2F,0x06,0xDB, - 0x0C,0xB9,0xA9,0x1C,0x69,0xA6,0x1C,0x55,0xE5,0x2C,0xDC,0x2A,0x07,0x46,0xA9,0x70,0xAD,0xAD,0x66,0x71,0x96,0xB8,0x61,0xDB,0x82,0xD4,0x23,0x92,0x92,0xAC,0x00,0xB7, - 0xB9,0xAA,0x30,0x8B,0x05,0xDB,0x60,0x39,0xDA,0x03,0x00,0x33,0x3A,0x33,0x5C,0x0B,0x17,0x81,0xEC,0xC0,0xDC,0xD0,0xDA,0xF1,0xE5,0x0D,0x45,0xB3,0x05,0xF2,0xAC,0x4F, - 0x28,0x02,0x53,0xDA,0x28,0xB6,0xA8,0xB5,0xA9,0xC2,0xDC,0x70,0x01,0x81,0xDA,0x85,0xDB,0xBD,0xC5,0x2F,0xF2,0x06,0x41,0xD4,0x86,0xD9,0x8C,0x94,0x8C,0x19,0xD4,0x2A, - 0xB2,0xEF,0x2C,0xDB,0x18,0x47,0xD8,0x4B,0x00,0x61,0xE1,0x6A,0xE6,0x69,0x89,0xDA,0x07,0xDD,0x07,0x61,0xDB,0x22,0x9F,0x61,0xDC,0x6A,0x29,0x47,0xAD,0x29,0x0A,0xB4, - 0x74,0x9F,0xC9,0xB8,0x56,0x58,0xF4,0x66,0xBD,0x00,0x8D,0x2D,0xEA,0x70,0xDC,0x7E,0x48,0x03,0xE2,0x35,0x48,0xF0,0xE4,0xAA,0x11,0x05,0x60,0x8B,0x00,0x39,0x04,0x0A, - 0x33,0x1E,0x0B,0x13,0x30,0x1A,0x19,0xDB,0x00,0xB9,0xD0,0xCA,0x82,0x0C,0x22,0x7A,0x02,0x1B,0xDB,0x20,0xB5,0x92,0x15,0x02,0xFD,0x4A,0x9B,0xA0,0x9C,0xDA,0x11,0x7D, - 0x21,0xDB,0x50,0xC0,0x90,0xC0,0xCE,0xB2,0x88,0xD3,0x85,0xB9,0x7B,0xA6,0x9A,0xD2,0x0E,0xF0,0x3B,0x0E,0xE2,0x04,0x44,0x8B,0xB5,0x86,0xB1,0xBD,0x14,0xAB,0x55,0x00, - 0xD0,0x09,0xDB,0x48,0xD0,0x11,0x21,0xDB,0x69,0x98,0xD5,0x0C,0x02,0x5A,0x21,0xB8,0x61,0xD3,0x38,0xDB,0x55,0x05,0x95,0xB6,0x5F,0x00,0x6B,0xF2,0x22,0x3C,0x61,0x68, - 0xC9,0xB7,0x0E,0x64,0xB5,0x3B,0x64,0x42,0xB8,0x14,0x36,0x11,0x06,0x00,0x11,0xF3,0xAA,0xE5,0x95,0x46,0x33,0xDA,0x00,0x26,0x5C,0x1C,0xCD,0xEC,0xC0,0xDC,0xE3,0xB9, - 0x06,0xE6,0xD7,0x5B,0x9F,0x7A,0xDD,0x02,0x08,0x0D,0x07,0x0A,0xC1,0xDB,0x7A,0x6E,0xC7,0xBF,0x02,0xC6,0xD5,0x71,0x7D,0x73,0x7D,0x87,0xCA,0xDD,0xF7,0x90,0x71,0x6F, - 0x00,0x7C,0xBC,0x2B,0xCF,0x1E,0x9D,0x02,0xD8,0x14,0x90,0x87,0xBE,0x55,0x98,0x9E,0x07,0xDA,0x1D,0xCC,0x61,0x9D,0x85,0xD8,0x95,0x8B,0x05,0xDB,0x85,0xD9,0xE5,0x0B, - 0xA3,0x30,0xDB,0x49,0x07,0x28,0xE5,0x4C,0xDB,0x0B,0x6F,0x21,0xB0,0xDC,0xB9,0xCB,0xB4,0x8E,0x77,0x37,0x02,0xFE,0x9D,0x03,0xEA,0xC5,0x90,0x5A,0xFE,0xEB,0x02,0xDA, - 0x30,0xDB,0xEC,0x02,0xDB,0x18,0x05,0xDB,0x51,0xB7,0x05,0xB3,0x39,0x06,0x33,0x80,0xDB,0x26,0x1C,0x1D,0x1D,0xCD,0x81,0xE3,0x00,0x23,0x95,0xC1,0xDC,0x0C,0xB7,0xA0, - 0xB7,0xE7,0x34,0x91,0x1C,0xD8,0xAE,0xC2,0xA1,0x86,0xBB,0x73,0x87,0x87,0xA0,0x62,0x73,0x83,0x9D,0x40,0xD9,0xA4,0x8A,0xD7,0x8A,0x83,0x4E,0x0B,0xE6,0xAB,0xA7,0x98, - 0x9C,0xC2,0x3F,0x40,0x8B,0xB7,0xBE,0x26,0x40,0x8E,0x9A,0x8F,0x4B,0x92,0x36,0xB6,0x48,0x47,0xA0,0xDB,0xC2,0xEC,0x30,0xDB,0x2B,0x10,0x05,0xB9,0x24,0x1F,0xDB,0x25, - 0xB4,0x8C,0xB9,0xA3,0x2F,0xBA,0x86,0xD9,0xB4,0x93,0xE2,0x9F,0x91,0x93,0x83,0x20,0xDB,0x2C,0x3C,0xDB,0x15,0x0E,0x80,0x69,0x48,0x01,0xDB,0x09,0xBC,0x00,0x39,0xDD, - 0x60,0x39,0xDA,0x5C,0xB0,0xDB,0x0B,0x2D,0x35,0x5E,0x52,0xB8,0x20,0xB1,0x97,0x22,0x9F,0xC3,0xDB,0xD4,0xA8,0x24,0x8B,0x49,0x4C,0x00,0x9F,0x97,0xB6,0x86,0xC2,0xC0, - 0xD5,0x90,0x9F,0x9B,0xE6,0x9F,0x61,0x57,0x62,0xAB,0xD4,0x9F,0xE0,0xE0,0x83,0x52,0x88,0x91,0x50,0xDA,0x5A,0xEE,0xEA,0xEF,0x7C,0xA4,0x8A,0xAC,0x91,0xDC,0xD3,0x7B, - 0x72,0x26,0xBE,0x4E,0xE9,0x59,0x53,0x93,0x0C,0x5B,0x4E,0xAD,0xD4,0x0B,0x81,0xD1,0x3A,0xF8,0xCA,0xCB,0xF2,0x05,0xDB,0xB5,0x90,0xCE,0xAF,0xB0,0x56,0xDD,0x14,0xE8, - 0xAE,0x40,0x03,0xBB,0xCA,0xCF,0xEA,0xA8,0x93,0x83,0x61,0xFB,0x40,0x68,0x83,0x7C,0x71,0xC0,0xE2,0x3B,0x38,0xC1,0xDC,0x14,0x8C,0x03,0x38,0x11,0x14,0xDB,0x30,0x00, - 0x2A,0x0A,0x0A,0x09,0x00,0x8B,0x2A,0x1E,0x30,0x36,0x26,0x36,0x36,0x05,0x2F,0x1A,0x2B,0x6D,0xD6,0x00,0xDC,0xDA,0xD8,0xC1,0xF3,0xE3,0x00,0x82,0x47,0xCE,0x7C,0x1B, - 0x27,0xD0,0xE0,0xDA,0x4C,0xC2,0xDA,0x49,0xA2,0x2C,0x73,0x2C,0xDA,0x2E,0x00,0xE7,0xA2,0x05,0x63,0xA6,0xD5,0x4F,0xD2,0x7D,0xB6,0x74,0x00,0xB9,0x5E,0x90,0x32,0x7B, - 0xC0,0xE4,0x07,0xDB,0x0B,0xAE,0x0C,0x8B,0xA2,0x56,0x00,0x6F,0xCF,0x13,0x84,0xDA,0xC1,0xE6,0x65,0xC8,0xF2,0x0A,0x00,0x15,0xDA,0x2A,0xE9,0x4E,0xD4,0xED,0x44,0x84, - 0xA0,0xD6,0x3C,0x84,0x89,0x04,0x03,0x89,0x78,0xA4,0x93,0x64,0x61,0xB7,0x3C,0x00,0x90,0x96,0x94,0x73,0x60,0x2C,0x42,0x0F,0xA2,0xB6,0xDF,0xCC,0x05,0x2C,0x09,0x04, - 0x00,0x09,0x05,0x34,0x2A,0x03,0x92,0xC0,0xD9,0x45,0x45,0x05,0x36,0x5D,0x2D,0x6D,0x6B,0x00,0xDB,0xDF,0xCF,0xAF,0x10,0x53,0x31,0x4F,0x50,0xDB,0x0D,0x4F,0xEC,0x49, - 0x53,0x97,0x03,0xDA,0x5D,0x12,0xDC,0x42,0x3C,0x81,0xDA,0x61,0x9D,0x6F,0xC9,0xA4,0x07,0x83,0xBC,0xEC,0xDB,0x16,0x70,0xDB,0x14,0xE8,0xB9,0xC3,0xF4,0x00,0xE2,0x0C, - 0x44,0xDB,0x2D,0xBE,0xE7,0xC5,0x7A,0xC6,0x7B,0xB0,0x7B,0xCE,0x09,0x82,0xD3,0xE7,0x0D,0x08,0x96,0x25,0xC3,0xDA,0x00,0xBC,0x06,0xB6,0xB2,0xAD,0x50,0x84,0xD6,0x7E, - 0x46,0xDE,0x18,0xA4,0x96,0xBD,0xA4,0x83,0xDB,0x0C,0xB7,0xB5,0x8F,0x1B,0x60,0xDC,0x0F,0x00,0x38,0xDB,0x0C,0xE0,0x37,0xC4,0xE6,0xA1,0x94,0x00,0x09,0xDA,0x19,0xB5, - 0x18,0x45,0x50,0xDB,0x05,0x27,0x5D,0xCD,0x5E,0x03,0xDB,0xD0,0xCE,0x71,0xAC,0x24,0x08,0x04,0xA1,0xDB,0x8E,0x82,0x00,0x07,0x0D,0x9F,0xAC,0xD8,0xD2,0xEC,0x5A,0x94, - 0x91,0x63,0xB9,0x29,0xB7,0x60,0xD5,0x3C,0xFB,0x03,0x00,0xF2,0x5B,0x88,0xBC,0xDA,0x24,0xB7,0x2F,0x04,0xD7,0xCC,0xDB,0x2C,0xB5,0xB9,0xAE,0x58,0x47,0xDB,0x4E,0xC5, - 0xF4,0xC5,0x0C,0xC1,0xDC,0x28,0xC7,0xAC,0xDA,0x39,0x00,0xC2,0xDB,0xE6,0x0A,0xD9,0x04,0xA2,0xE1,0xDB,0x5B,0x87,0xA3,0x97,0xBE,0xFD,0x2C,0xD4,0x30,0xD7,0xBA,0x00, - 0xDB,0x07,0x83,0x00,0x86,0xDC,0x76,0xDC,0xF0,0x00,0xDB,0x69,0xC8,0x8F,0x96,0xB3,0xF2,0xB8,0xE0,0x7D,0xBA,0xAE,0xF0,0xDA,0x0C,0x03,0xDA,0x28,0xB6,0xB0,0xDA,0xD9, - 0x00,0x45,0x04,0x46,0xCD,0xAA,0xF1,0x77,0xC8,0xB8,0x4C,0x1B,0x82,0x50,0xDB,0xA0,0xDC,0xF9,0xB5,0xC1,0x48,0x91,0xC0,0x12,0xBB,0xE7,0x7D,0x87,0xDB,0x69,0xAF,0x6A, - 0x80,0x00,0x91,0x45,0xA6,0x12,0xB6,0x80,0xAE,0x81,0x70,0xDB,0x58,0xB2,0xDB,0x53,0xD2,0x96,0x44,0x3F,0xAB,0x13,0x05,0xDB,0x15,0xC2,0xCA,0x9B,0x6F,0xAC,0x08,0xCB, - 0x2C,0xC5,0xAF,0xC4,0xB9,0x00,0xD2,0x8B,0xE6,0xA3,0x59,0x06,0x73,0xD9,0x92,0x4E,0xA1,0x3F,0x46,0x49,0xA3,0x9F,0x06,0xA6,0x9E,0x93,0xA9,0xF0,0x77,0xC9,0x31,0x2C, - 0x7F,0x00,0x42,0x42,0x7F,0x96,0xB2,0xDB,0x1B,0x02,0x11,0x00,0xB7,0xCC,0xA4,0x02,0x03,0xA1,0xDB,0x86,0xDA,0x04,0x63,0x76,0x9E,0x86,0x77,0xA7,0xCE,0x04,0xE2,0x97, - 0x53,0x1B,0x1B,0x12,0x38,0xCB,0x4F,0x4F,0x07,0x28,0x22,0xB0,0xDA,0x02,0xC6,0xE7,0xEE,0xEE,0x85,0xB8,0x68,0x41,0xDB,0x63,0xC7,0xB3,0xDC,0x68,0xD4,0x07,0xA6,0xB3, - 0xEC,0x83,0xBF,0xAC,0xB6,0xAD,0xF1,0x56,0xB2,0xF0,0xB8,0x8D,0x61,0xDA,0x92,0xB5,0x3F,0x50,0xAF,0x94,0xEC,0xD6,0x4E,0xB9,0x57,0xFD,0xF7,0x06,0x2A,0xF7,0xD0,0xDA, - 0x65,0x9F,0x25,0x09,0xBD,0xBF,0xD9,0x28,0xB4,0x5A,0xEF,0xC8,0xC9,0xF8,0xDB,0x50,0xD5,0x61,0xD6,0x7F,0x00,0xA9,0xFA,0x62,0x00,0x3C,0xB3,0xD6,0x02,0xBE,0xB7,0xE5, - 0xA1,0x11,0x61,0xDB,0x4F,0xC9,0x40,0xD8,0x05,0xEC,0x82,0x4B,0x03,0xB0,0xDB,0x59,0x45,0xBA,0x30,0x63,0xDC,0x1D,0xE9,0xEC,0x91,0x87,0x84,0xCF,0xD8,0x5B,0x0D,0x12, - 0x17,0xB7,0xAC,0x66,0x07,0x0D,0xB6,0x52,0x00,0xDA,0xDC,0xC8,0x60,0xCB,0xB6,0xC1,0xDC,0xDB,0x14,0x66,0xC8,0x3D,0xF2,0xA9,0x3C,0x90,0x31,0xD2,0xF6,0xD8,0xD1,0x92, - 0xA6,0x77,0x83,0x60,0xDB,0x89,0xE7,0xA3,0x91,0x4C,0xB5,0xB9,0x94,0x56,0x4E,0xAE,0x28,0x47,0xBA,0x12,0x6F,0x84,0xB5,0xA9,0x9B,0x3D,0x00,0x95,0xAF,0x84,0xDB,0xA1, - 0xFA,0x55,0x28,0x07,0x84,0xD4,0xBD,0xB4,0xD8,0x00,0xDB,0x4E,0xDA,0x0D,0x96,0xCA,0xDD,0x66,0xF5,0xE3,0xCA,0x83,0xD9,0x3B,0x02,0xD3,0x8F,0xDD,0x07,0x14,0xD6,0x94, - 0xDA,0x07,0x05,0x09,0x06,0x53,0xA6,0x76,0x86,0x3A,0x88,0xDB,0x00,0x27,0x63,0x65,0x9E,0x2C,0x95,0xE9,0xB8,0x88,0x98,0x53,0x24,0xDB,0x0F,0x89,0x6C,0xB6,0x8D,0xC2, - 0xC6,0x91,0x30,0xDA,0xCE,0x94,0xB0,0x61,0xDB,0x38,0x66,0x70,0xB9,0xD2,0x8B,0xAF,0x88,0xD0,0x7E,0x8B,0xFC,0xDD,0xC2,0xDB,0x8A,0xB6,0x98,0x04,0x7C,0xDC,0x30,0x7C, - 0xD7,0xC3,0xDB,0xEC,0x55,0x44,0xFD,0xE3,0x85,0xB2,0xE4,0xB6,0xA0,0xDC,0x4E,0xAF,0xEE,0x98,0xC6,0xAA,0x04,0x5C,0xF2,0xAB,0x04,0x27,0x93,0x16,0x07,0xB0,0xD6,0xAB, - 0x03,0xDC,0xC5,0x40,0x4C,0xED,0x84,0xB8,0x71,0xFF,0x99,0xC1,0x2A,0x6C,0xC1,0xDB,0x23,0xCD,0xA1,0x77,0xB5,0xD7,0x80,0x14,0x57,0x05,0x05,0x11,0xEF,0x02,0xB9,0x9A, - 0x06,0xED,0xA7,0x0A,0xDB,0x0C,0x00,0x5D,0x50,0xA4,0x94,0x03,0x29,0x65,0x85,0x95,0x91,0xA3,0xB8,0x21,0xB7,0x9A,0x0D,0x04,0x61,0xDB,0xF5,0xE1,0xBE,0xC8,0xB6,0x5A, - 0x90,0x19,0xC8,0x57,0x92,0xE1,0xD9,0xAB,0xEF,0x62,0xDB,0x0E,0x96,0x9B,0x66,0xCC,0xE1,0xD8,0x44,0xB8,0x83,0xAE,0xB8,0x5A,0x90,0x91,0x28,0xB2,0xD9,0x29,0xEA,0x41, - 0xA4,0xB2,0x96,0x89,0x37,0x65,0xB2,0x28,0xCB,0x58,0xC0,0x4A,0xC4,0xB2,0xCF,0x83,0x0C,0x39,0xBF,0x61,0xEC,0xC8,0x21,0xB7,0x97,0x18,0x3D,0xFB,0x49,0x00,0xF2,0xB7, - 0x44,0x89,0xB8,0x78,0xAB,0xEE,0x94,0xEB,0x5D,0x68,0x7C,0x91,0xB9,0x96,0x90,0x9D,0xAD,0xA2,0x92,0x3B,0xC1,0xDC,0x05,0x49,0x8F,0x45,0xB4,0x75,0x00,0x86,0x6A,0x2A, - 0x03,0xB4,0x94,0xC0,0xD7,0x27,0x27,0xA2,0xB7,0xA1,0x00,0x8C,0x4A,0x91,0x45,0xB8,0x56,0x87,0x12,0xAE,0xBE,0x21,0x08,0x1B,0xC2,0xBF,0xCB,0x22,0xF0,0x82,0xC8,0x7A, - 0x91,0x45,0x0E,0x27,0xEE,0x00,0x4B,0xEF,0x5F,0xA8,0xB2,0xDC,0x3B,0x81,0xDB,0x3C,0x85,0xDB,0x75,0xC6,0x70,0xC3,0xA6,0x74,0xB2,0xAA,0x00,0xFF,0x60,0x72,0xAD,0x96, - 0xA4,0x50,0x44,0xD7,0x2E,0xA2,0x03,0x81,0xBA,0x4E,0x38,0xDB,0x72,0x04,0x87,0xDB,0x14,0x2D,0x00,0x95,0xA5,0xAC,0xE1,0x93,0x9D,0x4B,0xE4,0x22,0xE8,0xD5,0x00,0x05, - 0xDA,0x72,0xB5,0xA4,0xD4,0xF0,0x94,0x7C,0x90,0xDB,0x33,0x06,0x66,0x2C,0xDC,0x67,0x3B,0x7C,0x87,0xDA,0x00,0xAE,0xEE,0x91,0x97,0xB6,0xD6,0xDF,0x1E,0x04,0xD7,0x14, - 0x00,0x1E,0x4A,0x26,0xDB,0x1D,0x00,0x81,0xDB,0x9E,0x58,0x65,0xB8,0x5D,0xC0,0x23,0xAC,0xC3,0xC0,0xDB,0x1B,0x1A,0xAC,0xA7,0xD7,0x92,0x5A,0x91,0x72,0x5D,0x85,0xDB, - 0x4A,0xA8,0x3C,0xD2,0x9B,0x97,0xF2,0xF0,0x55,0x80,0x4F,0xA8,0x03,0xA6,0x98,0xEB,0xB6,0xDB,0x17,0xDD,0x0D,0x72,0x93,0x0B,0x37,0x55,0x96,0x2A,0xCE,0xAC,0xB5,0x2C, - 0xBB,0x2C,0xC6,0x27,0xBB,0xC9,0xF9,0x00,0x13,0x4A,0xCC,0xC2,0xFB,0xC2,0xD5,0xD1,0x8D,0x44,0x5C,0x00,0xA4,0xE1,0xD9,0xE9,0x01,0x93,0x87,0xD3,0xCF,0x8B,0x71,0x02, - 0xA7,0xCD,0x69,0x73,0x8F,0x6F,0xC8,0x6B,0xEE,0xDE,0x81,0x00,0x11,0xB0,0xD6,0xB2,0xBB,0xA0,0xDB,0x3C,0x1E,0x13,0x00,0xDB,0x2D,0x95,0x24,0xD9,0x00,0x29,0x29,0x93, - 0x85,0x2D,0x4A,0xA0,0xF1,0x54,0x22,0xB5,0x55,0x02,0x0E,0x80,0xDB,0x53,0x82,0xD7,0x64,0xCA,0xB6,0xEA,0xC1,0xDA,0x38,0x20,0xDB,0x1D,0x60,0x3C,0x00,0x3F,0xD1,0x93, - 0x58,0xD7,0x5A,0x93,0x52,0xED,0xD5,0x84,0xE9,0x95,0xF2,0xBB,0x70,0x60,0xDB,0x56,0x72,0xDD,0x51,0xB9,0x61,0xDF,0xE1,0x03,0xDA,0x3B,0xA0,0xAD,0x55,0xA6,0x27,0xD8, - 0x09,0x6A,0xE8,0x4E,0x03,0x0B,0xA5,0x16,0xB0,0x2B,0xDA,0x07,0x40,0x02,0xBA,0x05,0x56,0x00,0xDF,0xCA,0xB2,0x2E,0xF2,0xF0,0xDA,0x93,0x03,0xF9,0xBF,0x77,0xDB,0x07, - 0x48,0xD6,0x82,0x48,0x23,0x57,0xA9,0xFC,0x05,0x2A,0x92,0x29,0x06,0xCC,0xF0,0xDB,0x57,0x30,0xBB,0x6B,0x00,0x36,0xDB,0x05,0x29,0x00,0xDA,0x18,0x29,0x8D,0x2C,0x58, - 0x3D,0xB8,0x99,0x5B,0xB2,0x5D,0x88,0xA1,0x08,0xC5,0xF0,0x28,0xC1,0xA7,0xDA,0x05,0xE7,0xDE,0x7F,0x62,0x59,0xB9,0x42,0xC9,0xAD,0x3C,0xAD,0xF2,0x86,0xDA,0xDB,0x09, - 0x62,0x16,0xEF,0xA8,0x04,0xD9,0x32,0xB4,0xC3,0xDC,0xDA,0x0A,0x00,0x57,0xAD,0xC9,0xF6,0x83,0x40,0xC1,0xD8,0x86,0x61,0xDC,0x20,0xBF,0x5A,0xC3,0xC8,0xB0,0xF6,0xA0, - 0x52,0x4B,0x13,0x17,0x25,0x0D,0xF3,0x06,0x04,0x87,0xDA,0x00,0x47,0x04,0xBE,0x84,0x02,0x5D,0xB1,0xB5,0xD2,0x56,0x00,0xD1,0x85,0x73,0x66,0x73,0x87,0x56,0x9F,0xEA, - 0xBA,0xEB,0xFC,0xB0,0x42,0xC2,0xDB,0x44,0x91,0xB2,0xB4,0xA2,0xBB,0x50,0x2A,0xDB,0x61,0x00,0x26,0x30,0x5C,0x26,0x48,0x94,0x29,0xB0,0x00,0x18,0x28,0x18,0x85,0x5A, - 0x79,0xF1,0x92,0x97,0x22,0x02,0xDB,0x07,0x1C,0xA7,0x9E,0xA4,0x64,0xFF,0xA6,0x7F,0x59,0x38,0x94,0xDB,0x29,0x8E,0x29,0xFF,0x3D,0xCB,0xA2,0xC0,0xA0,0xDB,0x1B,0x61, - 0x68,0x61,0xC3,0xEE,0xC6,0x96,0x94,0xDB,0x18,0x96,0xDB,0x58,0xDA,0x50,0xFD,0x93,0x86,0x86,0x05,0xDB,0x9D,0xEC,0x05,0xDB,0x4F,0x9A,0xF0,0xF7,0x0A,0x35,0x00,0x17, - 0xB2,0x0D,0x52,0x1B,0x3C,0xBD,0x60,0xDB,0x32,0x84,0x40,0xBE,0x72,0x8A,0xB6,0xF1,0xD7,0x66,0x28,0xD9,0x45,0x02,0xDB,0x57,0xD6,0xEE,0x4E,0xB5,0xC9,0x06,0x39,0x2A, - 0x00,0xDA,0x26,0x5C,0x8C,0xDB,0x00,0x65,0x8D,0x3D,0xB4,0x01,0xDF,0xCF,0xAF,0x4C,0x7A,0x7A,0x08,0x0F,0x4A,0xA7,0x53,0xB3,0xDB,0x91,0x42,0x8E,0xC8,0x8E,0x8C,0x83, - 0xDB,0x8A,0xAB,0xE1,0xC5,0x3C,0x22,0x98,0x68,0xD2,0x9A,0x97,0xEF,0x07,0x61,0x83,0xDB,0x47,0xC1,0x30,0xDB,0x05,0x96,0x72,0x89,0xBE,0x1D,0xD8,0x3D,0x90,0x14,0xB7, - 0xA5,0xB3,0x6F,0xA0,0x98,0xFA,0xED,0xED,0xA2,0x9C,0xFB,0xE7,0xDB,0x0B,0x0B,0xCA,0xDE,0xE5,0x2D,0x9D,0x9C,0x8E,0x6C,0xDC,0x28,0xDB,0x36,0x00,0x72,0xE7,0xAC,0x7D, - 0xDB,0x2E,0xB5,0x28,0xD9,0x35,0x87,0x7C,0x83,0x6A,0x7B,0xE0,0xDB,0x11,0xE8,0x00,0xD9,0x1C,0x03,0xA0,0xE4,0xB6,0x0A,0x50,0x13,0xDA,0x6B,0xED,0x60,0xDB,0x5D,0x4A, - 0x63,0xDB,0x14,0x00,0x28,0x0E,0x79,0x77,0xBD,0xDA,0x86,0xDF,0x24,0x9A,0x64,0xB6,0x12,0x86,0xC3,0xDB,0x80,0xB0,0xCA,0xC6,0xEB,0x6D,0x1F,0x16,0x7F,0x8B,0x51,0x59, - 0xD5,0x60,0xE6,0xD8,0xDB,0x6E,0xCF,0x3B,0xA5,0xEF,0xB2,0xB7,0xD7,0xEC,0xBD,0x3C,0xD0,0x04,0x7B,0x88,0x90,0x40,0xDB,0x2C,0x40,0xB3,0x2D,0xB9,0x66,0xA1,0x2E,0x0C, - 0xD7,0xFA,0xDA,0x0C,0xDB,0x0F,0xBA,0xBA,0x14,0x01,0x96,0x00,0x90,0x8B,0x37,0xBA,0xEC,0x0D,0xDB,0x2D,0xBD,0x37,0xC2,0x9C,0xDB,0x34,0x92,0x6B,0x89,0x01,0x7B,0xDB, - 0x07,0x74,0x65,0x96,0xB9,0xDB,0x1A,0x84,0xE2,0x07,0x42,0x38,0x23,0xE4,0xA3,0x7F,0x42,0x57,0x8B,0xB8,0x79,0xE3,0x41,0xDC,0x2C,0xA2,0xD3,0xC8,0xD0,0xDB,0x28,0x26, - 0xDB,0x12,0x27,0x85,0xDB,0x90,0xB9,0x5A,0xBC,0x77,0xD1,0x94,0xA8,0xA6,0x94,0xDB,0x02,0x08,0x4F,0x12,0x15,0x9F,0x9C,0x1A,0x4F,0x07,0x39,0x02,0xF0,0xA4,0xC0,0xDB, - 0xEA,0xB3,0x1B,0x8B,0x8B,0x05,0x52,0x48,0x00,0xDF,0xCD,0x8F,0x4F,0x6B,0x6C,0xED,0x02,0xF0,0x7E,0x79,0x00,0x9D,0xD3,0x70,0x4A,0x00,0x8A,0xB9,0xEE,0xA1,0x6B,0xE8, - 0x74,0x94,0xB5,0xED,0xC2,0xDB,0xA4,0x00,0x95,0x4B,0x90,0x2B,0x00,0x98,0xD2,0x2E,0x07,0x4A,0x0B,0xFF,0x5C,0xEB,0x28,0xCC,0x2C,0xB1,0x95,0x37,0xD2,0x34,0xE9,0x5B, - 0xC3,0xD1,0x33,0x56,0x89,0xB5,0x46,0x84,0x04,0x94,0x25,0x8D,0x24,0x95,0x8D,0xDD,0xBE,0xC8,0x02,0x57,0xA9,0xA0,0x76,0x14,0x00,0x92,0x80,0x8B,0xDC,0x87,0xE5,0x0A, - 0x4A,0x0A,0xDA,0x19,0xB6,0x5C,0xA3,0xA9,0x45,0x03,0x27,0x29,0xB5,0x56,0x04,0xDB,0x00,0x5A,0x79,0xE3,0xBD,0xCF,0x19,0x82,0x5B,0x31,0xB5,0x10,0x08,0x7A,0xA0,0xDB, - 0x2C,0x31,0xDB,0x0F,0x7A,0xC1,0xDB,0x02,0xCA,0xBB,0xDE,0xB3,0xB7,0xB1,0x5A,0xAA,0x82,0xB9,0xA9,0xFB,0x6E,0x86,0xA4,0x93,0xF7,0x00,0xC5,0x74,0x61,0x02,0x93,0x94, - 0xDA,0x14,0x9E,0xAA,0x8A,0xDB,0x0E,0xDE,0x14,0x70,0xCA,0xF8,0xA0,0x5D,0xC7,0x58,0xDB,0x79,0x00,0x9A,0x4E,0x9B,0x49,0xBA,0x8E,0xF9,0x60,0xE7,0xA5,0xFE,0xDE,0xEF, - 0x89,0xA6,0xBA,0x56,0x14,0x83,0x3F,0x25,0x33,0x5E,0x00,0x04,0xDB,0x03,0x7B,0x89,0x89,0x93,0x4A,0xDB,0x0B,0x95,0x4A,0xCA,0x19,0x00,0xDE,0x7F,0x48,0xB2,0xAF,0x50, - 0x57,0xDE,0x60,0xDC,0xE5,0x09,0xC8,0x8B,0x0A,0x06,0x82,0xDA,0x4A,0xFF,0x5E,0x45,0xDF,0x25,0x63,0xDB,0x0A,0x92,0x46,0x4D,0xB8,0x40,0xA0,0xB4,0xDA,0xA5,0x5B,0x10, - 0x0D,0x07,0x4F,0xB0,0xDB,0x36,0x12,0x8A,0xC0,0xDB,0x22,0x82,0xC0,0xDA,0xC0,0xEB,0x0C,0x15,0x39,0x06,0x11,0xB9,0x96,0x57,0xDB,0x1A,0xFB,0x12,0x61,0x60,0xCA,0xA9, - 0x3B,0x40,0xE2,0x3C,0x80,0x68,0x05,0xE0,0x6D,0x00,0x7C,0x20,0xDB,0x14,0x7C,0xAD,0xDB,0x16,0xA7,0x14,0xDA,0x14,0xC3,0x1A,0x85,0x6F,0x02,0x86,0x00,0x06,0xF4,0x05, - 0x02,0x3F,0xF9,0xC3,0x7A,0x00,0xA1,0x69,0x93,0x69,0x84,0x7D,0x15,0x23,0xA4,0x90,0xA1,0xDC,0x87,0xDB,0xD0,0x81,0x94,0x78,0x94,0x7D,0x41,0xDB,0x4F,0xC6,0x51,0x61, - 0xA1,0xDB,0x8F,0xE2,0x07,0x86,0x8A,0x91,0x94,0xDB,0x09,0x1E,0x02,0xDB,0xFA,0xB8,0xB2,0xDD,0x60,0xDB,0x78,0x28,0x01,0x00,0x5A,0x4D,0xB5,0x0D,0xB6,0xA3,0xDF,0xD7, - 0x94,0x10,0x4F,0xB8,0xDB,0x34,0x02,0xAD,0x1A,0x12,0x07,0x53,0xED,0xD2,0x92,0x38,0x25,0x93,0x35,0x11,0xC8,0x58,0x38,0x03,0xDC,0x7F,0xFB,0x47,0x60,0x6A,0x82,0xE3, - 0x48,0xC2,0xE4,0xAE,0x79,0x8C,0xF7,0xD0,0xAA,0x00,0xDC,0x09,0x03,0xDB,0x97,0x49,0x03,0xDB,0x01,0xE4,0x02,0xC2,0x5A,0x02,0xBA,0x08,0x06,0x52,0xBA,0xD5,0xD8,0xE9, - 0x4D,0x0D,0x2C,0x99,0xA9,0x56,0xB8,0x0B,0x3F,0xBA,0x8B,0x19,0x43,0xDC,0x8E,0x42,0x72,0x94,0xB1,0xD3,0x7D,0x77,0x80,0x73,0xA1,0xB7,0xDA,0x6E,0x5E,0xB0,0x0E,0xEC, - 0x7B,0xB9,0xD4,0x57,0xB5,0x57,0xBB,0xD8,0xDB,0x6F,0xCB,0xDC,0x00,0xA4,0xF5,0xFE,0x20,0xDB,0x25,0x27,0x93,0x4B,0xD8,0x00,0x6A,0x6A,0x4D,0x59,0x3E,0x4D,0xD9,0xBF, - 0xD1,0x94,0x4C,0xAC,0xED,0x30,0xDB,0x19,0x03,0x07,0xAC,0xDF,0x80,0xA5,0x25,0xDE,0x33,0x01,0xDB,0xDC,0xC8,0xD0,0x58,0xDC,0x35,0x7F,0x6B,0x7F,0x0A,0x6A,0x3B,0x23, - 0xDC,0xC2,0x8A,0xD6,0x15,0x23,0x21,0x9B,0x80,0x62,0x59,0xE8,0x20,0xDB,0x66,0xCF,0x7C,0x6A,0x78,0x04,0x84,0xB1,0x05,0x44,0x84,0xDC,0xC1,0xDA,0x20,0xCD,0x76,0x0D, - 0xA1,0x56,0xE1,0xB7,0xE7,0x5C,0x00,0xD5,0x15,0x29,0x41,0xEF,0x41,0xD3,0x27,0x2D,0x06,0xBA,0xC6,0x78,0x50,0xD8,0xFB,0x00,0x5F,0xDB,0x0C,0xC1,0x68,0xDA,0x2B,0xB6, - 0x92,0x0F,0x63,0x00,0xE0,0x4C,0xF7,0x05,0xC1,0xDA,0x04,0x4A,0xEF,0x0A,0xCA,0xB7,0x70,0xDB,0x61,0x27,0xDB,0x65,0xB6,0x6B,0xEA,0x58,0x00,0xDB,0x0C,0x59,0xD9,0xE4, - 0xB8,0xBE,0xBE,0x7C,0x31,0xBA,0x02,0x86,0x00,0xDB,0x24,0xB0,0x61,0xD7,0xDA,0xA3,0x92,0x0A,0xF2,0x95,0x8B,0x86,0xDB,0xDC,0x07,0x57,0x7F,0x00,0x60,0xDB,0x23,0xA0, - 0xDB,0x63,0x70,0xD7,0xF2,0xB8,0x42,0xF9,0xC6,0x80,0x82,0x81,0x62,0xC3,0xDB,0xA7,0x57,0x78,0xE8,0x94,0xF0,0xB4,0x84,0x56,0x9A,0xF6,0x89,0x5C,0x06,0xDF,0x00,0x13, - 0x0B,0x65,0xB5,0x3D,0x0F,0xF7,0x12,0x13,0x00,0x2A,0x8C,0x5A,0xB9,0x50,0xDB,0x18,0x89,0xD5,0xDB,0x51,0xB1,0x2C,0x73,0xB6,0xAC,0xDB,0x33,0xA6,0xE4,0x03,0xDB,0x0C, - 0xD2,0x35,0x02,0x05,0xCD,0xA2,0x75,0xB5,0x03,0xD7,0x0A,0x02,0xF9,0xB8,0x13,0x49,0x92,0x68,0x93,0x50,0x8B,0xDB,0x02,0x4D,0x4D,0x83,0xDC,0x94,0x40,0xE4,0xB9,0xCA, - 0x97,0x42,0x24,0xC0,0xDB,0x02,0xDF,0xCA,0xF2,0x52,0x4C,0x8F,0xAC,0x80,0xEA,0x0C,0xAB,0xC9,0x0A,0xE5,0xEE,0xE5,0x8B,0xCD,0x7A,0xD8,0x07,0x0E,0x6A,0xD7,0x8F,0xEA, - 0x9F,0x78,0x9E,0x56,0x93,0x9D,0x00,0x2F,0xF1,0xAB,0x56,0x93,0x8A,0x96,0x83,0x75,0x96,0x86,0xDB,0x84,0x4A,0x37,0x9B,0x75,0x56,0x87,0xB3,0x02,0x36,0x00,0xCD,0x5C, - 0x0B,0xF6,0x00,0x0F,0xBE,0x92,0x15,0x67,0x0C,0xBF,0x08,0x28,0xDB,0x6A,0x40,0x72,0xDB,0x0C,0x59,0x73,0x7D,0x52,0x73,0x91,0x58,0xD8,0x59,0xB7,0x6B,0x81,0x4F,0xC2, - 0x41,0xDB,0x4B,0xEC,0xA6,0x90,0xE7,0x2D,0x04,0xE9,0x55,0x03,0x02,0xA9,0x00,0x13,0xC9,0xFB,0x00,0x91,0x4D,0x00,0x63,0x3A,0x93,0x50,0xDB,0x61,0x03,0xD4,0xB8,0xB6, - 0x77,0xB8,0xCD,0x53,0x08,0x1B,0x85,0x01,0xDB,0x7A,0x8D,0x00,0x12,0x4F,0x5B,0xEE,0x72,0xB6,0x30,0x6D,0x34,0xDB,0x28,0x4B,0xDE,0xDB,0x2A,0x85,0xC2,0x7F,0xC8,0x3B, - 0x48,0xD3,0xFF,0xEE,0xBA,0x72,0x91,0xD1,0xF0,0xDE,0x79,0x61,0xE4,0x61,0xDA,0xC8,0x00,0xDB,0x0C,0x94,0xDB,0x35,0x06,0x56,0x66,0xC9,0xA8,0x12,0x16,0x99,0x89,0x5D, - 0x00,0x1F,0xE9,0x19,0xC5,0x05,0x85,0xCD,0x1D,0xFD,0xDD,0x0F,0x23,0x2C,0x1E,0xBF,0xB6,0xA6,0xDB,0x02,0x94,0x71,0x92,0x8C,0xC1,0xDB,0xDC,0x41,0xD7,0x4C,0x00,0xC8, - 0xCF,0x6B,0xB5,0xA9,0x8F,0x69,0xC7,0xF3,0x02,0x09,0x05,0xB2,0x25,0x09,0xCA,0xA1,0x13,0x81,0xDC,0x30,0x61,0xD9,0x30,0xDB,0x4E,0xCB,0xED,0x5A,0x90,0x2C,0xDB,0x06, - 0xD9,0xB8,0xE4,0x94,0x82,0x4C,0x1B,0x0D,0x15,0xB7,0x2E,0x9C,0xEA,0xA5,0x40,0xCC,0xCA,0x99,0xEB,0x8E,0x2A,0xC8,0xB6,0x39,0xE5,0x0C,0xE5,0x39,0x09,0x0F,0x65,0xC8, - 0xDC,0xC3,0xD6,0xC2,0xE2,0x2C,0x7F,0x9F,0xD5,0xD9,0x0D,0x98,0x32,0xB3,0xB7,0xCB,0xC2,0xDD,0xC8,0xB8,0x90,0x66,0xDE,0xC7,0xAB,0xBB,0xBD,0x2E,0xA9,0x73,0xD8,0x48, - 0xD3,0xC3,0xB8,0xD2,0x61,0xBB,0x92,0x87,0x94,0x81,0x00,0x96,0x7B,0xD5,0xD5,0x72,0x56,0x00,0xE8,0x19,0xA5,0x2A,0xBF,0x1B,0xAE,0x02,0x0B,0xAA,0x00,0x13,0x8A,0xB7, - 0x5A,0xFF,0xEC,0x2D,0xDB,0x28,0xB7,0xBC,0x03,0xD4,0x2B,0xC9,0x76,0xD7,0x74,0x0E,0x00,0x91,0x98,0xDA,0x3D,0x8B,0x00,0xC7,0xE9,0x94,0x37,0xC7,0x51,0x0A,0xB4,0x57, - 0xB4,0x61,0xDB,0xA4,0x03,0x5C,0xDE,0xC2,0x63,0x63,0x80,0xDC,0x2F,0x27,0xA0,0xD9,0x91,0x93,0x2A,0x02,0x90,0x94,0xD9,0xB6,0x1D,0xB4,0xE2,0x9A,0x85,0xA1,0x08,0x40, - 0xDB,0xA7,0xC9,0x60,0x53,0xDB,0xC5,0x0C,0x76,0xEA,0x16,0x2A,0x00,0x39,0x8B,0xC0,0xDB,0x04,0x05,0x03,0x14,0x7F,0xDC,0x73,0x2C,0x48,0x05,0xAA,0x91,0xD3,0x99,0xD1, - 0x05,0x2C,0xD6,0x9C,0x80,0x16,0xDB,0x16,0xBB,0x42,0x66,0x71,0x78,0x83,0xC8,0x94,0x4B,0xC1,0x09,0x8B,0x99,0x08,0xEC,0x00,0xD2,0x1D,0x78,0x00,0xBD,0xA5,0x3F,0x19, - 0xD5,0x02,0x03,0x00,0xF9,0x03,0x06,0xEC,0x00,0xF2,0x30,0xEE,0xAF,0x02,0x03,0x22,0xF9,0x00,0xA6,0xA5,0xE8,0xC3,0xDB,0xDA,0x0E,0x66,0xFB,0x60,0x69,0xC8,0x7C,0xDC, - 0x18,0x8B,0xD8,0xFF,0xBF,0x4B,0x00,0x09,0xC6,0x7C,0xDA,0x2E,0x00,0xF9,0xB9,0x45,0x22,0x8D,0x58,0xDD,0x51,0xB8,0x48,0x91,0x9C,0xA4,0xDB,0x00,0xB5,0x94,0x40,0xA3, - 0xCF,0x98,0x24,0x21,0x07,0x07,0x60,0xDB,0x6A,0x4F,0xEE,0xD7,0x68,0xC5,0x92,0x16,0xF2,0x4E,0xB9,0x7F,0x06,0x58,0x03,0xD9,0x63,0xC8,0x73,0x23,0x69,0xA7,0xD0,0xC5, - 0xCC,0xC8,0x47,0xB1,0x61,0xDB,0x79,0x80,0x40,0xDC,0x62,0xA2,0xB9,0xC1,0xDC,0x96,0x54,0x00,0x9E,0x0B,0xA4,0xC0,0x09,0x51,0x8A,0x84,0x74,0x08,0x8E,0x57,0x00,0xE5, - 0xB6,0x86,0xE5,0xB3,0x97,0x0D,0xCD,0x21,0x00,0x7A,0x18,0x0D,0xD5,0x5B,0x00,0x19,0x69,0x71,0x8C,0xB1,0xCA,0x83,0x73,0x6F,0xC2,0xAD,0xE8,0x25,0x8F,0xBD,0xC7,0x2B, - 0xE8,0xC8,0x00,0x35,0x8B,0x06,0x00,0x04,0x3D,0xC6,0x04,0xDC,0xA1,0xD9,0x61,0xDA,0x69,0x8D,0x36,0x00,0xB8,0x52,0x86,0xDB,0x95,0x94,0xDB,0x0D,0xBC,0x94,0x1A,0xE6, - 0xF0,0xC2,0xE0,0xDB,0x4F,0x6A,0x0D,0xEE,0xD2,0xC0,0xDB,0x35,0x25,0x78,0x2A,0x4F,0xDE,0x7E,0x5F,0x60,0xDB,0x1F,0x92,0xF4,0x65,0xDB,0x19,0xB8,0x52,0x99,0x5E,0x7C, - 0xDC,0x0A,0x61,0x00,0x90,0xDE,0x19,0x74,0xBA,0x28,0x73,0xDC,0x2C,0xBB,0xBF,0xD9,0xAE,0x07,0x08,0xCB,0x92,0xC8,0x0E,0x0F,0x42,0xB8,0xAC,0xB4,0xD9,0x00,0x70,0x93, - 0x1A,0x94,0x7C,0x1B,0x7C,0x8A,0xDD,0xAE,0x1B,0x17,0x50,0xF5,0xAB,0x2B,0xDE,0x0B,0x27,0xD1,0x92,0x73,0x8E,0xB6,0xB8,0x58,0xDF,0x56,0xD7,0x7B,0xCD,0xA9,0x6A,0x48, - 0xEC,0x6F,0x7B,0x79,0xCB,0xB7,0x9B,0x5C,0xDA,0x25,0x00,0xB0,0xDA,0x2E,0x26,0x30,0xA3,0x67,0xDB,0x0C,0xBC,0xA5,0xDB,0x0B,0x01,0x50,0x59,0xDD,0x52,0xF0,0x88,0xBD, - 0xA8,0x5B,0x60,0xDB,0x0C,0x24,0xAC,0xDB,0x01,0x99,0xEA,0x2B,0x3A,0x04,0x60,0xDB,0x05,0xB6,0xC9,0x6B,0x06,0xF7,0xA8,0x06,0x57,0xDB,0x0E,0x57,0x0F,0xA9,0x6A,0xBE, - 0x3C,0xE7,0x5D,0x3B,0xA6,0x5F,0xBA,0xD0,0xDC,0x1A,0x61,0x87,0xF2,0xB0,0x7B,0xD8,0x15,0x96,0x7D,0x7C,0xA1,0x9A,0xF8,0xD9,0xA5,0x35,0x94,0x06,0x7C,0x7B,0xE6,0x78, - 0xE2,0x77,0x7D,0xC7,0x2B,0x70,0xD7,0xAF,0xBD,0x24,0x00,0xD2,0xBF,0xF5,0x14,0x00,0x7B,0x4F,0x24,0x00,0x75,0x0A,0x28,0x41,0xDB,0x9F,0x49,0xDC,0xDC,0x58,0x60,0x8B, - 0xBC,0xC8,0x92,0xAE,0x76,0xCE,0x00,0x8B,0x39,0x00,0xBA,0xB0,0x45,0xEC,0xE4,0x00,0xB6,0x2E,0xFF,0xAD,0xED,0x6D,0x8C,0x26,0x00,0x99,0xEF,0x72,0xB5,0xBC,0xE1,0xC0, - 0xDB,0xB9,0xE2,0x42,0xAC,0xA1,0xDB,0xD8,0x82,0x1B,0x53,0xB0,0x2C,0xCC,0xC2,0xDB,0x14,0x2A,0x93,0x8C,0x04,0x8E,0xF0,0xDD,0xA6,0x03,0x8B,0xF9,0x8F,0x57,0x00,0x04, - 0x79,0x14,0xE2,0x4C,0xE7,0x48,0xFB,0x04,0x7E,0xB5,0x2D,0xD1,0xE8,0xDC,0x3F,0xC3,0x61,0x83,0xDB,0x41,0xCC,0xAB,0xAC,0x87,0x00,0xB0,0xE7,0xB5,0xBB,0xD9,0x0C,0x7D, - 0xA5,0x79,0x00,0xB3,0x65,0xB0,0x41,0xD6,0xCF,0xCC,0x04,0x7E,0x12,0x00,0xD6,0x1F,0x12,0x05,0x43,0x81,0x2A,0xAE,0x73,0x23,0x55,0x07,0x1F,0x4E,0x9C,0xDB,0x15,0x82, - 0x75,0xC6,0xB9,0xA0,0xF9,0x6B,0xB6,0x5A,0xE7,0xB4,0x06,0x8A,0x54,0x06,0xA0,0xA4,0x04,0xEB,0x5B,0x03,0xDE,0xC8,0xEE,0x81,0xF2,0xDC,0x42,0xB5,0xB9,0xA4,0xD1,0x00, - 0x6A,0x00,0xDB,0xD4,0xB5,0xF0,0x10,0x97,0x1B,0x4F,0xB0,0xDB,0x1F,0x4C,0xAF,0xB9,0x14,0x99,0x6D,0xDB,0x18,0xB1,0xBD,0x2A,0x57,0xEE,0x5E,0x06,0x61,0xBF,0x39,0x6A, - 0x8B,0x57,0xDB,0x8D,0x0F,0xB2,0x2E,0x78,0x82,0xDB,0x95,0x7D,0x3B,0xCE,0x17,0x00,0x6C,0x06,0x61,0xB2,0x30,0xAF,0xC3,0xD9,0xE3,0x8A,0xC9,0x27,0x87,0x0B,0x41,0xDA, - 0xC6,0xF2,0xC8,0x0A,0x71,0xDC,0x0A,0x03,0x74,0x7C,0x0D,0xBC,0x58,0xD1,0x57,0x99,0x77,0x12,0x00,0x7F,0xFF,0xDF,0x0C,0x1F,0x00,0x77,0x03,0x00,0xF5,0x15,0x25,0xB2, - 0xD8,0xDA,0x50,0xE2,0x52,0x8F,0x58,0xC7,0xD8,0xDA,0x51,0x7E,0x0A,0x04,0x56,0x03,0xB7,0x52,0xB8,0xC6,0x13,0x3A,0x33,0x74,0x26,0xFF,0x36,0x60,0x50,0xDB,0x5D,0xA0, - 0xDC,0x73,0x27,0x03,0x04,0xDB,0x81,0xD8,0xF6,0x02,0x85,0x79,0xC0,0xDB,0xDA,0xAF,0x42,0x24,0xC0,0xDB,0x0D,0x00,0x4C,0xA5,0xCA,0xC0,0x76,0x20,0x2B,0x34,0x18,0x4B, - 0xE5,0xB3,0xDB,0x56,0x59,0xCB,0xFD,0x66,0x86,0xDF,0xCB,0x38,0xE1,0x1D,0x42,0x8B,0x75,0xB1,0xE8,0x0E,0x68,0x5A,0x00,0x99,0x65,0xBF,0x53,0xAF,0x58,0xEC,0x73,0x35, - 0xE7,0x66,0xA9,0x3A,0x87,0x62,0x0B,0xD0,0xEC,0x9E,0x28,0xA6,0x15,0x61,0xBE,0x34,0x94,0x98,0xDC,0x51,0x90,0x57,0xEE,0x59,0xB1,0x52,0x98,0x69,0xB5,0x20,0xC4,0x79, - 0x0E,0x9F,0x32,0x2C,0xA3,0xEB,0x28,0x22,0x0F,0x8A,0xDB,0x0E,0xEA,0xC0,0x73,0xEE,0xEE,0xC8,0x57,0x38,0xEC,0x5F,0xDA,0x3C,0x74,0xDA,0x3B,0x7E,0x00,0xE6,0x06,0xDB, - 0x0D,0x90,0x06,0x5C,0x4B,0x3A,0xD8,0x16,0xB5,0x52,0xAC,0xEE,0xC1,0xDB,0x69,0x93,0x61,0xDB,0xD0,0x02,0xDB,0x3E,0xE4,0xBD,0x85,0x40,0xDB,0x4F,0x07,0xD7,0xEE,0x81, - 0xB0,0x99,0x75,0x6D,0x8E,0x07,0x1F,0x3A,0xDE,0xDE,0x2A,0x56,0xAB,0x63,0x09,0x65,0x01,0xED,0x02,0xDC,0xA9,0xD2,0xFF,0x78,0xCF,0x72,0xB7,0xA2,0xAE,0xD1,0x95,0x80, - 0x41,0xDE,0x85,0xDD,0x67,0x8D,0x0E,0xA5,0xA4,0x3D,0xDE,0x5B,0x0A,0x81,0x5F,0x00,0x05,0xBD,0xE1,0x85,0xD8,0x59,0x0A,0xEB,0x95,0x83,0x3C,0x05,0x53,0x86,0xAE,0xEF, - 0xCA,0x54,0x9F,0x5F,0x0D,0x3E,0xAC,0x14,0x66,0xE2,0x95,0x71,0x24,0x54,0x04,0xD5,0x45,0x87,0x7F,0x25,0xF8,0x56,0xF2,0xE3,0xBE,0xCF,0xF8,0x0A,0xD1,0xD4,0x9E,0xB9, - 0x03,0x7F,0x27,0xA3,0xDB,0x0B,0xEC,0x5A,0xE9,0x5F,0x00,0x04,0x5C,0x45,0x00,0xAA,0xEF,0x27,0x30,0x2F,0x5D,0xDB,0xF0,0x01,0xD9,0x57,0x28,0xBB,0x5E,0x00,0xB7,0x42, - 0xB5,0xA0,0xA3,0xA6,0xA8,0x16,0xDB,0x01,0x22,0xB0,0xD7,0x40,0xDB,0x17,0x64,0x0C,0xFD,0x8E,0x7A,0x8E,0xA8,0x04,0xB0,0xD8,0xB0,0xD9,0xF0,0x00,0xD7,0xB9,0x03,0x80, - 0xDB,0x23,0x3C,0xA0,0xAD,0xC1,0xCA,0x68,0xBA,0x08,0x42,0x05,0x04,0xE8,0x03,0xC1,0xBD,0x09,0x06,0x42,0x5E,0x00,0x19,0x1A,0x60,0xB9,0xBD,0xE6,0xA1,0xC3,0xE6,0x0D, - 0xB0,0xEB,0xCB,0xBE,0x02,0xB0,0xDB,0xCA,0xC7,0xF3,0xC0,0x2B,0xB2,0xB9,0xB7,0xDD,0xB2,0xB2,0xE4,0x05,0xDB,0x07,0x48,0x3A,0x69,0x8C,0xED,0xC9,0x1E,0xA2,0xA7,0x74, - 0xD7,0x0B,0x04,0xB8,0x2C,0xB2,0xAA,0x80,0xEE,0xA4,0x6C,0xDB,0x1C,0x36,0x01,0x50,0xDB,0x2B,0x5D,0xBA,0x8A,0x28,0x18,0x92,0x4E,0x01,0x4B,0x84,0xCD,0x00,0xB5,0xD4, - 0x93,0x04,0xE6,0xB7,0x4C,0x28,0xDB,0x0A,0x07,0xB9,0xEB,0xDB,0x00,0x19,0x34,0x13,0x33,0x12,0xB3,0x25,0x13,0x85,0xDB,0x0F,0xC1,0x6B,0xF7,0x6C,0x07,0xB5,0x2E,0x38, - 0x00,0x95,0xEF,0x23,0x41,0x9A,0x4C,0xF6,0x3B,0xEB,0x09,0x8E,0x29,0xDA,0xEC,0xE3,0x32,0xC9,0xED,0x08,0xEA,0xD5,0x42,0xF0,0x19,0xC0,0x24,0x87,0x91,0x29,0x26,0xCE, - 0xDA,0x99,0xC2,0xDB,0x8B,0xBA,0x13,0xD6,0xD0,0xAA,0x2F,0x00,0xE4,0x41,0x82,0x6C,0xDA,0x2D,0xE6,0x7C,0x00,0xF3,0x3A,0x57,0xBA,0x2B,0xED,0xBE,0x8F,0xA9,0xE2,0xAA, - 0xC8,0x3A,0x02,0x00,0x90,0xDB,0x2F,0xB9,0xAC,0xDB,0x12,0x45,0x87,0xDA,0x00,0xAC,0xEF,0x84,0xB7,0x65,0xC3,0xDB,0x00,0x94,0xDC,0x26,0xDB,0x00,0xB8,0xA3,0xDF,0xE2, - 0x21,0x5B,0x08,0x40,0xDB,0x52,0x02,0xEE,0x83,0xC5,0x76,0xEB,0x10,0x3A,0xDD,0x46,0x3A,0xB7,0xDB,0xC6,0x2D,0x06,0x00,0x09,0x24,0xB2,0x76,0x00,0xB7,0x49,0x14,0x43, - 0xDB,0xC0,0x01,0x73,0x70,0x83,0xC6,0xD2,0xC8,0x0E,0x2C,0x0B,0xC3,0xDB,0x09,0xB0,0xD8,0xF4,0x00,0xA6,0xF5,0x12,0xED,0xB0,0xDB,0xB5,0xF8,0xC2,0xC8,0xE6,0xCD,0xBA, - 0x16,0x2E,0xDB,0x06,0x3C,0xC6,0x94,0xD6,0xBD,0x34,0x55,0x30,0x34,0xD0,0x12,0xD6,0x6A,0x02,0x60,0x4A,0xAC,0x08,0xB7,0xAA,0xF7,0xBA,0x60,0x02,0xFD,0x03,0x6A,0x99, - 0x2A,0x75,0xDA,0xEE,0x97,0xEB,0x93,0x45,0x2A,0x05,0xDC,0xF2,0xB5,0x30,0x60,0xD8,0x34,0x50,0x2F,0x8D,0xC8,0xB2,0x29,0x65,0xEC,0x03,0xDB,0x2B,0xE0,0x26,0xCD,0x79, - 0x00,0xDB,0xD0,0xE2,0x42,0x97,0xA0,0xDB,0x1B,0x09,0xC1,0xD8,0xCA,0x99,0x03,0xDB,0x93,0x8C,0xBA,0xA5,0xA9,0x9F,0x02,0x65,0x92,0x00,0xEA,0x77,0x88,0xE4,0xDB,0x06, - 0xC8,0x90,0x18,0xA6,0x76,0x07,0xAD,0x5B,0x00,0x7F,0xBB,0x95,0x48,0x83,0xE3,0x2C,0xFA,0xC6,0x23,0xB1,0x99,0xAC,0x14,0x60,0x68,0x94,0x97,0x00,0x69,0xA8,0x7D,0x00, - 0x0E,0x25,0x99,0x22,0xC1,0xC8,0xFF,0xF6,0x3E,0xBB,0x07,0xDB,0x0B,0x00,0xE7,0x98,0xDF,0x55,0xDC,0x37,0x00,0x60,0xC4,0x77,0x38,0x5E,0xD4,0x8A,0x05,0x8A,0x42,0x8B, - 0x8B,0xD6,0x8C,0x92,0x94,0xD1,0x8E,0x0A,0x6F,0xCB,0x60,0xDB,0x5C,0xB0,0xD7,0xA5,0x00,0x27,0x85,0xDB,0x12,0xB8,0x65,0x70,0xDB,0xB7,0xCC,0xB0,0xDD,0xC0,0x01,0xD9, - 0xA3,0xBD,0xC4,0xAF,0x7A,0x85,0xC3,0xDB,0x92,0x40,0xEB,0x6B,0x19,0x1F,0xEA,0x48,0xD0,0xFE,0xBD,0x76,0x09,0x57,0xDB,0x14,0xD3,0xD7,0xB1,0x3D,0x7B,0x84,0xDD,0xA9, - 0x93,0xCB,0x99,0xDC,0x87,0x29,0x41,0xDB,0x0E,0x30,0xDB,0x65,0xC4,0x5D,0x05,0x1D,0x06,0xB7,0xCD,0x16,0xF1,0x7D,0xE9,0x4C,0xDA,0x0E,0x3B,0xC3,0x70,0xCD,0xF5,0x0A, - 0x24,0x48,0xE1,0x1D,0xCC,0x6D,0x92,0x7B,0x00,0xB4,0xBE,0xC8,0x02,0x4D,0xC4,0x88,0xDC,0xC8,0xD1,0x8E,0x38,0xCA,0x02,0xDA,0x1E,0x00,0xD2,0xF6,0xE5,0xDD,0x7D,0xF4, - 0xB4,0xD3,0xA3,0x40,0xDA,0x30,0xBE,0xB5,0xA0,0xDA,0xB9,0x00,0xB9,0xBC,0x18,0x28,0xDB,0x58,0xD9,0x26,0x5A,0xDB,0x0A,0xA8,0x98,0x50,0xDB,0x0A,0x9F,0xC1,0xEE,0x50, - 0x6B,0x52,0x5F,0x1C,0xE9,0x47,0x54,0x33,0x5B,0xB8,0x41,0xDB,0xA7,0xF9,0x01,0x61,0xDB,0x6E,0xCC,0x11,0x90,0xDB,0x32,0x9F,0xCB,0xB8,0xC8,0xFC,0xAE,0x29,0x94,0x30, - 0xDB,0xC3,0xB0,0xAC,0x0E,0x12,0xEF,0x00,0xD3,0xF9,0x03,0x79,0x0A,0x9C,0xA0,0xDC,0xB7,0xE8,0xB9,0xCB,0xC9,0xC7,0x7F,0xF8,0x07,0x28,0x82,0xE9,0xD0,0x45,0xE4,0xD3, - 0x34,0xED,0xDB,0xF5,0xBA,0x7F,0x39,0x0D,0xAB,0x0F,0xDB,0x0A,0x59,0xE5,0x02,0xD5,0xCE,0x6F,0xEC,0x81,0x0A,0x39,0xFA,0xBA,0x40,0xDA,0xC3,0xD5,0x02,0xB4,0x00,0x26, - 0x81,0xDA,0x3D,0x81,0xCE,0xDA,0x12,0xF5,0xBB,0x4A,0xA4,0x6A,0xF3,0xE0,0x93,0x46,0xB4,0xCC,0xE8,0x53,0x60,0xDB,0x00,0x76,0x5E,0x81,0x35,0x19,0x1A,0xCB,0xB5,0x8C, - 0x3D,0xF0,0x58,0x2A,0xDB,0x5A,0xF6,0x4C,0xDB,0x0B,0x06,0x87,0xB5,0x14,0x4F,0xA7,0x02,0x96,0xAB,0xED,0x3C,0xD6,0x61,0xAB,0x40,0x9C,0x38,0xE4,0x04,0xAA,0x2D,0x12, - 0x7F,0x6F,0xD2,0xF6,0x07,0x00,0xD1,0xF9,0xD7,0x69,0x00,0x23,0x13,0xA9,0x00,0xAA,0x32,0xD4,0x9C,0xC9,0x28,0xDB,0x2C,0xE3,0xAE,0x26,0xAE,0x11,0x29,0xB5,0x00,0x14, - 0x57,0x22,0x95,0xC8,0x8D,0x91,0x05,0x75,0xF9,0x67,0xA7,0xF8,0x6F,0x73,0xD7,0x14,0x06,0x39,0xC9,0xF9,0xB8,0xCA,0xD8,0x16,0xDA,0x14,0xDB,0x09,0x27,0xC3,0xDB,0xD6, - 0x0B,0x00,0x9B,0xDE,0x22,0x00,0xDB,0xB5,0xB6,0x60,0xB4,0xDB,0xA8,0x42,0x4C,0x97,0x83,0xE5,0xDE,0x38,0xCA,0x6B,0x81,0xCD,0x29,0x0B,0x1F,0xEE,0x5B,0x4B,0x5F,0x33, - 0xDB,0x0F,0x6A,0x61,0xAB,0x6F,0xCB,0x71,0x8B,0xE5,0x57,0x28,0xDD,0x28,0x0F,0xFC,0xE8,0xD0,0x3C,0x02,0xB4,0x32,0x80,0xC2,0x9B,0x9F,0xE1,0x07,0x51,0x2C,0xC0,0x50, - 0xD5,0x57,0x0E,0x0B,0x87,0xF6,0x00,0xAD,0x0F,0x0E,0xF6,0xE4,0x93,0x4C,0xA7,0xA5,0xD0,0x2C,0x86,0x67,0xB5,0x4A,0x87,0x8A,0x2D,0xFB,0x37,0x33,0x3E,0x5C,0x57,0x9F, - 0xD1,0x94,0xD9,0x9B,0xAD,0x09,0xBD,0xFB,0x00,0xDA,0xC2,0x0A,0x2A,0x44,0x94,0xC2,0xD5,0xD0,0x90,0x5C,0x26,0x95,0xEC,0x6E,0xFF,0x9A,0x63,0x88,0x1E,0x27,0x93,0xD8, - 0x50,0xD6,0x4C,0xDA,0x16,0xC8,0xF4,0x04,0xD4,0x51,0xD9,0xB7,0x08,0xDA,0xA8,0x5B,0x50,0xB7,0xA5,0xDB,0x01,0x52,0x35,0x01,0x60,0xDB,0x33,0x7D,0x0A,0x52,0x87,0xF6, - 0x60,0x68,0x11,0x6B,0x57,0x82,0xC3,0xBC,0xC8,0xE2,0x6D,0x08,0x7F,0x79,0xE3,0x56,0x02,0xA2,0x1E,0x05,0xC1,0x14,0xC0,0x0B,0x48,0x0C,0xBA,0x08,0x91,0x2A,0xAB,0x7E, - 0xF2,0xB0,0xCB,0x90,0xEC,0xED,0x85,0xA9,0x0F,0x3B,0x5D,0xC2,0x74,0x1F,0xEE,0x55,0x22,0x54,0x03,0xEB,0x15,0x33,0x61,0xD8,0x74,0x4B,0xC4,0xF5,0xE4,0x76,0x8D,0x95, - 0x02,0x5F,0x00,0x6F,0x03,0x35,0x07,0x25,0x94,0xAA,0xEB,0x26,0x48,0x00,0x95,0xED,0xAC,0xD6,0xC1,0xDF,0x18,0x28,0xD7,0x22,0x6A,0x41,0xDB,0x4D,0x30,0xDB,0x21,0x4C, - 0x60,0xDB,0x79,0xCF,0xDD,0x81,0xDB,0x20,0x15,0x81,0xDB,0x5C,0x13,0x43,0xB1,0x69,0x99,0xE1,0x00,0xDE,0x63,0xD0,0x40,0xDF,0x87,0x75,0x57,0x04,0xDA,0xB4,0xB8,0x57, - 0x8D,0x74,0x94,0xF4,0x9F,0x1A,0x08,0x0E,0x50,0xD6,0xAB,0x04,0xF0,0x5B,0xDF,0x0A,0xCA,0x0A,0xFE,0x3B,0xFD,0xC9,0x42,0xF2,0xD6,0xDD,0x44,0x20,0x0E,0xB2,0x29,0x77, - 0x16,0x00,0x0E,0x61,0xDA,0xAD,0xE8,0xED,0xC0,0x75,0x03,0xF9,0x95,0xA8,0xC4,0xB7,0x89,0x99,0x79,0xDD,0x45,0xB7,0x22,0x8E,0x5F,0xB5,0x56,0xDB,0x4E,0xC7,0xF4,0x90, - 0x9A,0xEB,0xCC,0xDB,0x12,0x2A,0xEE,0x5A,0x50,0xDC,0x87,0x08,0xB7,0x22,0xB0,0xA0,0xDB,0x60,0x5E,0xDB,0x01,0x79,0x5C,0x50,0xB8,0x50,0xB5,0xD9,0x94,0xDD,0xE1,0xBC, - 0x2A,0x6A,0xD5,0x70,0xDB,0xDB,0x7C,0x0F,0xC4,0xD9,0xBD,0xFF,0xBE,0x87,0xD4,0x00,0x5E,0xC8,0x0E,0xA8,0xDF,0xA5,0xC8,0xB9,0xAB,0xA0,0xCD,0xB0,0xAF,0xB7,0x9C,0xC3, - 0xFF,0x09,0xBA,0xEB,0xCA,0xA0,0xD2,0xA3,0xD3,0x8B,0x14,0xEC,0x22,0xF1,0xB1,0x94,0xF2,0x07,0xFA,0xA9,0x0A,0x37,0xA8,0x30,0xB0,0xDA,0xB7,0xC2,0x5D,0x11,0x00,0x86, - 0xDB,0xEB,0xB2,0xC9,0x00,0xB8,0xDE,0x00,0xB7,0x53,0x05,0xDC,0x86,0xDA,0xD5,0x13,0xBD,0xC7,0x4F,0x9E,0x00,0x28,0xDB,0x5F,0x05,0x03,0x7C,0xBA,0x4D,0x60,0xD9,0xDB, - 0x77,0x86,0x01,0xDB,0x53,0x28,0xDB,0x6F,0xCB,0xA4,0xDD,0xA1,0xDB,0x69,0xEF,0xAF,0xF2,0x70,0x32,0xEF,0xE2,0xCE,0x0F,0x0C,0x7F,0xE5,0x8B,0x38,0xE2,0x5B,0x11,0x80, - 0xD0,0xED,0xF8,0x03,0xA6,0x61,0x99,0xBC,0x01,0x57,0x00,0xBA,0x30,0xA3,0xB2,0x83,0x9D,0xC1,0x64,0xCE,0x0C,0xDA,0x25,0xC0,0x2B,0xD9,0x0F,0x04,0x24,0xEA,0x14,0x2D, - 0x8A,0xF8,0xCA,0xAF,0x4B,0xCE,0xBA,0x30,0xF9,0xAB,0x95,0x39,0x6D,0x00,0x88,0x25,0x08,0xDE,0xC4,0xF2,0xD7,0x5C,0xD8,0xB7,0xC7,0x4C,0x36,0xB5,0x52,0xCD,0xA2,0xE4, - 0xD7,0xA5,0xB8,0x27,0x04,0x0A,0x28,0xDB,0x0D,0xB8,0xB6,0xA0,0xCB,0xD0,0xE2,0xB0,0xDB,0x25,0x82,0xDB,0x0C,0xB7,0xB1,0xA9,0xEA,0x55,0x85,0xFA,0x5D,0x06,0xEE,0x63, - 0x68,0x91,0x97,0x39,0x9A,0xA9,0x11,0xB6,0xD6,0xCA,0xB7,0x4C,0xEA,0xD4,0x07,0x57,0xA1,0x9D,0x06,0x65,0x03,0xA8,0xD8,0x03,0xD8,0x58,0xC9,0x5A,0x06,0x14,0xF2,0x0E, - 0xE3,0x9C,0xA0,0xAD,0x91,0x25,0xDD,0x59,0x4B,0xB4,0x33,0x92,0x40,0xE9,0x00,0xEC,0x7D,0x53,0xCD,0xA4,0x86,0x4B,0xDC,0x0E,0x68,0xD5,0xF5,0x2A,0xD9,0x70,0xB5,0x6E, - 0xC3,0x1F,0xD6,0x9E,0x40,0xDA,0x92,0xA5,0x67,0xDA,0x0B,0xB7,0x24,0x29,0x81,0xDC,0x77,0x82,0x30,0xDB,0x14,0xD4,0xB5,0xDB,0x0A,0xE4,0xDB,0x04,0xAC,0x34,0xDB,0x0A, - 0x5E,0xDB,0x0E,0x4F,0x95,0xEC,0x33,0x24,0xA9,0x76,0x07,0xC1,0x36,0xAC,0x6E,0x39,0x76,0xF2,0x04,0xBC,0xF2,0x00,0xB9,0xC3,0xCE,0x00,0x2E,0x8B,0x57,0x00,0xA2,0xE7, - 0x4C,0x00,0xB1,0x2C,0xBD,0x16,0x48,0xB3,0xF2,0x05,0xBD,0xDB,0x21,0xF5,0xCB,0x8E,0x32,0x27,0xB2,0x00,0xFD,0x12,0xB1,0x7D,0xA4,0x61,0xD8,0x52,0x05,0x3D,0xC6,0xDB, - 0x49,0xC7,0xE5,0xB3,0x61,0xDB,0xF1,0x05,0xBE,0xCA,0x00,0xB5,0x58,0xDA,0x09,0x0C,0x25,0x13,0x82,0xDA,0x7A,0xFD,0x93,0xD7,0x2D,0xF0,0x67,0xDD,0xCD,0xCF,0xCA,0x8D, - 0x28,0xDB,0xC5,0xD4,0x20,0x92,0xE4,0xE4,0xB9,0x85,0x89,0xB7,0x02,0x41,0xDB,0xCE,0xA6,0xDB,0x04,0xCD,0x19,0xA1,0xDB,0xB0,0x01,0x2A,0xC9,0xBD,0x65,0xF0,0x7C,0x75, - 0xD9,0x71,0xD1,0xBA,0x9C,0x72,0x39,0x7F,0x15,0xB9,0x11,0x80,0x60,0x7F,0x61,0xDE,0x5F,0x04,0x0E,0x11,0x77,0x9B,0x41,0xC9,0xD5,0x05,0x02,0xAC,0xC9,0xB5,0xD7,0x72, - 0x0E,0xD5,0x04,0x05,0x86,0xE0,0x30,0x8B,0xAD,0x93,0xBF,0x84,0xED,0x03,0xC0,0xED,0xEC,0x3B,0x12,0xDA,0x0B,0x00,0x99,0xC2,0xEB,0x00,0x04,0xA8,0xCB,0xC8,0xB6,0x0C, - 0x8E,0x11,0x8E,0x1F,0x45,0x29,0x92,0x20,0xD9,0x28,0x65,0xDB,0x11,0x29,0x60,0xDB,0xB5,0x13,0x8D,0xB5,0x4D,0x00,0xDB,0xA3,0xBD,0xE6,0x85,0x54,0xEF,0x0D,0x4C,0x60, - 0x8F,0xDB,0x76,0x64,0xEB,0xB7,0x5C,0xA5,0x4D,0x30,0x26,0x8E,0xF3,0xA3,0x39,0x39,0x2A,0x63,0xAB,0x69,0xCE,0x7D,0xF7,0x6E,0xA5,0xAC,0xB7,0xF0,0x8E,0xE7,0x00,0xD3, - 0x3A,0x00,0xB2,0xA1,0x94,0xC7,0x25,0xAF,0x25,0x14,0xDB,0x07,0xF2,0xD1,0xC8,0x54,0x1C,0x96,0x0B,0x8E,0x33,0xA6,0x89,0xA4,0xD6,0xB6,0x5D,0x03,0xFD,0xFE,0x87,0xCD, - 0x4E,0x2A,0xE8,0xA5,0x09,0x06,0xA3,0xA1,0x90,0xB6,0xB1,0xDD,0xD5,0x99,0x5C,0x56,0x00,0xB3,0x53,0x4D,0xA4,0xC9,0xA1,0x65,0x65,0x4E,0x04,0x63,0x05,0xD2,0x99,0xE8, - 0x00,0xB7,0x98,0xB5,0xDB,0x52,0x91,0x61,0xDA,0x28,0xDB,0x08,0x4C,0x08,0x08,0x44,0xDB,0x05,0x24,0x4C,0xA5,0x80,0xDB,0x6B,0x35,0x1A,0xC5,0xB0,0x26,0x28,0xDB,0x25, - 0x4B,0xDB,0x0B,0xCE,0xDA,0xCF,0x16,0x06,0xE0,0x32,0x8F,0xE9,0x04,0xF3,0x03,0x09,0x85,0xDD,0xD5,0xBF,0x24,0xA4,0xAF,0x99,0x7D,0x13,0x07,0xD5,0x16,0xAC,0xCA,0xF8, - 0xB5,0x14,0x7F,0x00,0x21,0x02,0x76,0x00,0xB2,0x55,0x1C,0xCB,0x08,0x93,0xF6,0xE6,0xB6,0xE3,0x15,0x04,0xD6,0x01,0x69,0x0F,0x1E,0xC5,0xD1,0x33,0xCC,0x7B,0xE7,0xB6, - 0xDB,0x16,0xDC,0x12,0x94,0xB7,0x95,0xFD,0x65,0xBB,0x41,0xDB,0x65,0xB7,0x2B,0xCF,0xBA,0xB5,0x00,0xB5,0x2B,0xB6,0x24,0xB4,0x30,0xDB,0x06,0xC1,0xD8,0xEF,0xB4,0xDB, - 0x02,0x20,0x1C,0x30,0xD2,0x93,0xC0,0xDB,0x2A,0x4B,0xBB,0x89,0x9B,0x00,0xB7,0x2A,0xE0,0x5B,0xD6,0x0B,0xC1,0x3A,0xEC,0x19,0x1E,0xD2,0x57,0x8E,0xB5,0xFF,0x49,0x7F, - 0xF4,0x12,0x14,0xA7,0xAB,0xED,0x73,0x87,0x33,0xAF,0xDC,0x29,0xCB,0xDD,0xDB,0x00,0xBD,0xFF,0x87,0xCD,0x05,0x94,0x36,0x8A,0x93,0xD6,0x08,0x65,0xA1,0x61,0x34,0xE5, - 0xE5,0x25,0x45,0xAF,0x27,0xB0,0x60,0xDB,0x1F,0xE2,0x04,0x92,0x93,0xC2,0xDB,0x70,0xDA,0x4D,0x18,0xAB,0x2B,0xB5,0x00,0xA0,0xDB,0xE4,0xA5,0xA3,0xB9,0x10,0xD0,0xDA, - 0xB7,0xA8,0xDB,0x25,0x5B,0xDB,0x02,0x52,0x0B,0xF4,0xAD,0x30,0x33,0xA0,0xDE,0x29,0x33,0x33,0xD1,0xAF,0xBF,0xA4,0xB6,0x86,0x03,0xB8,0x54,0xEC,0x32,0xD5,0xB2,0xFF, - 0xC7,0x00,0x28,0xDE,0x4A,0xB7,0xF2,0x25,0x98,0x9C,0xED,0xA1,0xC7,0x84,0xBF,0xD3,0xAE,0x20,0xDB,0x5D,0x00,0x4E,0x06,0xDB,0x18,0xBD,0x52,0xE2,0xDB,0xBE,0x4A,0xD2, - 0x12,0x5A,0x07,0x0F,0x2A,0xD9,0x00,0x25,0x1D,0xB3,0x5C,0x6D,0xF2,0x75,0xFD,0x41,0xE3,0x3B,0xCA,0x89,0x5D,0x5D,0x27,0x16,0xEE,0xD6,0xF5,0xD1,0x91,0x29,0x20,0xDC, - 0x2C,0x6A,0xDB,0x0A,0xBC,0xBC,0x91,0x45,0xB6,0x16,0xB6,0xDB,0x04,0xA5,0x53,0x32,0xB7,0x4D,0x75,0xCD,0xDB,0x5F,0x50,0x1F,0x57,0x57,0x33,0xC0,0x49,0x00,0x59,0xE7, - 0x25,0x00,0x15,0xC1,0x06,0x80,0xAE,0x56,0xBA,0x56,0xD1,0x76,0xC1,0x52,0x95,0x91,0x2D,0xCB,0x3C,0xA4,0xAB,0xD7,0x69,0xA3,0x2D,0x00,0x95,0xC5,0xB2,0x8A,0x14,0x62, - 0xAF,0xA9,0x27,0x3A,0x30,0x02,0xDB,0x04,0x39,0x9F,0xFB,0x32,0x8A,0x49,0x06,0x22,0x90,0x32,0x39,0x00,0x4B,0x33,0xA9,0x00,0xEB,0x68,0xD8,0x3C,0x04,0xD4,0x2C,0xD7, - 0x24,0xB7,0x20,0x5D,0x2F,0x2F,0x5D,0x59,0x63,0xB3,0x5C,0xA8,0xDE,0xDF,0x55,0x07,0x24,0x00,0xB5,0xDA,0x05,0xB8,0x05,0xDA,0xA3,0x92,0xDF,0xDB,0x08,0x5D,0x93,0x12, - 0xCA,0x00,0xDB,0x17,0x0B,0x15,0x30,0x2B,0x34,0xD8,0x4D,0x30,0x00,0x61,0xDD,0x41,0xDE,0x5F,0x02,0x7C,0x7D,0x8D,0xF4,0x0C,0xE2,0xB1,0xE1,0xCA,0x00,0xBA,0x56,0xB2, - 0x0F,0x57,0xCD,0x30,0xDE,0x97,0xF8,0x2B,0x1C,0x02,0xAB,0x13,0xF3,0x09,0x53,0x93,0x2C,0xE5,0x0D,0x0F,0x9A,0xF7,0xA8,0xC2,0x12,0x04,0xBD,0xBA,0x84,0xD7,0xD3,0xA2, - 0xAC,0x5E,0x2A,0xDA,0x17,0x4B,0xD4,0xAB,0x13,0xB6,0x2C,0xDB,0x32,0xB4,0x4B,0x45,0x00,0x40,0xDA,0x5D,0x30,0x32,0x49,0xDB,0xD2,0x90,0x77,0xC5,0x48,0x18,0x00,0x8D, - 0xA6,0x00,0xBC,0x00,0x79,0xA0,0xDB,0x08,0xE4,0x77,0xB9,0xB9,0x78,0xDB,0x28,0xDC,0x01,0x35,0x5F,0x20,0x6D,0x0C,0xBD,0xCF,0x05,0xD4,0xAC,0xF7,0x40,0xDC,0x55,0x8B, - 0xC9,0xC3,0xD6,0xDB,0x17,0xB1,0x33,0x06,0xDD,0x85,0x56,0xB4,0x09,0x8B,0x42,0xDB,0x50,0xDC,0xBE,0x14,0x00,0x64,0xB3,0xEE,0x02,0x31,0x5B,0x0A,0x11,0xE6,0x0E,0x80, - 0x49,0x4A,0xB7,0x22,0xFA,0xA4,0xEC,0x5C,0xD9,0x0E,0x3A,0x4B,0xBE,0x2F,0x78,0x00,0x90,0xDB,0x22,0x25,0xA5,0x5D,0x44,0xB7,0x27,0x95,0xEC,0x65,0xB7,0x29,0x25,0x00, - 0xDA,0x09,0x0B,0xB6,0xED,0x56,0xBD,0x92,0x84,0xDF,0xE6,0x2C,0xDB,0x0C,0xAC,0xDB,0x16,0xC5,0xB8,0x40,0x20,0xCD,0x20,0x5E,0x21,0xE6,0x5A,0xDB,0x09,0x82,0xDC,0x8A, - 0xB8,0x96,0x7E,0x03,0x8E,0x16,0xED,0xB7,0xBA,0x53,0x15,0xB9,0xCE,0xB3,0x04,0xB3,0x78,0xB3,0xE9,0x11,0xAA,0x0A,0x95,0x4B,0xC2,0x0B,0xF6,0x7E,0x05,0xE6,0x00,0xFA, - 0x79,0x42,0xDA,0xF9,0x30,0x0D,0x7A,0xA4,0xD2,0x83,0xE6,0xA7,0xC2,0xE4,0xAA,0x0B,0xA5,0x7F,0xAE,0xCE,0x00,0x3A,0x3A,0x6D,0x5E,0xAF,0xAB,0x04,0x07,0x58,0x50,0xDB, - 0x53,0xC8,0xE5,0xB4,0xE1,0x00,0xD4,0x6F,0xC7,0x69,0x8C,0x1E,0xDB,0x1A,0x91,0x60,0xDB,0xD0,0xA0,0xDB,0x21,0xDA,0xAF,0x62,0xB7,0x32,0xA5,0xD7,0xB8,0x60,0x75,0xDB, - 0x52,0x0E,0xCD,0x17,0x17,0x19,0x88,0xC6,0x1A,0x1F,0x1F,0xD7,0x0B,0x13,0xFB,0x4D,0xFB,0x69,0xEB,0x57,0x03,0xC3,0x15,0xFE,0x77,0xFC,0x74,0xBE,0x53,0xBD,0xD4,0x84, - 0xDD,0xD7,0x94,0xE9,0x03,0x01,0x57,0x82,0xDA,0x97,0xD2,0xC8,0x29,0x02,0xF6,0x4E,0xF2,0xB0,0xDC,0xA5,0x15,0x11,0x4D,0x27,0xC8,0x73,0x87,0xDC,0x1E,0xD4,0x01,0xA9, - 0x56,0x0A,0x95,0x7D,0x65,0xAD,0xEA,0x8D,0xD1,0xCD,0xA2,0xDF,0x00,0x07,0x02,0x69,0x92,0x95,0xB3,0x05,0xDB,0xBA,0xCB,0x27,0x7E,0xB8,0xCA,0xC3,0x50,0xD9,0x52,0xB8, - 0x91,0x2D,0xB6,0xED,0x70,0xDB,0xCA,0xB6,0x9E,0xCB,0x13,0xBB,0xE4,0x9F,0xC0,0xDB,0xEB,0x00,0x52,0x81,0x35,0x2B,0x21,0x1F,0x5C,0x01,0x16,0x0C,0x25,0x3A,0xD7,0xD6, - 0xE0,0x13,0xBC,0xCF,0xB7,0x8C,0x49,0x9E,0x35,0xB7,0x4C,0xDB,0x17,0x07,0x2A,0xA6,0x67,0xF1,0xCC,0xA1,0x9A,0x09,0xB9,0xF3,0x8B,0x6D,0x98,0xDD,0x0B,0x2A,0x95,0xB7, - 0x5C,0x03,0x19,0x85,0xBD,0x69,0x86,0x5C,0x49,0x46,0xF5,0x09,0x0B,0x49,0xF8,0x7C,0x6C,0x00,0xB5,0xFD,0x15,0x00,0x21,0xB9,0x27,0x63,0xDB,0x0E,0x09,0x24,0xDB,0x16, - 0x85,0xDB,0x09,0xB6,0x01,0xDB,0xB4,0x28,0xDB,0x21,0xAF,0x60,0xDB,0x50,0xAF,0xDB,0x57,0xBD,0x30,0x5E,0xDB,0x6E,0x35,0xCF,0x1F,0x0B,0x19,0x0C,0x10,0x3A,0x00,0x90, - 0xDB,0x17,0x13,0xE7,0x92,0x8F,0xDF,0x05,0x73,0x06,0xBC,0x84,0xA9,0x9A,0x2A,0xA7,0x58,0xB9,0x5A,0xD9,0xDE,0x12,0x86,0x4A,0x39,0x1B,0xE7,0x00,0x87,0x9E,0x16,0xE5, - 0x24,0xEE,0xA9,0x56,0xE0,0x64,0x45,0x09,0xE3,0xAF,0xFC,0x62,0x66,0x6B,0xF3,0xA0,0x12,0xD7,0x19,0x03,0x49,0x32,0x4F,0xC7,0x86,0xD2,0x01,0x65,0xFB,0x01,0x00,0xC2, - 0xEB,0xC4,0xEB,0xDA,0x05,0x85,0xBD,0xC7,0x86,0xDB,0xC9,0xF4,0xDB,0x14,0xEE,0xA2,0xC4,0xAF,0x22,0x14,0xDB,0x04,0x5B,0xA0,0xDB,0x75,0xC3,0xDB,0xDC,0x0D,0x94,0x06, - 0x1F,0x67,0x19,0xDF,0x00,0x1F,0x34,0x25,0x25,0x33,0xB8,0xB7,0xC3,0xDE,0xE3,0x65,0x2A,0x1D,0xBC,0x24,0x97,0xA5,0xC0,0x59,0x8C,0x3E,0xF5,0xCD,0x00,0x5F,0xE1,0xC8, - 0x0E,0x98,0x96,0xDE,0x1F,0x0B,0x29,0x65,0xD4,0x73,0x17,0x54,0xEC,0x44,0x99,0xF4,0x00,0xAA,0x57,0x47,0x24,0x0E,0xBB,0xBC,0x65,0xB4,0xE5,0x66,0xB4,0x16,0xB7,0x52, - 0xCE,0xA3,0x07,0x32,0x0C,0x1D,0x1D,0x1A,0x2F,0xB9,0xA6,0x00,0xB2,0xB6,0xB2,0xC0,0xB0,0xDA,0x8C,0xDB,0x0B,0xCA,0x71,0xC4,0x97,0x24,0x09,0x81,0xDB,0x0D,0x4C,0x38, - 0xDB,0x30,0x20,0x00,0x81,0x5F,0x0B,0x2B,0x24,0x15,0x01,0xDB,0x0B,0xF5,0x5C,0x00,0x3A,0xB3,0xE1,0xC3,0x0A,0x60,0x82,0x13,0x99,0x9B,0x12,0x04,0x9C,0xD1,0xB2,0x03, - 0x85,0xDC,0xAF,0xF6,0x01,0x28,0xF1,0x44,0x85,0xF6,0x84,0xC8,0xC1,0xD2,0x11,0xD3,0x96,0x86,0x92,0x50,0x46,0xA1,0xF5,0x04,0x55,0x47,0x96,0x2A,0xEB,0xB6,0x5C,0xDE, - 0x9A,0x00,0x40,0xDA,0x90,0xE3,0x18,0x1A,0xDB,0x25,0x2E,0xDB,0x05,0x5D,0x50,0x00,0xDC,0x5A,0xF1,0xAC,0x29,0xDA,0x14,0x79,0x00,0xB8,0x2D,0x6C,0xB6,0xCA,0xCB,0xB4, - 0xB9,0xDB,0x01,0xE2,0x97,0x9F,0x0C,0x02,0xDB,0xC5,0xEC,0x84,0x52,0x6D,0x35,0x52,0x20,0xF1,0xCF,0x00,0x0B,0x1A,0xC4,0x8A,0x34,0x34,0xA3,0xFA,0xAE,0x30,0x25,0x8E, - 0xB3,0x25,0xAB,0x83,0xB0,0xDD,0x5B,0x03,0x86,0xDB,0xD1,0xC8,0xB9,0x51,0x41,0xC5,0x6F,0xAA,0x5B,0x80,0x6F,0xBE,0x2A,0xAB,0x5D,0x1A,0x75,0xA5,0xD5,0x0E,0x05,0xFC, - 0xF4,0xD3,0x9D,0xD8,0x08,0xD1,0x2B,0x33,0x02,0x07,0xE5,0x08,0x00,0x48,0x13,0xDC,0xDC,0x6C,0x81,0xD8,0xC5,0x74,0x00,0xDB,0x32,0x1A,0x1A,0x44,0x32,0x07,0xDB,0x04, - 0xA0,0x96,0x93,0x93,0x8D,0xCA,0xB7,0x60,0xDA,0x18,0x79,0xB6,0x6C,0xDC,0x59,0xB7,0x58,0xDB,0x04,0xDA,0xA8,0x9A,0x1B,0x26,0xDB,0x02,0x1B,0x53,0x98,0x60,0xDB,0x00, - 0x5E,0x52,0x5E,0x6D,0x35,0x21,0x54,0x0B,0xF0,0x51,0xDB,0xFA,0x00,0x03,0xDA,0x00,0x3A,0x16,0xDE,0xDE,0x16,0x8E,0x4B,0x04,0xCD,0x78,0xE1,0xCA,0xD4,0x6B,0x0A,0xB4, - 0x59,0xCA,0xA1,0x45,0xF5,0x59,0x8B,0xB5,0x6A,0x05,0x8B,0x12,0x95,0x8D,0x2E,0x00,0x74,0x89,0x96,0x31,0xC6,0x92,0x92,0x3F,0x39,0x4C,0x94,0xA4,0xAF,0x1E,0x9C,0xDB, - 0x2E,0x00,0xC2,0xDA,0x70,0xDB,0xB0,0xDC,0x92,0xAC,0x69,0xEE,0x7C,0xDC,0x4C,0x5D,0x92,0x94,0xF1,0xA3,0x93,0x9E,0x9E,0x90,0x44,0x9E,0xC1,0xDA,0x28,0xDB,0x76,0x81, - 0xB4,0xAC,0xDE,0xDC,0xCA,0xB7,0x5B,0x85,0x41,0xDB,0x22,0x61,0xDB,0xA0,0x94,0x6B,0xD6,0x52,0xAF,0x00,0xC0,0x85,0x15,0x15,0x10,0x82,0xD9,0x5C,0xC1,0xDB,0x2A,0x20, - 0xDB,0x16,0x3A,0x1E,0x9D,0x1F,0x04,0x83,0x37,0xB7,0x52,0xC4,0xE9,0x89,0x83,0xCE,0x04,0xDB,0x14,0xBA,0xFC,0x1D,0xAD,0x89,0x2A,0xE7,0xEB,0xF6,0xBC,0xE3,0x8D,0x9E, - 0x34,0xE5,0xD9,0xF8,0x65,0xF0,0xA5,0x23,0x0A,0xE0,0x5F,0x5A,0xAA,0x29,0xC2,0xD9,0xDE,0xC7,0x28,0xDB,0x24,0xDC,0x09,0xAF,0x87,0xA7,0x9B,0xB1,0x29,0x67,0xAB,0xB4, - 0x21,0x9E,0x43,0x58,0x55,0xFE,0x30,0xDA,0x60,0xDB,0x91,0x90,0xDB,0x32,0xB6,0xA9,0xA6,0x08,0xCF,0xA5,0x5B,0x0D,0x4C,0xDB,0x01,0x7A,0x22,0x97,0xD8,0xCF,0x27,0xBC, - 0x64,0xB8,0x6D,0xD6,0xF0,0x47,0xD0,0x72,0x01,0xAA,0x1F,0xA7,0xC7,0x92,0xAF,0x42,0x19,0x16,0xB3,0x2A,0xC1,0xD0,0x03,0xA7,0x9F,0xBC,0x9C,0x0A,0x8B,0xC2,0x65,0xB8, - 0x7F,0xCF,0x39,0xB9,0x7A,0x00,0xBE,0xCB,0x8A,0x35,0x02,0x28,0xCE,0x4F,0xBB,0x7F,0x0D,0x26,0xDB,0x34,0xB5,0xD5,0x07,0xA4,0x93,0xB7,0xDE,0xDF,0x5C,0x9A,0xD3,0xC1, - 0xD8,0xDD,0x48,0xE6,0xB8,0xDE,0x2D,0x5C,0x00,0x32,0x6F,0xCC,0x7D,0xB8,0x65,0xB4,0x64,0xB5,0x5D,0xBA,0x05,0x8E,0x4C,0xDA,0x04,0x41,0x41,0x58,0xA9,0x90,0x4F,0xC9, - 0x44,0xB4,0x6C,0x2D,0xA0,0xE4,0x92,0x16,0xB9,0xEE,0xB8,0xDB,0x21,0x7A,0x50,0xDB,0x2C,0x9A,0xD8,0xB7,0xBC,0xE1,0xD3,0x93,0xF1,0x55,0x20,0xDB,0x88,0x5F,0x87,0xBB, - 0xBB,0x25,0x3A,0xB8,0xD3,0xB3,0x8E,0x8E,0xE5,0xB2,0x1E,0x77,0x82,0x95,0xB7,0x05,0xDB,0xD4,0xBA,0xAF,0x98,0xAC,0xC7,0xEF,0xBD,0x2F,0xF0,0xD8,0xDA,0x4E,0xB7,0x56, - 0x8A,0x35,0x00,0x32,0x8E,0x4B,0x0C,0x61,0xDB,0xD5,0x0B,0x06,0x97,0xB6,0x00,0x65,0xB7,0x94,0xC4,0xA1,0xE3,0x95,0xB4,0x15,0xB7,0xCD,0xA8,0x04,0xDB,0xAF,0xCE,0x64, - 0xBA,0x2F,0xBF,0x00,0xBE,0xAC,0xDB,0x28,0xD9,0x27,0xDB,0x01,0x58,0x79,0x4A,0x20,0xDB,0x24,0x91,0xEE,0x55,0xA3,0xAE,0xEE,0x92,0x82,0xA8,0xAF,0x4C,0x15,0xDB,0x01, - 0x24,0xAC,0xA5,0x41,0xDB,0x65,0xB8,0x60,0xDB,0x20,0xB0,0xDB,0x53,0x5F,0xD1,0x8D,0x1F,0x10,0x10,0xD0,0xC6,0x25,0x16,0x16,0xDB,0x0C,0xB3,0x8D,0x16,0x0A,0x8D,0xE2, - 0x39,0xB3,0xE5,0x93,0x95,0xED,0x39,0x8D,0xF4,0x09,0x2B,0xAE,0xDD,0x0D,0xA7,0xAB,0x0D,0x2D,0xF7,0x76,0x00,0xF5,0x17,0x93,0xB2,0xB4,0x9B,0xA9,0x90,0xA6,0x0D,0x1E, - 0xBE,0x79,0x82,0xDB,0x82,0xD1,0xFB,0x03,0x04,0xDB,0x0A,0xB2,0x29,0x6D,0x84,0x5C,0x77,0x03,0x89,0x6A,0x49,0xDE,0x0B,0xDB,0x0C,0xC2,0xB2,0x03,0x46,0x6E,0xF5,0x00, - 0xEC,0x59,0x58,0x00,0x41,0x4A,0x40,0xDB,0x79,0x18,0x3D,0x91,0x91,0xD9,0x49,0xA5,0x32,0x00,0xDB,0xD8,0x98,0x53,0x85,0x14,0xEF,0x08,0x24,0x0B,0xC1,0x82,0xE2,0xC5, - 0xB8,0x2B,0xF0,0x55,0x20,0x05,0x00,0x35,0xCD,0xCD,0x17,0x70,0xC5,0x01,0x0C,0x16,0x30,0x0C,0x25,0xDE,0x32,0x0C,0x8E,0xAD,0x5C,0x33,0x9C,0xA8,0x04,0xF8,0x70,0xC0, - 0xB5,0xD7,0xA0,0xBC,0xAA,0x03,0x09,0xB0,0xDB,0x9D,0xB1,0xFE,0x0D,0x0E,0xC2,0xF6,0xEA,0xE0,0xE6,0x10,0xE8,0x59,0x79,0xA1,0x1E,0x22,0x94,0x76,0x02,0xAC,0x55,0xF2, - 0x5C,0x06,0xBB,0xBC,0x75,0x0A,0x00,0x26,0xDD,0x72,0x01,0xD3,0x00,0xC3,0xF4,0x01,0xC6,0xF3,0x95,0xB7,0x84,0xD9,0xE0,0xDB,0x4A,0xD4,0x00,0x41,0xB7,0x4B,0x79,0xDB, - 0x0E,0x80,0xCB,0xA0,0xA0,0xA5,0x9D,0xEE,0x5A,0xDA,0xEE,0x88,0x97,0x22,0x07,0x4C,0xDB,0x1D,0x07,0x84,0x96,0x97,0xD7,0xDB,0x16,0xB7,0x56,0xEF,0xAA,0x20,0x04,0x63, - 0x35,0x00,0x19,0x21,0x0C,0x00,0x68,0x34,0x97,0x34,0x60,0x16,0xDB,0x4B,0x58,0x33,0xAE,0x50,0xA1,0x55,0x06,0xAA,0xB5,0x39,0xA5,0x00,0xCC,0x08,0x97,0xBF,0xB4,0x13, - 0x2A,0xAB,0xD2,0xDC,0x00,0x98,0xCF,0x00,0x69,0x8B,0x54,0x06,0xCD,0x13,0x65,0xD0,0xCD,0xAA,0x83,0xDB,0x5C,0xD0,0x69,0x02,0xDC,0x5E,0xB6,0x8A,0xDB,0x0C,0xD8,0x24, - 0xA2,0x97,0x49,0x03,0x38,0xDB,0x54,0x04,0xA0,0xDA,0x79,0x95,0xCA,0xD4,0x3D,0x90,0x94,0xDB,0x17,0xA5,0x38,0xDB,0x35,0xCF,0xEE,0xFA,0xBA,0x15,0xDB,0x0E,0x84,0xD6, - 0xAC,0xDB,0x15,0xA9,0x34,0xF0,0xB2,0x02,0xDB,0x35,0x82,0xDB,0xB0,0xE8,0x19,0x0B,0xD2,0x95,0x9D,0xCC,0x25,0x4C,0x00,0x4B,0xC3,0x2D,0x9F,0xEC,0xA6,0x13,0x39,0x58, - 0x00,0xE0,0x4B,0xEC,0x5D,0x00,0x94,0xBC,0xC1,0xDB,0x56,0x04,0x8F,0x91,0xA0,0xDB,0x2A,0xF0,0x05,0xCA,0x98,0xDC,0x17,0x33,0x00,0x7A,0x0D,0x88,0x6D,0xD1,0x69,0x94, - 0x65,0xB6,0x38,0xDB,0x52,0x93,0x59,0xB3,0x58,0xD5,0x50,0xDB,0x14,0x2D,0x46,0x05,0x46,0x4D,0x9E,0x00,0x61,0xDB,0x4F,0xC7,0x2C,0xA4,0xFA,0x00,0xEF,0xC9,0xB8,0xDB, - 0xCA,0xA8,0xE6,0xDB,0x3C,0xDE,0x85,0x40,0xDB,0x4F,0x22,0x5C,0xAC,0xA8,0xCF,0x85,0x76,0xBC,0x47,0x17,0x17,0x89,0x6A,0x2B,0xDB,0x0B,0xDA,0x0D,0x00,0x34,0x60,0xDB, - 0x2A,0xBE,0xBA,0xC0,0xB9,0x4B,0x4B,0x88,0xD8,0x09,0x82,0xDB,0x42,0xCA,0xEE,0x19,0x11,0x6E,0x1D,0x0D,0x2E,0x00,0xEB,0xFA,0x11,0x92,0xED,0xA4,0xFE,0xA9,0xC1,0xDB, - 0x0A,0x5A,0xBC,0x16,0x4A,0x3A,0xFC,0xAB,0x5C,0x86,0xBA,0x04,0xA9,0xA6,0xBE,0xB0,0xC3,0xD9,0x01,0xC0,0xD3,0x46,0x2D,0xF0,0x00,0x04,0x46,0x8C,0x8C,0x9E,0xAA,0x02, - 0x00,0x91,0xEA,0x6D,0xEB,0x52,0x3D,0x02,0xDC,0xA0,0xD3,0x92,0xB5,0x25,0xB9,0x58,0x81,0xE2,0xAF,0x5B,0x42,0x07,0xE0,0xDB,0xC1,0xB0,0xDB,0x99,0xF0,0x7E,0xBF,0xED, - 0x89,0x81,0x4E,0xCC,0x0C,0x61,0x2B,0xDC,0x49,0x92,0xE3,0x7B,0xDC,0xB9,0xD0,0x25,0x3A,0x41,0xBC,0x49,0x94,0x4F,0xCE,0x85,0xE6,0x05,0xC0,0x84,0xC2,0xE1,0xDC,0xF7, - 0x18,0x02,0x8F,0x64,0xB3,0xB3,0xA1,0xDB,0xF6,0x06,0x11,0x94,0x92,0x4D,0xAD,0x3E,0x00,0x33,0x0E,0x11,0x57,0xC0,0x90,0xD4,0x30,0xE0,0x4A,0x0A,0xF2,0xB1,0x41,0xDB, - 0x84,0xDC,0xCA,0x00,0x1A,0xD9,0x0A,0xDB,0x0B,0xB8,0x20,0x2D,0x2E,0x1D,0xAB,0x50,0x64,0xDC,0x30,0x43,0xD9,0x90,0xDB,0x25,0xC6,0x7A,0x8E,0x49,0x81,0xDB,0x6C,0x69, - 0x92,0x45,0xB7,0xBD,0xC9,0x03,0xDB,0x4C,0xC5,0x04,0x00,0x29,0x00,0xAB,0xF0,0x98,0xCC,0x77,0x99,0x00,0x85,0xDB,0x26,0x95,0x91,0x8A,0x6D,0x88,0xB0,0xCD,0x35,0x6D, - 0x5F,0x1B,0x2B,0x15,0x0B,0xCB,0x8B,0x3A,0x5C,0x0A,0xDB,0x0D,0x02,0x8E,0xE3,0xE6,0x4B,0xD9,0x3A,0xC1,0x0D,0x02,0x8E,0x41,0xC5,0xD0,0x04,0xC2,0x30,0x06,0xB5,0xB0, - 0xD1,0xB0,0xCB,0xA9,0xB5,0xAF,0x0B,0x27,0x0E,0xC2,0xDF,0xDF,0xD1,0xC5,0x05,0x03,0x3D,0xE3,0x55,0x17,0x1D,0x05,0xD9,0xA6,0xA6,0x12,0x3A,0xDA,0xB7,0xE6,0xAA,0xDA, - 0x8D,0xB3,0x05,0x0E,0x10,0x15,0xBD,0x1B,0xA5,0xF9,0x83,0xD7,0xCC,0x00,0x67,0x67,0x1C,0x32,0x30,0x1C,0x1A,0xD8,0x18,0x32,0x2E,0xAB,0xD7,0x28,0x64,0x03,0x2D,0x6E, - 0x12,0x5D,0x8C,0x43,0x12,0xB5,0x41,0x83,0xDB,0x03,0x9C,0xDB,0x29,0x91,0x32,0xB5,0x94,0xDC,0x28,0xDA,0x1A,0xA8,0xEE,0x90,0x08,0x08,0xA4,0xA7,0x96,0x00,0x1B,0xCC, - 0xF2,0x5C,0x84,0x81,0xDB,0x79,0xE4,0xA9,0xF0,0x20,0x17,0x40,0xDB,0x10,0xC1,0xDB,0x1F,0x82,0x82,0x0C,0x80,0xDB,0x8E,0xDE,0xAB,0x8B,0xC1,0xB5,0x4B,0x49,0x9E,0x57, - 0x97,0x82,0xC1,0xB3,0xB2,0x03,0xB5,0xA0,0xBA,0x48,0x25,0xBC,0xFF,0x04,0x1A,0xF9,0x18,0x20,0xB7,0x30,0x2A,0xC0,0xEE,0x0B,0xD2,0x68,0xDB,0x28,0xD4,0x2A,0x10,0x74, - 0xA2,0x91,0x8C,0x2A,0xAE,0x6A,0x8C,0xEC,0xC7,0x94,0x03,0xDB,0x15,0xAC,0x15,0xC7,0xB3,0x80,0xDB,0x1C,0x67,0x1D,0x61,0x1D,0xD9,0xE8,0x01,0x97,0x2E,0x0B,0x2E,0x64, - 0x43,0x64,0x00,0xDD,0xC3,0x5D,0xA4,0x91,0x8A,0xED,0x41,0xF2,0xD9,0xD6,0xF0,0x70,0xDB,0xB2,0xB6,0x88,0xDB,0x00,0xB7,0x9A,0x24,0x02,0x42,0x02,0x61,0xDB,0xDD,0x98, - 0x3E,0xCC,0x94,0x96,0xDB,0x02,0x75,0xEB,0x6B,0x97,0xEC,0xB8,0x2B,0xAD,0x9D,0xCC,0xE8,0xDB,0x29,0xF0,0x70,0xDB,0xEF,0x85,0xCC,0x0A,0xDB,0x02,0xEA,0xDE,0x83,0xDC, - 0xCA,0x06,0x0C,0x9C,0x58,0xF1,0x5A,0xDA,0xAD,0xB3,0xD9,0x69,0x9E,0x2E,0xF7,0x24,0xDB,0x0C,0xC7,0x12,0x25,0x85,0xDB,0xAA,0xF0,0x04,0xC3,0xF7,0x12,0xA8,0x89,0xC2, - 0xCF,0x50,0xFB,0xE4,0x00,0xDB,0x07,0x03,0x03,0x7F,0x2B,0x00,0x35,0xB7,0xC8,0xAB,0x07,0x1F,0x13,0x22,0x20,0xDD,0x6A,0xEC,0x1A,0x0A,0x0B,0x19,0x1D,0x2E,0xDA,0x0C, - 0xBF,0xB2,0xC0,0xA4,0x8C,0xD5,0xEC,0x64,0x45,0x05,0x6E,0x2F,0xAA,0xED,0x8C,0xC3,0xDB,0x00,0xB9,0xA8,0x48,0x4A,0x91,0x8A,0x6C,0x00,0xB5,0xF0,0x94,0xDB,0x04,0xA5, - 0x5B,0x0D,0x2A,0xDB,0x19,0xB7,0x53,0xCC,0x85,0x8F,0xCA,0xE6,0x76,0x80,0xDB,0xEB,0x5E,0x81,0xBC,0xE1,0xD2,0x93,0xE5,0xA9,0x15,0xBB,0xCC,0x0C,0x7D,0xC8,0xB6,0x15, - 0x8E,0xB0,0xDB,0x61,0xEB,0xDC,0xE9,0x06,0x8A,0xBB,0x00,0x16,0x13,0xEF,0x59,0x9E,0xD5,0x47,0xA7,0x55,0x2A,0x0E,0x48,0x10,0xA0,0x9A,0x04,0x4B,0x52,0xAA,0xE8,0x0F, - 0xE5,0xB2,0xE4,0xE8,0x05,0xDC,0x28,0xD5,0xAA,0x07,0xAC,0x00,0xBE,0xAE,0x0A,0xA9,0xFD,0x1E,0x51,0xA5,0x84,0xDA,0x50,0xDB,0x0B,0x1C,0x0B,0x1C,0xEF,0x5D,0xE8,0x56, - 0x64,0xE8,0xB3,0xE0,0x00,0xD8,0x43,0x69,0x43,0x8C,0x45,0xB5,0x41,0xDC,0x61,0xDB,0x69,0x96,0x30,0xDA,0x58,0xDB,0x30,0xD0,0xDB,0x6B,0xA8,0xEE,0x0A,0x74,0xB9,0x8E, - 0xCD,0x24,0x29,0x5B,0x82,0x94,0x1D,0x76,0x00,0x02,0xDB,0x52,0x40,0xDA,0x90,0xDB,0x37,0xCC,0x93,0xBE,0xB7,0xD5,0xA0,0xDB,0x4A,0x16,0xDB,0x18,0xE2,0x52,0x9B,0x69, - 0xA8,0xC4,0x00,0xBE,0xCF,0xC7,0x16,0xF9,0x75,0x0E,0x49,0x93,0xF6,0x00,0x0E,0xF1,0xB4,0xF3,0xB6,0xC2,0x14,0xD9,0x1B,0xA7,0x52,0xC5,0x5A,0x21,0x4B,0x70,0xDD,0x92, - 0x08,0x92,0x41,0x1F,0x61,0x00,0xDB,0x76,0x05,0xDB,0x17,0xA1,0x2A,0x1C,0x90,0x4A,0xB6,0x2A,0xB0,0x28,0x90,0xDB,0xC8,0xB6,0x51,0xE9,0x60,0x51,0xD8,0x9E,0xB0,0xDC, - 0x98,0xB6,0xB0,0xDB,0xFA,0xBA,0x42,0xB6,0xAC,0xDF,0xC3,0xDB,0x92,0x41,0x98,0x53,0x08,0x0A,0xAA,0xEF,0x02,0xDC,0xCC,0x82,0xCC,0x58,0xCA,0xDB,0x2F,0x75,0xE2,0x26, - 0xDB,0x05,0x2B,0x1A,0x00,0x21,0x15,0x00,0x34,0x42,0xB7,0xC1,0xA3,0x6D,0x61,0xD6,0x38,0xDB,0x59,0xB9,0x2C,0xB3,0xCA,0x12,0x0A,0x4C,0xA5,0xA1,0xAF,0x85,0xDB,0x01, - 0xC7,0x33,0x39,0x5B,0x08,0x8C,0x74,0x23,0xBA,0xF6,0xDA,0x1F,0x3B,0x13,0x4B,0xDE,0x2E,0xA5,0xD8,0xD3,0x77,0x06,0x3F,0xA5,0x00,0x10,0xDC,0x0C,0xD5,0x25,0x05,0xBA, - 0xFE,0xC2,0xD7,0x9D,0xC8,0x54,0xA4,0x98,0x81,0xD8,0x82,0xDE,0x49,0x40,0xD9,0xC5,0x02,0x51,0xEC,0x95,0x04,0xDB,0x8F,0xC9,0x85,0xDA,0xE1,0x00,0xDA,0xC8,0x00,0xB6, - 0x4C,0xA3,0xB6,0x8A,0xDF,0xDA,0xDD,0xCD,0xCA,0xD0,0x4F,0xA5,0x83,0x87,0x02,0x08,0x12,0x4F,0xA8,0x25,0xD8,0xD7,0x2A,0xF0,0x76,0x57,0xCC,0xB5,0xEE,0xB2,0xB7,0xD4, - 0x00,0x5F,0xDC,0x0A,0x25,0xDB,0x0A,0xB4,0x06,0x16,0x05,0x8E,0xED,0x02,0x00,0x25,0x61,0xBC,0x41,0xA7,0x72,0x95,0x4B,0xB5,0xEA,0x90,0x95,0xBA,0x0C,0xB0,0x4E,0x16, - 0xAE,0xAD,0x9F,0xEC,0x24,0xD2,0x37,0x33,0x07,0xDC,0x07,0x4B,0x2A,0x0A,0x13,0xA6,0xB4,0xD5,0x09,0x34,0x39,0xAE,0x00,0x34,0x00,0xB5,0xBE,0x1F,0x4C,0xCE,0x5C,0x98, - 0xE1,0x17,0x26,0xFD,0x57,0x00,0xBE,0xD0,0xDF,0x17,0xB2,0xD2,0x00,0xE0,0x8C,0x41,0x95,0xD3,0x94,0xB7,0x26,0x95,0x92,0x9C,0x09,0x97,0x82,0x20,0xDA,0x5C,0x00,0xA5, - 0xB7,0x79,0xDD,0x6A,0xEE,0x00,0x85,0x80,0xDB,0x1B,0x12,0x09,0x07,0x53,0x97,0xD8,0x13,0x94,0xBD,0xEB,0xDB,0x0E,0x00,0x40,0xDB,0xE5,0xA8,0x17,0xD1,0x93,0x15,0x21, - 0xCD,0x91,0x06,0xDB,0x94,0x0A,0x10,0xA8,0x05,0x21,0x05,0xDC,0x06,0xA2,0xCA,0x15,0x91,0x79,0x97,0x78,0x13,0xA9,0x61,0xDB,0x2C,0x81,0xDC,0xA4,0xC8,0x8B,0xD8,0xF0, - 0x7B,0x83,0xD9,0x08,0xF3,0x5D,0xF3,0x64,0xF3,0x0C,0x5E,0x01,0x9C,0xD8,0xDB,0x2B,0x15,0x39,0x10,0xAB,0x39,0xDB,0x0C,0x4E,0x10,0x17,0xBF,0x9B,0xB9,0xA6,0x9C,0xDB, - 0x2A,0x06,0x89,0xB8,0x0B,0x95,0xB6,0x77,0xBB,0xBC,0xC5,0x49,0x6E,0x80,0xDB,0x43,0xE9,0xE9,0x64,0x6E,0xB1,0xE9,0x60,0x4A,0xDB,0x43,0x98,0xDB,0x12,0x91,0x05,0xDA, - 0xDA,0x83,0xE4,0x81,0xDB,0xBD,0x41,0xDB,0xAB,0xEE,0x5B,0xEE,0x58,0x50,0xDA,0x24,0xF1,0x0D,0xCC,0xD2,0xAF,0xCE,0xA9,0xB7,0x5D,0x00,0x75,0xBF,0x83,0xDC,0x52,0xC1, - 0xE7,0x19,0xC3,0xCD,0x0C,0xCA,0xF2,0xB7,0xDD,0xD5,0x0C,0x41,0x90,0x63,0xFA,0x44,0x00,0x2B,0x0C,0xA4,0x8E,0x09,0xB3,0xE8,0xBE,0x95,0xD1,0x86,0x1E,0xE5,0xCF,0x54, - 0x13,0xCA,0x96,0x6D,0x2B,0xFC,0x16,0x00,0x0C,0xA3,0xF2,0xB3,0xFF,0xF9,0x36,0xE7,0xF0,0x0D,0xFA,0xB2,0xF7,0xEA,0x13,0x17,0xA8,0x20,0xD9,0x29,0x53,0x17,0x60,0xDC, - 0x1F,0xB2,0xB7,0xC2,0xCF,0xB5,0x07,0x00,0x1A,0xA9,0xEF,0x1C,0x2E,0x4A,0xF2,0x2D,0xB5,0xEE,0x1B,0x2F,0x6E,0x6E,0xC5,0xE5,0xB2,0xAA,0xEB,0x41,0xF9,0xB8,0x41,0xDA, - 0x00,0xEC,0xD2,0x8C,0x51,0xB8,0x5D,0x81,0x94,0x77,0x77,0xC9,0xFA,0xEE,0xAD,0xE6,0xEE,0x42,0x22,0x08,0x31,0x12,0x14,0xDB,0x04,0x08,0xC0,0xDB,0xCA,0x4D,0xC5,0xE1, - 0x95,0x00,0x6B,0xF1,0x9F,0x04,0x17,0x5F,0x00,0x75,0x61,0xDB,0x61,0x90,0x84,0x8F,0xA0,0xB4,0x16,0xB3,0xF5,0xF3,0x97,0xD7,0xCA,0xD4,0xEB,0xA7,0x76,0x33,0x08,0x03, - 0xA5,0xC7,0xB0,0xDB,0xC9,0x00,0x2B,0x16,0xBC,0x00,0x35,0xDA,0x3B,0x00,0xA2,0x2A,0x2C,0x7A,0x10,0x09,0x1D,0x2B,0x60,0xDB,0x4A,0x16,0xDB,0x07,0x15,0xCD,0x5C,0x20, - 0xDB,0x2E,0x0B,0x00,0xE6,0xA0,0x60,0xDB,0xB9,0xA9,0xB9,0x00,0x40,0xDB,0x95,0x95,0xC1,0xDB,0x58,0x41,0xDB,0xD4,0xFE,0x50,0xDB,0x5A,0x91,0x61,0xDB,0x49,0x91,0xAD, - 0xEE,0x80,0xDB,0x97,0x22,0x07,0x85,0x82,0xDB,0xC9,0x00,0x24,0xC1,0xC3,0xDB,0x00,0xB0,0xDB,0x50,0x6D,0xDB,0x14,0x5E,0x20,0xDA,0x36,0xDB,0x0B,0x21,0x8A,0x4B,0xDB, - 0x0B,0xDC,0x0D,0x04,0x25,0x5E,0xF1,0x4B,0xB7,0xA9,0xC2,0xB9,0xDE,0xB3,0xAB,0xE1,0xB2,0xCB,0xB1,0x7E,0x0E,0xD2,0x93,0x49,0x9A,0xB7,0x26,0x16,0x1F,0x7D,0x21,0x03, - 0x05,0xDB,0x0E,0x89,0xF8,0x15,0xED,0x3F,0x14,0x0A,0x68,0x9A,0x34,0xA2,0x06,0x15,0x67,0x50,0xDB,0xFC,0x00,0xD6,0xD8,0x00,0x0B,0xD1,0x4E,0xDD,0x14,0xD2,0xEB,0x2D, - 0xBB,0xEB,0xED,0x59,0x41,0xDB,0x41,0xE2,0xDE,0x85,0x20,0xDB,0x12,0x6C,0x3D,0xCA,0x85,0xDA,0xE6,0xDC,0x92,0x92,0x3E,0xCA,0xFC,0x70,0xA8,0xD7,0x5E,0xF4,0x35,0x7A, - 0xF0,0x11,0xA5,0xD7,0xCF,0x20,0xDB,0x52,0xB4,0x93,0xC8,0xB7,0x17,0x35,0xA0,0xDC,0x4A,0x21,0xDB,0x09,0x0C,0x75,0x00,0xA7,0xA0,0xDB,0xCB,0xB1,0x00,0x4A,0x33,0xA3, - 0x96,0xB9,0x5E,0xA8,0x0B,0xEA,0xEA,0x8E,0xEB,0x05,0x16,0xBF,0xE2,0x04,0x71,0x2C,0x21,0xDB,0xD8,0x18,0xCF,0x13,0x2B,0x6D,0x7C,0x43,0x0B,0x06,0x81,0xDB,0x87,0xDA, - 0xE2,0x74,0xDB,0x0C,0x3A,0xCE,0x1E,0x19,0x61,0xDC,0x16,0xD3,0x17,0xA8,0x29,0x54,0x03,0xDB,0x85,0xB5,0x51,0xAA,0xED,0x51,0x82,0xDB,0x91,0x8D,0x58,0x4B,0x00,0x4A, - 0xB8,0xE5,0x91,0x86,0xDB,0xB4,0x4B,0x91,0xD9,0x05,0xA0,0xDF,0x80,0xA5,0x2A,0xDA,0xEE,0x54,0x24,0x2C,0xEE,0xAB,0x00,0xD1,0xE0,0x02,0x22,0x9A,0xAF,0x65,0xD7,0xB8, - 0x87,0xDB,0x00,0x4F,0xCD,0x60,0xDA,0x20,0x50,0x6D,0xDB,0x1F,0x2B,0x20,0x03,0x78,0x86,0x86,0x90,0xFE,0xE8,0x73,0x04,0x98,0x00,0x3A,0x13,0xD7,0x50,0xE2,0x76,0x08, - 0xD9,0x15,0x03,0x90,0xB7,0x16,0xEA,0xEB,0x25,0x8E,0x3A,0xAB,0x99,0x82,0xDB,0x92,0xC0,0x92,0x8E,0xEA,0xF7,0x86,0x84,0x50,0xDB,0x55,0x2B,0x05,0xD4,0x3E,0x48,0x85, - 0xB8,0xA5,0x58,0x01,0xE6,0x5C,0xDB,0x28,0xC3,0x70,0xDC,0x4A,0x32,0xDC,0x0C,0x54,0xBB,0x96,0x2E,0xDB,0x0D,0x43,0x95,0x16,0x43,0xDB,0x18,0xD8,0x47,0x06,0xDB,0xDC, - 0x12,0x05,0xDA,0xA5,0x92,0x06,0xDB,0xCA,0xFA,0xEE,0xDF,0xB9,0x10,0x08,0x02,0xB8,0xDB,0x68,0x94,0x5B,0x50,0x98,0xDB,0x26,0x99,0xDB,0x05,0x81,0x86,0xDB,0x93,0x9C, - 0xAA,0xD8,0xDB,0x65,0xBD,0x86,0x8D,0x90,0xA8,0x01,0x80,0xDB,0x6E,0x21,0xA5,0x3A,0x61,0x10,0xF0,0x25,0xDD,0x59,0xBB,0x50,0xD4,0x28,0x8E,0xB7,0x93,0x25,0xCB,0x00, - 0xED,0x55,0x05,0x57,0x2B,0x08,0x69,0x93,0x40,0xCA,0x35,0xB0,0xDB,0xA0,0xF2,0x94,0xDB,0x1D,0x10,0x09,0xAD,0xE6,0x3E,0xBF,0xCB,0xF9,0x99,0xE5,0x6E,0xCD,0x67,0x94, - 0xAF,0x9D,0xBE,0xCD,0xA7,0x86,0xDB,0xD7,0x1D,0x02,0x84,0xDB,0xA1,0xD8,0x41,0xDA,0x60,0xDB,0x95,0x50,0x3D,0xDA,0x4A,0xB6,0x57,0xB7,0xD2,0x83,0xDB,0xAF,0xEE,0x52, - 0x31,0x07,0x16,0xDB,0x05,0x7A,0x93,0x15,0x1B,0x4C,0x5C,0x85,0x49,0xB7,0x14,0x5E,0x6D,0xDB,0x15,0xAC,0x35,0xCF,0x19,0x86,0x44,0x16,0xB7,0x9F,0x05,0x01,0x1F,0x1F, - 0xE5,0x0F,0xF6,0x10,0x11,0x9A,0x52,0x4F,0xB5,0xCE,0x9C,0x17,0x78,0xDC,0x56,0xE2,0x49,0x15,0x2A,0xEF,0xE2,0x92,0x15,0xA9,0x33,0x81,0xDB,0x10,0x87,0xDB,0x00,0x28, - 0xDB,0x64,0xB7,0x34,0x28,0x01,0x17,0xCB,0x6B,0xD5,0x24,0xDA,0x0C,0xB4,0x8B,0xAB,0xAB,0xB3,0x2F,0x00,0xBA,0x29,0x41,0xDB,0x41,0x16,0xDB,0x09,0x3D,0x82,0xDB,0xB3, - 0xDB,0xDA,0x0C,0xDB,0x2D,0xCA,0xDA,0x98,0xEE,0xB5,0x4F,0xEE,0x43,0x1B,0x40,0xDB,0x53,0x60,0x9A,0xDB,0xCA,0xC3,0xDB,0x00,0x92,0xA8,0x6C,0xB8,0xAC,0xDB,0x34,0x98, - 0x50,0x35,0xDB,0x50,0x94,0x60,0xBE,0x2B,0x98,0xDA,0x31,0xFB,0xC3,0xDB,0xAE,0x0C,0x9A,0x14,0x34,0xCE,0x54,0xF1,0x77,0x87,0x25,0x01,0x19,0x15,0xA0,0xBD,0xE5,0x69, - 0x00,0x09,0x34,0x13,0xA8,0x17,0xDD,0xBC,0x2B,0x41,0xDC,0x53,0xA3,0x69,0x9F,0xA2,0x0F,0x0B,0x03,0xDB,0x37,0xF2,0x3C,0xAC,0xA0,0xDB,0xFE,0x44,0x4B,0x27,0x50,0xDB, - 0x4E,0xCD,0xDB,0x0C,0x2D,0xDA,0x25,0xDB,0x0E,0x07,0xC9,0xB8,0x41,0x53,0x00,0x86,0xDB,0xFB,0xB6,0xC7,0xF3,0x84,0xDB,0x85,0xB7,0x91,0xB6,0xD7,0x97,0xE4,0xDD,0x30, - 0xDB,0x09,0x08,0x05,0x02,0x0D,0x4C,0x98,0x12,0xB8,0x76,0xCB,0xB8,0xB9,0x2D,0x00,0x20,0x45,0xB8,0x5D,0xC3,0x5C,0xC0,0x17,0xA6,0x08,0x2B,0xF4,0x2B,0x0C,0x86,0x0B, - 0xBB,0xA5,0x17,0x50,0x07,0xEC,0xD0,0xE6,0x5F,0xDC,0xD0,0xC3,0x55,0xDA,0x55,0x06,0xDD,0xA1,0xCB,0x08,0x83,0x36,0xAF,0x5E,0x33,0xDC,0x16,0xFF,0x6F,0x10,0x07,0x45, - 0x7F,0x21,0x1A,0x1D,0x00,0x70,0x8C,0x21,0xB6,0xC0,0x98,0xB7,0xAC,0xBA,0xB4,0x84,0x7B,0x54,0xC7,0x92,0xB6,0x64,0xE6,0xA5,0x49,0xA1,0x9A,0x00,0x8A,0xB4,0xCA,0xB7, - 0x54,0x95,0xB9,0xA3,0xEE,0x00,0xFF,0xAD,0xCA,0xD6,0xA0,0xDA,0x0C,0xB9,0xDB,0x29,0x92,0x39,0xA5,0xD1,0x92,0x08,0xAD,0xEF,0x43,0x02,0x41,0xDB,0xCD,0xA9,0x14,0xB8, - 0x40,0xDB,0x6F,0xC8,0x12,0xDB,0x1E,0x00,0xDB,0x0B,0x21,0xF3,0x1A,0x90,0x0C,0x96,0x0B,0x2B,0x10,0x96,0xE4,0x10,0xC1,0xD8,0x59,0x00,0xFB,0xF7,0x0C,0x09,0x33,0xBD, - 0xA4,0x34,0xA8,0xBA,0x1F,0xA4,0x92,0xB4,0xC7,0xEF,0x10,0xA7,0x92,0x01,0x04,0xDB,0x92,0xE8,0x19,0xAD,0x4C,0xC5,0xE6,0x00,0xEF,0x49,0x05,0x83,0xBC,0xDB,0x16,0x1D, - 0xB4,0x49,0x1A,0x41,0xDB,0x43,0x26,0x00,0xDA,0x14,0xD8,0x17,0xB4,0xD6,0xDA,0x16,0xDB,0x08,0x91,0x80,0xDB,0xB9,0xA4,0xA4,0x93,0xA9,0xA6,0xE7,0xA5,0x92,0x4B,0xD8, - 0x08,0x64,0xDB,0x35,0x03,0x1B,0x4A,0xA9,0xD8,0x54,0x94,0x9C,0xDC,0x2C,0xDB,0x15,0x17,0x87,0x75,0x00,0x86,0xDC,0xCB,0xF4,0x84,0x4A,0x0B,0x92,0x2B,0xC4,0x7E,0xD4, - 0x1D,0x0B,0xDB,0x65,0xBB,0x5D,0x85,0x55,0x04,0x1B,0xCC,0xB4,0x81,0xEA,0x25,0x05,0x4B,0x15,0x07,0xD8,0x2F,0xDB,0x5A,0xDB,0xB0,0x15,0xCD,0xD2,0x05,0x3A,0xB7,0xAF, - 0xF1,0x3C,0x96,0x6A,0x04,0x19,0x00,0xD5,0x08,0x1C,0xB3,0xD5,0x03,0x66,0x04,0x54,0x54,0x93,0x96,0xEC,0xB5,0x00,0x27,0xB8,0x2B,0x8C,0x00,0xDD,0x0B,0xD7,0x0B,0x03, - 0xA4,0x8D,0xA0,0xDB,0x2C,0xE9,0xE9,0xDA,0x26,0x82,0xBB,0xDB,0x0D,0x92,0x2C,0xB6,0xAA,0xA5,0x61,0xE0,0xDB,0xC1,0xFB,0xC1,0x32,0x94,0x4C,0xDB,0x1A,0x82,0xCA,0xDB, - 0x0B,0x2B,0xDA,0x0A,0xB8,0x23,0x15,0x6D,0x0C,0xC2,0x8F,0xCB,0x8C,0x0D,0xAC,0xF5,0xEA,0xDA,0xC2,0xDB,0xC3,0xD1,0xEF,0x3A,0x94,0x24,0x3A,0xBC,0x00,0xC1,0xF6,0x10, - 0xD2,0x56,0xC5,0x58,0xDB,0x5B,0xA7,0x75,0x02,0x0B,0xD4,0x00,0x21,0x89,0x92,0x86,0xDA,0x97,0x39,0x03,0x01,0x5F,0xF4,0x00,0x36,0xDB,0x13,0x04,0xDF,0x94,0x00,0xB2, - 0x56,0x00,0x1D,0xA0,0xD9,0xAE,0xB5,0x92,0x00,0xD6,0xEC,0x40,0xDF,0x73,0x95,0x00,0x02,0xDB,0x91,0x82,0xDB,0xFA,0xB8,0x45,0xED,0xA0,0xDB,0xC9,0xB6,0x22,0x61,0xD8, - 0x61,0xC2,0x0C,0x07,0xDB,0x03,0x7D,0xBE,0x79,0xE2,0xF4,0xBD,0x70,0xDB,0x26,0x17,0xDB,0x0F,0xA1,0x2C,0xDB,0x38,0xF0,0xF5,0x0F,0x12,0x01,0x84,0xDB,0xA4,0xA8,0x21, - 0xB0,0xDB,0xE4,0x00,0xDA,0x0A,0x88,0x6B,0xE6,0x7A,0xE0,0x0E,0xBA,0x4E,0x35,0x15,0x17,0xC2,0xDB,0xAF,0x10,0x12,0x1A,0xD2,0x05,0x01,0x93,0xB0,0x01,0x32,0xA3,0x8E, - 0x15,0x21,0x54,0x0B,0x0F,0x61,0xD5,0x95,0xAF,0xD0,0x03,0xD6,0x75,0xFE,0x39,0xB8,0x52,0x92,0x30,0x9E,0xDB,0x9B,0xBB,0xA8,0xB6,0x90,0xE9,0x90,0xDB,0x3D,0xD0,0x00, - 0x92,0x1B,0x98,0xC9,0xCE,0xC2,0x10,0xB5,0x00,0x8B,0x18,0x9F,0xAC,0xAF,0xB8,0x24,0x75,0xA1,0xDC,0xCC,0xAB,0xE9,0x93,0x54,0x00,0xDB,0x19,0xAD,0x50,0xDB,0x61,0x8B, - 0x62,0xF9,0x21,0xD6,0x0F,0x15,0xCE,0x12,0xB0,0x00,0x1F,0xAB,0xA5,0xFF,0xAA,0xD4,0xB0,0xD9,0xA0,0xC0,0xB5,0xE2,0xED,0x15,0xC0,0xFA,0x2E,0x88,0x69,0x2E,0xBB,0x70, - 0xDB,0xA0,0xD8,0x5E,0x21,0x00,0xB3,0x55,0x53,0x28,0xE6,0x2D,0x0B,0x87,0x2C,0xDB,0x0E,0x32,0x64,0xFC,0x92,0x67,0x04,0xDC,0x95,0xFF,0x81,0xD5,0x8C,0x9E,0x61,0xDB, - 0x85,0xD0,0x06,0xDB,0xDC,0x1D,0x00,0xAC,0xEE,0x78,0xDB,0x01,0xDF,0xCF,0xA5,0x9A,0x53,0x08,0x0F,0x05,0xDB,0x81,0xDE,0x9F,0x4C,0x64,0xB8,0x99,0xB0,0xDC,0x90,0xB8, - 0xA7,0xCB,0x7A,0x00,0xC1,0x8D,0x2B,0x78,0x00,0xD1,0x2C,0x0B,0xAA,0x2F,0xEB,0x28,0xE5,0x25,0xD9,0x0F,0x00,0xCA,0xAB,0xD2,0x0F,0x11,0x0B,0xBE,0x05,0x00,0xBA,0xD6, - 0xE7,0x9B,0x3E,0x98,0xDB,0x2E,0x94,0x6E,0x00,0x40,0xDB,0xAB,0x49,0x53,0xE7,0x97,0x94,0x47,0x54,0x0B,0xAE,0xE5,0xA1,0x8B,0x1A,0xAD,0x2B,0xB7,0x24,0xAB,0x48,0xDB, - 0x7C,0xB7,0x51,0xCA,0x00,0x46,0x9E,0xF0,0x5A,0xB0,0x2B,0xDB,0x0B,0xA4,0x97,0x79,0x02,0x61,0xDA,0x28,0xDB,0x30,0xA3,0xDB,0x68,0xBD,0x93,0xDA,0x64,0xD7,0xB6,0x0D, - 0x70,0x08,0x00,0xF1,0xB5,0x6F,0x1D,0x9F,0xE2,0x12,0xAF,0x84,0xDB,0xB3,0xAA,0x12,0xDB,0x18,0x89,0x58,0xDB,0x48,0xA4,0x12,0x87,0xAA,0x02,0x9A,0xCE,0x15,0x60,0xDA, - 0x97,0x00,0xCC,0x0F,0x0F,0x04,0xB7,0xE6,0xC2,0xBE,0xAF,0x81,0x26,0x58,0x6D,0xDB,0x69,0xA8,0x53,0xA4,0x45,0xE3,0x65,0xCC,0xD2,0x0C,0x93,0x78,0x1C,0xDA,0x5D,0x54, - 0x4E,0x96,0xBC,0xE6,0x5F,0x21,0xCA,0x18,0xDD,0x2B,0x32,0x0B,0x8D,0x4A,0xDC,0x0C,0xDA,0x1D,0xCD,0x02,0x07,0xD9,0x01,0x44,0xAF,0xE9,0xE6,0x00,0xDB,0x09,0x1E,0xC7, - 0xC1,0xDC,0x79,0xD9,0x00,0xBA,0x77,0x03,0x80,0x72,0x2E,0xEE,0xB6,0x4F,0xD8,0xDC,0x1B,0x07,0xA9,0xC3,0x61,0xDB,0x37,0xC3,0x64,0xB8,0x98,0xC9,0xB8,0x99,0x85,0xDC, - 0xAE,0xF2,0xB6,0x53,0x26,0x96,0x87,0x0C,0x6D,0xDB,0x30,0x91,0xB9,0xAE,0x92,0xC8,0xB3,0xCD,0xA0,0xA3,0xB3,0xE5,0xB2,0x8D,0xB8,0xF1,0x65,0x1D,0xB8,0x8D,0xFC,0x23, - 0x94,0x15,0xEE,0x5F,0xBA,0x2E,0xD4,0x56,0x01,0xCB,0x19,0xB6,0x29,0xEA,0xF1,0xEC,0xF4,0xE6,0x2D,0x2D,0x21,0x5F,0xEB,0x6C,0xD6,0xA9,0x48,0x21,0x54,0xF4,0x67,0x50, - 0x54,0xDF,0x28,0x54,0xA6,0xA8,0xAE,0xAC,0xDE,0x30,0xDF,0xBA,0x04,0x8F,0x4B,0xDB,0x0D,0x9F,0x12,0x51,0xDC,0x00,0xA4,0xCA,0xDA,0x16,0xB4,0x5A,0x00,0x6C,0x62,0xB5, - 0xA2,0xB6,0xAB,0x80,0xE4,0xA5,0x5B,0x24,0x20,0x7A,0x00,0x88,0x00,0x7A,0x1B,0xB7,0xCD,0x47,0xC5,0x86,0xDB,0x00,0xCD,0xCA,0xB6,0xE6,0xAD,0x50,0xDB,0xCE,0xEC,0xD2, - 0x8F,0x4C,0xAB,0xB0,0xDB,0xC1,0xA5,0x54,0x40,0xDB,0x19,0xB2,0xB8,0xCB,0xA3,0x0F,0xB4,0xBF,0x92,0xEA,0xAD,0xEE,0x6D,0xD9,0x6A,0x2C,0xE9,0x2D,0xA3,0xB9,0x3D,0x43, - 0xDC,0x09,0xCF,0x86,0x8A,0x44,0x67,0xC1,0xDB,0x45,0xB2,0x49,0x8B,0x61,0xD5,0x16,0xDB,0x16,0xE8,0xB5,0x9F,0x32,0x85,0xDC,0xCA,0xA3,0x4A,0x60,0xDA,0xB0,0xDC,0xB2, - 0xB5,0xE4,0x00,0xED,0x50,0xB7,0x98,0x4C,0x9F,0x82,0x40,0xDB,0x09,0x02,0x08,0x24,0x5B,0xB1,0xE2,0x75,0x30,0xDB,0x4A,0xDC,0x14,0xB7,0x54,0x90,0x55,0x82,0x76,0x83, - 0x55,0x87,0xD4,0x82,0x56,0x09,0x16,0xA0,0xB2,0xF0,0x0E,0xB0,0x2F,0x1A,0x0B,0xBE,0x3E,0x0B,0x02,0xEB,0xDD,0x92,0x6E,0x19,0xEB,0x00,0xFC,0xFB,0x02,0xE1,0xC4,0x0B, - 0xAF,0xFF,0x82,0xEB,0x21,0x60,0xDC,0xCA,0xCD,0x94,0xE6,0x5F,0xCD,0x45,0xCD,0x85,0xDB,0xAC,0xE5,0xE1,0xDB,0xD8,0x00,0xDB,0x5E,0xD8,0x4A,0xB9,0x5A,0x9D,0x5B,0xC9, - 0xCC,0xDA,0x14,0xDC,0x16,0xC8,0xF6,0xC9,0xEA,0xDF,0xDC,0xCE,0x80,0xC8,0x7A,0x08,0x24,0xDB,0x0C,0xDC,0x13,0x4C,0x65,0xE2,0x92,0xB8,0x5E,0x79,0xAB,0x52,0x6D,0x97, - 0x56,0x8E,0x65,0x87,0x59,0xC8,0x56,0x83,0x2B,0xEE,0x0E,0x08,0x40,0xDB,0xBC,0xB0,0xAF,0xD5,0xF7,0x0F,0xA8,0xFF,0x05,0x0D,0x0A,0x0D,0xB7,0xDB,0xBC,0xC9,0xA0,0xDA, - 0xEC,0x00,0xDB,0x29,0xBE,0xFF,0x03,0x22,0xA2,0x1A,0xAB,0xB9,0x3F,0x00,0x06,0x0E,0xAB,0x1B,0xDB,0x09,0x52,0x00,0xAB,0xE8,0x06,0x9B,0x64,0x88,0xB8,0xED,0xE8,0x6C, - 0xB6,0xB2,0xB1,0xAB,0x82,0xA9,0x05,0xA6,0xA4,0xE6,0xA1,0xC2,0xDC,0x50,0xDB,0xAE,0xB7,0x3E,0xCF,0xA8,0xB7,0x61,0x9F,0xB5,0x04,0x61,0xDB,0x42,0x80,0x22,0xDC,0xCD, - 0xCC,0xCF,0xB4,0x94,0xF0,0x00,0xDC,0xB4,0x98,0x90,0xDB,0x28,0xB1,0xAF,0xEB,0x68,0xDB,0x3A,0x00,0xB8,0xEB,0x0F,0xC3,0x9F,0xD8,0x0A,0x92,0x2B,0xC6,0x0D,0x03,0x01, - 0x5D,0x86,0x28,0xDB,0x6B,0xF8,0x61,0xDB,0xD1,0x11,0x9D,0x61,0xFA,0x2A,0x8E,0x73,0x03,0x85,0xDB,0xD8,0x09,0xD7,0x65,0xEA,0xD9,0x04,0xB7,0x22,0x1D,0xA9,0x00,0xA2, - 0x32,0xBD,0x69,0x64,0x00,0x2E,0xC2,0xDA,0xF2,0xD8,0xEC,0x00,0xDB,0x2D,0x92,0x2E,0xFB,0xAE,0xA2,0x66,0xDB,0x06,0xB4,0xDB,0x16,0xED,0xB9,0xB6,0x20,0x08,0x9C,0xDB, - 0x03,0x07,0x0D,0x4C,0x82,0x94,0x49,0x14,0xF1,0xEB,0xEB,0x72,0x6B,0x00,0x95,0xB8,0x5D,0x8C,0x2C,0xBA,0x99,0xE6,0xC8,0x02,0xDB,0x1D,0x07,0xAD,0xC8,0x92,0xB3,0x10, - 0xF2,0xDA,0x94,0xF4,0x1F,0x5C,0xB2,0xAE,0xA3,0xF1,0xA0,0xDC,0x93,0xA1,0xBE,0x1D,0x00,0xCA,0xC7,0x4E,0x0B,0x15,0xD2,0x93,0x50,0xDB,0xBA,0x05,0x82,0x1A,0xCB,0x09, - 0x12,0x83,0x60,0xDA,0x76,0xCD,0x00,0xDA,0x14,0x00,0x43,0xB7,0xC9,0x91,0x8C,0x27,0xDB,0x04,0xE9,0xCA,0xEE,0x6C,0xE2,0x01,0x41,0xDB,0xB9,0x65,0xB6,0xAD,0xED,0x5C, - 0x80,0x12,0x06,0xDB,0x24,0x4F,0x04,0x4F,0x53,0xB0,0x8F,0xD7,0x48,0xDB,0x4C,0xB8,0x53,0xF2,0xC2,0x2B,0x9E,0x9F,0xC3,0xDC,0x00,0xB3,0xED,0x90,0xBD,0x2F,0xDA,0x28, - 0xCC,0x13,0x0B,0x85,0xDB,0x85,0xB7,0xBF,0xB7,0x07,0xA4,0xB4,0xC0,0xDB,0x21,0xB2,0xDC,0xB9,0x13,0x53,0x92,0x39,0xFA,0x08,0x23,0xF2,0x54,0x1D,0x68,0xDB,0x4E,0xDA, - 0x1C,0x00,0xA0,0xDB,0x95,0x88,0x00,0x98,0xDB,0x09,0x79,0x6C,0x96,0xF0,0x62,0xB6,0x91,0xED,0x42,0x07,0x00,0x1B,0x00,0x09,0x40,0x00,0x31,0x07,0x24,0xAC,0x8F,0xCC, - 0xC2,0xDB,0xF3,0xE3,0xDB,0x05,0xD6,0xAD,0xF4,0x05,0xDC,0x16,0xBC,0xDB,0x15,0xD0,0x57,0xAB,0x36,0xB9,0x54,0xC0,0xF6,0xDB,0x0B,0x21,0xEA,0xCB,0xB6,0x2A,0xD6,0x0C, - 0xDB,0x0B,0x13,0x1F,0x92,0x4D,0xF4,0xE8,0xB8,0x2C,0xA3,0xA8,0xC8,0x24,0xAF,0xEC,0xD2,0xB4,0x00,0x1F,0xDD,0x08,0x31,0x97,0xC3,0x34,0x76,0x1C,0xCE,0x49,0x2E,0x81, - 0xDB,0x67,0x61,0xDA,0x1E,0xDB,0x16,0x8A,0x93,0xA2,0x00,0x3D,0xA6,0xA6,0x50,0xDB,0xE7,0xA5,0xDB,0x01,0xC5,0xE2,0xAF,0xF4,0xB7,0x13,0x83,0xDB,0x4F,0x02,0x35,0x1B, - 0x9F,0xF1,0x27,0xA5,0xCA,0xF1,0x59,0x03,0xDB,0x91,0x49,0x25,0x00,0xC4,0xEA,0xB1,0x2C,0xBE,0x2B,0x9C,0xAF,0xD0,0xED,0xA8,0xFC,0x0B,0xDB,0x3C,0xD5,0x9B,0x00,0xAE, - 0x9A,0xAF,0x7A,0xA1,0x2D,0x9A,0xBB,0x28,0x85,0x1A,0xB2,0x47,0x19,0x31,0x57,0x13,0x9D,0x3D,0x01,0xBD,0xDB,0xAE,0x1B,0x2B,0xE8,0x7A,0x00,0xD1,0x09,0xD6,0xEA,0xE9, - 0x05,0xE8,0x64,0xE5,0x5E,0x00,0x83,0xDD,0xE2,0x0B,0x05,0x4C,0x41,0xDF,0x12,0x65,0xDD,0xF6,0xB3,0x01,0xE3,0x57,0xE3,0xB7,0x29,0xA0,0xC9,0xE5,0xA4,0x9D,0xC8,0xD8, - 0x1B,0xDA,0x41,0x40,0xDB,0x7C,0xBF,0xC1,0x2D,0xAF,0xD7,0xF1,0x65,0xDB,0x04,0x6B,0x50,0xDB,0x50,0x93,0x5B,0xCE,0xDB,0xCD,0xF4,0x06,0xAE,0x12,0x15,0xBB,0xCA,0x97, - 0x10,0x54,0x99,0x50,0x1F,0xDB,0x75,0x17,0xB5,0x37,0xFB,0xF7,0xD4,0x3B,0xEA,0xCA,0xDB,0x15,0x2B,0xE1,0x29,0xDC,0x6B,0xED,0x72,0x36,0x50,0x44,0xDB,0x54,0x00,0xCF, - 0xC5,0x87,0xD8,0x01,0x94,0xB0,0x50,0xDB,0x27,0x43,0xDB,0x04,0x41,0x58,0xDB,0x2C,0x3D,0xDB,0x30,0xD9,0xA5,0xEE,0xBB,0x80,0x35,0xCF,0xD7,0xED,0x60,0x7A,0xDB,0x08, - 0x82,0x50,0xDB,0x5D,0x07,0x86,0x89,0x7A,0x53,0x9A,0x9E,0xCD,0x28,0xDB,0x25,0xC2,0xEA,0xDD,0x09,0x11,0x99,0x6D,0x34,0xA8,0xD9,0xE5,0xCC,0xDB,0x09,0x0B,0x81,0xDB, - 0x2B,0x61,0xDB,0x4B,0xD2,0x6D,0x92,0x6F,0xD7,0x87,0xC9,0x08,0x10,0xDB,0x1C,0x00,0xB9,0xE1,0x29,0xBF,0x69,0x85,0x20,0xDE,0x7E,0x00,0x06,0xD9,0x16,0x8B,0x88,0x51, - 0xA0,0xDB,0x95,0x0D,0x41,0x73,0x00,0x04,0xDB,0x96,0x00,0xC6,0xF6,0xC9,0xEB,0xB9,0xA4,0x91,0xD8,0x5B,0x22,0x59,0xB5,0x61,0xB6,0x04,0xB9,0x00,0x2C,0x02,0x24,0xC9, - 0xAA,0xD7,0xCF,0x6B,0xF1,0x3A,0x94,0x24,0x5E,0xDC,0x09,0xC2,0xDB,0x87,0xF6,0x10,0xB9,0xB8,0xB0,0xAA,0xB0,0xDC,0xCA,0xB3,0xE6,0x90,0xFB,0x00,0x94,0xA0,0xDB,0xC3, - 0xE1,0x11,0xA2,0xBA,0xBB,0x00,0xC8,0x0B,0xDE,0x94,0x15,0xA9,0x0D,0x15,0x72,0xDD,0xEC,0x17,0xDB,0x34,0x17,0x67,0xD5,0x00,0xBF,0xC6,0x64,0xAB,0xD3,0x09,0xE9,0xC2, - 0xDB,0xD6,0xF3,0x91,0x06,0x41,0x41,0xDB,0x28,0xDC,0x6F,0xCC,0x49,0x91,0x39,0xB6,0x04,0xD8,0x82,0x22,0x0D,0x15,0x87,0xDB,0xD0,0x38,0x2D,0x0D,0x22,0xAC,0x2C,0xA5, - 0xE2,0xB8,0xA3,0x41,0xDB,0x20,0x22,0x96,0x5B,0xCB,0xD8,0xDB,0x55,0x07,0x05,0xA3,0x95,0x80,0xF5,0xBF,0xE4,0xC4,0xA0,0xDB,0x17,0x61,0x01,0xDB,0x78,0x0A,0xAE,0x39, - 0x54,0x04,0x89,0xA4,0x5F,0x28,0xDB,0x2A,0x19,0x06,0x4A,0xFF,0x92,0x38,0xF6,0xAF,0x7C,0xDB,0x6F,0x54,0xD1,0xE5,0xDB,0x4C,0x98,0xE1,0xDB,0xDC,0x01,0x09,0xC1,0xD9, - 0xA7,0x02,0x4A,0xDB,0x0A,0xA7,0x9A,0xDA,0x05,0xA3,0x92,0xB6,0xD0,0xB1,0xDB,0xAC,0xD5,0xFF,0x04,0xB0,0x14,0x15,0xB4,0xBC,0x2A,0x1B,0xE3,0x45,0x97,0x26,0x95,0xDC, - 0x16,0xDB,0x16,0xB8,0x4B,0x6D,0xBA,0x2B,0xD1,0x7B,0x0C,0xA7,0xD3,0x26,0x19,0x0C,0xDC,0x0A,0xAE,0x9E,0x0A,0xAB,0x00,0xC3,0x95,0x5F,0xC3,0xD5,0x00,0xCF,0xAF,0x1D, - 0x53,0x05,0x48,0x00,0xAA,0x57,0x08,0x32,0x8E,0x5D,0xA8,0xF7,0x83,0xC4,0x02,0x75,0xB8,0x86,0xDB,0xE1,0xB1,0x89,0x93,0x12,0xDB,0x09,0x4A,0xA7,0x00,0xB6,0x2A,0xC8, - 0x76,0xBD,0x92,0x95,0xDB,0x8D,0x53,0xEB,0x7C,0x00,0xB4,0x88,0x12,0x12,0x24,0xDB,0x0E,0x2A,0xC9,0xE2,0x4F,0x68,0x95,0xC5,0xB0,0xDC,0x8C,0xDB,0x0B,0x95,0x49,0x23, - 0xFE,0x04,0xBA,0x05,0xA3,0x09,0x01,0xDB,0x15,0x7D,0xC3,0xDF,0x03,0x00,0xDE,0x9A,0xBA,0xD2,0xF8,0xD8,0xD4,0x73,0xCC,0x61,0xDD,0x72,0x00,0x87,0xDB,0x00,0x55,0x09, - 0x13,0x69,0xA2,0xAF,0xE9,0x26,0xC8,0xE6,0x0B,0x1C,0x1C,0x5D,0x2E,0x81,0xDF,0x04,0xA3,0x28,0x2E,0xD7,0xCB,0x9C,0xD9,0x2D,0x00,0x4A,0x3D,0x00,0x85,0xDB,0x84,0xDA, - 0xC4,0xB6,0x5B,0x94,0xB2,0x90,0x12,0x4A,0xDB,0x16,0xDA,0x16,0x2C,0x4F,0xD2,0x95,0xC9,0xB8,0x99,0x39,0xB8,0x4E,0xDB,0x09,0x6D,0x82,0xDB,0xED,0x8A,0x17,0x64,0xB1, - 0x01,0xA5,0xCE,0xA2,0xB4,0x94,0x94,0xB5,0x05,0x34,0x85,0xDB,0xE2,0xE5,0x19,0xD7,0xC5,0x1F,0x3A,0x1A,0x1C,0x00,0x99,0x4F,0x86,0x68,0xD8,0x2B,0x09,0xD5,0x2E,0x34, - 0xEB,0x3C,0xCB,0x3C,0x1D,0x10,0x1A,0x32,0x88,0xDB,0x05,0x2D,0x11,0x00,0x46,0x46,0x00,0xDB,0x41,0x98,0xDB,0x38,0x04,0xE0,0xDB,0x2C,0x6C,0xA0,0xDA,0x32,0xB6,0x48, - 0xB9,0xB6,0x48,0x12,0x2B,0xDB,0x08,0x94,0x9B,0x52,0x53,0x95,0x61,0xDA,0x64,0xB8,0x5E,0x24,0x6B,0xEB,0xE4,0xCB,0xB6,0x2C,0x04,0x81,0x81,0xA7,0xCF,0x2C,0x15,0x5F, - 0xA1,0x28,0x83,0xAE,0xF9,0x24,0xAF,0x29,0x5D,0xCC,0x01,0x9D,0xE6,0x9E,0xEB,0x05,0x5F,0xBA,0x04,0x03,0x50,0x1C,0xFA,0x78,0x0B,0xED,0x74,0x15,0xFC,0xAC,0x1A,0xE9, - 0x2A,0xB2,0xED,0xC2,0xD6,0xCD,0xF2,0xB7,0xB5,0xDA,0x88,0x5D,0x81,0xF8,0x09,0xD5,0x49,0xB3,0xC4,0x46,0x51,0xDB,0x00,0xBD,0xD9,0xBC,0x09,0x8C,0x8C,0x95,0x41,0xDA, - 0x79,0x2D,0x83,0xAC,0x91,0xDA,0x2B,0xDB,0x37,0xC8,0xDE,0xC9,0xB1,0xDB,0x4C,0x82,0xD5,0x00,0x0C,0xAA,0x00,0xAB,0x5F,0x5B,0xC0,0x4E,0x94,0x88,0x6B,0xA0,0xDB,0xEF, - 0x04,0xE5,0x2F,0xFF,0x6C,0xDC,0x2C,0xAC,0xA6,0x00,0xB3,0xF2,0xB5,0xC2,0x8A,0x00,0xDF,0xCE,0xCD,0x0A,0xC8,0x2A,0xD6,0x05,0x21,0xE5,0x19,0xB8,0x68,0x94,0x67,0xB0, - 0xDB,0xFB,0x0E,0x00,0xC2,0x72,0x67,0xAB,0x5E,0xB3,0xB0,0xDA,0xF2,0x00,0xB9,0x99,0x8D,0x25,0xB5,0x25,0x8C,0x06,0xDB,0xDC,0x04,0x58,0x58,0xEB,0xEC,0x61,0xDC,0x73, - 0xA4,0x41,0xDB,0x4A,0xED,0xB7,0x20,0x9A,0x0D,0xD8,0xDB,0x32,0xE6,0x18,0x22,0xB0,0xCC,0xDC,0x45,0x86,0xDB,0x94,0x86,0x35,0x81,0xDA,0x12,0x81,0xDC,0xCD,0x17,0x29, - 0xB8,0x59,0x9D,0x49,0xFB,0x12,0xBC,0xA8,0xB3,0x0E,0x50,0x00,0xCF,0x28,0x1C,0xAA,0xB0,0xBF,0x4D,0x67,0x16,0x2A,0xFA,0xF5,0x0E,0x38,0x74,0x29,0xDC,0x1D,0x0C,0xA4, - 0x91,0x50,0xDB,0x22,0x43,0x70,0x00,0xD4,0xC9,0x00,0x41,0xE9,0x03,0xDB,0xD5,0x09,0x9E,0xC8,0x81,0xDB,0xA0,0x3E,0xDB,0x02,0xAF,0x22,0x00,0x31,0x4F,0x0D,0x80,0xDB, - 0x1B,0x4C,0x11,0x8F,0xD7,0xCA,0x39,0xE3,0x85,0xDC,0x2D,0xF1,0x07,0xDB,0x04,0x61,0xDC,0x73,0xAB,0x61,0xDC,0x3C,0xF9,0x73,0xB3,0x74,0x06,0xA2,0x53,0x82,0xD8,0x0B, - 0x46,0x04,0x1C,0xD6,0xF7,0xB0,0x36,0x83,0x33,0x84,0xDB,0x8D,0x86,0xA4,0x02,0x19,0xDB,0x04,0x54,0xA1,0xDB,0xD2,0x00,0xE8,0xE1,0xDA,0x6B,0xF1,0x22,0xF3,0xAA,0x8C, - 0x00,0xC0,0xDB,0x4A,0x95,0x8D,0xDB,0x0A,0x92,0x4A,0xDB,0x0B,0xA4,0x96,0xE6,0xED,0xA7,0xAC,0x7A,0xCF,0x48,0x00,0x36,0xDB,0x02,0x12,0x24,0xDE,0xCE,0x26,0xAA,0x6F, - 0xAE,0xAA,0x00,0xA7,0x05,0x88,0xBA,0xDB,0x09,0x03,0xCE,0xA8,0x92,0x15,0x2B,0x49,0x80,0xC2,0xB3,0x74,0x8C,0x98,0xA3,0xB9,0xB2,0xB0,0xDC,0xDA,0x1B,0xCD,0x8E,0x69, - 0x98,0x6B,0x00,0x21,0xFB,0xA9,0x41,0xD8,0x54,0x16,0xDB,0x12,0x91,0xB6,0x2D,0x49,0x28,0xDC,0x60,0xD9,0x9E,0xB0,0xDB,0x58,0x41,0xDA,0x76,0x06,0xCA,0xE5,0x79,0x79, - 0x84,0xDA,0xC1,0xDB,0x21,0xB6,0x0A,0x98,0x24,0x02,0xA6,0x08,0x35,0xDB,0x0C,0xEF,0x8E,0x08,0x53,0x87,0xEC,0xDC,0x32,0xB8,0x9C,0xDB,0x25,0xBF,0xE9,0x52,0x97,0xF0, - 0x00,0xD8,0xC3,0xCE,0x03,0xCB,0x84,0xDA,0x04,0x15,0x40,0xDB,0x24,0x54,0x9A,0x49,0x26,0x95,0x4A,0x00,0x06,0xA2,0xAB,0x61,0x2E,0xDB,0x6A,0x10,0x1C,0xA7,0x9B,0x1F, - 0x5B,0x1C,0xC7,0xDA,0xEF,0xF2,0x19,0xAB,0xEE,0xAB,0x00,0xA0,0xDB,0x2C,0x49,0x2F,0xDB,0x29,0x8F,0x28,0xDB,0x14,0x8C,0xD4,0x1C,0xA6,0xF9,0x02,0xB6,0x5B,0xCB,0xF8, - 0x00,0xDA,0x4C,0xDB,0x14,0xB6,0x40,0xDF,0xE6,0xC4,0xB7,0x4C,0x3F,0x7A,0x07,0xE5,0x83,0x42,0xB8,0xA2,0xB6,0x05,0x31,0x12,0x7A,0xC1,0xAF,0xA4,0x95,0xE1,0xDB,0x65, - 0xB8,0x61,0xD8,0x12,0xDB,0x19,0xB7,0x77,0x01,0x00,0x57,0x86,0x6B,0xEF,0x4B,0xC5,0x61,0xD7,0x53,0x9D,0x85,0xCA,0x58,0x00,0xD8,0x5E,0xC3,0x74,0x08,0xBF,0x09,0x54, - 0x43,0xDB,0x29,0xB0,0xDB,0xE6,0xB1,0xAA,0xF3,0xC1,0xDC,0x54,0x33,0xC9,0xE1,0xDB,0x22,0xED,0xA7,0x2F,0xDB,0x0C,0xD1,0x26,0x00,0x48,0x4A,0x05,0x79,0x8C,0xDB,0x0A, - 0xA3,0x90,0xDA,0xA8,0x97,0x9F,0xC3,0xD8,0xDB,0x04,0x9F,0x19,0x82,0xDB,0x31,0xC1,0xDB,0x02,0xE2,0xE4,0xD7,0xDE,0xCE,0x34,0xDB,0x24,0xCF,0x7A,0xE7,0xCF,0xA2,0x2D, - 0x94,0x26,0x00,0xDE,0xCD,0x82,0xC9,0x82,0xD5,0x70,0xDB,0xA7,0xC3,0xB0,0xDA,0x56,0x1A,0xED,0x69,0x97,0x81,0xD5,0x1D,0x1C,0xC9,0x14,0x11,0x49,0xC4,0x5D,0x24,0x17, - 0xF4,0xAB,0x8F,0xC5,0x2B,0xC9,0x94,0x2E,0x8C,0xAB,0x49,0x46,0x42,0xDB,0x92,0x0A,0x51,0x83,0xDB,0x9E,0x00,0x8F,0xDB,0x02,0x6C,0xE4,0xC0,0xDB,0xDA,0xCF,0x3E,0xA5, - 0x53,0x88,0x55,0x4F,0xCD,0x20,0x00,0xE0,0x00,0x0D,0x22,0x2D,0x8F,0xCC,0x94,0x26,0xB9,0x29,0x96,0xEF,0xC2,0xDF,0x65,0xEF,0xD6,0xE6,0xAC,0x00,0x88,0xAA,0x05,0xE9, - 0xE1,0x1D,0x85,0xDF,0x65,0xAF,0x71,0x99,0xEC,0xAB,0xB5,0x87,0xAF,0xEC,0x05,0x29,0xBF,0x55,0x15,0x96,0xC2,0xF2,0x14,0xE8,0x17,0xB9,0x2C,0xAB,0xD1,0x06,0x32,0x32, - 0x49,0xD3,0x0C,0xAB,0xAC,0x8C,0x49,0x32,0xDB,0x2D,0xE2,0x75,0xE7,0xD7,0x0B,0x6E,0xC1,0xDF,0x00,0x0C,0x82,0xD7,0x85,0x40,0xD5,0x4E,0x41,0xDA,0x14,0x00,0xB8,0x35, - 0xB8,0xB6,0xEC,0x19,0xE4,0x77,0xB4,0xB6,0x02,0xC4,0xA8,0x22,0x0D,0x08,0x0E,0x41,0xD6,0x08,0x69,0x3B,0x1B,0x9E,0xCE,0x59,0xAA,0x45,0x52,0x2D,0xF0,0x94,0xB2,0xDD, - 0xBE,0xDC,0x00,0x95,0xAD,0x01,0xE0,0x6B,0xA0,0x95,0x54,0x8A,0xC9,0xCD,0x7E,0xF6,0xD6,0xF3,0x60,0xDB,0xE7,0x15,0xDB,0x0C,0xBD,0xBB,0x00,0xD6,0xCC,0xAE,0x94,0x1A, - 0xDB,0x1F,0xBB,0x48,0xC0,0xF5,0x82,0x76,0xB6,0x54,0xD6,0x12,0xCD,0xAA,0x4A,0xA6,0x9E,0xC0,0xD4,0x85,0x85,0xB4,0x03,0x85,0xA0,0xDA,0xB6,0xAA,0x00,0x92,0x45,0xB4, - 0xBF,0xC8,0xDA,0x92,0x2A,0xE9,0x08,0x0D,0xC2,0xDB,0xCD,0x38,0x08,0xF0,0xCE,0xD1,0xCF,0x05,0xB8,0x77,0x85,0x34,0x00,0xB7,0x82,0x84,0xD6,0xA1,0xDB,0x73,0x94,0x92, - 0xA5,0x1A,0xDE,0xB8,0x60,0xDB,0xA5,0xCA,0x5E,0x1C,0x00,0x93,0x97,0x07,0x73,0x92,0xDC,0x00,0x0F,0xC1,0xDC,0x73,0x9D,0xE5,0x0B,0xB6,0x61,0xDB,0x72,0x99,0x64,0xB0, - 0xDB,0x89,0x00,0xA0,0xDB,0x94,0xDA,0x17,0x85,0x03,0x40,0xDC,0x4A,0x94,0xDB,0x34,0x90,0xCB,0xB6,0x91,0x40,0xDF,0xC4,0xAF,0x7A,0x4E,0x08,0xA3,0x10,0x72,0xDB,0x1A, - 0xD1,0x37,0x4C,0xCE,0x4C,0xC5,0xDB,0x15,0xBD,0xCE,0x6D,0x03,0x2C,0xDB,0x30,0xD9,0x76,0x67,0x02,0xB6,0x54,0x9C,0x45,0x10,0x1F,0x85,0xB5,0xAA,0xF3,0x67,0xB2,0x00, - 0x95,0xBC,0x00,0xC0,0x2C,0xDB,0x3C,0x07,0xEF,0x27,0xDB,0x0D,0x88,0x3B,0x0D,0x07,0x97,0xD4,0x34,0x02,0x43,0x85,0xA8,0xD2,0x08,0x92,0x69,0x90,0x5D,0x00,0x05,0xCC, - 0x06,0x93,0x93,0x82,0xDA,0xBC,0x44,0x91,0x94,0xDB,0x00,0xA3,0xBD,0xD0,0xC9,0xB7,0x53,0x4E,0x7A,0xDB,0x70,0x6E,0x95,0x92,0x4A,0xAF,0x0D,0xD2,0x95,0x40,0xDC,0x61, - 0xD6,0xDC,0x74,0x00,0xD8,0x0E,0x81,0x00,0x62,0xB7,0xB0,0xDB,0x44,0x5F,0x06,0xDB,0xB5,0x1A,0x01,0x54,0x50,0xDC,0xCE,0xF0,0x82,0xC5,0xA7,0x89,0x09,0xB0,0xDB,0xA7, - 0xCB,0x9B,0x00,0x14,0xBE,0x00,0x07,0xC2,0xF7,0xDD,0xC5,0x8C,0x94,0xB2,0xE8,0x89,0x6E,0x89,0xDB,0x0D,0xC3,0xE8,0xDB,0x2E,0x00,0x44,0x91,0xC3,0xDB,0x00,0xC3,0xDA, - 0x00,0xA0,0xDB,0x53,0xE4,0xC8,0x81,0xC9,0xE2,0xC1,0x02,0x31,0x00,0x02,0x10,0x00,0x12,0x00,0x22,0x4A,0x97,0x95,0x98,0xDB,0x28,0xD6,0xD9,0x28,0xDF,0x2C,0xDA,0x2C, - 0xDB,0x16,0x2B,0xDB,0x12,0x86,0xDA,0x00,0x1D,0xE8,0x04,0xD8,0x32,0x8E,0xB0,0xDB,0xBE,0x93,0x94,0xFD,0xEB,0x9A,0xAA,0x07,0x52,0xAB,0x46,0x1A,0x75,0x00,0x13,0x9C, - 0x38,0xDB,0x51,0xB1,0x56,0xD8,0x58,0xDD,0x4E,0xB5,0x52,0x60,0x07,0xDB,0x8C,0xB0,0xDB,0x25,0x8D,0x85,0xB6,0x2A,0x00,0x58,0xB8,0xDB,0x29,0xE4,0xC8,0xC1,0xBD,0xC7, - 0xC4,0xAC,0x08,0xD4,0xC4,0xE5,0xB4,0x07,0xAA,0x00,0x1B,0xC1,0xE2,0xC5,0xC5,0xC2,0xDB,0x72,0xB8,0x98,0xDB,0x26,0x80,0xBC,0x98,0xAF,0xF1,0xEC,0xCD,0x2D,0xEC,0x6C, - 0xDC,0x24,0xE0,0x59,0x03,0xCB,0x07,0xB2,0xBF,0xB8,0x00,0xD0,0xDA,0xAA,0x10,0xC0,0x77,0x64,0x2D,0x28,0xDB,0x30,0x43,0xD0,0xCA,0x01,0x93,0x93,0xDB,0x07,0x8C,0x03, - 0x28,0xDB,0x48,0xB6,0x44,0x8D,0x8D,0xE1,0xDA,0x30,0xDB,0x2B,0x77,0xB7,0x83,0xE6,0xAF,0x1B,0x4F,0x9E,0xC9,0xDE,0x8F,0x0E,0x26,0xA6,0xFD,0x00,0xA0,0xF8,0xC1,0xD8, - 0xCF,0xA4,0x95,0xB0,0xDB,0x58,0x5E,0xDD,0x4E,0xDA,0x16,0xD7,0x08,0x67,0x80,0xDB,0xF0,0x00,0xC9,0xFE,0xFF,0x82,0xDB,0xDE,0xB0,0xF2,0xD0,0x70,0xD5,0x15,0x49,0x26, - 0x26,0x04,0x20,0xCF,0x58,0xED,0x26,0x2E,0xDA,0x0A,0xDB,0x01,0xAB,0xCD,0x2E,0x55,0xF4,0x6F,0xC6,0x61,0xCF,0x61,0xDB,0x84,0xD2,0xE1,0xDB,0x28,0xD6,0x4E,0xDA,0x17, - 0xFF,0x56,0xB6,0x58,0xDA,0x68,0x92,0xA8,0x56,0x24,0xF9,0xD9,0xB7,0x58,0xA5,0x20,0x1B,0xCD,0xC7,0xE7,0x00,0xD8,0xB4,0x12,0x4F,0x61,0x0D,0xDC,0x3A,0x95,0x2C,0xE3, - 0xB8,0x86,0x81,0xEC,0xEC,0xDD,0x0F,0xCD,0xC0,0x16,0x67,0xCD,0xAC,0x19,0xDC,0x1B,0xAB,0x07,0x19,0xB7,0x0B,0xFD,0x8E,0x08,0x65,0xD5,0xF3,0xB3,0x00,0x96,0x04,0x72, - 0xA6,0x54,0x49,0x97,0xE7,0x0C,0x1D,0x49,0x27,0x2D,0x0E,0x5F,0x00,0xB7,0x4B,0x97,0x34,0xD9,0x18,0xCE,0x56,0xE2,0x12,0x93,0x27,0x87,0xE5,0x00,0x20,0xD6,0x2B,0x8D, - 0x01,0x02,0xB0,0xDC,0x4A,0xD9,0xB7,0x43,0xB4,0xDB,0xC7,0xC7,0x77,0x9F,0xB0,0xC4,0x4F,0x12,0xE1,0xAA,0x07,0x80,0xDB,0x02,0x62,0x12,0x00,0x24,0xB0,0xD8,0xB3,0xE4, - 0xDA,0x09,0xC2,0xDB,0xC2,0xDA,0x95,0x00,0x17,0xFD,0x17,0x86,0xC9,0xAB,0x0A,0xB4,0xDE,0x9D,0x40,0xDB,0xB0,0xCC,0x9C,0xB3,0xB0,0xCA,0x89,0xDB,0x05,0x2E,0xE0,0x04, - 0xEF,0x1A,0x94,0xD8,0x0A,0x2F,0x2F,0xDD,0x5B,0xA9,0xE9,0x5E,0xC3,0x83,0xDB,0x00,0xC1,0xD2,0x5D,0xCB,0x08,0x00,0x61,0xD9,0x35,0x00,0x84,0xDA,0x81,0xDB,0x44,0xB6, - 0xBD,0x18,0xB1,0x9A,0x9F,0x92,0x10,0x00,0x31,0x23,0x85,0xDB,0x09,0xA4,0x22,0xAC,0x76,0x88,0xD6,0x94,0xDC,0x16,0x81,0xB7,0x58,0x02,0xCD,0x81,0x35,0x48,0xCD,0xD6, - 0x1D,0x03,0xE6,0xAC,0xEC,0x76,0xB3,0xF6,0xDA,0x13,0x85,0xD9,0x82,0xC5,0x2F,0x50,0xDA,0x90,0xA5,0xBE,0xA3,0x3F,0x45,0x2F,0x03,0x00,0x0D,0xF5,0x16,0x0D,0x49,0x83, - 0xD1,0x2F,0x10,0x98,0xDA,0x3B,0x00,0xDA,0x08,0x84,0x00,0x65,0xE0,0xD8,0xB5,0x94,0xDA,0x03,0xD9,0xF1,0xB8,0xF1,0xDA,0x00,0xCB,0xDB,0xC4,0x5B,0xA0,0xDA,0x39,0x02, - 0x08,0xA6,0x81,0x14,0xDB,0x36,0xB8,0xC1,0xDC,0x31,0xC9,0xAC,0xE2,0xE6,0x20,0xDC,0x14,0xE3,0xE3,0xED,0xB8,0xD7,0x12,0xCD,0xEC,0xA6,0x97,0x98,0x92,0x83,0xDB,0x32, - 0xDD,0x09,0x56,0xE1,0xCE,0xF2,0x50,0xBF,0xA2,0xA1,0xF0,0x0A,0xC4,0xB4,0x98,0xA2,0xA4,0xF0,0x08,0xDB,0x58,0x2F,0xDB,0x7D,0x09,0x0F,0x54,0x0D,0xA2,0xD0,0xD9,0x73, - 0x00,0x01,0xDA,0x65,0x65,0x4B,0xED,0x30,0xD6,0x5A,0x04,0x8D,0x2C,0xDB,0x16,0xD9,0xDB,0x0A,0xF1,0xED,0x50,0xDB,0xDA,0xAC,0x7A,0xC3,0x90,0x81,0x7D,0xE6,0x60,0x46, - 0xDB,0x0C,0xA4,0x70,0xDC,0xC0,0xDF,0x0D,0x98,0x16,0xE2,0xDA,0xD0,0xDB,0x1D,0x00,0x06,0xD6,0xDB,0x14,0xB8,0x5A,0x00,0xAB,0xC2,0xDB,0xC9,0xBB,0x1A,0x85,0xAB,0x74, - 0x9A,0xCF,0xAE,0x28,0xDB,0x61,0xB6,0x39,0xFE,0xDD,0x00,0x83,0xDB,0x46,0xDB,0x04,0x49,0xE1,0xDB,0x65,0xC5,0x69,0x15,0x2F,0x8A,0xB5,0x24,0xDB,0x34,0x09,0x65,0x50, - 0xDA,0x61,0xDB,0x38,0xDA,0x60,0xDB,0xC3,0x14,0xDB,0xCE,0x98,0x8E,0x02,0x0D,0x1B,0x02,0x04,0x60,0xDB,0xB2,0x00,0x07,0x12,0x98,0x00,0x22,0xDC,0x14,0xDF,0xD0,0xB9, - 0x56,0xDB,0x16,0xB4,0x56,0xD8,0x16,0xDB,0x15,0x03,0x44,0xB6,0x2F,0xF2,0x03,0x89,0xB2,0xAA,0x9D,0xA7,0xE4,0xAA,0x29,0xEE,0x0C,0x0E,0x60,0xDB,0xBB,0x16,0x1C,0xBC, - 0x07,0x06,0x5D,0x5D,0x9C,0xAD,0xA9,0xEA,0x56,0x27,0xD5,0x1F,0x03,0x00,0x38,0xD6,0x5E,0x00,0xD9,0x13,0x80,0xDA,0xE4,0xCB,0xC9,0xC1,0xDA,0x7A,0x85,0xD6,0x86,0xD7, - 0x04,0x08,0x85,0xA0,0x00,0xB8,0xDB,0x31,0xAB,0xE9,0x00,0x12,0x24,0x49,0x96,0x69,0x95,0x30,0xDC,0x79,0x95,0x59,0x98,0xDD,0x03,0x04,0x03,0xD5,0x2F,0x03,0xD2,0x04, - 0x46,0xA5,0x8B,0x82,0xB7,0x50,0x49,0x05,0x81,0xE4,0x45,0xAC,0x00,0x36,0xDB,0x1A,0x5D,0x93,0x61,0xDF,0x2B,0x00,0x5D,0x00,0xBC,0x06,0xD8,0x11,0x6E,0x2B,0xE2,0x20, - 0xD6,0x04,0x65,0x29,0x18,0x18,0x48,0xD9,0x51,0x00,0xD9,0xD4,0x30,0xDB,0x61,0xDA,0xE7,0xD8,0xD5,0x14,0xC4,0x77,0xFA,0x50,0x22,0x03,0xDB,0x12,0x47,0x3A,0x7A,0x9F, - 0x00,0xE5,0x4C,0x15,0x98,0xCF,0xD6,0xF2,0x74,0x95,0x30,0x64,0x51,0xD3,0xB0,0xD6,0x94,0xDB,0x30,0xAB,0x58,0x46,0xC6,0x55,0xCD,0x4C,0xBA,0x09,0x27,0xCA,0x9B,0xC2, - 0xE7,0xE8,0x00,0xDB,0x0D,0x6E,0x5D,0x05,0x6E,0x77,0x1C,0x1F,0x61,0xDB,0xE5,0x2F,0xB5,0x16,0xD8,0x16,0xD7,0x12,0x30,0x00,0x28,0xD2,0xE5,0x02,0x00,0x55,0xD4,0x00, - 0x86,0xDA,0xDB,0x03,0xBD,0xB7,0x7A,0xDA,0x05,0x12,0xA9,0xA0,0x1B,0x0D,0x06,0xA1,0xDB,0x0B,0xD6,0x33,0xE7,0x02,0x12,0x0D,0xB0,0xCF,0xD0,0xC2,0xDB,0x50,0xDD,0x29, - 0xE9,0x51,0x00,0x64,0x4F,0x00,0x43,0xA7,0x28,0xEF,0xE6,0x98,0x79,0xD6,0xC2,0xD6,0xD8,0x72,0xA2,0xB0,0xC8,0xF8,0x0E,0x08,0x4D,0x00,0x27,0x22,0x00,0x65,0x69,0x00, - 0x41,0xD9,0x6A,0x53,0x00,0x06,0xD8,0xB6,0x53,0x00,0xDB,0xE1,0xDB,0xB7,0x02,0x0D,0x07,0x0D,0x24,0x24,0x1B,0x26,0x00,0x04,0x80,0xDB,0x31,0x9F,0x08,0xAF,0x02,0x00, - 0x24,0x82,0xE2,0xB9,0xB9,0x81,0xDC,0xE9,0x74,0x00,0xD9,0x0A,0x43,0x00,0xC3,0xDB,0x03,0xD2,0x8F,0x62,0xB6,0xC2,0xC0,0x70,0xDB,0x88,0xF9,0x3B,0xBF,0x09,0x52,0x81, - 0x11,0xD2,0x09,0x24,0x06,0xB0,0x24,0x29,0xE0,0xDA,0x28,0x98,0xDB,0x13,0x4D,0x12,0xB3,0xEF,0x55,0xEE,0x57,0xC3,0xB3,0x18,0x24,0x22,0xD9,0x17,0x24,0x0D,0x00,0x38, - 0xDC,0x40,0x92,0xDB,0x00,0x0D,0x12,0x02,0x9F,0xC1,0x12,0xCF,0xDF,0xB4,0x83,0xDB,0x95,0xDA,0x06,0x41,0xD5,0x0A,0x8C,0xDC,0x0A,0xCF,0xFC,0xB0,0xA7,0xA0,0x79,0xC1, - 0xBC,0x2F,0x16,0xC6,0x11,0xE0,0xD2,0x5D,0xB0,0xD1,0xB8,0x09,0xC4,0x89,0xA0,0xD5,0xB4,0x00,0x6A,0x84,0xB6,0x4D,0x4C,0xD4,0x00,0xEF,0x58,0xEF,0xDA,0x03,0xDB,0xA5, - 0xC1,0x0D,0x22,0xDB,0x0A,0x02,0xB9,0x00,0xC2,0xDF,0x04,0x70,0xDB,0x52,0x02,0xEA,0x7C,0xC4,0x1B,0x24,0x53,0xB7,0xDC,0x03,0x3D,0x95,0x00,0x1D,0x41,0x41,0x8C,0x00, - 0x05,0xDF,0x05,0xDB,0x87,0xDD,0x00,0x09,0x9F,0xF1,0x02,0x38,0xCF,0x4D,0x08,0x12,0xD4,0x12,0x4C,0x04,0xD5,0x14,0xDF,0x13,0x04,0xD5,0xA1,0xDA,0x10,0xDB,0x0C,0xEF, - 0x00,0xF1,0xE0,0x00,0xE1,0xC7,0xA5,0x4C,0x5B,0x5B,0x4C,0x22,0x0A,0x53,0x4C,0x53,0x22,0x00,0x8B,0xDE,0x0E,0x00,0x04,0x10,0xDB,0xDE,0x42,0x00,0xE4,0x7F,0x4E,0xC6, - 0x06,0x22,0xB7,0xD0,0xA3,0xDC,0x00,0x91,0x3D,0x3D,0x4A,0x4A,0x3F,0x58,0x58,0xCB,0xE8,0x03,0xE1,0x32,0x06,0x8C,0x6E,0x38,0xDB,0x24,0xAB,0x28,0xC0,0xC5,0x8D,0x00, - 0x4B,0x29,0x05,0x41,0xD1,0x39,0xB1,0x4C,0xD6,0x05,0x5A,0x4D,0xCE,0x00,0xD8,0x16,0xD9,0x00,0xE0,0xC3,0xC9,0xA8,0xAC,0x14,0x9A,0x9A,0x5B,0x00,0x4C,0xC2,0xDC,0x93, - 0x00,0x22,0x94,0xBE,0xE1,0xDE,0x07,0xC0,0xDB,0x4F,0xB0,0xD7,0xA0,0xDC,0xE8,0x84,0x53,0xA5,0x02,0xDA,0xB4,0x77,0x77,0x6C,0x6C,0x80,0xDD,0x58,0x85,0xBC,0x00,0xE1, - 0x3A,0x00,0xDF,0x0B,0xF3,0x84,0x27,0x64,0x00,0x58,0xC5,0x55,0x07,0xDC,0x00,0x06,0xFC,0x0C,0x00,0x81,0xD4,0x21,0xB0,0x25,0x5A,0xD7,0x0F,0x00,0xD6,0x05,0x59,0xBB, - 0x00,0x7E,0x00,0xD9,0x0D,0x00,0xE0,0x80,0x00,0xCB,0xCE,0xA5,0xAF,0xA5,0x98,0x98,0xC1,0xDC,0x97,0xB0,0x02,0x9A,0xDD,0xB0,0xDF,0x9C,0xBE,0xA2,0x56,0xFD,0x1F,0x9B, - 0x48,0x74,0xDB,0x3F,0x48,0x41,0x04,0xC6,0x00,0x12,0x9F,0x98,0xDC,0x00,0xA3,0xA0,0x6C,0xB6,0xB6,0x2C,0x79,0xBC,0xDA,0x18,0x8D,0x02,0x93,0x85,0x9E,0xB0,0xE0,0xBA, - 0xCB,0x8F,0x9B,0x29,0x8E,0xF2,0xAE,0x00,0x07,0x79,0x0D,0xCA,0xAB,0x65,0xDF,0xB0,0xD2,0x49,0x4D,0x04,0xE1,0x00,0xD6,0x3C,0x00,0x80,0xDB,0xD1,0xE4,0xA0,0xCE,0xB7, - 0x6C,0xA5,0x01,0xAF,0x00,0x98,0x97,0xE6,0x00,0xBD,0x2F,0x00,0xDD,0x08,0xD2,0xBD,0x83,0xB0,0xDB,0xD4,0xEB,0x31,0x24,0xB6,0x4B,0xF0,0xF4,0x98,0x06,0xC1,0xCA,0xB9, - 0x05,0xA0,0xE4,0xB6,0xB8,0xBC,0x26,0x00,0x85,0xC4,0xFB,0xE5,0x05,0x93,0x84,0xCE,0xE5,0xA0,0x84,0xBF,0x50,0xC0,0x45,0xF1,0x0B,0x00,0x6F,0xB4,0x29,0xAD,0x4E,0xD7, - 0x13,0x11,0xB2,0x7E,0x9C,0x72,0x00,0x07,0xDB,0xA0,0x25,0xB1,0xA8,0x30,0x00,0xB7,0xDD,0xC1,0xE0,0xAF,0x45,0xBC,0x53,0x00,0xA4,0x9B,0x60,0xDC,0x41,0x00,0xDB,0x42, - 0xEB,0xEB,0x49,0x00,0x0D,0x3B,0x46,0x4D,0xCF,0x6C,0x59,0x9A,0x98,0x38,0xBD,0xA3,0xBD,0x75,0xB8,0x9D,0x84,0xDC,0x9F,0xC3,0x28,0xDF,0x65,0x90,0x2D,0xC6,0x58,0xBD, - 0x61,0xB2,0x73,0x05,0x85,0xC7,0xDC,0x0D,0x06,0x4C,0x07,0xE9,0x00,0x4D,0xE6,0x00,0xD5,0x09,0x82,0xD7,0xC7,0x00,0x92,0xE8,0xD1,0x9F,0x2C,0xC4,0x00,0xB1,0xB1,0x9C, - 0xDE,0x28,0xBB,0xB2,0xBC,0x9C,0xDE,0x24,0xF9,0x59,0x06,0xEF,0x09,0x12,0x97,0x1F,0xDA,0x0E,0x49,0xB0,0x4F,0xD9,0xF0,0x58,0xDB,0x14,0x8F,0xDA,0xCB,0xDC,0x05,0xBC, - 0xD9,0xEC,0xE2,0xE1,0xDA,0x79,0x9C,0x2C,0xEF,0x46,0x15,0x94,0xCE,0x06,0xD3,0x09,0x28,0xD6,0xD6,0x72,0xAB,0x4C,0x59,0xAB,0x51,0xA0,0xD8,0x92,0xEC,0x00,0xDA,0x02, - 0xCB,0xC9,0xCE,0xCE,0x50,0xDC,0xE5,0x00,0xBB,0x2B,0xDC,0x08,0xD2,0xBA,0x9C,0xDC,0x21,0xF9,0xB3,0x86,0x03,0xD9,0x00,0x98,0xB4,0xAC,0xD9,0x29,0x5B,0x97,0x81,0x62, - 0xA5,0xC4,0xBD,0xE4,0xEF,0xD4,0x61,0xDB,0x34,0x00,0xA1,0xCB,0x7B,0xFA,0x39,0xE8,0xCE,0xEA,0x76,0x00,0x5A,0x89,0xEC,0x09,0x02,0xD1,0x49,0x04,0xE3,0x00,0x0A,0xAD, - 0x46,0x00,0xA9,0x01,0xE8,0x30,0xE0,0xDB,0xDA,0xE3,0x00,0x82,0xDD,0x45,0xF6,0x98,0xDC,0x28,0xDD,0x23,0x83,0xDB,0x00,0x82,0xB0,0xDB,0x98,0xDA,0x13,0x0D,0x87,0xDA, - 0x53,0x20,0xD9,0x29,0xAF,0xDF,0x87,0xC4,0xC7,0xE4,0xA0,0x53,0xEC,0xE2,0xA1,0xC1,0x14,0xBE,0x11,0x67,0xEC,0x77,0x00,0x09,0x3C,0x06,0x58,0xD4,0x47,0x14,0xAE,0x81, - 0xD8,0x4A,0x00,0xAA,0x8F,0x40,0xC9,0xC7,0xC7,0xC9,0xE2,0x00,0x02,0xDD,0x64,0x97,0x4C,0x98,0xDC,0x12,0xCC,0xB1,0x44,0xAE,0xC1,0xA8,0xDB,0x49,0xE8,0x31,0x45,0xB5, - 0x82,0xDA,0xAF,0x98,0xD8,0xA8,0xB1,0xC2,0x70,0xCE,0xDB,0xC3,0xEF,0x4C,0x00,0xDB,0x2C,0xA1,0x11,0x59,0x67,0xE3,0x08,0x04,0xBF,0xB3,0x08,0xCF,0x0F,0x00,0x18,0xD4, - 0x16,0xD7,0x12,0x86,0xDB,0xB4,0x58,0xDA,0x68,0x00,0xC7,0xF0,0xDC,0x95,0x96,0x20,0x4A,0xDB,0x09,0x4A,0xB7,0x28,0xDA,0x28,0xB5,0xA5,0xDA,0x06,0xCE,0xD9,0x20,0xC3, - 0xE1,0xE0,0xD1,0xE8,0x48,0xE8,0xA0,0x08,0x7E,0x7E,0x00,0xE3,0x24,0x8A,0xA9,0x30,0xD9,0x13,0xA9,0x32,0x00,0xAA,0xB4,0xC1,0xDA,0xCB,0xD0,0x00,0xDC,0x23,0xDB,0x03, - 0xDD,0xDC,0x09,0xC2,0xDB,0x74,0x93,0x8F,0x92,0x48,0x3A,0xDB,0x0A,0x52,0xB2,0xB6,0x98,0xB5,0xBC,0x74,0x79,0xDB,0xCB,0x58,0xC3,0xDC,0x2C,0xE8,0x9B,0x2C,0xA6,0x2A, - 0x03,0x38,0xB9,0x26,0xBF,0x08,0xF8,0x0F,0xD4,0x00,0xA9,0xEE,0x00,0xA1,0x00,0xC1,0xDA,0xE1,0xD8,0x00,0xDD,0x26,0xCB,0xBB,0x29,0xC2,0xDB,0x64,0x93,0xB2,0xB6,0x99, - 0xCB,0xEE,0xE1,0x23,0xD6,0xED,0x0A,0xC2,0xDB,0x57,0xCB,0x9C,0xDB,0x30,0xDA,0x88,0xDB,0x07,0xC7,0x7A,0xA4,0x7E,0xC3,0xBA,0x29,0xC1,0x9B,0x92,0x0E,0xC3,0x00,0x01, - 0xD3,0x30,0xD7,0x58,0xD9,0x72,0x9F,0xE0,0xF0,0x00,0xDA,0xAB,0x00,0xDB,0x04,0xDB,0xE1,0xDB,0x29,0xB6,0x5B,0xCB,0xC5,0x4C,0xA7,0xE1,0xDA,0x06,0xD7,0x83,0x38,0xDB, - 0x5E,0xDA,0x71,0x00,0x24,0xB7,0xCE,0x89,0xDB,0x0C,0xDC,0x24,0xBB,0x24,0xAA,0x52,0x00,0xA9,0x0B,0x13,0x00,0xA1,0xA9,0x00,0xAA,0x46,0xD1,0x20,0xDB,0x58,0xDC,0x59, - 0xB8,0x4E,0xDB,0x11,0xE5,0xB5,0x3C,0xA3,0xDA,0x91,0x4E,0xD7,0x10,0x69,0xDF,0x93,0x5C,0x83,0xEB,0xF0,0x2A,0xEF,0xDA,0x93,0x4E,0xB8,0x58,0xDB,0x78,0x00,0x95,0x46, - 0x02,0xDF,0xA1,0x0B,0xA4,0x00,0x34,0xAA,0x41,0x49,0xB0,0xDA,0xB0,0xDB,0x9C,0xDA,0x25,0xB5,0x28,0x9B,0x80,0x8D,0xFE,0xAC,0xDA,0x20,0xE4,0xDB,0x24,0x97,0x47,0x9F, - 0x46,0x3A,0xF2,0xC6,0xAC,0xF1,0x81,0xDD,0x84,0x89,0xA1,0xDE,0x30,0xE0,0x58,0xE3,0x42,0xD0,0x00,0xD0,0xD9,0x5C,0x36,0xE4,0xB4,0xE1,0x98,0xB4,0x93,0xDB,0x94,0xB4, - 0x52,0x8E,0x4F,0xB5,0xD6,0xD8,0x11,0xE1,0xD9,0x05,0x81,0xDB,0x3D,0x13,0x42,0x44,0x21,0xDD,0x29,0xBB,0x58,0xDE,0x4A,0x9A,0x96,0xE1,0x1C,0x00,0xC1,0xE5,0x04,0x41, - 0xE8,0x2D,0x00,0xCD,0x21,0x30,0x18,0x8C,0x91,0x2B,0xE9,0x49,0x8D,0x16,0xD8,0x09,0x22,0xCA,0xB2,0x3D,0xE6,0x60,0xBC,0xDB,0x11,0x00,0x72,0xAF,0x24,0x95,0xD2,0xE2, - 0x42,0xDE,0x6B,0x8A,0x94,0xE1,0x2C,0xE2,0x2C,0xE4,0x2C,0xE6,0x27,0xE8,0x08,0xC0,0xEB,0xB0,0xEE,0x8A,0x0B,0x44,0xD1,0x4B,0x20,0x2F,0xC6,0x37,0x04,0xD6,0xEF,0xC1, - 0x84,0xD8,0xF5,0xF7,0x16,0xE5,0xB1,0xE1,0xD5,0x06,0xC9,0x93,0x1E,0xF9,0xB1,0x05,0xBD,0x59,0xEA,0x5D,0xC5,0x65,0xC0,0x61,0xE2,0x61,0xE3,0x61,0xE4,0x61,0xE6,0x38, - 0xE8,0x4C,0xEB,0x13,0x22,0x00,0xE1,0x82,0xC3,0x69,0x00,0xFB,0x25,0x00,0x33,0x45,0xC7,0x74,0xAD,0xFD,0xAC,0x13,0xAB,0xD3,0xCD,0x97,0xCE,0x00,0xD7,0x10,0x24,0x05, - 0xDB,0x28,0x00,0x31,0xDE,0x2D,0x60,0x22,0x39,0xBF,0x4B,0xCC,0xCB,0xAF,0xE3,0x0A,0xC6,0x2B,0xE6,0x0A,0xE7,0x09,0x02,0xE9,0x60,0xEC,0x98,0xEF,0x26,0x00,0xC2,0xBE, - 0x2A,0x00,0x6C,0x1E,0xCB,0x26,0x00,0x4F,0xC4,0xFF,0xF6,0xD3,0x16,0xDF,0xB1,0x40,0xD6,0x53,0x9D,0xB9,0xE1,0xDA,0xEF,0x83,0x60,0xDB,0x90,0x22,0x4F,0x4F,0xAA,0x58, - 0x60,0x94,0xDF,0x22,0x83,0xE1,0xE2,0x0B,0xC6,0x24,0x98,0xA1,0xE7,0x69,0x00,0xB7,0x42,0xEC,0x64,0x00,0xB1,0x2D,0x00,0x3D,0x1F,0xD8,0x2D,0xCF,0x54,0x02,0xA1,0xD3, - 0x41,0xD4,0x61,0xD5,0x61,0xD7,0x32,0xDE,0xD1,0x78,0x31,0x4F,0x38,0xD5,0x40,0x9C,0xDB,0x11,0xE9,0x9E,0x15,0xD6,0xD6,0xE3,0x16,0xE5,0x16,0xE7,0x17,0x00,0x84,0x96, - 0xC1,0xED,0x10,0x00,0x98,0x86,0xA5,0x00,0x21,0x96,0x33,0x5E,0x3F,0x47,0x3A,0xE6,0x91,0x0D,0xF0,0x7F,0x58,0x8F,0x90,0x5C,0xDB,0x11,0xF8,0xFC,0x24,0x9C,0xC8,0xA5, - 0xCC,0x29,0xC2,0xEA,0x25,0x00,0x5B,0x0C,0xC4,0x00,0x26,0x23,0x53,0x00,0x91,0x44,0x24,0x1E,0x83,0x90,0x38,0x04,0xDB,0xE1,0xE0,0x39,0xC8,0x24,0x9F,0x00,0xC2,0x95, - 0xE3,0x04,0x10,0x00,0x22,0xD4,0x00,0x92,0x1E,0xC8,0x26,0x3E,0x7A,0xE3,0x00,0xC2,0xCE,0x07,0x70,0xDB,0x8B,0x3A,0x4B,0x0D,0x00,0x3A,0xB0,0x47,0x61,0x00,0xBB,0x1F, - 0x11,0x1D,0x10,0x38,0xD0,0x21,0x1B,0x70,0xA4,0x83,0x00,0xD3,0x81,0x28,0xDB,0x24,0x00,0x4F,0x02,0x00,0x3C,0x0A,0xF1,0x0D,0xB1,0x0F,0x73,0x13,0xCE,0x1A,0xCB,0xD3, - 0x9C,0x90,0xF0,0x5A,0x3B,0x85,0xDB,0x90,0x00,0x07,0x07,0xAC,0x42,0x7C,0x5A,0x2F,0x72,0x1F,0x12,0x3D,0x19,0xC0,0x07,0xFE,0xDB,0x13,0xA3,0x42,0x1B,0xA3,0x00,0xA6, - 0xD7,0x19,0xAF,0x69,0xA3,0x23,0x82,0xE0,0x1F,0x95,0x08,0x17,0x02,0xDB,0x76,0x35,0x07,0x00,0x4F,0xB9,0x00,0xE3,0x46,0xE3,0x66,0xE1,0x10,0xD8,0x7E,0x98,0x0B,0x2F, - 0x97,0x08,0x7E,0x5F,0x02,0xEE,0x00,0x01,0xD3,0xDB,0x09,0xE0,0x00,0x34,0xC2,0xD3,0x01,0xBF,0xDB,0x09,0xE0,0x00,0x34,0xC2,0xD3,0x03,0x0C,0xDB,0x20,0x00,0x10, -}; +// Converted using ConvPNG
+#include <stdint.h>
+#include "all_gfx.h"
+
+// 8 bpp image
+uint8_t apple_compressed[21119] = {
+ 0xDC,0x20,0xF0,0x00,0x46,0x00,0x02,0x02,0x1B,0x12,0x12,0x07,0x4F,0x83,0x00,0x0D,0x00,0x12,0x02,0x0A,0x20,0x12,0x00,0x32,0x86,0x00,0x7A,0x12,0x22,0xD6,0x01,0x07,
+ 0x07,0x08,0x02,0x80,0xE4,0x4F,0x12,0x0D,0x20,0x12,0x1B,0x32,0xC0,0xDB,0x24,0x07,0x64,0x31,0xAF,0x7A,0x52,0xF0,0x00,0x02,0x8A,0xBE,0x03,0x34,0xB7,0xA8,0xB4,0x80,
+ 0x7A,0x9F,0xB7,0xC9,0xE1,0xCB,0x3E,0xC7,0xC1,0x0A,0x01,0x03,0x30,0xB7,0x80,0x4F,0x24,0x02,0xF0,0xA8,0xCB,0x51,0xE1,0x00,0xB7,0x9F,0x82,0xE6,0x31,0x03,0x34,0xB7,
+ 0x80,0x4F,0x7A,0x98,0xCB,0xE0,0xF7,0x01,0xF6,0xFD,0xFD,0xCE,0xF0,0x7A,0x02,0xA4,0xA2,0x06,0x58,0xDB,0x64,0xA9,0x9F,0x00,0xCE,0xAA,0xFB,0xFB,0xF6,0xF3,0xFC,0xFC,
+ 0x35,0xCC,0xB0,0xF3,0x40,0x4F,0x65,0x86,0xDB,0xBD,0xE0,0x9F,0xC7,0xE1,0xFD,0xF7,0xF0,0x00,0xDC,0x08,0xFF,0xC4,0xF0,0x1B,0x0C,0xC0,0xDB,0x03,0x07,0x00,0x9F,0xC3,
+ 0xA1,0xD1,0xDA,0x00,0xF9,0xF3,0xF3,0xF6,0x02,0xFC,0xED,0x9F,0x24,0x4F,0x07,0xB2,0xE4,0xA4,0xB9,0x00,0x08,0xF8,0x1B,0x03,0x0B,0xE0,0xDB,0xC8,0xB7,0xCB,0xA1,0x52,
+ 0xA1,0x95,0x00,0xF9,0xF8,0xF3,0xFD,0xFF,0xFC,0xB1,0x3C,0xFC,0xF0,0xE5,0x09,0x1B,0x9F,0x7A,0x31,0x42,0xDB,0x02,0xF4,0xDC,0x00,0x31,0x4F,0x02,0xA5,0xC4,0xC9,0x30,
+ 0xCB,0xE8,0xDC,0x1B,0xF7,0xF4,0xF4,0xD1,0xD2,0x9A,0x01,0x97,0x12,0x08,0x7A,0x0D,0x31,0x61,0xD7,0xC0,0x03,0x5E,0x83,0xDC,0x12,0xCC,0x73,0x22,0x7A,0xBB,0xE5,0xAF,
+ 0x81,0xDD,0xF5,0xF8,0x90,0xBB,0xF5,0xF5,0xFD,0x3C,0xD7,0x9F,0x13,0xDF,0x38,0x00,0x0C,0x27,0xCB,0xF0,0xD2,0x07,0x08,0xC4,0x01,0x4C,0xA8,0xE1,0x92,0xAE,0xF5,0x52,
+ 0xF2,0xF7,0xC0,0x63,0x3B,0xD3,0x12,0xBC,0x7D,0x96,0x2C,0x00,0x08,0xAC,0x18,0xDB,0xD1,0xFB,0xDE,0x68,0x94,0xF4,0xC0,0xDF,0xFC,0xB0,0xC2,0xF0,0x03,0x05,0xEE,0x64,
+ 0xBF,0x03,0x07,0x07,0xE0,0x03,0x22,0x08,0x9B,0x91,0xA5,0xDB,0xE1,0x4A,0xF6,0xF9,0xC8,0xBA,0xF5,0xF6,0x2E,0xC1,0x24,0x1B,0x02,0xF9,0x98,0x1A,0x02,0x00,0x08,0x9A,
+ 0x02,0x00,0xF3,0xD6,0xE9,0x0B,0xF0,0xCC,0xFE,0xEA,0xCC,0xDC,0x02,0xF6,0xF6,0x4C,0x24,0xEE,0x82,0x03,0x2C,0x00,0x0D,0x22,0x19,0xCE,0xC3,0xF9,0xB8,0x2A,0xF5,0xB1,
+ 0x74,0x96,0x69,0x0D,0xA7,0xBC,0xE9,0x06,0x20,0xD6,0x48,0xFE,0x61,0x1B,0x0D,0xF0,0xD7,0xA3,0x94,0xF2,0xDD,0x00,0xF8,0xFD,0xFD,0xC1,0x04,0x02,0x4F,0x0D,0x02,0x1B,
+ 0x06,0x30,0xDB,0x48,0xDD,0x1D,0x8E,0x9C,0xA7,0xFE,0xAD,0x81,0xF2,0xF4,0xF5,0xF7,0xFF,0xF0,0xB1,0x88,0x7A,0x9F,0x01,0x88,0xDA,0x13,0x10,0xBA,0x31,0x02,0x9F,0x0E,
+ 0xB0,0xFE,0xFF,0xF4,0x89,0xE8,0xDC,0x1C,0x9F,0xC4,0xA0,0x4F,0x31,0xC2,0xDB,0xD4,0x04,0x4F,0xE5,0xA2,0xC1,0xFF,0xF9,0xF8,0xC5,0xF7,0xCA,0x20,0x7A,0x31,0x32,0x83,
+ 0xDB,0x05,0xE4,0xAD,0x24,0x4F,0x07,0x7A,0x82,0xFE,0xFC,0xFC,0xE6,0x83,0xF9,0xF7,0xD8,0xB8,0x2B,0x16,0x80,0xC7,0xCF,0x72,0x7A,0x1B,0xB8,0xCD,0x7A,0xAC,0x6A,0xE0,
+ 0xF3,0xF8,0xBC,0xE6,0x40,0x1B,0x63,0x84,0xD8,0x8F,0xCB,0x6B,0xE4,0xA8,0xF3,0xAF,0x7E,0xF9,0x64,0xF4,0xB9,0xF2,0x6F,0xFC,0xCF,0x01,0xA4,0x00,0xC4,0x28,0xD4,0xF9,
+ 0xB9,0x81,0xF6,0xCC,0x12,0x1B,0x9F,0x90,0xCA,0x07,0x0D,0x07,0x4D,0x08,0x00,0x09,0xCC,0xDE,0x5C,0x00,0x05,0x19,0xC4,0x01,0x9F,0x76,0xF9,0xF6,0xFA,0xF2,0x83,0xDC,
+ 0xC1,0xCF,0x70,0x00,0x02,0x08,0x02,0x47,0x07,0x84,0xCB,0x05,0xDE,0xEA,0x3B,0x02,0x89,0x7C,0xF6,0xC4,0xF5,0x03,0xF9,0xCE,0x9F,0x31,0x31,0x07,0xBA,0x24,0x0D,0x3F,
+ 0x32,0x01,0x56,0xDF,0x1C,0xA0,0x98,0xA8,0xFE,0xDA,0x64,0x00,0xFE,0xAC,0x80,0xDB,0x12,0x9C,0xAF,0xA1,0xC4,0x90,0x80,0xA6,0xCF,0x2D,0xD0,0xC2,0x9F,0xC5,0xF6,0xF5,
+ 0x90,0x94,0xCA,0x0D,0x1B,0x12,0x22,0x9F,0xE0,0xCE,0xC9,0x08,0x1B,0xA5,0x00,0x0D,0x54,0x00,0x06,0xE1,0xD1,0x01,0x54,0xDB,0x00,0x00,0xAC,0xE1,0xF6,0xF2,0xC2,0x00,
+ 0xFD,0xA5,0x02,0x24,0xA6,0xBC,0x70,0xBC,0x89,0xD7,0x08,0x80,0xE2,0x89,0xD0,0x08,0x0A,0x12,0xBF,0x90,0xC1,0x30,0xD0,0x1A,0x02,0x22,0x99,0xF0,0xE0,0xDD,0xF9,0x37,
+ 0xFF,0xC1,0xC9,0xE7,0xAD,0x13,0x98,0xA8,0xA6,0x00,0x7C,0x24,0x00,0x04,0x6D,0x12,0x40,0x0D,0x50,0x85,0xDB,0x00,0xB0,0x24,0x53,0xF0,0x05,0xC1,0x24,0x8F,0x93,0xF9,
+ 0x20,0x96,0xF7,0xCA,0x7A,0xCB,0x0F,0x9F,0x24,0x00,0x69,0x22,0x00,0x53,0x95,0x00,0x4C,0x03,0xF3,0x0D,0x00,0x4B,0x16,0x0A,0x41,0xDF,0x03,0xA8,0xDB,0x36,0x02,0x00,
+ 0x7A,0xDC,0x7C,0x04,0x82,0x78,0x08,0x4F,0x12,0x53,0x00,0x07,0x07,0xD8,0x53,0x22,0xF0,0xC8,0x0B,0xAE,0x00,0xC1,0xC1,0xAC,0xAC,0x50,0xB0,0x00,0x82,0x8F,0xA7,0x00,
+ 0xCC,0x9B,0xC2,0xC2,0x9B,0xAE,0xE9,0xF7,0x37,0xF4,0xDE,0xCE,0x30,0xF6,0x55,0x0D,0xAE,0xCC,0xCC,0xA7,0x91,0x00,0x9B,0x52,0x00,0x8C,0x09,0x8F,0x82,0xB0,0x2E,0x5B,
+ 0xAC,0x89,0x00,0xCA,0x3E,0xC1,0x4C,0xF2,0x0C,0xE3,0x0F,0x31,0x4F,0x00,0xEA,0x23,0x4F,0x08,0x6E,0xE9,0x00,0x74,0x1B,0x48,0x6F,0x07,0x17,0xC2,0xDA,0xE7,0x00,0xD2,
+ 0x16,0x07,0x00,0x1B,0xB2,0x8C,0xA0,0xD1,0x50,0xAC,0xCC,0x16,0x8F,0xCC,0x00,0xD2,0x98,0x00,0xC2,0xC0,0x78,0xC6,0x02,0x01,0xBF,0xEB,0xF7,0x07,0xF2,0xFA,0xF3,0xF2,
+ 0xF3,0x0A,0xB8,0x0F,0xC0,0x04,0x8D,0x00,0x20,0xAE,0x83,0xEB,0xA7,0x33,0x61,0x82,0xDD,0x3F,0x00,0x42,0x35,0x00,0x61,0x0A,0xE4,0x82,0xDF,0x9F,0x8A,0xC1,0xF9,0x6E,
+ 0x05,0x0F,0x89,0x6C,0x81,0x74,0xDA,0x2A,0x04,0x8A,0xA7,0x86,0xD1,0xF3,0x6C,0xF4,0xCE,0xDD,0x8A,0xA6,0x42,0xA4,0xF2,0x00,0xA6,0x60,0xCC,0xB1,0xC0,0xA6,0x00,0xC6,
+ 0xC3,0x12,0x98,0x06,0xBB,0xBB,0x03,0xE7,0x94,0xBB,0x58,0xEC,0xDC,0x00,0xF4,0xFC,0xBF,0xBB,0xE7,0xBB,0x78,0x4E,0xD5,0x00,0xBF,0xCB,0x00,0xD3,0xD3,0xDB,0x0A,0x00,
+ 0x4F,0x82,0x00,0xC5,0x46,0x50,0x00,0xE1,0x65,0xC2,0x85,0xDF,0x48,0x70,0x9E,0x77,0x70,0x02,0xF0,0xDB,0x25,0x07,0x83,0x45,0x07,0x06,0xD8,0xAD,0x54,0xFD,0x76,0x8F,
+ 0x16,0xE3,0x7D,0x00,0x95,0xB2,0x82,0xDC,0xC6,0x6C,0x00,0xD9,0x18,0xE7,0x00,0xEE,0x73,0xDC,0x00,0xEE,0xEE,0xF7,0xF9,0xFA,0xFA,0xF8,0xF4,0x0C,0x78,0x7D,0xEE,0x7D,
+ 0x00,0x71,0x71,0x31,0x94,0x78,0x00,0x72,0xD5,0x89,0x60,0xDC,0xAE,0xA4,0x9A,0x8C,0xDB,0x09,0x06,0xA3,0x74,0xB2,0xBC,0x18,0xBE,0x8D,0x22,0x0D,0x9D,0x30,0xDD,0xAD,
+ 0x9F,0xB8,0x7D,0x18,0x8B,0xB7,0xF1,0x5B,0x86,0x49,0x82,0xD9,0xC1,0x8C,0xAE,0x72,0x00,0x22,0x87,0xC0,0x40,0xD5,0xB0,0xD7,0x00,0xEA,0xDE,0xDE,0xEE,0x87,0x57,0x60,
+ 0x57,0x1C,0x8B,0x87,0x16,0xA8,0x81,0xFA,0xF4,0xF3,0xFA,0xEE,0xDC,0x23,0x00,0x73,0xDF,0x0A,0xDD,0x0B,0xB9,0x22,0xC2,0xD3,0x82,0xDD,0xD3,0x94,0x49,0x9D,0x92,0x24,
+ 0x4D,0x89,0x00,0xA6,0x8F,0xDB,0x8D,0xDD,0x0B,0xB8,0x2D,0x86,0x60,0x5D,0xDB,0x0B,0x89,0x45,0x02,0x35,0xDD,0x24,0x89,0xC0,0x89,0x8F,0x99,0x9B,0xEC,0xDB,0x27,0xB5,
+ 0x2B,0xD8,0x0B,0xD9,0x06,0xB3,0x00,0x38,0x1A,0x48,0x57,0x7F,0x02,0x73,0x80,0xD8,0xF4,0xF4,0x00,0xFA,0x7D,0x73,0x66,0x83,0x87,0x60,0x87,0x88,0xDB,0x05,0xC2,0x82,
+ 0xDB,0xA7,0x50,0xD9,0xB8,0x4B,0x97,0xE7,0x94,0xA9,0x6E,0x05,0x40,0xDD,0xD5,0xFA,0x9F,0x3A,0xF5,0xC0,0xB3,0x00,0x42,0xBD,0x7A,0x32,0x24,0xF0,0xB1,0x9C,0x8A,0x27,
+ 0x00,0xB7,0xC2,0xC2,0x8C,0x60,0xDB,0x90,0xB3,0xA8,0xDA,0x00,0xE5,0x8B,0x05,0x03,0x11,0x48,0x06,0x14,0x42,0x60,0xC8,0x73,0x90,0x86,0xF4,0xF8,0x03,0x71,0x30,0x7D,
+ 0x70,0xDC,0xD8,0x00,0x66,0xDB,0x14,0x96,0x96,0x95,0x8B,0xBF,0xD9,0x04,0x8F,0x85,0xAE,0x61,0xD2,0x21,0xF6,0x5B,0xE2,0xCB,0x07,0x7F,0x00,0x20,0x00,0xAC,0x0C,0xCC,
+ 0xDD,0x06,0xF0,0x9F,0x7A,0xCB,0xF0,0x2F,0x86,0xDB,0x8C,0x98,0xE5,0xCE,0xB9,0x69,0xAE,0x95,0x96,0x8F,0x2A,0xF4,0xCA,0xB9,0x56,0x91,0x81,0xE7,0xEB,0xEA,0x6D,0x40,
+ 0xDC,0xE5,0x60,0x11,0xDF,0x57,0x09,0x57,0xDC,0x71,0xDC,0x03,0xDB,0x00,0xD4,0xEB,0x7D,0x66,0x05,0x66,0x90,0x70,0x70,0x71,0xAD,0xF4,0x28,0xF1,0xD3,0xD8,0x82,0xB4,
+ 0xD7,0x63,0xD8,0x97,0xD0,0x00,0xC6,0x68,0xA4,0x56,0xE9,0x02,0xA9,0x2E,0xCD,0x69,0x0C,0xC0,0x34,0xD7,0xE0,0xDC,0x9B,0xF7,0x5F,0xD6,0xC8,0xBA,0x00,0x4F,0x81,0x37,
+ 0xDC,0xE6,0xD3,0x0A,0xD4,0xCA,0xCC,0xCE,0x9E,0x4A,0x0D,0x53,0xB3,0x2C,0xA6,0xA4,0xDE,0x5A,0xDC,0x09,0xA1,0xE4,0xB0,0x79,0x98,0x73,0xAC,0x55,0xFF,0x20,0xDC,0x4C,
+ 0xB7,0x58,0x00,0x06,0x06,0x14,0x53,0x7F,0xCC,0xD3,0xC9,0xA8,0xF3,0xDD,0x00,0xD5,0x94,0x71,0x66,0x74,0x62,0x60,0x74,0xDD,0x66,0xD0,0x95,0xD5,0xD3,0xB3,0xEE,0x9C,
+ 0x93,0x6C,0xA0,0xB0,0xDE,0xA0,0xD8,0x50,0x56,0xDE,0x5A,0xD7,0x2C,0xBF,0xA5,0x57,0xD5,0xEE,0x36,0xDF,0x0A,0xCC,0x2B,0x3A,0xB0,0x53,0x9C,0xC3,0x85,0x83,0x0B,0xC8,
+ 0x88,0x12,0xC3,0xE2,0xAF,0x2D,0xE5,0x6B,0xCC,0x16,0x4F,0xD9,0x16,0x8C,0x1C,0x00,0x4B,0xED,0x59,0xB9,0x4D,0x93,0x8E,0xB0,0x1B,0xC2,0xDD,0x40,0xDC,0xC0,0xDA,0x39,
+ 0x05,0x00,0x11,0x05,0x09,0x11,0x14,0x38,0xC8,0x66,0x53,0x70,0xC9,0xB0,0xF3,0xDA,0x29,0xFA,0x72,0x93,0x05,0x61,0x61,0x83,0x2E,0xEF,0x90,0x8B,0xBA,0x3A,0xA4,0xC9,
+ 0xB2,0xB0,0xE8,0x00,0xD2,0x28,0xB7,0x8B,0xD5,0x78,0xC2,0x97,0x72,0x03,0xF7,0x3F,0xAE,0xB2,0x90,0xC6,0x22,0xF2,0x69,0x98,0x31,0x64,0x97,0x4C,0x24,0xF5,0xC4,0x5E,
+ 0xFF,0x87,0x10,0x26,0x3C,0xD3,0x96,0xDE,0x9F,0xC1,0xD9,0xED,0x20,0xD8,0x13,0xBA,0xBA,0x87,0xDA,0x09,0x4B,0xB3,0xD5,0x0F,0x09,0x85,0xE0,0xAB,0xB9,0xD8,0xE0,0x39,
+ 0x0B,0xBA,0x94,0x40,0x8E,0xB3,0x06,0x09,0x00,0x06,0x05,0x7F,0xC8,0xE5,0xDE,0xE7,0x78,0x0C,0xFA,0xF2,0xF5,0xF5,0xB7,0x8B,0xFA,0x89,0xBB,0x0A,0xE7,0x5B,0x30,0x2D,
+ 0xA2,0x9B,0xC1,0x32,0xA4,0x50,0x89,0x00,0x84,0xD5,0x72,0xE8,0x00,0xD8,0x14,0x94,0xB4,0x9F,0x02,0x03,0xBD,0x00,0xEE,0x00,0xB6,0x3D,0x9D,0xE5,0x47,0x00,0xA2,0xBB,
+ 0xC0,0xDD,0xD8,0xAF,0x30,0xAC,0x24,0xD5,0x81,0x44,0xDB,0x28,0xDD,0x19,0x24,0xB3,0x24,0x8F,0xC1,0x8C,0xD0,0x09,0x37,0xBA,0x64,0x00,0xF2,0x15,0x86,0x5A,0x08,0xA2,
+ 0x49,0x87,0xD7,0xBB,0x34,0xBE,0xB9,0x81,0x62,0xF9,0xDE,0xC0,0xDC,0x4B,0x16,0x69,0x8E,0x90,0xFC,0x00,0xBE,0xEE,0x76,0x21,0x84,0xFA,0xCD,0xE6,0xAE,0x36,0x87,0xA9,
+ 0xD8,0xAE,0xED,0xDE,0x52,0xBF,0x06,0xCE,0xC4,0x14,0x00,0x7C,0xAA,0x07,0xC7,0x91,0x66,0x73,0x73,0xCF,0xCA,0x00,0xF6,0x06,0x00,0x37,0xBB,0xBE,0xFD,0xBB,0x04,0xF9,
+ 0x56,0xCA,0xD4,0xEE,0xAC,0xB0,0x73,0xBC,0xD5,0xA8,0x7A,0x02,0x5A,0xEF,0xF5,0x80,0xD3,0xF6,0xAC,0xB3,0x2B,0xD8,0x09,0x92,0x00,0x86,0x2E,0x00,0xAE,0x08,0x70,0xE4,
+ 0xA5,0xB2,0x90,0xDF,0x28,0xFF,0x3B,0x04,0x9C,0x4C,0x97,0xAC,0x99,0xB2,0xC2,0xFA,0x00,0x03,0xF1,0xAC,0xD4,0x2E,0x13,0xE9,0x12,0x00,0xD5,0x64,0xA6,0x94,0xB7,0xDB,
+ 0xBE,0x00,0xC0,0x5F,0x90,0x03,0x06,0x86,0xD4,0xDD,0x03,0x73,0x61,0x3C,0xB5,0x4B,0xB7,0x4F,0xF6,0xBE,0xF7,0xA4,0x9A,0x88,0x00,0xC3,0xDE,0x4E,0xDD,0xFB,0xC1,0x25,
+ 0x8D,0xC0,0x94,0xDB,0x02,0x08,0x9F,0x22,0xCB,0xB4,0xC9,0x04,0xAE,0xE0,0xD6,0x40,0x29,0x40,0x56,0x00,0xBE,0xEB,0x08,0x07,0x84,0x09,0xE7,0x00,0xE2,0x84,0xC0,0xE7,
+ 0xC8,0x6B,0xA7,0x2E,0x06,0xC7,0x0B,0xC0,0xCE,0xAF,0x1C,0x02,0x6B,0xBF,0x12,0xE7,0xAA,0x29,0x26,0xB1,0xA6,0xB3,0x94,0x00,0x74,0x00,0x83,0xAF,0x02,0x0D,0xD2,0x0C,
+ 0xB0,0xB3,0x16,0x3C,0x68,0xDC,0x00,0x3C,0x87,0x7D,0x96,0x0A,0x94,0x7D,0xDC,0xC8,0xBB,0x27,0xE7,0x30,0x26,0x00,0xA0,0x34,0xBB,0x59,0xBA,0x58,0xDC,0x67,0xC3,0x02,
+ 0x20,0xDB,0x48,0x04,0x1B,0x1C,0x0D,0xC1,0xAC,0x9C,0xA6,0x9B,0xAF,0x24,0x40,0xA0,0xCA,0x84,0x90,0x00,0xA4,0xAD,0x6B,0x7B,0x00,0x72,0x00,0x2A,0x89,0xD5,0xD4,0x82,
+ 0x44,0x84,0x78,0xE7,0xCF,0xE1,0xBA,0x09,0x01,0x8F,0xBB,0x6B,0xDE,0xD1,0x00,0xA5,0x6B,0xE9,0x9D,0x14,0xE7,0x71,0x29,0x15,0xA9,0xE5,0x00,0xA0,0xBB,0xD2,0x62,0x00,
+ 0x74,0x83,0x02,0xD4,0x1A,0x04,0x80,0xD7,0x0B,0x66,0xFC,0x94,0xE0,0x06,0x68,0x3B,0xDC,0x1E,0x01,0xE5,0x14,0xA2,0x98,0xDC,0x29,0xC8,0xD3,0x39,0xF3,0xAE,0x02,0x00,
+ 0x8B,0xFD,0xF7,0x55,0xC2,0x22,0x97,0x24,0xC2,0xDB,0x04,0x6C,0x00,0xDA,0x12,0x24,0x06,0xDA,0xE5,0xA5,0xD3,0x44,0x94,0xA7,0xCA,0x00,0x89,0xD0,0x03,0x7B,0x7C,0xCC,
+ 0x3C,0x00,0x70,0x7C,0xD6,0x00,0x96,0xA4,0xEC,0x56,0xE8,0xE8,0x91,0x2B,0xF7,0xFA,0x05,0xE2,0x0F,0x02,0x12,0xC1,0x8E,0x94,0x58,0x11,0xCA,0x03,0x83,0x60,0x61,0x60,
+ 0x60,0x04,0xD5,0xCB,0x60,0x47,0xF1,0xE1,0x21,0xD9,0x83,0xBE,0x68,0xD1,0x06,0x9D,0x02,0x74,0xA2,0xB8,0x56,0x9D,0x00,0x08,0x70,0x6D,0x8A,0x4B,0x62,0x1B,0x60,0xFA,
+ 0x18,0x19,0x02,0x2C,0xB1,0x26,0x83,0x28,0x23,0x0E,0xDC,0x1A,0xDE,0x00,0xEA,0x45,0x00,0xEB,0x20,0x97,0xCA,0xD7,0x82,0x10,0x4C,0x31,0x12,0x20,0x97,0xB1,0x03,0x52,
+ 0xF3,0x31,0x09,0x4F,0x9F,0xC1,0x8F,0x27,0x93,0xD7,0x0F,0x00,0xA8,0x2A,0x82,0x4C,0x04,0x56,0x89,0xCB,0xB0,0xD6,0x00,0x8A,0xB2,0xB2,0x88,0x1F,0xA6,0xA6,0x88,0x8B,
+ 0x7A,0x02,0x00,0x83,0x83,0x00,0x87,0x62,0x2C,0x42,0xB2,0x5C,0xBF,0x31,0xFA,0x30,0x23,0x23,0xC7,0xAA,0x08,0xF0,0xAD,0x14,0x3C,0xF2,0x0E,0x02,0x2C,0x00,0x80,0x03,
+ 0x62,0x66,0x32,0x78,0x89,0x2D,0x3C,0x80,0xAC,0x00,0xDB,0x31,0x98,0xE9,0x44,0x97,0x32,0xB8,0xB0,0xE6,0x64,0x62,0xAE,0x87,0xE8,0x16,0xB7,0xA8,0x32,0x3C,0xC8,0xC4,
+ 0x92,0x0E,0x23,0xA9,0xE7,0xE6,0xE8,0x93,0x99,0xD3,0xBA,0xC0,0x2E,0xFC,0x4C,0xBB,0xC5,0xDC,0x06,0x8F,0x4C,0x4F,0xF2,0xA3,0x12,0x1B,0x31,0xAF,0x94,0x08,0x1C,0xAF,
+ 0xE8,0x03,0x69,0x05,0x22,0x9E,0xC4,0x55,0xE4,0x52,0xBE,0x86,0x6D,0x00,0xA4,0x88,0x18,0xB2,0xCE,0x19,0x8A,0x8A,0xB7,0x36,0x88,0x00,0xA6,0xF8,0x34,0x9B,0x0A,0x3C,
+ 0x00,0x6A,0x68,0x05,0x61,0xDA,0x3A,0xFA,0x10,0x3B,0x3B,0x2C,0x60,0xB2,0xA3,0xC2,0xAB,0x8F,0xE8,0x15,0xE7,0x10,0x00,0xC3,0xB9,0xCD,0x01,0x7B,0xA4,0x7C,0xE5,0x15,
+ 0xAA,0xE4,0x0A,0xB8,0xA6,0xB2,0xF4,0x61,0x8A,0xDC,0x8C,0xA2,0x80,0xDB,0x80,0x51,0x83,0xBB,0x6D,0x3C,0x2C,0x1A,0x3C,0x86,0x34,0x2C,0x3C,0x60,0x0E,0x00,0x57,0xFF,
+ 0x80,0xDD,0x05,0xEA,0x01,0xDB,0x8E,0x8E,0x44,0xBE,0xEB,0x30,0x76,0xC5,0xDD,0xD0,0x96,0x1B,0x02,0xA2,0xBA,0x70,0x07,0x05,0x6A,0xDA,0x09,0x08,0x03,0xDF,0x41,0x1C,
+ 0x02,0xF0,0xB0,0xF2,0x5E,0xDF,0xC8,0xE7,0xBA,0x89,0x0C,0x56,0xA4,0xB2,0xD2,0x2B,0x02,0x00,0xC2,0xD4,0xF0,0x08,0xD9,0xF0,0x00,0xD8,0xB0,0xA8,0xA0,0xB6,0xA0,0x92,
+ 0x65,0x83,0x15,0x90,0x61,0x02,0xDB,0x68,0xDD,0x91,0x62,0x96,0xB7,0xB0,0x14,0xA7,0xFA,0xD0,0xC4,0x52,0x00,0xD8,0xE0,0xCD,0x96,0x65,0x96,0xF4,0x45,0xAC,0x5B,0x19,
+ 0x2D,0x70,0x0E,0xA2,0xFE,0xE8,0x47,0xB9,0xAB,0x28,0x10,0x90,0xDB,0x16,0x61,0x8E,0xD4,0x45,0x0E,0x19,0x48,0x48,0x14,0x00,0x0F,0x11,0x45,0xB4,0x57,0xD2,0x80,0xDC,
+ 0xDE,0x6D,0x6B,0xC1,0xDD,0x99,0x91,0xBA,0x4C,0x7A,0x7B,0xF2,0xF4,0xCA,0x1D,0x48,0xA4,0x08,0x12,0x07,0x2F,0xF0,0x82,0xD2,0x2B,0xB7,0xC6,0x40,0xBE,0xA4,0xDF,0xAD,
+ 0xAD,0x03,0x96,0x85,0x95,0x03,0x89,0xA6,0x03,0xB0,0xD9,0xC3,0xD7,0xF9,0x1C,0x0A,0x90,0x88,0xA0,0xBC,0x98,0xF4,0xF4,0x84,0x4A,0x90,0xA6,0x56,0xA9,0x1E,0x16,0x05,
+ 0xA6,0xF5,0x07,0xCC,0xB3,0xFF,0xFA,0x05,0x0C,0x9B,0x2B,0xBF,0x42,0x7D,0x7C,0xB1,0x00,0x83,0xF2,0x00,0xE4,0xF0,0x45,0xE9,0xCD,0x84,0x7C,0xC9,0x4A,0xB0,0x39,0x80,
+ 0xD1,0xE5,0x63,0xA0,0x4D,0x9B,0x95,0xB4,0xA0,0x98,0x23,0x48,0x38,0x31,0x14,0x38,0x02,0x0F,0x39,0xE5,0x83,0xDC,0xE5,0x00,0xC0,0xDC,0x6D,0x5E,0xAB,0xD1,0xC8,0xBB,
+ 0xA5,0x53,0x6B,0x7A,0xAB,0x94,0xB7,0x1E,0x60,0xE7,0x07,0x53,0xB0,0xCA,0xB4,0xB1,0xBE,0x86,0x6B,0xE4,0x85,0x81,0x02,0x82,0x70,0xA8,0x00,0xAB,0xB0,0xA2,0xC3,0xD9,
+ 0x00,0x53,0x7C,0x84,0xAC,0xA6,0xBF,0xAC,0xDA,0x25,0xDD,0x0C,0xAB,0xBF,0x00,0x0D,0xBB,0x74,0x90,0xDC,0x00,0x1D,0xD5,0xE7,0x25,0x0D,0xB5,0xA2,0x5B,0x36,0xFB,0xF5,
+ 0x05,0x48,0x95,0xC0,0x4E,0xE6,0xB0,0x37,0xED,0x36,0x99,0x85,0x83,0xA6,0x4D,0xB5,0x96,0xDB,0x8F,0x92,0x0C,0x00,0x68,0x42,0x0E,0xD9,0x29,0x96,0x00,0x14,0x05,0x09,
+ 0xB3,0xDC,0xE5,0x51,0xB3,0xB8,0x00,0xEA,0x6B,0x5E,0x5E,0x6B,0x75,0x76,0x03,0xCF,0x8F,0xF0,0x02,0x4F,0x12,0xF4,0xD8,0x3B,0xD9,0xCA,0x90,0x4C,0xDA,0x16,0xD3,0x8C,
+ 0x99,0xB3,0x51,0xC7,0xF8,0x00,0xA5,0x53,0xBB,0xEB,0x04,0x88,0xD0,0x0B,0xDB,0x0A,0x0E,0xC3,0xE8,0x04,0x9C,0xEF,0xED,0xB3,0x6D,0x00,0x96,0xB5,0x92,0x0A,0x89,0x96,
+ 0xDA,0x99,0xB9,0x00,0xD2,0x48,0x7B,0xC4,0x1D,0x00,0xE5,0x0D,0xFA,0xDF,0x15,0x0B,0x13,0xC8,0x40,0x0F,0xBE,0xEA,0x00,0xCC,0xE9,0xC6,0xB6,0xC2,0xB1,0x85,0x99,0xDC,
+ 0x34,0x98,0xA5,0xF0,0x17,0x42,0x42,0x7F,0x00,0x40,0xDC,0x4B,0xC0,0xD9,0x4B,0x3A,0xB0,0xDC,0x30,0x5E,0x52,0xDB,0xC0,0xDC,0xC5,0x82,0x34,0x9F,0x07,0x94,0x83,0x75,
+ 0xEF,0xB0,0xDB,0x5A,0x24,0xEB,0xAB,0x86,0x95,0xBA,0xEC,0xB5,0xA2,0xC6,0xF5,0x82,0xDA,0x4C,0x00,0xF1,0x6C,0xDD,0x3B,0x00,0x9A,0x45,0xA6,0xBD,0x94,0x86,0x90,0xD7,
+ 0x1B,0xDB,0xAC,0xAD,0x82,0x81,0xAD,0x89,0x40,0x44,0x44,0x52,0xCA,0xBE,0xF0,0x05,0x08,0x37,0x37,0x55,0xA2,0x2F,0xA2,0x40,0x00,0xC2,0x0B,0x10,0x92,0xC3,0xE4,0xE2,
+ 0x04,0x72,0x80,0xD6,0x56,0xF7,0x22,0x00,0xBE,0x1D,0x71,0xA4,0x49,0xEF,0x61,0xDB,0x49,0xD0,0x96,0xFE,0xB5,0x54,0xBC,0x5A,0x94,0x53,0xCD,0xE1,0xDA,0x81,0x00,0x7F,
+ 0xB3,0x3A,0x09,0x04,0x03,0x80,0xE0,0x8E,0x6D,0x6D,0x18,0x20,0x52,0xD6,0x00,0x76,0xCA,0xB0,0x74,0x1B,0xC2,0x12,0x83,0x9B,0x84,0x3C,0x24,0x4C,0xD5,0xA7,0xC6,0xC0,
+ 0xDA,0x89,0x7C,0xBC,0xC2,0xAA,0x00,0x80,0x45,0x90,0xA6,0x86,0xBF,0x77,0xFC,0x52,0xAF,0xF6,0xE1,0x15,0x11,0x6E,0x85,0x8A,0x30,0xAD,0xBE,0xC8,0xC3,0xBC,0xB9,0x02,
+ 0x86,0x9B,0x81,0xCE,0xBA,0x80,0xD5,0x3F,0x55,0x3F,0xB0,0xD9,0x07,0x6F,0x69,0x69,0x4E,0x55,0x00,0xBA,0x0B,0x44,0x12,0x20,0xBA,0x05,0xA9,0x21,0x89,0x89,0x84,0x56,
+ 0x05,0xD8,0x17,0x12,0x20,0xF4,0x61,0xEE,0xDA,0x67,0x93,0x2A,0x80,0x80,0xED,0xB4,0x9D,0x3B,0x01,0x02,0xDC,0x48,0x95,0xF3,0xE5,0xA0,0x91,0x4B,0x09,0x06,0x14,0x04,
+ 0x09,0x39,0xB9,0x4A,0x35,0xDC,0x0C,0xBB,0x81,0xDF,0xE2,0x4C,0x12,0x4F,0x06,0x80,0xDB,0x9F,0xC8,0xEF,0x31,0x7A,0x6B,0x9F,0xEB,0x73,0xA1,0x91,0x80,0x96,0x7D,0xB2,
+ 0xF3,0x7C,0xF9,0xA5,0xA6,0x6F,0x99,0x60,0xD4,0x96,0x5D,0x8A,0x05,0x5B,0x04,0x00,0x90,0xEA,0x3C,0xE5,0x0A,0x70,0x96,0xA6,0x24,0x37,0x8D,0x00,0x3F,0x00,0xA2,0xD0,
+ 0x00,0xCC,0x6E,0x00,0x3E,0x07,0xC1,0xDA,0x69,0x74,0x07,0x12,0xA2,0x29,0xED,0xDD,0x0A,0x4E,0x84,0xE9,0xC1,0xCE,0x41,0xD9,0x23,0x30,0x55,0x08,0xB1,0x94,0xA4,0x96,
+ 0xB4,0xC7,0x79,0x70,0xFB,0x41,0xD6,0xA2,0x95,0x3C,0x50,0xDA,0xC3,0xD9,0xCE,0x70,0x57,0xC8,0x7F,0x05,0x60,0x0A,0xDA,0x09,0x01,0x2A,0x4B,0x16,0x16,0x0C,0x5F,0x81,
+ 0x44,0xB8,0x6B,0x02,0x99,0xD7,0x53,0x07,0x0D,0x12,0xC3,0xDD,0xEC,0xC8,0x2C,0x9B,0x43,0x02,0x07,0x34,0x79,0x9F,0xD7,0x40,0xDA,0xBF,0x7F,0xD5,0xEB,0xE6,0x8D,0xDB,
+ 0x1D,0x00,0x85,0xDB,0xFD,0xC2,0xAA,0xE1,0x8A,0x5B,0x84,0xBB,0x80,0xD9,0x13,0x88,0xAF,0x6A,0xB9,0xAD,0xA0,0xDA,0xA2,0xA7,0xBA,0x00,0xA3,0x2B,0xC8,0x0B,0x00,0x60,
+ 0x3E,0xC9,0x3E,0x60,0xED,0xDA,0xED,0x55,0x6F,0x07,0x81,0xDF,0xDD,0xDD,0xD8,0x0B,0xDB,0x5D,0x00,0x94,0xD4,0xC0,0xDA,0x4E,0xAB,0x05,0xDB,0x0A,0xAE,0x8F,0xFC,0x36,
+ 0x05,0x70,0x97,0x98,0xDB,0x49,0xA7,0x34,0x95,0x94,0xDC,0x0B,0x38,0xDB,0x06,0x8B,0xD9,0x00,0x0A,0x1E,0x04,0x4B,0x25,0x0B,0x16,0x10,0x54,0x81,0x95,0x40,0x75,0xCF,
+ 0x98,0x0D,0x97,0xBB,0xB0,0xDA,0x82,0xDE,0xC3,0x69,0x31,0x31,0xC1,0x40,0xDA,0x78,0x94,0x61,0x71,0xD5,0x51,0xD2,0x7F,0xBC,0x40,0xDA,0x80,0xB0,0xDB,0x56,0x9D,0xD7,
+ 0x60,0xCD,0x7B,0xE8,0x08,0xC4,0xB7,0xCE,0xD0,0x8B,0x84,0x7B,0xB2,0xB4,0x48,0x3F,0xD0,0x18,0xB9,0x73,0x06,0xB0,0x00,0x47,0xD3,0x50,0x6F,0xDA,0x61,0xCF,0xD3,0x01,
+ 0x00,0x3E,0x0C,0x7B,0xDD,0x00,0x06,0x47,0xDB,0x07,0x47,0x0A,0xB9,0x00,0x3E,0x07,0x0A,0xE4,0xAC,0x32,0xE6,0x25,0x94,0x40,0x90,0x7C,0xA4,0x56,0x30,0x72,0x70,0xDB,
+ 0xC3,0xDC,0xD6,0x0A,0x80,0xFE,0x00,0xAC,0x86,0x38,0x48,0x7C,0x8B,0xC1,0x11,0x00,0x11,0x8B,0x06,0x0A,0x03,0x0A,0x3A,0x25,0x03,0x3A,0x1F,0x5F,0x20,0xE3,0xE3,0xDC,
+ 0x0D,0x95,0x04,0x5B,0x7A,0x08,0xF1,0xF7,0x05,0x74,0xFB,0x07,0x1A,0x02,0x4C,0x82,0xEC,0xA8,0xD2,0xDA,0x1C,0x71,0x00,0x94,0xF7,0x90,0xB2,0xB3,0x59,0x62,0xB7,0x54,
+ 0x09,0x97,0x81,0x26,0xE1,0x59,0xC4,0x61,0xD9,0x6F,0xB6,0x4B,0xD9,0x45,0x9A,0x84,0xB5,0xA7,0xFF,0xD8,0x0B,0xBE,0x4A,0xDA,0x0B,0xDD,0x00,0x90,0xDE,0x2F,0x06,0xDB,
+ 0x0C,0xB9,0xA9,0x1C,0x69,0xA6,0x1C,0x55,0xE5,0x2C,0xDC,0x2A,0x07,0x46,0xA9,0x70,0xAD,0xAD,0x66,0x71,0x96,0xB8,0x61,0xDB,0x82,0xD4,0x23,0x92,0x92,0xAC,0x00,0xB7,
+ 0xB9,0xAA,0x30,0x8B,0x05,0xDB,0x60,0x39,0xDA,0x03,0x00,0x33,0x3A,0x33,0x5C,0x0B,0x17,0x81,0xEC,0xC0,0xDC,0xD0,0xDA,0xF1,0xE5,0x0D,0x45,0xB3,0x05,0xF2,0xAC,0x4F,
+ 0x28,0x02,0x53,0xDA,0x28,0xB6,0xA8,0xB5,0xA9,0xC2,0xDC,0x70,0x01,0x81,0xDA,0x85,0xDB,0xBD,0xC5,0x2F,0xF2,0x06,0x41,0xD4,0x86,0xD9,0x8C,0x94,0x8C,0x19,0xD4,0x2A,
+ 0xB2,0xEF,0x2C,0xDB,0x18,0x47,0xD8,0x4B,0x00,0x61,0xE1,0x6A,0xE6,0x69,0x89,0xDA,0x07,0xDD,0x07,0x61,0xDB,0x22,0x9F,0x61,0xDC,0x6A,0x29,0x47,0xAD,0x29,0x0A,0xB4,
+ 0x74,0x9F,0xC9,0xB8,0x56,0x58,0xF4,0x66,0xBD,0x00,0x8D,0x2D,0xEA,0x70,0xDC,0x7E,0x48,0x03,0xE2,0x35,0x48,0xF0,0xE4,0xAA,0x11,0x05,0x60,0x8B,0x00,0x39,0x04,0x0A,
+ 0x33,0x1E,0x0B,0x13,0x30,0x1A,0x19,0xDB,0x00,0xB9,0xD0,0xCA,0x82,0x0C,0x22,0x7A,0x02,0x1B,0xDB,0x20,0xB5,0x92,0x15,0x02,0xFD,0x4A,0x9B,0xA0,0x9C,0xDA,0x11,0x7D,
+ 0x21,0xDB,0x50,0xC0,0x90,0xC0,0xCE,0xB2,0x88,0xD3,0x85,0xB9,0x7B,0xA6,0x9A,0xD2,0x0E,0xF0,0x3B,0x0E,0xE2,0x04,0x44,0x8B,0xB5,0x86,0xB1,0xBD,0x14,0xAB,0x55,0x00,
+ 0xD0,0x09,0xDB,0x48,0xD0,0x11,0x21,0xDB,0x69,0x98,0xD5,0x0C,0x02,0x5A,0x21,0xB8,0x61,0xD3,0x38,0xDB,0x55,0x05,0x95,0xB6,0x5F,0x00,0x6B,0xF2,0x22,0x3C,0x61,0x68,
+ 0xC9,0xB7,0x0E,0x64,0xB5,0x3B,0x64,0x42,0xB8,0x14,0x36,0x11,0x06,0x00,0x11,0xF3,0xAA,0xE5,0x95,0x46,0x33,0xDA,0x00,0x26,0x5C,0x1C,0xCD,0xEC,0xC0,0xDC,0xE3,0xB9,
+ 0x06,0xE6,0xD7,0x5B,0x9F,0x7A,0xDD,0x02,0x08,0x0D,0x07,0x0A,0xC1,0xDB,0x7A,0x6E,0xC7,0xBF,0x02,0xC6,0xD5,0x71,0x7D,0x73,0x7D,0x87,0xCA,0xDD,0xF7,0x90,0x71,0x6F,
+ 0x00,0x7C,0xBC,0x2B,0xCF,0x1E,0x9D,0x02,0xD8,0x14,0x90,0x87,0xBE,0x55,0x98,0x9E,0x07,0xDA,0x1D,0xCC,0x61,0x9D,0x85,0xD8,0x95,0x8B,0x05,0xDB,0x85,0xD9,0xE5,0x0B,
+ 0xA3,0x30,0xDB,0x49,0x07,0x28,0xE5,0x4C,0xDB,0x0B,0x6F,0x21,0xB0,0xDC,0xB9,0xCB,0xB4,0x8E,0x77,0x37,0x02,0xFE,0x9D,0x03,0xEA,0xC5,0x90,0x5A,0xFE,0xEB,0x02,0xDA,
+ 0x30,0xDB,0xEC,0x02,0xDB,0x18,0x05,0xDB,0x51,0xB7,0x05,0xB3,0x39,0x06,0x33,0x80,0xDB,0x26,0x1C,0x1D,0x1D,0xCD,0x81,0xE3,0x00,0x23,0x95,0xC1,0xDC,0x0C,0xB7,0xA0,
+ 0xB7,0xE7,0x34,0x91,0x1C,0xD8,0xAE,0xC2,0xA1,0x86,0xBB,0x73,0x87,0x87,0xA0,0x62,0x73,0x83,0x9D,0x40,0xD9,0xA4,0x8A,0xD7,0x8A,0x83,0x4E,0x0B,0xE6,0xAB,0xA7,0x98,
+ 0x9C,0xC2,0x3F,0x40,0x8B,0xB7,0xBE,0x26,0x40,0x8E,0x9A,0x8F,0x4B,0x92,0x36,0xB6,0x48,0x47,0xA0,0xDB,0xC2,0xEC,0x30,0xDB,0x2B,0x10,0x05,0xB9,0x24,0x1F,0xDB,0x25,
+ 0xB4,0x8C,0xB9,0xA3,0x2F,0xBA,0x86,0xD9,0xB4,0x93,0xE2,0x9F,0x91,0x93,0x83,0x20,0xDB,0x2C,0x3C,0xDB,0x15,0x0E,0x80,0x69,0x48,0x01,0xDB,0x09,0xBC,0x00,0x39,0xDD,
+ 0x60,0x39,0xDA,0x5C,0xB0,0xDB,0x0B,0x2D,0x35,0x5E,0x52,0xB8,0x20,0xB1,0x97,0x22,0x9F,0xC3,0xDB,0xD4,0xA8,0x24,0x8B,0x49,0x4C,0x00,0x9F,0x97,0xB6,0x86,0xC2,0xC0,
+ 0xD5,0x90,0x9F,0x9B,0xE6,0x9F,0x61,0x57,0x62,0xAB,0xD4,0x9F,0xE0,0xE0,0x83,0x52,0x88,0x91,0x50,0xDA,0x5A,0xEE,0xEA,0xEF,0x7C,0xA4,0x8A,0xAC,0x91,0xDC,0xD3,0x7B,
+ 0x72,0x26,0xBE,0x4E,0xE9,0x59,0x53,0x93,0x0C,0x5B,0x4E,0xAD,0xD4,0x0B,0x81,0xD1,0x3A,0xF8,0xCA,0xCB,0xF2,0x05,0xDB,0xB5,0x90,0xCE,0xAF,0xB0,0x56,0xDD,0x14,0xE8,
+ 0xAE,0x40,0x03,0xBB,0xCA,0xCF,0xEA,0xA8,0x93,0x83,0x61,0xFB,0x40,0x68,0x83,0x7C,0x71,0xC0,0xE2,0x3B,0x38,0xC1,0xDC,0x14,0x8C,0x03,0x38,0x11,0x14,0xDB,0x30,0x00,
+ 0x2A,0x0A,0x0A,0x09,0x00,0x8B,0x2A,0x1E,0x30,0x36,0x26,0x36,0x36,0x05,0x2F,0x1A,0x2B,0x6D,0xD6,0x00,0xDC,0xDA,0xD8,0xC1,0xF3,0xE3,0x00,0x82,0x47,0xCE,0x7C,0x1B,
+ 0x27,0xD0,0xE0,0xDA,0x4C,0xC2,0xDA,0x49,0xA2,0x2C,0x73,0x2C,0xDA,0x2E,0x00,0xE7,0xA2,0x05,0x63,0xA6,0xD5,0x4F,0xD2,0x7D,0xB6,0x74,0x00,0xB9,0x5E,0x90,0x32,0x7B,
+ 0xC0,0xE4,0x07,0xDB,0x0B,0xAE,0x0C,0x8B,0xA2,0x56,0x00,0x6F,0xCF,0x13,0x84,0xDA,0xC1,0xE6,0x65,0xC8,0xF2,0x0A,0x00,0x15,0xDA,0x2A,0xE9,0x4E,0xD4,0xED,0x44,0x84,
+ 0xA0,0xD6,0x3C,0x84,0x89,0x04,0x03,0x89,0x78,0xA4,0x93,0x64,0x61,0xB7,0x3C,0x00,0x90,0x96,0x94,0x73,0x60,0x2C,0x42,0x0F,0xA2,0xB6,0xDF,0xCC,0x05,0x2C,0x09,0x04,
+ 0x00,0x09,0x05,0x34,0x2A,0x03,0x92,0xC0,0xD9,0x45,0x45,0x05,0x36,0x5D,0x2D,0x6D,0x6B,0x00,0xDB,0xDF,0xCF,0xAF,0x10,0x53,0x31,0x4F,0x50,0xDB,0x0D,0x4F,0xEC,0x49,
+ 0x53,0x97,0x03,0xDA,0x5D,0x12,0xDC,0x42,0x3C,0x81,0xDA,0x61,0x9D,0x6F,0xC9,0xA4,0x07,0x83,0xBC,0xEC,0xDB,0x16,0x70,0xDB,0x14,0xE8,0xB9,0xC3,0xF4,0x00,0xE2,0x0C,
+ 0x44,0xDB,0x2D,0xBE,0xE7,0xC5,0x7A,0xC6,0x7B,0xB0,0x7B,0xCE,0x09,0x82,0xD3,0xE7,0x0D,0x08,0x96,0x25,0xC3,0xDA,0x00,0xBC,0x06,0xB6,0xB2,0xAD,0x50,0x84,0xD6,0x7E,
+ 0x46,0xDE,0x18,0xA4,0x96,0xBD,0xA4,0x83,0xDB,0x0C,0xB7,0xB5,0x8F,0x1B,0x60,0xDC,0x0F,0x00,0x38,0xDB,0x0C,0xE0,0x37,0xC4,0xE6,0xA1,0x94,0x00,0x09,0xDA,0x19,0xB5,
+ 0x18,0x45,0x50,0xDB,0x05,0x27,0x5D,0xCD,0x5E,0x03,0xDB,0xD0,0xCE,0x71,0xAC,0x24,0x08,0x04,0xA1,0xDB,0x8E,0x82,0x00,0x07,0x0D,0x9F,0xAC,0xD8,0xD2,0xEC,0x5A,0x94,
+ 0x91,0x63,0xB9,0x29,0xB7,0x60,0xD5,0x3C,0xFB,0x03,0x00,0xF2,0x5B,0x88,0xBC,0xDA,0x24,0xB7,0x2F,0x04,0xD7,0xCC,0xDB,0x2C,0xB5,0xB9,0xAE,0x58,0x47,0xDB,0x4E,0xC5,
+ 0xF4,0xC5,0x0C,0xC1,0xDC,0x28,0xC7,0xAC,0xDA,0x39,0x00,0xC2,0xDB,0xE6,0x0A,0xD9,0x04,0xA2,0xE1,0xDB,0x5B,0x87,0xA3,0x97,0xBE,0xFD,0x2C,0xD4,0x30,0xD7,0xBA,0x00,
+ 0xDB,0x07,0x83,0x00,0x86,0xDC,0x76,0xDC,0xF0,0x00,0xDB,0x69,0xC8,0x8F,0x96,0xB3,0xF2,0xB8,0xE0,0x7D,0xBA,0xAE,0xF0,0xDA,0x0C,0x03,0xDA,0x28,0xB6,0xB0,0xDA,0xD9,
+ 0x00,0x45,0x04,0x46,0xCD,0xAA,0xF1,0x77,0xC8,0xB8,0x4C,0x1B,0x82,0x50,0xDB,0xA0,0xDC,0xF9,0xB5,0xC1,0x48,0x91,0xC0,0x12,0xBB,0xE7,0x7D,0x87,0xDB,0x69,0xAF,0x6A,
+ 0x80,0x00,0x91,0x45,0xA6,0x12,0xB6,0x80,0xAE,0x81,0x70,0xDB,0x58,0xB2,0xDB,0x53,0xD2,0x96,0x44,0x3F,0xAB,0x13,0x05,0xDB,0x15,0xC2,0xCA,0x9B,0x6F,0xAC,0x08,0xCB,
+ 0x2C,0xC5,0xAF,0xC4,0xB9,0x00,0xD2,0x8B,0xE6,0xA3,0x59,0x06,0x73,0xD9,0x92,0x4E,0xA1,0x3F,0x46,0x49,0xA3,0x9F,0x06,0xA6,0x9E,0x93,0xA9,0xF0,0x77,0xC9,0x31,0x2C,
+ 0x7F,0x00,0x42,0x42,0x7F,0x96,0xB2,0xDB,0x1B,0x02,0x11,0x00,0xB7,0xCC,0xA4,0x02,0x03,0xA1,0xDB,0x86,0xDA,0x04,0x63,0x76,0x9E,0x86,0x77,0xA7,0xCE,0x04,0xE2,0x97,
+ 0x53,0x1B,0x1B,0x12,0x38,0xCB,0x4F,0x4F,0x07,0x28,0x22,0xB0,0xDA,0x02,0xC6,0xE7,0xEE,0xEE,0x85,0xB8,0x68,0x41,0xDB,0x63,0xC7,0xB3,0xDC,0x68,0xD4,0x07,0xA6,0xB3,
+ 0xEC,0x83,0xBF,0xAC,0xB6,0xAD,0xF1,0x56,0xB2,0xF0,0xB8,0x8D,0x61,0xDA,0x92,0xB5,0x3F,0x50,0xAF,0x94,0xEC,0xD6,0x4E,0xB9,0x57,0xFD,0xF7,0x06,0x2A,0xF7,0xD0,0xDA,
+ 0x65,0x9F,0x25,0x09,0xBD,0xBF,0xD9,0x28,0xB4,0x5A,0xEF,0xC8,0xC9,0xF8,0xDB,0x50,0xD5,0x61,0xD6,0x7F,0x00,0xA9,0xFA,0x62,0x00,0x3C,0xB3,0xD6,0x02,0xBE,0xB7,0xE5,
+ 0xA1,0x11,0x61,0xDB,0x4F,0xC9,0x40,0xD8,0x05,0xEC,0x82,0x4B,0x03,0xB0,0xDB,0x59,0x45,0xBA,0x30,0x63,0xDC,0x1D,0xE9,0xEC,0x91,0x87,0x84,0xCF,0xD8,0x5B,0x0D,0x12,
+ 0x17,0xB7,0xAC,0x66,0x07,0x0D,0xB6,0x52,0x00,0xDA,0xDC,0xC8,0x60,0xCB,0xB6,0xC1,0xDC,0xDB,0x14,0x66,0xC8,0x3D,0xF2,0xA9,0x3C,0x90,0x31,0xD2,0xF6,0xD8,0xD1,0x92,
+ 0xA6,0x77,0x83,0x60,0xDB,0x89,0xE7,0xA3,0x91,0x4C,0xB5,0xB9,0x94,0x56,0x4E,0xAE,0x28,0x47,0xBA,0x12,0x6F,0x84,0xB5,0xA9,0x9B,0x3D,0x00,0x95,0xAF,0x84,0xDB,0xA1,
+ 0xFA,0x55,0x28,0x07,0x84,0xD4,0xBD,0xB4,0xD8,0x00,0xDB,0x4E,0xDA,0x0D,0x96,0xCA,0xDD,0x66,0xF5,0xE3,0xCA,0x83,0xD9,0x3B,0x02,0xD3,0x8F,0xDD,0x07,0x14,0xD6,0x94,
+ 0xDA,0x07,0x05,0x09,0x06,0x53,0xA6,0x76,0x86,0x3A,0x88,0xDB,0x00,0x27,0x63,0x65,0x9E,0x2C,0x95,0xE9,0xB8,0x88,0x98,0x53,0x24,0xDB,0x0F,0x89,0x6C,0xB6,0x8D,0xC2,
+ 0xC6,0x91,0x30,0xDA,0xCE,0x94,0xB0,0x61,0xDB,0x38,0x66,0x70,0xB9,0xD2,0x8B,0xAF,0x88,0xD0,0x7E,0x8B,0xFC,0xDD,0xC2,0xDB,0x8A,0xB6,0x98,0x04,0x7C,0xDC,0x30,0x7C,
+ 0xD7,0xC3,0xDB,0xEC,0x55,0x44,0xFD,0xE3,0x85,0xB2,0xE4,0xB6,0xA0,0xDC,0x4E,0xAF,0xEE,0x98,0xC6,0xAA,0x04,0x5C,0xF2,0xAB,0x04,0x27,0x93,0x16,0x07,0xB0,0xD6,0xAB,
+ 0x03,0xDC,0xC5,0x40,0x4C,0xED,0x84,0xB8,0x71,0xFF,0x99,0xC1,0x2A,0x6C,0xC1,0xDB,0x23,0xCD,0xA1,0x77,0xB5,0xD7,0x80,0x14,0x57,0x05,0x05,0x11,0xEF,0x02,0xB9,0x9A,
+ 0x06,0xED,0xA7,0x0A,0xDB,0x0C,0x00,0x5D,0x50,0xA4,0x94,0x03,0x29,0x65,0x85,0x95,0x91,0xA3,0xB8,0x21,0xB7,0x9A,0x0D,0x04,0x61,0xDB,0xF5,0xE1,0xBE,0xC8,0xB6,0x5A,
+ 0x90,0x19,0xC8,0x57,0x92,0xE1,0xD9,0xAB,0xEF,0x62,0xDB,0x0E,0x96,0x9B,0x66,0xCC,0xE1,0xD8,0x44,0xB8,0x83,0xAE,0xB8,0x5A,0x90,0x91,0x28,0xB2,0xD9,0x29,0xEA,0x41,
+ 0xA4,0xB2,0x96,0x89,0x37,0x65,0xB2,0x28,0xCB,0x58,0xC0,0x4A,0xC4,0xB2,0xCF,0x83,0x0C,0x39,0xBF,0x61,0xEC,0xC8,0x21,0xB7,0x97,0x18,0x3D,0xFB,0x49,0x00,0xF2,0xB7,
+ 0x44,0x89,0xB8,0x78,0xAB,0xEE,0x94,0xEB,0x5D,0x68,0x7C,0x91,0xB9,0x96,0x90,0x9D,0xAD,0xA2,0x92,0x3B,0xC1,0xDC,0x05,0x49,0x8F,0x45,0xB4,0x75,0x00,0x86,0x6A,0x2A,
+ 0x03,0xB4,0x94,0xC0,0xD7,0x27,0x27,0xA2,0xB7,0xA1,0x00,0x8C,0x4A,0x91,0x45,0xB8,0x56,0x87,0x12,0xAE,0xBE,0x21,0x08,0x1B,0xC2,0xBF,0xCB,0x22,0xF0,0x82,0xC8,0x7A,
+ 0x91,0x45,0x0E,0x27,0xEE,0x00,0x4B,0xEF,0x5F,0xA8,0xB2,0xDC,0x3B,0x81,0xDB,0x3C,0x85,0xDB,0x75,0xC6,0x70,0xC3,0xA6,0x74,0xB2,0xAA,0x00,0xFF,0x60,0x72,0xAD,0x96,
+ 0xA4,0x50,0x44,0xD7,0x2E,0xA2,0x03,0x81,0xBA,0x4E,0x38,0xDB,0x72,0x04,0x87,0xDB,0x14,0x2D,0x00,0x95,0xA5,0xAC,0xE1,0x93,0x9D,0x4B,0xE4,0x22,0xE8,0xD5,0x00,0x05,
+ 0xDA,0x72,0xB5,0xA4,0xD4,0xF0,0x94,0x7C,0x90,0xDB,0x33,0x06,0x66,0x2C,0xDC,0x67,0x3B,0x7C,0x87,0xDA,0x00,0xAE,0xEE,0x91,0x97,0xB6,0xD6,0xDF,0x1E,0x04,0xD7,0x14,
+ 0x00,0x1E,0x4A,0x26,0xDB,0x1D,0x00,0x81,0xDB,0x9E,0x58,0x65,0xB8,0x5D,0xC0,0x23,0xAC,0xC3,0xC0,0xDB,0x1B,0x1A,0xAC,0xA7,0xD7,0x92,0x5A,0x91,0x72,0x5D,0x85,0xDB,
+ 0x4A,0xA8,0x3C,0xD2,0x9B,0x97,0xF2,0xF0,0x55,0x80,0x4F,0xA8,0x03,0xA6,0x98,0xEB,0xB6,0xDB,0x17,0xDD,0x0D,0x72,0x93,0x0B,0x37,0x55,0x96,0x2A,0xCE,0xAC,0xB5,0x2C,
+ 0xBB,0x2C,0xC6,0x27,0xBB,0xC9,0xF9,0x00,0x13,0x4A,0xCC,0xC2,0xFB,0xC2,0xD5,0xD1,0x8D,0x44,0x5C,0x00,0xA4,0xE1,0xD9,0xE9,0x01,0x93,0x87,0xD3,0xCF,0x8B,0x71,0x02,
+ 0xA7,0xCD,0x69,0x73,0x8F,0x6F,0xC8,0x6B,0xEE,0xDE,0x81,0x00,0x11,0xB0,0xD6,0xB2,0xBB,0xA0,0xDB,0x3C,0x1E,0x13,0x00,0xDB,0x2D,0x95,0x24,0xD9,0x00,0x29,0x29,0x93,
+ 0x85,0x2D,0x4A,0xA0,0xF1,0x54,0x22,0xB5,0x55,0x02,0x0E,0x80,0xDB,0x53,0x82,0xD7,0x64,0xCA,0xB6,0xEA,0xC1,0xDA,0x38,0x20,0xDB,0x1D,0x60,0x3C,0x00,0x3F,0xD1,0x93,
+ 0x58,0xD7,0x5A,0x93,0x52,0xED,0xD5,0x84,0xE9,0x95,0xF2,0xBB,0x70,0x60,0xDB,0x56,0x72,0xDD,0x51,0xB9,0x61,0xDF,0xE1,0x03,0xDA,0x3B,0xA0,0xAD,0x55,0xA6,0x27,0xD8,
+ 0x09,0x6A,0xE8,0x4E,0x03,0x0B,0xA5,0x16,0xB0,0x2B,0xDA,0x07,0x40,0x02,0xBA,0x05,0x56,0x00,0xDF,0xCA,0xB2,0x2E,0xF2,0xF0,0xDA,0x93,0x03,0xF9,0xBF,0x77,0xDB,0x07,
+ 0x48,0xD6,0x82,0x48,0x23,0x57,0xA9,0xFC,0x05,0x2A,0x92,0x29,0x06,0xCC,0xF0,0xDB,0x57,0x30,0xBB,0x6B,0x00,0x36,0xDB,0x05,0x29,0x00,0xDA,0x18,0x29,0x8D,0x2C,0x58,
+ 0x3D,0xB8,0x99,0x5B,0xB2,0x5D,0x88,0xA1,0x08,0xC5,0xF0,0x28,0xC1,0xA7,0xDA,0x05,0xE7,0xDE,0x7F,0x62,0x59,0xB9,0x42,0xC9,0xAD,0x3C,0xAD,0xF2,0x86,0xDA,0xDB,0x09,
+ 0x62,0x16,0xEF,0xA8,0x04,0xD9,0x32,0xB4,0xC3,0xDC,0xDA,0x0A,0x00,0x57,0xAD,0xC9,0xF6,0x83,0x40,0xC1,0xD8,0x86,0x61,0xDC,0x20,0xBF,0x5A,0xC3,0xC8,0xB0,0xF6,0xA0,
+ 0x52,0x4B,0x13,0x17,0x25,0x0D,0xF3,0x06,0x04,0x87,0xDA,0x00,0x47,0x04,0xBE,0x84,0x02,0x5D,0xB1,0xB5,0xD2,0x56,0x00,0xD1,0x85,0x73,0x66,0x73,0x87,0x56,0x9F,0xEA,
+ 0xBA,0xEB,0xFC,0xB0,0x42,0xC2,0xDB,0x44,0x91,0xB2,0xB4,0xA2,0xBB,0x50,0x2A,0xDB,0x61,0x00,0x26,0x30,0x5C,0x26,0x48,0x94,0x29,0xB0,0x00,0x18,0x28,0x18,0x85,0x5A,
+ 0x79,0xF1,0x92,0x97,0x22,0x02,0xDB,0x07,0x1C,0xA7,0x9E,0xA4,0x64,0xFF,0xA6,0x7F,0x59,0x38,0x94,0xDB,0x29,0x8E,0x29,0xFF,0x3D,0xCB,0xA2,0xC0,0xA0,0xDB,0x1B,0x61,
+ 0x68,0x61,0xC3,0xEE,0xC6,0x96,0x94,0xDB,0x18,0x96,0xDB,0x58,0xDA,0x50,0xFD,0x93,0x86,0x86,0x05,0xDB,0x9D,0xEC,0x05,0xDB,0x4F,0x9A,0xF0,0xF7,0x0A,0x35,0x00,0x17,
+ 0xB2,0x0D,0x52,0x1B,0x3C,0xBD,0x60,0xDB,0x32,0x84,0x40,0xBE,0x72,0x8A,0xB6,0xF1,0xD7,0x66,0x28,0xD9,0x45,0x02,0xDB,0x57,0xD6,0xEE,0x4E,0xB5,0xC9,0x06,0x39,0x2A,
+ 0x00,0xDA,0x26,0x5C,0x8C,0xDB,0x00,0x65,0x8D,0x3D,0xB4,0x01,0xDF,0xCF,0xAF,0x4C,0x7A,0x7A,0x08,0x0F,0x4A,0xA7,0x53,0xB3,0xDB,0x91,0x42,0x8E,0xC8,0x8E,0x8C,0x83,
+ 0xDB,0x8A,0xAB,0xE1,0xC5,0x3C,0x22,0x98,0x68,0xD2,0x9A,0x97,0xEF,0x07,0x61,0x83,0xDB,0x47,0xC1,0x30,0xDB,0x05,0x96,0x72,0x89,0xBE,0x1D,0xD8,0x3D,0x90,0x14,0xB7,
+ 0xA5,0xB3,0x6F,0xA0,0x98,0xFA,0xED,0xED,0xA2,0x9C,0xFB,0xE7,0xDB,0x0B,0x0B,0xCA,0xDE,0xE5,0x2D,0x9D,0x9C,0x8E,0x6C,0xDC,0x28,0xDB,0x36,0x00,0x72,0xE7,0xAC,0x7D,
+ 0xDB,0x2E,0xB5,0x28,0xD9,0x35,0x87,0x7C,0x83,0x6A,0x7B,0xE0,0xDB,0x11,0xE8,0x00,0xD9,0x1C,0x03,0xA0,0xE4,0xB6,0x0A,0x50,0x13,0xDA,0x6B,0xED,0x60,0xDB,0x5D,0x4A,
+ 0x63,0xDB,0x14,0x00,0x28,0x0E,0x79,0x77,0xBD,0xDA,0x86,0xDF,0x24,0x9A,0x64,0xB6,0x12,0x86,0xC3,0xDB,0x80,0xB0,0xCA,0xC6,0xEB,0x6D,0x1F,0x16,0x7F,0x8B,0x51,0x59,
+ 0xD5,0x60,0xE6,0xD8,0xDB,0x6E,0xCF,0x3B,0xA5,0xEF,0xB2,0xB7,0xD7,0xEC,0xBD,0x3C,0xD0,0x04,0x7B,0x88,0x90,0x40,0xDB,0x2C,0x40,0xB3,0x2D,0xB9,0x66,0xA1,0x2E,0x0C,
+ 0xD7,0xFA,0xDA,0x0C,0xDB,0x0F,0xBA,0xBA,0x14,0x01,0x96,0x00,0x90,0x8B,0x37,0xBA,0xEC,0x0D,0xDB,0x2D,0xBD,0x37,0xC2,0x9C,0xDB,0x34,0x92,0x6B,0x89,0x01,0x7B,0xDB,
+ 0x07,0x74,0x65,0x96,0xB9,0xDB,0x1A,0x84,0xE2,0x07,0x42,0x38,0x23,0xE4,0xA3,0x7F,0x42,0x57,0x8B,0xB8,0x79,0xE3,0x41,0xDC,0x2C,0xA2,0xD3,0xC8,0xD0,0xDB,0x28,0x26,
+ 0xDB,0x12,0x27,0x85,0xDB,0x90,0xB9,0x5A,0xBC,0x77,0xD1,0x94,0xA8,0xA6,0x94,0xDB,0x02,0x08,0x4F,0x12,0x15,0x9F,0x9C,0x1A,0x4F,0x07,0x39,0x02,0xF0,0xA4,0xC0,0xDB,
+ 0xEA,0xB3,0x1B,0x8B,0x8B,0x05,0x52,0x48,0x00,0xDF,0xCD,0x8F,0x4F,0x6B,0x6C,0xED,0x02,0xF0,0x7E,0x79,0x00,0x9D,0xD3,0x70,0x4A,0x00,0x8A,0xB9,0xEE,0xA1,0x6B,0xE8,
+ 0x74,0x94,0xB5,0xED,0xC2,0xDB,0xA4,0x00,0x95,0x4B,0x90,0x2B,0x00,0x98,0xD2,0x2E,0x07,0x4A,0x0B,0xFF,0x5C,0xEB,0x28,0xCC,0x2C,0xB1,0x95,0x37,0xD2,0x34,0xE9,0x5B,
+ 0xC3,0xD1,0x33,0x56,0x89,0xB5,0x46,0x84,0x04,0x94,0x25,0x8D,0x24,0x95,0x8D,0xDD,0xBE,0xC8,0x02,0x57,0xA9,0xA0,0x76,0x14,0x00,0x92,0x80,0x8B,0xDC,0x87,0xE5,0x0A,
+ 0x4A,0x0A,0xDA,0x19,0xB6,0x5C,0xA3,0xA9,0x45,0x03,0x27,0x29,0xB5,0x56,0x04,0xDB,0x00,0x5A,0x79,0xE3,0xBD,0xCF,0x19,0x82,0x5B,0x31,0xB5,0x10,0x08,0x7A,0xA0,0xDB,
+ 0x2C,0x31,0xDB,0x0F,0x7A,0xC1,0xDB,0x02,0xCA,0xBB,0xDE,0xB3,0xB7,0xB1,0x5A,0xAA,0x82,0xB9,0xA9,0xFB,0x6E,0x86,0xA4,0x93,0xF7,0x00,0xC5,0x74,0x61,0x02,0x93,0x94,
+ 0xDA,0x14,0x9E,0xAA,0x8A,0xDB,0x0E,0xDE,0x14,0x70,0xCA,0xF8,0xA0,0x5D,0xC7,0x58,0xDB,0x79,0x00,0x9A,0x4E,0x9B,0x49,0xBA,0x8E,0xF9,0x60,0xE7,0xA5,0xFE,0xDE,0xEF,
+ 0x89,0xA6,0xBA,0x56,0x14,0x83,0x3F,0x25,0x33,0x5E,0x00,0x04,0xDB,0x03,0x7B,0x89,0x89,0x93,0x4A,0xDB,0x0B,0x95,0x4A,0xCA,0x19,0x00,0xDE,0x7F,0x48,0xB2,0xAF,0x50,
+ 0x57,0xDE,0x60,0xDC,0xE5,0x09,0xC8,0x8B,0x0A,0x06,0x82,0xDA,0x4A,0xFF,0x5E,0x45,0xDF,0x25,0x63,0xDB,0x0A,0x92,0x46,0x4D,0xB8,0x40,0xA0,0xB4,0xDA,0xA5,0x5B,0x10,
+ 0x0D,0x07,0x4F,0xB0,0xDB,0x36,0x12,0x8A,0xC0,0xDB,0x22,0x82,0xC0,0xDA,0xC0,0xEB,0x0C,0x15,0x39,0x06,0x11,0xB9,0x96,0x57,0xDB,0x1A,0xFB,0x12,0x61,0x60,0xCA,0xA9,
+ 0x3B,0x40,0xE2,0x3C,0x80,0x68,0x05,0xE0,0x6D,0x00,0x7C,0x20,0xDB,0x14,0x7C,0xAD,0xDB,0x16,0xA7,0x14,0xDA,0x14,0xC3,0x1A,0x85,0x6F,0x02,0x86,0x00,0x06,0xF4,0x05,
+ 0x02,0x3F,0xF9,0xC3,0x7A,0x00,0xA1,0x69,0x93,0x69,0x84,0x7D,0x15,0x23,0xA4,0x90,0xA1,0xDC,0x87,0xDB,0xD0,0x81,0x94,0x78,0x94,0x7D,0x41,0xDB,0x4F,0xC6,0x51,0x61,
+ 0xA1,0xDB,0x8F,0xE2,0x07,0x86,0x8A,0x91,0x94,0xDB,0x09,0x1E,0x02,0xDB,0xFA,0xB8,0xB2,0xDD,0x60,0xDB,0x78,0x28,0x01,0x00,0x5A,0x4D,0xB5,0x0D,0xB6,0xA3,0xDF,0xD7,
+ 0x94,0x10,0x4F,0xB8,0xDB,0x34,0x02,0xAD,0x1A,0x12,0x07,0x53,0xED,0xD2,0x92,0x38,0x25,0x93,0x35,0x11,0xC8,0x58,0x38,0x03,0xDC,0x7F,0xFB,0x47,0x60,0x6A,0x82,0xE3,
+ 0x48,0xC2,0xE4,0xAE,0x79,0x8C,0xF7,0xD0,0xAA,0x00,0xDC,0x09,0x03,0xDB,0x97,0x49,0x03,0xDB,0x01,0xE4,0x02,0xC2,0x5A,0x02,0xBA,0x08,0x06,0x52,0xBA,0xD5,0xD8,0xE9,
+ 0x4D,0x0D,0x2C,0x99,0xA9,0x56,0xB8,0x0B,0x3F,0xBA,0x8B,0x19,0x43,0xDC,0x8E,0x42,0x72,0x94,0xB1,0xD3,0x7D,0x77,0x80,0x73,0xA1,0xB7,0xDA,0x6E,0x5E,0xB0,0x0E,0xEC,
+ 0x7B,0xB9,0xD4,0x57,0xB5,0x57,0xBB,0xD8,0xDB,0x6F,0xCB,0xDC,0x00,0xA4,0xF5,0xFE,0x20,0xDB,0x25,0x27,0x93,0x4B,0xD8,0x00,0x6A,0x6A,0x4D,0x59,0x3E,0x4D,0xD9,0xBF,
+ 0xD1,0x94,0x4C,0xAC,0xED,0x30,0xDB,0x19,0x03,0x07,0xAC,0xDF,0x80,0xA5,0x25,0xDE,0x33,0x01,0xDB,0xDC,0xC8,0xD0,0x58,0xDC,0x35,0x7F,0x6B,0x7F,0x0A,0x6A,0x3B,0x23,
+ 0xDC,0xC2,0x8A,0xD6,0x15,0x23,0x21,0x9B,0x80,0x62,0x59,0xE8,0x20,0xDB,0x66,0xCF,0x7C,0x6A,0x78,0x04,0x84,0xB1,0x05,0x44,0x84,0xDC,0xC1,0xDA,0x20,0xCD,0x76,0x0D,
+ 0xA1,0x56,0xE1,0xB7,0xE7,0x5C,0x00,0xD5,0x15,0x29,0x41,0xEF,0x41,0xD3,0x27,0x2D,0x06,0xBA,0xC6,0x78,0x50,0xD8,0xFB,0x00,0x5F,0xDB,0x0C,0xC1,0x68,0xDA,0x2B,0xB6,
+ 0x92,0x0F,0x63,0x00,0xE0,0x4C,0xF7,0x05,0xC1,0xDA,0x04,0x4A,0xEF,0x0A,0xCA,0xB7,0x70,0xDB,0x61,0x27,0xDB,0x65,0xB6,0x6B,0xEA,0x58,0x00,0xDB,0x0C,0x59,0xD9,0xE4,
+ 0xB8,0xBE,0xBE,0x7C,0x31,0xBA,0x02,0x86,0x00,0xDB,0x24,0xB0,0x61,0xD7,0xDA,0xA3,0x92,0x0A,0xF2,0x95,0x8B,0x86,0xDB,0xDC,0x07,0x57,0x7F,0x00,0x60,0xDB,0x23,0xA0,
+ 0xDB,0x63,0x70,0xD7,0xF2,0xB8,0x42,0xF9,0xC6,0x80,0x82,0x81,0x62,0xC3,0xDB,0xA7,0x57,0x78,0xE8,0x94,0xF0,0xB4,0x84,0x56,0x9A,0xF6,0x89,0x5C,0x06,0xDF,0x00,0x13,
+ 0x0B,0x65,0xB5,0x3D,0x0F,0xF7,0x12,0x13,0x00,0x2A,0x8C,0x5A,0xB9,0x50,0xDB,0x18,0x89,0xD5,0xDB,0x51,0xB1,0x2C,0x73,0xB6,0xAC,0xDB,0x33,0xA6,0xE4,0x03,0xDB,0x0C,
+ 0xD2,0x35,0x02,0x05,0xCD,0xA2,0x75,0xB5,0x03,0xD7,0x0A,0x02,0xF9,0xB8,0x13,0x49,0x92,0x68,0x93,0x50,0x8B,0xDB,0x02,0x4D,0x4D,0x83,0xDC,0x94,0x40,0xE4,0xB9,0xCA,
+ 0x97,0x42,0x24,0xC0,0xDB,0x02,0xDF,0xCA,0xF2,0x52,0x4C,0x8F,0xAC,0x80,0xEA,0x0C,0xAB,0xC9,0x0A,0xE5,0xEE,0xE5,0x8B,0xCD,0x7A,0xD8,0x07,0x0E,0x6A,0xD7,0x8F,0xEA,
+ 0x9F,0x78,0x9E,0x56,0x93,0x9D,0x00,0x2F,0xF1,0xAB,0x56,0x93,0x8A,0x96,0x83,0x75,0x96,0x86,0xDB,0x84,0x4A,0x37,0x9B,0x75,0x56,0x87,0xB3,0x02,0x36,0x00,0xCD,0x5C,
+ 0x0B,0xF6,0x00,0x0F,0xBE,0x92,0x15,0x67,0x0C,0xBF,0x08,0x28,0xDB,0x6A,0x40,0x72,0xDB,0x0C,0x59,0x73,0x7D,0x52,0x73,0x91,0x58,0xD8,0x59,0xB7,0x6B,0x81,0x4F,0xC2,
+ 0x41,0xDB,0x4B,0xEC,0xA6,0x90,0xE7,0x2D,0x04,0xE9,0x55,0x03,0x02,0xA9,0x00,0x13,0xC9,0xFB,0x00,0x91,0x4D,0x00,0x63,0x3A,0x93,0x50,0xDB,0x61,0x03,0xD4,0xB8,0xB6,
+ 0x77,0xB8,0xCD,0x53,0x08,0x1B,0x85,0x01,0xDB,0x7A,0x8D,0x00,0x12,0x4F,0x5B,0xEE,0x72,0xB6,0x30,0x6D,0x34,0xDB,0x28,0x4B,0xDE,0xDB,0x2A,0x85,0xC2,0x7F,0xC8,0x3B,
+ 0x48,0xD3,0xFF,0xEE,0xBA,0x72,0x91,0xD1,0xF0,0xDE,0x79,0x61,0xE4,0x61,0xDA,0xC8,0x00,0xDB,0x0C,0x94,0xDB,0x35,0x06,0x56,0x66,0xC9,0xA8,0x12,0x16,0x99,0x89,0x5D,
+ 0x00,0x1F,0xE9,0x19,0xC5,0x05,0x85,0xCD,0x1D,0xFD,0xDD,0x0F,0x23,0x2C,0x1E,0xBF,0xB6,0xA6,0xDB,0x02,0x94,0x71,0x92,0x8C,0xC1,0xDB,0xDC,0x41,0xD7,0x4C,0x00,0xC8,
+ 0xCF,0x6B,0xB5,0xA9,0x8F,0x69,0xC7,0xF3,0x02,0x09,0x05,0xB2,0x25,0x09,0xCA,0xA1,0x13,0x81,0xDC,0x30,0x61,0xD9,0x30,0xDB,0x4E,0xCB,0xED,0x5A,0x90,0x2C,0xDB,0x06,
+ 0xD9,0xB8,0xE4,0x94,0x82,0x4C,0x1B,0x0D,0x15,0xB7,0x2E,0x9C,0xEA,0xA5,0x40,0xCC,0xCA,0x99,0xEB,0x8E,0x2A,0xC8,0xB6,0x39,0xE5,0x0C,0xE5,0x39,0x09,0x0F,0x65,0xC8,
+ 0xDC,0xC3,0xD6,0xC2,0xE2,0x2C,0x7F,0x9F,0xD5,0xD9,0x0D,0x98,0x32,0xB3,0xB7,0xCB,0xC2,0xDD,0xC8,0xB8,0x90,0x66,0xDE,0xC7,0xAB,0xBB,0xBD,0x2E,0xA9,0x73,0xD8,0x48,
+ 0xD3,0xC3,0xB8,0xD2,0x61,0xBB,0x92,0x87,0x94,0x81,0x00,0x96,0x7B,0xD5,0xD5,0x72,0x56,0x00,0xE8,0x19,0xA5,0x2A,0xBF,0x1B,0xAE,0x02,0x0B,0xAA,0x00,0x13,0x8A,0xB7,
+ 0x5A,0xFF,0xEC,0x2D,0xDB,0x28,0xB7,0xBC,0x03,0xD4,0x2B,0xC9,0x76,0xD7,0x74,0x0E,0x00,0x91,0x98,0xDA,0x3D,0x8B,0x00,0xC7,0xE9,0x94,0x37,0xC7,0x51,0x0A,0xB4,0x57,
+ 0xB4,0x61,0xDB,0xA4,0x03,0x5C,0xDE,0xC2,0x63,0x63,0x80,0xDC,0x2F,0x27,0xA0,0xD9,0x91,0x93,0x2A,0x02,0x90,0x94,0xD9,0xB6,0x1D,0xB4,0xE2,0x9A,0x85,0xA1,0x08,0x40,
+ 0xDB,0xA7,0xC9,0x60,0x53,0xDB,0xC5,0x0C,0x76,0xEA,0x16,0x2A,0x00,0x39,0x8B,0xC0,0xDB,0x04,0x05,0x03,0x14,0x7F,0xDC,0x73,0x2C,0x48,0x05,0xAA,0x91,0xD3,0x99,0xD1,
+ 0x05,0x2C,0xD6,0x9C,0x80,0x16,0xDB,0x16,0xBB,0x42,0x66,0x71,0x78,0x83,0xC8,0x94,0x4B,0xC1,0x09,0x8B,0x99,0x08,0xEC,0x00,0xD2,0x1D,0x78,0x00,0xBD,0xA5,0x3F,0x19,
+ 0xD5,0x02,0x03,0x00,0xF9,0x03,0x06,0xEC,0x00,0xF2,0x30,0xEE,0xAF,0x02,0x03,0x22,0xF9,0x00,0xA6,0xA5,0xE8,0xC3,0xDB,0xDA,0x0E,0x66,0xFB,0x60,0x69,0xC8,0x7C,0xDC,
+ 0x18,0x8B,0xD8,0xFF,0xBF,0x4B,0x00,0x09,0xC6,0x7C,0xDA,0x2E,0x00,0xF9,0xB9,0x45,0x22,0x8D,0x58,0xDD,0x51,0xB8,0x48,0x91,0x9C,0xA4,0xDB,0x00,0xB5,0x94,0x40,0xA3,
+ 0xCF,0x98,0x24,0x21,0x07,0x07,0x60,0xDB,0x6A,0x4F,0xEE,0xD7,0x68,0xC5,0x92,0x16,0xF2,0x4E,0xB9,0x7F,0x06,0x58,0x03,0xD9,0x63,0xC8,0x73,0x23,0x69,0xA7,0xD0,0xC5,
+ 0xCC,0xC8,0x47,0xB1,0x61,0xDB,0x79,0x80,0x40,0xDC,0x62,0xA2,0xB9,0xC1,0xDC,0x96,0x54,0x00,0x9E,0x0B,0xA4,0xC0,0x09,0x51,0x8A,0x84,0x74,0x08,0x8E,0x57,0x00,0xE5,
+ 0xB6,0x86,0xE5,0xB3,0x97,0x0D,0xCD,0x21,0x00,0x7A,0x18,0x0D,0xD5,0x5B,0x00,0x19,0x69,0x71,0x8C,0xB1,0xCA,0x83,0x73,0x6F,0xC2,0xAD,0xE8,0x25,0x8F,0xBD,0xC7,0x2B,
+ 0xE8,0xC8,0x00,0x35,0x8B,0x06,0x00,0x04,0x3D,0xC6,0x04,0xDC,0xA1,0xD9,0x61,0xDA,0x69,0x8D,0x36,0x00,0xB8,0x52,0x86,0xDB,0x95,0x94,0xDB,0x0D,0xBC,0x94,0x1A,0xE6,
+ 0xF0,0xC2,0xE0,0xDB,0x4F,0x6A,0x0D,0xEE,0xD2,0xC0,0xDB,0x35,0x25,0x78,0x2A,0x4F,0xDE,0x7E,0x5F,0x60,0xDB,0x1F,0x92,0xF4,0x65,0xDB,0x19,0xB8,0x52,0x99,0x5E,0x7C,
+ 0xDC,0x0A,0x61,0x00,0x90,0xDE,0x19,0x74,0xBA,0x28,0x73,0xDC,0x2C,0xBB,0xBF,0xD9,0xAE,0x07,0x08,0xCB,0x92,0xC8,0x0E,0x0F,0x42,0xB8,0xAC,0xB4,0xD9,0x00,0x70,0x93,
+ 0x1A,0x94,0x7C,0x1B,0x7C,0x8A,0xDD,0xAE,0x1B,0x17,0x50,0xF5,0xAB,0x2B,0xDE,0x0B,0x27,0xD1,0x92,0x73,0x8E,0xB6,0xB8,0x58,0xDF,0x56,0xD7,0x7B,0xCD,0xA9,0x6A,0x48,
+ 0xEC,0x6F,0x7B,0x79,0xCB,0xB7,0x9B,0x5C,0xDA,0x25,0x00,0xB0,0xDA,0x2E,0x26,0x30,0xA3,0x67,0xDB,0x0C,0xBC,0xA5,0xDB,0x0B,0x01,0x50,0x59,0xDD,0x52,0xF0,0x88,0xBD,
+ 0xA8,0x5B,0x60,0xDB,0x0C,0x24,0xAC,0xDB,0x01,0x99,0xEA,0x2B,0x3A,0x04,0x60,0xDB,0x05,0xB6,0xC9,0x6B,0x06,0xF7,0xA8,0x06,0x57,0xDB,0x0E,0x57,0x0F,0xA9,0x6A,0xBE,
+ 0x3C,0xE7,0x5D,0x3B,0xA6,0x5F,0xBA,0xD0,0xDC,0x1A,0x61,0x87,0xF2,0xB0,0x7B,0xD8,0x15,0x96,0x7D,0x7C,0xA1,0x9A,0xF8,0xD9,0xA5,0x35,0x94,0x06,0x7C,0x7B,0xE6,0x78,
+ 0xE2,0x77,0x7D,0xC7,0x2B,0x70,0xD7,0xAF,0xBD,0x24,0x00,0xD2,0xBF,0xF5,0x14,0x00,0x7B,0x4F,0x24,0x00,0x75,0x0A,0x28,0x41,0xDB,0x9F,0x49,0xDC,0xDC,0x58,0x60,0x8B,
+ 0xBC,0xC8,0x92,0xAE,0x76,0xCE,0x00,0x8B,0x39,0x00,0xBA,0xB0,0x45,0xEC,0xE4,0x00,0xB6,0x2E,0xFF,0xAD,0xED,0x6D,0x8C,0x26,0x00,0x99,0xEF,0x72,0xB5,0xBC,0xE1,0xC0,
+ 0xDB,0xB9,0xE2,0x42,0xAC,0xA1,0xDB,0xD8,0x82,0x1B,0x53,0xB0,0x2C,0xCC,0xC2,0xDB,0x14,0x2A,0x93,0x8C,0x04,0x8E,0xF0,0xDD,0xA6,0x03,0x8B,0xF9,0x8F,0x57,0x00,0x04,
+ 0x79,0x14,0xE2,0x4C,0xE7,0x48,0xFB,0x04,0x7E,0xB5,0x2D,0xD1,0xE8,0xDC,0x3F,0xC3,0x61,0x83,0xDB,0x41,0xCC,0xAB,0xAC,0x87,0x00,0xB0,0xE7,0xB5,0xBB,0xD9,0x0C,0x7D,
+ 0xA5,0x79,0x00,0xB3,0x65,0xB0,0x41,0xD6,0xCF,0xCC,0x04,0x7E,0x12,0x00,0xD6,0x1F,0x12,0x05,0x43,0x81,0x2A,0xAE,0x73,0x23,0x55,0x07,0x1F,0x4E,0x9C,0xDB,0x15,0x82,
+ 0x75,0xC6,0xB9,0xA0,0xF9,0x6B,0xB6,0x5A,0xE7,0xB4,0x06,0x8A,0x54,0x06,0xA0,0xA4,0x04,0xEB,0x5B,0x03,0xDE,0xC8,0xEE,0x81,0xF2,0xDC,0x42,0xB5,0xB9,0xA4,0xD1,0x00,
+ 0x6A,0x00,0xDB,0xD4,0xB5,0xF0,0x10,0x97,0x1B,0x4F,0xB0,0xDB,0x1F,0x4C,0xAF,0xB9,0x14,0x99,0x6D,0xDB,0x18,0xB1,0xBD,0x2A,0x57,0xEE,0x5E,0x06,0x61,0xBF,0x39,0x6A,
+ 0x8B,0x57,0xDB,0x8D,0x0F,0xB2,0x2E,0x78,0x82,0xDB,0x95,0x7D,0x3B,0xCE,0x17,0x00,0x6C,0x06,0x61,0xB2,0x30,0xAF,0xC3,0xD9,0xE3,0x8A,0xC9,0x27,0x87,0x0B,0x41,0xDA,
+ 0xC6,0xF2,0xC8,0x0A,0x71,0xDC,0x0A,0x03,0x74,0x7C,0x0D,0xBC,0x58,0xD1,0x57,0x99,0x77,0x12,0x00,0x7F,0xFF,0xDF,0x0C,0x1F,0x00,0x77,0x03,0x00,0xF5,0x15,0x25,0xB2,
+ 0xD8,0xDA,0x50,0xE2,0x52,0x8F,0x58,0xC7,0xD8,0xDA,0x51,0x7E,0x0A,0x04,0x56,0x03,0xB7,0x52,0xB8,0xC6,0x13,0x3A,0x33,0x74,0x26,0xFF,0x36,0x60,0x50,0xDB,0x5D,0xA0,
+ 0xDC,0x73,0x27,0x03,0x04,0xDB,0x81,0xD8,0xF6,0x02,0x85,0x79,0xC0,0xDB,0xDA,0xAF,0x42,0x24,0xC0,0xDB,0x0D,0x00,0x4C,0xA5,0xCA,0xC0,0x76,0x20,0x2B,0x34,0x18,0x4B,
+ 0xE5,0xB3,0xDB,0x56,0x59,0xCB,0xFD,0x66,0x86,0xDF,0xCB,0x38,0xE1,0x1D,0x42,0x8B,0x75,0xB1,0xE8,0x0E,0x68,0x5A,0x00,0x99,0x65,0xBF,0x53,0xAF,0x58,0xEC,0x73,0x35,
+ 0xE7,0x66,0xA9,0x3A,0x87,0x62,0x0B,0xD0,0xEC,0x9E,0x28,0xA6,0x15,0x61,0xBE,0x34,0x94,0x98,0xDC,0x51,0x90,0x57,0xEE,0x59,0xB1,0x52,0x98,0x69,0xB5,0x20,0xC4,0x79,
+ 0x0E,0x9F,0x32,0x2C,0xA3,0xEB,0x28,0x22,0x0F,0x8A,0xDB,0x0E,0xEA,0xC0,0x73,0xEE,0xEE,0xC8,0x57,0x38,0xEC,0x5F,0xDA,0x3C,0x74,0xDA,0x3B,0x7E,0x00,0xE6,0x06,0xDB,
+ 0x0D,0x90,0x06,0x5C,0x4B,0x3A,0xD8,0x16,0xB5,0x52,0xAC,0xEE,0xC1,0xDB,0x69,0x93,0x61,0xDB,0xD0,0x02,0xDB,0x3E,0xE4,0xBD,0x85,0x40,0xDB,0x4F,0x07,0xD7,0xEE,0x81,
+ 0xB0,0x99,0x75,0x6D,0x8E,0x07,0x1F,0x3A,0xDE,0xDE,0x2A,0x56,0xAB,0x63,0x09,0x65,0x01,0xED,0x02,0xDC,0xA9,0xD2,0xFF,0x78,0xCF,0x72,0xB7,0xA2,0xAE,0xD1,0x95,0x80,
+ 0x41,0xDE,0x85,0xDD,0x67,0x8D,0x0E,0xA5,0xA4,0x3D,0xDE,0x5B,0x0A,0x81,0x5F,0x00,0x05,0xBD,0xE1,0x85,0xD8,0x59,0x0A,0xEB,0x95,0x83,0x3C,0x05,0x53,0x86,0xAE,0xEF,
+ 0xCA,0x54,0x9F,0x5F,0x0D,0x3E,0xAC,0x14,0x66,0xE2,0x95,0x71,0x24,0x54,0x04,0xD5,0x45,0x87,0x7F,0x25,0xF8,0x56,0xF2,0xE3,0xBE,0xCF,0xF8,0x0A,0xD1,0xD4,0x9E,0xB9,
+ 0x03,0x7F,0x27,0xA3,0xDB,0x0B,0xEC,0x5A,0xE9,0x5F,0x00,0x04,0x5C,0x45,0x00,0xAA,0xEF,0x27,0x30,0x2F,0x5D,0xDB,0xF0,0x01,0xD9,0x57,0x28,0xBB,0x5E,0x00,0xB7,0x42,
+ 0xB5,0xA0,0xA3,0xA6,0xA8,0x16,0xDB,0x01,0x22,0xB0,0xD7,0x40,0xDB,0x17,0x64,0x0C,0xFD,0x8E,0x7A,0x8E,0xA8,0x04,0xB0,0xD8,0xB0,0xD9,0xF0,0x00,0xD7,0xB9,0x03,0x80,
+ 0xDB,0x23,0x3C,0xA0,0xAD,0xC1,0xCA,0x68,0xBA,0x08,0x42,0x05,0x04,0xE8,0x03,0xC1,0xBD,0x09,0x06,0x42,0x5E,0x00,0x19,0x1A,0x60,0xB9,0xBD,0xE6,0xA1,0xC3,0xE6,0x0D,
+ 0xB0,0xEB,0xCB,0xBE,0x02,0xB0,0xDB,0xCA,0xC7,0xF3,0xC0,0x2B,0xB2,0xB9,0xB7,0xDD,0xB2,0xB2,0xE4,0x05,0xDB,0x07,0x48,0x3A,0x69,0x8C,0xED,0xC9,0x1E,0xA2,0xA7,0x74,
+ 0xD7,0x0B,0x04,0xB8,0x2C,0xB2,0xAA,0x80,0xEE,0xA4,0x6C,0xDB,0x1C,0x36,0x01,0x50,0xDB,0x2B,0x5D,0xBA,0x8A,0x28,0x18,0x92,0x4E,0x01,0x4B,0x84,0xCD,0x00,0xB5,0xD4,
+ 0x93,0x04,0xE6,0xB7,0x4C,0x28,0xDB,0x0A,0x07,0xB9,0xEB,0xDB,0x00,0x19,0x34,0x13,0x33,0x12,0xB3,0x25,0x13,0x85,0xDB,0x0F,0xC1,0x6B,0xF7,0x6C,0x07,0xB5,0x2E,0x38,
+ 0x00,0x95,0xEF,0x23,0x41,0x9A,0x4C,0xF6,0x3B,0xEB,0x09,0x8E,0x29,0xDA,0xEC,0xE3,0x32,0xC9,0xED,0x08,0xEA,0xD5,0x42,0xF0,0x19,0xC0,0x24,0x87,0x91,0x29,0x26,0xCE,
+ 0xDA,0x99,0xC2,0xDB,0x8B,0xBA,0x13,0xD6,0xD0,0xAA,0x2F,0x00,0xE4,0x41,0x82,0x6C,0xDA,0x2D,0xE6,0x7C,0x00,0xF3,0x3A,0x57,0xBA,0x2B,0xED,0xBE,0x8F,0xA9,0xE2,0xAA,
+ 0xC8,0x3A,0x02,0x00,0x90,0xDB,0x2F,0xB9,0xAC,0xDB,0x12,0x45,0x87,0xDA,0x00,0xAC,0xEF,0x84,0xB7,0x65,0xC3,0xDB,0x00,0x94,0xDC,0x26,0xDB,0x00,0xB8,0xA3,0xDF,0xE2,
+ 0x21,0x5B,0x08,0x40,0xDB,0x52,0x02,0xEE,0x83,0xC5,0x76,0xEB,0x10,0x3A,0xDD,0x46,0x3A,0xB7,0xDB,0xC6,0x2D,0x06,0x00,0x09,0x24,0xB2,0x76,0x00,0xB7,0x49,0x14,0x43,
+ 0xDB,0xC0,0x01,0x73,0x70,0x83,0xC6,0xD2,0xC8,0x0E,0x2C,0x0B,0xC3,0xDB,0x09,0xB0,0xD8,0xF4,0x00,0xA6,0xF5,0x12,0xED,0xB0,0xDB,0xB5,0xF8,0xC2,0xC8,0xE6,0xCD,0xBA,
+ 0x16,0x2E,0xDB,0x06,0x3C,0xC6,0x94,0xD6,0xBD,0x34,0x55,0x30,0x34,0xD0,0x12,0xD6,0x6A,0x02,0x60,0x4A,0xAC,0x08,0xB7,0xAA,0xF7,0xBA,0x60,0x02,0xFD,0x03,0x6A,0x99,
+ 0x2A,0x75,0xDA,0xEE,0x97,0xEB,0x93,0x45,0x2A,0x05,0xDC,0xF2,0xB5,0x30,0x60,0xD8,0x34,0x50,0x2F,0x8D,0xC8,0xB2,0x29,0x65,0xEC,0x03,0xDB,0x2B,0xE0,0x26,0xCD,0x79,
+ 0x00,0xDB,0xD0,0xE2,0x42,0x97,0xA0,0xDB,0x1B,0x09,0xC1,0xD8,0xCA,0x99,0x03,0xDB,0x93,0x8C,0xBA,0xA5,0xA9,0x9F,0x02,0x65,0x92,0x00,0xEA,0x77,0x88,0xE4,0xDB,0x06,
+ 0xC8,0x90,0x18,0xA6,0x76,0x07,0xAD,0x5B,0x00,0x7F,0xBB,0x95,0x48,0x83,0xE3,0x2C,0xFA,0xC6,0x23,0xB1,0x99,0xAC,0x14,0x60,0x68,0x94,0x97,0x00,0x69,0xA8,0x7D,0x00,
+ 0x0E,0x25,0x99,0x22,0xC1,0xC8,0xFF,0xF6,0x3E,0xBB,0x07,0xDB,0x0B,0x00,0xE7,0x98,0xDF,0x55,0xDC,0x37,0x00,0x60,0xC4,0x77,0x38,0x5E,0xD4,0x8A,0x05,0x8A,0x42,0x8B,
+ 0x8B,0xD6,0x8C,0x92,0x94,0xD1,0x8E,0x0A,0x6F,0xCB,0x60,0xDB,0x5C,0xB0,0xD7,0xA5,0x00,0x27,0x85,0xDB,0x12,0xB8,0x65,0x70,0xDB,0xB7,0xCC,0xB0,0xDD,0xC0,0x01,0xD9,
+ 0xA3,0xBD,0xC4,0xAF,0x7A,0x85,0xC3,0xDB,0x92,0x40,0xEB,0x6B,0x19,0x1F,0xEA,0x48,0xD0,0xFE,0xBD,0x76,0x09,0x57,0xDB,0x14,0xD3,0xD7,0xB1,0x3D,0x7B,0x84,0xDD,0xA9,
+ 0x93,0xCB,0x99,0xDC,0x87,0x29,0x41,0xDB,0x0E,0x30,0xDB,0x65,0xC4,0x5D,0x05,0x1D,0x06,0xB7,0xCD,0x16,0xF1,0x7D,0xE9,0x4C,0xDA,0x0E,0x3B,0xC3,0x70,0xCD,0xF5,0x0A,
+ 0x24,0x48,0xE1,0x1D,0xCC,0x6D,0x92,0x7B,0x00,0xB4,0xBE,0xC8,0x02,0x4D,0xC4,0x88,0xDC,0xC8,0xD1,0x8E,0x38,0xCA,0x02,0xDA,0x1E,0x00,0xD2,0xF6,0xE5,0xDD,0x7D,0xF4,
+ 0xB4,0xD3,0xA3,0x40,0xDA,0x30,0xBE,0xB5,0xA0,0xDA,0xB9,0x00,0xB9,0xBC,0x18,0x28,0xDB,0x58,0xD9,0x26,0x5A,0xDB,0x0A,0xA8,0x98,0x50,0xDB,0x0A,0x9F,0xC1,0xEE,0x50,
+ 0x6B,0x52,0x5F,0x1C,0xE9,0x47,0x54,0x33,0x5B,0xB8,0x41,0xDB,0xA7,0xF9,0x01,0x61,0xDB,0x6E,0xCC,0x11,0x90,0xDB,0x32,0x9F,0xCB,0xB8,0xC8,0xFC,0xAE,0x29,0x94,0x30,
+ 0xDB,0xC3,0xB0,0xAC,0x0E,0x12,0xEF,0x00,0xD3,0xF9,0x03,0x79,0x0A,0x9C,0xA0,0xDC,0xB7,0xE8,0xB9,0xCB,0xC9,0xC7,0x7F,0xF8,0x07,0x28,0x82,0xE9,0xD0,0x45,0xE4,0xD3,
+ 0x34,0xED,0xDB,0xF5,0xBA,0x7F,0x39,0x0D,0xAB,0x0F,0xDB,0x0A,0x59,0xE5,0x02,0xD5,0xCE,0x6F,0xEC,0x81,0x0A,0x39,0xFA,0xBA,0x40,0xDA,0xC3,0xD5,0x02,0xB4,0x00,0x26,
+ 0x81,0xDA,0x3D,0x81,0xCE,0xDA,0x12,0xF5,0xBB,0x4A,0xA4,0x6A,0xF3,0xE0,0x93,0x46,0xB4,0xCC,0xE8,0x53,0x60,0xDB,0x00,0x76,0x5E,0x81,0x35,0x19,0x1A,0xCB,0xB5,0x8C,
+ 0x3D,0xF0,0x58,0x2A,0xDB,0x5A,0xF6,0x4C,0xDB,0x0B,0x06,0x87,0xB5,0x14,0x4F,0xA7,0x02,0x96,0xAB,0xED,0x3C,0xD6,0x61,0xAB,0x40,0x9C,0x38,0xE4,0x04,0xAA,0x2D,0x12,
+ 0x7F,0x6F,0xD2,0xF6,0x07,0x00,0xD1,0xF9,0xD7,0x69,0x00,0x23,0x13,0xA9,0x00,0xAA,0x32,0xD4,0x9C,0xC9,0x28,0xDB,0x2C,0xE3,0xAE,0x26,0xAE,0x11,0x29,0xB5,0x00,0x14,
+ 0x57,0x22,0x95,0xC8,0x8D,0x91,0x05,0x75,0xF9,0x67,0xA7,0xF8,0x6F,0x73,0xD7,0x14,0x06,0x39,0xC9,0xF9,0xB8,0xCA,0xD8,0x16,0xDA,0x14,0xDB,0x09,0x27,0xC3,0xDB,0xD6,
+ 0x0B,0x00,0x9B,0xDE,0x22,0x00,0xDB,0xB5,0xB6,0x60,0xB4,0xDB,0xA8,0x42,0x4C,0x97,0x83,0xE5,0xDE,0x38,0xCA,0x6B,0x81,0xCD,0x29,0x0B,0x1F,0xEE,0x5B,0x4B,0x5F,0x33,
+ 0xDB,0x0F,0x6A,0x61,0xAB,0x6F,0xCB,0x71,0x8B,0xE5,0x57,0x28,0xDD,0x28,0x0F,0xFC,0xE8,0xD0,0x3C,0x02,0xB4,0x32,0x80,0xC2,0x9B,0x9F,0xE1,0x07,0x51,0x2C,0xC0,0x50,
+ 0xD5,0x57,0x0E,0x0B,0x87,0xF6,0x00,0xAD,0x0F,0x0E,0xF6,0xE4,0x93,0x4C,0xA7,0xA5,0xD0,0x2C,0x86,0x67,0xB5,0x4A,0x87,0x8A,0x2D,0xFB,0x37,0x33,0x3E,0x5C,0x57,0x9F,
+ 0xD1,0x94,0xD9,0x9B,0xAD,0x09,0xBD,0xFB,0x00,0xDA,0xC2,0x0A,0x2A,0x44,0x94,0xC2,0xD5,0xD0,0x90,0x5C,0x26,0x95,0xEC,0x6E,0xFF,0x9A,0x63,0x88,0x1E,0x27,0x93,0xD8,
+ 0x50,0xD6,0x4C,0xDA,0x16,0xC8,0xF4,0x04,0xD4,0x51,0xD9,0xB7,0x08,0xDA,0xA8,0x5B,0x50,0xB7,0xA5,0xDB,0x01,0x52,0x35,0x01,0x60,0xDB,0x33,0x7D,0x0A,0x52,0x87,0xF6,
+ 0x60,0x68,0x11,0x6B,0x57,0x82,0xC3,0xBC,0xC8,0xE2,0x6D,0x08,0x7F,0x79,0xE3,0x56,0x02,0xA2,0x1E,0x05,0xC1,0x14,0xC0,0x0B,0x48,0x0C,0xBA,0x08,0x91,0x2A,0xAB,0x7E,
+ 0xF2,0xB0,0xCB,0x90,0xEC,0xED,0x85,0xA9,0x0F,0x3B,0x5D,0xC2,0x74,0x1F,0xEE,0x55,0x22,0x54,0x03,0xEB,0x15,0x33,0x61,0xD8,0x74,0x4B,0xC4,0xF5,0xE4,0x76,0x8D,0x95,
+ 0x02,0x5F,0x00,0x6F,0x03,0x35,0x07,0x25,0x94,0xAA,0xEB,0x26,0x48,0x00,0x95,0xED,0xAC,0xD6,0xC1,0xDF,0x18,0x28,0xD7,0x22,0x6A,0x41,0xDB,0x4D,0x30,0xDB,0x21,0x4C,
+ 0x60,0xDB,0x79,0xCF,0xDD,0x81,0xDB,0x20,0x15,0x81,0xDB,0x5C,0x13,0x43,0xB1,0x69,0x99,0xE1,0x00,0xDE,0x63,0xD0,0x40,0xDF,0x87,0x75,0x57,0x04,0xDA,0xB4,0xB8,0x57,
+ 0x8D,0x74,0x94,0xF4,0x9F,0x1A,0x08,0x0E,0x50,0xD6,0xAB,0x04,0xF0,0x5B,0xDF,0x0A,0xCA,0x0A,0xFE,0x3B,0xFD,0xC9,0x42,0xF2,0xD6,0xDD,0x44,0x20,0x0E,0xB2,0x29,0x77,
+ 0x16,0x00,0x0E,0x61,0xDA,0xAD,0xE8,0xED,0xC0,0x75,0x03,0xF9,0x95,0xA8,0xC4,0xB7,0x89,0x99,0x79,0xDD,0x45,0xB7,0x22,0x8E,0x5F,0xB5,0x56,0xDB,0x4E,0xC7,0xF4,0x90,
+ 0x9A,0xEB,0xCC,0xDB,0x12,0x2A,0xEE,0x5A,0x50,0xDC,0x87,0x08,0xB7,0x22,0xB0,0xA0,0xDB,0x60,0x5E,0xDB,0x01,0x79,0x5C,0x50,0xB8,0x50,0xB5,0xD9,0x94,0xDD,0xE1,0xBC,
+ 0x2A,0x6A,0xD5,0x70,0xDB,0xDB,0x7C,0x0F,0xC4,0xD9,0xBD,0xFF,0xBE,0x87,0xD4,0x00,0x5E,0xC8,0x0E,0xA8,0xDF,0xA5,0xC8,0xB9,0xAB,0xA0,0xCD,0xB0,0xAF,0xB7,0x9C,0xC3,
+ 0xFF,0x09,0xBA,0xEB,0xCA,0xA0,0xD2,0xA3,0xD3,0x8B,0x14,0xEC,0x22,0xF1,0xB1,0x94,0xF2,0x07,0xFA,0xA9,0x0A,0x37,0xA8,0x30,0xB0,0xDA,0xB7,0xC2,0x5D,0x11,0x00,0x86,
+ 0xDB,0xEB,0xB2,0xC9,0x00,0xB8,0xDE,0x00,0xB7,0x53,0x05,0xDC,0x86,0xDA,0xD5,0x13,0xBD,0xC7,0x4F,0x9E,0x00,0x28,0xDB,0x5F,0x05,0x03,0x7C,0xBA,0x4D,0x60,0xD9,0xDB,
+ 0x77,0x86,0x01,0xDB,0x53,0x28,0xDB,0x6F,0xCB,0xA4,0xDD,0xA1,0xDB,0x69,0xEF,0xAF,0xF2,0x70,0x32,0xEF,0xE2,0xCE,0x0F,0x0C,0x7F,0xE5,0x8B,0x38,0xE2,0x5B,0x11,0x80,
+ 0xD0,0xED,0xF8,0x03,0xA6,0x61,0x99,0xBC,0x01,0x57,0x00,0xBA,0x30,0xA3,0xB2,0x83,0x9D,0xC1,0x64,0xCE,0x0C,0xDA,0x25,0xC0,0x2B,0xD9,0x0F,0x04,0x24,0xEA,0x14,0x2D,
+ 0x8A,0xF8,0xCA,0xAF,0x4B,0xCE,0xBA,0x30,0xF9,0xAB,0x95,0x39,0x6D,0x00,0x88,0x25,0x08,0xDE,0xC4,0xF2,0xD7,0x5C,0xD8,0xB7,0xC7,0x4C,0x36,0xB5,0x52,0xCD,0xA2,0xE4,
+ 0xD7,0xA5,0xB8,0x27,0x04,0x0A,0x28,0xDB,0x0D,0xB8,0xB6,0xA0,0xCB,0xD0,0xE2,0xB0,0xDB,0x25,0x82,0xDB,0x0C,0xB7,0xB1,0xA9,0xEA,0x55,0x85,0xFA,0x5D,0x06,0xEE,0x63,
+ 0x68,0x91,0x97,0x39,0x9A,0xA9,0x11,0xB6,0xD6,0xCA,0xB7,0x4C,0xEA,0xD4,0x07,0x57,0xA1,0x9D,0x06,0x65,0x03,0xA8,0xD8,0x03,0xD8,0x58,0xC9,0x5A,0x06,0x14,0xF2,0x0E,
+ 0xE3,0x9C,0xA0,0xAD,0x91,0x25,0xDD,0x59,0x4B,0xB4,0x33,0x92,0x40,0xE9,0x00,0xEC,0x7D,0x53,0xCD,0xA4,0x86,0x4B,0xDC,0x0E,0x68,0xD5,0xF5,0x2A,0xD9,0x70,0xB5,0x6E,
+ 0xC3,0x1F,0xD6,0x9E,0x40,0xDA,0x92,0xA5,0x67,0xDA,0x0B,0xB7,0x24,0x29,0x81,0xDC,0x77,0x82,0x30,0xDB,0x14,0xD4,0xB5,0xDB,0x0A,0xE4,0xDB,0x04,0xAC,0x34,0xDB,0x0A,
+ 0x5E,0xDB,0x0E,0x4F,0x95,0xEC,0x33,0x24,0xA9,0x76,0x07,0xC1,0x36,0xAC,0x6E,0x39,0x76,0xF2,0x04,0xBC,0xF2,0x00,0xB9,0xC3,0xCE,0x00,0x2E,0x8B,0x57,0x00,0xA2,0xE7,
+ 0x4C,0x00,0xB1,0x2C,0xBD,0x16,0x48,0xB3,0xF2,0x05,0xBD,0xDB,0x21,0xF5,0xCB,0x8E,0x32,0x27,0xB2,0x00,0xFD,0x12,0xB1,0x7D,0xA4,0x61,0xD8,0x52,0x05,0x3D,0xC6,0xDB,
+ 0x49,0xC7,0xE5,0xB3,0x61,0xDB,0xF1,0x05,0xBE,0xCA,0x00,0xB5,0x58,0xDA,0x09,0x0C,0x25,0x13,0x82,0xDA,0x7A,0xFD,0x93,0xD7,0x2D,0xF0,0x67,0xDD,0xCD,0xCF,0xCA,0x8D,
+ 0x28,0xDB,0xC5,0xD4,0x20,0x92,0xE4,0xE4,0xB9,0x85,0x89,0xB7,0x02,0x41,0xDB,0xCE,0xA6,0xDB,0x04,0xCD,0x19,0xA1,0xDB,0xB0,0x01,0x2A,0xC9,0xBD,0x65,0xF0,0x7C,0x75,
+ 0xD9,0x71,0xD1,0xBA,0x9C,0x72,0x39,0x7F,0x15,0xB9,0x11,0x80,0x60,0x7F,0x61,0xDE,0x5F,0x04,0x0E,0x11,0x77,0x9B,0x41,0xC9,0xD5,0x05,0x02,0xAC,0xC9,0xB5,0xD7,0x72,
+ 0x0E,0xD5,0x04,0x05,0x86,0xE0,0x30,0x8B,0xAD,0x93,0xBF,0x84,0xED,0x03,0xC0,0xED,0xEC,0x3B,0x12,0xDA,0x0B,0x00,0x99,0xC2,0xEB,0x00,0x04,0xA8,0xCB,0xC8,0xB6,0x0C,
+ 0x8E,0x11,0x8E,0x1F,0x45,0x29,0x92,0x20,0xD9,0x28,0x65,0xDB,0x11,0x29,0x60,0xDB,0xB5,0x13,0x8D,0xB5,0x4D,0x00,0xDB,0xA3,0xBD,0xE6,0x85,0x54,0xEF,0x0D,0x4C,0x60,
+ 0x8F,0xDB,0x76,0x64,0xEB,0xB7,0x5C,0xA5,0x4D,0x30,0x26,0x8E,0xF3,0xA3,0x39,0x39,0x2A,0x63,0xAB,0x69,0xCE,0x7D,0xF7,0x6E,0xA5,0xAC,0xB7,0xF0,0x8E,0xE7,0x00,0xD3,
+ 0x3A,0x00,0xB2,0xA1,0x94,0xC7,0x25,0xAF,0x25,0x14,0xDB,0x07,0xF2,0xD1,0xC8,0x54,0x1C,0x96,0x0B,0x8E,0x33,0xA6,0x89,0xA4,0xD6,0xB6,0x5D,0x03,0xFD,0xFE,0x87,0xCD,
+ 0x4E,0x2A,0xE8,0xA5,0x09,0x06,0xA3,0xA1,0x90,0xB6,0xB1,0xDD,0xD5,0x99,0x5C,0x56,0x00,0xB3,0x53,0x4D,0xA4,0xC9,0xA1,0x65,0x65,0x4E,0x04,0x63,0x05,0xD2,0x99,0xE8,
+ 0x00,0xB7,0x98,0xB5,0xDB,0x52,0x91,0x61,0xDA,0x28,0xDB,0x08,0x4C,0x08,0x08,0x44,0xDB,0x05,0x24,0x4C,0xA5,0x80,0xDB,0x6B,0x35,0x1A,0xC5,0xB0,0x26,0x28,0xDB,0x25,
+ 0x4B,0xDB,0x0B,0xCE,0xDA,0xCF,0x16,0x06,0xE0,0x32,0x8F,0xE9,0x04,0xF3,0x03,0x09,0x85,0xDD,0xD5,0xBF,0x24,0xA4,0xAF,0x99,0x7D,0x13,0x07,0xD5,0x16,0xAC,0xCA,0xF8,
+ 0xB5,0x14,0x7F,0x00,0x21,0x02,0x76,0x00,0xB2,0x55,0x1C,0xCB,0x08,0x93,0xF6,0xE6,0xB6,0xE3,0x15,0x04,0xD6,0x01,0x69,0x0F,0x1E,0xC5,0xD1,0x33,0xCC,0x7B,0xE7,0xB6,
+ 0xDB,0x16,0xDC,0x12,0x94,0xB7,0x95,0xFD,0x65,0xBB,0x41,0xDB,0x65,0xB7,0x2B,0xCF,0xBA,0xB5,0x00,0xB5,0x2B,0xB6,0x24,0xB4,0x30,0xDB,0x06,0xC1,0xD8,0xEF,0xB4,0xDB,
+ 0x02,0x20,0x1C,0x30,0xD2,0x93,0xC0,0xDB,0x2A,0x4B,0xBB,0x89,0x9B,0x00,0xB7,0x2A,0xE0,0x5B,0xD6,0x0B,0xC1,0x3A,0xEC,0x19,0x1E,0xD2,0x57,0x8E,0xB5,0xFF,0x49,0x7F,
+ 0xF4,0x12,0x14,0xA7,0xAB,0xED,0x73,0x87,0x33,0xAF,0xDC,0x29,0xCB,0xDD,0xDB,0x00,0xBD,0xFF,0x87,0xCD,0x05,0x94,0x36,0x8A,0x93,0xD6,0x08,0x65,0xA1,0x61,0x34,0xE5,
+ 0xE5,0x25,0x45,0xAF,0x27,0xB0,0x60,0xDB,0x1F,0xE2,0x04,0x92,0x93,0xC2,0xDB,0x70,0xDA,0x4D,0x18,0xAB,0x2B,0xB5,0x00,0xA0,0xDB,0xE4,0xA5,0xA3,0xB9,0x10,0xD0,0xDA,
+ 0xB7,0xA8,0xDB,0x25,0x5B,0xDB,0x02,0x52,0x0B,0xF4,0xAD,0x30,0x33,0xA0,0xDE,0x29,0x33,0x33,0xD1,0xAF,0xBF,0xA4,0xB6,0x86,0x03,0xB8,0x54,0xEC,0x32,0xD5,0xB2,0xFF,
+ 0xC7,0x00,0x28,0xDE,0x4A,0xB7,0xF2,0x25,0x98,0x9C,0xED,0xA1,0xC7,0x84,0xBF,0xD3,0xAE,0x20,0xDB,0x5D,0x00,0x4E,0x06,0xDB,0x18,0xBD,0x52,0xE2,0xDB,0xBE,0x4A,0xD2,
+ 0x12,0x5A,0x07,0x0F,0x2A,0xD9,0x00,0x25,0x1D,0xB3,0x5C,0x6D,0xF2,0x75,0xFD,0x41,0xE3,0x3B,0xCA,0x89,0x5D,0x5D,0x27,0x16,0xEE,0xD6,0xF5,0xD1,0x91,0x29,0x20,0xDC,
+ 0x2C,0x6A,0xDB,0x0A,0xBC,0xBC,0x91,0x45,0xB6,0x16,0xB6,0xDB,0x04,0xA5,0x53,0x32,0xB7,0x4D,0x75,0xCD,0xDB,0x5F,0x50,0x1F,0x57,0x57,0x33,0xC0,0x49,0x00,0x59,0xE7,
+ 0x25,0x00,0x15,0xC1,0x06,0x80,0xAE,0x56,0xBA,0x56,0xD1,0x76,0xC1,0x52,0x95,0x91,0x2D,0xCB,0x3C,0xA4,0xAB,0xD7,0x69,0xA3,0x2D,0x00,0x95,0xC5,0xB2,0x8A,0x14,0x62,
+ 0xAF,0xA9,0x27,0x3A,0x30,0x02,0xDB,0x04,0x39,0x9F,0xFB,0x32,0x8A,0x49,0x06,0x22,0x90,0x32,0x39,0x00,0x4B,0x33,0xA9,0x00,0xEB,0x68,0xD8,0x3C,0x04,0xD4,0x2C,0xD7,
+ 0x24,0xB7,0x20,0x5D,0x2F,0x2F,0x5D,0x59,0x63,0xB3,0x5C,0xA8,0xDE,0xDF,0x55,0x07,0x24,0x00,0xB5,0xDA,0x05,0xB8,0x05,0xDA,0xA3,0x92,0xDF,0xDB,0x08,0x5D,0x93,0x12,
+ 0xCA,0x00,0xDB,0x17,0x0B,0x15,0x30,0x2B,0x34,0xD8,0x4D,0x30,0x00,0x61,0xDD,0x41,0xDE,0x5F,0x02,0x7C,0x7D,0x8D,0xF4,0x0C,0xE2,0xB1,0xE1,0xCA,0x00,0xBA,0x56,0xB2,
+ 0x0F,0x57,0xCD,0x30,0xDE,0x97,0xF8,0x2B,0x1C,0x02,0xAB,0x13,0xF3,0x09,0x53,0x93,0x2C,0xE5,0x0D,0x0F,0x9A,0xF7,0xA8,0xC2,0x12,0x04,0xBD,0xBA,0x84,0xD7,0xD3,0xA2,
+ 0xAC,0x5E,0x2A,0xDA,0x17,0x4B,0xD4,0xAB,0x13,0xB6,0x2C,0xDB,0x32,0xB4,0x4B,0x45,0x00,0x40,0xDA,0x5D,0x30,0x32,0x49,0xDB,0xD2,0x90,0x77,0xC5,0x48,0x18,0x00,0x8D,
+ 0xA6,0x00,0xBC,0x00,0x79,0xA0,0xDB,0x08,0xE4,0x77,0xB9,0xB9,0x78,0xDB,0x28,0xDC,0x01,0x35,0x5F,0x20,0x6D,0x0C,0xBD,0xCF,0x05,0xD4,0xAC,0xF7,0x40,0xDC,0x55,0x8B,
+ 0xC9,0xC3,0xD6,0xDB,0x17,0xB1,0x33,0x06,0xDD,0x85,0x56,0xB4,0x09,0x8B,0x42,0xDB,0x50,0xDC,0xBE,0x14,0x00,0x64,0xB3,0xEE,0x02,0x31,0x5B,0x0A,0x11,0xE6,0x0E,0x80,
+ 0x49,0x4A,0xB7,0x22,0xFA,0xA4,0xEC,0x5C,0xD9,0x0E,0x3A,0x4B,0xBE,0x2F,0x78,0x00,0x90,0xDB,0x22,0x25,0xA5,0x5D,0x44,0xB7,0x27,0x95,0xEC,0x65,0xB7,0x29,0x25,0x00,
+ 0xDA,0x09,0x0B,0xB6,0xED,0x56,0xBD,0x92,0x84,0xDF,0xE6,0x2C,0xDB,0x0C,0xAC,0xDB,0x16,0xC5,0xB8,0x40,0x20,0xCD,0x20,0x5E,0x21,0xE6,0x5A,0xDB,0x09,0x82,0xDC,0x8A,
+ 0xB8,0x96,0x7E,0x03,0x8E,0x16,0xED,0xB7,0xBA,0x53,0x15,0xB9,0xCE,0xB3,0x04,0xB3,0x78,0xB3,0xE9,0x11,0xAA,0x0A,0x95,0x4B,0xC2,0x0B,0xF6,0x7E,0x05,0xE6,0x00,0xFA,
+ 0x79,0x42,0xDA,0xF9,0x30,0x0D,0x7A,0xA4,0xD2,0x83,0xE6,0xA7,0xC2,0xE4,0xAA,0x0B,0xA5,0x7F,0xAE,0xCE,0x00,0x3A,0x3A,0x6D,0x5E,0xAF,0xAB,0x04,0x07,0x58,0x50,0xDB,
+ 0x53,0xC8,0xE5,0xB4,0xE1,0x00,0xD4,0x6F,0xC7,0x69,0x8C,0x1E,0xDB,0x1A,0x91,0x60,0xDB,0xD0,0xA0,0xDB,0x21,0xDA,0xAF,0x62,0xB7,0x32,0xA5,0xD7,0xB8,0x60,0x75,0xDB,
+ 0x52,0x0E,0xCD,0x17,0x17,0x19,0x88,0xC6,0x1A,0x1F,0x1F,0xD7,0x0B,0x13,0xFB,0x4D,0xFB,0x69,0xEB,0x57,0x03,0xC3,0x15,0xFE,0x77,0xFC,0x74,0xBE,0x53,0xBD,0xD4,0x84,
+ 0xDD,0xD7,0x94,0xE9,0x03,0x01,0x57,0x82,0xDA,0x97,0xD2,0xC8,0x29,0x02,0xF6,0x4E,0xF2,0xB0,0xDC,0xA5,0x15,0x11,0x4D,0x27,0xC8,0x73,0x87,0xDC,0x1E,0xD4,0x01,0xA9,
+ 0x56,0x0A,0x95,0x7D,0x65,0xAD,0xEA,0x8D,0xD1,0xCD,0xA2,0xDF,0x00,0x07,0x02,0x69,0x92,0x95,0xB3,0x05,0xDB,0xBA,0xCB,0x27,0x7E,0xB8,0xCA,0xC3,0x50,0xD9,0x52,0xB8,
+ 0x91,0x2D,0xB6,0xED,0x70,0xDB,0xCA,0xB6,0x9E,0xCB,0x13,0xBB,0xE4,0x9F,0xC0,0xDB,0xEB,0x00,0x52,0x81,0x35,0x2B,0x21,0x1F,0x5C,0x01,0x16,0x0C,0x25,0x3A,0xD7,0xD6,
+ 0xE0,0x13,0xBC,0xCF,0xB7,0x8C,0x49,0x9E,0x35,0xB7,0x4C,0xDB,0x17,0x07,0x2A,0xA6,0x67,0xF1,0xCC,0xA1,0x9A,0x09,0xB9,0xF3,0x8B,0x6D,0x98,0xDD,0x0B,0x2A,0x95,0xB7,
+ 0x5C,0x03,0x19,0x85,0xBD,0x69,0x86,0x5C,0x49,0x46,0xF5,0x09,0x0B,0x49,0xF8,0x7C,0x6C,0x00,0xB5,0xFD,0x15,0x00,0x21,0xB9,0x27,0x63,0xDB,0x0E,0x09,0x24,0xDB,0x16,
+ 0x85,0xDB,0x09,0xB6,0x01,0xDB,0xB4,0x28,0xDB,0x21,0xAF,0x60,0xDB,0x50,0xAF,0xDB,0x57,0xBD,0x30,0x5E,0xDB,0x6E,0x35,0xCF,0x1F,0x0B,0x19,0x0C,0x10,0x3A,0x00,0x90,
+ 0xDB,0x17,0x13,0xE7,0x92,0x8F,0xDF,0x05,0x73,0x06,0xBC,0x84,0xA9,0x9A,0x2A,0xA7,0x58,0xB9,0x5A,0xD9,0xDE,0x12,0x86,0x4A,0x39,0x1B,0xE7,0x00,0x87,0x9E,0x16,0xE5,
+ 0x24,0xEE,0xA9,0x56,0xE0,0x64,0x45,0x09,0xE3,0xAF,0xFC,0x62,0x66,0x6B,0xF3,0xA0,0x12,0xD7,0x19,0x03,0x49,0x32,0x4F,0xC7,0x86,0xD2,0x01,0x65,0xFB,0x01,0x00,0xC2,
+ 0xEB,0xC4,0xEB,0xDA,0x05,0x85,0xBD,0xC7,0x86,0xDB,0xC9,0xF4,0xDB,0x14,0xEE,0xA2,0xC4,0xAF,0x22,0x14,0xDB,0x04,0x5B,0xA0,0xDB,0x75,0xC3,0xDB,0xDC,0x0D,0x94,0x06,
+ 0x1F,0x67,0x19,0xDF,0x00,0x1F,0x34,0x25,0x25,0x33,0xB8,0xB7,0xC3,0xDE,0xE3,0x65,0x2A,0x1D,0xBC,0x24,0x97,0xA5,0xC0,0x59,0x8C,0x3E,0xF5,0xCD,0x00,0x5F,0xE1,0xC8,
+ 0x0E,0x98,0x96,0xDE,0x1F,0x0B,0x29,0x65,0xD4,0x73,0x17,0x54,0xEC,0x44,0x99,0xF4,0x00,0xAA,0x57,0x47,0x24,0x0E,0xBB,0xBC,0x65,0xB4,0xE5,0x66,0xB4,0x16,0xB7,0x52,
+ 0xCE,0xA3,0x07,0x32,0x0C,0x1D,0x1D,0x1A,0x2F,0xB9,0xA6,0x00,0xB2,0xB6,0xB2,0xC0,0xB0,0xDA,0x8C,0xDB,0x0B,0xCA,0x71,0xC4,0x97,0x24,0x09,0x81,0xDB,0x0D,0x4C,0x38,
+ 0xDB,0x30,0x20,0x00,0x81,0x5F,0x0B,0x2B,0x24,0x15,0x01,0xDB,0x0B,0xF5,0x5C,0x00,0x3A,0xB3,0xE1,0xC3,0x0A,0x60,0x82,0x13,0x99,0x9B,0x12,0x04,0x9C,0xD1,0xB2,0x03,
+ 0x85,0xDC,0xAF,0xF6,0x01,0x28,0xF1,0x44,0x85,0xF6,0x84,0xC8,0xC1,0xD2,0x11,0xD3,0x96,0x86,0x92,0x50,0x46,0xA1,0xF5,0x04,0x55,0x47,0x96,0x2A,0xEB,0xB6,0x5C,0xDE,
+ 0x9A,0x00,0x40,0xDA,0x90,0xE3,0x18,0x1A,0xDB,0x25,0x2E,0xDB,0x05,0x5D,0x50,0x00,0xDC,0x5A,0xF1,0xAC,0x29,0xDA,0x14,0x79,0x00,0xB8,0x2D,0x6C,0xB6,0xCA,0xCB,0xB4,
+ 0xB9,0xDB,0x01,0xE2,0x97,0x9F,0x0C,0x02,0xDB,0xC5,0xEC,0x84,0x52,0x6D,0x35,0x52,0x20,0xF1,0xCF,0x00,0x0B,0x1A,0xC4,0x8A,0x34,0x34,0xA3,0xFA,0xAE,0x30,0x25,0x8E,
+ 0xB3,0x25,0xAB,0x83,0xB0,0xDD,0x5B,0x03,0x86,0xDB,0xD1,0xC8,0xB9,0x51,0x41,0xC5,0x6F,0xAA,0x5B,0x80,0x6F,0xBE,0x2A,0xAB,0x5D,0x1A,0x75,0xA5,0xD5,0x0E,0x05,0xFC,
+ 0xF4,0xD3,0x9D,0xD8,0x08,0xD1,0x2B,0x33,0x02,0x07,0xE5,0x08,0x00,0x48,0x13,0xDC,0xDC,0x6C,0x81,0xD8,0xC5,0x74,0x00,0xDB,0x32,0x1A,0x1A,0x44,0x32,0x07,0xDB,0x04,
+ 0xA0,0x96,0x93,0x93,0x8D,0xCA,0xB7,0x60,0xDA,0x18,0x79,0xB6,0x6C,0xDC,0x59,0xB7,0x58,0xDB,0x04,0xDA,0xA8,0x9A,0x1B,0x26,0xDB,0x02,0x1B,0x53,0x98,0x60,0xDB,0x00,
+ 0x5E,0x52,0x5E,0x6D,0x35,0x21,0x54,0x0B,0xF0,0x51,0xDB,0xFA,0x00,0x03,0xDA,0x00,0x3A,0x16,0xDE,0xDE,0x16,0x8E,0x4B,0x04,0xCD,0x78,0xE1,0xCA,0xD4,0x6B,0x0A,0xB4,
+ 0x59,0xCA,0xA1,0x45,0xF5,0x59,0x8B,0xB5,0x6A,0x05,0x8B,0x12,0x95,0x8D,0x2E,0x00,0x74,0x89,0x96,0x31,0xC6,0x92,0x92,0x3F,0x39,0x4C,0x94,0xA4,0xAF,0x1E,0x9C,0xDB,
+ 0x2E,0x00,0xC2,0xDA,0x70,0xDB,0xB0,0xDC,0x92,0xAC,0x69,0xEE,0x7C,0xDC,0x4C,0x5D,0x92,0x94,0xF1,0xA3,0x93,0x9E,0x9E,0x90,0x44,0x9E,0xC1,0xDA,0x28,0xDB,0x76,0x81,
+ 0xB4,0xAC,0xDE,0xDC,0xCA,0xB7,0x5B,0x85,0x41,0xDB,0x22,0x61,0xDB,0xA0,0x94,0x6B,0xD6,0x52,0xAF,0x00,0xC0,0x85,0x15,0x15,0x10,0x82,0xD9,0x5C,0xC1,0xDB,0x2A,0x20,
+ 0xDB,0x16,0x3A,0x1E,0x9D,0x1F,0x04,0x83,0x37,0xB7,0x52,0xC4,0xE9,0x89,0x83,0xCE,0x04,0xDB,0x14,0xBA,0xFC,0x1D,0xAD,0x89,0x2A,0xE7,0xEB,0xF6,0xBC,0xE3,0x8D,0x9E,
+ 0x34,0xE5,0xD9,0xF8,0x65,0xF0,0xA5,0x23,0x0A,0xE0,0x5F,0x5A,0xAA,0x29,0xC2,0xD9,0xDE,0xC7,0x28,0xDB,0x24,0xDC,0x09,0xAF,0x87,0xA7,0x9B,0xB1,0x29,0x67,0xAB,0xB4,
+ 0x21,0x9E,0x43,0x58,0x55,0xFE,0x30,0xDA,0x60,0xDB,0x91,0x90,0xDB,0x32,0xB6,0xA9,0xA6,0x08,0xCF,0xA5,0x5B,0x0D,0x4C,0xDB,0x01,0x7A,0x22,0x97,0xD8,0xCF,0x27,0xBC,
+ 0x64,0xB8,0x6D,0xD6,0xF0,0x47,0xD0,0x72,0x01,0xAA,0x1F,0xA7,0xC7,0x92,0xAF,0x42,0x19,0x16,0xB3,0x2A,0xC1,0xD0,0x03,0xA7,0x9F,0xBC,0x9C,0x0A,0x8B,0xC2,0x65,0xB8,
+ 0x7F,0xCF,0x39,0xB9,0x7A,0x00,0xBE,0xCB,0x8A,0x35,0x02,0x28,0xCE,0x4F,0xBB,0x7F,0x0D,0x26,0xDB,0x34,0xB5,0xD5,0x07,0xA4,0x93,0xB7,0xDE,0xDF,0x5C,0x9A,0xD3,0xC1,
+ 0xD8,0xDD,0x48,0xE6,0xB8,0xDE,0x2D,0x5C,0x00,0x32,0x6F,0xCC,0x7D,0xB8,0x65,0xB4,0x64,0xB5,0x5D,0xBA,0x05,0x8E,0x4C,0xDA,0x04,0x41,0x41,0x58,0xA9,0x90,0x4F,0xC9,
+ 0x44,0xB4,0x6C,0x2D,0xA0,0xE4,0x92,0x16,0xB9,0xEE,0xB8,0xDB,0x21,0x7A,0x50,0xDB,0x2C,0x9A,0xD8,0xB7,0xBC,0xE1,0xD3,0x93,0xF1,0x55,0x20,0xDB,0x88,0x5F,0x87,0xBB,
+ 0xBB,0x25,0x3A,0xB8,0xD3,0xB3,0x8E,0x8E,0xE5,0xB2,0x1E,0x77,0x82,0x95,0xB7,0x05,0xDB,0xD4,0xBA,0xAF,0x98,0xAC,0xC7,0xEF,0xBD,0x2F,0xF0,0xD8,0xDA,0x4E,0xB7,0x56,
+ 0x8A,0x35,0x00,0x32,0x8E,0x4B,0x0C,0x61,0xDB,0xD5,0x0B,0x06,0x97,0xB6,0x00,0x65,0xB7,0x94,0xC4,0xA1,0xE3,0x95,0xB4,0x15,0xB7,0xCD,0xA8,0x04,0xDB,0xAF,0xCE,0x64,
+ 0xBA,0x2F,0xBF,0x00,0xBE,0xAC,0xDB,0x28,0xD9,0x27,0xDB,0x01,0x58,0x79,0x4A,0x20,0xDB,0x24,0x91,0xEE,0x55,0xA3,0xAE,0xEE,0x92,0x82,0xA8,0xAF,0x4C,0x15,0xDB,0x01,
+ 0x24,0xAC,0xA5,0x41,0xDB,0x65,0xB8,0x60,0xDB,0x20,0xB0,0xDB,0x53,0x5F,0xD1,0x8D,0x1F,0x10,0x10,0xD0,0xC6,0x25,0x16,0x16,0xDB,0x0C,0xB3,0x8D,0x16,0x0A,0x8D,0xE2,
+ 0x39,0xB3,0xE5,0x93,0x95,0xED,0x39,0x8D,0xF4,0x09,0x2B,0xAE,0xDD,0x0D,0xA7,0xAB,0x0D,0x2D,0xF7,0x76,0x00,0xF5,0x17,0x93,0xB2,0xB4,0x9B,0xA9,0x90,0xA6,0x0D,0x1E,
+ 0xBE,0x79,0x82,0xDB,0x82,0xD1,0xFB,0x03,0x04,0xDB,0x0A,0xB2,0x29,0x6D,0x84,0x5C,0x77,0x03,0x89,0x6A,0x49,0xDE,0x0B,0xDB,0x0C,0xC2,0xB2,0x03,0x46,0x6E,0xF5,0x00,
+ 0xEC,0x59,0x58,0x00,0x41,0x4A,0x40,0xDB,0x79,0x18,0x3D,0x91,0x91,0xD9,0x49,0xA5,0x32,0x00,0xDB,0xD8,0x98,0x53,0x85,0x14,0xEF,0x08,0x24,0x0B,0xC1,0x82,0xE2,0xC5,
+ 0xB8,0x2B,0xF0,0x55,0x20,0x05,0x00,0x35,0xCD,0xCD,0x17,0x70,0xC5,0x01,0x0C,0x16,0x30,0x0C,0x25,0xDE,0x32,0x0C,0x8E,0xAD,0x5C,0x33,0x9C,0xA8,0x04,0xF8,0x70,0xC0,
+ 0xB5,0xD7,0xA0,0xBC,0xAA,0x03,0x09,0xB0,0xDB,0x9D,0xB1,0xFE,0x0D,0x0E,0xC2,0xF6,0xEA,0xE0,0xE6,0x10,0xE8,0x59,0x79,0xA1,0x1E,0x22,0x94,0x76,0x02,0xAC,0x55,0xF2,
+ 0x5C,0x06,0xBB,0xBC,0x75,0x0A,0x00,0x26,0xDD,0x72,0x01,0xD3,0x00,0xC3,0xF4,0x01,0xC6,0xF3,0x95,0xB7,0x84,0xD9,0xE0,0xDB,0x4A,0xD4,0x00,0x41,0xB7,0x4B,0x79,0xDB,
+ 0x0E,0x80,0xCB,0xA0,0xA0,0xA5,0x9D,0xEE,0x5A,0xDA,0xEE,0x88,0x97,0x22,0x07,0x4C,0xDB,0x1D,0x07,0x84,0x96,0x97,0xD7,0xDB,0x16,0xB7,0x56,0xEF,0xAA,0x20,0x04,0x63,
+ 0x35,0x00,0x19,0x21,0x0C,0x00,0x68,0x34,0x97,0x34,0x60,0x16,0xDB,0x4B,0x58,0x33,0xAE,0x50,0xA1,0x55,0x06,0xAA,0xB5,0x39,0xA5,0x00,0xCC,0x08,0x97,0xBF,0xB4,0x13,
+ 0x2A,0xAB,0xD2,0xDC,0x00,0x98,0xCF,0x00,0x69,0x8B,0x54,0x06,0xCD,0x13,0x65,0xD0,0xCD,0xAA,0x83,0xDB,0x5C,0xD0,0x69,0x02,0xDC,0x5E,0xB6,0x8A,0xDB,0x0C,0xD8,0x24,
+ 0xA2,0x97,0x49,0x03,0x38,0xDB,0x54,0x04,0xA0,0xDA,0x79,0x95,0xCA,0xD4,0x3D,0x90,0x94,0xDB,0x17,0xA5,0x38,0xDB,0x35,0xCF,0xEE,0xFA,0xBA,0x15,0xDB,0x0E,0x84,0xD6,
+ 0xAC,0xDB,0x15,0xA9,0x34,0xF0,0xB2,0x02,0xDB,0x35,0x82,0xDB,0xB0,0xE8,0x19,0x0B,0xD2,0x95,0x9D,0xCC,0x25,0x4C,0x00,0x4B,0xC3,0x2D,0x9F,0xEC,0xA6,0x13,0x39,0x58,
+ 0x00,0xE0,0x4B,0xEC,0x5D,0x00,0x94,0xBC,0xC1,0xDB,0x56,0x04,0x8F,0x91,0xA0,0xDB,0x2A,0xF0,0x05,0xCA,0x98,0xDC,0x17,0x33,0x00,0x7A,0x0D,0x88,0x6D,0xD1,0x69,0x94,
+ 0x65,0xB6,0x38,0xDB,0x52,0x93,0x59,0xB3,0x58,0xD5,0x50,0xDB,0x14,0x2D,0x46,0x05,0x46,0x4D,0x9E,0x00,0x61,0xDB,0x4F,0xC7,0x2C,0xA4,0xFA,0x00,0xEF,0xC9,0xB8,0xDB,
+ 0xCA,0xA8,0xE6,0xDB,0x3C,0xDE,0x85,0x40,0xDB,0x4F,0x22,0x5C,0xAC,0xA8,0xCF,0x85,0x76,0xBC,0x47,0x17,0x17,0x89,0x6A,0x2B,0xDB,0x0B,0xDA,0x0D,0x00,0x34,0x60,0xDB,
+ 0x2A,0xBE,0xBA,0xC0,0xB9,0x4B,0x4B,0x88,0xD8,0x09,0x82,0xDB,0x42,0xCA,0xEE,0x19,0x11,0x6E,0x1D,0x0D,0x2E,0x00,0xEB,0xFA,0x11,0x92,0xED,0xA4,0xFE,0xA9,0xC1,0xDB,
+ 0x0A,0x5A,0xBC,0x16,0x4A,0x3A,0xFC,0xAB,0x5C,0x86,0xBA,0x04,0xA9,0xA6,0xBE,0xB0,0xC3,0xD9,0x01,0xC0,0xD3,0x46,0x2D,0xF0,0x00,0x04,0x46,0x8C,0x8C,0x9E,0xAA,0x02,
+ 0x00,0x91,0xEA,0x6D,0xEB,0x52,0x3D,0x02,0xDC,0xA0,0xD3,0x92,0xB5,0x25,0xB9,0x58,0x81,0xE2,0xAF,0x5B,0x42,0x07,0xE0,0xDB,0xC1,0xB0,0xDB,0x99,0xF0,0x7E,0xBF,0xED,
+ 0x89,0x81,0x4E,0xCC,0x0C,0x61,0x2B,0xDC,0x49,0x92,0xE3,0x7B,0xDC,0xB9,0xD0,0x25,0x3A,0x41,0xBC,0x49,0x94,0x4F,0xCE,0x85,0xE6,0x05,0xC0,0x84,0xC2,0xE1,0xDC,0xF7,
+ 0x18,0x02,0x8F,0x64,0xB3,0xB3,0xA1,0xDB,0xF6,0x06,0x11,0x94,0x92,0x4D,0xAD,0x3E,0x00,0x33,0x0E,0x11,0x57,0xC0,0x90,0xD4,0x30,0xE0,0x4A,0x0A,0xF2,0xB1,0x41,0xDB,
+ 0x84,0xDC,0xCA,0x00,0x1A,0xD9,0x0A,0xDB,0x0B,0xB8,0x20,0x2D,0x2E,0x1D,0xAB,0x50,0x64,0xDC,0x30,0x43,0xD9,0x90,0xDB,0x25,0xC6,0x7A,0x8E,0x49,0x81,0xDB,0x6C,0x69,
+ 0x92,0x45,0xB7,0xBD,0xC9,0x03,0xDB,0x4C,0xC5,0x04,0x00,0x29,0x00,0xAB,0xF0,0x98,0xCC,0x77,0x99,0x00,0x85,0xDB,0x26,0x95,0x91,0x8A,0x6D,0x88,0xB0,0xCD,0x35,0x6D,
+ 0x5F,0x1B,0x2B,0x15,0x0B,0xCB,0x8B,0x3A,0x5C,0x0A,0xDB,0x0D,0x02,0x8E,0xE3,0xE6,0x4B,0xD9,0x3A,0xC1,0x0D,0x02,0x8E,0x41,0xC5,0xD0,0x04,0xC2,0x30,0x06,0xB5,0xB0,
+ 0xD1,0xB0,0xCB,0xA9,0xB5,0xAF,0x0B,0x27,0x0E,0xC2,0xDF,0xDF,0xD1,0xC5,0x05,0x03,0x3D,0xE3,0x55,0x17,0x1D,0x05,0xD9,0xA6,0xA6,0x12,0x3A,0xDA,0xB7,0xE6,0xAA,0xDA,
+ 0x8D,0xB3,0x05,0x0E,0x10,0x15,0xBD,0x1B,0xA5,0xF9,0x83,0xD7,0xCC,0x00,0x67,0x67,0x1C,0x32,0x30,0x1C,0x1A,0xD8,0x18,0x32,0x2E,0xAB,0xD7,0x28,0x64,0x03,0x2D,0x6E,
+ 0x12,0x5D,0x8C,0x43,0x12,0xB5,0x41,0x83,0xDB,0x03,0x9C,0xDB,0x29,0x91,0x32,0xB5,0x94,0xDC,0x28,0xDA,0x1A,0xA8,0xEE,0x90,0x08,0x08,0xA4,0xA7,0x96,0x00,0x1B,0xCC,
+ 0xF2,0x5C,0x84,0x81,0xDB,0x79,0xE4,0xA9,0xF0,0x20,0x17,0x40,0xDB,0x10,0xC1,0xDB,0x1F,0x82,0x82,0x0C,0x80,0xDB,0x8E,0xDE,0xAB,0x8B,0xC1,0xB5,0x4B,0x49,0x9E,0x57,
+ 0x97,0x82,0xC1,0xB3,0xB2,0x03,0xB5,0xA0,0xBA,0x48,0x25,0xBC,0xFF,0x04,0x1A,0xF9,0x18,0x20,0xB7,0x30,0x2A,0xC0,0xEE,0x0B,0xD2,0x68,0xDB,0x28,0xD4,0x2A,0x10,0x74,
+ 0xA2,0x91,0x8C,0x2A,0xAE,0x6A,0x8C,0xEC,0xC7,0x94,0x03,0xDB,0x15,0xAC,0x15,0xC7,0xB3,0x80,0xDB,0x1C,0x67,0x1D,0x61,0x1D,0xD9,0xE8,0x01,0x97,0x2E,0x0B,0x2E,0x64,
+ 0x43,0x64,0x00,0xDD,0xC3,0x5D,0xA4,0x91,0x8A,0xED,0x41,0xF2,0xD9,0xD6,0xF0,0x70,0xDB,0xB2,0xB6,0x88,0xDB,0x00,0xB7,0x9A,0x24,0x02,0x42,0x02,0x61,0xDB,0xDD,0x98,
+ 0x3E,0xCC,0x94,0x96,0xDB,0x02,0x75,0xEB,0x6B,0x97,0xEC,0xB8,0x2B,0xAD,0x9D,0xCC,0xE8,0xDB,0x29,0xF0,0x70,0xDB,0xEF,0x85,0xCC,0x0A,0xDB,0x02,0xEA,0xDE,0x83,0xDC,
+ 0xCA,0x06,0x0C,0x9C,0x58,0xF1,0x5A,0xDA,0xAD,0xB3,0xD9,0x69,0x9E,0x2E,0xF7,0x24,0xDB,0x0C,0xC7,0x12,0x25,0x85,0xDB,0xAA,0xF0,0x04,0xC3,0xF7,0x12,0xA8,0x89,0xC2,
+ 0xCF,0x50,0xFB,0xE4,0x00,0xDB,0x07,0x03,0x03,0x7F,0x2B,0x00,0x35,0xB7,0xC8,0xAB,0x07,0x1F,0x13,0x22,0x20,0xDD,0x6A,0xEC,0x1A,0x0A,0x0B,0x19,0x1D,0x2E,0xDA,0x0C,
+ 0xBF,0xB2,0xC0,0xA4,0x8C,0xD5,0xEC,0x64,0x45,0x05,0x6E,0x2F,0xAA,0xED,0x8C,0xC3,0xDB,0x00,0xB9,0xA8,0x48,0x4A,0x91,0x8A,0x6C,0x00,0xB5,0xF0,0x94,0xDB,0x04,0xA5,
+ 0x5B,0x0D,0x2A,0xDB,0x19,0xB7,0x53,0xCC,0x85,0x8F,0xCA,0xE6,0x76,0x80,0xDB,0xEB,0x5E,0x81,0xBC,0xE1,0xD2,0x93,0xE5,0xA9,0x15,0xBB,0xCC,0x0C,0x7D,0xC8,0xB6,0x15,
+ 0x8E,0xB0,0xDB,0x61,0xEB,0xDC,0xE9,0x06,0x8A,0xBB,0x00,0x16,0x13,0xEF,0x59,0x9E,0xD5,0x47,0xA7,0x55,0x2A,0x0E,0x48,0x10,0xA0,0x9A,0x04,0x4B,0x52,0xAA,0xE8,0x0F,
+ 0xE5,0xB2,0xE4,0xE8,0x05,0xDC,0x28,0xD5,0xAA,0x07,0xAC,0x00,0xBE,0xAE,0x0A,0xA9,0xFD,0x1E,0x51,0xA5,0x84,0xDA,0x50,0xDB,0x0B,0x1C,0x0B,0x1C,0xEF,0x5D,0xE8,0x56,
+ 0x64,0xE8,0xB3,0xE0,0x00,0xD8,0x43,0x69,0x43,0x8C,0x45,0xB5,0x41,0xDC,0x61,0xDB,0x69,0x96,0x30,0xDA,0x58,0xDB,0x30,0xD0,0xDB,0x6B,0xA8,0xEE,0x0A,0x74,0xB9,0x8E,
+ 0xCD,0x24,0x29,0x5B,0x82,0x94,0x1D,0x76,0x00,0x02,0xDB,0x52,0x40,0xDA,0x90,0xDB,0x37,0xCC,0x93,0xBE,0xB7,0xD5,0xA0,0xDB,0x4A,0x16,0xDB,0x18,0xE2,0x52,0x9B,0x69,
+ 0xA8,0xC4,0x00,0xBE,0xCF,0xC7,0x16,0xF9,0x75,0x0E,0x49,0x93,0xF6,0x00,0x0E,0xF1,0xB4,0xF3,0xB6,0xC2,0x14,0xD9,0x1B,0xA7,0x52,0xC5,0x5A,0x21,0x4B,0x70,0xDD,0x92,
+ 0x08,0x92,0x41,0x1F,0x61,0x00,0xDB,0x76,0x05,0xDB,0x17,0xA1,0x2A,0x1C,0x90,0x4A,0xB6,0x2A,0xB0,0x28,0x90,0xDB,0xC8,0xB6,0x51,0xE9,0x60,0x51,0xD8,0x9E,0xB0,0xDC,
+ 0x98,0xB6,0xB0,0xDB,0xFA,0xBA,0x42,0xB6,0xAC,0xDF,0xC3,0xDB,0x92,0x41,0x98,0x53,0x08,0x0A,0xAA,0xEF,0x02,0xDC,0xCC,0x82,0xCC,0x58,0xCA,0xDB,0x2F,0x75,0xE2,0x26,
+ 0xDB,0x05,0x2B,0x1A,0x00,0x21,0x15,0x00,0x34,0x42,0xB7,0xC1,0xA3,0x6D,0x61,0xD6,0x38,0xDB,0x59,0xB9,0x2C,0xB3,0xCA,0x12,0x0A,0x4C,0xA5,0xA1,0xAF,0x85,0xDB,0x01,
+ 0xC7,0x33,0x39,0x5B,0x08,0x8C,0x74,0x23,0xBA,0xF6,0xDA,0x1F,0x3B,0x13,0x4B,0xDE,0x2E,0xA5,0xD8,0xD3,0x77,0x06,0x3F,0xA5,0x00,0x10,0xDC,0x0C,0xD5,0x25,0x05,0xBA,
+ 0xFE,0xC2,0xD7,0x9D,0xC8,0x54,0xA4,0x98,0x81,0xD8,0x82,0xDE,0x49,0x40,0xD9,0xC5,0x02,0x51,0xEC,0x95,0x04,0xDB,0x8F,0xC9,0x85,0xDA,0xE1,0x00,0xDA,0xC8,0x00,0xB6,
+ 0x4C,0xA3,0xB6,0x8A,0xDF,0xDA,0xDD,0xCD,0xCA,0xD0,0x4F,0xA5,0x83,0x87,0x02,0x08,0x12,0x4F,0xA8,0x25,0xD8,0xD7,0x2A,0xF0,0x76,0x57,0xCC,0xB5,0xEE,0xB2,0xB7,0xD4,
+ 0x00,0x5F,0xDC,0x0A,0x25,0xDB,0x0A,0xB4,0x06,0x16,0x05,0x8E,0xED,0x02,0x00,0x25,0x61,0xBC,0x41,0xA7,0x72,0x95,0x4B,0xB5,0xEA,0x90,0x95,0xBA,0x0C,0xB0,0x4E,0x16,
+ 0xAE,0xAD,0x9F,0xEC,0x24,0xD2,0x37,0x33,0x07,0xDC,0x07,0x4B,0x2A,0x0A,0x13,0xA6,0xB4,0xD5,0x09,0x34,0x39,0xAE,0x00,0x34,0x00,0xB5,0xBE,0x1F,0x4C,0xCE,0x5C,0x98,
+ 0xE1,0x17,0x26,0xFD,0x57,0x00,0xBE,0xD0,0xDF,0x17,0xB2,0xD2,0x00,0xE0,0x8C,0x41,0x95,0xD3,0x94,0xB7,0x26,0x95,0x92,0x9C,0x09,0x97,0x82,0x20,0xDA,0x5C,0x00,0xA5,
+ 0xB7,0x79,0xDD,0x6A,0xEE,0x00,0x85,0x80,0xDB,0x1B,0x12,0x09,0x07,0x53,0x97,0xD8,0x13,0x94,0xBD,0xEB,0xDB,0x0E,0x00,0x40,0xDB,0xE5,0xA8,0x17,0xD1,0x93,0x15,0x21,
+ 0xCD,0x91,0x06,0xDB,0x94,0x0A,0x10,0xA8,0x05,0x21,0x05,0xDC,0x06,0xA2,0xCA,0x15,0x91,0x79,0x97,0x78,0x13,0xA9,0x61,0xDB,0x2C,0x81,0xDC,0xA4,0xC8,0x8B,0xD8,0xF0,
+ 0x7B,0x83,0xD9,0x08,0xF3,0x5D,0xF3,0x64,0xF3,0x0C,0x5E,0x01,0x9C,0xD8,0xDB,0x2B,0x15,0x39,0x10,0xAB,0x39,0xDB,0x0C,0x4E,0x10,0x17,0xBF,0x9B,0xB9,0xA6,0x9C,0xDB,
+ 0x2A,0x06,0x89,0xB8,0x0B,0x95,0xB6,0x77,0xBB,0xBC,0xC5,0x49,0x6E,0x80,0xDB,0x43,0xE9,0xE9,0x64,0x6E,0xB1,0xE9,0x60,0x4A,0xDB,0x43,0x98,0xDB,0x12,0x91,0x05,0xDA,
+ 0xDA,0x83,0xE4,0x81,0xDB,0xBD,0x41,0xDB,0xAB,0xEE,0x5B,0xEE,0x58,0x50,0xDA,0x24,0xF1,0x0D,0xCC,0xD2,0xAF,0xCE,0xA9,0xB7,0x5D,0x00,0x75,0xBF,0x83,0xDC,0x52,0xC1,
+ 0xE7,0x19,0xC3,0xCD,0x0C,0xCA,0xF2,0xB7,0xDD,0xD5,0x0C,0x41,0x90,0x63,0xFA,0x44,0x00,0x2B,0x0C,0xA4,0x8E,0x09,0xB3,0xE8,0xBE,0x95,0xD1,0x86,0x1E,0xE5,0xCF,0x54,
+ 0x13,0xCA,0x96,0x6D,0x2B,0xFC,0x16,0x00,0x0C,0xA3,0xF2,0xB3,0xFF,0xF9,0x36,0xE7,0xF0,0x0D,0xFA,0xB2,0xF7,0xEA,0x13,0x17,0xA8,0x20,0xD9,0x29,0x53,0x17,0x60,0xDC,
+ 0x1F,0xB2,0xB7,0xC2,0xCF,0xB5,0x07,0x00,0x1A,0xA9,0xEF,0x1C,0x2E,0x4A,0xF2,0x2D,0xB5,0xEE,0x1B,0x2F,0x6E,0x6E,0xC5,0xE5,0xB2,0xAA,0xEB,0x41,0xF9,0xB8,0x41,0xDA,
+ 0x00,0xEC,0xD2,0x8C,0x51,0xB8,0x5D,0x81,0x94,0x77,0x77,0xC9,0xFA,0xEE,0xAD,0xE6,0xEE,0x42,0x22,0x08,0x31,0x12,0x14,0xDB,0x04,0x08,0xC0,0xDB,0xCA,0x4D,0xC5,0xE1,
+ 0x95,0x00,0x6B,0xF1,0x9F,0x04,0x17,0x5F,0x00,0x75,0x61,0xDB,0x61,0x90,0x84,0x8F,0xA0,0xB4,0x16,0xB3,0xF5,0xF3,0x97,0xD7,0xCA,0xD4,0xEB,0xA7,0x76,0x33,0x08,0x03,
+ 0xA5,0xC7,0xB0,0xDB,0xC9,0x00,0x2B,0x16,0xBC,0x00,0x35,0xDA,0x3B,0x00,0xA2,0x2A,0x2C,0x7A,0x10,0x09,0x1D,0x2B,0x60,0xDB,0x4A,0x16,0xDB,0x07,0x15,0xCD,0x5C,0x20,
+ 0xDB,0x2E,0x0B,0x00,0xE6,0xA0,0x60,0xDB,0xB9,0xA9,0xB9,0x00,0x40,0xDB,0x95,0x95,0xC1,0xDB,0x58,0x41,0xDB,0xD4,0xFE,0x50,0xDB,0x5A,0x91,0x61,0xDB,0x49,0x91,0xAD,
+ 0xEE,0x80,0xDB,0x97,0x22,0x07,0x85,0x82,0xDB,0xC9,0x00,0x24,0xC1,0xC3,0xDB,0x00,0xB0,0xDB,0x50,0x6D,0xDB,0x14,0x5E,0x20,0xDA,0x36,0xDB,0x0B,0x21,0x8A,0x4B,0xDB,
+ 0x0B,0xDC,0x0D,0x04,0x25,0x5E,0xF1,0x4B,0xB7,0xA9,0xC2,0xB9,0xDE,0xB3,0xAB,0xE1,0xB2,0xCB,0xB1,0x7E,0x0E,0xD2,0x93,0x49,0x9A,0xB7,0x26,0x16,0x1F,0x7D,0x21,0x03,
+ 0x05,0xDB,0x0E,0x89,0xF8,0x15,0xED,0x3F,0x14,0x0A,0x68,0x9A,0x34,0xA2,0x06,0x15,0x67,0x50,0xDB,0xFC,0x00,0xD6,0xD8,0x00,0x0B,0xD1,0x4E,0xDD,0x14,0xD2,0xEB,0x2D,
+ 0xBB,0xEB,0xED,0x59,0x41,0xDB,0x41,0xE2,0xDE,0x85,0x20,0xDB,0x12,0x6C,0x3D,0xCA,0x85,0xDA,0xE6,0xDC,0x92,0x92,0x3E,0xCA,0xFC,0x70,0xA8,0xD7,0x5E,0xF4,0x35,0x7A,
+ 0xF0,0x11,0xA5,0xD7,0xCF,0x20,0xDB,0x52,0xB4,0x93,0xC8,0xB7,0x17,0x35,0xA0,0xDC,0x4A,0x21,0xDB,0x09,0x0C,0x75,0x00,0xA7,0xA0,0xDB,0xCB,0xB1,0x00,0x4A,0x33,0xA3,
+ 0x96,0xB9,0x5E,0xA8,0x0B,0xEA,0xEA,0x8E,0xEB,0x05,0x16,0xBF,0xE2,0x04,0x71,0x2C,0x21,0xDB,0xD8,0x18,0xCF,0x13,0x2B,0x6D,0x7C,0x43,0x0B,0x06,0x81,0xDB,0x87,0xDA,
+ 0xE2,0x74,0xDB,0x0C,0x3A,0xCE,0x1E,0x19,0x61,0xDC,0x16,0xD3,0x17,0xA8,0x29,0x54,0x03,0xDB,0x85,0xB5,0x51,0xAA,0xED,0x51,0x82,0xDB,0x91,0x8D,0x58,0x4B,0x00,0x4A,
+ 0xB8,0xE5,0x91,0x86,0xDB,0xB4,0x4B,0x91,0xD9,0x05,0xA0,0xDF,0x80,0xA5,0x2A,0xDA,0xEE,0x54,0x24,0x2C,0xEE,0xAB,0x00,0xD1,0xE0,0x02,0x22,0x9A,0xAF,0x65,0xD7,0xB8,
+ 0x87,0xDB,0x00,0x4F,0xCD,0x60,0xDA,0x20,0x50,0x6D,0xDB,0x1F,0x2B,0x20,0x03,0x78,0x86,0x86,0x90,0xFE,0xE8,0x73,0x04,0x98,0x00,0x3A,0x13,0xD7,0x50,0xE2,0x76,0x08,
+ 0xD9,0x15,0x03,0x90,0xB7,0x16,0xEA,0xEB,0x25,0x8E,0x3A,0xAB,0x99,0x82,0xDB,0x92,0xC0,0x92,0x8E,0xEA,0xF7,0x86,0x84,0x50,0xDB,0x55,0x2B,0x05,0xD4,0x3E,0x48,0x85,
+ 0xB8,0xA5,0x58,0x01,0xE6,0x5C,0xDB,0x28,0xC3,0x70,0xDC,0x4A,0x32,0xDC,0x0C,0x54,0xBB,0x96,0x2E,0xDB,0x0D,0x43,0x95,0x16,0x43,0xDB,0x18,0xD8,0x47,0x06,0xDB,0xDC,
+ 0x12,0x05,0xDA,0xA5,0x92,0x06,0xDB,0xCA,0xFA,0xEE,0xDF,0xB9,0x10,0x08,0x02,0xB8,0xDB,0x68,0x94,0x5B,0x50,0x98,0xDB,0x26,0x99,0xDB,0x05,0x81,0x86,0xDB,0x93,0x9C,
+ 0xAA,0xD8,0xDB,0x65,0xBD,0x86,0x8D,0x90,0xA8,0x01,0x80,0xDB,0x6E,0x21,0xA5,0x3A,0x61,0x10,0xF0,0x25,0xDD,0x59,0xBB,0x50,0xD4,0x28,0x8E,0xB7,0x93,0x25,0xCB,0x00,
+ 0xED,0x55,0x05,0x57,0x2B,0x08,0x69,0x93,0x40,0xCA,0x35,0xB0,0xDB,0xA0,0xF2,0x94,0xDB,0x1D,0x10,0x09,0xAD,0xE6,0x3E,0xBF,0xCB,0xF9,0x99,0xE5,0x6E,0xCD,0x67,0x94,
+ 0xAF,0x9D,0xBE,0xCD,0xA7,0x86,0xDB,0xD7,0x1D,0x02,0x84,0xDB,0xA1,0xD8,0x41,0xDA,0x60,0xDB,0x95,0x50,0x3D,0xDA,0x4A,0xB6,0x57,0xB7,0xD2,0x83,0xDB,0xAF,0xEE,0x52,
+ 0x31,0x07,0x16,0xDB,0x05,0x7A,0x93,0x15,0x1B,0x4C,0x5C,0x85,0x49,0xB7,0x14,0x5E,0x6D,0xDB,0x15,0xAC,0x35,0xCF,0x19,0x86,0x44,0x16,0xB7,0x9F,0x05,0x01,0x1F,0x1F,
+ 0xE5,0x0F,0xF6,0x10,0x11,0x9A,0x52,0x4F,0xB5,0xCE,0x9C,0x17,0x78,0xDC,0x56,0xE2,0x49,0x15,0x2A,0xEF,0xE2,0x92,0x15,0xA9,0x33,0x81,0xDB,0x10,0x87,0xDB,0x00,0x28,
+ 0xDB,0x64,0xB7,0x34,0x28,0x01,0x17,0xCB,0x6B,0xD5,0x24,0xDA,0x0C,0xB4,0x8B,0xAB,0xAB,0xB3,0x2F,0x00,0xBA,0x29,0x41,0xDB,0x41,0x16,0xDB,0x09,0x3D,0x82,0xDB,0xB3,
+ 0xDB,0xDA,0x0C,0xDB,0x2D,0xCA,0xDA,0x98,0xEE,0xB5,0x4F,0xEE,0x43,0x1B,0x40,0xDB,0x53,0x60,0x9A,0xDB,0xCA,0xC3,0xDB,0x00,0x92,0xA8,0x6C,0xB8,0xAC,0xDB,0x34,0x98,
+ 0x50,0x35,0xDB,0x50,0x94,0x60,0xBE,0x2B,0x98,0xDA,0x31,0xFB,0xC3,0xDB,0xAE,0x0C,0x9A,0x14,0x34,0xCE,0x54,0xF1,0x77,0x87,0x25,0x01,0x19,0x15,0xA0,0xBD,0xE5,0x69,
+ 0x00,0x09,0x34,0x13,0xA8,0x17,0xDD,0xBC,0x2B,0x41,0xDC,0x53,0xA3,0x69,0x9F,0xA2,0x0F,0x0B,0x03,0xDB,0x37,0xF2,0x3C,0xAC,0xA0,0xDB,0xFE,0x44,0x4B,0x27,0x50,0xDB,
+ 0x4E,0xCD,0xDB,0x0C,0x2D,0xDA,0x25,0xDB,0x0E,0x07,0xC9,0xB8,0x41,0x53,0x00,0x86,0xDB,0xFB,0xB6,0xC7,0xF3,0x84,0xDB,0x85,0xB7,0x91,0xB6,0xD7,0x97,0xE4,0xDD,0x30,
+ 0xDB,0x09,0x08,0x05,0x02,0x0D,0x4C,0x98,0x12,0xB8,0x76,0xCB,0xB8,0xB9,0x2D,0x00,0x20,0x45,0xB8,0x5D,0xC3,0x5C,0xC0,0x17,0xA6,0x08,0x2B,0xF4,0x2B,0x0C,0x86,0x0B,
+ 0xBB,0xA5,0x17,0x50,0x07,0xEC,0xD0,0xE6,0x5F,0xDC,0xD0,0xC3,0x55,0xDA,0x55,0x06,0xDD,0xA1,0xCB,0x08,0x83,0x36,0xAF,0x5E,0x33,0xDC,0x16,0xFF,0x6F,0x10,0x07,0x45,
+ 0x7F,0x21,0x1A,0x1D,0x00,0x70,0x8C,0x21,0xB6,0xC0,0x98,0xB7,0xAC,0xBA,0xB4,0x84,0x7B,0x54,0xC7,0x92,0xB6,0x64,0xE6,0xA5,0x49,0xA1,0x9A,0x00,0x8A,0xB4,0xCA,0xB7,
+ 0x54,0x95,0xB9,0xA3,0xEE,0x00,0xFF,0xAD,0xCA,0xD6,0xA0,0xDA,0x0C,0xB9,0xDB,0x29,0x92,0x39,0xA5,0xD1,0x92,0x08,0xAD,0xEF,0x43,0x02,0x41,0xDB,0xCD,0xA9,0x14,0xB8,
+ 0x40,0xDB,0x6F,0xC8,0x12,0xDB,0x1E,0x00,0xDB,0x0B,0x21,0xF3,0x1A,0x90,0x0C,0x96,0x0B,0x2B,0x10,0x96,0xE4,0x10,0xC1,0xD8,0x59,0x00,0xFB,0xF7,0x0C,0x09,0x33,0xBD,
+ 0xA4,0x34,0xA8,0xBA,0x1F,0xA4,0x92,0xB4,0xC7,0xEF,0x10,0xA7,0x92,0x01,0x04,0xDB,0x92,0xE8,0x19,0xAD,0x4C,0xC5,0xE6,0x00,0xEF,0x49,0x05,0x83,0xBC,0xDB,0x16,0x1D,
+ 0xB4,0x49,0x1A,0x41,0xDB,0x43,0x26,0x00,0xDA,0x14,0xD8,0x17,0xB4,0xD6,0xDA,0x16,0xDB,0x08,0x91,0x80,0xDB,0xB9,0xA4,0xA4,0x93,0xA9,0xA6,0xE7,0xA5,0x92,0x4B,0xD8,
+ 0x08,0x64,0xDB,0x35,0x03,0x1B,0x4A,0xA9,0xD8,0x54,0x94,0x9C,0xDC,0x2C,0xDB,0x15,0x17,0x87,0x75,0x00,0x86,0xDC,0xCB,0xF4,0x84,0x4A,0x0B,0x92,0x2B,0xC4,0x7E,0xD4,
+ 0x1D,0x0B,0xDB,0x65,0xBB,0x5D,0x85,0x55,0x04,0x1B,0xCC,0xB4,0x81,0xEA,0x25,0x05,0x4B,0x15,0x07,0xD8,0x2F,0xDB,0x5A,0xDB,0xB0,0x15,0xCD,0xD2,0x05,0x3A,0xB7,0xAF,
+ 0xF1,0x3C,0x96,0x6A,0x04,0x19,0x00,0xD5,0x08,0x1C,0xB3,0xD5,0x03,0x66,0x04,0x54,0x54,0x93,0x96,0xEC,0xB5,0x00,0x27,0xB8,0x2B,0x8C,0x00,0xDD,0x0B,0xD7,0x0B,0x03,
+ 0xA4,0x8D,0xA0,0xDB,0x2C,0xE9,0xE9,0xDA,0x26,0x82,0xBB,0xDB,0x0D,0x92,0x2C,0xB6,0xAA,0xA5,0x61,0xE0,0xDB,0xC1,0xFB,0xC1,0x32,0x94,0x4C,0xDB,0x1A,0x82,0xCA,0xDB,
+ 0x0B,0x2B,0xDA,0x0A,0xB8,0x23,0x15,0x6D,0x0C,0xC2,0x8F,0xCB,0x8C,0x0D,0xAC,0xF5,0xEA,0xDA,0xC2,0xDB,0xC3,0xD1,0xEF,0x3A,0x94,0x24,0x3A,0xBC,0x00,0xC1,0xF6,0x10,
+ 0xD2,0x56,0xC5,0x58,0xDB,0x5B,0xA7,0x75,0x02,0x0B,0xD4,0x00,0x21,0x89,0x92,0x86,0xDA,0x97,0x39,0x03,0x01,0x5F,0xF4,0x00,0x36,0xDB,0x13,0x04,0xDF,0x94,0x00,0xB2,
+ 0x56,0x00,0x1D,0xA0,0xD9,0xAE,0xB5,0x92,0x00,0xD6,0xEC,0x40,0xDF,0x73,0x95,0x00,0x02,0xDB,0x91,0x82,0xDB,0xFA,0xB8,0x45,0xED,0xA0,0xDB,0xC9,0xB6,0x22,0x61,0xD8,
+ 0x61,0xC2,0x0C,0x07,0xDB,0x03,0x7D,0xBE,0x79,0xE2,0xF4,0xBD,0x70,0xDB,0x26,0x17,0xDB,0x0F,0xA1,0x2C,0xDB,0x38,0xF0,0xF5,0x0F,0x12,0x01,0x84,0xDB,0xA4,0xA8,0x21,
+ 0xB0,0xDB,0xE4,0x00,0xDA,0x0A,0x88,0x6B,0xE6,0x7A,0xE0,0x0E,0xBA,0x4E,0x35,0x15,0x17,0xC2,0xDB,0xAF,0x10,0x12,0x1A,0xD2,0x05,0x01,0x93,0xB0,0x01,0x32,0xA3,0x8E,
+ 0x15,0x21,0x54,0x0B,0x0F,0x61,0xD5,0x95,0xAF,0xD0,0x03,0xD6,0x75,0xFE,0x39,0xB8,0x52,0x92,0x30,0x9E,0xDB,0x9B,0xBB,0xA8,0xB6,0x90,0xE9,0x90,0xDB,0x3D,0xD0,0x00,
+ 0x92,0x1B,0x98,0xC9,0xCE,0xC2,0x10,0xB5,0x00,0x8B,0x18,0x9F,0xAC,0xAF,0xB8,0x24,0x75,0xA1,0xDC,0xCC,0xAB,0xE9,0x93,0x54,0x00,0xDB,0x19,0xAD,0x50,0xDB,0x61,0x8B,
+ 0x62,0xF9,0x21,0xD6,0x0F,0x15,0xCE,0x12,0xB0,0x00,0x1F,0xAB,0xA5,0xFF,0xAA,0xD4,0xB0,0xD9,0xA0,0xC0,0xB5,0xE2,0xED,0x15,0xC0,0xFA,0x2E,0x88,0x69,0x2E,0xBB,0x70,
+ 0xDB,0xA0,0xD8,0x5E,0x21,0x00,0xB3,0x55,0x53,0x28,0xE6,0x2D,0x0B,0x87,0x2C,0xDB,0x0E,0x32,0x64,0xFC,0x92,0x67,0x04,0xDC,0x95,0xFF,0x81,0xD5,0x8C,0x9E,0x61,0xDB,
+ 0x85,0xD0,0x06,0xDB,0xDC,0x1D,0x00,0xAC,0xEE,0x78,0xDB,0x01,0xDF,0xCF,0xA5,0x9A,0x53,0x08,0x0F,0x05,0xDB,0x81,0xDE,0x9F,0x4C,0x64,0xB8,0x99,0xB0,0xDC,0x90,0xB8,
+ 0xA7,0xCB,0x7A,0x00,0xC1,0x8D,0x2B,0x78,0x00,0xD1,0x2C,0x0B,0xAA,0x2F,0xEB,0x28,0xE5,0x25,0xD9,0x0F,0x00,0xCA,0xAB,0xD2,0x0F,0x11,0x0B,0xBE,0x05,0x00,0xBA,0xD6,
+ 0xE7,0x9B,0x3E,0x98,0xDB,0x2E,0x94,0x6E,0x00,0x40,0xDB,0xAB,0x49,0x53,0xE7,0x97,0x94,0x47,0x54,0x0B,0xAE,0xE5,0xA1,0x8B,0x1A,0xAD,0x2B,0xB7,0x24,0xAB,0x48,0xDB,
+ 0x7C,0xB7,0x51,0xCA,0x00,0x46,0x9E,0xF0,0x5A,0xB0,0x2B,0xDB,0x0B,0xA4,0x97,0x79,0x02,0x61,0xDA,0x28,0xDB,0x30,0xA3,0xDB,0x68,0xBD,0x93,0xDA,0x64,0xD7,0xB6,0x0D,
+ 0x70,0x08,0x00,0xF1,0xB5,0x6F,0x1D,0x9F,0xE2,0x12,0xAF,0x84,0xDB,0xB3,0xAA,0x12,0xDB,0x18,0x89,0x58,0xDB,0x48,0xA4,0x12,0x87,0xAA,0x02,0x9A,0xCE,0x15,0x60,0xDA,
+ 0x97,0x00,0xCC,0x0F,0x0F,0x04,0xB7,0xE6,0xC2,0xBE,0xAF,0x81,0x26,0x58,0x6D,0xDB,0x69,0xA8,0x53,0xA4,0x45,0xE3,0x65,0xCC,0xD2,0x0C,0x93,0x78,0x1C,0xDA,0x5D,0x54,
+ 0x4E,0x96,0xBC,0xE6,0x5F,0x21,0xCA,0x18,0xDD,0x2B,0x32,0x0B,0x8D,0x4A,0xDC,0x0C,0xDA,0x1D,0xCD,0x02,0x07,0xD9,0x01,0x44,0xAF,0xE9,0xE6,0x00,0xDB,0x09,0x1E,0xC7,
+ 0xC1,0xDC,0x79,0xD9,0x00,0xBA,0x77,0x03,0x80,0x72,0x2E,0xEE,0xB6,0x4F,0xD8,0xDC,0x1B,0x07,0xA9,0xC3,0x61,0xDB,0x37,0xC3,0x64,0xB8,0x98,0xC9,0xB8,0x99,0x85,0xDC,
+ 0xAE,0xF2,0xB6,0x53,0x26,0x96,0x87,0x0C,0x6D,0xDB,0x30,0x91,0xB9,0xAE,0x92,0xC8,0xB3,0xCD,0xA0,0xA3,0xB3,0xE5,0xB2,0x8D,0xB8,0xF1,0x65,0x1D,0xB8,0x8D,0xFC,0x23,
+ 0x94,0x15,0xEE,0x5F,0xBA,0x2E,0xD4,0x56,0x01,0xCB,0x19,0xB6,0x29,0xEA,0xF1,0xEC,0xF4,0xE6,0x2D,0x2D,0x21,0x5F,0xEB,0x6C,0xD6,0xA9,0x48,0x21,0x54,0xF4,0x67,0x50,
+ 0x54,0xDF,0x28,0x54,0xA6,0xA8,0xAE,0xAC,0xDE,0x30,0xDF,0xBA,0x04,0x8F,0x4B,0xDB,0x0D,0x9F,0x12,0x51,0xDC,0x00,0xA4,0xCA,0xDA,0x16,0xB4,0x5A,0x00,0x6C,0x62,0xB5,
+ 0xA2,0xB6,0xAB,0x80,0xE4,0xA5,0x5B,0x24,0x20,0x7A,0x00,0x88,0x00,0x7A,0x1B,0xB7,0xCD,0x47,0xC5,0x86,0xDB,0x00,0xCD,0xCA,0xB6,0xE6,0xAD,0x50,0xDB,0xCE,0xEC,0xD2,
+ 0x8F,0x4C,0xAB,0xB0,0xDB,0xC1,0xA5,0x54,0x40,0xDB,0x19,0xB2,0xB8,0xCB,0xA3,0x0F,0xB4,0xBF,0x92,0xEA,0xAD,0xEE,0x6D,0xD9,0x6A,0x2C,0xE9,0x2D,0xA3,0xB9,0x3D,0x43,
+ 0xDC,0x09,0xCF,0x86,0x8A,0x44,0x67,0xC1,0xDB,0x45,0xB2,0x49,0x8B,0x61,0xD5,0x16,0xDB,0x16,0xE8,0xB5,0x9F,0x32,0x85,0xDC,0xCA,0xA3,0x4A,0x60,0xDA,0xB0,0xDC,0xB2,
+ 0xB5,0xE4,0x00,0xED,0x50,0xB7,0x98,0x4C,0x9F,0x82,0x40,0xDB,0x09,0x02,0x08,0x24,0x5B,0xB1,0xE2,0x75,0x30,0xDB,0x4A,0xDC,0x14,0xB7,0x54,0x90,0x55,0x82,0x76,0x83,
+ 0x55,0x87,0xD4,0x82,0x56,0x09,0x16,0xA0,0xB2,0xF0,0x0E,0xB0,0x2F,0x1A,0x0B,0xBE,0x3E,0x0B,0x02,0xEB,0xDD,0x92,0x6E,0x19,0xEB,0x00,0xFC,0xFB,0x02,0xE1,0xC4,0x0B,
+ 0xAF,0xFF,0x82,0xEB,0x21,0x60,0xDC,0xCA,0xCD,0x94,0xE6,0x5F,0xCD,0x45,0xCD,0x85,0xDB,0xAC,0xE5,0xE1,0xDB,0xD8,0x00,0xDB,0x5E,0xD8,0x4A,0xB9,0x5A,0x9D,0x5B,0xC9,
+ 0xCC,0xDA,0x14,0xDC,0x16,0xC8,0xF6,0xC9,0xEA,0xDF,0xDC,0xCE,0x80,0xC8,0x7A,0x08,0x24,0xDB,0x0C,0xDC,0x13,0x4C,0x65,0xE2,0x92,0xB8,0x5E,0x79,0xAB,0x52,0x6D,0x97,
+ 0x56,0x8E,0x65,0x87,0x59,0xC8,0x56,0x83,0x2B,0xEE,0x0E,0x08,0x40,0xDB,0xBC,0xB0,0xAF,0xD5,0xF7,0x0F,0xA8,0xFF,0x05,0x0D,0x0A,0x0D,0xB7,0xDB,0xBC,0xC9,0xA0,0xDA,
+ 0xEC,0x00,0xDB,0x29,0xBE,0xFF,0x03,0x22,0xA2,0x1A,0xAB,0xB9,0x3F,0x00,0x06,0x0E,0xAB,0x1B,0xDB,0x09,0x52,0x00,0xAB,0xE8,0x06,0x9B,0x64,0x88,0xB8,0xED,0xE8,0x6C,
+ 0xB6,0xB2,0xB1,0xAB,0x82,0xA9,0x05,0xA6,0xA4,0xE6,0xA1,0xC2,0xDC,0x50,0xDB,0xAE,0xB7,0x3E,0xCF,0xA8,0xB7,0x61,0x9F,0xB5,0x04,0x61,0xDB,0x42,0x80,0x22,0xDC,0xCD,
+ 0xCC,0xCF,0xB4,0x94,0xF0,0x00,0xDC,0xB4,0x98,0x90,0xDB,0x28,0xB1,0xAF,0xEB,0x68,0xDB,0x3A,0x00,0xB8,0xEB,0x0F,0xC3,0x9F,0xD8,0x0A,0x92,0x2B,0xC6,0x0D,0x03,0x01,
+ 0x5D,0x86,0x28,0xDB,0x6B,0xF8,0x61,0xDB,0xD1,0x11,0x9D,0x61,0xFA,0x2A,0x8E,0x73,0x03,0x85,0xDB,0xD8,0x09,0xD7,0x65,0xEA,0xD9,0x04,0xB7,0x22,0x1D,0xA9,0x00,0xA2,
+ 0x32,0xBD,0x69,0x64,0x00,0x2E,0xC2,0xDA,0xF2,0xD8,0xEC,0x00,0xDB,0x2D,0x92,0x2E,0xFB,0xAE,0xA2,0x66,0xDB,0x06,0xB4,0xDB,0x16,0xED,0xB9,0xB6,0x20,0x08,0x9C,0xDB,
+ 0x03,0x07,0x0D,0x4C,0x82,0x94,0x49,0x14,0xF1,0xEB,0xEB,0x72,0x6B,0x00,0x95,0xB8,0x5D,0x8C,0x2C,0xBA,0x99,0xE6,0xC8,0x02,0xDB,0x1D,0x07,0xAD,0xC8,0x92,0xB3,0x10,
+ 0xF2,0xDA,0x94,0xF4,0x1F,0x5C,0xB2,0xAE,0xA3,0xF1,0xA0,0xDC,0x93,0xA1,0xBE,0x1D,0x00,0xCA,0xC7,0x4E,0x0B,0x15,0xD2,0x93,0x50,0xDB,0xBA,0x05,0x82,0x1A,0xCB,0x09,
+ 0x12,0x83,0x60,0xDA,0x76,0xCD,0x00,0xDA,0x14,0x00,0x43,0xB7,0xC9,0x91,0x8C,0x27,0xDB,0x04,0xE9,0xCA,0xEE,0x6C,0xE2,0x01,0x41,0xDB,0xB9,0x65,0xB6,0xAD,0xED,0x5C,
+ 0x80,0x12,0x06,0xDB,0x24,0x4F,0x04,0x4F,0x53,0xB0,0x8F,0xD7,0x48,0xDB,0x4C,0xB8,0x53,0xF2,0xC2,0x2B,0x9E,0x9F,0xC3,0xDC,0x00,0xB3,0xED,0x90,0xBD,0x2F,0xDA,0x28,
+ 0xCC,0x13,0x0B,0x85,0xDB,0x85,0xB7,0xBF,0xB7,0x07,0xA4,0xB4,0xC0,0xDB,0x21,0xB2,0xDC,0xB9,0x13,0x53,0x92,0x39,0xFA,0x08,0x23,0xF2,0x54,0x1D,0x68,0xDB,0x4E,0xDA,
+ 0x1C,0x00,0xA0,0xDB,0x95,0x88,0x00,0x98,0xDB,0x09,0x79,0x6C,0x96,0xF0,0x62,0xB6,0x91,0xED,0x42,0x07,0x00,0x1B,0x00,0x09,0x40,0x00,0x31,0x07,0x24,0xAC,0x8F,0xCC,
+ 0xC2,0xDB,0xF3,0xE3,0xDB,0x05,0xD6,0xAD,0xF4,0x05,0xDC,0x16,0xBC,0xDB,0x15,0xD0,0x57,0xAB,0x36,0xB9,0x54,0xC0,0xF6,0xDB,0x0B,0x21,0xEA,0xCB,0xB6,0x2A,0xD6,0x0C,
+ 0xDB,0x0B,0x13,0x1F,0x92,0x4D,0xF4,0xE8,0xB8,0x2C,0xA3,0xA8,0xC8,0x24,0xAF,0xEC,0xD2,0xB4,0x00,0x1F,0xDD,0x08,0x31,0x97,0xC3,0x34,0x76,0x1C,0xCE,0x49,0x2E,0x81,
+ 0xDB,0x67,0x61,0xDA,0x1E,0xDB,0x16,0x8A,0x93,0xA2,0x00,0x3D,0xA6,0xA6,0x50,0xDB,0xE7,0xA5,0xDB,0x01,0xC5,0xE2,0xAF,0xF4,0xB7,0x13,0x83,0xDB,0x4F,0x02,0x35,0x1B,
+ 0x9F,0xF1,0x27,0xA5,0xCA,0xF1,0x59,0x03,0xDB,0x91,0x49,0x25,0x00,0xC4,0xEA,0xB1,0x2C,0xBE,0x2B,0x9C,0xAF,0xD0,0xED,0xA8,0xFC,0x0B,0xDB,0x3C,0xD5,0x9B,0x00,0xAE,
+ 0x9A,0xAF,0x7A,0xA1,0x2D,0x9A,0xBB,0x28,0x85,0x1A,0xB2,0x47,0x19,0x31,0x57,0x13,0x9D,0x3D,0x01,0xBD,0xDB,0xAE,0x1B,0x2B,0xE8,0x7A,0x00,0xD1,0x09,0xD6,0xEA,0xE9,
+ 0x05,0xE8,0x64,0xE5,0x5E,0x00,0x83,0xDD,0xE2,0x0B,0x05,0x4C,0x41,0xDF,0x12,0x65,0xDD,0xF6,0xB3,0x01,0xE3,0x57,0xE3,0xB7,0x29,0xA0,0xC9,0xE5,0xA4,0x9D,0xC8,0xD8,
+ 0x1B,0xDA,0x41,0x40,0xDB,0x7C,0xBF,0xC1,0x2D,0xAF,0xD7,0xF1,0x65,0xDB,0x04,0x6B,0x50,0xDB,0x50,0x93,0x5B,0xCE,0xDB,0xCD,0xF4,0x06,0xAE,0x12,0x15,0xBB,0xCA,0x97,
+ 0x10,0x54,0x99,0x50,0x1F,0xDB,0x75,0x17,0xB5,0x37,0xFB,0xF7,0xD4,0x3B,0xEA,0xCA,0xDB,0x15,0x2B,0xE1,0x29,0xDC,0x6B,0xED,0x72,0x36,0x50,0x44,0xDB,0x54,0x00,0xCF,
+ 0xC5,0x87,0xD8,0x01,0x94,0xB0,0x50,0xDB,0x27,0x43,0xDB,0x04,0x41,0x58,0xDB,0x2C,0x3D,0xDB,0x30,0xD9,0xA5,0xEE,0xBB,0x80,0x35,0xCF,0xD7,0xED,0x60,0x7A,0xDB,0x08,
+ 0x82,0x50,0xDB,0x5D,0x07,0x86,0x89,0x7A,0x53,0x9A,0x9E,0xCD,0x28,0xDB,0x25,0xC2,0xEA,0xDD,0x09,0x11,0x99,0x6D,0x34,0xA8,0xD9,0xE5,0xCC,0xDB,0x09,0x0B,0x81,0xDB,
+ 0x2B,0x61,0xDB,0x4B,0xD2,0x6D,0x92,0x6F,0xD7,0x87,0xC9,0x08,0x10,0xDB,0x1C,0x00,0xB9,0xE1,0x29,0xBF,0x69,0x85,0x20,0xDE,0x7E,0x00,0x06,0xD9,0x16,0x8B,0x88,0x51,
+ 0xA0,0xDB,0x95,0x0D,0x41,0x73,0x00,0x04,0xDB,0x96,0x00,0xC6,0xF6,0xC9,0xEB,0xB9,0xA4,0x91,0xD8,0x5B,0x22,0x59,0xB5,0x61,0xB6,0x04,0xB9,0x00,0x2C,0x02,0x24,0xC9,
+ 0xAA,0xD7,0xCF,0x6B,0xF1,0x3A,0x94,0x24,0x5E,0xDC,0x09,0xC2,0xDB,0x87,0xF6,0x10,0xB9,0xB8,0xB0,0xAA,0xB0,0xDC,0xCA,0xB3,0xE6,0x90,0xFB,0x00,0x94,0xA0,0xDB,0xC3,
+ 0xE1,0x11,0xA2,0xBA,0xBB,0x00,0xC8,0x0B,0xDE,0x94,0x15,0xA9,0x0D,0x15,0x72,0xDD,0xEC,0x17,0xDB,0x34,0x17,0x67,0xD5,0x00,0xBF,0xC6,0x64,0xAB,0xD3,0x09,0xE9,0xC2,
+ 0xDB,0xD6,0xF3,0x91,0x06,0x41,0x41,0xDB,0x28,0xDC,0x6F,0xCC,0x49,0x91,0x39,0xB6,0x04,0xD8,0x82,0x22,0x0D,0x15,0x87,0xDB,0xD0,0x38,0x2D,0x0D,0x22,0xAC,0x2C,0xA5,
+ 0xE2,0xB8,0xA3,0x41,0xDB,0x20,0x22,0x96,0x5B,0xCB,0xD8,0xDB,0x55,0x07,0x05,0xA3,0x95,0x80,0xF5,0xBF,0xE4,0xC4,0xA0,0xDB,0x17,0x61,0x01,0xDB,0x78,0x0A,0xAE,0x39,
+ 0x54,0x04,0x89,0xA4,0x5F,0x28,0xDB,0x2A,0x19,0x06,0x4A,0xFF,0x92,0x38,0xF6,0xAF,0x7C,0xDB,0x6F,0x54,0xD1,0xE5,0xDB,0x4C,0x98,0xE1,0xDB,0xDC,0x01,0x09,0xC1,0xD9,
+ 0xA7,0x02,0x4A,0xDB,0x0A,0xA7,0x9A,0xDA,0x05,0xA3,0x92,0xB6,0xD0,0xB1,0xDB,0xAC,0xD5,0xFF,0x04,0xB0,0x14,0x15,0xB4,0xBC,0x2A,0x1B,0xE3,0x45,0x97,0x26,0x95,0xDC,
+ 0x16,0xDB,0x16,0xB8,0x4B,0x6D,0xBA,0x2B,0xD1,0x7B,0x0C,0xA7,0xD3,0x26,0x19,0x0C,0xDC,0x0A,0xAE,0x9E,0x0A,0xAB,0x00,0xC3,0x95,0x5F,0xC3,0xD5,0x00,0xCF,0xAF,0x1D,
+ 0x53,0x05,0x48,0x00,0xAA,0x57,0x08,0x32,0x8E,0x5D,0xA8,0xF7,0x83,0xC4,0x02,0x75,0xB8,0x86,0xDB,0xE1,0xB1,0x89,0x93,0x12,0xDB,0x09,0x4A,0xA7,0x00,0xB6,0x2A,0xC8,
+ 0x76,0xBD,0x92,0x95,0xDB,0x8D,0x53,0xEB,0x7C,0x00,0xB4,0x88,0x12,0x12,0x24,0xDB,0x0E,0x2A,0xC9,0xE2,0x4F,0x68,0x95,0xC5,0xB0,0xDC,0x8C,0xDB,0x0B,0x95,0x49,0x23,
+ 0xFE,0x04,0xBA,0x05,0xA3,0x09,0x01,0xDB,0x15,0x7D,0xC3,0xDF,0x03,0x00,0xDE,0x9A,0xBA,0xD2,0xF8,0xD8,0xD4,0x73,0xCC,0x61,0xDD,0x72,0x00,0x87,0xDB,0x00,0x55,0x09,
+ 0x13,0x69,0xA2,0xAF,0xE9,0x26,0xC8,0xE6,0x0B,0x1C,0x1C,0x5D,0x2E,0x81,0xDF,0x04,0xA3,0x28,0x2E,0xD7,0xCB,0x9C,0xD9,0x2D,0x00,0x4A,0x3D,0x00,0x85,0xDB,0x84,0xDA,
+ 0xC4,0xB6,0x5B,0x94,0xB2,0x90,0x12,0x4A,0xDB,0x16,0xDA,0x16,0x2C,0x4F,0xD2,0x95,0xC9,0xB8,0x99,0x39,0xB8,0x4E,0xDB,0x09,0x6D,0x82,0xDB,0xED,0x8A,0x17,0x64,0xB1,
+ 0x01,0xA5,0xCE,0xA2,0xB4,0x94,0x94,0xB5,0x05,0x34,0x85,0xDB,0xE2,0xE5,0x19,0xD7,0xC5,0x1F,0x3A,0x1A,0x1C,0x00,0x99,0x4F,0x86,0x68,0xD8,0x2B,0x09,0xD5,0x2E,0x34,
+ 0xEB,0x3C,0xCB,0x3C,0x1D,0x10,0x1A,0x32,0x88,0xDB,0x05,0x2D,0x11,0x00,0x46,0x46,0x00,0xDB,0x41,0x98,0xDB,0x38,0x04,0xE0,0xDB,0x2C,0x6C,0xA0,0xDA,0x32,0xB6,0x48,
+ 0xB9,0xB6,0x48,0x12,0x2B,0xDB,0x08,0x94,0x9B,0x52,0x53,0x95,0x61,0xDA,0x64,0xB8,0x5E,0x24,0x6B,0xEB,0xE4,0xCB,0xB6,0x2C,0x04,0x81,0x81,0xA7,0xCF,0x2C,0x15,0x5F,
+ 0xA1,0x28,0x83,0xAE,0xF9,0x24,0xAF,0x29,0x5D,0xCC,0x01,0x9D,0xE6,0x9E,0xEB,0x05,0x5F,0xBA,0x04,0x03,0x50,0x1C,0xFA,0x78,0x0B,0xED,0x74,0x15,0xFC,0xAC,0x1A,0xE9,
+ 0x2A,0xB2,0xED,0xC2,0xD6,0xCD,0xF2,0xB7,0xB5,0xDA,0x88,0x5D,0x81,0xF8,0x09,0xD5,0x49,0xB3,0xC4,0x46,0x51,0xDB,0x00,0xBD,0xD9,0xBC,0x09,0x8C,0x8C,0x95,0x41,0xDA,
+ 0x79,0x2D,0x83,0xAC,0x91,0xDA,0x2B,0xDB,0x37,0xC8,0xDE,0xC9,0xB1,0xDB,0x4C,0x82,0xD5,0x00,0x0C,0xAA,0x00,0xAB,0x5F,0x5B,0xC0,0x4E,0x94,0x88,0x6B,0xA0,0xDB,0xEF,
+ 0x04,0xE5,0x2F,0xFF,0x6C,0xDC,0x2C,0xAC,0xA6,0x00,0xB3,0xF2,0xB5,0xC2,0x8A,0x00,0xDF,0xCE,0xCD,0x0A,0xC8,0x2A,0xD6,0x05,0x21,0xE5,0x19,0xB8,0x68,0x94,0x67,0xB0,
+ 0xDB,0xFB,0x0E,0x00,0xC2,0x72,0x67,0xAB,0x5E,0xB3,0xB0,0xDA,0xF2,0x00,0xB9,0x99,0x8D,0x25,0xB5,0x25,0x8C,0x06,0xDB,0xDC,0x04,0x58,0x58,0xEB,0xEC,0x61,0xDC,0x73,
+ 0xA4,0x41,0xDB,0x4A,0xED,0xB7,0x20,0x9A,0x0D,0xD8,0xDB,0x32,0xE6,0x18,0x22,0xB0,0xCC,0xDC,0x45,0x86,0xDB,0x94,0x86,0x35,0x81,0xDA,0x12,0x81,0xDC,0xCD,0x17,0x29,
+ 0xB8,0x59,0x9D,0x49,0xFB,0x12,0xBC,0xA8,0xB3,0x0E,0x50,0x00,0xCF,0x28,0x1C,0xAA,0xB0,0xBF,0x4D,0x67,0x16,0x2A,0xFA,0xF5,0x0E,0x38,0x74,0x29,0xDC,0x1D,0x0C,0xA4,
+ 0x91,0x50,0xDB,0x22,0x43,0x70,0x00,0xD4,0xC9,0x00,0x41,0xE9,0x03,0xDB,0xD5,0x09,0x9E,0xC8,0x81,0xDB,0xA0,0x3E,0xDB,0x02,0xAF,0x22,0x00,0x31,0x4F,0x0D,0x80,0xDB,
+ 0x1B,0x4C,0x11,0x8F,0xD7,0xCA,0x39,0xE3,0x85,0xDC,0x2D,0xF1,0x07,0xDB,0x04,0x61,0xDC,0x73,0xAB,0x61,0xDC,0x3C,0xF9,0x73,0xB3,0x74,0x06,0xA2,0x53,0x82,0xD8,0x0B,
+ 0x46,0x04,0x1C,0xD6,0xF7,0xB0,0x36,0x83,0x33,0x84,0xDB,0x8D,0x86,0xA4,0x02,0x19,0xDB,0x04,0x54,0xA1,0xDB,0xD2,0x00,0xE8,0xE1,0xDA,0x6B,0xF1,0x22,0xF3,0xAA,0x8C,
+ 0x00,0xC0,0xDB,0x4A,0x95,0x8D,0xDB,0x0A,0x92,0x4A,0xDB,0x0B,0xA4,0x96,0xE6,0xED,0xA7,0xAC,0x7A,0xCF,0x48,0x00,0x36,0xDB,0x02,0x12,0x24,0xDE,0xCE,0x26,0xAA,0x6F,
+ 0xAE,0xAA,0x00,0xA7,0x05,0x88,0xBA,0xDB,0x09,0x03,0xCE,0xA8,0x92,0x15,0x2B,0x49,0x80,0xC2,0xB3,0x74,0x8C,0x98,0xA3,0xB9,0xB2,0xB0,0xDC,0xDA,0x1B,0xCD,0x8E,0x69,
+ 0x98,0x6B,0x00,0x21,0xFB,0xA9,0x41,0xD8,0x54,0x16,0xDB,0x12,0x91,0xB6,0x2D,0x49,0x28,0xDC,0x60,0xD9,0x9E,0xB0,0xDB,0x58,0x41,0xDA,0x76,0x06,0xCA,0xE5,0x79,0x79,
+ 0x84,0xDA,0xC1,0xDB,0x21,0xB6,0x0A,0x98,0x24,0x02,0xA6,0x08,0x35,0xDB,0x0C,0xEF,0x8E,0x08,0x53,0x87,0xEC,0xDC,0x32,0xB8,0x9C,0xDB,0x25,0xBF,0xE9,0x52,0x97,0xF0,
+ 0x00,0xD8,0xC3,0xCE,0x03,0xCB,0x84,0xDA,0x04,0x15,0x40,0xDB,0x24,0x54,0x9A,0x49,0x26,0x95,0x4A,0x00,0x06,0xA2,0xAB,0x61,0x2E,0xDB,0x6A,0x10,0x1C,0xA7,0x9B,0x1F,
+ 0x5B,0x1C,0xC7,0xDA,0xEF,0xF2,0x19,0xAB,0xEE,0xAB,0x00,0xA0,0xDB,0x2C,0x49,0x2F,0xDB,0x29,0x8F,0x28,0xDB,0x14,0x8C,0xD4,0x1C,0xA6,0xF9,0x02,0xB6,0x5B,0xCB,0xF8,
+ 0x00,0xDA,0x4C,0xDB,0x14,0xB6,0x40,0xDF,0xE6,0xC4,0xB7,0x4C,0x3F,0x7A,0x07,0xE5,0x83,0x42,0xB8,0xA2,0xB6,0x05,0x31,0x12,0x7A,0xC1,0xAF,0xA4,0x95,0xE1,0xDB,0x65,
+ 0xB8,0x61,0xD8,0x12,0xDB,0x19,0xB7,0x77,0x01,0x00,0x57,0x86,0x6B,0xEF,0x4B,0xC5,0x61,0xD7,0x53,0x9D,0x85,0xCA,0x58,0x00,0xD8,0x5E,0xC3,0x74,0x08,0xBF,0x09,0x54,
+ 0x43,0xDB,0x29,0xB0,0xDB,0xE6,0xB1,0xAA,0xF3,0xC1,0xDC,0x54,0x33,0xC9,0xE1,0xDB,0x22,0xED,0xA7,0x2F,0xDB,0x0C,0xD1,0x26,0x00,0x48,0x4A,0x05,0x79,0x8C,0xDB,0x0A,
+ 0xA3,0x90,0xDA,0xA8,0x97,0x9F,0xC3,0xD8,0xDB,0x04,0x9F,0x19,0x82,0xDB,0x31,0xC1,0xDB,0x02,0xE2,0xE4,0xD7,0xDE,0xCE,0x34,0xDB,0x24,0xCF,0x7A,0xE7,0xCF,0xA2,0x2D,
+ 0x94,0x26,0x00,0xDE,0xCD,0x82,0xC9,0x82,0xD5,0x70,0xDB,0xA7,0xC3,0xB0,0xDA,0x56,0x1A,0xED,0x69,0x97,0x81,0xD5,0x1D,0x1C,0xC9,0x14,0x11,0x49,0xC4,0x5D,0x24,0x17,
+ 0xF4,0xAB,0x8F,0xC5,0x2B,0xC9,0x94,0x2E,0x8C,0xAB,0x49,0x46,0x42,0xDB,0x92,0x0A,0x51,0x83,0xDB,0x9E,0x00,0x8F,0xDB,0x02,0x6C,0xE4,0xC0,0xDB,0xDA,0xCF,0x3E,0xA5,
+ 0x53,0x88,0x55,0x4F,0xCD,0x20,0x00,0xE0,0x00,0x0D,0x22,0x2D,0x8F,0xCC,0x94,0x26,0xB9,0x29,0x96,0xEF,0xC2,0xDF,0x65,0xEF,0xD6,0xE6,0xAC,0x00,0x88,0xAA,0x05,0xE9,
+ 0xE1,0x1D,0x85,0xDF,0x65,0xAF,0x71,0x99,0xEC,0xAB,0xB5,0x87,0xAF,0xEC,0x05,0x29,0xBF,0x55,0x15,0x96,0xC2,0xF2,0x14,0xE8,0x17,0xB9,0x2C,0xAB,0xD1,0x06,0x32,0x32,
+ 0x49,0xD3,0x0C,0xAB,0xAC,0x8C,0x49,0x32,0xDB,0x2D,0xE2,0x75,0xE7,0xD7,0x0B,0x6E,0xC1,0xDF,0x00,0x0C,0x82,0xD7,0x85,0x40,0xD5,0x4E,0x41,0xDA,0x14,0x00,0xB8,0x35,
+ 0xB8,0xB6,0xEC,0x19,0xE4,0x77,0xB4,0xB6,0x02,0xC4,0xA8,0x22,0x0D,0x08,0x0E,0x41,0xD6,0x08,0x69,0x3B,0x1B,0x9E,0xCE,0x59,0xAA,0x45,0x52,0x2D,0xF0,0x94,0xB2,0xDD,
+ 0xBE,0xDC,0x00,0x95,0xAD,0x01,0xE0,0x6B,0xA0,0x95,0x54,0x8A,0xC9,0xCD,0x7E,0xF6,0xD6,0xF3,0x60,0xDB,0xE7,0x15,0xDB,0x0C,0xBD,0xBB,0x00,0xD6,0xCC,0xAE,0x94,0x1A,
+ 0xDB,0x1F,0xBB,0x48,0xC0,0xF5,0x82,0x76,0xB6,0x54,0xD6,0x12,0xCD,0xAA,0x4A,0xA6,0x9E,0xC0,0xD4,0x85,0x85,0xB4,0x03,0x85,0xA0,0xDA,0xB6,0xAA,0x00,0x92,0x45,0xB4,
+ 0xBF,0xC8,0xDA,0x92,0x2A,0xE9,0x08,0x0D,0xC2,0xDB,0xCD,0x38,0x08,0xF0,0xCE,0xD1,0xCF,0x05,0xB8,0x77,0x85,0x34,0x00,0xB7,0x82,0x84,0xD6,0xA1,0xDB,0x73,0x94,0x92,
+ 0xA5,0x1A,0xDE,0xB8,0x60,0xDB,0xA5,0xCA,0x5E,0x1C,0x00,0x93,0x97,0x07,0x73,0x92,0xDC,0x00,0x0F,0xC1,0xDC,0x73,0x9D,0xE5,0x0B,0xB6,0x61,0xDB,0x72,0x99,0x64,0xB0,
+ 0xDB,0x89,0x00,0xA0,0xDB,0x94,0xDA,0x17,0x85,0x03,0x40,0xDC,0x4A,0x94,0xDB,0x34,0x90,0xCB,0xB6,0x91,0x40,0xDF,0xC4,0xAF,0x7A,0x4E,0x08,0xA3,0x10,0x72,0xDB,0x1A,
+ 0xD1,0x37,0x4C,0xCE,0x4C,0xC5,0xDB,0x15,0xBD,0xCE,0x6D,0x03,0x2C,0xDB,0x30,0xD9,0x76,0x67,0x02,0xB6,0x54,0x9C,0x45,0x10,0x1F,0x85,0xB5,0xAA,0xF3,0x67,0xB2,0x00,
+ 0x95,0xBC,0x00,0xC0,0x2C,0xDB,0x3C,0x07,0xEF,0x27,0xDB,0x0D,0x88,0x3B,0x0D,0x07,0x97,0xD4,0x34,0x02,0x43,0x85,0xA8,0xD2,0x08,0x92,0x69,0x90,0x5D,0x00,0x05,0xCC,
+ 0x06,0x93,0x93,0x82,0xDA,0xBC,0x44,0x91,0x94,0xDB,0x00,0xA3,0xBD,0xD0,0xC9,0xB7,0x53,0x4E,0x7A,0xDB,0x70,0x6E,0x95,0x92,0x4A,0xAF,0x0D,0xD2,0x95,0x40,0xDC,0x61,
+ 0xD6,0xDC,0x74,0x00,0xD8,0x0E,0x81,0x00,0x62,0xB7,0xB0,0xDB,0x44,0x5F,0x06,0xDB,0xB5,0x1A,0x01,0x54,0x50,0xDC,0xCE,0xF0,0x82,0xC5,0xA7,0x89,0x09,0xB0,0xDB,0xA7,
+ 0xCB,0x9B,0x00,0x14,0xBE,0x00,0x07,0xC2,0xF7,0xDD,0xC5,0x8C,0x94,0xB2,0xE8,0x89,0x6E,0x89,0xDB,0x0D,0xC3,0xE8,0xDB,0x2E,0x00,0x44,0x91,0xC3,0xDB,0x00,0xC3,0xDA,
+ 0x00,0xA0,0xDB,0x53,0xE4,0xC8,0x81,0xC9,0xE2,0xC1,0x02,0x31,0x00,0x02,0x10,0x00,0x12,0x00,0x22,0x4A,0x97,0x95,0x98,0xDB,0x28,0xD6,0xD9,0x28,0xDF,0x2C,0xDA,0x2C,
+ 0xDB,0x16,0x2B,0xDB,0x12,0x86,0xDA,0x00,0x1D,0xE8,0x04,0xD8,0x32,0x8E,0xB0,0xDB,0xBE,0x93,0x94,0xFD,0xEB,0x9A,0xAA,0x07,0x52,0xAB,0x46,0x1A,0x75,0x00,0x13,0x9C,
+ 0x38,0xDB,0x51,0xB1,0x56,0xD8,0x58,0xDD,0x4E,0xB5,0x52,0x60,0x07,0xDB,0x8C,0xB0,0xDB,0x25,0x8D,0x85,0xB6,0x2A,0x00,0x58,0xB8,0xDB,0x29,0xE4,0xC8,0xC1,0xBD,0xC7,
+ 0xC4,0xAC,0x08,0xD4,0xC4,0xE5,0xB4,0x07,0xAA,0x00,0x1B,0xC1,0xE2,0xC5,0xC5,0xC2,0xDB,0x72,0xB8,0x98,0xDB,0x26,0x80,0xBC,0x98,0xAF,0xF1,0xEC,0xCD,0x2D,0xEC,0x6C,
+ 0xDC,0x24,0xE0,0x59,0x03,0xCB,0x07,0xB2,0xBF,0xB8,0x00,0xD0,0xDA,0xAA,0x10,0xC0,0x77,0x64,0x2D,0x28,0xDB,0x30,0x43,0xD0,0xCA,0x01,0x93,0x93,0xDB,0x07,0x8C,0x03,
+ 0x28,0xDB,0x48,0xB6,0x44,0x8D,0x8D,0xE1,0xDA,0x30,0xDB,0x2B,0x77,0xB7,0x83,0xE6,0xAF,0x1B,0x4F,0x9E,0xC9,0xDE,0x8F,0x0E,0x26,0xA6,0xFD,0x00,0xA0,0xF8,0xC1,0xD8,
+ 0xCF,0xA4,0x95,0xB0,0xDB,0x58,0x5E,0xDD,0x4E,0xDA,0x16,0xD7,0x08,0x67,0x80,0xDB,0xF0,0x00,0xC9,0xFE,0xFF,0x82,0xDB,0xDE,0xB0,0xF2,0xD0,0x70,0xD5,0x15,0x49,0x26,
+ 0x26,0x04,0x20,0xCF,0x58,0xED,0x26,0x2E,0xDA,0x0A,0xDB,0x01,0xAB,0xCD,0x2E,0x55,0xF4,0x6F,0xC6,0x61,0xCF,0x61,0xDB,0x84,0xD2,0xE1,0xDB,0x28,0xD6,0x4E,0xDA,0x17,
+ 0xFF,0x56,0xB6,0x58,0xDA,0x68,0x92,0xA8,0x56,0x24,0xF9,0xD9,0xB7,0x58,0xA5,0x20,0x1B,0xCD,0xC7,0xE7,0x00,0xD8,0xB4,0x12,0x4F,0x61,0x0D,0xDC,0x3A,0x95,0x2C,0xE3,
+ 0xB8,0x86,0x81,0xEC,0xEC,0xDD,0x0F,0xCD,0xC0,0x16,0x67,0xCD,0xAC,0x19,0xDC,0x1B,0xAB,0x07,0x19,0xB7,0x0B,0xFD,0x8E,0x08,0x65,0xD5,0xF3,0xB3,0x00,0x96,0x04,0x72,
+ 0xA6,0x54,0x49,0x97,0xE7,0x0C,0x1D,0x49,0x27,0x2D,0x0E,0x5F,0x00,0xB7,0x4B,0x97,0x34,0xD9,0x18,0xCE,0x56,0xE2,0x12,0x93,0x27,0x87,0xE5,0x00,0x20,0xD6,0x2B,0x8D,
+ 0x01,0x02,0xB0,0xDC,0x4A,0xD9,0xB7,0x43,0xB4,0xDB,0xC7,0xC7,0x77,0x9F,0xB0,0xC4,0x4F,0x12,0xE1,0xAA,0x07,0x80,0xDB,0x02,0x62,0x12,0x00,0x24,0xB0,0xD8,0xB3,0xE4,
+ 0xDA,0x09,0xC2,0xDB,0xC2,0xDA,0x95,0x00,0x17,0xFD,0x17,0x86,0xC9,0xAB,0x0A,0xB4,0xDE,0x9D,0x40,0xDB,0xB0,0xCC,0x9C,0xB3,0xB0,0xCA,0x89,0xDB,0x05,0x2E,0xE0,0x04,
+ 0xEF,0x1A,0x94,0xD8,0x0A,0x2F,0x2F,0xDD,0x5B,0xA9,0xE9,0x5E,0xC3,0x83,0xDB,0x00,0xC1,0xD2,0x5D,0xCB,0x08,0x00,0x61,0xD9,0x35,0x00,0x84,0xDA,0x81,0xDB,0x44,0xB6,
+ 0xBD,0x18,0xB1,0x9A,0x9F,0x92,0x10,0x00,0x31,0x23,0x85,0xDB,0x09,0xA4,0x22,0xAC,0x76,0x88,0xD6,0x94,0xDC,0x16,0x81,0xB7,0x58,0x02,0xCD,0x81,0x35,0x48,0xCD,0xD6,
+ 0x1D,0x03,0xE6,0xAC,0xEC,0x76,0xB3,0xF6,0xDA,0x13,0x85,0xD9,0x82,0xC5,0x2F,0x50,0xDA,0x90,0xA5,0xBE,0xA3,0x3F,0x45,0x2F,0x03,0x00,0x0D,0xF5,0x16,0x0D,0x49,0x83,
+ 0xD1,0x2F,0x10,0x98,0xDA,0x3B,0x00,0xDA,0x08,0x84,0x00,0x65,0xE0,0xD8,0xB5,0x94,0xDA,0x03,0xD9,0xF1,0xB8,0xF1,0xDA,0x00,0xCB,0xDB,0xC4,0x5B,0xA0,0xDA,0x39,0x02,
+ 0x08,0xA6,0x81,0x14,0xDB,0x36,0xB8,0xC1,0xDC,0x31,0xC9,0xAC,0xE2,0xE6,0x20,0xDC,0x14,0xE3,0xE3,0xED,0xB8,0xD7,0x12,0xCD,0xEC,0xA6,0x97,0x98,0x92,0x83,0xDB,0x32,
+ 0xDD,0x09,0x56,0xE1,0xCE,0xF2,0x50,0xBF,0xA2,0xA1,0xF0,0x0A,0xC4,0xB4,0x98,0xA2,0xA4,0xF0,0x08,0xDB,0x58,0x2F,0xDB,0x7D,0x09,0x0F,0x54,0x0D,0xA2,0xD0,0xD9,0x73,
+ 0x00,0x01,0xDA,0x65,0x65,0x4B,0xED,0x30,0xD6,0x5A,0x04,0x8D,0x2C,0xDB,0x16,0xD9,0xDB,0x0A,0xF1,0xED,0x50,0xDB,0xDA,0xAC,0x7A,0xC3,0x90,0x81,0x7D,0xE6,0x60,0x46,
+ 0xDB,0x0C,0xA4,0x70,0xDC,0xC0,0xDF,0x0D,0x98,0x16,0xE2,0xDA,0xD0,0xDB,0x1D,0x00,0x06,0xD6,0xDB,0x14,0xB8,0x5A,0x00,0xAB,0xC2,0xDB,0xC9,0xBB,0x1A,0x85,0xAB,0x74,
+ 0x9A,0xCF,0xAE,0x28,0xDB,0x61,0xB6,0x39,0xFE,0xDD,0x00,0x83,0xDB,0x46,0xDB,0x04,0x49,0xE1,0xDB,0x65,0xC5,0x69,0x15,0x2F,0x8A,0xB5,0x24,0xDB,0x34,0x09,0x65,0x50,
+ 0xDA,0x61,0xDB,0x38,0xDA,0x60,0xDB,0xC3,0x14,0xDB,0xCE,0x98,0x8E,0x02,0x0D,0x1B,0x02,0x04,0x60,0xDB,0xB2,0x00,0x07,0x12,0x98,0x00,0x22,0xDC,0x14,0xDF,0xD0,0xB9,
+ 0x56,0xDB,0x16,0xB4,0x56,0xD8,0x16,0xDB,0x15,0x03,0x44,0xB6,0x2F,0xF2,0x03,0x89,0xB2,0xAA,0x9D,0xA7,0xE4,0xAA,0x29,0xEE,0x0C,0x0E,0x60,0xDB,0xBB,0x16,0x1C,0xBC,
+ 0x07,0x06,0x5D,0x5D,0x9C,0xAD,0xA9,0xEA,0x56,0x27,0xD5,0x1F,0x03,0x00,0x38,0xD6,0x5E,0x00,0xD9,0x13,0x80,0xDA,0xE4,0xCB,0xC9,0xC1,0xDA,0x7A,0x85,0xD6,0x86,0xD7,
+ 0x04,0x08,0x85,0xA0,0x00,0xB8,0xDB,0x31,0xAB,0xE9,0x00,0x12,0x24,0x49,0x96,0x69,0x95,0x30,0xDC,0x79,0x95,0x59,0x98,0xDD,0x03,0x04,0x03,0xD5,0x2F,0x03,0xD2,0x04,
+ 0x46,0xA5,0x8B,0x82,0xB7,0x50,0x49,0x05,0x81,0xE4,0x45,0xAC,0x00,0x36,0xDB,0x1A,0x5D,0x93,0x61,0xDF,0x2B,0x00,0x5D,0x00,0xBC,0x06,0xD8,0x11,0x6E,0x2B,0xE2,0x20,
+ 0xD6,0x04,0x65,0x29,0x18,0x18,0x48,0xD9,0x51,0x00,0xD9,0xD4,0x30,0xDB,0x61,0xDA,0xE7,0xD8,0xD5,0x14,0xC4,0x77,0xFA,0x50,0x22,0x03,0xDB,0x12,0x47,0x3A,0x7A,0x9F,
+ 0x00,0xE5,0x4C,0x15,0x98,0xCF,0xD6,0xF2,0x74,0x95,0x30,0x64,0x51,0xD3,0xB0,0xD6,0x94,0xDB,0x30,0xAB,0x58,0x46,0xC6,0x55,0xCD,0x4C,0xBA,0x09,0x27,0xCA,0x9B,0xC2,
+ 0xE7,0xE8,0x00,0xDB,0x0D,0x6E,0x5D,0x05,0x6E,0x77,0x1C,0x1F,0x61,0xDB,0xE5,0x2F,0xB5,0x16,0xD8,0x16,0xD7,0x12,0x30,0x00,0x28,0xD2,0xE5,0x02,0x00,0x55,0xD4,0x00,
+ 0x86,0xDA,0xDB,0x03,0xBD,0xB7,0x7A,0xDA,0x05,0x12,0xA9,0xA0,0x1B,0x0D,0x06,0xA1,0xDB,0x0B,0xD6,0x33,0xE7,0x02,0x12,0x0D,0xB0,0xCF,0xD0,0xC2,0xDB,0x50,0xDD,0x29,
+ 0xE9,0x51,0x00,0x64,0x4F,0x00,0x43,0xA7,0x28,0xEF,0xE6,0x98,0x79,0xD6,0xC2,0xD6,0xD8,0x72,0xA2,0xB0,0xC8,0xF8,0x0E,0x08,0x4D,0x00,0x27,0x22,0x00,0x65,0x69,0x00,
+ 0x41,0xD9,0x6A,0x53,0x00,0x06,0xD8,0xB6,0x53,0x00,0xDB,0xE1,0xDB,0xB7,0x02,0x0D,0x07,0x0D,0x24,0x24,0x1B,0x26,0x00,0x04,0x80,0xDB,0x31,0x9F,0x08,0xAF,0x02,0x00,
+ 0x24,0x82,0xE2,0xB9,0xB9,0x81,0xDC,0xE9,0x74,0x00,0xD9,0x0A,0x43,0x00,0xC3,0xDB,0x03,0xD2,0x8F,0x62,0xB6,0xC2,0xC0,0x70,0xDB,0x88,0xF9,0x3B,0xBF,0x09,0x52,0x81,
+ 0x11,0xD2,0x09,0x24,0x06,0xB0,0x24,0x29,0xE0,0xDA,0x28,0x98,0xDB,0x13,0x4D,0x12,0xB3,0xEF,0x55,0xEE,0x57,0xC3,0xB3,0x18,0x24,0x22,0xD9,0x17,0x24,0x0D,0x00,0x38,
+ 0xDC,0x40,0x92,0xDB,0x00,0x0D,0x12,0x02,0x9F,0xC1,0x12,0xCF,0xDF,0xB4,0x83,0xDB,0x95,0xDA,0x06,0x41,0xD5,0x0A,0x8C,0xDC,0x0A,0xCF,0xFC,0xB0,0xA7,0xA0,0x79,0xC1,
+ 0xBC,0x2F,0x16,0xC6,0x11,0xE0,0xD2,0x5D,0xB0,0xD1,0xB8,0x09,0xC4,0x89,0xA0,0xD5,0xB4,0x00,0x6A,0x84,0xB6,0x4D,0x4C,0xD4,0x00,0xEF,0x58,0xEF,0xDA,0x03,0xDB,0xA5,
+ 0xC1,0x0D,0x22,0xDB,0x0A,0x02,0xB9,0x00,0xC2,0xDF,0x04,0x70,0xDB,0x52,0x02,0xEA,0x7C,0xC4,0x1B,0x24,0x53,0xB7,0xDC,0x03,0x3D,0x95,0x00,0x1D,0x41,0x41,0x8C,0x00,
+ 0x05,0xDF,0x05,0xDB,0x87,0xDD,0x00,0x09,0x9F,0xF1,0x02,0x38,0xCF,0x4D,0x08,0x12,0xD4,0x12,0x4C,0x04,0xD5,0x14,0xDF,0x13,0x04,0xD5,0xA1,0xDA,0x10,0xDB,0x0C,0xEF,
+ 0x00,0xF1,0xE0,0x00,0xE1,0xC7,0xA5,0x4C,0x5B,0x5B,0x4C,0x22,0x0A,0x53,0x4C,0x53,0x22,0x00,0x8B,0xDE,0x0E,0x00,0x04,0x10,0xDB,0xDE,0x42,0x00,0xE4,0x7F,0x4E,0xC6,
+ 0x06,0x22,0xB7,0xD0,0xA3,0xDC,0x00,0x91,0x3D,0x3D,0x4A,0x4A,0x3F,0x58,0x58,0xCB,0xE8,0x03,0xE1,0x32,0x06,0x8C,0x6E,0x38,0xDB,0x24,0xAB,0x28,0xC0,0xC5,0x8D,0x00,
+ 0x4B,0x29,0x05,0x41,0xD1,0x39,0xB1,0x4C,0xD6,0x05,0x5A,0x4D,0xCE,0x00,0xD8,0x16,0xD9,0x00,0xE0,0xC3,0xC9,0xA8,0xAC,0x14,0x9A,0x9A,0x5B,0x00,0x4C,0xC2,0xDC,0x93,
+ 0x00,0x22,0x94,0xBE,0xE1,0xDE,0x07,0xC0,0xDB,0x4F,0xB0,0xD7,0xA0,0xDC,0xE8,0x84,0x53,0xA5,0x02,0xDA,0xB4,0x77,0x77,0x6C,0x6C,0x80,0xDD,0x58,0x85,0xBC,0x00,0xE1,
+ 0x3A,0x00,0xDF,0x0B,0xF3,0x84,0x27,0x64,0x00,0x58,0xC5,0x55,0x07,0xDC,0x00,0x06,0xFC,0x0C,0x00,0x81,0xD4,0x21,0xB0,0x25,0x5A,0xD7,0x0F,0x00,0xD6,0x05,0x59,0xBB,
+ 0x00,0x7E,0x00,0xD9,0x0D,0x00,0xE0,0x80,0x00,0xCB,0xCE,0xA5,0xAF,0xA5,0x98,0x98,0xC1,0xDC,0x97,0xB0,0x02,0x9A,0xDD,0xB0,0xDF,0x9C,0xBE,0xA2,0x56,0xFD,0x1F,0x9B,
+ 0x48,0x74,0xDB,0x3F,0x48,0x41,0x04,0xC6,0x00,0x12,0x9F,0x98,0xDC,0x00,0xA3,0xA0,0x6C,0xB6,0xB6,0x2C,0x79,0xBC,0xDA,0x18,0x8D,0x02,0x93,0x85,0x9E,0xB0,0xE0,0xBA,
+ 0xCB,0x8F,0x9B,0x29,0x8E,0xF2,0xAE,0x00,0x07,0x79,0x0D,0xCA,0xAB,0x65,0xDF,0xB0,0xD2,0x49,0x4D,0x04,0xE1,0x00,0xD6,0x3C,0x00,0x80,0xDB,0xD1,0xE4,0xA0,0xCE,0xB7,
+ 0x6C,0xA5,0x01,0xAF,0x00,0x98,0x97,0xE6,0x00,0xBD,0x2F,0x00,0xDD,0x08,0xD2,0xBD,0x83,0xB0,0xDB,0xD4,0xEB,0x31,0x24,0xB6,0x4B,0xF0,0xF4,0x98,0x06,0xC1,0xCA,0xB9,
+ 0x05,0xA0,0xE4,0xB6,0xB8,0xBC,0x26,0x00,0x85,0xC4,0xFB,0xE5,0x05,0x93,0x84,0xCE,0xE5,0xA0,0x84,0xBF,0x50,0xC0,0x45,0xF1,0x0B,0x00,0x6F,0xB4,0x29,0xAD,0x4E,0xD7,
+ 0x13,0x11,0xB2,0x7E,0x9C,0x72,0x00,0x07,0xDB,0xA0,0x25,0xB1,0xA8,0x30,0x00,0xB7,0xDD,0xC1,0xE0,0xAF,0x45,0xBC,0x53,0x00,0xA4,0x9B,0x60,0xDC,0x41,0x00,0xDB,0x42,
+ 0xEB,0xEB,0x49,0x00,0x0D,0x3B,0x46,0x4D,0xCF,0x6C,0x59,0x9A,0x98,0x38,0xBD,0xA3,0xBD,0x75,0xB8,0x9D,0x84,0xDC,0x9F,0xC3,0x28,0xDF,0x65,0x90,0x2D,0xC6,0x58,0xBD,
+ 0x61,0xB2,0x73,0x05,0x85,0xC7,0xDC,0x0D,0x06,0x4C,0x07,0xE9,0x00,0x4D,0xE6,0x00,0xD5,0x09,0x82,0xD7,0xC7,0x00,0x92,0xE8,0xD1,0x9F,0x2C,0xC4,0x00,0xB1,0xB1,0x9C,
+ 0xDE,0x28,0xBB,0xB2,0xBC,0x9C,0xDE,0x24,0xF9,0x59,0x06,0xEF,0x09,0x12,0x97,0x1F,0xDA,0x0E,0x49,0xB0,0x4F,0xD9,0xF0,0x58,0xDB,0x14,0x8F,0xDA,0xCB,0xDC,0x05,0xBC,
+ 0xD9,0xEC,0xE2,0xE1,0xDA,0x79,0x9C,0x2C,0xEF,0x46,0x15,0x94,0xCE,0x06,0xD3,0x09,0x28,0xD6,0xD6,0x72,0xAB,0x4C,0x59,0xAB,0x51,0xA0,0xD8,0x92,0xEC,0x00,0xDA,0x02,
+ 0xCB,0xC9,0xCE,0xCE,0x50,0xDC,0xE5,0x00,0xBB,0x2B,0xDC,0x08,0xD2,0xBA,0x9C,0xDC,0x21,0xF9,0xB3,0x86,0x03,0xD9,0x00,0x98,0xB4,0xAC,0xD9,0x29,0x5B,0x97,0x81,0x62,
+ 0xA5,0xC4,0xBD,0xE4,0xEF,0xD4,0x61,0xDB,0x34,0x00,0xA1,0xCB,0x7B,0xFA,0x39,0xE8,0xCE,0xEA,0x76,0x00,0x5A,0x89,0xEC,0x09,0x02,0xD1,0x49,0x04,0xE3,0x00,0x0A,0xAD,
+ 0x46,0x00,0xA9,0x01,0xE8,0x30,0xE0,0xDB,0xDA,0xE3,0x00,0x82,0xDD,0x45,0xF6,0x98,0xDC,0x28,0xDD,0x23,0x83,0xDB,0x00,0x82,0xB0,0xDB,0x98,0xDA,0x13,0x0D,0x87,0xDA,
+ 0x53,0x20,0xD9,0x29,0xAF,0xDF,0x87,0xC4,0xC7,0xE4,0xA0,0x53,0xEC,0xE2,0xA1,0xC1,0x14,0xBE,0x11,0x67,0xEC,0x77,0x00,0x09,0x3C,0x06,0x58,0xD4,0x47,0x14,0xAE,0x81,
+ 0xD8,0x4A,0x00,0xAA,0x8F,0x40,0xC9,0xC7,0xC7,0xC9,0xE2,0x00,0x02,0xDD,0x64,0x97,0x4C,0x98,0xDC,0x12,0xCC,0xB1,0x44,0xAE,0xC1,0xA8,0xDB,0x49,0xE8,0x31,0x45,0xB5,
+ 0x82,0xDA,0xAF,0x98,0xD8,0xA8,0xB1,0xC2,0x70,0xCE,0xDB,0xC3,0xEF,0x4C,0x00,0xDB,0x2C,0xA1,0x11,0x59,0x67,0xE3,0x08,0x04,0xBF,0xB3,0x08,0xCF,0x0F,0x00,0x18,0xD4,
+ 0x16,0xD7,0x12,0x86,0xDB,0xB4,0x58,0xDA,0x68,0x00,0xC7,0xF0,0xDC,0x95,0x96,0x20,0x4A,0xDB,0x09,0x4A,0xB7,0x28,0xDA,0x28,0xB5,0xA5,0xDA,0x06,0xCE,0xD9,0x20,0xC3,
+ 0xE1,0xE0,0xD1,0xE8,0x48,0xE8,0xA0,0x08,0x7E,0x7E,0x00,0xE3,0x24,0x8A,0xA9,0x30,0xD9,0x13,0xA9,0x32,0x00,0xAA,0xB4,0xC1,0xDA,0xCB,0xD0,0x00,0xDC,0x23,0xDB,0x03,
+ 0xDD,0xDC,0x09,0xC2,0xDB,0x74,0x93,0x8F,0x92,0x48,0x3A,0xDB,0x0A,0x52,0xB2,0xB6,0x98,0xB5,0xBC,0x74,0x79,0xDB,0xCB,0x58,0xC3,0xDC,0x2C,0xE8,0x9B,0x2C,0xA6,0x2A,
+ 0x03,0x38,0xB9,0x26,0xBF,0x08,0xF8,0x0F,0xD4,0x00,0xA9,0xEE,0x00,0xA1,0x00,0xC1,0xDA,0xE1,0xD8,0x00,0xDD,0x26,0xCB,0xBB,0x29,0xC2,0xDB,0x64,0x93,0xB2,0xB6,0x99,
+ 0xCB,0xEE,0xE1,0x23,0xD6,0xED,0x0A,0xC2,0xDB,0x57,0xCB,0x9C,0xDB,0x30,0xDA,0x88,0xDB,0x07,0xC7,0x7A,0xA4,0x7E,0xC3,0xBA,0x29,0xC1,0x9B,0x92,0x0E,0xC3,0x00,0x01,
+ 0xD3,0x30,0xD7,0x58,0xD9,0x72,0x9F,0xE0,0xF0,0x00,0xDA,0xAB,0x00,0xDB,0x04,0xDB,0xE1,0xDB,0x29,0xB6,0x5B,0xCB,0xC5,0x4C,0xA7,0xE1,0xDA,0x06,0xD7,0x83,0x38,0xDB,
+ 0x5E,0xDA,0x71,0x00,0x24,0xB7,0xCE,0x89,0xDB,0x0C,0xDC,0x24,0xBB,0x24,0xAA,0x52,0x00,0xA9,0x0B,0x13,0x00,0xA1,0xA9,0x00,0xAA,0x46,0xD1,0x20,0xDB,0x58,0xDC,0x59,
+ 0xB8,0x4E,0xDB,0x11,0xE5,0xB5,0x3C,0xA3,0xDA,0x91,0x4E,0xD7,0x10,0x69,0xDF,0x93,0x5C,0x83,0xEB,0xF0,0x2A,0xEF,0xDA,0x93,0x4E,0xB8,0x58,0xDB,0x78,0x00,0x95,0x46,
+ 0x02,0xDF,0xA1,0x0B,0xA4,0x00,0x34,0xAA,0x41,0x49,0xB0,0xDA,0xB0,0xDB,0x9C,0xDA,0x25,0xB5,0x28,0x9B,0x80,0x8D,0xFE,0xAC,0xDA,0x20,0xE4,0xDB,0x24,0x97,0x47,0x9F,
+ 0x46,0x3A,0xF2,0xC6,0xAC,0xF1,0x81,0xDD,0x84,0x89,0xA1,0xDE,0x30,0xE0,0x58,0xE3,0x42,0xD0,0x00,0xD0,0xD9,0x5C,0x36,0xE4,0xB4,0xE1,0x98,0xB4,0x93,0xDB,0x94,0xB4,
+ 0x52,0x8E,0x4F,0xB5,0xD6,0xD8,0x11,0xE1,0xD9,0x05,0x81,0xDB,0x3D,0x13,0x42,0x44,0x21,0xDD,0x29,0xBB,0x58,0xDE,0x4A,0x9A,0x96,0xE1,0x1C,0x00,0xC1,0xE5,0x04,0x41,
+ 0xE8,0x2D,0x00,0xCD,0x21,0x30,0x18,0x8C,0x91,0x2B,0xE9,0x49,0x8D,0x16,0xD8,0x09,0x22,0xCA,0xB2,0x3D,0xE6,0x60,0xBC,0xDB,0x11,0x00,0x72,0xAF,0x24,0x95,0xD2,0xE2,
+ 0x42,0xDE,0x6B,0x8A,0x94,0xE1,0x2C,0xE2,0x2C,0xE4,0x2C,0xE6,0x27,0xE8,0x08,0xC0,0xEB,0xB0,0xEE,0x8A,0x0B,0x44,0xD1,0x4B,0x20,0x2F,0xC6,0x37,0x04,0xD6,0xEF,0xC1,
+ 0x84,0xD8,0xF5,0xF7,0x16,0xE5,0xB1,0xE1,0xD5,0x06,0xC9,0x93,0x1E,0xF9,0xB1,0x05,0xBD,0x59,0xEA,0x5D,0xC5,0x65,0xC0,0x61,0xE2,0x61,0xE3,0x61,0xE4,0x61,0xE6,0x38,
+ 0xE8,0x4C,0xEB,0x13,0x22,0x00,0xE1,0x82,0xC3,0x69,0x00,0xFB,0x25,0x00,0x33,0x45,0xC7,0x74,0xAD,0xFD,0xAC,0x13,0xAB,0xD3,0xCD,0x97,0xCE,0x00,0xD7,0x10,0x24,0x05,
+ 0xDB,0x28,0x00,0x31,0xDE,0x2D,0x60,0x22,0x39,0xBF,0x4B,0xCC,0xCB,0xAF,0xE3,0x0A,0xC6,0x2B,0xE6,0x0A,0xE7,0x09,0x02,0xE9,0x60,0xEC,0x98,0xEF,0x26,0x00,0xC2,0xBE,
+ 0x2A,0x00,0x6C,0x1E,0xCB,0x26,0x00,0x4F,0xC4,0xFF,0xF6,0xD3,0x16,0xDF,0xB1,0x40,0xD6,0x53,0x9D,0xB9,0xE1,0xDA,0xEF,0x83,0x60,0xDB,0x90,0x22,0x4F,0x4F,0xAA,0x58,
+ 0x60,0x94,0xDF,0x22,0x83,0xE1,0xE2,0x0B,0xC6,0x24,0x98,0xA1,0xE7,0x69,0x00,0xB7,0x42,0xEC,0x64,0x00,0xB1,0x2D,0x00,0x3D,0x1F,0xD8,0x2D,0xCF,0x54,0x02,0xA1,0xD3,
+ 0x41,0xD4,0x61,0xD5,0x61,0xD7,0x32,0xDE,0xD1,0x78,0x31,0x4F,0x38,0xD5,0x40,0x9C,0xDB,0x11,0xE9,0x9E,0x15,0xD6,0xD6,0xE3,0x16,0xE5,0x16,0xE7,0x17,0x00,0x84,0x96,
+ 0xC1,0xED,0x10,0x00,0x98,0x86,0xA5,0x00,0x21,0x96,0x33,0x5E,0x3F,0x47,0x3A,0xE6,0x91,0x0D,0xF0,0x7F,0x58,0x8F,0x90,0x5C,0xDB,0x11,0xF8,0xFC,0x24,0x9C,0xC8,0xA5,
+ 0xCC,0x29,0xC2,0xEA,0x25,0x00,0x5B,0x0C,0xC4,0x00,0x26,0x23,0x53,0x00,0x91,0x44,0x24,0x1E,0x83,0x90,0x38,0x04,0xDB,0xE1,0xE0,0x39,0xC8,0x24,0x9F,0x00,0xC2,0x95,
+ 0xE3,0x04,0x10,0x00,0x22,0xD4,0x00,0x92,0x1E,0xC8,0x26,0x3E,0x7A,0xE3,0x00,0xC2,0xCE,0x07,0x70,0xDB,0x8B,0x3A,0x4B,0x0D,0x00,0x3A,0xB0,0x47,0x61,0x00,0xBB,0x1F,
+ 0x11,0x1D,0x10,0x38,0xD0,0x21,0x1B,0x70,0xA4,0x83,0x00,0xD3,0x81,0x28,0xDB,0x24,0x00,0x4F,0x02,0x00,0x3C,0x0A,0xF1,0x0D,0xB1,0x0F,0x73,0x13,0xCE,0x1A,0xCB,0xD3,
+ 0x9C,0x90,0xF0,0x5A,0x3B,0x85,0xDB,0x90,0x00,0x07,0x07,0xAC,0x42,0x7C,0x5A,0x2F,0x72,0x1F,0x12,0x3D,0x19,0xC0,0x07,0xFE,0xDB,0x13,0xA3,0x42,0x1B,0xA3,0x00,0xA6,
+ 0xD7,0x19,0xAF,0x69,0xA3,0x23,0x82,0xE0,0x1F,0x95,0x08,0x17,0x02,0xDB,0x76,0x35,0x07,0x00,0x4F,0xB9,0x00,0xE3,0x46,0xE3,0x66,0xE1,0x10,0xD8,0x7E,0x98,0x0B,0x2F,
+ 0x97,0x08,0x7E,0x5F,0x02,0xEE,0x00,0x01,0xD3,0xDB,0x09,0xE0,0x00,0x34,0xC2,0xD3,0x01,0xBF,0xDB,0x09,0xE0,0x00,0x34,0xC2,0xD3,0x03,0x0C,0xDB,0x20,0x00,0x10,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini index 4662a3b..5aaa5a7 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/gfx/convpng.ini @@ -1,5 +1,5 @@ -#GroupC : all_gfx -#Compression : zx7 -#PNGImages : - apple - +#GroupC : all_gfx
+#Compression : zx7
+#PNGImages :
+ apple
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c index e269869..d74b073 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_compress/src/main.c @@ -1,45 +1,45 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <compression.h> -#include <graphx.h> - -/* Include the graphics file */ -#include "gfx/all_gfx.h" - -/* Put all your code here */ -void main(void) { - /* Define our sprite */ - gfx_sprite_t *apple; - - /* Allocate space for the decompressed sprite */ - apple = gfx_MallocSprite(apple_width, apple_height); /* Same as: gfx_AllocSprite(apple_width, apple_height, malloc) */ - - /* Decompress the sprite */ - zx7_Decompress(apple, apple_compressed); - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette */ - gfx_SetPalette(all_gfx_pal, sizeof_all_gfx_pal, 0); - gfx_FillScreen(0); - - /* Draw the decompressed sprite */ - gfx_Sprite(apple, (LCD_WIDTH - 220) / 2, (LCD_HEIGHT - 240) / 2); - - /* Wait for a key */ - while (!os_GetCSC()); - - /* Please, don't forget to free the apple image memory :) */ - free(apple); - - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compression.h>
+#include <graphx.h>
+
+/* Include the graphics file */
+#include "gfx/all_gfx.h"
+
+/* Put all your code here */
+void main(void) {
+ /* Define our sprite */
+ gfx_sprite_t *apple;
+
+ /* Allocate space for the decompressed sprite */
+ apple = gfx_MallocSprite(apple_width, apple_height); /* Same as: gfx_AllocSprite(apple_width, apple_height, malloc) */
+
+ /* Decompress the sprite */
+ zx7_Decompress(apple, apple_compressed);
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(all_gfx_pal, sizeof_all_gfx_pal, 0);
+ gfx_FillScreen(0);
+
+ /* Draw the decompressed sprite */
+ gfx_Sprite(apple, (LCD_WIDTH - 220) / 2, (LCD_HEIGHT - 240) / 2);
+
+ /* Wait for a key */
+ while (!os_GetCSC());
+
+ /* Please, don't forget to free the apple image memory :) */
+ free(apple);
+
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json index b4ba88a..c853e8b 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/autotester.json @@ -1,31 +1,31 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|clear", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Make sure the sprite is displayed", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "F9825FDD" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|clear",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprite is displayed",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F9825FDD" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md index 9ee2c1b..54c880f 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/readme.md @@ -1,10 +1,10 @@ -### GraphX/KeypadC Sprite with Keys - -Demonstrates using the GraphX and KeypadC library together to move a sprite - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX/KeypadC Sprite with Keys
+
+Demonstrates using the GraphX and KeypadC library together to move a sprite
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini index 7bd3158..b6ba98d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/convpng.ini @@ -1,4 +1,4 @@ -#GroupC : logo_gfx -#TransparentColor : 255,255,255 -#PNGImages : - ubuntu +#GroupC : logo_gfx
+#TransparentColor : 255,255,255
+#PNGImages :
+ ubuntu
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c index 4086cdc..5d2ba8b 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.c @@ -1,195 +1,195 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -uint16_t logo_gfx_pal[189] = { - 0xFFFF, // 00 :: rgb(255,255,255) - 0x7E20, // 01 :: rgb(251,139,1) - 0xFE20, // 02 :: rgb(251,140,4) - 0xFFFF, // 03 :: rgb(255,253,253) - 0x6800, // 04 :: rgb(212,2,2) - 0xE821, // 05 :: rgb(213,11,11) - 0x7E20, // 06 :: rgb(251,139,2) - 0x7E20, // 07 :: rgb(251,139,0) - 0x7920, // 08 :: rgb(244,72,0) - 0xFFFF, // 09 :: rgb(255,254,254) - 0xFFFF, // 10 :: rgb(255,254,253) - 0xFECC, // 11 :: rgb(252,182,97) - 0x7A90, // 12 :: rgb(249,163,128) - 0x7FDC, // 13 :: rgb(254,244,231) - 0xF985, // 14 :: rgb(245,100,40) - 0x7F9A, // 15 :: rgb(253,225,213) - 0x7FDD, // 16 :: rgb(253,242,242) - 0x6D6B, // 17 :: rgb(226,90,90) - 0xFFBC, // 18 :: rgb(254,239,233) - 0xF921, // 19 :: rgb(244,77,7) - 0x7EED, // 20 :: rgb(252,187,107) - 0xFF99, // 21 :: rgb(254,231,203) - 0xFFFE, // 22 :: rgb(255,253,250) - 0xFF16, // 23 :: rgb(251,199,177) - 0xF921, // 24 :: rgb(244,78,8) - 0xFE87, // 25 :: rgb(251,167,61) - 0xFFBA, // 26 :: rgb(254,237,216) - 0x7F31, // 27 :: rgb(253,204,143) - 0xFF76, // 28 :: rgb(253,222,183) - 0x7B7B, // 29 :: rgb(249,220,220) - 0xFAF7, // 30 :: rgb(244,192,192) - 0x7FDD, // 31 :: rgb(252,241,241) - 0xF18C, // 32 :: rgb(229,102,102) - 0xFE87, // 33 :: rgb(251,164,56) - 0x7B5A, // 34 :: rgb(247,212,212) - 0xFF76, // 35 :: rgb(253,221,181) - 0xF652, // 36 :: rgb(237,151,151) - 0x7652, // 37 :: rgb(236,145,145) - 0x6D29, // 38 :: rgb(224,74,74) - 0xE800, // 39 :: rgb(212,3,3) - 0x718C, // 40 :: rgb(228,98,98) - 0xFF54, // 41 :: rgb(253,214,165) - 0x7673, // 42 :: rgb(237,153,153) - 0xFF32, // 43 :: rgb(252,205,148) - 0x7EA8, // 44 :: rgb(251,169,68) - 0x6CC6, // 45 :: rgb(219,48,48) - 0x7FBA, // 46 :: rgb(254,234,211) - 0xE842, // 47 :: rgb(215,20,20) - 0xFB7B, // 48 :: rgb(250,224,224) - 0xFF77, // 49 :: rgb(253,224,187) - 0xF652, // 50 :: rgb(237,149,149) - 0x7F75, // 51 :: rgb(253,218,175) - 0x7FFE, // 52 :: rgb(254,249,249) - 0x7EEC, // 53 :: rgb(252,185,102) - 0x7FBD, // 54 :: rgb(252,236,236) - 0xFFFF, // 55 :: rgb(255,253,251) - 0x7EED, // 56 :: rgb(252,188,109) - 0x7FFF, // 57 :: rgb(254,252,252) - 0xFAF7, // 58 :: rgb(243,189,189) - 0x7B9B, // 59 :: rgb(250,225,225) - 0x7AD2, // 60 :: rgb(250,179,149) - 0xED09, // 61 :: rgb(224,70,70) - 0xECA5, // 62 :: rgb(218,43,43) - 0xFAF4, // 63 :: rgb(250,190,165) - 0x6D4A, // 64 :: rgb(225,82,82) - 0xED08, // 65 :: rgb(223,69,69) - 0x6D08, // 66 :: rgb(222,63,63) - 0x76D6, // 67 :: rgb(242,178,178) - 0xECC6, // 68 :: rgb(220,51,51) - 0xF1AD, // 69 :: rgb(229,109,109) - 0xFFDD, // 70 :: rgb(254,246,235) - 0x718C, // 71 :: rgb(228,97,97) - 0xFFBC, // 72 :: rgb(254,239,234) - 0xFF77, // 73 :: rgb(253,223,187) - 0x76D6, // 74 :: rgb(242,179,179) - 0x6863, // 75 :: rgb(216,26,26) - 0x7AB1, // 76 :: rgb(249,169,136) - 0xE843, // 77 :: rgb(215,21,21) - 0xFF9C, // 78 :: rgb(251,230,230) - 0xF9A6, // 79 :: rgb(245,108,51) - 0x7F97, // 80 :: rgb(253,225,189) - 0x7942, // 81 :: rgb(244,81,13) - 0x7FBA, // 82 :: rgb(254,236,215) - 0xFE21, // 83 :: rgb(251,143,11) - 0x7FBC, // 84 :: rgb(251,234,234) - 0xFB18, // 85 :: rgb(245,197,197) - 0x76D6, // 86 :: rgb(242,177,177) - 0x71AD, // 87 :: rgb(229,106,106) - 0xFAB2, // 88 :: rgb(249,176,144) - 0x7F9A, // 89 :: rgb(253,227,217) - 0x7FDD, // 90 :: rgb(254,242,237) - 0x7FDE, // 91 :: rgb(253,243,243) - 0x7AB1, // 92 :: rgb(249,171,139) - 0xFFBB, // 93 :: rgb(254,239,221) - 0xF694, // 94 :: rgb(240,167,167) - 0xFF7A, // 95 :: rgb(253,224,213) - 0x7F0E, // 96 :: rgb(253,193,117) - 0xFA6F, // 97 :: rgb(249,159,121) - 0x7FFE, // 98 :: rgb(255,251,247) - 0xFEAA, // 99 :: rgb(251,175,80) - 0x7694, // 100 :: rgb(239,161,161) - 0x7AF3, // 101 :: rgb(250,186,160) - 0xE801, // 102 :: rgb(213,5,5) - 0xFA6F, // 103 :: rgb(249,159,122) - 0x7FDB, // 104 :: rgb(254,241,224) - 0xF920, // 105 :: rgb(244,75,4) - 0x7A8F, // 106 :: rgb(249,160,123) - 0x7694, // 107 :: rgb(239,163,163) - 0xE822, // 108 :: rgb(214,14,14) - 0x6D29, // 109 :: rgb(223,71,71) - 0xFF55, // 110 :: rgb(253,215,169) - 0x7A8F, // 111 :: rgb(249,161,124) - 0xFF32, // 112 :: rgb(253,207,151) - 0x7FBB, // 113 :: rgb(253,233,224) - 0xF694, // 114 :: rgb(239,165,165) - 0xFFBC, // 115 :: rgb(254,238,231) - 0xFB39, // 116 :: rgb(247,208,208) - 0x7B38, // 117 :: rgb(246,201,201) - 0x6842, // 118 :: rgb(214,16,16) - 0x7FFF, // 119 :: rgb(254,251,251) - 0xFB7B, // 120 :: rgb(250,223,223) - 0xF16C, // 121 :: rgb(227,95,95) - 0x7672, // 122 :: rgb(237,152,152) - 0x7631, // 123 :: rgb(235,138,138) - 0xFE87, // 124 :: rgb(251,165,60) - 0xFFDD, // 125 :: rgb(254,245,240) - 0xFF33, // 126 :: rgb(252,208,154) - 0x7F79, // 127 :: rgb(252,220,207) - 0x7E41, // 128 :: rgb(251,144,12) - 0x7E42, // 129 :: rgb(251,146,19) - 0x7F36, // 130 :: rgb(251,202,182) - 0x7FDC, // 131 :: rgb(254,243,230) - 0x7963, // 132 :: rgb(244,89,24) - 0x7F0E, // 133 :: rgb(252,193,119) - 0xFE87, // 134 :: rgb(251,164,57) - 0x7A2B, // 135 :: rgb(247,138,92) - 0xFA6E, // 136 :: rgb(249,157,119) - 0xFF9B, // 137 :: rgb(253,229,219) - 0x7920, // 138 :: rgb(244,74,3) - 0xFFDE, // 139 :: rgb(254,246,243) - 0xF964, // 140 :: rgb(245,95,32) - 0xF921, // 141 :: rgb(244,76,6) - 0xFAD3, // 142 :: rgb(250,183,155) - 0xFAD3, // 143 :: rgb(250,182,154) - 0xF985, // 144 :: rgb(245,103,44) - 0x7FFE, // 145 :: rgb(255,252,250) - 0x7FFE, // 146 :: rgb(255,251,250) - 0x6800, // 147 :: rgb(212,1,1) - 0x7B18, // 148 :: rgb(245,195,195) - 0x7AD2, // 149 :: rgb(250,178,148) - 0x7ECB, // 150 :: rgb(251,179,87) - 0x7EA8, // 151 :: rgb(251,169,69) - 0xFEAA, // 152 :: rgb(251,176,82) - 0x7652, // 153 :: rgb(236,146,146) - 0xF942, // 154 :: rgb(244,83,16) - 0xF9E9, // 155 :: rgb(246,126,76) - 0xFFDD, // 156 :: rgb(254,246,242) - 0x71EF, // 157 :: rgb(231,120,120) - 0xFB39, // 158 :: rgb(247,206,206) - 0xFF37, // 159 :: rgb(252,208,190) - 0x6D08, // 160 :: rgb(222,65,65) - 0x7FDE, // 161 :: rgb(253,244,244) - 0x7A4D, // 162 :: rgb(248,147,106) - 0xFB5A, // 163 :: rgb(248,216,216) - 0x7F79, // 164 :: rgb(253,220,206) - 0xFAD3, // 165 :: rgb(250,181,153) - 0x7F15, // 166 :: rgb(251,196,173) - 0x7F31, // 167 :: rgb(252,201,137) - 0xF9C8, // 168 :: rgb(246,116,62) - 0xFAB2, // 169 :: rgb(250,176,145) - 0xFF10, // 170 :: rgb(252,198,131) - 0x7A6E, // 171 :: rgb(248,155,117) - 0xFF9B, // 172 :: rgb(253,232,224) - 0xFFBB, // 173 :: rgb(254,240,221) - 0x7920, // 174 :: rgb(244,74,2) - 0x7FDC, // 175 :: rgb(254,243,229) - 0xFE21, // 176 :: rgb(251,141,6) - 0x7F53, // 177 :: rgb(253,210,155) - 0xF9E9, // 178 :: rgb(247,127,77) - 0xFF58, // 179 :: rgb(252,213,197) - 0xFE87, // 180 :: rgb(251,164,58) - 0xFF54, // 181 :: rgb(253,213,164) - 0xFEA9, // 182 :: rgb(251,174,78) - 0xFE21, // 183 :: rgb(251,143,10) - 0x79E8, // 184 :: rgb(246,120,67) - 0x7E87, // 185 :: rgb(251,163,54) - 0xFFDD, // 186 :: rgb(254,248,240) - 0x7F57, // 187 :: rgb(252,210,193) - 0x6800, // 188 :: rgb(212,0,0) +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[189] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0x7E20, // 01 :: rgb(251,139,1)
+ 0xFE20, // 02 :: rgb(251,140,4)
+ 0xFFFF, // 03 :: rgb(255,253,253)
+ 0x6800, // 04 :: rgb(212,2,2)
+ 0xE821, // 05 :: rgb(213,11,11)
+ 0x7E20, // 06 :: rgb(251,139,2)
+ 0x7E20, // 07 :: rgb(251,139,0)
+ 0x7920, // 08 :: rgb(244,72,0)
+ 0xFFFF, // 09 :: rgb(255,254,254)
+ 0xFFFF, // 10 :: rgb(255,254,253)
+ 0xFECC, // 11 :: rgb(252,182,97)
+ 0x7A90, // 12 :: rgb(249,163,128)
+ 0x7FDC, // 13 :: rgb(254,244,231)
+ 0xF985, // 14 :: rgb(245,100,40)
+ 0x7F9A, // 15 :: rgb(253,225,213)
+ 0x7FDD, // 16 :: rgb(253,242,242)
+ 0x6D6B, // 17 :: rgb(226,90,90)
+ 0xFFBC, // 18 :: rgb(254,239,233)
+ 0xF921, // 19 :: rgb(244,77,7)
+ 0x7EED, // 20 :: rgb(252,187,107)
+ 0xFF99, // 21 :: rgb(254,231,203)
+ 0xFFFE, // 22 :: rgb(255,253,250)
+ 0xFF16, // 23 :: rgb(251,199,177)
+ 0xF921, // 24 :: rgb(244,78,8)
+ 0xFE87, // 25 :: rgb(251,167,61)
+ 0xFFBA, // 26 :: rgb(254,237,216)
+ 0x7F31, // 27 :: rgb(253,204,143)
+ 0xFF76, // 28 :: rgb(253,222,183)
+ 0x7B7B, // 29 :: rgb(249,220,220)
+ 0xFAF7, // 30 :: rgb(244,192,192)
+ 0x7FDD, // 31 :: rgb(252,241,241)
+ 0xF18C, // 32 :: rgb(229,102,102)
+ 0xFE87, // 33 :: rgb(251,164,56)
+ 0x7B5A, // 34 :: rgb(247,212,212)
+ 0xFF76, // 35 :: rgb(253,221,181)
+ 0xF652, // 36 :: rgb(237,151,151)
+ 0x7652, // 37 :: rgb(236,145,145)
+ 0x6D29, // 38 :: rgb(224,74,74)
+ 0xE800, // 39 :: rgb(212,3,3)
+ 0x718C, // 40 :: rgb(228,98,98)
+ 0xFF54, // 41 :: rgb(253,214,165)
+ 0x7673, // 42 :: rgb(237,153,153)
+ 0xFF32, // 43 :: rgb(252,205,148)
+ 0x7EA8, // 44 :: rgb(251,169,68)
+ 0x6CC6, // 45 :: rgb(219,48,48)
+ 0x7FBA, // 46 :: rgb(254,234,211)
+ 0xE842, // 47 :: rgb(215,20,20)
+ 0xFB7B, // 48 :: rgb(250,224,224)
+ 0xFF77, // 49 :: rgb(253,224,187)
+ 0xF652, // 50 :: rgb(237,149,149)
+ 0x7F75, // 51 :: rgb(253,218,175)
+ 0x7FFE, // 52 :: rgb(254,249,249)
+ 0x7EEC, // 53 :: rgb(252,185,102)
+ 0x7FBD, // 54 :: rgb(252,236,236)
+ 0xFFFF, // 55 :: rgb(255,253,251)
+ 0x7EED, // 56 :: rgb(252,188,109)
+ 0x7FFF, // 57 :: rgb(254,252,252)
+ 0xFAF7, // 58 :: rgb(243,189,189)
+ 0x7B9B, // 59 :: rgb(250,225,225)
+ 0x7AD2, // 60 :: rgb(250,179,149)
+ 0xED09, // 61 :: rgb(224,70,70)
+ 0xECA5, // 62 :: rgb(218,43,43)
+ 0xFAF4, // 63 :: rgb(250,190,165)
+ 0x6D4A, // 64 :: rgb(225,82,82)
+ 0xED08, // 65 :: rgb(223,69,69)
+ 0x6D08, // 66 :: rgb(222,63,63)
+ 0x76D6, // 67 :: rgb(242,178,178)
+ 0xECC6, // 68 :: rgb(220,51,51)
+ 0xF1AD, // 69 :: rgb(229,109,109)
+ 0xFFDD, // 70 :: rgb(254,246,235)
+ 0x718C, // 71 :: rgb(228,97,97)
+ 0xFFBC, // 72 :: rgb(254,239,234)
+ 0xFF77, // 73 :: rgb(253,223,187)
+ 0x76D6, // 74 :: rgb(242,179,179)
+ 0x6863, // 75 :: rgb(216,26,26)
+ 0x7AB1, // 76 :: rgb(249,169,136)
+ 0xE843, // 77 :: rgb(215,21,21)
+ 0xFF9C, // 78 :: rgb(251,230,230)
+ 0xF9A6, // 79 :: rgb(245,108,51)
+ 0x7F97, // 80 :: rgb(253,225,189)
+ 0x7942, // 81 :: rgb(244,81,13)
+ 0x7FBA, // 82 :: rgb(254,236,215)
+ 0xFE21, // 83 :: rgb(251,143,11)
+ 0x7FBC, // 84 :: rgb(251,234,234)
+ 0xFB18, // 85 :: rgb(245,197,197)
+ 0x76D6, // 86 :: rgb(242,177,177)
+ 0x71AD, // 87 :: rgb(229,106,106)
+ 0xFAB2, // 88 :: rgb(249,176,144)
+ 0x7F9A, // 89 :: rgb(253,227,217)
+ 0x7FDD, // 90 :: rgb(254,242,237)
+ 0x7FDE, // 91 :: rgb(253,243,243)
+ 0x7AB1, // 92 :: rgb(249,171,139)
+ 0xFFBB, // 93 :: rgb(254,239,221)
+ 0xF694, // 94 :: rgb(240,167,167)
+ 0xFF7A, // 95 :: rgb(253,224,213)
+ 0x7F0E, // 96 :: rgb(253,193,117)
+ 0xFA6F, // 97 :: rgb(249,159,121)
+ 0x7FFE, // 98 :: rgb(255,251,247)
+ 0xFEAA, // 99 :: rgb(251,175,80)
+ 0x7694, // 100 :: rgb(239,161,161)
+ 0x7AF3, // 101 :: rgb(250,186,160)
+ 0xE801, // 102 :: rgb(213,5,5)
+ 0xFA6F, // 103 :: rgb(249,159,122)
+ 0x7FDB, // 104 :: rgb(254,241,224)
+ 0xF920, // 105 :: rgb(244,75,4)
+ 0x7A8F, // 106 :: rgb(249,160,123)
+ 0x7694, // 107 :: rgb(239,163,163)
+ 0xE822, // 108 :: rgb(214,14,14)
+ 0x6D29, // 109 :: rgb(223,71,71)
+ 0xFF55, // 110 :: rgb(253,215,169)
+ 0x7A8F, // 111 :: rgb(249,161,124)
+ 0xFF32, // 112 :: rgb(253,207,151)
+ 0x7FBB, // 113 :: rgb(253,233,224)
+ 0xF694, // 114 :: rgb(239,165,165)
+ 0xFFBC, // 115 :: rgb(254,238,231)
+ 0xFB39, // 116 :: rgb(247,208,208)
+ 0x7B38, // 117 :: rgb(246,201,201)
+ 0x6842, // 118 :: rgb(214,16,16)
+ 0x7FFF, // 119 :: rgb(254,251,251)
+ 0xFB7B, // 120 :: rgb(250,223,223)
+ 0xF16C, // 121 :: rgb(227,95,95)
+ 0x7672, // 122 :: rgb(237,152,152)
+ 0x7631, // 123 :: rgb(235,138,138)
+ 0xFE87, // 124 :: rgb(251,165,60)
+ 0xFFDD, // 125 :: rgb(254,245,240)
+ 0xFF33, // 126 :: rgb(252,208,154)
+ 0x7F79, // 127 :: rgb(252,220,207)
+ 0x7E41, // 128 :: rgb(251,144,12)
+ 0x7E42, // 129 :: rgb(251,146,19)
+ 0x7F36, // 130 :: rgb(251,202,182)
+ 0x7FDC, // 131 :: rgb(254,243,230)
+ 0x7963, // 132 :: rgb(244,89,24)
+ 0x7F0E, // 133 :: rgb(252,193,119)
+ 0xFE87, // 134 :: rgb(251,164,57)
+ 0x7A2B, // 135 :: rgb(247,138,92)
+ 0xFA6E, // 136 :: rgb(249,157,119)
+ 0xFF9B, // 137 :: rgb(253,229,219)
+ 0x7920, // 138 :: rgb(244,74,3)
+ 0xFFDE, // 139 :: rgb(254,246,243)
+ 0xF964, // 140 :: rgb(245,95,32)
+ 0xF921, // 141 :: rgb(244,76,6)
+ 0xFAD3, // 142 :: rgb(250,183,155)
+ 0xFAD3, // 143 :: rgb(250,182,154)
+ 0xF985, // 144 :: rgb(245,103,44)
+ 0x7FFE, // 145 :: rgb(255,252,250)
+ 0x7FFE, // 146 :: rgb(255,251,250)
+ 0x6800, // 147 :: rgb(212,1,1)
+ 0x7B18, // 148 :: rgb(245,195,195)
+ 0x7AD2, // 149 :: rgb(250,178,148)
+ 0x7ECB, // 150 :: rgb(251,179,87)
+ 0x7EA8, // 151 :: rgb(251,169,69)
+ 0xFEAA, // 152 :: rgb(251,176,82)
+ 0x7652, // 153 :: rgb(236,146,146)
+ 0xF942, // 154 :: rgb(244,83,16)
+ 0xF9E9, // 155 :: rgb(246,126,76)
+ 0xFFDD, // 156 :: rgb(254,246,242)
+ 0x71EF, // 157 :: rgb(231,120,120)
+ 0xFB39, // 158 :: rgb(247,206,206)
+ 0xFF37, // 159 :: rgb(252,208,190)
+ 0x6D08, // 160 :: rgb(222,65,65)
+ 0x7FDE, // 161 :: rgb(253,244,244)
+ 0x7A4D, // 162 :: rgb(248,147,106)
+ 0xFB5A, // 163 :: rgb(248,216,216)
+ 0x7F79, // 164 :: rgb(253,220,206)
+ 0xFAD3, // 165 :: rgb(250,181,153)
+ 0x7F15, // 166 :: rgb(251,196,173)
+ 0x7F31, // 167 :: rgb(252,201,137)
+ 0xF9C8, // 168 :: rgb(246,116,62)
+ 0xFAB2, // 169 :: rgb(250,176,145)
+ 0xFF10, // 170 :: rgb(252,198,131)
+ 0x7A6E, // 171 :: rgb(248,155,117)
+ 0xFF9B, // 172 :: rgb(253,232,224)
+ 0xFFBB, // 173 :: rgb(254,240,221)
+ 0x7920, // 174 :: rgb(244,74,2)
+ 0x7FDC, // 175 :: rgb(254,243,229)
+ 0xFE21, // 176 :: rgb(251,141,6)
+ 0x7F53, // 177 :: rgb(253,210,155)
+ 0xF9E9, // 178 :: rgb(247,127,77)
+ 0xFF58, // 179 :: rgb(252,213,197)
+ 0xFE87, // 180 :: rgb(251,164,58)
+ 0xFF54, // 181 :: rgb(253,213,164)
+ 0xFEA9, // 182 :: rgb(251,174,78)
+ 0xFE21, // 183 :: rgb(251,143,10)
+ 0x79E8, // 184 :: rgb(246,120,67)
+ 0x7E87, // 185 :: rgb(251,163,54)
+ 0xFFDD, // 186 :: rgb(254,248,240)
+ 0x7F57, // 187 :: rgb(252,210,193)
+ 0x6800, // 188 :: rgb(212,0,0)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h index eba6d22..2be515d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/logo_gfx.h @@ -1,17 +1,17 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __logo_gfx__ -#define __logo_gfx__ -#include <stdint.h> - -#define logo_gfx_transparent_color_index 0 - -#define ubuntu_width 32 -#define ubuntu_height 32 -#define ubuntu_size 1026 -extern uint8_t ubuntu_data[1026]; -#define ubuntu ((gfx_sprite_t*)ubuntu_data) -#define sizeof_logo_gfx_pal 378 -extern uint16_t logo_gfx_pal[189]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define logo_gfx_transparent_color_index 0
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 378
+extern uint16_t logo_gfx_pal[189];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c index ac4f3b9..053323a 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/gfx/ubuntu.c @@ -1,40 +1,40 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -// 8 bpp image -uint8_t ubuntu_data[1026] = { - 32,32, // width,height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x43,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0xBC,0xBC,0x05,0x1E,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x59,0x3F,0x4C,0x0C,0x8E,0x12,0xA3,0xBC,0xBC,0xBC,0xBC,0x26,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x0E,0x08,0x08,0x08,0x08,0x08,0xA6,0x9E,0xBC,0xBC,0xBC,0xBC,0x41,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x89,0x13,0x08,0x08,0x08,0x08,0x08,0xA2,0x09,0xA0,0xBC,0xBC,0x93,0x56,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x81,0x0D,0x00,0x88,0x08,0x08,0x08,0x08,0x08,0x13,0xA4,0xA1,0x99,0x9D,0x94,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x01,0x07,0x0B,0x00,0x7D,0x84,0x69,0x8C,0x90,0x18,0x08,0x9A,0xA5,0x9C,0x92,0x0F,0x5C,0x09,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x53,0x07,0x07,0x06,0x15,0x00,0x5F,0x5A,0x00,0x00,0x91,0x9F,0x9B,0x08,0x08,0x8D,0x08,0x08,0x3C,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x07,0x07,0x07,0x07,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x8F,0x8A,0x08,0x08,0x08,0x51,0x48,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAD,0x01,0x07,0x07,0x07,0x7C,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x07,0x07,0x07,0x06,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x4F,0x08,0x08,0x08,0x0E,0x09,0x00,0x00, - 0x00,0x00,0x00,0x8B,0xA9,0xAB,0xBB,0x00,0x14,0x07,0x07,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x08,0x08,0x08,0x08,0x12,0x00,0x00, - 0x00,0x00,0x0A,0xA8,0x08,0x08,0xAE,0x17,0xBA,0xB7,0x07,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6F,0x6A,0x67,0x61,0x71,0x00,0x00, - 0x00,0x00,0x7F,0x08,0x08,0x08,0x08,0xB8,0x00,0xB4,0x07,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xB2,0x00,0xB9,0x07,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5B,0x64,0x6B,0x72,0x5E,0x54,0x00,0x00, - 0x00,0x00,0x09,0x87,0x08,0x08,0x18,0xB3,0xAF,0xB0,0x07,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xBC,0xBC,0xBC,0xBC,0x4E,0x00,0x00, - 0x00,0x00,0x00,0x0A,0x17,0x95,0xAC,0x16,0xB6,0x07,0x07,0x80,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xBC,0xBC,0xBC,0x4B,0x03,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x07,0x07,0x07,0x07,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0x04,0xBC,0xBC,0xBC,0x45,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x86,0x07,0x07,0x07,0x07,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x4D,0xBC,0xBC,0xBC,0x27,0x22,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x07,0x07,0x07,0x07,0x33,0x00,0x34,0x09,0x00,0x00,0x00,0x10,0x7B,0x05,0xBC,0xBC,0xBC,0xBC,0x20,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x07,0x2C,0x09,0x39,0x2D,0x44,0x47,0x57,0x6D,0x6C,0xBC,0xBC,0x04,0x05,0xBC,0x3E,0x1F,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x0B,0x02,0x2E,0x00,0x32,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0x76,0x7A,0x10,0x77,0x78,0x3B,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x36,0x2F,0xBC,0xBC,0xBC,0xBC,0xBC,0x66,0x75,0x62,0x70,0x60,0x50,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x04,0xBC,0xBC,0xBC,0xBC,0xBC,0x79,0x09,0x63,0x07,0x07,0x01,0x29,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x24,0x28,0x3D,0x42,0x11,0x55,0x68,0x07,0x07,0x07,0x07,0x21,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x06,0x07,0x07,0x07,0x19,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x07,0x07,0x02,0x1C,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x1B,0x1A,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x43,0x25,0x1D,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x11,0xBC,0xBC,0x05,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x59,0x3F,0x4C,0x0C,0x8E,0x12,0xA3,0xBC,0xBC,0xBC,0xBC,0x26,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x0E,0x08,0x08,0x08,0x08,0x08,0xA6,0x9E,0xBC,0xBC,0xBC,0xBC,0x41,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x00,0x89,0x13,0x08,0x08,0x08,0x08,0x08,0xA2,0x09,0xA0,0xBC,0xBC,0x93,0x56,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x81,0x0D,0x00,0x88,0x08,0x08,0x08,0x08,0x08,0x13,0xA4,0xA1,0x99,0x9D,0x94,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6E,0x01,0x07,0x0B,0x00,0x7D,0x84,0x69,0x8C,0x90,0x18,0x08,0x9A,0xA5,0x9C,0x92,0x0F,0x5C,0x09,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x53,0x07,0x07,0x06,0x15,0x00,0x5F,0x5A,0x00,0x00,0x91,0x9F,0x9B,0x08,0x08,0x8D,0x08,0x08,0x3C,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x07,0x07,0x07,0x07,0x85,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x8F,0x8A,0x08,0x08,0x08,0x51,0x48,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAD,0x01,0x07,0x07,0x07,0x7C,0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x08,0x08,0x08,0x0C,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB5,0x07,0x07,0x07,0x06,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x4F,0x08,0x08,0x08,0x0E,0x09,0x00,0x00,
+ 0x00,0x00,0x00,0x8B,0xA9,0xAB,0xBB,0x00,0x14,0x07,0x07,0x97,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x08,0x08,0x08,0x08,0x12,0x00,0x00,
+ 0x00,0x00,0x0A,0xA8,0x08,0x08,0xAE,0x17,0xBA,0xB7,0x07,0xAA,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x73,0x6F,0x6A,0x67,0x61,0x71,0x00,0x00,
+ 0x00,0x00,0x7F,0x08,0x08,0x08,0x08,0xB8,0x00,0xB4,0x07,0xB1,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x0F,0x08,0x08,0x08,0x08,0xB2,0x00,0xB9,0x07,0xA7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5B,0x64,0x6B,0x72,0x5E,0x54,0x00,0x00,
+ 0x00,0x00,0x09,0x87,0x08,0x08,0x18,0xB3,0xAF,0xB0,0x07,0x96,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4A,0xBC,0xBC,0xBC,0xBC,0x4E,0x00,0x00,
+ 0x00,0x00,0x00,0x0A,0x17,0x95,0xAC,0x16,0xB6,0x07,0x07,0x80,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0xBC,0xBC,0xBC,0x4B,0x03,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x07,0x07,0x07,0x07,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3A,0x04,0xBC,0xBC,0xBC,0x45,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x86,0x07,0x07,0x07,0x07,0x2B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x74,0x4D,0xBC,0xBC,0xBC,0x27,0x22,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x49,0x07,0x07,0x07,0x07,0x33,0x00,0x34,0x09,0x00,0x00,0x00,0x10,0x7B,0x05,0xBC,0xBC,0xBC,0xBC,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x07,0x07,0x2C,0x09,0x39,0x2D,0x44,0x47,0x57,0x6D,0x6C,0xBC,0xBC,0x04,0x05,0xBC,0x3E,0x1F,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x0B,0x02,0x2E,0x00,0x32,0xBC,0xBC,0xBC,0xBC,0xBC,0xBC,0x76,0x7A,0x10,0x77,0x78,0x3B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x00,0x36,0x2F,0xBC,0xBC,0xBC,0xBC,0xBC,0x66,0x75,0x62,0x70,0x60,0x50,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2A,0x04,0xBC,0xBC,0xBC,0xBC,0xBC,0x79,0x09,0x63,0x07,0x07,0x01,0x29,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x24,0x28,0x3D,0x42,0x11,0x55,0x68,0x07,0x07,0x07,0x07,0x21,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x06,0x07,0x07,0x07,0x19,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x07,0x07,0x02,0x1C,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0x1B,0x1A,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c index 0939a9d..2eeee66 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_keys/src/main.c @@ -1,89 +1,89 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> -#include <keypadc.h> - -/* Include the sprite data */ -#include "gfx/logo_gfx.h" - -/* Function for drawing the main sprite */ -void draw_sprite(int x, int y) { - /* Fill the screen with color index 0 - /* Note that this is a super inefficient way to - /* redraw, but it demonstrates a simple way of clearing past data */ - gfx_FillScreen(0); - - /* Draw a bunch of different styled sprites on the screen */ - gfx_Sprite(ubuntu, x, y); - - /* Copy the buffer to the screen */ - gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer) -} - -void main(void) { - bool right; - bool left; - bool up; - bool down; - kb_key_t arrows; - - /* Coordinates used for the sprite */ - int x, y; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette for our sprites */ - gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0); - - /* Start at 0, 0 */ - x = 0; - y = 0; - - gfx_SetDrawBuffer(); - - draw_sprite(x, y); - - do { - /* Scan the keypad to update kb_Data */ - kb_Scan(); - - /* Get the arrow key statuses */ - arrows = kb_Data[7]; - - /* Convert the data to booleans so we can read them easier */ - right = arrows & kb_Right; - left = arrows & kb_Left; - down = arrows & kb_Down; - up = arrows & kb_Up; - - /* If any arrows are pressed, do this */ - if (arrows) { - /* Do different directions depending on the keypress */ - if (right) { - x++; - } - if (left) { - x--; - } - if (down) { - y++; - } - if (up) { - y--; - } - draw_sprite(x, y); - } - } while (kb_Data[6] != kb_Clear); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+#include <keypadc.h>
+
+/* Include the sprite data */
+#include "gfx/logo_gfx.h"
+
+/* Function for drawing the main sprite */
+void draw_sprite(int x, int y) {
+ /* Fill the screen with color index 0
+ /* Note that this is a super inefficient way to
+ /* redraw, but it demonstrates a simple way of clearing past data */
+ gfx_FillScreen(0);
+
+ /* Draw a bunch of different styled sprites on the screen */
+ gfx_Sprite(ubuntu, x, y);
+
+ /* Copy the buffer to the screen */
+ gfx_BlitBuffer(); // This is the same as gfx_Blit(gfx_buffer)
+}
+
+void main(void) {
+ bool right;
+ bool left;
+ bool up;
+ bool down;
+ kb_key_t arrows;
+
+ /* Coordinates used for the sprite */
+ int x, y;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette for our sprites */
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ /* Start at 0, 0 */
+ x = 0;
+ y = 0;
+
+ gfx_SetDrawBuffer();
+
+ draw_sprite(x, y);
+
+ do {
+ /* Scan the keypad to update kb_Data */
+ kb_Scan();
+
+ /* Get the arrow key statuses */
+ arrows = kb_Data[7];
+
+ /* Convert the data to booleans so we can read them easier */
+ right = arrows & kb_Right;
+ left = arrows & kb_Left;
+ down = arrows & kb_Down;
+ up = arrows & kb_Up;
+
+ /* If any arrows are pressed, do this */
+ if (arrows) {
+ /* Do different directions depending on the keypress */
+ if (right) {
+ x++;
+ }
+ if (left) {
+ x--;
+ }
+ if (down) {
+ y++;
+ }
+ if (up) {
+ y--;
+ }
+ draw_sprite(x, y);
+ }
+ } while (kb_Data[6] != kb_Clear);
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json index 3a75731..6e283c4 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|300", - "hash|1", - "key|enter", - "delay|300", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Make sure the rotated sprites are displayed properly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "14098FC" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|300",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the rotated sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "14098FC" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md index 79a6b5d..8b53b0d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/readme.md @@ -1,10 +1,10 @@ -### GraphX Sprite Rotation Demo - -Demonstrates rotating and flipping sprites. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Sprite Rotation Demo
+
+Demonstrates rotating and flipping sprites.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini index 10642ba..4d215dc 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/convpng.ini @@ -1,4 +1,4 @@ -#GroupC : logo_gfx -#PNGImages : - ubuntu - +#GroupC : logo_gfx
+#PNGImages :
+ ubuntu
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c index 4e62af6..70c516f 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.c @@ -1,196 +1,196 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -uint16_t logo_gfx_pal[190] = { - 0xFFFF, // 00 :: rgb(255,255,255) - 0xE821, // 01 :: rgb(213,11,11) - 0x7E20, // 02 :: rgb(251,139,2) - 0x7E20, // 03 :: rgb(251,139,1) - 0xFFFF, // 04 :: rgb(255,254,254) - 0xFFFF, // 05 :: rgb(255,255,254) - 0x6800, // 06 :: rgb(212,2,2) - 0x6800, // 07 :: rgb(212,0,0) - 0x7E20, // 08 :: rgb(251,139,0) - 0x7920, // 09 :: rgb(244,72,0) - 0xFE20, // 10 :: rgb(251,140,4) - 0xFFFF, // 11 :: rgb(255,253,253) - 0xFFFF, // 12 :: rgb(255,254,253) - 0xFECC, // 13 :: rgb(252,182,97) - 0x7A90, // 14 :: rgb(249,163,128) - 0x7FDC, // 15 :: rgb(254,244,231) - 0xF985, // 16 :: rgb(245,100,40) - 0x7F9A, // 17 :: rgb(253,225,213) - 0x7FDD, // 18 :: rgb(253,242,242) - 0x6D6B, // 19 :: rgb(226,90,90) - 0xFFBC, // 20 :: rgb(254,239,233) - 0xF921, // 21 :: rgb(244,77,7) - 0x7EED, // 22 :: rgb(252,187,107) - 0xFF99, // 23 :: rgb(254,231,203) - 0xFFFE, // 24 :: rgb(255,253,250) - 0xFF16, // 25 :: rgb(251,199,177) - 0xF921, // 26 :: rgb(244,78,8) - 0xFE87, // 27 :: rgb(251,167,61) - 0xFFBA, // 28 :: rgb(254,237,216) - 0x7F31, // 29 :: rgb(253,204,143) - 0xFF76, // 30 :: rgb(253,222,183) - 0x7B7B, // 31 :: rgb(249,220,220) - 0xFAF7, // 32 :: rgb(244,192,192) - 0x7FDD, // 33 :: rgb(252,241,241) - 0xF18C, // 34 :: rgb(229,102,102) - 0xFE87, // 35 :: rgb(251,164,56) - 0x7B5A, // 36 :: rgb(247,212,212) - 0xFF76, // 37 :: rgb(253,221,181) - 0xF652, // 38 :: rgb(237,151,151) - 0x7652, // 39 :: rgb(236,145,145) - 0x6D29, // 40 :: rgb(224,74,74) - 0xE800, // 41 :: rgb(212,3,3) - 0x718C, // 42 :: rgb(228,98,98) - 0xFF54, // 43 :: rgb(253,214,165) - 0xFB7B, // 44 :: rgb(250,224,224) - 0x7673, // 45 :: rgb(237,153,153) - 0xFF32, // 46 :: rgb(252,205,148) - 0x7EA8, // 47 :: rgb(251,169,68) - 0x6CC6, // 48 :: rgb(219,48,48) - 0x7FBA, // 49 :: rgb(254,234,211) - 0xE842, // 50 :: rgb(215,20,20) - 0xFF77, // 51 :: rgb(253,224,187) - 0xF652, // 52 :: rgb(237,149,149) - 0x7F75, // 53 :: rgb(253,218,175) - 0x7FFE, // 54 :: rgb(254,249,249) - 0x7EEC, // 55 :: rgb(252,185,102) - 0x7FBD, // 56 :: rgb(252,236,236) - 0xFFFF, // 57 :: rgb(255,253,251) - 0x7EED, // 58 :: rgb(252,188,109) - 0x7FFF, // 59 :: rgb(254,252,252) - 0xFAF7, // 60 :: rgb(243,189,189) - 0x7B9B, // 61 :: rgb(250,225,225) - 0x7AD2, // 62 :: rgb(250,179,149) - 0xED09, // 63 :: rgb(224,70,70) - 0xECA5, // 64 :: rgb(218,43,43) - 0xFAF4, // 65 :: rgb(250,190,165) - 0x6D4A, // 66 :: rgb(225,82,82) - 0xED08, // 67 :: rgb(223,69,69) - 0x6D08, // 68 :: rgb(222,63,63) - 0x76D6, // 69 :: rgb(242,178,178) - 0xECC6, // 70 :: rgb(220,51,51) - 0xF1AD, // 71 :: rgb(229,109,109) - 0xFFDD, // 72 :: rgb(254,246,235) - 0x718C, // 73 :: rgb(228,97,97) - 0xFFBC, // 74 :: rgb(254,239,234) - 0xFF77, // 75 :: rgb(253,223,187) - 0x76D6, // 76 :: rgb(242,179,179) - 0x6863, // 77 :: rgb(216,26,26) - 0x7AB1, // 78 :: rgb(249,169,136) - 0xE843, // 79 :: rgb(215,21,21) - 0xFF9C, // 80 :: rgb(251,230,230) - 0xF9A6, // 81 :: rgb(245,108,51) - 0x7F97, // 82 :: rgb(253,225,189) - 0x7942, // 83 :: rgb(244,81,13) - 0x7FBA, // 84 :: rgb(254,236,215) - 0xFE21, // 85 :: rgb(251,143,11) - 0x7FBC, // 86 :: rgb(251,234,234) - 0xFB18, // 87 :: rgb(245,197,197) - 0x76D6, // 88 :: rgb(242,177,177) - 0x71AD, // 89 :: rgb(229,106,106) - 0xFAB2, // 90 :: rgb(249,176,144) - 0x7F9A, // 91 :: rgb(253,227,217) - 0x7FDD, // 92 :: rgb(254,242,237) - 0x7FDE, // 93 :: rgb(253,243,243) - 0x7AB1, // 94 :: rgb(249,171,139) - 0xFFBB, // 95 :: rgb(254,239,221) - 0xF694, // 96 :: rgb(240,167,167) - 0x7AF3, // 97 :: rgb(250,186,160) - 0xFF7A, // 98 :: rgb(253,224,213) - 0x7F0E, // 99 :: rgb(253,193,117) - 0xFA6F, // 100 :: rgb(249,159,121) - 0x7FFE, // 101 :: rgb(255,251,247) - 0xFEAA, // 102 :: rgb(251,175,80) - 0x7694, // 103 :: rgb(239,161,161) - 0xE801, // 104 :: rgb(213,5,5) - 0xFA6F, // 105 :: rgb(249,159,122) - 0x7FDB, // 106 :: rgb(254,241,224) - 0xF920, // 107 :: rgb(244,75,4) - 0x7A8F, // 108 :: rgb(249,160,123) - 0x7694, // 109 :: rgb(239,163,163) - 0xE822, // 110 :: rgb(214,14,14) - 0x6D29, // 111 :: rgb(223,71,71) - 0xFF55, // 112 :: rgb(253,215,169) - 0x7A8F, // 113 :: rgb(249,161,124) - 0xFF32, // 114 :: rgb(253,207,151) - 0x7FBB, // 115 :: rgb(253,233,224) - 0xF694, // 116 :: rgb(239,165,165) - 0xFFBC, // 117 :: rgb(254,238,231) - 0xFB39, // 118 :: rgb(247,208,208) - 0x7B38, // 119 :: rgb(246,201,201) - 0x6842, // 120 :: rgb(214,16,16) - 0x7FFF, // 121 :: rgb(254,251,251) - 0xFB7B, // 122 :: rgb(250,223,223) - 0xF16C, // 123 :: rgb(227,95,95) - 0x7672, // 124 :: rgb(237,152,152) - 0x7631, // 125 :: rgb(235,138,138) - 0xFE87, // 126 :: rgb(251,165,60) - 0xFFDD, // 127 :: rgb(254,245,240) - 0xFF33, // 128 :: rgb(252,208,154) - 0x7F79, // 129 :: rgb(252,220,207) - 0x7E41, // 130 :: rgb(251,144,12) - 0x7E42, // 131 :: rgb(251,146,19) - 0x7F36, // 132 :: rgb(251,202,182) - 0x7FDC, // 133 :: rgb(254,243,230) - 0x7963, // 134 :: rgb(244,89,24) - 0x7F0E, // 135 :: rgb(252,193,119) - 0xFE87, // 136 :: rgb(251,164,57) - 0x7A2B, // 137 :: rgb(247,138,92) - 0xFA6E, // 138 :: rgb(249,157,119) - 0xFF9B, // 139 :: rgb(253,229,219) - 0x7920, // 140 :: rgb(244,74,3) - 0xFFDE, // 141 :: rgb(254,246,243) - 0xF964, // 142 :: rgb(245,95,32) - 0xF921, // 143 :: rgb(244,76,6) - 0xFAD3, // 144 :: rgb(250,183,155) - 0xFAD3, // 145 :: rgb(250,182,154) - 0xF985, // 146 :: rgb(245,103,44) - 0x7FFE, // 147 :: rgb(255,252,250) - 0x7FFE, // 148 :: rgb(255,251,250) - 0x6800, // 149 :: rgb(212,1,1) - 0x7B18, // 150 :: rgb(245,195,195) - 0x7AD2, // 151 :: rgb(250,178,148) - 0x7ECB, // 152 :: rgb(251,179,87) - 0x7EA8, // 153 :: rgb(251,169,69) - 0xFEAA, // 154 :: rgb(251,176,82) - 0x7652, // 155 :: rgb(236,146,146) - 0xF942, // 156 :: rgb(244,83,16) - 0xF9E9, // 157 :: rgb(246,126,76) - 0xFFDD, // 158 :: rgb(254,246,242) - 0x71EF, // 159 :: rgb(231,120,120) - 0xFB39, // 160 :: rgb(247,206,206) - 0xFF37, // 161 :: rgb(252,208,190) - 0x6D08, // 162 :: rgb(222,65,65) - 0x7FDE, // 163 :: rgb(253,244,244) - 0x7A4D, // 164 :: rgb(248,147,106) - 0xFB5A, // 165 :: rgb(248,216,216) - 0x7F79, // 166 :: rgb(253,220,206) - 0xFAD3, // 167 :: rgb(250,181,153) - 0x7F15, // 168 :: rgb(251,196,173) - 0x7F31, // 169 :: rgb(252,201,137) - 0xF9C8, // 170 :: rgb(246,116,62) - 0xFAB2, // 171 :: rgb(250,176,145) - 0xFF10, // 172 :: rgb(252,198,131) - 0x7A6E, // 173 :: rgb(248,155,117) - 0xFF9B, // 174 :: rgb(253,232,224) - 0xFFBB, // 175 :: rgb(254,240,221) - 0x7920, // 176 :: rgb(244,74,2) - 0x7FDC, // 177 :: rgb(254,243,229) - 0xFE21, // 178 :: rgb(251,141,6) - 0x7F53, // 179 :: rgb(253,210,155) - 0xF9E9, // 180 :: rgb(247,127,77) - 0xFF58, // 181 :: rgb(252,213,197) - 0xFE87, // 182 :: rgb(251,164,58) - 0xFF54, // 183 :: rgb(253,213,164) - 0xFEA9, // 184 :: rgb(251,174,78) - 0xFE21, // 185 :: rgb(251,143,10) - 0x79E8, // 186 :: rgb(246,120,67) - 0x7E87, // 187 :: rgb(251,163,54) - 0xFFDD, // 188 :: rgb(254,248,240) - 0x7F57, // 189 :: rgb(252,210,193) +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[190] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0xE821, // 01 :: rgb(213,11,11)
+ 0x7E20, // 02 :: rgb(251,139,2)
+ 0x7E20, // 03 :: rgb(251,139,1)
+ 0xFFFF, // 04 :: rgb(255,254,254)
+ 0xFFFF, // 05 :: rgb(255,255,254)
+ 0x6800, // 06 :: rgb(212,2,2)
+ 0x6800, // 07 :: rgb(212,0,0)
+ 0x7E20, // 08 :: rgb(251,139,0)
+ 0x7920, // 09 :: rgb(244,72,0)
+ 0xFE20, // 10 :: rgb(251,140,4)
+ 0xFFFF, // 11 :: rgb(255,253,253)
+ 0xFFFF, // 12 :: rgb(255,254,253)
+ 0xFECC, // 13 :: rgb(252,182,97)
+ 0x7A90, // 14 :: rgb(249,163,128)
+ 0x7FDC, // 15 :: rgb(254,244,231)
+ 0xF985, // 16 :: rgb(245,100,40)
+ 0x7F9A, // 17 :: rgb(253,225,213)
+ 0x7FDD, // 18 :: rgb(253,242,242)
+ 0x6D6B, // 19 :: rgb(226,90,90)
+ 0xFFBC, // 20 :: rgb(254,239,233)
+ 0xF921, // 21 :: rgb(244,77,7)
+ 0x7EED, // 22 :: rgb(252,187,107)
+ 0xFF99, // 23 :: rgb(254,231,203)
+ 0xFFFE, // 24 :: rgb(255,253,250)
+ 0xFF16, // 25 :: rgb(251,199,177)
+ 0xF921, // 26 :: rgb(244,78,8)
+ 0xFE87, // 27 :: rgb(251,167,61)
+ 0xFFBA, // 28 :: rgb(254,237,216)
+ 0x7F31, // 29 :: rgb(253,204,143)
+ 0xFF76, // 30 :: rgb(253,222,183)
+ 0x7B7B, // 31 :: rgb(249,220,220)
+ 0xFAF7, // 32 :: rgb(244,192,192)
+ 0x7FDD, // 33 :: rgb(252,241,241)
+ 0xF18C, // 34 :: rgb(229,102,102)
+ 0xFE87, // 35 :: rgb(251,164,56)
+ 0x7B5A, // 36 :: rgb(247,212,212)
+ 0xFF76, // 37 :: rgb(253,221,181)
+ 0xF652, // 38 :: rgb(237,151,151)
+ 0x7652, // 39 :: rgb(236,145,145)
+ 0x6D29, // 40 :: rgb(224,74,74)
+ 0xE800, // 41 :: rgb(212,3,3)
+ 0x718C, // 42 :: rgb(228,98,98)
+ 0xFF54, // 43 :: rgb(253,214,165)
+ 0xFB7B, // 44 :: rgb(250,224,224)
+ 0x7673, // 45 :: rgb(237,153,153)
+ 0xFF32, // 46 :: rgb(252,205,148)
+ 0x7EA8, // 47 :: rgb(251,169,68)
+ 0x6CC6, // 48 :: rgb(219,48,48)
+ 0x7FBA, // 49 :: rgb(254,234,211)
+ 0xE842, // 50 :: rgb(215,20,20)
+ 0xFF77, // 51 :: rgb(253,224,187)
+ 0xF652, // 52 :: rgb(237,149,149)
+ 0x7F75, // 53 :: rgb(253,218,175)
+ 0x7FFE, // 54 :: rgb(254,249,249)
+ 0x7EEC, // 55 :: rgb(252,185,102)
+ 0x7FBD, // 56 :: rgb(252,236,236)
+ 0xFFFF, // 57 :: rgb(255,253,251)
+ 0x7EED, // 58 :: rgb(252,188,109)
+ 0x7FFF, // 59 :: rgb(254,252,252)
+ 0xFAF7, // 60 :: rgb(243,189,189)
+ 0x7B9B, // 61 :: rgb(250,225,225)
+ 0x7AD2, // 62 :: rgb(250,179,149)
+ 0xED09, // 63 :: rgb(224,70,70)
+ 0xECA5, // 64 :: rgb(218,43,43)
+ 0xFAF4, // 65 :: rgb(250,190,165)
+ 0x6D4A, // 66 :: rgb(225,82,82)
+ 0xED08, // 67 :: rgb(223,69,69)
+ 0x6D08, // 68 :: rgb(222,63,63)
+ 0x76D6, // 69 :: rgb(242,178,178)
+ 0xECC6, // 70 :: rgb(220,51,51)
+ 0xF1AD, // 71 :: rgb(229,109,109)
+ 0xFFDD, // 72 :: rgb(254,246,235)
+ 0x718C, // 73 :: rgb(228,97,97)
+ 0xFFBC, // 74 :: rgb(254,239,234)
+ 0xFF77, // 75 :: rgb(253,223,187)
+ 0x76D6, // 76 :: rgb(242,179,179)
+ 0x6863, // 77 :: rgb(216,26,26)
+ 0x7AB1, // 78 :: rgb(249,169,136)
+ 0xE843, // 79 :: rgb(215,21,21)
+ 0xFF9C, // 80 :: rgb(251,230,230)
+ 0xF9A6, // 81 :: rgb(245,108,51)
+ 0x7F97, // 82 :: rgb(253,225,189)
+ 0x7942, // 83 :: rgb(244,81,13)
+ 0x7FBA, // 84 :: rgb(254,236,215)
+ 0xFE21, // 85 :: rgb(251,143,11)
+ 0x7FBC, // 86 :: rgb(251,234,234)
+ 0xFB18, // 87 :: rgb(245,197,197)
+ 0x76D6, // 88 :: rgb(242,177,177)
+ 0x71AD, // 89 :: rgb(229,106,106)
+ 0xFAB2, // 90 :: rgb(249,176,144)
+ 0x7F9A, // 91 :: rgb(253,227,217)
+ 0x7FDD, // 92 :: rgb(254,242,237)
+ 0x7FDE, // 93 :: rgb(253,243,243)
+ 0x7AB1, // 94 :: rgb(249,171,139)
+ 0xFFBB, // 95 :: rgb(254,239,221)
+ 0xF694, // 96 :: rgb(240,167,167)
+ 0x7AF3, // 97 :: rgb(250,186,160)
+ 0xFF7A, // 98 :: rgb(253,224,213)
+ 0x7F0E, // 99 :: rgb(253,193,117)
+ 0xFA6F, // 100 :: rgb(249,159,121)
+ 0x7FFE, // 101 :: rgb(255,251,247)
+ 0xFEAA, // 102 :: rgb(251,175,80)
+ 0x7694, // 103 :: rgb(239,161,161)
+ 0xE801, // 104 :: rgb(213,5,5)
+ 0xFA6F, // 105 :: rgb(249,159,122)
+ 0x7FDB, // 106 :: rgb(254,241,224)
+ 0xF920, // 107 :: rgb(244,75,4)
+ 0x7A8F, // 108 :: rgb(249,160,123)
+ 0x7694, // 109 :: rgb(239,163,163)
+ 0xE822, // 110 :: rgb(214,14,14)
+ 0x6D29, // 111 :: rgb(223,71,71)
+ 0xFF55, // 112 :: rgb(253,215,169)
+ 0x7A8F, // 113 :: rgb(249,161,124)
+ 0xFF32, // 114 :: rgb(253,207,151)
+ 0x7FBB, // 115 :: rgb(253,233,224)
+ 0xF694, // 116 :: rgb(239,165,165)
+ 0xFFBC, // 117 :: rgb(254,238,231)
+ 0xFB39, // 118 :: rgb(247,208,208)
+ 0x7B38, // 119 :: rgb(246,201,201)
+ 0x6842, // 120 :: rgb(214,16,16)
+ 0x7FFF, // 121 :: rgb(254,251,251)
+ 0xFB7B, // 122 :: rgb(250,223,223)
+ 0xF16C, // 123 :: rgb(227,95,95)
+ 0x7672, // 124 :: rgb(237,152,152)
+ 0x7631, // 125 :: rgb(235,138,138)
+ 0xFE87, // 126 :: rgb(251,165,60)
+ 0xFFDD, // 127 :: rgb(254,245,240)
+ 0xFF33, // 128 :: rgb(252,208,154)
+ 0x7F79, // 129 :: rgb(252,220,207)
+ 0x7E41, // 130 :: rgb(251,144,12)
+ 0x7E42, // 131 :: rgb(251,146,19)
+ 0x7F36, // 132 :: rgb(251,202,182)
+ 0x7FDC, // 133 :: rgb(254,243,230)
+ 0x7963, // 134 :: rgb(244,89,24)
+ 0x7F0E, // 135 :: rgb(252,193,119)
+ 0xFE87, // 136 :: rgb(251,164,57)
+ 0x7A2B, // 137 :: rgb(247,138,92)
+ 0xFA6E, // 138 :: rgb(249,157,119)
+ 0xFF9B, // 139 :: rgb(253,229,219)
+ 0x7920, // 140 :: rgb(244,74,3)
+ 0xFFDE, // 141 :: rgb(254,246,243)
+ 0xF964, // 142 :: rgb(245,95,32)
+ 0xF921, // 143 :: rgb(244,76,6)
+ 0xFAD3, // 144 :: rgb(250,183,155)
+ 0xFAD3, // 145 :: rgb(250,182,154)
+ 0xF985, // 146 :: rgb(245,103,44)
+ 0x7FFE, // 147 :: rgb(255,252,250)
+ 0x7FFE, // 148 :: rgb(255,251,250)
+ 0x6800, // 149 :: rgb(212,1,1)
+ 0x7B18, // 150 :: rgb(245,195,195)
+ 0x7AD2, // 151 :: rgb(250,178,148)
+ 0x7ECB, // 152 :: rgb(251,179,87)
+ 0x7EA8, // 153 :: rgb(251,169,69)
+ 0xFEAA, // 154 :: rgb(251,176,82)
+ 0x7652, // 155 :: rgb(236,146,146)
+ 0xF942, // 156 :: rgb(244,83,16)
+ 0xF9E9, // 157 :: rgb(246,126,76)
+ 0xFFDD, // 158 :: rgb(254,246,242)
+ 0x71EF, // 159 :: rgb(231,120,120)
+ 0xFB39, // 160 :: rgb(247,206,206)
+ 0xFF37, // 161 :: rgb(252,208,190)
+ 0x6D08, // 162 :: rgb(222,65,65)
+ 0x7FDE, // 163 :: rgb(253,244,244)
+ 0x7A4D, // 164 :: rgb(248,147,106)
+ 0xFB5A, // 165 :: rgb(248,216,216)
+ 0x7F79, // 166 :: rgb(253,220,206)
+ 0xFAD3, // 167 :: rgb(250,181,153)
+ 0x7F15, // 168 :: rgb(251,196,173)
+ 0x7F31, // 169 :: rgb(252,201,137)
+ 0xF9C8, // 170 :: rgb(246,116,62)
+ 0xFAB2, // 171 :: rgb(250,176,145)
+ 0xFF10, // 172 :: rgb(252,198,131)
+ 0x7A6E, // 173 :: rgb(248,155,117)
+ 0xFF9B, // 174 :: rgb(253,232,224)
+ 0xFFBB, // 175 :: rgb(254,240,221)
+ 0x7920, // 176 :: rgb(244,74,2)
+ 0x7FDC, // 177 :: rgb(254,243,229)
+ 0xFE21, // 178 :: rgb(251,141,6)
+ 0x7F53, // 179 :: rgb(253,210,155)
+ 0xF9E9, // 180 :: rgb(247,127,77)
+ 0xFF58, // 181 :: rgb(252,213,197)
+ 0xFE87, // 182 :: rgb(251,164,58)
+ 0xFF54, // 183 :: rgb(253,213,164)
+ 0xFEA9, // 184 :: rgb(251,174,78)
+ 0xFE21, // 185 :: rgb(251,143,10)
+ 0x79E8, // 186 :: rgb(246,120,67)
+ 0x7E87, // 187 :: rgb(251,163,54)
+ 0xFFDD, // 188 :: rgb(254,248,240)
+ 0x7F57, // 189 :: rgb(252,210,193)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h index 28d30ce..b06965d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/logo_gfx.h @@ -1,15 +1,15 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __logo_gfx__ -#define __logo_gfx__ -#include <stdint.h> - -#define ubuntu_width 32 -#define ubuntu_height 32 -#define ubuntu_size 1026 -extern uint8_t ubuntu_data[1026]; -#define ubuntu ((gfx_sprite_t*)ubuntu_data) -#define sizeof_logo_gfx_pal 380 -extern uint16_t logo_gfx_pal[190]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 380
+extern uint16_t logo_gfx_pal[190];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c index f2060ae..c861afc 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/gfx/ubuntu.c @@ -1,40 +1,40 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -// 8 bpp image -uint8_t ubuntu_data[1026] = { - 32,32, // width,height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x45,0x27,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x07,0x07,0x01,0x20,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x5B,0x41,0x4E,0x0E,0x90,0x14,0xA5,0x07,0x07,0x07,0x07,0x28,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0x09,0x09,0x09,0x09,0x09,0xA8,0xA0,0x07,0x07,0x07,0x07,0x43,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x8B,0x15,0x09,0x09,0x09,0x09,0x09,0xA4,0x04,0xA2,0x07,0x07,0x95,0x58,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x83,0x0F,0x00,0x8A,0x09,0x09,0x09,0x09,0x09,0x15,0xA6,0xA3,0x9B,0x9F,0x96,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x08,0x0D,0x00,0x7F,0x86,0x6B,0x8E,0x92,0x1A,0x09,0x9C,0xA7,0x9E,0x94,0x11,0x5E,0x04,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x55,0x08,0x08,0x02,0x17,0x00,0x62,0x5C,0x05,0x00,0x93,0xA1,0x9D,0x09,0x09,0x8F,0x09,0x09,0x3E,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x9A,0x08,0x08,0x08,0x08,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x91,0x8C,0x09,0x09,0x09,0x53,0x4A,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAF,0x03,0x08,0x08,0x08,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x09,0x09,0x09,0x09,0x0E,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB7,0x08,0x08,0x08,0x02,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x51,0x09,0x09,0x09,0x10,0x04,0x00,0x00, - 0x00,0x00,0x00,0x8D,0xAB,0xAD,0xBD,0x05,0x16,0x08,0x08,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x09,0x09,0x09,0x09,0x14,0x00,0x00, - 0x00,0x00,0x0C,0xAA,0x09,0x09,0xB0,0x19,0xBC,0xB9,0x08,0xAC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x71,0x6C,0x69,0x64,0x73,0x00,0x00, - 0x00,0x00,0x81,0x09,0x09,0x09,0x09,0xBA,0x00,0xB6,0x08,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x11,0x09,0x09,0x09,0x09,0xB4,0x00,0xBB,0x08,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x67,0x6D,0x74,0x60,0x56,0x00,0x00, - 0x00,0x00,0x04,0x89,0x09,0x09,0x1A,0xB5,0xB1,0xB2,0x08,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x07,0x07,0x07,0x07,0x50,0x00,0x00, - 0x00,0x00,0x00,0x0C,0x19,0x97,0xAE,0x18,0xB8,0x08,0x08,0x82,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x07,0x07,0x07,0x4D,0x0B,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x08,0x08,0x08,0x37,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x07,0x07,0x07,0x47,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x88,0x08,0x08,0x08,0x08,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x4F,0x07,0x07,0x07,0x29,0x24,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4B,0x08,0x08,0x08,0x08,0x35,0x00,0x36,0x04,0x00,0x00,0x00,0x12,0x7D,0x01,0x07,0x07,0x07,0x07,0x22,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3A,0x08,0x08,0x2F,0x04,0x3B,0x30,0x46,0x49,0x59,0x6F,0x6E,0x07,0x07,0x06,0x01,0x07,0x40,0x21,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x0D,0x0A,0x31,0x00,0x34,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0x7C,0x12,0x79,0x7A,0x3D,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x33,0x00,0x38,0x32,0x07,0x07,0x07,0x07,0x07,0x68,0x77,0x65,0x72,0x63,0x52,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x06,0x07,0x07,0x07,0x07,0x07,0x7B,0x04,0x66,0x08,0x08,0x03,0x2B,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x26,0x2A,0x3F,0x44,0x13,0x57,0x6A,0x08,0x08,0x08,0x08,0x23,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x02,0x08,0x08,0x08,0x1B,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x08,0x08,0x0A,0x1E,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x25,0x1D,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x45,0x27,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x07,0x07,0x01,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x5B,0x41,0x4E,0x0E,0x90,0x14,0xA5,0x07,0x07,0x07,0x07,0x28,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0x09,0x09,0x09,0x09,0x09,0xA8,0xA0,0x07,0x07,0x07,0x07,0x43,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x8B,0x15,0x09,0x09,0x09,0x09,0x09,0xA4,0x04,0xA2,0x07,0x07,0x95,0x58,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x83,0x0F,0x00,0x8A,0x09,0x09,0x09,0x09,0x09,0x15,0xA6,0xA3,0x9B,0x9F,0x96,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x08,0x0D,0x00,0x7F,0x86,0x6B,0x8E,0x92,0x1A,0x09,0x9C,0xA7,0x9E,0x94,0x11,0x5E,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x55,0x08,0x08,0x02,0x17,0x00,0x62,0x5C,0x05,0x00,0x93,0xA1,0x9D,0x09,0x09,0x8F,0x09,0x09,0x3E,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x9A,0x08,0x08,0x08,0x08,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x91,0x8C,0x09,0x09,0x09,0x53,0x4A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAF,0x03,0x08,0x08,0x08,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x09,0x09,0x09,0x09,0x0E,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB7,0x08,0x08,0x08,0x02,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x51,0x09,0x09,0x09,0x10,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x8D,0xAB,0xAD,0xBD,0x05,0x16,0x08,0x08,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x09,0x09,0x09,0x09,0x14,0x00,0x00,
+ 0x00,0x00,0x0C,0xAA,0x09,0x09,0xB0,0x19,0xBC,0xB9,0x08,0xAC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x71,0x6C,0x69,0x64,0x73,0x00,0x00,
+ 0x00,0x00,0x81,0x09,0x09,0x09,0x09,0xBA,0x00,0xB6,0x08,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x11,0x09,0x09,0x09,0x09,0xB4,0x00,0xBB,0x08,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x67,0x6D,0x74,0x60,0x56,0x00,0x00,
+ 0x00,0x00,0x04,0x89,0x09,0x09,0x1A,0xB5,0xB1,0xB2,0x08,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x07,0x07,0x07,0x07,0x50,0x00,0x00,
+ 0x00,0x00,0x00,0x0C,0x19,0x97,0xAE,0x18,0xB8,0x08,0x08,0x82,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x07,0x07,0x07,0x4D,0x0B,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x08,0x08,0x08,0x37,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x07,0x07,0x07,0x47,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x88,0x08,0x08,0x08,0x08,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x4F,0x07,0x07,0x07,0x29,0x24,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4B,0x08,0x08,0x08,0x08,0x35,0x00,0x36,0x04,0x00,0x00,0x00,0x12,0x7D,0x01,0x07,0x07,0x07,0x07,0x22,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3A,0x08,0x08,0x2F,0x04,0x3B,0x30,0x46,0x49,0x59,0x6F,0x6E,0x07,0x07,0x06,0x01,0x07,0x40,0x21,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x0D,0x0A,0x31,0x00,0x34,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0x7C,0x12,0x79,0x7A,0x3D,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x33,0x00,0x38,0x32,0x07,0x07,0x07,0x07,0x07,0x68,0x77,0x65,0x72,0x63,0x52,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x06,0x07,0x07,0x07,0x07,0x07,0x7B,0x04,0x66,0x08,0x08,0x03,0x2B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x26,0x2A,0x3F,0x44,0x13,0x57,0x6A,0x08,0x08,0x08,0x08,0x23,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x02,0x08,0x08,0x08,0x1B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x08,0x08,0x0A,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x25,0x1D,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c index 9e4611b..9089a96 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate/src/main.c @@ -1,37 +1,37 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> -#include "gfx/logo_gfx.h" - -void main(void) { - /* Create a buffer the same size as the ubuntu sprite */ - gfx_UninitedSprite(sprite_buffer, ubuntu_width, ubuntu_height); - - gfx_Begin(); - - /* Setup the palette used by the sprites*/ - gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0); - - gfx_Sprite(ubuntu, 42, 42); - gfx_Sprite(gfx_FlipSpriteY(ubuntu, sprite_buffer), 74, 74); - gfx_Sprite(gfx_RotateSpriteC(ubuntu, sprite_buffer), 106, 106); - - /* Draw these ones without any clipping. Clipping refers to wether or not when it hits the edge of the window if */ - /* the sprite will be draw partially onscreen. These routines are usually faster, because edge detection doesn't occur */ - gfx_Sprite_NoClip(gfx_RotateSpriteCC(ubuntu, sprite_buffer), 138, 138); - gfx_Sprite_NoClip(gfx_RotateSpriteHalf(ubuntu, sprite_buffer), 170, 170); - - /* Wait for a key to be pressed */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+#include "gfx/logo_gfx.h"
+
+void main(void) {
+ /* Create a buffer the same size as the ubuntu sprite */
+ gfx_UninitedSprite(sprite_buffer, ubuntu_width, ubuntu_height);
+
+ gfx_Begin();
+
+ /* Setup the palette used by the sprites*/
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ gfx_Sprite(ubuntu, 42, 42);
+ gfx_Sprite(gfx_FlipSpriteY(ubuntu, sprite_buffer), 74, 74);
+ gfx_Sprite(gfx_RotateSpriteC(ubuntu, sprite_buffer), 106, 106);
+
+ /* Draw these ones without any clipping. Clipping refers to wether or not when it hits the edge of the window if */
+ /* the sprite will be draw partially onscreen. These routines are usually faster, because edge detection doesn't occur */
+ gfx_Sprite_NoClip(gfx_RotateSpriteCC(ubuntu, sprite_buffer), 138, 138);
+ gfx_Sprite_NoClip(gfx_RotateSpriteHalf(ubuntu, sprite_buffer), 170, 170);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json index c8d5d5c..d79c69e 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/autotester.json @@ -1,33 +1,33 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|8000", - "hash|1", - "key|enter", - "delay|300", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Make sure the rotated and scaled sprites are displayed properly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "27D90BD4" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|8000",
+ "hash|1",
+ "key|enter",
+ "delay|300",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the rotated and scaled sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "27D90BD4" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md index 036af22..25ad6d6 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/readme.md @@ -1,9 +1,9 @@ -### GraphX Sprite Rotation and Scaling Demo - -Demonstrates rotating sprites and scaling sprites when rotating. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### GraphX Sprite Rotation and Scaling Demo
+
+Demonstrates rotating sprites and scaling sprites when rotating.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini index 10642ba..4d215dc 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/convpng.ini @@ -1,4 +1,4 @@ -#GroupC : logo_gfx -#PNGImages : - ubuntu - +#GroupC : logo_gfx
+#PNGImages :
+ ubuntu
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c index 4e62af6..70c516f 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.c @@ -1,196 +1,196 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -uint16_t logo_gfx_pal[190] = { - 0xFFFF, // 00 :: rgb(255,255,255) - 0xE821, // 01 :: rgb(213,11,11) - 0x7E20, // 02 :: rgb(251,139,2) - 0x7E20, // 03 :: rgb(251,139,1) - 0xFFFF, // 04 :: rgb(255,254,254) - 0xFFFF, // 05 :: rgb(255,255,254) - 0x6800, // 06 :: rgb(212,2,2) - 0x6800, // 07 :: rgb(212,0,0) - 0x7E20, // 08 :: rgb(251,139,0) - 0x7920, // 09 :: rgb(244,72,0) - 0xFE20, // 10 :: rgb(251,140,4) - 0xFFFF, // 11 :: rgb(255,253,253) - 0xFFFF, // 12 :: rgb(255,254,253) - 0xFECC, // 13 :: rgb(252,182,97) - 0x7A90, // 14 :: rgb(249,163,128) - 0x7FDC, // 15 :: rgb(254,244,231) - 0xF985, // 16 :: rgb(245,100,40) - 0x7F9A, // 17 :: rgb(253,225,213) - 0x7FDD, // 18 :: rgb(253,242,242) - 0x6D6B, // 19 :: rgb(226,90,90) - 0xFFBC, // 20 :: rgb(254,239,233) - 0xF921, // 21 :: rgb(244,77,7) - 0x7EED, // 22 :: rgb(252,187,107) - 0xFF99, // 23 :: rgb(254,231,203) - 0xFFFE, // 24 :: rgb(255,253,250) - 0xFF16, // 25 :: rgb(251,199,177) - 0xF921, // 26 :: rgb(244,78,8) - 0xFE87, // 27 :: rgb(251,167,61) - 0xFFBA, // 28 :: rgb(254,237,216) - 0x7F31, // 29 :: rgb(253,204,143) - 0xFF76, // 30 :: rgb(253,222,183) - 0x7B7B, // 31 :: rgb(249,220,220) - 0xFAF7, // 32 :: rgb(244,192,192) - 0x7FDD, // 33 :: rgb(252,241,241) - 0xF18C, // 34 :: rgb(229,102,102) - 0xFE87, // 35 :: rgb(251,164,56) - 0x7B5A, // 36 :: rgb(247,212,212) - 0xFF76, // 37 :: rgb(253,221,181) - 0xF652, // 38 :: rgb(237,151,151) - 0x7652, // 39 :: rgb(236,145,145) - 0x6D29, // 40 :: rgb(224,74,74) - 0xE800, // 41 :: rgb(212,3,3) - 0x718C, // 42 :: rgb(228,98,98) - 0xFF54, // 43 :: rgb(253,214,165) - 0xFB7B, // 44 :: rgb(250,224,224) - 0x7673, // 45 :: rgb(237,153,153) - 0xFF32, // 46 :: rgb(252,205,148) - 0x7EA8, // 47 :: rgb(251,169,68) - 0x6CC6, // 48 :: rgb(219,48,48) - 0x7FBA, // 49 :: rgb(254,234,211) - 0xE842, // 50 :: rgb(215,20,20) - 0xFF77, // 51 :: rgb(253,224,187) - 0xF652, // 52 :: rgb(237,149,149) - 0x7F75, // 53 :: rgb(253,218,175) - 0x7FFE, // 54 :: rgb(254,249,249) - 0x7EEC, // 55 :: rgb(252,185,102) - 0x7FBD, // 56 :: rgb(252,236,236) - 0xFFFF, // 57 :: rgb(255,253,251) - 0x7EED, // 58 :: rgb(252,188,109) - 0x7FFF, // 59 :: rgb(254,252,252) - 0xFAF7, // 60 :: rgb(243,189,189) - 0x7B9B, // 61 :: rgb(250,225,225) - 0x7AD2, // 62 :: rgb(250,179,149) - 0xED09, // 63 :: rgb(224,70,70) - 0xECA5, // 64 :: rgb(218,43,43) - 0xFAF4, // 65 :: rgb(250,190,165) - 0x6D4A, // 66 :: rgb(225,82,82) - 0xED08, // 67 :: rgb(223,69,69) - 0x6D08, // 68 :: rgb(222,63,63) - 0x76D6, // 69 :: rgb(242,178,178) - 0xECC6, // 70 :: rgb(220,51,51) - 0xF1AD, // 71 :: rgb(229,109,109) - 0xFFDD, // 72 :: rgb(254,246,235) - 0x718C, // 73 :: rgb(228,97,97) - 0xFFBC, // 74 :: rgb(254,239,234) - 0xFF77, // 75 :: rgb(253,223,187) - 0x76D6, // 76 :: rgb(242,179,179) - 0x6863, // 77 :: rgb(216,26,26) - 0x7AB1, // 78 :: rgb(249,169,136) - 0xE843, // 79 :: rgb(215,21,21) - 0xFF9C, // 80 :: rgb(251,230,230) - 0xF9A6, // 81 :: rgb(245,108,51) - 0x7F97, // 82 :: rgb(253,225,189) - 0x7942, // 83 :: rgb(244,81,13) - 0x7FBA, // 84 :: rgb(254,236,215) - 0xFE21, // 85 :: rgb(251,143,11) - 0x7FBC, // 86 :: rgb(251,234,234) - 0xFB18, // 87 :: rgb(245,197,197) - 0x76D6, // 88 :: rgb(242,177,177) - 0x71AD, // 89 :: rgb(229,106,106) - 0xFAB2, // 90 :: rgb(249,176,144) - 0x7F9A, // 91 :: rgb(253,227,217) - 0x7FDD, // 92 :: rgb(254,242,237) - 0x7FDE, // 93 :: rgb(253,243,243) - 0x7AB1, // 94 :: rgb(249,171,139) - 0xFFBB, // 95 :: rgb(254,239,221) - 0xF694, // 96 :: rgb(240,167,167) - 0x7AF3, // 97 :: rgb(250,186,160) - 0xFF7A, // 98 :: rgb(253,224,213) - 0x7F0E, // 99 :: rgb(253,193,117) - 0xFA6F, // 100 :: rgb(249,159,121) - 0x7FFE, // 101 :: rgb(255,251,247) - 0xFEAA, // 102 :: rgb(251,175,80) - 0x7694, // 103 :: rgb(239,161,161) - 0xE801, // 104 :: rgb(213,5,5) - 0xFA6F, // 105 :: rgb(249,159,122) - 0x7FDB, // 106 :: rgb(254,241,224) - 0xF920, // 107 :: rgb(244,75,4) - 0x7A8F, // 108 :: rgb(249,160,123) - 0x7694, // 109 :: rgb(239,163,163) - 0xE822, // 110 :: rgb(214,14,14) - 0x6D29, // 111 :: rgb(223,71,71) - 0xFF55, // 112 :: rgb(253,215,169) - 0x7A8F, // 113 :: rgb(249,161,124) - 0xFF32, // 114 :: rgb(253,207,151) - 0x7FBB, // 115 :: rgb(253,233,224) - 0xF694, // 116 :: rgb(239,165,165) - 0xFFBC, // 117 :: rgb(254,238,231) - 0xFB39, // 118 :: rgb(247,208,208) - 0x7B38, // 119 :: rgb(246,201,201) - 0x6842, // 120 :: rgb(214,16,16) - 0x7FFF, // 121 :: rgb(254,251,251) - 0xFB7B, // 122 :: rgb(250,223,223) - 0xF16C, // 123 :: rgb(227,95,95) - 0x7672, // 124 :: rgb(237,152,152) - 0x7631, // 125 :: rgb(235,138,138) - 0xFE87, // 126 :: rgb(251,165,60) - 0xFFDD, // 127 :: rgb(254,245,240) - 0xFF33, // 128 :: rgb(252,208,154) - 0x7F79, // 129 :: rgb(252,220,207) - 0x7E41, // 130 :: rgb(251,144,12) - 0x7E42, // 131 :: rgb(251,146,19) - 0x7F36, // 132 :: rgb(251,202,182) - 0x7FDC, // 133 :: rgb(254,243,230) - 0x7963, // 134 :: rgb(244,89,24) - 0x7F0E, // 135 :: rgb(252,193,119) - 0xFE87, // 136 :: rgb(251,164,57) - 0x7A2B, // 137 :: rgb(247,138,92) - 0xFA6E, // 138 :: rgb(249,157,119) - 0xFF9B, // 139 :: rgb(253,229,219) - 0x7920, // 140 :: rgb(244,74,3) - 0xFFDE, // 141 :: rgb(254,246,243) - 0xF964, // 142 :: rgb(245,95,32) - 0xF921, // 143 :: rgb(244,76,6) - 0xFAD3, // 144 :: rgb(250,183,155) - 0xFAD3, // 145 :: rgb(250,182,154) - 0xF985, // 146 :: rgb(245,103,44) - 0x7FFE, // 147 :: rgb(255,252,250) - 0x7FFE, // 148 :: rgb(255,251,250) - 0x6800, // 149 :: rgb(212,1,1) - 0x7B18, // 150 :: rgb(245,195,195) - 0x7AD2, // 151 :: rgb(250,178,148) - 0x7ECB, // 152 :: rgb(251,179,87) - 0x7EA8, // 153 :: rgb(251,169,69) - 0xFEAA, // 154 :: rgb(251,176,82) - 0x7652, // 155 :: rgb(236,146,146) - 0xF942, // 156 :: rgb(244,83,16) - 0xF9E9, // 157 :: rgb(246,126,76) - 0xFFDD, // 158 :: rgb(254,246,242) - 0x71EF, // 159 :: rgb(231,120,120) - 0xFB39, // 160 :: rgb(247,206,206) - 0xFF37, // 161 :: rgb(252,208,190) - 0x6D08, // 162 :: rgb(222,65,65) - 0x7FDE, // 163 :: rgb(253,244,244) - 0x7A4D, // 164 :: rgb(248,147,106) - 0xFB5A, // 165 :: rgb(248,216,216) - 0x7F79, // 166 :: rgb(253,220,206) - 0xFAD3, // 167 :: rgb(250,181,153) - 0x7F15, // 168 :: rgb(251,196,173) - 0x7F31, // 169 :: rgb(252,201,137) - 0xF9C8, // 170 :: rgb(246,116,62) - 0xFAB2, // 171 :: rgb(250,176,145) - 0xFF10, // 172 :: rgb(252,198,131) - 0x7A6E, // 173 :: rgb(248,155,117) - 0xFF9B, // 174 :: rgb(253,232,224) - 0xFFBB, // 175 :: rgb(254,240,221) - 0x7920, // 176 :: rgb(244,74,2) - 0x7FDC, // 177 :: rgb(254,243,229) - 0xFE21, // 178 :: rgb(251,141,6) - 0x7F53, // 179 :: rgb(253,210,155) - 0xF9E9, // 180 :: rgb(247,127,77) - 0xFF58, // 181 :: rgb(252,213,197) - 0xFE87, // 182 :: rgb(251,164,58) - 0xFF54, // 183 :: rgb(253,213,164) - 0xFEA9, // 184 :: rgb(251,174,78) - 0xFE21, // 185 :: rgb(251,143,10) - 0x79E8, // 186 :: rgb(246,120,67) - 0x7E87, // 187 :: rgb(251,163,54) - 0xFFDD, // 188 :: rgb(254,248,240) - 0x7F57, // 189 :: rgb(252,210,193) +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+uint16_t logo_gfx_pal[190] = {
+ 0xFFFF, // 00 :: rgb(255,255,255)
+ 0xE821, // 01 :: rgb(213,11,11)
+ 0x7E20, // 02 :: rgb(251,139,2)
+ 0x7E20, // 03 :: rgb(251,139,1)
+ 0xFFFF, // 04 :: rgb(255,254,254)
+ 0xFFFF, // 05 :: rgb(255,255,254)
+ 0x6800, // 06 :: rgb(212,2,2)
+ 0x6800, // 07 :: rgb(212,0,0)
+ 0x7E20, // 08 :: rgb(251,139,0)
+ 0x7920, // 09 :: rgb(244,72,0)
+ 0xFE20, // 10 :: rgb(251,140,4)
+ 0xFFFF, // 11 :: rgb(255,253,253)
+ 0xFFFF, // 12 :: rgb(255,254,253)
+ 0xFECC, // 13 :: rgb(252,182,97)
+ 0x7A90, // 14 :: rgb(249,163,128)
+ 0x7FDC, // 15 :: rgb(254,244,231)
+ 0xF985, // 16 :: rgb(245,100,40)
+ 0x7F9A, // 17 :: rgb(253,225,213)
+ 0x7FDD, // 18 :: rgb(253,242,242)
+ 0x6D6B, // 19 :: rgb(226,90,90)
+ 0xFFBC, // 20 :: rgb(254,239,233)
+ 0xF921, // 21 :: rgb(244,77,7)
+ 0x7EED, // 22 :: rgb(252,187,107)
+ 0xFF99, // 23 :: rgb(254,231,203)
+ 0xFFFE, // 24 :: rgb(255,253,250)
+ 0xFF16, // 25 :: rgb(251,199,177)
+ 0xF921, // 26 :: rgb(244,78,8)
+ 0xFE87, // 27 :: rgb(251,167,61)
+ 0xFFBA, // 28 :: rgb(254,237,216)
+ 0x7F31, // 29 :: rgb(253,204,143)
+ 0xFF76, // 30 :: rgb(253,222,183)
+ 0x7B7B, // 31 :: rgb(249,220,220)
+ 0xFAF7, // 32 :: rgb(244,192,192)
+ 0x7FDD, // 33 :: rgb(252,241,241)
+ 0xF18C, // 34 :: rgb(229,102,102)
+ 0xFE87, // 35 :: rgb(251,164,56)
+ 0x7B5A, // 36 :: rgb(247,212,212)
+ 0xFF76, // 37 :: rgb(253,221,181)
+ 0xF652, // 38 :: rgb(237,151,151)
+ 0x7652, // 39 :: rgb(236,145,145)
+ 0x6D29, // 40 :: rgb(224,74,74)
+ 0xE800, // 41 :: rgb(212,3,3)
+ 0x718C, // 42 :: rgb(228,98,98)
+ 0xFF54, // 43 :: rgb(253,214,165)
+ 0xFB7B, // 44 :: rgb(250,224,224)
+ 0x7673, // 45 :: rgb(237,153,153)
+ 0xFF32, // 46 :: rgb(252,205,148)
+ 0x7EA8, // 47 :: rgb(251,169,68)
+ 0x6CC6, // 48 :: rgb(219,48,48)
+ 0x7FBA, // 49 :: rgb(254,234,211)
+ 0xE842, // 50 :: rgb(215,20,20)
+ 0xFF77, // 51 :: rgb(253,224,187)
+ 0xF652, // 52 :: rgb(237,149,149)
+ 0x7F75, // 53 :: rgb(253,218,175)
+ 0x7FFE, // 54 :: rgb(254,249,249)
+ 0x7EEC, // 55 :: rgb(252,185,102)
+ 0x7FBD, // 56 :: rgb(252,236,236)
+ 0xFFFF, // 57 :: rgb(255,253,251)
+ 0x7EED, // 58 :: rgb(252,188,109)
+ 0x7FFF, // 59 :: rgb(254,252,252)
+ 0xFAF7, // 60 :: rgb(243,189,189)
+ 0x7B9B, // 61 :: rgb(250,225,225)
+ 0x7AD2, // 62 :: rgb(250,179,149)
+ 0xED09, // 63 :: rgb(224,70,70)
+ 0xECA5, // 64 :: rgb(218,43,43)
+ 0xFAF4, // 65 :: rgb(250,190,165)
+ 0x6D4A, // 66 :: rgb(225,82,82)
+ 0xED08, // 67 :: rgb(223,69,69)
+ 0x6D08, // 68 :: rgb(222,63,63)
+ 0x76D6, // 69 :: rgb(242,178,178)
+ 0xECC6, // 70 :: rgb(220,51,51)
+ 0xF1AD, // 71 :: rgb(229,109,109)
+ 0xFFDD, // 72 :: rgb(254,246,235)
+ 0x718C, // 73 :: rgb(228,97,97)
+ 0xFFBC, // 74 :: rgb(254,239,234)
+ 0xFF77, // 75 :: rgb(253,223,187)
+ 0x76D6, // 76 :: rgb(242,179,179)
+ 0x6863, // 77 :: rgb(216,26,26)
+ 0x7AB1, // 78 :: rgb(249,169,136)
+ 0xE843, // 79 :: rgb(215,21,21)
+ 0xFF9C, // 80 :: rgb(251,230,230)
+ 0xF9A6, // 81 :: rgb(245,108,51)
+ 0x7F97, // 82 :: rgb(253,225,189)
+ 0x7942, // 83 :: rgb(244,81,13)
+ 0x7FBA, // 84 :: rgb(254,236,215)
+ 0xFE21, // 85 :: rgb(251,143,11)
+ 0x7FBC, // 86 :: rgb(251,234,234)
+ 0xFB18, // 87 :: rgb(245,197,197)
+ 0x76D6, // 88 :: rgb(242,177,177)
+ 0x71AD, // 89 :: rgb(229,106,106)
+ 0xFAB2, // 90 :: rgb(249,176,144)
+ 0x7F9A, // 91 :: rgb(253,227,217)
+ 0x7FDD, // 92 :: rgb(254,242,237)
+ 0x7FDE, // 93 :: rgb(253,243,243)
+ 0x7AB1, // 94 :: rgb(249,171,139)
+ 0xFFBB, // 95 :: rgb(254,239,221)
+ 0xF694, // 96 :: rgb(240,167,167)
+ 0x7AF3, // 97 :: rgb(250,186,160)
+ 0xFF7A, // 98 :: rgb(253,224,213)
+ 0x7F0E, // 99 :: rgb(253,193,117)
+ 0xFA6F, // 100 :: rgb(249,159,121)
+ 0x7FFE, // 101 :: rgb(255,251,247)
+ 0xFEAA, // 102 :: rgb(251,175,80)
+ 0x7694, // 103 :: rgb(239,161,161)
+ 0xE801, // 104 :: rgb(213,5,5)
+ 0xFA6F, // 105 :: rgb(249,159,122)
+ 0x7FDB, // 106 :: rgb(254,241,224)
+ 0xF920, // 107 :: rgb(244,75,4)
+ 0x7A8F, // 108 :: rgb(249,160,123)
+ 0x7694, // 109 :: rgb(239,163,163)
+ 0xE822, // 110 :: rgb(214,14,14)
+ 0x6D29, // 111 :: rgb(223,71,71)
+ 0xFF55, // 112 :: rgb(253,215,169)
+ 0x7A8F, // 113 :: rgb(249,161,124)
+ 0xFF32, // 114 :: rgb(253,207,151)
+ 0x7FBB, // 115 :: rgb(253,233,224)
+ 0xF694, // 116 :: rgb(239,165,165)
+ 0xFFBC, // 117 :: rgb(254,238,231)
+ 0xFB39, // 118 :: rgb(247,208,208)
+ 0x7B38, // 119 :: rgb(246,201,201)
+ 0x6842, // 120 :: rgb(214,16,16)
+ 0x7FFF, // 121 :: rgb(254,251,251)
+ 0xFB7B, // 122 :: rgb(250,223,223)
+ 0xF16C, // 123 :: rgb(227,95,95)
+ 0x7672, // 124 :: rgb(237,152,152)
+ 0x7631, // 125 :: rgb(235,138,138)
+ 0xFE87, // 126 :: rgb(251,165,60)
+ 0xFFDD, // 127 :: rgb(254,245,240)
+ 0xFF33, // 128 :: rgb(252,208,154)
+ 0x7F79, // 129 :: rgb(252,220,207)
+ 0x7E41, // 130 :: rgb(251,144,12)
+ 0x7E42, // 131 :: rgb(251,146,19)
+ 0x7F36, // 132 :: rgb(251,202,182)
+ 0x7FDC, // 133 :: rgb(254,243,230)
+ 0x7963, // 134 :: rgb(244,89,24)
+ 0x7F0E, // 135 :: rgb(252,193,119)
+ 0xFE87, // 136 :: rgb(251,164,57)
+ 0x7A2B, // 137 :: rgb(247,138,92)
+ 0xFA6E, // 138 :: rgb(249,157,119)
+ 0xFF9B, // 139 :: rgb(253,229,219)
+ 0x7920, // 140 :: rgb(244,74,3)
+ 0xFFDE, // 141 :: rgb(254,246,243)
+ 0xF964, // 142 :: rgb(245,95,32)
+ 0xF921, // 143 :: rgb(244,76,6)
+ 0xFAD3, // 144 :: rgb(250,183,155)
+ 0xFAD3, // 145 :: rgb(250,182,154)
+ 0xF985, // 146 :: rgb(245,103,44)
+ 0x7FFE, // 147 :: rgb(255,252,250)
+ 0x7FFE, // 148 :: rgb(255,251,250)
+ 0x6800, // 149 :: rgb(212,1,1)
+ 0x7B18, // 150 :: rgb(245,195,195)
+ 0x7AD2, // 151 :: rgb(250,178,148)
+ 0x7ECB, // 152 :: rgb(251,179,87)
+ 0x7EA8, // 153 :: rgb(251,169,69)
+ 0xFEAA, // 154 :: rgb(251,176,82)
+ 0x7652, // 155 :: rgb(236,146,146)
+ 0xF942, // 156 :: rgb(244,83,16)
+ 0xF9E9, // 157 :: rgb(246,126,76)
+ 0xFFDD, // 158 :: rgb(254,246,242)
+ 0x71EF, // 159 :: rgb(231,120,120)
+ 0xFB39, // 160 :: rgb(247,206,206)
+ 0xFF37, // 161 :: rgb(252,208,190)
+ 0x6D08, // 162 :: rgb(222,65,65)
+ 0x7FDE, // 163 :: rgb(253,244,244)
+ 0x7A4D, // 164 :: rgb(248,147,106)
+ 0xFB5A, // 165 :: rgb(248,216,216)
+ 0x7F79, // 166 :: rgb(253,220,206)
+ 0xFAD3, // 167 :: rgb(250,181,153)
+ 0x7F15, // 168 :: rgb(251,196,173)
+ 0x7F31, // 169 :: rgb(252,201,137)
+ 0xF9C8, // 170 :: rgb(246,116,62)
+ 0xFAB2, // 171 :: rgb(250,176,145)
+ 0xFF10, // 172 :: rgb(252,198,131)
+ 0x7A6E, // 173 :: rgb(248,155,117)
+ 0xFF9B, // 174 :: rgb(253,232,224)
+ 0xFFBB, // 175 :: rgb(254,240,221)
+ 0x7920, // 176 :: rgb(244,74,2)
+ 0x7FDC, // 177 :: rgb(254,243,229)
+ 0xFE21, // 178 :: rgb(251,141,6)
+ 0x7F53, // 179 :: rgb(253,210,155)
+ 0xF9E9, // 180 :: rgb(247,127,77)
+ 0xFF58, // 181 :: rgb(252,213,197)
+ 0xFE87, // 182 :: rgb(251,164,58)
+ 0xFF54, // 183 :: rgb(253,213,164)
+ 0xFEA9, // 184 :: rgb(251,174,78)
+ 0xFE21, // 185 :: rgb(251,143,10)
+ 0x79E8, // 186 :: rgb(246,120,67)
+ 0x7E87, // 187 :: rgb(251,163,54)
+ 0xFFDD, // 188 :: rgb(254,248,240)
+ 0x7F57, // 189 :: rgb(252,210,193)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h index 28d30ce..b06965d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/logo_gfx.h @@ -1,15 +1,15 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __logo_gfx__ -#define __logo_gfx__ -#include <stdint.h> - -#define ubuntu_width 32 -#define ubuntu_height 32 -#define ubuntu_size 1026 -extern uint8_t ubuntu_data[1026]; -#define ubuntu ((gfx_sprite_t*)ubuntu_data) -#define sizeof_logo_gfx_pal 380 -extern uint16_t logo_gfx_pal[190]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __logo_gfx__
+#define __logo_gfx__
+#include <stdint.h>
+
+#define ubuntu_width 32
+#define ubuntu_height 32
+#define ubuntu_size 1026
+extern uint8_t ubuntu_data[1026];
+#define ubuntu ((gfx_sprite_t*)ubuntu_data)
+#define sizeof_logo_gfx_pal 380
+extern uint16_t logo_gfx_pal[190];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c index f2060ae..c861afc 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/gfx/ubuntu.c @@ -1,40 +1,40 @@ -// convpng -#include <stdint.h> -#include "logo_gfx.h" - -// 8 bpp image -uint8_t ubuntu_data[1026] = { - 32,32, // width,height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x45,0x27,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x07,0x07,0x01,0x20,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x5B,0x41,0x4E,0x0E,0x90,0x14,0xA5,0x07,0x07,0x07,0x07,0x28,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0x09,0x09,0x09,0x09,0x09,0xA8,0xA0,0x07,0x07,0x07,0x07,0x43,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x8B,0x15,0x09,0x09,0x09,0x09,0x09,0xA4,0x04,0xA2,0x07,0x07,0x95,0x58,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x83,0x0F,0x00,0x8A,0x09,0x09,0x09,0x09,0x09,0x15,0xA6,0xA3,0x9B,0x9F,0x96,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x08,0x0D,0x00,0x7F,0x86,0x6B,0x8E,0x92,0x1A,0x09,0x9C,0xA7,0x9E,0x94,0x11,0x5E,0x04,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x55,0x08,0x08,0x02,0x17,0x00,0x62,0x5C,0x05,0x00,0x93,0xA1,0x9D,0x09,0x09,0x8F,0x09,0x09,0x3E,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x9A,0x08,0x08,0x08,0x08,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x91,0x8C,0x09,0x09,0x09,0x53,0x4A,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAF,0x03,0x08,0x08,0x08,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x09,0x09,0x09,0x09,0x0E,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB7,0x08,0x08,0x08,0x02,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x51,0x09,0x09,0x09,0x10,0x04,0x00,0x00, - 0x00,0x00,0x00,0x8D,0xAB,0xAD,0xBD,0x05,0x16,0x08,0x08,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x09,0x09,0x09,0x09,0x14,0x00,0x00, - 0x00,0x00,0x0C,0xAA,0x09,0x09,0xB0,0x19,0xBC,0xB9,0x08,0xAC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x71,0x6C,0x69,0x64,0x73,0x00,0x00, - 0x00,0x00,0x81,0x09,0x09,0x09,0x09,0xBA,0x00,0xB6,0x08,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x11,0x09,0x09,0x09,0x09,0xB4,0x00,0xBB,0x08,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x67,0x6D,0x74,0x60,0x56,0x00,0x00, - 0x00,0x00,0x04,0x89,0x09,0x09,0x1A,0xB5,0xB1,0xB2,0x08,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x07,0x07,0x07,0x07,0x50,0x00,0x00, - 0x00,0x00,0x00,0x0C,0x19,0x97,0xAE,0x18,0xB8,0x08,0x08,0x82,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x07,0x07,0x07,0x4D,0x0B,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x08,0x08,0x08,0x37,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x07,0x07,0x07,0x47,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x88,0x08,0x08,0x08,0x08,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x4F,0x07,0x07,0x07,0x29,0x24,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4B,0x08,0x08,0x08,0x08,0x35,0x00,0x36,0x04,0x00,0x00,0x00,0x12,0x7D,0x01,0x07,0x07,0x07,0x07,0x22,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3A,0x08,0x08,0x2F,0x04,0x3B,0x30,0x46,0x49,0x59,0x6F,0x6E,0x07,0x07,0x06,0x01,0x07,0x40,0x21,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x0D,0x0A,0x31,0x00,0x34,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0x7C,0x12,0x79,0x7A,0x3D,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x33,0x00,0x38,0x32,0x07,0x07,0x07,0x07,0x07,0x68,0x77,0x65,0x72,0x63,0x52,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x06,0x07,0x07,0x07,0x07,0x07,0x7B,0x04,0x66,0x08,0x08,0x03,0x2B,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x26,0x2A,0x3F,0x44,0x13,0x57,0x6A,0x08,0x08,0x08,0x08,0x23,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x02,0x08,0x08,0x08,0x1B,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x08,0x08,0x0A,0x1E,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x25,0x1D,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; +// convpng
+#include <stdint.h>
+#include "logo_gfx.h"
+
+// 8 bpp image
+uint8_t ubuntu_data[1026] = {
+ 32,32, // width,height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0B,0x45,0x27,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x13,0x07,0x07,0x01,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x5B,0x41,0x4E,0x0E,0x90,0x14,0xA5,0x07,0x07,0x07,0x07,0x28,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0x09,0x09,0x09,0x09,0x09,0xA8,0xA0,0x07,0x07,0x07,0x07,0x43,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0x00,0x8B,0x15,0x09,0x09,0x09,0x09,0x09,0xA4,0x04,0xA2,0x07,0x07,0x95,0x58,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x83,0x0F,0x00,0x8A,0x09,0x09,0x09,0x09,0x09,0x15,0xA6,0xA3,0x9B,0x9F,0x96,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x03,0x08,0x0D,0x00,0x7F,0x86,0x6B,0x8E,0x92,0x1A,0x09,0x9C,0xA7,0x9E,0x94,0x11,0x5E,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5F,0x55,0x08,0x08,0x02,0x17,0x00,0x62,0x5C,0x05,0x00,0x93,0xA1,0x9D,0x09,0x09,0x8F,0x09,0x09,0x3E,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x9A,0x08,0x08,0x08,0x08,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x91,0x8C,0x09,0x09,0x09,0x53,0x4A,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xAF,0x03,0x08,0x08,0x08,0x7E,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5A,0x09,0x09,0x09,0x09,0x0E,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xB7,0x08,0x08,0x08,0x02,0x54,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x51,0x09,0x09,0x09,0x10,0x04,0x00,0x00,
+ 0x00,0x00,0x00,0x8D,0xAB,0xAD,0xBD,0x05,0x16,0x08,0x08,0x99,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x61,0x09,0x09,0x09,0x09,0x14,0x00,0x00,
+ 0x00,0x00,0x0C,0xAA,0x09,0x09,0xB0,0x19,0xBC,0xB9,0x08,0xAC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x75,0x71,0x6C,0x69,0x64,0x73,0x00,0x00,
+ 0x00,0x00,0x81,0x09,0x09,0x09,0x09,0xBA,0x00,0xB6,0x08,0xB3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x11,0x09,0x09,0x09,0x09,0xB4,0x00,0xBB,0x08,0xA9,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x5D,0x67,0x6D,0x74,0x60,0x56,0x00,0x00,
+ 0x00,0x00,0x04,0x89,0x09,0x09,0x1A,0xB5,0xB1,0xB2,0x08,0x98,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4C,0x07,0x07,0x07,0x07,0x50,0x00,0x00,
+ 0x00,0x00,0x00,0x0C,0x19,0x97,0xAE,0x18,0xB8,0x08,0x08,0x82,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x07,0x07,0x07,0x4D,0x0B,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x08,0x08,0x08,0x08,0x37,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x06,0x07,0x07,0x07,0x47,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x88,0x08,0x08,0x08,0x08,0x2E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x4F,0x07,0x07,0x07,0x29,0x24,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x4B,0x08,0x08,0x08,0x08,0x35,0x00,0x36,0x04,0x00,0x00,0x00,0x12,0x7D,0x01,0x07,0x07,0x07,0x07,0x22,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x3A,0x08,0x08,0x2F,0x04,0x3B,0x30,0x46,0x49,0x59,0x6F,0x6E,0x07,0x07,0x06,0x01,0x07,0x40,0x21,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0x0D,0x0A,0x31,0x00,0x34,0x07,0x07,0x07,0x07,0x07,0x07,0x78,0x7C,0x12,0x79,0x7A,0x3D,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x33,0x00,0x38,0x32,0x07,0x07,0x07,0x07,0x07,0x68,0x77,0x65,0x72,0x63,0x52,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2D,0x06,0x07,0x07,0x07,0x07,0x07,0x7B,0x04,0x66,0x08,0x08,0x03,0x2B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x26,0x2A,0x3F,0x44,0x13,0x57,0x6A,0x08,0x08,0x08,0x08,0x23,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x02,0x08,0x08,0x08,0x1B,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x16,0x08,0x08,0x0A,0x1E,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x25,0x1D,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c index 7e9de0b..2310e0c 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_sprite_rotate_scale/src/main.c @@ -1,44 +1,44 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -#include "gfx/logo_gfx.h" - -/* Create some buffers used for storing the rotated and scaled sprites */ -gfx_UninitedSprite(rotate_sprite, ubuntu_width, ubuntu_height); - -void main(void) { - uint8_t x; - - /* Start the graphics */ - gfx_Begin(); - - /* Setup the palette used by the sprites*/ - gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0); - - /* Loop for a bunch of times */ - for (x = 0; ++x;) { - /* Rotate the sprite */ - gfx_RotateSprite(ubuntu, rotate_sprite, x); - - /* Rotate and scale the sprite */ - gfx_RotatedScaledSprite_NoClip(ubuntu, 0, 0, 256 - x, 128); - - /* Draw the new rotated buffer sprite */ - gfx_Sprite_NoClip(rotate_sprite, LCD_WIDTH / 2, LCD_HEIGHT / 2); - } - - /* Wait for a key to be pressed */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+#include "gfx/logo_gfx.h"
+
+/* Create some buffers used for storing the rotated and scaled sprites */
+gfx_UninitedSprite(rotate_sprite, ubuntu_width, ubuntu_height);
+
+void main(void) {
+ uint8_t x;
+
+ /* Start the graphics */
+ gfx_Begin();
+
+ /* Setup the palette used by the sprites*/
+ gfx_SetPalette(logo_gfx_pal, sizeof_logo_gfx_pal, 0);
+
+ /* Loop for a bunch of times */
+ for (x = 0; ++x;) {
+ /* Rotate the sprite */
+ gfx_RotateSprite(ubuntu, rotate_sprite, x);
+
+ /* Rotate and scale the sprite */
+ gfx_RotatedScaledSprite_NoClip(ubuntu, 0, 0, 256 - x, 128);
+
+ /* Draw the new rotated buffer sprite */
+ gfx_Sprite_NoClip(rotate_sprite, LCD_WIDTH / 2, LCD_HEIGHT / 2);
+ }
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json index d246692..3b39b3b 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/autotester.json @@ -1,31 +1,31 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp", - "src/gfx/var_gfx.8xv" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Make sure the sprites are displayed properly", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "A3ED6457" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp",
+ "src/gfx/var_gfx.8xv"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Make sure the sprites are displayed properly",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "A3ED6457" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md index 428bc83..9ef8479 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/readme.md @@ -1,10 +1,10 @@ -### GraphX Appvars Demo - -Demonstrates easily extracting and using images placed into an appvar - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Appvars Demo
+
+Demonstrates easily extracting and using images placed into an appvar
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c index 9f77108..d1b789d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.c @@ -1,4 +1,4 @@ -// convpng -#include <stdint.h> -#include "all_gfx.h" - +// convpng
+#include <stdint.h>
+#include "all_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h index 37f0480..9a60010 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/all_gfx.h @@ -1,8 +1,8 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __all_gfx__ -#define __all_gfx__ -#include <stdint.h> - - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __all_gfx__
+#define __all_gfx__
+#include <stdint.h>
+
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini index 8dc89f4..34a3c4a 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/convpng.ini @@ -1,16 +1,16 @@ -// #AppvarC -- The name of the appvar we are making -// #IncludePalettes -- List of comma separated groups with palettes - -#AppvarC : var_gfx -#IncludePalettes : all_gfx -#PNGImages : - ubuntu - mint - -// The main conversion group - -#GroupC : all_gfx -#PNGImages : - ubuntu - mint - +// #AppvarC -- The name of the appvar we are making
+// #IncludePalettes -- List of comma separated groups with palettes
+
+#AppvarC : var_gfx
+#IncludePalettes : all_gfx
+#PNGImages :
+ ubuntu
+ mint
+
+// The main conversion group
+
+#GroupC : all_gfx
+#PNGImages :
+ ubuntu
+ mint
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c index 9f77108..d1b789d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/mint.c @@ -1,4 +1,4 @@ -// convpng -#include <stdint.h> -#include "all_gfx.h" - +// convpng
+#include <stdint.h>
+#include "all_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c index 9f77108..d1b789d 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/ubuntu.c @@ -1,4 +1,4 @@ -// convpng -#include <stdint.h> -#include "all_gfx.h" - +// convpng
+#include <stdint.h>
+#include "all_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c index b0d3117..c3641ca 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.c @@ -1,27 +1,27 @@ -// convpng -#include <stdint.h> -#include "var_gfx.h" - -#include <fileioc.h> -uint8_t *var_gfx[3] = { - (uint8_t*)0, - (uint8_t*)1026, - (uint8_t*)2052, -}; - -bool var_gfx_init(void) { - unsigned int data, i; - ti_var_t appvar; - - ti_CloseAll(); - - appvar = ti_Open("var_gfx", "r"); - data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0]; - for (i = 0; i < var_gfx_num; i++) { - var_gfx[i] += data; - } - - ti_CloseAll(); - - return (bool)appvar; -} +// convpng
+#include <stdint.h>
+#include "var_gfx.h"
+
+#include <fileioc.h>
+uint8_t *var_gfx[3] = {
+ (uint8_t*)0,
+ (uint8_t*)1026,
+ (uint8_t*)2052,
+};
+
+bool var_gfx_init(void) {
+ unsigned int data, i;
+ ti_var_t appvar;
+
+ ti_CloseAll();
+
+ appvar = ti_Open("var_gfx", "r");
+ data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0];
+ for (i = 0; i < var_gfx_num; i++) {
+ var_gfx[i] += data;
+ }
+
+ ti_CloseAll();
+
+ return (bool)appvar;
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h index 49afcb0..919da4b 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/gfx/var_gfx.h @@ -1,18 +1,18 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __var_gfx__ -#define __var_gfx__ -#include <stdint.h> - -#include <stdbool.h> - -#define var_gfx_num 3 - -extern uint8_t *var_gfx[3]; -#define ubuntu ((gfx_sprite_t*)var_gfx[0]) -#define mint ((gfx_sprite_t*)var_gfx[1]) -#define sizeof_all_gfx_pal 512 -#define all_gfx_pal ((uint16_t*)var_gfx[2]) -bool var_gfx_init(void); - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __var_gfx__
+#define __var_gfx__
+#include <stdint.h>
+
+#include <stdbool.h>
+
+#define var_gfx_num 3
+
+extern uint8_t *var_gfx[3];
+#define ubuntu ((gfx_sprite_t*)var_gfx[0])
+#define mint ((gfx_sprite_t*)var_gfx[1])
+#define sizeof_all_gfx_pal 512
+#define all_gfx_pal ((uint16_t*)var_gfx[2])
+bool var_gfx_init(void);
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c index 7c18c3a..98edbf9 100644 --- a/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_sprites_appvar/src/main.c @@ -1,42 +1,42 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> -#include <fileioc.h> - -/* Include the sprite data */ -#include "gfx/all_gfx.h" -#include "gfx/var_gfx.h" - -void main(void) { - /* This function is automatically created by convpng */ - /* Simply call it to load in graphics from the appvar */ - /* The common function name is <appvar name>_init */ - var_gfx_init(); - - /* Initialize the graphics */ - gfx_Begin(); - - /* Set up the palette for the sprite */ - gfx_SetPalette(all_gfx_pal, sizeof_all_gfx_pal, 0); - - /* Fill the screen with color index 0 */ - gfx_FillScreen(0); - - /* Draw the sprites directly from the appvar */ - gfx_Sprite(ubuntu, LCD_WIDTH / 2 - 16, LCD_HEIGHT / 2 - 16); - gfx_Sprite(mint, LCD_WIDTH / 2 + 16, LCD_HEIGHT / 2 - 16); - - /* Wait for a key to be pressed */ - while (!os_GetCSC()); - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+#include <fileioc.h>
+
+/* Include the sprite data */
+#include "gfx/all_gfx.h"
+#include "gfx/var_gfx.h"
+
+void main(void) {
+ /* This function is automatically created by convpng */
+ /* Simply call it to load in graphics from the appvar */
+ /* The common function name is <appvar name>_init */
+ var_gfx_init();
+
+ /* Initialize the graphics */
+ gfx_Begin();
+
+ /* Set up the palette for the sprite */
+ gfx_SetPalette(all_gfx_pal, sizeof_all_gfx_pal, 0);
+
+ /* Fill the screen with color index 0 */
+ gfx_FillScreen(0);
+
+ /* Draw the sprites directly from the appvar */
+ gfx_Sprite(ubuntu, LCD_WIDTH / 2 - 16, LCD_HEIGHT / 2 - 16);
+ gfx_Sprite(mint, LCD_WIDTH / 2 + 16, LCD_HEIGHT / 2 - 16);
+
+ /* Wait for a key to be pressed */
+ while (!os_GetCSC());
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_template/makefile b/frontends/calculator/CEdev/examples/gfx_template/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_template/makefile +++ b/frontends/calculator/CEdev/examples/gfx_template/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_template/readme.md b/frontends/calculator/CEdev/examples/gfx_template/readme.md index 9d807e1..8d20e1b 100644 --- a/frontends/calculator/CEdev/examples/gfx_template/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_template/readme.md @@ -1,12 +1,12 @@ -### GraphX Template - -You can clone this directory for your own GraphX-based projects. - -To add code, fill in the begin, end, step, and draw functions in main.c. You can also create your own .c and .h files and add them to the directory; the Makefile included in this template will automatically find and compile the new .c files. - -In addition, you can also add your own .asm files, which will be detected and -added appropriately to the proper segment. - ---- - -This template is a part of the C SDK Toolchain for use on the CE. +### GraphX Template
+
+You can clone this directory for your own GraphX-based projects.
+
+To add code, fill in the begin, end, step, and draw functions in main.c. You can also create your own .c and .h files and add them to the directory; the Makefile included in this template will automatically find and compile the new .c files.
+
+In addition, you can also add your own .asm files, which will be detected and
+added appropriately to the proper segment.
+
+---
+
+This template is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/gfx_template/src/main.c b/frontends/calculator/CEdev/examples/gfx_template/src/main.c index 2904b0a..0b97651 100644 --- a/frontends/calculator/CEdev/examples/gfx_template/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_template/src/main.c @@ -1,64 +1,64 @@ -/* - *-------------------------------------- - * Program Name: - * Author: - * License: - * Description: - *-------------------------------------- -*/ - -/* Keep these headers */ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -/* Standard headers (recommended) */ -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Put your function prototypes here */ -void begin(); -void end(); -bool step(); -void draw(); - -/* Put all your globals here */ -bool partial_redraw; - -void main() { - begin(); // No rendering allowed! - gfx_Begin(); - gfx_SetDrawBuffer(); // Draw to the buffer to avoid rendering artifats - - while (step()) { // No rendering allowed in step! - if (partial_redraw) // Only want to redraw part of the previous frame? - gfx_BlitScreen(); // Copy previous frame as a base for this frame - draw(); // As little non-rendering logic as possible - gfx_SwapDraw(); // Queue the buffered frame to be displayed - } - - gfx_End(); - end(); -} - -/* Put other functions here */ -void begin() { - /* Implement me! */ -} - -void end() { - /* Implement me! */ -} - -bool step() { - /* Implement me! */ -} - -void draw() { - /* Implement me! */ -} +/*
+ *--------------------------------------
+ * Program Name:
+ * Author:
+ * License:
+ * Description:
+ *--------------------------------------
+*/
+
+/* Keep these headers */
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+/* Standard headers (recommended) */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Put your function prototypes here */
+void begin();
+void end();
+bool step();
+void draw();
+
+/* Put all your globals here */
+bool partial_redraw;
+
+void main() {
+ begin(); // No rendering allowed!
+ gfx_Begin();
+ gfx_SetDrawBuffer(); // Draw to the buffer to avoid rendering artifats
+
+ while (step()) { // No rendering allowed in step!
+ if (partial_redraw) // Only want to redraw part of the previous frame?
+ gfx_BlitScreen(); // Copy previous frame as a base for this frame
+ draw(); // As little non-rendering logic as possible
+ gfx_SwapDraw(); // Queue the buffered frame to be displayed
+ }
+
+ gfx_End();
+ end();
+}
+
+/* Put other functions here */
+void begin() {
+ /* Implement me! */
+}
+
+void end() {
+ /* Implement me! */
+}
+
+bool step() {
+ /* Implement me! */
+}
+
+void draw() {
+ /* Implement me! */
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json index 30af614..83c8338 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/autotester.json @@ -1,43 +1,43 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "delay|100", - "key|right", - "key|right", - "key|down", - "key|down", - "hashWait|2", - "key|enter", - "hashWait|3" - ], - "hashes": { - "1": { - "description": "Initial sprite map state (top left)", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "3C2D7C36" ] - }, - "2": { - "description": "Moving a bit to the bottom right", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "F0C14AE9" ] - }, - "3": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|100",
+ "key|right",
+ "key|right",
+ "key|down",
+ "key|down",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Initial sprite map state (top left)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3C2D7C36" ]
+ },
+ "2": {
+ "description": "Moving a bit to the bottom right",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F0C14AE9" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/makefile +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md index 298dc25..5587abc 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/readme.md @@ -1,10 +1,10 @@ -### GraphX Simple Tilemap Demo - -An example of tilemaping using a sequence of tiles and the keypad. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Simple Tilemap Demo
+
+An example of tilemaping using a sequence of tiles and the keypad.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini index b8068e4..f5851e5 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/convpng.ini @@ -1,5 +1,5 @@ -#GroupC : tiles_gfx -#TransparentColor : 255,201,14,255 -#Tilemap : 16,16,true -#PNGImages : - tileset +#GroupC : tiles_gfx
+#TransparentColor : 255,201,14,255
+#Tilemap : 16,16,true
+#PNGImages :
+ tileset
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c index 2d1e613..916813e 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.c @@ -1,82 +1,82 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - -uint16_t tiles_gfx_pal[76] = { - 0x7F22, // 00 :: rgb(255,201,14) - 0xC30C, // 01 :: rgb(132,198,99) - 0x212D, // 02 :: rgb(65,72,106) - 0x1D40, // 03 :: rgb(56,80,0) - 0x1E46, // 04 :: rgb(57,146,49) - 0xDBD1, // 05 :: rgb(184,248,136) - 0xEB7B, // 06 :: rgb(216,224,224) - 0x318F, // 07 :: rgb(99,96,123) - 0x7771, // 08 :: rgb(239,219,140) - 0x650A, // 09 :: rgb(206,64,81) - 0x5F3C, // 10 :: rgb(189,203,231) - 0x6F9D, // 11 :: rgb(222,227,239) - 0x25D5, // 12 :: rgb(73,113,173) - 0x52D8, // 13 :: rgb(165,178,198) - 0xD353, // 14 :: rgb(168,216,160) - 0x6DAC, // 15 :: rgb(222,105,98) - 0x4211, // 16 :: rgb(132,130,140) - 0x3AFE, // 17 :: rgb(115,186,247) - 0x764E, // 18 :: rgb(239,146,114) - 0xE319, // 19 :: rgb(199,199,207) - 0x5A0D, // 20 :: rgb(184,128,111) - 0xE6F0, // 21 :: rgb(208,192,128) - 0x7EF0, // 22 :: rgb(255,186,132) - 0x4EDB, // 23 :: rgb(156,178,222) - 0x6EAE, // 24 :: rgb(222,170,114) - 0x49AD, // 25 :: rgb(148,105,106) - 0x32BD, // 26 :: rgb(99,170,239) - 0xFFFF, // 27 :: rgb(255,255,255) - 0x0E8D, // 28 :: rgb(23,162,107) - 0x666A, // 29 :: rgb(206,154,81) - 0x6ACD, // 30 :: rgb(214,178,106) - 0x22D1, // 31 :: rgb(65,178,140) - 0x18C2, // 32 :: rgb(48,48,14) - 0x5A30, // 33 :: rgb(182,138,130) - 0xB27A, // 34 :: rgb(96,159,215) - 0x7BAE, // 35 :: rgb(245,233,112) - 0x6E2C, // 36 :: rgb(224,136,95) - 0x2A37, // 37 :: rgb(79,136,192) - 0x39A6, // 38 :: rgb(112,104,47) - 0x0420, // 39 :: rgb(8,8,4) - 0xEAF3, // 40 :: rgb(214,191,154) - 0x2CE8, // 41 :: rgb(89,56,65) - 0xEF12, // 42 :: rgb(224,200,144) - 0xDEAD, // 43 :: rgb(191,175,110) - 0x5A51, // 44 :: rgb(184,144,136) - 0x6F30, // 45 :: rgb(222,203,132) - 0xCB3E, // 46 :: rgb(151,207,247) - 0xE35C, // 47 :: rgb(199,215,231) - 0x7399, // 48 :: rgb(231,227,206) - 0x7794, // 49 :: rgb(239,227,165) - 0x7AD0, // 50 :: rgb(247,178,132) - 0x3D29, // 51 :: rgb(123,73,73) - 0x32BC, // 52 :: rgb(96,168,232) - 0x3DF0, // 53 :: rgb(123,123,132) - 0x7337, // 54 :: rgb(228,201,192) - 0x1CC5, // 55 :: rgb(56,48,40) - 0x252B, // 56 :: rgb(71,71,87) - 0x1A05, // 57 :: rgb(46,130,39) - 0xE6AD, // 58 :: rgb(208,176,103) - 0xCF77, // 59 :: rgb(160,224,192) - 0x356B, // 60 :: rgb(107,88,89) - 0xCB58, // 61 :: rgb(144,216,200) - 0xC32A, // 62 :: rgb(135,207,79) - 0x2505, // 63 :: rgb(78,65,39) - 0x6BBF, // 64 :: rgb(214,235,255) - 0x5085, // 65 :: rgb(167,31,39) - 0xAD4D, // 66 :: rgb(87,87,110) - 0xDB1B, // 67 :: rgb(184,200,224) - 0x25D4, // 68 :: rgb(71,112,168) - 0x4E23, // 69 :: rgb(155,139,24) - 0x6149, // 70 :: rgb(199,79,71) - 0x91CA, // 71 :: rgb(37,117,83) - 0x2DD7, // 72 :: rgb(89,113,189) - 0xC76C, // 73 :: rgb(142,221,101) - 0xFB33, // 74 :: rgb(247,207,159) - 0xBB13, // 75 :: rgb(112,199,159) +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint16_t tiles_gfx_pal[76] = {
+ 0x7F22, // 00 :: rgb(255,201,14)
+ 0xC30C, // 01 :: rgb(132,198,99)
+ 0x212D, // 02 :: rgb(65,72,106)
+ 0x1D40, // 03 :: rgb(56,80,0)
+ 0x1E46, // 04 :: rgb(57,146,49)
+ 0xDBD1, // 05 :: rgb(184,248,136)
+ 0xEB7B, // 06 :: rgb(216,224,224)
+ 0x318F, // 07 :: rgb(99,96,123)
+ 0x7771, // 08 :: rgb(239,219,140)
+ 0x650A, // 09 :: rgb(206,64,81)
+ 0x5F3C, // 10 :: rgb(189,203,231)
+ 0x6F9D, // 11 :: rgb(222,227,239)
+ 0x25D5, // 12 :: rgb(73,113,173)
+ 0x52D8, // 13 :: rgb(165,178,198)
+ 0xD353, // 14 :: rgb(168,216,160)
+ 0x6DAC, // 15 :: rgb(222,105,98)
+ 0x4211, // 16 :: rgb(132,130,140)
+ 0x3AFE, // 17 :: rgb(115,186,247)
+ 0x764E, // 18 :: rgb(239,146,114)
+ 0xE319, // 19 :: rgb(199,199,207)
+ 0x5A0D, // 20 :: rgb(184,128,111)
+ 0xE6F0, // 21 :: rgb(208,192,128)
+ 0x7EF0, // 22 :: rgb(255,186,132)
+ 0x4EDB, // 23 :: rgb(156,178,222)
+ 0x6EAE, // 24 :: rgb(222,170,114)
+ 0x49AD, // 25 :: rgb(148,105,106)
+ 0x32BD, // 26 :: rgb(99,170,239)
+ 0xFFFF, // 27 :: rgb(255,255,255)
+ 0x0E8D, // 28 :: rgb(23,162,107)
+ 0x666A, // 29 :: rgb(206,154,81)
+ 0x6ACD, // 30 :: rgb(214,178,106)
+ 0x22D1, // 31 :: rgb(65,178,140)
+ 0x18C2, // 32 :: rgb(48,48,14)
+ 0x5A30, // 33 :: rgb(182,138,130)
+ 0xB27A, // 34 :: rgb(96,159,215)
+ 0x7BAE, // 35 :: rgb(245,233,112)
+ 0x6E2C, // 36 :: rgb(224,136,95)
+ 0x2A37, // 37 :: rgb(79,136,192)
+ 0x39A6, // 38 :: rgb(112,104,47)
+ 0x0420, // 39 :: rgb(8,8,4)
+ 0xEAF3, // 40 :: rgb(214,191,154)
+ 0x2CE8, // 41 :: rgb(89,56,65)
+ 0xEF12, // 42 :: rgb(224,200,144)
+ 0xDEAD, // 43 :: rgb(191,175,110)
+ 0x5A51, // 44 :: rgb(184,144,136)
+ 0x6F30, // 45 :: rgb(222,203,132)
+ 0xCB3E, // 46 :: rgb(151,207,247)
+ 0xE35C, // 47 :: rgb(199,215,231)
+ 0x7399, // 48 :: rgb(231,227,206)
+ 0x7794, // 49 :: rgb(239,227,165)
+ 0x7AD0, // 50 :: rgb(247,178,132)
+ 0x3D29, // 51 :: rgb(123,73,73)
+ 0x32BC, // 52 :: rgb(96,168,232)
+ 0x3DF0, // 53 :: rgb(123,123,132)
+ 0x7337, // 54 :: rgb(228,201,192)
+ 0x1CC5, // 55 :: rgb(56,48,40)
+ 0x252B, // 56 :: rgb(71,71,87)
+ 0x1A05, // 57 :: rgb(46,130,39)
+ 0xE6AD, // 58 :: rgb(208,176,103)
+ 0xCF77, // 59 :: rgb(160,224,192)
+ 0x356B, // 60 :: rgb(107,88,89)
+ 0xCB58, // 61 :: rgb(144,216,200)
+ 0xC32A, // 62 :: rgb(135,207,79)
+ 0x2505, // 63 :: rgb(78,65,39)
+ 0x6BBF, // 64 :: rgb(214,235,255)
+ 0x5085, // 65 :: rgb(167,31,39)
+ 0xAD4D, // 66 :: rgb(87,87,110)
+ 0xDB1B, // 67 :: rgb(184,200,224)
+ 0x25D4, // 68 :: rgb(71,112,168)
+ 0x4E23, // 69 :: rgb(155,139,24)
+ 0x6149, // 70 :: rgb(199,79,71)
+ 0x91CA, // 71 :: rgb(37,117,83)
+ 0x2DD7, // 72 :: rgb(89,113,189)
+ 0xC76C, // 73 :: rgb(142,221,101)
+ 0xFB33, // 74 :: rgb(247,207,159)
+ 0xBB13, // 75 :: rgb(112,199,159)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h index 6e8db9f..73a2ce6 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tiles_gfx.h @@ -1,271 +1,271 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __tiles_gfx__ -#define __tiles_gfx__ -#include <stdint.h> - -#define tiles_gfx_transparent_color_index 0 - -extern uint8_t tileset_tile_0_data[]; -#define tileset_tile_0 ((gfx_sprite_t*)tileset_tile_0_data) -extern uint8_t tileset_tile_1_data[]; -#define tileset_tile_1 ((gfx_sprite_t*)tileset_tile_1_data) -extern uint8_t tileset_tile_2_data[]; -#define tileset_tile_2 ((gfx_sprite_t*)tileset_tile_2_data) -extern uint8_t tileset_tile_3_data[]; -#define tileset_tile_3 ((gfx_sprite_t*)tileset_tile_3_data) -extern uint8_t tileset_tile_4_data[]; -#define tileset_tile_4 ((gfx_sprite_t*)tileset_tile_4_data) -extern uint8_t tileset_tile_5_data[]; -#define tileset_tile_5 ((gfx_sprite_t*)tileset_tile_5_data) -extern uint8_t tileset_tile_6_data[]; -#define tileset_tile_6 ((gfx_sprite_t*)tileset_tile_6_data) -extern uint8_t tileset_tile_7_data[]; -#define tileset_tile_7 ((gfx_sprite_t*)tileset_tile_7_data) -extern uint8_t tileset_tile_8_data[]; -#define tileset_tile_8 ((gfx_sprite_t*)tileset_tile_8_data) -extern uint8_t tileset_tile_9_data[]; -#define tileset_tile_9 ((gfx_sprite_t*)tileset_tile_9_data) -extern uint8_t tileset_tile_10_data[]; -#define tileset_tile_10 ((gfx_sprite_t*)tileset_tile_10_data) -extern uint8_t tileset_tile_11_data[]; -#define tileset_tile_11 ((gfx_sprite_t*)tileset_tile_11_data) -extern uint8_t tileset_tile_12_data[]; -#define tileset_tile_12 ((gfx_sprite_t*)tileset_tile_12_data) -extern uint8_t tileset_tile_13_data[]; -#define tileset_tile_13 ((gfx_sprite_t*)tileset_tile_13_data) -extern uint8_t tileset_tile_14_data[]; -#define tileset_tile_14 ((gfx_sprite_t*)tileset_tile_14_data) -extern uint8_t tileset_tile_15_data[]; -#define tileset_tile_15 ((gfx_sprite_t*)tileset_tile_15_data) -extern uint8_t tileset_tile_16_data[]; -#define tileset_tile_16 ((gfx_sprite_t*)tileset_tile_16_data) -extern uint8_t tileset_tile_17_data[]; -#define tileset_tile_17 ((gfx_sprite_t*)tileset_tile_17_data) -extern uint8_t tileset_tile_18_data[]; -#define tileset_tile_18 ((gfx_sprite_t*)tileset_tile_18_data) -extern uint8_t tileset_tile_19_data[]; -#define tileset_tile_19 ((gfx_sprite_t*)tileset_tile_19_data) -extern uint8_t tileset_tile_20_data[]; -#define tileset_tile_20 ((gfx_sprite_t*)tileset_tile_20_data) -extern uint8_t tileset_tile_21_data[]; -#define tileset_tile_21 ((gfx_sprite_t*)tileset_tile_21_data) -extern uint8_t tileset_tile_22_data[]; -#define tileset_tile_22 ((gfx_sprite_t*)tileset_tile_22_data) -extern uint8_t tileset_tile_23_data[]; -#define tileset_tile_23 ((gfx_sprite_t*)tileset_tile_23_data) -extern uint8_t tileset_tile_24_data[]; -#define tileset_tile_24 ((gfx_sprite_t*)tileset_tile_24_data) -extern uint8_t tileset_tile_25_data[]; -#define tileset_tile_25 ((gfx_sprite_t*)tileset_tile_25_data) -extern uint8_t tileset_tile_26_data[]; -#define tileset_tile_26 ((gfx_sprite_t*)tileset_tile_26_data) -extern uint8_t tileset_tile_27_data[]; -#define tileset_tile_27 ((gfx_sprite_t*)tileset_tile_27_data) -extern uint8_t tileset_tile_28_data[]; -#define tileset_tile_28 ((gfx_sprite_t*)tileset_tile_28_data) -extern uint8_t tileset_tile_29_data[]; -#define tileset_tile_29 ((gfx_sprite_t*)tileset_tile_29_data) -extern uint8_t tileset_tile_30_data[]; -#define tileset_tile_30 ((gfx_sprite_t*)tileset_tile_30_data) -extern uint8_t tileset_tile_31_data[]; -#define tileset_tile_31 ((gfx_sprite_t*)tileset_tile_31_data) -extern uint8_t tileset_tile_32_data[]; -#define tileset_tile_32 ((gfx_sprite_t*)tileset_tile_32_data) -extern uint8_t tileset_tile_33_data[]; -#define tileset_tile_33 ((gfx_sprite_t*)tileset_tile_33_data) -extern uint8_t tileset_tile_34_data[]; -#define tileset_tile_34 ((gfx_sprite_t*)tileset_tile_34_data) -extern uint8_t tileset_tile_35_data[]; -#define tileset_tile_35 ((gfx_sprite_t*)tileset_tile_35_data) -extern uint8_t tileset_tile_36_data[]; -#define tileset_tile_36 ((gfx_sprite_t*)tileset_tile_36_data) -extern uint8_t tileset_tile_37_data[]; -#define tileset_tile_37 ((gfx_sprite_t*)tileset_tile_37_data) -extern uint8_t tileset_tile_38_data[]; -#define tileset_tile_38 ((gfx_sprite_t*)tileset_tile_38_data) -extern uint8_t tileset_tile_39_data[]; -#define tileset_tile_39 ((gfx_sprite_t*)tileset_tile_39_data) -extern uint8_t tileset_tile_40_data[]; -#define tileset_tile_40 ((gfx_sprite_t*)tileset_tile_40_data) -extern uint8_t tileset_tile_41_data[]; -#define tileset_tile_41 ((gfx_sprite_t*)tileset_tile_41_data) -extern uint8_t tileset_tile_42_data[]; -#define tileset_tile_42 ((gfx_sprite_t*)tileset_tile_42_data) -extern uint8_t tileset_tile_43_data[]; -#define tileset_tile_43 ((gfx_sprite_t*)tileset_tile_43_data) -extern uint8_t tileset_tile_44_data[]; -#define tileset_tile_44 ((gfx_sprite_t*)tileset_tile_44_data) -extern uint8_t tileset_tile_45_data[]; -#define tileset_tile_45 ((gfx_sprite_t*)tileset_tile_45_data) -extern uint8_t tileset_tile_46_data[]; -#define tileset_tile_46 ((gfx_sprite_t*)tileset_tile_46_data) -extern uint8_t tileset_tile_47_data[]; -#define tileset_tile_47 ((gfx_sprite_t*)tileset_tile_47_data) -extern uint8_t tileset_tile_48_data[]; -#define tileset_tile_48 ((gfx_sprite_t*)tileset_tile_48_data) -extern uint8_t tileset_tile_49_data[]; -#define tileset_tile_49 ((gfx_sprite_t*)tileset_tile_49_data) -extern uint8_t tileset_tile_50_data[]; -#define tileset_tile_50 ((gfx_sprite_t*)tileset_tile_50_data) -extern uint8_t tileset_tile_51_data[]; -#define tileset_tile_51 ((gfx_sprite_t*)tileset_tile_51_data) -extern uint8_t tileset_tile_52_data[]; -#define tileset_tile_52 ((gfx_sprite_t*)tileset_tile_52_data) -extern uint8_t tileset_tile_53_data[]; -#define tileset_tile_53 ((gfx_sprite_t*)tileset_tile_53_data) -extern uint8_t tileset_tile_54_data[]; -#define tileset_tile_54 ((gfx_sprite_t*)tileset_tile_54_data) -extern uint8_t tileset_tile_55_data[]; -#define tileset_tile_55 ((gfx_sprite_t*)tileset_tile_55_data) -extern uint8_t tileset_tile_56_data[]; -#define tileset_tile_56 ((gfx_sprite_t*)tileset_tile_56_data) -extern uint8_t tileset_tile_57_data[]; -#define tileset_tile_57 ((gfx_sprite_t*)tileset_tile_57_data) -extern uint8_t tileset_tile_58_data[]; -#define tileset_tile_58 ((gfx_sprite_t*)tileset_tile_58_data) -extern uint8_t tileset_tile_59_data[]; -#define tileset_tile_59 ((gfx_sprite_t*)tileset_tile_59_data) -extern uint8_t tileset_tile_60_data[]; -#define tileset_tile_60 ((gfx_sprite_t*)tileset_tile_60_data) -extern uint8_t tileset_tile_61_data[]; -#define tileset_tile_61 ((gfx_sprite_t*)tileset_tile_61_data) -extern uint8_t tileset_tile_62_data[]; -#define tileset_tile_62 ((gfx_sprite_t*)tileset_tile_62_data) -extern uint8_t tileset_tile_63_data[]; -#define tileset_tile_63 ((gfx_sprite_t*)tileset_tile_63_data) -extern uint8_t tileset_tile_64_data[]; -#define tileset_tile_64 ((gfx_sprite_t*)tileset_tile_64_data) -extern uint8_t tileset_tile_65_data[]; -#define tileset_tile_65 ((gfx_sprite_t*)tileset_tile_65_data) -extern uint8_t tileset_tile_66_data[]; -#define tileset_tile_66 ((gfx_sprite_t*)tileset_tile_66_data) -extern uint8_t tileset_tile_67_data[]; -#define tileset_tile_67 ((gfx_sprite_t*)tileset_tile_67_data) -extern uint8_t tileset_tile_68_data[]; -#define tileset_tile_68 ((gfx_sprite_t*)tileset_tile_68_data) -extern uint8_t tileset_tile_69_data[]; -#define tileset_tile_69 ((gfx_sprite_t*)tileset_tile_69_data) -extern uint8_t tileset_tile_70_data[]; -#define tileset_tile_70 ((gfx_sprite_t*)tileset_tile_70_data) -extern uint8_t tileset_tile_71_data[]; -#define tileset_tile_71 ((gfx_sprite_t*)tileset_tile_71_data) -extern uint8_t tileset_tile_72_data[]; -#define tileset_tile_72 ((gfx_sprite_t*)tileset_tile_72_data) -extern uint8_t tileset_tile_73_data[]; -#define tileset_tile_73 ((gfx_sprite_t*)tileset_tile_73_data) -extern uint8_t tileset_tile_74_data[]; -#define tileset_tile_74 ((gfx_sprite_t*)tileset_tile_74_data) -extern uint8_t tileset_tile_75_data[]; -#define tileset_tile_75 ((gfx_sprite_t*)tileset_tile_75_data) -extern uint8_t tileset_tile_76_data[]; -#define tileset_tile_76 ((gfx_sprite_t*)tileset_tile_76_data) -extern uint8_t tileset_tile_77_data[]; -#define tileset_tile_77 ((gfx_sprite_t*)tileset_tile_77_data) -extern uint8_t tileset_tile_78_data[]; -#define tileset_tile_78 ((gfx_sprite_t*)tileset_tile_78_data) -extern uint8_t tileset_tile_79_data[]; -#define tileset_tile_79 ((gfx_sprite_t*)tileset_tile_79_data) -extern uint8_t tileset_tile_80_data[]; -#define tileset_tile_80 ((gfx_sprite_t*)tileset_tile_80_data) -extern uint8_t tileset_tile_81_data[]; -#define tileset_tile_81 ((gfx_sprite_t*)tileset_tile_81_data) -extern uint8_t tileset_tile_82_data[]; -#define tileset_tile_82 ((gfx_sprite_t*)tileset_tile_82_data) -extern uint8_t tileset_tile_83_data[]; -#define tileset_tile_83 ((gfx_sprite_t*)tileset_tile_83_data) -extern uint8_t tileset_tile_84_data[]; -#define tileset_tile_84 ((gfx_sprite_t*)tileset_tile_84_data) -extern uint8_t tileset_tile_85_data[]; -#define tileset_tile_85 ((gfx_sprite_t*)tileset_tile_85_data) -extern uint8_t tileset_tile_86_data[]; -#define tileset_tile_86 ((gfx_sprite_t*)tileset_tile_86_data) -extern uint8_t tileset_tile_87_data[]; -#define tileset_tile_87 ((gfx_sprite_t*)tileset_tile_87_data) -extern uint8_t tileset_tile_88_data[]; -#define tileset_tile_88 ((gfx_sprite_t*)tileset_tile_88_data) -extern uint8_t tileset_tile_89_data[]; -#define tileset_tile_89 ((gfx_sprite_t*)tileset_tile_89_data) -extern uint8_t tileset_tile_90_data[]; -#define tileset_tile_90 ((gfx_sprite_t*)tileset_tile_90_data) -extern uint8_t tileset_tile_91_data[]; -#define tileset_tile_91 ((gfx_sprite_t*)tileset_tile_91_data) -extern uint8_t tileset_tile_92_data[]; -#define tileset_tile_92 ((gfx_sprite_t*)tileset_tile_92_data) -extern uint8_t tileset_tile_93_data[]; -#define tileset_tile_93 ((gfx_sprite_t*)tileset_tile_93_data) -extern uint8_t tileset_tile_94_data[]; -#define tileset_tile_94 ((gfx_sprite_t*)tileset_tile_94_data) -extern uint8_t tileset_tile_95_data[]; -#define tileset_tile_95 ((gfx_sprite_t*)tileset_tile_95_data) -extern uint8_t tileset_tile_96_data[]; -#define tileset_tile_96 ((gfx_sprite_t*)tileset_tile_96_data) -extern uint8_t tileset_tile_97_data[]; -#define tileset_tile_97 ((gfx_sprite_t*)tileset_tile_97_data) -extern uint8_t tileset_tile_98_data[]; -#define tileset_tile_98 ((gfx_sprite_t*)tileset_tile_98_data) -extern uint8_t tileset_tile_99_data[]; -#define tileset_tile_99 ((gfx_sprite_t*)tileset_tile_99_data) -extern uint8_t tileset_tile_100_data[]; -#define tileset_tile_100 ((gfx_sprite_t*)tileset_tile_100_data) -extern uint8_t tileset_tile_101_data[]; -#define tileset_tile_101 ((gfx_sprite_t*)tileset_tile_101_data) -extern uint8_t tileset_tile_102_data[]; -#define tileset_tile_102 ((gfx_sprite_t*)tileset_tile_102_data) -extern uint8_t tileset_tile_103_data[]; -#define tileset_tile_103 ((gfx_sprite_t*)tileset_tile_103_data) -extern uint8_t tileset_tile_104_data[]; -#define tileset_tile_104 ((gfx_sprite_t*)tileset_tile_104_data) -extern uint8_t tileset_tile_105_data[]; -#define tileset_tile_105 ((gfx_sprite_t*)tileset_tile_105_data) -extern uint8_t tileset_tile_106_data[]; -#define tileset_tile_106 ((gfx_sprite_t*)tileset_tile_106_data) -extern uint8_t tileset_tile_107_data[]; -#define tileset_tile_107 ((gfx_sprite_t*)tileset_tile_107_data) -extern uint8_t tileset_tile_108_data[]; -#define tileset_tile_108 ((gfx_sprite_t*)tileset_tile_108_data) -extern uint8_t tileset_tile_109_data[]; -#define tileset_tile_109 ((gfx_sprite_t*)tileset_tile_109_data) -extern uint8_t tileset_tile_110_data[]; -#define tileset_tile_110 ((gfx_sprite_t*)tileset_tile_110_data) -extern uint8_t tileset_tile_111_data[]; -#define tileset_tile_111 ((gfx_sprite_t*)tileset_tile_111_data) -extern uint8_t tileset_tile_112_data[]; -#define tileset_tile_112 ((gfx_sprite_t*)tileset_tile_112_data) -extern uint8_t tileset_tile_113_data[]; -#define tileset_tile_113 ((gfx_sprite_t*)tileset_tile_113_data) -extern uint8_t tileset_tile_114_data[]; -#define tileset_tile_114 ((gfx_sprite_t*)tileset_tile_114_data) -extern uint8_t tileset_tile_115_data[]; -#define tileset_tile_115 ((gfx_sprite_t*)tileset_tile_115_data) -extern uint8_t tileset_tile_116_data[]; -#define tileset_tile_116 ((gfx_sprite_t*)tileset_tile_116_data) -extern uint8_t tileset_tile_117_data[]; -#define tileset_tile_117 ((gfx_sprite_t*)tileset_tile_117_data) -extern uint8_t tileset_tile_118_data[]; -#define tileset_tile_118 ((gfx_sprite_t*)tileset_tile_118_data) -extern uint8_t tileset_tile_119_data[]; -#define tileset_tile_119 ((gfx_sprite_t*)tileset_tile_119_data) -extern uint8_t tileset_tile_120_data[]; -#define tileset_tile_120 ((gfx_sprite_t*)tileset_tile_120_data) -extern uint8_t tileset_tile_121_data[]; -#define tileset_tile_121 ((gfx_sprite_t*)tileset_tile_121_data) -extern uint8_t tileset_tile_122_data[]; -#define tileset_tile_122 ((gfx_sprite_t*)tileset_tile_122_data) -extern uint8_t tileset_tile_123_data[]; -#define tileset_tile_123 ((gfx_sprite_t*)tileset_tile_123_data) -extern uint8_t tileset_tile_124_data[]; -#define tileset_tile_124 ((gfx_sprite_t*)tileset_tile_124_data) -extern uint8_t tileset_tile_125_data[]; -#define tileset_tile_125 ((gfx_sprite_t*)tileset_tile_125_data) -extern uint8_t tileset_tile_126_data[]; -#define tileset_tile_126 ((gfx_sprite_t*)tileset_tile_126_data) -extern uint8_t tileset_tile_127_data[]; -#define tileset_tile_127 ((gfx_sprite_t*)tileset_tile_127_data) -#define tileset_tiles_num 128 -extern uint8_t *tileset_tiles_data[128]; -#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data) -#define sizeof_tiles_gfx_pal 152 -extern uint16_t tiles_gfx_pal[76]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+#define tiles_gfx_transparent_color_index 0
+
+extern uint8_t tileset_tile_0_data[];
+#define tileset_tile_0 ((gfx_sprite_t*)tileset_tile_0_data)
+extern uint8_t tileset_tile_1_data[];
+#define tileset_tile_1 ((gfx_sprite_t*)tileset_tile_1_data)
+extern uint8_t tileset_tile_2_data[];
+#define tileset_tile_2 ((gfx_sprite_t*)tileset_tile_2_data)
+extern uint8_t tileset_tile_3_data[];
+#define tileset_tile_3 ((gfx_sprite_t*)tileset_tile_3_data)
+extern uint8_t tileset_tile_4_data[];
+#define tileset_tile_4 ((gfx_sprite_t*)tileset_tile_4_data)
+extern uint8_t tileset_tile_5_data[];
+#define tileset_tile_5 ((gfx_sprite_t*)tileset_tile_5_data)
+extern uint8_t tileset_tile_6_data[];
+#define tileset_tile_6 ((gfx_sprite_t*)tileset_tile_6_data)
+extern uint8_t tileset_tile_7_data[];
+#define tileset_tile_7 ((gfx_sprite_t*)tileset_tile_7_data)
+extern uint8_t tileset_tile_8_data[];
+#define tileset_tile_8 ((gfx_sprite_t*)tileset_tile_8_data)
+extern uint8_t tileset_tile_9_data[];
+#define tileset_tile_9 ((gfx_sprite_t*)tileset_tile_9_data)
+extern uint8_t tileset_tile_10_data[];
+#define tileset_tile_10 ((gfx_sprite_t*)tileset_tile_10_data)
+extern uint8_t tileset_tile_11_data[];
+#define tileset_tile_11 ((gfx_sprite_t*)tileset_tile_11_data)
+extern uint8_t tileset_tile_12_data[];
+#define tileset_tile_12 ((gfx_sprite_t*)tileset_tile_12_data)
+extern uint8_t tileset_tile_13_data[];
+#define tileset_tile_13 ((gfx_sprite_t*)tileset_tile_13_data)
+extern uint8_t tileset_tile_14_data[];
+#define tileset_tile_14 ((gfx_sprite_t*)tileset_tile_14_data)
+extern uint8_t tileset_tile_15_data[];
+#define tileset_tile_15 ((gfx_sprite_t*)tileset_tile_15_data)
+extern uint8_t tileset_tile_16_data[];
+#define tileset_tile_16 ((gfx_sprite_t*)tileset_tile_16_data)
+extern uint8_t tileset_tile_17_data[];
+#define tileset_tile_17 ((gfx_sprite_t*)tileset_tile_17_data)
+extern uint8_t tileset_tile_18_data[];
+#define tileset_tile_18 ((gfx_sprite_t*)tileset_tile_18_data)
+extern uint8_t tileset_tile_19_data[];
+#define tileset_tile_19 ((gfx_sprite_t*)tileset_tile_19_data)
+extern uint8_t tileset_tile_20_data[];
+#define tileset_tile_20 ((gfx_sprite_t*)tileset_tile_20_data)
+extern uint8_t tileset_tile_21_data[];
+#define tileset_tile_21 ((gfx_sprite_t*)tileset_tile_21_data)
+extern uint8_t tileset_tile_22_data[];
+#define tileset_tile_22 ((gfx_sprite_t*)tileset_tile_22_data)
+extern uint8_t tileset_tile_23_data[];
+#define tileset_tile_23 ((gfx_sprite_t*)tileset_tile_23_data)
+extern uint8_t tileset_tile_24_data[];
+#define tileset_tile_24 ((gfx_sprite_t*)tileset_tile_24_data)
+extern uint8_t tileset_tile_25_data[];
+#define tileset_tile_25 ((gfx_sprite_t*)tileset_tile_25_data)
+extern uint8_t tileset_tile_26_data[];
+#define tileset_tile_26 ((gfx_sprite_t*)tileset_tile_26_data)
+extern uint8_t tileset_tile_27_data[];
+#define tileset_tile_27 ((gfx_sprite_t*)tileset_tile_27_data)
+extern uint8_t tileset_tile_28_data[];
+#define tileset_tile_28 ((gfx_sprite_t*)tileset_tile_28_data)
+extern uint8_t tileset_tile_29_data[];
+#define tileset_tile_29 ((gfx_sprite_t*)tileset_tile_29_data)
+extern uint8_t tileset_tile_30_data[];
+#define tileset_tile_30 ((gfx_sprite_t*)tileset_tile_30_data)
+extern uint8_t tileset_tile_31_data[];
+#define tileset_tile_31 ((gfx_sprite_t*)tileset_tile_31_data)
+extern uint8_t tileset_tile_32_data[];
+#define tileset_tile_32 ((gfx_sprite_t*)tileset_tile_32_data)
+extern uint8_t tileset_tile_33_data[];
+#define tileset_tile_33 ((gfx_sprite_t*)tileset_tile_33_data)
+extern uint8_t tileset_tile_34_data[];
+#define tileset_tile_34 ((gfx_sprite_t*)tileset_tile_34_data)
+extern uint8_t tileset_tile_35_data[];
+#define tileset_tile_35 ((gfx_sprite_t*)tileset_tile_35_data)
+extern uint8_t tileset_tile_36_data[];
+#define tileset_tile_36 ((gfx_sprite_t*)tileset_tile_36_data)
+extern uint8_t tileset_tile_37_data[];
+#define tileset_tile_37 ((gfx_sprite_t*)tileset_tile_37_data)
+extern uint8_t tileset_tile_38_data[];
+#define tileset_tile_38 ((gfx_sprite_t*)tileset_tile_38_data)
+extern uint8_t tileset_tile_39_data[];
+#define tileset_tile_39 ((gfx_sprite_t*)tileset_tile_39_data)
+extern uint8_t tileset_tile_40_data[];
+#define tileset_tile_40 ((gfx_sprite_t*)tileset_tile_40_data)
+extern uint8_t tileset_tile_41_data[];
+#define tileset_tile_41 ((gfx_sprite_t*)tileset_tile_41_data)
+extern uint8_t tileset_tile_42_data[];
+#define tileset_tile_42 ((gfx_sprite_t*)tileset_tile_42_data)
+extern uint8_t tileset_tile_43_data[];
+#define tileset_tile_43 ((gfx_sprite_t*)tileset_tile_43_data)
+extern uint8_t tileset_tile_44_data[];
+#define tileset_tile_44 ((gfx_sprite_t*)tileset_tile_44_data)
+extern uint8_t tileset_tile_45_data[];
+#define tileset_tile_45 ((gfx_sprite_t*)tileset_tile_45_data)
+extern uint8_t tileset_tile_46_data[];
+#define tileset_tile_46 ((gfx_sprite_t*)tileset_tile_46_data)
+extern uint8_t tileset_tile_47_data[];
+#define tileset_tile_47 ((gfx_sprite_t*)tileset_tile_47_data)
+extern uint8_t tileset_tile_48_data[];
+#define tileset_tile_48 ((gfx_sprite_t*)tileset_tile_48_data)
+extern uint8_t tileset_tile_49_data[];
+#define tileset_tile_49 ((gfx_sprite_t*)tileset_tile_49_data)
+extern uint8_t tileset_tile_50_data[];
+#define tileset_tile_50 ((gfx_sprite_t*)tileset_tile_50_data)
+extern uint8_t tileset_tile_51_data[];
+#define tileset_tile_51 ((gfx_sprite_t*)tileset_tile_51_data)
+extern uint8_t tileset_tile_52_data[];
+#define tileset_tile_52 ((gfx_sprite_t*)tileset_tile_52_data)
+extern uint8_t tileset_tile_53_data[];
+#define tileset_tile_53 ((gfx_sprite_t*)tileset_tile_53_data)
+extern uint8_t tileset_tile_54_data[];
+#define tileset_tile_54 ((gfx_sprite_t*)tileset_tile_54_data)
+extern uint8_t tileset_tile_55_data[];
+#define tileset_tile_55 ((gfx_sprite_t*)tileset_tile_55_data)
+extern uint8_t tileset_tile_56_data[];
+#define tileset_tile_56 ((gfx_sprite_t*)tileset_tile_56_data)
+extern uint8_t tileset_tile_57_data[];
+#define tileset_tile_57 ((gfx_sprite_t*)tileset_tile_57_data)
+extern uint8_t tileset_tile_58_data[];
+#define tileset_tile_58 ((gfx_sprite_t*)tileset_tile_58_data)
+extern uint8_t tileset_tile_59_data[];
+#define tileset_tile_59 ((gfx_sprite_t*)tileset_tile_59_data)
+extern uint8_t tileset_tile_60_data[];
+#define tileset_tile_60 ((gfx_sprite_t*)tileset_tile_60_data)
+extern uint8_t tileset_tile_61_data[];
+#define tileset_tile_61 ((gfx_sprite_t*)tileset_tile_61_data)
+extern uint8_t tileset_tile_62_data[];
+#define tileset_tile_62 ((gfx_sprite_t*)tileset_tile_62_data)
+extern uint8_t tileset_tile_63_data[];
+#define tileset_tile_63 ((gfx_sprite_t*)tileset_tile_63_data)
+extern uint8_t tileset_tile_64_data[];
+#define tileset_tile_64 ((gfx_sprite_t*)tileset_tile_64_data)
+extern uint8_t tileset_tile_65_data[];
+#define tileset_tile_65 ((gfx_sprite_t*)tileset_tile_65_data)
+extern uint8_t tileset_tile_66_data[];
+#define tileset_tile_66 ((gfx_sprite_t*)tileset_tile_66_data)
+extern uint8_t tileset_tile_67_data[];
+#define tileset_tile_67 ((gfx_sprite_t*)tileset_tile_67_data)
+extern uint8_t tileset_tile_68_data[];
+#define tileset_tile_68 ((gfx_sprite_t*)tileset_tile_68_data)
+extern uint8_t tileset_tile_69_data[];
+#define tileset_tile_69 ((gfx_sprite_t*)tileset_tile_69_data)
+extern uint8_t tileset_tile_70_data[];
+#define tileset_tile_70 ((gfx_sprite_t*)tileset_tile_70_data)
+extern uint8_t tileset_tile_71_data[];
+#define tileset_tile_71 ((gfx_sprite_t*)tileset_tile_71_data)
+extern uint8_t tileset_tile_72_data[];
+#define tileset_tile_72 ((gfx_sprite_t*)tileset_tile_72_data)
+extern uint8_t tileset_tile_73_data[];
+#define tileset_tile_73 ((gfx_sprite_t*)tileset_tile_73_data)
+extern uint8_t tileset_tile_74_data[];
+#define tileset_tile_74 ((gfx_sprite_t*)tileset_tile_74_data)
+extern uint8_t tileset_tile_75_data[];
+#define tileset_tile_75 ((gfx_sprite_t*)tileset_tile_75_data)
+extern uint8_t tileset_tile_76_data[];
+#define tileset_tile_76 ((gfx_sprite_t*)tileset_tile_76_data)
+extern uint8_t tileset_tile_77_data[];
+#define tileset_tile_77 ((gfx_sprite_t*)tileset_tile_77_data)
+extern uint8_t tileset_tile_78_data[];
+#define tileset_tile_78 ((gfx_sprite_t*)tileset_tile_78_data)
+extern uint8_t tileset_tile_79_data[];
+#define tileset_tile_79 ((gfx_sprite_t*)tileset_tile_79_data)
+extern uint8_t tileset_tile_80_data[];
+#define tileset_tile_80 ((gfx_sprite_t*)tileset_tile_80_data)
+extern uint8_t tileset_tile_81_data[];
+#define tileset_tile_81 ((gfx_sprite_t*)tileset_tile_81_data)
+extern uint8_t tileset_tile_82_data[];
+#define tileset_tile_82 ((gfx_sprite_t*)tileset_tile_82_data)
+extern uint8_t tileset_tile_83_data[];
+#define tileset_tile_83 ((gfx_sprite_t*)tileset_tile_83_data)
+extern uint8_t tileset_tile_84_data[];
+#define tileset_tile_84 ((gfx_sprite_t*)tileset_tile_84_data)
+extern uint8_t tileset_tile_85_data[];
+#define tileset_tile_85 ((gfx_sprite_t*)tileset_tile_85_data)
+extern uint8_t tileset_tile_86_data[];
+#define tileset_tile_86 ((gfx_sprite_t*)tileset_tile_86_data)
+extern uint8_t tileset_tile_87_data[];
+#define tileset_tile_87 ((gfx_sprite_t*)tileset_tile_87_data)
+extern uint8_t tileset_tile_88_data[];
+#define tileset_tile_88 ((gfx_sprite_t*)tileset_tile_88_data)
+extern uint8_t tileset_tile_89_data[];
+#define tileset_tile_89 ((gfx_sprite_t*)tileset_tile_89_data)
+extern uint8_t tileset_tile_90_data[];
+#define tileset_tile_90 ((gfx_sprite_t*)tileset_tile_90_data)
+extern uint8_t tileset_tile_91_data[];
+#define tileset_tile_91 ((gfx_sprite_t*)tileset_tile_91_data)
+extern uint8_t tileset_tile_92_data[];
+#define tileset_tile_92 ((gfx_sprite_t*)tileset_tile_92_data)
+extern uint8_t tileset_tile_93_data[];
+#define tileset_tile_93 ((gfx_sprite_t*)tileset_tile_93_data)
+extern uint8_t tileset_tile_94_data[];
+#define tileset_tile_94 ((gfx_sprite_t*)tileset_tile_94_data)
+extern uint8_t tileset_tile_95_data[];
+#define tileset_tile_95 ((gfx_sprite_t*)tileset_tile_95_data)
+extern uint8_t tileset_tile_96_data[];
+#define tileset_tile_96 ((gfx_sprite_t*)tileset_tile_96_data)
+extern uint8_t tileset_tile_97_data[];
+#define tileset_tile_97 ((gfx_sprite_t*)tileset_tile_97_data)
+extern uint8_t tileset_tile_98_data[];
+#define tileset_tile_98 ((gfx_sprite_t*)tileset_tile_98_data)
+extern uint8_t tileset_tile_99_data[];
+#define tileset_tile_99 ((gfx_sprite_t*)tileset_tile_99_data)
+extern uint8_t tileset_tile_100_data[];
+#define tileset_tile_100 ((gfx_sprite_t*)tileset_tile_100_data)
+extern uint8_t tileset_tile_101_data[];
+#define tileset_tile_101 ((gfx_sprite_t*)tileset_tile_101_data)
+extern uint8_t tileset_tile_102_data[];
+#define tileset_tile_102 ((gfx_sprite_t*)tileset_tile_102_data)
+extern uint8_t tileset_tile_103_data[];
+#define tileset_tile_103 ((gfx_sprite_t*)tileset_tile_103_data)
+extern uint8_t tileset_tile_104_data[];
+#define tileset_tile_104 ((gfx_sprite_t*)tileset_tile_104_data)
+extern uint8_t tileset_tile_105_data[];
+#define tileset_tile_105 ((gfx_sprite_t*)tileset_tile_105_data)
+extern uint8_t tileset_tile_106_data[];
+#define tileset_tile_106 ((gfx_sprite_t*)tileset_tile_106_data)
+extern uint8_t tileset_tile_107_data[];
+#define tileset_tile_107 ((gfx_sprite_t*)tileset_tile_107_data)
+extern uint8_t tileset_tile_108_data[];
+#define tileset_tile_108 ((gfx_sprite_t*)tileset_tile_108_data)
+extern uint8_t tileset_tile_109_data[];
+#define tileset_tile_109 ((gfx_sprite_t*)tileset_tile_109_data)
+extern uint8_t tileset_tile_110_data[];
+#define tileset_tile_110 ((gfx_sprite_t*)tileset_tile_110_data)
+extern uint8_t tileset_tile_111_data[];
+#define tileset_tile_111 ((gfx_sprite_t*)tileset_tile_111_data)
+extern uint8_t tileset_tile_112_data[];
+#define tileset_tile_112 ((gfx_sprite_t*)tileset_tile_112_data)
+extern uint8_t tileset_tile_113_data[];
+#define tileset_tile_113 ((gfx_sprite_t*)tileset_tile_113_data)
+extern uint8_t tileset_tile_114_data[];
+#define tileset_tile_114 ((gfx_sprite_t*)tileset_tile_114_data)
+extern uint8_t tileset_tile_115_data[];
+#define tileset_tile_115 ((gfx_sprite_t*)tileset_tile_115_data)
+extern uint8_t tileset_tile_116_data[];
+#define tileset_tile_116 ((gfx_sprite_t*)tileset_tile_116_data)
+extern uint8_t tileset_tile_117_data[];
+#define tileset_tile_117 ((gfx_sprite_t*)tileset_tile_117_data)
+extern uint8_t tileset_tile_118_data[];
+#define tileset_tile_118 ((gfx_sprite_t*)tileset_tile_118_data)
+extern uint8_t tileset_tile_119_data[];
+#define tileset_tile_119 ((gfx_sprite_t*)tileset_tile_119_data)
+extern uint8_t tileset_tile_120_data[];
+#define tileset_tile_120 ((gfx_sprite_t*)tileset_tile_120_data)
+extern uint8_t tileset_tile_121_data[];
+#define tileset_tile_121 ((gfx_sprite_t*)tileset_tile_121_data)
+extern uint8_t tileset_tile_122_data[];
+#define tileset_tile_122 ((gfx_sprite_t*)tileset_tile_122_data)
+extern uint8_t tileset_tile_123_data[];
+#define tileset_tile_123 ((gfx_sprite_t*)tileset_tile_123_data)
+extern uint8_t tileset_tile_124_data[];
+#define tileset_tile_124 ((gfx_sprite_t*)tileset_tile_124_data)
+extern uint8_t tileset_tile_125_data[];
+#define tileset_tile_125 ((gfx_sprite_t*)tileset_tile_125_data)
+extern uint8_t tileset_tile_126_data[];
+#define tileset_tile_126 ((gfx_sprite_t*)tileset_tile_126_data)
+extern uint8_t tileset_tile_127_data[];
+#define tileset_tile_127 ((gfx_sprite_t*)tileset_tile_127_data)
+#define tileset_tiles_num 128
+extern uint8_t *tileset_tiles_data[128];
+#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data)
+#define sizeof_tiles_gfx_pal 152
+extern uint16_t tiles_gfx_pal[76];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c index 077ec44..383f58b 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/gfx/tileset.c @@ -1,2694 +1,2694 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - -uint8_t tileset_tile_0_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_1_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x3D,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B, -}; -uint8_t tileset_tile_2_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x3B,0x4B,0x4B,0x3B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_3_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_4_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01, - 0x4B,0x1C,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01, - 0x4B,0x1F,0x1C,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03, - 0x4B,0x1F,0x1F,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03, - 0x4B,0x4B,0x1F,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x05, - 0x4B,0x1F,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x05, - 0x1F,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x01,0x05, - 0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05, - 0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x01,0x05,0x05, - 0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x01,0x01,0x05,0x01,0x05,0x05, - 0x1C,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x05,0x05,0x01,0x05,0x05,0x05, - 0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05, - 0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x1F,0x1C,0x1C,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x4B,0x1F,0x1C,0x04,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x4B,0x1F,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05, -}; -uint8_t tileset_tile_5_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B, - 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x1C,0x4B, - 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1C,0x1F,0x4B, - 0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x1F,0x1F,0x4B, - 0x05,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x1F,0x4B,0x4B, - 0x05,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x1F,0x4B, - 0x05,0x01,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1F, - 0x05,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C, - 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C, - 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C, - 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1C, - 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C, - 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F, - 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x05,0x03,0x1C,0x1C,0x1F,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x04,0x1C,0x1F,0x4B,0x4B,0x4B, - 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x05,0x01,0x03,0x1F,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_6_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x05,0x01,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x01,0x01,0x05,0x01,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x01,0x05,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05, - 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05, - 0x00,0x00,0x00,0x00,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05, -}; -uint8_t tileset_tile_7_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x01,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x05,0x03,0x00,0x00,0x00,0x00,0x00, - 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x05,0x01,0x03,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_8_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00, - 0x07,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07, - 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x07,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23, - 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x07,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23, - 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x07,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x07,0x14,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, -}; -uint8_t tileset_tile_9_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00, - 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, -}; -uint8_t tileset_tile_10_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00, - 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18, - 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, - 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, -}; -uint8_t tileset_tile_11_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00, - 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x02, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02, - 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x02, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02, - 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x02, - 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02, - 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02, - 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x02, - 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x14,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, -}; -uint8_t tileset_tile_12_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x00,0x00,0x00,0x09,0x09,0x16,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x00,0x00,0x09,0x16,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x00,0x09,0x16,0x16,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x09,0x16,0x16,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, -}; -uint8_t tileset_tile_13_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x16,0x09,0x16,0x16,0x16, - 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x00,0x00,0x00,0x00,0x00,0x07,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x00,0x00,0x00,0x07,0x07,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x00,0x00,0x07,0x07,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x00,0x07,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x07,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16, -}; -uint8_t tileset_tile_14_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x07,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x07,0x07,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x07,0x07,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x07,0x00, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x07, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, -}; -uint8_t tileset_tile_15_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x09,0x00,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x00,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x09,0x00,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x09,0x00,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x00, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09, -}; -uint8_t tileset_tile_16_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x04,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B, - 0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x1F,0x04,0x3B,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F, - 0x4B,0x4B,0x04,0x04,0x04,0x1F,0x1F,0x3B,0x3B,0x04,0x1F,0x03,0x04,0x03,0x4B,0x4B, - 0x4B,0x1C,0x3B,0x3B,0x3B,0x04,0x04,0x3B,0x4B,0x04,0x03,0x3B,0x3B,0x3B,0x03,0x1F, - 0x4B,0x4B,0x1C,0x3B,0x3B,0x3B,0x04,0x4B,0x4B,0x03,0x1F,0x4B,0x3B,0x03,0x04,0x1F, - 0x4B,0x4B,0x4B,0x1C,0x4B,0x4B,0x4B,0x04,0x1F,0x03,0x1F,0x1F,0x04,0x04,0x1F,0x4B, - 0x4B,0x1C,0x1C,0x1C,0x04,0x04,0x4B,0x04,0x04,0x04,0x1F,0x03,0x03,0x03,0x03,0x4B, - 0x04,0x3B,0x3B,0x3B,0x4B,0x04,0x04,0x4B,0x03,0x1F,0x03,0x1F,0x4B,0x4B,0x4B,0x03, - 0x1F,0x04,0x3B,0x4B,0x4B,0x1F,0x04,0x04,0x03,0x03,0x1F,0x1F,0x1F,0x1F,0x03,0x1F, - 0x4B,0x1F,0x04,0x1F,0x1F,0x1F,0x1F,0x03,0x03,0x04,0x04,0x04,0x03,0x03,0x04,0x04, - 0x4B,0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x1F, - 0x4B,0x1F,0x04,0x4B,0x4B,0x1F,0x03,0x04,0x03,0x03,0x04,0x1F,0x1F,0x03,0x1F,0x4B, - 0x4B,0x04,0x4B,0x4B,0x1F,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x1F,0x03,0x1F, - 0x1F,0x04,0x03,0x03,0x03,0x03,0x1F,0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x03,0x04, - 0x1F,0x1F,0x04,0x04,0x04,0x04,0x03,0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04, - 0x4B,0x4B,0x1F,0x1F,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x1F,0x1F,0x4B,0x4B, -}; -uint8_t tileset_tile_17_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x39,0x39,0x3E,0x20,0x00, - 0x00,0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x20,0x39,0x39,0x39,0x3E,0x3E,0x3E,0x20, - 0x00,0x20,0x3E,0x3E,0x39,0x20,0x20,0x00,0x20,0x20,0x39,0x39,0x3E,0x3E,0x3E,0x20, - 0x20,0x3E,0x3E,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x39,0x39,0x39,0x3E,0x39,0x20, - 0x20,0x3E,0x39,0x3E,0x39,0x20,0x20,0x20,0x20,0x39,0x20,0x39,0x39,0x39,0x20,0x00, - 0x00,0x20,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x39,0x39,0x20, - 0x20,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00, - 0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x3F,0x3F,0x20,0x00,0x00,0x00,0x00,0x00, - 0x00,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x20,0x20,0x00,0x20,0x45,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x45,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x39,0x20,0x20,0x3F,0x45,0x3F,0x20,0x39,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x39,0x20,0x33,0x45,0x3F,0x45,0x45,0x3F,0x20,0x39,0x00,0x00,0x00, - 0x00,0x00,0x00,0x39,0x20,0x20,0x33,0x45,0x3F,0x45,0x20,0x20,0x39,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x39,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_18_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x01,0x01,0x05,0x04,0x04,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x00,0x00,0x00, - 0x00,0x00,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x00,0x00, - 0x00,0x00,0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x04,0x00,0x00, - 0x00,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x04,0x00, - 0x00,0x01,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x01,0x1F, - 0x00,0x03,0x01,0x04,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x04,0x01,0x03,0x1C, - 0x00,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x1C, - 0x00,0x03,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x03,0x1C, - 0x00,0x03,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x03,0x1C, - 0x00,0x1F,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x1C,0x1F, - 0x00,0x00,0x1C,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x1C,0x1F,0x00, - 0x00,0x00,0x00,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_19_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x2C,0x2C,0x33,0x33,0x33,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x33,0x2C,0x36,0x36,0x36,0x2C,0x19,0x2C,0x33,0x2C,0x00,0x00, - 0x00,0x00,0x00,0x2C,0x2C,0x36,0x36,0x36,0x36,0x2C,0x19,0x36,0x36,0x28,0x33,0x00, - 0x00,0x00,0x33,0x2C,0x36,0x36,0x36,0x28,0x2C,0x19,0x36,0x36,0x28,0x28,0x33,0x00, - 0x00,0x19,0x2C,0x36,0x36,0x28,0x36,0x28,0x28,0x28,0x36,0x36,0x28,0x28,0x2C,0x00, - 0x00,0x33,0x36,0x36,0x28,0x28,0x36,0x28,0x28,0x28,0x28,0x28,0x2C,0x2C,0x2C,0x19, - 0x00,0x33,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x28,0x28,0x28,0x2C,0x28,0x29, - 0x35,0x33,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x19,0x2C,0x28,0x2C,0x28,0x2C,0x29, - 0x19,0x33,0x28,0x28,0x28,0x2C,0x19,0x28,0x28,0x2C,0x19,0x2C,0x28,0x2C,0x2C,0x29, - 0x29,0x33,0x19,0x28,0x28,0x19,0x28,0x2C,0x2C,0x19,0x29,0x19,0x19,0x29,0x29,0x29, - 0x29,0x33,0x33,0x19,0x19,0x19,0x2C,0x2C,0x19,0x33,0x29,0x33,0x33,0x29,0x29,0x29, - 0x29,0x33,0x33,0x2C,0x33,0x19,0x19,0x19,0x29,0x33,0x29,0x33,0x33,0x29,0x29,0x29, - 0x35,0x29,0x29,0x33,0x29,0x33,0x33,0x29,0x29,0x33,0x29,0x33,0x29,0x29,0x29,0x35, - 0x00,0x35,0x29,0x29,0x29,0x33,0x33,0x29,0x29,0x29,0x33,0x29,0x29,0x29,0x35,0x35, - 0x00,0x00,0x35,0x35,0x29,0x29,0x29,0x29,0x29,0x35,0x29,0x29,0x29,0x35,0x35,0x00, - 0x00,0x00,0x00,0x00,0x35,0x29,0x29,0x29,0x19,0x35,0x35,0x35,0x35,0x00,0x00,0x00, -}; -uint8_t tileset_tile_20_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x1F,0x03,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x05, - 0x4B,0x1F,0x4B,0x1C,0x1C,0x04,0x01,0x05,0x05,0x04,0x05,0x01,0x01,0x05,0x01,0x05, - 0x1F,0x1C,0x1C,0x1C,0x03,0x05,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x05, - 0x1C,0x1C,0x03,0x03,0x03,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x04,0x05,0x01, - 0x1C,0x1C,0x03,0x01,0x01,0x03,0x01,0x03,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04, - 0x1C,0x1C,0x1C,0x04,0x01,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x01, - 0x1F,0x1C,0x03,0x01,0x04,0x04,0x03,0x05,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x05, - 0x1F,0x1F,0x04,0x04,0x04,0x01,0x04,0x04,0x05,0x05,0x04,0x05,0x05,0x05,0x01,0x05, - 0x1F,0x1F,0x03,0x04,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05, - 0x1F,0x03,0x03,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x04,0x04,0x05,0x04,0x05,0x05, - 0x1C,0x04,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x04,0x03,0x01,0x05,0x01, - 0x1C,0x03,0x04,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x01, - 0x1C,0x03,0x04,0x03,0x03,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04, - 0x1C,0x1F,0x03,0x01,0x04,0x03,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x04,0x01, - 0x1C,0x03,0x01,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x04,0x01,0x01,0x04,0x01, - 0x1C,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x01,0x01,0x04,0x01,0x04, -}; -uint8_t tileset_tile_21_data[258] = { - 16, // tile_width - 16, // tile_height - 0x05,0x04,0x05,0x01,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x03,0x1F,0x4B,0x4B,0x4B, - 0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x01,0x05,0x01,0x04,0x1C,0x1C,0x4B,0x1F,0x4B, - 0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x04,0x1C,0x1F, - 0x01,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x05,0x05,0x03,0x03,0x03,0x1C,0x1C, - 0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x05,0x03,0x01,0x03,0x01,0x01,0x03,0x04,0x1C, - 0x01,0x04,0x01,0x01,0x05,0x01,0x05,0x01,0x05,0x04,0x03,0x01,0x04,0x04,0x04,0x1C, - 0x05,0x05,0x01,0x05,0x01,0x05,0x01,0x05,0x05,0x03,0x04,0x04,0x01,0x03,0x1C,0x1F, - 0x05,0x01,0x05,0x01,0x05,0x04,0x05,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x1F,0x1F, - 0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x04,0x03,0x1F,0x1F, - 0x05,0x05,0x04,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x03,0x03,0x1F, - 0x01,0x05,0x01,0x03,0x04,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x04,0x1C, - 0x01,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x04,0x03,0x1C, - 0x04,0x04,0x01,0x39,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x03,0x03,0x04,0x03,0x1C, - 0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x04,0x01,0x03,0x1C,0x1C, - 0x01,0x04,0x01,0x01,0x04,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x01,0x03,0x1C, - 0x04,0x01,0x04,0x01,0x01,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x1C, -}; -uint8_t tileset_tile_22_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x03,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x05, - 0x4B,0x4B,0x4B,0x1F,0x4B,0x04,0x01,0x05,0x05,0x04,0x05,0x01,0x01,0x05,0x01,0x05, - 0x4B,0x4B,0x4B,0x1F,0x03,0x05,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x05, - 0x4B,0x1F,0x03,0x03,0x03,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x04,0x05,0x01, - 0x4B,0x4B,0x03,0x01,0x01,0x03,0x01,0x03,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04, - 0x4B,0x4B,0x4B,0x04,0x01,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x01, - 0x4B,0x4B,0x03,0x01,0x04,0x04,0x03,0x05,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x04,0x04,0x04,0x01,0x04,0x04,0x05,0x05,0x04,0x05,0x05,0x05,0x01,0x05, - 0x4B,0x4B,0x03,0x04,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x03,0x03,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x04,0x04,0x05,0x04,0x05,0x05, - 0x4B,0x04,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x04,0x03,0x01,0x05,0x01, - 0x4B,0x03,0x04,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x01, - 0x4B,0x03,0x04,0x03,0x03,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04, - 0x4B,0x4B,0x03,0x01,0x04,0x03,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x04,0x01, - 0x4B,0x03,0x01,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x04,0x01,0x01,0x04,0x01, - 0x4B,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x01,0x01,0x04,0x01,0x04, -}; -uint8_t tileset_tile_23_data[258] = { - 16, // tile_width - 16, // tile_height - 0x05,0x04,0x05,0x01,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x03,0x4B,0x4B,0x4B,0x4B, - 0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x01,0x05,0x01,0x04,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x03,0x4B,0x3D,0x4B,0x4B, - 0x01,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x05,0x05,0x03,0x03,0x03,0x4B,0x4B, - 0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x05,0x03,0x01,0x03,0x01,0x01,0x03,0x4B,0x4B, - 0x01,0x04,0x01,0x01,0x05,0x01,0x05,0x01,0x05,0x04,0x03,0x01,0x04,0x4B,0x4B,0x4B, - 0x05,0x05,0x01,0x05,0x01,0x05,0x01,0x05,0x05,0x03,0x04,0x04,0x01,0x03,0x4B,0x4B, - 0x05,0x01,0x05,0x01,0x05,0x04,0x05,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x04,0x03,0x4B,0x4B, - 0x05,0x05,0x04,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x03,0x03,0x4B, - 0x01,0x05,0x01,0x03,0x04,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x04,0x4B, - 0x01,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x04,0x03,0x4B, - 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x03,0x03,0x04,0x03,0x4B, - 0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x04,0x01,0x03,0x4B,0x4B, - 0x01,0x04,0x01,0x01,0x04,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x01,0x03,0x4B, - 0x04,0x01,0x04,0x01,0x01,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x4B, -}; -uint8_t tileset_tile_24_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, -}; -uint8_t tileset_tile_25_data[258] = { - 16, // tile_width - 16, // tile_height - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, -}; -uint8_t tileset_tile_26_data[258] = { - 16, // tile_width - 16, // tile_height - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14, -}; -uint8_t tileset_tile_27_data[258] = { - 16, // tile_width - 16, // tile_height - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, - 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02, - 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02, - 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02, -}; -uint8_t tileset_tile_28_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x12,0x09,0x12,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x0F,0x07,0x07,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x0F,0x0F,0x0F,0x07,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_29_data[258] = { - 16, // tile_width - 16, // tile_height - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x07,0x07,0x07,0x07,0x07, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09, - 0x09,0x0F,0x0F,0x09,0x12,0x12,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x0F,0x0F,0x09,0x12,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x0F,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x0A,0x0B, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0B,0x0B,0x0B, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0B,0x0B,0x0A,0x09,0x12,0x0B, - 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0B,0x0B,0x09,0x12,0x0B,0x0B, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x0B,0x0B,0x0B, -}; -uint8_t tileset_tile_30_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x07,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x12,0x12,0x09,0x0F,0x0F,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x12,0x09,0x0F,0x0F,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x0F,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0B,0x0A,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0B,0x0B,0x0B,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0B,0x12,0x09,0x0A,0x0B,0x0B,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0B,0x0B,0x12,0x09,0x0B,0x0B,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0B,0x0B,0x0B,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_31_data[258] = { - 16, // tile_width - 16, // tile_height - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x12,0x12,0x09,0x12,0x12,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x12,0x09,0x12,0x12,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x07,0x07,0x0F,0x12,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x07,0x0F,0x0F,0x0F,0x12,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x02, -}; -uint8_t tileset_tile_32_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_33_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15, - 0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_34_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B, - 0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B, - 0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, -}; -uint8_t tileset_tile_35_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x20,0x20,0x26,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x20,0x00,0x00,0x00, - 0x00,0x00,0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x20,0x00,0x00, - 0x00,0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x26,0x26,0x20,0x20,0x00, - 0x00,0x20,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x26,0x20,0x00, - 0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x26,0x26,0x20,0x20,0x27, - 0x20,0x26,0x26,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x26,0x26,0x26,0x20,0x20,0x27, - 0x20,0x26,0x2B,0x26,0x2B,0x26,0x2B,0x2B,0x26,0x2B,0x26,0x26,0x20,0x26,0x20,0x27, - 0x20,0x26,0x26,0x2B,0x26,0x2B,0x26,0x26,0x2B,0x26,0x26,0x20,0x26,0x20,0x20,0x27, - 0x20,0x20,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x20,0x26,0x20,0x27, - 0x20,0x20,0x26,0x26,0x26,0x20,0x26,0x26,0x20,0x26,0x20,0x26,0x20,0x20,0x20,0x27, - 0x20,0x20,0x20,0x26,0x20,0x26,0x20,0x26,0x26,0x20,0x26,0x20,0x20,0x20,0x27,0x27, - 0x00,0x27,0x20,0x20,0x20,0x20,0x26,0x20,0x20,0x26,0x20,0x20,0x20,0x27,0x27,0x00, - 0x00,0x27,0x27,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x00, - 0x00,0x00,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00, - 0x00,0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_36_data[258] = { - 16, // tile_width - 16, // tile_height - 0x1F,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01, - 0x4B,0x4B,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01, - 0x4B,0x4B,0x4B,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03, - 0x4B,0x4B,0x4B,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04, - 0x4B,0x4B,0x4B,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04, - 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x04, - 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x04, - 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x03,0x03,0x04, - 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,0x03, - 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,0x3C, - 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C, - 0x4B,0x1F,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x37, - 0x4B,0x4B,0x1F,0x1C,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03, - 0x4B,0x4B,0x4B,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x04, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04, -}; -uint8_t tileset_tile_37_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B, - 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x4B,0x4B, - 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1F,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x4B,0x4B,0x4B, - 0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x4B,0x4B,0x4B, - 0x04,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,0x4B, - 0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B, - 0x04,0x03,0x03,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B, - 0x03,0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B, - 0x3C,0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B, - 0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B, - 0x37,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1F,0x4B, - 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1F,0x4B,0x4B, - 0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x4B,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_38_data[258] = { - 16, // tile_width - 16, // tile_height - 0x1F,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01, - 0x4B,0x4B,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01, - 0x4B,0x4B,0x4B,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03, - 0x4B,0x4B,0x4B,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03, - 0x4B,0x4B,0x4B,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x05, - 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x05, - 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x01,0x05, - 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05, - 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x01,0x05,0x05, - 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x01,0x01,0x05,0x01,0x05,0x05, - 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x05,0x05,0x01,0x05,0x05,0x05, - 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x4B,0x1C,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x4B,0x4B,0x1C,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x4B,0x4B,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05, -}; -uint8_t tileset_tile_39_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B, - 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x4B,0x4B, - 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1F,0x4B,0x4B, - 0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x4B,0x4B,0x4B, - 0x05,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x4B,0x4B,0x4B, - 0x05,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,0x4B, - 0x05,0x01,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B, - 0x05,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B, - 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B, - 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B, - 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x03,0x04,0x04,0x1C,0x1F,0x1F,0x4B, - 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x01,0x03,0x1C,0x4B,0x1F,0x1F,0x4B, - 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x01,0x01,0x03,0x3B,0x4B,0x4B,0x1F, -}; -uint8_t tileset_tile_40_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02, - 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, -}; -uint8_t tileset_tile_41_data[258] = { - 16, // tile_width - 16, // tile_height - 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, - 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, - 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, - 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02, - 0x02,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x02, - 0x02,0x32,0x32,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x32,0x32,0x02, -}; -uint8_t tileset_tile_42_data[258] = { - 16, // tile_width - 16, // tile_height - 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14, - 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, - 0x4A,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24, - 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24, - 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24, - 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24, - 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24, - 0x24,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x24, - 0x24,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x24, -}; -uint8_t tileset_tile_43_data[258] = { - 16, // tile_width - 16, // tile_height - 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x19,0x02, - 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x14,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, -}; -uint8_t tileset_tile_44_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x07,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x07,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x10,0x02,0x07,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x17,0x10,0x02,0x07,0x09,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x0B,0x17,0x10,0x02,0x07,0x09,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x1B,0x0B,0x17,0x10,0x02,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x10,0x1B,0x0B,0x17,0x10,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x17,0x10,0x1B,0x0B,0x17,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x17,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x17,0x1B,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x17,0x1B,0x1B,0x1B,0x10,0x1B,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x10,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, -}; -uint8_t tileset_tile_45_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x0A,0x0A,0x0A, - 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0A,0x0A,0x09,0x12,0x0A,0x0A, - 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x09,0x12,0x0A, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x09,0x09, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x0A, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x0F,0x0A,0x0A, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, -}; -uint8_t tileset_tile_46_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0A,0x0A,0x0A,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x0A,0x0A,0x12,0x09,0x0A,0x0A,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0A,0x12,0x09,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09, - 0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x0A,0x0A,0x0F,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x0B,0x0B,0x1B,0x1B,0x1B,0x1B,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B, -}; -uint8_t tileset_tile_47_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x07,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x07,0x02,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x07,0x02,0x10,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x09,0x07,0x02,0x10,0x17,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x09,0x07,0x02,0x10,0x17,0x0B,0x02, - 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x02,0x10,0x17,0x0B,0x1B,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x17,0x0B,0x1B,0x10,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x17,0x0B,0x1B,0x10,0x17,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x17,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x1B,0x17,0x02, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1B,0x10,0x1B,0x1B,0x1B,0x17,0x02, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x10,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x0B,0x02,0x10,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, -}; -uint8_t tileset_tile_48_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_49_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_50_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, -}; -uint8_t tileset_tile_51_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x2B,0x2B,0x20,0x20,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x20,0x20,0x20,0x2B,0x2B,0x2B,0x2B,0x26,0x20,0x00,0x00,0x00,0x00, - 0x00,0x00,0x20,0x26,0x2B,0x20,0x2B,0x2B,0x2B,0x26,0x26,0x20,0x27,0x00,0x00,0x00, - 0x00,0x00,0x20,0x20,0x2B,0x2B,0x26,0x2B,0x26,0x2B,0x20,0x27,0x26,0x27,0x00,0x00, - 0x00,0x20,0x26,0x27,0x26,0x2B,0x2B,0x20,0x20,0x27,0x27,0x20,0x20,0x27,0x00,0x00, - 0x00,0x27,0x20,0x27,0x20,0x26,0x2B,0x26,0x2B,0x26,0x20,0x26,0x26,0x20,0x27,0x00, - 0x00,0x27,0x26,0x2B,0x20,0x20,0x26,0x2B,0x26,0x27,0x26,0x26,0x26,0x27,0x27,0x00, - 0x00,0x27,0x20,0x26,0x2B,0x20,0x2B,0x26,0x20,0x27,0x20,0x26,0x27,0x20,0x27,0x00, - 0x00,0x27,0x20,0x20,0x20,0x27,0x20,0x20,0x26,0x26,0x27,0x20,0x20,0x20,0x27,0x00, - 0x00,0x27,0x20,0x20,0x27,0x27,0x20,0x26,0x20,0x20,0x27,0x27,0x20,0x20,0x27,0x00, - 0x00,0x00,0x27,0x20,0x27,0x27,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x00,0x00, - 0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x20,0x20,0x27,0x27,0x27,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x00,0x00,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_52_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x36,0x36,0x29,0x29,0x29,0x29,0x29,0x00,0x00, - 0x00,0x33,0x36,0x36,0x36,0x36,0x2C,0x36,0x36,0x2C,0x36,0x36,0x36,0x36,0x29,0x00, - 0x00,0x33,0x36,0x36,0x36,0x36,0x36,0x2C,0x2C,0x36,0x36,0x36,0x36,0x36,0x29,0x00, - 0x00,0x33,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x29,0x00, - 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00, - 0x00,0x33,0x2C,0x33,0x28,0x33,0x28,0x28,0x28,0x28,0x33,0x28,0x33,0x2C,0x29,0x00, - 0x00,0x33,0x2C,0x33,0x33,0x28,0x33,0x2C,0x2C,0x33,0x28,0x33,0x33,0x2C,0x29,0x00, - 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00, - 0x00,0x33,0x2C,0x28,0x2C,0x2C,0x28,0x2C,0x28,0x2C,0x2C,0x2C,0x28,0x2C,0x29,0x00, - 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00, - 0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00, - 0x00,0x00,0x00,0x00,0x35,0x35,0x33,0x2C,0x2C,0x29,0x35,0x35,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x35,0x35,0x35,0x33,0x36,0x2C,0x29,0x35,0x35,0x35,0x00,0x00,0x00, - 0x00,0x00,0x00,0x35,0x35,0x35,0x35,0x29,0x29,0x35,0x35,0x35,0x35,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_53_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x37,0x37,0x37,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x37,0x09,0x09,0x09,0x09,0x37,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x37,0x09,0x1B,0x09,0x41,0x41,0x09,0x37,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x37,0x09,0x41,0x09,0x41,0x41,0x41,0x41,0x09,0x37,0x00,0x00,0x00, - 0x00,0x00,0x00,0x37,0x09,0x41,0x41,0x37,0x37,0x41,0x41,0x09,0x37,0x00,0x00,0x00, - 0x00,0x00,0x00,0x42,0x37,0x41,0x37,0x1B,0x35,0x37,0x41,0x37,0x42,0x00,0x00,0x00, - 0x00,0x00,0x00,0x42,0x43,0x37,0x37,0x35,0x35,0x37,0x37,0x43,0x42,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x42,0x43,0x1B,0x37,0x37,0x1B,0x43,0x42,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x42,0x43,0x1B,0x1B,0x43,0x42,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_54_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x04,0x04,0x01,0x04,0x04,0x00,0x00,0x00,0x00, - 0x00,0x00,0x04,0x04,0x05,0x05,0x04,0x01,0x01,0x04,0x05,0x05,0x04,0x04,0x00,0x00, - 0x00,0x04,0x05,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x05,0x04,0x00, - 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04, - 0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05, - 0x04,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04, -}; -uint8_t tileset_tile_55_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x38,0x43,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x43,0x38,0x00, - 0x38,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x38, - 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38, - 0x38,0x2F,0x44,0x44,0x48,0x2F,0x2F,0x2F,0x44,0x2F,0x2F,0x2F,0x44,0x2F,0x2F,0x38, - 0x38,0x2F,0x44,0x2F,0x44,0x2F,0x44,0x2F,0x2F,0x2F,0x48,0x2F,0x2F,0x44,0x2F,0x38, - 0x38,0x2F,0x48,0x2F,0x2F,0x2F,0x44,0x48,0x2F,0x2F,0x44,0x2F,0x44,0x48,0x2F,0x38, - 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38, - 0x38,0x2F,0x46,0x09,0x09,0x09,0x46,0x09,0x09,0x09,0x46,0x46,0x09,0x46,0x2F,0x38, - 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38, - 0x38,0x2F,0x46,0x2F,0x09,0x46,0x2F,0x09,0x09,0x2F,0x46,0x2F,0x46,0x09,0x2F,0x38, - 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38, - 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38, - 0x10,0x38,0x38,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x38,0x38,0x10, - 0x10,0x38,0x43,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x43,0x38,0x10, - 0x00,0x38,0x43,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x43,0x38,0x00, - 0x00,0x10,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x10,0x00, -}; -uint8_t tileset_tile_56_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x15,0x15,0x15,0x07,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07, - 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x2A,0x21,0x21,0x21,0x21,0x21,0x07, - 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07, - 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07, - 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07, - 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07, - 0x00,0x00,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10, -}; -uint8_t tileset_tile_57_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x32,0x32,0x07,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x07,0x32,0x32,0x02, - 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02, - 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02, - 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02, - 0x02,0x32,0x32,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x32,0x32,0x02, - 0x02,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x02, - 0x02,0x07,0x07,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x02, - 0x07,0x30,0x15,0x07,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x02, - 0x07,0x15,0x15,0x07,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02, - 0x02,0x07,0x07,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02, - 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02, - 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02, - 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02, - 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_58_data[258] = { - 16, // tile_width - 16, // tile_height - 0x24,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x24, - 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24, - 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24, - 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24, - 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24, - 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24, - 0x15,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x15, - 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, - 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A, - 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, - 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, - 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, - 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, - 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_59_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x07,0x02,0x10,0x10, - 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x15,0x15,0x15,0x07,0x02,0x10,0x10, - 0x07,0x2A,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10, - 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10, - 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10, - 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10, - 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10, - 0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10, -}; -uint8_t tileset_tile_60_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0A,0x0B,0x0B,0x0B,0x17,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x00,0x10,0x10,0x02,0x0A,0x0A,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x00,0x00,0x10,0x10,0x02,0x0A,0x0A,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x00,0x00,0x00,0x10,0x10,0x02,0x0A,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_61_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02, - 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02, - 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02, - 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02, - 0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_62_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x16,0x0F,0x0F,0x0F,0x16,0x1B,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x1B,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x1B,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x09,0x09,0x09,0x0B,0x0B,0x09, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x09,0x0B,0x0B,0x0B,0x0B,0x09, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x09,0x0B,0x09,0x0B,0x09, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_63_data[258] = { - 16, // tile_width - 16, // tile_height - 0x1B,0x1B,0x16,0x0F,0x0F,0x0F,0x16,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x1B,0x1B,0x0F,0x0F,0x16,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x1B,0x1B,0x0F,0x0F,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x09,0x0B,0x09,0x09,0x16,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0B,0x02, - 0x09,0x0B,0x16,0x09,0x09,0x09,0x16,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0B,0x0B,0x02, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0B,0x0B,0x0B,0x02, - 0x09,0x0B,0x09,0x0B,0x09,0x09,0x0B,0x0B,0x17,0x1B,0x17,0x0B,0x0B,0x0B,0x0A,0x02, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,0x10, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0B,0x0A,0x0A,0x02,0x10,0x10, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0A,0x0A,0x02,0x10,0x10,0x00, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0A,0x0A,0x02,0x10,0x10,0x00,0x00, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0A,0x02,0x10,0x10,0x00,0x00,0x00, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,0x10,0x10,0x00,0x00,0x00,0x00, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,0x00,0x00,0x00,0x00, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_64_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08, - 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15, - 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_65_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08, - 0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E, - 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_66_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B, - 0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_67_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08, - 0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x15,0x15,0x15,0x08,0x08,0x08,0x3A,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_68_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x15,0x15,0x15, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_69_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x04,0x04,0x05,0x04, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x03,0x03,0x05,0x05,0x04,0x05, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x05,0x01,0x05,0x04,0x05,0x01, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x04,0x04,0x01,0x01,0x04,0x01,0x04,0x05,0x01, - 0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x01,0x04,0x01, - 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x01, - 0x4B,0x4B,0x4B,0x4B,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04, - 0x4B,0x4B,0x1C,0x04,0x03,0x05,0x05,0x05,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01, - 0x4B,0x4B,0x1C,0x03,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x04, - 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x1F,0x04,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x1F,0x04,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x1F,0x1F,0x04,0x03,0x01,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x1F,0x1C,0x03,0x01,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05, -}; -uint8_t tileset_tile_70_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, - 0x01,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x01, - 0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01, - 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, - 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01, - 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01, - 0x04,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x04, - 0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01, - 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04, - 0x01,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x01, - 0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x01,0x01,0x04,0x03,0x04,0x03,0x03,0x04,0x04, - 0x05,0x01,0x04,0x04,0x03,0x04,0x03,0x01,0x01,0x03,0x04,0x03,0x04,0x04,0x01,0x05, - 0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x05, - 0x05,0x01,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x01,0x05, - 0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05, - 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, -}; -uint8_t tileset_tile_71_data[258] = { - 16, // tile_width - 16, // tile_height - 0x04,0x05,0x04,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x05,0x04,0x05,0x05,0x03,0x03,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x01,0x05,0x04,0x05,0x01,0x05,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x01,0x05,0x04,0x01,0x04,0x01,0x01,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x01,0x04,0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x01,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x04,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x4B,0x4B,0x4B,0x4B, - 0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x1C,0x4B,0x4B, - 0x04,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x03,0x1C,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x1F,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x04,0x1F,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x01,0x03,0x04,0x1F,0x1F, - 0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x04,0x01,0x03,0x1C,0x1F, -}; -uint8_t tileset_tile_72_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x00,0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x00,0x00,0x00,0x0C,0x0C,0x11,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x00,0x00,0x0C,0x11,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x00,0x0C,0x11,0x11,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x0C,0x11,0x11,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, -}; -uint8_t tileset_tile_73_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, -}; -uint8_t tileset_tile_74_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, -}; -uint8_t tileset_tile_75_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x0C,0x00,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x0C,0x00,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x00,0x00,0x00,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x0C,0x00,0x00,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x0C,0x00,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x0C,0x00, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x0C, -}; -uint8_t tileset_tile_76_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x02,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09, - 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12, - 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F, - 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12, - 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09, - 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x02,0x16,0x16,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x16,0x07,0x0F,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16, - 0x02,0x0F,0x07,0x0F,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16, - 0x02,0x0F,0x07,0x0F,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12, - 0x02,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x0F,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_77_data[258] = { - 16, // tile_width - 16, // tile_height - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09, - 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12, - 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F, - 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12, - 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09, - 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16, - 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16, - 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_78_data[258] = { - 16, // tile_width - 16, // tile_height - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09, - 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12, - 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F, - 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12, - 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09, - 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12, - 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16, - 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16, - 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_79_data[258] = { - 16, // tile_width - 16, // tile_height - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00, - 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x02, - 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x09,0x09,0x02, - 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02, - 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x09,0x02, - 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x02, - 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x09,0x02, - 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02, - 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x09,0x09,0x02, - 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x02, - 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x0F,0x07,0x09,0x02, - 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x0F,0x07,0x07,0x02, - 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x0F,0x07,0x07,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, -}; -uint8_t tileset_tile_80_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_81_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D, - 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x13, - 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13, - 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13, - 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13, - 0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x06,0x06,0x0D, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_82_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x4B,0x4B, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_83_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x15,0x15,0x15,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, -}; -uint8_t tileset_tile_84_data[258] = { - 16, // tile_width - 16, // tile_height - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08, - 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x15,0x15,0x15, - 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E, - 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B, -}; -uint8_t tileset_tile_85_data[258] = { - 16, // tile_width - 16, // tile_height - 0x1C,0x1C,0x03,0x01,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x04, - 0x1C,0x03,0x01,0x05,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x04, - 0x1C,0x03,0x01,0x01,0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x05,0x05,0x01,0x04,0x04, - 0x1C,0x04,0x04,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x03,0x04, - 0x1C,0x04,0x01,0x01,0x05,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03, - 0x1C,0x03,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03, - 0x1C,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x03,0x04,0x03,0x03, - 0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x04,0x03,0x04,0x03,0x01,0x04,0x04,0x04, - 0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x01,0x01,0x01,0x01,0x04, - 0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01, - 0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01, - 0x4B,0x1F,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x01,0x01,0x01,0x01,0x01, - 0x4B,0x4B,0x1F,0x1C,0x1C,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x01, - 0x4B,0x4B,0x4B,0x1C,0x1C,0x1C,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x04,0x04, - 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x03,0x04, - 0x4B,0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x03,0x03, -}; -uint8_t tileset_tile_86_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x01, - 0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05, - 0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05, - 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04, - 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x04,0x04, - 0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04, - 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x03, - 0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04, - 0x01,0x03,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x03,0x01, - 0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01, - 0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x01, - 0x01,0x01,0x04,0x04,0x05,0x05,0x04,0x01,0x01,0x04,0x05,0x05,0x04,0x04,0x01,0x01, - 0x01,0x04,0x05,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x05,0x04,0x01, - 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04, - 0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05, - 0x04,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04, -}; -uint8_t tileset_tile_87_data[258] = { - 16, // tile_width - 16, // tile_height - 0x04,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x03,0x1C,0x1C, - 0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0x03,0x1C, - 0x04,0x04,0x01,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x03,0x1C, - 0x04,0x03,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x05,0x04,0x04,0x1C, - 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x01,0x04,0x1C, - 0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x03,0x1C, - 0x03,0x03,0x04,0x03,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x1C, - 0x04,0x04,0x04,0x01,0x03,0x04,0x03,0x04,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x1C, - 0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x1F, - 0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x1F,0x1F, - 0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x1F,0x4B, - 0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,0x1F,0x4B, - 0x01,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1F,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1C,0x4B,0x4B,0x4B, - 0x04,0x03,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,0x4B, -}; -uint8_t tileset_tile_88_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x22,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x22,0x22,0x22,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x22,0x22,0x25,0x07,0x07,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x22,0x25,0x25,0x25,0x07,0x07,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x0C,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_89_data[258] = { - 16, // tile_width - 16, // tile_height - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0A,0x0B, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0B,0x0B,0x0B, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0B,0x0B,0x0A,0x0C,0x0C, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0B,0x0B,0x0A,0x0C,0x22,0x0B, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0B,0x0B,0x0C,0x22,0x0B,0x0B, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x0B,0x0B,0x0B, -}; -uint8_t tileset_tile_90_data[258] = { - 16, // tile_width - 16, // tile_height - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0B,0x0A,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0B,0x0B,0x0B,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0C,0x0C,0x0A,0x0B,0x0B,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0B,0x22,0x0C,0x0A,0x0B,0x0B,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0B,0x0B,0x22,0x0C,0x0B,0x0B,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0B,0x0B,0x0B,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07, -}; -uint8_t tileset_tile_91_data[258] = { - 16, // tile_width - 16, // tile_height - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x22,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x22,0x0C,0x22,0x22,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x22,0x22,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x22,0x22,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x07,0x07,0x25,0x22,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x07,0x07,0x25,0x25,0x25,0x22,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x0C,0x02, -}; -uint8_t tileset_tile_92_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09, - 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x07,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F, - 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09, - 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x07,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F, - 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07, -}; -uint8_t tileset_tile_93_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07, - 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09, - 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09, - 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F, - 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07, - 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09, - 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09, - 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F, - 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07, -}; -uint8_t tileset_tile_94_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07, - 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09, - 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09, - 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F, - 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F, - 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07, - 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09, - 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09, - 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F, - 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07, -}; -uint8_t tileset_tile_95_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02, - 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02, - 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02, - 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02, - 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x07,0x02, - 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02, - 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02, - 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02, - 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02, - 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x07,0x02, - 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x02, -}; -uint8_t tileset_tile_96_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_97_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_98_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B, -}; -uint8_t tileset_tile_99_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_100_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x0D,0x0B,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_101_data[258] = { - 16, // tile_width - 16, // tile_height - 0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x04, - 0x1F,0x1C,0x1C,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x04,0x05, - 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x01,0x05,0x04,0x05,0x01, - 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x05,0x01, - 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x05,0x05,0x01,0x05,0x05,0x05,0x01,0x04,0x01, - 0x1F,0x1F,0x1C,0x04,0x03,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01, - 0x4B,0x1F,0x1C,0x1C,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x01, - 0x4B,0x1F,0x1C,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04, - 0x4B,0x4B,0x1C,0x04,0x03,0x05,0x05,0x05,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01, - 0x4B,0x4B,0x1C,0x03,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x04, - 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x1F,0x04,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x4B,0x1F,0x04,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x1F,0x1F,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05, - 0x1F,0x1C,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05, -}; -uint8_t tileset_tile_102_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, - 0x01,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x01, - 0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01, - 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, - 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01, - 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01, - 0x04,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x04, - 0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01, - 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04, - 0x01,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x01, - 0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x01,0x01,0x04,0x03,0x04,0x03,0x03,0x04,0x04, - 0x05,0x01,0x04,0x04,0x03,0x04,0x03,0x01,0x01,0x03,0x04,0x03,0x04,0x04,0x01,0x05, - 0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x05, - 0x05,0x01,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x01,0x05, - 0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05, - 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01, -}; -uint8_t tileset_tile_103_data[258] = { - 16, // tile_width - 16, // tile_height - 0x04,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F, - 0x05,0x04,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1F, - 0x01,0x05,0x04,0x05,0x01,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F, - 0x01,0x05,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F, - 0x01,0x04,0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F, - 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x03,0x04,0x1C,0x1F,0x1F, - 0x01,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x1C,0x1C,0x1F,0x4B, - 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x1C,0x1F,0x4B, - 0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x1C,0x4B,0x4B, - 0x04,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x03,0x1C,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x1F,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x04,0x1F,0x4B, - 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x1F,0x1F, - 0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x1C,0x1F, -}; -uint8_t tileset_tile_104_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x07,0x0C,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x07,0x0C,0x25,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x10,0x02,0x07,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x17,0x10,0x02,0x07,0x0C,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x0B,0x17,0x10,0x02,0x07,0x0C,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x1B,0x0B,0x17,0x10,0x02,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x02,0x10,0x1B,0x0B,0x17,0x10,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x17,0x10,0x1B,0x0B,0x17,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x17,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x17,0x1B,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x17,0x1B,0x1B,0x1B,0x10,0x1B,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x10,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, -}; -uint8_t tileset_tile_105_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0A,0x0A,0x0C,0x22,0x0A,0x0A, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0C,0x22,0x0A, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x0C,0x25,0x0A,0x0A, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, -}; -uint8_t tileset_tile_106_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x0A,0x0A,0x22,0x0C,0x0A,0x0A,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0A,0x22,0x0C,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C, - 0x0A,0x0A,0x25,0x0C,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x0B,0x0B,0x1B,0x1B,0x1B,0x1B,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B, -}; -uint8_t tileset_tile_107_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x0C,0x07,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x25,0x0C,0x07,0x02,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x07,0x02,0x10,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x0C,0x07,0x02,0x10,0x17,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x0C,0x07,0x02,0x10,0x17,0x0B,0x02, - 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x02,0x10,0x17,0x0B,0x1B,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x17,0x0B,0x1B,0x10,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x17,0x0B,0x1B,0x10,0x17,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x17,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x1B,0x17,0x02, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1B,0x10,0x1B,0x1B,0x1B,0x17,0x02, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x10,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x0B,0x02,0x10,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, -}; -uint8_t tileset_tile_108_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x02,0x12,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, -}; -uint8_t tileset_tile_109_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x02, - 0x02,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x02, -}; -uint8_t tileset_tile_110_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09, - 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07, - 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, - 0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E, - 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D, - 0x1D,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x1D, - 0x1D,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x1D, - 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D, - 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D, - 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D, -}; -uint8_t tileset_tile_111_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02, - 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02, - 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x00, - 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, -}; -uint8_t tileset_tile_112_data[258] = { - 16, // tile_width - 16, // tile_height - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x4B,0x4B,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_113_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x06,0x06,0x0D, - 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13, - 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13, - 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13, - 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x13, - 0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_114_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B, - 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, - 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_115_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0D,0x13,0x13,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06, - 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0B,0x0D,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06, - 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, -}; -uint8_t tileset_tile_116_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06, - 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06, - 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D, - 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D, - 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x13,0x13,0x0D,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B, - 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D, - 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B, - 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, - 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B, -}; -uint8_t tileset_tile_117_data[258] = { - 16, // tile_width - 16, // tile_height - 0x47,0x47,0x03,0x01,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x04, - 0x47,0x03,0x01,0x05,0x01,0x04,0x49,0x04,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x04, - 0x1C,0x03,0x01,0x01,0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x05,0x05,0x01,0x04,0x04, - 0x1C,0x04,0x04,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x03,0x04, - 0x1C,0x04,0x01,0x01,0x05,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03, - 0x1C,0x03,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03, - 0x1C,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x03,0x04,0x03,0x03, - 0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x04,0x03,0x04,0x03,0x01,0x04,0x04,0x04, - 0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x01,0x01,0x01,0x01,0x04, - 0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01, - 0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01, - 0x4B,0x1F,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x01,0x01,0x01,0x01,0x01, - 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x01, - 0x4B,0x4B,0x4B,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x04,0x03,0x04,0x04,0x04,0x04, - 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x04,0x03,0x04,0x03,0x04, - 0x4B,0x1F,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x04,0x04,0x03,0x03,0x04,0x04,0x03,0x03, -}; -uint8_t tileset_tile_118_data[258] = { - 16, // tile_width - 16, // tile_height - 0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x01, - 0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05, - 0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05, - 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04, - 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x04,0x04, - 0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04, - 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x03, - 0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04, - 0x01,0x03,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x03,0x01, - 0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01, - 0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01, - 0x01,0x01,0x04,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x04,0x01,0x01, - 0x01,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x01, - 0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x03,0x03,0x04,0x03,0x03,0x04,0x03,0x04,0x04, - 0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04, - 0x03,0x03,0x03,0x03,0x37,0x37,0x37,0x03,0x03,0x37,0x37,0x37,0x03,0x03,0x03,0x03, -}; -uint8_t tileset_tile_119_data[258] = { - 16, // tile_width - 16, // tile_height - 0x04,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x03,0x47,0x47, - 0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0x03,0x47, - 0x04,0x04,0x01,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x03,0x1C, - 0x04,0x03,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x05,0x04,0x04,0x1C, - 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x01,0x04,0x1C, - 0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x03,0x1C, - 0x03,0x03,0x04,0x03,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x1C, - 0x04,0x04,0x04,0x01,0x03,0x04,0x03,0x04,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x1C, - 0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x1F, - 0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x1F,0x1F, - 0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x1F,0x4B, - 0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,0x1F,0x4B, - 0x01,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x4B,0x4B,0x4B, - 0x04,0x03,0x04,0x03,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B, - 0x04,0x04,0x04,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x1F,0x4B, -}; -uint8_t tileset_tile_120_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0A,0x0B,0x0B,0x0B,0x17,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x00,0x10,0x10,0x02,0x0A,0x0A,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x00,0x00,0x10,0x10,0x02,0x0A,0x0A,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x00,0x00,0x00,0x10,0x10,0x02,0x0A,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_121_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02, - 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02, - 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02, - 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02, - 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02, - 0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_122_data[258] = { - 16, // tile_width - 16, // tile_height - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x16,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x1B,0x1B,0x0F,0x1B,0x0F,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x0F,0x1B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x0B,0x09,0x0B,0x09,0x0B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x16,0x0B,0x09,0x0B,0x09,0x0B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x09,0x0B,0x09,0x0B,0x09, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_123_data[258] = { - 16, // tile_width - 16, // tile_height - 0x16,0x0F,0x0F,0x1B,0x16,0x0F,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02, - 0x09,0x0B,0x09,0x0B,0x09,0x09,0x16,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0B,0x02, - 0x09,0x09,0x16,0x0B,0x09,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0B,0x0B,0x02, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0B,0x0B,0x0B,0x02, - 0x09,0x0B,0x09,0x0B,0x09,0x09,0x0B,0x0B,0x17,0x1B,0x17,0x0B,0x0B,0x0B,0x0A,0x02, - 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,0x10, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0B,0x0A,0x0A,0x02,0x10,0x10, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0A,0x0A,0x02,0x10,0x10,0x00, - 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0A,0x0A,0x02,0x10,0x10,0x00,0x00, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0A,0x02,0x10,0x10,0x00,0x00,0x00, - 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,0x10,0x10,0x00,0x00,0x00,0x00, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,0x00,0x00,0x00,0x00, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00, -}; -uint8_t tileset_tile_124_data[258] = { - 16, // tile_width - 16, // tile_height - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x07,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x2D,0x1D,0x1D,0x1D,0x1D,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07, - 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07, - 0x00,0x00,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10, -}; -uint8_t tileset_tile_125_data[258] = { - 16, // tile_width - 16, // tile_height - 0x02,0x0F,0x0F,0x07,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x07,0x0F,0x0F,0x02, - 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02, - 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02, - 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02, - 0x02,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x02, - 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x02, - 0x02,0x07,0x07,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x02, - 0x07,0x1B,0x0A,0x07,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x02, - 0x07,0x0A,0x0A,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_126_data[258] = { - 16, // tile_width - 16, // tile_height - 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D, - 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D, - 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D, - 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D, - 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D, - 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D, - 0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E, - 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E, - 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D, - 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, - 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, - 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, - 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, - 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D, - 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02, - 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -}; -uint8_t tileset_tile_127_data[258] = { - 16, // tile_width - 16, // tile_height - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x07,0x02,0x10,0x00, - 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x07,0x02,0x10,0x00, - 0x07,0x2D,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00, - 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00, - 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00, - 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00, - 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00, - 0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00, -}; -uint8_t *tileset_tiles_data[128] = { - tileset_tile_0_data, - tileset_tile_1_data, - tileset_tile_2_data, - tileset_tile_3_data, - tileset_tile_4_data, - tileset_tile_5_data, - tileset_tile_6_data, - tileset_tile_7_data, - tileset_tile_8_data, - tileset_tile_9_data, - tileset_tile_10_data, - tileset_tile_11_data, - tileset_tile_12_data, - tileset_tile_13_data, - tileset_tile_14_data, - tileset_tile_15_data, - tileset_tile_16_data, - tileset_tile_17_data, - tileset_tile_18_data, - tileset_tile_19_data, - tileset_tile_20_data, - tileset_tile_21_data, - tileset_tile_22_data, - tileset_tile_23_data, - tileset_tile_24_data, - tileset_tile_25_data, - tileset_tile_26_data, - tileset_tile_27_data, - tileset_tile_28_data, - tileset_tile_29_data, - tileset_tile_30_data, - tileset_tile_31_data, - tileset_tile_32_data, - tileset_tile_33_data, - tileset_tile_34_data, - tileset_tile_35_data, - tileset_tile_36_data, - tileset_tile_37_data, - tileset_tile_38_data, - tileset_tile_39_data, - tileset_tile_40_data, - tileset_tile_41_data, - tileset_tile_42_data, - tileset_tile_43_data, - tileset_tile_44_data, - tileset_tile_45_data, - tileset_tile_46_data, - tileset_tile_47_data, - tileset_tile_48_data, - tileset_tile_49_data, - tileset_tile_50_data, - tileset_tile_51_data, - tileset_tile_52_data, - tileset_tile_53_data, - tileset_tile_54_data, - tileset_tile_55_data, - tileset_tile_56_data, - tileset_tile_57_data, - tileset_tile_58_data, - tileset_tile_59_data, - tileset_tile_60_data, - tileset_tile_61_data, - tileset_tile_62_data, - tileset_tile_63_data, - tileset_tile_64_data, - tileset_tile_65_data, - tileset_tile_66_data, - tileset_tile_67_data, - tileset_tile_68_data, - tileset_tile_69_data, - tileset_tile_70_data, - tileset_tile_71_data, - tileset_tile_72_data, - tileset_tile_73_data, - tileset_tile_74_data, - tileset_tile_75_data, - tileset_tile_76_data, - tileset_tile_77_data, - tileset_tile_78_data, - tileset_tile_79_data, - tileset_tile_80_data, - tileset_tile_81_data, - tileset_tile_82_data, - tileset_tile_83_data, - tileset_tile_84_data, - tileset_tile_85_data, - tileset_tile_86_data, - tileset_tile_87_data, - tileset_tile_88_data, - tileset_tile_89_data, - tileset_tile_90_data, - tileset_tile_91_data, - tileset_tile_92_data, - tileset_tile_93_data, - tileset_tile_94_data, - tileset_tile_95_data, - tileset_tile_96_data, - tileset_tile_97_data, - tileset_tile_98_data, - tileset_tile_99_data, - tileset_tile_100_data, - tileset_tile_101_data, - tileset_tile_102_data, - tileset_tile_103_data, - tileset_tile_104_data, - tileset_tile_105_data, - tileset_tile_106_data, - tileset_tile_107_data, - tileset_tile_108_data, - tileset_tile_109_data, - tileset_tile_110_data, - tileset_tile_111_data, - tileset_tile_112_data, - tileset_tile_113_data, - tileset_tile_114_data, - tileset_tile_115_data, - tileset_tile_116_data, - tileset_tile_117_data, - tileset_tile_118_data, - tileset_tile_119_data, - tileset_tile_120_data, - tileset_tile_121_data, - tileset_tile_122_data, - tileset_tile_123_data, - tileset_tile_124_data, - tileset_tile_125_data, - tileset_tile_126_data, - tileset_tile_127_data, -}; +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t tileset_tile_0_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_1_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,0x4B,0x4B,0x3D,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3D,0x4B,0x4B,0x4B,0x3D,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,
+};
+uint8_t tileset_tile_2_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x3B,0x4B,0x4B,0x3B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,0x4B,0x3B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_3_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_4_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01,
+ 0x4B,0x1C,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01,
+ 0x4B,0x1F,0x1C,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,
+ 0x4B,0x1F,0x1F,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,
+ 0x4B,0x4B,0x1F,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x05,
+ 0x4B,0x1F,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x05,
+ 0x1F,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x01,0x05,
+ 0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,
+ 0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x01,0x05,0x05,
+ 0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x01,0x01,0x05,0x01,0x05,0x05,
+ 0x1C,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x05,0x05,0x01,0x05,0x05,0x05,
+ 0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x1C,0x04,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05,
+};
+uint8_t tileset_tile_5_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B,
+ 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x1C,0x4B,
+ 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1C,0x1F,0x4B,
+ 0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x1F,0x1F,0x4B,
+ 0x05,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x1F,0x4B,0x4B,
+ 0x05,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x1F,0x4B,
+ 0x05,0x01,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1F,
+ 0x05,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,
+ 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,
+ 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,
+ 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1C,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,
+ 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x05,0x03,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x04,0x1C,0x1F,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x05,0x01,0x03,0x1F,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_6_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x05,0x01,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x01,0x01,0x05,0x01,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x05,0x05,0x01,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x00,0x00,0x00,0x00,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05,
+};
+uint8_t tileset_tile_7_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x05,0x03,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x05,0x01,0x03,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_8_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x07,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,
+ 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x07,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x07,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x07,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x07,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x07,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x07,0x14,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_9_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_10_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_11_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,
+ 0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x07,0x19,0x19,0x19,0x19,0x07,0x07,0x07,0x02,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x02,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02,
+ 0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x23,0x19,0x19,0x19,0x19,0x23,0x23,0x23,0x02,
+ 0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x19,0x19,0x23,0x23,0x18,0x19,0x19,0x19,0x02,
+ 0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x18,0x19,0x23,0x23,0x18,0x18,0x18,0x18,0x02,
+ 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x02,
+ 0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x23,0x14,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+};
+uint8_t tileset_tile_12_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x00,0x00,0x09,0x16,0x16,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x00,0x09,0x09,0x16,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x00,0x09,0x16,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x00,0x09,0x16,0x16,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x09,0x16,0x16,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+};
+uint8_t tileset_tile_13_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x07,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x00,0x00,0x00,0x07,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x00,0x07,0x07,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x00,0x07,0x07,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x00,0x07,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x07,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x09,0x16,0x16,0x16,
+};
+uint8_t tileset_tile_14_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x07,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x07,0x07,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x07,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x07,0x07,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x07,0x07,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x07,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x07,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x16,0x16,0x16,0x09,0x16,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+};
+uint8_t tileset_tile_15_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x09,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x09,0x00,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x00,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x09,0x00,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x09,0x00,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x00,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,
+};
+uint8_t tileset_tile_16_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x1F,0x04,0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,
+ 0x4B,0x1F,0x4B,0x4B,0x4B,0x4B,0x1F,0x04,0x3B,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,
+ 0x4B,0x4B,0x04,0x04,0x04,0x1F,0x1F,0x3B,0x3B,0x04,0x1F,0x03,0x04,0x03,0x4B,0x4B,
+ 0x4B,0x1C,0x3B,0x3B,0x3B,0x04,0x04,0x3B,0x4B,0x04,0x03,0x3B,0x3B,0x3B,0x03,0x1F,
+ 0x4B,0x4B,0x1C,0x3B,0x3B,0x3B,0x04,0x4B,0x4B,0x03,0x1F,0x4B,0x3B,0x03,0x04,0x1F,
+ 0x4B,0x4B,0x4B,0x1C,0x4B,0x4B,0x4B,0x04,0x1F,0x03,0x1F,0x1F,0x04,0x04,0x1F,0x4B,
+ 0x4B,0x1C,0x1C,0x1C,0x04,0x04,0x4B,0x04,0x04,0x04,0x1F,0x03,0x03,0x03,0x03,0x4B,
+ 0x04,0x3B,0x3B,0x3B,0x4B,0x04,0x04,0x4B,0x03,0x1F,0x03,0x1F,0x4B,0x4B,0x4B,0x03,
+ 0x1F,0x04,0x3B,0x4B,0x4B,0x1F,0x04,0x04,0x03,0x03,0x1F,0x1F,0x1F,0x1F,0x03,0x1F,
+ 0x4B,0x1F,0x04,0x1F,0x1F,0x1F,0x1F,0x03,0x03,0x04,0x04,0x04,0x03,0x03,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,
+ 0x4B,0x1F,0x04,0x4B,0x4B,0x1F,0x03,0x04,0x03,0x03,0x04,0x1F,0x1F,0x03,0x1F,0x4B,
+ 0x4B,0x04,0x4B,0x4B,0x1F,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x1F,0x03,0x1F,
+ 0x1F,0x04,0x03,0x03,0x03,0x03,0x1F,0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x03,0x04,
+ 0x1F,0x1F,0x04,0x04,0x04,0x04,0x03,0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x1F,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x1F,0x1F,0x4B,0x4B,
+};
+uint8_t tileset_tile_17_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x39,0x39,0x3E,0x20,0x00,
+ 0x00,0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x20,0x39,0x39,0x39,0x3E,0x3E,0x3E,0x20,
+ 0x00,0x20,0x3E,0x3E,0x39,0x20,0x20,0x00,0x20,0x20,0x39,0x39,0x3E,0x3E,0x3E,0x20,
+ 0x20,0x3E,0x3E,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x39,0x39,0x39,0x3E,0x39,0x20,
+ 0x20,0x3E,0x39,0x3E,0x39,0x20,0x20,0x20,0x20,0x39,0x20,0x39,0x39,0x39,0x20,0x00,
+ 0x00,0x20,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x39,0x39,0x20,
+ 0x20,0x39,0x39,0x39,0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x20,0x20,0x20,0x00,
+ 0x20,0x20,0x20,0x20,0x20,0x3F,0x3F,0x20,0x3F,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x20,0x20,0x00,0x20,0x45,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x45,0x3F,0x20,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x39,0x20,0x20,0x3F,0x45,0x3F,0x20,0x39,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x39,0x20,0x33,0x45,0x3F,0x45,0x45,0x3F,0x20,0x39,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x39,0x20,0x20,0x33,0x45,0x3F,0x45,0x20,0x20,0x39,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x39,0x20,0x20,0x20,0x20,0x20,0x20,0x39,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_18_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x04,0x04,0x05,0x01,0x01,0x05,0x04,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x00,0x00,0x00,
+ 0x00,0x00,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x00,0x00,
+ 0x00,0x00,0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x04,0x00,0x00,
+ 0x00,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x04,0x00,
+ 0x00,0x01,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x01,0x1F,
+ 0x00,0x03,0x01,0x04,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x04,0x01,0x03,0x1C,
+ 0x00,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x1C,
+ 0x00,0x03,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x03,0x1C,
+ 0x00,0x03,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x03,0x1C,
+ 0x00,0x1F,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x1C,0x1F,
+ 0x00,0x00,0x1C,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x1C,0x1F,0x00,
+ 0x00,0x00,0x00,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_19_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x2C,0x2C,0x2C,0x33,0x33,0x33,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x33,0x2C,0x36,0x36,0x36,0x2C,0x19,0x2C,0x33,0x2C,0x00,0x00,
+ 0x00,0x00,0x00,0x2C,0x2C,0x36,0x36,0x36,0x36,0x2C,0x19,0x36,0x36,0x28,0x33,0x00,
+ 0x00,0x00,0x33,0x2C,0x36,0x36,0x36,0x28,0x2C,0x19,0x36,0x36,0x28,0x28,0x33,0x00,
+ 0x00,0x19,0x2C,0x36,0x36,0x28,0x36,0x28,0x28,0x28,0x36,0x36,0x28,0x28,0x2C,0x00,
+ 0x00,0x33,0x36,0x36,0x28,0x28,0x36,0x28,0x28,0x28,0x28,0x28,0x2C,0x2C,0x2C,0x19,
+ 0x00,0x33,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x28,0x28,0x28,0x2C,0x28,0x29,
+ 0x35,0x33,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x19,0x2C,0x28,0x2C,0x28,0x2C,0x29,
+ 0x19,0x33,0x28,0x28,0x28,0x2C,0x19,0x28,0x28,0x2C,0x19,0x2C,0x28,0x2C,0x2C,0x29,
+ 0x29,0x33,0x19,0x28,0x28,0x19,0x28,0x2C,0x2C,0x19,0x29,0x19,0x19,0x29,0x29,0x29,
+ 0x29,0x33,0x33,0x19,0x19,0x19,0x2C,0x2C,0x19,0x33,0x29,0x33,0x33,0x29,0x29,0x29,
+ 0x29,0x33,0x33,0x2C,0x33,0x19,0x19,0x19,0x29,0x33,0x29,0x33,0x33,0x29,0x29,0x29,
+ 0x35,0x29,0x29,0x33,0x29,0x33,0x33,0x29,0x29,0x33,0x29,0x33,0x29,0x29,0x29,0x35,
+ 0x00,0x35,0x29,0x29,0x29,0x33,0x33,0x29,0x29,0x29,0x33,0x29,0x29,0x29,0x35,0x35,
+ 0x00,0x00,0x35,0x35,0x29,0x29,0x29,0x29,0x29,0x35,0x29,0x29,0x29,0x35,0x35,0x00,
+ 0x00,0x00,0x00,0x00,0x35,0x29,0x29,0x29,0x19,0x35,0x35,0x35,0x35,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_20_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x1F,0x03,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x05,
+ 0x4B,0x1F,0x4B,0x1C,0x1C,0x04,0x01,0x05,0x05,0x04,0x05,0x01,0x01,0x05,0x01,0x05,
+ 0x1F,0x1C,0x1C,0x1C,0x03,0x05,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x05,
+ 0x1C,0x1C,0x03,0x03,0x03,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x04,0x05,0x01,
+ 0x1C,0x1C,0x03,0x01,0x01,0x03,0x01,0x03,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x1C,0x1C,0x1C,0x04,0x01,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x01,
+ 0x1F,0x1C,0x03,0x01,0x04,0x04,0x03,0x05,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x04,0x04,0x04,0x01,0x04,0x04,0x05,0x05,0x04,0x05,0x05,0x05,0x01,0x05,
+ 0x1F,0x1F,0x03,0x04,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x03,0x03,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x04,0x04,0x05,0x04,0x05,0x05,
+ 0x1C,0x04,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x04,0x03,0x01,0x05,0x01,
+ 0x1C,0x03,0x04,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x01,
+ 0x1C,0x03,0x04,0x03,0x03,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x1C,0x1F,0x03,0x01,0x04,0x03,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x04,0x01,
+ 0x1C,0x03,0x01,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x04,0x01,0x01,0x04,0x01,
+ 0x1C,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x01,0x01,0x04,0x01,0x04,
+};
+uint8_t tileset_tile_21_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x05,0x04,0x05,0x01,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x03,0x1F,0x4B,0x4B,0x4B,
+ 0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x01,0x05,0x01,0x04,0x1C,0x1C,0x4B,0x1F,0x4B,
+ 0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x04,0x1C,0x1F,
+ 0x01,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x05,0x05,0x03,0x03,0x03,0x1C,0x1C,
+ 0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x05,0x03,0x01,0x03,0x01,0x01,0x03,0x04,0x1C,
+ 0x01,0x04,0x01,0x01,0x05,0x01,0x05,0x01,0x05,0x04,0x03,0x01,0x04,0x04,0x04,0x1C,
+ 0x05,0x05,0x01,0x05,0x01,0x05,0x01,0x05,0x05,0x03,0x04,0x04,0x01,0x03,0x1C,0x1F,
+ 0x05,0x01,0x05,0x01,0x05,0x04,0x05,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x1F,0x1F,
+ 0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x04,0x03,0x1F,0x1F,
+ 0x05,0x05,0x04,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x03,0x03,0x1F,
+ 0x01,0x05,0x01,0x03,0x04,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x04,0x1C,
+ 0x01,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x04,0x03,0x1C,
+ 0x04,0x04,0x01,0x39,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x03,0x03,0x04,0x03,0x1C,
+ 0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x04,0x01,0x03,0x1C,0x1C,
+ 0x01,0x04,0x01,0x01,0x04,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x01,0x03,0x1C,
+ 0x04,0x01,0x04,0x01,0x01,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x1C,
+};
+uint8_t tileset_tile_22_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x03,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x04,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x04,0x01,0x05,0x05,0x04,0x05,0x01,0x01,0x05,0x01,0x05,
+ 0x4B,0x4B,0x4B,0x1F,0x03,0x05,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x05,
+ 0x4B,0x1F,0x03,0x03,0x03,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x04,0x05,0x01,
+ 0x4B,0x4B,0x03,0x01,0x01,0x03,0x01,0x03,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x4B,0x4B,0x4B,0x04,0x01,0x03,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x01,
+ 0x4B,0x4B,0x03,0x01,0x04,0x04,0x03,0x05,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x04,0x04,0x04,0x01,0x04,0x04,0x05,0x05,0x04,0x05,0x05,0x05,0x01,0x05,
+ 0x4B,0x4B,0x03,0x04,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x03,0x03,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x04,0x04,0x05,0x04,0x05,0x05,
+ 0x4B,0x04,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x04,0x03,0x01,0x05,0x01,
+ 0x4B,0x03,0x04,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x01,
+ 0x4B,0x03,0x04,0x03,0x03,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x4B,0x4B,0x03,0x01,0x04,0x03,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x01,0x04,0x01,
+ 0x4B,0x03,0x01,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x04,0x01,0x01,0x04,0x01,
+ 0x4B,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x01,0x01,0x04,0x01,0x04,
+};
+uint8_t tileset_tile_23_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x05,0x04,0x05,0x01,0x05,0x05,0x04,0x01,0x04,0x05,0x05,0x03,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x01,0x05,0x01,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x03,0x4B,0x3D,0x4B,0x4B,
+ 0x01,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x05,0x05,0x03,0x03,0x03,0x4B,0x4B,
+ 0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x05,0x03,0x01,0x03,0x01,0x01,0x03,0x4B,0x4B,
+ 0x01,0x04,0x01,0x01,0x05,0x01,0x05,0x01,0x05,0x04,0x03,0x01,0x04,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x01,0x05,0x01,0x05,0x01,0x05,0x05,0x03,0x04,0x04,0x01,0x03,0x4B,0x4B,
+ 0x05,0x01,0x05,0x01,0x05,0x04,0x05,0x05,0x04,0x04,0x01,0x04,0x04,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x04,0x03,0x4B,0x4B,
+ 0x05,0x05,0x04,0x05,0x04,0x04,0x01,0x01,0x01,0x04,0x01,0x01,0x01,0x03,0x03,0x4B,
+ 0x01,0x05,0x01,0x03,0x04,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x04,0x4B,
+ 0x01,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x04,0x03,0x4B,
+ 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x03,0x03,0x04,0x03,0x4B,
+ 0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x04,0x01,0x03,0x4B,0x4B,
+ 0x01,0x04,0x01,0x01,0x04,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x01,0x03,0x4B,
+ 0x04,0x01,0x04,0x01,0x01,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x4B,
+};
+uint8_t tileset_tile_24_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x07,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x07,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_25_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_26_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,
+};
+uint8_t tileset_tile_27_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x14,0x14,0x14,0x14,0x07,0x07,0x07,0x07,0x14,0x14,0x19,0x02,
+ 0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x07,0x19,0x18,0x18,0x14,0x07,0x07,0x07,0x02,
+ 0x19,0x18,0x18,0x14,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x14,0x14,0x14,0x19,0x02,
+};
+uint8_t tileset_tile_28_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x12,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x12,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x07,0x07,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x0F,0x0F,0x0F,0x07,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_29_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x07,0x07,0x07,0x07,0x07,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x0F,0x09,0x12,0x12,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x0F,0x09,0x12,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x0F,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x0A,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0B,0x0B,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0B,0x0B,0x0A,0x09,0x12,0x0B,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0B,0x0B,0x09,0x12,0x0B,0x0B,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x0B,0x0B,0x0B,
+};
+uint8_t tileset_tile_30_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x12,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x12,0x09,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0A,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x0B,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x0A,0x0B,0x0B,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x12,0x09,0x0A,0x0B,0x0B,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x12,0x09,0x0B,0x0B,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0B,0x0B,0x0B,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_31_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x16,0x16,0x16,0x09,0x16,0x16,0x16,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x12,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x12,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x07,0x07,0x0F,0x12,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x07,0x0F,0x0F,0x0F,0x12,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x02,
+};
+uint8_t tileset_tile_32_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_33_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,
+ 0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_34_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+};
+uint8_t tileset_tile_35_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x20,0x20,0x26,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x20,0x00,0x00,0x00,
+ 0x00,0x00,0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x20,0x00,0x00,
+ 0x00,0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x26,0x26,0x20,0x20,0x00,
+ 0x00,0x20,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x20,0x26,0x20,0x00,
+ 0x20,0x26,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x2B,0x26,0x26,0x26,0x20,0x20,0x27,
+ 0x20,0x26,0x26,0x2B,0x2B,0x2B,0x2B,0x26,0x2B,0x26,0x26,0x26,0x26,0x20,0x20,0x27,
+ 0x20,0x26,0x2B,0x26,0x2B,0x26,0x2B,0x2B,0x26,0x2B,0x26,0x26,0x20,0x26,0x20,0x27,
+ 0x20,0x26,0x26,0x2B,0x26,0x2B,0x26,0x26,0x2B,0x26,0x26,0x20,0x26,0x20,0x20,0x27,
+ 0x20,0x20,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x26,0x20,0x26,0x20,0x27,
+ 0x20,0x20,0x26,0x26,0x26,0x20,0x26,0x26,0x20,0x26,0x20,0x26,0x20,0x20,0x20,0x27,
+ 0x20,0x20,0x20,0x26,0x20,0x26,0x20,0x26,0x26,0x20,0x26,0x20,0x20,0x20,0x27,0x27,
+ 0x00,0x27,0x20,0x20,0x20,0x20,0x26,0x20,0x20,0x26,0x20,0x20,0x20,0x27,0x27,0x00,
+ 0x00,0x27,0x27,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x00,
+ 0x00,0x00,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x27,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_36_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1F,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01,
+ 0x4B,0x4B,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01,
+ 0x4B,0x4B,0x4B,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x4B,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,
+ 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x04,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x04,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x03,0x03,0x04,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,0x03,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,0x3C,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x3C,0x3C,
+ 0x4B,0x1F,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x37,0x37,
+ 0x4B,0x4B,0x1F,0x1C,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x04,
+};
+uint8_t tileset_tile_37_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B,
+ 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x4B,0x4B,
+ 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,0x4B,
+ 0x04,0x03,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x04,0x03,0x03,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x03,0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x3C,0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x3C,0x3C,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x37,0x37,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x1F,0x4B,
+ 0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1F,0x4B,0x4B,
+ 0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x1F,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_38_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1F,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x01,
+ 0x4B,0x4B,0x03,0x03,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x01,
+ 0x4B,0x4B,0x4B,0x03,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x03,
+ 0x4B,0x4B,0x4B,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,
+ 0x4B,0x4B,0x4B,0x1C,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x03,0x05,
+ 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x03,0x03,0x04,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x03,0x03,0x01,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x05,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x05,0x05,0x01,0x05,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x01,0x01,0x05,0x01,0x05,0x05,
+ 0x4B,0x1C,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x05,0x05,0x01,0x05,0x05,0x05,
+ 0x4B,0x4B,0x1C,0x04,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x1C,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x4B,0x1C,0x03,0x05,0x05,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x1F,0x4B,0x4B,0x4B,0x04,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x4B,0x4B,0x03,0x01,0x05,0x05,0x04,0x05,0x04,0x05,0x05,0x05,0x05,0x05,
+};
+uint8_t tileset_tile_39_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x4B,
+ 0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x03,0x03,0x4B,0x4B,
+ 0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x1F,0x4B,0x4B,
+ 0x03,0x04,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x4B,0x4B,0x4B,
+ 0x05,0x03,0x03,0x04,0x04,0x04,0x03,0x04,0x04,0x04,0x03,0x04,0x1C,0x4B,0x4B,0x4B,
+ 0x05,0x04,0x03,0x03,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,0x4B,
+ 0x05,0x01,0x03,0x03,0x04,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x01,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x01,0x01,0x01,0x01,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x01,0x05,0x01,0x01,0x05,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x04,0x04,0x04,0x1C,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x04,0x04,0x01,0x03,0x04,0x04,0x1C,0x1F,0x1F,0x4B,
+ 0x05,0x05,0x05,0x01,0x05,0x01,0x01,0x04,0x05,0x01,0x03,0x1C,0x4B,0x1F,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x05,0x05,0x01,0x05,0x04,0x05,0x04,0x05,0x01,0x01,0x03,0x3B,0x4B,0x4B,0x1F,
+};
+uint8_t tileset_tile_40_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+};
+uint8_t tileset_tile_41_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x10,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,
+ 0x02,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x32,0x32,0x02,
+};
+uint8_t tileset_tile_42_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x4A,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,
+ 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24,
+ 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24,
+ 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24,
+ 0x24,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x02,0x2E,0x2E,0x2E,0x2E,0x2E,0x02,0x24,
+ 0x24,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x24,
+ 0x24,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x24,
+};
+uint8_t tileset_tile_43_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x19,0x18,0x18,0x18,0x14,0x14,0x14,0x14,0x19,0x18,0x18,0x18,0x14,0x14,0x19,0x02,
+ 0x07,0x07,0x07,0x07,0x18,0x18,0x18,0x18,0x07,0x07,0x07,0x07,0x18,0x18,0x14,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,0x02,0x02,0x02,0x02,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+};
+uint8_t tileset_tile_44_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x07,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x07,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x10,0x02,0x07,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x17,0x10,0x02,0x07,0x09,0x0F,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x0B,0x17,0x10,0x02,0x07,0x09,0x0F,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x1B,0x0B,0x17,0x10,0x02,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x10,0x1B,0x0B,0x17,0x10,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x10,0x1B,0x0B,0x17,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x17,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x10,0x1B,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x10,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+};
+uint8_t tileset_tile_45_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x0A,0x0A,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0A,0x0A,0x09,0x12,0x0A,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x09,0x12,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x09,0x09,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x0A,0x0A,0x0A,0x0A,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x09,0x0F,0x0A,0x0A,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+};
+uint8_t tileset_tile_46_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x12,0x09,0x0A,0x0A,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x12,0x09,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x09,0x09,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x0A,0x0A,0x0F,0x09,0x09,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x0B,0x0B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+};
+uint8_t tileset_tile_47_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x07,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x07,0x02,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x07,0x02,0x10,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x0F,0x09,0x07,0x02,0x10,0x17,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x0F,0x09,0x07,0x02,0x10,0x17,0x0B,0x02,
+ 0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x02,0x10,0x17,0x0B,0x1B,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x17,0x0B,0x1B,0x10,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x17,0x0B,0x1B,0x10,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x1B,0x17,0x02,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1B,0x10,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x10,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x0B,0x02,0x10,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+};
+uint8_t tileset_tile_48_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_49_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_50_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+};
+uint8_t tileset_tile_51_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x20,0x20,0x20,0x2B,0x2B,0x20,0x20,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x20,0x20,0x20,0x2B,0x2B,0x2B,0x2B,0x26,0x20,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x20,0x26,0x2B,0x20,0x2B,0x2B,0x2B,0x26,0x26,0x20,0x27,0x00,0x00,0x00,
+ 0x00,0x00,0x20,0x20,0x2B,0x2B,0x26,0x2B,0x26,0x2B,0x20,0x27,0x26,0x27,0x00,0x00,
+ 0x00,0x20,0x26,0x27,0x26,0x2B,0x2B,0x20,0x20,0x27,0x27,0x20,0x20,0x27,0x00,0x00,
+ 0x00,0x27,0x20,0x27,0x20,0x26,0x2B,0x26,0x2B,0x26,0x20,0x26,0x26,0x20,0x27,0x00,
+ 0x00,0x27,0x26,0x2B,0x20,0x20,0x26,0x2B,0x26,0x27,0x26,0x26,0x26,0x27,0x27,0x00,
+ 0x00,0x27,0x20,0x26,0x2B,0x20,0x2B,0x26,0x20,0x27,0x20,0x26,0x27,0x20,0x27,0x00,
+ 0x00,0x27,0x20,0x20,0x20,0x27,0x20,0x20,0x26,0x26,0x27,0x20,0x20,0x20,0x27,0x00,
+ 0x00,0x27,0x20,0x20,0x27,0x27,0x20,0x26,0x20,0x20,0x27,0x27,0x20,0x20,0x27,0x00,
+ 0x00,0x00,0x27,0x20,0x27,0x27,0x20,0x20,0x20,0x20,0x27,0x27,0x27,0x27,0x00,0x00,
+ 0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x20,0x20,0x27,0x27,0x27,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x27,0x27,0x27,0x27,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_52_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x29,0x29,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x36,0x36,0x29,0x29,0x29,0x29,0x29,0x00,0x00,
+ 0x00,0x33,0x36,0x36,0x36,0x36,0x2C,0x36,0x36,0x2C,0x36,0x36,0x36,0x36,0x29,0x00,
+ 0x00,0x33,0x36,0x36,0x36,0x36,0x36,0x2C,0x2C,0x36,0x36,0x36,0x36,0x36,0x29,0x00,
+ 0x00,0x33,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x33,0x28,0x33,0x28,0x28,0x28,0x28,0x33,0x28,0x33,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x33,0x33,0x28,0x33,0x2C,0x2C,0x33,0x28,0x33,0x33,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x2C,0x2C,0x28,0x2C,0x28,0x2C,0x2C,0x2C,0x28,0x2C,0x29,0x00,
+ 0x00,0x33,0x2C,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x28,0x2C,0x29,0x00,
+ 0x00,0x00,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x29,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x35,0x35,0x33,0x2C,0x2C,0x29,0x35,0x35,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x35,0x35,0x35,0x33,0x36,0x2C,0x29,0x35,0x35,0x35,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x35,0x35,0x35,0x35,0x29,0x29,0x35,0x35,0x35,0x35,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x35,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_53_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x37,0x37,0x37,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x37,0x09,0x09,0x09,0x09,0x37,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x37,0x09,0x1B,0x09,0x41,0x41,0x09,0x37,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x37,0x09,0x41,0x09,0x41,0x41,0x41,0x41,0x09,0x37,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x37,0x09,0x41,0x41,0x37,0x37,0x41,0x41,0x09,0x37,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x42,0x37,0x41,0x37,0x1B,0x35,0x37,0x41,0x37,0x42,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x42,0x43,0x37,0x37,0x35,0x35,0x37,0x37,0x43,0x42,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x42,0x43,0x1B,0x37,0x37,0x1B,0x43,0x42,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x42,0x43,0x1B,0x1B,0x43,0x42,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_54_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x04,0x04,0x01,0x04,0x04,0x01,0x04,0x04,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x04,0x04,0x05,0x05,0x04,0x01,0x01,0x04,0x05,0x05,0x04,0x04,0x00,0x00,
+ 0x00,0x04,0x05,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x05,0x04,0x00,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,
+ 0x04,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,
+};
+uint8_t tileset_tile_55_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x38,0x43,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x43,0x38,0x00,
+ 0x38,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x44,0x44,0x48,0x2F,0x2F,0x2F,0x44,0x2F,0x2F,0x2F,0x44,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x44,0x2F,0x44,0x2F,0x44,0x2F,0x2F,0x2F,0x48,0x2F,0x2F,0x44,0x2F,0x38,
+ 0x38,0x2F,0x48,0x2F,0x2F,0x2F,0x44,0x48,0x2F,0x2F,0x44,0x2F,0x44,0x48,0x2F,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x46,0x09,0x09,0x09,0x46,0x09,0x09,0x09,0x46,0x46,0x09,0x46,0x2F,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x2F,0x46,0x2F,0x09,0x46,0x2F,0x09,0x09,0x2F,0x46,0x2F,0x46,0x09,0x2F,0x38,
+ 0x38,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x2F,0x38,
+ 0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,
+ 0x10,0x38,0x38,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x38,0x38,0x10,
+ 0x10,0x38,0x43,0x38,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x38,0x43,0x38,0x10,
+ 0x00,0x38,0x43,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x43,0x38,0x00,
+ 0x00,0x10,0x38,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x38,0x10,0x00,
+};
+uint8_t tileset_tile_56_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x10,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x15,0x15,0x15,0x07,0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x2A,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x02,0x30,0x21,0x21,0x21,0x07,0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,
+ 0x00,0x00,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+};
+uint8_t tileset_tile_57_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x32,0x32,0x07,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x2E,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x32,0x32,0x02,
+ 0x02,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x32,0x02,
+ 0x02,0x07,0x07,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x02,
+ 0x07,0x30,0x15,0x07,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x32,0x24,0x02,
+ 0x07,0x15,0x15,0x07,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x07,0x07,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_58_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x24,0x02,0x2E,0x34,0x2E,0x34,0x2E,0x02,0x02,0x34,0x2E,0x34,0x2E,0x34,0x02,0x24,
+ 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24,
+ 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24,
+ 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24,
+ 0x24,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x02,0x34,0x34,0x34,0x34,0x34,0x02,0x24,
+ 0x24,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x24,
+ 0x15,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x15,
+ 0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,
+ 0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,0x2A,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_59_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x2A,0x15,0x2A,0x07,0x02,0x10,0x10,
+ 0x07,0x30,0x15,0x15,0x15,0x15,0x21,0x07,0x10,0x15,0x15,0x15,0x07,0x02,0x10,0x10,
+ 0x07,0x2A,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x07,0x15,0x21,0x21,0x21,0x21,0x21,0x07,0x10,0x21,0x21,0x21,0x07,0x02,0x10,0x10,
+ 0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_60_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0B,0x0B,0x0B,0x17,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x10,0x10,0x02,0x0A,0x0A,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x10,0x10,0x02,0x0A,0x0A,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x00,0x10,0x10,0x02,0x0A,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_61_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_62_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x16,0x0F,0x0F,0x0F,0x16,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x09,0x09,0x09,0x0B,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x09,0x0B,0x0B,0x0B,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x09,0x0B,0x09,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_63_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1B,0x1B,0x16,0x0F,0x0F,0x0F,0x16,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x0F,0x0F,0x16,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x0F,0x0F,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x09,0x0B,0x09,0x09,0x16,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0B,0x02,
+ 0x09,0x0B,0x16,0x09,0x09,0x09,0x16,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0B,0x0B,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0B,0x0B,0x0B,0x02,
+ 0x09,0x0B,0x09,0x0B,0x09,0x09,0x0B,0x0B,0x17,0x1B,0x17,0x0B,0x0B,0x0B,0x0A,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0B,0x0A,0x0A,0x02,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0A,0x0A,0x02,0x10,0x10,0x00,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0A,0x0A,0x02,0x10,0x10,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0A,0x02,0x10,0x10,0x00,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,0x10,0x10,0x00,0x00,0x00,0x00,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_64_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,
+ 0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_65_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,0x08,0x15,0x15,0x08,0x08,0x15,0x15,0x08,
+ 0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x15,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x15,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_66_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x15,0x15,0x15,0x15,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,
+ 0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x15,0x15,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x0E,0x0E,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_67_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x15,0x15,0x15,0x08,0x08,0x08,0x3A,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_68_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x15,0x15,0x15,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_69_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x04,0x04,0x05,0x04,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x03,0x03,0x05,0x05,0x04,0x05,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x05,0x01,0x05,0x04,0x05,0x01,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x1F,0x4B,0x04,0x04,0x01,0x01,0x04,0x01,0x04,0x05,0x01,
+ 0x4B,0x4B,0x1F,0x4B,0x4B,0x1F,0x04,0x05,0x05,0x01,0x05,0x05,0x05,0x01,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x1F,0x4B,0x4B,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x04,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x4B,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x4B,0x4B,0x1C,0x04,0x03,0x05,0x05,0x05,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1C,0x03,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x04,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x04,0x03,0x01,0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1C,0x03,0x01,0x04,0x01,0x04,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,
+};
+uint8_t tileset_tile_70_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,
+ 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x01,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x01,
+ 0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x01,0x01,0x04,0x03,0x04,0x03,0x03,0x04,0x04,
+ 0x05,0x01,0x04,0x04,0x03,0x04,0x03,0x01,0x01,0x03,0x04,0x03,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x01,0x05,
+ 0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+};
+uint8_t tileset_tile_71_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x05,0x04,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x05,0x04,0x05,0x05,0x03,0x03,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x05,0x04,0x05,0x01,0x05,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x05,0x04,0x01,0x04,0x01,0x01,0x04,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x04,0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x04,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x4B,0x4B,0x4B,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x1C,0x4B,0x4B,
+ 0x04,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x03,0x1C,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,0x01,0x03,0x04,0x1F,0x1F,
+ 0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x04,0x01,0x04,0x01,0x03,0x1C,0x1F,
+};
+uint8_t tileset_tile_72_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x00,0x00,0x0C,0x11,0x11,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x00,0x0C,0x0C,0x11,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x00,0x0C,0x11,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x00,0x0C,0x11,0x11,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x0C,0x11,0x11,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+};
+uint8_t tileset_tile_73_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+};
+uint8_t tileset_tile_74_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+};
+uint8_t tileset_tile_75_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x0C,0x00,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x00,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x0C,0x00,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x0C,0x00,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x0C,0x00,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x0C,
+};
+uint8_t tileset_tile_76_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x02,0x16,0x16,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x02,0x16,0x16,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x02,0x16,0x16,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x16,0x07,0x0F,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x02,0x0F,0x07,0x0F,0x09,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x02,0x0F,0x07,0x0F,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,
+ 0x02,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x0F,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_77_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,
+ 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,
+ 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_78_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,
+ 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,
+ 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,
+ 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,
+ 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_79_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,
+ 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x02,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x12,0x12,0x09,0x0F,0x0F,0x0F,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x0F,0x0F,0x0F,0x09,0x09,0x09,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x12,0x12,0x09,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x09,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x12,0x12,0x12,0x12,0x09,0x09,0x02,
+ 0x09,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x09,0x0F,0x0F,0x0F,0x0F,0x09,0x09,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x09,0x09,0x02,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x0F,0x07,0x09,0x02,
+ 0x16,0x16,0x16,0x16,0x0F,0x16,0x16,0x16,0x16,0x16,0x16,0x09,0x0F,0x07,0x07,0x02,
+ 0x12,0x12,0x12,0x12,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x09,0x0F,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+};
+uint8_t tileset_tile_80_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_81_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_82_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_83_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x15,0x15,0x15,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x0E,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x4B,0x0E,0x0E,0x0E,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+};
+uint8_t tileset_tile_84_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x08,0x08,
+ 0x08,0x08,0x08,0x15,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x15,0x15,0x15,
+ 0x08,0x15,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x3A,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x0E,
+ 0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x15,0x0E,0x0E,0x0E,0x4B,
+};
+uint8_t tileset_tile_85_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1C,0x1C,0x03,0x01,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x1C,0x03,0x01,0x05,0x01,0x04,0x01,0x04,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x04,
+ 0x1C,0x03,0x01,0x01,0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x05,0x05,0x01,0x04,0x04,
+ 0x1C,0x04,0x04,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x03,0x04,
+ 0x1C,0x04,0x01,0x01,0x05,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x1C,0x03,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,
+ 0x1C,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x03,0x04,0x03,0x03,
+ 0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x04,0x03,0x04,0x03,0x01,0x04,0x04,0x04,
+ 0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x01,0x01,0x01,0x01,0x04,
+ 0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x04,0x04,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x1C,0x1C,0x1C,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x03,0x04,
+ 0x4B,0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x03,0x03,
+};
+uint8_t tileset_tile_86_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x01,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,
+ 0x01,0x03,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x03,0x01,
+ 0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x05,0x05,0x04,0x01,0x01,0x04,0x05,0x05,0x04,0x04,0x01,0x01,
+ 0x01,0x04,0x05,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x05,0x04,0x01,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,
+ 0x04,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x04,
+};
+uint8_t tileset_tile_87_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x03,0x1C,0x1C,
+ 0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0x03,0x1C,
+ 0x04,0x04,0x01,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x03,0x1C,
+ 0x04,0x03,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x05,0x04,0x04,0x1C,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x01,0x04,0x1C,
+ 0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x03,0x1C,
+ 0x03,0x03,0x04,0x03,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x1C,
+ 0x04,0x04,0x04,0x01,0x03,0x04,0x03,0x04,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,
+ 0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x1F,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x1F,0x1F,
+ 0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,0x1F,0x4B,
+ 0x01,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1C,0x4B,0x4B,0x4B,
+ 0x04,0x03,0x04,0x03,0x04,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,0x4B,
+};
+uint8_t tileset_tile_88_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x22,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x22,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x22,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x22,0x25,0x07,0x07,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x22,0x25,0x25,0x25,0x07,0x07,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x0C,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_89_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0A,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0B,0x0B,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0B,0x0B,0x0A,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0B,0x0B,0x0A,0x0C,0x22,0x0B,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0B,0x0B,0x0C,0x22,0x0B,0x0B,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x0B,0x0B,0x0B,
+};
+uint8_t tileset_tile_90_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0A,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x0B,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0A,0x0B,0x0B,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x22,0x0C,0x0A,0x0B,0x0B,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x22,0x0C,0x0B,0x0B,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0B,0x0B,0x0B,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+};
+uint8_t tileset_tile_91_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x11,0x11,0x11,0x0C,0x11,0x11,0x11,0x0C,0x22,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x22,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x22,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x22,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x07,0x07,0x25,0x22,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x07,0x07,0x25,0x25,0x25,0x22,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x0C,0x02,
+};
+uint8_t tileset_tile_92_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x07,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x07,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x02,0x12,0x12,0x07,0x07,0x07,0x07,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+};
+uint8_t tileset_tile_93_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+};
+uint8_t tileset_tile_94_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,
+};
+uint8_t tileset_tile_95_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x0F,0x09,0x09,0x09,0x09,0x09,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x09,0x07,0x0F,0x09,0x09,0x09,0x0F,0x07,0x09,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x09,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x09,0x0F,0x07,0x07,0x07,0x0F,0x09,0x09,0x07,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x09,0x0F,0x07,0x09,0x09,0x09,0x07,0x0F,0x09,0x07,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x0F,0x07,0x09,0x09,0x09,0x09,0x09,0x07,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+};
+uint8_t tileset_tile_96_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_97_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_98_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,
+};
+uint8_t tileset_tile_99_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_100_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x0D,0x0B,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_101_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1F,0x1F,0x1C,0x1C,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x04,
+ 0x1F,0x1C,0x1C,0x04,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x05,0x04,0x05,
+ 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x05,0x01,0x05,0x04,0x05,0x01,
+ 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x05,0x01,
+ 0x1F,0x1C,0x1C,0x04,0x03,0x03,0x03,0x05,0x05,0x01,0x05,0x05,0x05,0x01,0x04,0x01,
+ 0x1F,0x1F,0x1C,0x04,0x03,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x4B,0x1F,0x1C,0x1C,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x01,
+ 0x4B,0x1F,0x1C,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x4B,0x4B,0x1C,0x04,0x03,0x05,0x05,0x05,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1C,0x03,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x05,0x05,0x04,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x4B,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1F,0x04,0x03,0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+ 0x1F,0x1C,0x03,0x01,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,
+};
+uint8_t tileset_tile_102_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x01,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,
+ 0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,
+ 0x01,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x01,
+ 0x04,0x04,0x03,0x03,0x04,0x03,0x04,0x01,0x01,0x04,0x03,0x04,0x03,0x03,0x04,0x04,
+ 0x05,0x01,0x04,0x04,0x03,0x04,0x03,0x01,0x01,0x03,0x04,0x03,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x01,0x05,
+ 0x05,0x01,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x01,0x05,
+ 0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,
+ 0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,
+};
+uint8_t tileset_tile_103_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x1C,0x1C,0x1F,0x1F,
+ 0x05,0x04,0x05,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x05,0x04,0x05,0x01,0x05,0x03,0x03,0x03,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x05,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x04,0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x03,0x03,0x03,0x04,0x1C,0x1C,0x1F,
+ 0x01,0x01,0x01,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x03,0x04,0x1C,0x1F,0x1F,
+ 0x01,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x1C,0x1C,0x1F,0x4B,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x04,0x1C,0x1F,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x05,0x01,0x01,0x05,0x05,0x05,0x03,0x04,0x1C,0x4B,0x4B,
+ 0x04,0x05,0x05,0x01,0x05,0x05,0x01,0x04,0x01,0x05,0x05,0x01,0x03,0x1C,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x4B,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x01,0x03,0x04,0x1F,0x1F,
+ 0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x01,0x03,0x1C,0x1F,
+};
+uint8_t tileset_tile_104_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x07,0x0C,0x25,0x25,0x25,0x25,0x25,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x07,0x0C,0x25,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x10,0x02,0x07,0x0C,0x25,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x17,0x10,0x02,0x07,0x0C,0x25,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x0B,0x17,0x10,0x02,0x07,0x0C,0x25,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x1B,0x0B,0x17,0x10,0x02,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x02,0x10,0x1B,0x0B,0x17,0x10,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x10,0x1B,0x0B,0x17,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x17,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x10,0x1B,0x0B,0x17,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x10,0x1B,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x10,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+};
+uint8_t tileset_tile_105_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0A,0x0A,0x0C,0x22,0x0A,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0C,0x22,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0C,0x0C,0x0C,0x25,0x0A,0x0A,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+};
+uint8_t tileset_tile_106_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x22,0x0C,0x0A,0x0A,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x22,0x0C,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0C,0x0C,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x0A,0x0A,0x0A,0x0C,0x0C,0x0C,0x07,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,
+ 0x0A,0x0A,0x25,0x0C,0x0C,0x0C,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x0B,0x0B,0x1B,0x1B,0x1B,0x1B,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,
+};
+uint8_t tileset_tile_107_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x25,0x25,0x25,0x25,0x25,0x0C,0x07,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x25,0x0C,0x07,0x02,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x25,0x0C,0x07,0x02,0x10,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x25,0x0C,0x07,0x02,0x10,0x17,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x25,0x0C,0x07,0x02,0x10,0x17,0x0B,0x02,
+ 0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x02,0x10,0x17,0x0B,0x1B,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x17,0x0B,0x1B,0x10,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x17,0x0B,0x1B,0x10,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x17,0x0B,0x1B,0x10,0x1B,0x1B,0x17,0x02,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1B,0x10,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x10,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x0B,0x0B,0x02,0x10,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+};
+uint8_t tileset_tile_108_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x02,0x12,0x12,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x02,0x12,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+};
+uint8_t tileset_tile_109_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x07,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x02,
+};
+uint8_t tileset_tile_110_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,
+ 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1D,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x1D,
+ 0x1D,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,0x1D,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D,
+ 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D,
+};
+uint8_t tileset_tile_111_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x07,0x09,0x09,0x09,0x09,0x07,0x07,0x02,
+ 0x07,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x07,0x0F,0x0F,0x0F,0x0F,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x00,
+ 0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+};
+uint8_t tileset_tile_112_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x4B,0x4B,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_113_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,0x06,0x06,0x06,0x06,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x13,
+ 0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_114_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0D,0x0D,0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0D,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0D,0x4B,0x0D,0x0D,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+ 0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_115_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x0D,0x0D,0x0D,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0D,0x13,0x13,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0D,0x13,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x0B,0x0B,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x06,0x06,0x06,0x13,0x06,0x06,0x06,0x06,
+ 0x0D,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x13,0x13,0x06,0x06,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0D,0x0D,0x0B,0x0D,0x06,0x06,0x13,0x06,0x06,0x13,0x06,0x13,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x06,
+ 0x4B,0x4B,0x4B,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+};
+uint8_t tileset_tile_116_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x0D,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x0D,0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x13,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x06,0x06,0x06,
+ 0x06,0x06,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x06,0x06,0x13,0x06,0x06,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x13,0x06,
+ 0x0D,0x13,0x13,0x13,0x13,0x13,0x13,0x13,0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,
+ 0x06,0x0D,0x13,0x13,0x13,0x13,0x13,0x0D,0x0D,0x13,0x13,0x0D,0x0D,0x0D,0x0D,0x0D,
+ 0x06,0x06,0x0D,0x13,0x13,0x13,0x0D,0x06,0x13,0x13,0x0D,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x06,0x0D,0x13,0x13,0x06,0x06,0x13,0x0D,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0B,0x0D,0x0B,0x0B,
+ 0x06,0x06,0x06,0x0D,0x06,0x06,0x06,0x06,0x0D,0x0D,0x0B,0x0B,0x0B,0x0D,0x0D,0x0D,
+ 0x06,0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0D,0x0D,0x0D,0x4B,0x4B,0x4B,
+ 0x06,0x13,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+ 0x0D,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0D,0x0B,0x0B,0x0B,0x0D,0x4B,0x4B,0x4B,
+};
+uint8_t tileset_tile_117_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x47,0x47,0x03,0x01,0x01,0x04,0x04,0x01,0x05,0x05,0x05,0x01,0x01,0x01,0x01,0x04,
+ 0x47,0x03,0x01,0x05,0x01,0x04,0x49,0x04,0x01,0x01,0x01,0x05,0x05,0x01,0x01,0x04,
+ 0x1C,0x03,0x01,0x01,0x05,0x01,0x04,0x04,0x04,0x01,0x01,0x05,0x05,0x01,0x04,0x04,
+ 0x1C,0x04,0x04,0x05,0x01,0x05,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x03,0x04,
+ 0x1C,0x04,0x01,0x01,0x05,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x1C,0x03,0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x03,
+ 0x1C,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x03,0x04,0x03,0x03,
+ 0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x04,0x03,0x04,0x03,0x01,0x04,0x04,0x04,
+ 0x1F,0x04,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x01,0x01,0x01,0x01,0x04,
+ 0x1F,0x1F,0x04,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,
+ 0x4B,0x1F,0x1F,0x04,0x04,0x03,0x03,0x03,0x03,0x01,0x04,0x01,0x01,0x01,0x01,0x01,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x03,0x01,0x01,0x04,0x01,0x04,0x01,
+ 0x4B,0x4B,0x4B,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x04,0x03,0x04,0x04,0x04,0x04,
+ 0x4B,0x4B,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x03,0x03,0x04,0x03,0x04,0x03,0x04,
+ 0x4B,0x1F,0x1F,0x1C,0x1C,0x1C,0x1C,0x1C,0x04,0x04,0x03,0x03,0x04,0x04,0x03,0x03,
+};
+uint8_t tileset_tile_118_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x01,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,0x05,0x05,0x01,
+ 0x05,0x05,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x05,0x05,
+ 0x05,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x05,
+ 0x04,0x01,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x01,0x04,
+ 0x04,0x04,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x05,0x05,0x05,0x01,0x01,0x04,0x04,
+ 0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x03,
+ 0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,
+ 0x01,0x03,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x04,0x01,0x04,0x04,0x04,0x03,0x01,
+ 0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,0x01,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x01,0x04,0x04,0x01,0x01,
+ 0x01,0x01,0x04,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x01,0x03,0x04,0x04,0x01,0x01,
+ 0x01,0x04,0x04,0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x03,0x03,0x04,0x04,0x01,
+ 0x04,0x04,0x03,0x04,0x03,0x03,0x04,0x03,0x03,0x04,0x03,0x03,0x04,0x03,0x04,0x04,
+ 0x04,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x03,0x04,
+ 0x03,0x03,0x03,0x03,0x37,0x37,0x37,0x03,0x03,0x37,0x37,0x37,0x03,0x03,0x03,0x03,
+};
+uint8_t tileset_tile_119_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x04,0x01,0x01,0x01,0x01,0x05,0x05,0x05,0x01,0x04,0x04,0x01,0x01,0x03,0x47,0x47,
+ 0x04,0x01,0x01,0x05,0x05,0x01,0x01,0x01,0x04,0x01,0x04,0x01,0x05,0x01,0x03,0x47,
+ 0x04,0x04,0x01,0x05,0x05,0x01,0x01,0x04,0x04,0x04,0x01,0x05,0x01,0x01,0x03,0x1C,
+ 0x04,0x03,0x04,0x01,0x01,0x04,0x04,0x04,0x04,0x01,0x05,0x01,0x05,0x04,0x04,0x1C,
+ 0x03,0x03,0x04,0x04,0x04,0x04,0x04,0x04,0x01,0x01,0x01,0x05,0x01,0x01,0x04,0x1C,
+ 0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x01,0x04,0x01,0x01,0x01,0x01,0x01,0x03,0x1C,
+ 0x03,0x03,0x04,0x03,0x03,0x04,0x04,0x01,0x01,0x04,0x01,0x01,0x04,0x04,0x03,0x1C,
+ 0x04,0x04,0x04,0x01,0x03,0x04,0x03,0x04,0x01,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,
+ 0x04,0x01,0x01,0x01,0x01,0x04,0x03,0x01,0x04,0x04,0x04,0x04,0x04,0x03,0x04,0x1F,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x04,0x04,0x04,0x03,0x03,0x03,0x03,0x04,0x1F,0x1F,
+ 0x01,0x01,0x01,0x01,0x04,0x01,0x04,0x04,0x04,0x03,0x03,0x03,0x04,0x04,0x1F,0x4B,
+ 0x01,0x01,0x01,0x01,0x01,0x04,0x01,0x03,0x03,0x03,0x03,0x04,0x04,0x1F,0x1F,0x4B,
+ 0x01,0x04,0x01,0x04,0x01,0x01,0x03,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x4B,0x4B,0x4B,
+ 0x04,0x03,0x04,0x03,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x4B,0x4B,
+ 0x04,0x04,0x04,0x04,0x03,0x03,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1F,0x1F,0x4B,
+};
+uint8_t tileset_tile_120_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0B,0x0B,0x0B,0x17,0x1B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x0B,0x17,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x02,0x0A,0x0A,0x0B,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x10,0x10,0x02,0x0A,0x0A,0x0B,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x10,0x10,0x02,0x0A,0x0A,0x17,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x00,0x00,0x00,0x10,0x10,0x02,0x0A,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_121_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,
+ 0x02,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_122_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x16,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x1B,0x1B,0x0F,0x1B,0x0F,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x1B,0x0F,0x0F,0x1B,0x0F,0x0F,0x0F,0x1B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x0B,0x09,0x0B,0x09,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x09,0x16,0x0B,0x09,0x0B,0x09,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x09,0x09,0x0B,0x09,0x0B,0x09,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_123_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x16,0x0F,0x0F,0x1B,0x16,0x0F,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x0F,0x1B,0x17,0x1B,0x1B,0x1B,0x1B,0x1B,0x17,0x02,
+ 0x09,0x0B,0x09,0x0B,0x09,0x09,0x16,0x0B,0x17,0x1B,0x1B,0x1B,0x1B,0x17,0x0B,0x02,
+ 0x09,0x09,0x16,0x0B,0x09,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x1B,0x17,0x0B,0x0B,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x1B,0x1B,0x17,0x0B,0x0B,0x0B,0x02,
+ 0x09,0x0B,0x09,0x0B,0x09,0x09,0x0B,0x0B,0x17,0x1B,0x17,0x0B,0x0B,0x0B,0x0A,0x02,
+ 0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x0B,0x17,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x17,0x0B,0x0B,0x0B,0x0A,0x0A,0x02,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0B,0x0A,0x0A,0x02,0x10,0x10,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0B,0x0A,0x0A,0x02,0x10,0x10,0x00,
+ 0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,0x17,0x0A,0x0A,0x02,0x10,0x10,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x0A,0x02,0x10,0x10,0x00,0x00,0x00,
+ 0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x02,0x10,0x10,0x00,0x00,0x00,0x00,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,0x00,0x00,0x00,0x00,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,
+};
+uint8_t tileset_tile_124_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x2D,0x2D,0x2D,0x10,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1E,0x1E,0x1E,0x07,0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x2D,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x02,0x31,0x1D,0x1D,0x1D,0x07,0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,
+ 0x00,0x00,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+};
+uint8_t tileset_tile_125_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x02,0x0F,0x0F,0x07,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x1A,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x0F,0x0F,0x02,
+ 0x02,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x02,
+ 0x02,0x07,0x07,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x02,
+ 0x07,0x1B,0x0A,0x07,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x0F,0x09,0x02,
+ 0x07,0x0A,0x0A,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x07,0x07,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x09,0x02,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_126_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x1D,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x02,0x0A,0x0A,0x0A,0x0A,0x0A,0x02,0x1D,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D,
+ 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D,
+ 0x1D,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x02,0x17,0x17,0x17,0x17,0x17,0x02,0x1D,
+ 0x1D,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x1D,
+ 0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1E,
+ 0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,0x1E,
+ 0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,0x2D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,0x1D,
+ 0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+ 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+};
+uint8_t tileset_tile_127_data[258] = {
+ 16, // tile_width
+ 16, // tile_height
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x10,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x2D,0x2D,0x2D,0x07,0x02,0x10,0x00,
+ 0x07,0x31,0x1E,0x1E,0x1E,0x1E,0x1D,0x07,0x10,0x1E,0x1E,0x1E,0x07,0x02,0x10,0x00,
+ 0x07,0x2D,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x07,0x1E,0x1D,0x1D,0x1D,0x1D,0x1D,0x07,0x10,0x1D,0x1D,0x1D,0x07,0x02,0x10,0x00,
+ 0x10,0x02,0x02,0x02,0x02,0x02,0x02,0x10,0x02,0x02,0x02,0x02,0x02,0x10,0x10,0x00,
+};
+uint8_t *tileset_tiles_data[128] = {
+ tileset_tile_0_data,
+ tileset_tile_1_data,
+ tileset_tile_2_data,
+ tileset_tile_3_data,
+ tileset_tile_4_data,
+ tileset_tile_5_data,
+ tileset_tile_6_data,
+ tileset_tile_7_data,
+ tileset_tile_8_data,
+ tileset_tile_9_data,
+ tileset_tile_10_data,
+ tileset_tile_11_data,
+ tileset_tile_12_data,
+ tileset_tile_13_data,
+ tileset_tile_14_data,
+ tileset_tile_15_data,
+ tileset_tile_16_data,
+ tileset_tile_17_data,
+ tileset_tile_18_data,
+ tileset_tile_19_data,
+ tileset_tile_20_data,
+ tileset_tile_21_data,
+ tileset_tile_22_data,
+ tileset_tile_23_data,
+ tileset_tile_24_data,
+ tileset_tile_25_data,
+ tileset_tile_26_data,
+ tileset_tile_27_data,
+ tileset_tile_28_data,
+ tileset_tile_29_data,
+ tileset_tile_30_data,
+ tileset_tile_31_data,
+ tileset_tile_32_data,
+ tileset_tile_33_data,
+ tileset_tile_34_data,
+ tileset_tile_35_data,
+ tileset_tile_36_data,
+ tileset_tile_37_data,
+ tileset_tile_38_data,
+ tileset_tile_39_data,
+ tileset_tile_40_data,
+ tileset_tile_41_data,
+ tileset_tile_42_data,
+ tileset_tile_43_data,
+ tileset_tile_44_data,
+ tileset_tile_45_data,
+ tileset_tile_46_data,
+ tileset_tile_47_data,
+ tileset_tile_48_data,
+ tileset_tile_49_data,
+ tileset_tile_50_data,
+ tileset_tile_51_data,
+ tileset_tile_52_data,
+ tileset_tile_53_data,
+ tileset_tile_54_data,
+ tileset_tile_55_data,
+ tileset_tile_56_data,
+ tileset_tile_57_data,
+ tileset_tile_58_data,
+ tileset_tile_59_data,
+ tileset_tile_60_data,
+ tileset_tile_61_data,
+ tileset_tile_62_data,
+ tileset_tile_63_data,
+ tileset_tile_64_data,
+ tileset_tile_65_data,
+ tileset_tile_66_data,
+ tileset_tile_67_data,
+ tileset_tile_68_data,
+ tileset_tile_69_data,
+ tileset_tile_70_data,
+ tileset_tile_71_data,
+ tileset_tile_72_data,
+ tileset_tile_73_data,
+ tileset_tile_74_data,
+ tileset_tile_75_data,
+ tileset_tile_76_data,
+ tileset_tile_77_data,
+ tileset_tile_78_data,
+ tileset_tile_79_data,
+ tileset_tile_80_data,
+ tileset_tile_81_data,
+ tileset_tile_82_data,
+ tileset_tile_83_data,
+ tileset_tile_84_data,
+ tileset_tile_85_data,
+ tileset_tile_86_data,
+ tileset_tile_87_data,
+ tileset_tile_88_data,
+ tileset_tile_89_data,
+ tileset_tile_90_data,
+ tileset_tile_91_data,
+ tileset_tile_92_data,
+ tileset_tile_93_data,
+ tileset_tile_94_data,
+ tileset_tile_95_data,
+ tileset_tile_96_data,
+ tileset_tile_97_data,
+ tileset_tile_98_data,
+ tileset_tile_99_data,
+ tileset_tile_100_data,
+ tileset_tile_101_data,
+ tileset_tile_102_data,
+ tileset_tile_103_data,
+ tileset_tile_104_data,
+ tileset_tile_105_data,
+ tileset_tile_106_data,
+ tileset_tile_107_data,
+ tileset_tile_108_data,
+ tileset_tile_109_data,
+ tileset_tile_110_data,
+ tileset_tile_111_data,
+ tileset_tile_112_data,
+ tileset_tile_113_data,
+ tileset_tile_114_data,
+ tileset_tile_115_data,
+ tileset_tile_116_data,
+ tileset_tile_117_data,
+ tileset_tile_118_data,
+ tileset_tile_119_data,
+ tileset_tile_120_data,
+ tileset_tile_121_data,
+ tileset_tile_122_data,
+ tileset_tile_123_data,
+ tileset_tile_124_data,
+ tileset_tile_125_data,
+ tileset_tile_126_data,
+ tileset_tile_127_data,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c index 7845bf9..92f0a5e 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/main.c @@ -1,102 +1,102 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Include the graphics */ -#include "gfx/tiles_gfx.h" - -/* Include the external map data */ -extern uint8_t tilemap_map[]; - -/* Tilemap defines */ -#define TILE_WIDTH 16 -#define TILE_HEIGHT 16 - -#define TILEMAP_WIDTH 32 -#define TILEMAP_HEIGHT 25 - -#define TILEMAP_DRAW_WIDTH 20 -#define TILEMAP_DRAW_HEIGHT 14 - -#define Y_OFFSET 16 -#define X_OFFSET 0 - -void main(void) { - sk_key_t key; - unsigned int x_offset = 0; - unsigned int y_offset = 0; - gfx_tilemap_t tilemap; - - /* Initialize the tilemap structure */ - tilemap.map = tilemap_map; - tilemap.tiles = tileset_tiles; - tilemap.type_width = gfx_tile_16_pixel; - tilemap.type_height = gfx_tile_16_pixel; - tilemap.tile_height = TILE_HEIGHT; - tilemap.tile_width = TILE_WIDTH; - tilemap.draw_height = TILEMAP_DRAW_HEIGHT; - tilemap.draw_width = TILEMAP_DRAW_WIDTH; - tilemap.height = TILEMAP_HEIGHT; - tilemap.width = TILEMAP_WIDTH; - tilemap.y_loc = Y_OFFSET; - tilemap.x_loc = X_OFFSET; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette */ - gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0); - gfx_SetColor(gfx_white); - - /* Draw to buffer to avoid tearing */ - gfx_SetDrawBuffer(); - - /* Set monospace font with width of 8 */ - gfx_SetMonospaceFont(8); - - /* Wait for the enter key to quit */ - while ((key = os_GetCSC()) != sk_Enter) { - - /* Draw tilemap and coords */ - gfx_Tilemap(&tilemap, x_offset, y_offset); - gfx_FillRectangle(0, 0, 320, 16); - gfx_PrintStringXY("x offset:", 48, 4); - gfx_PrintUInt(x_offset, 4); - gfx_PrintString(" y offset:"); - gfx_PrintUInt(y_offset, 4); - - /* Do something based on the keypress */ - switch (key) { - case sk_Down: - if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT)) - y_offset += TILE_HEIGHT; - break; - case sk_Left: - if (x_offset) - x_offset -= TILE_WIDTH; - break; - case sk_Right: - if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH)) - x_offset += TILE_WIDTH; - break; - case sk_Up: - if (y_offset) - y_offset -= TILE_HEIGHT; - break; - default: - break; - } - gfx_SwapDraw(); - } - - /* Close the graphics and return to the OS */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+
+/* Include the external map data */
+extern uint8_t tilemap_map[];
+
+/* Tilemap defines */
+#define TILE_WIDTH 16
+#define TILE_HEIGHT 16
+
+#define TILEMAP_WIDTH 32
+#define TILEMAP_HEIGHT 25
+
+#define TILEMAP_DRAW_WIDTH 20
+#define TILEMAP_DRAW_HEIGHT 14
+
+#define Y_OFFSET 16
+#define X_OFFSET 0
+
+void main(void) {
+ sk_key_t key;
+ unsigned int x_offset = 0;
+ unsigned int y_offset = 0;
+ gfx_tilemap_t tilemap;
+
+ /* Initialize the tilemap structure */
+ tilemap.map = tilemap_map;
+ tilemap.tiles = tileset_tiles;
+ tilemap.type_width = gfx_tile_16_pixel;
+ tilemap.type_height = gfx_tile_16_pixel;
+ tilemap.tile_height = TILE_HEIGHT;
+ tilemap.tile_width = TILE_WIDTH;
+ tilemap.draw_height = TILEMAP_DRAW_HEIGHT;
+ tilemap.draw_width = TILEMAP_DRAW_WIDTH;
+ tilemap.height = TILEMAP_HEIGHT;
+ tilemap.width = TILEMAP_WIDTH;
+ tilemap.y_loc = Y_OFFSET;
+ tilemap.x_loc = X_OFFSET;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_SetColor(gfx_white);
+
+ /* Draw to buffer to avoid tearing */
+ gfx_SetDrawBuffer();
+
+ /* Set monospace font with width of 8 */
+ gfx_SetMonospaceFont(8);
+
+ /* Wait for the enter key to quit */
+ while ((key = os_GetCSC()) != sk_Enter) {
+
+ /* Draw tilemap and coords */
+ gfx_Tilemap(&tilemap, x_offset, y_offset);
+ gfx_FillRectangle(0, 0, 320, 16);
+ gfx_PrintStringXY("x offset:", 48, 4);
+ gfx_PrintUInt(x_offset, 4);
+ gfx_PrintString(" y offset:");
+ gfx_PrintUInt(y_offset, 4);
+
+ /* Do something based on the keypress */
+ switch (key) {
+ case sk_Down:
+ if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT))
+ y_offset += TILE_HEIGHT;
+ break;
+ case sk_Left:
+ if (x_offset)
+ x_offset -= TILE_WIDTH;
+ break;
+ case sk_Right:
+ if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH))
+ x_offset += TILE_WIDTH;
+ break;
+ case sk_Up:
+ if (y_offset)
+ y_offset -= TILE_HEIGHT;
+ break;
+ default:
+ break;
+ }
+ gfx_SwapDraw();
+ }
+
+ /* Close the graphics and return to the OS */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c index d443c6c..7fbe1a2 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap/src/tilemapdata.c @@ -1,30 +1,30 @@ -#include <stdint.h> - -/* This is the data that is displayed with the tilemap */ -uint8_t tilemap_map[] = { - 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22, - 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32, - 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42, -}; +#include <stdint.h>
+
+/* This is the data that is displayed with the tilemap */
+uint8_t tilemap_map[] = {
+ 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,
+ 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json index 9a2cd06..77314bb 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/autotester.json @@ -1,43 +1,43 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp", - "src/gfx/var_gfx.8xv" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "delay|100", - "key|right", - "key|right", - "key|down", - "key|down", - "hashWait|2", - "key|enter", - "hashWait|3" - ], - "hashes": { - "1": { - "description": "Initial sprite map state (top left)", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "3C2D7C36" ] - }, - "2": { - "description": "Moving a bit to the bottom right", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "F0C14AE9" ] - }, - "3": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp",
+ "src/gfx/var_gfx.8xv"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|100",
+ "key|right",
+ "key|right",
+ "key|down",
+ "key|down",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Initial sprite map state (top left)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3C2D7C36" ]
+ },
+ "2": {
+ "description": "Moving a bit to the bottom right",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "F0C14AE9" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44", "43BF8092", "5ACF1C01" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md index 83c687b..82edcd7 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/readme.md @@ -1,10 +1,10 @@ -### GraphX Simple Appvar Tilemap Demo - -An example of tilemaping using a sequence of tiles and the keypad. Data for the tilemap is stored within an appvar. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Simple Appvar Tilemap Demo
+
+An example of tilemaping using a sequence of tiles and the keypad. Data for the tilemap is stored within an appvar.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini index ebcba17..0f05bce 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/convpng.ini @@ -1,14 +1,14 @@ -// Appvar to place all graphics in - -#AppvarC : var_gfx -#IncludePalettes : tiles_gfx -#PNGImages : - tileset - -// The group for the tileset - -#GroupC : tiles_gfx -#TransparentColor : 255,201,14 -#Tilemap : 16,16,true -#PNGImages : - tileset +// Appvar to place all graphics in
+
+#AppvarC : var_gfx
+#IncludePalettes : tiles_gfx
+#PNGImages :
+ tileset
+
+// The group for the tileset
+
+#GroupC : tiles_gfx
+#TransparentColor : 255,201,14
+#Tilemap : 16,16,true
+#PNGImages :
+ tileset
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c index 7243683..c1c9573 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.c @@ -1,4 +1,4 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h index e86b1ce..a04b391 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tiles_gfx.h @@ -1,10 +1,10 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __tiles_gfx__ -#define __tiles_gfx__ -#include <stdint.h> - -#define tiles_gfx_transparent_color_index 0 - - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+#define tiles_gfx_transparent_color_index 0
+
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c index f4abe71..97bfe9b 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/tileset.c @@ -1,134 +1,134 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - -uint8_t *tileset_tiles_data[128] = { - (uint8_t*)0, - (uint8_t*)258, - (uint8_t*)516, - (uint8_t*)774, - (uint8_t*)1032, - (uint8_t*)1290, - (uint8_t*)1548, - (uint8_t*)1806, - (uint8_t*)2064, - (uint8_t*)2322, - (uint8_t*)2580, - (uint8_t*)2838, - (uint8_t*)3096, - (uint8_t*)3354, - (uint8_t*)3612, - (uint8_t*)3870, - (uint8_t*)4128, - (uint8_t*)4386, - (uint8_t*)4644, - (uint8_t*)4902, - (uint8_t*)5160, - (uint8_t*)5418, - (uint8_t*)5676, - (uint8_t*)5934, - (uint8_t*)6192, - (uint8_t*)6450, - (uint8_t*)6708, - (uint8_t*)6966, - (uint8_t*)7224, - (uint8_t*)7482, - (uint8_t*)7740, - (uint8_t*)7998, - (uint8_t*)8256, - (uint8_t*)8514, - (uint8_t*)8772, - (uint8_t*)9030, - (uint8_t*)9288, - (uint8_t*)9546, - (uint8_t*)9804, - (uint8_t*)10062, - (uint8_t*)10320, - (uint8_t*)10578, - (uint8_t*)10836, - (uint8_t*)11094, - (uint8_t*)11352, - (uint8_t*)11610, - (uint8_t*)11868, - (uint8_t*)12126, - (uint8_t*)12384, - (uint8_t*)12642, - (uint8_t*)12900, - (uint8_t*)13158, - (uint8_t*)13416, - (uint8_t*)13674, - (uint8_t*)13932, - (uint8_t*)14190, - (uint8_t*)14448, - (uint8_t*)14706, - (uint8_t*)14964, - (uint8_t*)15222, - (uint8_t*)15480, - (uint8_t*)15738, - (uint8_t*)15996, - (uint8_t*)16254, - (uint8_t*)16512, - (uint8_t*)16770, - (uint8_t*)17028, - (uint8_t*)17286, - (uint8_t*)17544, - (uint8_t*)17802, - (uint8_t*)18060, - (uint8_t*)18318, - (uint8_t*)18576, - (uint8_t*)18834, - (uint8_t*)19092, - (uint8_t*)19350, - (uint8_t*)19608, - (uint8_t*)19866, - (uint8_t*)20124, - (uint8_t*)20382, - (uint8_t*)20640, - (uint8_t*)20898, - (uint8_t*)21156, - (uint8_t*)21414, - (uint8_t*)21672, - (uint8_t*)21930, - (uint8_t*)22188, - (uint8_t*)22446, - (uint8_t*)22704, - (uint8_t*)22962, - (uint8_t*)23220, - (uint8_t*)23478, - (uint8_t*)23736, - (uint8_t*)23994, - (uint8_t*)24252, - (uint8_t*)24510, - (uint8_t*)24768, - (uint8_t*)25026, - (uint8_t*)25284, - (uint8_t*)25542, - (uint8_t*)25800, - (uint8_t*)26058, - (uint8_t*)26316, - (uint8_t*)26574, - (uint8_t*)26832, - (uint8_t*)27090, - (uint8_t*)27348, - (uint8_t*)27606, - (uint8_t*)27864, - (uint8_t*)28122, - (uint8_t*)28380, - (uint8_t*)28638, - (uint8_t*)28896, - (uint8_t*)29154, - (uint8_t*)29412, - (uint8_t*)29670, - (uint8_t*)29928, - (uint8_t*)30186, - (uint8_t*)30444, - (uint8_t*)30702, - (uint8_t*)30960, - (uint8_t*)31218, - (uint8_t*)31476, - (uint8_t*)31734, - (uint8_t*)31992, - (uint8_t*)32250, - (uint8_t*)32508, - (uint8_t*)32766, -}; +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t *tileset_tiles_data[128] = {
+ (uint8_t*)0,
+ (uint8_t*)258,
+ (uint8_t*)516,
+ (uint8_t*)774,
+ (uint8_t*)1032,
+ (uint8_t*)1290,
+ (uint8_t*)1548,
+ (uint8_t*)1806,
+ (uint8_t*)2064,
+ (uint8_t*)2322,
+ (uint8_t*)2580,
+ (uint8_t*)2838,
+ (uint8_t*)3096,
+ (uint8_t*)3354,
+ (uint8_t*)3612,
+ (uint8_t*)3870,
+ (uint8_t*)4128,
+ (uint8_t*)4386,
+ (uint8_t*)4644,
+ (uint8_t*)4902,
+ (uint8_t*)5160,
+ (uint8_t*)5418,
+ (uint8_t*)5676,
+ (uint8_t*)5934,
+ (uint8_t*)6192,
+ (uint8_t*)6450,
+ (uint8_t*)6708,
+ (uint8_t*)6966,
+ (uint8_t*)7224,
+ (uint8_t*)7482,
+ (uint8_t*)7740,
+ (uint8_t*)7998,
+ (uint8_t*)8256,
+ (uint8_t*)8514,
+ (uint8_t*)8772,
+ (uint8_t*)9030,
+ (uint8_t*)9288,
+ (uint8_t*)9546,
+ (uint8_t*)9804,
+ (uint8_t*)10062,
+ (uint8_t*)10320,
+ (uint8_t*)10578,
+ (uint8_t*)10836,
+ (uint8_t*)11094,
+ (uint8_t*)11352,
+ (uint8_t*)11610,
+ (uint8_t*)11868,
+ (uint8_t*)12126,
+ (uint8_t*)12384,
+ (uint8_t*)12642,
+ (uint8_t*)12900,
+ (uint8_t*)13158,
+ (uint8_t*)13416,
+ (uint8_t*)13674,
+ (uint8_t*)13932,
+ (uint8_t*)14190,
+ (uint8_t*)14448,
+ (uint8_t*)14706,
+ (uint8_t*)14964,
+ (uint8_t*)15222,
+ (uint8_t*)15480,
+ (uint8_t*)15738,
+ (uint8_t*)15996,
+ (uint8_t*)16254,
+ (uint8_t*)16512,
+ (uint8_t*)16770,
+ (uint8_t*)17028,
+ (uint8_t*)17286,
+ (uint8_t*)17544,
+ (uint8_t*)17802,
+ (uint8_t*)18060,
+ (uint8_t*)18318,
+ (uint8_t*)18576,
+ (uint8_t*)18834,
+ (uint8_t*)19092,
+ (uint8_t*)19350,
+ (uint8_t*)19608,
+ (uint8_t*)19866,
+ (uint8_t*)20124,
+ (uint8_t*)20382,
+ (uint8_t*)20640,
+ (uint8_t*)20898,
+ (uint8_t*)21156,
+ (uint8_t*)21414,
+ (uint8_t*)21672,
+ (uint8_t*)21930,
+ (uint8_t*)22188,
+ (uint8_t*)22446,
+ (uint8_t*)22704,
+ (uint8_t*)22962,
+ (uint8_t*)23220,
+ (uint8_t*)23478,
+ (uint8_t*)23736,
+ (uint8_t*)23994,
+ (uint8_t*)24252,
+ (uint8_t*)24510,
+ (uint8_t*)24768,
+ (uint8_t*)25026,
+ (uint8_t*)25284,
+ (uint8_t*)25542,
+ (uint8_t*)25800,
+ (uint8_t*)26058,
+ (uint8_t*)26316,
+ (uint8_t*)26574,
+ (uint8_t*)26832,
+ (uint8_t*)27090,
+ (uint8_t*)27348,
+ (uint8_t*)27606,
+ (uint8_t*)27864,
+ (uint8_t*)28122,
+ (uint8_t*)28380,
+ (uint8_t*)28638,
+ (uint8_t*)28896,
+ (uint8_t*)29154,
+ (uint8_t*)29412,
+ (uint8_t*)29670,
+ (uint8_t*)29928,
+ (uint8_t*)30186,
+ (uint8_t*)30444,
+ (uint8_t*)30702,
+ (uint8_t*)30960,
+ (uint8_t*)31218,
+ (uint8_t*)31476,
+ (uint8_t*)31734,
+ (uint8_t*)31992,
+ (uint8_t*)32250,
+ (uint8_t*)32508,
+ (uint8_t*)32766,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c index 3b84b3f..f8ea21f 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.c @@ -1,31 +1,31 @@ -// convpng -#include <stdint.h> -#include "var_gfx.h" - -#include <fileioc.h> -uint8_t *var_gfx[2] = { - (uint8_t*)0, - (uint8_t*)33024, -}; - -bool var_gfx_init(void) { - unsigned int data, i; - ti_var_t appvar; - - ti_CloseAll(); - - appvar = ti_Open("var_gfx", "r"); - data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0]; - for (i = 0; i < var_gfx_num; i++) { - var_gfx[i] += data; - } - - ti_CloseAll(); - - data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_data[0]; - for (i = 0; i < tileset_tiles_num; i++) { - tileset_tiles_data[i] += data; - } - - return (bool)appvar; -} +// convpng
+#include <stdint.h>
+#include "var_gfx.h"
+
+#include <fileioc.h>
+uint8_t *var_gfx[2] = {
+ (uint8_t*)0,
+ (uint8_t*)33024,
+};
+
+bool var_gfx_init(void) {
+ unsigned int data, i;
+ ti_var_t appvar;
+
+ ti_CloseAll();
+
+ appvar = ti_Open("var_gfx", "r");
+ data = (unsigned int)ti_GetDataPtr(appvar) - (unsigned int)var_gfx[0];
+ for (i = 0; i < var_gfx_num; i++) {
+ var_gfx[i] += data;
+ }
+
+ ti_CloseAll();
+
+ data = (unsigned int)var_gfx[0] - (unsigned int)tileset_tiles_data[0];
+ for (i = 0; i < tileset_tiles_num; i++) {
+ tileset_tiles_data[i] += data;
+ }
+
+ return (bool)appvar;
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h index d472794..bc054aa 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/gfx/var_gfx.h @@ -1,148 +1,148 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __var_gfx__ -#define __var_gfx__ -#include <stdint.h> - -#include <stdbool.h> - -#define var_gfx_num 2 - -extern uint8_t *var_gfx[2]; -#define tileset ((gfx_sprite_t*)var_gfx[0]) -#define tileset_tiles_num 128 -extern uint8_t *tileset_tiles_data[128]; -#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data) -#define tileset_tile_0 ((gfx_sprite_t*)tileset_tiles_data[0]) -#define tileset_tile_1 ((gfx_sprite_t*)tileset_tiles_data[1]) -#define tileset_tile_2 ((gfx_sprite_t*)tileset_tiles_data[2]) -#define tileset_tile_3 ((gfx_sprite_t*)tileset_tiles_data[3]) -#define tileset_tile_4 ((gfx_sprite_t*)tileset_tiles_data[4]) -#define tileset_tile_5 ((gfx_sprite_t*)tileset_tiles_data[5]) -#define tileset_tile_6 ((gfx_sprite_t*)tileset_tiles_data[6]) -#define tileset_tile_7 ((gfx_sprite_t*)tileset_tiles_data[7]) -#define tileset_tile_8 ((gfx_sprite_t*)tileset_tiles_data[8]) -#define tileset_tile_9 ((gfx_sprite_t*)tileset_tiles_data[9]) -#define tileset_tile_10 ((gfx_sprite_t*)tileset_tiles_data[10]) -#define tileset_tile_11 ((gfx_sprite_t*)tileset_tiles_data[11]) -#define tileset_tile_12 ((gfx_sprite_t*)tileset_tiles_data[12]) -#define tileset_tile_13 ((gfx_sprite_t*)tileset_tiles_data[13]) -#define tileset_tile_14 ((gfx_sprite_t*)tileset_tiles_data[14]) -#define tileset_tile_15 ((gfx_sprite_t*)tileset_tiles_data[15]) -#define tileset_tile_16 ((gfx_sprite_t*)tileset_tiles_data[16]) -#define tileset_tile_17 ((gfx_sprite_t*)tileset_tiles_data[17]) -#define tileset_tile_18 ((gfx_sprite_t*)tileset_tiles_data[18]) -#define tileset_tile_19 ((gfx_sprite_t*)tileset_tiles_data[19]) -#define tileset_tile_20 ((gfx_sprite_t*)tileset_tiles_data[20]) -#define tileset_tile_21 ((gfx_sprite_t*)tileset_tiles_data[21]) -#define tileset_tile_22 ((gfx_sprite_t*)tileset_tiles_data[22]) -#define tileset_tile_23 ((gfx_sprite_t*)tileset_tiles_data[23]) -#define tileset_tile_24 ((gfx_sprite_t*)tileset_tiles_data[24]) -#define tileset_tile_25 ((gfx_sprite_t*)tileset_tiles_data[25]) -#define tileset_tile_26 ((gfx_sprite_t*)tileset_tiles_data[26]) -#define tileset_tile_27 ((gfx_sprite_t*)tileset_tiles_data[27]) -#define tileset_tile_28 ((gfx_sprite_t*)tileset_tiles_data[28]) -#define tileset_tile_29 ((gfx_sprite_t*)tileset_tiles_data[29]) -#define tileset_tile_30 ((gfx_sprite_t*)tileset_tiles_data[30]) -#define tileset_tile_31 ((gfx_sprite_t*)tileset_tiles_data[31]) -#define tileset_tile_32 ((gfx_sprite_t*)tileset_tiles_data[32]) -#define tileset_tile_33 ((gfx_sprite_t*)tileset_tiles_data[33]) -#define tileset_tile_34 ((gfx_sprite_t*)tileset_tiles_data[34]) -#define tileset_tile_35 ((gfx_sprite_t*)tileset_tiles_data[35]) -#define tileset_tile_36 ((gfx_sprite_t*)tileset_tiles_data[36]) -#define tileset_tile_37 ((gfx_sprite_t*)tileset_tiles_data[37]) -#define tileset_tile_38 ((gfx_sprite_t*)tileset_tiles_data[38]) -#define tileset_tile_39 ((gfx_sprite_t*)tileset_tiles_data[39]) -#define tileset_tile_40 ((gfx_sprite_t*)tileset_tiles_data[40]) -#define tileset_tile_41 ((gfx_sprite_t*)tileset_tiles_data[41]) -#define tileset_tile_42 ((gfx_sprite_t*)tileset_tiles_data[42]) -#define tileset_tile_43 ((gfx_sprite_t*)tileset_tiles_data[43]) -#define tileset_tile_44 ((gfx_sprite_t*)tileset_tiles_data[44]) -#define tileset_tile_45 ((gfx_sprite_t*)tileset_tiles_data[45]) -#define tileset_tile_46 ((gfx_sprite_t*)tileset_tiles_data[46]) -#define tileset_tile_47 ((gfx_sprite_t*)tileset_tiles_data[47]) -#define tileset_tile_48 ((gfx_sprite_t*)tileset_tiles_data[48]) -#define tileset_tile_49 ((gfx_sprite_t*)tileset_tiles_data[49]) -#define tileset_tile_50 ((gfx_sprite_t*)tileset_tiles_data[50]) -#define tileset_tile_51 ((gfx_sprite_t*)tileset_tiles_data[51]) -#define tileset_tile_52 ((gfx_sprite_t*)tileset_tiles_data[52]) -#define tileset_tile_53 ((gfx_sprite_t*)tileset_tiles_data[53]) -#define tileset_tile_54 ((gfx_sprite_t*)tileset_tiles_data[54]) -#define tileset_tile_55 ((gfx_sprite_t*)tileset_tiles_data[55]) -#define tileset_tile_56 ((gfx_sprite_t*)tileset_tiles_data[56]) -#define tileset_tile_57 ((gfx_sprite_t*)tileset_tiles_data[57]) -#define tileset_tile_58 ((gfx_sprite_t*)tileset_tiles_data[58]) -#define tileset_tile_59 ((gfx_sprite_t*)tileset_tiles_data[59]) -#define tileset_tile_60 ((gfx_sprite_t*)tileset_tiles_data[60]) -#define tileset_tile_61 ((gfx_sprite_t*)tileset_tiles_data[61]) -#define tileset_tile_62 ((gfx_sprite_t*)tileset_tiles_data[62]) -#define tileset_tile_63 ((gfx_sprite_t*)tileset_tiles_data[63]) -#define tileset_tile_64 ((gfx_sprite_t*)tileset_tiles_data[64]) -#define tileset_tile_65 ((gfx_sprite_t*)tileset_tiles_data[65]) -#define tileset_tile_66 ((gfx_sprite_t*)tileset_tiles_data[66]) -#define tileset_tile_67 ((gfx_sprite_t*)tileset_tiles_data[67]) -#define tileset_tile_68 ((gfx_sprite_t*)tileset_tiles_data[68]) -#define tileset_tile_69 ((gfx_sprite_t*)tileset_tiles_data[69]) -#define tileset_tile_70 ((gfx_sprite_t*)tileset_tiles_data[70]) -#define tileset_tile_71 ((gfx_sprite_t*)tileset_tiles_data[71]) -#define tileset_tile_72 ((gfx_sprite_t*)tileset_tiles_data[72]) -#define tileset_tile_73 ((gfx_sprite_t*)tileset_tiles_data[73]) -#define tileset_tile_74 ((gfx_sprite_t*)tileset_tiles_data[74]) -#define tileset_tile_75 ((gfx_sprite_t*)tileset_tiles_data[75]) -#define tileset_tile_76 ((gfx_sprite_t*)tileset_tiles_data[76]) -#define tileset_tile_77 ((gfx_sprite_t*)tileset_tiles_data[77]) -#define tileset_tile_78 ((gfx_sprite_t*)tileset_tiles_data[78]) -#define tileset_tile_79 ((gfx_sprite_t*)tileset_tiles_data[79]) -#define tileset_tile_80 ((gfx_sprite_t*)tileset_tiles_data[80]) -#define tileset_tile_81 ((gfx_sprite_t*)tileset_tiles_data[81]) -#define tileset_tile_82 ((gfx_sprite_t*)tileset_tiles_data[82]) -#define tileset_tile_83 ((gfx_sprite_t*)tileset_tiles_data[83]) -#define tileset_tile_84 ((gfx_sprite_t*)tileset_tiles_data[84]) -#define tileset_tile_85 ((gfx_sprite_t*)tileset_tiles_data[85]) -#define tileset_tile_86 ((gfx_sprite_t*)tileset_tiles_data[86]) -#define tileset_tile_87 ((gfx_sprite_t*)tileset_tiles_data[87]) -#define tileset_tile_88 ((gfx_sprite_t*)tileset_tiles_data[88]) -#define tileset_tile_89 ((gfx_sprite_t*)tileset_tiles_data[89]) -#define tileset_tile_90 ((gfx_sprite_t*)tileset_tiles_data[90]) -#define tileset_tile_91 ((gfx_sprite_t*)tileset_tiles_data[91]) -#define tileset_tile_92 ((gfx_sprite_t*)tileset_tiles_data[92]) -#define tileset_tile_93 ((gfx_sprite_t*)tileset_tiles_data[93]) -#define tileset_tile_94 ((gfx_sprite_t*)tileset_tiles_data[94]) -#define tileset_tile_95 ((gfx_sprite_t*)tileset_tiles_data[95]) -#define tileset_tile_96 ((gfx_sprite_t*)tileset_tiles_data[96]) -#define tileset_tile_97 ((gfx_sprite_t*)tileset_tiles_data[97]) -#define tileset_tile_98 ((gfx_sprite_t*)tileset_tiles_data[98]) -#define tileset_tile_99 ((gfx_sprite_t*)tileset_tiles_data[99]) -#define tileset_tile_100 ((gfx_sprite_t*)tileset_tiles_data[100]) -#define tileset_tile_101 ((gfx_sprite_t*)tileset_tiles_data[101]) -#define tileset_tile_102 ((gfx_sprite_t*)tileset_tiles_data[102]) -#define tileset_tile_103 ((gfx_sprite_t*)tileset_tiles_data[103]) -#define tileset_tile_104 ((gfx_sprite_t*)tileset_tiles_data[104]) -#define tileset_tile_105 ((gfx_sprite_t*)tileset_tiles_data[105]) -#define tileset_tile_106 ((gfx_sprite_t*)tileset_tiles_data[106]) -#define tileset_tile_107 ((gfx_sprite_t*)tileset_tiles_data[107]) -#define tileset_tile_108 ((gfx_sprite_t*)tileset_tiles_data[108]) -#define tileset_tile_109 ((gfx_sprite_t*)tileset_tiles_data[109]) -#define tileset_tile_110 ((gfx_sprite_t*)tileset_tiles_data[110]) -#define tileset_tile_111 ((gfx_sprite_t*)tileset_tiles_data[111]) -#define tileset_tile_112 ((gfx_sprite_t*)tileset_tiles_data[112]) -#define tileset_tile_113 ((gfx_sprite_t*)tileset_tiles_data[113]) -#define tileset_tile_114 ((gfx_sprite_t*)tileset_tiles_data[114]) -#define tileset_tile_115 ((gfx_sprite_t*)tileset_tiles_data[115]) -#define tileset_tile_116 ((gfx_sprite_t*)tileset_tiles_data[116]) -#define tileset_tile_117 ((gfx_sprite_t*)tileset_tiles_data[117]) -#define tileset_tile_118 ((gfx_sprite_t*)tileset_tiles_data[118]) -#define tileset_tile_119 ((gfx_sprite_t*)tileset_tiles_data[119]) -#define tileset_tile_120 ((gfx_sprite_t*)tileset_tiles_data[120]) -#define tileset_tile_121 ((gfx_sprite_t*)tileset_tiles_data[121]) -#define tileset_tile_122 ((gfx_sprite_t*)tileset_tiles_data[122]) -#define tileset_tile_123 ((gfx_sprite_t*)tileset_tiles_data[123]) -#define tileset_tile_124 ((gfx_sprite_t*)tileset_tiles_data[124]) -#define tileset_tile_125 ((gfx_sprite_t*)tileset_tiles_data[125]) -#define tileset_tile_126 ((gfx_sprite_t*)tileset_tiles_data[126]) -#define tileset_tile_127 ((gfx_sprite_t*)tileset_tiles_data[127]) -#define sizeof_tiles_gfx_pal 152 -#define tiles_gfx_pal ((uint16_t*)var_gfx[1]) -bool var_gfx_init(void); - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __var_gfx__
+#define __var_gfx__
+#include <stdint.h>
+
+#include <stdbool.h>
+
+#define var_gfx_num 2
+
+extern uint8_t *var_gfx[2];
+#define tileset ((gfx_sprite_t*)var_gfx[0])
+#define tileset_tiles_num 128
+extern uint8_t *tileset_tiles_data[128];
+#define tileset_tiles ((gfx_sprite_t**)tileset_tiles_data)
+#define tileset_tile_0 ((gfx_sprite_t*)tileset_tiles_data[0])
+#define tileset_tile_1 ((gfx_sprite_t*)tileset_tiles_data[1])
+#define tileset_tile_2 ((gfx_sprite_t*)tileset_tiles_data[2])
+#define tileset_tile_3 ((gfx_sprite_t*)tileset_tiles_data[3])
+#define tileset_tile_4 ((gfx_sprite_t*)tileset_tiles_data[4])
+#define tileset_tile_5 ((gfx_sprite_t*)tileset_tiles_data[5])
+#define tileset_tile_6 ((gfx_sprite_t*)tileset_tiles_data[6])
+#define tileset_tile_7 ((gfx_sprite_t*)tileset_tiles_data[7])
+#define tileset_tile_8 ((gfx_sprite_t*)tileset_tiles_data[8])
+#define tileset_tile_9 ((gfx_sprite_t*)tileset_tiles_data[9])
+#define tileset_tile_10 ((gfx_sprite_t*)tileset_tiles_data[10])
+#define tileset_tile_11 ((gfx_sprite_t*)tileset_tiles_data[11])
+#define tileset_tile_12 ((gfx_sprite_t*)tileset_tiles_data[12])
+#define tileset_tile_13 ((gfx_sprite_t*)tileset_tiles_data[13])
+#define tileset_tile_14 ((gfx_sprite_t*)tileset_tiles_data[14])
+#define tileset_tile_15 ((gfx_sprite_t*)tileset_tiles_data[15])
+#define tileset_tile_16 ((gfx_sprite_t*)tileset_tiles_data[16])
+#define tileset_tile_17 ((gfx_sprite_t*)tileset_tiles_data[17])
+#define tileset_tile_18 ((gfx_sprite_t*)tileset_tiles_data[18])
+#define tileset_tile_19 ((gfx_sprite_t*)tileset_tiles_data[19])
+#define tileset_tile_20 ((gfx_sprite_t*)tileset_tiles_data[20])
+#define tileset_tile_21 ((gfx_sprite_t*)tileset_tiles_data[21])
+#define tileset_tile_22 ((gfx_sprite_t*)tileset_tiles_data[22])
+#define tileset_tile_23 ((gfx_sprite_t*)tileset_tiles_data[23])
+#define tileset_tile_24 ((gfx_sprite_t*)tileset_tiles_data[24])
+#define tileset_tile_25 ((gfx_sprite_t*)tileset_tiles_data[25])
+#define tileset_tile_26 ((gfx_sprite_t*)tileset_tiles_data[26])
+#define tileset_tile_27 ((gfx_sprite_t*)tileset_tiles_data[27])
+#define tileset_tile_28 ((gfx_sprite_t*)tileset_tiles_data[28])
+#define tileset_tile_29 ((gfx_sprite_t*)tileset_tiles_data[29])
+#define tileset_tile_30 ((gfx_sprite_t*)tileset_tiles_data[30])
+#define tileset_tile_31 ((gfx_sprite_t*)tileset_tiles_data[31])
+#define tileset_tile_32 ((gfx_sprite_t*)tileset_tiles_data[32])
+#define tileset_tile_33 ((gfx_sprite_t*)tileset_tiles_data[33])
+#define tileset_tile_34 ((gfx_sprite_t*)tileset_tiles_data[34])
+#define tileset_tile_35 ((gfx_sprite_t*)tileset_tiles_data[35])
+#define tileset_tile_36 ((gfx_sprite_t*)tileset_tiles_data[36])
+#define tileset_tile_37 ((gfx_sprite_t*)tileset_tiles_data[37])
+#define tileset_tile_38 ((gfx_sprite_t*)tileset_tiles_data[38])
+#define tileset_tile_39 ((gfx_sprite_t*)tileset_tiles_data[39])
+#define tileset_tile_40 ((gfx_sprite_t*)tileset_tiles_data[40])
+#define tileset_tile_41 ((gfx_sprite_t*)tileset_tiles_data[41])
+#define tileset_tile_42 ((gfx_sprite_t*)tileset_tiles_data[42])
+#define tileset_tile_43 ((gfx_sprite_t*)tileset_tiles_data[43])
+#define tileset_tile_44 ((gfx_sprite_t*)tileset_tiles_data[44])
+#define tileset_tile_45 ((gfx_sprite_t*)tileset_tiles_data[45])
+#define tileset_tile_46 ((gfx_sprite_t*)tileset_tiles_data[46])
+#define tileset_tile_47 ((gfx_sprite_t*)tileset_tiles_data[47])
+#define tileset_tile_48 ((gfx_sprite_t*)tileset_tiles_data[48])
+#define tileset_tile_49 ((gfx_sprite_t*)tileset_tiles_data[49])
+#define tileset_tile_50 ((gfx_sprite_t*)tileset_tiles_data[50])
+#define tileset_tile_51 ((gfx_sprite_t*)tileset_tiles_data[51])
+#define tileset_tile_52 ((gfx_sprite_t*)tileset_tiles_data[52])
+#define tileset_tile_53 ((gfx_sprite_t*)tileset_tiles_data[53])
+#define tileset_tile_54 ((gfx_sprite_t*)tileset_tiles_data[54])
+#define tileset_tile_55 ((gfx_sprite_t*)tileset_tiles_data[55])
+#define tileset_tile_56 ((gfx_sprite_t*)tileset_tiles_data[56])
+#define tileset_tile_57 ((gfx_sprite_t*)tileset_tiles_data[57])
+#define tileset_tile_58 ((gfx_sprite_t*)tileset_tiles_data[58])
+#define tileset_tile_59 ((gfx_sprite_t*)tileset_tiles_data[59])
+#define tileset_tile_60 ((gfx_sprite_t*)tileset_tiles_data[60])
+#define tileset_tile_61 ((gfx_sprite_t*)tileset_tiles_data[61])
+#define tileset_tile_62 ((gfx_sprite_t*)tileset_tiles_data[62])
+#define tileset_tile_63 ((gfx_sprite_t*)tileset_tiles_data[63])
+#define tileset_tile_64 ((gfx_sprite_t*)tileset_tiles_data[64])
+#define tileset_tile_65 ((gfx_sprite_t*)tileset_tiles_data[65])
+#define tileset_tile_66 ((gfx_sprite_t*)tileset_tiles_data[66])
+#define tileset_tile_67 ((gfx_sprite_t*)tileset_tiles_data[67])
+#define tileset_tile_68 ((gfx_sprite_t*)tileset_tiles_data[68])
+#define tileset_tile_69 ((gfx_sprite_t*)tileset_tiles_data[69])
+#define tileset_tile_70 ((gfx_sprite_t*)tileset_tiles_data[70])
+#define tileset_tile_71 ((gfx_sprite_t*)tileset_tiles_data[71])
+#define tileset_tile_72 ((gfx_sprite_t*)tileset_tiles_data[72])
+#define tileset_tile_73 ((gfx_sprite_t*)tileset_tiles_data[73])
+#define tileset_tile_74 ((gfx_sprite_t*)tileset_tiles_data[74])
+#define tileset_tile_75 ((gfx_sprite_t*)tileset_tiles_data[75])
+#define tileset_tile_76 ((gfx_sprite_t*)tileset_tiles_data[76])
+#define tileset_tile_77 ((gfx_sprite_t*)tileset_tiles_data[77])
+#define tileset_tile_78 ((gfx_sprite_t*)tileset_tiles_data[78])
+#define tileset_tile_79 ((gfx_sprite_t*)tileset_tiles_data[79])
+#define tileset_tile_80 ((gfx_sprite_t*)tileset_tiles_data[80])
+#define tileset_tile_81 ((gfx_sprite_t*)tileset_tiles_data[81])
+#define tileset_tile_82 ((gfx_sprite_t*)tileset_tiles_data[82])
+#define tileset_tile_83 ((gfx_sprite_t*)tileset_tiles_data[83])
+#define tileset_tile_84 ((gfx_sprite_t*)tileset_tiles_data[84])
+#define tileset_tile_85 ((gfx_sprite_t*)tileset_tiles_data[85])
+#define tileset_tile_86 ((gfx_sprite_t*)tileset_tiles_data[86])
+#define tileset_tile_87 ((gfx_sprite_t*)tileset_tiles_data[87])
+#define tileset_tile_88 ((gfx_sprite_t*)tileset_tiles_data[88])
+#define tileset_tile_89 ((gfx_sprite_t*)tileset_tiles_data[89])
+#define tileset_tile_90 ((gfx_sprite_t*)tileset_tiles_data[90])
+#define tileset_tile_91 ((gfx_sprite_t*)tileset_tiles_data[91])
+#define tileset_tile_92 ((gfx_sprite_t*)tileset_tiles_data[92])
+#define tileset_tile_93 ((gfx_sprite_t*)tileset_tiles_data[93])
+#define tileset_tile_94 ((gfx_sprite_t*)tileset_tiles_data[94])
+#define tileset_tile_95 ((gfx_sprite_t*)tileset_tiles_data[95])
+#define tileset_tile_96 ((gfx_sprite_t*)tileset_tiles_data[96])
+#define tileset_tile_97 ((gfx_sprite_t*)tileset_tiles_data[97])
+#define tileset_tile_98 ((gfx_sprite_t*)tileset_tiles_data[98])
+#define tileset_tile_99 ((gfx_sprite_t*)tileset_tiles_data[99])
+#define tileset_tile_100 ((gfx_sprite_t*)tileset_tiles_data[100])
+#define tileset_tile_101 ((gfx_sprite_t*)tileset_tiles_data[101])
+#define tileset_tile_102 ((gfx_sprite_t*)tileset_tiles_data[102])
+#define tileset_tile_103 ((gfx_sprite_t*)tileset_tiles_data[103])
+#define tileset_tile_104 ((gfx_sprite_t*)tileset_tiles_data[104])
+#define tileset_tile_105 ((gfx_sprite_t*)tileset_tiles_data[105])
+#define tileset_tile_106 ((gfx_sprite_t*)tileset_tiles_data[106])
+#define tileset_tile_107 ((gfx_sprite_t*)tileset_tiles_data[107])
+#define tileset_tile_108 ((gfx_sprite_t*)tileset_tiles_data[108])
+#define tileset_tile_109 ((gfx_sprite_t*)tileset_tiles_data[109])
+#define tileset_tile_110 ((gfx_sprite_t*)tileset_tiles_data[110])
+#define tileset_tile_111 ((gfx_sprite_t*)tileset_tiles_data[111])
+#define tileset_tile_112 ((gfx_sprite_t*)tileset_tiles_data[112])
+#define tileset_tile_113 ((gfx_sprite_t*)tileset_tiles_data[113])
+#define tileset_tile_114 ((gfx_sprite_t*)tileset_tiles_data[114])
+#define tileset_tile_115 ((gfx_sprite_t*)tileset_tiles_data[115])
+#define tileset_tile_116 ((gfx_sprite_t*)tileset_tiles_data[116])
+#define tileset_tile_117 ((gfx_sprite_t*)tileset_tiles_data[117])
+#define tileset_tile_118 ((gfx_sprite_t*)tileset_tiles_data[118])
+#define tileset_tile_119 ((gfx_sprite_t*)tileset_tiles_data[119])
+#define tileset_tile_120 ((gfx_sprite_t*)tileset_tiles_data[120])
+#define tileset_tile_121 ((gfx_sprite_t*)tileset_tiles_data[121])
+#define tileset_tile_122 ((gfx_sprite_t*)tileset_tiles_data[122])
+#define tileset_tile_123 ((gfx_sprite_t*)tileset_tiles_data[123])
+#define tileset_tile_124 ((gfx_sprite_t*)tileset_tiles_data[124])
+#define tileset_tile_125 ((gfx_sprite_t*)tileset_tiles_data[125])
+#define tileset_tile_126 ((gfx_sprite_t*)tileset_tiles_data[126])
+#define tileset_tile_127 ((gfx_sprite_t*)tileset_tiles_data[127])
+#define sizeof_tiles_gfx_pal 152
+#define tiles_gfx_pal ((uint16_t*)var_gfx[1])
+bool var_gfx_init(void);
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c index caaf863..ffa2988 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/main.c @@ -1,106 +1,106 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <graphx.h> - -/* Include the graphics */ -#include "gfx/tiles_gfx.h" -#include "gfx/var_gfx.h" - -/* Include the external map data */ -extern uint8_t tilemap_map[]; - -/* Tilemap defines */ -#define TILE_WIDTH 16 -#define TILE_HEIGHT 16 - -#define TILEMAP_WIDTH 32 -#define TILEMAP_HEIGHT 25 - -#define TILEMAP_DRAW_WIDTH 20 -#define TILEMAP_DRAW_HEIGHT 14 - -#define Y_OFFSET 16 -#define X_OFFSET 0 - -void main(void) { - sk_key_t key; - unsigned int x_offset = 0; - unsigned int y_offset = 0; - gfx_tilemap_t tilemap; - - /* Initialize the graphics */ - var_gfx_init(); - - /* Initialize the tilemap structure */ - tilemap.map = tilemap_map; - tilemap.tiles = tileset_tiles; - tilemap.type_width = gfx_tile_16_pixel; - tilemap.type_height = gfx_tile_16_pixel; - tilemap.tile_height = TILE_HEIGHT; - tilemap.tile_width = TILE_WIDTH; - tilemap.draw_height = TILEMAP_DRAW_HEIGHT; - tilemap.draw_width = TILEMAP_DRAW_WIDTH; - tilemap.height = TILEMAP_HEIGHT; - tilemap.width = TILEMAP_WIDTH; - tilemap.y_loc = Y_OFFSET; - tilemap.x_loc = X_OFFSET; - - /* Initialize the 8bpp graphics */ - gfx_Begin(); - - /* Set up the palette */ - gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0); - gfx_SetColor(gfx_white); - - /* Draw to buffer to avoid tearing */ - gfx_SetDrawBuffer(); - - /* Set monospace font with width of 8 */ - gfx_SetMonospaceFont(8); - - /* Wait for the enter key to quit */ - while ((key = os_GetCSC()) != sk_Enter) { - - /* Draw tilemap and coords */ - gfx_Tilemap(&tilemap, x_offset, y_offset); - gfx_FillRectangle(0, 0, 320, 16); - gfx_PrintStringXY("x offset:", 48, 4); - gfx_PrintUInt(x_offset, 4); - gfx_PrintString(" y offset:"); - gfx_PrintUInt(y_offset, 4); - - /* Do something based on the keypress */ - switch (key) { - case sk_Down: - if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT)) - y_offset += TILE_HEIGHT; - break; - case sk_Left: - if (x_offset) - x_offset -= TILE_WIDTH; - break; - case sk_Right: - if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH)) - x_offset += TILE_WIDTH; - break; - case sk_Up: - if (y_offset) - y_offset -= TILE_HEIGHT; - break; - default: - break; - } - gfx_SwapDraw(); - } - - /* Close the graphics and return to the OS */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+#include "gfx/var_gfx.h"
+
+/* Include the external map data */
+extern uint8_t tilemap_map[];
+
+/* Tilemap defines */
+#define TILE_WIDTH 16
+#define TILE_HEIGHT 16
+
+#define TILEMAP_WIDTH 32
+#define TILEMAP_HEIGHT 25
+
+#define TILEMAP_DRAW_WIDTH 20
+#define TILEMAP_DRAW_HEIGHT 14
+
+#define Y_OFFSET 16
+#define X_OFFSET 0
+
+void main(void) {
+ sk_key_t key;
+ unsigned int x_offset = 0;
+ unsigned int y_offset = 0;
+ gfx_tilemap_t tilemap;
+
+ /* Initialize the graphics */
+ var_gfx_init();
+
+ /* Initialize the tilemap structure */
+ tilemap.map = tilemap_map;
+ tilemap.tiles = tileset_tiles;
+ tilemap.type_width = gfx_tile_16_pixel;
+ tilemap.type_height = gfx_tile_16_pixel;
+ tilemap.tile_height = TILE_HEIGHT;
+ tilemap.tile_width = TILE_WIDTH;
+ tilemap.draw_height = TILEMAP_DRAW_HEIGHT;
+ tilemap.draw_width = TILEMAP_DRAW_WIDTH;
+ tilemap.height = TILEMAP_HEIGHT;
+ tilemap.width = TILEMAP_WIDTH;
+ tilemap.y_loc = Y_OFFSET;
+ tilemap.x_loc = X_OFFSET;
+
+ /* Initialize the 8bpp graphics */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_SetColor(gfx_white);
+
+ /* Draw to buffer to avoid tearing */
+ gfx_SetDrawBuffer();
+
+ /* Set monospace font with width of 8 */
+ gfx_SetMonospaceFont(8);
+
+ /* Wait for the enter key to quit */
+ while ((key = os_GetCSC()) != sk_Enter) {
+
+ /* Draw tilemap and coords */
+ gfx_Tilemap(&tilemap, x_offset, y_offset);
+ gfx_FillRectangle(0, 0, 320, 16);
+ gfx_PrintStringXY("x offset:", 48, 4);
+ gfx_PrintUInt(x_offset, 4);
+ gfx_PrintString(" y offset:");
+ gfx_PrintUInt(y_offset, 4);
+
+ /* Do something based on the keypress */
+ switch (key) {
+ case sk_Down:
+ if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT))
+ y_offset += TILE_HEIGHT;
+ break;
+ case sk_Left:
+ if (x_offset)
+ x_offset -= TILE_WIDTH;
+ break;
+ case sk_Right:
+ if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH))
+ x_offset += TILE_WIDTH;
+ break;
+ case sk_Up:
+ if (y_offset)
+ y_offset -= TILE_HEIGHT;
+ break;
+ default:
+ break;
+ }
+ gfx_SwapDraw();
+ }
+
+ /* Close the graphics and return to the OS */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c index d443c6c..7fbe1a2 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_appvar/src/tilemapdata.c @@ -1,30 +1,30 @@ -#include <stdint.h> - -/* This is the data that is displayed with the tilemap */ -uint8_t tilemap_map[] = { - 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22, - 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32, - 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32, - 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32, - 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42, -}; +#include <stdint.h>
+
+/* This is the data that is displayed with the tilemap */
+uint8_t tilemap_map[] = {
+ 0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,0x14,0x15,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x22,
+ 0x30,0x54,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,0x04,0x05,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x50,0x51,0x51,0x52,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x10,0x00,0x00,0x01,0x00,0x01,0x00,0x40,0x42,0x04,0x05,0x14,0x15,0x00,0x60,0x61,0x61,0x62,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x70,0x71,0x71,0x72,0x00,0x00,0x00,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x00,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x10,0x10,0x10,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x10,0x10,0x10,0x10,0x10,0x01,0x00,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x53,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x20,0x22,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x00,0x00,0x01,0x00,0x01,0x10,0x10,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x01,0x00,0x10,0x10,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x10,0x10,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x30,0x32,0x14,0x15,0x04,0x05,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x01,0x10,0x10,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x30,0x32,0x04,0x05,0x14,0x15,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x30,0x32,
+ 0x30,0x32,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x30,0x32,0x14,0x15,0x24,0x25,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x32,
+ 0x30,0x44,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,0x04,0x05,0x20,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x43,0x32,
+ 0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,0x14,0x15,0x40,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x42,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json index 085435f..7f99ced 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/autotester.json @@ -1,43 +1,43 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "delay|100", - "key|right", - "key|right", - "key|down", - "key|down", - "hashWait|2", - "key|enter", - "hashWait|3" - ], - "hashes": { - "1": { - "description": "Initial sprite map state (top left)", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "EEED1F0B" ] - }, - "2": { - "description": "Moving a bit to the bottom right", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "BBB0544" ] - }, - "3": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "delay|100",
+ "key|right",
+ "key|right",
+ "key|down",
+ "key|down",
+ "hashWait|2",
+ "key|enter",
+ "hashWait|3"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Initial sprite map state (top left)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "EEED1F0B" ]
+ },
+ "2": {
+ "description": "Moving a bit to the bottom right",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "BBB0544" ]
+ },
+ "3": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md index d38a92c..f680b54 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/readme.md @@ -1,10 +1,10 @@ -### GraphX Simple Compressed Tilemap Demo - -An example of tilemaping using a sequence of tiles and the keypad, except with compressed tiles. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### GraphX Simple Compressed Tilemap Demo
+
+An example of tilemaping using a sequence of tiles and the keypad, except with compressed tiles.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini index 3e0f83e..743532f 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/convpng.ini @@ -1,6 +1,6 @@ -#GroupC : tiles_gfx -#TransparentColor : 255,201,14,255 -#Compression : zx7 -#Tilemap : 16,16,true -#PNGImages : - tileset +#GroupC : tiles_gfx
+#TransparentColor : 255,201,14,255
+#Compression : zx7
+#Tilemap : 16,16,true
+#PNGImages :
+ tileset
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c index 2d1e613..916813e 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.c @@ -1,82 +1,82 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - -uint16_t tiles_gfx_pal[76] = { - 0x7F22, // 00 :: rgb(255,201,14) - 0xC30C, // 01 :: rgb(132,198,99) - 0x212D, // 02 :: rgb(65,72,106) - 0x1D40, // 03 :: rgb(56,80,0) - 0x1E46, // 04 :: rgb(57,146,49) - 0xDBD1, // 05 :: rgb(184,248,136) - 0xEB7B, // 06 :: rgb(216,224,224) - 0x318F, // 07 :: rgb(99,96,123) - 0x7771, // 08 :: rgb(239,219,140) - 0x650A, // 09 :: rgb(206,64,81) - 0x5F3C, // 10 :: rgb(189,203,231) - 0x6F9D, // 11 :: rgb(222,227,239) - 0x25D5, // 12 :: rgb(73,113,173) - 0x52D8, // 13 :: rgb(165,178,198) - 0xD353, // 14 :: rgb(168,216,160) - 0x6DAC, // 15 :: rgb(222,105,98) - 0x4211, // 16 :: rgb(132,130,140) - 0x3AFE, // 17 :: rgb(115,186,247) - 0x764E, // 18 :: rgb(239,146,114) - 0xE319, // 19 :: rgb(199,199,207) - 0x5A0D, // 20 :: rgb(184,128,111) - 0xE6F0, // 21 :: rgb(208,192,128) - 0x7EF0, // 22 :: rgb(255,186,132) - 0x4EDB, // 23 :: rgb(156,178,222) - 0x6EAE, // 24 :: rgb(222,170,114) - 0x49AD, // 25 :: rgb(148,105,106) - 0x32BD, // 26 :: rgb(99,170,239) - 0xFFFF, // 27 :: rgb(255,255,255) - 0x0E8D, // 28 :: rgb(23,162,107) - 0x666A, // 29 :: rgb(206,154,81) - 0x6ACD, // 30 :: rgb(214,178,106) - 0x22D1, // 31 :: rgb(65,178,140) - 0x18C2, // 32 :: rgb(48,48,14) - 0x5A30, // 33 :: rgb(182,138,130) - 0xB27A, // 34 :: rgb(96,159,215) - 0x7BAE, // 35 :: rgb(245,233,112) - 0x6E2C, // 36 :: rgb(224,136,95) - 0x2A37, // 37 :: rgb(79,136,192) - 0x39A6, // 38 :: rgb(112,104,47) - 0x0420, // 39 :: rgb(8,8,4) - 0xEAF3, // 40 :: rgb(214,191,154) - 0x2CE8, // 41 :: rgb(89,56,65) - 0xEF12, // 42 :: rgb(224,200,144) - 0xDEAD, // 43 :: rgb(191,175,110) - 0x5A51, // 44 :: rgb(184,144,136) - 0x6F30, // 45 :: rgb(222,203,132) - 0xCB3E, // 46 :: rgb(151,207,247) - 0xE35C, // 47 :: rgb(199,215,231) - 0x7399, // 48 :: rgb(231,227,206) - 0x7794, // 49 :: rgb(239,227,165) - 0x7AD0, // 50 :: rgb(247,178,132) - 0x3D29, // 51 :: rgb(123,73,73) - 0x32BC, // 52 :: rgb(96,168,232) - 0x3DF0, // 53 :: rgb(123,123,132) - 0x7337, // 54 :: rgb(228,201,192) - 0x1CC5, // 55 :: rgb(56,48,40) - 0x252B, // 56 :: rgb(71,71,87) - 0x1A05, // 57 :: rgb(46,130,39) - 0xE6AD, // 58 :: rgb(208,176,103) - 0xCF77, // 59 :: rgb(160,224,192) - 0x356B, // 60 :: rgb(107,88,89) - 0xCB58, // 61 :: rgb(144,216,200) - 0xC32A, // 62 :: rgb(135,207,79) - 0x2505, // 63 :: rgb(78,65,39) - 0x6BBF, // 64 :: rgb(214,235,255) - 0x5085, // 65 :: rgb(167,31,39) - 0xAD4D, // 66 :: rgb(87,87,110) - 0xDB1B, // 67 :: rgb(184,200,224) - 0x25D4, // 68 :: rgb(71,112,168) - 0x4E23, // 69 :: rgb(155,139,24) - 0x6149, // 70 :: rgb(199,79,71) - 0x91CA, // 71 :: rgb(37,117,83) - 0x2DD7, // 72 :: rgb(89,113,189) - 0xC76C, // 73 :: rgb(142,221,101) - 0xFB33, // 74 :: rgb(247,207,159) - 0xBB13, // 75 :: rgb(112,199,159) +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint16_t tiles_gfx_pal[76] = {
+ 0x7F22, // 00 :: rgb(255,201,14)
+ 0xC30C, // 01 :: rgb(132,198,99)
+ 0x212D, // 02 :: rgb(65,72,106)
+ 0x1D40, // 03 :: rgb(56,80,0)
+ 0x1E46, // 04 :: rgb(57,146,49)
+ 0xDBD1, // 05 :: rgb(184,248,136)
+ 0xEB7B, // 06 :: rgb(216,224,224)
+ 0x318F, // 07 :: rgb(99,96,123)
+ 0x7771, // 08 :: rgb(239,219,140)
+ 0x650A, // 09 :: rgb(206,64,81)
+ 0x5F3C, // 10 :: rgb(189,203,231)
+ 0x6F9D, // 11 :: rgb(222,227,239)
+ 0x25D5, // 12 :: rgb(73,113,173)
+ 0x52D8, // 13 :: rgb(165,178,198)
+ 0xD353, // 14 :: rgb(168,216,160)
+ 0x6DAC, // 15 :: rgb(222,105,98)
+ 0x4211, // 16 :: rgb(132,130,140)
+ 0x3AFE, // 17 :: rgb(115,186,247)
+ 0x764E, // 18 :: rgb(239,146,114)
+ 0xE319, // 19 :: rgb(199,199,207)
+ 0x5A0D, // 20 :: rgb(184,128,111)
+ 0xE6F0, // 21 :: rgb(208,192,128)
+ 0x7EF0, // 22 :: rgb(255,186,132)
+ 0x4EDB, // 23 :: rgb(156,178,222)
+ 0x6EAE, // 24 :: rgb(222,170,114)
+ 0x49AD, // 25 :: rgb(148,105,106)
+ 0x32BD, // 26 :: rgb(99,170,239)
+ 0xFFFF, // 27 :: rgb(255,255,255)
+ 0x0E8D, // 28 :: rgb(23,162,107)
+ 0x666A, // 29 :: rgb(206,154,81)
+ 0x6ACD, // 30 :: rgb(214,178,106)
+ 0x22D1, // 31 :: rgb(65,178,140)
+ 0x18C2, // 32 :: rgb(48,48,14)
+ 0x5A30, // 33 :: rgb(182,138,130)
+ 0xB27A, // 34 :: rgb(96,159,215)
+ 0x7BAE, // 35 :: rgb(245,233,112)
+ 0x6E2C, // 36 :: rgb(224,136,95)
+ 0x2A37, // 37 :: rgb(79,136,192)
+ 0x39A6, // 38 :: rgb(112,104,47)
+ 0x0420, // 39 :: rgb(8,8,4)
+ 0xEAF3, // 40 :: rgb(214,191,154)
+ 0x2CE8, // 41 :: rgb(89,56,65)
+ 0xEF12, // 42 :: rgb(224,200,144)
+ 0xDEAD, // 43 :: rgb(191,175,110)
+ 0x5A51, // 44 :: rgb(184,144,136)
+ 0x6F30, // 45 :: rgb(222,203,132)
+ 0xCB3E, // 46 :: rgb(151,207,247)
+ 0xE35C, // 47 :: rgb(199,215,231)
+ 0x7399, // 48 :: rgb(231,227,206)
+ 0x7794, // 49 :: rgb(239,227,165)
+ 0x7AD0, // 50 :: rgb(247,178,132)
+ 0x3D29, // 51 :: rgb(123,73,73)
+ 0x32BC, // 52 :: rgb(96,168,232)
+ 0x3DF0, // 53 :: rgb(123,123,132)
+ 0x7337, // 54 :: rgb(228,201,192)
+ 0x1CC5, // 55 :: rgb(56,48,40)
+ 0x252B, // 56 :: rgb(71,71,87)
+ 0x1A05, // 57 :: rgb(46,130,39)
+ 0xE6AD, // 58 :: rgb(208,176,103)
+ 0xCF77, // 59 :: rgb(160,224,192)
+ 0x356B, // 60 :: rgb(107,88,89)
+ 0xCB58, // 61 :: rgb(144,216,200)
+ 0xC32A, // 62 :: rgb(135,207,79)
+ 0x2505, // 63 :: rgb(78,65,39)
+ 0x6BBF, // 64 :: rgb(214,235,255)
+ 0x5085, // 65 :: rgb(167,31,39)
+ 0xAD4D, // 66 :: rgb(87,87,110)
+ 0xDB1B, // 67 :: rgb(184,200,224)
+ 0x25D4, // 68 :: rgb(71,112,168)
+ 0x4E23, // 69 :: rgb(155,139,24)
+ 0x6149, // 70 :: rgb(199,79,71)
+ 0x91CA, // 71 :: rgb(37,117,83)
+ 0x2DD7, // 72 :: rgb(89,113,189)
+ 0xC76C, // 73 :: rgb(142,221,101)
+ 0xFB33, // 74 :: rgb(247,207,159)
+ 0xBB13, // 75 :: rgb(112,199,159)
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h index a03d932..841afc5 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tiles_gfx.h @@ -1,142 +1,142 @@ -// convpng -// this file contains all the graphics sources for easy inclusion in a project -#ifndef __tiles_gfx__ -#define __tiles_gfx__ -#include <stdint.h> - -#define tiles_gfx_transparent_color_index 0 - -extern uint8_t tileset_tile_0_compressed[]; -extern uint8_t tileset_tile_1_compressed[]; -extern uint8_t tileset_tile_2_compressed[]; -extern uint8_t tileset_tile_3_compressed[]; -extern uint8_t tileset_tile_4_compressed[]; -extern uint8_t tileset_tile_5_compressed[]; -extern uint8_t tileset_tile_6_compressed[]; -extern uint8_t tileset_tile_7_compressed[]; -extern uint8_t tileset_tile_8_compressed[]; -extern uint8_t tileset_tile_9_compressed[]; -extern uint8_t tileset_tile_10_compressed[]; -extern uint8_t tileset_tile_11_compressed[]; -extern uint8_t tileset_tile_12_compressed[]; -extern uint8_t tileset_tile_13_compressed[]; -extern uint8_t tileset_tile_14_compressed[]; -extern uint8_t tileset_tile_15_compressed[]; -extern uint8_t tileset_tile_16_compressed[]; -extern uint8_t tileset_tile_17_compressed[]; -extern uint8_t tileset_tile_18_compressed[]; -extern uint8_t tileset_tile_19_compressed[]; -extern uint8_t tileset_tile_20_compressed[]; -extern uint8_t tileset_tile_21_compressed[]; -extern uint8_t tileset_tile_22_compressed[]; -extern uint8_t tileset_tile_23_compressed[]; -extern uint8_t tileset_tile_24_compressed[]; -extern uint8_t tileset_tile_25_compressed[]; -extern uint8_t tileset_tile_26_compressed[]; -extern uint8_t tileset_tile_27_compressed[]; -extern uint8_t tileset_tile_28_compressed[]; -extern uint8_t tileset_tile_29_compressed[]; -extern uint8_t tileset_tile_30_compressed[]; -extern uint8_t tileset_tile_31_compressed[]; -extern uint8_t tileset_tile_32_compressed[]; -extern uint8_t tileset_tile_33_compressed[]; -extern uint8_t tileset_tile_34_compressed[]; -extern uint8_t tileset_tile_35_compressed[]; -extern uint8_t tileset_tile_36_compressed[]; -extern uint8_t tileset_tile_37_compressed[]; -extern uint8_t tileset_tile_38_compressed[]; -extern uint8_t tileset_tile_39_compressed[]; -extern uint8_t tileset_tile_40_compressed[]; -extern uint8_t tileset_tile_41_compressed[]; -extern uint8_t tileset_tile_42_compressed[]; -extern uint8_t tileset_tile_43_compressed[]; -extern uint8_t tileset_tile_44_compressed[]; -extern uint8_t tileset_tile_45_compressed[]; -extern uint8_t tileset_tile_46_compressed[]; -extern uint8_t tileset_tile_47_compressed[]; -extern uint8_t tileset_tile_48_compressed[]; -extern uint8_t tileset_tile_49_compressed[]; -extern uint8_t tileset_tile_50_compressed[]; -extern uint8_t tileset_tile_51_compressed[]; -extern uint8_t tileset_tile_52_compressed[]; -extern uint8_t tileset_tile_53_compressed[]; -extern uint8_t tileset_tile_54_compressed[]; -extern uint8_t tileset_tile_55_compressed[]; -extern uint8_t tileset_tile_56_compressed[]; -extern uint8_t tileset_tile_57_compressed[]; -extern uint8_t tileset_tile_58_compressed[]; -extern uint8_t tileset_tile_59_compressed[]; -extern uint8_t tileset_tile_60_compressed[]; -extern uint8_t tileset_tile_61_compressed[]; -extern uint8_t tileset_tile_62_compressed[]; -extern uint8_t tileset_tile_63_compressed[]; -extern uint8_t tileset_tile_64_compressed[]; -extern uint8_t tileset_tile_65_compressed[]; -extern uint8_t tileset_tile_66_compressed[]; -extern uint8_t tileset_tile_67_compressed[]; -extern uint8_t tileset_tile_68_compressed[]; -extern uint8_t tileset_tile_69_compressed[]; -extern uint8_t tileset_tile_70_compressed[]; -extern uint8_t tileset_tile_71_compressed[]; -extern uint8_t tileset_tile_72_compressed[]; -extern uint8_t tileset_tile_73_compressed[]; -extern uint8_t tileset_tile_74_compressed[]; -extern uint8_t tileset_tile_75_compressed[]; -extern uint8_t tileset_tile_76_compressed[]; -extern uint8_t tileset_tile_77_compressed[]; -extern uint8_t tileset_tile_78_compressed[]; -extern uint8_t tileset_tile_79_compressed[]; -extern uint8_t tileset_tile_80_compressed[]; -extern uint8_t tileset_tile_81_compressed[]; -extern uint8_t tileset_tile_82_compressed[]; -extern uint8_t tileset_tile_83_compressed[]; -extern uint8_t tileset_tile_84_compressed[]; -extern uint8_t tileset_tile_85_compressed[]; -extern uint8_t tileset_tile_86_compressed[]; -extern uint8_t tileset_tile_87_compressed[]; -extern uint8_t tileset_tile_88_compressed[]; -extern uint8_t tileset_tile_89_compressed[]; -extern uint8_t tileset_tile_90_compressed[]; -extern uint8_t tileset_tile_91_compressed[]; -extern uint8_t tileset_tile_92_compressed[]; -extern uint8_t tileset_tile_93_compressed[]; -extern uint8_t tileset_tile_94_compressed[]; -extern uint8_t tileset_tile_95_compressed[]; -extern uint8_t tileset_tile_96_compressed[]; -extern uint8_t tileset_tile_97_compressed[]; -extern uint8_t tileset_tile_98_compressed[]; -extern uint8_t tileset_tile_99_compressed[]; -extern uint8_t tileset_tile_100_compressed[]; -extern uint8_t tileset_tile_101_compressed[]; -extern uint8_t tileset_tile_102_compressed[]; -extern uint8_t tileset_tile_103_compressed[]; -extern uint8_t tileset_tile_104_compressed[]; -extern uint8_t tileset_tile_105_compressed[]; -extern uint8_t tileset_tile_106_compressed[]; -extern uint8_t tileset_tile_107_compressed[]; -extern uint8_t tileset_tile_108_compressed[]; -extern uint8_t tileset_tile_109_compressed[]; -extern uint8_t tileset_tile_110_compressed[]; -extern uint8_t tileset_tile_111_compressed[]; -extern uint8_t tileset_tile_112_compressed[]; -extern uint8_t tileset_tile_113_compressed[]; -extern uint8_t tileset_tile_114_compressed[]; -extern uint8_t tileset_tile_115_compressed[]; -extern uint8_t tileset_tile_116_compressed[]; -extern uint8_t tileset_tile_117_compressed[]; -extern uint8_t tileset_tile_118_compressed[]; -extern uint8_t tileset_tile_119_compressed[]; -extern uint8_t tileset_tile_120_compressed[]; -extern uint8_t tileset_tile_121_compressed[]; -extern uint8_t tileset_tile_122_compressed[]; -extern uint8_t tileset_tile_123_compressed[]; -extern uint8_t tileset_tile_124_compressed[]; -extern uint8_t tileset_tile_125_compressed[]; -extern uint8_t tileset_tile_126_compressed[]; -extern uint8_t tileset_tile_127_compressed[]; -#define tileset_tiles_num 128 -extern uint8_t *tileset_tiles_compressed[128]; -#define sizeof_tiles_gfx_pal 152 -extern uint16_t tiles_gfx_pal[76]; - -#endif +// convpng
+// this file contains all the graphics sources for easy inclusion in a project
+#ifndef __tiles_gfx__
+#define __tiles_gfx__
+#include <stdint.h>
+
+#define tiles_gfx_transparent_color_index 0
+
+extern uint8_t tileset_tile_0_compressed[];
+extern uint8_t tileset_tile_1_compressed[];
+extern uint8_t tileset_tile_2_compressed[];
+extern uint8_t tileset_tile_3_compressed[];
+extern uint8_t tileset_tile_4_compressed[];
+extern uint8_t tileset_tile_5_compressed[];
+extern uint8_t tileset_tile_6_compressed[];
+extern uint8_t tileset_tile_7_compressed[];
+extern uint8_t tileset_tile_8_compressed[];
+extern uint8_t tileset_tile_9_compressed[];
+extern uint8_t tileset_tile_10_compressed[];
+extern uint8_t tileset_tile_11_compressed[];
+extern uint8_t tileset_tile_12_compressed[];
+extern uint8_t tileset_tile_13_compressed[];
+extern uint8_t tileset_tile_14_compressed[];
+extern uint8_t tileset_tile_15_compressed[];
+extern uint8_t tileset_tile_16_compressed[];
+extern uint8_t tileset_tile_17_compressed[];
+extern uint8_t tileset_tile_18_compressed[];
+extern uint8_t tileset_tile_19_compressed[];
+extern uint8_t tileset_tile_20_compressed[];
+extern uint8_t tileset_tile_21_compressed[];
+extern uint8_t tileset_tile_22_compressed[];
+extern uint8_t tileset_tile_23_compressed[];
+extern uint8_t tileset_tile_24_compressed[];
+extern uint8_t tileset_tile_25_compressed[];
+extern uint8_t tileset_tile_26_compressed[];
+extern uint8_t tileset_tile_27_compressed[];
+extern uint8_t tileset_tile_28_compressed[];
+extern uint8_t tileset_tile_29_compressed[];
+extern uint8_t tileset_tile_30_compressed[];
+extern uint8_t tileset_tile_31_compressed[];
+extern uint8_t tileset_tile_32_compressed[];
+extern uint8_t tileset_tile_33_compressed[];
+extern uint8_t tileset_tile_34_compressed[];
+extern uint8_t tileset_tile_35_compressed[];
+extern uint8_t tileset_tile_36_compressed[];
+extern uint8_t tileset_tile_37_compressed[];
+extern uint8_t tileset_tile_38_compressed[];
+extern uint8_t tileset_tile_39_compressed[];
+extern uint8_t tileset_tile_40_compressed[];
+extern uint8_t tileset_tile_41_compressed[];
+extern uint8_t tileset_tile_42_compressed[];
+extern uint8_t tileset_tile_43_compressed[];
+extern uint8_t tileset_tile_44_compressed[];
+extern uint8_t tileset_tile_45_compressed[];
+extern uint8_t tileset_tile_46_compressed[];
+extern uint8_t tileset_tile_47_compressed[];
+extern uint8_t tileset_tile_48_compressed[];
+extern uint8_t tileset_tile_49_compressed[];
+extern uint8_t tileset_tile_50_compressed[];
+extern uint8_t tileset_tile_51_compressed[];
+extern uint8_t tileset_tile_52_compressed[];
+extern uint8_t tileset_tile_53_compressed[];
+extern uint8_t tileset_tile_54_compressed[];
+extern uint8_t tileset_tile_55_compressed[];
+extern uint8_t tileset_tile_56_compressed[];
+extern uint8_t tileset_tile_57_compressed[];
+extern uint8_t tileset_tile_58_compressed[];
+extern uint8_t tileset_tile_59_compressed[];
+extern uint8_t tileset_tile_60_compressed[];
+extern uint8_t tileset_tile_61_compressed[];
+extern uint8_t tileset_tile_62_compressed[];
+extern uint8_t tileset_tile_63_compressed[];
+extern uint8_t tileset_tile_64_compressed[];
+extern uint8_t tileset_tile_65_compressed[];
+extern uint8_t tileset_tile_66_compressed[];
+extern uint8_t tileset_tile_67_compressed[];
+extern uint8_t tileset_tile_68_compressed[];
+extern uint8_t tileset_tile_69_compressed[];
+extern uint8_t tileset_tile_70_compressed[];
+extern uint8_t tileset_tile_71_compressed[];
+extern uint8_t tileset_tile_72_compressed[];
+extern uint8_t tileset_tile_73_compressed[];
+extern uint8_t tileset_tile_74_compressed[];
+extern uint8_t tileset_tile_75_compressed[];
+extern uint8_t tileset_tile_76_compressed[];
+extern uint8_t tileset_tile_77_compressed[];
+extern uint8_t tileset_tile_78_compressed[];
+extern uint8_t tileset_tile_79_compressed[];
+extern uint8_t tileset_tile_80_compressed[];
+extern uint8_t tileset_tile_81_compressed[];
+extern uint8_t tileset_tile_82_compressed[];
+extern uint8_t tileset_tile_83_compressed[];
+extern uint8_t tileset_tile_84_compressed[];
+extern uint8_t tileset_tile_85_compressed[];
+extern uint8_t tileset_tile_86_compressed[];
+extern uint8_t tileset_tile_87_compressed[];
+extern uint8_t tileset_tile_88_compressed[];
+extern uint8_t tileset_tile_89_compressed[];
+extern uint8_t tileset_tile_90_compressed[];
+extern uint8_t tileset_tile_91_compressed[];
+extern uint8_t tileset_tile_92_compressed[];
+extern uint8_t tileset_tile_93_compressed[];
+extern uint8_t tileset_tile_94_compressed[];
+extern uint8_t tileset_tile_95_compressed[];
+extern uint8_t tileset_tile_96_compressed[];
+extern uint8_t tileset_tile_97_compressed[];
+extern uint8_t tileset_tile_98_compressed[];
+extern uint8_t tileset_tile_99_compressed[];
+extern uint8_t tileset_tile_100_compressed[];
+extern uint8_t tileset_tile_101_compressed[];
+extern uint8_t tileset_tile_102_compressed[];
+extern uint8_t tileset_tile_103_compressed[];
+extern uint8_t tileset_tile_104_compressed[];
+extern uint8_t tileset_tile_105_compressed[];
+extern uint8_t tileset_tile_106_compressed[];
+extern uint8_t tileset_tile_107_compressed[];
+extern uint8_t tileset_tile_108_compressed[];
+extern uint8_t tileset_tile_109_compressed[];
+extern uint8_t tileset_tile_110_compressed[];
+extern uint8_t tileset_tile_111_compressed[];
+extern uint8_t tileset_tile_112_compressed[];
+extern uint8_t tileset_tile_113_compressed[];
+extern uint8_t tileset_tile_114_compressed[];
+extern uint8_t tileset_tile_115_compressed[];
+extern uint8_t tileset_tile_116_compressed[];
+extern uint8_t tileset_tile_117_compressed[];
+extern uint8_t tileset_tile_118_compressed[];
+extern uint8_t tileset_tile_119_compressed[];
+extern uint8_t tileset_tile_120_compressed[];
+extern uint8_t tileset_tile_121_compressed[];
+extern uint8_t tileset_tile_122_compressed[];
+extern uint8_t tileset_tile_123_compressed[];
+extern uint8_t tileset_tile_124_compressed[];
+extern uint8_t tileset_tile_125_compressed[];
+extern uint8_t tileset_tile_126_compressed[];
+extern uint8_t tileset_tile_127_compressed[];
+#define tileset_tiles_num 128
+extern uint8_t *tileset_tiles_compressed[128];
+#define sizeof_tiles_gfx_pal 152
+extern uint16_t tiles_gfx_pal[76];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c index fcb18d0..591b566 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/gfx/tileset.c @@ -1,726 +1,726 @@ -// convpng -#include <stdint.h> -#include "tiles_gfx.h" - -uint8_t tileset_tile_0_compressed[19] = { - 0x10,0x21,0x10,0x4B,0x84,0x00,0x3D,0x75,0x0C,0xC6,0x02,0xF0,0x1D,0x03,0x18,0x30,0x00,0x00,0x08, -}; -uint8_t tileset_tile_1_compressed[32] = { - 0x10,0x21,0x10,0x4B,0x14,0x00,0x1F,0x75,0x0C,0xC6,0x02,0xF0,0x1D,0x03,0x48,0x00,0x3D,0x8E,0x0C,0xB8,0x02,0xDE,0x1D,0x03,0x05,0xB8,0x00,0x23,0xC8,0x08,0x00,0x04, -}; -uint8_t tileset_tile_2_compressed[30] = { - 0x10,0x20,0x10,0x4B,0xCD,0x00,0x1F,0x1D,0x0C,0x71,0x02,0xB7,0x1D,0x03,0x07,0xE8,0x00,0x3B,0xEB,0x0C,0x02,0x8D,0x1D,0x40,0x3B,0x83,0x64,0x00,0x00,0x80, -}; -uint8_t tileset_tile_3_compressed[20] = { - 0x10,0x20,0x10,0x4B,0x54,0x00,0x47,0x1F,0x5C,0x0C,0x02,0x6F,0x1D,0x03,0x01,0x0B,0x00,0x00,0x00,0x80, -}; -uint8_t tileset_tile_4_compressed[118] = { - 0x10,0x05,0x10,0x4B,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x1C,0x08,0x7B,0x11,0x13,0x3B,0x4B,0x1F,0x10,0x0E,0xBB,0x00,0x12,0xDD,0x0F, - 0x1F,0x04,0xCB,0x0F,0x14,0xD5,0x0F,0x20,0xCC,0x0A,0x32,0x05,0xBB,0x0E,0x08,0xBA,0x0F,0x05,0x5C,0x05,0x0E,0xDE,0x4B,0x05,0x4E,0x05,0x27,0x1C,0x1C,0x0E,0xB7,0x30, - 0x05,0x0F,0x3D,0x1E,0xA2,0x0C,0x01,0xF0,0x0F,0x8B,0x92,0x0F,0x79,0x10,0x79,0x1E,0x0F,0x7E,0x10,0x1D,0x0D,0xFE,0x0E,0x5F,0x60,0xD7,0x10,0x01,0x11,0x76,0x00,0x8F, - 0x18,0xB1,0x73,0x07,0x77,0x0E,0x0F,0x10,0x77,0x20,0x3E,0x35,0x0F,0x07,0x86,0x1F,0x57,0x01,0x00,0x00,0x00,0x80, -}; -uint8_t tileset_tile_5_compressed[119] = { - 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0xF9,0x0D,0x07,0x1C,0x4B,0x2D,0x0C,0xFB,0x00,0x07,0x0E,0x1F,0x0F,0x96,0x0A, - 0xF6,0x04,0x00,0x1F,0x0F,0x05,0x9E,0x2C,0xAB,0x03,0x1E,0x0F,0xAB,0x17,0x0B,0xBB,0x05,0x10,0x77,0x05,0x50,0x0C,0x37,0x46,0x10,0xDC,0x0F,0x2A,0xE6,0x10,0x1C,0x1C, - 0x0F,0x01,0x7C,0x05,0x33,0x11,0xFD,0x20,0x0F,0xC5,0x00,0xDA,0x0F,0x21,0x04,0x7E,0x0E,0x0F,0xD7,0x00,0x01,0x45,0x72,0x0E,0xD6,0x0F,0x1F,0xC4,0x12,0x61,0x0E,0x90, - 0x2F,0x1D,0x0D,0xE1,0x06,0xAD,0x61,0x8F,0x2C,0x1F,0x96,0x2F,0x0E,0x4B,0x96,0x2E,0xA8,0x01,0x98,0x2E,0x0F,0x00,0x01, -}; -uint8_t tileset_tile_6_compressed[65] = { - 0x10,0x20,0x10,0x00,0xF5,0x00,0x03,0x1C,0x0E,0x05,0x8D,0x0F,0x46,0x04,0x91,0x0F,0x03,0x01,0x6D,0x0F,0x04,0x00,0x05,0x13,0x0F,0x68,0x0C,0x01,0xB2,0x0F,0x01,0x01, - 0x36,0x0F,0xE7,0x1E,0x0F,0xEA,0x2C,0x1C,0xE7,0x0E,0x0F,0x5C,0x01,0x11,0xFF,0x0F,0x67,0x07,0x34,0x0E,0x52,0x2F,0x05,0x7B,0x2F,0x86,0x0E,0x1F,0xAE,0x01,0x00,0x00, - 0x01, -}; -uint8_t tileset_tile_7_compressed[65] = { - 0x10,0x20,0x10,0x00,0xB9,0x00,0x03,0x1C,0x0F,0x05,0x8E,0x10,0x23,0x05,0x04,0x88,0x0F,0x01,0x03,0xE7,0x0F,0x04,0x00,0x18,0x0F,0x01,0x68,0x05,0x33,0x04,0xBA,0x0F, - 0x00,0x8B,0x0F,0xB8,0x21,0xAB,0x0F,0x00,0xA9,0x13,0xE5,0x32,0x0E,0xE7,0x0D,0x32,0x97,0x1D,0x0D,0xD1,0x06,0x03,0x51,0x1F,0x95,0x2F,0x2E,0x53,0x01,0x04,0x98,0x00, - 0x02, -}; -uint8_t tileset_tile_8_compressed[68] = { - 0x10,0x1B,0x10,0x00,0x07,0x00,0x00,0x00,0xE7,0x06,0x07,0x76,0x19,0x00,0x0B,0x19,0x98,0x07,0x07,0x23,0x2D,0x23,0x18,0x0B,0x19,0x35,0x07,0xDA,0x0F,0x00,0x19,0x6B, - 0x07,0x28,0xF4,0x0A,0x00,0x19,0xD0,0x07,0x29,0xC5,0x2F,0x88,0x00,0x07,0x14,0x23,0xC4,0x00,0x07,0x3F,0x00,0xA4,0x42,0x14,0xCF,0x09,0xAE,0x07,0x0F,0xD3,0x00,0x19, - 0x40,0x07,0x00,0x20, -}; -uint8_t tileset_tile_9_compressed[53] = { - 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE2,0x0B,0x05,0x07,0x23,0x23,0x18,0xC5,0x0B,0xDC,0x07,0x00,0xF2,0x07,0xF3,0x12,0x00,0xC0,0x07,0xA7, - 0x2F,0x16,0x00,0x23,0x8E,0x00,0x43,0x07,0xCD,0x00,0x19,0x42,0x14,0x1F,0x07,0x73,0x00,0xC0,0x07,0x00,0x20, -}; -uint8_t tileset_tile_10_compressed[53] = { - 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE2,0x0B,0x05,0x07,0x23,0x23,0x18,0xC5,0x0B,0xDC,0x07,0x00,0xF2,0x07,0xF3,0x12,0x00,0xC0,0x07,0xA7, - 0x2F,0x16,0x00,0x23,0x8E,0x00,0x43,0x07,0xCD,0x00,0x19,0x42,0x14,0x1F,0x07,0x73,0x00,0xC0,0x07,0x00,0x20, -}; -uint8_t tileset_tile_11_compressed[67] = { - 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE6,0x0B,0x07,0x05,0x02,0x19,0x23,0x23,0x18,0xCD,0x0B,0x07,0x25,0x0F,0xCC,0x00,0x07,0x02,0x97,0x1A, - 0x00,0x9A,0x07,0x05,0x48,0x2F,0xA2,0x00,0x02,0x23,0x30,0x00,0x14,0x02,0x46,0x07,0xC7,0x00,0xFA,0x0F,0x3F,0x43,0x14,0xEE,0x08,0x07,0x7B,0x0F,0x00,0x97,0x07,0x4F, - 0x80,0x00,0x40, -}; -uint8_t tileset_tile_12_compressed[46] = { - 0x10,0x20,0x10,0x00,0x21,0x49,0x00,0x09,0x07,0xA6,0x00,0x0E,0x55,0x16,0x00,0xA7,0x04,0x09,0x0E,0x8B,0x0F,0xA4,0x08,0x12,0x53,0x0F,0x09,0x08,0x45,0x12,0x64,0x0F, - 0x06,0x09,0x12,0x57,0x0F,0x05,0x19,0x0F,0x71,0x3B,0x70,0x0F,0x00,0x08, -}; -uint8_t tileset_tile_13_compressed[47] = { - 0x10,0x22,0x10,0x00,0x57,0x00,0x07,0x00,0x14,0x0C,0x16,0x39,0x09,0x16,0x00,0xDC,0x0D,0x12,0x00,0x4E,0x0F,0x0D,0x09,0x8A,0x0F,0xB8,0x1C,0xAB,0x0F,0x0E,0x8A,0x0F, - 0x11,0x07,0x0F,0x09,0x7C,0x0F,0x0E,0x6A,0x0F,0x09,0x07,0xE8,0x0F,0x00,0x04, -}; -uint8_t tileset_tile_14_compressed[48] = { - 0x10,0x2D,0x10,0x07,0x00,0x00,0x12,0x00,0x16,0xC9,0x00,0x09,0x16,0xE7,0x12,0x0F,0x7C,0x12,0x00,0x11,0x6B,0x0F,0x09,0x11,0x8E,0x0F,0xB8,0x22,0xCB,0x0F,0x10,0x8C, - 0x0F,0x11,0x09,0x0F,0x07,0xDC,0x0F,0x10,0x72,0x0F,0x09,0x06,0xF8,0x0F,0x00,0x04, -}; -uint8_t tileset_tile_15_compressed[41] = { - 0x10,0x20,0x10,0x00,0x7E,0x00,0x4C,0x07,0x00,0x09,0x99,0x0F,0x16,0xAC,0x00,0x09,0x03,0x12,0x09,0x8E,0x0F,0xE3,0x10,0xB8,0x0F,0x10,0xF4,0x0F,0x09,0x77,0x0F,0x01, - 0x1D,0x0F,0xC7,0x02,0x70,0x0F,0x03,0x00,0x08, -}; -uint8_t tileset_tile_16_compressed[126] = { - 0x10,0x35,0x10,0x4B,0x00,0x1F,0xA6,0x03,0x04,0x08,0x98,0x04,0x04,0x3B,0xE6,0x10,0x0D,0x63,0x04,0x00,0x1F,0x1F,0x3B,0x0F,0x0A,0x1F,0x03,0x04,0x03,0x11,0x7F,0x1C, - 0x0A,0x0B,0x1E,0xA8,0x16,0x03,0x08,0x03,0x1F,0x9B,0x10,0x06,0xAF,0x0A,0x0E,0x24,0xBA,0x21,0x03,0xAF,0x2D,0x34,0x26,0xBF,0x1E,0x00,0x07,0xBE,0x44,0x11,0xBA,0x00, - 0x08,0x2D,0xAA,0x0D,0x2E,0xBA,0x3B,0x06,0xEF,0x10,0x6E,0x4D,0xFB,0x09,0x00,0x13,0xE4,0x0B,0x08,0xEF,0x4A,0x13,0x03,0x9A,0x1C,0x5B,0x00,0x50,0xB0,0xA9,0xB0,0x8A, - 0xA9,0x6B,0x25,0x42,0x21,0xEE,0x00,0x30,0xEF,0x74,0x2C,0x06,0x9A,0x07,0xE4,0x24,0x1C,0xAB,0x0E,0x07,0xBE,0x4F,0x11,0x6A,0x5A,0x1B,0xE0,0x0D,0x00,0x10, -}; -uint8_t tileset_tile_17_compressed[98] = { - 0x10,0x22,0x10,0x00,0x5C,0x00,0x20,0x00,0x60,0x0D,0x39,0x39,0x3E,0xE7,0x10,0x16,0xAF,0x0D,0x0E,0x00,0xDB,0x0A,0x20,0x04,0x39,0x11,0x96,0x1E,0xAF,0x0F,0x0E,0x00, - 0xAB,0x23,0x20,0xB5,0x19,0x3E,0xDD,0x05,0x0E,0xD4,0x10,0x39,0x92,0x06,0xC9,0x00,0x09,0x39,0x0E,0x3F,0x3F,0x69,0x05,0x00,0xEA,0x0B,0x02,0x7B,0x77,0x10,0xA8,0x01, - 0xA0,0x89,0xD1,0x02,0x45,0x5C,0x0F,0x00,0x77,0x0F,0x50,0xFC,0x2E,0x10,0x59,0x43,0x0E,0x33,0x0D,0x44,0x45,0xD5,0x10,0x1E,0xA2,0x10,0x20,0xAE,0x20,0x00,0x58,0x0E, - 0x00,0x04, -}; -uint8_t tileset_tile_18_compressed[105] = { - 0x10,0x21,0x10,0x00,0x45,0x00,0x04,0x45,0x00,0x84,0x0D,0x05,0x01,0x01,0x05,0x47,0x11,0x0D,0x2A,0x00,0x01,0x57,0x10,0x04,0x1A,0x19,0x10,0xD4,0x0F,0x10,0xB7,0x03, - 0x0F,0xCF,0x0E,0x2F,0xDA,0x41,0x10,0x01,0x2C,0x2F,0x01,0x1F,0x39,0x00,0x03,0x05,0xF2,0x2F,0x08,0x03,0x1C,0xD3,0x2F,0x01,0x56,0x00,0x0A,0x0F,0x03,0xF9,0x05,0x06, - 0xD7,0x03,0x03,0x0F,0x73,0x1F,0x52,0x04,0x0F,0x1F,0xA5,0x10,0x1F,0xBC,0x0E,0x4F,0x00,0x1C,0xEE,0x06,0x12,0xEE,0x05,0x0E,0xBF,0x10,0x00,0x0B,0x00,0xAE,0x06,0x2D, - 0x55,0x00,0x1F,0xCB,0x0B,0x1C,0x00,0x00,0x80, -}; -uint8_t tileset_tile_19_compressed[130] = { - 0x10,0x24,0x10,0x00,0x00,0x6D,0x2C,0x00,0x33,0x00,0x00,0x30,0x00,0x33,0x2C,0x36,0xCD,0x00,0x2C,0x19,0x12,0x2C,0x37,0x1C,0x0D,0x79,0x0F,0x03,0x28,0x33,0x3A,0x1D, - 0x28,0x4B,0x0E,0x0F,0xEB,0x26,0x08,0x01,0xEF,0x00,0x0F,0x30,0xEE,0x1E,0x07,0xFF,0x0F,0x00,0x38,0x25,0xEE,0x0F,0x09,0xE4,0x0C,0x03,0x27,0x29,0x35,0x0F,0xFC,0x37, - 0x0E,0x01,0x29,0x19,0xBE,0x0F,0x26,0xEB,0x03,0x0E,0x0F,0x2B,0x29,0x33,0x0B,0x02,0xAF,0x39,0x1A,0x02,0xFF,0x00,0x0F,0x10,0x00,0xFA,0x0E,0x27,0x09,0x95,0x0F,0x2C, - 0x69,0x11,0x29,0x89,0x0F,0x35,0x29,0xAA,0x09,0x05,0xD5,0x0E,0x00,0x10,0x2C,0x19,0x9F,0x0E,0x0F,0x10,0x77,0x11,0x28,0x2F,0x0E,0x00,0x7F,0x22,0x5C,0x0B,0x24,0x0D, - 0x00,0x02, -}; -uint8_t tileset_tile_20_compressed[134] = { - 0x10,0x30,0x10,0x4B,0x00,0x1F,0x03,0x05,0x05,0x1F,0x04,0x01,0x04,0x04,0x00,0xE3,0x04,0x0D,0x4B,0x1C,0x1C,0x0D,0xB7,0x0A,0x01,0x05,0xB5,0x01,0x1F,0x0D,0x1C,0x7A, - 0x1F,0x09,0x20,0x04,0xEB,0x16,0x0D,0x00,0xAB,0x0E,0x0B,0xFA,0x04,0x02,0x0F,0xFE,0x1A,0x02,0x12,0x65,0x23,0x1C,0xA4,0x3D,0x03,0x4C,0xAF,0x3D,0x0A,0x3F,0xFF,0x1C, - 0x15,0x1E,0x11,0xEC,0x0E,0x13,0x1F,0x1F,0xBE,0x47,0x02,0xEF,0x60,0x12,0x0F,0xFB,0x2C,0x37,0x5C,0x97,0x33,0x0E,0xF9,0x2F,0x00,0x6E,0x12,0x22,0xAE,0x4D,0x01,0x4E, - 0x0F,0x19,0xBF,0x6F,0x2E,0x01,0x0F,0xBB,0x12,0x48,0xBE,0x0F,0x31,0x7B,0x21,0x7F,0xFB,0x40,0x05,0x52,0x95,0x22,0x01,0x2F,0x7E,0x00,0x72,0x06,0xDD,0x0F,0x6A,0xDF, - 0x12,0x0E,0x01,0x00,0x00,0x80, -}; -uint8_t tileset_tile_21_compressed[133] = { - 0x10,0x03,0x10,0x05,0x04,0x05,0x01,0x05,0x04,0x61,0x01,0x06,0x05,0x03,0x1F,0x4B,0xDE,0x00,0x0D,0x0C,0x01,0xF1,0x05,0x04,0x1C,0x1C,0x4B,0xAE,0x11,0x05,0x0E,0xEB, - 0x0F,0x1F,0x07,0x3B,0x1C,0x1F,0x08,0x0D,0xAA,0x21,0x0F,0xF9,0x00,0x22,0x3D,0x0D,0x22,0x0C,0x01,0xFC,0x01,0x02,0x20,0xBF,0x3B,0x01,0x26,0xFF,0x0F,0x1B,0x0F,0x26, - 0x2D,0x0E,0xFC,0x3D,0x1F,0x3F,0xBF,0x1B,0x0E,0x0D,0x6E,0x1E,0x1F,0x0F,0xF9,0x00,0x08,0x56,0x54,0x03,0x0F,0x04,0x9E,0x61,0xBA,0x4F,0x10,0x2E,0xBB,0x39,0x10,0xBE, - 0x01,0x5F,0xEF,0x36,0x0C,0x02,0xFB,0x2E,0x01,0x7F,0x4C,0x39,0x1D,0x03,0xBB,0x0F,0x19,0x95,0x2E,0x03,0x72,0x6F,0xD7,0x0F,0x09,0x00,0x28,0x80,0x5C,0x45,0x92,0x2A, - 0x70,0x00,0x0F,0x00,0x08, -}; -uint8_t tileset_tile_22_compressed[126] = { - 0x10,0x28,0x10,0x4B,0x00,0x03,0x05,0x0F,0x05,0x04,0x01,0x04,0x04,0x00,0xE8,0x04,0x0E,0x1F,0x4B,0xED,0x0D,0x0A,0x01,0xF7,0x05,0x01,0x0F,0x5E,0x1F,0x09,0x20,0x04, - 0xBA,0x16,0x0D,0xEA,0x00,0x0E,0xFE,0x0B,0x04,0x02,0xBF,0x3D,0x1A,0x02,0x12,0x9B,0x23,0x0F,0xF9,0x3D,0x0D,0x2B,0x4C,0x3D,0x0A,0xBF,0x1F,0x15,0x1E,0xFB,0x11,0x0E, - 0x13,0xEF,0x0F,0x47,0x02,0xBB,0x60,0x12,0xAE,0x1F,0x0E,0xEE,0x38,0x12,0xFB,0x1F,0x5D,0x0E,0x92,0x12,0xEA,0x22,0x4D,0xE4,0x01,0x0F,0xEB,0x19,0x6F,0x2E,0xFB,0x01, - 0x0F,0x12,0xBB,0x48,0x0F,0xE7,0x31,0x21,0xBB,0x7F,0x6F,0xB9,0x52,0x52,0x22,0x01,0xF7,0x7E,0x00,0x06,0x2D,0x0F,0xDD,0x6A,0x12,0xF0,0x0E,0x01,0x00,0x08, -}; -uint8_t tileset_tile_23_compressed[122] = { - 0x10,0x03,0x10,0x05,0x04,0x05,0x01,0x05,0x04,0x62,0x01,0x06,0x05,0x03,0x4B,0xAF,0x00,0x0D,0x0C,0x7D,0x01,0x05,0x04,0xF7,0x0E,0x0F,0x0E,0x76,0x0F,0x1F,0x3D,0xFB, - 0x0F,0x08,0x0D,0xAA,0x21,0x0F,0xF9,0x00,0x0F,0x3D,0x0D,0x22,0x0C,0x01,0xFC,0x01,0x02,0x0F,0xBF,0x3B,0x01,0x26,0xDF,0x0F,0x41,0x26,0x2F,0x0E,0x20,0xDC,0x29,0x1F, - 0xB5,0x1B,0x71,0x5C,0x72,0x00,0x97,0x5F,0x0C,0x2D,0x54,0xF3,0x1F,0x0C,0xD7,0x61,0x4F,0x10,0x57,0x2E,0x39,0x77,0x10,0x01,0xDD,0x0F,0x36,0xFF,0x0C,0x02,0x2E,0x01, - 0x73,0x7F,0xFD,0x1D,0x2D,0x02,0xCD,0x7F,0x10,0xCE,0x0D,0x8F,0x17,0x79,0xCA,0x00,0x80,0x12,0x5C,0x2E,0x2A,0x9C,0x00,0x0F,0x00,0x02, -}; -uint8_t tileset_tile_24_compressed[29] = { - 0x10,0x05,0x10,0x07,0x18,0x18,0x14,0xA6,0x00,0x19,0x07,0x54,0x07,0x00,0x65,0x07,0x5A,0x17,0x0B,0x19,0x68,0x07,0xF8,0x2F,0x0B,0xF8,0x3F,0x00,0x04, -}; -uint8_t tileset_tile_25_compressed[27] = { - 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCE,0x00,0x07,0x07,0xA8,0x00,0xBB,0x07,0x17,0xB9,0x0B,0xE3,0x07,0xE0,0x2F,0x2F,0xE0,0x3F,0x00,0x10, -}; -uint8_t tileset_tile_26_compressed[27] = { - 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCE,0x00,0x07,0x07,0xA8,0x00,0xBB,0x07,0x17,0xB9,0x0B,0xE3,0x07,0xE0,0x2F,0x2F,0xE0,0x3F,0x00,0x10, -}; -uint8_t tileset_tile_27_compressed[33] = { - 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCA,0x00,0x07,0x19,0x2A,0x02,0x07,0x00,0xE5,0x0F,0x07,0xEE,0x0F,0x17,0xE6,0x0B,0x07,0x47,0x02,0xC0,0x2F,0x5F,0xC0,0x3F,0x00, - 0x20, -}; -uint8_t tileset_tile_28_compressed[51] = { - 0x10,0x1A,0x10,0x02,0x12,0x00,0x09,0x9A,0x03,0x16,0x00,0x09,0xE0,0x03,0x76,0x0F,0x26,0x0F,0x09,0x00,0x95,0x0F,0x0F,0x1A,0x0F,0x0F,0x87,0x04,0x0F,0x0F,0x07,0x07, - 0x5F,0x0F,0x0B,0x71,0x10,0x15,0x0F,0x0E,0x71,0x10,0x09,0x0F,0x09,0xA6,0x10,0x00,0x80,0x00,0x40, -}; -uint8_t tileset_tile_29_compressed[76] = { - 0x10,0x03,0x10,0x09,0x0F,0x0F,0x09,0x12,0x00,0xB5,0x03,0x07,0xCF,0x00,0x0F,0x77,0x0A,0x00,0x2C,0x0F,0xF3,0x0C,0x44,0x0F,0xDC,0x0D,0x0F,0x55,0x1C,0xC6,0x0F,0xA3, - 0x0E,0x09,0x78,0x0D,0x0E,0xE8,0x00,0xD8,0x1D,0xF2,0x37,0x0A,0x0B,0x2F,0x0E,0x0D,0xE2,0x00,0xB8,0x0E,0x0C,0xCA,0x0F,0x1D,0x45,0x0A,0xD9,0x2D,0x0E,0x12,0x0B,0x17, - 0x1E,0xF1,0x0E,0x03,0x0E,0x76,0x0F,0x00,0xE0,0x41,0x00,0x10, -}; -uint8_t tileset_tile_30_compressed[79] = { - 0x10,0x2D,0x10,0x07,0x00,0x12,0xAC,0x00,0x09,0x03,0x0F,0x0F,0x49,0x09,0x00,0x51,0x12,0x92,0x0F,0x46,0x12,0xD4,0x0F,0x11,0x75,0x0F,0x46,0x22,0xDF,0x0F,0x10,0x04, - 0x1B,0x11,0xC7,0x01,0x47,0x00,0x09,0x20,0x09,0x0B,0x0A,0x62,0x27,0x34,0x0F,0x00,0x0A,0x5A,0x10,0x0B,0xE3,0x00,0x17,0x21,0x0A,0x21,0x3E,0x0F,0x1F,0x12,0xE2,0x10, - 0xFE,0x20,0x0B,0x10,0x2E,0x20,0xD6,0x3D,0x0F,0xA7,0x13,0x40,0x7F,0x00,0x20, -}; -uint8_t tileset_tile_31_compressed[51] = { - 0x10,0x35,0x10,0x16,0x00,0x09,0xBB,0x03,0x12,0x00,0x03,0x40,0x02,0xDE,0x0F,0x09,0x99,0x00,0x0F,0x1E,0x0F,0x0F,0x8F,0x0F,0x43,0x0F,0xC2,0x0F,0x07,0x07,0x0F,0x2E, - 0x0F,0xB8,0x0E,0x00,0x99,0x0F,0x32,0x0E,0x00,0x02,0x07,0x7B,0x00,0x0D,0xD0,0x42,0x02,0x00,0x08, -}; -uint8_t tileset_tile_32_compressed[59] = { - 0x10,0x21,0x10,0x4B,0x62,0x00,0x0E,0x0E,0x26,0x05,0xE7,0x07,0x00,0x8D,0x0D,0xE7,0x00,0x0E,0x8F,0x0F,0x25,0x15,0x15,0x05,0x94,0x0E,0x15,0x08,0xFF,0x00,0x0B,0x00, - 0x05,0x97,0x1D,0x07,0x9E,0x00,0x78,0x1E,0xC8,0x0F,0xAE,0x10,0x3F,0x12,0x0F,0xE1,0x0E,0xDE,0x0F,0x10,0x19,0x4F,0x8E,0x6F,0x80,0x00,0x40, -}; -uint8_t tileset_tile_33_compressed[42] = { - 0x10,0x23,0x10,0x4B,0x89,0x00,0x0E,0x0E,0x67,0x05,0x07,0x82,0xF5,0x00,0x15,0x5D,0x02,0x03,0xDA,0x04,0x06,0x08,0xAE,0x02,0x03,0xEE,0x04,0x06,0x0C,0x90,0x00,0x15, - 0x42,0x1D,0x3A,0x87,0x61,0x41,0xA8,0x1E,0x00,0x04, -}; -uint8_t tileset_tile_34_compressed[52] = { - 0x10,0x23,0x10,0x4B,0x89,0x00,0x0E,0x0E,0xE7,0x05,0x0F,0x9E,0x00,0x3E,0x0F,0x78,0x29,0xD6,0x10,0x15,0x05,0x15,0xB9,0x03,0xDA,0x0F,0x08,0x0D,0x08,0x59,0x03,0x79, - 0x10,0x08,0xE5,0x00,0x21,0x89,0x0F,0x43,0x15,0xB3,0x0F,0xC1,0x3F,0xBC,0x0F,0x2D,0x5F,0x00,0x00,0x80, -}; -uint8_t tileset_tile_35_compressed[96] = { - 0x10,0x2D,0x10,0x00,0x00,0x20,0x25,0x00,0xCA,0x09,0x0D,0x26,0x34,0x2B,0x2B,0x02,0x26,0xD6,0x11,0x0D,0x2B,0x9E,0x10,0x7B,0x0E,0x10,0xED,0x00,0x10,0x20,0x3D,0x0E, - 0x73,0x1F,0x01,0xCE,0x1E,0x1F,0x27,0xD3,0x0F,0x26,0x4F,0x1D,0x0F,0x72,0x0B,0xF2,0x10,0x0B,0xDC,0x1F,0x0B,0xB5,0x0E,0x0F,0xCF,0x05,0x00,0x2D,0x1F,0xAE,0x0F,0x20, - 0x02,0xEE,0x1E,0x0F,0xF9,0x09,0x01,0x8B,0x0E,0x27,0x00,0x11,0xB9,0x0B,0xBE,0x0E,0x0F,0x10,0x6E,0x00,0x09,0xF8,0x0F,0x10,0xA9,0x00,0x42,0xE0,0x2E,0x0D,0x00,0x01, -}; -uint8_t tileset_tile_36_compressed[97] = { - 0x10,0x05,0x10,0x1F,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x4B,0x08,0x7B,0x11,0x13,0xFB,0x0F,0x10,0x0E,0xBB,0x00,0x12,0xBB,0x0F,0x21, - 0x4D,0x04,0x14,0x4B,0x0F,0x1C,0x0A,0x9E,0x03,0xEE,0x0E,0x28,0xEE,0x0B,0x27,0xE6,0x0E,0x4B,0xBB,0x05,0x0F,0x9B,0x0E,0x00,0x47,0x37,0x88,0x0F,0x3C,0x3C,0x03,0xE4, - 0x0F,0x3C,0xF3,0x3F,0x91,0x10,0x4B,0x1F,0x84,0x10,0x37,0x4B,0xD3,0x10,0xAE,0x11,0x4B,0x10,0x2B,0x11,0x0E,0x96,0x11,0xE6,0x12,0xAF,0x09,0x27,0x11,0x12,0x80,0x00, - 0x40, -}; -uint8_t tileset_tile_37_compressed[97] = { - 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0x46,0x0D,0x0E,0x4B,0x96,0x0C,0xF3,0x00,0x07,0x03,0x1F,0x0F,0x9A,0x0A,0xED, - 0x04,0x1E,0x4B,0x73,0x0C,0xA5,0x03,0x1C,0x0F,0xB9,0x39,0x2E,0x05,0x10,0xD3,0x26,0x04,0xF6,0x53,0x10,0x0F,0x37,0x92,0x0E,0x61,0x20,0x03,0x3C,0x3C,0x18,0x0F,0x3C, - 0x8F,0x0F,0x8B,0x0E,0xA4,0x0F,0x37,0x66,0x0E,0x90,0x11,0x56,0x0D,0x0E,0x4B,0x8A,0x0D,0xB9,0x0E,0x42,0xAF,0xEE,0x0C,0x0D,0x6B,0x0F,0x0C,0x97,0x0D,0x00,0x80,0x00, - 0x40, -}; -uint8_t tileset_tile_38_compressed[110] = { - 0x10,0x05,0x10,0x1F,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x4B,0x08,0x7B,0x11,0x13,0xFB,0x0F,0x10,0x0E,0xBB,0x00,0x12,0xBB,0x0F,0x21, - 0x95,0x23,0x04,0x6B,0x0F,0x1C,0x0A,0x99,0x32,0x05,0x77,0x0E,0x08,0x75,0x0F,0x05,0xF3,0x0F,0x0E,0xFD,0x4B,0x05,0x4E,0xCD,0x0F,0x0E,0x68,0x30,0x05,0x9B,0x0F,0x0C, - 0x45,0x01,0xE1,0x0F,0x8B,0x11,0x0F,0x72,0x10,0xCD,0x1E,0x5F,0xD5,0x00,0x1C,0xF2,0x0E,0x0F,0xAE,0x10,0x01,0x11,0x6D,0x0F,0x10,0x03,0xCD,0x07,0x0E,0x4A,0x0F,0x1F, - 0x11,0x92,0x1D,0x7C,0x2F,0xC0,0x2B,0x09,0x4E,0xEE,0x01,0x00,0x00,0x01, -}; -uint8_t tileset_tile_39_compressed[115] = { - 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0x46,0x0D,0x0E,0x4B,0x96,0x0C,0xF2,0x00,0x07,0x03,0x1F,0xA5,0x0F,0x0A,0xBB, - 0x04,0x1E,0x27,0x4B,0x05,0x2C,0xA5,0x03,0x1C,0xD5,0x0F,0x17,0xDD,0x0B,0x05,0xBB,0x10,0x05,0x50,0x0C,0x9B,0x46,0x10,0xEE,0x0F,0x2A,0x7B,0x10,0x0F,0x34,0x01,0x05, - 0x33,0x04,0x5D,0x0F,0x45,0x00,0xDA,0x0F,0x21,0x04,0x26,0x3F,0xEA,0x00,0x13,0x64,0x0E,0x4B,0xBD,0x0E,0x0A,0x98,0x10,0x1C,0x1F,0xA0,0x4B,0x1D,0xD7,0x40,0x21,0x1D, - 0xCD,0x0F,0x1F,0x22,0x75,0x4B,0xE5,0x00,0x2E,0xAA,0x01,0xF5,0x06,0x3B,0x0E,0x1F,0x80,0x00,0x40, -}; -uint8_t tileset_tile_40_compressed[55] = { - 0x10,0x1A,0x10,0x07,0x18,0x00,0x14,0x93,0x00,0x19,0x3B,0x07,0x07,0x00,0x12,0x45,0x18,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8B,0x07,0x23,0x00,0x02,0x5A,0x00,0x00, - 0x10,0x07,0x2E,0x00,0x08,0x83,0x0F,0x30,0x2A,0x15,0x2A,0x87,0x02,0x30,0x15,0x90,0x00,0x21,0x38,0x40,0x0F,0x00,0x20, -}; -uint8_t tileset_tile_41_compressed[55] = { - 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA7,0x00,0x07,0x57,0x07,0x00,0x09,0xC5,0x00,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8F,0x07,0x8B,0x00,0x41,0x07,0x71,0x00,0x10, - 0x15,0x1B,0x00,0x05,0xF0,0x0F,0x80,0x80,0x23,0x10,0x34,0x00,0x0F,0x32,0x65,0x00,0xC4,0x0F,0xD4,0x7C,0x0F,0x00,0x02, -}; -uint8_t tileset_tile_42_compressed[65] = { - 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA7,0x00,0x07,0x57,0x07,0x00,0x09,0xC5,0x00,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8F,0x07,0x8B,0x00,0x41,0x07,0x72,0x00,0x15, - 0x38,0x00,0x4A,0x24,0x8E,0x00,0x8D,0x5E,0xA5,0x0F,0x2E,0xA6,0x00,0x02,0x06,0x82,0x35,0x0F,0x34,0x76,0x01,0x0F,0x05,0x34,0xB9,0x0F,0x66,0x08,0x16,0x40,0x24,0x00, - 0x20, -}; -uint8_t tileset_tile_43_compressed[56] = { - 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA5,0x00,0x07,0x15,0x19,0x02,0x07,0x00,0xF2,0x09,0x00,0xAE,0x07,0x14,0x0F,0xE2,0x00,0x2E,0x07,0x00,0x3E,0x07,0x28,0x00,0x10, - 0x07,0x8B,0x00,0xE0,0x0E,0x84,0x0F,0x30,0x15,0xA0,0x00,0x21,0x07,0x10,0x2A,0x10,0x15,0x2A,0x10,0x39,0x40,0x0F,0x00,0x20, -}; -uint8_t tileset_tile_44_compressed[79] = { - 0x10,0x05,0x10,0x02,0x07,0x09,0x0F,0xA6,0x00,0x07,0x00,0x4C,0x02,0x10,0x09,0x99,0x00,0x02,0x71,0x21,0x6B,0x0F,0x17,0x10,0x8A,0x0F,0x4B,0x0B,0x10,0x10,0x0F,0x1B, - 0x96,0x10,0x26,0x3F,0x59,0x10,0xF9,0x00,0x3F,0x67,0x10,0x00,0xD7,0x0F,0x1B,0x10,0x14,0x1F,0x1B,0x8C,0x10,0xBA,0x0F,0x10,0x4F,0x17,0x00,0x26,0x0F,0x10,0x17,0x4D, - 0x0A,0x00,0x2F,0x0F,0x10,0x3C,0x00,0xD1,0x0F,0xF0,0x1F,0xC4,0x0F,0x00,0x02, -}; -uint8_t tileset_tile_45_compressed[62] = { - 0x10,0x25,0x10,0x07,0x00,0x48,0x09,0x00,0x0A,0xE5,0x00,0x08,0x4A,0x07,0x0B,0x12,0x8A,0x0F,0x99,0x10,0x09,0x17,0x20,0x71,0x0D,0x9C,0x20,0x00,0x7C,0x10,0xD2,0x5F, - 0xB4,0x62,0x0F,0x0F,0x02,0x72,0x00,0x07,0x1E,0x00,0x47,0x17,0x23,0x00,0x0A,0x91,0x00,0x10,0xC4,0x00,0x02,0x1A,0x62,0x00,0x02,0x1F,0x0F,0x80,0x00,0x40, -}; -uint8_t tileset_tile_46_compressed[74] = { - 0x10,0x34,0x10,0x0A,0x00,0x09,0x89,0x00,0x07,0x72,0x00,0x0E,0x12,0x09,0xF9,0x13,0x0F,0x67,0x16,0x0E,0x9E,0x0F,0xA2,0x11,0xEE,0x1E,0x0D,0x33,0x1E,0x0C,0x8F,0x2D, - 0x44,0x0F,0xD2,0x5C,0x00,0x02,0x39,0x00,0x07,0x0F,0x23,0x00,0x17,0x91,0x00,0x0A,0xC9,0x00,0x10,0x82,0x00,0x02,0x0B,0x0B,0x1B,0xE7,0x00,0x17,0x4D,0x02,0x17,0x3A, - 0x0F,0x1B,0x68,0x4F,0x89,0x0F,0xA0,0x00,0x00,0x10, -}; -uint8_t tileset_tile_47_compressed[93] = { - 0x10,0x26,0x10,0x07,0x00,0x58,0x0F,0x00,0x09,0x07,0x02,0x4D,0x09,0x00,0x34,0x0E,0x5D,0x0F,0x22,0x0E,0x10,0xAD,0x0F,0x0E,0x17,0x13,0x0F,0x22,0x0E,0x0B,0x22,0x0F, - 0x52,0x0E,0x1B,0x02,0x79,0x5F,0x79,0x0E,0x3F,0xE5,0x00,0x0E,0x44,0x17,0xDB,0x1F,0x0E,0x1B,0x0F,0x8C,0x0E,0xA4,0x0F,0x17,0xF7,0x00,0x0E,0x49,0x0F,0x0A,0x97,0x00, - 0x17,0x0E,0x56,0x0F,0x05,0x1B,0x77,0x0B,0x77,0x0E,0x69,0x0F,0x10,0x79,0x00,0x37,0xA6,0x0F,0x4E,0x4E,0x1B,0x0F,0x1B,0x9A,0x00,0x78,0x0F,0x00,0x04, -}; -uint8_t tileset_tile_48_compressed[47] = { - 0x10,0x14,0x10,0x4B,0x0E,0x00,0x15,0x44,0x08,0x42,0x00,0x11,0x0F,0x28,0x10,0x15,0xE8,0x0F,0xD9,0x1F,0x11,0x12,0x3A,0xF1,0x1F,0xA8,0x4F,0x3A,0xF8,0x5F,0x5A,0x0F, - 0x3E,0x5F,0x3F,0x0F,0x0E,0x87,0x78,0x0F,0x10,0x66,0x4F,0x3A,0x6F,0x00,0x01, -}; -uint8_t tileset_tile_49_compressed[20] = { - 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x76,0x41,0x1E,0x1E,0x81,0xCE,0x77,0x00,0x01, -}; -uint8_t tileset_tile_50_compressed[45] = { - 0x10,0x22,0x10,0x08,0x0A,0x00,0x15,0x0E,0x00,0x46,0x4B,0xC7,0x0E,0x91,0x0F,0x4B,0x4B,0xB0,0x2F,0xD4,0x0F,0x7C,0x2F,0x7F,0x4F,0x10,0x04,0xE8,0x0F,0x15,0x67,0x4F, - 0x0F,0x95,0x1D,0x3A,0x0C,0xCD,0x1F,0x1E,0x0B,0xC0,0x5F,0x00,0x20, -}; -uint8_t tileset_tile_51_compressed[96] = { - 0x10,0x20,0x10,0x00,0x91,0x00,0x20,0xC6,0x00,0x9C,0x0D,0x2B,0x2B,0x03,0x66,0x0E,0x00,0x26,0x98,0x10,0x20,0x26,0xEF,0x1B,0x0E,0x0F,0x4D,0x27,0x1E,0x55,0x0C,0x01, - 0xAF,0x0E,0x26,0x10,0x1E,0xEC,0x07,0x3D,0x27,0x27,0xEF,0x03,0x0F,0x06,0xEF,0x01,0x1E,0x2E,0x97,0x31,0x1D,0xEF,0x1C,0x10,0x07,0xFB,0x00,0x23,0x1F,0xBA,0x4F,0x1A, - 0xA9,0x38,0x2A,0x1F,0x6E,0xBB,0x03,0x1C,0x08,0x97,0x0F,0x26,0xE3,0x0E,0x2E,0x50,0x1A,0xAE,0x05,0x3E,0xD7,0x10,0x27,0x10,0x3C,0x0D,0xF3,0x12,0x40,0x0D,0x00,0x20, -}; -uint8_t tileset_tile_52_compressed[96] = { - 0x10,0x25,0x10,0x00,0x00,0x39,0x29,0x29,0x03,0xEC,0x0A,0x00,0x36,0x36,0xBB,0x05,0x14,0x7A,0x33,0x0A,0x00,0x2C,0x4A,0x02,0x14,0x9B,0x0F,0x0D,0xE7,0x0E,0x0F,0x45, - 0x2C,0x48,0x00,0x0F,0x28,0x88,0x00,0x94,0x0F,0x33,0x28,0x5D,0x33,0x0C,0x4D,0x06,0x0F,0x76,0x09,0x15,0x33,0x85,0x7E,0x2F,0x06,0x02,0xF8,0x04,0x03,0x4F,0x1F,0x9F, - 0x08,0xA9,0x00,0x40,0xB1,0x35,0x35,0xFD,0x24,0x1A,0x05,0x00,0x3E,0x0E,0x0F,0x36,0xBE,0x0F,0x10,0x77,0x0F,0x35,0x2A,0xC5,0x03,0xA7,0x20,0x35,0x0E,0x80,0x00,0x40, -}; -uint8_t tileset_tile_53_compressed[72] = { - 0x10,0x20,0x10,0x00,0x44,0x00,0x54,0x37,0x00,0x5A,0x0E,0x09,0x91,0x00,0x37,0x41,0x0E,0x1B,0x09,0x41,0x41,0x11,0x10,0xFC,0x0E,0x0B,0x0E,0x4F,0x10,0x0F,0xF1,0x0B, - 0x3E,0x2C,0x0F,0x42,0x0B,0x37,0x1B,0x52,0x35,0x04,0x42,0x66,0x0F,0x43,0x1D,0x35,0xCE,0x0F,0x37,0x43,0x0F,0x76,0x10,0x1B,0x0D,0x1B,0x9E,0x0E,0x58,0x10,0xBA,0x0E, - 0x10,0xA8,0x00,0x25,0xB9,0x08,0x00,0x04, -}; -uint8_t tileset_tile_54_compressed[45] = { - 0x10,0x20,0x10,0x00,0x28,0x84,0x00,0x04,0x04,0x01,0x93,0x02,0x9A,0x0D,0x05,0x05,0x0D,0x01,0xEF,0x05,0x11,0x07,0x57,0x01,0x01,0x00,0x7F,0x06,0x11,0x0E,0xC5,0x04, - 0x5C,0x00,0x25,0x57,0x10,0x0A,0xC6,0x21,0xA0,0x0F,0x04,0x00,0x10, -}; -uint8_t tileset_tile_55_compressed[89] = { - 0x10,0x02,0x10,0x00,0x38,0x43,0x38,0x00,0x6B,0x00,0x0A,0x23,0x38,0x40,0x04,0x00,0x38,0x38,0x2F,0x65,0x00,0x0F,0x0F,0x44,0x44,0x48,0x07,0x05,0x96,0x03,0xE4,0x0F, - 0x01,0xFE,0x00,0x15,0x06,0xE4,0x0F,0x1D,0xBB,0x0C,0x05,0x84,0x8E,0x3F,0x46,0x09,0x00,0x4D,0x03,0x04,0x46,0x0A,0x2B,0x1F,0x2F,0x17,0x1E,0xAE,0x07,0x20,0x12,0x1F, - 0x8E,0x00,0x5C,0x10,0x03,0xD2,0x00,0x61,0x0A,0xC4,0x13,0x0F,0xC7,0x0A,0x87,0xDF,0x04,0xA7,0x15,0x10,0x0F,0xB8,0x0A,0x00,0x04, -}; -uint8_t tileset_tile_56_compressed[48] = { - 0x10,0x00,0x10,0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x0A,0x10,0x07,0x30,0x15,0x00,0x20,0x21,0x07,0x20,0xE9,0x0F,0x08,0x07,0x16,0x0F,0x21,0xF7,0x00,0x0F,0x2A,0x04, - 0xC5,0x00,0x20,0x0F,0x15,0xDC,0x0F,0x10,0x02,0xB9,0x00,0x78,0x05,0x06,0x00,0x04, -}; -uint8_t tileset_tile_57_compressed[59] = { - 0x10,0x02,0x10,0x02,0x32,0x32,0x07,0x34,0x66,0x00,0x07,0x0B,0x02,0xB4,0x0F,0x2E,0xD0,0x00,0x4F,0x0F,0x3C,0x00,0xD1,0x0F,0x7E,0x00,0x0F,0x15,0x24,0x44,0x32,0xE4, - 0x01,0x0E,0x30,0x15,0x5E,0x10,0x0F,0x15,0xA8,0x0F,0x99,0x00,0x23,0x2F,0x38,0x0F,0x03,0x3D,0x0F,0x8E,0x00,0x47,0x10,0x40,0x00,0x00,0x20, -}; -uint8_t tileset_tile_58_compressed[53] = { - 0x10,0x05,0x10,0x24,0x02,0x2E,0x34,0x16,0x01,0x02,0x02,0x05,0x34,0x38,0x02,0x24,0x0F,0xCF,0x00,0x0F,0x18,0xB4,0x00,0x02,0xD0,0x06,0x45,0x0F,0x1A,0x3F,0x15,0x46, - 0x24,0x23,0x00,0x15,0xD1,0x00,0x2A,0xC8,0x00,0x21,0x13,0x91,0x00,0x02,0xC8,0x00,0x10,0xE8,0x00,0x00,0x04, -}; -uint8_t tileset_tile_59_compressed[46] = { - 0x10,0x0A,0x10,0x07,0x30,0x15,0x00,0x00,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x81,0xF5,0x0F,0x07,0x17,0x0F,0x52,0x05,0x17,0x0F,0x2A,0x21,0x00,0xDD,0x0F,0x04, - 0xA0,0x0F,0x15,0xF7,0x0F,0x73,0x92,0x00,0x5A,0x06,0x0E,0x80,0x00,0x40, -}; -uint8_t tileset_tile_60_compressed[72] = { - 0x10,0x0B,0x10,0x02,0x17,0x1B,0x00,0x26,0x17,0x0A,0x00,0x82,0x02,0x0F,0x0B,0x17,0x3B,0x0F,0x10,0x8E,0x0F,0xE2,0x10,0xD7,0x0F,0x0A,0x10,0x17,0x0F,0x24,0x10,0x42, - 0x0F,0x10,0x64,0x10,0x02,0xC9,0x00,0x10,0x62,0x10,0x12,0x1F,0x00,0xC4,0x10,0xCB,0x0F,0x10,0x15,0x0F,0x7C,0x10,0x0F,0xE9,0x00,0x00,0x63,0x10,0x2E,0x0F,0x10,0x74, - 0x00,0x00,0xD3,0x10,0xC0,0x00,0x00,0x20, -}; -uint8_t tileset_tile_61_compressed[33] = { - 0x10,0x11,0x10,0x02,0x1A,0x88,0x00,0x02,0x1C,0x11,0x0F,0x17,0x90,0x00,0x8A,0x0F,0x0A,0x32,0x00,0x11,0x0F,0x46,0x0B,0x21,0x00,0x02,0xF4,0x00,0x10,0x74,0x00,0x00, - 0x02, -}; -uint8_t tileset_tile_62_compressed[58] = { - 0x10,0x26,0x10,0x0A,0x00,0x18,0x1B,0x16,0x0F,0x00,0x16,0x1B,0x1B,0x88,0x0F,0xEE,0x0D,0x02,0x18,0x0F,0x29,0x0B,0x09,0x00,0x0B,0xC5,0x05,0x71,0x0F,0x0D,0x73,0x0F, - 0x44,0x00,0xFC,0x0F,0x20,0x02,0x22,0x1F,0x02,0x8E,0x00,0x41,0x0A,0x72,0x00,0x17,0x1E,0x00,0x8F,0x5F,0x47,0x10,0x40,0x00,0x00,0x20, -}; -uint8_t tileset_tile_63_compressed[107] = { - 0x10,0x06,0x10,0x1B,0x1B,0x16,0x0F,0x00,0x16,0x16,0x1B,0x17,0x1B,0x00,0x17,0x76,0x02,0x03,0x0D,0x1B,0x8C,0x0F,0x45,0x1B,0x01,0x0F,0x09,0x0B,0x09,0x09,0x16,0x0B, - 0xDE,0x00,0x0F,0x0E,0x0B,0xA2,0x0F,0x16,0x09,0xEF,0x11,0x0F,0x0E,0xD3,0x0F,0x0B,0x77,0x00,0x0F,0x0E,0x77,0x1F,0x31,0x76,0x0F,0x0E,0x0A,0x89,0x1F,0x93,0x0E,0x0F, - 0x9E,0x00,0x62,0x0E,0x10,0x0A,0x64,0x00,0x17,0xB1,0x0E,0x52,0x0F,0x22,0x0E,0x00,0x25,0x0F,0x0E,0x27,0x00,0x17,0x00,0x96,0x0E,0x26,0x0F,0x54,0x0E,0x00,0xF3,0x5F, - 0x13,0x0E,0x00,0x10,0xCA,0x00,0x0E,0x00,0x80,0x00,0x40, -}; -uint8_t tileset_tile_64_compressed[53] = { - 0x10,0x14,0x10,0x4B,0x0E,0x00,0x15,0x44,0x08,0x42,0x00,0x13,0x0F,0xC1,0x10,0xBC,0x0F,0x3F,0x5F,0x68,0x0F,0x0E,0x49,0x6F,0x15,0x2F,0x03,0x0F,0x2A,0x21,0x15,0xAE, - 0x02,0x03,0x79,0x0F,0xFE,0x00,0x0E,0x00,0x3F,0x0F,0x00,0x8F,0x0F,0xB9,0x11,0xE3,0x05,0x60,0x00,0x00,0x10, -}; -uint8_t tileset_tile_65_compressed[44] = { - 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x75,0x41,0x3A,0x04,0x95,0x66,0x00,0x24,0x06,0x9A,0x03,0x02,0x0E,0x97,0x00,0x15,0x06,0x7C,0x03,0x02,0x18, - 0x2A,0x00,0x4B,0x00,0x25,0x07,0x4B,0x1D,0x00,0x00,0x00,0x80, -}; -uint8_t tileset_tile_66_compressed[59] = { - 0x10,0x22,0x10,0x08,0x0A,0x00,0x15,0x0E,0x00,0x46,0x4B,0xC7,0x0E,0x91,0x0F,0x4B,0x4B,0xB0,0x2F,0xD4,0x0F,0x7C,0x2F,0x7C,0x4F,0x7A,0x6F,0x08,0x75,0x1F,0x15,0x44, - 0x00,0xF6,0x3F,0x0B,0x07,0x15,0x9B,0x3D,0x00,0x45,0x0E,0xC7,0x00,0x7C,0x0F,0x0D,0x00,0x6D,0x0D,0xCF,0x0F,0x05,0x0A,0xC0,0x00,0x00,0x20, -}; -uint8_t tileset_tile_67_compressed[44] = { - 0x10,0x19,0x10,0x4B,0x0E,0x00,0x15,0x08,0x12,0x00,0x0E,0x86,0x64,0x0F,0x06,0x8E,0x1E,0xD6,0x14,0x15,0x0E,0x3A,0x9B,0x1D,0x07,0x84,0x62,0x00,0xB8,0x2E,0x1E,0x33, - 0x00,0x43,0x15,0xF0,0x1D,0xFC,0x58,0x37,0x1E,0x00,0x00,0x80, -}; -uint8_t tileset_tile_68_compressed[40] = { - 0x10,0x22,0x10,0x08,0x4D,0x00,0x15,0x0E,0x00,0x4B,0x1C,0x0F,0x0E,0x86,0xB8,0x0F,0x10,0xB5,0x0F,0x3A,0xE8,0x10,0x00,0x08,0x6F,0x00,0x1D,0x83,0x38,0x00,0x22,0x53, - 0x43,0x3A,0xB0,0x41,0xD4,0x1E,0x00,0x02, -}; -uint8_t tileset_tile_69_compressed[112] = { - 0x10,0x22,0x10,0x4B,0x59,0x00,0x04,0x00,0x05,0x04,0x12,0x0D,0x03,0x34,0x03,0x05,0x0E,0x05,0x49,0x0F,0x05,0x01,0xF2,0x0E,0x03,0x28,0x0B,0x1F,0x2B,0x01,0x01,0xE4, - 0x02,0x0F,0xFE,0x0C,0x02,0x08,0xAB,0x1D,0x03,0x12,0xBF,0x1D,0x02,0x1C,0xBF,0x0E,0x0F,0x00,0x9A,0x4B,0xEA,0x0D,0x4E,0xEE,0x1F,0x4A,0x5A,0x00,0x42,0xA4,0x6F,0x1C, - 0x9D,0x1D,0x0B,0xD9,0x2D,0x2F,0x1C,0x03,0xDD,0x0A,0x49,0xF7,0x52,0x31,0x3C,0x72,0x17,0xF3,0x50,0x00,0x27,0x0F,0x05,0x00,0xAA,0x7B,0x2F,0x8C,0x0F,0x90,0xB9,0x27, - 0x00,0x5D,0x1F,0x1F,0xCF,0x4C,0x0F,0xD8,0x5E,0xB8,0x4D,0x7F,0xC0,0x03,0x00,0x20, -}; -uint8_t tileset_tile_70_compressed[84] = { - 0x10,0x11,0x10,0x01,0x05,0x8E,0x00,0x01,0x00,0xA6,0x04,0x0B,0x9A,0x0E,0xF9,0x06,0x03,0xE3,0x09,0xF8,0x2F,0x00,0xD8,0x0D,0xBA,0x27,0x0C,0x49,0x04,0x11,0x3F,0x04, - 0x0E,0x2C,0x10,0xF5,0x00,0x0E,0x3C,0x11,0xEF,0x0D,0x03,0x03,0x09,0x98,0x02,0x04,0x03,0xBD,0x03,0x11,0x03,0x75,0x0C,0x06,0x4B,0x1B,0x05,0x11,0xAA,0x17,0x27,0xBF, - 0x29,0x63,0x0F,0xB9,0x30,0x6E,0x03,0x0F,0xE5,0x48,0x7F,0x8D,0x8B,0x09,0xA3,0x07,0xC2,0xBF,0x00,0x01, -}; -uint8_t tileset_tile_71_compressed[102] = { - 0x10,0x0D,0x10,0x04,0x05,0x04,0x00,0x4B,0x13,0x00,0x84,0x0E,0x05,0x05,0x03,0x03,0x4A,0x11,0x01,0xB8,0x10,0x03,0xC7,0x0F,0x01,0x01,0xCF,0x02,0x11,0x5D,0x0C,0x30, - 0x4F,0x21,0x22,0xDF,0x1A,0x0F,0x10,0xCF,0x00,0x1F,0x57,0x50,0x00,0x37,0x53,0x0E,0x2A,0x20,0x05,0x6E,0x31,0x0D,0xE4,0x31,0x13,0xD5,0x21,0x1C,0x1F,0x25,0x4C,0xEA, - 0x55,0x04,0x03,0x0F,0x96,0x2A,0xFE,0x24,0x00,0x20,0x7B,0x0F,0x12,0x8F,0x0F,0xF4,0x01,0x0F,0x1F,0x4D,0x0F,0x84,0xC5,0x5F,0x0F,0x52,0x6B,0x1F,0x1F,0x38,0x96,0x7D, - 0xC8,0x10,0x1C,0x1F,0x00,0x04, -}; -uint8_t tileset_tile_72_compressed[46] = { - 0x10,0x20,0x10,0x00,0x21,0x49,0x00,0x0C,0x07,0xA6,0x00,0x0E,0x55,0x11,0x00,0xA7,0x04,0x0C,0x0E,0x8B,0x0F,0xA4,0x08,0x22,0x53,0x0F,0x0C,0x08,0x45,0x22,0x64,0x0F, - 0x06,0x0C,0x22,0x57,0x0F,0x05,0x19,0x0F,0x71,0x3B,0x70,0x0F,0x00,0x08, -}; -uint8_t tileset_tile_73_compressed[18] = { - 0x10,0x20,0x10,0x00,0x7E,0x00,0x47,0x07,0x34,0x00,0x11,0x00,0x0C,0x0D,0x70,0x03,0x00,0x08, -}; -uint8_t tileset_tile_74_compressed[18] = { - 0x10,0x20,0x10,0x00,0x7E,0x00,0x47,0x07,0x34,0x00,0x11,0x00,0x0C,0x0D,0x70,0x03,0x00,0x08, -}; -uint8_t tileset_tile_75_compressed[41] = { - 0x10,0x20,0x10,0x00,0x7E,0x00,0x4C,0x07,0x00,0x0C,0x99,0x0F,0x11,0xAC,0x00,0x0C,0x03,0x22,0x0C,0x8E,0x0F,0xE3,0x10,0xB8,0x0F,0x10,0xF4,0x0F,0x0C,0x77,0x0F,0x01, - 0x1D,0x0F,0xC7,0x02,0x70,0x0F,0x03,0x00,0x08, -}; -uint8_t tileset_tile_76_compressed[79] = { - 0x10,0x11,0x10,0x00,0x10,0xA2,0x00,0x02,0x16,0x0F,0x33,0x00,0x0F,0x2C,0x16,0x12,0x00,0x09,0x12,0x97,0x00,0x0F,0x94,0x20,0x09,0x09,0x96,0x06,0x6F,0x1F,0x1E,0x02, - 0xB9,0x0E,0xE4,0x1F,0x0C,0xB8,0x23,0xAB,0x1F,0x06,0x85,0xE1,0x3F,0x18,0x5F,0x94,0x7F,0x07,0x5E,0x00,0x0F,0x07,0xD2,0x1B,0x16,0xA8,0x00,0x0F,0x03,0x02,0x0F,0x84, - 0xA6,0x0F,0x4B,0x5F,0x0F,0x4F,0x0F,0x1B,0x3F,0xC6,0x1D,0x40,0x0F,0x00,0x20, -}; -uint8_t tileset_tile_77_compressed[59] = { - 0x10,0x84,0x11,0x00,0x0F,0xC4,0x00,0x09,0x12,0xB1,0x00,0x09,0x07,0x09,0x67,0x16,0x07,0xA9,0x11,0xA5,0x25,0x07,0x8B,0x1B,0xBB,0x07,0x39,0x8B,0x03,0x8F,0x3F,0x84, - 0x27,0x5F,0x77,0x99,0x07,0x07,0x1C,0x00,0x16,0xA5,0x00,0x0F,0xC2,0x04,0xD7,0x07,0x43,0xF3,0x74,0x00,0xA1,0x07,0x07,0xE8,0x00,0x00,0x04, -}; -uint8_t tileset_tile_78_compressed[59] = { - 0x10,0x84,0x11,0x00,0x0F,0xC4,0x00,0x09,0x12,0xB1,0x00,0x09,0x07,0x09,0x67,0x16,0x07,0xA9,0x11,0xA5,0x25,0x07,0x8B,0x1B,0xBB,0x07,0x39,0x8B,0x03,0x8F,0x3F,0x84, - 0x27,0x5F,0x77,0x99,0x07,0x07,0x1C,0x00,0x16,0xA5,0x00,0x0F,0xC2,0x04,0xD7,0x07,0x43,0xF3,0x74,0x00,0xA1,0x07,0x07,0xE8,0x00,0x00,0x04, -}; -uint8_t tileset_tile_79_compressed[77] = { - 0x10,0x8F,0x00,0x23,0x00,0x0F,0x02,0x00,0x09,0x02,0x09,0x12,0x5B,0x00,0x07,0xFE,0x04,0x0F,0x02,0x59,0x18,0x2A,0x06,0x0F,0xAE,0x14,0x08,0x5A,0x20,0x0F,0x92,0x15, - 0x49,0x12,0xEE,0x1F,0x18,0xE1,0x1F,0x58,0x3F,0x42,0x5F,0x79,0x79,0x91,0x1F,0x07,0x74,0x00,0x0F,0x16,0xA5,0x00,0x0F,0xFA,0x04,0x00,0x22,0x07,0x3C,0x0F,0x07,0x02, - 0xB4,0x46,0x0F,0xD7,0x52,0x0F,0x19,0x3F,0x09,0x40,0x0F,0x00,0x20, -}; -uint8_t tileset_tile_80_compressed[74] = { - 0x10,0x20,0x10,0x4B,0x85,0x00,0x0D,0x72,0x00,0x4C,0x05,0x0E,0x0B,0xA9,0x00,0x6E,0x04,0x12,0xE7,0x09,0x0F,0xE1,0x02,0x8B,0x0F,0x00,0x89,0x0F,0x24,0x0D,0x13,0x00, - 0xE6,0x11,0x5F,0xD2,0x09,0x06,0xCB,0x00,0x1F,0x91,0x0F,0x06,0x0D,0xDC,0x0F,0x10,0x71,0x0F,0x06,0x13,0x1F,0x0F,0x73,0x04,0xDF,0x4F,0x1E,0x02,0xA6,0x01,0x4B,0x20, - 0x97,0x3E,0x04,0x9E,0x0F,0x64,0x5E,0x0D,0x00,0x02, -}; -uint8_t tileset_tile_81_compressed[68] = { - 0x10,0x21,0x10,0x4B,0xF5,0x00,0x0D,0x4F,0x00,0x08,0x6A,0x00,0x0B,0x00,0x89,0x09,0x4B,0x13,0x0F,0x70,0x04,0xB4,0x0F,0x6A,0x34,0x13,0x59,0x00,0x15,0x0B,0x06,0x00, - 0xCB,0x04,0x12,0x73,0x0D,0x5D,0x00,0x10,0x46,0x0D,0x71,0x10,0x04,0x92,0x10,0xDC,0x06,0x15,0x5F,0x18,0x26,0x18,0x16,0x13,0xB4,0x02,0x13,0x6D,0x25,0x46,0x6E,0xA0, - 0x34,0x0D,0x00,0x10, -}; -uint8_t tileset_tile_82_compressed[74] = { - 0x10,0x20,0x10,0x4B,0x85,0x00,0x0D,0x57,0x00,0x04,0xCA,0x00,0x0C,0x0B,0xA9,0x00,0x6A,0x04,0x10,0x7B,0x0A,0x04,0x42,0x0B,0xB2,0x0F,0x4F,0x00,0x0F,0xA4,0x09,0x13, - 0x00,0x4E,0x0D,0x0F,0x06,0x95,0x00,0x13,0x31,0x5F,0x06,0x0D,0x3C,0x0F,0xBA,0x1F,0x09,0x0D,0x3B,0x0F,0x0A,0x8F,0x0F,0x46,0x13,0x2D,0x0F,0x13,0x02,0x13,0x1B,0x4F, - 0xCD,0x04,0x1E,0x3A,0x6F,0x0D,0x78,0x0F,0x00,0x04, -}; -uint8_t tileset_tile_83_compressed[35] = { - 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x75,0x41,0x3A,0x02,0x17,0x66,0x00,0x18,0x48,0x0E,0xE3,0x00,0x17,0x30,0x0E,0x10,0x0D,0x23,0x0F,0x4B,0xA0, - 0x0F,0x00,0x10, -}; -uint8_t tileset_tile_84_compressed[41] = { - 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x76,0x41,0x78,0x1E,0x2D,0x71,0x43,0x15,0x0E,0x4B,0x15,0x00,0x2C,0x77,0x15,0x0E,0xE2,0x00,0xD7,0x3D,0x0E, - 0x0F,0x1B,0x1E,0x1E,0x1F,0x4B,0x80,0x00,0x40, -}; -uint8_t tileset_tile_85_compressed[122] = { - 0x10,0x00,0x10,0x1C,0x1C,0x03,0x01,0x01,0x04,0x04,0x3E,0x01,0x05,0x00,0x07,0xAB,0x09,0x0E,0x08,0xFE,0x0E,0x01,0x00,0xEE,0x11,0x0F,0xFB,0x10,0x00,0x0F,0xFF,0x07, - 0x0F,0x02,0x06,0xBB,0x08,0x11,0x3B,0x04,0x03,0x0F,0x18,0xBB,0x38,0x00,0xD7,0x0F,0x03,0x2F,0x77,0x0E,0x10,0xDC,0x0D,0x0F,0x97,0x28,0x20,0xDC,0x0C,0x1F,0xB6,0x28, - 0x3A,0x03,0xB7,0x23,0x1F,0x06,0x2F,0x10,0x06,0x7F,0x37,0x0F,0x10,0x72,0x36,0xD3,0x5F,0x00,0x4B,0x0F,0xB9,0x10,0x25,0x32,0x0F,0x97,0x10,0x3C,0x9B,0x1F,0x10,0xC2, - 0xC2,0x49,0x11,0x3D,0x74,0x0F,0x00,0x1C,0x2C,0x10,0xB7,0x58,0x1F,0x72,0x0F,0xF5,0x10,0x01,0x3F,0x35,0x0E,0xF0,0x54,0x03,0x00,0x08, -}; -uint8_t tileset_tile_86_compressed[86] = { - 0x10,0x1D,0x10,0x01,0x05,0x00,0xDC,0x03,0x06,0xFA,0x0A,0x05,0x01,0xE7,0x03,0x15,0x8A,0x00,0xD1,0x0C,0x04,0xAE,0x0F,0x04,0x00,0x49,0x28,0xAA,0x04,0x0E,0xE6,0x11, - 0x00,0xB2,0x0B,0x03,0x03,0x64,0x12,0x04,0xD3,0x0D,0x4E,0x10,0x0E,0x01,0xBE,0x0E,0x1C,0x64,0x04,0x03,0x91,0x35,0x93,0x04,0xDC,0x1B,0x07,0xDD,0x0F,0x69,0xF2,0x4F, - 0x05,0xF2,0x24,0x76,0x85,0xA3,0xF1,0x06,0x10,0xE1,0x9F,0x18,0xC0,0x15,0x0A,0x71,0x2E,0x61,0xCE,0x00,0x00,0x80, -}; -uint8_t tileset_tile_87_compressed[123] = { - 0x10,0x14,0x10,0x04,0x01,0x00,0x05,0xCA,0x00,0x01,0x04,0x09,0x0B,0x03,0x1C,0x1C,0x04,0x0D,0xAF,0x12,0x07,0x01,0xFA,0x07,0x10,0x16,0xBE,0x0F,0x06,0xED,0x0E,0x0F, - 0x03,0xDD,0x08,0x0D,0xB1,0x0E,0x05,0x05,0x1C,0x03,0x03,0x77,0x0C,0x3C,0x77,0x1F,0x0F,0x77,0x11,0x3D,0x6B,0x00,0x03,0x1F,0xBB,0x10,0x50,0xAB,0x36,0x4F,0xD7,0x08, - 0x03,0x44,0x2D,0x36,0xFC,0x6F,0x00,0x0F,0xBA,0x0E,0x16,0x1F,0x4B,0x36,0x0B,0xBE,0x48,0x0E,0x49,0x0F,0x2F,0x2C,0x0E,0x0F,0x4B,0x4B,0x1F,0xCB,0x42,0x0E,0x52,0x0F, - 0x49,0x6A,0x0D,0x86,0xBC,0x0E,0x4B,0x96,0x46,0x57,0x0E,0x1C,0x0E,0xA6,0x0F,0x03,0x0E,0xB9,0x0F,0xEE,0x1F,0x0E,0x4E,0x2F,0x10,0x00,0x01, -}; -uint8_t tileset_tile_88_compressed[51] = { - 0x10,0x1A,0x10,0x02,0x22,0x00,0x0C,0x9A,0x03,0x11,0x00,0x0C,0xE0,0x03,0x76,0x0F,0x26,0x25,0x0C,0x00,0x95,0x0F,0x25,0x1A,0x0F,0x25,0x87,0x04,0x0F,0x25,0x07,0x07, - 0x5F,0x0F,0x0B,0x71,0x10,0x15,0x0F,0x0E,0x71,0x10,0x09,0x0F,0x0C,0xA6,0x10,0x00,0x80,0x00,0x40, -}; -uint8_t tileset_tile_89_compressed[49] = { - 0x10,0x34,0x10,0x11,0x00,0x0C,0x0F,0x70,0x03,0xC2,0x00,0x07,0xC8,0x04,0x0A,0x0B,0xBF,0x0E,0x0D,0x00,0x8A,0x0E,0xE3,0x0C,0x29,0x0F,0x1D,0x0A,0x17,0x2D,0x64,0x0E, - 0x22,0x0B,0x5F,0x1E,0x0E,0xA5,0x03,0x07,0x00,0xDD,0x0F,0x25,0x00,0xC0,0x41,0x00,0x20, -}; -uint8_t tileset_tile_90_compressed[51] = { - 0x10,0x34,0x10,0x11,0x00,0x0C,0x0F,0x71,0x03,0xE5,0x00,0x0B,0x0A,0xA2,0x05,0x07,0x74,0x0F,0x00,0x0A,0x5A,0x10,0x0B,0xE3,0x00,0x17,0x21,0x0A,0x21,0x3E,0x0F,0x1F, - 0x22,0xE2,0x10,0xFE,0x20,0x0B,0x10,0x2E,0x20,0xDD,0x3D,0x25,0x00,0x4B,0x0F,0x00,0x00,0x00,0x80, -}; -uint8_t tileset_tile_91_compressed[51] = { - 0x10,0x35,0x10,0x11,0x00,0x0C,0xBB,0x03,0x22,0x00,0x03,0x40,0x02,0xDE,0x0F,0x0C,0x99,0x00,0x25,0x1E,0x0F,0x25,0x8F,0x0F,0x43,0x25,0xC2,0x0F,0x07,0x07,0x25,0x2E, - 0x0F,0xB8,0x0E,0x00,0x99,0x0F,0x32,0x0E,0x00,0x02,0x07,0x7B,0x00,0x0D,0xD0,0x42,0x02,0x00,0x08, -}; -uint8_t tileset_tile_92_compressed[59] = { - 0x10,0x05,0x10,0x02,0x12,0x12,0x09,0x92,0x00,0x07,0x09,0xC2,0x00,0x4B,0x0F,0x0F,0x00,0x24,0x07,0x0F,0x0E,0x52,0x0F,0x0F,0x07,0xFB,0x00,0x20,0x10,0xE6,0x16,0x2F, - 0xFB,0x0F,0x02,0x25,0x44,0x09,0xFA,0x0F,0x0C,0x00,0x0F,0x7E,0x3F,0x0F,0xAE,0x02,0x23,0x7B,0x3F,0x0E,0xB8,0x10,0x1F,0xE0,0x7F,0x00,0x10, -}; -uint8_t tileset_tile_93_compressed[44] = { - 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x13,0x06,0x0F,0xCB,0x07,0x10,0xCF,0x0E,0x07,0x7D,0x21,0x00,0xCF,0x2D,0x07,0xAE,0x04,0x07,0x1B,0x79,0x07,0xA7, - 0x1B,0x07,0xE6,0x06,0x56,0x9A,0x07,0x07,0xF8,0x7F,0x00,0x04, -}; -uint8_t tileset_tile_94_compressed[44] = { - 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x13,0x06,0x0F,0xCB,0x07,0x10,0xCF,0x0E,0x07,0x7D,0x21,0x00,0xCF,0x2D,0x07,0xAE,0x04,0x07,0x1B,0x79,0x07,0xA7, - 0x1B,0x07,0xE6,0x06,0x56,0x9A,0x07,0x07,0xF8,0x7F,0x00,0x04, -}; -uint8_t tileset_tile_95_compressed[57] = { - 0x10,0x12,0x10,0x07,0x09,0xDE,0x00,0x07,0x04,0x07,0x42,0x02,0x09,0x0F,0x0F,0x1D,0x0E,0x0F,0x07,0x57,0x00,0x0F,0x13,0x7D,0x10,0x09,0x5F,0x1B,0x00,0x0F,0xDC,0x08, - 0x18,0xB2,0x30,0x55,0x0F,0x25,0xCF,0x23,0x0F,0x76,0x1B,0x34,0x07,0x96,0x3F,0x4B,0x0E,0x10,0x9A,0x3F,0x07,0xF8,0x7F,0x00,0x04, -}; -uint8_t tileset_tile_96_compressed[79] = { - 0x10,0x35,0x10,0x4B,0x00,0x0D,0x09,0x00,0x13,0x0D,0x06,0x69,0x00,0x0E,0x0B,0xFC,0x00,0x0F,0x10,0x77,0x0F,0x10,0x1D,0x0F,0xC7,0x10,0xDC,0x0F,0x10,0xF5,0x4F,0x00, - 0xFC,0x0C,0x02,0x0F,0xF2,0x20,0x73,0x2D,0x10,0xCC,0x0F,0x5E,0x0D,0x8E,0x0F,0x9F,0x1F,0x0E,0x89,0x7F,0x93,0x00,0x09,0x8C,0x7F,0x96,0x4C,0x39,0x0F,0x13,0x19,0x0F, - 0x7C,0x7F,0x01,0xF2,0x0F,0xA7,0x3E,0x0D,0x4F,0x4F,0x13,0x7F,0x00,0x00,0x80, -}; -uint8_t tileset_tile_97_compressed[74] = { - 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43, - 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x96,0x0E,0x5C,0x0D,0x8B,0x3B,0x9E,0x4E,0xA3,0x0D,0x38,0x10,0x04,0xC8,0x10,0xA0,0xA9,0x8A,0x18,0xE3,0x26,0x2F,0x16,0x7F, - 0x01,0x8D,0x25,0xA8,0x6E,0xD4,0x34,0x0D,0x00,0x02, -}; -uint8_t tileset_tile_98_compressed[85] = { - 0x10,0x12,0x10,0x0D,0x06,0x0A,0x00,0x0D,0x13,0x0D,0x00,0x64,0x4B,0x00,0x06,0x13,0xBB,0x0E,0x0F,0x0B,0x00,0xAA,0x10,0x0B,0xF8,0x02,0x0D,0xAD,0x0F,0x0D,0x0D,0x1B, - 0x0F,0xC6,0x0E,0x25,0x0F,0x13,0x00,0x9F,0x4F,0x1D,0x8B,0x1E,0x71,0x4B,0x0E,0xB3,0x0F,0xCF,0x3D,0x0F,0x2F,0x4E,0x73,0x13,0x0F,0x75,0x10,0x04,0x72,0x00,0xF7,0x6F, - 0x0B,0x04,0x14,0x7F,0x06,0x8C,0x0F,0xE3,0x2C,0x38,0x0F,0x0E,0xC9,0x0F,0x6A,0x2C,0x25,0x68,0x4F,0x00,0x04, -}; -uint8_t tileset_tile_99_compressed[86] = { - 0x10,0x33,0x10,0x4B,0x00,0x0D,0x0B,0x00,0x12,0x0D,0x0D,0x06,0xCE,0x00,0x0F,0x13,0x44,0x0D,0xF5,0x0F,0x00,0x0F,0x35,0x10,0xDA,0x0C,0x2E,0x13,0x6E,0x10,0x0B,0xEF, - 0x0F,0x1F,0x0F,0xE7,0x10,0x0F,0xB6,0x0E,0x13,0x0C,0x13,0x9A,0x0F,0x7E,0x2D,0x10,0xEE,0x3F,0x3C,0x7E,0x6F,0x06,0xE2,0x1B,0x6E,0x0F,0x12,0x58,0x2C,0xCE,0x10,0x04, - 0x32,0x10,0x5B,0x06,0x15,0x8B,0x18,0xE3,0x26,0x2F,0x16,0x7F,0x01,0x8D,0x25,0xA8,0x6E,0xD4,0x34,0x0D,0x00,0x02, -}; -uint8_t tileset_tile_100_compressed[93] = { - 0x10,0x12,0x10,0x0D,0x06,0x0C,0x00,0x0D,0x0D,0x0B,0x00,0x0D,0x4B,0xC9,0x00,0x06,0x13,0x13,0x0E,0x13,0xFF,0x0F,0x0B,0x21,0x13,0xFC,0x00,0x0F,0x22,0xBF,0x0F,0x0D, - 0x1D,0xCB,0x00,0x30,0xC9,0x00,0x2C,0x25,0x1F,0xF2,0x0F,0x02,0x4F,0x2C,0x10,0x77,0x0F,0x1D,0x3D,0x10,0xCF,0x02,0x0D,0x77,0x42,0x3F,0x2D,0x10,0xCD,0x48,0x00,0x27, - 0x5D,0x06,0x19,0x10,0xC6,0x04,0x4A,0x10,0x06,0x13,0x8D,0x0E,0xA8,0x78,0xC5,0x16,0x13,0xA3,0x02,0x13,0x6A,0x25,0x6E,0x35,0x34,0x0D,0x00,0x00,0x80, -}; -uint8_t tileset_tile_101_compressed[109] = { - 0x10,0x03,0x10,0x1F,0x1F,0x1C,0x1C,0x04,0x00,0x4A,0x03,0x00,0x05,0x49,0x04,0x0E,0x3E,0x0D,0x0E,0x05,0xB9,0x0F,0x9F,0x0D,0x01,0x0E,0x03,0x10,0x0F,0x01,0x11,0x01, - 0x04,0x01,0x3F,0x0F,0x2A,0x1D,0x5F,0x03,0x12,0x4F,0x7D,0x0F,0x1C,0xFA,0x0E,0x0F,0x00,0x4B,0x5B,0x20,0x0D,0xFB,0x00,0x59,0x0F,0xE5,0x05,0x0D,0xAC,0x1E,0x0A,0x4B, - 0x4B,0xA9,0x1E,0x2E,0x0B,0x2D,0xBE,0x2F,0x0F,0x3D,0x49,0x49,0x29,0x52,0x1F,0x04,0x73,0x4D,0x73,0x50,0x00,0x27,0x0F,0x05,0x00,0xFE,0x4F,0x0F,0x0D,0x32,0x0F,0x22, - 0x6E,0xF0,0x00,0x8F,0x8D,0x2F,0xE2,0x7E,0x6E,0x2E,0x16,0x00,0x01, -}; -uint8_t tileset_tile_102_compressed[84] = { - 0x10,0x11,0x10,0x01,0x05,0x8E,0x00,0x01,0x00,0xA6,0x04,0x0B,0x9A,0x0E,0xF9,0x06,0x03,0xE3,0x09,0xF8,0x2F,0x00,0xD8,0x0D,0xBA,0x27,0x0C,0x49,0x04,0x11,0x3F,0x04, - 0x0E,0x2C,0x10,0xF5,0x00,0x0E,0x3C,0x11,0xEF,0x0D,0x03,0x03,0x09,0x98,0x02,0x04,0x03,0xBD,0x03,0x11,0x03,0x75,0x0C,0x06,0x4B,0x1B,0x05,0x11,0xAA,0x17,0x27,0xBF, - 0x29,0x63,0x0F,0xB9,0x30,0x6E,0x03,0x0F,0xE5,0x48,0x7F,0x8D,0x8B,0x09,0xA3,0x07,0xC2,0xBF,0x00,0x01, -}; -uint8_t tileset_tile_103_compressed[107] = { - 0x10,0x09,0x10,0x04,0x05,0x03,0x58,0x00,0x04,0x00,0x1C,0x1C,0x1F,0x38,0x1F,0x05,0x10,0x9A,0x11,0x10,0x52,0x01,0x10,0x01,0x69,0x11,0x9A,0x0F,0x01,0x01,0x01,0x27, - 0x0F,0x0C,0xFE,0x30,0x21,0x02,0x75,0x0F,0x01,0xF7,0x0F,0x10,0x22,0xFD,0x0F,0x4F,0x1F,0x5C,0x50,0x00,0xAE,0x1E,0x4B,0x0E,0x5A,0x20,0x00,0xAF,0x5F,0x0F,0x0D,0xB9, - 0x31,0x29,0x13,0x20,0x4B,0xC9,0x1F,0x4C,0x27,0x55,0x41,0x5C,0x0F,0x06,0xD6,0x4E,0x51,0x04,0x9E,0x0F,0xE3,0x12,0xFD,0x0F,0x01,0x0F,0x1F,0x13,0x0F,0x7C,0x70,0x0F, - 0x76,0x2F,0x8F,0x17,0x08,0x13,0x30,0x84,0x80,0x00,0x02, -}; -uint8_t tileset_tile_104_compressed[79] = { - 0x10,0x05,0x10,0x02,0x07,0x0C,0x25,0xA6,0x00,0x07,0x00,0x4C,0x02,0x10,0x0C,0x99,0x00,0x02,0x71,0x21,0x6B,0x0F,0x17,0x10,0x8A,0x0F,0x4B,0x0B,0x10,0x10,0x0F,0x1B, - 0x96,0x10,0x26,0x3F,0x59,0x10,0xF9,0x00,0x3F,0x67,0x10,0x00,0xD7,0x0F,0x1B,0x10,0x14,0x1F,0x1B,0x8C,0x10,0xBA,0x0F,0x10,0x4F,0x17,0x00,0x26,0x0F,0x10,0x17,0x4D, - 0x0A,0x00,0x2F,0x0F,0x10,0x3C,0x00,0xD1,0x0F,0xF0,0x1F,0xC4,0x0F,0x00,0x02, -}; -uint8_t tileset_tile_105_compressed[62] = { - 0x10,0x25,0x10,0x07,0x00,0x48,0x0C,0x00,0x0A,0xE5,0x00,0x08,0x4A,0x07,0x0B,0x22,0x8A,0x0F,0x99,0x10,0x0C,0x17,0x20,0x71,0x0D,0x9C,0x20,0x00,0x7C,0x10,0xD2,0x5F, - 0xB4,0x62,0x25,0x0F,0x02,0x72,0x00,0x07,0x1E,0x00,0x47,0x17,0x23,0x00,0x0A,0x91,0x00,0x10,0xC4,0x00,0x02,0x1A,0x62,0x00,0x02,0x1F,0x0F,0x80,0x00,0x40, -}; -uint8_t tileset_tile_106_compressed[74] = { - 0x10,0x34,0x10,0x0A,0x00,0x0C,0x89,0x00,0x07,0x72,0x00,0x0E,0x22,0x0C,0xF9,0x13,0x0F,0x67,0x16,0x0E,0x9E,0x0F,0xA2,0x11,0xEE,0x1E,0x0D,0x33,0x1E,0x0C,0x8F,0x2D, - 0x44,0x25,0xD2,0x5C,0x00,0x02,0x39,0x00,0x07,0x0F,0x23,0x00,0x17,0x91,0x00,0x0A,0xC9,0x00,0x10,0x82,0x00,0x02,0x0B,0x0B,0x1B,0xE7,0x00,0x17,0x4D,0x02,0x17,0x3A, - 0x0F,0x1B,0x68,0x4F,0x89,0x0F,0xA0,0x00,0x00,0x10, -}; -uint8_t tileset_tile_107_compressed[93] = { - 0x10,0x26,0x10,0x07,0x00,0x58,0x25,0x00,0x0C,0x07,0x02,0x4D,0x0C,0x00,0x34,0x0E,0x5D,0x0F,0x22,0x0E,0x10,0xAD,0x0F,0x0E,0x17,0x13,0x0F,0x22,0x0E,0x0B,0x22,0x0F, - 0x52,0x0E,0x1B,0x02,0x79,0x5F,0x79,0x0E,0x3F,0xE5,0x00,0x0E,0x44,0x17,0xDB,0x1F,0x0E,0x1B,0x0F,0x8C,0x0E,0xA4,0x0F,0x17,0xF7,0x00,0x0E,0x49,0x0F,0x0A,0x97,0x00, - 0x17,0x0E,0x56,0x0F,0x05,0x1B,0x77,0x0B,0x77,0x0E,0x69,0x0F,0x10,0x79,0x00,0x37,0xA6,0x0F,0x4E,0x4E,0x1B,0x0F,0x1B,0x9A,0x00,0x78,0x0F,0x00,0x04, -}; -uint8_t tileset_tile_108_compressed[61] = { - 0x10,0x05,0x10,0x02,0x12,0x12,0x09,0x92,0x00,0x07,0x09,0xC2,0x00,0x4B,0x0F,0x0F,0x00,0x25,0x07,0x0F,0x00,0xF8,0x0F,0x0A,0xB4,0x00,0x02,0x68,0x0E,0x07,0x00,0x02, - 0x8D,0x00,0x71,0x00,0x10,0xB0,0x1F,0x89,0x0F,0x31,0x2D,0x85,0x00,0x10,0x07,0x31,0x1E,0x2E,0x00,0x1D,0x0F,0xE7,0x09,0x0F,0x81,0x82,0x1F,0x00,0x01, -}; -uint8_t tileset_tile_109_compressed[46] = { - 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x62,0x00,0x21,0x07,0xE4,0x00,0x02,0x74,0x00,0x3E,0x2F,0x07,0x46,0x10,0xC3,0x00,0xF0,0x0F,0xF9,0x6F,0x02,0x09, - 0x19,0x00,0xA3,0x0F,0x0F,0x2E,0x00,0x0F,0x26,0x3C,0xA0,0x0F,0x00,0x10, -}; -uint8_t tileset_tile_110_compressed[53] = { - 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x62,0x00,0x21,0x07,0xE4,0x00,0x02,0x74,0x00,0x3E,0x2F,0x1E,0x8F,0x00,0x46,0x1D,0x71,0x00,0x0E,0xB9,0x4E,0x11, - 0x02,0x0B,0x69,0x00,0x02,0xA1,0x06,0x28,0x0F,0xF5,0x2F,0x0A,0xA6,0x00,0x02,0x06,0x84,0x20,0x0F,0x00,0x10, -}; -uint8_t tileset_tile_111_compressed[54] = { - 0x10,0x12,0x10,0x07,0x09,0xDE,0x00,0x07,0x04,0x07,0x42,0x02,0x09,0x0F,0x0F,0x64,0x00,0x07,0xB8,0x0F,0xD8,0x00,0x42,0x0F,0x39,0x00,0x10,0x1A,0x1D,0x10,0x42,0x00, - 0x05,0x0F,0x31,0x1E,0x06,0x00,0x1D,0x07,0x10,0x2D,0x00,0x10,0x8B,0x0F,0xA4,0x05,0x10,0x0C,0x50,0x1F,0x00,0x08, -}; -uint8_t tileset_tile_112_compressed[75] = { - 0x10,0x33,0x10,0x4B,0x00,0x0D,0x0B,0x00,0x12,0x0D,0x0D,0x06,0xCE,0x00,0x0F,0x13,0x44,0x0D,0xFA,0x0F,0x00,0x0E,0x13,0x69,0x10,0xEE,0x1E,0x10,0x3D,0x0F,0x0D,0x1B, - 0x0F,0xF3,0x0C,0x02,0xCC,0x0F,0x2D,0x13,0x9E,0x4F,0x75,0x5E,0x0D,0xCF,0x1F,0x30,0x73,0x42,0x72,0x0F,0x10,0x73,0x00,0x07,0xCB,0x0F,0x25,0x0A,0x4F,0x0F,0x0A,0x24, - 0x34,0xDC,0x5F,0x07,0x90,0x04,0x43,0x00,0x00,0x00,0x80, -}; -uint8_t tileset_tile_113_compressed[77] = { - 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43, - 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x93,0x0E,0xF7,0x1D,0x0D,0x00,0x24,0x0F,0xAA,0x00,0x0B,0x00,0xBE,0x07,0x1E,0x58,0x0A,0x88,0x04,0x5A,0x0F,0x7D,0x34,0x0F, - 0x4B,0x6B,0x09,0x4B,0x00,0x95,0x14,0x4B,0x0F,0x40,0x00,0x00,0x20, -}; -uint8_t tileset_tile_114_compressed[80] = { - 0x10,0x12,0x10,0x0D,0x06,0x0C,0x00,0x0D,0x0D,0x0B,0x00,0x0D,0x4B,0xC9,0x00,0x06,0x13,0x13,0x0E,0x13,0xFF,0x0F,0x0B,0x21,0x13,0xFC,0x00,0x10,0x00,0xBF,0x0F,0x0D, - 0x1D,0xCF,0x00,0x20,0x24,0x2C,0x67,0x0F,0x0A,0x18,0x0F,0x0D,0x8D,0x0F,0x9E,0x0E,0x7E,0x4F,0x04,0x26,0x1E,0xEA,0x1F,0x04,0xEE,0x00,0x0E,0x7B,0x0F,0x09,0x86,0x2E, - 0x0F,0x2A,0x7B,0x0F,0x50,0xBB,0x52,0x59,0x4D,0x0D,0x5F,0x0F,0xC0,0x00,0x00,0x20, -}; -uint8_t tileset_tile_115_compressed[92] = { - 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43, - 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x97,0x0E,0x77,0x71,0x00,0x18,0x3B,0x00,0x0B,0x0B,0x0D,0xAF,0x02,0x10,0x19,0x8A,0x0F,0xAA,0x10,0x2A,0x8A,0x0F,0xEE,0x04, - 0x4C,0x6B,0x40,0x0E,0x92,0x0F,0xDD,0x10,0x4B,0x00,0xD5,0x12,0x0F,0xF7,0x7F,0x01,0x0F,0x72,0x20,0xF3,0x3E,0x04,0xCF,0x0F,0x7F,0x00,0x00,0x80, -}; -uint8_t tileset_tile_116_compressed[92] = { - 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43, - 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x96,0x0E,0x5C,0x0D,0x9A,0x3B,0xEA,0x03,0x00,0x5E,0x30,0x06,0x8A,0x03,0x0B,0x0B,0x02,0x96,0x41,0xD3,0x74,0x0B,0xAE,0x0F, - 0x06,0x3B,0xE7,0x0E,0x1F,0x92,0x13,0xEE,0x10,0x3F,0xEE,0x74,0x0F,0xDC,0x0C,0x4B,0x00,0xD2,0x0E,0x5F,0x2F,0x0F,0x20,0x1B,0x0F,0x00,0x00,0x80, -}; -uint8_t tileset_tile_117_compressed[124] = { - 0x10,0x00,0x10,0x47,0x47,0x03,0x01,0x01,0x04,0x04,0x3E,0x01,0x05,0x00,0x07,0xBF,0x09,0x0E,0x0A,0x05,0x7D,0x49,0x10,0x00,0x9D,0x11,0x04,0x1C,0x0F,0xF7,0x10,0x00, - 0x0F,0xFF,0x07,0x0F,0x02,0x06,0x76,0x08,0x11,0x04,0x77,0x03,0x0F,0x18,0x77,0x38,0x00,0xAE,0x0F,0x03,0x2F,0xEF,0x0E,0x10,0x0D,0xB9,0x0F,0x2F,0x28,0x20,0x0C,0xB9, - 0x1F,0x6D,0x28,0x3A,0x03,0x6E,0x23,0x1F,0x06,0x5E,0x10,0x06,0xFE,0x37,0x0F,0x10,0xE5,0x36,0x5F,0xA7,0x00,0x4B,0x0F,0x72,0x10,0x4B,0x32,0x0F,0x2F,0x10,0x3C,0x36, - 0x1F,0x10,0x1C,0xAB,0x00,0x10,0xBF,0x74,0x0F,0x00,0x4B,0x1C,0x10,0x2C,0x58,0xD3,0x1F,0x7C,0x10,0x01,0x0E,0xB7,0x0F,0x44,0x70,0x03,0x00,0x08, -}; -uint8_t tileset_tile_118_compressed[87] = { - 0x10,0x1D,0x10,0x01,0x05,0x00,0xDC,0x03,0x06,0xFA,0x0A,0x05,0x01,0xE7,0x03,0x15,0x8A,0x00,0xD1,0x0C,0x04,0xAE,0x0F,0x04,0x00,0x49,0x28,0xAA,0x04,0x0E,0xE6,0x11, - 0x00,0xB2,0x0B,0x03,0x03,0x64,0x12,0x04,0xD3,0x0D,0x4E,0x10,0x0E,0x01,0xBE,0x0E,0x1C,0x64,0x04,0x03,0x91,0x35,0x89,0x04,0x01,0xE2,0x3C,0x52,0x0F,0x03,0xA6,0x0F, - 0x03,0x24,0x9E,0x51,0xEE,0x07,0x0E,0x6B,0x65,0x02,0xB8,0x15,0xC9,0x00,0x1C,0x0E,0x37,0x00,0xDC,0x04,0x00,0x00,0x02, -}; -uint8_t tileset_tile_119_compressed[124] = { - 0x10,0x14,0x10,0x04,0x01,0x00,0x05,0xCA,0x00,0x01,0x04,0x09,0x0B,0x03,0x47,0x47,0x04,0x0D,0xAF,0x12,0x07,0x01,0xFA,0x07,0x10,0x16,0xBE,0x0F,0x06,0xF1,0x0E,0x0F, - 0x1C,0x04,0x03,0xDD,0x08,0x0D,0xB1,0x0E,0x05,0x05,0x1C,0x03,0x03,0x77,0x0C,0x3C,0x77,0x1F,0x0F,0x77,0x11,0x3D,0x6B,0x00,0x03,0x1F,0xBB,0x10,0x50,0xAE,0x36,0x0F, - 0xD7,0x1B,0x03,0x44,0x2F,0x36,0x0F,0x7C,0x26,0x0F,0xBA,0x0E,0x16,0x1F,0x4B,0x36,0x0B,0xBE,0x48,0x0E,0x49,0x0F,0x2F,0x2C,0x0E,0x0F,0x4B,0x4B,0x1F,0xCB,0x42,0x0E, - 0x57,0x0F,0x6A,0x6A,0x0E,0x1C,0x00,0xD2,0x0E,0x4B,0xCA,0x46,0x0E,0x1C,0xF4,0x0E,0x0F,0x03,0xF1,0x0E,0x53,0x1F,0x7C,0x0E,0x0F,0x10,0x00,0x02, -}; -uint8_t tileset_tile_120_compressed[72] = { - 0x10,0x0B,0x10,0x02,0x17,0x1B,0x00,0x26,0x17,0x0A,0x00,0x82,0x02,0x0F,0x0B,0x17,0x3B,0x0F,0x10,0x8E,0x0F,0xE2,0x10,0xD7,0x0F,0x0A,0x10,0x17,0x0F,0x24,0x10,0x42, - 0x0F,0x10,0x64,0x10,0x02,0xC9,0x00,0x10,0x62,0x10,0x12,0x1F,0x00,0xC4,0x10,0xCB,0x0F,0x10,0x15,0x0F,0x7C,0x10,0x0F,0xE9,0x00,0x00,0x63,0x10,0x2E,0x0F,0x10,0x74, - 0x00,0x00,0xD3,0x10,0xC0,0x00,0x00,0x20, -}; -uint8_t tileset_tile_121_compressed[33] = { - 0x10,0x11,0x10,0x02,0x1A,0x88,0x00,0x02,0x1C,0x11,0x0F,0x17,0x90,0x00,0x8A,0x0F,0x0A,0x32,0x00,0x11,0x0F,0x46,0x0B,0x21,0x00,0x02,0xF4,0x00,0x10,0x74,0x00,0x00, - 0x02, -}; -uint8_t tileset_tile_122_compressed[57] = { - 0x10,0x26,0x10,0x0A,0x00,0x0B,0x1B,0x16,0x0F,0x1B,0x01,0x88,0x0F,0xE3,0x0A,0xBE,0x0F,0x0B,0x02,0x24,0x0F,0x0B,0x0B,0x49,0x09,0x01,0x3E,0x0F,0x0A,0x16,0x8D,0x0F, - 0x9A,0x00,0x2A,0x2F,0x48,0x30,0xF4,0x1F,0x02,0x72,0x00,0x0A,0x0B,0x90,0x00,0x17,0xF4,0x00,0x7A,0x5F,0x10,0x3A,0x00,0x00,0x01, -}; -uint8_t tileset_tile_123_compressed[100] = { - 0x10,0x05,0x10,0x16,0x0F,0x0F,0x1B,0x96,0x03,0x17,0x1B,0x00,0x17,0x77,0x02,0x09,0x01,0x0C,0x94,0x0F,0x09,0x0B,0x01,0x09,0x2F,0x16,0x0B,0x0F,0x0E,0x2F,0x0B,0x02, - 0x0B,0x11,0xEF,0x00,0x0F,0x0E,0xD3,0x0F,0x0B,0x76,0x00,0x0F,0x0E,0x0B,0x9A,0x2F,0xED,0x0F,0x0E,0x0A,0x13,0x1F,0x27,0x0E,0x0F,0x3C,0x00,0xC4,0x0E,0x10,0x0A,0xC9, - 0x00,0x17,0x62,0x0E,0xA4,0x0F,0x0E,0x44,0x00,0x4A,0x0F,0x0E,0x00,0x4F,0x17,0x00,0x2C,0x0E,0x4C,0x0F,0xA9,0x0E,0x00,0xE6,0x5F,0x0E,0x27,0x00,0x10,0x00,0x95,0x0E, - 0x00,0x00,0x00,0x80, -}; -uint8_t tileset_tile_124_compressed[50] = { - 0x10,0x03,0x10,0x00,0x00,0x02,0x31,0x2D,0x00,0x0A,0x10,0x07,0x31,0x1E,0x00,0x2E,0x1D,0x07,0x0F,0xA3,0x08,0x20,0x0F,0x72,0x1F,0x45,0x07,0xBD,0x0F,0x1D,0x00,0x0F, - 0x2D,0xF1,0x04,0x00,0x48,0x0F,0x1E,0x37,0x0F,0x2E,0x10,0x02,0x00,0x5E,0x05,0x06,0x00,0x01, -}; -uint8_t tileset_tile_125_compressed[59] = { - 0x10,0x02,0x10,0x02,0x0F,0x0F,0x07,0x1A,0x66,0x00,0x07,0x0B,0x02,0xB4,0x0F,0x11,0xD0,0x00,0x4F,0x0F,0x3C,0x00,0xD1,0x0F,0x7E,0x00,0x0F,0x15,0x09,0x44,0x0F,0xE4, - 0x01,0x0E,0x1B,0x0A,0x5E,0x10,0x0F,0x0A,0xA8,0x0F,0x99,0x00,0x23,0x2F,0x38,0x0F,0x03,0x3D,0x0F,0x8E,0x00,0x47,0x10,0x40,0x00,0x00,0x20, -}; -uint8_t tileset_tile_126_compressed[49] = { - 0x10,0x0B,0x10,0x1D,0x02,0x0A,0x00,0x4C,0x02,0x06,0x1D,0xE3,0x0F,0x29,0x00,0x0F,0x17,0x69,0x00,0x02,0xA0,0x06,0x8A,0x0F,0x34,0x3F,0x1E,0x1D,0x8C,0x00,0x47,0x1E, - 0xA3,0x00,0x2D,0x90,0x00,0x1D,0x27,0x23,0x00,0x02,0x91,0x00,0x10,0xD0,0x00,0x00,0x08, -}; -uint8_t tileset_tile_127_compressed[51] = { - 0x10,0x0A,0x10,0x07,0x31,0x1E,0x00,0x0C,0x1D,0x07,0x10,0x2D,0x00,0x10,0x02,0x22,0x10,0x00,0x2A,0x0F,0x05,0xE0,0x0F,0x6B,0x1F,0x47,0x07,0x48,0x1F,0x0F,0x2D,0x5F, - 0x1D,0x00,0x0F,0x76,0x04,0x0F,0x1E,0x83,0xDE,0x0F,0x73,0xF9,0x00,0x08,0x78,0x05,0x0F,0x00,0x04, -}; -uint8_t *tileset_tiles_compressed[128] = { - tileset_tile_0_compressed, - tileset_tile_1_compressed, - tileset_tile_2_compressed, - tileset_tile_3_compressed, - tileset_tile_4_compressed, - tileset_tile_5_compressed, - tileset_tile_6_compressed, - tileset_tile_7_compressed, - tileset_tile_8_compressed, - tileset_tile_9_compressed, - tileset_tile_10_compressed, - tileset_tile_11_compressed, - tileset_tile_12_compressed, - tileset_tile_13_compressed, - tileset_tile_14_compressed, - tileset_tile_15_compressed, - tileset_tile_16_compressed, - tileset_tile_17_compressed, - tileset_tile_18_compressed, - tileset_tile_19_compressed, - tileset_tile_20_compressed, - tileset_tile_21_compressed, - tileset_tile_22_compressed, - tileset_tile_23_compressed, - tileset_tile_24_compressed, - tileset_tile_25_compressed, - tileset_tile_26_compressed, - tileset_tile_27_compressed, - tileset_tile_28_compressed, - tileset_tile_29_compressed, - tileset_tile_30_compressed, - tileset_tile_31_compressed, - tileset_tile_32_compressed, - tileset_tile_33_compressed, - tileset_tile_34_compressed, - tileset_tile_35_compressed, - tileset_tile_36_compressed, - tileset_tile_37_compressed, - tileset_tile_38_compressed, - tileset_tile_39_compressed, - tileset_tile_40_compressed, - tileset_tile_41_compressed, - tileset_tile_42_compressed, - tileset_tile_43_compressed, - tileset_tile_44_compressed, - tileset_tile_45_compressed, - tileset_tile_46_compressed, - tileset_tile_47_compressed, - tileset_tile_48_compressed, - tileset_tile_49_compressed, - tileset_tile_50_compressed, - tileset_tile_51_compressed, - tileset_tile_52_compressed, - tileset_tile_53_compressed, - tileset_tile_54_compressed, - tileset_tile_55_compressed, - tileset_tile_56_compressed, - tileset_tile_57_compressed, - tileset_tile_58_compressed, - tileset_tile_59_compressed, - tileset_tile_60_compressed, - tileset_tile_61_compressed, - tileset_tile_62_compressed, - tileset_tile_63_compressed, - tileset_tile_64_compressed, - tileset_tile_65_compressed, - tileset_tile_66_compressed, - tileset_tile_67_compressed, - tileset_tile_68_compressed, - tileset_tile_69_compressed, - tileset_tile_70_compressed, - tileset_tile_71_compressed, - tileset_tile_72_compressed, - tileset_tile_73_compressed, - tileset_tile_74_compressed, - tileset_tile_75_compressed, - tileset_tile_76_compressed, - tileset_tile_77_compressed, - tileset_tile_78_compressed, - tileset_tile_79_compressed, - tileset_tile_80_compressed, - tileset_tile_81_compressed, - tileset_tile_82_compressed, - tileset_tile_83_compressed, - tileset_tile_84_compressed, - tileset_tile_85_compressed, - tileset_tile_86_compressed, - tileset_tile_87_compressed, - tileset_tile_88_compressed, - tileset_tile_89_compressed, - tileset_tile_90_compressed, - tileset_tile_91_compressed, - tileset_tile_92_compressed, - tileset_tile_93_compressed, - tileset_tile_94_compressed, - tileset_tile_95_compressed, - tileset_tile_96_compressed, - tileset_tile_97_compressed, - tileset_tile_98_compressed, - tileset_tile_99_compressed, - tileset_tile_100_compressed, - tileset_tile_101_compressed, - tileset_tile_102_compressed, - tileset_tile_103_compressed, - tileset_tile_104_compressed, - tileset_tile_105_compressed, - tileset_tile_106_compressed, - tileset_tile_107_compressed, - tileset_tile_108_compressed, - tileset_tile_109_compressed, - tileset_tile_110_compressed, - tileset_tile_111_compressed, - tileset_tile_112_compressed, - tileset_tile_113_compressed, - tileset_tile_114_compressed, - tileset_tile_115_compressed, - tileset_tile_116_compressed, - tileset_tile_117_compressed, - tileset_tile_118_compressed, - tileset_tile_119_compressed, - tileset_tile_120_compressed, - tileset_tile_121_compressed, - tileset_tile_122_compressed, - tileset_tile_123_compressed, - tileset_tile_124_compressed, - tileset_tile_125_compressed, - tileset_tile_126_compressed, - tileset_tile_127_compressed, -}; +// convpng
+#include <stdint.h>
+#include "tiles_gfx.h"
+
+uint8_t tileset_tile_0_compressed[19] = {
+ 0x10,0x21,0x10,0x4B,0x84,0x00,0x3D,0x75,0x0C,0xC6,0x02,0xF0,0x1D,0x03,0x18,0x30,0x00,0x00,0x08,
+};
+uint8_t tileset_tile_1_compressed[32] = {
+ 0x10,0x21,0x10,0x4B,0x14,0x00,0x1F,0x75,0x0C,0xC6,0x02,0xF0,0x1D,0x03,0x48,0x00,0x3D,0x8E,0x0C,0xB8,0x02,0xDE,0x1D,0x03,0x05,0xB8,0x00,0x23,0xC8,0x08,0x00,0x04,
+};
+uint8_t tileset_tile_2_compressed[30] = {
+ 0x10,0x20,0x10,0x4B,0xCD,0x00,0x1F,0x1D,0x0C,0x71,0x02,0xB7,0x1D,0x03,0x07,0xE8,0x00,0x3B,0xEB,0x0C,0x02,0x8D,0x1D,0x40,0x3B,0x83,0x64,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_3_compressed[20] = {
+ 0x10,0x20,0x10,0x4B,0x54,0x00,0x47,0x1F,0x5C,0x0C,0x02,0x6F,0x1D,0x03,0x01,0x0B,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_4_compressed[118] = {
+ 0x10,0x05,0x10,0x4B,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x1C,0x08,0x7B,0x11,0x13,0x3B,0x4B,0x1F,0x10,0x0E,0xBB,0x00,0x12,0xDD,0x0F,
+ 0x1F,0x04,0xCB,0x0F,0x14,0xD5,0x0F,0x20,0xCC,0x0A,0x32,0x05,0xBB,0x0E,0x08,0xBA,0x0F,0x05,0x5C,0x05,0x0E,0xDE,0x4B,0x05,0x4E,0x05,0x27,0x1C,0x1C,0x0E,0xB7,0x30,
+ 0x05,0x0F,0x3D,0x1E,0xA2,0x0C,0x01,0xF0,0x0F,0x8B,0x92,0x0F,0x79,0x10,0x79,0x1E,0x0F,0x7E,0x10,0x1D,0x0D,0xFE,0x0E,0x5F,0x60,0xD7,0x10,0x01,0x11,0x76,0x00,0x8F,
+ 0x18,0xB1,0x73,0x07,0x77,0x0E,0x0F,0x10,0x77,0x20,0x3E,0x35,0x0F,0x07,0x86,0x1F,0x57,0x01,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_5_compressed[119] = {
+ 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0xF9,0x0D,0x07,0x1C,0x4B,0x2D,0x0C,0xFB,0x00,0x07,0x0E,0x1F,0x0F,0x96,0x0A,
+ 0xF6,0x04,0x00,0x1F,0x0F,0x05,0x9E,0x2C,0xAB,0x03,0x1E,0x0F,0xAB,0x17,0x0B,0xBB,0x05,0x10,0x77,0x05,0x50,0x0C,0x37,0x46,0x10,0xDC,0x0F,0x2A,0xE6,0x10,0x1C,0x1C,
+ 0x0F,0x01,0x7C,0x05,0x33,0x11,0xFD,0x20,0x0F,0xC5,0x00,0xDA,0x0F,0x21,0x04,0x7E,0x0E,0x0F,0xD7,0x00,0x01,0x45,0x72,0x0E,0xD6,0x0F,0x1F,0xC4,0x12,0x61,0x0E,0x90,
+ 0x2F,0x1D,0x0D,0xE1,0x06,0xAD,0x61,0x8F,0x2C,0x1F,0x96,0x2F,0x0E,0x4B,0x96,0x2E,0xA8,0x01,0x98,0x2E,0x0F,0x00,0x01,
+};
+uint8_t tileset_tile_6_compressed[65] = {
+ 0x10,0x20,0x10,0x00,0xF5,0x00,0x03,0x1C,0x0E,0x05,0x8D,0x0F,0x46,0x04,0x91,0x0F,0x03,0x01,0x6D,0x0F,0x04,0x00,0x05,0x13,0x0F,0x68,0x0C,0x01,0xB2,0x0F,0x01,0x01,
+ 0x36,0x0F,0xE7,0x1E,0x0F,0xEA,0x2C,0x1C,0xE7,0x0E,0x0F,0x5C,0x01,0x11,0xFF,0x0F,0x67,0x07,0x34,0x0E,0x52,0x2F,0x05,0x7B,0x2F,0x86,0x0E,0x1F,0xAE,0x01,0x00,0x00,
+ 0x01,
+};
+uint8_t tileset_tile_7_compressed[65] = {
+ 0x10,0x20,0x10,0x00,0xB9,0x00,0x03,0x1C,0x0F,0x05,0x8E,0x10,0x23,0x05,0x04,0x88,0x0F,0x01,0x03,0xE7,0x0F,0x04,0x00,0x18,0x0F,0x01,0x68,0x05,0x33,0x04,0xBA,0x0F,
+ 0x00,0x8B,0x0F,0xB8,0x21,0xAB,0x0F,0x00,0xA9,0x13,0xE5,0x32,0x0E,0xE7,0x0D,0x32,0x97,0x1D,0x0D,0xD1,0x06,0x03,0x51,0x1F,0x95,0x2F,0x2E,0x53,0x01,0x04,0x98,0x00,
+ 0x02,
+};
+uint8_t tileset_tile_8_compressed[68] = {
+ 0x10,0x1B,0x10,0x00,0x07,0x00,0x00,0x00,0xE7,0x06,0x07,0x76,0x19,0x00,0x0B,0x19,0x98,0x07,0x07,0x23,0x2D,0x23,0x18,0x0B,0x19,0x35,0x07,0xDA,0x0F,0x00,0x19,0x6B,
+ 0x07,0x28,0xF4,0x0A,0x00,0x19,0xD0,0x07,0x29,0xC5,0x2F,0x88,0x00,0x07,0x14,0x23,0xC4,0x00,0x07,0x3F,0x00,0xA4,0x42,0x14,0xCF,0x09,0xAE,0x07,0x0F,0xD3,0x00,0x19,
+ 0x40,0x07,0x00,0x20,
+};
+uint8_t tileset_tile_9_compressed[53] = {
+ 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE2,0x0B,0x05,0x07,0x23,0x23,0x18,0xC5,0x0B,0xDC,0x07,0x00,0xF2,0x07,0xF3,0x12,0x00,0xC0,0x07,0xA7,
+ 0x2F,0x16,0x00,0x23,0x8E,0x00,0x43,0x07,0xCD,0x00,0x19,0x42,0x14,0x1F,0x07,0x73,0x00,0xC0,0x07,0x00,0x20,
+};
+uint8_t tileset_tile_10_compressed[53] = {
+ 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE2,0x0B,0x05,0x07,0x23,0x23,0x18,0xC5,0x0B,0xDC,0x07,0x00,0xF2,0x07,0xF3,0x12,0x00,0xC0,0x07,0xA7,
+ 0x2F,0x16,0x00,0x23,0x8E,0x00,0x43,0x07,0xCD,0x00,0x19,0x42,0x14,0x1F,0x07,0x73,0x00,0xC0,0x07,0x00,0x20,
+};
+uint8_t tileset_tile_11_compressed[67] = {
+ 0x10,0x29,0x10,0x07,0x00,0x00,0x53,0x00,0xAA,0x07,0x19,0x00,0xE6,0x0B,0x07,0x05,0x02,0x19,0x23,0x23,0x18,0xCD,0x0B,0x07,0x25,0x0F,0xCC,0x00,0x07,0x02,0x97,0x1A,
+ 0x00,0x9A,0x07,0x05,0x48,0x2F,0xA2,0x00,0x02,0x23,0x30,0x00,0x14,0x02,0x46,0x07,0xC7,0x00,0xFA,0x0F,0x3F,0x43,0x14,0xEE,0x08,0x07,0x7B,0x0F,0x00,0x97,0x07,0x4F,
+ 0x80,0x00,0x40,
+};
+uint8_t tileset_tile_12_compressed[46] = {
+ 0x10,0x20,0x10,0x00,0x21,0x49,0x00,0x09,0x07,0xA6,0x00,0x0E,0x55,0x16,0x00,0xA7,0x04,0x09,0x0E,0x8B,0x0F,0xA4,0x08,0x12,0x53,0x0F,0x09,0x08,0x45,0x12,0x64,0x0F,
+ 0x06,0x09,0x12,0x57,0x0F,0x05,0x19,0x0F,0x71,0x3B,0x70,0x0F,0x00,0x08,
+};
+uint8_t tileset_tile_13_compressed[47] = {
+ 0x10,0x22,0x10,0x00,0x57,0x00,0x07,0x00,0x14,0x0C,0x16,0x39,0x09,0x16,0x00,0xDC,0x0D,0x12,0x00,0x4E,0x0F,0x0D,0x09,0x8A,0x0F,0xB8,0x1C,0xAB,0x0F,0x0E,0x8A,0x0F,
+ 0x11,0x07,0x0F,0x09,0x7C,0x0F,0x0E,0x6A,0x0F,0x09,0x07,0xE8,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_14_compressed[48] = {
+ 0x10,0x2D,0x10,0x07,0x00,0x00,0x12,0x00,0x16,0xC9,0x00,0x09,0x16,0xE7,0x12,0x0F,0x7C,0x12,0x00,0x11,0x6B,0x0F,0x09,0x11,0x8E,0x0F,0xB8,0x22,0xCB,0x0F,0x10,0x8C,
+ 0x0F,0x11,0x09,0x0F,0x07,0xDC,0x0F,0x10,0x72,0x0F,0x09,0x06,0xF8,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_15_compressed[41] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x4C,0x07,0x00,0x09,0x99,0x0F,0x16,0xAC,0x00,0x09,0x03,0x12,0x09,0x8E,0x0F,0xE3,0x10,0xB8,0x0F,0x10,0xF4,0x0F,0x09,0x77,0x0F,0x01,
+ 0x1D,0x0F,0xC7,0x02,0x70,0x0F,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_16_compressed[126] = {
+ 0x10,0x35,0x10,0x4B,0x00,0x1F,0xA6,0x03,0x04,0x08,0x98,0x04,0x04,0x3B,0xE6,0x10,0x0D,0x63,0x04,0x00,0x1F,0x1F,0x3B,0x0F,0x0A,0x1F,0x03,0x04,0x03,0x11,0x7F,0x1C,
+ 0x0A,0x0B,0x1E,0xA8,0x16,0x03,0x08,0x03,0x1F,0x9B,0x10,0x06,0xAF,0x0A,0x0E,0x24,0xBA,0x21,0x03,0xAF,0x2D,0x34,0x26,0xBF,0x1E,0x00,0x07,0xBE,0x44,0x11,0xBA,0x00,
+ 0x08,0x2D,0xAA,0x0D,0x2E,0xBA,0x3B,0x06,0xEF,0x10,0x6E,0x4D,0xFB,0x09,0x00,0x13,0xE4,0x0B,0x08,0xEF,0x4A,0x13,0x03,0x9A,0x1C,0x5B,0x00,0x50,0xB0,0xA9,0xB0,0x8A,
+ 0xA9,0x6B,0x25,0x42,0x21,0xEE,0x00,0x30,0xEF,0x74,0x2C,0x06,0x9A,0x07,0xE4,0x24,0x1C,0xAB,0x0E,0x07,0xBE,0x4F,0x11,0x6A,0x5A,0x1B,0xE0,0x0D,0x00,0x10,
+};
+uint8_t tileset_tile_17_compressed[98] = {
+ 0x10,0x22,0x10,0x00,0x5C,0x00,0x20,0x00,0x60,0x0D,0x39,0x39,0x3E,0xE7,0x10,0x16,0xAF,0x0D,0x0E,0x00,0xDB,0x0A,0x20,0x04,0x39,0x11,0x96,0x1E,0xAF,0x0F,0x0E,0x00,
+ 0xAB,0x23,0x20,0xB5,0x19,0x3E,0xDD,0x05,0x0E,0xD4,0x10,0x39,0x92,0x06,0xC9,0x00,0x09,0x39,0x0E,0x3F,0x3F,0x69,0x05,0x00,0xEA,0x0B,0x02,0x7B,0x77,0x10,0xA8,0x01,
+ 0xA0,0x89,0xD1,0x02,0x45,0x5C,0x0F,0x00,0x77,0x0F,0x50,0xFC,0x2E,0x10,0x59,0x43,0x0E,0x33,0x0D,0x44,0x45,0xD5,0x10,0x1E,0xA2,0x10,0x20,0xAE,0x20,0x00,0x58,0x0E,
+ 0x00,0x04,
+};
+uint8_t tileset_tile_18_compressed[105] = {
+ 0x10,0x21,0x10,0x00,0x45,0x00,0x04,0x45,0x00,0x84,0x0D,0x05,0x01,0x01,0x05,0x47,0x11,0x0D,0x2A,0x00,0x01,0x57,0x10,0x04,0x1A,0x19,0x10,0xD4,0x0F,0x10,0xB7,0x03,
+ 0x0F,0xCF,0x0E,0x2F,0xDA,0x41,0x10,0x01,0x2C,0x2F,0x01,0x1F,0x39,0x00,0x03,0x05,0xF2,0x2F,0x08,0x03,0x1C,0xD3,0x2F,0x01,0x56,0x00,0x0A,0x0F,0x03,0xF9,0x05,0x06,
+ 0xD7,0x03,0x03,0x0F,0x73,0x1F,0x52,0x04,0x0F,0x1F,0xA5,0x10,0x1F,0xBC,0x0E,0x4F,0x00,0x1C,0xEE,0x06,0x12,0xEE,0x05,0x0E,0xBF,0x10,0x00,0x0B,0x00,0xAE,0x06,0x2D,
+ 0x55,0x00,0x1F,0xCB,0x0B,0x1C,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_19_compressed[130] = {
+ 0x10,0x24,0x10,0x00,0x00,0x6D,0x2C,0x00,0x33,0x00,0x00,0x30,0x00,0x33,0x2C,0x36,0xCD,0x00,0x2C,0x19,0x12,0x2C,0x37,0x1C,0x0D,0x79,0x0F,0x03,0x28,0x33,0x3A,0x1D,
+ 0x28,0x4B,0x0E,0x0F,0xEB,0x26,0x08,0x01,0xEF,0x00,0x0F,0x30,0xEE,0x1E,0x07,0xFF,0x0F,0x00,0x38,0x25,0xEE,0x0F,0x09,0xE4,0x0C,0x03,0x27,0x29,0x35,0x0F,0xFC,0x37,
+ 0x0E,0x01,0x29,0x19,0xBE,0x0F,0x26,0xEB,0x03,0x0E,0x0F,0x2B,0x29,0x33,0x0B,0x02,0xAF,0x39,0x1A,0x02,0xFF,0x00,0x0F,0x10,0x00,0xFA,0x0E,0x27,0x09,0x95,0x0F,0x2C,
+ 0x69,0x11,0x29,0x89,0x0F,0x35,0x29,0xAA,0x09,0x05,0xD5,0x0E,0x00,0x10,0x2C,0x19,0x9F,0x0E,0x0F,0x10,0x77,0x11,0x28,0x2F,0x0E,0x00,0x7F,0x22,0x5C,0x0B,0x24,0x0D,
+ 0x00,0x02,
+};
+uint8_t tileset_tile_20_compressed[134] = {
+ 0x10,0x30,0x10,0x4B,0x00,0x1F,0x03,0x05,0x05,0x1F,0x04,0x01,0x04,0x04,0x00,0xE3,0x04,0x0D,0x4B,0x1C,0x1C,0x0D,0xB7,0x0A,0x01,0x05,0xB5,0x01,0x1F,0x0D,0x1C,0x7A,
+ 0x1F,0x09,0x20,0x04,0xEB,0x16,0x0D,0x00,0xAB,0x0E,0x0B,0xFA,0x04,0x02,0x0F,0xFE,0x1A,0x02,0x12,0x65,0x23,0x1C,0xA4,0x3D,0x03,0x4C,0xAF,0x3D,0x0A,0x3F,0xFF,0x1C,
+ 0x15,0x1E,0x11,0xEC,0x0E,0x13,0x1F,0x1F,0xBE,0x47,0x02,0xEF,0x60,0x12,0x0F,0xFB,0x2C,0x37,0x5C,0x97,0x33,0x0E,0xF9,0x2F,0x00,0x6E,0x12,0x22,0xAE,0x4D,0x01,0x4E,
+ 0x0F,0x19,0xBF,0x6F,0x2E,0x01,0x0F,0xBB,0x12,0x48,0xBE,0x0F,0x31,0x7B,0x21,0x7F,0xFB,0x40,0x05,0x52,0x95,0x22,0x01,0x2F,0x7E,0x00,0x72,0x06,0xDD,0x0F,0x6A,0xDF,
+ 0x12,0x0E,0x01,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_21_compressed[133] = {
+ 0x10,0x03,0x10,0x05,0x04,0x05,0x01,0x05,0x04,0x61,0x01,0x06,0x05,0x03,0x1F,0x4B,0xDE,0x00,0x0D,0x0C,0x01,0xF1,0x05,0x04,0x1C,0x1C,0x4B,0xAE,0x11,0x05,0x0E,0xEB,
+ 0x0F,0x1F,0x07,0x3B,0x1C,0x1F,0x08,0x0D,0xAA,0x21,0x0F,0xF9,0x00,0x22,0x3D,0x0D,0x22,0x0C,0x01,0xFC,0x01,0x02,0x20,0xBF,0x3B,0x01,0x26,0xFF,0x0F,0x1B,0x0F,0x26,
+ 0x2D,0x0E,0xFC,0x3D,0x1F,0x3F,0xBF,0x1B,0x0E,0x0D,0x6E,0x1E,0x1F,0x0F,0xF9,0x00,0x08,0x56,0x54,0x03,0x0F,0x04,0x9E,0x61,0xBA,0x4F,0x10,0x2E,0xBB,0x39,0x10,0xBE,
+ 0x01,0x5F,0xEF,0x36,0x0C,0x02,0xFB,0x2E,0x01,0x7F,0x4C,0x39,0x1D,0x03,0xBB,0x0F,0x19,0x95,0x2E,0x03,0x72,0x6F,0xD7,0x0F,0x09,0x00,0x28,0x80,0x5C,0x45,0x92,0x2A,
+ 0x70,0x00,0x0F,0x00,0x08,
+};
+uint8_t tileset_tile_22_compressed[126] = {
+ 0x10,0x28,0x10,0x4B,0x00,0x03,0x05,0x0F,0x05,0x04,0x01,0x04,0x04,0x00,0xE8,0x04,0x0E,0x1F,0x4B,0xED,0x0D,0x0A,0x01,0xF7,0x05,0x01,0x0F,0x5E,0x1F,0x09,0x20,0x04,
+ 0xBA,0x16,0x0D,0xEA,0x00,0x0E,0xFE,0x0B,0x04,0x02,0xBF,0x3D,0x1A,0x02,0x12,0x9B,0x23,0x0F,0xF9,0x3D,0x0D,0x2B,0x4C,0x3D,0x0A,0xBF,0x1F,0x15,0x1E,0xFB,0x11,0x0E,
+ 0x13,0xEF,0x0F,0x47,0x02,0xBB,0x60,0x12,0xAE,0x1F,0x0E,0xEE,0x38,0x12,0xFB,0x1F,0x5D,0x0E,0x92,0x12,0xEA,0x22,0x4D,0xE4,0x01,0x0F,0xEB,0x19,0x6F,0x2E,0xFB,0x01,
+ 0x0F,0x12,0xBB,0x48,0x0F,0xE7,0x31,0x21,0xBB,0x7F,0x6F,0xB9,0x52,0x52,0x22,0x01,0xF7,0x7E,0x00,0x06,0x2D,0x0F,0xDD,0x6A,0x12,0xF0,0x0E,0x01,0x00,0x08,
+};
+uint8_t tileset_tile_23_compressed[122] = {
+ 0x10,0x03,0x10,0x05,0x04,0x05,0x01,0x05,0x04,0x62,0x01,0x06,0x05,0x03,0x4B,0xAF,0x00,0x0D,0x0C,0x7D,0x01,0x05,0x04,0xF7,0x0E,0x0F,0x0E,0x76,0x0F,0x1F,0x3D,0xFB,
+ 0x0F,0x08,0x0D,0xAA,0x21,0x0F,0xF9,0x00,0x0F,0x3D,0x0D,0x22,0x0C,0x01,0xFC,0x01,0x02,0x0F,0xBF,0x3B,0x01,0x26,0xDF,0x0F,0x41,0x26,0x2F,0x0E,0x20,0xDC,0x29,0x1F,
+ 0xB5,0x1B,0x71,0x5C,0x72,0x00,0x97,0x5F,0x0C,0x2D,0x54,0xF3,0x1F,0x0C,0xD7,0x61,0x4F,0x10,0x57,0x2E,0x39,0x77,0x10,0x01,0xDD,0x0F,0x36,0xFF,0x0C,0x02,0x2E,0x01,
+ 0x73,0x7F,0xFD,0x1D,0x2D,0x02,0xCD,0x7F,0x10,0xCE,0x0D,0x8F,0x17,0x79,0xCA,0x00,0x80,0x12,0x5C,0x2E,0x2A,0x9C,0x00,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_24_compressed[29] = {
+ 0x10,0x05,0x10,0x07,0x18,0x18,0x14,0xA6,0x00,0x19,0x07,0x54,0x07,0x00,0x65,0x07,0x5A,0x17,0x0B,0x19,0x68,0x07,0xF8,0x2F,0x0B,0xF8,0x3F,0x00,0x04,
+};
+uint8_t tileset_tile_25_compressed[27] = {
+ 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCE,0x00,0x07,0x07,0xA8,0x00,0xBB,0x07,0x17,0xB9,0x0B,0xE3,0x07,0xE0,0x2F,0x2F,0xE0,0x3F,0x00,0x10,
+};
+uint8_t tileset_tile_26_compressed[27] = {
+ 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCE,0x00,0x07,0x07,0xA8,0x00,0xBB,0x07,0x17,0xB9,0x0B,0xE3,0x07,0xE0,0x2F,0x2F,0xE0,0x3F,0x00,0x10,
+};
+uint8_t tileset_tile_27_compressed[33] = {
+ 0x10,0x05,0x10,0x19,0x18,0x18,0x14,0xCA,0x00,0x07,0x19,0x2A,0x02,0x07,0x00,0xE5,0x0F,0x07,0xEE,0x0F,0x17,0xE6,0x0B,0x07,0x47,0x02,0xC0,0x2F,0x5F,0xC0,0x3F,0x00,
+ 0x20,
+};
+uint8_t tileset_tile_28_compressed[51] = {
+ 0x10,0x1A,0x10,0x02,0x12,0x00,0x09,0x9A,0x03,0x16,0x00,0x09,0xE0,0x03,0x76,0x0F,0x26,0x0F,0x09,0x00,0x95,0x0F,0x0F,0x1A,0x0F,0x0F,0x87,0x04,0x0F,0x0F,0x07,0x07,
+ 0x5F,0x0F,0x0B,0x71,0x10,0x15,0x0F,0x0E,0x71,0x10,0x09,0x0F,0x09,0xA6,0x10,0x00,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_29_compressed[76] = {
+ 0x10,0x03,0x10,0x09,0x0F,0x0F,0x09,0x12,0x00,0xB5,0x03,0x07,0xCF,0x00,0x0F,0x77,0x0A,0x00,0x2C,0x0F,0xF3,0x0C,0x44,0x0F,0xDC,0x0D,0x0F,0x55,0x1C,0xC6,0x0F,0xA3,
+ 0x0E,0x09,0x78,0x0D,0x0E,0xE8,0x00,0xD8,0x1D,0xF2,0x37,0x0A,0x0B,0x2F,0x0E,0x0D,0xE2,0x00,0xB8,0x0E,0x0C,0xCA,0x0F,0x1D,0x45,0x0A,0xD9,0x2D,0x0E,0x12,0x0B,0x17,
+ 0x1E,0xF1,0x0E,0x03,0x0E,0x76,0x0F,0x00,0xE0,0x41,0x00,0x10,
+};
+uint8_t tileset_tile_30_compressed[79] = {
+ 0x10,0x2D,0x10,0x07,0x00,0x12,0xAC,0x00,0x09,0x03,0x0F,0x0F,0x49,0x09,0x00,0x51,0x12,0x92,0x0F,0x46,0x12,0xD4,0x0F,0x11,0x75,0x0F,0x46,0x22,0xDF,0x0F,0x10,0x04,
+ 0x1B,0x11,0xC7,0x01,0x47,0x00,0x09,0x20,0x09,0x0B,0x0A,0x62,0x27,0x34,0x0F,0x00,0x0A,0x5A,0x10,0x0B,0xE3,0x00,0x17,0x21,0x0A,0x21,0x3E,0x0F,0x1F,0x12,0xE2,0x10,
+ 0xFE,0x20,0x0B,0x10,0x2E,0x20,0xD6,0x3D,0x0F,0xA7,0x13,0x40,0x7F,0x00,0x20,
+};
+uint8_t tileset_tile_31_compressed[51] = {
+ 0x10,0x35,0x10,0x16,0x00,0x09,0xBB,0x03,0x12,0x00,0x03,0x40,0x02,0xDE,0x0F,0x09,0x99,0x00,0x0F,0x1E,0x0F,0x0F,0x8F,0x0F,0x43,0x0F,0xC2,0x0F,0x07,0x07,0x0F,0x2E,
+ 0x0F,0xB8,0x0E,0x00,0x99,0x0F,0x32,0x0E,0x00,0x02,0x07,0x7B,0x00,0x0D,0xD0,0x42,0x02,0x00,0x08,
+};
+uint8_t tileset_tile_32_compressed[59] = {
+ 0x10,0x21,0x10,0x4B,0x62,0x00,0x0E,0x0E,0x26,0x05,0xE7,0x07,0x00,0x8D,0x0D,0xE7,0x00,0x0E,0x8F,0x0F,0x25,0x15,0x15,0x05,0x94,0x0E,0x15,0x08,0xFF,0x00,0x0B,0x00,
+ 0x05,0x97,0x1D,0x07,0x9E,0x00,0x78,0x1E,0xC8,0x0F,0xAE,0x10,0x3F,0x12,0x0F,0xE1,0x0E,0xDE,0x0F,0x10,0x19,0x4F,0x8E,0x6F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_33_compressed[42] = {
+ 0x10,0x23,0x10,0x4B,0x89,0x00,0x0E,0x0E,0x67,0x05,0x07,0x82,0xF5,0x00,0x15,0x5D,0x02,0x03,0xDA,0x04,0x06,0x08,0xAE,0x02,0x03,0xEE,0x04,0x06,0x0C,0x90,0x00,0x15,
+ 0x42,0x1D,0x3A,0x87,0x61,0x41,0xA8,0x1E,0x00,0x04,
+};
+uint8_t tileset_tile_34_compressed[52] = {
+ 0x10,0x23,0x10,0x4B,0x89,0x00,0x0E,0x0E,0xE7,0x05,0x0F,0x9E,0x00,0x3E,0x0F,0x78,0x29,0xD6,0x10,0x15,0x05,0x15,0xB9,0x03,0xDA,0x0F,0x08,0x0D,0x08,0x59,0x03,0x79,
+ 0x10,0x08,0xE5,0x00,0x21,0x89,0x0F,0x43,0x15,0xB3,0x0F,0xC1,0x3F,0xBC,0x0F,0x2D,0x5F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_35_compressed[96] = {
+ 0x10,0x2D,0x10,0x00,0x00,0x20,0x25,0x00,0xCA,0x09,0x0D,0x26,0x34,0x2B,0x2B,0x02,0x26,0xD6,0x11,0x0D,0x2B,0x9E,0x10,0x7B,0x0E,0x10,0xED,0x00,0x10,0x20,0x3D,0x0E,
+ 0x73,0x1F,0x01,0xCE,0x1E,0x1F,0x27,0xD3,0x0F,0x26,0x4F,0x1D,0x0F,0x72,0x0B,0xF2,0x10,0x0B,0xDC,0x1F,0x0B,0xB5,0x0E,0x0F,0xCF,0x05,0x00,0x2D,0x1F,0xAE,0x0F,0x20,
+ 0x02,0xEE,0x1E,0x0F,0xF9,0x09,0x01,0x8B,0x0E,0x27,0x00,0x11,0xB9,0x0B,0xBE,0x0E,0x0F,0x10,0x6E,0x00,0x09,0xF8,0x0F,0x10,0xA9,0x00,0x42,0xE0,0x2E,0x0D,0x00,0x01,
+};
+uint8_t tileset_tile_36_compressed[97] = {
+ 0x10,0x05,0x10,0x1F,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x4B,0x08,0x7B,0x11,0x13,0xFB,0x0F,0x10,0x0E,0xBB,0x00,0x12,0xBB,0x0F,0x21,
+ 0x4D,0x04,0x14,0x4B,0x0F,0x1C,0x0A,0x9E,0x03,0xEE,0x0E,0x28,0xEE,0x0B,0x27,0xE6,0x0E,0x4B,0xBB,0x05,0x0F,0x9B,0x0E,0x00,0x47,0x37,0x88,0x0F,0x3C,0x3C,0x03,0xE4,
+ 0x0F,0x3C,0xF3,0x3F,0x91,0x10,0x4B,0x1F,0x84,0x10,0x37,0x4B,0xD3,0x10,0xAE,0x11,0x4B,0x10,0x2B,0x11,0x0E,0x96,0x11,0xE6,0x12,0xAF,0x09,0x27,0x11,0x12,0x80,0x00,
+ 0x40,
+};
+uint8_t tileset_tile_37_compressed[97] = {
+ 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0x46,0x0D,0x0E,0x4B,0x96,0x0C,0xF3,0x00,0x07,0x03,0x1F,0x0F,0x9A,0x0A,0xED,
+ 0x04,0x1E,0x4B,0x73,0x0C,0xA5,0x03,0x1C,0x0F,0xB9,0x39,0x2E,0x05,0x10,0xD3,0x26,0x04,0xF6,0x53,0x10,0x0F,0x37,0x92,0x0E,0x61,0x20,0x03,0x3C,0x3C,0x18,0x0F,0x3C,
+ 0x8F,0x0F,0x8B,0x0E,0xA4,0x0F,0x37,0x66,0x0E,0x90,0x11,0x56,0x0D,0x0E,0x4B,0x8A,0x0D,0xB9,0x0E,0x42,0xAF,0xEE,0x0C,0x0D,0x6B,0x0F,0x0C,0x97,0x0D,0x00,0x80,0x00,
+ 0x40,
+};
+uint8_t tileset_tile_38_compressed[110] = {
+ 0x10,0x05,0x10,0x1F,0x03,0x04,0x04,0x78,0x02,0x03,0x00,0x01,0x01,0x04,0xCE,0x02,0x4B,0x4B,0x08,0x7B,0x11,0x13,0xFB,0x0F,0x10,0x0E,0xBB,0x00,0x12,0xBB,0x0F,0x21,
+ 0x95,0x23,0x04,0x6B,0x0F,0x1C,0x0A,0x99,0x32,0x05,0x77,0x0E,0x08,0x75,0x0F,0x05,0xF3,0x0F,0x0E,0xFD,0x4B,0x05,0x4E,0xCD,0x0F,0x0E,0x68,0x30,0x05,0x9B,0x0F,0x0C,
+ 0x45,0x01,0xE1,0x0F,0x8B,0x11,0x0F,0x72,0x10,0xCD,0x1E,0x5F,0xD5,0x00,0x1C,0xF2,0x0E,0x0F,0xAE,0x10,0x01,0x11,0x6D,0x0F,0x10,0x03,0xCD,0x07,0x0E,0x4A,0x0F,0x1F,
+ 0x11,0x92,0x1D,0x7C,0x2F,0xC0,0x2B,0x09,0x4E,0xEE,0x01,0x00,0x00,0x01,
+};
+uint8_t tileset_tile_39_compressed[115] = {
+ 0x10,0x0D,0x10,0x01,0x01,0x04,0x02,0x03,0xBF,0x00,0x04,0x00,0x03,0x02,0x5C,0x4B,0x0B,0x46,0x0D,0x0E,0x4B,0x96,0x0C,0xF2,0x00,0x07,0x03,0x1F,0xA5,0x0F,0x0A,0xBB,
+ 0x04,0x1E,0x27,0x4B,0x05,0x2C,0xA5,0x03,0x1C,0xD5,0x0F,0x17,0xDD,0x0B,0x05,0xBB,0x10,0x05,0x50,0x0C,0x9B,0x46,0x10,0xEE,0x0F,0x2A,0x7B,0x10,0x0F,0x34,0x01,0x05,
+ 0x33,0x04,0x5D,0x0F,0x45,0x00,0xDA,0x0F,0x21,0x04,0x26,0x3F,0xEA,0x00,0x13,0x64,0x0E,0x4B,0xBD,0x0E,0x0A,0x98,0x10,0x1C,0x1F,0xA0,0x4B,0x1D,0xD7,0x40,0x21,0x1D,
+ 0xCD,0x0F,0x1F,0x22,0x75,0x4B,0xE5,0x00,0x2E,0xAA,0x01,0xF5,0x06,0x3B,0x0E,0x1F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_40_compressed[55] = {
+ 0x10,0x1A,0x10,0x07,0x18,0x00,0x14,0x93,0x00,0x19,0x3B,0x07,0x07,0x00,0x12,0x45,0x18,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8B,0x07,0x23,0x00,0x02,0x5A,0x00,0x00,
+ 0x10,0x07,0x2E,0x00,0x08,0x83,0x0F,0x30,0x2A,0x15,0x2A,0x87,0x02,0x30,0x15,0x90,0x00,0x21,0x38,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_41_compressed[55] = {
+ 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA7,0x00,0x07,0x57,0x07,0x00,0x09,0xC5,0x00,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8F,0x07,0x8B,0x00,0x41,0x07,0x71,0x00,0x10,
+ 0x15,0x1B,0x00,0x05,0xF0,0x0F,0x80,0x80,0x23,0x10,0x34,0x00,0x0F,0x32,0x65,0x00,0xC4,0x0F,0xD4,0x7C,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_42_compressed[65] = {
+ 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA7,0x00,0x07,0x57,0x07,0x00,0x09,0xC5,0x00,0xD2,0x07,0x00,0x02,0x7B,0x07,0x00,0x8F,0x07,0x8B,0x00,0x41,0x07,0x72,0x00,0x15,
+ 0x38,0x00,0x4A,0x24,0x8E,0x00,0x8D,0x5E,0xA5,0x0F,0x2E,0xA6,0x00,0x02,0x06,0x82,0x35,0x0F,0x34,0x76,0x01,0x0F,0x05,0x34,0xB9,0x0F,0x66,0x08,0x16,0x40,0x24,0x00,
+ 0x20,
+};
+uint8_t tileset_tile_43_compressed[56] = {
+ 0x10,0x1A,0x10,0x19,0x18,0x00,0x14,0xA5,0x00,0x07,0x15,0x19,0x02,0x07,0x00,0xF2,0x09,0x00,0xAE,0x07,0x14,0x0F,0xE2,0x00,0x2E,0x07,0x00,0x3E,0x07,0x28,0x00,0x10,
+ 0x07,0x8B,0x00,0xE0,0x0E,0x84,0x0F,0x30,0x15,0xA0,0x00,0x21,0x07,0x10,0x2A,0x10,0x15,0x2A,0x10,0x39,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_44_compressed[79] = {
+ 0x10,0x05,0x10,0x02,0x07,0x09,0x0F,0xA6,0x00,0x07,0x00,0x4C,0x02,0x10,0x09,0x99,0x00,0x02,0x71,0x21,0x6B,0x0F,0x17,0x10,0x8A,0x0F,0x4B,0x0B,0x10,0x10,0x0F,0x1B,
+ 0x96,0x10,0x26,0x3F,0x59,0x10,0xF9,0x00,0x3F,0x67,0x10,0x00,0xD7,0x0F,0x1B,0x10,0x14,0x1F,0x1B,0x8C,0x10,0xBA,0x0F,0x10,0x4F,0x17,0x00,0x26,0x0F,0x10,0x17,0x4D,
+ 0x0A,0x00,0x2F,0x0F,0x10,0x3C,0x00,0xD1,0x0F,0xF0,0x1F,0xC4,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_45_compressed[62] = {
+ 0x10,0x25,0x10,0x07,0x00,0x48,0x09,0x00,0x0A,0xE5,0x00,0x08,0x4A,0x07,0x0B,0x12,0x8A,0x0F,0x99,0x10,0x09,0x17,0x20,0x71,0x0D,0x9C,0x20,0x00,0x7C,0x10,0xD2,0x5F,
+ 0xB4,0x62,0x0F,0x0F,0x02,0x72,0x00,0x07,0x1E,0x00,0x47,0x17,0x23,0x00,0x0A,0x91,0x00,0x10,0xC4,0x00,0x02,0x1A,0x62,0x00,0x02,0x1F,0x0F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_46_compressed[74] = {
+ 0x10,0x34,0x10,0x0A,0x00,0x09,0x89,0x00,0x07,0x72,0x00,0x0E,0x12,0x09,0xF9,0x13,0x0F,0x67,0x16,0x0E,0x9E,0x0F,0xA2,0x11,0xEE,0x1E,0x0D,0x33,0x1E,0x0C,0x8F,0x2D,
+ 0x44,0x0F,0xD2,0x5C,0x00,0x02,0x39,0x00,0x07,0x0F,0x23,0x00,0x17,0x91,0x00,0x0A,0xC9,0x00,0x10,0x82,0x00,0x02,0x0B,0x0B,0x1B,0xE7,0x00,0x17,0x4D,0x02,0x17,0x3A,
+ 0x0F,0x1B,0x68,0x4F,0x89,0x0F,0xA0,0x00,0x00,0x10,
+};
+uint8_t tileset_tile_47_compressed[93] = {
+ 0x10,0x26,0x10,0x07,0x00,0x58,0x0F,0x00,0x09,0x07,0x02,0x4D,0x09,0x00,0x34,0x0E,0x5D,0x0F,0x22,0x0E,0x10,0xAD,0x0F,0x0E,0x17,0x13,0x0F,0x22,0x0E,0x0B,0x22,0x0F,
+ 0x52,0x0E,0x1B,0x02,0x79,0x5F,0x79,0x0E,0x3F,0xE5,0x00,0x0E,0x44,0x17,0xDB,0x1F,0x0E,0x1B,0x0F,0x8C,0x0E,0xA4,0x0F,0x17,0xF7,0x00,0x0E,0x49,0x0F,0x0A,0x97,0x00,
+ 0x17,0x0E,0x56,0x0F,0x05,0x1B,0x77,0x0B,0x77,0x0E,0x69,0x0F,0x10,0x79,0x00,0x37,0xA6,0x0F,0x4E,0x4E,0x1B,0x0F,0x1B,0x9A,0x00,0x78,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_48_compressed[47] = {
+ 0x10,0x14,0x10,0x4B,0x0E,0x00,0x15,0x44,0x08,0x42,0x00,0x11,0x0F,0x28,0x10,0x15,0xE8,0x0F,0xD9,0x1F,0x11,0x12,0x3A,0xF1,0x1F,0xA8,0x4F,0x3A,0xF8,0x5F,0x5A,0x0F,
+ 0x3E,0x5F,0x3F,0x0F,0x0E,0x87,0x78,0x0F,0x10,0x66,0x4F,0x3A,0x6F,0x00,0x01,
+};
+uint8_t tileset_tile_49_compressed[20] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x76,0x41,0x1E,0x1E,0x81,0xCE,0x77,0x00,0x01,
+};
+uint8_t tileset_tile_50_compressed[45] = {
+ 0x10,0x22,0x10,0x08,0x0A,0x00,0x15,0x0E,0x00,0x46,0x4B,0xC7,0x0E,0x91,0x0F,0x4B,0x4B,0xB0,0x2F,0xD4,0x0F,0x7C,0x2F,0x7F,0x4F,0x10,0x04,0xE8,0x0F,0x15,0x67,0x4F,
+ 0x0F,0x95,0x1D,0x3A,0x0C,0xCD,0x1F,0x1E,0x0B,0xC0,0x5F,0x00,0x20,
+};
+uint8_t tileset_tile_51_compressed[96] = {
+ 0x10,0x20,0x10,0x00,0x91,0x00,0x20,0xC6,0x00,0x9C,0x0D,0x2B,0x2B,0x03,0x66,0x0E,0x00,0x26,0x98,0x10,0x20,0x26,0xEF,0x1B,0x0E,0x0F,0x4D,0x27,0x1E,0x55,0x0C,0x01,
+ 0xAF,0x0E,0x26,0x10,0x1E,0xEC,0x07,0x3D,0x27,0x27,0xEF,0x03,0x0F,0x06,0xEF,0x01,0x1E,0x2E,0x97,0x31,0x1D,0xEF,0x1C,0x10,0x07,0xFB,0x00,0x23,0x1F,0xBA,0x4F,0x1A,
+ 0xA9,0x38,0x2A,0x1F,0x6E,0xBB,0x03,0x1C,0x08,0x97,0x0F,0x26,0xE3,0x0E,0x2E,0x50,0x1A,0xAE,0x05,0x3E,0xD7,0x10,0x27,0x10,0x3C,0x0D,0xF3,0x12,0x40,0x0D,0x00,0x20,
+};
+uint8_t tileset_tile_52_compressed[96] = {
+ 0x10,0x25,0x10,0x00,0x00,0x39,0x29,0x29,0x03,0xEC,0x0A,0x00,0x36,0x36,0xBB,0x05,0x14,0x7A,0x33,0x0A,0x00,0x2C,0x4A,0x02,0x14,0x9B,0x0F,0x0D,0xE7,0x0E,0x0F,0x45,
+ 0x2C,0x48,0x00,0x0F,0x28,0x88,0x00,0x94,0x0F,0x33,0x28,0x5D,0x33,0x0C,0x4D,0x06,0x0F,0x76,0x09,0x15,0x33,0x85,0x7E,0x2F,0x06,0x02,0xF8,0x04,0x03,0x4F,0x1F,0x9F,
+ 0x08,0xA9,0x00,0x40,0xB1,0x35,0x35,0xFD,0x24,0x1A,0x05,0x00,0x3E,0x0E,0x0F,0x36,0xBE,0x0F,0x10,0x77,0x0F,0x35,0x2A,0xC5,0x03,0xA7,0x20,0x35,0x0E,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_53_compressed[72] = {
+ 0x10,0x20,0x10,0x00,0x44,0x00,0x54,0x37,0x00,0x5A,0x0E,0x09,0x91,0x00,0x37,0x41,0x0E,0x1B,0x09,0x41,0x41,0x11,0x10,0xFC,0x0E,0x0B,0x0E,0x4F,0x10,0x0F,0xF1,0x0B,
+ 0x3E,0x2C,0x0F,0x42,0x0B,0x37,0x1B,0x52,0x35,0x04,0x42,0x66,0x0F,0x43,0x1D,0x35,0xCE,0x0F,0x37,0x43,0x0F,0x76,0x10,0x1B,0x0D,0x1B,0x9E,0x0E,0x58,0x10,0xBA,0x0E,
+ 0x10,0xA8,0x00,0x25,0xB9,0x08,0x00,0x04,
+};
+uint8_t tileset_tile_54_compressed[45] = {
+ 0x10,0x20,0x10,0x00,0x28,0x84,0x00,0x04,0x04,0x01,0x93,0x02,0x9A,0x0D,0x05,0x05,0x0D,0x01,0xEF,0x05,0x11,0x07,0x57,0x01,0x01,0x00,0x7F,0x06,0x11,0x0E,0xC5,0x04,
+ 0x5C,0x00,0x25,0x57,0x10,0x0A,0xC6,0x21,0xA0,0x0F,0x04,0x00,0x10,
+};
+uint8_t tileset_tile_55_compressed[89] = {
+ 0x10,0x02,0x10,0x00,0x38,0x43,0x38,0x00,0x6B,0x00,0x0A,0x23,0x38,0x40,0x04,0x00,0x38,0x38,0x2F,0x65,0x00,0x0F,0x0F,0x44,0x44,0x48,0x07,0x05,0x96,0x03,0xE4,0x0F,
+ 0x01,0xFE,0x00,0x15,0x06,0xE4,0x0F,0x1D,0xBB,0x0C,0x05,0x84,0x8E,0x3F,0x46,0x09,0x00,0x4D,0x03,0x04,0x46,0x0A,0x2B,0x1F,0x2F,0x17,0x1E,0xAE,0x07,0x20,0x12,0x1F,
+ 0x8E,0x00,0x5C,0x10,0x03,0xD2,0x00,0x61,0x0A,0xC4,0x13,0x0F,0xC7,0x0A,0x87,0xDF,0x04,0xA7,0x15,0x10,0x0F,0xB8,0x0A,0x00,0x04,
+};
+uint8_t tileset_tile_56_compressed[48] = {
+ 0x10,0x00,0x10,0x00,0x00,0x02,0x30,0x2A,0x15,0x2A,0x0A,0x10,0x07,0x30,0x15,0x00,0x20,0x21,0x07,0x20,0xE9,0x0F,0x08,0x07,0x16,0x0F,0x21,0xF7,0x00,0x0F,0x2A,0x04,
+ 0xC5,0x00,0x20,0x0F,0x15,0xDC,0x0F,0x10,0x02,0xB9,0x00,0x78,0x05,0x06,0x00,0x04,
+};
+uint8_t tileset_tile_57_compressed[59] = {
+ 0x10,0x02,0x10,0x02,0x32,0x32,0x07,0x34,0x66,0x00,0x07,0x0B,0x02,0xB4,0x0F,0x2E,0xD0,0x00,0x4F,0x0F,0x3C,0x00,0xD1,0x0F,0x7E,0x00,0x0F,0x15,0x24,0x44,0x32,0xE4,
+ 0x01,0x0E,0x30,0x15,0x5E,0x10,0x0F,0x15,0xA8,0x0F,0x99,0x00,0x23,0x2F,0x38,0x0F,0x03,0x3D,0x0F,0x8E,0x00,0x47,0x10,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_58_compressed[53] = {
+ 0x10,0x05,0x10,0x24,0x02,0x2E,0x34,0x16,0x01,0x02,0x02,0x05,0x34,0x38,0x02,0x24,0x0F,0xCF,0x00,0x0F,0x18,0xB4,0x00,0x02,0xD0,0x06,0x45,0x0F,0x1A,0x3F,0x15,0x46,
+ 0x24,0x23,0x00,0x15,0xD1,0x00,0x2A,0xC8,0x00,0x21,0x13,0x91,0x00,0x02,0xC8,0x00,0x10,0xE8,0x00,0x00,0x04,
+};
+uint8_t tileset_tile_59_compressed[46] = {
+ 0x10,0x0A,0x10,0x07,0x30,0x15,0x00,0x00,0x21,0x07,0x10,0x2A,0x15,0x2A,0x10,0x02,0x81,0xF5,0x0F,0x07,0x17,0x0F,0x52,0x05,0x17,0x0F,0x2A,0x21,0x00,0xDD,0x0F,0x04,
+ 0xA0,0x0F,0x15,0xF7,0x0F,0x73,0x92,0x00,0x5A,0x06,0x0E,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_60_compressed[72] = {
+ 0x10,0x0B,0x10,0x02,0x17,0x1B,0x00,0x26,0x17,0x0A,0x00,0x82,0x02,0x0F,0x0B,0x17,0x3B,0x0F,0x10,0x8E,0x0F,0xE2,0x10,0xD7,0x0F,0x0A,0x10,0x17,0x0F,0x24,0x10,0x42,
+ 0x0F,0x10,0x64,0x10,0x02,0xC9,0x00,0x10,0x62,0x10,0x12,0x1F,0x00,0xC4,0x10,0xCB,0x0F,0x10,0x15,0x0F,0x7C,0x10,0x0F,0xE9,0x00,0x00,0x63,0x10,0x2E,0x0F,0x10,0x74,
+ 0x00,0x00,0xD3,0x10,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_61_compressed[33] = {
+ 0x10,0x11,0x10,0x02,0x1A,0x88,0x00,0x02,0x1C,0x11,0x0F,0x17,0x90,0x00,0x8A,0x0F,0x0A,0x32,0x00,0x11,0x0F,0x46,0x0B,0x21,0x00,0x02,0xF4,0x00,0x10,0x74,0x00,0x00,
+ 0x02,
+};
+uint8_t tileset_tile_62_compressed[58] = {
+ 0x10,0x26,0x10,0x0A,0x00,0x18,0x1B,0x16,0x0F,0x00,0x16,0x1B,0x1B,0x88,0x0F,0xEE,0x0D,0x02,0x18,0x0F,0x29,0x0B,0x09,0x00,0x0B,0xC5,0x05,0x71,0x0F,0x0D,0x73,0x0F,
+ 0x44,0x00,0xFC,0x0F,0x20,0x02,0x22,0x1F,0x02,0x8E,0x00,0x41,0x0A,0x72,0x00,0x17,0x1E,0x00,0x8F,0x5F,0x47,0x10,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_63_compressed[107] = {
+ 0x10,0x06,0x10,0x1B,0x1B,0x16,0x0F,0x00,0x16,0x16,0x1B,0x17,0x1B,0x00,0x17,0x76,0x02,0x03,0x0D,0x1B,0x8C,0x0F,0x45,0x1B,0x01,0x0F,0x09,0x0B,0x09,0x09,0x16,0x0B,
+ 0xDE,0x00,0x0F,0x0E,0x0B,0xA2,0x0F,0x16,0x09,0xEF,0x11,0x0F,0x0E,0xD3,0x0F,0x0B,0x77,0x00,0x0F,0x0E,0x77,0x1F,0x31,0x76,0x0F,0x0E,0x0A,0x89,0x1F,0x93,0x0E,0x0F,
+ 0x9E,0x00,0x62,0x0E,0x10,0x0A,0x64,0x00,0x17,0xB1,0x0E,0x52,0x0F,0x22,0x0E,0x00,0x25,0x0F,0x0E,0x27,0x00,0x17,0x00,0x96,0x0E,0x26,0x0F,0x54,0x0E,0x00,0xF3,0x5F,
+ 0x13,0x0E,0x00,0x10,0xCA,0x00,0x0E,0x00,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_64_compressed[53] = {
+ 0x10,0x14,0x10,0x4B,0x0E,0x00,0x15,0x44,0x08,0x42,0x00,0x13,0x0F,0xC1,0x10,0xBC,0x0F,0x3F,0x5F,0x68,0x0F,0x0E,0x49,0x6F,0x15,0x2F,0x03,0x0F,0x2A,0x21,0x15,0xAE,
+ 0x02,0x03,0x79,0x0F,0xFE,0x00,0x0E,0x00,0x3F,0x0F,0x00,0x8F,0x0F,0xB9,0x11,0xE3,0x05,0x60,0x00,0x00,0x10,
+};
+uint8_t tileset_tile_65_compressed[44] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x75,0x41,0x3A,0x04,0x95,0x66,0x00,0x24,0x06,0x9A,0x03,0x02,0x0E,0x97,0x00,0x15,0x06,0x7C,0x03,0x02,0x18,
+ 0x2A,0x00,0x4B,0x00,0x25,0x07,0x4B,0x1D,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_66_compressed[59] = {
+ 0x10,0x22,0x10,0x08,0x0A,0x00,0x15,0x0E,0x00,0x46,0x4B,0xC7,0x0E,0x91,0x0F,0x4B,0x4B,0xB0,0x2F,0xD4,0x0F,0x7C,0x2F,0x7C,0x4F,0x7A,0x6F,0x08,0x75,0x1F,0x15,0x44,
+ 0x00,0xF6,0x3F,0x0B,0x07,0x15,0x9B,0x3D,0x00,0x45,0x0E,0xC7,0x00,0x7C,0x0F,0x0D,0x00,0x6D,0x0D,0xCF,0x0F,0x05,0x0A,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_67_compressed[44] = {
+ 0x10,0x19,0x10,0x4B,0x0E,0x00,0x15,0x08,0x12,0x00,0x0E,0x86,0x64,0x0F,0x06,0x8E,0x1E,0xD6,0x14,0x15,0x0E,0x3A,0x9B,0x1D,0x07,0x84,0x62,0x00,0xB8,0x2E,0x1E,0x33,
+ 0x00,0x43,0x15,0xF0,0x1D,0xFC,0x58,0x37,0x1E,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_68_compressed[40] = {
+ 0x10,0x22,0x10,0x08,0x4D,0x00,0x15,0x0E,0x00,0x4B,0x1C,0x0F,0x0E,0x86,0xB8,0x0F,0x10,0xB5,0x0F,0x3A,0xE8,0x10,0x00,0x08,0x6F,0x00,0x1D,0x83,0x38,0x00,0x22,0x53,
+ 0x43,0x3A,0xB0,0x41,0xD4,0x1E,0x00,0x02,
+};
+uint8_t tileset_tile_69_compressed[112] = {
+ 0x10,0x22,0x10,0x4B,0x59,0x00,0x04,0x00,0x05,0x04,0x12,0x0D,0x03,0x34,0x03,0x05,0x0E,0x05,0x49,0x0F,0x05,0x01,0xF2,0x0E,0x03,0x28,0x0B,0x1F,0x2B,0x01,0x01,0xE4,
+ 0x02,0x0F,0xFE,0x0C,0x02,0x08,0xAB,0x1D,0x03,0x12,0xBF,0x1D,0x02,0x1C,0xBF,0x0E,0x0F,0x00,0x9A,0x4B,0xEA,0x0D,0x4E,0xEE,0x1F,0x4A,0x5A,0x00,0x42,0xA4,0x6F,0x1C,
+ 0x9D,0x1D,0x0B,0xD9,0x2D,0x2F,0x1C,0x03,0xDD,0x0A,0x49,0xF7,0x52,0x31,0x3C,0x72,0x17,0xF3,0x50,0x00,0x27,0x0F,0x05,0x00,0xAA,0x7B,0x2F,0x8C,0x0F,0x90,0xB9,0x27,
+ 0x00,0x5D,0x1F,0x1F,0xCF,0x4C,0x0F,0xD8,0x5E,0xB8,0x4D,0x7F,0xC0,0x03,0x00,0x20,
+};
+uint8_t tileset_tile_70_compressed[84] = {
+ 0x10,0x11,0x10,0x01,0x05,0x8E,0x00,0x01,0x00,0xA6,0x04,0x0B,0x9A,0x0E,0xF9,0x06,0x03,0xE3,0x09,0xF8,0x2F,0x00,0xD8,0x0D,0xBA,0x27,0x0C,0x49,0x04,0x11,0x3F,0x04,
+ 0x0E,0x2C,0x10,0xF5,0x00,0x0E,0x3C,0x11,0xEF,0x0D,0x03,0x03,0x09,0x98,0x02,0x04,0x03,0xBD,0x03,0x11,0x03,0x75,0x0C,0x06,0x4B,0x1B,0x05,0x11,0xAA,0x17,0x27,0xBF,
+ 0x29,0x63,0x0F,0xB9,0x30,0x6E,0x03,0x0F,0xE5,0x48,0x7F,0x8D,0x8B,0x09,0xA3,0x07,0xC2,0xBF,0x00,0x01,
+};
+uint8_t tileset_tile_71_compressed[102] = {
+ 0x10,0x0D,0x10,0x04,0x05,0x04,0x00,0x4B,0x13,0x00,0x84,0x0E,0x05,0x05,0x03,0x03,0x4A,0x11,0x01,0xB8,0x10,0x03,0xC7,0x0F,0x01,0x01,0xCF,0x02,0x11,0x5D,0x0C,0x30,
+ 0x4F,0x21,0x22,0xDF,0x1A,0x0F,0x10,0xCF,0x00,0x1F,0x57,0x50,0x00,0x37,0x53,0x0E,0x2A,0x20,0x05,0x6E,0x31,0x0D,0xE4,0x31,0x13,0xD5,0x21,0x1C,0x1F,0x25,0x4C,0xEA,
+ 0x55,0x04,0x03,0x0F,0x96,0x2A,0xFE,0x24,0x00,0x20,0x7B,0x0F,0x12,0x8F,0x0F,0xF4,0x01,0x0F,0x1F,0x4D,0x0F,0x84,0xC5,0x5F,0x0F,0x52,0x6B,0x1F,0x1F,0x38,0x96,0x7D,
+ 0xC8,0x10,0x1C,0x1F,0x00,0x04,
+};
+uint8_t tileset_tile_72_compressed[46] = {
+ 0x10,0x20,0x10,0x00,0x21,0x49,0x00,0x0C,0x07,0xA6,0x00,0x0E,0x55,0x11,0x00,0xA7,0x04,0x0C,0x0E,0x8B,0x0F,0xA4,0x08,0x22,0x53,0x0F,0x0C,0x08,0x45,0x22,0x64,0x0F,
+ 0x06,0x0C,0x22,0x57,0x0F,0x05,0x19,0x0F,0x71,0x3B,0x70,0x0F,0x00,0x08,
+};
+uint8_t tileset_tile_73_compressed[18] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x47,0x07,0x34,0x00,0x11,0x00,0x0C,0x0D,0x70,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_74_compressed[18] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x47,0x07,0x34,0x00,0x11,0x00,0x0C,0x0D,0x70,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_75_compressed[41] = {
+ 0x10,0x20,0x10,0x00,0x7E,0x00,0x4C,0x07,0x00,0x0C,0x99,0x0F,0x11,0xAC,0x00,0x0C,0x03,0x22,0x0C,0x8E,0x0F,0xE3,0x10,0xB8,0x0F,0x10,0xF4,0x0F,0x0C,0x77,0x0F,0x01,
+ 0x1D,0x0F,0xC7,0x02,0x70,0x0F,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_76_compressed[79] = {
+ 0x10,0x11,0x10,0x00,0x10,0xA2,0x00,0x02,0x16,0x0F,0x33,0x00,0x0F,0x2C,0x16,0x12,0x00,0x09,0x12,0x97,0x00,0x0F,0x94,0x20,0x09,0x09,0x96,0x06,0x6F,0x1F,0x1E,0x02,
+ 0xB9,0x0E,0xE4,0x1F,0x0C,0xB8,0x23,0xAB,0x1F,0x06,0x85,0xE1,0x3F,0x18,0x5F,0x94,0x7F,0x07,0x5E,0x00,0x0F,0x07,0xD2,0x1B,0x16,0xA8,0x00,0x0F,0x03,0x02,0x0F,0x84,
+ 0xA6,0x0F,0x4B,0x5F,0x0F,0x4F,0x0F,0x1B,0x3F,0xC6,0x1D,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_77_compressed[59] = {
+ 0x10,0x84,0x11,0x00,0x0F,0xC4,0x00,0x09,0x12,0xB1,0x00,0x09,0x07,0x09,0x67,0x16,0x07,0xA9,0x11,0xA5,0x25,0x07,0x8B,0x1B,0xBB,0x07,0x39,0x8B,0x03,0x8F,0x3F,0x84,
+ 0x27,0x5F,0x77,0x99,0x07,0x07,0x1C,0x00,0x16,0xA5,0x00,0x0F,0xC2,0x04,0xD7,0x07,0x43,0xF3,0x74,0x00,0xA1,0x07,0x07,0xE8,0x00,0x00,0x04,
+};
+uint8_t tileset_tile_78_compressed[59] = {
+ 0x10,0x84,0x11,0x00,0x0F,0xC4,0x00,0x09,0x12,0xB1,0x00,0x09,0x07,0x09,0x67,0x16,0x07,0xA9,0x11,0xA5,0x25,0x07,0x8B,0x1B,0xBB,0x07,0x39,0x8B,0x03,0x8F,0x3F,0x84,
+ 0x27,0x5F,0x77,0x99,0x07,0x07,0x1C,0x00,0x16,0xA5,0x00,0x0F,0xC2,0x04,0xD7,0x07,0x43,0xF3,0x74,0x00,0xA1,0x07,0x07,0xE8,0x00,0x00,0x04,
+};
+uint8_t tileset_tile_79_compressed[77] = {
+ 0x10,0x8F,0x00,0x23,0x00,0x0F,0x02,0x00,0x09,0x02,0x09,0x12,0x5B,0x00,0x07,0xFE,0x04,0x0F,0x02,0x59,0x18,0x2A,0x06,0x0F,0xAE,0x14,0x08,0x5A,0x20,0x0F,0x92,0x15,
+ 0x49,0x12,0xEE,0x1F,0x18,0xE1,0x1F,0x58,0x3F,0x42,0x5F,0x79,0x79,0x91,0x1F,0x07,0x74,0x00,0x0F,0x16,0xA5,0x00,0x0F,0xFA,0x04,0x00,0x22,0x07,0x3C,0x0F,0x07,0x02,
+ 0xB4,0x46,0x0F,0xD7,0x52,0x0F,0x19,0x3F,0x09,0x40,0x0F,0x00,0x20,
+};
+uint8_t tileset_tile_80_compressed[74] = {
+ 0x10,0x20,0x10,0x4B,0x85,0x00,0x0D,0x72,0x00,0x4C,0x05,0x0E,0x0B,0xA9,0x00,0x6E,0x04,0x12,0xE7,0x09,0x0F,0xE1,0x02,0x8B,0x0F,0x00,0x89,0x0F,0x24,0x0D,0x13,0x00,
+ 0xE6,0x11,0x5F,0xD2,0x09,0x06,0xCB,0x00,0x1F,0x91,0x0F,0x06,0x0D,0xDC,0x0F,0x10,0x71,0x0F,0x06,0x13,0x1F,0x0F,0x73,0x04,0xDF,0x4F,0x1E,0x02,0xA6,0x01,0x4B,0x20,
+ 0x97,0x3E,0x04,0x9E,0x0F,0x64,0x5E,0x0D,0x00,0x02,
+};
+uint8_t tileset_tile_81_compressed[68] = {
+ 0x10,0x21,0x10,0x4B,0xF5,0x00,0x0D,0x4F,0x00,0x08,0x6A,0x00,0x0B,0x00,0x89,0x09,0x4B,0x13,0x0F,0x70,0x04,0xB4,0x0F,0x6A,0x34,0x13,0x59,0x00,0x15,0x0B,0x06,0x00,
+ 0xCB,0x04,0x12,0x73,0x0D,0x5D,0x00,0x10,0x46,0x0D,0x71,0x10,0x04,0x92,0x10,0xDC,0x06,0x15,0x5F,0x18,0x26,0x18,0x16,0x13,0xB4,0x02,0x13,0x6D,0x25,0x46,0x6E,0xA0,
+ 0x34,0x0D,0x00,0x10,
+};
+uint8_t tileset_tile_82_compressed[74] = {
+ 0x10,0x20,0x10,0x4B,0x85,0x00,0x0D,0x57,0x00,0x04,0xCA,0x00,0x0C,0x0B,0xA9,0x00,0x6A,0x04,0x10,0x7B,0x0A,0x04,0x42,0x0B,0xB2,0x0F,0x4F,0x00,0x0F,0xA4,0x09,0x13,
+ 0x00,0x4E,0x0D,0x0F,0x06,0x95,0x00,0x13,0x31,0x5F,0x06,0x0D,0x3C,0x0F,0xBA,0x1F,0x09,0x0D,0x3B,0x0F,0x0A,0x8F,0x0F,0x46,0x13,0x2D,0x0F,0x13,0x02,0x13,0x1B,0x4F,
+ 0xCD,0x04,0x1E,0x3A,0x6F,0x0D,0x78,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_83_compressed[35] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x75,0x41,0x3A,0x02,0x17,0x66,0x00,0x18,0x48,0x0E,0xE3,0x00,0x17,0x30,0x0E,0x10,0x0D,0x23,0x0F,0x4B,0xA0,
+ 0x0F,0x00,0x10,
+};
+uint8_t tileset_tile_84_compressed[41] = {
+ 0x10,0x20,0x10,0x08,0xA5,0x00,0x15,0x04,0x28,0x1D,0x3A,0x76,0x41,0x78,0x1E,0x2D,0x71,0x43,0x15,0x0E,0x4B,0x15,0x00,0x2C,0x77,0x15,0x0E,0xE2,0x00,0xD7,0x3D,0x0E,
+ 0x0F,0x1B,0x1E,0x1E,0x1F,0x4B,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_85_compressed[122] = {
+ 0x10,0x00,0x10,0x1C,0x1C,0x03,0x01,0x01,0x04,0x04,0x3E,0x01,0x05,0x00,0x07,0xAB,0x09,0x0E,0x08,0xFE,0x0E,0x01,0x00,0xEE,0x11,0x0F,0xFB,0x10,0x00,0x0F,0xFF,0x07,
+ 0x0F,0x02,0x06,0xBB,0x08,0x11,0x3B,0x04,0x03,0x0F,0x18,0xBB,0x38,0x00,0xD7,0x0F,0x03,0x2F,0x77,0x0E,0x10,0xDC,0x0D,0x0F,0x97,0x28,0x20,0xDC,0x0C,0x1F,0xB6,0x28,
+ 0x3A,0x03,0xB7,0x23,0x1F,0x06,0x2F,0x10,0x06,0x7F,0x37,0x0F,0x10,0x72,0x36,0xD3,0x5F,0x00,0x4B,0x0F,0xB9,0x10,0x25,0x32,0x0F,0x97,0x10,0x3C,0x9B,0x1F,0x10,0xC2,
+ 0xC2,0x49,0x11,0x3D,0x74,0x0F,0x00,0x1C,0x2C,0x10,0xB7,0x58,0x1F,0x72,0x0F,0xF5,0x10,0x01,0x3F,0x35,0x0E,0xF0,0x54,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_86_compressed[86] = {
+ 0x10,0x1D,0x10,0x01,0x05,0x00,0xDC,0x03,0x06,0xFA,0x0A,0x05,0x01,0xE7,0x03,0x15,0x8A,0x00,0xD1,0x0C,0x04,0xAE,0x0F,0x04,0x00,0x49,0x28,0xAA,0x04,0x0E,0xE6,0x11,
+ 0x00,0xB2,0x0B,0x03,0x03,0x64,0x12,0x04,0xD3,0x0D,0x4E,0x10,0x0E,0x01,0xBE,0x0E,0x1C,0x64,0x04,0x03,0x91,0x35,0x93,0x04,0xDC,0x1B,0x07,0xDD,0x0F,0x69,0xF2,0x4F,
+ 0x05,0xF2,0x24,0x76,0x85,0xA3,0xF1,0x06,0x10,0xE1,0x9F,0x18,0xC0,0x15,0x0A,0x71,0x2E,0x61,0xCE,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_87_compressed[123] = {
+ 0x10,0x14,0x10,0x04,0x01,0x00,0x05,0xCA,0x00,0x01,0x04,0x09,0x0B,0x03,0x1C,0x1C,0x04,0x0D,0xAF,0x12,0x07,0x01,0xFA,0x07,0x10,0x16,0xBE,0x0F,0x06,0xED,0x0E,0x0F,
+ 0x03,0xDD,0x08,0x0D,0xB1,0x0E,0x05,0x05,0x1C,0x03,0x03,0x77,0x0C,0x3C,0x77,0x1F,0x0F,0x77,0x11,0x3D,0x6B,0x00,0x03,0x1F,0xBB,0x10,0x50,0xAB,0x36,0x4F,0xD7,0x08,
+ 0x03,0x44,0x2D,0x36,0xFC,0x6F,0x00,0x0F,0xBA,0x0E,0x16,0x1F,0x4B,0x36,0x0B,0xBE,0x48,0x0E,0x49,0x0F,0x2F,0x2C,0x0E,0x0F,0x4B,0x4B,0x1F,0xCB,0x42,0x0E,0x52,0x0F,
+ 0x49,0x6A,0x0D,0x86,0xBC,0x0E,0x4B,0x96,0x46,0x57,0x0E,0x1C,0x0E,0xA6,0x0F,0x03,0x0E,0xB9,0x0F,0xEE,0x1F,0x0E,0x4E,0x2F,0x10,0x00,0x01,
+};
+uint8_t tileset_tile_88_compressed[51] = {
+ 0x10,0x1A,0x10,0x02,0x22,0x00,0x0C,0x9A,0x03,0x11,0x00,0x0C,0xE0,0x03,0x76,0x0F,0x26,0x25,0x0C,0x00,0x95,0x0F,0x25,0x1A,0x0F,0x25,0x87,0x04,0x0F,0x25,0x07,0x07,
+ 0x5F,0x0F,0x0B,0x71,0x10,0x15,0x0F,0x0E,0x71,0x10,0x09,0x0F,0x0C,0xA6,0x10,0x00,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_89_compressed[49] = {
+ 0x10,0x34,0x10,0x11,0x00,0x0C,0x0F,0x70,0x03,0xC2,0x00,0x07,0xC8,0x04,0x0A,0x0B,0xBF,0x0E,0x0D,0x00,0x8A,0x0E,0xE3,0x0C,0x29,0x0F,0x1D,0x0A,0x17,0x2D,0x64,0x0E,
+ 0x22,0x0B,0x5F,0x1E,0x0E,0xA5,0x03,0x07,0x00,0xDD,0x0F,0x25,0x00,0xC0,0x41,0x00,0x20,
+};
+uint8_t tileset_tile_90_compressed[51] = {
+ 0x10,0x34,0x10,0x11,0x00,0x0C,0x0F,0x71,0x03,0xE5,0x00,0x0B,0x0A,0xA2,0x05,0x07,0x74,0x0F,0x00,0x0A,0x5A,0x10,0x0B,0xE3,0x00,0x17,0x21,0x0A,0x21,0x3E,0x0F,0x1F,
+ 0x22,0xE2,0x10,0xFE,0x20,0x0B,0x10,0x2E,0x20,0xDD,0x3D,0x25,0x00,0x4B,0x0F,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_91_compressed[51] = {
+ 0x10,0x35,0x10,0x11,0x00,0x0C,0xBB,0x03,0x22,0x00,0x03,0x40,0x02,0xDE,0x0F,0x0C,0x99,0x00,0x25,0x1E,0x0F,0x25,0x8F,0x0F,0x43,0x25,0xC2,0x0F,0x07,0x07,0x25,0x2E,
+ 0x0F,0xB8,0x0E,0x00,0x99,0x0F,0x32,0x0E,0x00,0x02,0x07,0x7B,0x00,0x0D,0xD0,0x42,0x02,0x00,0x08,
+};
+uint8_t tileset_tile_92_compressed[59] = {
+ 0x10,0x05,0x10,0x02,0x12,0x12,0x09,0x92,0x00,0x07,0x09,0xC2,0x00,0x4B,0x0F,0x0F,0x00,0x24,0x07,0x0F,0x0E,0x52,0x0F,0x0F,0x07,0xFB,0x00,0x20,0x10,0xE6,0x16,0x2F,
+ 0xFB,0x0F,0x02,0x25,0x44,0x09,0xFA,0x0F,0x0C,0x00,0x0F,0x7E,0x3F,0x0F,0xAE,0x02,0x23,0x7B,0x3F,0x0E,0xB8,0x10,0x1F,0xE0,0x7F,0x00,0x10,
+};
+uint8_t tileset_tile_93_compressed[44] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x13,0x06,0x0F,0xCB,0x07,0x10,0xCF,0x0E,0x07,0x7D,0x21,0x00,0xCF,0x2D,0x07,0xAE,0x04,0x07,0x1B,0x79,0x07,0xA7,
+ 0x1B,0x07,0xE6,0x06,0x56,0x9A,0x07,0x07,0xF8,0x7F,0x00,0x04,
+};
+uint8_t tileset_tile_94_compressed[44] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x13,0x06,0x0F,0xCB,0x07,0x10,0xCF,0x0E,0x07,0x7D,0x21,0x00,0xCF,0x2D,0x07,0xAE,0x04,0x07,0x1B,0x79,0x07,0xA7,
+ 0x1B,0x07,0xE6,0x06,0x56,0x9A,0x07,0x07,0xF8,0x7F,0x00,0x04,
+};
+uint8_t tileset_tile_95_compressed[57] = {
+ 0x10,0x12,0x10,0x07,0x09,0xDE,0x00,0x07,0x04,0x07,0x42,0x02,0x09,0x0F,0x0F,0x1D,0x0E,0x0F,0x07,0x57,0x00,0x0F,0x13,0x7D,0x10,0x09,0x5F,0x1B,0x00,0x0F,0xDC,0x08,
+ 0x18,0xB2,0x30,0x55,0x0F,0x25,0xCF,0x23,0x0F,0x76,0x1B,0x34,0x07,0x96,0x3F,0x4B,0x0E,0x10,0x9A,0x3F,0x07,0xF8,0x7F,0x00,0x04,
+};
+uint8_t tileset_tile_96_compressed[79] = {
+ 0x10,0x35,0x10,0x4B,0x00,0x0D,0x09,0x00,0x13,0x0D,0x06,0x69,0x00,0x0E,0x0B,0xFC,0x00,0x0F,0x10,0x77,0x0F,0x10,0x1D,0x0F,0xC7,0x10,0xDC,0x0F,0x10,0xF5,0x4F,0x00,
+ 0xFC,0x0C,0x02,0x0F,0xF2,0x20,0x73,0x2D,0x10,0xCC,0x0F,0x5E,0x0D,0x8E,0x0F,0x9F,0x1F,0x0E,0x89,0x7F,0x93,0x00,0x09,0x8C,0x7F,0x96,0x4C,0x39,0x0F,0x13,0x19,0x0F,
+ 0x7C,0x7F,0x01,0xF2,0x0F,0xA7,0x3E,0x0D,0x4F,0x4F,0x13,0x7F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_97_compressed[74] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x96,0x0E,0x5C,0x0D,0x8B,0x3B,0x9E,0x4E,0xA3,0x0D,0x38,0x10,0x04,0xC8,0x10,0xA0,0xA9,0x8A,0x18,0xE3,0x26,0x2F,0x16,0x7F,
+ 0x01,0x8D,0x25,0xA8,0x6E,0xD4,0x34,0x0D,0x00,0x02,
+};
+uint8_t tileset_tile_98_compressed[85] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x0A,0x00,0x0D,0x13,0x0D,0x00,0x64,0x4B,0x00,0x06,0x13,0xBB,0x0E,0x0F,0x0B,0x00,0xAA,0x10,0x0B,0xF8,0x02,0x0D,0xAD,0x0F,0x0D,0x0D,0x1B,
+ 0x0F,0xC6,0x0E,0x25,0x0F,0x13,0x00,0x9F,0x4F,0x1D,0x8B,0x1E,0x71,0x4B,0x0E,0xB3,0x0F,0xCF,0x3D,0x0F,0x2F,0x4E,0x73,0x13,0x0F,0x75,0x10,0x04,0x72,0x00,0xF7,0x6F,
+ 0x0B,0x04,0x14,0x7F,0x06,0x8C,0x0F,0xE3,0x2C,0x38,0x0F,0x0E,0xC9,0x0F,0x6A,0x2C,0x25,0x68,0x4F,0x00,0x04,
+};
+uint8_t tileset_tile_99_compressed[86] = {
+ 0x10,0x33,0x10,0x4B,0x00,0x0D,0x0B,0x00,0x12,0x0D,0x0D,0x06,0xCE,0x00,0x0F,0x13,0x44,0x0D,0xF5,0x0F,0x00,0x0F,0x35,0x10,0xDA,0x0C,0x2E,0x13,0x6E,0x10,0x0B,0xEF,
+ 0x0F,0x1F,0x0F,0xE7,0x10,0x0F,0xB6,0x0E,0x13,0x0C,0x13,0x9A,0x0F,0x7E,0x2D,0x10,0xEE,0x3F,0x3C,0x7E,0x6F,0x06,0xE2,0x1B,0x6E,0x0F,0x12,0x58,0x2C,0xCE,0x10,0x04,
+ 0x32,0x10,0x5B,0x06,0x15,0x8B,0x18,0xE3,0x26,0x2F,0x16,0x7F,0x01,0x8D,0x25,0xA8,0x6E,0xD4,0x34,0x0D,0x00,0x02,
+};
+uint8_t tileset_tile_100_compressed[93] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x0C,0x00,0x0D,0x0D,0x0B,0x00,0x0D,0x4B,0xC9,0x00,0x06,0x13,0x13,0x0E,0x13,0xFF,0x0F,0x0B,0x21,0x13,0xFC,0x00,0x0F,0x22,0xBF,0x0F,0x0D,
+ 0x1D,0xCB,0x00,0x30,0xC9,0x00,0x2C,0x25,0x1F,0xF2,0x0F,0x02,0x4F,0x2C,0x10,0x77,0x0F,0x1D,0x3D,0x10,0xCF,0x02,0x0D,0x77,0x42,0x3F,0x2D,0x10,0xCD,0x48,0x00,0x27,
+ 0x5D,0x06,0x19,0x10,0xC6,0x04,0x4A,0x10,0x06,0x13,0x8D,0x0E,0xA8,0x78,0xC5,0x16,0x13,0xA3,0x02,0x13,0x6A,0x25,0x6E,0x35,0x34,0x0D,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_101_compressed[109] = {
+ 0x10,0x03,0x10,0x1F,0x1F,0x1C,0x1C,0x04,0x00,0x4A,0x03,0x00,0x05,0x49,0x04,0x0E,0x3E,0x0D,0x0E,0x05,0xB9,0x0F,0x9F,0x0D,0x01,0x0E,0x03,0x10,0x0F,0x01,0x11,0x01,
+ 0x04,0x01,0x3F,0x0F,0x2A,0x1D,0x5F,0x03,0x12,0x4F,0x7D,0x0F,0x1C,0xFA,0x0E,0x0F,0x00,0x4B,0x5B,0x20,0x0D,0xFB,0x00,0x59,0x0F,0xE5,0x05,0x0D,0xAC,0x1E,0x0A,0x4B,
+ 0x4B,0xA9,0x1E,0x2E,0x0B,0x2D,0xBE,0x2F,0x0F,0x3D,0x49,0x49,0x29,0x52,0x1F,0x04,0x73,0x4D,0x73,0x50,0x00,0x27,0x0F,0x05,0x00,0xFE,0x4F,0x0F,0x0D,0x32,0x0F,0x22,
+ 0x6E,0xF0,0x00,0x8F,0x8D,0x2F,0xE2,0x7E,0x6E,0x2E,0x16,0x00,0x01,
+};
+uint8_t tileset_tile_102_compressed[84] = {
+ 0x10,0x11,0x10,0x01,0x05,0x8E,0x00,0x01,0x00,0xA6,0x04,0x0B,0x9A,0x0E,0xF9,0x06,0x03,0xE3,0x09,0xF8,0x2F,0x00,0xD8,0x0D,0xBA,0x27,0x0C,0x49,0x04,0x11,0x3F,0x04,
+ 0x0E,0x2C,0x10,0xF5,0x00,0x0E,0x3C,0x11,0xEF,0x0D,0x03,0x03,0x09,0x98,0x02,0x04,0x03,0xBD,0x03,0x11,0x03,0x75,0x0C,0x06,0x4B,0x1B,0x05,0x11,0xAA,0x17,0x27,0xBF,
+ 0x29,0x63,0x0F,0xB9,0x30,0x6E,0x03,0x0F,0xE5,0x48,0x7F,0x8D,0x8B,0x09,0xA3,0x07,0xC2,0xBF,0x00,0x01,
+};
+uint8_t tileset_tile_103_compressed[107] = {
+ 0x10,0x09,0x10,0x04,0x05,0x03,0x58,0x00,0x04,0x00,0x1C,0x1C,0x1F,0x38,0x1F,0x05,0x10,0x9A,0x11,0x10,0x52,0x01,0x10,0x01,0x69,0x11,0x9A,0x0F,0x01,0x01,0x01,0x27,
+ 0x0F,0x0C,0xFE,0x30,0x21,0x02,0x75,0x0F,0x01,0xF7,0x0F,0x10,0x22,0xFD,0x0F,0x4F,0x1F,0x5C,0x50,0x00,0xAE,0x1E,0x4B,0x0E,0x5A,0x20,0x00,0xAF,0x5F,0x0F,0x0D,0xB9,
+ 0x31,0x29,0x13,0x20,0x4B,0xC9,0x1F,0x4C,0x27,0x55,0x41,0x5C,0x0F,0x06,0xD6,0x4E,0x51,0x04,0x9E,0x0F,0xE3,0x12,0xFD,0x0F,0x01,0x0F,0x1F,0x13,0x0F,0x7C,0x70,0x0F,
+ 0x76,0x2F,0x8F,0x17,0x08,0x13,0x30,0x84,0x80,0x00,0x02,
+};
+uint8_t tileset_tile_104_compressed[79] = {
+ 0x10,0x05,0x10,0x02,0x07,0x0C,0x25,0xA6,0x00,0x07,0x00,0x4C,0x02,0x10,0x0C,0x99,0x00,0x02,0x71,0x21,0x6B,0x0F,0x17,0x10,0x8A,0x0F,0x4B,0x0B,0x10,0x10,0x0F,0x1B,
+ 0x96,0x10,0x26,0x3F,0x59,0x10,0xF9,0x00,0x3F,0x67,0x10,0x00,0xD7,0x0F,0x1B,0x10,0x14,0x1F,0x1B,0x8C,0x10,0xBA,0x0F,0x10,0x4F,0x17,0x00,0x26,0x0F,0x10,0x17,0x4D,
+ 0x0A,0x00,0x2F,0x0F,0x10,0x3C,0x00,0xD1,0x0F,0xF0,0x1F,0xC4,0x0F,0x00,0x02,
+};
+uint8_t tileset_tile_105_compressed[62] = {
+ 0x10,0x25,0x10,0x07,0x00,0x48,0x0C,0x00,0x0A,0xE5,0x00,0x08,0x4A,0x07,0x0B,0x22,0x8A,0x0F,0x99,0x10,0x0C,0x17,0x20,0x71,0x0D,0x9C,0x20,0x00,0x7C,0x10,0xD2,0x5F,
+ 0xB4,0x62,0x25,0x0F,0x02,0x72,0x00,0x07,0x1E,0x00,0x47,0x17,0x23,0x00,0x0A,0x91,0x00,0x10,0xC4,0x00,0x02,0x1A,0x62,0x00,0x02,0x1F,0x0F,0x80,0x00,0x40,
+};
+uint8_t tileset_tile_106_compressed[74] = {
+ 0x10,0x34,0x10,0x0A,0x00,0x0C,0x89,0x00,0x07,0x72,0x00,0x0E,0x22,0x0C,0xF9,0x13,0x0F,0x67,0x16,0x0E,0x9E,0x0F,0xA2,0x11,0xEE,0x1E,0x0D,0x33,0x1E,0x0C,0x8F,0x2D,
+ 0x44,0x25,0xD2,0x5C,0x00,0x02,0x39,0x00,0x07,0x0F,0x23,0x00,0x17,0x91,0x00,0x0A,0xC9,0x00,0x10,0x82,0x00,0x02,0x0B,0x0B,0x1B,0xE7,0x00,0x17,0x4D,0x02,0x17,0x3A,
+ 0x0F,0x1B,0x68,0x4F,0x89,0x0F,0xA0,0x00,0x00,0x10,
+};
+uint8_t tileset_tile_107_compressed[93] = {
+ 0x10,0x26,0x10,0x07,0x00,0x58,0x25,0x00,0x0C,0x07,0x02,0x4D,0x0C,0x00,0x34,0x0E,0x5D,0x0F,0x22,0x0E,0x10,0xAD,0x0F,0x0E,0x17,0x13,0x0F,0x22,0x0E,0x0B,0x22,0x0F,
+ 0x52,0x0E,0x1B,0x02,0x79,0x5F,0x79,0x0E,0x3F,0xE5,0x00,0x0E,0x44,0x17,0xDB,0x1F,0x0E,0x1B,0x0F,0x8C,0x0E,0xA4,0x0F,0x17,0xF7,0x00,0x0E,0x49,0x0F,0x0A,0x97,0x00,
+ 0x17,0x0E,0x56,0x0F,0x05,0x1B,0x77,0x0B,0x77,0x0E,0x69,0x0F,0x10,0x79,0x00,0x37,0xA6,0x0F,0x4E,0x4E,0x1B,0x0F,0x1B,0x9A,0x00,0x78,0x0F,0x00,0x04,
+};
+uint8_t tileset_tile_108_compressed[61] = {
+ 0x10,0x05,0x10,0x02,0x12,0x12,0x09,0x92,0x00,0x07,0x09,0xC2,0x00,0x4B,0x0F,0x0F,0x00,0x25,0x07,0x0F,0x00,0xF8,0x0F,0x0A,0xB4,0x00,0x02,0x68,0x0E,0x07,0x00,0x02,
+ 0x8D,0x00,0x71,0x00,0x10,0xB0,0x1F,0x89,0x0F,0x31,0x2D,0x85,0x00,0x10,0x07,0x31,0x1E,0x2E,0x00,0x1D,0x0F,0xE7,0x09,0x0F,0x81,0x82,0x1F,0x00,0x01,
+};
+uint8_t tileset_tile_109_compressed[46] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x62,0x00,0x21,0x07,0xE4,0x00,0x02,0x74,0x00,0x3E,0x2F,0x07,0x46,0x10,0xC3,0x00,0xF0,0x0F,0xF9,0x6F,0x02,0x09,
+ 0x19,0x00,0xA3,0x0F,0x0F,0x2E,0x00,0x0F,0x26,0x3C,0xA0,0x0F,0x00,0x10,
+};
+uint8_t tileset_tile_110_compressed[53] = {
+ 0x10,0x12,0x10,0x07,0x09,0xC3,0x00,0x09,0x07,0x0F,0x62,0x00,0x21,0x07,0xE4,0x00,0x02,0x74,0x00,0x3E,0x2F,0x1E,0x8F,0x00,0x46,0x1D,0x71,0x00,0x0E,0xB9,0x4E,0x11,
+ 0x02,0x0B,0x69,0x00,0x02,0xA1,0x06,0x28,0x0F,0xF5,0x2F,0x0A,0xA6,0x00,0x02,0x06,0x84,0x20,0x0F,0x00,0x10,
+};
+uint8_t tileset_tile_111_compressed[54] = {
+ 0x10,0x12,0x10,0x07,0x09,0xDE,0x00,0x07,0x04,0x07,0x42,0x02,0x09,0x0F,0x0F,0x64,0x00,0x07,0xB8,0x0F,0xD8,0x00,0x42,0x0F,0x39,0x00,0x10,0x1A,0x1D,0x10,0x42,0x00,
+ 0x05,0x0F,0x31,0x1E,0x06,0x00,0x1D,0x07,0x10,0x2D,0x00,0x10,0x8B,0x0F,0xA4,0x05,0x10,0x0C,0x50,0x1F,0x00,0x08,
+};
+uint8_t tileset_tile_112_compressed[75] = {
+ 0x10,0x33,0x10,0x4B,0x00,0x0D,0x0B,0x00,0x12,0x0D,0x0D,0x06,0xCE,0x00,0x0F,0x13,0x44,0x0D,0xFA,0x0F,0x00,0x0E,0x13,0x69,0x10,0xEE,0x1E,0x10,0x3D,0x0F,0x0D,0x1B,
+ 0x0F,0xF3,0x0C,0x02,0xCC,0x0F,0x2D,0x13,0x9E,0x4F,0x75,0x5E,0x0D,0xCF,0x1F,0x30,0x73,0x42,0x72,0x0F,0x10,0x73,0x00,0x07,0xCB,0x0F,0x25,0x0A,0x4F,0x0F,0x0A,0x24,
+ 0x34,0xDC,0x5F,0x07,0x90,0x04,0x43,0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_113_compressed[77] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x93,0x0E,0xF7,0x1D,0x0D,0x00,0x24,0x0F,0xAA,0x00,0x0B,0x00,0xBE,0x07,0x1E,0x58,0x0A,0x88,0x04,0x5A,0x0F,0x7D,0x34,0x0F,
+ 0x4B,0x6B,0x09,0x4B,0x00,0x95,0x14,0x4B,0x0F,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_114_compressed[80] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x0C,0x00,0x0D,0x0D,0x0B,0x00,0x0D,0x4B,0xC9,0x00,0x06,0x13,0x13,0x0E,0x13,0xFF,0x0F,0x0B,0x21,0x13,0xFC,0x00,0x10,0x00,0xBF,0x0F,0x0D,
+ 0x1D,0xCF,0x00,0x20,0x24,0x2C,0x67,0x0F,0x0A,0x18,0x0F,0x0D,0x8D,0x0F,0x9E,0x0E,0x7E,0x4F,0x04,0x26,0x1E,0xEA,0x1F,0x04,0xEE,0x00,0x0E,0x7B,0x0F,0x09,0x86,0x2E,
+ 0x0F,0x2A,0x7B,0x0F,0x50,0xBB,0x52,0x59,0x4D,0x0D,0x5F,0x0F,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_115_compressed[92] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x97,0x0E,0x77,0x71,0x00,0x18,0x3B,0x00,0x0B,0x0B,0x0D,0xAF,0x02,0x10,0x19,0x8A,0x0F,0xAA,0x10,0x2A,0x8A,0x0F,0xEE,0x04,
+ 0x4C,0x6B,0x40,0x0E,0x92,0x0F,0xDD,0x10,0x4B,0x00,0xD5,0x12,0x0F,0xF7,0x7F,0x01,0x0F,0x72,0x20,0xF3,0x3E,0x04,0xCF,0x0F,0x7F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_116_compressed[92] = {
+ 0x10,0x12,0x10,0x0D,0x06,0x26,0x00,0x0D,0x07,0xD2,0x00,0x13,0x11,0x0E,0x13,0x13,0x1F,0x10,0x08,0x13,0x71,0x00,0x3C,0x21,0x1D,0x64,0x10,0xC9,0x0E,0x13,0x93,0x43,
+ 0x13,0xDC,0x00,0x4B,0x54,0x1D,0xB1,0x5C,0x96,0x0E,0x5C,0x0D,0x9A,0x3B,0xEA,0x03,0x00,0x5E,0x30,0x06,0x8A,0x03,0x0B,0x0B,0x02,0x96,0x41,0xD3,0x74,0x0B,0xAE,0x0F,
+ 0x06,0x3B,0xE7,0x0E,0x1F,0x92,0x13,0xEE,0x10,0x3F,0xEE,0x74,0x0F,0xDC,0x0C,0x4B,0x00,0xD2,0x0E,0x5F,0x2F,0x0F,0x20,0x1B,0x0F,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_117_compressed[124] = {
+ 0x10,0x00,0x10,0x47,0x47,0x03,0x01,0x01,0x04,0x04,0x3E,0x01,0x05,0x00,0x07,0xBF,0x09,0x0E,0x0A,0x05,0x7D,0x49,0x10,0x00,0x9D,0x11,0x04,0x1C,0x0F,0xF7,0x10,0x00,
+ 0x0F,0xFF,0x07,0x0F,0x02,0x06,0x76,0x08,0x11,0x04,0x77,0x03,0x0F,0x18,0x77,0x38,0x00,0xAE,0x0F,0x03,0x2F,0xEF,0x0E,0x10,0x0D,0xB9,0x0F,0x2F,0x28,0x20,0x0C,0xB9,
+ 0x1F,0x6D,0x28,0x3A,0x03,0x6E,0x23,0x1F,0x06,0x5E,0x10,0x06,0xFE,0x37,0x0F,0x10,0xE5,0x36,0x5F,0xA7,0x00,0x4B,0x0F,0x72,0x10,0x4B,0x32,0x0F,0x2F,0x10,0x3C,0x36,
+ 0x1F,0x10,0x1C,0xAB,0x00,0x10,0xBF,0x74,0x0F,0x00,0x4B,0x1C,0x10,0x2C,0x58,0xD3,0x1F,0x7C,0x10,0x01,0x0E,0xB7,0x0F,0x44,0x70,0x03,0x00,0x08,
+};
+uint8_t tileset_tile_118_compressed[87] = {
+ 0x10,0x1D,0x10,0x01,0x05,0x00,0xDC,0x03,0x06,0xFA,0x0A,0x05,0x01,0xE7,0x03,0x15,0x8A,0x00,0xD1,0x0C,0x04,0xAE,0x0F,0x04,0x00,0x49,0x28,0xAA,0x04,0x0E,0xE6,0x11,
+ 0x00,0xB2,0x0B,0x03,0x03,0x64,0x12,0x04,0xD3,0x0D,0x4E,0x10,0x0E,0x01,0xBE,0x0E,0x1C,0x64,0x04,0x03,0x91,0x35,0x89,0x04,0x01,0xE2,0x3C,0x52,0x0F,0x03,0xA6,0x0F,
+ 0x03,0x24,0x9E,0x51,0xEE,0x07,0x0E,0x6B,0x65,0x02,0xB8,0x15,0xC9,0x00,0x1C,0x0E,0x37,0x00,0xDC,0x04,0x00,0x00,0x02,
+};
+uint8_t tileset_tile_119_compressed[124] = {
+ 0x10,0x14,0x10,0x04,0x01,0x00,0x05,0xCA,0x00,0x01,0x04,0x09,0x0B,0x03,0x47,0x47,0x04,0x0D,0xAF,0x12,0x07,0x01,0xFA,0x07,0x10,0x16,0xBE,0x0F,0x06,0xF1,0x0E,0x0F,
+ 0x1C,0x04,0x03,0xDD,0x08,0x0D,0xB1,0x0E,0x05,0x05,0x1C,0x03,0x03,0x77,0x0C,0x3C,0x77,0x1F,0x0F,0x77,0x11,0x3D,0x6B,0x00,0x03,0x1F,0xBB,0x10,0x50,0xAE,0x36,0x0F,
+ 0xD7,0x1B,0x03,0x44,0x2F,0x36,0x0F,0x7C,0x26,0x0F,0xBA,0x0E,0x16,0x1F,0x4B,0x36,0x0B,0xBE,0x48,0x0E,0x49,0x0F,0x2F,0x2C,0x0E,0x0F,0x4B,0x4B,0x1F,0xCB,0x42,0x0E,
+ 0x57,0x0F,0x6A,0x6A,0x0E,0x1C,0x00,0xD2,0x0E,0x4B,0xCA,0x46,0x0E,0x1C,0xF4,0x0E,0x0F,0x03,0xF1,0x0E,0x53,0x1F,0x7C,0x0E,0x0F,0x10,0x00,0x02,
+};
+uint8_t tileset_tile_120_compressed[72] = {
+ 0x10,0x0B,0x10,0x02,0x17,0x1B,0x00,0x26,0x17,0x0A,0x00,0x82,0x02,0x0F,0x0B,0x17,0x3B,0x0F,0x10,0x8E,0x0F,0xE2,0x10,0xD7,0x0F,0x0A,0x10,0x17,0x0F,0x24,0x10,0x42,
+ 0x0F,0x10,0x64,0x10,0x02,0xC9,0x00,0x10,0x62,0x10,0x12,0x1F,0x00,0xC4,0x10,0xCB,0x0F,0x10,0x15,0x0F,0x7C,0x10,0x0F,0xE9,0x00,0x00,0x63,0x10,0x2E,0x0F,0x10,0x74,
+ 0x00,0x00,0xD3,0x10,0xC0,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_121_compressed[33] = {
+ 0x10,0x11,0x10,0x02,0x1A,0x88,0x00,0x02,0x1C,0x11,0x0F,0x17,0x90,0x00,0x8A,0x0F,0x0A,0x32,0x00,0x11,0x0F,0x46,0x0B,0x21,0x00,0x02,0xF4,0x00,0x10,0x74,0x00,0x00,
+ 0x02,
+};
+uint8_t tileset_tile_122_compressed[57] = {
+ 0x10,0x26,0x10,0x0A,0x00,0x0B,0x1B,0x16,0x0F,0x1B,0x01,0x88,0x0F,0xE3,0x0A,0xBE,0x0F,0x0B,0x02,0x24,0x0F,0x0B,0x0B,0x49,0x09,0x01,0x3E,0x0F,0x0A,0x16,0x8D,0x0F,
+ 0x9A,0x00,0x2A,0x2F,0x48,0x30,0xF4,0x1F,0x02,0x72,0x00,0x0A,0x0B,0x90,0x00,0x17,0xF4,0x00,0x7A,0x5F,0x10,0x3A,0x00,0x00,0x01,
+};
+uint8_t tileset_tile_123_compressed[100] = {
+ 0x10,0x05,0x10,0x16,0x0F,0x0F,0x1B,0x96,0x03,0x17,0x1B,0x00,0x17,0x77,0x02,0x09,0x01,0x0C,0x94,0x0F,0x09,0x0B,0x01,0x09,0x2F,0x16,0x0B,0x0F,0x0E,0x2F,0x0B,0x02,
+ 0x0B,0x11,0xEF,0x00,0x0F,0x0E,0xD3,0x0F,0x0B,0x76,0x00,0x0F,0x0E,0x0B,0x9A,0x2F,0xED,0x0F,0x0E,0x0A,0x13,0x1F,0x27,0x0E,0x0F,0x3C,0x00,0xC4,0x0E,0x10,0x0A,0xC9,
+ 0x00,0x17,0x62,0x0E,0xA4,0x0F,0x0E,0x44,0x00,0x4A,0x0F,0x0E,0x00,0x4F,0x17,0x00,0x2C,0x0E,0x4C,0x0F,0xA9,0x0E,0x00,0xE6,0x5F,0x0E,0x27,0x00,0x10,0x00,0x95,0x0E,
+ 0x00,0x00,0x00,0x80,
+};
+uint8_t tileset_tile_124_compressed[50] = {
+ 0x10,0x03,0x10,0x00,0x00,0x02,0x31,0x2D,0x00,0x0A,0x10,0x07,0x31,0x1E,0x00,0x2E,0x1D,0x07,0x0F,0xA3,0x08,0x20,0x0F,0x72,0x1F,0x45,0x07,0xBD,0x0F,0x1D,0x00,0x0F,
+ 0x2D,0xF1,0x04,0x00,0x48,0x0F,0x1E,0x37,0x0F,0x2E,0x10,0x02,0x00,0x5E,0x05,0x06,0x00,0x01,
+};
+uint8_t tileset_tile_125_compressed[59] = {
+ 0x10,0x02,0x10,0x02,0x0F,0x0F,0x07,0x1A,0x66,0x00,0x07,0x0B,0x02,0xB4,0x0F,0x11,0xD0,0x00,0x4F,0x0F,0x3C,0x00,0xD1,0x0F,0x7E,0x00,0x0F,0x15,0x09,0x44,0x0F,0xE4,
+ 0x01,0x0E,0x1B,0x0A,0x5E,0x10,0x0F,0x0A,0xA8,0x0F,0x99,0x00,0x23,0x2F,0x38,0x0F,0x03,0x3D,0x0F,0x8E,0x00,0x47,0x10,0x40,0x00,0x00,0x20,
+};
+uint8_t tileset_tile_126_compressed[49] = {
+ 0x10,0x0B,0x10,0x1D,0x02,0x0A,0x00,0x4C,0x02,0x06,0x1D,0xE3,0x0F,0x29,0x00,0x0F,0x17,0x69,0x00,0x02,0xA0,0x06,0x8A,0x0F,0x34,0x3F,0x1E,0x1D,0x8C,0x00,0x47,0x1E,
+ 0xA3,0x00,0x2D,0x90,0x00,0x1D,0x27,0x23,0x00,0x02,0x91,0x00,0x10,0xD0,0x00,0x00,0x08,
+};
+uint8_t tileset_tile_127_compressed[51] = {
+ 0x10,0x0A,0x10,0x07,0x31,0x1E,0x00,0x0C,0x1D,0x07,0x10,0x2D,0x00,0x10,0x02,0x22,0x10,0x00,0x2A,0x0F,0x05,0xE0,0x0F,0x6B,0x1F,0x47,0x07,0x48,0x1F,0x0F,0x2D,0x5F,
+ 0x1D,0x00,0x0F,0x76,0x04,0x0F,0x1E,0x83,0xDE,0x0F,0x73,0xF9,0x00,0x08,0x78,0x05,0x0F,0x00,0x04,
+};
+uint8_t *tileset_tiles_compressed[128] = {
+ tileset_tile_0_compressed,
+ tileset_tile_1_compressed,
+ tileset_tile_2_compressed,
+ tileset_tile_3_compressed,
+ tileset_tile_4_compressed,
+ tileset_tile_5_compressed,
+ tileset_tile_6_compressed,
+ tileset_tile_7_compressed,
+ tileset_tile_8_compressed,
+ tileset_tile_9_compressed,
+ tileset_tile_10_compressed,
+ tileset_tile_11_compressed,
+ tileset_tile_12_compressed,
+ tileset_tile_13_compressed,
+ tileset_tile_14_compressed,
+ tileset_tile_15_compressed,
+ tileset_tile_16_compressed,
+ tileset_tile_17_compressed,
+ tileset_tile_18_compressed,
+ tileset_tile_19_compressed,
+ tileset_tile_20_compressed,
+ tileset_tile_21_compressed,
+ tileset_tile_22_compressed,
+ tileset_tile_23_compressed,
+ tileset_tile_24_compressed,
+ tileset_tile_25_compressed,
+ tileset_tile_26_compressed,
+ tileset_tile_27_compressed,
+ tileset_tile_28_compressed,
+ tileset_tile_29_compressed,
+ tileset_tile_30_compressed,
+ tileset_tile_31_compressed,
+ tileset_tile_32_compressed,
+ tileset_tile_33_compressed,
+ tileset_tile_34_compressed,
+ tileset_tile_35_compressed,
+ tileset_tile_36_compressed,
+ tileset_tile_37_compressed,
+ tileset_tile_38_compressed,
+ tileset_tile_39_compressed,
+ tileset_tile_40_compressed,
+ tileset_tile_41_compressed,
+ tileset_tile_42_compressed,
+ tileset_tile_43_compressed,
+ tileset_tile_44_compressed,
+ tileset_tile_45_compressed,
+ tileset_tile_46_compressed,
+ tileset_tile_47_compressed,
+ tileset_tile_48_compressed,
+ tileset_tile_49_compressed,
+ tileset_tile_50_compressed,
+ tileset_tile_51_compressed,
+ tileset_tile_52_compressed,
+ tileset_tile_53_compressed,
+ tileset_tile_54_compressed,
+ tileset_tile_55_compressed,
+ tileset_tile_56_compressed,
+ tileset_tile_57_compressed,
+ tileset_tile_58_compressed,
+ tileset_tile_59_compressed,
+ tileset_tile_60_compressed,
+ tileset_tile_61_compressed,
+ tileset_tile_62_compressed,
+ tileset_tile_63_compressed,
+ tileset_tile_64_compressed,
+ tileset_tile_65_compressed,
+ tileset_tile_66_compressed,
+ tileset_tile_67_compressed,
+ tileset_tile_68_compressed,
+ tileset_tile_69_compressed,
+ tileset_tile_70_compressed,
+ tileset_tile_71_compressed,
+ tileset_tile_72_compressed,
+ tileset_tile_73_compressed,
+ tileset_tile_74_compressed,
+ tileset_tile_75_compressed,
+ tileset_tile_76_compressed,
+ tileset_tile_77_compressed,
+ tileset_tile_78_compressed,
+ tileset_tile_79_compressed,
+ tileset_tile_80_compressed,
+ tileset_tile_81_compressed,
+ tileset_tile_82_compressed,
+ tileset_tile_83_compressed,
+ tileset_tile_84_compressed,
+ tileset_tile_85_compressed,
+ tileset_tile_86_compressed,
+ tileset_tile_87_compressed,
+ tileset_tile_88_compressed,
+ tileset_tile_89_compressed,
+ tileset_tile_90_compressed,
+ tileset_tile_91_compressed,
+ tileset_tile_92_compressed,
+ tileset_tile_93_compressed,
+ tileset_tile_94_compressed,
+ tileset_tile_95_compressed,
+ tileset_tile_96_compressed,
+ tileset_tile_97_compressed,
+ tileset_tile_98_compressed,
+ tileset_tile_99_compressed,
+ tileset_tile_100_compressed,
+ tileset_tile_101_compressed,
+ tileset_tile_102_compressed,
+ tileset_tile_103_compressed,
+ tileset_tile_104_compressed,
+ tileset_tile_105_compressed,
+ tileset_tile_106_compressed,
+ tileset_tile_107_compressed,
+ tileset_tile_108_compressed,
+ tileset_tile_109_compressed,
+ tileset_tile_110_compressed,
+ tileset_tile_111_compressed,
+ tileset_tile_112_compressed,
+ tileset_tile_113_compressed,
+ tileset_tile_114_compressed,
+ tileset_tile_115_compressed,
+ tileset_tile_116_compressed,
+ tileset_tile_117_compressed,
+ tileset_tile_118_compressed,
+ tileset_tile_119_compressed,
+ tileset_tile_120_compressed,
+ tileset_tile_121_compressed,
+ tileset_tile_122_compressed,
+ tileset_tile_123_compressed,
+ tileset_tile_124_compressed,
+ tileset_tile_125_compressed,
+ tileset_tile_126_compressed,
+ tileset_tile_127_compressed,
+};
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c index 70360a6..143ee63 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/main.c @@ -1,119 +1,119 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <compression.h> -#include <graphx.h> - -/* Include the graphics */ -#include "gfx/tiles_gfx.h" -#include "tilemapdata.h" - -/* Tilemap defines */ -#define TILE_WIDTH (16) -#define TILE_HEIGHT (16) -#define TILE_SIZE ((TILE_WIDTH * TILE_HEIGHT) + 2) // +2 for width and height bytes - -#define TILEMAP_WIDTH (32) -#define TILEMAP_HEIGHT (25) - -#define TILEMAP_DRAW_WIDTH (20) -#define TILEMAP_DRAW_HEIGHT (14) - -#define Y_OFFSET (16) -#define X_OFFSET (0) - -/* This is where the decompressed tilemap data is to be stored */ -uint8_t tilemap_map[TILEMAP_WIDTH * TILEMAP_HEIGHT]; - -/* Place to hold decompressed tile pointers */ -gfx_sprite_t *tileset_tiles[128]; - -/* Put all your code here */ -void main(void) { - sk_key_t key; - uint8_t i; - unsigned int x_offset = 0; - unsigned int y_offset = 0; - gfx_sprite_t *tmp_ptr; - gfx_tilemap_t tilemap; - - /* Decompress the compressed tiles */ - for (i = 0; i < sizeof(tileset_tiles)/sizeof(gfx_sprite_t*) ; i++) { - tmp_ptr = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT); /* Same as gfx_AllocSprite(TILE_WIDTH, TILE_HEIGHT, malloc) */ - zx7_Decompress(tmp_ptr, tileset_tiles_compressed[i]); - tileset_tiles[i] = tmp_ptr; - } - - zx7_Decompress(tilemap_map, tilemap_compressed); - - /* Initialize the tilemap structure */ - tilemap.map = tilemap_map; - tilemap.tiles = tileset_tiles; - tilemap.type_width = gfx_tile_16_pixel; - tilemap.type_height = gfx_tile_16_pixel; - tilemap.tile_height = TILE_HEIGHT; - tilemap.tile_width = TILE_WIDTH; - tilemap.draw_height = TILEMAP_DRAW_HEIGHT; - tilemap.draw_width = TILEMAP_DRAW_WIDTH; - tilemap.height = TILEMAP_HEIGHT; - tilemap.width = TILEMAP_WIDTH; - tilemap.y_loc = Y_OFFSET; - tilemap.x_loc = X_OFFSET; - - /* Initialize the graphics scene */ - gfx_Begin(); - - /* Set up the palette */ - gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0); - gfx_SetColor(gfx_white); - - /* Draw to buffer to avoid tearing. Note, this is the same as gfx_SetDraw(gfx_buffer) */ - gfx_SetDrawBuffer(); - - /* Set monospace font with width of 8 */ - gfx_SetMonospaceFont(8); - - /* Wait for the enter key to quit */ - while ((key = os_GetCSC()) != sk_Enter) { - - /* Draw tilemap and coords */ - gfx_Tilemap(&tilemap, x_offset, y_offset); - gfx_FillRectangle(0, 0, 320, 16); - gfx_PrintStringXY("x offset:", 48, 4); - gfx_PrintUInt(x_offset, 4); - gfx_PrintString(" y offset:"); - gfx_PrintUInt(y_offset, 4); - - /* Do something based on the keypress */ - switch (key) { - case sk_Down: - if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT)) - y_offset += TILE_HEIGHT; - break; - case sk_Left: - if (x_offset) - x_offset -= TILE_WIDTH; - break; - case sk_Right: - if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH)) - x_offset += TILE_WIDTH; - break; - case sk_Up: - if (y_offset) - y_offset -= TILE_HEIGHT; - break; - default: - break; - } - gfx_SwapDraw(); - } - - /* Close the graphics */ - gfx_End(); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <compression.h>
+#include <graphx.h>
+
+/* Include the graphics */
+#include "gfx/tiles_gfx.h"
+#include "tilemapdata.h"
+
+/* Tilemap defines */
+#define TILE_WIDTH (16)
+#define TILE_HEIGHT (16)
+#define TILE_SIZE ((TILE_WIDTH * TILE_HEIGHT) + 2) // +2 for width and height bytes
+
+#define TILEMAP_WIDTH (32)
+#define TILEMAP_HEIGHT (25)
+
+#define TILEMAP_DRAW_WIDTH (20)
+#define TILEMAP_DRAW_HEIGHT (14)
+
+#define Y_OFFSET (16)
+#define X_OFFSET (0)
+
+/* This is where the decompressed tilemap data is to be stored */
+uint8_t tilemap_map[TILEMAP_WIDTH * TILEMAP_HEIGHT];
+
+/* Place to hold decompressed tile pointers */
+gfx_sprite_t *tileset_tiles[128];
+
+/* Put all your code here */
+void main(void) {
+ sk_key_t key;
+ uint8_t i;
+ unsigned int x_offset = 0;
+ unsigned int y_offset = 0;
+ gfx_sprite_t *tmp_ptr;
+ gfx_tilemap_t tilemap;
+
+ /* Decompress the compressed tiles */
+ for (i = 0; i < sizeof(tileset_tiles)/sizeof(gfx_sprite_t*) ; i++) {
+ tmp_ptr = gfx_MallocSprite(TILE_WIDTH, TILE_HEIGHT); /* Same as gfx_AllocSprite(TILE_WIDTH, TILE_HEIGHT, malloc) */
+ zx7_Decompress(tmp_ptr, tileset_tiles_compressed[i]);
+ tileset_tiles[i] = tmp_ptr;
+ }
+
+ zx7_Decompress(tilemap_map, tilemap_compressed);
+
+ /* Initialize the tilemap structure */
+ tilemap.map = tilemap_map;
+ tilemap.tiles = tileset_tiles;
+ tilemap.type_width = gfx_tile_16_pixel;
+ tilemap.type_height = gfx_tile_16_pixel;
+ tilemap.tile_height = TILE_HEIGHT;
+ tilemap.tile_width = TILE_WIDTH;
+ tilemap.draw_height = TILEMAP_DRAW_HEIGHT;
+ tilemap.draw_width = TILEMAP_DRAW_WIDTH;
+ tilemap.height = TILEMAP_HEIGHT;
+ tilemap.width = TILEMAP_WIDTH;
+ tilemap.y_loc = Y_OFFSET;
+ tilemap.x_loc = X_OFFSET;
+
+ /* Initialize the graphics scene */
+ gfx_Begin();
+
+ /* Set up the palette */
+ gfx_SetPalette(tiles_gfx_pal, sizeof_tiles_gfx_pal, 0);
+ gfx_SetColor(gfx_white);
+
+ /* Draw to buffer to avoid tearing. Note, this is the same as gfx_SetDraw(gfx_buffer) */
+ gfx_SetDrawBuffer();
+
+ /* Set monospace font with width of 8 */
+ gfx_SetMonospaceFont(8);
+
+ /* Wait for the enter key to quit */
+ while ((key = os_GetCSC()) != sk_Enter) {
+
+ /* Draw tilemap and coords */
+ gfx_Tilemap(&tilemap, x_offset, y_offset);
+ gfx_FillRectangle(0, 0, 320, 16);
+ gfx_PrintStringXY("x offset:", 48, 4);
+ gfx_PrintUInt(x_offset, 4);
+ gfx_PrintString(" y offset:");
+ gfx_PrintUInt(y_offset, 4);
+
+ /* Do something based on the keypress */
+ switch (key) {
+ case sk_Down:
+ if (y_offset < (TILEMAP_HEIGHT * TILE_HEIGHT) - (TILEMAP_DRAW_HEIGHT * TILE_HEIGHT))
+ y_offset += TILE_HEIGHT;
+ break;
+ case sk_Left:
+ if (x_offset)
+ x_offset -= TILE_WIDTH;
+ break;
+ case sk_Right:
+ if (x_offset < (TILEMAP_WIDTH * TILE_WIDTH) - (TILEMAP_DRAW_WIDTH * TILE_WIDTH))
+ x_offset += TILE_WIDTH;
+ break;
+ case sk_Up:
+ if (y_offset)
+ y_offset -= TILE_HEIGHT;
+ break;
+ default:
+ break;
+ }
+ gfx_SwapDraw();
+ }
+
+ /* Close the graphics */
+ gfx_End();
+}
diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c index 90eefa2..9b57fcb 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.c @@ -1,16 +1,16 @@ -// Converted using ConvTile -#include <stdint.h> - -uint8_t tilemap_compressed[339] = { - 0x04,0x03,0x05,0x02,0x00,0x01,0x02,0x03,0x01,0xBB,0x05,0x0A,0xFB,0x08,0x00,0x06,0xEB,0x18,0x05,0x04,0x2C,0x14,0x15,0x1A,0x10,0x10,0xFE,0x05,0x0D,0x02,0xEA,0x18, - 0x0E,0xF1,0x06,0x18,0x50,0x51,0x52,0xF5,0x04,0x21,0x06,0x56,0x1F,0x1D,0x10,0x97,0x00,0x1D,0xB0,0x47,0x24,0x25,0x60,0x61,0x5D,0x62,0x3F,0x5D,0x06,0x2F,0xF3,0x5E, - 0x1B,0xD8,0x00,0x0D,0x70,0x71,0x72,0xBA,0x3F,0x06,0x92,0x56,0x54,0x5A,0x02,0xB3,0x03,0x05,0x93,0xA5,0x3F,0x03,0x16,0x92,0x41,0x59,0x5A,0x69,0x11,0x45,0x03,0x7C, - 0x3F,0x0C,0x93,0x13,0xCF,0x1C,0x0B,0xD5,0x1F,0x27,0xCD,0x3F,0x1F,0x34,0x77,0xD2,0x61,0xA6,0x1F,0x02,0x3F,0x44,0x10,0xC9,0x00,0x3E,0x61,0xD2,0x72,0x6F,0xF3,0x3F, - 0x06,0x84,0xBF,0xA3,0x99,0xE0,0x02,0xD2,0x64,0xBE,0x07,0x0F,0x49,0x3F,0x65,0x1C,0x7C,0x94,0x1F,0x70,0x73,0x4A,0x74,0xCE,0x32,0x4E,0x3F,0x91,0x17,0x3D,0x31,0x49, - 0x60,0x62,0x73,0x0A,0x03,0x3F,0x00,0x20,0x21,0x21,0x22,0x05,0x98,0x80,0x24,0x89,0x1E,0x1F,0x41,0x82,0x90,0xFF,0x70,0x0E,0x30,0x31,0x31,0x32,0xB2,0x84,0x9E,0x00, - 0x64,0x1F,0x10,0xE1,0x7F,0x40,0x53,0x54,0x42,0xC5,0x0F,0x57,0x20,0x1F,0x0E,0xCE,0x06,0x3F,0x02,0x26,0x30,0x32,0xD2,0x1B,0x87,0x0E,0x02,0xE5,0x3F,0x6A,0x97,0x7F, - 0x60,0x9F,0x1F,0x01,0x8D,0x1F,0xB9,0x3F,0x93,0x1F,0x03,0x09,0xF9,0x50,0x52,0xC7,0x05,0x3B,0x3F,0x00,0x1F,0x58,0x94,0x61,0x60,0x64,0x67,0x51,0x00,0x63,0x62,0x08, - 0x3F,0x7F,0x15,0x53,0x1F,0x8E,0xFB,0x3E,0x63,0x29,0x74,0x71,0x00,0x72,0x53,0x2F,0x2D,0x3F,0x00,0x5F,0x00,0x38,0xFB,0xD1,0xAD,0xD4,0x17,0xE9,0x90,0x7D,0x3F,0x36, - 0xCE,0x1F,0x94,0x74,0xAD,0x68,0x03,0x9F,0x1F,0x1D,0xE6,0x3A,0x07,0xA9,0x1F,0xE6,0x00,0xA9,0x2E,0x7D,0x65,0x3F,0x21,0x92,0x00,0x43,0x44,0x22,0x06,0x22,0x4F,0xDA, - 0x6C,0x93,0x08,0x3F,0x45,0x41,0x25,0x00,0x42,0x9C,0x39,0x46,0xC8,0x43,0xEE,0xE0,0x5D,0x00,0x10 +// Converted using ConvTile
+#include <stdint.h>
+
+uint8_t tilemap_compressed[339] = {
+ 0x04,0x03,0x05,0x02,0x00,0x01,0x02,0x03,0x01,0xBB,0x05,0x0A,0xFB,0x08,0x00,0x06,0xEB,0x18,0x05,0x04,0x2C,0x14,0x15,0x1A,0x10,0x10,0xFE,0x05,0x0D,0x02,0xEA,0x18,
+ 0x0E,0xF1,0x06,0x18,0x50,0x51,0x52,0xF5,0x04,0x21,0x06,0x56,0x1F,0x1D,0x10,0x97,0x00,0x1D,0xB0,0x47,0x24,0x25,0x60,0x61,0x5D,0x62,0x3F,0x5D,0x06,0x2F,0xF3,0x5E,
+ 0x1B,0xD8,0x00,0x0D,0x70,0x71,0x72,0xBA,0x3F,0x06,0x92,0x56,0x54,0x5A,0x02,0xB3,0x03,0x05,0x93,0xA5,0x3F,0x03,0x16,0x92,0x41,0x59,0x5A,0x69,0x11,0x45,0x03,0x7C,
+ 0x3F,0x0C,0x93,0x13,0xCF,0x1C,0x0B,0xD5,0x1F,0x27,0xCD,0x3F,0x1F,0x34,0x77,0xD2,0x61,0xA6,0x1F,0x02,0x3F,0x44,0x10,0xC9,0x00,0x3E,0x61,0xD2,0x72,0x6F,0xF3,0x3F,
+ 0x06,0x84,0xBF,0xA3,0x99,0xE0,0x02,0xD2,0x64,0xBE,0x07,0x0F,0x49,0x3F,0x65,0x1C,0x7C,0x94,0x1F,0x70,0x73,0x4A,0x74,0xCE,0x32,0x4E,0x3F,0x91,0x17,0x3D,0x31,0x49,
+ 0x60,0x62,0x73,0x0A,0x03,0x3F,0x00,0x20,0x21,0x21,0x22,0x05,0x98,0x80,0x24,0x89,0x1E,0x1F,0x41,0x82,0x90,0xFF,0x70,0x0E,0x30,0x31,0x31,0x32,0xB2,0x84,0x9E,0x00,
+ 0x64,0x1F,0x10,0xE1,0x7F,0x40,0x53,0x54,0x42,0xC5,0x0F,0x57,0x20,0x1F,0x0E,0xCE,0x06,0x3F,0x02,0x26,0x30,0x32,0xD2,0x1B,0x87,0x0E,0x02,0xE5,0x3F,0x6A,0x97,0x7F,
+ 0x60,0x9F,0x1F,0x01,0x8D,0x1F,0xB9,0x3F,0x93,0x1F,0x03,0x09,0xF9,0x50,0x52,0xC7,0x05,0x3B,0x3F,0x00,0x1F,0x58,0x94,0x61,0x60,0x64,0x67,0x51,0x00,0x63,0x62,0x08,
+ 0x3F,0x7F,0x15,0x53,0x1F,0x8E,0xFB,0x3E,0x63,0x29,0x74,0x71,0x00,0x72,0x53,0x2F,0x2D,0x3F,0x00,0x5F,0x00,0x38,0xFB,0xD1,0xAD,0xD4,0x17,0xE9,0x90,0x7D,0x3F,0x36,
+ 0xCE,0x1F,0x94,0x74,0xAD,0x68,0x03,0x9F,0x1F,0x1D,0xE6,0x3A,0x07,0xA9,0x1F,0xE6,0x00,0xA9,0x2E,0x7D,0x65,0x3F,0x21,0x92,0x00,0x43,0x44,0x22,0x06,0x22,0x4F,0xDA,
+ 0x6C,0x93,0x08,0x3F,0x45,0x41,0x25,0x00,0x42,0x9C,0x39,0x46,0xC8,0x43,0xEE,0xE0,0x5D,0x00,0x10
};
\ No newline at end of file diff --git a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h index af369c7..6df9df6 100644 --- a/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h +++ b/frontends/calculator/CEdev/examples/gfx_tilemap_compress/src/tilemapdata.h @@ -1,9 +1,9 @@ -// Converted using ConvTile -// This file contains all the tilemap sources for easier inclusion in a project -#ifndef tilemapdata_header -#define tilemapdata_header -#include <stdint.h> - -extern uint8_t tilemap_compressed[339]; - -#endif +// Converted using ConvTile
+// This file contains all the tilemap sources for easier inclusion in a project
+#ifndef tilemapdata_header
+#define tilemapdata_header
+#include <stdint.h>
+
+extern uint8_t tilemap_compressed[339];
+
+#endif
diff --git a/frontends/calculator/CEdev/examples/hello_world/makefile b/frontends/calculator/CEdev/examples/hello_world/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/hello_world/makefile +++ b/frontends/calculator/CEdev/examples/hello_world/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/hello_world/readme.md b/frontends/calculator/CEdev/examples/hello_world/readme.md index 880be97..0be163e 100644 --- a/frontends/calculator/CEdev/examples/hello_world/readme.md +++ b/frontends/calculator/CEdev/examples/hello_world/readme.md @@ -1,9 +1,9 @@ -### Hello World Demo - -This is a simple demo to demonstrate displaying text using the TI-OS rotuines. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### Hello World Demo
+
+This is a simple demo to demonstrate displaying text using the TI-OS rotuines.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/hello_world/src/main.c b/frontends/calculator/CEdev/examples/hello_world/src/main.c index 333dcdc..16c9dd0 100644 --- a/frontends/calculator/CEdev/examples/hello_world/src/main.c +++ b/frontends/calculator/CEdev/examples/hello_world/src/main.c @@ -1,48 +1,48 @@ -/* Keep these headers */ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -/* Standard headers */ -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Put function prototypes here */ -void printText(const char *text, uint8_t x, uint8_t y); -void printTextSmall(const char *text, uint8_t xpos, uint8_t ypos); - -/* Put all your code here */ -void main(void) { - /* uint8_t is an unsigned integer that can range from 0-255. */ - /* It performs faster than just an int, so try to use it (or int8_t) when possible */ - uint8_t count; - - /* Initialize some strings */ - const char *HelloWorld = "Hello World!"; - const char *Welcome = "Welcome to C!"; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Print a few strings */ - printText(HelloWorld, 0, 0); - printText(Welcome, 0, 1); - - /* Wait for a key press */ - while (!os_GetCSC()); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(const char *text, uint8_t xpos, uint8_t ypos) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} - -/* Draw small text at the given X/Y location */ -void printTextSmall(const char *text, uint8_t xpos, uint8_t ypos) { - os_FontSelect(0); // sets small font (1 == big, see docs) - os_FontDrawText(text, xpos, ypos); -} +/* Keep these headers */
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+/* Standard headers */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Put function prototypes here */
+void printText(const char *text, uint8_t x, uint8_t y);
+void printTextSmall(const char *text, uint8_t xpos, uint8_t ypos);
+
+/* Put all your code here */
+void main(void) {
+ /* uint8_t is an unsigned integer that can range from 0-255. */
+ /* It performs faster than just an int, so try to use it (or int8_t) when possible */
+ uint8_t count;
+
+ /* Initialize some strings */
+ const char *HelloWorld = "Hello World!";
+ const char *Welcome = "Welcome to C!";
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Print a few strings */
+ printText(HelloWorld, 0, 0);
+ printText(Welcome, 0, 1);
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(const char *text, uint8_t xpos, uint8_t ypos) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
+/* Draw small text at the given X/Y location */
+void printTextSmall(const char *text, uint8_t xpos, uint8_t ypos) {
+ os_FontSelect(0); // sets small font (1 == big, see docs)
+ os_FontDrawText(text, xpos, ypos);
+}
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json b/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json index c81becf..61768c3 100644 --- a/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json +++ b/frontends/calculator/CEdev/examples/keypad_arrows/autotester.json @@ -1,61 +1,61 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|500", - "key|down", - "hash|1", - "delay|200", - "key|right", - "hash|2", - "delay|200", - "key|up", - "hash|3", - "delay|200", - "key|left", - "hash|4", - "delay|200", - "key|2nd", - "hashWait|5" - ], - "hashes": { - "1": { - "description": "The screen is black", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "AF74BFCB" ] - }, - "2": { - "description": "The screen is red", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "D2E7DAC8" ] - }, - "3": { - "description": "The screen is white", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "3132DE74" ] - }, - "4": { - "description": "The screen is red (other)", - "start": "vram_start", - "size": "vram_8_size", - "expected_CRCs": [ "74B02578" ] - }, - "5": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|500",
+ "key|down",
+ "hash|1",
+ "delay|200",
+ "key|right",
+ "hash|2",
+ "delay|200",
+ "key|up",
+ "hash|3",
+ "delay|200",
+ "key|left",
+ "hash|4",
+ "delay|200",
+ "key|2nd",
+ "hashWait|5"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The screen is black",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "AF74BFCB" ]
+ },
+ "2": {
+ "description": "The screen is red",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "D2E7DAC8" ]
+ },
+ "3": {
+ "description": "The screen is white",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "3132DE74" ]
+ },
+ "4": {
+ "description": "The screen is red (other)",
+ "start": "vram_start",
+ "size": "vram_8_size",
+ "expected_CRCs": [ "74B02578" ]
+ },
+ "5": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/makefile b/frontends/calculator/CEdev/examples/keypad_arrows/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/keypad_arrows/makefile +++ b/frontends/calculator/CEdev/examples/keypad_arrows/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/readme.md b/frontends/calculator/CEdev/examples/keypad_arrows/readme.md index 698dd4e..486b144 100644 --- a/frontends/calculator/CEdev/examples/keypad_arrows/readme.md +++ b/frontends/calculator/CEdev/examples/keypad_arrows/readme.md @@ -1,10 +1,10 @@ -### Keypad Arrow Key Demo - -This demo changes the color of the screen depending on which arrow keys are pressed. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Keypad Arrow Key Demo
+
+This demo changes the color of the screen depending on which arrow keys are pressed.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c b/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c index c4f7adf..e358faf 100644 --- a/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c +++ b/frontends/calculator/CEdev/examples/keypad_arrows/src/main.c @@ -1,49 +1,49 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <keypadc.h> - -/* Function Prototypes */ -void fill_screen(uint8_t color); - -void main(void) { - /* Key variable */ - kb_key_t key; - - /* Loop until 2nd is pressed */ - do { - /* Update kb_Data */ - kb_Scan(); - - /* Load group 7 registers */ - key = kb_Data[7]; - - switch (key) { - case kb_Down: /* Change screen color to black */ - fill_screen(0x00); - break; - case kb_Right: /* Change screen color to red */ - fill_screen(0xE0); - break; - case kb_Up: /* Change screen color to white */ - fill_screen(0xFF); - break; - case kb_Left: /* Change screen color to a different red */ - fill_screen(0xC0); - break; - default: - break; - } - } while (kb_Data[1] != kb_2nd); -} - -/* Simple way to fill the screen with a given color */ -void fill_screen(uint8_t color) { - memset(lcd_Ram, color, LCD_SIZE); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <keypadc.h>
+
+/* Function Prototypes */
+void fill_screen(uint8_t color);
+
+void main(void) {
+ /* Key variable */
+ kb_key_t key;
+
+ /* Loop until 2nd is pressed */
+ do {
+ /* Update kb_Data */
+ kb_Scan();
+
+ /* Load group 7 registers */
+ key = kb_Data[7];
+
+ switch (key) {
+ case kb_Down: /* Change screen color to black */
+ fill_screen(0x00);
+ break;
+ case kb_Right: /* Change screen color to red */
+ fill_screen(0xE0);
+ break;
+ case kb_Up: /* Change screen color to white */
+ fill_screen(0xFF);
+ break;
+ case kb_Left: /* Change screen color to a different red */
+ fill_screen(0xC0);
+ break;
+ default:
+ break;
+ }
+ } while (kb_Data[1] != kb_2nd);
+}
+
+/* Simple way to fill the screen with a given color */
+void fill_screen(uint8_t color) {
+ memset(lcd_Ram, color, LCD_SIZE);
+}
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json b/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json index ea6581f..33e2115 100644 --- a/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json +++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/autotester.json @@ -1,62 +1,62 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|500", - "key|down", - "hash|1", - "delay|200", - "key|right", - "hash|2", - "delay|200", - "key|up", - "hash|3", - "delay|200", - "key|left", - "hash|4", - "delay|200", - "key|2nd", - "delay|300", - "hashWait|5" - ], - "hashes": { - "1": { - "description": "The screen shows Down", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "349F4775" ] - }, - "2": { - "description": "The screen shows Right", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "349F4775" ] - }, - "3": { - "description": "The screen shows Up", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "349F4775" ] - }, - "4": { - "description": "The screen shows Left", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "349F4775" ] - }, - "5": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|500",
+ "key|down",
+ "hash|1",
+ "delay|200",
+ "key|right",
+ "hash|2",
+ "delay|200",
+ "key|up",
+ "hash|3",
+ "delay|200",
+ "key|left",
+ "hash|4",
+ "delay|200",
+ "key|2nd",
+ "delay|300",
+ "hashWait|5"
+ ],
+ "hashes": {
+ "1": {
+ "description": "The screen shows Down",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "2": {
+ "description": "The screen shows Right",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "3": {
+ "description": "The screen shows Up",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "4": {
+ "description": "The screen shows Left",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "349F4775" ]
+ },
+ "5": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile b/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile +++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md b/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md index 170f907..4a34d2e 100644 --- a/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md +++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/readme.md @@ -1,10 +1,10 @@ -### Keypad Multiple Keys Demo - -This demo shows how to interpret multiple keypresses at the same time - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Keypad Multiple Keys Demo
+
+This demo shows how to interpret multiple keypresses at the same time
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c b/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c index fbe3ffa..715d437 100644 --- a/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c +++ b/frontends/calculator/CEdev/examples/keypad_multiple_keys/src/main.c @@ -1,60 +1,60 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include <keypadc.h> - -/* Function prototypes */ -void printText(int8_t xpos, int8_t ypos, const char *text); - -void main(void) { - /* Key variable */ - kb_key_t key; - const char *erase_string = " "; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Loop until 2nd is pressed */ - do { - - /* Update kb_Data */ - kb_Scan(); - - key = kb_Data[7]; - - /* Print the current arrow key input */ - if (key & kb_Down) { - printText(0, 0, "Down"); - } else { - printText(0, 0, erase_string); - } - if (key & kb_Up) { - printText(0, 1, "Up"); - } else { - printText(0, 1, erase_string); - } - if (key & kb_Left) { - printText(0, 2, "Left"); - } else { - printText(0, 2, erase_string); - } - if (key & kb_Right) { - printText(0, 3, "Right"); - } else { - printText(0, 3, erase_string); - } - - } while (kb_Data[1] != kb_2nd); -} - -/* Draw text on the homescreen at the given X/Y location */ -void printText(int8_t xpos, int8_t ypos, const char *text) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include <keypadc.h>
+
+/* Function prototypes */
+void printText(int8_t xpos, int8_t ypos, const char *text);
+
+void main(void) {
+ /* Key variable */
+ kb_key_t key;
+ const char *erase_string = " ";
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Loop until 2nd is pressed */
+ do {
+
+ /* Update kb_Data */
+ kb_Scan();
+
+ key = kb_Data[7];
+
+ /* Print the current arrow key input */
+ if (key & kb_Down) {
+ printText(0, 0, "Down");
+ } else {
+ printText(0, 0, erase_string);
+ }
+ if (key & kb_Up) {
+ printText(0, 1, "Up");
+ } else {
+ printText(0, 1, erase_string);
+ }
+ if (key & kb_Left) {
+ printText(0, 2, "Left");
+ } else {
+ printText(0, 2, erase_string);
+ }
+ if (key & kb_Right) {
+ printText(0, 3, "Right");
+ } else {
+ printText(0, 3, erase_string);
+ }
+
+ } while (kb_Data[1] != kb_2nd);
+}
+
+/* Draw text on the homescreen at the given X/Y location */
+void printText(int8_t xpos, int8_t ypos, const char *text) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
diff --git a/frontends/calculator/CEdev/examples/lcd_fade/makefile b/frontends/calculator/CEdev/examples/lcd_fade/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/lcd_fade/makefile +++ b/frontends/calculator/CEdev/examples/lcd_fade/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/lcd_fade/readme.md b/frontends/calculator/CEdev/examples/lcd_fade/readme.md index caa170e..4917042 100644 --- a/frontends/calculator/CEdev/examples/lcd_fade/readme.md +++ b/frontends/calculator/CEdev/examples/lcd_fade/readme.md @@ -1,8 +1,8 @@ -### LCD Fade Demo - -This demo demonstrates controlling the LCD backlight by fading in and out - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### LCD Fade Demo
+
+This demo demonstrates controlling the LCD backlight by fading in and out
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/lcd_fade/src/main.c b/frontends/calculator/CEdev/examples/lcd_fade/src/main.c index b529d01..c7ae436 100644 --- a/frontends/calculator/CEdev/examples/lcd_fade/src/main.c +++ b/frontends/calculator/CEdev/examples/lcd_fade/src/main.c @@ -1,29 +1,29 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -void main(void) { - uint8_t i, level; - - /* Store the current brightness level */ - level = lcd_BacklightLevel; - - /* Change lcd brightness levels */ - for (i = level; i > 0; i--) { - boot_WaitShort(); - lcd_BacklightLevel = i; - } - - for (i = 0; i < 255; i++) { - boot_WaitShort(); - lcd_BacklightLevel = i; - } - - /* Restore the old brightness level */ - lcd_BacklightLevel = level; -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+void main(void) {
+ uint8_t i, level;
+
+ /* Store the current brightness level */
+ level = lcd_BacklightLevel;
+
+ /* Change lcd brightness levels */
+ for (i = level; i > 0; i--) {
+ boot_WaitShort();
+ lcd_BacklightLevel = i;
+ }
+
+ for (i = 0; i < 255; i++) {
+ boot_WaitShort();
+ lcd_BacklightLevel = i;
+ }
+
+ /* Restore the old brightness level */
+ lcd_BacklightLevel = level;
+}
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/makefile b/frontends/calculator/CEdev/examples/lcd_fill/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/lcd_fill/makefile +++ b/frontends/calculator/CEdev/examples/lcd_fill/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/readme.md b/frontends/calculator/CEdev/examples/lcd_fill/readme.md index 233ffc8..ca0a9a0 100644 --- a/frontends/calculator/CEdev/examples/lcd_fill/readme.md +++ b/frontends/calculator/CEdev/examples/lcd_fill/readme.md @@ -1,10 +1,10 @@ -### Fill Screen Demo - -This is a simple demo to demonstrate filling the screen with a certain color. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Fill Screen Demo
+
+This is a simple demo to demonstrate filling the screen with a certain color.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/lcd_fill/src/main.c b/frontends/calculator/CEdev/examples/lcd_fill/src/main.c index ee96bf7..6204a9d 100644 --- a/frontends/calculator/CEdev/examples/lcd_fill/src/main.c +++ b/frontends/calculator/CEdev/examples/lcd_fill/src/main.c @@ -1,30 +1,30 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Function prototypes */ -void fill_screen(uint8_t color); - -void main(void) { - /* Turn the whole screen black */ - fill_screen(0x00); - - /* Wait for a key press */ - while (!os_GetCSC()); - - /* Turn the whole screen red */ - fill_screen(0xe0); - - /* Wait for a key press */ - while (!os_GetCSC()); -} - -/* Fill the screen with a given color */ -void fill_screen(uint8_t color) { - memset(lcd_Ram, color, LCD_SIZE); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Function prototypes */
+void fill_screen(uint8_t color);
+
+void main(void) {
+ /* Turn the whole screen black */
+ fill_screen(0x00);
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+
+ /* Turn the whole screen red */
+ fill_screen(0xe0);
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
+
+/* Fill the screen with a given color */
+void fill_screen(uint8_t color) {
+ memset(lcd_Ram, color, LCD_SIZE);
+}
diff --git a/frontends/calculator/CEdev/examples/makefile b/frontends/calculator/CEdev/examples/makefile index 852ed6c..33f84cd 100644 --- a/frontends/calculator/CEdev/examples/makefile +++ b/frontends/calculator/CEdev/examples/makefile @@ -1,12 +1,12 @@ -#----------------------------------------------- -# This makefile builds all the example projects -#----------------------------------------------- - -DIRS = $(wildcard */makefile) - -all clean gfx .PHONY: $(DIRS) - -$(DIRS): - $(MAKE) -C $(dir $@) $(MAKECMDGOALS) - -.PHONY: all clean gfx +#-----------------------------------------------
+# This makefile builds all the example projects
+#-----------------------------------------------
+
+DIRS = $(wildcard */makefile)
+
+all clean gfx .PHONY: $(DIRS)
+
+$(DIRS):
+ $(MAKE) -C $(dir $@) $(MAKECMDGOALS)
+
+.PHONY: all clean gfx
diff --git a/frontends/calculator/CEdev/examples/os_input/autotester.json b/frontends/calculator/CEdev/examples/os_input/autotester.json index da88dfe..b7e1247 100644 --- a/frontends/calculator/CEdev/examples/os_input/autotester.json +++ b/frontends/calculator/CEdev/examples/os_input/autotester.json @@ -1,38 +1,38 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "delay|700", - "key|1", - "delay|200", - "key|2", - "delay|200", - "key|enter", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "Output should be 'N is 12.'", - "start": "0xD44B00", - "size": "128000", - "size_comment": "offset + 320x200x2 because we don't want the busy indicator", - "expected_CRCs": [ "44FD49F5" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} - +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "delay|700",
+ "key|1",
+ "delay|200",
+ "key|2",
+ "delay|200",
+ "key|enter",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "Output should be 'N is 12.'",
+ "start": "0xD44B00",
+ "size": "128000",
+ "size_comment": "offset + 320x200x2 because we don't want the busy indicator",
+ "expected_CRCs": [ "44FD49F5" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
+
diff --git a/frontends/calculator/CEdev/examples/os_input/makefile b/frontends/calculator/CEdev/examples/os_input/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/os_input/makefile +++ b/frontends/calculator/CEdev/examples/os_input/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/os_input/readme.md b/frontends/calculator/CEdev/examples/os_input/readme.md index e0f6d7b..1e35256 100644 --- a/frontends/calculator/CEdev/examples/os_input/readme.md +++ b/frontends/calculator/CEdev/examples/os_input/readme.md @@ -1,9 +1,9 @@ -### OS Input Demo - -This demo shows how to get an input string from the OS. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### OS Input Demo
+
+This demo shows how to get an input string from the OS.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/os_input/src/main.c b/frontends/calculator/CEdev/examples/os_input/src/main.c index 7674897..a2fa7c0 100644 --- a/frontends/calculator/CEdev/examples/os_input/src/main.c +++ b/frontends/calculator/CEdev/examples/os_input/src/main.c @@ -1,36 +1,36 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <stdio.h> -#include <tice.h> - -/* Make sure to adjust those sizes according to your usage! */ -#define INPUT_SIZE 10 -#define RESP_SIZE 20 - -/* Draw text on the homescreen at the given X/Y location */ -void print(const char* text, uint8_t xpos, uint8_t ypos) { - os_SetCursorPos(ypos, xpos); - os_PutStrFull(text); -} - -void main(void) { - char inputBuffer[INPUT_SIZE]; - char response[RESP_SIZE]; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Ask the user to type a string, which gets stored in `inputBuf` */ - os_GetStringInput("What is N? ", inputBuffer, INPUT_SIZE); - - /* Build the user response */ - sprintf(response, "N is %s.", inputBuffer); - - /* Clear the homescreen and display the built response */ - os_ClrHome(); - print(response, 0, 0); - - /* Wait for a key press before quitting */ - while (!os_GetCSC()); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <tice.h>
+
+/* Make sure to adjust those sizes according to your usage! */
+#define INPUT_SIZE 10
+#define RESP_SIZE 20
+
+/* Draw text on the homescreen at the given X/Y location */
+void print(const char* text, uint8_t xpos, uint8_t ypos) {
+ os_SetCursorPos(ypos, xpos);
+ os_PutStrFull(text);
+}
+
+void main(void) {
+ char inputBuffer[INPUT_SIZE];
+ char response[RESP_SIZE];
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Ask the user to type a string, which gets stored in `inputBuf` */
+ os_GetStringInput("What is N? ", inputBuffer, INPUT_SIZE);
+
+ /* Build the user response */
+ sprintf(response, "N is %s.", inputBuffer);
+
+ /* Clear the homescreen and display the built response */
+ os_ClrHome();
+ print(response, 0, 0);
+
+ /* Wait for a key press before quitting */
+ while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/random/autotester.json b/frontends/calculator/CEdev/examples/random/autotester.json index b41ad50..57db73a 100644 --- a/frontends/calculator/CEdev/examples/random/autotester.json +++ b/frontends/calculator/CEdev/examples/random/autotester.json @@ -1,30 +1,30 @@ -{ - "rom": "84pce_515.rom", - "transfer_files": [ - "bin/DEMO.8xp" - ], - "target": { - "name": "DEMO", - "isASM": true - }, - "sequence": [ - "action|launch", - "hashWait|1", - "key|enter", - "hashWait|2" - ], - "hashes": { - "1": { - "description": "VRAM filled with output of random()", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "5FB4A617" ] - }, - "2": { - "description": "Back to the home screen (exit check)", - "start": "vram_start", - "size": "vram_16_size", - "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ] - } - } -} +{
+ "rom": "84pce_515.rom",
+ "transfer_files": [
+ "bin/DEMO.8xp"
+ ],
+ "target": {
+ "name": "DEMO",
+ "isASM": true
+ },
+ "sequence": [
+ "action|launch",
+ "hashWait|1",
+ "key|enter",
+ "hashWait|2"
+ ],
+ "hashes": {
+ "1": {
+ "description": "VRAM filled with output of random()",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "5FB4A617" ]
+ },
+ "2": {
+ "description": "Back to the home screen (exit check)",
+ "start": "vram_start",
+ "size": "vram_16_size",
+ "expected_CRCs": [ "FFAF89BA", "101734A5", "9DA19F44" ]
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/random/bin/DEMO.map b/frontends/calculator/CEdev/examples/random/bin/DEMO.map index 294fb77..95b082a 100644 --- a/frontends/calculator/CEdev/examples/random/bin/DEMO.map +++ b/frontends/calculator/CEdev/examples/random/bin/DEMO.map @@ -1,143 +1,143 @@ -Segment Base Top High Length --------- ------ ------ ------ ------- -icon D1A882 D1A882 0h -launcher D1A882 D1A882 0h -libs D1A882 D1A882 0h -startup D1A882 D1A8C1 3Fh -cleanup D1A8C1 D1A8D5 14h -exit D1A8D5 D1A8DB 6h -code D1A8DB D1A9A0 C5h -data D1A9A0 D1A9B0 10h -strsect D1A9B0 D1A9B0 0h -text D1A9B0 D1A9B0 0h -bss D031F6 D031F6 D13FD6 0h -header D1A87F D1A882 3h - -Label Value -------------------------- ------ -_os_DisableHomeTextBuffer = D1A8DB -_os_EnableHomeTextBuffer = D1A8ED -_random = D1A8FF -__state = D1A9A0 -_boot_GetBootMajorVer = 000080 -_boot_GetHardwareVer = 000084 -_boot_GetBootMinorVer = 00008C -_boot_DebugPrintf = 0000B4 -_boot_ClearVRAM = 000374 -_boot_TurnOff = 000388 -_boot_NewLine = 000390 -_boot_Set6MHzMode = 00039C -_boot_Set48MHzMode = 0003A0 -_boot_Set6MHzModeI = 0003A4 -_boot_Set48MHzModeI = 0003A8 -_boot_GetBatteryStatus = 0003B0 -_boot_WaitShort = 0003B4 -_boot_CheckOnPressed = 00057C -_boot_SetDate = 000598 -_boot_GetDate = 0005A8 -_boot_GetTime = 0005B0 -_boot_SetTime = 0005B4 -_boot_IsAfterNoon = 0005C8 -_os_NewLine = 0207F0 -_os_PushErrorHandler = 021C78 -_os_PopErrorHandler = 021C7C -_os_ThrowError = 021C80 -_os_RealCopy = 021C84 -_os_RealAsinRad = 021C88 -_os_RealAcosRad = 021C8C -_os_RealAtanRad = 021C90 -_os_RealAdd = 021C94 -_os_CplxSquare = 021C98 -_os_RealCompare = 021C9C -_os_RealCosRad = 021CA0 -_os_RealRadToDeg = 021CA4 -_os_RealDiv = 021CA8 -_os_RealExp = 021CAC -_os_RealFloor = 021CB0 -_os_RealToStr = 021CB4 -_os_RealFrac = 021CB8 -_os_RealGcd = 021CBC -_os_RealRoundInt = 021CC0 -_os_RealLcm = 021CC4 -_os_RealLog = 021CC8 -_os_RealMax = 021CCC -_os_RealMin = 021CD0 -_os_RealMul = 021CD4 -_os_RealNcr = 021CD8 -_os_RealNeg = 021CDC -_os_RealNpr = 021CE0 -_os_RealPow = 021CE4 -_os_RealDegToRad = 021CE8 -_os_RealRandInt = 021CEC -_os_RealInv = 021CF0 -_os_RealMod = 021CF4 -_os_RealRound = 021CF8 -_os_RealSinRad = 021CFC -_os_RealSqrt = 021D00 -_os_RealSub = 021D04 -_os_RealTanRad = 021D08 -_os_StrToReal = 021D0C -_os_RealInt = 021D10 -_os_SetFlagBits = 021D14 -_os_ResetFlagBits = 021D18 -_os_TestFlagBits = 021D1C -_os_SetFlagByte = 021D20 -_os_GetFlagByte = 021D24 -_os_GetCursorPos = 021D28 -_os_PutStrFull = 021D2C -_os_PutStrLine = 021D30 -_os_SetCursorPos = 021D34 -_os_AppInit = 021D40 -_os_GetKey = 021D38 -_os_GetCSC = 021D3C -_os_DisableCursor = 021DE4 -_os_EnableCursor = 021DE8 -_os_FontDrawText = 021E00 -_os_FontGetHeight = 021E14 -_os_FontGetWidth = 021E18 -_os_InitDrawing = 021E1C -_os_SetDrawBGColor = 021E20 -_os_SetDrawFGColor = 021E24 -_os_FontSelect = 021E28 -_os_RclAns = 021E70 -_os_SetTimer1 = 021EC8 -_os_DisableTimer1 = 021ECC -_os_GetSystemStats = 021ED4 -_os_GetDrawBGColor = 021EE4 -_os_GetDrawFGColor = 021EE8 -_os_FontGetID = 021EEC -_os_RealToInt24 = 021EF4 -_os_Int24ToReal = 021EF8 -_os_ForceCmdNoChar = 021FA8 -_os_GetSymTablePtr = 021FB0 -_os_NextSymEntry = 021FB4 -_os_ChkFindSym = 021FB8 -_os_MemChk = 021FF0 -_os_SetTimer2 = 022080 -_os_DisableTimer2 = 022084 -_os_FloatToReal = 022170 -_os_RealToFloat = 022174 -_os_FontDrawTransText = 022178 -_os_CreateAppVar = 022184 -_asm_MoveDown = 0207F4 -_asm_MoveUp = 020800 -_asm_ClrLCDFull = 020808 -_asm_ClrLCD = 02080C -_asm_ClrTxtShd = 020818 -_asm_HomeUp = 020828 -_asm_RunIndicOn = 020844 -_asm_RunIndicOff = 020848 -_asm_DelRes = 020E5C -_asm_DisableAPD = 021134 -_asm_EnableAPD = 021138 -_asm_DrawStatusBar = 021A3C -_asm_ArcChk = 022040 -__frameset = D1A956 -__ccleanup = D1A8C1 -_errno = D008DC -_init = D1A882 -_exit = D1A8D7 -__exit = D1A8B0 -__exitsp = D1A8B0 -__errsp = D1A8B0 -_main = D1A964 +Segment Base Top High Length
+-------- ------ ------ ------ -------
+icon D1A882 D1A882 0h
+launcher D1A882 D1A882 0h
+libs D1A882 D1A882 0h
+startup D1A882 D1A8C1 3Fh
+cleanup D1A8C1 D1A8D5 14h
+exit D1A8D5 D1A8DB 6h
+code D1A8DB D1A9A0 C5h
+data D1A9A0 D1A9B0 10h
+strsect D1A9B0 D1A9B0 0h
+text D1A9B0 D1A9B0 0h
+bss D031F6 D031F6 D13FD6 0h
+header D1A87F D1A882 3h
+
+Label Value
+------------------------- ------
+_os_DisableHomeTextBuffer = D1A8DB
+_os_EnableHomeTextBuffer = D1A8ED
+_random = D1A8FF
+__state = D1A9A0
+_boot_GetBootMajorVer = 000080
+_boot_GetHardwareVer = 000084
+_boot_GetBootMinorVer = 00008C
+_boot_DebugPrintf = 0000B4
+_boot_ClearVRAM = 000374
+_boot_TurnOff = 000388
+_boot_NewLine = 000390
+_boot_Set6MHzMode = 00039C
+_boot_Set48MHzMode = 0003A0
+_boot_Set6MHzModeI = 0003A4
+_boot_Set48MHzModeI = 0003A8
+_boot_GetBatteryStatus = 0003B0
+_boot_WaitShort = 0003B4
+_boot_CheckOnPressed = 00057C
+_boot_SetDate = 000598
+_boot_GetDate = 0005A8
+_boot_GetTime = 0005B0
+_boot_SetTime = 0005B4
+_boot_IsAfterNoon = 0005C8
+_os_NewLine = 0207F0
+_os_PushErrorHandler = 021C78
+_os_PopErrorHandler = 021C7C
+_os_ThrowError = 021C80
+_os_RealCopy = 021C84
+_os_RealAsinRad = 021C88
+_os_RealAcosRad = 021C8C
+_os_RealAtanRad = 021C90
+_os_RealAdd = 021C94
+_os_CplxSquare = 021C98
+_os_RealCompare = 021C9C
+_os_RealCosRad = 021CA0
+_os_RealRadToDeg = 021CA4
+_os_RealDiv = 021CA8
+_os_RealExp = 021CAC
+_os_RealFloor = 021CB0
+_os_RealToStr = 021CB4
+_os_RealFrac = 021CB8
+_os_RealGcd = 021CBC
+_os_RealRoundInt = 021CC0
+_os_RealLcm = 021CC4
+_os_RealLog = 021CC8
+_os_RealMax = 021CCC
+_os_RealMin = 021CD0
+_os_RealMul = 021CD4
+_os_RealNcr = 021CD8
+_os_RealNeg = 021CDC
+_os_RealNpr = 021CE0
+_os_RealPow = 021CE4
+_os_RealDegToRad = 021CE8
+_os_RealRandInt = 021CEC
+_os_RealInv = 021CF0
+_os_RealMod = 021CF4
+_os_RealRound = 021CF8
+_os_RealSinRad = 021CFC
+_os_RealSqrt = 021D00
+_os_RealSub = 021D04
+_os_RealTanRad = 021D08
+_os_StrToReal = 021D0C
+_os_RealInt = 021D10
+_os_SetFlagBits = 021D14
+_os_ResetFlagBits = 021D18
+_os_TestFlagBits = 021D1C
+_os_SetFlagByte = 021D20
+_os_GetFlagByte = 021D24
+_os_GetCursorPos = 021D28
+_os_PutStrFull = 021D2C
+_os_PutStrLine = 021D30
+_os_SetCursorPos = 021D34
+_os_AppInit = 021D40
+_os_GetKey = 021D38
+_os_GetCSC = 021D3C
+_os_DisableCursor = 021DE4
+_os_EnableCursor = 021DE8
+_os_FontDrawText = 021E00
+_os_FontGetHeight = 021E14
+_os_FontGetWidth = 021E18
+_os_InitDrawing = 021E1C
+_os_SetDrawBGColor = 021E20
+_os_SetDrawFGColor = 021E24
+_os_FontSelect = 021E28
+_os_RclAns = 021E70
+_os_SetTimer1 = 021EC8
+_os_DisableTimer1 = 021ECC
+_os_GetSystemStats = 021ED4
+_os_GetDrawBGColor = 021EE4
+_os_GetDrawFGColor = 021EE8
+_os_FontGetID = 021EEC
+_os_RealToInt24 = 021EF4
+_os_Int24ToReal = 021EF8
+_os_ForceCmdNoChar = 021FA8
+_os_GetSymTablePtr = 021FB0
+_os_NextSymEntry = 021FB4
+_os_ChkFindSym = 021FB8
+_os_MemChk = 021FF0
+_os_SetTimer2 = 022080
+_os_DisableTimer2 = 022084
+_os_FloatToReal = 022170
+_os_RealToFloat = 022174
+_os_FontDrawTransText = 022178
+_os_CreateAppVar = 022184
+_asm_MoveDown = 0207F4
+_asm_MoveUp = 020800
+_asm_ClrLCDFull = 020808
+_asm_ClrLCD = 02080C
+_asm_ClrTxtShd = 020818
+_asm_HomeUp = 020828
+_asm_RunIndicOn = 020844
+_asm_RunIndicOff = 020848
+_asm_DelRes = 020E5C
+_asm_DisableAPD = 021134
+_asm_EnableAPD = 021138
+_asm_DrawStatusBar = 021A3C
+_asm_ArcChk = 022040
+__frameset = D1A956
+__ccleanup = D1A8C1
+_errno = D008DC
+_init = D1A882
+_exit = D1A8D7
+__exit = D1A8B0
+__exitsp = D1A8B0
+__errsp = D1A8B0
+_main = D1A964
diff --git a/frontends/calculator/CEdev/examples/random/makefile b/frontends/calculator/CEdev/examples/random/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/random/makefile +++ b/frontends/calculator/CEdev/examples/random/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/random/readme.md b/frontends/calculator/CEdev/examples/random/readme.md index 776d1f8..ffae68a 100644 --- a/frontends/calculator/CEdev/examples/random/readme.md +++ b/frontends/calculator/CEdev/examples/random/readme.md @@ -1,9 +1,9 @@ -### Random Fill Screen Demo - -This is a simple demo to demonstrate filling the screen with random colors. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### Random Fill Screen Demo
+
+This is a simple demo to demonstrate filling the screen with random colors.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/random/src/main.c b/frontends/calculator/CEdev/examples/random/src/main.c index 83477e4..3bd5070 100644 --- a/frontends/calculator/CEdev/examples/random/src/main.c +++ b/frontends/calculator/CEdev/examples/random/src/main.c @@ -1,19 +1,19 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -void main(void) { - /* Fill VRAM with random data */ - uint32_t *lcd_Ram_i, *lcd_Ram_end = (uint32_t *) ((int) lcd_Ram + LCD_SIZE); - for (lcd_Ram_i = (uint32_t *) lcd_Ram; lcd_Ram_i < lcd_Ram_end; lcd_Ram_i++) { - *lcd_Ram_i = random(); - } - - /* Wait for a key press */ - while (!os_GetCSC()); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+void main(void) {
+ /* Fill VRAM with random data */
+ uint32_t *lcd_Ram_i, *lcd_Ram_end = (uint32_t *) ((int) lcd_Ram + LCD_SIZE);
+ for (lcd_Ram_i = (uint32_t *) lcd_Ram; lcd_Ram_i < lcd_Ram_end; lcd_Ram_i++) {
+ *lcd_Ram_i = random();
+ }
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/makefile b/frontends/calculator/CEdev/examples/real_time_clock/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/real_time_clock/makefile +++ b/frontends/calculator/CEdev/examples/real_time_clock/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/readme.md b/frontends/calculator/CEdev/examples/real_time_clock/readme.md index 08554eb..548e5b5 100644 --- a/frontends/calculator/CEdev/examples/real_time_clock/readme.md +++ b/frontends/calculator/CEdev/examples/real_time_clock/readme.md @@ -1,10 +1,10 @@ -### Real Time Clock Demo - -This demo demonstrates how to use the basics of the real time clock (RTC) - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Real Time Clock Demo
+
+This demo demonstrates how to use the basics of the real time clock (RTC)
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/real_time_clock/src/main.c b/frontends/calculator/CEdev/examples/real_time_clock/src/main.c index 1aa24cb..fa9b881 100644 --- a/frontends/calculator/CEdev/examples/real_time_clock/src/main.c +++ b/frontends/calculator/CEdev/examples/real_time_clock/src/main.c @@ -1,39 +1,39 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -unsigned int seconds = 0; - -void main(void) { - - /* Clear the homescreen */ - os_ClrHome(); - - /* Randomize things */ - srand(rtc_Time()); - - /* Configure the RTC */ - rtc_LoadSeconds = rtc_LoadMinutes = rtc_LoadHours = rtc_LoadDays = 0; - rtc_Control = RTC_ENABLE | RTC_LOAD | RTC_SEC_INT_SOURCE; - - /* Wait for the RTC to load in the new values and then acknowledge all the interrupts */ - while (rtc_IsBusy()); - rtc_IntAcknowledge = RTC_INT_MASK; - - /* Wait until 5 seconds have passed */ - while (seconds < 5) { - - /* If a second passed, increment the second counter */ - if (rtc_IntStatus & RTC_SEC_INT) { - memset(lcd_Ram, randInt(0,255), LCD_SIZE); - seconds++; - - rtc_IntAcknowledge = rtc_IntStatus; - } - } -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+unsigned int seconds = 0;
+
+void main(void) {
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Randomize things */
+ srand(rtc_Time());
+
+ /* Configure the RTC */
+ rtc_LoadSeconds = rtc_LoadMinutes = rtc_LoadHours = rtc_LoadDays = 0;
+ rtc_Control = RTC_ENABLE | RTC_LOAD | RTC_SEC_INT_SOURCE;
+
+ /* Wait for the RTC to load in the new values and then acknowledge all the interrupts */
+ while (rtc_IsBusy());
+ rtc_IntAcknowledge = RTC_INT_MASK;
+
+ /* Wait until 5 seconds have passed */
+ while (seconds < 5) {
+
+ /* If a second passed, increment the second counter */
+ if (rtc_IntStatus & RTC_SEC_INT) {
+ memset(lcd_Ram, randInt(0,255), LCD_SIZE);
+ seconds++;
+
+ rtc_IntAcknowledge = rtc_IntStatus;
+ }
+ }
+}
diff --git a/frontends/calculator/CEdev/examples/second_counter/makefile b/frontends/calculator/CEdev/examples/second_counter/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/second_counter/makefile +++ b/frontends/calculator/CEdev/examples/second_counter/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/second_counter/readme.md b/frontends/calculator/CEdev/examples/second_counter/readme.md index 9211916..c3ca06f 100644 --- a/frontends/calculator/CEdev/examples/second_counter/readme.md +++ b/frontends/calculator/CEdev/examples/second_counter/readme.md @@ -1,10 +1,10 @@ -### Second Counter Demo - -This demo demonstrates using the hardware timers, and makes a simple second counter - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Second Counter Demo
+
+This demo demonstrates using the hardware timers, and makes a simple second counter
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/second_counter/src/main.c b/frontends/calculator/CEdev/examples/second_counter/src/main.c index 8a4ebc5..ba2e0ac 100644 --- a/frontends/calculator/CEdev/examples/second_counter/src/main.c +++ b/frontends/calculator/CEdev/examples/second_counter/src/main.c @@ -1,43 +1,43 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define ONE_SECOND 32768/1 -#define HALF_SECOND 32768/2 -#define QUARTER_SECOND 32768/4 - -/* Put all your code here */ -void main(void) { - unsigned seconds = 0; - char str[10]; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Disable the timer so it doesn't run when we don't want it to be running */ - timer_Control = TIMER1_DISABLE; - - /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */ - timer_1_ReloadValue = timer_1_Counter = ONE_SECOND; - - /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */ - timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_0INT | TIMER1_DOWN; - - do { - /* If the timer is reloaded, we reached 0 */ - if (timer_IntStatus & TIMER1_RELOADED) { - /* Print a string */ - sprintf(str, "%u", seconds++); - os_SetCursorPos(0, 0); - os_PutStrFull(str); - - /* Acknowledge the reload */ - timer_IntAcknowledge = TIMER1_RELOADED; - } - } while (!os_GetCSC()); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ONE_SECOND 32768/1
+#define HALF_SECOND 32768/2
+#define QUARTER_SECOND 32768/4
+
+/* Put all your code here */
+void main(void) {
+ unsigned seconds = 0;
+ char str[10];
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Disable the timer so it doesn't run when we don't want it to be running */
+ timer_Control = TIMER1_DISABLE;
+
+ /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */
+ timer_1_ReloadValue = timer_1_Counter = ONE_SECOND;
+
+ /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */
+ timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_0INT | TIMER1_DOWN;
+
+ do {
+ /* If the timer is reloaded, we reached 0 */
+ if (timer_IntStatus & TIMER1_RELOADED) {
+ /* Print a string */
+ sprintf(str, "%u", seconds++);
+ os_SetCursorPos(0, 0);
+ os_PutStrFull(str);
+
+ /* Acknowledge the reload */
+ timer_IntAcknowledge = TIMER1_RELOADED;
+ }
+ } while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/second_counter2/makefile b/frontends/calculator/CEdev/examples/second_counter2/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/second_counter2/makefile +++ b/frontends/calculator/CEdev/examples/second_counter2/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/second_counter2/readme.md b/frontends/calculator/CEdev/examples/second_counter2/readme.md index 8913644..eb125d3 100644 --- a/frontends/calculator/CEdev/examples/second_counter2/readme.md +++ b/frontends/calculator/CEdev/examples/second_counter2/readme.md @@ -1,10 +1,10 @@ -### Second Counter 2 Demo - -This demo demonstrates using more uses of the timers - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. - +### Second Counter 2 Demo
+
+This demo demonstrates using more uses of the timers
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
+
diff --git a/frontends/calculator/CEdev/examples/second_counter2/src/main.c b/frontends/calculator/CEdev/examples/second_counter2/src/main.c index dff02f2..e2e6244 100644 --- a/frontends/calculator/CEdev/examples/second_counter2/src/main.c +++ b/frontends/calculator/CEdev/examples/second_counter2/src/main.c @@ -1,57 +1,57 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define ONE_SECOND 32768/1 -#define HALF_SECOND 32768/2 -#define QUARTER_SECOND 32768/4 - -/* Function Prototypes */ -void reset_counter(void); - -void main(void) { - unsigned int count = 0; - char str[10]; - - timer_1_MatchValue_1 = ONE_SECOND; - - /* Clear the homescreen */ - os_ClrHome(); - - /* Reset the counter */ - reset_counter(); - - do { - - /* Poll until we reach the match value */ - if (timer_IntStatus & TIMER1_MATCH1) { - /* Print the count */ - sprintf(str, "%u", count++); - os_SetCursorPos(0, 0); - os_PutStrFull(str); - - /* Reset the count */ - reset_counter(); - - /* Acknowledge the interrupt */ - timer_IntStatus = TIMER1_MATCH1; - } - - } while (count < 5); -} - -void reset_counter(void) { - /* Disable the timer so it doesn't run when we don't want it to be running */ - timer_Control = TIMER1_DISABLE; - - /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */ - timer_1_Counter = 0; - - /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */ - timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_NOINT | TIMER1_UP; -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define ONE_SECOND 32768/1
+#define HALF_SECOND 32768/2
+#define QUARTER_SECOND 32768/4
+
+/* Function Prototypes */
+void reset_counter(void);
+
+void main(void) {
+ unsigned int count = 0;
+ char str[10];
+
+ timer_1_MatchValue_1 = ONE_SECOND;
+
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Reset the counter */
+ reset_counter();
+
+ do {
+
+ /* Poll until we reach the match value */
+ if (timer_IntStatus & TIMER1_MATCH1) {
+ /* Print the count */
+ sprintf(str, "%u", count++);
+ os_SetCursorPos(0, 0);
+ os_PutStrFull(str);
+
+ /* Reset the count */
+ reset_counter();
+
+ /* Acknowledge the interrupt */
+ timer_IntStatus = TIMER1_MATCH1;
+ }
+
+ } while (count < 5);
+}
+
+void reset_counter(void) {
+ /* Disable the timer so it doesn't run when we don't want it to be running */
+ timer_Control = TIMER1_DISABLE;
+
+ /* By using the 32768 kHz clock, we can count for exactly 1 second here, or a different interval of time */
+ timer_1_Counter = 0;
+
+ /* Enable the timer, set it to the 32768 kHz clock, enable an interrupt once it reaches 0, and make it count down */
+ timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_NOINT | TIMER1_UP;
+}
diff --git a/frontends/calculator/CEdev/examples/stopwatch/makefile b/frontends/calculator/CEdev/examples/stopwatch/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/stopwatch/makefile +++ b/frontends/calculator/CEdev/examples/stopwatch/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/stopwatch/readme.md b/frontends/calculator/CEdev/examples/stopwatch/readme.md index a10bdb9..f27edf4 100644 --- a/frontends/calculator/CEdev/examples/stopwatch/readme.md +++ b/frontends/calculator/CEdev/examples/stopwatch/readme.md @@ -1,10 +1,10 @@ -### Stopwatch Demo - -This demo demonstrates using the hardware timers to make a simple stopwatch -displaying millisecond precision. - - - ---- - -This demo is a part of the C SDK Toolchain for use on the CE. +### Stopwatch Demo
+
+This demo demonstrates using the hardware timers to make a simple stopwatch
+displaying millisecond precision.
+
+
+
+---
+
+This demo is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/stopwatch/src/main.c b/frontends/calculator/CEdev/examples/stopwatch/src/main.c index 3ec82b1..6dc8fdf 100644 --- a/frontends/calculator/CEdev/examples/stopwatch/src/main.c +++ b/frontends/calculator/CEdev/examples/stopwatch/src/main.c @@ -1,60 +1,60 @@ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Print a stopwatch value on the home screen */ -void print(float elapsed) { - /* Float format for printf may be unimplemented, so go through an OS real */ - real_t elapsed_real; - - /* Max stopwatch value is (2^32 - 1) / 32768 = 131072.00, */ - /* so create a buffer with room for 9 characters plus a null terminator */ - char str[10]; - - /* If the elapsed time is small enough that the OS would print it using */ - /* scientific notation, force it down to zero before conversion */ - elapsed_real = os_FloatToReal(elapsed <= 0.001f ? 0.0f : elapsed); - - /* Convert the elapsed time real to a string */ - os_RealToStr(str, &elapsed_real, 8, 1, 2); - - /* Print the string */ - os_SetCursorPos(0, 0); - os_PutStrFull(str); -} - -/* Put all your code here */ -void main(void) { - /* Clear the homescreen */ - os_ClrHome(); - - /* Display an initial time of zero */ - print(0.0f); - - /* Disable the timer */ - timer_Control = TIMER1_DISABLE; - - /* Reset the timer's counter */ - timer_1_Counter = 0; - - /* Wait for a key press */ - while (!os_GetCSC()); - - /* Enable the timer while setting it to 32768 KHz and making it count up */ - timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_UP; - - /* Continue running until a key is pressed */ - do { - /* Calculate and print the elapsed time */ - float elapsed = (float)atomic_load_increasing_32(&timer_1_Counter) / 32768; - print(elapsed); - } while (!os_GetCSC()); - - /* Wait for a key press */ - while (!os_GetCSC()); -} +#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Print a stopwatch value on the home screen */
+void print(float elapsed) {
+ /* Float format for printf may be unimplemented, so go through an OS real */
+ real_t elapsed_real;
+
+ /* Max stopwatch value is (2^32 - 1) / 32768 = 131072.00, */
+ /* so create a buffer with room for 9 characters plus a null terminator */
+ char str[10];
+
+ /* If the elapsed time is small enough that the OS would print it using */
+ /* scientific notation, force it down to zero before conversion */
+ elapsed_real = os_FloatToReal(elapsed <= 0.001f ? 0.0f : elapsed);
+
+ /* Convert the elapsed time real to a string */
+ os_RealToStr(str, &elapsed_real, 8, 1, 2);
+
+ /* Print the string */
+ os_SetCursorPos(0, 0);
+ os_PutStrFull(str);
+}
+
+/* Put all your code here */
+void main(void) {
+ /* Clear the homescreen */
+ os_ClrHome();
+
+ /* Display an initial time of zero */
+ print(0.0f);
+
+ /* Disable the timer */
+ timer_Control = TIMER1_DISABLE;
+
+ /* Reset the timer's counter */
+ timer_1_Counter = 0;
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+
+ /* Enable the timer while setting it to 32768 KHz and making it count up */
+ timer_Control = TIMER1_ENABLE | TIMER1_32K | TIMER1_UP;
+
+ /* Continue running until a key is pressed */
+ do {
+ /* Calculate and print the elapsed time */
+ float elapsed = (float)atomic_load_increasing_32(&timer_1_Counter) / 32768;
+ print(elapsed);
+ } while (!os_GetCSC());
+
+ /* Wait for a key press */
+ while (!os_GetCSC());
+}
diff --git a/frontends/calculator/CEdev/examples/template/makefile b/frontends/calculator/CEdev/examples/template/makefile index 1f1b36b..d3deba8 100644 --- a/frontends/calculator/CEdev/examples/template/makefile +++ b/frontends/calculator/CEdev/examples/template/makefile @@ -1,15 +1,15 @@ -# ---------------------------- -# Set NAME to the program name -# Set ICON to the png icon file name -# Set DESCRIPTION to display within a compatible shell -# Set COMPRESSED to "YES" to create a compressed program -# ---------------------------- - -NAME ?= DEMO -COMPRESSED ?= NO -ICON ?= iconc.png -DESCRIPTION ?= "C SDK Demo" - -# ---------------------------- - -include $(CEDEV)/include/.makefile +# ----------------------------
+# Set NAME to the program name
+# Set ICON to the png icon file name
+# Set DESCRIPTION to display within a compatible shell
+# Set COMPRESSED to "YES" to create a compressed program
+# ----------------------------
+
+NAME ?= DEMO
+COMPRESSED ?= NO
+ICON ?= iconc.png
+DESCRIPTION ?= "C SDK Demo"
+
+# ----------------------------
+
+include $(CEDEV)/include/.makefile
diff --git a/frontends/calculator/CEdev/examples/template/readme.md b/frontends/calculator/CEdev/examples/template/readme.md index 093834f..0335c19 100644 --- a/frontends/calculator/CEdev/examples/template/readme.md +++ b/frontends/calculator/CEdev/examples/template/readme.md @@ -1,14 +1,14 @@ -### Template - -You can clone this directory for your own projects. - -To add code, fill in the void main() function in main.c. You can also create -your own .c and .h files and add them to the directory; the Makefile included in -this template will automatically find and compile the new .c files. - -In addition, you can also add your own .asm files, which will be detected and -added appropriately to the proper segment. - ---- - -This template is a part of the C SDK Toolchain for use on the CE. +### Template
+
+You can clone this directory for your own projects.
+
+To add code, fill in the void main() function in main.c. You can also create
+your own .c and .h files and add them to the directory; the Makefile included in
+this template will automatically find and compile the new .c files.
+
+In addition, you can also add your own .asm files, which will be detected and
+added appropriately to the proper segment.
+
+---
+
+This template is a part of the C SDK Toolchain for use on the CE.
diff --git a/frontends/calculator/CEdev/examples/template/src/main.c b/frontends/calculator/CEdev/examples/template/src/main.c index 88416b7..65eaafd 100644 --- a/frontends/calculator/CEdev/examples/template/src/main.c +++ b/frontends/calculator/CEdev/examples/template/src/main.c @@ -1,30 +1,30 @@ -/* - *-------------------------------------- - * Program Name: - * Author: - * License: - * Description: - *-------------------------------------- -*/ - -/* Keep these headers */ -#include <stdbool.h> -#include <stddef.h> -#include <stdint.h> -#include <tice.h> - -/* Standard headers (recommended) */ -#include <math.h> -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -/* Put your function prototypes here */ - -/* Put all your globals here */ - -void main(void) { - /* Fill in the body of the main function here */ -} - -/* Put other functions here */ +/*
+ *--------------------------------------
+ * Program Name:
+ * Author:
+ * License:
+ * Description:
+ *--------------------------------------
+*/
+
+/* Keep these headers */
+#include <stdbool.h>
+#include <stddef.h>
+#include <stdint.h>
+#include <tice.h>
+
+/* Standard headers (recommended) */
+#include <math.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+/* Put your function prototypes here */
+
+/* Put all your globals here */
+
+void main(void) {
+ /* Fill in the body of the main function here */
+}
+
+/* Put other functions here */
diff --git a/frontends/calculator/CEdev/include/.linker_script b/frontends/calculator/CEdev/include/.linker_script index e3a1887..eb5ea8b 100644 --- a/frontends/calculator/CEdev/include/.linker_script +++ b/frontends/calculator/CEdev/include/.linker_script @@ -1,305 +1,305 @@ -symbol __low_bss = bss.base -symbol __len_bss = bss.length -symbol __heaptop = bss.high -symbol __heapbot = bss.top -order header, icon, launcher, libs, startup, cleanup, exit, code, data, strsect, text -if STATIC - srcs "../../lib/static/atof.src" - srcs "../../lib/static/ceil.src" - srcs "../../lib/static/fabs.src" - srcs "../../lib/static/acos.src" - srcs "../../lib/static/cos.src" - srcs "../../lib/static/exp.src" - srcs "../../lib/static/log.src" - srcs "../../lib/static/ufltinfo.src" - srcs "../../lib/static/pow.src" - srcs "../../lib/static/strtod.src" - srcs "../../lib/static/asin.src" - srcs "../../lib/static/sinh.src" - srcs "../../lib/static/log10.src" - srcs "../../lib/static/sin.src" - srcs "../../lib/static/atan.src" - srcs "../../lib/static/atan2.src" - srcs "../../lib/static/fmod.src" - srcs "../../lib/static/tanh.src" - srcs "../../lib/static/tan.src" - srcs "../../lib/static/frexp.src" - srcs "../../lib/static/sqrt.src" - srcs "../../lib/static/floor.src" - srcs "../../lib/static/ldexp.src" - srcs "../../lib/static/modf.src" - srcs "../../lib/static/ufltrnd.src" -else - srcs "../../lib/linked/frexp.src" - srcs "../../lib/linked/atan2.src" - srcs "../../lib/linked/atof.src" - srcs "../../lib/linked/acos.src" - srcs "../../lib/linked/sqrt.src" - srcs "../../lib/linked/atan.src" - srcs "../../lib/linked/sinh.src" - srcs "../../lib/linked/tan.src" - srcs "../../lib/linked/floor.src" - srcs "../../lib/linked/ldexp.src" - srcs "../../lib/linked/ufltrnd.src" - srcs "../../lib/linked/fabs.src" - srcs "../../lib/linked/log10.src" - srcs "../../lib/linked/strtod.src" - srcs "../../lib/linked/fmod.src" - srcs "../../lib/linked/asin.src" - srcs "../../lib/linked/exp.src" - srcs "../../lib/linked/ufltinfo.src" - srcs "../../lib/linked/cosh.src" - srcs "../../lib/linked/modf.src" - srcs "../../lib/linked/log.src" - srcs "../../lib/linked/tanh.src" - srcs "../../lib/linked/ceil.src" - srcs "../../lib/linked/cos.src" - srcs "../../lib/linked/pow.src" - srcs "../../lib/linked/sin.src" -end if -srcs "../../lib/shared/os_textbuffer.src" -srcs "../../lib/shared/debugger.src" -srcs "../../lib/shared/zx7_Decompress.src" -srcs "../../lib/shared/random.src" -srcs "../../lib/shared/atomic_load_decreasing_32.src" -srcs "../../lib/shared/removeallbreakpoints.src" -srcs "../../lib/shared/removebreakpoint.src" -srcs "../../lib/shared/srandom.src" -srcs "../../lib/shared/tice.src" -srcs "../../lib/shared/removewatchpoint.src" -srcs "../../lib/shared/atomic_load_increasing_32.src" -srcs "../../lib/shared/setwatchpoint.src" -srcs "../../lib/shared/interrupts.src" -srcs "../../lib/shared/removeallwatchpoints.src" -srcs "../../lib/shared/getstringinput.src" -srcs "../../lib/shared/dzx7_turbo.src" -srcs "../../lib/shared/atomic_load_32.src" -srcs "../../lib/shared/setwritewatchpoint.src" -srcs "../../lib/shared/setreadwatchpoint.src" -srcs "../../lib/shared/os.src" -srcs "../../lib/shared/usb.src" -srcs "../../lib/shared/setreadwritewatchpoint.src" -srcs "../../lib/shared/abort.src" -srcs "../../lib/shared/setbreakpoint.src" -srcs "../../lib/shared/dzx7_standard.src" -srcs "../../lib/shared/delay.src" -srcs "../../lib/shared/frftoub.src" -srcs "../../lib/shared/fpupop1.src" -srcs "../../lib/shared/frimulu.src" -srcs "../../lib/shared/ladd.src" -srcs "../../lib/shared/atoi.src" -srcs "../../lib/shared/idivs.src" -srcs "../../lib/shared/isnan.src" -srcs "../../lib/shared/case24d.src" -srcs "../../lib/shared/isupper.src" -srcs "../../lib/shared/memmove.src" -srcs "../../lib/shared/frameset0.src" -srcs "../../lib/shared/sneg.src" -srcs "../../lib/shared/setjmp.src" -srcs "../../lib/shared/strcspn.src" -srcs "../../lib/shared/fpdiv.src" -srcs "../../lib/shared/istiy.src" -srcs "../../lib/shared/frstof.src" -srcs "../../lib/shared/abs.src" -srcs "../../lib/shared/frsmulu.src" -srcs "../../lib/shared/strdup.src" -srcs "../../lib/shared/sprintf.src" -srcs "../../lib/shared/sldix.src" -srcs "../../lib/shared/finite.src" -srcs "../../lib/shared/lnot.src" -srcs "../../lib/shared/imulu.src" -srcs "../../lib/shared/setflag.src" -srcs "../../lib/shared/iscntrl.src" -srcs "../../lib/shared/fpupop2.src" -srcs "../../lib/shared/ishrs.src" -srcs "../../lib/shared/fpsub.src" -srcs "../../lib/shared/fpmul.src" -srcs "../../lib/shared/case24.src" -srcs "../../lib/shared/isinf.src" -srcs "../../lib/shared/bldix.src" -srcs "../../lib/shared/ldiv.src" -srcs "../../lib/shared/strcmp.src" -srcs "../../lib/shared/strcasecmp.src" -srcs "../../lib/shared/sand.src" -srcs "../../lib/shared/strrchr.src" -srcs "../../lib/shared/sshrs.src" -srcs "../../lib/shared/tolower.src" -srcs "../../lib/shared/isgraph.src" -srcs "../../lib/shared/case8d.src" -srcs "../../lib/shared/snot.src" -srcs "../../lib/shared/round.src" -srcs "../../lib/shared/seqcased.src" -srcs "../../lib/shared/frbtof.src" -srcs "../../lib/shared/fruitof.src" -srcs "../../lib/shared/fritof.src" -srcs "../../lib/shared/log2.src" -srcs "../../lib/shared/fpultof.src" -srcs "../../lib/shared/bshrs.src" -srcs "../../lib/shared/seqcase.src" -srcs "../../lib/shared/bremu.src" -srcs "../../lib/shared/lmulu.src" -srcs "../../lib/shared/strncmp.src" -srcs "../../lib/shared/frbmuls.src" -srcs "../../lib/shared/scmpzero.src" -srcs "../../lib/shared/isxdigit.src" -srcs "../../lib/shared/bdivs.src" -srcs "../../lib/shared/strndup.src" -srcs "../../lib/shared/memset.src" -srcs "../../lib/shared/strncpy.src" -srcs "../../lib/shared/itol.src" -srcs "../../lib/shared/strstr.src" -srcs "../../lib/shared/sdivs.src" -srcs "../../lib/shared/lcmpu.src" -srcs "../../lib/shared/case8.src" -srcs "../../lib/shared/indcall.src" -srcs "../../lib/shared/sqrtf.src" -srcs "../../lib/shared/sstix.src" -srcs "../../lib/shared/fpftol.src" -srcs "../../lib/shared/rand.src" -srcs "../../lib/shared/lstix.src" -srcs "../../lib/shared/lrems.src" -srcs "../../lib/shared/ildiy.src" -srcs "../../lib/shared/lmuls.src" -srcs "../../lib/shared/fppack.src" -srcs "../../lib/shared/lor.src" -srcs "../../lib/shared/icmpzero.src" -srcs "../../lib/shared/strpbrk.src" -srcs "../../lib/shared/sstiy.src" -srcs "../../lib/shared/land.src" -srcs "../../lib/shared/ldivu.src" -srcs "../../lib/shared/frsmuls.src" -srcs "../../lib/shared/strtok.src" -srcs "../../lib/shared/iand.src" -srcs "../../lib/shared/ldivs.src" -srcs "../../lib/shared/ineg.src" -srcs "../../lib/shared/stoi.src" -srcs "../../lib/shared/sremu.src" -srcs "../../lib/shared/sldiy.src" -srcs "../../lib/shared/bstiy.src" -srcs "../../lib/shared/memchr.src" -srcs "../../lib/shared/ior.src" -srcs "../../lib/shared/fpneg.src" -srcs "../../lib/shared/isascii.src" -srcs "../../lib/shared/lldix.src" -srcs "../../lib/shared/smuls.src" -srcs "../../lib/shared/smulu.src" -srcs "../../lib/shared/isspace.src" -srcs "../../lib/shared/frftous.src" -srcs "../../lib/shared/sshl.src" -srcs "../../lib/shared/sdivu.src" -srcs "../../lib/shared/fpadd.src" -srcs "../../lib/shared/lsub.src" -srcs "../../lib/shared/bldiy.src" -srcs "../../lib/shared/ixor.src" -srcs "../../lib/shared/lstiy.src" -srcs "../../lib/shared/srand.src" -srcs "../../lib/shared/uldiv.src" -srcs "../../lib/shared/frftos.src" -srcs "../../lib/shared/frubtof.src" -srcs "../../lib/shared/ishru.src" -srcs "../../lib/shared/sshru.src" -srcs "../../lib/shared/atos.src" -srcs "../../lib/shared/iremu.src" -srcs "../../lib/shared/lshrs.src" -srcs "../../lib/shared/strspn.src" -srcs "../../lib/shared/strnlen.src" -srcs "../../lib/shared/bmuls.src" -srcs "../../lib/shared/sor.src" -srcs "../../lib/shared/imuls.src" -srcs "../../lib/shared/fpltof.src" -srcs "../../lib/shared/sxor.src" -srcs "../../lib/shared/istix.src" -srcs "../../lib/shared/bdivu.src" -srcs "../../lib/shared/bshl.src" -srcs "../../lib/shared/memcmp.src" -srcs "../../lib/shared/srems.src" -srcs "../../lib/shared/strchr.src" -srcs "../../lib/shared/ildix.src" -srcs "../../lib/shared/frustof.src" -srcs "../../lib/shared/lneg.src" -srcs "../../lib/shared/atol.src" -srcs "../../lib/shared/longjmp.src" -srcs "../../lib/shared/labs.src" -srcs "../../lib/shared/memcpy.src" -srcs "../../lib/shared/isalpha.src" -srcs "../../lib/shared/bshru.src" -srcs "../../lib/shared/isprint.src" -srcs "../../lib/shared/strcat.src" -srcs "../../lib/shared/div.src" -srcs "../../lib/shared/isalnum.src" -srcs "../../lib/shared/lshl.src" -srcs "../../lib/shared/case16d.src" -srcs "../../lib/shared/ispunct.src" -srcs "../../lib/shared/toupper.src" -srcs "../../lib/shared/frftoui.src" -srcs "../../lib/shared/idivu.src" -srcs "../../lib/shared/isdigit.src" -srcs "../../lib/shared/sbrk.src" -srcs "../../lib/shared/fpcmp.src" -srcs "../../lib/shared/lcmpzero.src" -srcs "../../lib/shared/stoiu.src" -srcs "../../lib/shared/inot.src" -srcs "../../lib/shared/frimuls.src" -srcs "../../lib/shared/lcmps.src" -srcs "../../lib/shared/irems.src" -srcs "../../lib/shared/lldiy.src" -srcs "../../lib/shared/ishl.src" -srcs "../../lib/shared/strncat.src" -srcs "../../lib/shared/bstix.src" -srcs "../../lib/shared/lxor.src" -srcs "../../lib/shared/lshru.src" -srcs "../../lib/shared/bmulu.src" -srcs "../../lib/shared/calloc.src" -srcs "../../lib/shared/frftoi.src" -srcs "../../lib/shared/islower.src" -srcs "../../lib/shared/case16.src" -srcs "../../lib/shared/frameset.src" -srcs "../../lib/shared/strcpy.src" -srcs "../../lib/shared/frftob.src" -srcs "../../lib/shared/strncasecmp.src" -srcs "../../lib/shared/brems.src" -srcs "../../lib/shared/lremu.src" -srcs "../../lib/shared/case.src" -srcs "../../lib/shared/strlen.src" -srcs "../../lib/shared/gamma.src" -srcs "../../lib/shared/uuitoa.src" -srcs "../../lib/shared/udtog.src" -srcs "../../lib/shared/uscan.src" -srcs "../../lib/shared/strtoul.src" -srcs "../../lib/shared/print_sputch.src" -srcs "../../lib/shared/print_putch.src" -srcs "../../lib/shared/strtol.src" -srcs "../../lib/shared/bsearch.src" -srcs "../../lib/shared/vsprintf.src" -srcs "../../lib/shared/print_putstring.src" -srcs "../../lib/shared/ustoa.src" -srcs "../../lib/shared/maptab.src" -srcs "../../lib/shared/ultoa.src" -srcs "../../lib/shared/usscan.src" -srcs "../../lib/shared/udtof.src" -srcs "../../lib/shared/realloc.src" -srcs "../../lib/shared/free.src" -srcs "../../lib/shared/udtoe.src" -srcs "../../lib/shared/uitoa.src" -srcs "../../lib/shared/qsort.src" -srcs "../../lib/shared/fpdata.src" -srcs "../../lib/shared/uustoa.src" -srcs "../../lib/shared/upscan.src" -srcs "../../lib/shared/malloc.src" -srcs "../../lib/shared/uprint.src" -srcs "../../lib/shared/ureverse.src" -srcs "../../lib/shared/uultoa.src" -srcs "../../lib/shared/print_globals.src" -srcs "../../lib/fileio/files.src" -srcs "../../lib/fileio/fclose.src" -srcs "../../lib/fileio/feof.src" -srcs "../../lib/fileio/fopen.src" -srcs "../../lib/fileio/fwrite.src" -srcs "../../lib/fileio/ftell.src" -srcs "../../lib/fileio/fputs.src" -srcs "../../lib/fileio/fgets.src" -srcs "../../lib/fileio/remove.src" -srcs "../../lib/fileio/fputc.src" -srcs "../../lib/fileio/fgetc.src" -srcs "../../lib/fileio/fread.src" -srcs "../../lib/fileio/fseek.src" +symbol __low_bss = bss.base
+symbol __len_bss = bss.length
+symbol __heaptop = bss.high
+symbol __heapbot = bss.top
+order header, icon, launcher, libs, startup, cleanup, exit, code, data, strsect, text
+if STATIC
+ srcs "../../lib/static/atof.src"
+ srcs "../../lib/static/ceil.src"
+ srcs "../../lib/static/fabs.src"
+ srcs "../../lib/static/acos.src"
+ srcs "../../lib/static/cos.src"
+ srcs "../../lib/static/exp.src"
+ srcs "../../lib/static/log.src"
+ srcs "../../lib/static/ufltinfo.src"
+ srcs "../../lib/static/pow.src"
+ srcs "../../lib/static/strtod.src"
+ srcs "../../lib/static/asin.src"
+ srcs "../../lib/static/sinh.src"
+ srcs "../../lib/static/log10.src"
+ srcs "../../lib/static/sin.src"
+ srcs "../../lib/static/atan.src"
+ srcs "../../lib/static/atan2.src"
+ srcs "../../lib/static/fmod.src"
+ srcs "../../lib/static/tanh.src"
+ srcs "../../lib/static/tan.src"
+ srcs "../../lib/static/frexp.src"
+ srcs "../../lib/static/sqrt.src"
+ srcs "../../lib/static/floor.src"
+ srcs "../../lib/static/ldexp.src"
+ srcs "../../lib/static/modf.src"
+ srcs "../../lib/static/ufltrnd.src"
+else
+ srcs "../../lib/linked/frexp.src"
+ srcs "../../lib/linked/atan2.src"
+ srcs "../../lib/linked/atof.src"
+ srcs "../../lib/linked/acos.src"
+ srcs "../../lib/linked/sqrt.src"
+ srcs "../../lib/linked/atan.src"
+ srcs "../../lib/linked/sinh.src"
+ srcs "../../lib/linked/tan.src"
+ srcs "../../lib/linked/floor.src"
+ srcs "../../lib/linked/ldexp.src"
+ srcs "../../lib/linked/ufltrnd.src"
+ srcs "../../lib/linked/fabs.src"
+ srcs "../../lib/linked/log10.src"
+ srcs "../../lib/linked/strtod.src"
+ srcs "../../lib/linked/fmod.src"
+ srcs "../../lib/linked/asin.src"
+ srcs "../../lib/linked/exp.src"
+ srcs "../../lib/linked/ufltinfo.src"
+ srcs "../../lib/linked/cosh.src"
+ srcs "../../lib/linked/modf.src"
+ srcs "../../lib/linked/log.src"
+ srcs "../../lib/linked/tanh.src"
+ srcs "../../lib/linked/ceil.src"
+ srcs "../../lib/linked/cos.src"
+ srcs "../../lib/linked/pow.src"
+ srcs "../../lib/linked/sin.src"
+end if
+srcs "../../lib/shared/os_textbuffer.src"
+srcs "../../lib/shared/debugger.src"
+srcs "../../lib/shared/zx7_Decompress.src"
+srcs "../../lib/shared/random.src"
+srcs "../../lib/shared/atomic_load_decreasing_32.src"
+srcs "../../lib/shared/removeallbreakpoints.src"
+srcs "../../lib/shared/removebreakpoint.src"
+srcs "../../lib/shared/srandom.src"
+srcs "../../lib/shared/tice.src"
+srcs "../../lib/shared/removewatchpoint.src"
+srcs "../../lib/shared/atomic_load_increasing_32.src"
+srcs "../../lib/shared/setwatchpoint.src"
+srcs "../../lib/shared/interrupts.src"
+srcs "../../lib/shared/removeallwatchpoints.src"
+srcs "../../lib/shared/getstringinput.src"
+srcs "../../lib/shared/dzx7_turbo.src"
+srcs "../../lib/shared/atomic_load_32.src"
+srcs "../../lib/shared/setwritewatchpoint.src"
+srcs "../../lib/shared/setreadwatchpoint.src"
+srcs "../../lib/shared/os.src"
+srcs "../../lib/shared/usb.src"
+srcs "../../lib/shared/setreadwritewatchpoint.src"
+srcs "../../lib/shared/abort.src"
+srcs "../../lib/shared/setbreakpoint.src"
+srcs "../../lib/shared/dzx7_standard.src"
+srcs "../../lib/shared/delay.src"
+srcs "../../lib/shared/frftoub.src"
+srcs "../../lib/shared/fpupop1.src"
+srcs "../../lib/shared/frimulu.src"
+srcs "../../lib/shared/ladd.src"
+srcs "../../lib/shared/atoi.src"
+srcs "../../lib/shared/idivs.src"
+srcs "../../lib/shared/isnan.src"
+srcs "../../lib/shared/case24d.src"
+srcs "../../lib/shared/isupper.src"
+srcs "../../lib/shared/memmove.src"
+srcs "../../lib/shared/frameset0.src"
+srcs "../../lib/shared/sneg.src"
+srcs "../../lib/shared/setjmp.src"
+srcs "../../lib/shared/strcspn.src"
+srcs "../../lib/shared/fpdiv.src"
+srcs "../../lib/shared/istiy.src"
+srcs "../../lib/shared/frstof.src"
+srcs "../../lib/shared/abs.src"
+srcs "../../lib/shared/frsmulu.src"
+srcs "../../lib/shared/strdup.src"
+srcs "../../lib/shared/sprintf.src"
+srcs "../../lib/shared/sldix.src"
+srcs "../../lib/shared/finite.src"
+srcs "../../lib/shared/lnot.src"
+srcs "../../lib/shared/imulu.src"
+srcs "../../lib/shared/setflag.src"
+srcs "../../lib/shared/iscntrl.src"
+srcs "../../lib/shared/fpupop2.src"
+srcs "../../lib/shared/ishrs.src"
+srcs "../../lib/shared/fpsub.src"
+srcs "../../lib/shared/fpmul.src"
+srcs "../../lib/shared/case24.src"
+srcs "../../lib/shared/isinf.src"
+srcs "../../lib/shared/bldix.src"
+srcs "../../lib/shared/ldiv.src"
+srcs "../../lib/shared/strcmp.src"
+srcs "../../lib/shared/strcasecmp.src"
+srcs "../../lib/shared/sand.src"
+srcs "../../lib/shared/strrchr.src"
+srcs "../../lib/shared/sshrs.src"
+srcs "../../lib/shared/tolower.src"
+srcs "../../lib/shared/isgraph.src"
+srcs "../../lib/shared/case8d.src"
+srcs "../../lib/shared/snot.src"
+srcs "../../lib/shared/round.src"
+srcs "../../lib/shared/seqcased.src"
+srcs "../../lib/shared/frbtof.src"
+srcs "../../lib/shared/fruitof.src"
+srcs "../../lib/shared/fritof.src"
+srcs "../../lib/shared/log2.src"
+srcs "../../lib/shared/fpultof.src"
+srcs "../../lib/shared/bshrs.src"
+srcs "../../lib/shared/seqcase.src"
+srcs "../../lib/shared/bremu.src"
+srcs "../../lib/shared/lmulu.src"
+srcs "../../lib/shared/strncmp.src"
+srcs "../../lib/shared/frbmuls.src"
+srcs "../../lib/shared/scmpzero.src"
+srcs "../../lib/shared/isxdigit.src"
+srcs "../../lib/shared/bdivs.src"
+srcs "../../lib/shared/strndup.src"
+srcs "../../lib/shared/memset.src"
+srcs "../../lib/shared/strncpy.src"
+srcs "../../lib/shared/itol.src"
+srcs "../../lib/shared/strstr.src"
+srcs "../../lib/shared/sdivs.src"
+srcs "../../lib/shared/lcmpu.src"
+srcs "../../lib/shared/case8.src"
+srcs "../../lib/shared/indcall.src"
+srcs "../../lib/shared/sqrtf.src"
+srcs "../../lib/shared/sstix.src"
+srcs "../../lib/shared/fpftol.src"
+srcs "../../lib/shared/rand.src"
+srcs "../../lib/shared/lstix.src"
+srcs "../../lib/shared/lrems.src"
+srcs "../../lib/shared/ildiy.src"
+srcs "../../lib/shared/lmuls.src"
+srcs "../../lib/shared/fppack.src"
+srcs "../../lib/shared/lor.src"
+srcs "../../lib/shared/icmpzero.src"
+srcs "../../lib/shared/strpbrk.src"
+srcs "../../lib/shared/sstiy.src"
+srcs "../../lib/shared/land.src"
+srcs "../../lib/shared/ldivu.src"
+srcs "../../lib/shared/frsmuls.src"
+srcs "../../lib/shared/strtok.src"
+srcs "../../lib/shared/iand.src"
+srcs "../../lib/shared/ldivs.src"
+srcs "../../lib/shared/ineg.src"
+srcs "../../lib/shared/stoi.src"
+srcs "../../lib/shared/sremu.src"
+srcs "../../lib/shared/sldiy.src"
+srcs "../../lib/shared/bstiy.src"
+srcs "../../lib/shared/memchr.src"
+srcs "../../lib/shared/ior.src"
+srcs "../../lib/shared/fpneg.src"
+srcs "../../lib/shared/isascii.src"
+srcs "../../lib/shared/lldix.src"
+srcs "../../lib/shared/smuls.src"
+srcs "../../lib/shared/smulu.src"
+srcs "../../lib/shared/isspace.src"
+srcs "../../lib/shared/frftous.src"
+srcs "../../lib/shared/sshl.src"
+srcs "../../lib/shared/sdivu.src"
+srcs "../../lib/shared/fpadd.src"
+srcs "../../lib/shared/lsub.src"
+srcs "../../lib/shared/bldiy.src"
+srcs "../../lib/shared/ixor.src"
+srcs "../../lib/shared/lstiy.src"
+srcs "../../lib/shared/srand.src"
+srcs "../../lib/shared/uldiv.src"
+srcs "../../lib/shared/frftos.src"
+srcs "../../lib/shared/frubtof.src"
+srcs "../../lib/shared/ishru.src"
+srcs "../../lib/shared/sshru.src"
+srcs "../../lib/shared/atos.src"
+srcs "../../lib/shared/iremu.src"
+srcs "../../lib/shared/lshrs.src"
+srcs "../../lib/shared/strspn.src"
+srcs "../../lib/shared/strnlen.src"
+srcs "../../lib/shared/bmuls.src"
+srcs "../../lib/shared/sor.src"
+srcs "../../lib/shared/imuls.src"
+srcs "../../lib/shared/fpltof.src"
+srcs "../../lib/shared/sxor.src"
+srcs "../../lib/shared/istix.src"
+srcs "../../lib/shared/bdivu.src"
+srcs "../../lib/shared/bshl.src"
+srcs "../../lib/shared/memcmp.src"
+srcs "../../lib/shared/srems.src"
+srcs "../../lib/shared/strchr.src"
+srcs "../../lib/shared/ildix.src"
+srcs "../../lib/shared/frustof.src"
+srcs "../../lib/shared/lneg.src"
+srcs "../../lib/shared/atol.src"
+srcs "../../lib/shared/longjmp.src"
+srcs "../../lib/shared/labs.src"
+srcs "../../lib/shared/memcpy.src"
+srcs "../../lib/shared/isalpha.src"
+srcs "../../lib/shared/bshru.src"
+srcs "../../lib/shared/isprint.src"
+srcs "../../lib/shared/strcat.src"
+srcs "../../lib/shared/div.src"
+srcs "../../lib/shared/isalnum.src"
+srcs "../../lib/shared/lshl.src"
+srcs "../../lib/shared/case16d.src"
+srcs "../../lib/shared/ispunct.src"
+srcs "../../lib/shared/toupper.src"
+srcs "../../lib/shared/frftoui.src"
+srcs "../../lib/shared/idivu.src"
+srcs "../../lib/shared/isdigit.src"
+srcs "../../lib/shared/sbrk.src"
+srcs "../../lib/shared/fpcmp.src"
+srcs "../../lib/shared/lcmpzero.src"
+srcs "../../lib/shared/stoiu.src"
+srcs "../../lib/shared/inot.src"
+srcs "../../lib/shared/frimuls.src"
+srcs "../../lib/shared/lcmps.src"
+srcs "../../lib/shared/irems.src"
+srcs "../../lib/shared/lldiy.src"
+srcs "../../lib/shared/ishl.src"
+srcs "../../lib/shared/strncat.src"
+srcs "../../lib/shared/bstix.src"
+srcs "../../lib/shared/lxor.src"
+srcs "../../lib/shared/lshru.src"
+srcs "../../lib/shared/bmulu.src"
+srcs "../../lib/shared/calloc.src"
+srcs "../../lib/shared/frftoi.src"
+srcs "../../lib/shared/islower.src"
+srcs "../../lib/shared/case16.src"
+srcs "../../lib/shared/frameset.src"
+srcs "../../lib/shared/strcpy.src"
+srcs "../../lib/shared/frftob.src"
+srcs "../../lib/shared/strncasecmp.src"
+srcs "../../lib/shared/brems.src"
+srcs "../../lib/shared/lremu.src"
+srcs "../../lib/shared/case.src"
+srcs "../../lib/shared/strlen.src"
+srcs "../../lib/shared/gamma.src"
+srcs "../../lib/shared/uuitoa.src"
+srcs "../../lib/shared/udtog.src"
+srcs "../../lib/shared/uscan.src"
+srcs "../../lib/shared/strtoul.src"
+srcs "../../lib/shared/print_sputch.src"
+srcs "../../lib/shared/print_putch.src"
+srcs "../../lib/shared/strtol.src"
+srcs "../../lib/shared/bsearch.src"
+srcs "../../lib/shared/vsprintf.src"
+srcs "../../lib/shared/print_putstring.src"
+srcs "../../lib/shared/ustoa.src"
+srcs "../../lib/shared/maptab.src"
+srcs "../../lib/shared/ultoa.src"
+srcs "../../lib/shared/usscan.src"
+srcs "../../lib/shared/udtof.src"
+srcs "../../lib/shared/realloc.src"
+srcs "../../lib/shared/free.src"
+srcs "../../lib/shared/udtoe.src"
+srcs "../../lib/shared/uitoa.src"
+srcs "../../lib/shared/qsort.src"
+srcs "../../lib/shared/fpdata.src"
+srcs "../../lib/shared/uustoa.src"
+srcs "../../lib/shared/upscan.src"
+srcs "../../lib/shared/malloc.src"
+srcs "../../lib/shared/uprint.src"
+srcs "../../lib/shared/ureverse.src"
+srcs "../../lib/shared/uultoa.src"
+srcs "../../lib/shared/print_globals.src"
+srcs "../../lib/fileio/files.src"
+srcs "../../lib/fileio/fclose.src"
+srcs "../../lib/fileio/feof.src"
+srcs "../../lib/fileio/fopen.src"
+srcs "../../lib/fileio/fwrite.src"
+srcs "../../lib/fileio/ftell.src"
+srcs "../../lib/fileio/fputs.src"
+srcs "../../lib/fileio/fgets.src"
+srcs "../../lib/fileio/remove.src"
+srcs "../../lib/fileio/fputc.src"
+srcs "../../lib/fileio/fgetc.src"
+srcs "../../lib/fileio/fread.src"
+srcs "../../lib/fileio/fseek.src"
diff --git a/frontends/calculator/CEdev/include/.makefile b/frontends/calculator/CEdev/include/.makefile index 8bc89e6..c6f243c 100644 --- a/frontends/calculator/CEdev/include/.makefile +++ b/frontends/calculator/CEdev/include/.makefile @@ -1,213 +1,213 @@ -#---------------------------- -# Core C Makefile -#---------------------------- -CLEANUP ?= YES -BSSHEAP_LOW ?= D031F6 -BSSHEAP_HIGH ?= D13FD6 -STACK_HIGH ?= D1A87E -INIT_LOC ?= D1A87F -USE_FLASH_FUNCTIONS ?= YES -OUTPUT_MAP ?= YES -ARCHIVED ?= NO -OPT_MODE ?= -optsize -#---------------------------- -SRCDIR ?= src -OBJDIR ?= obj -BINDIR ?= bin -GFXDIR ?= src/gfx -#---------------------------- - -VERSION := 8.5 - -#---------------------------- -# try not to edit anything below these lines unless you know what you are doing -#---------------------------- - -#---------------------------- - -# define some common makefile things -empty := -space := $(empty) $(empty) -comma := , - -TARGET ?= $(NAME) -ICONPNG ?= $(ICON) -DEBUGMODE = NDEBUG -CCDEBUGFLAG = -nodebug - -# verbosity -V ?= 0 -ifeq ($(V),0) -Q = @ -else -Q = -endif - -# get the os specific items -ifeq ($(OS),Windows_NT) -SHELL := cmd.exe -MAKEDIR := $(CURDIR) -NATIVEPATH = $(subst /,\,$1) -WINPATH = $(NATIVEPATH) -WINRELPATH = $(subst /,\,$1) -RM = del /q /f 2>nul -CEDEV ?= $(call NATIVEPATH,$(realpath ..\..)) -BIN ?= $(call NATIVEPATH,$(CEDEV)/bin) -LD = $(call NATIVEPATH,$(BIN)/fasmg.exe) -CC = $(call NATIVEPATH,$(BIN)/ez80cc.exe) -CV = $(call NATIVEPATH,$(BIN)/convhex.exe) -PG = $(call NATIVEPATH,$(BIN)/convpng.exe) -CD = cd -CP = copy /y -MV = move /y >nul -NULL = >nul 2>&1 -RMDIR = call && (if exist $1 rmdir /s /q $1) -MKDIR = call && (if not exist $1 mkdir $1) -QUOTE_ARG = "$(subst ",',$1)"#' -TO_LOWER = $1 -else -MAKEDIR := $(CURDIR) -NATIVEPATH = $(subst \,/,$1) -WINPATH = $(shell winepath -w $1) -WINRELPATH = $(subst /,\,$1) -RM = rm -f -CEDEV ?= $(call NATIVEPATH,$(realpath ..\..)) -BIN ?= $(call NATIVEPATH,$(CEDEV)/bin) -CC = $(call NATIVEPATH,wine "$(BIN)/ez80cc.exe") -LD = $(call NATIVEPATH,$(BIN)/fasmg) -CV = $(call NATIVEPATH,$(BIN)/convhex) -PG = $(call NATIVEPATH,$(BIN)/convpng) -CD = cd -CP = cp -MV = mv -RMDIR = rm -rf $1 -MKDIR = mkdir -p $1 -QUOTE_ARG = '$(subst ','\'',$1)'#' -TO_LOWER = $(shell printf %s $(call QUOTE_ARG,$1) | tr [:upper:] [:lower:]) -endif -FASMG_FILES = $(subst $(space),$(comma) ,$(patsubst %,"%",$(subst ",\",$(subst \,\\,$(call NATIVEPATH,$1)))))#" - -# ensure native paths -SRCDIR := $(call NATIVEPATH,$(SRCDIR)) -OBJDIR := $(call NATIVEPATH,$(OBJDIR)) -BINDIR := $(call NATIVEPATH,$(BINDIR)) -GFXDIR := $(call NATIVEPATH,$(GFXDIR)) - -# generate default names -TARGETBIN := $(TARGET).bin -TARGETMAP := $(TARGET).map -TARGET8XP := $(TARGET).8xp -ICON_ASM := iconc.src - -# init conditionals -F_STARTUP := $(call NATIVEPATH,$(CEDEV)/lib/cstartup.src) -F_LAUNCHER := $(call NATIVEPATH,$(CEDEV)/lib/libheader.src) -F_CLEANUP := $(call NATIVEPATH,$(CEDEV)/lib/ccleanup.src) - -# source: http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html -rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)$(filter $(subst *,%,$2),$d)) - -# find all of the available C, H and ASM files (Remember, you can create C <-> assembly routines easily this way) -CSOURCES := $(call rwildcard,$(SRCDIR),*.c) -CPPSOURCES := $(call rwildcard,$(SRCDIR),*.cpp) -USERHEADERS := $(call rwildcard,$(SRCDIR),*.h *.hpp) -ASMSOURCES := $(call rwildcard,$(SRCDIR),*.asm) - -# create links for later -LINK_CSOURCES := $(CSOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.src) -LINK_CPPSOURCES := $(CPPSOURCES:$(SRCDIR)/%=$(OBJDIR)/%.src) -LINK_ASMSOURCES := $(ASMSOURCES) - -# files created to be used for linking -LINK_FILES := $(LINK_CSOURCES) $(LINK_CPPSOURCES) $(LINK_ASMSOURCES) -LINK_LIBS := $(wildcard $(CEDEV)/lib/libload/*.lib) -LINK_LIBLOAD := $(CEDEV)/lib/libload.lib - -# check if there is an icon present that we can convert; if so, generate a recipe to build it properly -ifneq ("$(wildcard $(ICONPNG))","") -F_ICON := $(OBJDIR)/$(ICON_ASM) -ICON_CONV := $(PG) -c $(ICONPNG)$(comma)$(call NATIVEPATH,$(F_ICON))$(comma)$(DESCRIPTION) -LINK_ICON = , $(call FASMG_FILES,$(F_ICON)) used -endif - -# determine if output should be archived or compressed -ifeq ($(ARCHIVED),YES) -CVFLAGS += -a -endif -ifeq ($(COMPRESSED),YES) -CVFLAGS += -x -endif -ifeq ($(CLEANUP),YES) -LINK_CLEANUP = , $(call FASMG_FILES,$(F_CLEANUP)) used -endif -ifeq ($(OUTPUT_MAP),YES) -LDMAPFLAG = -i map -endif - -# choose static or linked flash functions -ifeq ($(USE_FLASH_FUNCTIONS),YES) -STATIC := 0 -else -STATIC := 1 -endif - -# define the C flags used by the Zilog compiler -CFLAGS ?= \ - -noasm $(CCDEBUGFLAG) -nogenprint -keepasm -quiet $(OPT_MODE) -cpu:EZ80F91 -noreduceopt -nolistinc -nomodsect -define:_EZ80F91 -define:_EZ80 -define:$(DEBUGMODE) - -# these are the linker flags, basically organized to properly set up the environment -LDFLAGS ?= \ - $(call QUOTE_ARG,$(call NATIVEPATH,$(CEDEV)/include/fasmg-ez80/ld.fasmg)) \ - -i $(call QUOTE_ARG,include $(call FASMG_FILES,$(CEDEV)/include/.linker_script)) \ - $(LDDEBUGFLAG) \ - $(LDMAPFLAG) \ - -i $(call QUOTE_ARG,range bss $$$(BSSHEAP_LOW) : $$$(BSSHEAP_HIGH)) \ - -i $(call QUOTE_ARG,symbol __stack = $$$(STACK_HIGH)) \ - -i $(call QUOTE_ARG,locate header at $$$(INIT_LOC)) \ - -i $(call QUOTE_ARG,STATIC := $(STATIC)) \ - -i $(call QUOTE_ARG,srcs $(call FASMG_FILES,$(F_LAUNCHER)) used if libs.length$(LINK_ICON)$(LINK_CLEANUP)$(comma) $(call FASMG_FILES,$(F_STARTUP)) used$(comma) $(call FASMG_FILES,$(LINK_FILES))) \ - -i $(call QUOTE_ARG,libs $(call FASMG_FILES,$(LINK_LIBLOAD)) used if libs.length$(comma) $(call FASMG_FILES,$(LINK_LIBS))) - -# this rule is trigged to build everything -all: dirs $(BINDIR)/$(TARGET8XP) ; - -# this rule is trigged to build debug everything -debug: LDDEBUGFLAG = -i dbg -debug: DEBUGMODE = DEBUG -debug: CCDEBUGFLAG = -debug -debug: dirs $(BINDIR)/$(TARGET8XP) ; - -dirs: - @echo C CE SDK Version $(VERSION) && \ - $(call MKDIR,$(BINDIR)) && \ - $(call MKDIR,$(OBJDIR)) - -$(BINDIR)/$(TARGET8XP): $(BINDIR)/$(TARGETBIN) - $(Q)$(CD) $(BINDIR) && \ - $(CV) $(CVFLAGS) $(notdir $<) $(notdir $@) - -$(BINDIR)/$(TARGETBIN): $(LINK_FILES) $(F_ICON) - $(Q)$(LD) $(LDFLAGS) $@ - -# this rule handles conversion of the icon, if it is ever updated -$(OBJDIR)/$(ICON_ASM): $(ICONPNG) - $(Q)$(ICON_CONV) - -# these rules compile the source files into object files -$(OBJDIR)/%.src: $(SRCDIR)/%.c $(USERHEADERS) - $(Q)$(call MKDIR,$(call NATIVEPATH,$(@D))) && \ - $(CC) $(CFLAGS) $(call QUOTE_ARG,$(call WINPATH,$(addprefix $(MAKEDIR)/,$<))) && \ - $(MV) $(call QUOTE_ARG,$(call TO_LOWER,$(@F))) $(call QUOTE_ARG,$@) - -clean: - $(Q)$(call RMDIR,$(OBJDIR)) - $(Q)$(call RMDIR,$(BINDIR)) - @echo Cleaned build files. - -gfx: - $(Q)$(CD) $(GFXDIR) && convpng - -version: - @echo C SDK Version $(VERSION) - -.PHONY: all clean version gfx dirs debug +#----------------------------
+# Core C Makefile
+#----------------------------
+CLEANUP ?= YES
+BSSHEAP_LOW ?= D031F6
+BSSHEAP_HIGH ?= D13FD6
+STACK_HIGH ?= D1A87E
+INIT_LOC ?= D1A87F
+USE_FLASH_FUNCTIONS ?= YES
+OUTPUT_MAP ?= YES
+ARCHIVED ?= NO
+OPT_MODE ?= -optsize
+#----------------------------
+SRCDIR ?= src
+OBJDIR ?= obj
+BINDIR ?= bin
+GFXDIR ?= src/gfx
+#----------------------------
+
+VERSION := 8.5
+
+#----------------------------
+# try not to edit anything below these lines unless you know what you are doing
+#----------------------------
+
+#----------------------------
+
+# define some common makefile things
+empty :=
+space := $(empty) $(empty)
+comma := ,
+
+TARGET ?= $(NAME)
+ICONPNG ?= $(ICON)
+DEBUGMODE = NDEBUG
+CCDEBUGFLAG = -nodebug
+
+# verbosity
+V ?= 0
+ifeq ($(V),0)
+Q = @
+else
+Q =
+endif
+
+# get the os specific items
+ifeq ($(OS),Windows_NT)
+SHELL := cmd.exe
+MAKEDIR := $(CURDIR)
+NATIVEPATH = $(subst /,\,$1)
+WINPATH = $(NATIVEPATH)
+WINRELPATH = $(subst /,\,$1)
+RM = del /q /f 2>nul
+CEDEV ?= $(call NATIVEPATH,$(realpath ..\..))
+BIN ?= $(call NATIVEPATH,$(CEDEV)/bin)
+LD = $(call NATIVEPATH,$(BIN)/fasmg.exe)
+CC = $(call NATIVEPATH,$(BIN)/ez80cc.exe)
+CV = $(call NATIVEPATH,$(BIN)/convhex.exe)
+PG = $(call NATIVEPATH,$(BIN)/convpng.exe)
+CD = cd
+CP = copy /y
+MV = move /y >nul
+NULL = >nul 2>&1
+RMDIR = call && (if exist $1 rmdir /s /q $1)
+MKDIR = call && (if not exist $1 mkdir $1)
+QUOTE_ARG = "$(subst ",',$1)"#'
+TO_LOWER = $1
+else
+MAKEDIR := $(CURDIR)
+NATIVEPATH = $(subst \,/,$1)
+WINPATH = $(shell winepath -w $1)
+WINRELPATH = $(subst /,\,$1)
+RM = rm -f
+CEDEV ?= $(call NATIVEPATH,$(realpath ..\..))
+BIN ?= $(call NATIVEPATH,$(CEDEV)/bin)
+CC = $(call NATIVEPATH,wine "$(BIN)/ez80cc.exe")
+LD = $(call NATIVEPATH,$(BIN)/fasmg)
+CV = $(call NATIVEPATH,$(BIN)/convhex)
+PG = $(call NATIVEPATH,$(BIN)/convpng)
+CD = cd
+CP = cp
+MV = mv
+RMDIR = rm -rf $1
+MKDIR = mkdir -p $1
+QUOTE_ARG = '$(subst ','\'',$1)'#'
+TO_LOWER = $(shell printf %s $(call QUOTE_ARG,$1) | tr [:upper:] [:lower:])
+endif
+FASMG_FILES = $(subst $(space),$(comma) ,$(patsubst %,"%",$(subst ",\",$(subst \,\\,$(call NATIVEPATH,$1)))))#"
+
+# ensure native paths
+SRCDIR := $(call NATIVEPATH,$(SRCDIR))
+OBJDIR := $(call NATIVEPATH,$(OBJDIR))
+BINDIR := $(call NATIVEPATH,$(BINDIR))
+GFXDIR := $(call NATIVEPATH,$(GFXDIR))
+
+# generate default names
+TARGETBIN := $(TARGET).bin
+TARGETMAP := $(TARGET).map
+TARGET8XP := $(TARGET).8xp
+ICON_ASM := iconc.src
+
+# init conditionals
+F_STARTUP := $(call NATIVEPATH,$(CEDEV)/lib/cstartup.src)
+F_LAUNCHER := $(call NATIVEPATH,$(CEDEV)/lib/libheader.src)
+F_CLEANUP := $(call NATIVEPATH,$(CEDEV)/lib/ccleanup.src)
+
+# source: http://blog.jgc.org/2011/07/gnu-make-recursive-wildcard-function.html
+rwildcard = $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)$(filter $(subst *,%,$2),$d))
+
+# find all of the available C, H and ASM files (Remember, you can create C <-> assembly routines easily this way)
+CSOURCES := $(call rwildcard,$(SRCDIR),*.c)
+CPPSOURCES := $(call rwildcard,$(SRCDIR),*.cpp)
+USERHEADERS := $(call rwildcard,$(SRCDIR),*.h *.hpp)
+ASMSOURCES := $(call rwildcard,$(SRCDIR),*.asm)
+
+# create links for later
+LINK_CSOURCES := $(CSOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.src)
+LINK_CPPSOURCES := $(CPPSOURCES:$(SRCDIR)/%=$(OBJDIR)/%.src)
+LINK_ASMSOURCES := $(ASMSOURCES)
+
+# files created to be used for linking
+LINK_FILES := $(LINK_CSOURCES) $(LINK_CPPSOURCES) $(LINK_ASMSOURCES)
+LINK_LIBS := $(wildcard $(CEDEV)/lib/libload/*.lib)
+LINK_LIBLOAD := $(CEDEV)/lib/libload.lib
+
+# check if there is an icon present that we can convert; if so, generate a recipe to build it properly
+ifneq ("$(wildcard $(ICONPNG))","")
+F_ICON := $(OBJDIR)/$(ICON_ASM)
+ICON_CONV := $(PG) -c $(ICONPNG)$(comma)$(call NATIVEPATH,$(F_ICON))$(comma)$(DESCRIPTION)
+LINK_ICON = , $(call FASMG_FILES,$(F_ICON)) used
+endif
+
+# determine if output should be archived or compressed
+ifeq ($(ARCHIVED),YES)
+CVFLAGS += -a
+endif
+ifeq ($(COMPRESSED),YES)
+CVFLAGS += -x
+endif
+ifeq ($(CLEANUP),YES)
+LINK_CLEANUP = , $(call FASMG_FILES,$(F_CLEANUP)) used
+endif
+ifeq ($(OUTPUT_MAP),YES)
+LDMAPFLAG = -i map
+endif
+
+# choose static or linked flash functions
+ifeq ($(USE_FLASH_FUNCTIONS),YES)
+STATIC := 0
+else
+STATIC := 1
+endif
+
+# define the C flags used by the Zilog compiler
+CFLAGS ?= \
+ -noasm $(CCDEBUGFLAG) -nogenprint -keepasm -quiet $(OPT_MODE) -cpu:EZ80F91 -noreduceopt -nolistinc -nomodsect -define:_EZ80F91 -define:_EZ80 -define:$(DEBUGMODE)
+
+# these are the linker flags, basically organized to properly set up the environment
+LDFLAGS ?= \
+ $(call QUOTE_ARG,$(call NATIVEPATH,$(CEDEV)/include/fasmg-ez80/ld.fasmg)) \
+ -i $(call QUOTE_ARG,include $(call FASMG_FILES,$(CEDEV)/include/.linker_script)) \
+ $(LDDEBUGFLAG) \
+ $(LDMAPFLAG) \
+ -i $(call QUOTE_ARG,range bss $$$(BSSHEAP_LOW) : $$$(BSSHEAP_HIGH)) \
+ -i $(call QUOTE_ARG,symbol __stack = $$$(STACK_HIGH)) \
+ -i $(call QUOTE_ARG,locate header at $$$(INIT_LOC)) \
+ -i $(call QUOTE_ARG,STATIC := $(STATIC)) \
+ -i $(call QUOTE_ARG,srcs $(call FASMG_FILES,$(F_LAUNCHER)) used if libs.length$(LINK_ICON)$(LINK_CLEANUP)$(comma) $(call FASMG_FILES,$(F_STARTUP)) used$(comma) $(call FASMG_FILES,$(LINK_FILES))) \
+ -i $(call QUOTE_ARG,libs $(call FASMG_FILES,$(LINK_LIBLOAD)) used if libs.length$(comma) $(call FASMG_FILES,$(LINK_LIBS)))
+
+# this rule is trigged to build everything
+all: dirs $(BINDIR)/$(TARGET8XP) ;
+
+# this rule is trigged to build debug everything
+debug: LDDEBUGFLAG = -i dbg
+debug: DEBUGMODE = DEBUG
+debug: CCDEBUGFLAG = -debug
+debug: dirs $(BINDIR)/$(TARGET8XP) ;
+
+dirs:
+ @echo C CE SDK Version $(VERSION) && \
+ $(call MKDIR,$(BINDIR)) && \
+ $(call MKDIR,$(OBJDIR))
+
+$(BINDIR)/$(TARGET8XP): $(BINDIR)/$(TARGETBIN)
+ $(Q)$(CD) $(BINDIR) && \
+ $(CV) $(CVFLAGS) $(notdir $<) $(notdir $@)
+
+$(BINDIR)/$(TARGETBIN): $(LINK_FILES) $(F_ICON)
+ $(Q)$(LD) $(LDFLAGS) $@
+
+# this rule handles conversion of the icon, if it is ever updated
+$(OBJDIR)/$(ICON_ASM): $(ICONPNG)
+ $(Q)$(ICON_CONV)
+
+# these rules compile the source files into object files
+$(OBJDIR)/%.src: $(SRCDIR)/%.c $(USERHEADERS)
+ $(Q)$(call MKDIR,$(call NATIVEPATH,$(@D))) && \
+ $(CC) $(CFLAGS) $(call QUOTE_ARG,$(call WINPATH,$(addprefix $(MAKEDIR)/,$<))) && \
+ $(MV) $(call QUOTE_ARG,$(call TO_LOWER,$(@F))) $(call QUOTE_ARG,$@)
+
+clean:
+ $(Q)$(call RMDIR,$(OBJDIR))
+ $(Q)$(call RMDIR,$(BINDIR))
+ @echo Cleaned build files.
+
+gfx:
+ $(Q)$(CD) $(GFXDIR) && convpng
+
+version:
+ @echo C SDK Version $(VERSION)
+
+.PHONY: all clean version gfx dirs debug
diff --git a/frontends/calculator/CEdev/include/assert.h b/frontends/calculator/CEdev/include/assert.h index 04c3a34..0341a98 100644 --- a/frontends/calculator/CEdev/include/assert.h +++ b/frontends/calculator/CEdev/include/assert.h @@ -1,19 +1,19 @@ -#include <debug.h> -#include <stdio.h> -#include <stdlib.h> - -#ifdef assert -#undef assert -#endif - -#ifdef NDEBUG -#define assert(ignore) ((void)0) -#else -#define assert(e) \ - do { \ - if (!(e)) { \ - dbg_sprintf(dbgout, "Assertion failure: %s, file: %s, line %d\n", #e, __FILE__, __LINE__); \ - abort(); \ - } \ - } while (0) -#endif +#include <debug.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef assert
+#undef assert
+#endif
+
+#ifdef NDEBUG
+#define assert(ignore) ((void)0)
+#else
+#define assert(e) \
+ do { \
+ if (!(e)) { \
+ dbg_sprintf(dbgout, "Assertion failure: %s, file: %s, line %d\n", #e, __FILE__, __LINE__); \
+ abort(); \
+ } \
+ } while (0)
+#endif
diff --git a/frontends/calculator/CEdev/include/compression.h b/frontends/calculator/CEdev/include/compression.h index 234d25d..89754c9 100644 --- a/frontends/calculator/CEdev/include/compression.h +++ b/frontends/calculator/CEdev/include/compression.h @@ -1,27 +1,27 @@ -/** - * @file - * @author Matt "MateoConLechuga" Waltz - * @brief Optimized (de)compression routines - */ - -#ifndef COMPRESSION_H -#define COMPRESSION_H - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * Decompress a block of zx7 encoded data - * - * @param dest Pointer to destination for uncompressed data - * @param src Pointer to compressed data -*/ -void zx7_Decompress(void *dest, void *src); - -#ifdef __cplusplus -} -#endif - -#endif - +/**
+ * @file
+ * @author Matt "MateoConLechuga" Waltz
+ * @brief Optimized (de)compression routines
+ */
+
+#ifndef COMPRESSION_H
+#define COMPRESSION_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Decompress a block of zx7 encoded data
+ *
+ * @param dest Pointer to destination for uncompressed data
+ * @param src Pointer to compressed data
+*/
+void zx7_Decompress(void *dest, void *src);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/frontends/calculator/CEdev/include/ctype.h b/frontends/calculator/CEdev/include/ctype.h index 215dae0..29301aa 100644 --- a/frontends/calculator/CEdev/include/ctype.h +++ b/frontends/calculator/CEdev/include/ctype.h @@ -1,30 +1,30 @@ -#ifndef CTYPE_H -#define CTYPE_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define TRUE 1 -#define FALSE 0 - -int isalnum(int c); -int isalpha(int c); -int iscntrl(int c); -int isdigit(int c); -int isgraph(int c); -int islower(int c); -int isprint(int c); -int ispunct(int c); -int isspace(int c); -int isupper(int c); -int tolower(int c); -int toupper(int c); -int isascii(int c); -int isxdigit(int c); - -#ifdef __cplusplus -} -#endif - -#endif +#ifndef CTYPE_H
+#define CTYPE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define TRUE 1
+#define FALSE 0
+
+int isalnum(int c);
+int isalpha(int c);
+int iscntrl(int c);
+int isdigit(int c);
+int isgraph(int c);
+int islower(int c);
+int isprint(int c);
+int ispunct(int c);
+int isspace(int c);
+int isupper(int c);
+int tolower(int c);
+int toupper(int c);
+int isascii(int c);
+int isxdigit(int c);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/debug.h b/frontends/calculator/CEdev/include/debug.h index aabbd41..bb20b94 100644 --- a/frontends/calculator/CEdev/include/debug.h +++ b/frontends/calculator/CEdev/include/debug.h @@ -1,124 +1,124 @@ -/** - * @file - * @author Matt "MateoConLechuga" Waltz - * @brief Contains useful debugging features for use with the integrated CEmu debugger - */ - -#include <stdio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * void dbg_sprintf(out, const char *format, ...) - * - * @brief Use to print to the emulator console. - * - * See the syntax for 'printf' for more information - * @param out Can be dbgout (black) or dbgerr (red) - * @param format Uses printf-formated specifier string - * @def dbg_sprintf - */ - -/** - * void dbg_ClearConsole(void) - * - * @brief Clears the emulator's console screen. - * @def dbg_ClearConsole - */ - -#ifndef NDEBUG - -/** - * Opens the emulator debugger - */ -void dbg_Debugger(void); - -/** - * Sets an emulated breakpoint at a particular address - * - * @param address The address of the breakpoint to remove - */ -void dbg_SetBreakpoint(void *address); - -/** - * Removes an emulated breakpoint at a particular address - * - * @param address The address of the breakpoint to remove - */ -void dbg_RemoveBreakpoint(void *address); - -/** - * Sets an emulated empty watchpoint at a particular address - * - * @param address The address of the watchpoint to set - * @param length The size of the data at the address (values 1-4) - */ -void dbg_SetWatchpoint(void *address, unsigned int length); - -/** - * Sets an emulated read watchpoint at a particular address - * - * @param address The address of the watchpoint to set - * @param length The size of the data at the address (values 1-4) - */ -void dbg_SetReadWatchpoint(void *address, unsigned int length); - -/** - * Sets an emulated write watchpoint at a particular address - * - * @param address The address of the watchpoint to set - * @param length The size of the data at the address (values 1-4) - */ -void dbg_SetWriteWatchpoint(void *address, unsigned int length); - -/** - * Sets an emulated read/write watchpoint at a particular address - * - * @param address The address of the watchpoint to set - * @param length The size of the data at the address (values 1-4) - */ -void dbg_SetReadWriteWatchpoint(void *address, unsigned int length); - -/** - * Removes an emulated watchpoint at a particular address - * - * @param address The address of the watchpoint to remove - */ -void dbg_RemoveWatchpoint(void *address); - -/** - * Removes all emulated watchpoints - */ -void dbg_RemoveAllWatchpoints(void); - -/** - * Removes all emulated breakpoints - */ -void dbg_RemoveAllBreakpoints(void); - -#define dbgout ((char*)0xFB0000) /**< Standard debug output */ -#define dbgerr ((char*)0xFC0000) /**< Error debug output */ -#define dbg_sprintf sprintf -#define dbg_ClearConsole() (*(unsigned char*)0xFD0000 = 1) -#else -#define dbg_Debugger(ignore) ((void)0) -#define dbg_SetBreakpoint(ignore) ((void)0) -#define dbg_RemoveBreakpoint(ignore) ((void)0) -#define dbg_SetWatchpoint(ignore,ignore) ((void)0) -#define dbg_SetReadWatchpoint(ignore,ignore) ((void)0) -#define dbg_SetWriteWatchpoint(ignore,ignore) ((void)0) -#define dbg_SetReadWriteWatchpoint(ignore,ignore) ((void)0) -#define dbg_RemoveWatchpoint(ignore) ((void)0) -#define dbg_RemoveAllWatchpoints(ignore) ((void)0) -#define dbg_RemoveAllBreakpoints(ignore) ((void)0) -#define dbg_sprintf if(0)(void) -#define dbg_ClearConsole(ignore) ((void)0) -#define dbgout (NULL) -#define dbgerr (NULL) -#endif - -#ifdef __cplusplus -} -#endif +/**
+ * @file
+ * @author Matt "MateoConLechuga" Waltz
+ * @brief Contains useful debugging features for use with the integrated CEmu debugger
+ */
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * void dbg_sprintf(out, const char *format, ...)
+ *
+ * @brief Use to print to the emulator console.
+ *
+ * See the syntax for 'printf' for more information
+ * @param out Can be dbgout (black) or dbgerr (red)
+ * @param format Uses printf-formated specifier string
+ * @def dbg_sprintf
+ */
+
+/**
+ * void dbg_ClearConsole(void)
+ *
+ * @brief Clears the emulator's console screen.
+ * @def dbg_ClearConsole
+ */
+
+#ifndef NDEBUG
+
+/**
+ * Opens the emulator debugger
+ */
+void dbg_Debugger(void);
+
+/**
+ * Sets an emulated breakpoint at a particular address
+ *
+ * @param address The address of the breakpoint to remove
+ */
+void dbg_SetBreakpoint(void *address);
+
+/**
+ * Removes an emulated breakpoint at a particular address
+ *
+ * @param address The address of the breakpoint to remove
+ */
+void dbg_RemoveBreakpoint(void *address);
+
+/**
+ * Sets an emulated empty watchpoint at a particular address
+ *
+ * @param address The address of the watchpoint to set
+ * @param length The size of the data at the address (values 1-4)
+ */
+void dbg_SetWatchpoint(void *address, unsigned int length);
+
+/**
+ * Sets an emulated read watchpoint at a particular address
+ *
+ * @param address The address of the watchpoint to set
+ * @param length The size of the data at the address (values 1-4)
+ */
+void dbg_SetReadWatchpoint(void *address, unsigned int length);
+
+/**
+ * Sets an emulated write watchpoint at a particular address
+ *
+ * @param address The address of the watchpoint to set
+ * @param length The size of the data at the address (values 1-4)
+ */
+void dbg_SetWriteWatchpoint(void *address, unsigned int length);
+
+/**
+ * Sets an emulated read/write watchpoint at a particular address
+ *
+ * @param address The address of the watchpoint to set
+ * @param length The size of the data at the address (values 1-4)
+ */
+void dbg_SetReadWriteWatchpoint(void *address, unsigned int length);
+
+/**
+ * Removes an emulated watchpoint at a particular address
+ *
+ * @param address The address of the watchpoint to remove
+ */
+void dbg_RemoveWatchpoint(void *address);
+
+/**
+ * Removes all emulated watchpoints
+ */
+void dbg_RemoveAllWatchpoints(void);
+
+/**
+ * Removes all emulated breakpoints
+ */
+void dbg_RemoveAllBreakpoints(void);
+
+#define dbgout ((char*)0xFB0000) /**< Standard debug output */
+#define dbgerr ((char*)0xFC0000) /**< Error debug output */
+#define dbg_sprintf sprintf
+#define dbg_ClearConsole() (*(unsigned char*)0xFD0000 = 1)
+#else
+#define dbg_Debugger(ignore) ((void)0)
+#define dbg_SetBreakpoint(ignore) ((void)0)
+#define dbg_RemoveBreakpoint(ignore) ((void)0)
+#define dbg_SetWatchpoint(ignore,ignore) ((void)0)
+#define dbg_SetReadWatchpoint(ignore,ignore) ((void)0)
+#define dbg_SetWriteWatchpoint(ignore,ignore) ((void)0)
+#define dbg_SetReadWriteWatchpoint(ignore,ignore) ((void)0)
+#define dbg_RemoveWatchpoint(ignore) ((void)0)
+#define dbg_RemoveAllWatchpoints(ignore) ((void)0)
+#define dbg_RemoveAllBreakpoints(ignore) ((void)0)
+#define dbg_sprintf if(0)(void)
+#define dbg_ClearConsole(ignore) ((void)0)
+#define dbgout (NULL)
+#define dbgerr (NULL)
+#endif
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/frontends/calculator/CEdev/include/decompress.h b/frontends/calculator/CEdev/include/decompress.h index 451008b..1fdfa1e 100644 --- a/frontends/calculator/CEdev/include/decompress.h +++ b/frontends/calculator/CEdev/include/decompress.h @@ -1,23 +1,23 @@ -/** - * @file - * @author Matt "MateoConLechuga" Waltz - * @brief Optimized decompression routines - */ - -#ifndef DECOMPRESS_H -#define DECOMPRESS_H - -#ifdef __cplusplus -extern "C" { -#endif - -#warning compatibility defines (do not use) -void dzx7_Turbo(void *src, void *dst); -void dzx7_Standard(void *src, void *dst); - -#ifdef __cplusplus -} -#endif - -#endif - +/**
+ * @file
+ * @author Matt "MateoConLechuga" Waltz
+ * @brief Optimized decompression routines
+ */
+
+#ifndef DECOMPRESS_H
+#define DECOMPRESS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#warning compatibility defines (do not use)
+void dzx7_Turbo(void *src, void *dst);
+void dzx7_Standard(void *src, void *dst);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/frontends/calculator/CEdev/include/errno.h b/frontends/calculator/CEdev/include/errno.h index f72dfef..0e397bf 100644 --- a/frontends/calculator/CEdev/include/errno.h +++ b/frontends/calculator/CEdev/include/errno.h @@ -1,15 +1,15 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef ERRNO_H -#define ERRNO_H - -#define ERR_NOR 1 /* read not allowed for file */ -#define ERR_NOW 2 /* write not allowed for file */ -#define ERR_IO 3 /* io error */ -#define EDOM 4 /* domain error */ -#define ERANGE 5 /* range error */ -extern int errno; -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef ERRNO_H
+#define ERRNO_H
+
+#define ERR_NOR 1 /* read not allowed for file */
+#define ERR_NOW 2 /* write not allowed for file */
+#define ERR_IO 3 /* io error */
+#define EDOM 4 /* domain error */
+#define ERANGE 5 /* range error */
+extern int errno;
+#endif
diff --git a/frontends/calculator/CEdev/include/fasmg-ez80/ez80.inc b/frontends/calculator/CEdev/include/fasmg-ez80/ez80.inc index 6e8e005..73c2175 100644 --- a/frontends/calculator/CEdev/include/fasmg-ez80/ez80.inc +++ b/frontends/calculator/CEdev/include/fasmg-ez80/ez80.inc @@ -1,862 +1,862 @@ -define @ez80 @ez80 -macro @ez80.suffix @l, @il* - @ez80.l = @l - @ez80.il = @il - @ez80.lil = @ez80.l or @ez80.il shl 1 - @ez80.pre = @ez80.lil or @ez80.lil shl 3 or 100o -end macro -macro @ez80.byte @values*& - db @values -end macro -macro @ez80.offset @value* - local value - value = @value - if elementsof value - err 'invalid offset' - else if value < -200o | 200o <= value - err 'offset is out of range' - end if - db value -end macro -macro @ez80.word @value* - local value - value = @value - if elementsof value - err 'invalid immediate' - end if - emit word + @ez80.il: @value -end macro -macro @ez80.idxpre @regs*& - local pre - iterate @reg, @regs - pre = @reg metadata 1 scale 1 - if pre > 300o - @ez80.byte pre - break - end if - end iterate -end macro -macro @ez80.idxoff @reg* - local reg - reg = @reg - if reg metadata 1 scale 1 > 300o - @ez80.offset @reg scale 0 - else if reg scale 0 - err 'invalid arguments' - end if -end macro -macro @ez80.emit @values*& - if defined @ez80.pre - db @ez80.pre - end if - iterate @value, @values - @ez80.@value - end iterate -end macro -macro @ez80.nest @inst*& - if defined @ez80.pre - @ez80.pre =: @ez80.pre - end if - @inst -end macro -macro @ez80.check @ind*, @expr& - match @left ) @right, <@expr> - match @ ( @mid, <@left> - @ez80.check @ind, @mid @right - else - @ind =: 0 - end match - else - @ind =: 1 - end match -end macro -macro @ez80.classify @val, @ind*, @arg& - match, @arg - @ind =: 0 - else - @val =: @arg - match ( @ ), @arg - @ez80.check @ind, @ - else - @ind =: 0 - end match - end match -end macro - -long? = 3 -; FIXME: dup relocations -macro dw? @values*& - if @ez80.adl - emit word?: @values - else - match left =dup? right, @values - emit word?: @values - else - iterate @value, @values - @ez80.word @value - end iterate - end match - end if -end macro -macro dl? @values*& - if @ez80.adl - match left =dup? right, @values - emit long?: @values - else - iterate @value, @values - @ez80.word @value - end iterate - end match - else - emit long?: @values - end if -end macro -iterate @name, dw, rw, dl, rl - struc (name) @name? @values*& - label name: long? - @name? @values - end struc -end iterate -macro assume? @expr* - match =adl? == @adl, @expr - local adl - adl = @adl - if adl = adl and 1 - @ez80.l = adl - @ez80.il = adl - @ez80.adl = adl - else - err 'adl assume should be 0 or 1' - end if - else - err 'invalid assume statement' - end match -end macro -assume? adl = 1 - -element @ez80.breg -element b?: @ez80.breg * 003o + 030o -element nz?: @ez80.breg * 010o + 001o -element z?: @ez80.breg * 010o + 011o -element nc?: @ez80.breg * 010o + 021o -element c?: @ez80.breg * 003o + 031o -element po?: @ez80.breg * 010o + 041o -element pe?: @ez80.breg * 010o + 051o -nv? = po? -v? = pe? -element p?: @ez80.breg * 010o + 061o -element m?: @ez80.breg * 010o + 071o -element d?: @ez80.breg * 003o + 032o -element e?: @ez80.breg * 003o + 033o -element h?: @ez80.breg * 003o + 034o -element ixh?: @ez80.breg * 335o + 034o -element iyh?: @ez80.breg * 375o + 034o -element l?: @ez80.breg * 003o + 035o -element ixl?: @ez80.breg * 335o + 035o -element iyl?: @ez80.breg * 375o + 035o -element f?: @ez80.breg * 002o + 036o -element a?: @ez80.breg * 003o + 037o - -element @ez80.irmb -element i?: @ez80.irmb * 107o + 127o -element r?: @ez80.irmb * 117o + 137o -element mb?: @ez80.irmb * 155o + 156o - -element @ez80.wreg -element bc?: @ez80.wreg * 007o + 000o -element de?: @ez80.wreg * 007o + 020o -element hl?: @ez80.wreg * 007o + 040o -element ix?: @ez80.wreg * 335o + 040o -element iy?: @ez80.wreg * 375o + 040o -element sp?: @ez80.wreg * 006o + 060o -element af?: @ez80.wreg * 001o + 060o -element af'? - -@ez80.is_reg equ metadata 1 element 1 eq - -macro inst! @name*, @params& - restore @name? - define @name? @name? - @ez80.oplist equ @name? - namespace @name? - macro s? @args& - @ez80.suffix 0, @ez80.il - @name? @args - end macro - macro l? @args& - @ez80.suffix 1, @ez80.il - @name? @args - end macro - macro is? @args& - @ez80.suffix @ez80.l, 0 - @name? @args - end macro - macro il? @args& - @ez80.suffix @ez80.l, 1 - @name? @args - end macro - macro sis? @args& - @ez80.suffix 0, 0 - @name? @args - end macro - macro lis? @args& - @ez80.suffix 1, 0 - @name? @args - end macro - macro sil? @args& - @ez80.suffix 0, 1 - @name? @args - end macro - macro lil? @args& - @ez80.suffix 1, 1 - @name? @args - end macro - end namespace - local @temp - virtual - iterate @param, @params - match @arg @, @param* - @temp = string `@arg shr 8 - db 'local ', @temp, ', ', @temp, 'ind', 10 - match @arg &, @param - db 'iterate @, ', `@arg, 10, 9, 'indx %%-%+1', 10, 9 - end match - db '@ez80.classify ', @temp, ', ', @temp, 'ind, ' - match @@ &, @param - db '@', 10, 'end iterate', 10 - else - db `@arg, 10 - end match - end match - end iterate - load @temp: $ - $$ from $$ - end virtual - esc macro @name?: @params - local before, after, noerr - label before - eval @temp -end macro -macro end?.inst! - label after - if ~defined noerr & before = after - err 'invalid arguments' - end if - restore @ez80.pre - assume? adl = @ez80.adl - esc end macro -end macro - -iterate <@name, @opc*>, \ - nop, 000o, \ - rlca, 007o, \ - rrca, 017o, \ - rla, 027o, \ - rra, 037o, \ - daa, 047o, \ - cpl, 057o, \ - scf, 067o, \ - ccf, 077o, \ - halt, 166o, \ - exx, 331o, \ - di, 363o, \ - ei, 373o, \ - neg, <355o, 104o>, \ - retn, <355o, 105o>, \ - reti, <355o, 115o>, \ - rrd, <355o, 147o>, \ - rld, <355o, 157o>, \ - slp, <355o, 166o>, \ - stmix, <355o, 175o>, \ - rsmix, <355o, 176o>, \ - inim, <355o, 202o>, \ - otim, <355o, 203o>, \ - ini2, <355o, 204o>, \ - indm, <355o, 212o>, \ - otdm, <355o, 213o>, \ - ind2, <355o, 214o>, \ - inimr, <355o, 222o>, \ - otimr, <355o, 223o>, \ - ini2r, <355o, 224o>, \ - indmr, <355o, 232o>, \ - otdmr, <355o, 233o>, \ - ind2r, <355o, 234o>, \ - ldi, <355o, 240o>, \ - cpi, <355o, 241o>, \ - ini, <355o, 242o>, \ - outi, <355o, 243o>, \ - outi2, <355o, 244o>, \ - ldd, <355o, 250o>, \ - cpd, <355o, 251o>, \ - ind, <355o, 252o>, \ - outd, <355o, 253o>, \ - outd2, <355o, 254o>, \ - ldir, <355o, 260o>, \ - cpir, <355o, 261o>, \ - inir, <355o, 262o>, \ - otir, <355o, 263o>, \ - oti2r, <355o, 264o>, \ - lddr, <355o, 270o>, \ - cpdr, <355o, 271o>, \ - indr, <355o, 272o>, \ - otdr, <355o, 273o>, \ - otd2r, <355o, 274o>, \ - inirx, <355o, 302o>, \ - otirx, <355o, 303o>, \ - indrx, <355o, 312o>, \ - otdrx, <355o, 313o> - inst @name - @ez80.emit <byte @opc> - end inst -end iterate - -iterate @name, inc, dec - inst @name, @reg* - if regind - if reg relativeto reg element 1 & reg @ez80.is_reg @ez80.wreg \ - & reg metadata 1 scale 0 = 040o - @ez80.emit idxpre reg, byte 063o + %, idxoff reg - end if - else if reg eq reg element 1 - if reg @ez80.is_reg @ez80.wreg & reg metadata 1 scale 1 and 004o - @ez80.emit idxpre reg, byte reg metadata 1 scale 0 - 005o \ - + % shl 3 - else if reg @ez80.is_reg @ez80.breg \ - & reg metadata 1 scale 1 and 001o - @ez80.emit idxpre reg, byte reg metadata 1 scale 0 shl 3 \ - and 070o or % + 3 - end if - end if - end inst -end iterate - -inst ex, @arg1, @arg2* - if arg1ind - if arg2ind - err 'invalid indirection' - else if arg1 eq sp? & arg2 eq arg2 element 1 \ - & arg2 @ez80.is_reg @ez80.wreg & arg2 metadata 1 scale 0 = 040o - @ez80.emit idxpre arg2, byte 343o - end if - else if arg2ind - @ez80.nest ex? @arg2, @arg1 - else if (arg1 eq af? & arg2 eq af'?) | (arg1 eq af'? & arg2 eq af?) - @ez80.emit byte 010o - else if (arg1 eq de? & arg2 eq hl?) | (arg1 eq hl? & arg2 eq de?) - @ez80.emit byte 353o - end if -end inst - -inst djnz, @addr* - if addrind - err 'invalid indirection' - else - @ez80.emit byte 020o, offset addr - after - end if -end inst -inst jr, @arg1*, @arg2 - if arg1ind | arg2ind - err 'invalid indirection' - else if ~defined arg2 - @ez80.emit byte 030o, offset arg1 - after - else - if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \ - & arg1 metadata 1 scale 0 and 047o = 001o - @ez80.emit byte arg1 metadata 1 scale 0 and 030o or 040o, \ - offset arg2 - after - end if - end if -end inst -inst jq, @arg1*, @arg2 - local off, keep - if arg1ind | arg2ind - err 'invalid indirection' - else if ~defined arg2 - off = arg1 - before - 2 - if defined @ez80.pre - off = off - 1 - end if - if defined noerr & ~arg1 eq after | defined keep - define keep - end if - if defined after & arg1 eq after & ~defined keep - define noerr - else if ~elementsof off & -200o <= off & off < 200o - @ez80.emit byte 030o, offset off - else - @ez80.emit byte 303o, word arg1 - end if - else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \ - & arg1 metadata 1 scale 0 and 007o = 001o - off = arg2 - before - 2 - if defined @ez80.pre - off = off - 1 - end if - if defined noerr & ~arg2 eq after | defined keep - define keep - end if - if defined after & arg2 eq after & ~defined keep - define noerr - else if arg1 metadata 1 scale 0 < 040o & ~elementsof off & -200o <= off & off < 200o - @ez80.emit byte arg1 metadata 1 scale 0 and 030o or 040o, \ - offset off - else - @ez80.emit byte arg1 metadata 1 scale 0 and 070o or 302o, \ - word arg2 - end if - end if -end inst - -inst ld, @dst, @src* - local opc - if dstind & srcind - err 'invalid indirection' - else if dstind - if dst relativeto dst element 1 & dst @ez80.is_reg @ez80.wreg - if dst metadata 1 scale 0 = 040o - if src eq src element 1 & src @ez80.is_reg @ez80.breg \ - & src metadata 1 scale 1 = 003o - @ez80.emit idxpre dst, byte src metadata 1 scale 0 \ - and 007o or 160o, idxoff dst - else if src eq src element 1 & src @ez80.is_reg @ez80.wreg \ - & src metadata 1 scale 1 and 005o = 005o - opc = src metadata 1 scale 0 or 017o - if src metadata 1 scale 1 > 300o - if dst metadata 1 scale 1 xor src metadata 1 scale 1 \ - and 040o - opc = opc + 017o - else - opc = opc + 020o - end if - end if - if dst metadata 1 scale 1 > 300o - @ez80.emit idxpre dst, byte opc, idxoff dst - else - @ez80.emit <byte 355o, opc> - end if - else - @ez80.emit idxpre dst, byte 066o, idxoff dst, byte src - end if - else if src eq a? & dst metadata 1 scale 0 < 040o - @ez80.emit byte dst metadata 1 scale 0 or 002o - end if - else if src eq a? - @ez80.emit byte 062o, word dst - else if src eq src element 1 & src @ez80.is_reg @ez80.wreg \ - & src metadata 1 scale 1 and 004o - if src metadata 1 scale 0 = 040o - @ez80.emit idxpre src, byte 042o, word dst - else - @ez80.emit <byte 355o, src metadata 1 scale 0 or 103o>, word dst - end if - end if - else if srcind - if ~dst eq dst element 1 - else if src relativeto src element 1 & src @ez80.is_reg @ez80.wreg - if src metadata 1 scale 0 = 040o - if dst @ez80.is_reg @ez80.breg & dst metadata 1 scale 1 = 003o - @ez80.emit idxpre src, byte dst metadata 1 scale 0 \ - shl 3 and 070o or 106o, idxoff src - else if dst @ez80.is_reg @ez80.wreg \ - & dst metadata 1 scale 1 and 005o = 005o - opc = dst metadata 1 scale 0 or 007o - if dst metadata 1 scale 1 > 300o - if dst metadata 1 scale 1 xor src metadata 1 scale 1 \ - and 040o - opc = opc + 012o - else - opc = opc + 020o - end if - end if - if src metadata 1 scale 1 > 300o - @ez80.emit idxpre src, byte opc, idxoff src - else - @ez80.emit <byte 355o, opc> - end if - end if - else if dst eq a? & src metadata 1 scale 0 < 040o - @ez80.emit byte src metadata 1 scale 0 or 012o - end if - else if dst eq a? - @ez80.emit byte 072o, word src - else if dst @ez80.is_reg @ez80.wreg & dst metadata 1 scale 1 and 004o - if dst metadata 1 scale 0 = 040o - @ez80.emit idxpre dst, byte 052o, word src - else - @ez80.emit <byte 355o, dst metadata 1 scale 0 or 113o>, word src - end if - end if - else if dst eq dst element 1 - if dst @ez80.is_reg @ez80.breg - if src eq src element 1 & src @ez80.is_reg @ez80.breg \ - & dst metadata 1 scale 1 and src metadata 1 scale 1 and 001o \ - & (dst metadata 1 scale 0 xor src metadata 1 scale 0 and 006o \ - | dst metadata 1 scale 1 = src metadata 1 scale 1) \ - & (~dst eq src | dst metadata 1 scale 0 > 033o) - @ez80.emit <idxpre dst, src>, \ - byte dst metadata 1 scale 0 shl 3 and 070o \ - + src metadata 1 scale 0 and 007o or 100o - else if src eq src element 1 & src @ez80.is_reg @ez80.irmb \ - & dst eq a? - @ez80.emit <byte 355o, src metadata 1 scale 0> - else if dst metadata 1 scale 1 and 001o - @ez80.emit idxpre dst, \ - byte dst metadata 1 scale 0 shl 3 and 070o or 006o, \ - byte src - end if - else if dst @ez80.is_reg @ez80.wreg & dst metadata 1 scale 1 and 004o - if dst eq sp? & src eq src element 1 & src @ez80.is_reg @ez80.wreg \ - & src metadata 1 scale 0 = 040o - @ez80.emit idxpre src, byte 371o - else if dst eq hl? & src eq i? - @ez80.emit <byte 355o, 327o> - else - @ez80.emit idxpre dst, byte dst metadata 1 scale 0 or 001o, \ - word src - end if - else if dst @ez80.is_reg @ez80.irmb & src eq a? - @ez80.emit <byte 355o, dst metadata 1 scale 1> - else if dst eq i? & src eq hl? - @ez80.emit <byte 355o, 307o> - end if - end if -end inst - -inst add, @arg1*, @arg2 - if ~defined arg2 - @ez80.nest a?, @arg1 - else if arg1ind - err 'invalid indirection' - else if arg1 eq a? - if arg2ind - if arg2 relativeto arg2 element 1 & arg2 @ez80.is_reg @ez80.wreg \ - & arg2 metadata 1 scale 0 = 040o - @ez80.emit idxpre arg2, byte 206o, idxoff arg2 - end if - else if arg2 eq arg2 element 1 & arg2 @ez80.is_reg @ez80.breg \ - & arg2 metadata 1 scale 1 and 001o - @ez80.emit idxpre arg2, byte arg2 metadata 1 scale 0 and 007o \ - or 200o - else - @ez80.emit <byte 306o, arg2> - end if - else if arg2ind - err 'invalid indirection' - else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.wreg \ - & arg2 eq arg2 element 1 & arg1 @ez80.is_reg @ez80.wreg \ - & arg1 metadata 1 scale 0 = 040o & arg2 metadata 1 scale 1 and 004o \ - & (arg1 metadata 1 scale 0 <> arg2 metadata 1 scale 0 \ - | arg1 metadata 1 scale 1 = arg2 metadata 1 scale 1) - @ez80.emit idxpre arg1, byte arg2 metadata 1 scale 0 or 011o - end if -end inst -iterate @name, adc, sbc - inst @name, @arg1*, @arg2 - if ~defined arg2 - if arg1 @ez80.is_reg @ez80.wreg - @ez80.nest hl?, @arg1 - else - @ez80.nest a?, @arg1 - end if - else if arg1ind - err 'invalid indirection' - else if arg1 eq a? - if arg2ind - if arg2 relativeto arg2 element 1 \ - & arg2 @ez80.is_reg @ez80.wreg \ - & arg2 metadata 1 scale 0 = 040o - @ez80.emit idxpre arg2, byte 176o + % shl 4, idxoff arg2 - end if - else if arg2 eq arg2 element 1 & arg2 @ez80.is_reg @ez80.breg \ - & arg2 metadata 1 scale 1 and 001o - @ez80.emit idxpre arg2, byte arg2 metadata 1 scale 0 and 007o \ - or 170o + % shl 4 - else - @ez80.emit <byte 276o + % shl 4, arg2> - end if - else if arg2ind - err 'invalid indirection' - else if arg1 eq hl? & arg2 eq arg2 element 1 \ - & arg2 @ez80.is_reg @ez80.wreg \ - & arg2 metadata 1 scale 1 and 002o - @ez80.emit <byte 355o, arg2 metadata 1 scale 0 + 122o - % shl 3> - end if - end inst -end iterate -iterate <@name, @opc*>, \ - sub, 220o, \ - and, 240o, \ - xor, 250o, \ - or, 260o, \ - cp, 270o - inst @name, @arg1*, @arg2 - if ~defined arg2 - if arg1ind - if arg1 relativeto arg1 element 1 \ - & arg1 @ez80.is_reg @ez80.wreg \ - & arg1 metadata 1 scale 0 = 040o - @ez80.emit idxpre arg1, byte @opc or 006o, idxoff arg1 - end if - else if arg1 relativeto arg1 element 1 \ - & arg1 @ez80.is_reg @ez80.breg \ - & arg1 metadata 1 scale 1 and 001o - @ez80.emit idxpre arg1, byte arg1 metadata 1 scale 0 and 007o \ - or @opc - else - @ez80.emit <byte @opc or 106o, arg1> - end if - else if arg1ind - err 'invalid indirection' - else if arg1 eq a? - @ez80.nest @name? @arg2 - end if - end inst -end iterate -inst tst, @arg1*, @arg2 - if ~defined arg2 - if arg1ind - if arg1 eq hl? - @ez80.emit <byte 355o, 064o> - end if - else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \ - & arg1 metadata 1 scale 1 = 003o - @ez80.emit <byte 355o, \ - arg1 metadata 1 scale 0 shl 3 and 070o or 004o> - else - @ez80.emit <byte 355o, 144o, arg1> - end if - else if arg1ind - err 'invalid indirection' - else if arg1 eq a? - @ez80.nest tst? @arg2 - end if -end inst - -inst ret, @cond - if ~defined cond - @ez80.emit byte 311o - else if condind - err 'invalid indirection' - else if cond eq cond element 1 & cond @ez80.is_reg @ez80.breg \ - & cond metadata 1 scale 0 and 007o = 001o - @ez80.emit byte cond metadata 1 scale 0 and 070o or 300o - end if -end inst -iterate @name, pop, push - inst @name, @reg*& - while defined reg + regind - if regind - err 'invalid indirection' - else if reg eq reg element 1 & reg @ez80.is_reg @ez80.wreg \ - & reg metadata 1 scale 1 and 001o - @ez80.emit idxpre reg, \ - byte reg metadata 1 scale 0 + 275o + % shl 2 - else if `@name = 'push' - @ez80.nest pea? reg - else - err 'invalid argument' - end if - restore reg, regind - end while - end inst -end iterate - -inst jp, @arg1*, @arg2 - if ~defined arg2 - if ~arg1ind - @ez80.emit byte 303o, word arg1 - else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.wreg \ - & arg1 metadata 1 scale 0 = 040o - @ez80.emit idxpre arg1, byte 351o - end if - else if arg1ind | arg2ind - err 'invalid indirection' - else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \ - & arg1 metadata 1 scale 0 and 007o = 001o - @ez80.emit byte arg1 metadata 1 scale 0 and 070o or 302o, word arg2 - end if -end inst -inst call, @arg1*, @arg2 - if arg1ind | arg2ind - err 'invalid indirection' - else if ~defined arg2 - @ez80.emit byte 315o, word arg1 - else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \ - & arg1 metadata 1 scale 0 and 007o = 001o - @ez80.emit byte arg1 metadata 1 scale 0 and 070o or 304o, word arg2 - end if -end inst -inst rst, @addr* - if addrind - err 'invalid indirection' - else if addr = addr and 070o - @ez80.emit byte addr or 307o - else - err 'invalid rst target' - end if -end inst - -iterate <@name, @opc*>, \ - rlc, 000o, \ - rrc, 010o, \ - rl, 020o, \ - rr, 030o, \ - sla, 040o, \ - sra, 050o, \ - srl, 070o - inst @name, @reg* - if `@name = 'rl' & ~defined @ez80.pre & ~elementsof reg - rb long? * reg - define noerr - else if regind - if reg relativeto reg element 1 & reg @ez80.is_reg @ez80.wreg \ - & reg metadata 1 scale 0 = 040o - @ez80.emit idxpre reg, byte 313o, idxoff reg, byte @opc or 006o - end if - else if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \ - & reg metadata 1 scale 1 = 003o - @ez80.emit <byte 313o, reg metadata 1 scale 0 and 007o or @opc> - end if - end inst -end iterate -iterate @name, bit, res, set - inst @name, @bit, @reg* - if bitind - err 'invalid indirection' - else if regind - if reg relativeto reg element 1 & reg @ez80.is_reg @ez80.wreg \ - & reg metadata 1 scale 0 = 040o - @ez80.emit idxpre reg, byte 313o, idxoff bit shr 3 + reg, \ - byte bit shl 3 and 070o or % shl 6 or 006o - end if - else if reg eq reg element 1 - if reg @ez80.is_reg @ez80.breg & reg metadata 1 scale 1 = 003o \ - & bit = bit and 007o - @ez80.emit <byte 313o, reg metadata 1 scale 0 and 007o \ - or % shl 6 or bit shl 3> - else if reg @ez80.is_reg @ez80.wreg \ - & reg metadata 1 scale 1 = 007o & bit = bit and 017o - @ez80.emit <byte 313o, bit shl 3 and 070o or % shl 6 \ - or reg metadata 1 scale 0 shr 3 \ - or 001o and not bit shr 3> - end if - end if - end inst -end iterate - -inst out, @port, @reg* - if ~portind - err 'missing indirection' - else if regind - err 'invalid indirection' - else if port eq bc? | port eq c? - if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \ - & reg metadata 1 scale 1 = 003o - @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \ - or 101o> - else if ~reg - @ez80.emit <byte 355o, 161o> - end if - else if reg eq a? - @ez80.emit <byte 323o, port> - end if -end inst -inst in, @reg*, @port - if ~defined port - @ez80.nest in? f?, @reg - else if regind - err 'invalid indirection' - else if ~portind - err 'missing indirection' - else if port eq bc? | port eq c? & reg eq reg element 1 \ - & reg @ez80.is_reg @ez80.breg & reg metadata 1 scale 1 and 002o - @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \ - or 100o> - else if reg eq a? - @ez80.emit <byte 333o, port> - end if -end inst -inst in0, @reg*, @port - if ~defined port - @ez80.nest in0? f?, @reg - else if regind - err 'invalid indirection' - else if ~portind - err 'missing indirection' - else if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \ - & reg metadata 1 scale 1 and 002o - @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \ - or 000o, port> - end if -end inst -inst out0, @port, @reg* - if ~portind - err 'missing indirection' - else if regind - err 'invalid indirection' - else if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \ - & reg metadata 1 scale 1 = 003o - @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \ - or 001o, port> - end if -end inst -inst tstio, @src* - if srcind - err 'invalid indirection' - else - @ez80.emit <byte 355o, 164o, src> - end if -end inst - -inst lea, @dst, @src* - if dstind | srcind - err 'invalid indirection' - else if dst eq dst element 1 & src relativeto src element 1 \ - & dst @ez80.is_reg @ez80.wreg & src @ez80.is_reg @ez80.wreg \ - & dst metadata 1 scale 0 <> 060o & src metadata 1 scale 1 > 300o - local opc - if dst metadata 1 scale 1 and 002o - opc = src metadata 1 scale 1 shr 5 and 001o \ - or dst metadata 1 scale 0 or 002o - else if dst relativeto src - opc = dst metadata 1 scale 1 shr 5 and 001o or 062o - else - opc = dst metadata 1 scale 1 shr 5 and 001o or 124o - end if - @ez80.emit <byte 355o, opc>, offset src scale 0 - end if -end inst -inst pea, @src* - if srcind - err 'invalid indirection' - else if src relativeto src element 1 & src @ez80.is_reg @ez80.wreg \ - & src metadata 1 scale 1 > 300o - @ez80.emit <byte 355o, src metadata 1 scale 1 shr 5 and 001o + 145o>, \ - offset src scale 0 - end if -end inst - -inst im, @mode* - if modeind - err 'invalid indirection' - else if mode = 0 - @ez80.emit <byte 355o, 106o> - else if mode = 1 - @ez80.emit <byte 355o, 126o> - else if mode = 2 - @ez80.emit <byte 355o, 136o> - else - err 'invalid mode' - end if -end inst - -inst mlt, @reg* - if regind - err 'invalid indirection' - else if reg eq reg element 1 & reg @ez80.is_reg @ez80.wreg \ - & reg metadata 1 scale 1 and 002o - @ez80.emit <byte 355o, reg metadata 1 scale 0 or 114o> - end if -end inst - -purge inst -purge end?.inst +define @ez80 @ez80
+macro @ez80.suffix @l, @il*
+ @ez80.l = @l
+ @ez80.il = @il
+ @ez80.lil = @ez80.l or @ez80.il shl 1
+ @ez80.pre = @ez80.lil or @ez80.lil shl 3 or 100o
+end macro
+macro @ez80.byte @values*&
+ db @values
+end macro
+macro @ez80.offset @value*
+ local value
+ value = @value
+ if elementsof value
+ err 'invalid offset'
+ else if value < -200o | 200o <= value
+ err 'offset is out of range'
+ end if
+ db value
+end macro
+macro @ez80.word @value*
+ local value
+ value = @value
+ if elementsof value
+ err 'invalid immediate'
+ end if
+ emit word + @ez80.il: @value
+end macro
+macro @ez80.idxpre @regs*&
+ local pre
+ iterate @reg, @regs
+ pre = @reg metadata 1 scale 1
+ if pre > 300o
+ @ez80.byte pre
+ break
+ end if
+ end iterate
+end macro
+macro @ez80.idxoff @reg*
+ local reg
+ reg = @reg
+ if reg metadata 1 scale 1 > 300o
+ @ez80.offset @reg scale 0
+ else if reg scale 0
+ err 'invalid arguments'
+ end if
+end macro
+macro @ez80.emit @values*&
+ if defined @ez80.pre
+ db @ez80.pre
+ end if
+ iterate @value, @values
+ @ez80.@value
+ end iterate
+end macro
+macro @ez80.nest @inst*&
+ if defined @ez80.pre
+ @ez80.pre =: @ez80.pre
+ end if
+ @inst
+end macro
+macro @ez80.check @ind*, @expr&
+ match @left ) @right, <@expr>
+ match @ ( @mid, <@left>
+ @ez80.check @ind, @mid @right
+ else
+ @ind =: 0
+ end match
+ else
+ @ind =: 1
+ end match
+end macro
+macro @ez80.classify @val, @ind*, @arg&
+ match, @arg
+ @ind =: 0
+ else
+ @val =: @arg
+ match ( @ ), @arg
+ @ez80.check @ind, @
+ else
+ @ind =: 0
+ end match
+ end match
+end macro
+
+long? = 3
+; FIXME: dup relocations
+macro dw? @values*&
+ if @ez80.adl
+ emit word?: @values
+ else
+ match left =dup? right, @values
+ emit word?: @values
+ else
+ iterate @value, @values
+ @ez80.word @value
+ end iterate
+ end match
+ end if
+end macro
+macro dl? @values*&
+ if @ez80.adl
+ match left =dup? right, @values
+ emit long?: @values
+ else
+ iterate @value, @values
+ @ez80.word @value
+ end iterate
+ end match
+ else
+ emit long?: @values
+ end if
+end macro
+iterate @name, dw, rw, dl, rl
+ struc (name) @name? @values*&
+ label name: long?
+ @name? @values
+ end struc
+end iterate
+macro assume? @expr*
+ match =adl? == @adl, @expr
+ local adl
+ adl = @adl
+ if adl = adl and 1
+ @ez80.l = adl
+ @ez80.il = adl
+ @ez80.adl = adl
+ else
+ err 'adl assume should be 0 or 1'
+ end if
+ else
+ err 'invalid assume statement'
+ end match
+end macro
+assume? adl = 1
+
+element @ez80.breg
+element b?: @ez80.breg * 003o + 030o
+element nz?: @ez80.breg * 010o + 001o
+element z?: @ez80.breg * 010o + 011o
+element nc?: @ez80.breg * 010o + 021o
+element c?: @ez80.breg * 003o + 031o
+element po?: @ez80.breg * 010o + 041o
+element pe?: @ez80.breg * 010o + 051o
+nv? = po?
+v? = pe?
+element p?: @ez80.breg * 010o + 061o
+element m?: @ez80.breg * 010o + 071o
+element d?: @ez80.breg * 003o + 032o
+element e?: @ez80.breg * 003o + 033o
+element h?: @ez80.breg * 003o + 034o
+element ixh?: @ez80.breg * 335o + 034o
+element iyh?: @ez80.breg * 375o + 034o
+element l?: @ez80.breg * 003o + 035o
+element ixl?: @ez80.breg * 335o + 035o
+element iyl?: @ez80.breg * 375o + 035o
+element f?: @ez80.breg * 002o + 036o
+element a?: @ez80.breg * 003o + 037o
+
+element @ez80.irmb
+element i?: @ez80.irmb * 107o + 127o
+element r?: @ez80.irmb * 117o + 137o
+element mb?: @ez80.irmb * 155o + 156o
+
+element @ez80.wreg
+element bc?: @ez80.wreg * 007o + 000o
+element de?: @ez80.wreg * 007o + 020o
+element hl?: @ez80.wreg * 007o + 040o
+element ix?: @ez80.wreg * 335o + 040o
+element iy?: @ez80.wreg * 375o + 040o
+element sp?: @ez80.wreg * 006o + 060o
+element af?: @ez80.wreg * 001o + 060o
+element af'?
+
+@ez80.is_reg equ metadata 1 element 1 eq
+
+macro inst! @name*, @params&
+ restore @name?
+ define @name? @name?
+ @ez80.oplist equ @name?
+ namespace @name?
+ macro s? @args&
+ @ez80.suffix 0, @ez80.il
+ @name? @args
+ end macro
+ macro l? @args&
+ @ez80.suffix 1, @ez80.il
+ @name? @args
+ end macro
+ macro is? @args&
+ @ez80.suffix @ez80.l, 0
+ @name? @args
+ end macro
+ macro il? @args&
+ @ez80.suffix @ez80.l, 1
+ @name? @args
+ end macro
+ macro sis? @args&
+ @ez80.suffix 0, 0
+ @name? @args
+ end macro
+ macro lis? @args&
+ @ez80.suffix 1, 0
+ @name? @args
+ end macro
+ macro sil? @args&
+ @ez80.suffix 0, 1
+ @name? @args
+ end macro
+ macro lil? @args&
+ @ez80.suffix 1, 1
+ @name? @args
+ end macro
+ end namespace
+ local @temp
+ virtual
+ iterate @param, @params
+ match @arg @, @param*
+ @temp = string `@arg shr 8
+ db 'local ', @temp, ', ', @temp, 'ind', 10
+ match @arg &, @param
+ db 'iterate @, ', `@arg, 10, 9, 'indx %%-%+1', 10, 9
+ end match
+ db '@ez80.classify ', @temp, ', ', @temp, 'ind, '
+ match @@ &, @param
+ db '@', 10, 'end iterate', 10
+ else
+ db `@arg, 10
+ end match
+ end match
+ end iterate
+ load @temp: $ - $$ from $$
+ end virtual
+ esc macro @name?: @params
+ local before, after, noerr
+ label before
+ eval @temp
+end macro
+macro end?.inst!
+ label after
+ if ~defined noerr & before = after
+ err 'invalid arguments'
+ end if
+ restore @ez80.pre
+ assume? adl = @ez80.adl
+ esc end macro
+end macro
+
+iterate <@name, @opc*>, \
+ nop, 000o, \
+ rlca, 007o, \
+ rrca, 017o, \
+ rla, 027o, \
+ rra, 037o, \
+ daa, 047o, \
+ cpl, 057o, \
+ scf, 067o, \
+ ccf, 077o, \
+ halt, 166o, \
+ exx, 331o, \
+ di, 363o, \
+ ei, 373o, \
+ neg, <355o, 104o>, \
+ retn, <355o, 105o>, \
+ reti, <355o, 115o>, \
+ rrd, <355o, 147o>, \
+ rld, <355o, 157o>, \
+ slp, <355o, 166o>, \
+ stmix, <355o, 175o>, \
+ rsmix, <355o, 176o>, \
+ inim, <355o, 202o>, \
+ otim, <355o, 203o>, \
+ ini2, <355o, 204o>, \
+ indm, <355o, 212o>, \
+ otdm, <355o, 213o>, \
+ ind2, <355o, 214o>, \
+ inimr, <355o, 222o>, \
+ otimr, <355o, 223o>, \
+ ini2r, <355o, 224o>, \
+ indmr, <355o, 232o>, \
+ otdmr, <355o, 233o>, \
+ ind2r, <355o, 234o>, \
+ ldi, <355o, 240o>, \
+ cpi, <355o, 241o>, \
+ ini, <355o, 242o>, \
+ outi, <355o, 243o>, \
+ outi2, <355o, 244o>, \
+ ldd, <355o, 250o>, \
+ cpd, <355o, 251o>, \
+ ind, <355o, 252o>, \
+ outd, <355o, 253o>, \
+ outd2, <355o, 254o>, \
+ ldir, <355o, 260o>, \
+ cpir, <355o, 261o>, \
+ inir, <355o, 262o>, \
+ otir, <355o, 263o>, \
+ oti2r, <355o, 264o>, \
+ lddr, <355o, 270o>, \
+ cpdr, <355o, 271o>, \
+ indr, <355o, 272o>, \
+ otdr, <355o, 273o>, \
+ otd2r, <355o, 274o>, \
+ inirx, <355o, 302o>, \
+ otirx, <355o, 303o>, \
+ indrx, <355o, 312o>, \
+ otdrx, <355o, 313o>
+ inst @name
+ @ez80.emit <byte @opc>
+ end inst
+end iterate
+
+iterate @name, inc, dec
+ inst @name, @reg*
+ if regind
+ if reg relativeto reg element 1 & reg @ez80.is_reg @ez80.wreg \
+ & reg metadata 1 scale 0 = 040o
+ @ez80.emit idxpre reg, byte 063o + %, idxoff reg
+ end if
+ else if reg eq reg element 1
+ if reg @ez80.is_reg @ez80.wreg & reg metadata 1 scale 1 and 004o
+ @ez80.emit idxpre reg, byte reg metadata 1 scale 0 - 005o \
+ + % shl 3
+ else if reg @ez80.is_reg @ez80.breg \
+ & reg metadata 1 scale 1 and 001o
+ @ez80.emit idxpre reg, byte reg metadata 1 scale 0 shl 3 \
+ and 070o or % + 3
+ end if
+ end if
+ end inst
+end iterate
+
+inst ex, @arg1, @arg2*
+ if arg1ind
+ if arg2ind
+ err 'invalid indirection'
+ else if arg1 eq sp? & arg2 eq arg2 element 1 \
+ & arg2 @ez80.is_reg @ez80.wreg & arg2 metadata 1 scale 0 = 040o
+ @ez80.emit idxpre arg2, byte 343o
+ end if
+ else if arg2ind
+ @ez80.nest ex? @arg2, @arg1
+ else if (arg1 eq af? & arg2 eq af'?) | (arg1 eq af'? & arg2 eq af?)
+ @ez80.emit byte 010o
+ else if (arg1 eq de? & arg2 eq hl?) | (arg1 eq hl? & arg2 eq de?)
+ @ez80.emit byte 353o
+ end if
+end inst
+
+inst djnz, @addr*
+ if addrind
+ err 'invalid indirection'
+ else
+ @ez80.emit byte 020o, offset addr - after
+ end if
+end inst
+inst jr, @arg1*, @arg2
+ if arg1ind | arg2ind
+ err 'invalid indirection'
+ else if ~defined arg2
+ @ez80.emit byte 030o, offset arg1 - after
+ else
+ if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \
+ & arg1 metadata 1 scale 0 and 047o = 001o
+ @ez80.emit byte arg1 metadata 1 scale 0 and 030o or 040o, \
+ offset arg2 - after
+ end if
+ end if
+end inst
+inst jq, @arg1*, @arg2
+ local off, keep
+ if arg1ind | arg2ind
+ err 'invalid indirection'
+ else if ~defined arg2
+ off = arg1 - before - 2
+ if defined @ez80.pre
+ off = off - 1
+ end if
+ if defined noerr & ~arg1 eq after | defined keep
+ define keep
+ end if
+ if defined after & arg1 eq after & ~defined keep
+ define noerr
+ else if ~elementsof off & -200o <= off & off < 200o
+ @ez80.emit byte 030o, offset off
+ else
+ @ez80.emit byte 303o, word arg1
+ end if
+ else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \
+ & arg1 metadata 1 scale 0 and 007o = 001o
+ off = arg2 - before - 2
+ if defined @ez80.pre
+ off = off - 1
+ end if
+ if defined noerr & ~arg2 eq after | defined keep
+ define keep
+ end if
+ if defined after & arg2 eq after & ~defined keep
+ define noerr
+ else if arg1 metadata 1 scale 0 < 040o & ~elementsof off & -200o <= off & off < 200o
+ @ez80.emit byte arg1 metadata 1 scale 0 and 030o or 040o, \
+ offset off
+ else
+ @ez80.emit byte arg1 metadata 1 scale 0 and 070o or 302o, \
+ word arg2
+ end if
+ end if
+end inst
+
+inst ld, @dst, @src*
+ local opc
+ if dstind & srcind
+ err 'invalid indirection'
+ else if dstind
+ if dst relativeto dst element 1 & dst @ez80.is_reg @ez80.wreg
+ if dst metadata 1 scale 0 = 040o
+ if src eq src element 1 & src @ez80.is_reg @ez80.breg \
+ & src metadata 1 scale 1 = 003o
+ @ez80.emit idxpre dst, byte src metadata 1 scale 0 \
+ and 007o or 160o, idxoff dst
+ else if src eq src element 1 & src @ez80.is_reg @ez80.wreg \
+ & src metadata 1 scale 1 and 005o = 005o
+ opc = src metadata 1 scale 0 or 017o
+ if src metadata 1 scale 1 > 300o
+ if dst metadata 1 scale 1 xor src metadata 1 scale 1 \
+ and 040o
+ opc = opc + 017o
+ else
+ opc = opc + 020o
+ end if
+ end if
+ if dst metadata 1 scale 1 > 300o
+ @ez80.emit idxpre dst, byte opc, idxoff dst
+ else
+ @ez80.emit <byte 355o, opc>
+ end if
+ else
+ @ez80.emit idxpre dst, byte 066o, idxoff dst, byte src
+ end if
+ else if src eq a? & dst metadata 1 scale 0 < 040o
+ @ez80.emit byte dst metadata 1 scale 0 or 002o
+ end if
+ else if src eq a?
+ @ez80.emit byte 062o, word dst
+ else if src eq src element 1 & src @ez80.is_reg @ez80.wreg \
+ & src metadata 1 scale 1 and 004o
+ if src metadata 1 scale 0 = 040o
+ @ez80.emit idxpre src, byte 042o, word dst
+ else
+ @ez80.emit <byte 355o, src metadata 1 scale 0 or 103o>, word dst
+ end if
+ end if
+ else if srcind
+ if ~dst eq dst element 1
+ else if src relativeto src element 1 & src @ez80.is_reg @ez80.wreg
+ if src metadata 1 scale 0 = 040o
+ if dst @ez80.is_reg @ez80.breg & dst metadata 1 scale 1 = 003o
+ @ez80.emit idxpre src, byte dst metadata 1 scale 0 \
+ shl 3 and 070o or 106o, idxoff src
+ else if dst @ez80.is_reg @ez80.wreg \
+ & dst metadata 1 scale 1 and 005o = 005o
+ opc = dst metadata 1 scale 0 or 007o
+ if dst metadata 1 scale 1 > 300o
+ if dst metadata 1 scale 1 xor src metadata 1 scale 1 \
+ and 040o
+ opc = opc + 012o
+ else
+ opc = opc + 020o
+ end if
+ end if
+ if src metadata 1 scale 1 > 300o
+ @ez80.emit idxpre src, byte opc, idxoff src
+ else
+ @ez80.emit <byte 355o, opc>
+ end if
+ end if
+ else if dst eq a? & src metadata 1 scale 0 < 040o
+ @ez80.emit byte src metadata 1 scale 0 or 012o
+ end if
+ else if dst eq a?
+ @ez80.emit byte 072o, word src
+ else if dst @ez80.is_reg @ez80.wreg & dst metadata 1 scale 1 and 004o
+ if dst metadata 1 scale 0 = 040o
+ @ez80.emit idxpre dst, byte 052o, word src
+ else
+ @ez80.emit <byte 355o, dst metadata 1 scale 0 or 113o>, word src
+ end if
+ end if
+ else if dst eq dst element 1
+ if dst @ez80.is_reg @ez80.breg
+ if src eq src element 1 & src @ez80.is_reg @ez80.breg \
+ & dst metadata 1 scale 1 and src metadata 1 scale 1 and 001o \
+ & (dst metadata 1 scale 0 xor src metadata 1 scale 0 and 006o \
+ | dst metadata 1 scale 1 = src metadata 1 scale 1) \
+ & (~dst eq src | dst metadata 1 scale 0 > 033o)
+ @ez80.emit <idxpre dst, src>, \
+ byte dst metadata 1 scale 0 shl 3 and 070o \
+ + src metadata 1 scale 0 and 007o or 100o
+ else if src eq src element 1 & src @ez80.is_reg @ez80.irmb \
+ & dst eq a?
+ @ez80.emit <byte 355o, src metadata 1 scale 0>
+ else if dst metadata 1 scale 1 and 001o
+ @ez80.emit idxpre dst, \
+ byte dst metadata 1 scale 0 shl 3 and 070o or 006o, \
+ byte src
+ end if
+ else if dst @ez80.is_reg @ez80.wreg & dst metadata 1 scale 1 and 004o
+ if dst eq sp? & src eq src element 1 & src @ez80.is_reg @ez80.wreg \
+ & src metadata 1 scale 0 = 040o
+ @ez80.emit idxpre src, byte 371o
+ else if dst eq hl? & src eq i?
+ @ez80.emit <byte 355o, 327o>
+ else
+ @ez80.emit idxpre dst, byte dst metadata 1 scale 0 or 001o, \
+ word src
+ end if
+ else if dst @ez80.is_reg @ez80.irmb & src eq a?
+ @ez80.emit <byte 355o, dst metadata 1 scale 1>
+ else if dst eq i? & src eq hl?
+ @ez80.emit <byte 355o, 307o>
+ end if
+ end if
+end inst
+
+inst add, @arg1*, @arg2
+ if ~defined arg2
+ @ez80.nest a?, @arg1
+ else if arg1ind
+ err 'invalid indirection'
+ else if arg1 eq a?
+ if arg2ind
+ if arg2 relativeto arg2 element 1 & arg2 @ez80.is_reg @ez80.wreg \
+ & arg2 metadata 1 scale 0 = 040o
+ @ez80.emit idxpre arg2, byte 206o, idxoff arg2
+ end if
+ else if arg2 eq arg2 element 1 & arg2 @ez80.is_reg @ez80.breg \
+ & arg2 metadata 1 scale 1 and 001o
+ @ez80.emit idxpre arg2, byte arg2 metadata 1 scale 0 and 007o \
+ or 200o
+ else
+ @ez80.emit <byte 306o, arg2>
+ end if
+ else if arg2ind
+ err 'invalid indirection'
+ else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.wreg \
+ & arg2 eq arg2 element 1 & arg1 @ez80.is_reg @ez80.wreg \
+ & arg1 metadata 1 scale 0 = 040o & arg2 metadata 1 scale 1 and 004o \
+ & (arg1 metadata 1 scale 0 <> arg2 metadata 1 scale 0 \
+ | arg1 metadata 1 scale 1 = arg2 metadata 1 scale 1)
+ @ez80.emit idxpre arg1, byte arg2 metadata 1 scale 0 or 011o
+ end if
+end inst
+iterate @name, adc, sbc
+ inst @name, @arg1*, @arg2
+ if ~defined arg2
+ if arg1 @ez80.is_reg @ez80.wreg
+ @ez80.nest hl?, @arg1
+ else
+ @ez80.nest a?, @arg1
+ end if
+ else if arg1ind
+ err 'invalid indirection'
+ else if arg1 eq a?
+ if arg2ind
+ if arg2 relativeto arg2 element 1 \
+ & arg2 @ez80.is_reg @ez80.wreg \
+ & arg2 metadata 1 scale 0 = 040o
+ @ez80.emit idxpre arg2, byte 176o + % shl 4, idxoff arg2
+ end if
+ else if arg2 eq arg2 element 1 & arg2 @ez80.is_reg @ez80.breg \
+ & arg2 metadata 1 scale 1 and 001o
+ @ez80.emit idxpre arg2, byte arg2 metadata 1 scale 0 and 007o \
+ or 170o + % shl 4
+ else
+ @ez80.emit <byte 276o + % shl 4, arg2>
+ end if
+ else if arg2ind
+ err 'invalid indirection'
+ else if arg1 eq hl? & arg2 eq arg2 element 1 \
+ & arg2 @ez80.is_reg @ez80.wreg \
+ & arg2 metadata 1 scale 1 and 002o
+ @ez80.emit <byte 355o, arg2 metadata 1 scale 0 + 122o - % shl 3>
+ end if
+ end inst
+end iterate
+iterate <@name, @opc*>, \
+ sub, 220o, \
+ and, 240o, \
+ xor, 250o, \
+ or, 260o, \
+ cp, 270o
+ inst @name, @arg1*, @arg2
+ if ~defined arg2
+ if arg1ind
+ if arg1 relativeto arg1 element 1 \
+ & arg1 @ez80.is_reg @ez80.wreg \
+ & arg1 metadata 1 scale 0 = 040o
+ @ez80.emit idxpre arg1, byte @opc or 006o, idxoff arg1
+ end if
+ else if arg1 relativeto arg1 element 1 \
+ & arg1 @ez80.is_reg @ez80.breg \
+ & arg1 metadata 1 scale 1 and 001o
+ @ez80.emit idxpre arg1, byte arg1 metadata 1 scale 0 and 007o \
+ or @opc
+ else
+ @ez80.emit <byte @opc or 106o, arg1>
+ end if
+ else if arg1ind
+ err 'invalid indirection'
+ else if arg1 eq a?
+ @ez80.nest @name? @arg2
+ end if
+ end inst
+end iterate
+inst tst, @arg1*, @arg2
+ if ~defined arg2
+ if arg1ind
+ if arg1 eq hl?
+ @ez80.emit <byte 355o, 064o>
+ end if
+ else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \
+ & arg1 metadata 1 scale 1 = 003o
+ @ez80.emit <byte 355o, \
+ arg1 metadata 1 scale 0 shl 3 and 070o or 004o>
+ else
+ @ez80.emit <byte 355o, 144o, arg1>
+ end if
+ else if arg1ind
+ err 'invalid indirection'
+ else if arg1 eq a?
+ @ez80.nest tst? @arg2
+ end if
+end inst
+
+inst ret, @cond
+ if ~defined cond
+ @ez80.emit byte 311o
+ else if condind
+ err 'invalid indirection'
+ else if cond eq cond element 1 & cond @ez80.is_reg @ez80.breg \
+ & cond metadata 1 scale 0 and 007o = 001o
+ @ez80.emit byte cond metadata 1 scale 0 and 070o or 300o
+ end if
+end inst
+iterate @name, pop, push
+ inst @name, @reg*&
+ while defined reg + regind
+ if regind
+ err 'invalid indirection'
+ else if reg eq reg element 1 & reg @ez80.is_reg @ez80.wreg \
+ & reg metadata 1 scale 1 and 001o
+ @ez80.emit idxpre reg, \
+ byte reg metadata 1 scale 0 + 275o + % shl 2
+ else if `@name = 'push'
+ @ez80.nest pea? reg
+ else
+ err 'invalid argument'
+ end if
+ restore reg, regind
+ end while
+ end inst
+end iterate
+
+inst jp, @arg1*, @arg2
+ if ~defined arg2
+ if ~arg1ind
+ @ez80.emit byte 303o, word arg1
+ else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.wreg \
+ & arg1 metadata 1 scale 0 = 040o
+ @ez80.emit idxpre arg1, byte 351o
+ end if
+ else if arg1ind | arg2ind
+ err 'invalid indirection'
+ else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \
+ & arg1 metadata 1 scale 0 and 007o = 001o
+ @ez80.emit byte arg1 metadata 1 scale 0 and 070o or 302o, word arg2
+ end if
+end inst
+inst call, @arg1*, @arg2
+ if arg1ind | arg2ind
+ err 'invalid indirection'
+ else if ~defined arg2
+ @ez80.emit byte 315o, word arg1
+ else if arg1 eq arg1 element 1 & arg1 @ez80.is_reg @ez80.breg \
+ & arg1 metadata 1 scale 0 and 007o = 001o
+ @ez80.emit byte arg1 metadata 1 scale 0 and 070o or 304o, word arg2
+ end if
+end inst
+inst rst, @addr*
+ if addrind
+ err 'invalid indirection'
+ else if addr = addr and 070o
+ @ez80.emit byte addr or 307o
+ else
+ err 'invalid rst target'
+ end if
+end inst
+
+iterate <@name, @opc*>, \
+ rlc, 000o, \
+ rrc, 010o, \
+ rl, 020o, \
+ rr, 030o, \
+ sla, 040o, \
+ sra, 050o, \
+ srl, 070o
+ inst @name, @reg*
+ if `@name = 'rl' & ~defined @ez80.pre & ~elementsof reg
+ rb long? * reg
+ define noerr
+ else if regind
+ if reg relativeto reg element 1 & reg @ez80.is_reg @ez80.wreg \
+ & reg metadata 1 scale 0 = 040o
+ @ez80.emit idxpre reg, byte 313o, idxoff reg, byte @opc or 006o
+ end if
+ else if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \
+ & reg metadata 1 scale 1 = 003o
+ @ez80.emit <byte 313o, reg metadata 1 scale 0 and 007o or @opc>
+ end if
+ end inst
+end iterate
+iterate @name, bit, res, set
+ inst @name, @bit, @reg*
+ if bitind
+ err 'invalid indirection'
+ else if regind
+ if reg relativeto reg element 1 & reg @ez80.is_reg @ez80.wreg \
+ & reg metadata 1 scale 0 = 040o
+ @ez80.emit idxpre reg, byte 313o, idxoff bit shr 3 + reg, \
+ byte bit shl 3 and 070o or % shl 6 or 006o
+ end if
+ else if reg eq reg element 1
+ if reg @ez80.is_reg @ez80.breg & reg metadata 1 scale 1 = 003o \
+ & bit = bit and 007o
+ @ez80.emit <byte 313o, reg metadata 1 scale 0 and 007o \
+ or % shl 6 or bit shl 3>
+ else if reg @ez80.is_reg @ez80.wreg \
+ & reg metadata 1 scale 1 = 007o & bit = bit and 017o
+ @ez80.emit <byte 313o, bit shl 3 and 070o or % shl 6 \
+ or reg metadata 1 scale 0 shr 3 \
+ or 001o and not bit shr 3>
+ end if
+ end if
+ end inst
+end iterate
+
+inst out, @port, @reg*
+ if ~portind
+ err 'missing indirection'
+ else if regind
+ err 'invalid indirection'
+ else if port eq bc? | port eq c?
+ if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \
+ & reg metadata 1 scale 1 = 003o
+ @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \
+ or 101o>
+ else if ~reg
+ @ez80.emit <byte 355o, 161o>
+ end if
+ else if reg eq a?
+ @ez80.emit <byte 323o, port>
+ end if
+end inst
+inst in, @reg*, @port
+ if ~defined port
+ @ez80.nest in? f?, @reg
+ else if regind
+ err 'invalid indirection'
+ else if ~portind
+ err 'missing indirection'
+ else if port eq bc? | port eq c? & reg eq reg element 1 \
+ & reg @ez80.is_reg @ez80.breg & reg metadata 1 scale 1 and 002o
+ @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \
+ or 100o>
+ else if reg eq a?
+ @ez80.emit <byte 333o, port>
+ end if
+end inst
+inst in0, @reg*, @port
+ if ~defined port
+ @ez80.nest in0? f?, @reg
+ else if regind
+ err 'invalid indirection'
+ else if ~portind
+ err 'missing indirection'
+ else if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \
+ & reg metadata 1 scale 1 and 002o
+ @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \
+ or 000o, port>
+ end if
+end inst
+inst out0, @port, @reg*
+ if ~portind
+ err 'missing indirection'
+ else if regind
+ err 'invalid indirection'
+ else if reg eq reg element 1 & reg @ez80.is_reg @ez80.breg \
+ & reg metadata 1 scale 1 = 003o
+ @ez80.emit <byte 355o, reg metadata 1 scale 0 shl 3 and 070o \
+ or 001o, port>
+ end if
+end inst
+inst tstio, @src*
+ if srcind
+ err 'invalid indirection'
+ else
+ @ez80.emit <byte 355o, 164o, src>
+ end if
+end inst
+
+inst lea, @dst, @src*
+ if dstind | srcind
+ err 'invalid indirection'
+ else if dst eq dst element 1 & src relativeto src element 1 \
+ & dst @ez80.is_reg @ez80.wreg & src @ez80.is_reg @ez80.wreg \
+ & dst metadata 1 scale 0 <> 060o & src metadata 1 scale 1 > 300o
+ local opc
+ if dst metadata 1 scale 1 and 002o
+ opc = src metadata 1 scale 1 shr 5 and 001o \
+ or dst metadata 1 scale 0 or 002o
+ else if dst relativeto src
+ opc = dst metadata 1 scale 1 shr 5 and 001o or 062o
+ else
+ opc = dst metadata 1 scale 1 shr 5 and 001o or 124o
+ end if
+ @ez80.emit <byte 355o, opc>, offset src scale 0
+ end if
+end inst
+inst pea, @src*
+ if srcind
+ err 'invalid indirection'
+ else if src relativeto src element 1 & src @ez80.is_reg @ez80.wreg \
+ & src metadata 1 scale 1 > 300o
+ @ez80.emit <byte 355o, src metadata 1 scale 1 shr 5 and 001o + 145o>, \
+ offset src scale 0
+ end if
+end inst
+
+inst im, @mode*
+ if modeind
+ err 'invalid indirection'
+ else if mode = 0
+ @ez80.emit <byte 355o, 106o>
+ else if mode = 1
+ @ez80.emit <byte 355o, 126o>
+ else if mode = 2
+ @ez80.emit <byte 355o, 136o>
+ else
+ err 'invalid mode'
+ end if
+end inst
+
+inst mlt, @reg*
+ if regind
+ err 'invalid indirection'
+ else if reg eq reg element 1 & reg @ez80.is_reg @ez80.wreg \
+ & reg metadata 1 scale 1 and 002o
+ @ez80.emit <byte 355o, reg metadata 1 scale 0 or 114o>
+ end if
+end inst
+
+purge inst
+purge end?.inst
diff --git a/frontends/calculator/CEdev/include/fasmg-ez80/ld.fasmg b/frontends/calculator/CEdev/include/fasmg-ez80/ld.fasmg index e7bdbf8..3c3e168 100644 --- a/frontends/calculator/CEdev/include/fasmg-ez80/ld.fasmg +++ b/frontends/calculator/CEdev/include/fasmg-ez80/ld.fasmg @@ -1,759 +1,759 @@ -assert "\"" = '"' ; check for patched fasmg -include 'tiformat.inc' -define ez80 ez80 -namespace ez80 - include 'ez80.inc' -end namespace -macro ?! $ : $ , \ - $@ : $@ , \ - $$ : $$ , \ - and : and , \ - assert : assert , \ - at : at , \ - break : break , \ - define : define , \ - defined : defined , \ - dup : dup , \ - else : else , \ - emit : emit , \ - end : end , \ - equ : equ , \ - err : err , \ - esc : esc , \ - ez80 : ez80 , \ - from : from , \ - if : if , \ - include : include , \ - irpv : irpv , \ - iterate : iterate , \ - label : label , \ - lengthof : lengthof , \ - load : load , \ - local : local , \ - macro : macro , \ - match : match , \ - mod : mod , \ - namespace: namespace, \ - not : not , \ - or : or , \ - purge : purge , \ - rb : rb , \ - repeat : repeat , \ - restore : restore , \ - restruc : restruc , \ - rawmatch : rawmatch , \ - segment : segment , \ - shl : shl , \ - shr : shr , \ - store : store , \ - struc : struc , \ - used : used , \ - virtual : virtual , \ - while : while , \ - xor : xor - local global, debug, files, segments, hex, output - global equ - segments equ - restore global, segments - - macro files.libs.parse file, offset, isused, anyused* - local private - namespace private - macro library?! name, version* - end if - if anyused - emit 1: $C0, name, 0, version - end if - if 0 - end macro - iterate each, export, export_pointer - macro each?! function* - end if - namespace ez80 - if used global._#function - isused = 1 - global._#function := $ + %-1 - jp offset - virtual - local name - emit 1: '_', `function - load name: $ - $$ from $$ - global equ name = global._#function - end virtual - end if - offset = offset + word + @ez80.il - end namespace - if 0 - end macro - end iterate - if 0 - esc include! file - end if - end namespace - end macro - macro files.libs.handle file, isused* - local offset, anyused - offset = 0 - files.libs.parse file, offset, isused, anyused - anyused := isused - end macro - - macro files.srcs.check file, isused* - local private - namespace private - iterate name, DEF, GLOBAL, PUBLIC, XDEF - iterate style, name, .name - macro style?! symbols*& - end if - iterate symbol, symbols - if used global.symbol - isused = 1 - end if - end iterate - if 0 - end macro - end iterate - end iterate - if 0 - esc include! file - end if - end namespace - end macro - macro files.srcs.parse file* - local private - namespace private - virtual segments.code.area - ?$ equ $ - ?XOR? equ xor - ?AND? equ and - ?OR? equ or - ?SHL? equ shl - ?SHR? equ shr - ?NOT? equ not - iterate name, LIST, NEWPAGE, NOLIST, PAGE - macro name? - end macro - end iterate - iterate name, CPU, TITLE - macro name? arg* - end macro - end iterate - iterate name, COPY, INCLUDE - macro name?! path* - include path - end macro - end iterate - iterate name, EXTERN, EXTERNAL, REF, XREF - macro name? symbols*& - match list : space, symbols - iterate symbol, list - symbol := global.symbol - end iterate - else - iterate symbol, symbols - symbol := global.symbol - end iterate - end match - end macro - end iterate - iterate name, DEF, GLOBAL, PUBLIC, XDEF - macro name? symbols*& - iterate symbol, symbols - global.symbol := symbol - virtual - local name - emit 1: `symbol - load name: $ - $$ from $$ - global equ name = global.symbol - end virtual - end iterate - end macro - end iterate - struc (symbol) EQU? expr* - local error - if ~defined error & defined symbol | error - err 'Symbol "', `symbol, '" already defined' - error = 1 - else - error = 0 - end if - ?symbol = expr - end struc - iterate name, VAR, SET - struc (symbol) name? expr* - ?symbol = expr - end struc - end iterate - macro DS? count - local c - c = count - rb c - end macro - struc DS? count - .: DS? count - end struc - iterate <def,blk,size*>, B,B,1, W,W,2, W24,P,3, L,L,4 - macro D#def? vals*& - local v - iterate val, vals - v = val - emit size: v - end iterate - end macro - macro BLK#blk? count*, init - local c, i - c = count - match, init - emit size: c dup ? - else - i = init - emit size: c dup i - end match - end macro - iterate name, D#def, BLK#blk - struc name? args& - .: name? args - end struc - end iterate - end iterate - iterate <name,alias*>, TRIO,DW24, DF,DL - macro name? vals*& - alias? vals - end macro - struc name? args& - .: name? args - end struc - end iterate - macro ALIGN? val* - local v - v = val - rb v-1 - ($ + v-1) mod v - end macro - macro SEGMENT? name* - segment name - end macro - macro ASSUME? expr* - namespace ez80 - assume? expr - end namespace - end macro - iterate register, B, NZ, Z, NC, C, PO, PE, P, M, D, E, \ - H, IXH, IYH, L, IXL, IYL, F, A, I, R, \ - MB, BC, DE, HL, IX, IY, SP, AF, AF' - register? := ez80.register? - end iterate - iterate suffix, , .s?, .l?, .is?, .il?, .sis?, .sil?, .lis?, .lil? - irpv name, ez80.@ez80.oplist - rawmatch rawname, name - define rawname rawname - macro rawname#suffix args& - namespace ez80 - name#suffix args - end namespace - end macro - end rawmatch - end irpv - macro LD? d, s* - namespace ez80 - @ez80.classify dst, dstind, d - @ez80.classify src, srcind, s - if ~dstind & dst eq dst element 1 & dst @ez80.is_reg @ez80.wreg \ - & dst metadata 1 scale 1 and 001o & ~srcind \ - & src relativeto src element 1 & src @ez80.is_reg @ez80.wreg - if src metadata 1 scale 1 = 007o - PUSH? s - POP? d - else - LEA? d, s - end if - else - LD? d, s - end if - end namespace - end macro - macro JR?#suffix args& - namespace ez80 - jq?#suffix args - end namespace - end macro - end iterate - iterate <name,carry>, UEXT,<OR? A?,A>, SEXT,RLA - macro name? reg* - carry? - SBC? reg, reg - end macro - end iterate - macro COMMENT?! delim*& - end match - local inside - inside = 0 - macro ?! line& - local length, text - length = 0 - if inside - length = lengthof `line - text = `line - else if `line = 'end match' - inside = 1 - length = lengthof `delim - 1 - text = `delim shr 8 - end if - repeat length - if ~text xor `delim and $FF - purge ? - break - end if - text = text shr 8 - end repeat - end macro - end macro - - if defined debug - debug.enabled = 0 - debug.startAddr = $ - iterate name, ALIAS, BASE, DEFINE, ENDREC, SPACE, TAG - macro name? str1* - if debug.enabled - virtual debug - debug.uleb128 debug.name - debug.string str1 - end virtual - end if - end macro - end iterate - iterate name, BEGFUNC, ENDFUNC - macro name? str1, num1, str2* - if debug.enabled - local line, addr - line = num1 - addr = $ - virtual debug - debug.uleb128 debug.name - debug.string str1, str2 - debug.uleb128 line - debug.line, addr - debug.addr - end virtual - debug.line = line - debug.addr = addr - end if - end macro - end iterate - macro BEGREC? str1, num1* - if debug.enabled - virtual debug - debug.uleb128 debug.BEGREC - debug.string str1 - debug.uleb128 num1 - end virtual - end if - end macro - iterate <name,signed>, CLASS,u, DIM,u, LENGTH,u, REG,u, SIZE,u, TYPE,s, VALUE,s - macro name? num1* - if debug.enabled - virtual debug - debug.uleb128 debug.name - debug.signed#leb128 num1 - end virtual - end if - end macro - end iterate - macro DEBUG? str1* - virtual debug - debug.uleb128 debug.FILE, lengthof debug.source - emit 1: debug.source - debug.uleb128 debug.startAddr - debug.addr, debug.DEBUG - debug.string str1 - end virtual - debug.enabled = 1 - debug.line = 0 - debug.addr = debug.startAddr - end macro - macro END?! - end if - if debug.enabled - local addr - segment code - addr = $ - virtual debug - debug.uleb128 debug.END, addr - debug.addr - end virtual - debug.addr = addr - end if - if 0 - end macro - macro ENDEF? - if debug.enabled - virtual debug - debug.uleb128 debug.ENDEF - end virtual - end if - end macro - macro FILE? str1* - debug.source = str1 - end macro - macro LINE? num1* - local line, addr - line = num1 - addr = $ - if line <> debug.line | addr <> debug.addr & debug.enabled - virtual debug - debug.uleb128 debug.LINE, line - debug.line, addr - debug.addr - end virtual - debug.line = line - debug.addr = addr - end if - end macro - else - iterate name, ALIAS, BASE, BEGFUNC, BEGREC, CLASS, DEBUG, \ - DEFINE, DIM, ENDEF, ENDFUNC, ENDREC, FILE, \ - LENGTH, LINE, REG, SIZE, SPACE, TAG, TYPE, VALUE - macro name? args& - end macro - end iterate - macro END?! - end if - if 0 - end macro - end if - - struc ? def::& - . def - end struc - macro ? line& - match .rest, line - rest - else match first= .rest, line - first rest - else - line - end match - end macro - if 1 - include file - end if - purge ? - restruc ? - end virtual - end namespace - end macro - macro files.srcs.handle file, isused* - if ~isused - files.srcs.check file, isused - end if - if isused - files.srcs.parse file - end if - end macro - - macro symbol? args*& - iterate arg, args - rawmatch symbol == value, arg - namespace segments - global.symbol := value - virtual - local name - emit 1: `symbol - load name: $ - $$ from $$ - global equ = name global.symbol - end virtual - end namespace - else - 'Syntax error in symbol arguments' - end rawmatch - end iterate - end macro - - iterate name, srcs, libs - macro files.name.add file, used* - local isused - rawmatch rawused, used - namespace segments - isused = rawused - end namespace - end rawmatch - if `file and $FF = "'" - files.name equ file, isused - else - files.name equ `file, isused - end if - end macro - macro name? args*& - local require - iterate arg, args - match file= =used? =if?= used, arg - files.name.add file, used - else match file= =used?, arg - files.name.add file, 1 - else - files.name.add arg, 0 - end match - end iterate - end macro - end iterate - - macro locate? args*& - iterate arg, args - rawmatch name =at? location, arg - segments equ segments.name? - namespace segments - name? := `name - name.base? := location - end namespace - else - err 'Syntax error in locate argument' - end rawmatch - end iterate - end macro - macro range? args*& - iterate arg, args - rawmatch name lower : upper, arg - locate name at lower - namespace segments - name.high? := upper - end namespace - else - err 'Syntax error in range arguments' - end rawmatch - end iterate - end macro - macro order?: args*& - match first =, second =, rest, args - order first, second - order second, rest - else match first =, second, args - locate second at first.base + first.length - else - err 'Not enough order arguments' - end match - end macro - macro merge? args*& - match name == list, args - order list - iterate segment, list - locate name at segment.base - indx %% - namespace segments - name.top? := segment.base + segment.length - if defined segment.high - name.high? := segment.high - end if - end namespace - break - end iterate - else - err 'Syntax error in merge arguments' - end match - end macro - - macro hex value*, leading: '0', digits: 6 - local val, zero, digit, char - emit 1: ' ' - val = value - zero = leading - repeat digits - digit = (val shr ((%% - %) shl 2)) and 0Fh - if digit < 10 - char = '0' + digit - else - char = 'A' + digit - 10 - end if - if digit - zero = '0' - else if % <> %% - char = zero - end if - emit 1: char - end repeat - end macro - - macro map? - local longest, name - postpone ? - virtual as 'map' - longest = lengthof "Segment" - irpv segment, segments - if longest < lengthof segment - longest = lengthof segment - end if - end irpv - emit 1: "Segment", longest - lengthof "Segment" + 1 dup ' ', "Base Top High Length", 10, longest dup '-', 4 dup " ------", '-', 10 - irpv segment, segments - namespace segment - if longest < lengthof segment - longest = lengthof segment - end if - emit 1: segment, longest - lengthof segment dup ' ' - hex base - hex top - if defined high - hex high - else - emit 1: 7 dup ' ' - end if - hex length, ' ' - emit 1: 'h', 10 - end namespace - end irpv - match any, global - longest = lengthof "Label" - irpv symbol, global - match name == value, symbol - if longest < lengthof name - longest = lengthof name - end if - end match - end irpv - emit 1: 10, "Label", longest - lengthof "Label" + 3 dup ' ', "Value", 10, longest dup '-', 3 dup ' ', 6 dup '-', 10 - irpv symbol, global - match name == value, symbol - emit 1: name, longest - lengthof name + 1 dup ' ', '=' - hex value - emit 1: 10 - end match - end irpv - end match - end virtual - end postpone - end macro - macro dbg? - virtual as 'dbg' - debug:: - end virtual - namespace debug - virtual at 0 - iterate name, EOF, ALIAS, BASE, BEGFUNC, BEGREC, CLASS, DEBUG, DEFINE, \ - DIM, END, ENDEF, ENDFUNC, ENDREC, FILE, LENGTH, LINE, \ - REG, SIZE, SPACE, STRINGS, TAG, TYPE, VALUE - name rb 1 - end iterate - end virtual - line = 0 - addr = 0 - macro uleb128 values*& - iterate value, values - local val - val = value - assert val >= 0 - while val shr 7 > 0 - emit 1: val and 07Fh or 080h - val = val shr 7 - end while - emit 1: val - end iterate - end macro - macro sleb128 values*& - iterate value, values - local val - val = value - while val shr 6 <> 0 & val shr 6 <> -1 - emit 1: val and 07Fh or 080h - val = val shr 7 - end while - emit 1: val and 07Fh - end iterate - end macro - restore strings - macro string values*& - iterate value, values - local count, unfound - count = 0 - unfound = 1 - irpv each, debug.strings - if each = value - unfound = 0 - debug.uleb128 % - break - end if - count = %% - end irpv - if unfound - debug.uleb128 count + 1 - debug.strings =: value - end if - end iterate - end macro - end namespace - end macro - - macro segment name* - end virtual - virtual segments.name.area - end macro - - if ~defined segments - err 'No segments defined' - else - restore output.base, output.top ; forbid forward reference - irpv segment, segments - namespace segment - virtual at base - area?:: - end virtual - if ~defined output.base | output.base > base & ~defined high - output.base = base - end if - end namespace - end irpv - irpv file, files.srcs - files = 0 - files.srcs.handle file - end irpv - if ~defined files - err 'Please pass the input files with -i\'srcs "file1" [if require1], "file2" [if require2], ...\'' - end if - irpv file, files.libs - virtual segments.libs.area - files.libs.handle file - end virtual - end irpv - - if defined debug - virtual debug - if defined debug.strings - debug.uleb128 debug.STRINGS - irpv string, debug.strings - if % = 1 - debug.uleb128 %% - end if - debug.uleb128 lengthof string - emit 1: string - end irpv - end if - debug.uleb128 debug.EOF - end virtual - end if - - irpv segment, segments - namespace segment - virtual area - top? := $ - length? := $ - $$ - initlen? := $@ - $$ - end virtual - if ~defined high - if ~defined output.top | output.top < top - output.top = top - end if - else if top > high - repeat 1, len: length, over: top - high, max: high - base - err 'Segment ', segment, ' is ', `len, ' bytes, ', \ - `over, ' bytes larger than the maximum of ', \ - `max, ' bytes' - end repeat - end if - end namespace - end irpv - org output.base - rb output.top - $ - postpone ? - irpv segment, segments - namespace segment - if ~defined high - load output: initlen from area: base - store output: initlen at base - end if - end namespace - end irpv - end postpone - end if - purge ? -end macro +assert "\"" = '"' ; check for patched fasmg
+include 'tiformat.inc'
+define ez80 ez80
+namespace ez80
+ include 'ez80.inc'
+end namespace
+macro ?! $ : $ , \
+ $@ : $@ , \
+ $$ : $$ , \
+ and : and , \
+ assert : assert , \
+ at : at , \
+ break : break , \
+ define : define , \
+ defined : defined , \
+ dup : dup , \
+ else : else , \
+ emit : emit , \
+ end : end , \
+ equ : equ , \
+ err : err , \
+ esc : esc , \
+ ez80 : ez80 , \
+ from : from , \
+ if : if , \
+ include : include , \
+ irpv : irpv , \
+ iterate : iterate , \
+ label : label , \
+ lengthof : lengthof , \
+ load : load , \
+ local : local , \
+ macro : macro , \
+ match : match , \
+ mod : mod , \
+ namespace: namespace, \
+ not : not , \
+ or : or , \
+ purge : purge , \
+ rb : rb , \
+ repeat : repeat , \
+ restore : restore , \
+ restruc : restruc , \
+ rawmatch : rawmatch , \
+ segment : segment , \
+ shl : shl , \
+ shr : shr , \
+ store : store , \
+ struc : struc , \
+ used : used , \
+ virtual : virtual , \
+ while : while , \
+ xor : xor
+ local global, debug, files, segments, hex, output
+ global equ
+ segments equ
+ restore global, segments
+
+ macro files.libs.parse file, offset, isused, anyused*
+ local private
+ namespace private
+ macro library?! name, version*
+ end if
+ if anyused
+ emit 1: $C0, name, 0, version
+ end if
+ if 0
+ end macro
+ iterate each, export, export_pointer
+ macro each?! function*
+ end if
+ namespace ez80
+ if used global._#function
+ isused = 1
+ global._#function := $ + %-1
+ jp offset
+ virtual
+ local name
+ emit 1: '_', `function
+ load name: $ - $$ from $$
+ global equ name = global._#function
+ end virtual
+ end if
+ offset = offset + word + @ez80.il
+ end namespace
+ if 0
+ end macro
+ end iterate
+ if 0
+ esc include! file
+ end if
+ end namespace
+ end macro
+ macro files.libs.handle file, isused*
+ local offset, anyused
+ offset = 0
+ files.libs.parse file, offset, isused, anyused
+ anyused := isused
+ end macro
+
+ macro files.srcs.check file, isused*
+ local private
+ namespace private
+ iterate name, DEF, GLOBAL, PUBLIC, XDEF
+ iterate style, name, .name
+ macro style?! symbols*&
+ end if
+ iterate symbol, symbols
+ if used global.symbol
+ isused = 1
+ end if
+ end iterate
+ if 0
+ end macro
+ end iterate
+ end iterate
+ if 0
+ esc include! file
+ end if
+ end namespace
+ end macro
+ macro files.srcs.parse file*
+ local private
+ namespace private
+ virtual segments.code.area
+ ?$ equ $
+ ?XOR? equ xor
+ ?AND? equ and
+ ?OR? equ or
+ ?SHL? equ shl
+ ?SHR? equ shr
+ ?NOT? equ not
+ iterate name, LIST, NEWPAGE, NOLIST, PAGE
+ macro name?
+ end macro
+ end iterate
+ iterate name, CPU, TITLE
+ macro name? arg*
+ end macro
+ end iterate
+ iterate name, COPY, INCLUDE
+ macro name?! path*
+ include path
+ end macro
+ end iterate
+ iterate name, EXTERN, EXTERNAL, REF, XREF
+ macro name? symbols*&
+ match list : space, symbols
+ iterate symbol, list
+ symbol := global.symbol
+ end iterate
+ else
+ iterate symbol, symbols
+ symbol := global.symbol
+ end iterate
+ end match
+ end macro
+ end iterate
+ iterate name, DEF, GLOBAL, PUBLIC, XDEF
+ macro name? symbols*&
+ iterate symbol, symbols
+ global.symbol := symbol
+ virtual
+ local name
+ emit 1: `symbol
+ load name: $ - $$ from $$
+ global equ name = global.symbol
+ end virtual
+ end iterate
+ end macro
+ end iterate
+ struc (symbol) EQU? expr*
+ local error
+ if ~defined error & defined symbol | error
+ err 'Symbol "', `symbol, '" already defined'
+ error = 1
+ else
+ error = 0
+ end if
+ ?symbol = expr
+ end struc
+ iterate name, VAR, SET
+ struc (symbol) name? expr*
+ ?symbol = expr
+ end struc
+ end iterate
+ macro DS? count
+ local c
+ c = count
+ rb c
+ end macro
+ struc DS? count
+ .: DS? count
+ end struc
+ iterate <def,blk,size*>, B,B,1, W,W,2, W24,P,3, L,L,4
+ macro D#def? vals*&
+ local v
+ iterate val, vals
+ v = val
+ emit size: v
+ end iterate
+ end macro
+ macro BLK#blk? count*, init
+ local c, i
+ c = count
+ match, init
+ emit size: c dup ?
+ else
+ i = init
+ emit size: c dup i
+ end match
+ end macro
+ iterate name, D#def, BLK#blk
+ struc name? args&
+ .: name? args
+ end struc
+ end iterate
+ end iterate
+ iterate <name,alias*>, TRIO,DW24, DF,DL
+ macro name? vals*&
+ alias? vals
+ end macro
+ struc name? args&
+ .: name? args
+ end struc
+ end iterate
+ macro ALIGN? val*
+ local v
+ v = val
+ rb v-1 - ($ + v-1) mod v
+ end macro
+ macro SEGMENT? name*
+ segment name
+ end macro
+ macro ASSUME? expr*
+ namespace ez80
+ assume? expr
+ end namespace
+ end macro
+ iterate register, B, NZ, Z, NC, C, PO, PE, P, M, D, E, \
+ H, IXH, IYH, L, IXL, IYL, F, A, I, R, \
+ MB, BC, DE, HL, IX, IY, SP, AF, AF'
+ register? := ez80.register?
+ end iterate
+ iterate suffix, , .s?, .l?, .is?, .il?, .sis?, .sil?, .lis?, .lil?
+ irpv name, ez80.@ez80.oplist
+ rawmatch rawname, name
+ define rawname rawname
+ macro rawname#suffix args&
+ namespace ez80
+ name#suffix args
+ end namespace
+ end macro
+ end rawmatch
+ end irpv
+ macro LD? d, s*
+ namespace ez80
+ @ez80.classify dst, dstind, d
+ @ez80.classify src, srcind, s
+ if ~dstind & dst eq dst element 1 & dst @ez80.is_reg @ez80.wreg \
+ & dst metadata 1 scale 1 and 001o & ~srcind \
+ & src relativeto src element 1 & src @ez80.is_reg @ez80.wreg
+ if src metadata 1 scale 1 = 007o
+ PUSH? s
+ POP? d
+ else
+ LEA? d, s
+ end if
+ else
+ LD? d, s
+ end if
+ end namespace
+ end macro
+ macro JR?#suffix args&
+ namespace ez80
+ jq?#suffix args
+ end namespace
+ end macro
+ end iterate
+ iterate <name,carry>, UEXT,<OR? A?,A>, SEXT,RLA
+ macro name? reg*
+ carry?
+ SBC? reg, reg
+ end macro
+ end iterate
+ macro COMMENT?! delim*&
+ end match
+ local inside
+ inside = 0
+ macro ?! line&
+ local length, text
+ length = 0
+ if inside
+ length = lengthof `line
+ text = `line
+ else if `line = 'end match'
+ inside = 1
+ length = lengthof `delim - 1
+ text = `delim shr 8
+ end if
+ repeat length
+ if ~text xor `delim and $FF
+ purge ?
+ break
+ end if
+ text = text shr 8
+ end repeat
+ end macro
+ end macro
+
+ if defined debug
+ debug.enabled = 0
+ debug.startAddr = $
+ iterate name, ALIAS, BASE, DEFINE, ENDREC, SPACE, TAG
+ macro name? str1*
+ if debug.enabled
+ virtual debug
+ debug.uleb128 debug.name
+ debug.string str1
+ end virtual
+ end if
+ end macro
+ end iterate
+ iterate name, BEGFUNC, ENDFUNC
+ macro name? str1, num1, str2*
+ if debug.enabled
+ local line, addr
+ line = num1
+ addr = $
+ virtual debug
+ debug.uleb128 debug.name
+ debug.string str1, str2
+ debug.uleb128 line - debug.line, addr - debug.addr
+ end virtual
+ debug.line = line
+ debug.addr = addr
+ end if
+ end macro
+ end iterate
+ macro BEGREC? str1, num1*
+ if debug.enabled
+ virtual debug
+ debug.uleb128 debug.BEGREC
+ debug.string str1
+ debug.uleb128 num1
+ end virtual
+ end if
+ end macro
+ iterate <name,signed>, CLASS,u, DIM,u, LENGTH,u, REG,u, SIZE,u, TYPE,s, VALUE,s
+ macro name? num1*
+ if debug.enabled
+ virtual debug
+ debug.uleb128 debug.name
+ debug.signed#leb128 num1
+ end virtual
+ end if
+ end macro
+ end iterate
+ macro DEBUG? str1*
+ virtual debug
+ debug.uleb128 debug.FILE, lengthof debug.source
+ emit 1: debug.source
+ debug.uleb128 debug.startAddr - debug.addr, debug.DEBUG
+ debug.string str1
+ end virtual
+ debug.enabled = 1
+ debug.line = 0
+ debug.addr = debug.startAddr
+ end macro
+ macro END?!
+ end if
+ if debug.enabled
+ local addr
+ segment code
+ addr = $
+ virtual debug
+ debug.uleb128 debug.END, addr - debug.addr
+ end virtual
+ debug.addr = addr
+ end if
+ if 0
+ end macro
+ macro ENDEF?
+ if debug.enabled
+ virtual debug
+ debug.uleb128 debug.ENDEF
+ end virtual
+ end if
+ end macro
+ macro FILE? str1*
+ debug.source = str1
+ end macro
+ macro LINE? num1*
+ local line, addr
+ line = num1
+ addr = $
+ if line <> debug.line | addr <> debug.addr & debug.enabled
+ virtual debug
+ debug.uleb128 debug.LINE, line - debug.line, addr - debug.addr
+ end virtual
+ debug.line = line
+ debug.addr = addr
+ end if
+ end macro
+ else
+ iterate name, ALIAS, BASE, BEGFUNC, BEGREC, CLASS, DEBUG, \
+ DEFINE, DIM, ENDEF, ENDFUNC, ENDREC, FILE, \
+ LENGTH, LINE, REG, SIZE, SPACE, TAG, TYPE, VALUE
+ macro name? args&
+ end macro
+ end iterate
+ macro END?!
+ end if
+ if 0
+ end macro
+ end if
+
+ struc ? def::&
+ . def
+ end struc
+ macro ? line&
+ match .rest, line
+ rest
+ else match first= .rest, line
+ first rest
+ else
+ line
+ end match
+ end macro
+ if 1
+ include file
+ end if
+ purge ?
+ restruc ?
+ end virtual
+ end namespace
+ end macro
+ macro files.srcs.handle file, isused*
+ if ~isused
+ files.srcs.check file, isused
+ end if
+ if isused
+ files.srcs.parse file
+ end if
+ end macro
+
+ macro symbol? args*&
+ iterate arg, args
+ rawmatch symbol == value, arg
+ namespace segments
+ global.symbol := value
+ virtual
+ local name
+ emit 1: `symbol
+ load name: $ - $$ from $$
+ global equ = name global.symbol
+ end virtual
+ end namespace
+ else
+ 'Syntax error in symbol arguments'
+ end rawmatch
+ end iterate
+ end macro
+
+ iterate name, srcs, libs
+ macro files.name.add file, used*
+ local isused
+ rawmatch rawused, used
+ namespace segments
+ isused = rawused
+ end namespace
+ end rawmatch
+ if `file and $FF = "'"
+ files.name equ file, isused
+ else
+ files.name equ `file, isused
+ end if
+ end macro
+ macro name? args*&
+ local require
+ iterate arg, args
+ match file= =used? =if?= used, arg
+ files.name.add file, used
+ else match file= =used?, arg
+ files.name.add file, 1
+ else
+ files.name.add arg, 0
+ end match
+ end iterate
+ end macro
+ end iterate
+
+ macro locate? args*&
+ iterate arg, args
+ rawmatch name =at? location, arg
+ segments equ segments.name?
+ namespace segments
+ name? := `name
+ name.base? := location
+ end namespace
+ else
+ err 'Syntax error in locate argument'
+ end rawmatch
+ end iterate
+ end macro
+ macro range? args*&
+ iterate arg, args
+ rawmatch name lower : upper, arg
+ locate name at lower
+ namespace segments
+ name.high? := upper
+ end namespace
+ else
+ err 'Syntax error in range arguments'
+ end rawmatch
+ end iterate
+ end macro
+ macro order?: args*&
+ match first =, second =, rest, args
+ order first, second
+ order second, rest
+ else match first =, second, args
+ locate second at first.base + first.length
+ else
+ err 'Not enough order arguments'
+ end match
+ end macro
+ macro merge? args*&
+ match name == list, args
+ order list
+ iterate segment, list
+ locate name at segment.base
+ indx %%
+ namespace segments
+ name.top? := segment.base + segment.length
+ if defined segment.high
+ name.high? := segment.high
+ end if
+ end namespace
+ break
+ end iterate
+ else
+ err 'Syntax error in merge arguments'
+ end match
+ end macro
+
+ macro hex value*, leading: '0', digits: 6
+ local val, zero, digit, char
+ emit 1: ' '
+ val = value
+ zero = leading
+ repeat digits
+ digit = (val shr ((%% - %) shl 2)) and 0Fh
+ if digit < 10
+ char = '0' + digit
+ else
+ char = 'A' + digit - 10
+ end if
+ if digit
+ zero = '0'
+ else if % <> %%
+ char = zero
+ end if
+ emit 1: char
+ end repeat
+ end macro
+
+ macro map?
+ local longest, name
+ postpone ?
+ virtual as 'map'
+ longest = lengthof "Segment"
+ irpv segment, segments
+ if longest < lengthof segment
+ longest = lengthof segment
+ end if
+ end irpv
+ emit 1: "Segment", longest - lengthof "Segment" + 1 dup ' ', "Base Top High Length", 10, longest dup '-', 4 dup " ------", '-', 10
+ irpv segment, segments
+ namespace segment
+ if longest < lengthof segment
+ longest = lengthof segment
+ end if
+ emit 1: segment, longest - lengthof segment dup ' '
+ hex base
+ hex top
+ if defined high
+ hex high
+ else
+ emit 1: 7 dup ' '
+ end if
+ hex length, ' '
+ emit 1: 'h', 10
+ end namespace
+ end irpv
+ match any, global
+ longest = lengthof "Label"
+ irpv symbol, global
+ match name == value, symbol
+ if longest < lengthof name
+ longest = lengthof name
+ end if
+ end match
+ end irpv
+ emit 1: 10, "Label", longest - lengthof "Label" + 3 dup ' ', "Value", 10, longest dup '-', 3 dup ' ', 6 dup '-', 10
+ irpv symbol, global
+ match name == value, symbol
+ emit 1: name, longest - lengthof name + 1 dup ' ', '='
+ hex value
+ emit 1: 10
+ end match
+ end irpv
+ end match
+ end virtual
+ end postpone
+ end macro
+ macro dbg?
+ virtual as 'dbg'
+ debug::
+ end virtual
+ namespace debug
+ virtual at 0
+ iterate name, EOF, ALIAS, BASE, BEGFUNC, BEGREC, CLASS, DEBUG, DEFINE, \
+ DIM, END, ENDEF, ENDFUNC, ENDREC, FILE, LENGTH, LINE, \
+ REG, SIZE, SPACE, STRINGS, TAG, TYPE, VALUE
+ name rb 1
+ end iterate
+ end virtual
+ line = 0
+ addr = 0
+ macro uleb128 values*&
+ iterate value, values
+ local val
+ val = value
+ assert val >= 0
+ while val shr 7 > 0
+ emit 1: val and 07Fh or 080h
+ val = val shr 7
+ end while
+ emit 1: val
+ end iterate
+ end macro
+ macro sleb128 values*&
+ iterate value, values
+ local val
+ val = value
+ while val shr 6 <> 0 & val shr 6 <> -1
+ emit 1: val and 07Fh or 080h
+ val = val shr 7
+ end while
+ emit 1: val and 07Fh
+ end iterate
+ end macro
+ restore strings
+ macro string values*&
+ iterate value, values
+ local count, unfound
+ count = 0
+ unfound = 1
+ irpv each, debug.strings
+ if each = value
+ unfound = 0
+ debug.uleb128 %
+ break
+ end if
+ count = %%
+ end irpv
+ if unfound
+ debug.uleb128 count + 1
+ debug.strings =: value
+ end if
+ end iterate
+ end macro
+ end namespace
+ end macro
+
+ macro segment name*
+ end virtual
+ virtual segments.name.area
+ end macro
+
+ if ~defined segments
+ err 'No segments defined'
+ else
+ restore output.base, output.top ; forbid forward reference
+ irpv segment, segments
+ namespace segment
+ virtual at base
+ area?::
+ end virtual
+ if ~defined output.base | output.base > base & ~defined high
+ output.base = base
+ end if
+ end namespace
+ end irpv
+ irpv file, files.srcs
+ files = 0
+ files.srcs.handle file
+ end irpv
+ if ~defined files
+ err 'Please pass the input files with -i\'srcs "file1" [if require1], "file2" [if require2], ...\''
+ end if
+ irpv file, files.libs
+ virtual segments.libs.area
+ files.libs.handle file
+ end virtual
+ end irpv
+
+ if defined debug
+ virtual debug
+ if defined debug.strings
+ debug.uleb128 debug.STRINGS
+ irpv string, debug.strings
+ if % = 1
+ debug.uleb128 %%
+ end if
+ debug.uleb128 lengthof string
+ emit 1: string
+ end irpv
+ end if
+ debug.uleb128 debug.EOF
+ end virtual
+ end if
+
+ irpv segment, segments
+ namespace segment
+ virtual area
+ top? := $
+ length? := $ - $$
+ initlen? := $@ - $$
+ end virtual
+ if ~defined high
+ if ~defined output.top | output.top < top
+ output.top = top
+ end if
+ else if top > high
+ repeat 1, len: length, over: top - high, max: high - base
+ err 'Segment ', segment, ' is ', `len, ' bytes, ', \
+ `over, ' bytes larger than the maximum of ', \
+ `max, ' bytes'
+ end repeat
+ end if
+ end namespace
+ end irpv
+ org output.base
+ rb output.top - $
+ postpone ?
+ irpv segment, segments
+ namespace segment
+ if ~defined high
+ load output: initlen from area: base
+ store output: initlen at base
+ end if
+ end namespace
+ end irpv
+ end postpone
+ end if
+ purge ?
+end macro
diff --git a/frontends/calculator/CEdev/include/fasmg-ez80/ti84pceg.inc b/frontends/calculator/CEdev/include/fasmg-ez80/ti84pceg.inc index 73b7fc1..8dac20d 100644 --- a/frontends/calculator/CEdev/include/fasmg-ez80/ti84pceg.inc +++ b/frontends/calculator/CEdev/include/fasmg-ez80/ti84pceg.inc @@ -1,61 +1,61 @@ -macro ?! - ; assign needs to be local so that it is only - ; defined once (no purge!) so that it can be - ; forward referenced so that it can recurse - local assign - macro assign: name*, expr& - match left =% right, expr - assign name, left mod right - else match left =| right, expr - assign name, left or right - else match left =& right, expr - assign name, left and right - else match left =^ right, expr - assign name, left xor right - else match left =<=< right, expr - assign name, left shl right - else match left =>=> right, expr - assign name, left shr right - else match left =~ right, expr - assign name, left not right - else match =~ right, expr - assign name, not right - else - name? := expr - end match - end macro - struc (name) equ? expr& - assign name, expr - end struc - macro Ld args& - match =equ? expr, args - assign name, expr - end match - end macro - purge ? -end macro - -macro .list? -end macro -macro .nolist? -end macro -macro #define? name -end macro -macro #ifdef? name -end macro -macro #ifndef? name -end macro -macro #endif? -end macro - -element anovaf_vars? -include 'ti84pce.inc' - -restruc equ? -purge Ld -purge .list? -purge .nolist? -purge #define? -purge #ifdef? -purge #ifndef? -purge #endif? +macro ?!
+ ; assign needs to be local so that it is only
+ ; defined once (no purge!) so that it can be
+ ; forward referenced so that it can recurse
+ local assign
+ macro assign: name*, expr&
+ match left =% right, expr
+ assign name, left mod right
+ else match left =| right, expr
+ assign name, left or right
+ else match left =& right, expr
+ assign name, left and right
+ else match left =^ right, expr
+ assign name, left xor right
+ else match left =<=< right, expr
+ assign name, left shl right
+ else match left =>=> right, expr
+ assign name, left shr right
+ else match left =~ right, expr
+ assign name, left not right
+ else match =~ right, expr
+ assign name, not right
+ else
+ name? := expr
+ end match
+ end macro
+ struc (name) equ? expr&
+ assign name, expr
+ end struc
+ macro Ld args&
+ match =equ? expr, args
+ assign name, expr
+ end match
+ end macro
+ purge ?
+end macro
+
+macro .list?
+end macro
+macro .nolist?
+end macro
+macro #define? name
+end macro
+macro #ifdef? name
+end macro
+macro #ifndef? name
+end macro
+macro #endif?
+end macro
+
+element anovaf_vars?
+include 'ti84pce.inc'
+
+restruc equ?
+purge Ld
+purge .list?
+purge .nolist?
+purge #define?
+purge #ifdef?
+purge #ifndef?
+purge #endif?
diff --git a/frontends/calculator/CEdev/include/fasmg-ez80/tiformat.inc b/frontends/calculator/CEdev/include/fasmg-ez80/tiformat.inc index 23ec697..88faa36 100644 --- a/frontends/calculator/CEdev/include/fasmg-ez80/tiformat.inc +++ b/frontends/calculator/CEdev/include/fasmg-ez80/tiformat.inc @@ -1,105 +1,105 @@ -macro format?.ti? clause& - local all, checkloc, checksum, cplx, data, exec, flag, head, name, process, prot, temp, type, ext, var - macro process: setting - match first rest, setting - process first - process rest - else match =ARCHIVED?, setting - flag = flag or 1 shl 7 - else match =EXECUTABLE?, setting - define exec - else match =PROTECTED?, setting - type = 6 - define prot - else match =REAL?, setting - type = 0 - ext = '8xn' - else match =LIST?, setting - if defined cplx - type = 13 - else - type = 2 - end if - ext = '8xl' - else match =MATRIX?, setting - type = 2 - ext = '8xm' - else match =EQUATION?, setting - type = 3 - ext = '8xy' - else match =STRING?, setting - type = 4 - ext = '8xs' - else match =PROGRAM?, setting - if defined prot - type = 6 - else - type = 5 - end if - ext = '8xp' - else match =PICTURE?, setting - type = 7 - ext = '8ci' - else match =GDB?, setting - type = 1 - ext = '8xd' - else match =COMPLEX?, setting - type = 12 - define cplx - ext = '8xc' - else match =APPVAR?, setting - type = 21 - ext = '8xv' - else match =GROUP?, setting - type = 23 - ext = '8xg' - else match =IMAGE?, setting - type = 26 - ext = '8ca' - else if setting eqtype 'name' - name = setting - else if setting eqtype 0 - type = setting - ext = '8x' - end if - end macro - name = 'A' - type = 6 - ext = '8xp' - flag = 0 - process clause - format binary as ext - assert ~$% & 'Unexpected data before format directive' - dq '**TI83F*' - db 26, 10, 0 - rb 42 - dw sizeof all - label all: checkloc - $% - dw sizeof head, sizeof data - label head: data - $ - db type - dq name - db 0, flag - dw sizeof data - label data: checkloc - $% - dw sizeof var - label var: checkloc - $% - if defined exec - dw 07BEFh - org 0D1A881h - else - org 0 - end if - postpone - label checkloc at $% - end postpone - postpone ? - assert checkloc = $% & 'Unexpected postpone before format directive' - checksum = 0 - repeat sizeof all - load temp: byte from: all + %-1 - checksum = (checksum + temp) and 0FFFFh - end repeat - dw checksum - end postpone -end macro +macro format?.ti? clause&
+ local all, checkloc, checksum, cplx, data, exec, flag, head, name, process, prot, temp, type, ext, var
+ macro process: setting
+ match first rest, setting
+ process first
+ process rest
+ else match =ARCHIVED?, setting
+ flag = flag or 1 shl 7
+ else match =EXECUTABLE?, setting
+ define exec
+ else match =PROTECTED?, setting
+ type = 6
+ define prot
+ else match =REAL?, setting
+ type = 0
+ ext = '8xn'
+ else match =LIST?, setting
+ if defined cplx
+ type = 13
+ else
+ type = 2
+ end if
+ ext = '8xl'
+ else match =MATRIX?, setting
+ type = 2
+ ext = '8xm'
+ else match =EQUATION?, setting
+ type = 3
+ ext = '8xy'
+ else match =STRING?, setting
+ type = 4
+ ext = '8xs'
+ else match =PROGRAM?, setting
+ if defined prot
+ type = 6
+ else
+ type = 5
+ end if
+ ext = '8xp'
+ else match =PICTURE?, setting
+ type = 7
+ ext = '8ci'
+ else match =GDB?, setting
+ type = 1
+ ext = '8xd'
+ else match =COMPLEX?, setting
+ type = 12
+ define cplx
+ ext = '8xc'
+ else match =APPVAR?, setting
+ type = 21
+ ext = '8xv'
+ else match =GROUP?, setting
+ type = 23
+ ext = '8xg'
+ else match =IMAGE?, setting
+ type = 26
+ ext = '8ca'
+ else if setting eqtype 'name'
+ name = setting
+ else if setting eqtype 0
+ type = setting
+ ext = '8x'
+ end if
+ end macro
+ name = 'A'
+ type = 6
+ ext = '8xp'
+ flag = 0
+ process clause
+ format binary as ext
+ assert ~$% & 'Unexpected data before format directive'
+ dq '**TI83F*'
+ db 26, 10, 0
+ rb 42
+ dw sizeof all
+ label all: checkloc - $%
+ dw sizeof head, sizeof data
+ label head: data - $
+ db type
+ dq name
+ db 0, flag
+ dw sizeof data
+ label data: checkloc - $%
+ dw sizeof var
+ label var: checkloc - $%
+ if defined exec
+ dw 07BEFh
+ org 0D1A881h
+ else
+ org 0
+ end if
+ postpone
+ label checkloc at $%
+ end postpone
+ postpone ?
+ assert checkloc = $% & 'Unexpected postpone before format directive'
+ checksum = 0
+ repeat sizeof all
+ load temp: byte from: all + %-1
+ checksum = (checksum + temp) and 0FFFFh
+ end repeat
+ dw checksum
+ end postpone
+end macro
diff --git a/frontends/calculator/CEdev/include/fileioc.h b/frontends/calculator/CEdev/include/fileioc.h index e703143..cdce463 100644 --- a/frontends/calculator/CEdev/include/fileioc.h +++ b/frontends/calculator/CEdev/include/fileioc.h @@ -1,509 +1,509 @@ -/** - * @file - * @author Matt "MateoConLechuga" Waltz - * @brief Implements variable reading and writing routines - */ - -#ifndef H_FILEIOC -#define H_FILEIOC - -#include <stdint.h> -#include <stddef.h> -#include <stdlib.h> -#include <stdbool.h> -#include <stdio.h> -#include <tice.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* Varible and flag definitions */ -#define TI_PRGM_TYPE (0x05) -#define TI_PPRGM_TYPE (0x06) -#define TI_TPRGM_TYPE (0x16) -#define TI_APPVAR_TYPE (0x15) -#define TI_REAL_TYPE (0x00) -#define TI_CPLX_TYPE (0x0C) -#define TI_MATRIX_TYPE (0x02) -#define TI_STRING_TYPE (0x04) -#define TI_EQU_TYPE (0x03) -#define TI_REAL_LIST_TYPE (0x01) -#define TI_CPLX_LIST_TYPE (0x0D) - -#ifndef EOF -#define EOF (-1) -#endif - -/** - * @brief Variable slot type - */ -typedef uint8_t ti_var_t; - -/** - * Closes all open slots - * @warning Call before you use any variable functions - */ -void ti_CloseAll(void); - -/** - * Opens a file - * - * An AppVar is used as default file storage - * @param name Name of file to open - * @param mode - * "r" - Opens a file for reading. The file must exist. Keeps file in archive if in archive. <br> - * "w" - Creates an empty file for writing. Overwrites file if already exists. <br> - * "a" - Appends to a file. Writing operations, append data at the end of the file. The file is created if it does not exist. <br> - * "r+" - Opens a file to update both reading and writing. The file must exist. Moves file from archive to RAM if in archive. <br> - * "w+" - Creates an empty file for both reading and writing. Overwrites file if already exists. <br> - * "a+" - Opens a file for reading and appending. Moves file from archive to RAM if in archive. Created if it does not exist. - * @returns Slot variable - * @note If there isn't enough memory to create the variable, or a slot isn't open, zero (0) is returned - */ -ti_var_t ti_Open(const char *name, const char *mode); - -/** - * Opens a variable - * - * Can open any type of program or appvar variable - * @param varname Name of variable to open - * @param mode - * "r" - Opens a file for reading. The file must exist. Keeps file in archive if in archive. <br> - * "w" - Creates an empty file for writing. Overwrites file if already exists. <br> - * "a" - Appends to a file. Writing operations, append data at the end of the file. The file is created if it does not exist. <br> - * "r+" - Opens a file to update both reading and writing. The file must exist. Moves file from archive to RAM if in archive. <br> - * "w+" - Creates an empty file for both reading and writing. Overwrites file if already exists. <br> - * "a+" - Opens a file for reading and appending. Moves file from archive to RAM if in archive. Created if it does not exist. - * @param type Specifies the type of variable to open - * @returns Slot variable - * @note If there isn't enough memory to create the variable, or a slot isn't open, zero (0) is returned - */ -ti_var_t ti_OpenVar(const char *varname, const char *mode, uint8_t type); - -/** - * Frees an open variable slot - * @returns Zero if closing failed - */ -int ti_Close(const ti_var_t slot); - -/** - * Returns the name of the file(s) that contains the string as the first part of the variable; - * which can then be used with ti_Open and other functions - * - * seach_pos should be set to NULL to begin a search, and is updated with each call - * - * @code - * char *var_name; - * uint8_t *search_pos = NULL; - * while((var_name = ti_Detect(&search_pos, "my_data")) != NULL) { - * ...do something with the name or search_pos... - * } - * @endcode - * @param curr_search_posistion Current offset in the VAT - * @param detection_string String to search for (NULL to search for all) - * @note If the return value is NULL, there are no more variables to find - */ -char *ti_Detect(void **curr_search_posistion, const char *detection_string); - -/** - * Returns the name of the file(s) that contains the string as the first part of the variable; - * which can then be used with ti_OpenVar and other functions - * - * seach_pos should be set to NULL to begin a search, and is updated with each call - * - * @code - * char *var_name; - * uint8_t *search_pos = NULL; - * while((var_name = ti_DetectVar(&search_pos, "my_data", TI_PRGM_TYPE)) != NULL) { - * ...do something with the name or search_pos... - * } - * @endcode - * @param curr_search_posistion Current offset in the VAT - * @param detection_string String to search for (NULL to search for all) - * @param var_type Type of variable to detect - * @note If the return value is NULL, there are no more variables to find - */ -char *ti_DetectVar(void **curr_search_posistion, const char *detection_string, uint8_t var_type); - -/** - * Returns the name of the file(s) that contains the string as the first part of the variable; - * which can then be used with ti_OpenVar and other functions - * - * seach_pos should be set to NULL to begin a search, and is updated with each call - * - * @code - * char *var_name; - * uint8_t *search_pos = NULL; - * uint8_t type; - * while((var_name = ti_DetectVar(&search_pos, "my_data", &type)) != NULL) { - * if (type == TI_PRGM_TYPE || type == TI_PPRGM_TYPE) { - * ...do something with the name or search_pos... - * } - * } - * @endcode - * @param curr_search_posistion Current offset in the VAT - * @param detection_string String to search for (NULL to search for all) - * @param var_type Type of variable found - * @note If the return value is NULL, there are no more variables to find - */ -char *ti_DetectAny(void **curr_search_posistion, const char *detection_string, uint8_t *var_type); - -/** - * Writes to the current variable slot - * - * @param data Pointer to data to write - * @param size Size (in bytes) of a single data chunk - * @param count Number of data chunks to write to the variable slot - * @param slot Variable slot to write the data to - * @returns The number of chunks written (should be equal to count) - */ -size_t ti_Write(const void *data, size_t size, size_t count, const ti_var_t slot); - -/** - * Reads from the current variable pointer - * - * @param data Pointer to data to read into - * @param size Size (in bytes) of a single data chunk - * @param count Number of data chunks to read from the variable slot - * @param slot Variable slot to read the data from - * @returns The number of chunks read (should be equal to count) - */ -size_t ti_Read(const void *data, size_t size, size_t count, const ti_var_t slot); - -/** - * Writes a character directly into the slot data pointer, and increments the offset - * - * @param c Character to write - * @param slot Variable slot to put the character to - * @returns The input c is returned if no error - * @returns 'EOF' if current offset is larger than file size, or memory isn't large enough - */ -int ti_PutC(const char c, const ti_var_t slot); - -/** - * Pulls a character directly from the slot data pointer, and increments the offset - * - * @param slot Variable slot to get the character from - * @returns 1 byte character at the current variable offset - * @returns 'EOF' if current offset is larger than file size - */ -int ti_GetC(const ti_var_t slot); - -/** - * Seeks to an offset - * - * @param offset Number of bytes to offest from (can be negative) - * @param origin - * SEEK_SET (0) - Seek from beginning of file <br> - * SEEK_CUR (1) - Seek from current offset in file <br> - * SEEK_END (2) - Seek from end of file - * @param slot Variable slot seeking in - * @returns 'EOF' on seek failure - */ -int ti_Seek(int offset, unsigned int origin, const ti_var_t slot); - -/** - * Seeks to the start of the given variable - * - * Basically an ti_Seek(0, SEEK_SET, slot); - * @param slot Variable slot to rewind - * @returns 'EOF' on rewind failure - */ -int ti_Rewind(const ti_var_t slot); - -/** - * Gets the offset in a slot - * - * @param slot Slot to test - * @returns The value of the current slot offset - */ -uint16_t ti_Tell(const ti_var_t slot); - -/** - * Gets the size of a slot - * - * @param slot Slot to test - * @returns The size of the slot variable - */ -uint16_t ti_GetSize(const ti_var_t slot); - -/** - * Resizes the slot variable - * - * @param slot Slot to resize - * @param new_size New size of slot - * @returns Resized size on success, 0 on failure, or -1 if the slot cannot be opened - * @note The variable offset is set to the beginning of the file - */ -int ti_Resize(size_t new_size, const ti_var_t slot); - -/** - * Tests if a slot is in the archive - * - * @param slot Slot to test - * @returns Zero (0) if the slot is not in the archive - */ -int ti_IsArchived(const ti_var_t slot); - -/** - * Sends the variable into either the archive or RAM if needed - * - * @param archived - * True - Send to Archive <br> - * False - Send to RAM - * @param slot Slot to send - * @returns Zero if the operation fails from not enough memory or another error - */ -int ti_SetArchiveStatus(bool archived, const ti_var_t slot); - -/** - * Deletes an AppVar - * - * @param name Name of AppVar to delete - * @returns 0 if failed - */ -int ti_Delete(const char *name); - -/** - * Deletes a variable given the name and type - * - * @param varname Name of variable to delete - * @param type Type of variable to delete - * @returns 0 if failed - */ -int ti_DeleteVar(const char *varname, const uint8_t type); - -/** - * Gets the string used for displaying a TI token - * - * @param length_of_string Pointer to variable to hold length of resulting string (Can be NULL if you don't care) - * @param length_of_token Pointer to variable to hold length of the token, used for determining the next read location (Can be NULL if you don't care) - * @param read_pointer Address of pointer to data to read - * @note read_pointer is updated to the next token, depending on if it is 1 or 2 bytes in length - */ -char *ti_GetTokenString(void **read_pointer, uint8_t *length_of_token, unsigned int *length_of_string); - -/** - * Gets a pointer to the data located at the current posistion in the slot; - * Good way for fast reading of data - * @param slot Variable slot to get pointer of - * @returns Pointer to variable data - */ -void *ti_GetDataPtr(const ti_var_t slot); - -/** - * Gets the VAT location of the slot - * - * @param slot Variable slot to get VAT location of - * @returns VAT location of variable - */ -void *ti_GetVATPtr(const ti_var_t slot); - -/** - * Gets the variable name of an already opened slot - * - * @param slot Variable slot to get name of - * @param name Buffer to store name in, generally at least 10 bytes including null terminator. - * @returns None - */ -void ti_GetName(char *name, const ti_var_t slot); - -/** - * Renames a file - * - * @param old Old name of file - * @param new New name of file - * @returns 0 if success, 1 if file already exists, 2 any other error occurs. - * @warning It is potentially hazardous to rename an open file. Be sure to close the open file before renaming, - */ -uint8_t ti_Rename(const char *old, const char *new); - -/** - * Renames a variable - * - * @param old Old name of variable - * @param new New name of variable - * @param type Type of variable to rename - * @returns 0 if success, 1 if variable already exists, 2 any other error occurs. - * @warning It is potentially hazardous to rename an open variable. Be sure to close the open variable before renaming, - */ -uint8_t ti_RenameVar(const char *old, const char *new, const uint8_t type); - -/** - * Sets a variable - * - * @param var_type Type of variable to set - * @param name Pointer to name of variable - * @param data Pointer to data to set - * @returns 0 if success - */ -uint8_t ti_SetVar(const ti_var_t var_type, const char *name, void *data); - -/** - * Stores a variable to another variable - * - * @param var_type_to Type of variable to store to - * @param to Pointer to data to store to - * @param var_type_from Type of variable to get from - * @param from Pointer to data to get from - * @returns 0 if success - */ -uint8_t ti_StoVar(const ti_var_t var_type_to, void *to, const ti_var_t var_type_from, void *from); - -/** - * Recalls a variable - * - * @param var_type Type of variable to recall - * @param var_name Pointer to name of variable to recall - * @param data_struct Address of pointer to variable structure - * @returns 0 if success - * @note data_struct is set to the variable's data - */ -uint8_t ti_RclVar(const uint8_t var_type, const char *var_name, void **data_struct); - -/** - * Allocates space for a real variable - * @returns Pointer to variable - */ -#define ti_MallocReal() ((real_t*)malloc(sizeof(real_t))) - -/** - * Allocates space for a complex variable - * @returns Pointer to variable - */ -#define ti_MallocCplx() ((cplx_t*)malloc(sizeof(cplx_t))) - -/** - * Allocates space for a string variable - * @param len Length of string - * @returns Pointer to variable - */ -#define ti_MallocString(len) ti_AllocString((len), ((void*)malloc)) - -/** - * Allocates space for a list variable - * @param dim Dimension of list - * @returns Pointer to variable - */ -#define ti_MallocList(dim) ti_AllocList((dim), ((void*)malloc)) - -/** - * Allocates space for a matrix variable - * @param rows Rows in matrix - * @param cols Columns in matrix - * @returns Pointer to variable - */ -#define ti_MallocMatrix(rows, cols) ti_AllocMatrix((rows), (cols), ((void*)malloc)) - -/** - * Allocates space for a complex list variable - * @param dim Dimension of complex list - * @returns Pointer to variable - */ -#define ti_MallocCplxList(dim) ti_AllocCplxList((dim), ((void*)malloc)) - -/** - * Allocates space for an equation variable - * @param len Length of equation variable - * @returns Pointer to variable - */ -#define ti_MallocEqu(len) ti_AllocEqu((len), ((void*)malloc)) - -string_t *ti_AllocString(unsigned len, void (*malloc_routine)(size_t)); -list_t *ti_AllocList(unsigned dim, void (*malloc_routine)(size_t)); -matrix_t *ti_AllocMatrix(uint8_t rows, uint8_t cols, void (*malloc_routine)(size_t)); -cplx_list_t *ti_AllocCplxList(unsigned dim, void (*malloc_routine)(size_t)); -equ_t *ti_AllocEqu(unsigned len, void (*malloc_routine)(size_t)); - -/* Some more definitions using Ans */ -#define TI_ANS_TYPE (0x00) -#define ti_Ans ("\x72\0") - -/* Some string definitions */ -#define ti_Str1 ("\xAA\x0\0") -#define ti_Str2 ("\xAA\x1\0") -#define ti_Str3 ("\xAA\x2\0") -#define ti_Str4 ("\xAA\x3\0") -#define ti_Str5 ("\xAA\x4\0") -#define ti_Str6 ("\xAA\x5\0") -#define ti_Str7 ("\xAA\x6\0") -#define ti_Str8 ("\xAA\x7\0") -#define ti_Str0 ("\xAA\x8\0") -#define ti_StrT ('\xAA') - -/* Some equation definitions */ -#define ti_Y1 ("\x5E\x10\0") -#define ti_Y2 ("\x5E\x11\0") -#define ti_Y3 ("\x5E\x12\0") -#define ti_Y4 ("\x5E\x13\0") -#define ti_Y5 ("\x5E\x14\0") -#define ti_Y6 ("\x5E\x15\0") -#define ti_Y7 ("\x5E\x16\0") -#define ti_Y8 ("\x5E\x17\0") -#define ti_Y9 ("\x5E\x18\0") -#define ti_Y0 ("\x5E\x19\0") -#define ti_EquT ('\x5E') - -/* Some real and complex defines */ -#define ti_A ("\x41\0\0") -#define ti_B ("\x42\0\0") -#define ti_C ("\x43\0\0") -#define ti_D ("\x44\0\0") -#define ti_E ("\x45\0\0") -#define ti_F ("\x46\0\0") -#define ti_G ("\x47\0\0") -#define ti_H ("\x48\0\0") -#define ti_I ("\x49\0\0") -#define ti_J ("\x4A\0\0") -#define ti_K ("\x4B\0\0") -#define ti_L ("\x4C\0\0") -#define ti_M ("\x4D\0\0") -#define ti_N ("\x4E\0\0") -#define ti_O ("\x4F\0\0") -#define ti_P ("\x50\0\0") -#define ti_Q ("\x51\0\0") -#define ti_R ("\x52\0\0") -#define ti_S ("\x53\0\0") -#define ti_T ("\x54\0\0") -#define ti_U ("\x55\0\0") -#define ti_V ("\x56\0\0") -#define ti_W ("\x57\0\0") -#define ti_X ("\x58\0\0") -#define ti_Y ("\x59\0\0") -#define ti_Z ("\x60\0\0") -#define ti_Theta ("\x61\0\0") - -/* Some matrix defines */ -#define ti_MatA ("\x5C\x0\0") -#define ti_MatB ("\x5C\x1\0") -#define ti_MatC ("\x5C\x2\0") -#define ti_MatD ("\x5C\x3\0") -#define ti_MatE ("\x5C\x4\0") -#define ti_MatF ("\x5C\x5\0") -#define ti_MatG ("\x5C\x6\0") -#define ti_MatH ("\x5C\x7\0") -#define ti_MatI ("\x5C\x8\0") -#define ti_MatJ ("\x5C\x9\0") -#define ti_MatT ('\x5C') - -/* Some list defines */ -#define ti_L1 ("\x5D\x0\0") -#define ti_L2 ("\x5D\x1\0") -#define ti_L3 ("\x5D\x2\0") -#define ti_L4 ("\x5D\x3\0") -#define ti_L5 ("\x5D\x4\0") -#define ti_L6 ("\x5D\x5\0") -#define ti_LT ('\x5D') - -/* Compatibility defines */ -#define ti_Program TI_PRGM_TYPE -#define ti_ProtectedProgram TI_PPRGM_TYPE -#define ti_TempProgram TI_TPRGM_TYPE -#define ti_AppVar TI_APPVAR_TYPE - -#ifdef __cplusplus -} -#endif - -#endif +/**
+ * @file
+ * @author Matt "MateoConLechuga" Waltz
+ * @brief Implements variable reading and writing routines
+ */
+
+#ifndef H_FILEIOC
+#define H_FILEIOC
+
+#include <stdint.h>
+#include <stddef.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <tice.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Varible and flag definitions */
+#define TI_PRGM_TYPE (0x05)
+#define TI_PPRGM_TYPE (0x06)
+#define TI_TPRGM_TYPE (0x16)
+#define TI_APPVAR_TYPE (0x15)
+#define TI_REAL_TYPE (0x00)
+#define TI_CPLX_TYPE (0x0C)
+#define TI_MATRIX_TYPE (0x02)
+#define TI_STRING_TYPE (0x04)
+#define TI_EQU_TYPE (0x03)
+#define TI_REAL_LIST_TYPE (0x01)
+#define TI_CPLX_LIST_TYPE (0x0D)
+
+#ifndef EOF
+#define EOF (-1)
+#endif
+
+/**
+ * @brief Variable slot type
+ */
+typedef uint8_t ti_var_t;
+
+/**
+ * Closes all open slots
+ * @warning Call before you use any variable functions
+ */
+void ti_CloseAll(void);
+
+/**
+ * Opens a file
+ *
+ * An AppVar is used as default file storage
+ * @param name Name of file to open
+ * @param mode
+ * "r" - Opens a file for reading. The file must exist. Keeps file in archive if in archive. <br>
+ * "w" - Creates an empty file for writing. Overwrites file if already exists. <br>
+ * "a" - Appends to a file. Writing operations, append data at the end of the file. The file is created if it does not exist. <br>
+ * "r+" - Opens a file to update both reading and writing. The file must exist. Moves file from archive to RAM if in archive. <br>
+ * "w+" - Creates an empty file for both reading and writing. Overwrites file if already exists. <br>
+ * "a+" - Opens a file for reading and appending. Moves file from archive to RAM if in archive. Created if it does not exist.
+ * @returns Slot variable
+ * @note If there isn't enough memory to create the variable, or a slot isn't open, zero (0) is returned
+ */
+ti_var_t ti_Open(const char *name, const char *mode);
+
+/**
+ * Opens a variable
+ *
+ * Can open any type of program or appvar variable
+ * @param varname Name of variable to open
+ * @param mode
+ * "r" - Opens a file for reading. The file must exist. Keeps file in archive if in archive. <br>
+ * "w" - Creates an empty file for writing. Overwrites file if already exists. <br>
+ * "a" - Appends to a file. Writing operations, append data at the end of the file. The file is created if it does not exist. <br>
+ * "r+" - Opens a file to update both reading and writing. The file must exist. Moves file from archive to RAM if in archive. <br>
+ * "w+" - Creates an empty file for both reading and writing. Overwrites file if already exists. <br>
+ * "a+" - Opens a file for reading and appending. Moves file from archive to RAM if in archive. Created if it does not exist.
+ * @param type Specifies the type of variable to open
+ * @returns Slot variable
+ * @note If there isn't enough memory to create the variable, or a slot isn't open, zero (0) is returned
+ */
+ti_var_t ti_OpenVar(const char *varname, const char *mode, uint8_t type);
+
+/**
+ * Frees an open variable slot
+ * @returns Zero if closing failed
+ */
+int ti_Close(const ti_var_t slot);
+
+/**
+ * Returns the name of the file(s) that contains the string as the first part of the variable;
+ * which can then be used with ti_Open and other functions
+ *
+ * seach_pos should be set to NULL to begin a search, and is updated with each call
+ *
+ * @code
+ * char *var_name;
+ * uint8_t *search_pos = NULL;
+ * while((var_name = ti_Detect(&search_pos, "my_data")) != NULL) {
+ * ...do something with the name or search_pos...
+ * }
+ * @endcode
+ * @param curr_search_posistion Current offset in the VAT
+ * @param detection_string String to search for (NULL to search for all)
+ * @note If the return value is NULL, there are no more variables to find
+ */
+char *ti_Detect(void **curr_search_posistion, const char *detection_string);
+
+/**
+ * Returns the name of the file(s) that contains the string as the first part of the variable;
+ * which can then be used with ti_OpenVar and other functions
+ *
+ * seach_pos should be set to NULL to begin a search, and is updated with each call
+ *
+ * @code
+ * char *var_name;
+ * uint8_t *search_pos = NULL;
+ * while((var_name = ti_DetectVar(&search_pos, "my_data", TI_PRGM_TYPE)) != NULL) {
+ * ...do something with the name or search_pos...
+ * }
+ * @endcode
+ * @param curr_search_posistion Current offset in the VAT
+ * @param detection_string String to search for (NULL to search for all)
+ * @param var_type Type of variable to detect
+ * @note If the return value is NULL, there are no more variables to find
+ */
+char *ti_DetectVar(void **curr_search_posistion, const char *detection_string, uint8_t var_type);
+
+/**
+ * Returns the name of the file(s) that contains the string as the first part of the variable;
+ * which can then be used with ti_OpenVar and other functions
+ *
+ * seach_pos should be set to NULL to begin a search, and is updated with each call
+ *
+ * @code
+ * char *var_name;
+ * uint8_t *search_pos = NULL;
+ * uint8_t type;
+ * while((var_name = ti_DetectVar(&search_pos, "my_data", &type)) != NULL) {
+ * if (type == TI_PRGM_TYPE || type == TI_PPRGM_TYPE) {
+ * ...do something with the name or search_pos...
+ * }
+ * }
+ * @endcode
+ * @param curr_search_posistion Current offset in the VAT
+ * @param detection_string String to search for (NULL to search for all)
+ * @param var_type Type of variable found
+ * @note If the return value is NULL, there are no more variables to find
+ */
+char *ti_DetectAny(void **curr_search_posistion, const char *detection_string, uint8_t *var_type);
+
+/**
+ * Writes to the current variable slot
+ *
+ * @param data Pointer to data to write
+ * @param size Size (in bytes) of a single data chunk
+ * @param count Number of data chunks to write to the variable slot
+ * @param slot Variable slot to write the data to
+ * @returns The number of chunks written (should be equal to count)
+ */
+size_t ti_Write(const void *data, size_t size, size_t count, const ti_var_t slot);
+
+/**
+ * Reads from the current variable pointer
+ *
+ * @param data Pointer to data to read into
+ * @param size Size (in bytes) of a single data chunk
+ * @param count Number of data chunks to read from the variable slot
+ * @param slot Variable slot to read the data from
+ * @returns The number of chunks read (should be equal to count)
+ */
+size_t ti_Read(const void *data, size_t size, size_t count, const ti_var_t slot);
+
+/**
+ * Writes a character directly into the slot data pointer, and increments the offset
+ *
+ * @param c Character to write
+ * @param slot Variable slot to put the character to
+ * @returns The input c is returned if no error
+ * @returns 'EOF' if current offset is larger than file size, or memory isn't large enough
+ */
+int ti_PutC(const char c, const ti_var_t slot);
+
+/**
+ * Pulls a character directly from the slot data pointer, and increments the offset
+ *
+ * @param slot Variable slot to get the character from
+ * @returns 1 byte character at the current variable offset
+ * @returns 'EOF' if current offset is larger than file size
+ */
+int ti_GetC(const ti_var_t slot);
+
+/**
+ * Seeks to an offset
+ *
+ * @param offset Number of bytes to offest from (can be negative)
+ * @param origin
+ * SEEK_SET (0) - Seek from beginning of file <br>
+ * SEEK_CUR (1) - Seek from current offset in file <br>
+ * SEEK_END (2) - Seek from end of file
+ * @param slot Variable slot seeking in
+ * @returns 'EOF' on seek failure
+ */
+int ti_Seek(int offset, unsigned int origin, const ti_var_t slot);
+
+/**
+ * Seeks to the start of the given variable
+ *
+ * Basically an ti_Seek(0, SEEK_SET, slot);
+ * @param slot Variable slot to rewind
+ * @returns 'EOF' on rewind failure
+ */
+int ti_Rewind(const ti_var_t slot);
+
+/**
+ * Gets the offset in a slot
+ *
+ * @param slot Slot to test
+ * @returns The value of the current slot offset
+ */
+uint16_t ti_Tell(const ti_var_t slot);
+
+/**
+ * Gets the size of a slot
+ *
+ * @param slot Slot to test
+ * @returns The size of the slot variable
+ */
+uint16_t ti_GetSize(const ti_var_t slot);
+
+/**
+ * Resizes the slot variable
+ *
+ * @param slot Slot to resize
+ * @param new_size New size of slot
+ * @returns Resized size on success, 0 on failure, or -1 if the slot cannot be opened
+ * @note The variable offset is set to the beginning of the file
+ */
+int ti_Resize(size_t new_size, const ti_var_t slot);
+
+/**
+ * Tests if a slot is in the archive
+ *
+ * @param slot Slot to test
+ * @returns Zero (0) if the slot is not in the archive
+ */
+int ti_IsArchived(const ti_var_t slot);
+
+/**
+ * Sends the variable into either the archive or RAM if needed
+ *
+ * @param archived
+ * True - Send to Archive <br>
+ * False - Send to RAM
+ * @param slot Slot to send
+ * @returns Zero if the operation fails from not enough memory or another error
+ */
+int ti_SetArchiveStatus(bool archived, const ti_var_t slot);
+
+/**
+ * Deletes an AppVar
+ *
+ * @param name Name of AppVar to delete
+ * @returns 0 if failed
+ */
+int ti_Delete(const char *name);
+
+/**
+ * Deletes a variable given the name and type
+ *
+ * @param varname Name of variable to delete
+ * @param type Type of variable to delete
+ * @returns 0 if failed
+ */
+int ti_DeleteVar(const char *varname, const uint8_t type);
+
+/**
+ * Gets the string used for displaying a TI token
+ *
+ * @param length_of_string Pointer to variable to hold length of resulting string (Can be NULL if you don't care)
+ * @param length_of_token Pointer to variable to hold length of the token, used for determining the next read location (Can be NULL if you don't care)
+ * @param read_pointer Address of pointer to data to read
+ * @note read_pointer is updated to the next token, depending on if it is 1 or 2 bytes in length
+ */
+char *ti_GetTokenString(void **read_pointer, uint8_t *length_of_token, unsigned int *length_of_string);
+
+/**
+ * Gets a pointer to the data located at the current posistion in the slot;
+ * Good way for fast reading of data
+ * @param slot Variable slot to get pointer of
+ * @returns Pointer to variable data
+ */
+void *ti_GetDataPtr(const ti_var_t slot);
+
+/**
+ * Gets the VAT location of the slot
+ *
+ * @param slot Variable slot to get VAT location of
+ * @returns VAT location of variable
+ */
+void *ti_GetVATPtr(const ti_var_t slot);
+
+/**
+ * Gets the variable name of an already opened slot
+ *
+ * @param slot Variable slot to get name of
+ * @param name Buffer to store name in, generally at least 10 bytes including null terminator.
+ * @returns None
+ */
+void ti_GetName(char *name, const ti_var_t slot);
+
+/**
+ * Renames a file
+ *
+ * @param old Old name of file
+ * @param new New name of file
+ * @returns 0 if success, 1 if file already exists, 2 any other error occurs.
+ * @warning It is potentially hazardous to rename an open file. Be sure to close the open file before renaming,
+ */
+uint8_t ti_Rename(const char *old, const char *new);
+
+/**
+ * Renames a variable
+ *
+ * @param old Old name of variable
+ * @param new New name of variable
+ * @param type Type of variable to rename
+ * @returns 0 if success, 1 if variable already exists, 2 any other error occurs.
+ * @warning It is potentially hazardous to rename an open variable. Be sure to close the open variable before renaming,
+ */
+uint8_t ti_RenameVar(const char *old, const char *new, const uint8_t type);
+
+/**
+ * Sets a variable
+ *
+ * @param var_type Type of variable to set
+ * @param name Pointer to name of variable
+ * @param data Pointer to data to set
+ * @returns 0 if success
+ */
+uint8_t ti_SetVar(const ti_var_t var_type, const char *name, void *data);
+
+/**
+ * Stores a variable to another variable
+ *
+ * @param var_type_to Type of variable to store to
+ * @param to Pointer to data to store to
+ * @param var_type_from Type of variable to get from
+ * @param from Pointer to data to get from
+ * @returns 0 if success
+ */
+uint8_t ti_StoVar(const ti_var_t var_type_to, void *to, const ti_var_t var_type_from, void *from);
+
+/**
+ * Recalls a variable
+ *
+ * @param var_type Type of variable to recall
+ * @param var_name Pointer to name of variable to recall
+ * @param data_struct Address of pointer to variable structure
+ * @returns 0 if success
+ * @note data_struct is set to the variable's data
+ */
+uint8_t ti_RclVar(const uint8_t var_type, const char *var_name, void **data_struct);
+
+/**
+ * Allocates space for a real variable
+ * @returns Pointer to variable
+ */
+#define ti_MallocReal() ((real_t*)malloc(sizeof(real_t)))
+
+/**
+ * Allocates space for a complex variable
+ * @returns Pointer to variable
+ */
+#define ti_MallocCplx() ((cplx_t*)malloc(sizeof(cplx_t)))
+
+/**
+ * Allocates space for a string variable
+ * @param len Length of string
+ * @returns Pointer to variable
+ */
+#define ti_MallocString(len) ti_AllocString((len), ((void*)malloc))
+
+/**
+ * Allocates space for a list variable
+ * @param dim Dimension of list
+ * @returns Pointer to variable
+ */
+#define ti_MallocList(dim) ti_AllocList((dim), ((void*)malloc))
+
+/**
+ * Allocates space for a matrix variable
+ * @param rows Rows in matrix
+ * @param cols Columns in matrix
+ * @returns Pointer to variable
+ */
+#define ti_MallocMatrix(rows, cols) ti_AllocMatrix((rows), (cols), ((void*)malloc))
+
+/**
+ * Allocates space for a complex list variable
+ * @param dim Dimension of complex list
+ * @returns Pointer to variable
+ */
+#define ti_MallocCplxList(dim) ti_AllocCplxList((dim), ((void*)malloc))
+
+/**
+ * Allocates space for an equation variable
+ * @param len Length of equation variable
+ * @returns Pointer to variable
+ */
+#define ti_MallocEqu(len) ti_AllocEqu((len), ((void*)malloc))
+
+string_t *ti_AllocString(unsigned len, void (*malloc_routine)(size_t));
+list_t *ti_AllocList(unsigned dim, void (*malloc_routine)(size_t));
+matrix_t *ti_AllocMatrix(uint8_t rows, uint8_t cols, void (*malloc_routine)(size_t));
+cplx_list_t *ti_AllocCplxList(unsigned dim, void (*malloc_routine)(size_t));
+equ_t *ti_AllocEqu(unsigned len, void (*malloc_routine)(size_t));
+
+/* Some more definitions using Ans */
+#define TI_ANS_TYPE (0x00)
+#define ti_Ans ("\x72\0")
+
+/* Some string definitions */
+#define ti_Str1 ("\xAA\x0\0")
+#define ti_Str2 ("\xAA\x1\0")
+#define ti_Str3 ("\xAA\x2\0")
+#define ti_Str4 ("\xAA\x3\0")
+#define ti_Str5 ("\xAA\x4\0")
+#define ti_Str6 ("\xAA\x5\0")
+#define ti_Str7 ("\xAA\x6\0")
+#define ti_Str8 ("\xAA\x7\0")
+#define ti_Str0 ("\xAA\x8\0")
+#define ti_StrT ('\xAA')
+
+/* Some equation definitions */
+#define ti_Y1 ("\x5E\x10\0")
+#define ti_Y2 ("\x5E\x11\0")
+#define ti_Y3 ("\x5E\x12\0")
+#define ti_Y4 ("\x5E\x13\0")
+#define ti_Y5 ("\x5E\x14\0")
+#define ti_Y6 ("\x5E\x15\0")
+#define ti_Y7 ("\x5E\x16\0")
+#define ti_Y8 ("\x5E\x17\0")
+#define ti_Y9 ("\x5E\x18\0")
+#define ti_Y0 ("\x5E\x19\0")
+#define ti_EquT ('\x5E')
+
+/* Some real and complex defines */
+#define ti_A ("\x41\0\0")
+#define ti_B ("\x42\0\0")
+#define ti_C ("\x43\0\0")
+#define ti_D ("\x44\0\0")
+#define ti_E ("\x45\0\0")
+#define ti_F ("\x46\0\0")
+#define ti_G ("\x47\0\0")
+#define ti_H ("\x48\0\0")
+#define ti_I ("\x49\0\0")
+#define ti_J ("\x4A\0\0")
+#define ti_K ("\x4B\0\0")
+#define ti_L ("\x4C\0\0")
+#define ti_M ("\x4D\0\0")
+#define ti_N ("\x4E\0\0")
+#define ti_O ("\x4F\0\0")
+#define ti_P ("\x50\0\0")
+#define ti_Q ("\x51\0\0")
+#define ti_R ("\x52\0\0")
+#define ti_S ("\x53\0\0")
+#define ti_T ("\x54\0\0")
+#define ti_U ("\x55\0\0")
+#define ti_V ("\x56\0\0")
+#define ti_W ("\x57\0\0")
+#define ti_X ("\x58\0\0")
+#define ti_Y ("\x59\0\0")
+#define ti_Z ("\x60\0\0")
+#define ti_Theta ("\x61\0\0")
+
+/* Some matrix defines */
+#define ti_MatA ("\x5C\x0\0")
+#define ti_MatB ("\x5C\x1\0")
+#define ti_MatC ("\x5C\x2\0")
+#define ti_MatD ("\x5C\x3\0")
+#define ti_MatE ("\x5C\x4\0")
+#define ti_MatF ("\x5C\x5\0")
+#define ti_MatG ("\x5C\x6\0")
+#define ti_MatH ("\x5C\x7\0")
+#define ti_MatI ("\x5C\x8\0")
+#define ti_MatJ ("\x5C\x9\0")
+#define ti_MatT ('\x5C')
+
+/* Some list defines */
+#define ti_L1 ("\x5D\x0\0")
+#define ti_L2 ("\x5D\x1\0")
+#define ti_L3 ("\x5D\x2\0")
+#define ti_L4 ("\x5D\x3\0")
+#define ti_L5 ("\x5D\x4\0")
+#define ti_L6 ("\x5D\x5\0")
+#define ti_LT ('\x5D')
+
+/* Compatibility defines */
+#define ti_Program TI_PRGM_TYPE
+#define ti_ProtectedProgram TI_PPRGM_TYPE
+#define ti_TempProgram TI_TPRGM_TYPE
+#define ti_AppVar TI_APPVAR_TYPE
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/float.h b/frontends/calculator/CEdev/include/float.h index bd022b2..ea526e8 100644 --- a/frontends/calculator/CEdev/include/float.h +++ b/frontends/calculator/CEdev/include/float.h @@ -1,75 +1,75 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef FLOAT_H -#define FLOAT_H - -#define FLT_RADIX 2 /* radix of exponent representation */ - -#define FLT_ROUNDS 0 /* addition rounds to nearest */ - -/* number of base-FLT_RADIX digits in the mantissa */ - -#define FLT_MANT_DIG 24 -#define DBL_MANT_DIG FLT_MANT_DIG -#define LDBL_MANT_DIG FLT_MANT_DIG - -/* number of decimal digits of precision */ - -#define FLT_DIG 6 -#define DBL_DIG FLT_DIG -#define LDBL_DIG FLT_DIG - -/* minimum negative integer such that FLT_RADIX raised to that */ -/* power approximates a positive floating point number in the */ -/* range of representable values. */ - -#define FLT_MIN_EXP -125 -#define DBL_MIN_EXP FLT_MIN_EXP -#define LDBL_MIN_EXP FLT_MIN_EXP - -/* maximum integer such that FLT_RADIX raised to that power */ -/* approximates a floating point number in the range of */ -/* representable numbers. */ - -#define FLT_MAX_EXP 128 -#define DBL_MAX_EXP FLT_MAX_EXP -#define LDBL_MAX_EXP FLT_MAX_EXP - -/* maximum integer such that 10 raised to that power */ -/* approximates a floating point number in the range of */ -/* representable value ((int)log10(FLT_MAX),etc) */ - -#define FLT_MAX_10_EXP +38 -#define DBL_MAX_10_EXP FLT_MAX_10_EXP -#define LDBL_MAX_10_EXP FLT_MAX_10_EXP - -/* minimum negative integer such that 10 raised to that power */ -/* approximates a positive floating point number in the range */ -/* of representable values ((int)log10(FLT_MIN),etc.) */ - -#define FLT_MIN_10_EXP -37 -#define DBL_MIN_10_EXP FLT_MIN_10_EXP -#define LDBL_MIN_10_EXP FLT_MIN_10_EXP - -/* maximum representable floating point numbers */ - -#define FLT_MAX 3.40282347E+38 -#define DBL_MAX FLT_MAX -#define LDBL_MAX FLT_MAX - -/* minimum positive number x such that 1.0 + x != 1.0 (b ^ (1-p)) */ - -#define FLT_EPSILON 1.19209290E-07 -#define DBL_EPSILON FLT_EPSILON -#define LDBL_EPSILON FLT_EPSILON - -/* minimum representable positive floating point numbers */ - -#define FLT_MIN 1.17549435E-38 -#define DBL_MIN FLT_MIN -#define LDBL_MIN FLT_MIN - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef FLOAT_H
+#define FLOAT_H
+
+#define FLT_RADIX 2 /* radix of exponent representation */
+
+#define FLT_ROUNDS 0 /* addition rounds to nearest */
+
+/* number of base-FLT_RADIX digits in the mantissa */
+
+#define FLT_MANT_DIG 24
+#define DBL_MANT_DIG FLT_MANT_DIG
+#define LDBL_MANT_DIG FLT_MANT_DIG
+
+/* number of decimal digits of precision */
+
+#define FLT_DIG 6
+#define DBL_DIG FLT_DIG
+#define LDBL_DIG FLT_DIG
+
+/* minimum negative integer such that FLT_RADIX raised to that */
+/* power approximates a positive floating point number in the */
+/* range of representable values. */
+
+#define FLT_MIN_EXP -125
+#define DBL_MIN_EXP FLT_MIN_EXP
+#define LDBL_MIN_EXP FLT_MIN_EXP
+
+/* maximum integer such that FLT_RADIX raised to that power */
+/* approximates a floating point number in the range of */
+/* representable numbers. */
+
+#define FLT_MAX_EXP 128
+#define DBL_MAX_EXP FLT_MAX_EXP
+#define LDBL_MAX_EXP FLT_MAX_EXP
+
+/* maximum integer such that 10 raised to that power */
+/* approximates a floating point number in the range of */
+/* representable value ((int)log10(FLT_MAX),etc) */
+
+#define FLT_MAX_10_EXP +38
+#define DBL_MAX_10_EXP FLT_MAX_10_EXP
+#define LDBL_MAX_10_EXP FLT_MAX_10_EXP
+
+/* minimum negative integer such that 10 raised to that power */
+/* approximates a positive floating point number in the range */
+/* of representable values ((int)log10(FLT_MIN),etc.) */
+
+#define FLT_MIN_10_EXP -37
+#define DBL_MIN_10_EXP FLT_MIN_10_EXP
+#define LDBL_MIN_10_EXP FLT_MIN_10_EXP
+
+/* maximum representable floating point numbers */
+
+#define FLT_MAX 3.40282347E+38
+#define DBL_MAX FLT_MAX
+#define LDBL_MAX FLT_MAX
+
+/* minimum positive number x such that 1.0 + x != 1.0 (b ^ (1-p)) */
+
+#define FLT_EPSILON 1.19209290E-07
+#define DBL_EPSILON FLT_EPSILON
+#define LDBL_EPSILON FLT_EPSILON
+
+/* minimum representable positive floating point numbers */
+
+#define FLT_MIN 1.17549435E-38
+#define DBL_MIN FLT_MIN
+#define LDBL_MIN FLT_MIN
+
+#endif
diff --git a/frontends/calculator/CEdev/include/format.h b/frontends/calculator/CEdev/include/format.h index 52a0e80..16186bf 100644 --- a/frontends/calculator/CEdev/include/format.h +++ b/frontends/calculator/CEdev/include/format.h @@ -1,109 +1,109 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef FORMAT_H -#define FORMAT_H - -#include <stdarg.h> -#include <stdio.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef _PTR_ -#define _PTR_ * -#endif - -/* Note: 24 bits times log(2) is 7.224 decimal digits. - We only need 14 if and when we support doubles. <THH> */ -#define MAXDIGITS 10 -#define MINEXP -4 -#define DEFAULT_PRECISION 6 - -/* format status codes */ -#define FMT_OK 0 -#define FMT_ERR 1 -#define FMT_PASS_THRU 2 - -/* format flags */ -#define FMT_FLAG_MINUS 0x01 -#define FMT_FLAG_PLUS 0x02 -#define FMT_FLAG_SPACE 0x04 -#define FMT_FLAG_POUND 0x08 -#define FMT_FLAG_IGNORE 0x10 // scanf only. -#define FMT_FLAG_PRECISION 0x10 // Only needed for %s, as 0 is valid precision -#define FMT_FLAG_UPPERCASE 0x20 // Added. <THH> -#define FMT_FLAG_PAD_ZERO 0x40 -#define FMT_FLAG_STRIP 0x80 // Output only. <THH> -#define FMT_FLAG_SET 0x80 // Input only; maybe not needed if - // set_begin != 0 is used instead. <THH> - -/* structures and defines for format routines */ -/* NOTE: Some fields in this structure, and the bits in flags, are */ -/* known to the optimizer, If you change this, check out the */ -/* optimizer code in genprintf.c . */ - -struct fmt_type { - unsigned char status; /* status, OK, ERR, or PASS_THRU */ - unsigned char flags; /* flags bit mask */ - char size; /* size character h,l or L */ - char chr; /* pass thru character */ - char type; /* type of argument d,i,o,u,x ... */ - char field_width; /* field width */ - char precision; /* precision */ - char _PTR_ set_begin; /* pointer to first char in set */ - char _PTR_ set_end; /* pointer to last char in set */ - unsigned char pad_whole; - unsigned char pad_pre_fract; - unsigned char pad_post_fract; - char _PTR_ pad_at; - }; - -/* info flags */ -#define FLT_INFO_SIGN (1<<0) -#define FLT_INFO_INF (1<<1) -#define FLT_INFO_NAN (1<<2) - -/* Note: using char to represent the (decimal) exponent only works for - 4-byte floats. If we choose to support 8-byte doubles, then this must - be increased. <THH> */ -struct flt_info { - unsigned char flags; /* 1=sign, 2=inf, 4=nan */ - char exp; /* (signed) exponent (base 10) */ - unsigned char digits[MAXDIGITS]; /* max significant digits */ -}; - -extern struct fmt_type __print_fmt; -extern char __print_buff[]; -extern unsigned char __print_len; -extern char __print_leading_char; // Initial +, -, or space for number -extern void __print_send(); - -extern void _u_stoa(short); -extern void _u_ustoa(unsigned short); -extern void _u_itoa(int); -extern void _u_uitoa(unsigned int); -extern void _u_ltoa(long); -extern void _u_ultoa(unsigned long); -extern int _u_print(char _PTR_ src,char _PTR_ fmt,va_list); -extern int _u_scan(char _PTR_ src,char _PTR_ fmt,va_list ap); -extern void _u_dtof(double); -extern void _u_dtog(double); - -extern char _PTR_ _u_pscan(char _PTR_ fmt,struct fmt_type _PTR_ str, va_list _PTR_ argp); -extern char _PTR_ _u_sscan (char _PTR_ fmt,struct fmt_type _PTR_ str); - -extern void _u_reverse(char _PTR_ s); -extern char _PTR_ _u_dtoe(double); - -extern void _u_flt_info(double,struct flt_info _PTR_); -extern void _u_flt_rnd(struct flt_info _PTR_ , char); - -#ifdef __cplusplus -} -#endif - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef FORMAT_H
+#define FORMAT_H
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef _PTR_
+#define _PTR_ *
+#endif
+
+/* Note: 24 bits times log(2) is 7.224 decimal digits.
+ We only need 14 if and when we support doubles. <THH> */
+#define MAXDIGITS 10
+#define MINEXP -4
+#define DEFAULT_PRECISION 6
+
+/* format status codes */
+#define FMT_OK 0
+#define FMT_ERR 1
+#define FMT_PASS_THRU 2
+
+/* format flags */
+#define FMT_FLAG_MINUS 0x01
+#define FMT_FLAG_PLUS 0x02
+#define FMT_FLAG_SPACE 0x04
+#define FMT_FLAG_POUND 0x08
+#define FMT_FLAG_IGNORE 0x10 // scanf only.
+#define FMT_FLAG_PRECISION 0x10 // Only needed for %s, as 0 is valid precision
+#define FMT_FLAG_UPPERCASE 0x20 // Added. <THH>
+#define FMT_FLAG_PAD_ZERO 0x40
+#define FMT_FLAG_STRIP 0x80 // Output only. <THH>
+#define FMT_FLAG_SET 0x80 // Input only; maybe not needed if
+ // set_begin != 0 is used instead. <THH>
+
+/* structures and defines for format routines */
+/* NOTE: Some fields in this structure, and the bits in flags, are */
+/* known to the optimizer, If you change this, check out the */
+/* optimizer code in genprintf.c . */
+
+struct fmt_type {
+ unsigned char status; /* status, OK, ERR, or PASS_THRU */
+ unsigned char flags; /* flags bit mask */
+ char size; /* size character h,l or L */
+ char chr; /* pass thru character */
+ char type; /* type of argument d,i,o,u,x ... */
+ char field_width; /* field width */
+ char precision; /* precision */
+ char _PTR_ set_begin; /* pointer to first char in set */
+ char _PTR_ set_end; /* pointer to last char in set */
+ unsigned char pad_whole;
+ unsigned char pad_pre_fract;
+ unsigned char pad_post_fract;
+ char _PTR_ pad_at;
+ };
+
+/* info flags */
+#define FLT_INFO_SIGN (1<<0)
+#define FLT_INFO_INF (1<<1)
+#define FLT_INFO_NAN (1<<2)
+
+/* Note: using char to represent the (decimal) exponent only works for
+ 4-byte floats. If we choose to support 8-byte doubles, then this must
+ be increased. <THH> */
+struct flt_info {
+ unsigned char flags; /* 1=sign, 2=inf, 4=nan */
+ char exp; /* (signed) exponent (base 10) */
+ unsigned char digits[MAXDIGITS]; /* max significant digits */
+};
+
+extern struct fmt_type __print_fmt;
+extern char __print_buff[];
+extern unsigned char __print_len;
+extern char __print_leading_char; // Initial +, -, or space for number
+extern void __print_send();
+
+extern void _u_stoa(short);
+extern void _u_ustoa(unsigned short);
+extern void _u_itoa(int);
+extern void _u_uitoa(unsigned int);
+extern void _u_ltoa(long);
+extern void _u_ultoa(unsigned long);
+extern int _u_print(char _PTR_ src,char _PTR_ fmt,va_list);
+extern int _u_scan(char _PTR_ src,char _PTR_ fmt,va_list ap);
+extern void _u_dtof(double);
+extern void _u_dtog(double);
+
+extern char _PTR_ _u_pscan(char _PTR_ fmt,struct fmt_type _PTR_ str, va_list _PTR_ argp);
+extern char _PTR_ _u_sscan (char _PTR_ fmt,struct fmt_type _PTR_ str);
+
+extern void _u_reverse(char _PTR_ s);
+extern char _PTR_ _u_dtoe(double);
+
+extern void _u_flt_info(double,struct flt_info _PTR_);
+extern void _u_flt_rnd(struct flt_info _PTR_ , char);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/graphx.h b/frontends/calculator/CEdev/include/graphx.h index bbcf697..33e93e7 100644 --- a/frontends/calculator/CEdev/include/graphx.h +++ b/frontends/calculator/CEdev/include/graphx.h @@ -1,1514 +1,1514 @@ -/** - * @file - * @brief Contains optimized graphics operations and routines - * - * Example program template with best graphx buffer usage pattern: - * @code - * // Standard #includes omitted - * - * bool partial_redraw; - * - * // Implement us! - * void begin(); - * void end(); - * bool step(); - * void draw(); - * - * void main() { - * begin(); // No rendering allowed! - * gfx_Begin(); - * gfx_SetDrawBuffer(); // Draw to the buffer to avoid rendering artifats - * - * while (step()) { // No rendering allowed in step! - * if (partial_redraw) // Only want to redraw part of the previous frame? - * gfx_BlitScreen(); // Copy previous frame as a base for this frame - * draw(); // As little non-rendering logic as possible - * gfx_SwapDraw(); // Queue the buffered frame to be displayed - * } - * - * gfx_End(); - * end(); - * } - * @endcode - * - * @authors Matt "MateoConLechuga" Waltz - * @authors Jacob "jacobly" Young - * @authors Zachary "Runer112" Wassall - * @authors Patrick "tr1p1ea" Prendergast - * @authors "grosged" - */ - -#ifndef H_GRAPHX -#define H_GRAPHX - -#include <stdint.h> -#include <stdlib.h> -#include <stdbool.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Sprite (image) type. - * - * Whether or not a sprite includes transparency is not explicitly encoded, and - * is determined only by usage. If used with transparency, transparent pixels - * are those with a certain color index, which can be set with - * gfx_SetTransparentColor(). - * - * @attention - * Displaying a gfx_rletsprite_t (which includes transparency) is significantly - * faster than displaying a gfx_sprite_t with transparency, and should be - * preferred. However, gfx_rletsprite_t does not support transformations, such - * as flipping and rotation. Such transformations can be applied to a - * gfx_sprite_t, which can then be converted to a gfx_rletsprite_t for faster - * display using gfx_ConvertToNewRLETSprite() or gfx_ConvertToRLETSprite(). - * - * @remarks - * Create at compile-time with a tool like - * <a href="https://github.com/MattWaltz/convpng" target="_blank">convpng</a>. - * Create at runtime (with uninitialized data) with gfx_MallocSprite(), - * gfx_UninitedSprite(), or gfx_TempSprite(). - */ -typedef struct { - uint8_t width; /**< Width of the image */ - uint8_t height; /**< Height of the image */ - uint8_t data[1]; /**< Image data array */ -} gfx_sprite_t; - -/** - * @brief Sprite (image) type with RLE transparency. - * - * @attention - * Displaying a gfx_rletsprite_t (which includes transparency) is significantly - * faster than displaying a gfx_sprite_t with transparency, and should be - * preferred. However, gfx_rletsprite_t does not support transformations, such - * as flipping and rotation. Such transformations can be applied to a - * gfx_sprite_t, which can then be converted to a gfx_rletsprite_t for faster - * display using gfx_ConvertToNewRLETSprite() or gfx_ConvertToRLETSprite(). - * - * @remarks - * Create at compile-time with a tool like - * <a href="https://github.com/MattWaltz/convpng" target="_blank">convpng</a>. - */ -typedef struct { - uint8_t width; /**< Width of the image */ - uint8_t height; /**< Height of the image */ - uint8_t data[1]; /**< Image data array */ -} gfx_rletsprite_t; - -/** - * @brief A simple structure for working with 2D points - */ -typedef struct { - int x; /**< x point */ - int y; /**< y point */ -} gfx_point_t; - -/** - * @brief Stores operating modes of this library - * @see gfx_Begin - */ -typedef enum { - gfx_8bpp = 0x27 /**< Enable 8 bits per pixel mode */ -} gfx_mode_t; - -/** - * Dynamically allocates memory for a sprite. - * - * Allocates the memory with \p malloc_routine. \p width and \p height will be - * set in the allocated sprite. Returns \c NULL upon allocation failure. - * - * @note - * If not used in a dynamic context and \p width and \p height are static, - * consider statically allocating the sprite instead with gfx_UninitedSprite() - * or gfx_TempSprite(). - * - * @remarks - * If using \c malloc as the \p malloc_routine, gfx_MallocSprite() can be used - * as a shortcut. - * - * @param width sprite width - * @param height sprite height - * @param malloc_routine malloc implementation to use - * @return pointer to the allocated sprite - */ -gfx_sprite_t *gfx_AllocSprite(uint8_t width, uint8_t height, void *(*malloc_routine)(size_t)); - -/** - * Dynamically allocates memory for a sprite using \c malloc. - * - * \p width and \p height will be set in the sprite. Returns \c NULL upon - * allocation failure. - * - * @note - * If not used in a dynamic context and \p width and \p height are static, - * consider statically allocating the sprite instead with gfx_UninitedSprite() - * or gfx_TempSprite(). - * - * @param width sprite width - * @param height sprite height - * @return pointer to the allocated sprite - * @see gfx_AllocSprite - */ -#define gfx_MallocSprite(width, height) \ -gfx_AllocSprite(width, height, malloc) - -/** - * Statically allocates unitialized memory for a sprite. - * - * Declares a <tt>gfx_sprite_t *</tt> with the given \p name pointing to the - * allocated memory. \p width and \p height will \b not be set in the sprite, - * unlike gfx_TempSprite(). - * - * @warning - * If used outside of a function body, the memory will be allocated in the - * global unitialized data segment (BSS). If used inside a function body, the - * memory will be allocated on the stack. If the sprite is sufficiently large, - * usage inside a function body will overflow the stack, so it is recommended - * that this normally be used outside of a function body. - * - * @param name name of declared <tt>gfx_sprite_t *</tt> - * @param width sprite width - * @param height sprite height - * @see gfx_MallocSprite - */ -#define gfx_UninitedSprite(name, width, height) \ -uint8_t name##_data[2 + (width) * (height)]; \ -gfx_sprite_t *name = (gfx_sprite_t *)name##_data - -/** - * Statically allocates memory for a sprite. - * - * Declares a <tt>gfx_sprite_t *</tt> with the given \p name pointing to the - * allocated memory. \p width and \p height will be set in the sprite, unlike - * gfx_UninitedSprite(). - * - * @attention - * Due to \p width and \p height being set, the memory will be allocated in the - * initialized data segment. If the compiled program is not compressed, then - * this could be a serious source of bloat and gfx_UninitedSprite() should be - * preferred. - * - * @param name name of declared <tt>gfx_sprite_t *</tt> - * @param width sprite width - * @param height sprite height - * @see gfx_MallocSprite - */ -#define gfx_TempSprite(name, width, height) \ -uint8_t name##_data[2 + (width) * (height)] = { (width), (height) }; \ -gfx_sprite_t *name = (gfx_sprite_t *)name##_data - -/** - * Dynamically allocates memory for a sprite with RLE transpareny. - * - * Allocates the memory with \p malloc_routine. Returns \c NULL upon allocation - * failure. - * - * \p data_size is the maximum predicted/calculated size of the sprite data - * (excuding the width and height bytes) that will be stored in the allocated - * sprite. Sprite data size could be up to <tt>(width + 1) * height * 3 / 2</tt> - * bytes in the worst case, in which pixels horizontally alternate between - * non-transparent and transparent and each row begins with a non-transparent - * pixel. But if the average length of a horizontal transparent run is at least - * 2, then the sprite data will be no larger than <tt>(width + 1) * height</tt> - * bytes. The exact data size necessary is <tt>2 * - * num_horizontal_transparent_runs + num_non_transparent_pixels + - * num_rows_beginning_with_non_transparent_pixel - - * num_rows_ending_with_transparent_pixel</tt> bytes. - * - * @note - * If not used in a dynamic context and \p data_size is static, consider - * statically allocating the sprite instead with gfx_UninitedRLETSprite() or - * gfx_TempRLETSprite(). - * - * @remarks - * If using \c malloc as the \p malloc_routine, gfx_MallocRLETSprite() can be - * used as a shortcut. - * - * @param data_size (maximum) sprite data size - * @param malloc_routine malloc implementation to use - * @return pointer to the allocated sprite - */ -#define gfx_AllocRLETSprite(data_size, malloc_routine) \ -(gfx_rletsprite_t *)(malloc_routine)(data_size) - -/** - * Dynamically allocates memory for a sprite with RLE transparency using \c - * malloc. - * - * \p data_size is the size to allocate for sprite data; see - * gfx_AllocRLETSprite() for information. Returns \c NULL upon allocation - * failure. - * - * @note - * If not used in a dynamic context and \p data_size is static, consider - * statically allocating the sprite instead with gfx_UninitedRLETSprite() or - * gfx_TempRLETSprite(). - * - * @param data_size (maximum) sprite data size - * @return pointer to the allocated sprite - * @see gfx_AllocRLETSprite - */ -#define gfx_MallocRLETSprite(data_size) \ -gfx_AllocRLETSprite(data_size, malloc) - -/** - * Statically allocates unitialized memory for a sprite with RLE transparency. - * - * Declares a <tt>gfx_rletsprite_t *</tt> with the given \p name pointing to the - * allocated memory. \p data_size is the size to allocate for sprite data; see - * gfx_AllocRLETSprite() for information. - * - * @warning - * If used outside of a function body, the memory will be allocated in the - * global unitialized data segment (BSS). If used inside a function body, the - * memory will be allocated on the stack. If the sprite is sufficiently large, - * usage inside a function body will overflow the stack, so it is recommended - * that this normally be used outside of a function body. - * - * @param name name of declared <tt>gfx_rletsprite_t *</tt> - * @param data_size (maximum) sprite data size - * @see gfx_MallocRLETSprite - */ -#define gfx_UninitedRLETSprite(name, data_size) \ -uint8_t name##_data[2 + (data_size)]; \ -gfx_rletsprite_t *name = (gfx_rletsprite_t *)name##_data - -/** - * Initializes the graphics library setup - */ -int gfx_Begin(); - -/** - * Closes the graphics setup - * - * Restores the LCD to 16bpp prefered by the OS and clears the screen. - */ -void gfx_End(void); - -/** - * Used for accessing the lcd palette directly - * - * This consists of 256 entries, each 2 bytes in size for a total of 512 bytes - */ -#define gfx_palette \ -((uint16_t*)0xE30200) - -/** - * Array of the LCD RAM - * - * Total of 153600 bytes in size - * @see gfx_vbuffer - */ -#define gfx_vram \ -((uint8_t*)0xD40000) - -/** - * Array of the current drawing buffer - * - * Total of 76800 bytes in size - * @see gfx_vram - */ -#define gfx_vbuffer \ -(**(uint8_t(**)[240][320])0xE30014) - -/** - * @brief Defines a rectangular graphics region - * - * @see gfx_GetClipRegion - */ -typedef struct { - int xmin; /**< Minimum x coordinate */ - int ymin; /**< Minimum y coordinate */ - int xmax; /**< Maximum x coordinate */ - int ymax; /**< Maximum y coordinate */ -} gfx_region_t; - -/** - * @brief Defines tilemap structure - * - * @see gfx_Tilemap - */ -typedef struct { - uint8_t *map; /**< Pointer to indexed map array */ - gfx_sprite_t **tiles; /**< Pointer to tiles */ - uint8_t tile_height; /**< Individual tile height */ - uint8_t tile_width; /**< Individual tile width */ - uint8_t draw_height; /**< Number of tiles per row to draw */ - uint8_t draw_width; /**< Number of tile per column to draw */ - uint8_t type_width; /**< Tile type height @see gfx_tilemap_type_t */ - uint8_t type_height; /**< Tile type width @see gfx_tilemap_type_t */ - uint8_t height; /**< Total number of rows in the tilemap */ - uint8_t width; /**< Total number of columns in the tilemap */ - uint8_t y_loc; /**< Y pixel location of tilemap */ - uint24_t x_loc; /**< X pixel location to tilemap */ -} gfx_tilemap_t; - -/** - * @brief Used for defining tile types - * - * @see gfx_tilemap_t - */ -typedef enum { - gfx_tile_no_pow2 = 0, /**< Set when using non powers of 2 */ - gfx_tile_2_pixel, /**< Set when using 2 pixel tiles */ - gfx_tile_4_pixel, /**< Set when using 4 pixel tiles */ - gfx_tile_8_pixel, /**< Set when using 8 pixel tiles */ - gfx_tile_16_pixel, /**< Set when using 16 pixel tiles */ - gfx_tile_32_pixel, /**< Set when using 32 pixel tiles */ - gfx_tile_64_pixel, /**< Set when using 64 pixel tiles */ - gfx_tile_128_pixel /**< Set when using 128 pixel tiles */ -} gfx_tilemap_type_t; - -/** - * Draws a tilemap given an initialized tilemap structure - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - * @see gfx_tilemap_t - */ -void gfx_Tilemap(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset); - -/** - * Draws an unclipped tilemap given an initialized tilemap structure - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - * @see gfx_tilemap_t - */ -void gfx_Tilemap_NoClip(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset); - -/** - * Draws a transparent tilemap given an initialized tilemap structure - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - * @see gfx_tilemap_t - */ -void gfx_TransparentTilemap(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset); - -/** - * Draws an unclipped transparent tilemap given an initialized tilemap structure - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - * @see gfx_tilemap_t - */ -void gfx_TransparentTilemap_NoClip(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset); - -/** - * Gets a pointer to a particular tile given an initialized tilemap structure and pixel offsets - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - */ -uint8_t *gfx_TilePtr(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset); - -/** - * Sets a particular tile's value given an initialized tilemap structure and pixel offsets - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - * @param value Value to set tile to - */ -#define gfx_SetTile(tilemap, x_offset, y_offset, value) \ -(*(gfx_TilePtr((tilemap), (x_offset), (y_offset))) = (uint8_t)(value)) - -/** - * Gets a particular tile's value given an initialized tilemap structure and pixel offsets - * - * @param tilemap Pointer to initialized tilemap structure - * @param x_offset Offset in pixels from the left of the tilemap - * @param y_offset Offset in pixels from the top of the tilemap - */ -#define gfx_GetTile(tilemap, x_offset, y_offset) \ -(*(gfx_TilePtr((tilemap), (x_offset), (y_offset)))) - -/** - * Gets a pointer to a particular tile given an initialized tilemap structure and mapped offsets - * - * @param tilemap Pointer to initialized tilemap structure - * @param row Offset in bytes in the row - * @param col Offset in bytes in the column - */ -uint8_t *gfx_TilePtrMapped(gfx_tilemap_t *tilemap, uint8_t row, uint8_t col); - -/** - * Sets a particular tile's value given an initialized tilemap structure and mapped offsets - * - * @param tilemap Pointer to initialized tilemap structure - * @param row Offset in bytes in the row - * @param col Offset in bytes in the column - * @param value Value to set tile to - */ -#define gfx_SetTileMapped(tilemap, row, col, value) \ -(*(gfx_TilePtrMapped((tilemap), (row), (col))) = (uint8_t)(value)) - -/** - * Gets a particular tile's value given an initialized tilemap structure and mapped offsets - * - * @param tilemap Pointer to initialized tilemap structure - * @param row Offset in bytes in the row - * @param col Offset in bytes in the column - */ -#define gfx_GetTileMapped(tilemap, row, col) \ -(*(gfx_TilePtrMapped((tilemap), (row), (col)))) - -/** - * Sets the color index that drawing routines will use - * - * This applies to lines, rectangles, circles, etc - * @param index Color index to set - * @returns Previous set color index - */ -uint8_t gfx_SetColor(uint8_t index); - -/** - * Sets the transparent index that drawing routines will use - * - * This currently applies to transparent sprites, both scaled and unscaled - * @param index Transparent color index to set - * @returns The previous transparent color index - */ -uint8_t gfx_SetTransparentColor(uint8_t index); - -/** - * Sets up the default palette for the given mode - * - * @param mode Palette to use - */ -void gfx_SetDefaultPalette(gfx_mode_t mode); - -/** - * Sets entries in the palette - * - * @param palette Pointer to palette to use - * @param size Size of palette to store - * @param offset Offset in bytes to start at (Generally set to 0) - */ -void gfx_SetPalette(uint16_t *palette, uint24_t size, uint8_t offset); - -/** - * Fills the screen with a given palette index - * - * @param index Color index to fill with - */ -void gfx_FillScreen(uint8_t index); - -/** - * Implements a faster version of gfx_FillScreen(0) - * - * @see gfx_FillScreen - */ -void gfx_ZeroScreen(void); - -/** - * Sets a pixel to the global color index - * - * This is measured from the top left origin of the screen. - * Pixels are only clipped within the screen boundaries - * @param x X coordinate location - * @param y Y coordinate location - * @see gfx_SetColor - */ -void gfx_SetPixel(uint24_t x, uint8_t y); - -/** - * Gets a pixel's color index - * - * This is measured from the top left origin of the screen. - * Pixels are only clipped within the screen boundaries - * @param x X coordinate location - * @param y Y coordinate location - */ -uint8_t gfx_GetPixel(uint24_t x, uint8_t y); - -/** - * Draws a line - * - * This is measured from the top left origin of the screen. - * @param x0 First X coordinate - * @param y0 First Y coordinate - * @param x1 Second X coordinate - * @param y1 Second Y coordinate - */ -void gfx_Line(int x0, int y0, int x1, int y1); - -/** - * Draws an unclipped line - * - * This is measured from the top left origin of the screen. - * @param x0 First X coordinate - * @param y0 First Y coordinate - * @param x1 Second X coordinate - * @param y1 Second Y coordinate - */ -void gfx_Line_NoClip(uint24_t x0, uint8_t y0, uint24_t x1, uint8_t y1); - -/** - * Clips the points in a window region - * - * This is measured from the top left origin of the screen. - * @param x0 First X coordinate - * @param y0 First Y coordinate - * @param x1 Second X coordinate - * @param y1 Second Y coordinate - * @returns False if not within window, true otherwise - */ -bool gfx_CohenSutherlandClip(int *x0, int *y0, int *x1, int *y1); - -/** - * Draws a horizontal line - * - * This is measured from the top left origin of the screen. - * Performs faster than using @c gfx_Line - * @param x X coordinate - * @param y Y coordinate - * @param length Length of line - */ -void gfx_HorizLine(int x, int y, int length); - -/** - * Draws an unclipped horizontal line - * - * This is measured from the top left origin of the screen. - * Performs faster than using @c gfx_Line - * @param x X coordinate - * @param y Y coordinate - * @param length Length of line - */ -void gfx_HorizLine_NoClip(uint24_t x, uint8_t y, uint24_t length); - -/** - * Draws a vertical line - * - * This is measured from the top left origin of the screen. - * Performs faster than using @c gfx_Line - * @param x X coordinate - * @param y Y coordinate - * @param length Length of line - */ -void gfx_VertLine(int x, int y, int length); - -/** - * Draws an unclipped vertical line - * - * This is measured from the top left origin of the screen. - * Performs faster than using @c gfx_Line - * @param x X coordinate - * @param y Y coordinate - * @param length Length of line - */ -void gfx_VertLine_NoClip(uint24_t x, uint8_t y, uint24_t length); - -/** - * Draws a rectangle outline - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param width Width of rectangle - * @param height Height of rectangle - */ -void gfx_Rectangle(int x, int y, int width, int height); - -/** - * Draws an unclipped rectangle outline - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param width Width of rectangle - * @param height Height of rectangle - */ -void gfx_Rectangle_NoClip(uint24_t x, uint8_t y, uint24_t width, uint8_t height); - -/** - * Draws a filled rectangle - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param width Width of rectangle - * @param height Height of rectangle - */ -void gfx_FillRectangle(int x, int y, int width, int height); - -/** - * Draws an unclipped filled rectangle - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param width Width of rectangle - * @param height Height of rectangle - */ -void gfx_FillRectangle_NoClip(uint24_t x, uint8_t y, uint24_t width, uint8_t height); - -/** - * Draws a circle outline - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param radius The radius of the circle - */ -void gfx_Circle(int x, int y, unsigned radius); - -/** - * Draws a filled circle - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param radius The radius of the circle - */ -void gfx_FillCircle(int x, int y, unsigned radius); - -/** - * Draws an unclipped filled circle - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param radius The radius of the circle - */ -void gfx_FillCircle_NoClip(uint24_t x, uint8_t y, unsigned radius); - -/** - * Draws an unclipped circle outline - * - * This is measured from the top left origin of the screen. - * @param x X coordinate - * @param y Y coordinate - * @param radius The radius of the circle - */ -#define gfx_Circle_NoClip(x, y, radius) \ -gfx_Circle((x), (y), (radius)) - -/** - * Draws a polygon outline - * - * Points are measured from the top left origin of the screen. - * @code - * int points[6] = { - * 160, 1, // (x0, y0) - * 1, 238, // (x1, y1) - * 318,238, // (x2, y2) - * }; - * num_points = 3; - * gfx_Polygon(points, num_points) - * @endcode - * @param points Pointer to x and y pairs - * @param num_points Number of x and y pairs - */ -void gfx_Polygon(int *points, unsigned num_points); - -/** - * Draws an unclipped polygon outline - * - * Points are measured from the top left origin of the screen. - * @code - * int points[6] = { - * 160, 1, // (x0, y0) - * 1, 238, // (x1, y1) - * 318,238, // (x2, y2) - * }; - * num_points = 3; - * gfx_Polygon_NoClip(points, num_points) - * @endcode - * @param points Pointer to x and y pairs - * @param num_points Number of x and y pairs - */ -void gfx_Polygon_NoClip(int *points, unsigned num_points); - -/** - * Draws a filled triangle - * - * Points are measured from the top left origin of the screen. - * @param x0 First X coordinate - * @param y0 First Y coordinate - * @param x1 Second X coordinate - * @param y1 Second Y coordinate - * @param x2 Third X coordinate - * @param y2 Third Y coordinate - */ -void gfx_FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2); -void gfx_FillTriangle_NoClip(int x0, int y0, int x1, int y1, int x2, int y2); - -/** - * Forces all graphics routines draw location - * - * @param location Location routines should draw to - * @see gfx_draw_location_t - */ -void gfx_SetDraw(uint8_t location); - -/** - * @brief Different locations routines can be drawn to - */ -typedef enum { - gfx_screen = 0, /**< Screen */ - gfx_buffer /**< Buffer */ -} gfx_draw_location_t; - -/** - * Makes the subsequent GraphX drawing routines act on the buffer - */ -#define gfx_SetDrawBuffer() \ -gfx_SetDraw(gfx_buffer) - -/** - * Makes the subsequent GraphX drawing routines act on the screen - */ -#define gfx_SetDrawScreen() \ -gfx_SetDraw(gfx_screen) - -/** - * Gets current draw location - * - * @returns Location type enumeration - * @see gfx_draw_location_t - */ -uint8_t gfx_GetDraw(void); - -/** - * Swaps the roles of the screen and drawing buffers. - * - * Does not wait for the old screen buffer to finish being displayed. Instead, - * the next invocation of a graphx drawing function will block, waiting for this - * event. To block and wait explicitly, use gfx_Wait(). - * - * The LCD driver maintains its own screen buffer pointer for the duration of a - * refresh. The swap performed by this function will only be picked up at a - * point between refreshes. - * - * @remarks - * In practice, this function should be invoked immediately after finishing - * drawing a frame to the drawing buffer, and invocation of the first graphx - * drawing function for the next frame should be scheduled as late as possible - * relative to non-drawing logic. Non-drawing logic can execute during time when - * a drawing function may otherwise block. - */ -void gfx_SwapDraw(void); - -/** - * Waits for the screen buffer to finish being displayed after gfx_SwapDraw(). - * - * @remarks - * In practice, this function should not need to be invoked by user code. It - * should be invoked by custom drawing functions (as late as reasonably - * possible) before writing to the drawing buffer, gfx_vbuffer. - */ -void gfx_Wait(void); - -/** - * Copies the input buffer to the opposite buffer - * - * No clipping is performed; as it is a copy not a draw - * @param src drawing location to copy from - * @see gfx_draw_location_t - */ -void gfx_Blit(uint8_t src); - -/** - * Copies lines from the input buffer to the opposite buffer - * - * No clipping is performed; as it is a copy not a draw - * @param src drawing location to copy from - * @param y_loc Y Location to begin copying at - * @param num_lines Number of lines to copy - * @see gfx_draw_location_t - */ -void gfx_BlitLines(uint8_t src, uint8_t y_loc, uint8_t num_lines); - -/** - * Copies a rectangle from the input buffer to the opposite buffer - * - * No clipping is performed; as it is a copy not a draw - * @param src drawing location to copy from - * @param x X coordinate - * @param y Y coordinate - * @param width Width of rectangle - * @param height Height of rectangle - * @see gfx_draw_location_t - */ -void gfx_BlitRectangle(uint8_t src, uint24_t x, uint8_t y, uint24_t width, uint24_t height); - -/** - * Copies the screen to the buffer - */ -#define gfx_BlitScreen() \ -gfx_Blit(gfx_screen) - -/** - * Copies the buffer to the screen - */ -#define gfx_BlitBuffer() \ -gfx_Blit(gfx_buffer) - -/** - * Sets the scaling for text - * - * Values in the range from 1-5 are preferred. - * @param width_scale Text width scaling - * @param height_scale Text height scaling - */ -void gfx_SetTextScale(uint8_t width_scale, uint8_t height_scale); - -/** - * Prints a character - * - * Outputs a character at the current cursor position. - * @param c Character to print - * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig) - */ -void gfx_PrintChar(const char c); - -/** - * Prints a signed integer - * - * Outputs at the current cursor position. Padded with leading zeros if - * necessary to satisfy the specified minimum length. - * @param n Integer to print - * @param length Minimum number of characters to print - * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig) - * @note \c length must be between 1 and 8, inclusive - */ -void gfx_PrintInt(int n, uint8_t length); - -/** - * Prints an unsigned integer - * - * Outputs at the current cursor position. Padded with leading zeros if - * necessary to satisfy the specified minimum length. - * @param n Unsigned integer to print - * @param length Minimum number of characters to print - * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig) - * @note \c length must be between 1 and 8, inclusive - */ -void gfx_PrintUInt(unsigned int n, uint8_t length); - -/** - * Prints a string - * - * Outputs a string at the current cursor position. - * @param string Pointer to string to print - * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig) - */ -void gfx_PrintString(const char *string); - -/** - * Prints a string at coordinates - * - * Outputs a string at the supplied coordinates - * Posistion is measured from top left origin of screen. - * @param string Pointer to string to print - * @param x X coordinate - * @param y Y coordinate - * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig) - */ -void gfx_PrintStringXY(const char *string, int x, int y); - -/** - * @returns The current text cursor X position - */ -int gfx_GetTextX(void); - -/** - * @returns The current text cursor Y position - */ -int gfx_GetTextY(void); - -/** - * Sets the text cursor XY position - * - * @param x X coordinate - * @param y Y coordinate - */ -void gfx_SetTextXY(int x, int y); - -/** - * Sets the configuration for the text routines - * - * @param config Set the options for the text mode - * @see gfx_text_options_t - * @note Scaled text does not clip - */ -void gfx_SetTextConfig(uint8_t config); - -/** - * @brief Different available text modes - */ -typedef enum { - gfx_text_clip = 1, /**< Text routines will clip against the defined clip window */ - gfx_text_noclip /**< Default, text routines do not clip (much faster) */ -} gfx_text_options_t; - -/** - * Sets text foreground color - * - * @param color Color index to set - * @returns Previous text foreground color index - * @note Default text foreground color index: 0 - */ -uint8_t gfx_SetTextFGColor(uint8_t color); - -/** - * Sets text background color - * - * @param color Color index to set - * @returns Previous text background color index - * @note Default text background color index: 255 - */ -uint8_t gfx_SetTextBGColor(uint8_t color); - -/** - * Sets text transparency color - * - * @param color Color index to set - * @returns Previous text transparency color index - * @note Default text transparency color index: 255 - */ -uint8_t gfx_SetTextTransparentColor(uint8_t color); - -/** - * Draws a sprite - * - * @param sprite Pointer to initialized sprite structure - * @param x X coordinate - * @param y Y coordinate - */ -void gfx_Sprite(gfx_sprite_t *sprite, int x, int y); - -/** - * Draws an unclipped sprite - * - * @param sprite Pointer to initialized sprite structure - * @param x X coordinate - * @param y Y coordinate - */ -void gfx_Sprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y); - -/** - * Draws a transparent sprite - * - * @param sprite Pointer to initialized sprite structure - * @param x X coordinate - * @param y Y coordinate - */ -void gfx_TransparentSprite(gfx_sprite_t *sprite, int x, int y); - -/** - * Draws an unclipped transparent sprite - * - * @param sprite Pointer to initialized sprite structure - * @param x X coordinate - * @param y Y coordinate - */ -void gfx_TransparentSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y); - -/** - * Grabs the background behind a sprite - * - * This is useful for partial redraw. - * @param sprite_buffer Buffer used to store grabbed sprite - * @param x X coordinate to grab sprite - * @param y Y coordinate to grab sprite - * @returns A pointer to sprite_buffer - * @note sprite_buffer must be pointing to a large enough buffer to hold width*height number of bytes - */ -gfx_sprite_t *gfx_GetSprite(gfx_sprite_t *sprite_buffer, int x, int y); - -/** - * Grabs the background behind an unclipped sprite - * - * This is useful for partial redraw. - * @param sprite_buffer Buffer used to store grabbed sprite - * @param x X coordinate to grab sprite - * @param y Y coordinate to grab sprite - * @returns A pointer to sprite_buffer - * @note sprite_buffer must be pointing to a large enough buffer to hold width*height number of bytes - */ -#define gfx_GetSprite_NoClip(sprite_buffer, x, y) \ -gfx_GetSprite((sprite_buffer), (x), (y)) - -/** - * Scales an unclipped sprite - * - * Scaling factors must be greater than or equal to 1, and an integer factor - * @param sprite Pointer to initialized sprite structure - * @param x X coordinate - * @param y Y coordinate - * @param width_scale Width scaling factor - * @param height_scale Height scaling factor - * @note Useable with gfx_GetSprite in order to create clipped versions - */ -void gfx_ScaledSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t width_scale, uint8_t height_scale); - -/** - * Scales an unclipped transparent sprite - * - * Scaling factors must be greater than or equal to 1, and an integer factor - * @param sprite Pointer to initialized sprite structure - * @param x X coordinate - * @param y Y coordinate - * @param width_scale Width scaling factor - * @param height_scale Height scaling factor - * @note Useable with gfx_GetSprite in order to create clipped versions - */ -void gfx_ScaledTransparentSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t width_scale, uint8_t height_scale); - -/** - * Fixed Rotation with scaling fator for sprites - * - * @note A scale factor of 64 represents 100% scaling - * @warning This routine only accepts square input sprites - * @param sprite Input sprite to rotate/scale - * @param x X coordinate position - * @param x Y coordinate position - * @param angle 256 position angular integer - * @param scale Scaling factor; range is about 1% to 400% scale - * @returns The size of the sprite after scaling. This can be used for centering purposes. - */ -uint8_t gfx_RotatedScaledTransparentSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t angle, uint8_t scale); - -/** - * Helper macro to only perform rotation using gfx_RotatedScaledTransparentSprite_NoClip - * - * @param sprite_in Input sprite to rotate - * @param sprite_out Pointer to where rotated sprite will be stored - * @param angle 256 position angular integer - * @see gfx_RotatedScaledTransparentSprite_NoClip - */ -#define gfx_RotatedTransparentSprite_NoClip(sprite, x, y, angle) gfx_RotatedScaledTransparentSprite_NoClip(sprite, x, y, angle, 64) - -/** - * Fixed Rotation with scaling fator for sprites without transparency - * - * @note A scale factor of 64 represents 100% scaling - * @warning This routine only accepts square input sprites - * @param sprite Input sprite to rotate/scale - * @param x X coordinate position - * @param x Y coordinate position - * @param angle 256 position angular integer - * @param scale Scaling factor; range is about 1% to 400% scale - * @returns The size of the sprite after scaling. This can be used for centering purposes. - */ -uint8_t gfx_RotatedScaledSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t angle, uint8_t scale); - -/** - * Helper macro to only perform rotation using gfx_RotatedScaledSprite_NoClip - * - * @param sprite_in Input sprite to rotate - * @param sprite_out Pointer to where rotated sprite will be stored - * @param angle 256 position angular integer - * @see gfx_RotatedScaledTransparentSprite_NoClip - */ -#define gfx_RotatedSprite_NoClip(sprite, x, y, angle) gfx_RotatedScaledTransparentSprite_NoClip(sprite, x, y, angle, 64) - -/** - * Flips a sprite along the X axis - * - * @param sprite_in Input sprite to flip - * @param sprite_out Pointer to where flipped sprite will be stored - * @returns A pointer to sprite_out - * @note sprite_in and sprite_out cannot be the same - */ -gfx_sprite_t *gfx_FlipSpriteX(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Flips a sprite along the Y axis - * - * @param sprite_in Input sprite to flip - * @param sprite_out Pointer to where flipped sprite will be stored - * @returns A pointer to sprite_out - * @note sprite_in and sprite_out cannot be the same - */ -gfx_sprite_t *gfx_FlipSpriteY(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Rotates a sprite 90 degrees clockwise - * - * @param sprite_in Input sprite to rotate - * @param sprite_out Pointer to where rotated sprite will be stored - * @returns A pointer to sprite_out - * @note sprite_in and sprite_out cannot be the same - */ -gfx_sprite_t *gfx_RotateSpriteC(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Rotates a sprite 90 degrees counter clockwise - * - * @param sprite_in Input sprite to rotate - * @param sprite_out Pointer to where rotated sprite will be stored - * @returns A pointer to sprite_out - * @note sprite_in and sprite_out cannot be the same - */ -gfx_sprite_t *gfx_RotateSpriteCC(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Rotates a sprite 180 degrees - * - * @param sprite_in Input sprite to rotate - * @param sprite_out Pointer to where rotated sprite will be stored - * @returns A pointer to sprite_out - */ -gfx_sprite_t *gfx_RotateSpriteHalf(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Resizes a sprite to new dimensions - * - * Place new image dimensions in sprite_out; i.e. sprite_out->width = 80; sprite_out->height = 20. - * @param sprite_in Input sprite to scale - * @param sprite_out Pointer to where scaled sprite will be stored - * @returns A pointer to \p sprite_out - */ -gfx_sprite_t *gfx_ScaleSprite(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Fixed Rotation with scaling factor for sprites - * - * The output sprite is updated with the dimensions required for the implemented scaling factor. - * You must make sure that \p sprite_out has enough memory to store the needed output sprite. This can be - * found with the following formula: size = (max_scale / 64) * width * height + 2; - * - * @note A scale factor of 64 represents 100% scaling - * @warning This routine only accepts square input sprites - * @param sprite_in Input sprite to rotate/scale - * @param sprite_out Pointer to where rotated/scaled sprite will be stored - * @param angle 256 position angular integer - * @param scale Scaling factor; range is about 1% to 400% scale - * @returns A pointer to \p sprite_out - */ -gfx_sprite_t *gfx_RotateScaleSprite(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out, uint8_t angle, uint8_t scale); - -/** - * Helper macro to only perform rotation using gfx_RotateScaleSprite - * - * @param sprite_in Input sprite to rotate - * @param sprite_out Pointer to where rotated sprite will be stored - * @param angle 256 position angular integer - * @returns A pointer to \p sprite_out - * @see gfx_RotateScaleSprite - */ -#define gfx_RotateSprite(sprite_in, sprite_out, angle) gfx_RotateScaleSprite(sprite_in, sprite_out, angle, 64) - -/** - * Creates a temporary character sprite - * - * This may be useful for performing rotations and other - * operations on characters. The sprite returned is always 8x8 pixels. - * @param c Character to generate - */ -gfx_sprite_t *gfx_GetSpriteChar(char c); - -/** - * Sets the font's character data - * - * Fonts can be created manually or and exported to a C-style format using 8x8 Pixel ROM Font Editor. - * (https://www.min.at/prinz/o/software/pixelfont/#download) - * - * @param data Pointer to formated 8x8 pixel font - * @returns Pointer to previous font data - * @note Format of font data is 8 bytes horizontally aligned. - */ -uint8_t *gfx_SetFontData(uint8_t *data); - -/** - * Sets the font data for a specific character - * - * @param index Character index to modify (if using default font, values range from 0-127, custom font can have indexes 0-255) - * @param data Pointer to formated 8x8 pixel font - * @returns Pointer to current character data if \p data is NULL, otherwise a pointer to next character data - * @note Format of font data is 8 bytes horizontally aligned. - * @see gfx_SetFontData - */ -uint8_t *gfx_SetCharData(uint8_t index, uint8_t *data); - -/** - * Sets the font spacing - * - * @param spacing Pointer to array of character spacing - */ -void gfx_SetFontSpacing(uint8_t *spacing); - -/** - * Sets the height in pixels of each character - * - * The default value is 8 pixels - * @param height New font height in pixels - * @returns Previous height of font in pixels - */ -uint8_t gfx_SetFontHeight(uint8_t height); - -/** - * Sets monospaced font - * - * @param spacing Distance between characters - * @note To disable monospaced font, set to 0 - */ -void gfx_SetMonospaceFont(uint8_t spacing); - -/** - * Gets the pixel width of the given string - * - * @param string Pointer to string - * @note Takes into account monospacing flag - */ -unsigned int gfx_GetStringWidth(const char *string); - -/** - * Gets the pixel width of the given character - * - * @param c Character to get width of - * @returns Width in pixels of character - * @note Takes into account monospacing flag - */ -unsigned int gfx_GetCharWidth(const char c); - -/** - * Sets the clipping window - * - * This window is used across all clipped routines - * @param xmin Minimum x coordinate - * @param ymin Minimum y coordinate - * @param xmax Maximum x coordinate - * @param ymax Maximum y coordinate - * @note This routine is exclusive - */ -void gfx_SetClipRegion(int xmin, int ymin, int xmax, int ymax); - -/** - * Clips a region to fit within the window - * - * @returns False if offscreen, true if onscreen - */ -bool gfx_GetClipRegion(gfx_region_t *region); - -/** - * Shifts the drawing window down - * - * @param pixels Number of pixels to shift - * @note Data left over is undefined (Must be drawn over) - */ -void gfx_ShiftDown(uint8_t pixels); - -/** - * Shifts the drawing window up - * - * @param pixels Number of pixels to shift - * @note Data left over is undefined (Must be drawn over) - */ -void gfx_ShiftUp(uint8_t pixels); - -/** - * Shifts the drawing window left - * - * @param pixels Number of pixels to shift - * @note Data left over is undefined (Must be drawn over) - */ -void gfx_ShiftLeft(uint24_t pixels); - -/** - * Shifts the drawing window right - * - * @param pixels Number of pixels to shift - * @note Data left over is undefined (Must be drawn over) - */ -void gfx_ShiftRight(uint24_t pixels); - -/** - * Lightens a given 1555 color; useful for palette color conversions. - * - * @param color Original color input in 1555 format - * @param amount Amount to lighten by - * @returns Lightened color - * @note 0 returns full white, 255 returns original color - */ -uint16_t gfx_Lighten(uint16_t color, uint8_t amount); - -/** - * Darkens a given 1555 color; useful for palette color conversions. - * - * @param color Original color input in 1555 format - * @param amount Amount to darken by - * @returns Darkened color - * @note 0 returns full black, 255 returns original color - */ -uint16_t gfx_Darken(uint16_t color, uint8_t amount); - -/** - * Fills an area with a color - * - * @param x X coordinate to begin filling at - * @param y Y coordinate to begin filling at - * @param color New color to fill with - * - * @note This routine performs clipping to stay within the window, but you must ensure it starts in the window. - */ -void gfx_FloodFill(unsigned int x, uint8_t y, uint8_t color); - -/** - * Draws a sprite with RLE transparency. - * - * @param sprite sprite to draw - * @param x x-coordinate - * @param y y-coordinate - */ -void gfx_RLETSprite(gfx_rletsprite_t *sprite, int x, int y); - -/** - * Draws an unclipped sprite with RLE transparency. - * - * @param sprite sprite to draw - * @param x x-coordinate - * @param y y-coordinate - */ -void gfx_RLETSprite_NoClip(gfx_rletsprite_t *sprite, uint24_t x, uint8_t y); - -/** - * Converts a sprite with RLE transpareny to a sprite with normal transparency. - * - * Width and height will be set in the converted sprite. - * - * The transparent color index in the converted sprite is controlled by - * gfx_SetTransparentColor(). - * - * @attention - * The output sprite must have been allocated with a large enough \c data field - * to hold the converted sprite data, which will be <tt>width * height</tt> - * bytes large. - * - * @param[in] sprite_in input sprite with RLE transparency - * @param[out] sprite_out converted sprite with normal transparency - * @returns the converted sprite - * @see gfx_ConvertMallocRLETSprite - * @see gfx_ConvertToRLETSprite - */ -gfx_sprite_t *gfx_ConvertFromRLETSprite(gfx_rletsprite_t *sprite_in, gfx_sprite_t *sprite_out); - -/** - * Converts a sprite with normal transpareny to a sprite with RLE transparency. - * - * Width and height will be set in the converted sprite. - * - * The transparent color index in the input sprite is controlled by - * gfx_SetTransparentColor(). - * - * @attention - * The output sprite must have been allocated with a large enough data field to - * hold the converted sprite data; see gfx_AllocRLETSprite() for information. - * - * @note - * To avoid needing to predict the output size and risking either the prediction - * being too high and wasting space, or being too low and corrupting memory, - * gfx_ConvertMallocRLETSprite() can be used instead to allocate the exact - * amount of necessary space for the converted sprite. - * - * @param[in] sprite_in input sprite with normal transparency - * @param[out] sprite_out converted sprite with RLE transparency - * @returns the converted sprite - * @see gfx_ConvertFromRLETSprite - */ -gfx_rletsprite_t *gfx_ConvertToRLETSprite(gfx_sprite_t *sprite_in, gfx_rletsprite_t *sprite_out); - -/** - * Converts a sprite with normal transpareny to a sprite with RLE transparency, - * allocating the exact amount of necessary space for the converted sprite. - * - * Allocates the memory with \p malloc_routine. Width and height will be set in - * the converted sprite. Returns \c NULL upon allocation failure. - * - * The transparent color index in the input sprite is controlled by - * gfx_SetTransparentColor(). - * - * @remarks - * If using \c malloc as the \p malloc_routine, gfx_ConvertMallocRLETSprite() - * can be used as a shortcut. - * - * @remarks - * A gfx_sprite_t can be converted into an appropriately large, - * already-allocated gfx_rletsprite_t using gfx_ConvertToRLETSprite(). - * - * @param sprite_in input sprite with normal transparency - * @param malloc_routine malloc implementation to use - * @returns a newly allocated converted sprite with RLE transparency - * @see gfx_ConvertFromRLETSprite - */ -gfx_rletsprite_t *gfx_ConvertToNewRLETSprite(gfx_sprite_t *sprite_in, void *(*malloc_routine)(size_t)); - -/** - * Converts a sprite with normal transpareny to a sprite with RLE transparency, - * allocating the exact amount of necessary space for the converted sprite using - * \c malloc. - * - * Width and height will be set in the converted sprite. Returns \c NULL upon - * allocation failure. - * - * The transparent color index in the input sprite is controlled by - * gfx_SetTransparentColor(). - * - * @remarks - * A gfx_sprite_t can be converted into an appropriately large, - * already-allocated gfx_rletsprite_t using gfx_ConvertToRLETSprite(). - * - * @param sprite_in input sprite with normal transparency - * @param malloc_routine malloc implementation to use - * @returns a newly allocated converted sprite with RLE transparency - * @see gfx_ConvertFromRLETSprite - */ -#define gfx_ConvertMallocRLETSprite(sprite_in) \ -gfx_ConvertToNewRLETSprite(sprite_in, malloc) - -/** - * Converts an RGB value to a palette color - * - * Conversion is not 100% perfect, but is quite close - */ -#define gfx_RGBTo1555(r,g,b) \ -((uint16_t)(((uint8_t)(r) >> 3) << 10) | \ -(((uint8_t)(g) >> 3) << 5) | \ -((uint8_t)(b) >> 3)) - -/** - * Checks if we are currently in a rectangular hotspot area - */ -#define gfx_CheckRectangleHotspot(master_x, master_y, master_width, master_height, test_x, test_y, test_width, test_height) \ -(((test_x) < ((master_x) + (master_width))) && \ -(((test_x) + (test_width)) > (master_x)) && \ -((test_y) < ((master_y) + (master_height))) && \ -(((test_y) + (test_height)) > (master_y))) - -/* Color definitions (try to avoid) */ -#define gfx_black 0x00 -#define gfx_red 0xE0 -#define gfx_orange 0xE3 -#define gfx_green 0x03 -#define gfx_blue 0x10 -#define gfx_purple 0x50 -#define gfx_yellow 0xE7 -#define gfx_pink 0xF0 -#define gfx_white 0xFF - -/* Compatability defines (don't use please) */ -typedef gfx_sprite_t gfx_image_t; -#define gfx_BlitArea gfx_BlitRectangle -void gfx_LZDecompress(uint8_t *in, uint8_t *out, unsigned int in_size); - -#define gfx_lcdWidth (320) -#define gfx_lcdHeight (240) - -#ifdef __cplusplus -} -#endif - -#endif +/**
+ * @file
+ * @brief Contains optimized graphics operations and routines
+ *
+ * Example program template with best graphx buffer usage pattern:
+ * @code
+ * // Standard #includes omitted
+ *
+ * bool partial_redraw;
+ *
+ * // Implement us!
+ * void begin();
+ * void end();
+ * bool step();
+ * void draw();
+ *
+ * void main() {
+ * begin(); // No rendering allowed!
+ * gfx_Begin();
+ * gfx_SetDrawBuffer(); // Draw to the buffer to avoid rendering artifats
+ *
+ * while (step()) { // No rendering allowed in step!
+ * if (partial_redraw) // Only want to redraw part of the previous frame?
+ * gfx_BlitScreen(); // Copy previous frame as a base for this frame
+ * draw(); // As little non-rendering logic as possible
+ * gfx_SwapDraw(); // Queue the buffered frame to be displayed
+ * }
+ *
+ * gfx_End();
+ * end();
+ * }
+ * @endcode
+ *
+ * @authors Matt "MateoConLechuga" Waltz
+ * @authors Jacob "jacobly" Young
+ * @authors Zachary "Runer112" Wassall
+ * @authors Patrick "tr1p1ea" Prendergast
+ * @authors "grosged"
+ */
+
+#ifndef H_GRAPHX
+#define H_GRAPHX
+
+#include <stdint.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Sprite (image) type.
+ *
+ * Whether or not a sprite includes transparency is not explicitly encoded, and
+ * is determined only by usage. If used with transparency, transparent pixels
+ * are those with a certain color index, which can be set with
+ * gfx_SetTransparentColor().
+ *
+ * @attention
+ * Displaying a gfx_rletsprite_t (which includes transparency) is significantly
+ * faster than displaying a gfx_sprite_t with transparency, and should be
+ * preferred. However, gfx_rletsprite_t does not support transformations, such
+ * as flipping and rotation. Such transformations can be applied to a
+ * gfx_sprite_t, which can then be converted to a gfx_rletsprite_t for faster
+ * display using gfx_ConvertToNewRLETSprite() or gfx_ConvertToRLETSprite().
+ *
+ * @remarks
+ * Create at compile-time with a tool like
+ * <a href="https://github.com/MattWaltz/convpng" target="_blank">convpng</a>.
+ * Create at runtime (with uninitialized data) with gfx_MallocSprite(),
+ * gfx_UninitedSprite(), or gfx_TempSprite().
+ */
+typedef struct {
+ uint8_t width; /**< Width of the image */
+ uint8_t height; /**< Height of the image */
+ uint8_t data[1]; /**< Image data array */
+} gfx_sprite_t;
+
+/**
+ * @brief Sprite (image) type with RLE transparency.
+ *
+ * @attention
+ * Displaying a gfx_rletsprite_t (which includes transparency) is significantly
+ * faster than displaying a gfx_sprite_t with transparency, and should be
+ * preferred. However, gfx_rletsprite_t does not support transformations, such
+ * as flipping and rotation. Such transformations can be applied to a
+ * gfx_sprite_t, which can then be converted to a gfx_rletsprite_t for faster
+ * display using gfx_ConvertToNewRLETSprite() or gfx_ConvertToRLETSprite().
+ *
+ * @remarks
+ * Create at compile-time with a tool like
+ * <a href="https://github.com/MattWaltz/convpng" target="_blank">convpng</a>.
+ */
+typedef struct {
+ uint8_t width; /**< Width of the image */
+ uint8_t height; /**< Height of the image */
+ uint8_t data[1]; /**< Image data array */
+} gfx_rletsprite_t;
+
+/**
+ * @brief A simple structure for working with 2D points
+ */
+typedef struct {
+ int x; /**< x point */
+ int y; /**< y point */
+} gfx_point_t;
+
+/**
+ * @brief Stores operating modes of this library
+ * @see gfx_Begin
+ */
+typedef enum {
+ gfx_8bpp = 0x27 /**< Enable 8 bits per pixel mode */
+} gfx_mode_t;
+
+/**
+ * Dynamically allocates memory for a sprite.
+ *
+ * Allocates the memory with \p malloc_routine. \p width and \p height will be
+ * set in the allocated sprite. Returns \c NULL upon allocation failure.
+ *
+ * @note
+ * If not used in a dynamic context and \p width and \p height are static,
+ * consider statically allocating the sprite instead with gfx_UninitedSprite()
+ * or gfx_TempSprite().
+ *
+ * @remarks
+ * If using \c malloc as the \p malloc_routine, gfx_MallocSprite() can be used
+ * as a shortcut.
+ *
+ * @param width sprite width
+ * @param height sprite height
+ * @param malloc_routine malloc implementation to use
+ * @return pointer to the allocated sprite
+ */
+gfx_sprite_t *gfx_AllocSprite(uint8_t width, uint8_t height, void *(*malloc_routine)(size_t));
+
+/**
+ * Dynamically allocates memory for a sprite using \c malloc.
+ *
+ * \p width and \p height will be set in the sprite. Returns \c NULL upon
+ * allocation failure.
+ *
+ * @note
+ * If not used in a dynamic context and \p width and \p height are static,
+ * consider statically allocating the sprite instead with gfx_UninitedSprite()
+ * or gfx_TempSprite().
+ *
+ * @param width sprite width
+ * @param height sprite height
+ * @return pointer to the allocated sprite
+ * @see gfx_AllocSprite
+ */
+#define gfx_MallocSprite(width, height) \
+gfx_AllocSprite(width, height, malloc)
+
+/**
+ * Statically allocates unitialized memory for a sprite.
+ *
+ * Declares a <tt>gfx_sprite_t *</tt> with the given \p name pointing to the
+ * allocated memory. \p width and \p height will \b not be set in the sprite,
+ * unlike gfx_TempSprite().
+ *
+ * @warning
+ * If used outside of a function body, the memory will be allocated in the
+ * global unitialized data segment (BSS). If used inside a function body, the
+ * memory will be allocated on the stack. If the sprite is sufficiently large,
+ * usage inside a function body will overflow the stack, so it is recommended
+ * that this normally be used outside of a function body.
+ *
+ * @param name name of declared <tt>gfx_sprite_t *</tt>
+ * @param width sprite width
+ * @param height sprite height
+ * @see gfx_MallocSprite
+ */
+#define gfx_UninitedSprite(name, width, height) \
+uint8_t name##_data[2 + (width) * (height)]; \
+gfx_sprite_t *name = (gfx_sprite_t *)name##_data
+
+/**
+ * Statically allocates memory for a sprite.
+ *
+ * Declares a <tt>gfx_sprite_t *</tt> with the given \p name pointing to the
+ * allocated memory. \p width and \p height will be set in the sprite, unlike
+ * gfx_UninitedSprite().
+ *
+ * @attention
+ * Due to \p width and \p height being set, the memory will be allocated in the
+ * initialized data segment. If the compiled program is not compressed, then
+ * this could be a serious source of bloat and gfx_UninitedSprite() should be
+ * preferred.
+ *
+ * @param name name of declared <tt>gfx_sprite_t *</tt>
+ * @param width sprite width
+ * @param height sprite height
+ * @see gfx_MallocSprite
+ */
+#define gfx_TempSprite(name, width, height) \
+uint8_t name##_data[2 + (width) * (height)] = { (width), (height) }; \
+gfx_sprite_t *name = (gfx_sprite_t *)name##_data
+
+/**
+ * Dynamically allocates memory for a sprite with RLE transpareny.
+ *
+ * Allocates the memory with \p malloc_routine. Returns \c NULL upon allocation
+ * failure.
+ *
+ * \p data_size is the maximum predicted/calculated size of the sprite data
+ * (excuding the width and height bytes) that will be stored in the allocated
+ * sprite. Sprite data size could be up to <tt>(width + 1) * height * 3 / 2</tt>
+ * bytes in the worst case, in which pixels horizontally alternate between
+ * non-transparent and transparent and each row begins with a non-transparent
+ * pixel. But if the average length of a horizontal transparent run is at least
+ * 2, then the sprite data will be no larger than <tt>(width + 1) * height</tt>
+ * bytes. The exact data size necessary is <tt>2 *
+ * num_horizontal_transparent_runs + num_non_transparent_pixels +
+ * num_rows_beginning_with_non_transparent_pixel -
+ * num_rows_ending_with_transparent_pixel</tt> bytes.
+ *
+ * @note
+ * If not used in a dynamic context and \p data_size is static, consider
+ * statically allocating the sprite instead with gfx_UninitedRLETSprite() or
+ * gfx_TempRLETSprite().
+ *
+ * @remarks
+ * If using \c malloc as the \p malloc_routine, gfx_MallocRLETSprite() can be
+ * used as a shortcut.
+ *
+ * @param data_size (maximum) sprite data size
+ * @param malloc_routine malloc implementation to use
+ * @return pointer to the allocated sprite
+ */
+#define gfx_AllocRLETSprite(data_size, malloc_routine) \
+(gfx_rletsprite_t *)(malloc_routine)(data_size)
+
+/**
+ * Dynamically allocates memory for a sprite with RLE transparency using \c
+ * malloc.
+ *
+ * \p data_size is the size to allocate for sprite data; see
+ * gfx_AllocRLETSprite() for information. Returns \c NULL upon allocation
+ * failure.
+ *
+ * @note
+ * If not used in a dynamic context and \p data_size is static, consider
+ * statically allocating the sprite instead with gfx_UninitedRLETSprite() or
+ * gfx_TempRLETSprite().
+ *
+ * @param data_size (maximum) sprite data size
+ * @return pointer to the allocated sprite
+ * @see gfx_AllocRLETSprite
+ */
+#define gfx_MallocRLETSprite(data_size) \
+gfx_AllocRLETSprite(data_size, malloc)
+
+/**
+ * Statically allocates unitialized memory for a sprite with RLE transparency.
+ *
+ * Declares a <tt>gfx_rletsprite_t *</tt> with the given \p name pointing to the
+ * allocated memory. \p data_size is the size to allocate for sprite data; see
+ * gfx_AllocRLETSprite() for information.
+ *
+ * @warning
+ * If used outside of a function body, the memory will be allocated in the
+ * global unitialized data segment (BSS). If used inside a function body, the
+ * memory will be allocated on the stack. If the sprite is sufficiently large,
+ * usage inside a function body will overflow the stack, so it is recommended
+ * that this normally be used outside of a function body.
+ *
+ * @param name name of declared <tt>gfx_rletsprite_t *</tt>
+ * @param data_size (maximum) sprite data size
+ * @see gfx_MallocRLETSprite
+ */
+#define gfx_UninitedRLETSprite(name, data_size) \
+uint8_t name##_data[2 + (data_size)]; \
+gfx_rletsprite_t *name = (gfx_rletsprite_t *)name##_data
+
+/**
+ * Initializes the graphics library setup
+ */
+int gfx_Begin();
+
+/**
+ * Closes the graphics setup
+ *
+ * Restores the LCD to 16bpp prefered by the OS and clears the screen.
+ */
+void gfx_End(void);
+
+/**
+ * Used for accessing the lcd palette directly
+ *
+ * This consists of 256 entries, each 2 bytes in size for a total of 512 bytes
+ */
+#define gfx_palette \
+((uint16_t*)0xE30200)
+
+/**
+ * Array of the LCD RAM
+ *
+ * Total of 153600 bytes in size
+ * @see gfx_vbuffer
+ */
+#define gfx_vram \
+((uint8_t*)0xD40000)
+
+/**
+ * Array of the current drawing buffer
+ *
+ * Total of 76800 bytes in size
+ * @see gfx_vram
+ */
+#define gfx_vbuffer \
+(**(uint8_t(**)[240][320])0xE30014)
+
+/**
+ * @brief Defines a rectangular graphics region
+ *
+ * @see gfx_GetClipRegion
+ */
+typedef struct {
+ int xmin; /**< Minimum x coordinate */
+ int ymin; /**< Minimum y coordinate */
+ int xmax; /**< Maximum x coordinate */
+ int ymax; /**< Maximum y coordinate */
+} gfx_region_t;
+
+/**
+ * @brief Defines tilemap structure
+ *
+ * @see gfx_Tilemap
+ */
+typedef struct {
+ uint8_t *map; /**< Pointer to indexed map array */
+ gfx_sprite_t **tiles; /**< Pointer to tiles */
+ uint8_t tile_height; /**< Individual tile height */
+ uint8_t tile_width; /**< Individual tile width */
+ uint8_t draw_height; /**< Number of tiles per row to draw */
+ uint8_t draw_width; /**< Number of tile per column to draw */
+ uint8_t type_width; /**< Tile type height @see gfx_tilemap_type_t */
+ uint8_t type_height; /**< Tile type width @see gfx_tilemap_type_t */
+ uint8_t height; /**< Total number of rows in the tilemap */
+ uint8_t width; /**< Total number of columns in the tilemap */
+ uint8_t y_loc; /**< Y pixel location of tilemap */
+ uint24_t x_loc; /**< X pixel location to tilemap */
+} gfx_tilemap_t;
+
+/**
+ * @brief Used for defining tile types
+ *
+ * @see gfx_tilemap_t
+ */
+typedef enum {
+ gfx_tile_no_pow2 = 0, /**< Set when using non powers of 2 */
+ gfx_tile_2_pixel, /**< Set when using 2 pixel tiles */
+ gfx_tile_4_pixel, /**< Set when using 4 pixel tiles */
+ gfx_tile_8_pixel, /**< Set when using 8 pixel tiles */
+ gfx_tile_16_pixel, /**< Set when using 16 pixel tiles */
+ gfx_tile_32_pixel, /**< Set when using 32 pixel tiles */
+ gfx_tile_64_pixel, /**< Set when using 64 pixel tiles */
+ gfx_tile_128_pixel /**< Set when using 128 pixel tiles */
+} gfx_tilemap_type_t;
+
+/**
+ * Draws a tilemap given an initialized tilemap structure
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ * @see gfx_tilemap_t
+ */
+void gfx_Tilemap(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset);
+
+/**
+ * Draws an unclipped tilemap given an initialized tilemap structure
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ * @see gfx_tilemap_t
+ */
+void gfx_Tilemap_NoClip(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset);
+
+/**
+ * Draws a transparent tilemap given an initialized tilemap structure
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ * @see gfx_tilemap_t
+ */
+void gfx_TransparentTilemap(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset);
+
+/**
+ * Draws an unclipped transparent tilemap given an initialized tilemap structure
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ * @see gfx_tilemap_t
+ */
+void gfx_TransparentTilemap_NoClip(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset);
+
+/**
+ * Gets a pointer to a particular tile given an initialized tilemap structure and pixel offsets
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ */
+uint8_t *gfx_TilePtr(gfx_tilemap_t *tilemap, uint24_t x_offset, uint24_t y_offset);
+
+/**
+ * Sets a particular tile's value given an initialized tilemap structure and pixel offsets
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ * @param value Value to set tile to
+ */
+#define gfx_SetTile(tilemap, x_offset, y_offset, value) \
+(*(gfx_TilePtr((tilemap), (x_offset), (y_offset))) = (uint8_t)(value))
+
+/**
+ * Gets a particular tile's value given an initialized tilemap structure and pixel offsets
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param x_offset Offset in pixels from the left of the tilemap
+ * @param y_offset Offset in pixels from the top of the tilemap
+ */
+#define gfx_GetTile(tilemap, x_offset, y_offset) \
+(*(gfx_TilePtr((tilemap), (x_offset), (y_offset))))
+
+/**
+ * Gets a pointer to a particular tile given an initialized tilemap structure and mapped offsets
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param row Offset in bytes in the row
+ * @param col Offset in bytes in the column
+ */
+uint8_t *gfx_TilePtrMapped(gfx_tilemap_t *tilemap, uint8_t row, uint8_t col);
+
+/**
+ * Sets a particular tile's value given an initialized tilemap structure and mapped offsets
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param row Offset in bytes in the row
+ * @param col Offset in bytes in the column
+ * @param value Value to set tile to
+ */
+#define gfx_SetTileMapped(tilemap, row, col, value) \
+(*(gfx_TilePtrMapped((tilemap), (row), (col))) = (uint8_t)(value))
+
+/**
+ * Gets a particular tile's value given an initialized tilemap structure and mapped offsets
+ *
+ * @param tilemap Pointer to initialized tilemap structure
+ * @param row Offset in bytes in the row
+ * @param col Offset in bytes in the column
+ */
+#define gfx_GetTileMapped(tilemap, row, col) \
+(*(gfx_TilePtrMapped((tilemap), (row), (col))))
+
+/**
+ * Sets the color index that drawing routines will use
+ *
+ * This applies to lines, rectangles, circles, etc
+ * @param index Color index to set
+ * @returns Previous set color index
+ */
+uint8_t gfx_SetColor(uint8_t index);
+
+/**
+ * Sets the transparent index that drawing routines will use
+ *
+ * This currently applies to transparent sprites, both scaled and unscaled
+ * @param index Transparent color index to set
+ * @returns The previous transparent color index
+ */
+uint8_t gfx_SetTransparentColor(uint8_t index);
+
+/**
+ * Sets up the default palette for the given mode
+ *
+ * @param mode Palette to use
+ */
+void gfx_SetDefaultPalette(gfx_mode_t mode);
+
+/**
+ * Sets entries in the palette
+ *
+ * @param palette Pointer to palette to use
+ * @param size Size of palette to store
+ * @param offset Offset in bytes to start at (Generally set to 0)
+ */
+void gfx_SetPalette(uint16_t *palette, uint24_t size, uint8_t offset);
+
+/**
+ * Fills the screen with a given palette index
+ *
+ * @param index Color index to fill with
+ */
+void gfx_FillScreen(uint8_t index);
+
+/**
+ * Implements a faster version of gfx_FillScreen(0)
+ *
+ * @see gfx_FillScreen
+ */
+void gfx_ZeroScreen(void);
+
+/**
+ * Sets a pixel to the global color index
+ *
+ * This is measured from the top left origin of the screen.
+ * Pixels are only clipped within the screen boundaries
+ * @param x X coordinate location
+ * @param y Y coordinate location
+ * @see gfx_SetColor
+ */
+void gfx_SetPixel(uint24_t x, uint8_t y);
+
+/**
+ * Gets a pixel's color index
+ *
+ * This is measured from the top left origin of the screen.
+ * Pixels are only clipped within the screen boundaries
+ * @param x X coordinate location
+ * @param y Y coordinate location
+ */
+uint8_t gfx_GetPixel(uint24_t x, uint8_t y);
+
+/**
+ * Draws a line
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x0 First X coordinate
+ * @param y0 First Y coordinate
+ * @param x1 Second X coordinate
+ * @param y1 Second Y coordinate
+ */
+void gfx_Line(int x0, int y0, int x1, int y1);
+
+/**
+ * Draws an unclipped line
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x0 First X coordinate
+ * @param y0 First Y coordinate
+ * @param x1 Second X coordinate
+ * @param y1 Second Y coordinate
+ */
+void gfx_Line_NoClip(uint24_t x0, uint8_t y0, uint24_t x1, uint8_t y1);
+
+/**
+ * Clips the points in a window region
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x0 First X coordinate
+ * @param y0 First Y coordinate
+ * @param x1 Second X coordinate
+ * @param y1 Second Y coordinate
+ * @returns False if not within window, true otherwise
+ */
+bool gfx_CohenSutherlandClip(int *x0, int *y0, int *x1, int *y1);
+
+/**
+ * Draws a horizontal line
+ *
+ * This is measured from the top left origin of the screen.
+ * Performs faster than using @c gfx_Line
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param length Length of line
+ */
+void gfx_HorizLine(int x, int y, int length);
+
+/**
+ * Draws an unclipped horizontal line
+ *
+ * This is measured from the top left origin of the screen.
+ * Performs faster than using @c gfx_Line
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param length Length of line
+ */
+void gfx_HorizLine_NoClip(uint24_t x, uint8_t y, uint24_t length);
+
+/**
+ * Draws a vertical line
+ *
+ * This is measured from the top left origin of the screen.
+ * Performs faster than using @c gfx_Line
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param length Length of line
+ */
+void gfx_VertLine(int x, int y, int length);
+
+/**
+ * Draws an unclipped vertical line
+ *
+ * This is measured from the top left origin of the screen.
+ * Performs faster than using @c gfx_Line
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param length Length of line
+ */
+void gfx_VertLine_NoClip(uint24_t x, uint8_t y, uint24_t length);
+
+/**
+ * Draws a rectangle outline
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width Width of rectangle
+ * @param height Height of rectangle
+ */
+void gfx_Rectangle(int x, int y, int width, int height);
+
+/**
+ * Draws an unclipped rectangle outline
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width Width of rectangle
+ * @param height Height of rectangle
+ */
+void gfx_Rectangle_NoClip(uint24_t x, uint8_t y, uint24_t width, uint8_t height);
+
+/**
+ * Draws a filled rectangle
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width Width of rectangle
+ * @param height Height of rectangle
+ */
+void gfx_FillRectangle(int x, int y, int width, int height);
+
+/**
+ * Draws an unclipped filled rectangle
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width Width of rectangle
+ * @param height Height of rectangle
+ */
+void gfx_FillRectangle_NoClip(uint24_t x, uint8_t y, uint24_t width, uint8_t height);
+
+/**
+ * Draws a circle outline
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param radius The radius of the circle
+ */
+void gfx_Circle(int x, int y, unsigned radius);
+
+/**
+ * Draws a filled circle
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param radius The radius of the circle
+ */
+void gfx_FillCircle(int x, int y, unsigned radius);
+
+/**
+ * Draws an unclipped filled circle
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param radius The radius of the circle
+ */
+void gfx_FillCircle_NoClip(uint24_t x, uint8_t y, unsigned radius);
+
+/**
+ * Draws an unclipped circle outline
+ *
+ * This is measured from the top left origin of the screen.
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param radius The radius of the circle
+ */
+#define gfx_Circle_NoClip(x, y, radius) \
+gfx_Circle((x), (y), (radius))
+
+/**
+ * Draws a polygon outline
+ *
+ * Points are measured from the top left origin of the screen.
+ * @code
+ * int points[6] = {
+ * 160, 1, // (x0, y0)
+ * 1, 238, // (x1, y1)
+ * 318,238, // (x2, y2)
+ * };
+ * num_points = 3;
+ * gfx_Polygon(points, num_points)
+ * @endcode
+ * @param points Pointer to x and y pairs
+ * @param num_points Number of x and y pairs
+ */
+void gfx_Polygon(int *points, unsigned num_points);
+
+/**
+ * Draws an unclipped polygon outline
+ *
+ * Points are measured from the top left origin of the screen.
+ * @code
+ * int points[6] = {
+ * 160, 1, // (x0, y0)
+ * 1, 238, // (x1, y1)
+ * 318,238, // (x2, y2)
+ * };
+ * num_points = 3;
+ * gfx_Polygon_NoClip(points, num_points)
+ * @endcode
+ * @param points Pointer to x and y pairs
+ * @param num_points Number of x and y pairs
+ */
+void gfx_Polygon_NoClip(int *points, unsigned num_points);
+
+/**
+ * Draws a filled triangle
+ *
+ * Points are measured from the top left origin of the screen.
+ * @param x0 First X coordinate
+ * @param y0 First Y coordinate
+ * @param x1 Second X coordinate
+ * @param y1 Second Y coordinate
+ * @param x2 Third X coordinate
+ * @param y2 Third Y coordinate
+ */
+void gfx_FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
+void gfx_FillTriangle_NoClip(int x0, int y0, int x1, int y1, int x2, int y2);
+
+/**
+ * Forces all graphics routines draw location
+ *
+ * @param location Location routines should draw to
+ * @see gfx_draw_location_t
+ */
+void gfx_SetDraw(uint8_t location);
+
+/**
+ * @brief Different locations routines can be drawn to
+ */
+typedef enum {
+ gfx_screen = 0, /**< Screen */
+ gfx_buffer /**< Buffer */
+} gfx_draw_location_t;
+
+/**
+ * Makes the subsequent GraphX drawing routines act on the buffer
+ */
+#define gfx_SetDrawBuffer() \
+gfx_SetDraw(gfx_buffer)
+
+/**
+ * Makes the subsequent GraphX drawing routines act on the screen
+ */
+#define gfx_SetDrawScreen() \
+gfx_SetDraw(gfx_screen)
+
+/**
+ * Gets current draw location
+ *
+ * @returns Location type enumeration
+ * @see gfx_draw_location_t
+ */
+uint8_t gfx_GetDraw(void);
+
+/**
+ * Swaps the roles of the screen and drawing buffers.
+ *
+ * Does not wait for the old screen buffer to finish being displayed. Instead,
+ * the next invocation of a graphx drawing function will block, waiting for this
+ * event. To block and wait explicitly, use gfx_Wait().
+ *
+ * The LCD driver maintains its own screen buffer pointer for the duration of a
+ * refresh. The swap performed by this function will only be picked up at a
+ * point between refreshes.
+ *
+ * @remarks
+ * In practice, this function should be invoked immediately after finishing
+ * drawing a frame to the drawing buffer, and invocation of the first graphx
+ * drawing function for the next frame should be scheduled as late as possible
+ * relative to non-drawing logic. Non-drawing logic can execute during time when
+ * a drawing function may otherwise block.
+ */
+void gfx_SwapDraw(void);
+
+/**
+ * Waits for the screen buffer to finish being displayed after gfx_SwapDraw().
+ *
+ * @remarks
+ * In practice, this function should not need to be invoked by user code. It
+ * should be invoked by custom drawing functions (as late as reasonably
+ * possible) before writing to the drawing buffer, gfx_vbuffer.
+ */
+void gfx_Wait(void);
+
+/**
+ * Copies the input buffer to the opposite buffer
+ *
+ * No clipping is performed; as it is a copy not a draw
+ * @param src drawing location to copy from
+ * @see gfx_draw_location_t
+ */
+void gfx_Blit(uint8_t src);
+
+/**
+ * Copies lines from the input buffer to the opposite buffer
+ *
+ * No clipping is performed; as it is a copy not a draw
+ * @param src drawing location to copy from
+ * @param y_loc Y Location to begin copying at
+ * @param num_lines Number of lines to copy
+ * @see gfx_draw_location_t
+ */
+void gfx_BlitLines(uint8_t src, uint8_t y_loc, uint8_t num_lines);
+
+/**
+ * Copies a rectangle from the input buffer to the opposite buffer
+ *
+ * No clipping is performed; as it is a copy not a draw
+ * @param src drawing location to copy from
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width Width of rectangle
+ * @param height Height of rectangle
+ * @see gfx_draw_location_t
+ */
+void gfx_BlitRectangle(uint8_t src, uint24_t x, uint8_t y, uint24_t width, uint24_t height);
+
+/**
+ * Copies the screen to the buffer
+ */
+#define gfx_BlitScreen() \
+gfx_Blit(gfx_screen)
+
+/**
+ * Copies the buffer to the screen
+ */
+#define gfx_BlitBuffer() \
+gfx_Blit(gfx_buffer)
+
+/**
+ * Sets the scaling for text
+ *
+ * Values in the range from 1-5 are preferred.
+ * @param width_scale Text width scaling
+ * @param height_scale Text height scaling
+ */
+void gfx_SetTextScale(uint8_t width_scale, uint8_t height_scale);
+
+/**
+ * Prints a character
+ *
+ * Outputs a character at the current cursor position.
+ * @param c Character to print
+ * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig)
+ */
+void gfx_PrintChar(const char c);
+
+/**
+ * Prints a signed integer
+ *
+ * Outputs at the current cursor position. Padded with leading zeros if
+ * necessary to satisfy the specified minimum length.
+ * @param n Integer to print
+ * @param length Minimum number of characters to print
+ * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig)
+ * @note \c length must be between 1 and 8, inclusive
+ */
+void gfx_PrintInt(int n, uint8_t length);
+
+/**
+ * Prints an unsigned integer
+ *
+ * Outputs at the current cursor position. Padded with leading zeros if
+ * necessary to satisfy the specified minimum length.
+ * @param n Unsigned integer to print
+ * @param length Minimum number of characters to print
+ * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig)
+ * @note \c length must be between 1 and 8, inclusive
+ */
+void gfx_PrintUInt(unsigned int n, uint8_t length);
+
+/**
+ * Prints a string
+ *
+ * Outputs a string at the current cursor position.
+ * @param string Pointer to string to print
+ * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig)
+ */
+void gfx_PrintString(const char *string);
+
+/**
+ * Prints a string at coordinates
+ *
+ * Outputs a string at the supplied coordinates
+ * Posistion is measured from top left origin of screen.
+ * @param string Pointer to string to print
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @note By default, no text clipping is performed (configurable with gfx_SetTextConfig)
+ */
+void gfx_PrintStringXY(const char *string, int x, int y);
+
+/**
+ * @returns The current text cursor X position
+ */
+int gfx_GetTextX(void);
+
+/**
+ * @returns The current text cursor Y position
+ */
+int gfx_GetTextY(void);
+
+/**
+ * Sets the text cursor XY position
+ *
+ * @param x X coordinate
+ * @param y Y coordinate
+ */
+void gfx_SetTextXY(int x, int y);
+
+/**
+ * Sets the configuration for the text routines
+ *
+ * @param config Set the options for the text mode
+ * @see gfx_text_options_t
+ * @note Scaled text does not clip
+ */
+void gfx_SetTextConfig(uint8_t config);
+
+/**
+ * @brief Different available text modes
+ */
+typedef enum {
+ gfx_text_clip = 1, /**< Text routines will clip against the defined clip window */
+ gfx_text_noclip /**< Default, text routines do not clip (much faster) */
+} gfx_text_options_t;
+
+/**
+ * Sets text foreground color
+ *
+ * @param color Color index to set
+ * @returns Previous text foreground color index
+ * @note Default text foreground color index: 0
+ */
+uint8_t gfx_SetTextFGColor(uint8_t color);
+
+/**
+ * Sets text background color
+ *
+ * @param color Color index to set
+ * @returns Previous text background color index
+ * @note Default text background color index: 255
+ */
+uint8_t gfx_SetTextBGColor(uint8_t color);
+
+/**
+ * Sets text transparency color
+ *
+ * @param color Color index to set
+ * @returns Previous text transparency color index
+ * @note Default text transparency color index: 255
+ */
+uint8_t gfx_SetTextTransparentColor(uint8_t color);
+
+/**
+ * Draws a sprite
+ *
+ * @param sprite Pointer to initialized sprite structure
+ * @param x X coordinate
+ * @param y Y coordinate
+ */
+void gfx_Sprite(gfx_sprite_t *sprite, int x, int y);
+
+/**
+ * Draws an unclipped sprite
+ *
+ * @param sprite Pointer to initialized sprite structure
+ * @param x X coordinate
+ * @param y Y coordinate
+ */
+void gfx_Sprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y);
+
+/**
+ * Draws a transparent sprite
+ *
+ * @param sprite Pointer to initialized sprite structure
+ * @param x X coordinate
+ * @param y Y coordinate
+ */
+void gfx_TransparentSprite(gfx_sprite_t *sprite, int x, int y);
+
+/**
+ * Draws an unclipped transparent sprite
+ *
+ * @param sprite Pointer to initialized sprite structure
+ * @param x X coordinate
+ * @param y Y coordinate
+ */
+void gfx_TransparentSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y);
+
+/**
+ * Grabs the background behind a sprite
+ *
+ * This is useful for partial redraw.
+ * @param sprite_buffer Buffer used to store grabbed sprite
+ * @param x X coordinate to grab sprite
+ * @param y Y coordinate to grab sprite
+ * @returns A pointer to sprite_buffer
+ * @note sprite_buffer must be pointing to a large enough buffer to hold width*height number of bytes
+ */
+gfx_sprite_t *gfx_GetSprite(gfx_sprite_t *sprite_buffer, int x, int y);
+
+/**
+ * Grabs the background behind an unclipped sprite
+ *
+ * This is useful for partial redraw.
+ * @param sprite_buffer Buffer used to store grabbed sprite
+ * @param x X coordinate to grab sprite
+ * @param y Y coordinate to grab sprite
+ * @returns A pointer to sprite_buffer
+ * @note sprite_buffer must be pointing to a large enough buffer to hold width*height number of bytes
+ */
+#define gfx_GetSprite_NoClip(sprite_buffer, x, y) \
+gfx_GetSprite((sprite_buffer), (x), (y))
+
+/**
+ * Scales an unclipped sprite
+ *
+ * Scaling factors must be greater than or equal to 1, and an integer factor
+ * @param sprite Pointer to initialized sprite structure
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width_scale Width scaling factor
+ * @param height_scale Height scaling factor
+ * @note Useable with gfx_GetSprite in order to create clipped versions
+ */
+void gfx_ScaledSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t width_scale, uint8_t height_scale);
+
+/**
+ * Scales an unclipped transparent sprite
+ *
+ * Scaling factors must be greater than or equal to 1, and an integer factor
+ * @param sprite Pointer to initialized sprite structure
+ * @param x X coordinate
+ * @param y Y coordinate
+ * @param width_scale Width scaling factor
+ * @param height_scale Height scaling factor
+ * @note Useable with gfx_GetSprite in order to create clipped versions
+ */
+void gfx_ScaledTransparentSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t width_scale, uint8_t height_scale);
+
+/**
+ * Fixed Rotation with scaling fator for sprites
+ *
+ * @note A scale factor of 64 represents 100% scaling
+ * @warning This routine only accepts square input sprites
+ * @param sprite Input sprite to rotate/scale
+ * @param x X coordinate position
+ * @param x Y coordinate position
+ * @param angle 256 position angular integer
+ * @param scale Scaling factor; range is about 1% to 400% scale
+ * @returns The size of the sprite after scaling. This can be used for centering purposes.
+ */
+uint8_t gfx_RotatedScaledTransparentSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t angle, uint8_t scale);
+
+/**
+ * Helper macro to only perform rotation using gfx_RotatedScaledTransparentSprite_NoClip
+ *
+ * @param sprite_in Input sprite to rotate
+ * @param sprite_out Pointer to where rotated sprite will be stored
+ * @param angle 256 position angular integer
+ * @see gfx_RotatedScaledTransparentSprite_NoClip
+ */
+#define gfx_RotatedTransparentSprite_NoClip(sprite, x, y, angle) gfx_RotatedScaledTransparentSprite_NoClip(sprite, x, y, angle, 64)
+
+/**
+ * Fixed Rotation with scaling fator for sprites without transparency
+ *
+ * @note A scale factor of 64 represents 100% scaling
+ * @warning This routine only accepts square input sprites
+ * @param sprite Input sprite to rotate/scale
+ * @param x X coordinate position
+ * @param x Y coordinate position
+ * @param angle 256 position angular integer
+ * @param scale Scaling factor; range is about 1% to 400% scale
+ * @returns The size of the sprite after scaling. This can be used for centering purposes.
+ */
+uint8_t gfx_RotatedScaledSprite_NoClip(gfx_sprite_t *sprite, uint24_t x, uint8_t y, uint8_t angle, uint8_t scale);
+
+/**
+ * Helper macro to only perform rotation using gfx_RotatedScaledSprite_NoClip
+ *
+ * @param sprite_in Input sprite to rotate
+ * @param sprite_out Pointer to where rotated sprite will be stored
+ * @param angle 256 position angular integer
+ * @see gfx_RotatedScaledTransparentSprite_NoClip
+ */
+#define gfx_RotatedSprite_NoClip(sprite, x, y, angle) gfx_RotatedScaledTransparentSprite_NoClip(sprite, x, y, angle, 64)
+
+/**
+ * Flips a sprite along the X axis
+ *
+ * @param sprite_in Input sprite to flip
+ * @param sprite_out Pointer to where flipped sprite will be stored
+ * @returns A pointer to sprite_out
+ * @note sprite_in and sprite_out cannot be the same
+ */
+gfx_sprite_t *gfx_FlipSpriteX(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Flips a sprite along the Y axis
+ *
+ * @param sprite_in Input sprite to flip
+ * @param sprite_out Pointer to where flipped sprite will be stored
+ * @returns A pointer to sprite_out
+ * @note sprite_in and sprite_out cannot be the same
+ */
+gfx_sprite_t *gfx_FlipSpriteY(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Rotates a sprite 90 degrees clockwise
+ *
+ * @param sprite_in Input sprite to rotate
+ * @param sprite_out Pointer to where rotated sprite will be stored
+ * @returns A pointer to sprite_out
+ * @note sprite_in and sprite_out cannot be the same
+ */
+gfx_sprite_t *gfx_RotateSpriteC(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Rotates a sprite 90 degrees counter clockwise
+ *
+ * @param sprite_in Input sprite to rotate
+ * @param sprite_out Pointer to where rotated sprite will be stored
+ * @returns A pointer to sprite_out
+ * @note sprite_in and sprite_out cannot be the same
+ */
+gfx_sprite_t *gfx_RotateSpriteCC(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Rotates a sprite 180 degrees
+ *
+ * @param sprite_in Input sprite to rotate
+ * @param sprite_out Pointer to where rotated sprite will be stored
+ * @returns A pointer to sprite_out
+ */
+gfx_sprite_t *gfx_RotateSpriteHalf(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Resizes a sprite to new dimensions
+ *
+ * Place new image dimensions in sprite_out; i.e. sprite_out->width = 80; sprite_out->height = 20.
+ * @param sprite_in Input sprite to scale
+ * @param sprite_out Pointer to where scaled sprite will be stored
+ * @returns A pointer to \p sprite_out
+ */
+gfx_sprite_t *gfx_ScaleSprite(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Fixed Rotation with scaling factor for sprites
+ *
+ * The output sprite is updated with the dimensions required for the implemented scaling factor.
+ * You must make sure that \p sprite_out has enough memory to store the needed output sprite. This can be
+ * found with the following formula: size = (max_scale / 64) * width * height + 2;
+ *
+ * @note A scale factor of 64 represents 100% scaling
+ * @warning This routine only accepts square input sprites
+ * @param sprite_in Input sprite to rotate/scale
+ * @param sprite_out Pointer to where rotated/scaled sprite will be stored
+ * @param angle 256 position angular integer
+ * @param scale Scaling factor; range is about 1% to 400% scale
+ * @returns A pointer to \p sprite_out
+ */
+gfx_sprite_t *gfx_RotateScaleSprite(gfx_sprite_t *sprite_in, gfx_sprite_t *sprite_out, uint8_t angle, uint8_t scale);
+
+/**
+ * Helper macro to only perform rotation using gfx_RotateScaleSprite
+ *
+ * @param sprite_in Input sprite to rotate
+ * @param sprite_out Pointer to where rotated sprite will be stored
+ * @param angle 256 position angular integer
+ * @returns A pointer to \p sprite_out
+ * @see gfx_RotateScaleSprite
+ */
+#define gfx_RotateSprite(sprite_in, sprite_out, angle) gfx_RotateScaleSprite(sprite_in, sprite_out, angle, 64)
+
+/**
+ * Creates a temporary character sprite
+ *
+ * This may be useful for performing rotations and other
+ * operations on characters. The sprite returned is always 8x8 pixels.
+ * @param c Character to generate
+ */
+gfx_sprite_t *gfx_GetSpriteChar(char c);
+
+/**
+ * Sets the font's character data
+ *
+ * Fonts can be created manually or and exported to a C-style format using 8x8 Pixel ROM Font Editor.
+ * (https://www.min.at/prinz/o/software/pixelfont/#download)
+ *
+ * @param data Pointer to formated 8x8 pixel font
+ * @returns Pointer to previous font data
+ * @note Format of font data is 8 bytes horizontally aligned.
+ */
+uint8_t *gfx_SetFontData(uint8_t *data);
+
+/**
+ * Sets the font data for a specific character
+ *
+ * @param index Character index to modify (if using default font, values range from 0-127, custom font can have indexes 0-255)
+ * @param data Pointer to formated 8x8 pixel font
+ * @returns Pointer to current character data if \p data is NULL, otherwise a pointer to next character data
+ * @note Format of font data is 8 bytes horizontally aligned.
+ * @see gfx_SetFontData
+ */
+uint8_t *gfx_SetCharData(uint8_t index, uint8_t *data);
+
+/**
+ * Sets the font spacing
+ *
+ * @param spacing Pointer to array of character spacing
+ */
+void gfx_SetFontSpacing(uint8_t *spacing);
+
+/**
+ * Sets the height in pixels of each character
+ *
+ * The default value is 8 pixels
+ * @param height New font height in pixels
+ * @returns Previous height of font in pixels
+ */
+uint8_t gfx_SetFontHeight(uint8_t height);
+
+/**
+ * Sets monospaced font
+ *
+ * @param spacing Distance between characters
+ * @note To disable monospaced font, set to 0
+ */
+void gfx_SetMonospaceFont(uint8_t spacing);
+
+/**
+ * Gets the pixel width of the given string
+ *
+ * @param string Pointer to string
+ * @note Takes into account monospacing flag
+ */
+unsigned int gfx_GetStringWidth(const char *string);
+
+/**
+ * Gets the pixel width of the given character
+ *
+ * @param c Character to get width of
+ * @returns Width in pixels of character
+ * @note Takes into account monospacing flag
+ */
+unsigned int gfx_GetCharWidth(const char c);
+
+/**
+ * Sets the clipping window
+ *
+ * This window is used across all clipped routines
+ * @param xmin Minimum x coordinate
+ * @param ymin Minimum y coordinate
+ * @param xmax Maximum x coordinate
+ * @param ymax Maximum y coordinate
+ * @note This routine is exclusive
+ */
+void gfx_SetClipRegion(int xmin, int ymin, int xmax, int ymax);
+
+/**
+ * Clips a region to fit within the window
+ *
+ * @returns False if offscreen, true if onscreen
+ */
+bool gfx_GetClipRegion(gfx_region_t *region);
+
+/**
+ * Shifts the drawing window down
+ *
+ * @param pixels Number of pixels to shift
+ * @note Data left over is undefined (Must be drawn over)
+ */
+void gfx_ShiftDown(uint8_t pixels);
+
+/**
+ * Shifts the drawing window up
+ *
+ * @param pixels Number of pixels to shift
+ * @note Data left over is undefined (Must be drawn over)
+ */
+void gfx_ShiftUp(uint8_t pixels);
+
+/**
+ * Shifts the drawing window left
+ *
+ * @param pixels Number of pixels to shift
+ * @note Data left over is undefined (Must be drawn over)
+ */
+void gfx_ShiftLeft(uint24_t pixels);
+
+/**
+ * Shifts the drawing window right
+ *
+ * @param pixels Number of pixels to shift
+ * @note Data left over is undefined (Must be drawn over)
+ */
+void gfx_ShiftRight(uint24_t pixels);
+
+/**
+ * Lightens a given 1555 color; useful for palette color conversions.
+ *
+ * @param color Original color input in 1555 format
+ * @param amount Amount to lighten by
+ * @returns Lightened color
+ * @note 0 returns full white, 255 returns original color
+ */
+uint16_t gfx_Lighten(uint16_t color, uint8_t amount);
+
+/**
+ * Darkens a given 1555 color; useful for palette color conversions.
+ *
+ * @param color Original color input in 1555 format
+ * @param amount Amount to darken by
+ * @returns Darkened color
+ * @note 0 returns full black, 255 returns original color
+ */
+uint16_t gfx_Darken(uint16_t color, uint8_t amount);
+
+/**
+ * Fills an area with a color
+ *
+ * @param x X coordinate to begin filling at
+ * @param y Y coordinate to begin filling at
+ * @param color New color to fill with
+ *
+ * @note This routine performs clipping to stay within the window, but you must ensure it starts in the window.
+ */
+void gfx_FloodFill(unsigned int x, uint8_t y, uint8_t color);
+
+/**
+ * Draws a sprite with RLE transparency.
+ *
+ * @param sprite sprite to draw
+ * @param x x-coordinate
+ * @param y y-coordinate
+ */
+void gfx_RLETSprite(gfx_rletsprite_t *sprite, int x, int y);
+
+/**
+ * Draws an unclipped sprite with RLE transparency.
+ *
+ * @param sprite sprite to draw
+ * @param x x-coordinate
+ * @param y y-coordinate
+ */
+void gfx_RLETSprite_NoClip(gfx_rletsprite_t *sprite, uint24_t x, uint8_t y);
+
+/**
+ * Converts a sprite with RLE transpareny to a sprite with normal transparency.
+ *
+ * Width and height will be set in the converted sprite.
+ *
+ * The transparent color index in the converted sprite is controlled by
+ * gfx_SetTransparentColor().
+ *
+ * @attention
+ * The output sprite must have been allocated with a large enough \c data field
+ * to hold the converted sprite data, which will be <tt>width * height</tt>
+ * bytes large.
+ *
+ * @param[in] sprite_in input sprite with RLE transparency
+ * @param[out] sprite_out converted sprite with normal transparency
+ * @returns the converted sprite
+ * @see gfx_ConvertMallocRLETSprite
+ * @see gfx_ConvertToRLETSprite
+ */
+gfx_sprite_t *gfx_ConvertFromRLETSprite(gfx_rletsprite_t *sprite_in, gfx_sprite_t *sprite_out);
+
+/**
+ * Converts a sprite with normal transpareny to a sprite with RLE transparency.
+ *
+ * Width and height will be set in the converted sprite.
+ *
+ * The transparent color index in the input sprite is controlled by
+ * gfx_SetTransparentColor().
+ *
+ * @attention
+ * The output sprite must have been allocated with a large enough data field to
+ * hold the converted sprite data; see gfx_AllocRLETSprite() for information.
+ *
+ * @note
+ * To avoid needing to predict the output size and risking either the prediction
+ * being too high and wasting space, or being too low and corrupting memory,
+ * gfx_ConvertMallocRLETSprite() can be used instead to allocate the exact
+ * amount of necessary space for the converted sprite.
+ *
+ * @param[in] sprite_in input sprite with normal transparency
+ * @param[out] sprite_out converted sprite with RLE transparency
+ * @returns the converted sprite
+ * @see gfx_ConvertFromRLETSprite
+ */
+gfx_rletsprite_t *gfx_ConvertToRLETSprite(gfx_sprite_t *sprite_in, gfx_rletsprite_t *sprite_out);
+
+/**
+ * Converts a sprite with normal transpareny to a sprite with RLE transparency,
+ * allocating the exact amount of necessary space for the converted sprite.
+ *
+ * Allocates the memory with \p malloc_routine. Width and height will be set in
+ * the converted sprite. Returns \c NULL upon allocation failure.
+ *
+ * The transparent color index in the input sprite is controlled by
+ * gfx_SetTransparentColor().
+ *
+ * @remarks
+ * If using \c malloc as the \p malloc_routine, gfx_ConvertMallocRLETSprite()
+ * can be used as a shortcut.
+ *
+ * @remarks
+ * A gfx_sprite_t can be converted into an appropriately large,
+ * already-allocated gfx_rletsprite_t using gfx_ConvertToRLETSprite().
+ *
+ * @param sprite_in input sprite with normal transparency
+ * @param malloc_routine malloc implementation to use
+ * @returns a newly allocated converted sprite with RLE transparency
+ * @see gfx_ConvertFromRLETSprite
+ */
+gfx_rletsprite_t *gfx_ConvertToNewRLETSprite(gfx_sprite_t *sprite_in, void *(*malloc_routine)(size_t));
+
+/**
+ * Converts a sprite with normal transpareny to a sprite with RLE transparency,
+ * allocating the exact amount of necessary space for the converted sprite using
+ * \c malloc.
+ *
+ * Width and height will be set in the converted sprite. Returns \c NULL upon
+ * allocation failure.
+ *
+ * The transparent color index in the input sprite is controlled by
+ * gfx_SetTransparentColor().
+ *
+ * @remarks
+ * A gfx_sprite_t can be converted into an appropriately large,
+ * already-allocated gfx_rletsprite_t using gfx_ConvertToRLETSprite().
+ *
+ * @param sprite_in input sprite with normal transparency
+ * @param malloc_routine malloc implementation to use
+ * @returns a newly allocated converted sprite with RLE transparency
+ * @see gfx_ConvertFromRLETSprite
+ */
+#define gfx_ConvertMallocRLETSprite(sprite_in) \
+gfx_ConvertToNewRLETSprite(sprite_in, malloc)
+
+/**
+ * Converts an RGB value to a palette color
+ *
+ * Conversion is not 100% perfect, but is quite close
+ */
+#define gfx_RGBTo1555(r,g,b) \
+((uint16_t)(((uint8_t)(r) >> 3) << 10) | \
+(((uint8_t)(g) >> 3) << 5) | \
+((uint8_t)(b) >> 3))
+
+/**
+ * Checks if we are currently in a rectangular hotspot area
+ */
+#define gfx_CheckRectangleHotspot(master_x, master_y, master_width, master_height, test_x, test_y, test_width, test_height) \
+(((test_x) < ((master_x) + (master_width))) && \
+(((test_x) + (test_width)) > (master_x)) && \
+((test_y) < ((master_y) + (master_height))) && \
+(((test_y) + (test_height)) > (master_y)))
+
+/* Color definitions (try to avoid) */
+#define gfx_black 0x00
+#define gfx_red 0xE0
+#define gfx_orange 0xE3
+#define gfx_green 0x03
+#define gfx_blue 0x10
+#define gfx_purple 0x50
+#define gfx_yellow 0xE7
+#define gfx_pink 0xF0
+#define gfx_white 0xFF
+
+/* Compatability defines (don't use please) */
+typedef gfx_sprite_t gfx_image_t;
+#define gfx_BlitArea gfx_BlitRectangle
+void gfx_LZDecompress(uint8_t *in, uint8_t *out, unsigned int in_size);
+
+#define gfx_lcdWidth (320)
+#define gfx_lcdHeight (240)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/intce.h b/frontends/calculator/CEdev/include/intce.h index 1184c29..dd27a31 100644 --- a/frontends/calculator/CEdev/include/intce.h +++ b/frontends/calculator/CEdev/include/intce.h @@ -1,93 +1,93 @@ -/** - * @file - * @authors Matt "MateoConLechuga" Waltz - * @authors Jacob "jacobly" Young - * @brief Interrupt configuring and setting - */ - -#ifndef INTCE_H -#define INTCE_H - -#include <stdint.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Enable global interrupts - */ -#define int_Enable() \ -asm("ei") - -/** - * @brief Diasble global interrupts - */ -#define int_Disable() \ -asm("di") - -/** - * @brief Blocking wait for an interrupt to trigger - */ -#define int_Wait() \ -asm("halt") - -#ifdef FORCE_INTERRUPTS -#warning TI has removed custom interrupt support on CE models with hardware revision >= I. Please check that this is acceptable. - -/** - * Initizalize to use custom interrupts - * @note Saves status of current interrupt state - * @warning TI has removed custom interrupt support on CE models with hardware revision >= I. - */ -void int_Initialize(void); - -/** - * Resets interrupts back to the OS expected values - * @warning Must have called int_Initialize before using - * @warning TI has removed custom interrupt support on CE models with hardware revision >= I. - */ -void int_Reset(void); - -/** - * Sets up an interrupt vector given an ISR - * @param ivect Interrupt vector to set - * @param handler Handler to interrupt service routine - * @warning TI has removed custom interrupt support on CE models with hardware revision >= I. - */ -void int_SetVector(uint8_t ivect, void (*handler)(void)); - -#endif - -#define ON_IVECT 0 /**< [on] key interrupt source */ -#define TIMER1_IVECT 1 /**< Timer 1 interrupt source */ -#define TIMER2_IVECT 2 /**< Timer 2 interrupt source */ -#define TIMER3_IVECT 3 /**< Timer 3 interrupt source */ -#define TIMEROS_IVECT 4 /**< Timer OS interrupt source */ -#define KEYBOARD_IVECT 10 /**< Keyboard interrupt source */ -#define LCD_IVECT 11 /**< LCD interrupt source */ -#define RTC_IVECT 12 /**< Real Time Clock interrupt source */ -#define USB_IVECT 13 /**< USB interrupt source */ - -#define INT_ON 1<<ON_IVECT /**< [on] key interrupt source mask */ -#define INT_TIMER1 1<<TIMER1_IVECT /**< Timer 1 interrupt source mask */ -#define INT_TIMER2 1<<TIMER2_IVECT /**< Timer 2 interrupt source mask */ -#define INT_TIMER3 1<<TIMER3_IVECT /**< Timer 3 interrupt source mask */ -#define INT_TIMEROS 1<<TIMEROS_IVECT /**< Timer OS interrupt source mask */ -#define INT_KEYBOARD 1<<KEYBOARD_IVECT /**< Keyboard interrupt source mask */ -#define INT_LCD 1<<LCD_IVECT /**< LCD interrupt source mask */ -#define INT_RTC 1<<RTC_IVECT /**< Real Time Clock interrupt source mask */ -#define INT_USB 1<<USB_IVECT /**< USB interrupt source mask */ - -#define int_RawStatus (*(volatile uint24_t*)0x0F00000) /**< State of interrupt signals */ -#define int_MaskedStatus (*(volatile uint24_t*)0x0F00014) /**< Masked state of interrupt signals */ -#define int_EnableConfig (*(uint24_t*)0x0F00004) /**< Enabled interrupt signals */ -#define int_LatchConfig (*(uint24_t*)0x0F0000C) /**< Latchable interrupt signals */ -#define int_InvertConfig (*(uint24_t*)0x0F00010) /**< Invertable interrupt signals */ -#define int_Acknowledge (*(uint24_t*)0x0F00008) /**< Acknowledge interrupt signals */ - -#ifdef __cplusplus -} -#endif - -#endif +/**
+ * @file
+ * @authors Matt "MateoConLechuga" Waltz
+ * @authors Jacob "jacobly" Young
+ * @brief Interrupt configuring and setting
+ */
+
+#ifndef INTCE_H
+#define INTCE_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief Enable global interrupts
+ */
+#define int_Enable() \
+asm("ei")
+
+/**
+ * @brief Diasble global interrupts
+ */
+#define int_Disable() \
+asm("di")
+
+/**
+ * @brief Blocking wait for an interrupt to trigger
+ */
+#define int_Wait() \
+asm("halt")
+
+#ifdef FORCE_INTERRUPTS
+#warning TI has removed custom interrupt support on CE models with hardware revision >= I. Please check that this is acceptable.
+
+/**
+ * Initizalize to use custom interrupts
+ * @note Saves status of current interrupt state
+ * @warning TI has removed custom interrupt support on CE models with hardware revision >= I.
+ */
+void int_Initialize(void);
+
+/**
+ * Resets interrupts back to the OS expected values
+ * @warning Must have called int_Initialize before using
+ * @warning TI has removed custom interrupt support on CE models with hardware revision >= I.
+ */
+void int_Reset(void);
+
+/**
+ * Sets up an interrupt vector given an ISR
+ * @param ivect Interrupt vector to set
+ * @param handler Handler to interrupt service routine
+ * @warning TI has removed custom interrupt support on CE models with hardware revision >= I.
+ */
+void int_SetVector(uint8_t ivect, void (*handler)(void));
+
+#endif
+
+#define ON_IVECT 0 /**< [on] key interrupt source */
+#define TIMER1_IVECT 1 /**< Timer 1 interrupt source */
+#define TIMER2_IVECT 2 /**< Timer 2 interrupt source */
+#define TIMER3_IVECT 3 /**< Timer 3 interrupt source */
+#define TIMEROS_IVECT 4 /**< Timer OS interrupt source */
+#define KEYBOARD_IVECT 10 /**< Keyboard interrupt source */
+#define LCD_IVECT 11 /**< LCD interrupt source */
+#define RTC_IVECT 12 /**< Real Time Clock interrupt source */
+#define USB_IVECT 13 /**< USB interrupt source */
+
+#define INT_ON 1<<ON_IVECT /**< [on] key interrupt source mask */
+#define INT_TIMER1 1<<TIMER1_IVECT /**< Timer 1 interrupt source mask */
+#define INT_TIMER2 1<<TIMER2_IVECT /**< Timer 2 interrupt source mask */
+#define INT_TIMER3 1<<TIMER3_IVECT /**< Timer 3 interrupt source mask */
+#define INT_TIMEROS 1<<TIMEROS_IVECT /**< Timer OS interrupt source mask */
+#define INT_KEYBOARD 1<<KEYBOARD_IVECT /**< Keyboard interrupt source mask */
+#define INT_LCD 1<<LCD_IVECT /**< LCD interrupt source mask */
+#define INT_RTC 1<<RTC_IVECT /**< Real Time Clock interrupt source mask */
+#define INT_USB 1<<USB_IVECT /**< USB interrupt source mask */
+
+#define int_RawStatus (*(volatile uint24_t*)0x0F00000) /**< State of interrupt signals */
+#define int_MaskedStatus (*(volatile uint24_t*)0x0F00014) /**< Masked state of interrupt signals */
+#define int_EnableConfig (*(uint24_t*)0x0F00004) /**< Enabled interrupt signals */
+#define int_LatchConfig (*(uint24_t*)0x0F0000C) /**< Latchable interrupt signals */
+#define int_InvertConfig (*(uint24_t*)0x0F00010) /**< Invertable interrupt signals */
+#define int_Acknowledge (*(uint24_t*)0x0F00008) /**< Acknowledge interrupt signals */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/iso646.h b/frontends/calculator/CEdev/include/iso646.h index d8e83a5..8127c05 100644 --- a/frontends/calculator/CEdev/include/iso646.h +++ b/frontends/calculator/CEdev/include/iso646.h @@ -1,18 +1,18 @@ -#ifndef __ISO646_H -#define __ISO646_H - -#ifndef __cplusplus -#define and && -#define and_eq &= -#define bitand & -#define bitor | -#define compl ~ -#define not ! -#define not_eq != -#define or || -#define or_eq |= -#define xor ^ -#define xor_eq ^= -#endif - +#ifndef __ISO646_H
+#define __ISO646_H
+
+#ifndef __cplusplus
+#define and &&
+#define and_eq &=
+#define bitand &
+#define bitor |
+#define compl ~
+#define not !
+#define not_eq !=
+#define or ||
+#define or_eq |=
+#define xor ^
+#define xor_eq ^=
+#endif
+
#endif
\ No newline at end of file diff --git a/frontends/calculator/CEdev/include/keypadc.h b/frontends/calculator/CEdev/include/keypadc.h index 1b92f1c..db77bf3 100644 --- a/frontends/calculator/CEdev/include/keypadc.h +++ b/frontends/calculator/CEdev/include/keypadc.h @@ -1,255 +1,255 @@ -/** - * @file - * @authors Matt "MateoConLechuga" Waltz - * @authors Shaun "Methsoft" McFall - * @brief Simple direct input keypad library - */ - -#ifndef H_KEYPADC -#define H_KEYPADC - -#include <stdint.h> -#include <stdbool.h> - -#ifdef __cplusplus -extern "C" { -#endif - -typedef uint8_t kb_key_t; ///< Normal key type -typedef uint16_t kb_lkey_t; ///< Long key type - -/** - * Scans the keyboard to update data values - * @note Disables interrupts - */ -void kb_Scan(void); - -/** - * Scans the given keyboard row and returns the row value - * @param row Row to scan - * @note Disables interrupts - */ -kb_key_t kb_ScanGroup(uint8_t row); - -/** - * Scans the keyboard quickly to tell if any key was pressed - * @note Disables interrupts - */ -uint8_t kb_AnyKey(void); - -/** - * Resets the keyboard - * @note Only use if you modify keyboard timers or number of rows - */ -void kb_Reset(void); - -/** - * @brief Sets the keypad scanning mode - * @see kb_scan_mode_t - */ -#define kb_SetMode(mode) \ -(kb_Config = ((kb_Config & ~3)|(mode))) - -/** - * @brief Gets the keypad scanning mode - * @see kb_scan_mode_t - */ -#define kb_GetMode() \ -(kb_Config & 3) - -/** - * Different available scanning modes - */ -typedef enum { - MODE_0_IDLE = 0, /**< Keypad scanning is idle */ - MODE_1_INDISCRIMINATE, /**< Indiscriminate key detection. Data registers are invalid, but whenever any key is pressed, interrupt KB_MODE_1_PRESS is set (and cannot be cleared until the key is released). */ - MODE_2_SINGLE, /**< Single scan. The keypad is scanned once, and then the mode returns to MODE_0_IDLE. */ - MODE_3_CONTINUOUS /**< Continuous scan. When scanning completes, it just starts over again after a delay. */ -} kb_scan_mode_t; - -#define kb_EnableInt \ -(*(uint8_t*)0xF5000C) /**< Enabled keypad interrupt signals */ -#define kb_IntAcknowledge \ -(*(volatile uint8_t*)0xF50008) /**< Acknowledege keypad interrupt signals */ -#define kb_IntStatus \ -(*(volatile uint8_t*)0xF50008) /**< Status of keypad interrupt signals */ -#define kb_Config \ -(*(uint8_t*)0xF50000) /**< Configuration of keypad controller */ - -/** - * Keypad Data registers - * - * | Offset | Bit 0 | Bit 1 | Bit 2 | Bit 3 | Bit 4 | Bit 5 | Bit 6 | Bit 7 | - * | -------| ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | - * | 1 | kb_Graph | kb_Trace | kb_Zoom | kb_Window | kb_Yequ | kb_2nd | kb_Mode | kb_Del | - * | 2 | | kb_Sto | kb_Ln | kb_Log | kb_Square | kb_Recip | kb_Math | kb_Alpha | - * | 3 | kb_0 | kb_1 | kb_4 | kb_7 | kb_Comma | kb_Sin | kb_Apps | kb_GraphVar| - * | 4 | kb_DecPnt | kb_2 | kb_5 | kb_8 | kb_LParen | kb_Cos | kb_Prgm | kb_Stat | - * | 5 | kb_Chs | kb_3 | kb_6 | kb_9 | kb_RParen | kb_Tan | kb_Vars | | - * | 6 | kb_Enter | kb_Add | kb_Sub | kb_Mul | kb_Div | kb_Power | kb_Clear | | - * | 7 | kb_Down | kb_Left | kb_Right | kb_Up | | | | | - * - * These data registers can be indexed just like an array. For example, if you want to check the status of the '2nd' key: - * @code - * if (kb_Data[1] & kb_2nd) { - * ... - * } - * @endcode - */ -#define kb_Data \ -(uint8_t)((uint16_t*)0xF50010) - -/** - * Different available interrupt signals - */ -typedef enum { - KB_SCAN_COMPLETE = 1, /**< Interrupt set when keypad is done scanning */ - KB_DATA_CHANGED = 2, /**< Interrupt set when data is changed on a press or a release */ - KB_MODE_1_PRESS = 4 /**< Interrupt set when a key is pressed in MODE_1_INDISCRIMINATE */ -} kb_int_signal_t; - -/* Keyboard group 1 */ -#define kb_Graph 1<<0 -#define kb_Trace 1<<1 -#define kb_Zoom 1<<2 -#define kb_Window 1<<3 -#define kb_Yequ 1<<4 -#define kb_2nd 1<<5 -#define kb_Mode 1<<6 -#define kb_Del 1<<7 - -/* Keyboard group 2 */ -#define kb_Sto 1<<1 -#define kb_Ln 1<<2 -#define kb_Log 1<<3 -#define kb_Square 1<<4 -#define kb_Recip 1<<5 -#define kb_Math 1<<6 -#define kb_Alpha 1<<7 - -/* Keyboard group 3 */ -#define kb_0 1<<0 -#define kb_1 1<<1 -#define kb_4 1<<2 -#define kb_7 1<<3 -#define kb_Comma 1<<4 -#define kb_Sin 1<<5 -#define kb_Apps 1<<6 -#define kb_GraphVar 1<<7 - -/* Keyboard group 4 */ -#define kb_DecPnt 1<<0 -#define kb_2 1<<1 -#define kb_5 1<<2 -#define kb_8 1<<3 -#define kb_LParen 1<<4 -#define kb_Cos 1<<5 -#define kb_Prgm 1<<6 -#define kb_Stat 1<<7 - -/* Keyboard group 5 */ -#define kb_Chs 1<<0 -#define kb_3 1<<1 -#define kb_6 1<<2 -#define kb_9 1<<3 -#define kb_RParen 1<<4 -#define kb_Tan 1<<5 -#define kb_Vars 1<<6 - -/* Keyboard group 6 */ -#define kb_Enter 1<<0 -#define kb_Add 1<<1 -#define kb_Sub 1<<2 -#define kb_Mul 1<<3 -#define kb_Div 1<<4 -#define kb_Power 1<<5 -#define kb_Clear 1<<6 - -/* Keyboard group 7 */ -#define kb_Down 1<<0 -#define kb_Left 1<<1 -#define kb_Right 1<<2 -#define kb_Up 1<<3 - -/* Keyboard group 1 */ -#define kb_KeyGraph (kb_lkey_t)(1 << 8 | 1<<0) -#define kb_KeyTrace (kb_lkey_t)(1 << 8 | 1<<1) -#define kb_KeyZoom (kb_lkey_t)(1 << 8 | 1<<2) -#define kb_KeyWindow (kb_lkey_t)(1 << 8 | 1<<3) -#define kb_KeyYequ (kb_lkey_t)(1 << 8 | 1<<4) -#define kb_Key2nd (kb_lkey_t)(1 << 8 | 1<<5) -#define kb_KeyMode (kb_lkey_t)(1 << 8 | 1<<6) -#define kb_KeyDel (kb_lkey_t)(1 << 8 | 1<<7) - -/* Keyboard group 2 */ -#define kb_KeyStore (kb_lkey_t)(2 << 8 | 1<<1) -#define kb_KeyLn (kb_lkey_t)(2 << 8 | 1<<2) -#define kb_KeyLog (kb_lkey_t)(2 << 8 | 1<<3) -#define kb_KeySquare (kb_lkey_t)(2 << 8 | 1<<4) -#define kb_KeyRecip (kb_lkey_t)(2 << 8 | 1<<5) -#define kb_KeyMath (kb_lkey_t)(2 << 8 | 1<<6) -#define kb_KeyAlpha (kb_lkey_t)(2 << 8 | 1<<7) - -/* Keyboard group 3 */ -#define kb_Key0 (kb_lkey_t)(3 << 8 | 1<<0) -#define kb_Key1 (kb_lkey_t)(3 << 8 | 1<<1) -#define kb_Key4 (kb_lkey_t)(3 << 8 | 1<<2) -#define kb_Key7 (kb_lkey_t)(3 << 8 | 1<<3) -#define kb_KeyComma (kb_lkey_t)(3 << 8 | 1<<4) -#define kb_KeySin (kb_lkey_t)(3 << 8 | 1<<5) -#define kb_KeyApps (kb_lkey_t)(3 << 8 | 1<<6) -#define kb_KeyGraphVar (kb_lkey_t)(3 << 8 | 1<<7) - -/* Keyboard group 4 */ -#define kb_KeyDecPnt (kb_lkey_t)(4 << 8 | 1<<0) -#define kb_Key2 (kb_lkey_t)(4 << 8 | 1<<1) -#define kb_Key5 (kb_lkey_t)(4 << 8 | 1<<2) -#define kb_Key8 (kb_lkey_t)(4 << 8 | 1<<3) -#define kb_KeyLParen (kb_lkey_t)(4 << 8 | 1<<4) -#define kb_KeyCos (kb_lkey_t)(4 << 8 | 1<<5) -#define kb_KeyPrgm (kb_lkey_t)(4 << 8 | 1<<6) -#define kb_KeyStat (kb_lkey_t)(4 << 8 | 1<<7) - -/* Keyboard group 5 */ -#define kb_KeyChs (kb_lkey_t)(5 << 8 | 1<<0) -#define kb_Key3 (kb_lkey_t)(5 << 8 | 1<<1) -#define kb_Key6 (kb_lkey_t)(5 << 8 | 1<<2) -#define kb_Key9 (kb_lkey_t)(5 << 8 | 1<<3) -#define kb_KeyRParen (kb_lkey_t)(5 << 8 | 1<<4) -#define kb_KeyTan (kb_lkey_t)(5 << 8 | 1<<5) -#define kb_KeyVars (kb_lkey_t)(5 << 8 | 1<<6) - -/* Keyboard group 6 */ -#define kb_KeyEnter (kb_lkey_t)(6 << 8 | 1<<0) -#define kb_KeyAdd (kb_lkey_t)(6 << 8 | 1<<1) -#define kb_KeySub (kb_lkey_t)(6 << 8 | 1<<2) -#define kb_KeyMul (kb_lkey_t)(6 << 8 | 1<<3) -#define kb_KeyDiv (kb_lkey_t)(6 << 8 | 1<<4) -#define kb_KeyPower (kb_lkey_t)(6 << 8 | 1<<5) -#define kb_KeyClear (kb_lkey_t)(6 << 8 | 1<<6) - -/* Keyboard group 7 */ -#define kb_KeyDown (kb_lkey_t)(7 << 8 | 1<<0) -#define kb_KeyLeft (kb_lkey_t)(7 << 8 | 1<<1) -#define kb_KeyRight (kb_lkey_t)(7 << 8 | 1<<2) -#define kb_KeyUp (kb_lkey_t)(7 << 8 | 1<<3) - -/* Compatibility defines */ -#define kb_DataArray ((uint16_t*)0xF50010) -#define kb_dataArray ((uint16_t*)0xF50010) -#define kb_Store 1<<1 -#define kb_KeyPgrm kb_KeyPrgm -#define kb_group_0 0 -#define kb_group_1 1 -#define kb_group_2 2 -#define kb_group_3 3 -#define kb_group_4 4 -#define kb_group_5 5 -#define kb_group_6 6 -#define kb_group_7 7 - -#ifdef __cplusplus -} -#endif - -#endif +/**
+ * @file
+ * @authors Matt "MateoConLechuga" Waltz
+ * @authors Shaun "Methsoft" McFall
+ * @brief Simple direct input keypad library
+ */
+
+#ifndef H_KEYPADC
+#define H_KEYPADC
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef uint8_t kb_key_t; ///< Normal key type
+typedef uint16_t kb_lkey_t; ///< Long key type
+
+/**
+ * Scans the keyboard to update data values
+ * @note Disables interrupts
+ */
+void kb_Scan(void);
+
+/**
+ * Scans the given keyboard row and returns the row value
+ * @param row Row to scan
+ * @note Disables interrupts
+ */
+kb_key_t kb_ScanGroup(uint8_t row);
+
+/**
+ * Scans the keyboard quickly to tell if any key was pressed
+ * @note Disables interrupts
+ */
+uint8_t kb_AnyKey(void);
+
+/**
+ * Resets the keyboard
+ * @note Only use if you modify keyboard timers or number of rows
+ */
+void kb_Reset(void);
+
+/**
+ * @brief Sets the keypad scanning mode
+ * @see kb_scan_mode_t
+ */
+#define kb_SetMode(mode) \
+(kb_Config = ((kb_Config & ~3)|(mode)))
+
+/**
+ * @brief Gets the keypad scanning mode
+ * @see kb_scan_mode_t
+ */
+#define kb_GetMode() \
+(kb_Config & 3)
+
+/**
+ * Different available scanning modes
+ */
+typedef enum {
+ MODE_0_IDLE = 0, /**< Keypad scanning is idle */
+ MODE_1_INDISCRIMINATE, /**< Indiscriminate key detection. Data registers are invalid, but whenever any key is pressed, interrupt KB_MODE_1_PRESS is set (and cannot be cleared until the key is released). */
+ MODE_2_SINGLE, /**< Single scan. The keypad is scanned once, and then the mode returns to MODE_0_IDLE. */
+ MODE_3_CONTINUOUS /**< Continuous scan. When scanning completes, it just starts over again after a delay. */
+} kb_scan_mode_t;
+
+#define kb_EnableInt \
+(*(uint8_t*)0xF5000C) /**< Enabled keypad interrupt signals */
+#define kb_IntAcknowledge \
+(*(volatile uint8_t*)0xF50008) /**< Acknowledege keypad interrupt signals */
+#define kb_IntStatus \
+(*(volatile uint8_t*)0xF50008) /**< Status of keypad interrupt signals */
+#define kb_Config \
+(*(uint8_t*)0xF50000) /**< Configuration of keypad controller */
+
+/**
+ * Keypad Data registers
+ *
+ * | Offset | Bit 0 | Bit 1 | Bit 2 | Bit 3 | Bit 4 | Bit 5 | Bit 6 | Bit 7 |
+ * | -------| ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- | ---------- |
+ * | 1 | kb_Graph | kb_Trace | kb_Zoom | kb_Window | kb_Yequ | kb_2nd | kb_Mode | kb_Del |
+ * | 2 | | kb_Sto | kb_Ln | kb_Log | kb_Square | kb_Recip | kb_Math | kb_Alpha |
+ * | 3 | kb_0 | kb_1 | kb_4 | kb_7 | kb_Comma | kb_Sin | kb_Apps | kb_GraphVar|
+ * | 4 | kb_DecPnt | kb_2 | kb_5 | kb_8 | kb_LParen | kb_Cos | kb_Prgm | kb_Stat |
+ * | 5 | kb_Chs | kb_3 | kb_6 | kb_9 | kb_RParen | kb_Tan | kb_Vars | |
+ * | 6 | kb_Enter | kb_Add | kb_Sub | kb_Mul | kb_Div | kb_Power | kb_Clear | |
+ * | 7 | kb_Down | kb_Left | kb_Right | kb_Up | | | | |
+ *
+ * These data registers can be indexed just like an array. For example, if you want to check the status of the '2nd' key:
+ * @code
+ * if (kb_Data[1] & kb_2nd) {
+ * ...
+ * }
+ * @endcode
+ */
+#define kb_Data \
+(uint8_t)((uint16_t*)0xF50010)
+
+/**
+ * Different available interrupt signals
+ */
+typedef enum {
+ KB_SCAN_COMPLETE = 1, /**< Interrupt set when keypad is done scanning */
+ KB_DATA_CHANGED = 2, /**< Interrupt set when data is changed on a press or a release */
+ KB_MODE_1_PRESS = 4 /**< Interrupt set when a key is pressed in MODE_1_INDISCRIMINATE */
+} kb_int_signal_t;
+
+/* Keyboard group 1 */
+#define kb_Graph 1<<0
+#define kb_Trace 1<<1
+#define kb_Zoom 1<<2
+#define kb_Window 1<<3
+#define kb_Yequ 1<<4
+#define kb_2nd 1<<5
+#define kb_Mode 1<<6
+#define kb_Del 1<<7
+
+/* Keyboard group 2 */
+#define kb_Sto 1<<1
+#define kb_Ln 1<<2
+#define kb_Log 1<<3
+#define kb_Square 1<<4
+#define kb_Recip 1<<5
+#define kb_Math 1<<6
+#define kb_Alpha 1<<7
+
+/* Keyboard group 3 */
+#define kb_0 1<<0
+#define kb_1 1<<1
+#define kb_4 1<<2
+#define kb_7 1<<3
+#define kb_Comma 1<<4
+#define kb_Sin 1<<5
+#define kb_Apps 1<<6
+#define kb_GraphVar 1<<7
+
+/* Keyboard group 4 */
+#define kb_DecPnt 1<<0
+#define kb_2 1<<1
+#define kb_5 1<<2
+#define kb_8 1<<3
+#define kb_LParen 1<<4
+#define kb_Cos 1<<5
+#define kb_Prgm 1<<6
+#define kb_Stat 1<<7
+
+/* Keyboard group 5 */
+#define kb_Chs 1<<0
+#define kb_3 1<<1
+#define kb_6 1<<2
+#define kb_9 1<<3
+#define kb_RParen 1<<4
+#define kb_Tan 1<<5
+#define kb_Vars 1<<6
+
+/* Keyboard group 6 */
+#define kb_Enter 1<<0
+#define kb_Add 1<<1
+#define kb_Sub 1<<2
+#define kb_Mul 1<<3
+#define kb_Div 1<<4
+#define kb_Power 1<<5
+#define kb_Clear 1<<6
+
+/* Keyboard group 7 */
+#define kb_Down 1<<0
+#define kb_Left 1<<1
+#define kb_Right 1<<2
+#define kb_Up 1<<3
+
+/* Keyboard group 1 */
+#define kb_KeyGraph (kb_lkey_t)(1 << 8 | 1<<0)
+#define kb_KeyTrace (kb_lkey_t)(1 << 8 | 1<<1)
+#define kb_KeyZoom (kb_lkey_t)(1 << 8 | 1<<2)
+#define kb_KeyWindow (kb_lkey_t)(1 << 8 | 1<<3)
+#define kb_KeyYequ (kb_lkey_t)(1 << 8 | 1<<4)
+#define kb_Key2nd (kb_lkey_t)(1 << 8 | 1<<5)
+#define kb_KeyMode (kb_lkey_t)(1 << 8 | 1<<6)
+#define kb_KeyDel (kb_lkey_t)(1 << 8 | 1<<7)
+
+/* Keyboard group 2 */
+#define kb_KeyStore (kb_lkey_t)(2 << 8 | 1<<1)
+#define kb_KeyLn (kb_lkey_t)(2 << 8 | 1<<2)
+#define kb_KeyLog (kb_lkey_t)(2 << 8 | 1<<3)
+#define kb_KeySquare (kb_lkey_t)(2 << 8 | 1<<4)
+#define kb_KeyRecip (kb_lkey_t)(2 << 8 | 1<<5)
+#define kb_KeyMath (kb_lkey_t)(2 << 8 | 1<<6)
+#define kb_KeyAlpha (kb_lkey_t)(2 << 8 | 1<<7)
+
+/* Keyboard group 3 */
+#define kb_Key0 (kb_lkey_t)(3 << 8 | 1<<0)
+#define kb_Key1 (kb_lkey_t)(3 << 8 | 1<<1)
+#define kb_Key4 (kb_lkey_t)(3 << 8 | 1<<2)
+#define kb_Key7 (kb_lkey_t)(3 << 8 | 1<<3)
+#define kb_KeyComma (kb_lkey_t)(3 << 8 | 1<<4)
+#define kb_KeySin (kb_lkey_t)(3 << 8 | 1<<5)
+#define kb_KeyApps (kb_lkey_t)(3 << 8 | 1<<6)
+#define kb_KeyGraphVar (kb_lkey_t)(3 << 8 | 1<<7)
+
+/* Keyboard group 4 */
+#define kb_KeyDecPnt (kb_lkey_t)(4 << 8 | 1<<0)
+#define kb_Key2 (kb_lkey_t)(4 << 8 | 1<<1)
+#define kb_Key5 (kb_lkey_t)(4 << 8 | 1<<2)
+#define kb_Key8 (kb_lkey_t)(4 << 8 | 1<<3)
+#define kb_KeyLParen (kb_lkey_t)(4 << 8 | 1<<4)
+#define kb_KeyCos (kb_lkey_t)(4 << 8 | 1<<5)
+#define kb_KeyPrgm (kb_lkey_t)(4 << 8 | 1<<6)
+#define kb_KeyStat (kb_lkey_t)(4 << 8 | 1<<7)
+
+/* Keyboard group 5 */
+#define kb_KeyChs (kb_lkey_t)(5 << 8 | 1<<0)
+#define kb_Key3 (kb_lkey_t)(5 << 8 | 1<<1)
+#define kb_Key6 (kb_lkey_t)(5 << 8 | 1<<2)
+#define kb_Key9 (kb_lkey_t)(5 << 8 | 1<<3)
+#define kb_KeyRParen (kb_lkey_t)(5 << 8 | 1<<4)
+#define kb_KeyTan (kb_lkey_t)(5 << 8 | 1<<5)
+#define kb_KeyVars (kb_lkey_t)(5 << 8 | 1<<6)
+
+/* Keyboard group 6 */
+#define kb_KeyEnter (kb_lkey_t)(6 << 8 | 1<<0)
+#define kb_KeyAdd (kb_lkey_t)(6 << 8 | 1<<1)
+#define kb_KeySub (kb_lkey_t)(6 << 8 | 1<<2)
+#define kb_KeyMul (kb_lkey_t)(6 << 8 | 1<<3)
+#define kb_KeyDiv (kb_lkey_t)(6 << 8 | 1<<4)
+#define kb_KeyPower (kb_lkey_t)(6 << 8 | 1<<5)
+#define kb_KeyClear (kb_lkey_t)(6 << 8 | 1<<6)
+
+/* Keyboard group 7 */
+#define kb_KeyDown (kb_lkey_t)(7 << 8 | 1<<0)
+#define kb_KeyLeft (kb_lkey_t)(7 << 8 | 1<<1)
+#define kb_KeyRight (kb_lkey_t)(7 << 8 | 1<<2)
+#define kb_KeyUp (kb_lkey_t)(7 << 8 | 1<<3)
+
+/* Compatibility defines */
+#define kb_DataArray ((uint16_t*)0xF50010)
+#define kb_dataArray ((uint16_t*)0xF50010)
+#define kb_Store 1<<1
+#define kb_KeyPgrm kb_KeyPrgm
+#define kb_group_0 0
+#define kb_group_1 1
+#define kb_group_2 2
+#define kb_group_3 3
+#define kb_group_4 4
+#define kb_group_5 5
+#define kb_group_6 6
+#define kb_group_7 7
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/lib/ce/fileioc.h b/frontends/calculator/CEdev/include/lib/ce/fileioc.h index 8bb6ee4..b29714c 100644 --- a/frontends/calculator/CEdev/include/lib/ce/fileioc.h +++ b/frontends/calculator/CEdev/include/lib/ce/fileioc.h @@ -1,2 +1,2 @@ -#warning You are using a deprecated lib include path. Simply use #include <fileioc.h> instead -#include <fileioc.h> +#warning You are using a deprecated lib include path. Simply use #include <fileioc.h> instead
+#include <fileioc.h>
diff --git a/frontends/calculator/CEdev/include/lib/ce/graphx.h b/frontends/calculator/CEdev/include/lib/ce/graphx.h index 9a1343c..45534b0 100644 --- a/frontends/calculator/CEdev/include/lib/ce/graphx.h +++ b/frontends/calculator/CEdev/include/lib/ce/graphx.h @@ -1,2 +1,2 @@ -#warning You are using a deprecated lib include path. Simply use #include <graphx.h> instead -#include <graphx.h> +#warning You are using a deprecated lib include path. Simply use #include <graphx.h> instead
+#include <graphx.h>
diff --git a/frontends/calculator/CEdev/include/lib/ce/keypadc.h b/frontends/calculator/CEdev/include/lib/ce/keypadc.h index 7c2fd66..b17fd8e 100644 --- a/frontends/calculator/CEdev/include/lib/ce/keypadc.h +++ b/frontends/calculator/CEdev/include/lib/ce/keypadc.h @@ -1,2 +1,2 @@ -#warning You are using a deprecated lib include path. Simply use #include <keypadc.h> instead -#include <keypadc.h> +#warning You are using a deprecated lib include path. Simply use #include <keypadc.h> instead
+#include <keypadc.h>
diff --git a/frontends/calculator/CEdev/include/limits.h b/frontends/calculator/CEdev/include/limits.h index 2dbdab8..8d4a333 100644 --- a/frontends/calculator/CEdev/include/limits.h +++ b/frontends/calculator/CEdev/include/limits.h @@ -1,35 +1,35 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef LIMITS_H -#define LIMITS_H - -#define CHAR_BIT 8 /* number of bits in byte */ -#define SCHAR_MAX 127 /* max value for signed char */ -#define SCHAR_MIN (-127-1) /* min value for signed char */ -#define UCHAR_MAX 0xFF /* max value for unsigned char */ -#ifdef __UNSIGNED_CHARS__ -#define CHAR_MAX UCHAR_MAX /* max value for char */ -#define CHAR_MIN 0 /* Min value for char */ -#else -#define CHAR_MAX SCHAR_MAX /* max value for char */ -#define CHAR_MIN SCHAR_MIN /* Min value for char */ -#endif - -#define SHRT_MAX 32767 /* max value for short int */ -#define SHRT_MIN (-32767-1) /* min value for short int */ -#define USHRT_MAX 0xFFFF /* max value for unsigned short */ - -#define INT_MAX 8388607 /* max value for int */ -#define INT_MIN (-8388607 - 1) /* min value for int */ -#define UINT_MAX 0xFFFFFF /* max value for unsigned int */ - -#define LONG_MAX 2147483647L /* max value for long int */ -#define LONG_MIN (-2147483647L - 1) /* min value for long int */ -#define ULONG_MAX 0xFFFFFFFFUL /* max value for unsigned long */ - -#define MB_LEN_MAX 1 /* max multibyte char length */ - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef LIMITS_H
+#define LIMITS_H
+
+#define CHAR_BIT 8 /* number of bits in byte */
+#define SCHAR_MAX 127 /* max value for signed char */
+#define SCHAR_MIN (-127-1) /* min value for signed char */
+#define UCHAR_MAX 0xFF /* max value for unsigned char */
+#ifdef __UNSIGNED_CHARS__
+#define CHAR_MAX UCHAR_MAX /* max value for char */
+#define CHAR_MIN 0 /* Min value for char */
+#else
+#define CHAR_MAX SCHAR_MAX /* max value for char */
+#define CHAR_MIN SCHAR_MIN /* Min value for char */
+#endif
+
+#define SHRT_MAX 32767 /* max value for short int */
+#define SHRT_MIN (-32767-1) /* min value for short int */
+#define USHRT_MAX 0xFFFF /* max value for unsigned short */
+
+#define INT_MAX 8388607 /* max value for int */
+#define INT_MIN (-8388607 - 1) /* min value for int */
+#define UINT_MAX 0xFFFFFF /* max value for unsigned int */
+
+#define LONG_MAX 2147483647L /* max value for long int */
+#define LONG_MIN (-2147483647L - 1) /* min value for long int */
+#define ULONG_MAX 0xFFFFFFFFUL /* max value for unsigned long */
+
+#define MB_LEN_MAX 1 /* max multibyte char length */
+
+#endif
diff --git a/frontends/calculator/CEdev/include/math.h b/frontends/calculator/CEdev/include/math.h index 3225311..1360e45 100644 --- a/frontends/calculator/CEdev/include/math.h +++ b/frontends/calculator/CEdev/include/math.h @@ -1,67 +1,67 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef MATH_H -#define MATH_H - -#ifdef __cplusplus -extern "C" { -#endif - -extern double _huge_val; -#define HUGE_VAL _huge_val /* overflow error */ - -#define M_E 2.71828182845904523536 /* e */ -#define M_LOG2E 1.44269504088896340736 /* log2(e) */ -#define M_LOG10E 0.434294481903251827651 /* log10(e) */ -#define M_LN2 0.693147180559945309417 /* ln(2) */ -#define M_LN10 2.30258509299404568402 /* ln(10) */ -#define M_PI 3.14159265358979323846 /* pi */ -#define M_PI_2 1.57079632679489661923 /* pi/2 */ -#define M_PI_4 0.785398163397448309616 /* pi/4 */ -#define M_1_PI 0.318309886183790671538 /* 1/pi */ -#define M_2_PI 0.636619772367581343076 /* 2/pi */ -#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */ -#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */ -#define M_SQRT1_2 0.707106781186547524401 /* 1/sqrt(2) */ -#define M_LOG_2M_PI 1.83787706640934548 /* log2(M_PI) */ - -double acos(double x); -double asin(double x); -double atan(double x); -double atan2(double y,double x); -double cos(double x); -double sin(double x); -double tan(double x); -double cosh(double x); -double sinh(double x); -double tanh(double x); -double exp(double x); -double ldexp(double x, int exp); -double log(double x); -double log10(double x); -double pow(double x,double y); -double sqrt(double x); -double ceil(double x); -double floor(double x); -double fabs(double x); -double fmod(double x, double y); -double round(double x); - -double frexp(double value, int *exp); -double modf(double value, double *iptr); - -int isinf(double n); -int isnan(double n); -int finite(double n); - -double tgamma(double x); -double log2(double x); - -#ifdef __cplusplus -} -#endif - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef MATH_H
+#define MATH_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern double _huge_val;
+#define HUGE_VAL _huge_val /* overflow error */
+
+#define M_E 2.71828182845904523536 /* e */
+#define M_LOG2E 1.44269504088896340736 /* log2(e) */
+#define M_LOG10E 0.434294481903251827651 /* log10(e) */
+#define M_LN2 0.693147180559945309417 /* ln(2) */
+#define M_LN10 2.30258509299404568402 /* ln(10) */
+#define M_PI 3.14159265358979323846 /* pi */
+#define M_PI_2 1.57079632679489661923 /* pi/2 */
+#define M_PI_4 0.785398163397448309616 /* pi/4 */
+#define M_1_PI 0.318309886183790671538 /* 1/pi */
+#define M_2_PI 0.636619772367581343076 /* 2/pi */
+#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
+#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
+#define M_SQRT1_2 0.707106781186547524401 /* 1/sqrt(2) */
+#define M_LOG_2M_PI 1.83787706640934548 /* log2(M_PI) */
+
+double acos(double x);
+double asin(double x);
+double atan(double x);
+double atan2(double y,double x);
+double cos(double x);
+double sin(double x);
+double tan(double x);
+double cosh(double x);
+double sinh(double x);
+double tanh(double x);
+double exp(double x);
+double ldexp(double x, int exp);
+double log(double x);
+double log10(double x);
+double pow(double x,double y);
+double sqrt(double x);
+double ceil(double x);
+double floor(double x);
+double fabs(double x);
+double fmod(double x, double y);
+double round(double x);
+
+double frexp(double value, int *exp);
+double modf(double value, double *iptr);
+
+int isinf(double n);
+int isnan(double n);
+int finite(double n);
+
+double tgamma(double x);
+double log2(double x);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/setjmp.h b/frontends/calculator/CEdev/include/setjmp.h index 3858118..e8376c5 100644 --- a/frontends/calculator/CEdev/include/setjmp.h +++ b/frontends/calculator/CEdev/include/setjmp.h @@ -1,21 +1,21 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - */ -#ifndef __SETJMP_H -#define __SETJMP_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef unsigned char jmp_buf[12]; - -int setjmp(jmp_buf env); -void longjmp(jmp_buf env, int val); - -#ifdef __cplusplus -} -#endif - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ */
+#ifndef __SETJMP_H
+#define __SETJMP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef unsigned char jmp_buf[12];
+
+int setjmp(jmp_buf env);
+void longjmp(jmp_buf env, int val);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/stdarg.h b/frontends/calculator/CEdev/include/stdarg.h index 2938417..b794bdb 100644 --- a/frontends/calculator/CEdev/include/stdarg.h +++ b/frontends/calculator/CEdev/include/stdarg.h @@ -1,15 +1,15 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - */ -#ifndef STDARG_H -#define STDARG_H - -typedef char * va_list; -#define _INTSIZEOF(n) (sizeof(n) + sizeof(int)-1-((sizeof(n)-1)%sizeof(int))) - -#define va_start(ap, parm) (ap = (char *)&parm + _INTSIZEOF(parm)) -#define va_arg(ap,type) (*(type *)((ap += _INTSIZEOF(type)) - _INTSIZEOF(type))) -#define va_end(ap) - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ */
+#ifndef STDARG_H
+#define STDARG_H
+
+typedef char * va_list;
+#define _INTSIZEOF(n) (sizeof(n) + sizeof(int)-1-((sizeof(n)-1)%sizeof(int)))
+
+#define va_start(ap, parm) (ap = (char *)&parm + _INTSIZEOF(parm))
+#define va_arg(ap,type) (*(type *)((ap += _INTSIZEOF(type)) - _INTSIZEOF(type)))
+#define va_end(ap)
+
+#endif
diff --git a/frontends/calculator/CEdev/include/stdbool.h b/frontends/calculator/CEdev/include/stdbool.h index 0681e78..c6c20fd 100644 --- a/frontends/calculator/CEdev/include/stdbool.h +++ b/frontends/calculator/CEdev/include/stdbool.h @@ -1,23 +1,23 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef STDBOOL_H -#define STDBOOL_H - -#ifndef __bool_true_false_are_defined -#define __bool_true_false_are_defined - -#ifndef __cplusplus - -typedef unsigned char bool; - -#define _Bool bool -#define false 0 -#define true 1 - -#endif - -#endif -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef STDBOOL_H
+#define STDBOOL_H
+
+#ifndef __bool_true_false_are_defined
+#define __bool_true_false_are_defined
+
+#ifndef __cplusplus
+
+typedef unsigned char bool;
+
+#define _Bool bool
+#define false 0
+#define true 1
+
+#endif
+
+#endif
+#endif
diff --git a/frontends/calculator/CEdev/include/stddef.h b/frontends/calculator/CEdev/include/stddef.h index 1f277b7..e436fcb 100644 --- a/frontends/calculator/CEdev/include/stddef.h +++ b/frontends/calculator/CEdev/include/stddef.h @@ -1,28 +1,28 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef STDDEF_H -#define STDDEF_H - -#ifndef SIZE_T_DEFINED -#define SIZE_T_DEFINED -typedef unsigned int size_t; -#endif - -#ifndef NULL -#define NULL ((void *)0) -#endif -#define offsetof(type,member) ((size_t) &((type*)0)->member) - -typedef int ptrdiff_t; - -#ifndef __cplusplus -#ifndef WCHAR_T_DEFINED -#define WCHAR_T_DEFINED -typedef unsigned short wchar_t; -#endif -#endif - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef STDDEF_H
+#define STDDEF_H
+
+#ifndef SIZE_T_DEFINED
+#define SIZE_T_DEFINED
+typedef unsigned int size_t;
+#endif
+
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
+#define offsetof(type,member) ((size_t) &((type*)0)->member)
+
+typedef int ptrdiff_t;
+
+#ifndef __cplusplus
+#ifndef WCHAR_T_DEFINED
+#define WCHAR_T_DEFINED
+typedef unsigned short wchar_t;
+#endif
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/stdint.h b/frontends/calculator/CEdev/include/stdint.h index 5e48f60..c1fbe17 100644 --- a/frontends/calculator/CEdev/include/stdint.h +++ b/frontends/calculator/CEdev/include/stdint.h @@ -1,19 +1,19 @@ -#ifndef __STDINT_H -#define __STDINT_H - -typedef signed char int8_t; -typedef unsigned char uint8_t; - -typedef signed short int16_t; -typedef unsigned short uint16_t; - -typedef signed int int24_t; -typedef unsigned int uint24_t; - -typedef signed long int32_t; -typedef unsigned long uint32_t; - -typedef int24_t intptr_t; -typedef uint24_t uintptr_t; - -#endif +#ifndef __STDINT_H
+#define __STDINT_H
+
+typedef signed char int8_t;
+typedef unsigned char uint8_t;
+
+typedef signed short int16_t;
+typedef unsigned short uint16_t;
+
+typedef signed int int24_t;
+typedef unsigned int uint24_t;
+
+typedef signed long int32_t;
+typedef unsigned long uint32_t;
+
+typedef int24_t intptr_t;
+typedef uint24_t uintptr_t;
+
+#endif
diff --git a/frontends/calculator/CEdev/include/stdio.h b/frontends/calculator/CEdev/include/stdio.h index 27de9cc..1d35443 100644 --- a/frontends/calculator/CEdev/include/stdio.h +++ b/frontends/calculator/CEdev/include/stdio.h @@ -1,66 +1,66 @@ -#ifndef STDIO_H -#define STDIO_H - -#include <stdarg.h> -#include <format.h> -#include <fileioc.h> - -#ifdef __cplusplus -extern "C" { -#endif - -#define FILENAME_MAX 9 -#define SYS_OPEN 5 /* max open files */ -#define FOPEN_MAX 5 - -#define SEEK_CUR 1 -#define SEEK_END 2 -#define SEEK_SET 0 - -/* ANSI prototypes */ -#ifndef SIZE_T_DEFINED -#define SIZE_T_DEFINED -typedef unsigned int size_t; -#endif - -#ifndef NULL -#define NULL ((void *)0) -#endif - -#ifndef EOF -#define EOF (-1) /* end of file */ -#endif - -typedef struct __stdio_file { - unsigned char slot; -} FILE; - -extern FILE __stdio_files[FOPEN_MAX]; - -int sprintf(char *s, const char *format, ...); -int vprintf(const char *format, va_list arg); -int vsprintf(char *s, const char *format, va_list arg); - -/* stdio.h functions implemented using FILEIOC */ -int remove(const char *filename); -int fgetc(FILE *stream); -int fputc(int c, FILE *stream); -char *fgets(char *str, int num, FILE *stream); -int fputs(const char *str, FILE *stream); -size_t fread(void *ptr, size_t size, size_t count, FILE *stream); -size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream); -int fseek(FILE *stream, long int offset, int origin); -long int ftell(FILE *stream); -int fclose(FILE *stream); -FILE *fopen(const char *filename, const char *mode); -int feof(FILE *stream); -#define ferror(stream) (0) -#define fflush(ignore) ((void)0) -#define rewind(stream) ti_Rewind(stream->slot) -#define fcloseall() ti_CloseAll() - -#ifdef __cplusplus -} -#endif - -#endif +#ifndef STDIO_H
+#define STDIO_H
+
+#include <stdarg.h>
+#include <format.h>
+#include <fileioc.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define FILENAME_MAX 9
+#define SYS_OPEN 5 /* max open files */
+#define FOPEN_MAX 5
+
+#define SEEK_CUR 1
+#define SEEK_END 2
+#define SEEK_SET 0
+
+/* ANSI prototypes */
+#ifndef SIZE_T_DEFINED
+#define SIZE_T_DEFINED
+typedef unsigned int size_t;
+#endif
+
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
+
+#ifndef EOF
+#define EOF (-1) /* end of file */
+#endif
+
+typedef struct __stdio_file {
+ unsigned char slot;
+} FILE;
+
+extern FILE __stdio_files[FOPEN_MAX];
+
+int sprintf(char *s, const char *format, ...);
+int vprintf(const char *format, va_list arg);
+int vsprintf(char *s, const char *format, va_list arg);
+
+/* stdio.h functions implemented using FILEIOC */
+int remove(const char *filename);
+int fgetc(FILE *stream);
+int fputc(int c, FILE *stream);
+char *fgets(char *str, int num, FILE *stream);
+int fputs(const char *str, FILE *stream);
+size_t fread(void *ptr, size_t size, size_t count, FILE *stream);
+size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream);
+int fseek(FILE *stream, long int offset, int origin);
+long int ftell(FILE *stream);
+int fclose(FILE *stream);
+FILE *fopen(const char *filename, const char *mode);
+int feof(FILE *stream);
+#define ferror(stream) (0)
+#define fflush(ignore) ((void)0)
+#define rewind(stream) ti_Rewind(stream->slot)
+#define fcloseall() ti_CloseAll()
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/stdlib.h b/frontends/calculator/CEdev/include/stdlib.h index b45077a..cef8c10 100644 --- a/frontends/calculator/CEdev/include/stdlib.h +++ b/frontends/calculator/CEdev/include/stdlib.h @@ -1,102 +1,102 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef STDLIB_H -#define STDLIB_H - -#ifdef __cplusplus -extern "C" { -#endif - -#define EXIT_SUCCESS 0 -#define EXIT_FAILURE 1 - -typedef int onexit_t; - -#ifndef __cplusplus -#ifndef WCHAR_T_DEFINED -#define WCHAR_T_DEFINED -typedef unsigned short wchar_t; -#endif -#endif - -typedef struct { - int quot; - int rem; -} div_t; - -typedef struct { - long quot; - long rem; -} ldiv_t; - -/* Heap packet header for malloc */ - -typedef char __align; /* alignment type */ -union header { - struct { - union header *ptr; /* next free block */ - unsigned int size; /* size of block */ - } s; - __align x; -}; -typedef union header _HEADER; - -#define EDOM 4 /* domain error */ -#define ERANGE 5 /* range error */ -extern double _huge_val; -#define HUGE_VAL _huge_val /* overflow error */ - -#define RAND_MAX 8388607 /* maximum value returned by rand() */ - -#ifndef SIZE_T_DEFINED -#define SIZE_T_DEFINED -typedef unsigned int size_t; -#endif -#define HEADER _HEADER -#define allocp _allocp -#define NALLOC 50 - -#ifndef NULL -#define NULL ((void *)0) -#endif - -/* Dynamic memory functions */ -void *calloc(size_t, size_t); -void *malloc(size_t); -void *realloc(void *, size_t); -void free(void *); - -/* Character and string functions */ -double atof(char * nptr); -int atoi(char * nptr); -long atol(char * nptr); -double strtod(char * nptr,char ** endptr); -long strtol(char *nptr,char ** endptr,int base); -unsigned long strtoul(char *nptr,char ** endptr,int base); - -/* Random routines */ -void srand(unsigned int seed); -int rand(void); - -/* Binary search and quicksort */ -void *bsearch(void * key,void * base, size_t nmemb, size_t size, int (*compar)(void * ,void * )); -void qsort(void * base,size_t nmemb,size_t size, int (*compar)(void * ,void * )); - -/* Exit and abort */ -void abort(void); -void exit(int status); - -/* Absolutes and division */ -int abs(int j); -long labs(long j); -div_t div(int numer,int denom); -ldiv_t ldiv(long numer, long denom); - -#ifdef __cplusplus -} -#endif - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef STDLIB_H
+#define STDLIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define EXIT_SUCCESS 0
+#define EXIT_FAILURE 1
+
+typedef int onexit_t;
+
+#ifndef __cplusplus
+#ifndef WCHAR_T_DEFINED
+#define WCHAR_T_DEFINED
+typedef unsigned short wchar_t;
+#endif
+#endif
+
+typedef struct {
+ int quot;
+ int rem;
+} div_t;
+
+typedef struct {
+ long quot;
+ long rem;
+} ldiv_t;
+
+/* Heap packet header for malloc */
+
+typedef char __align; /* alignment type */
+union header {
+ struct {
+ union header *ptr; /* next free block */
+ unsigned int size; /* size of block */
+ } s;
+ __align x;
+};
+typedef union header _HEADER;
+
+#define EDOM 4 /* domain error */
+#define ERANGE 5 /* range error */
+extern double _huge_val;
+#define HUGE_VAL _huge_val /* overflow error */
+
+#define RAND_MAX 8388607 /* maximum value returned by rand() */
+
+#ifndef SIZE_T_DEFINED
+#define SIZE_T_DEFINED
+typedef unsigned int size_t;
+#endif
+#define HEADER _HEADER
+#define allocp _allocp
+#define NALLOC 50
+
+#ifndef NULL
+#define NULL ((void *)0)
+#endif
+
+/* Dynamic memory functions */
+void *calloc(size_t, size_t);
+void *malloc(size_t);
+void *realloc(void *, size_t);
+void free(void *);
+
+/* Character and string functions */
+double atof(char * nptr);
+int atoi(char * nptr);
+long atol(char * nptr);
+double strtod(char * nptr,char ** endptr);
+long strtol(char *nptr,char ** endptr,int base);
+unsigned long strtoul(char *nptr,char ** endptr,int base);
+
+/* Random routines */
+void srand(unsigned int seed);
+int rand(void);
+
+/* Binary search and quicksort */
+void *bsearch(void * key,void * base, size_t nmemb, size_t size, int (*compar)(void * ,void * ));
+void qsort(void * base,size_t nmemb,size_t size, int (*compar)(void * ,void * ));
+
+/* Exit and abort */
+void abort(void);
+void exit(int status);
+
+/* Absolutes and division */
+int abs(int j);
+long labs(long j);
+div_t div(int numer,int denom);
+ldiv_t ldiv(long numer, long denom);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/string.h b/frontends/calculator/CEdev/include/string.h index 762eef7..760cfc5 100644 --- a/frontends/calculator/CEdev/include/string.h +++ b/frontends/calculator/CEdev/include/string.h @@ -1,49 +1,49 @@ -/* - * Copyright (C) 1999-2008 by Zilog, Inc. - * All Rights Reserved - * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform - */ -#ifndef STRING_H -#define STRING_H - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef SIZE_T_DEFINED -#define SIZE_T_DEFINED -typedef unsigned int size_t; -#endif - -void *memcpy(void *, const void *, size_t); -void *memchr(const void *, int, size_t); -void *memset(void *, int, size_t); -void *memmove(void *, const void *, size_t); -int memcmp(const void *, const void *, size_t); - -char *strcpy(char *, const char *); -char *strncpy(char *, const char *, size_t); -char *strcat(char *, const char *); -char *strncat(char *, const char *, size_t); -char *strchr(const char *, int); -char *strpbrk(const char *, const char *); -char *strrchr(const char *, int); -char *strstr(const char *, const char *); -char *strtok(char *, const char *); -char *strerror(int errnum); -char *strdup(const char *); -char *strndup(const char *, size_t n); -size_t strcspn(const char *, const char *); -size_t strspn(const char *, const char *); -size_t strlen(const char *); -size_t strnlen(const char *, size_t); -int strcmp(const char *, const char *); -int strncmp(const char *, const char *, size_t); -int strcasecmp(const char *, const char *); -int strncasecmp(const char *, const char *, size_t); - -#ifdef __cplusplus -} -#endif - -#endif +/*
+ * Copyright (C) 1999-2008 by Zilog, Inc.
+ * All Rights Reserved
+ * Modified by Matt "MateoConLechuga" Waltz for TI84+CE platform
+ */
+#ifndef STRING_H
+#define STRING_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef SIZE_T_DEFINED
+#define SIZE_T_DEFINED
+typedef unsigned int size_t;
+#endif
+
+void *memcpy(void *, const void *, size_t);
+void *memchr(const void *, int, size_t);
+void *memset(void *, int, size_t);
+void *memmove(void *, const void *, size_t);
+int memcmp(const void *, const void *, size_t);
+
+char *strcpy(char *, const char *);
+char *strncpy(char *, const char *, size_t);
+char *strcat(char *, const char *);
+char *strncat(char *, const char *, size_t);
+char *strchr(const char *, int);
+char *strpbrk(const char *, const char *);
+char *strrchr(const char *, int);
+char *strstr(const char *, const char *);
+char *strtok(char *, const char *);
+char *strerror(int errnum);
+char *strdup(const char *);
+char *strndup(const char *, size_t n);
+size_t strcspn(const char *, const char *);
+size_t strspn(const char *, const char *);
+size_t strlen(const char *);
+size_t strnlen(const char *, size_t);
+int strcmp(const char *, const char *);
+int strncmp(const char *, const char *, size_t);
+int strcasecmp(const char *, const char *);
+int strncasecmp(const char *, const char *, size_t);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/tice.h b/frontends/calculator/CEdev/include/tice.h index b572c79..1ace792 100644 --- a/frontends/calculator/CEdev/include/tice.h +++ b/frontends/calculator/CEdev/include/tice.h @@ -1,2082 +1,2082 @@ -/** - * @file - * @authors Matt "MateoConLechuga" Waltz - * @authors Jacob "jacobly" Young - * @brief Core CE define file - */ - -#ifndef H_TICE -#define H_TICE - -#include <stdbool.h> -#include <stdint.h> -#include <stddef.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Hardware & custom macros/functions - */ - -/** - * Returns a pseudo-random 32-bit integer. - * - * @return the random integer - */ -uint32_t random(void); - -/** - * Seeds the pseudo-random number generator used by random() and rand() with the - * value seed. - * - * @param seed the seed value - */ -void srandom(uint32_t seed); - -/** - * Returns a pseudo-random integer in the range of \p min to \p max (inclusive). - */ -#define randInt(min, max) \ -((unsigned)random() % ((max) - (min) + 1) + (min)) - -/** - * Delays for a number of milliseconds. - * <p> - * Counts time spent while interrupted. Assumes a CPU clock speed of 48MHz. - * - * @param msec number of milliseconds - */ -void delay(uint16_t msec); - -/** - * "Atomically" loads from a volatile 32-bit value. - * - * @remarks - * The hardware does not provide a mechanism to truly atomically load from a - * 32-bit value. This "atomic" load is implemented by non-atomically reading the - * value twice and retrying if the values read differ. - * - * @attention - * If the maximum period between two value changes is 1us or less (assuming a - * CPU clock speed of 48MHz), then this function may never complete. For - * instance, the counter of a timer ticking at 1MHz or more should not be read - * using this function. In such a case of a purely increasing or decreasing - * value, atomic_load_increasing_32() or atomic_load_decreasing_32() may be - * appropriate instead. - * - * @param p pointer to 32-bit value - */ -uint32_t atomic_load_32(volatile uint32_t *p); - -/** - * "Atomically" loads from a volatile, increasing 32-bit value. - * - * @remarks - * The hardware does not provide a mechanism to truly atomically load from a - * 32-bit value. This "atomic" load is implemented by temporarily disabling - * interrupts while non-atomically reading the value twice and then returning - * the lesser of the two values read. - * - * @attention - * If the minimum period between two value changes is 5us or less and the - * value's maximum rate of change over a 5us period exceeds 256 (assuming a CPU - * clock speed of 48MHz), then the value returned may be incorrect. Of relevant - * note may be the fact that a 48MHz counter does not exceed this limit. - * - * @param p pointer to 32-bit value - */ -uint32_t atomic_load_increasing_32(volatile uint32_t *p); - -/** - * "Atomically" loads from a volatile, decreasing 32-bit value. - * - * @remarks - * The hardware does not provide a mechanism to truly atomically load from a - * 32-bit value. This "atomic" load is implemented by temporarily disabling - * interrupts while non-atomically reading the value twice and then returning - * the greater of the two values read. - * - * @attention - * If the minimum period between two value changes is 5us or less and the - * value's maximum rate of change over a 5us period exceeds 256 (assuming a CPU - * clock speed of 48MHz), then the value returned may be incorrect. Of relevant - * note may be the fact that a 48MHz counter does not exceed this limit. - * - * @param p pointer to 32-bit value - */ -uint32_t atomic_load_decreasing_32(volatile uint32_t *p); - -/** - * Gets a combination of the RTC time; useful for srand() - */ -#define rtc_Time() (*(volatile uint32_t*)0xF30044) - -/* RTC definitions */ -#define RTC_UNFREEZE (1<<7) -#define RTC_FREEZE (0<<7) -#define RTC_LOAD (1<<6) -#define RTC_ENABLE ((1<<0)|(RTC_UNFREEZE)) -#define RTC_DISABLE (0<<0) - -/* RTC registers */ -#define rtc_Seconds (*(volatile uint8_t*)0xF30000) -#define rtc_Minutes (*(volatile uint8_t*)0xF30004) -#define rtc_Hours (*(volatile uint8_t*)0xF30008) -#define rtc_Days (*(volatile uint16_t*)0xF3000C) -#define rtc_AlarmSeconds (*(uint8_t*)0xF30010) -#define rtc_AlarmMinutes (*(uint8_t*)0xF30014) -#define rtc_AlarmHours (*(uint8_t*)0xF30018) -#define rtc_Control (*(uint8_t*)0xF30020) -#define rtc_LoadSeconds (*(uint8_t*)0xF30024) -#define rtc_LoadMinutes (*(uint8_t*)0xF30028) -#define rtc_LoadHours (*(uint8_t*)0xF3002C) -#define rtc_LoadDays (*(uint16_t*)0xF30030) -#define rtc_IntStatus (*(volatile uint8_t*)0xF30034) -#define rtc_IntAcknowledge (*(volatile uint8_t*)0xF30034) -#define rtc_IsBusy() (rtc_Control & RTC_LOAD) - -/* RTC interrupt masks */ -#define RTC_ALARM_INT_SOURCE (1<<5) -#define RTC_DAY_INT_SOURCE (1<<4) -#define RTC_HR_INT_SOURCE (1<<3) -#define RTC_MIN_INT_SOURCE (1<<2) -#define RTC_SEC_INT_SOURCE (1<<1) - -/* RTC interrupt statuses */ -#define RTC_LOAD_INT (1<<5) -#define RTC_ALARM_INT (1<<4) -#define RTC_DAY_INT (1<<3) -#define RTC_HR_INT (1<<2) -#define RTC_MIN_INT (1<<1) -#define RTC_SEC_INT (1<<0) -#define RTC_INT_MASK (RTC_SEC_INT | RTC_MIN_INT | RTC_HR_INT | RTC_DAY_INT | RTC_ALARM_INT | RTC_LOAD_INT) - -/* Whole bunch of useful timer functions */ -#define TIMER1_ENABLE (1<<0) /* Enables Timer 1 */ -#define TIMER1_DISABLE (0<<0) /* Disables Timer 1 */ -#define TIMER1_32K (1<<1) /* Use the 32K clock for timer 1 */ -#define TIMER1_CPU (0<<1) /* Use the CPU clock rate for timer 1 */ -#define TIMER1_0INT (1<<2) /* Enable an interrupt when 0 is reached for the timer 1 */ -#define TIMER1_NOINT (0<<2) /* Disable interrupts for the timer 1 */ -#define TIMER1_UP (1<<9) /* Timer 1 counts up */ -#define TIMER1_DOWN (0<<9) /* Timer 1 counts down */ - -#define TIMER2_ENABLE (1<<3) /* Enables Timer 2 */ -#define TIMER2_DISABLE (0<<3) /* Disables Timer 2 */ -#define TIMER2_32K (1<<4) /* Use the 32K clock for timer 2 */ -#define TIMER2_CPU (0<<4) /* Use the CPU clock rate for timer 2 */ -#define TIMER2_0INT (1<<5) /* Enable an interrupt when 0 is reached for the timer 2 */ -#define TIMER2_NOINT (0<<5) /* Disable interrupts for the timer 2 */ -#define TIMER2_UP (1<<10) /* Timer 2 counts up */ -#define TIMER2_DOWN (0<<10) /* Timer 2 counts down */ - -#define TIMER3_ENABLE (1<<6) /* Enables Timer 3 */ -#define TIMER3_DISABLE (0<<6) /* Disables Timer 3 */ -#define TIMER3_32K (1<<7) /* Use the 32K clock for timer 3 */ -#define TIMER3_CPU (0<<7) /* Use the CPU clock rate for timer 3 */ -#define TIMER3_0INT (1<<8) /* Enable an interrupt when 0 is reached for the timer 3 */ -#define TIMER3_NOINT (0<<8) /* Disable interrupts for the timer 3 */ -#define TIMER3_UP (1<<11) /* Timer 3 counts up */ -#define TIMER3_DOWN (0<<11) /* Timer 3 counts down */ - -/* These defines can be used to check the status of the timer */ -#define TIMER1_MATCH1 (1<<0) /* Timer 1 hit the first match value */ -#define TIMER1_MATCH2 (1<<1) /* Timer 1 hit the second match value */ -#define TIMER1_RELOADED (1<<2) /* Timer 1 was reloaded (Needs TIMER1_0INT enabled) */ - -#define TIMER2_MATCH1 (1<<3) /* Timer 2 hit the first match value */ -#define TIMER2_MATCH2 (1<<4) /* Timer 2 hit the second match value */ -#define TIMER2_RELOADED (1<<5) /* Timer 2 was reloaded (Needs TIMER2_0INT enabled) */ - -#define TIMER3_MATCH1 (1<<6) /* Timer 3 hit the first match value */ -#define TIMER3_MATCH2 (1<<7) /* Timer 3 hit the second match value */ -#define TIMER3_RELOADED (1<<8) /* Timer 3 was reloaded (Needs TIMER3_0INT enabled) */ - -/* Timer registers */ -#define timer_1_Counter (*(volatile uint32_t*)0xF20000) -#define timer_1_ReloadValue (*(uint32_t*)0xF20004) -#define timer_1_MatchValue_1 (*(uint32_t*)0xF20008) -#define timer_1_MatchValue_2 (*(uint32_t*)0xF2000C) -#define timer_2_Counter (*(volatile uint32_t*)0xF20010) -#define timer_2_ReloadValue (*(uint32_t*)0xF20014) -#define timer_2_MatchValue_1 (*(uint32_t*)0xF20018) -#define timer_2_MatchValue_2 (*(uint32_t*)0xF2001C) -#define timer_3_Counter (*(volatile uint32_t*)0xF20020) -#define timer_3_ReloadValue (*(uint32_t*)0xF20024) -#define timer_3_MatchValue_1 (*(uint32_t*)0xF20028) -#define timer_3_MatchValue_2 (*(uint32_t*)0xF2002C) -#define timer_Control (*(uint16_t*)0xF20030) -#define timer_IntStatus (*(volatile uint16_t*)0xF20034) -#define timer_IntAcknowledge (*(volatile uint16_t*)0xF20034) -#define timer_EnableInt (*(uint16_t*)0xF20038) - -/* LCD defines */ -#define lcd_BacklightLevel (*(uint8_t*)0xF60024) -#define lcd_Timing0 (*(uint32_t*)0xE30000) -#define lcd_Timing1 (*(uint32_t*)0xE30004) -#define lcd_Timing2 (*(uint32_t*)0xE30008) -#define lcd_Timing3 (*(uint24_t*)0xE3000C) -#define lcd_UpBase (*(uint32_t*)0xE30010) -#define lcd_LpBase (*(uint32_t*)0xE30014) -#define lcd_Control (*(uint24_t*)0xE30018) -#define lcd_EnableInt (*(uint8_t*)0xE3001C) -#define lcd_IntStatus (*(uint8_t*)0xE30020) -#define lcd_IntStatusMasked (*(uint8_t*)0xE30024) -#define lcd_IntAcknowledge (*(volatile uint8_t*)0xE30028) -#define lcd_UpBaseCurr (*(volatile uint32_t*)0xE3002C) -#define lcd_LpBaseCurr (*(volatile uint32_t*)0xE30030) -#define lcd_Palette ((uint16_t*)0xE30200) -#define lcd_Ram ((uint16_t*)0xD40000) - -/** - * Width of LCD in pixels - */ -#define LCD_WIDTH \ -(320) - -/** - * Height of LCD in pixels - */ -#define LCD_HEIGHT \ -(240) - -/** - * Total number of pixels in LCD - */ -#define LCD_SIZE \ -(LCD_WIDTH*LCD_HEIGHT*2) - -/** - * @brief Structure of real variable type - */ -typedef struct { int8_t sign, exp; uint8_t mant[7]; } real_t; -/** - * @brief Structure of complex variable type - */ -typedef struct { real_t real, imag; } cplx_t; -/** - * @brief Structure of list variable type - */ -typedef struct { uint16_t dim; real_t items[1]; } list_t; -/** - * @brief Structure of complex list variable type - */ -typedef struct { uint16_t dim; cplx_t items[1]; } cplx_list_t; -/** - * @brief Structure of matrix variable type - */ -typedef struct { uint8_t cols, rows; real_t items[1]; } matrix_t; -/** - * @brief Structure of string variable type - */ -typedef struct { uint16_t len; char data[1]; } string_t; -/** - * @brief Structure of equation variable type - */ -typedef struct { uint16_t len; char data[1]; } equ_t; -/** - * @brief Structure of miscellaneous variable type - */ -typedef struct { uint16_t size; uint8_t data[1]; } var_t; - -/** - * Gets an element from a matrix - * - * @param matrix Structure of matrix - * @param row Row in matrix - * @param col Column in matrix - * @returns real_t containing element data - */ -#define matrix_element(matrix, row, col) ((matrix)->items[(row)+(col)*(matrix)->rows]) - -/** - * Resets the OS homescreen; accounts for split screen - */ -#define os_ClrHome() do { _OS(asm_ClrLCD); _OS(asm_HomeUp); _OS(asm_DrawStatusBar); } while (0) - -/** - * Resets the OS homescreen fully - */ -#define os_ClrHomeFull() do { _OS(asm_ClrLCDFull); _OS(asm_HomeUp); _OS(asm_DrawStatusBar); } while (0) - -/* - * Bootcode functions - */ - -/** - * Sets the calculator's date - * - * Performs checks to ensure date is within range - * @param day Day to set - * @param month Month to set - * @param year Year to set - */ -void boot_SetDate(uint8_t day, uint8_t month, uint16_t year); - -/** - * Gets the calculator's date - * - * @param day Pointer to variable to store day - * @param month Pointer to variable to store month - * @param year Pointer to variable to store year - */ -void boot_GetDate(uint8_t *day, uint8_t *month, uint16_t *year); - -/** - * Sets the calculator's time - * - * Performs checks to ensure time is within range - * @param seconds Seconds to set - * @param minutes Minutes to set - * @param hours Hours to set - */ -void boot_SetTime(uint8_t seconds, uint8_t minutes, uint8_t hours); - -/** - * Gets the calculator's time - * - * @param seconds Pointer to variable to store seconds - * @param minutes Pointer to variable to store minutes - * @param hours Pointer to variable to store hours - */ -void boot_GetTime(uint8_t *seconds, uint8_t *minutes, uint8_t *hours); - -/** - * Checks if past noon - * - * @returns True if past noon - */ -bool boot_IsAfterNoon(void); - -/** - * @returns Bootcode version major - */ -uint8_t boot_GetBootMajorVer(void); - -/** - * @returns Bootcode version minor - */ -uint8_t boot_GetBootMinorVer(void); - -/** - * @returns Hardware version - */ -uint8_t boot_GetHardwareVer(void); - -/** - * Turns all of VRAM into 0xFF (white) - */ -void boot_ClearVRAM(void); - -/** - * Checks if the [on] key was pressed - * - * @returns True is returned if [on] key was pressed - */ -bool boot_CheckOnPressed(void); - -/** - * Basically a reimplemented form of printf that prints to some debugging device - * - * @param string String to send to debug device - */ -void boot_DebugPrintf(const char *string); - -/** - * Turns off the calculator (probably not a good idea to use) - */ -void boot_TurnOff(void); - -/** - * Inserts a new line at the current cursor posistion on the homescreen - * Does not scroll. - */ -void boot_NewLine(void); - -/** - * @returns Current battery status - */ -uint8_t boot_GetBatteryStatus(void); - -/** - * Waits for ~10 ms - */ -void boot_WaitShort(void); - -/* - * OS Routines - */ - -/** - * Inserts a new line at the current cursor posistion on the homescreen - * Does scroll. - */ -void os_NewLine(void); - -/** - * Disables the OS cursor - */ -void os_DisableCursor(void); - -/** - * Enables the OS cursor - */ -void os_EnableCursor(void); - -/** - * Sets the foreground color used to draw text on the graphscreen - * @param color 565 BGR color to set text foreground to - */ -void os_SetDrawFGColor(uint24_t color); - -/** - * Gets the foreground color used to draw text on the graphscreen - * @returns 565 BGR color of text foreground - */ -uint24_t os_GetDrawFGColor(void); - -/** - * Sets the background color used to draw text on the graphscreen - * @param color 565 BGR color to set text background to - */ -void os_SetDrawBGColor(uint24_t color); - -/** - * Gets the background color used to draw text on the graphscreen - * - * @returns 565 BGR color of text nackground - * @warning Only useable in OS 5.2 and above; use at your own risk - */ -uint24_t os_GetDrawBGColor(void); - -/** - * Set the cursor posistion used on the homescreen - * - * @param curRow The row aligned offset - * @param curCol The column aligned offset - */ -void os_SetCursorPos(uint8_t curRow, uint8_t curCol); - -/** - * Gets the cursor posistion used on the homescreen - * - * @param curRow Pointer to store the row aligned offset - * @param curCol Pointer to store the column aligned offset - */ -void os_GetCursorPos(unsigned int *curRow, unsigned int *curCol); - -/** - * Selects the font to use when drawing on the graphscreen - * - * @param id - * 0: small font <br> - * 1: large monospace font - */ -void os_FontSelect(char id); - -/** - * Gets the font to use when drawing on the graphscreen - * - * @returns - * 0: small font <br> - * 1: large monospace font - */ -uint24_t os_FontGetID(void); - -/** - * @param string String to get pixel width of - * @returns The width of a string in the variable-width format - */ -uint24_t os_FontGetWidth(const char *string); - -/** - * @returns The height of the font characters - */ -uint24_t os_FontGetHeight(void); - -/** - * Draws text using the small font to the screen - * - * @param string String to draw - * @param col Column to start drawing at - * @param row Row to start drawing at - * @returns The end column - */ -uint24_t os_FontDrawText(const char *string, uint16_t col, uint8_t row); - -/** - * Draws transparent text using the small font to the screen - * - * @param string String to draw - * @param col Column to start drawing at - * @param row Row to start drawing at - * @returns The end column - */ -uint24_t os_FontDrawTransText(const char *string, uint16_t col, uint8_t row); - -/** - * Puts some text at the current homescreen cursor location - * - * @param string Test to put on homescreen - * @returns 1 if string fits on screen, 0 otherwise - */ -uint24_t os_PutStrFull(const char *string); - -/** - * Puts some text at the current homescreen cursor location - * - * @param string Test to put on homescreen - * @returns 1 if string fits on line, 0 otherwise - */ -uint24_t os_PutStrLine(const char *string); - -/** - * Set a particular flag variable - * - * @param offset Offset to particular flag in list - * @param set Bitmask of flag to set - */ -void os_SetFlagByte(int offset, uint8_t set); - -/** - * Get a particular flag variable - * - * @param offset Offset to particular flag in list - * @returns Bitmask of flag - */ -uint8_t os_GetFlagByte(int offset); - -/** - * Get amount of free ram in order to allocate extra ram - * - * @param free Set to start of free available ram - * @returns Size of available ram - */ -size_t os_MemChk(void **free); - -/** - * Throws an OS error - * - * @param error Error code to throw - */ -void os_ThrowError(uint8_t error); - -/** - * Gets a pointer to the system stats - * - * @returns - * [3] - Hardware version <br> - * [12-13] - Boot Version Major <br> - * [14] - Boot Version Minor <br> - * [15-16] - Boot Version Build <br> - * [28-37] - Calc ID (From certificate if exists) <br> - * [38-39] - Appears to be localization language - */ -void *os_GetSystemStats(void); - -/** - * This function can return twice (like setjmp). - * First return always happens with a return value of 0. - * Second return only happens if an error occurs before os_PopErrorHandler is called, - * with the errNo as the return value. - * - * @code - * int errno = os_PushErrorHandler(); - * if (errno) { - * // handle error, but no longer under the protection of the error handler so do not call os_PopErrorHandler() - * } else { - * // run some code that may error - * os_PopErrorHandler(); - * } - * @endcode - * - * @param routine Error handling routine - * @see os_PopErrorHandler - */ -int os_PushErrorHandler(void); - -/** - * Restores stack state after a call to os_PushErrorHandler. Must be called with stack in the same state - * as it was when os_PushErrorHandler returned with 0, and should not be called along the error path. - * - * @see os_PushErrorHandler - */ -void os_PopErrorHandler(void); - -/** - * @returns A pointer to symtable of the OS - */ -void *os_GetSymTablePtr(void); - -/** - * Creates an AppVar - * - * @param name Pointer to name of AppVar to create - * @param size Size of AppVar to create - * @returns A pointer to the AppVar data - * @note Returns NULL if creation failed for some reason, otherwise a pointer to the size bytes - */ -var_t *os_CreateAppVar(const char *name, uint16_t size); - -/** - * Returns next entry or NULL if no more entries, pass os_GetSymTablePtr() as first entry - */ -void *os_NextSymEntry(void *entry, uint24_t *type, uint24_t *nameLength, char *name, void **data); - -/** - * Locates a symbol in the symtable - * - * @param type Type of symbol to find - * @param name Pointer to name of symbol to find - * @param entry Can be NULL if you don't care - * @param data Can be NULL if you don't care - * @returns If file exists, returns 1 and sets entry and data, otherwise returns 0. - */ -int os_ChkFindSym(uint8_t type, const char *name, void **entry, void **data); - -/** - * Gets the Ans variable - * - * @param type This is set to the current variable type in ANS - * @returns Pointer to the data - * @note Returns NULL if Ans doesn't exist or type is NULL - */ -void *os_RclAns(uint8_t *type); - -/** - * Copies a real_t type - * - * @param src Pointer to original real_t - * @returns Copied real_t - */ -real_t os_RealCopy(const real_t *src); - -/* Unary operations used to interact with the OS math functions */ -real_t os_RealAcosRad(const real_t *arg); -real_t os_RealAsinRad(const real_t *arg); -real_t os_RealAtanRad(const real_t *arg); -real_t os_RealCosRad(const real_t *arg); -real_t os_RealRadToDeg(const real_t *arg); -real_t os_RealExp(const real_t *arg); -real_t os_RealFloor(const real_t *arg); -real_t os_RealFrac(const real_t *arg); -real_t os_RealRoundInt(const real_t *arg); -real_t os_RealLog(const real_t *arg); -real_t os_RealNeg(const real_t *arg); -real_t os_RealDegToRad(const real_t *arg); -real_t os_RealInv(const real_t *arg); -real_t os_RealSinRad(const real_t *arg); -real_t os_RealSqrt(const real_t *arg); -real_t os_RealTanRad(const real_t *arg); -real_t os_RealInt(const real_t *arg); -cplx_t os_CplxSquare(const cplx_t *arg); - -/* Binary operations used to interact with the OS math functions */ -real_t os_RealAdd(const real_t *arg1, const real_t *arg2); -real_t os_RealDiv(const real_t *arg1, const real_t *arg2); -real_t os_RealGcd(const real_t *arg1, const real_t *arg2); -real_t os_RealLcm(const real_t *arg1, const real_t *arg2); -real_t os_RealMax(const real_t *arg1, const real_t *arg2); -real_t os_RealMin(const real_t *arg1, const real_t *arg2); -real_t os_RealMul(const real_t *arg1, const real_t *arg2); -real_t os_RealNcr(const real_t *total, const real_t *num); -real_t os_RealNpr(const real_t *total, const real_t *num); -real_t os_RealPow(const real_t *base, const real_t *exp); -real_t os_RealRandInt(const real_t *min, const real_t *max); -real_t os_RealMod(const real_t *arg1, const real_t *arg2); -real_t os_RealSub(const real_t *arg1, const real_t *arg2); - -/** - * Rounds a real_t - * - * @note digits must be in the range 0 - 9 - */ -real_t os_RealRound(const real_t *arg, char digits); - -/** - * Compares two real_t - * - * @returns -1, 0, or 1 depending on the comparison - */ -int os_RealCompare(const real_t *arg1, const real_t *arg2); - -/** - * Converts a real_t to an integer - * @note Saturates on overflow - */ -int24_t os_RealToInt24(const real_t *arg); - -/** - * Converts an integer to a real_t - * @note Saturates on overflow - */ -real_t os_Int24ToReal(int24_t arg); - -/** - * Converts a real_t to a float - * @note Saturates on overflow - */ -float os_RealToFloat(const real_t *arg); - -/** - * Converts an float to a real_t - * @note Saturates on overflow - */ -real_t os_FloatToReal(float arg); - -/** This converts a ti-float to a ti-ascii string. - * - * @param result Zero terminated string copied to this address - * @param arg Real to convert - * @param maxLength - * <=0: use default max length (14) <br> - * >0: max length of result, minimum of 6 - * @param mode: - * 0: Use current mode for everything (digits ignored) <br> - * 1: Normal mode <br> - * 2: Sci mode <br> - * 3: Eng mode <br> - * >4: Use current Normal/Sci/Eng mode (digits still used) <br> - * @param digits - * -1: Float mode <br> - * 0-9: Fix # mode <br> - * @returns Length of result - */ -int os_RealToStr(char *result, const real_t *arg, int8_t maxLength, uint8_t mode, int8_t digits); - -/** - * This converts a ti-ascii string to a ti-float. - * - * String format regexp: / *[-\032+]?[0-9]*(\.[0-9]*)?([eE\033][-\032+]?[0-9]*)?/ - * @param string TI-ascii string to convert - * @param end If non-null, pointer to end of parsed number is stored here - * @returns resulting TI-float; on exponent overflow this is +-9.9999999999999e99 - */ -real_t os_StrToReal(const char *string, char **end); - -/** - * High 8 is unsigned offset, low 8 is bits to test - */ -int os_TestFlagBits(uint16_t offset_pattern); -void os_SetFlagBits(int16_t offset_pattern); -void os_ResetFlagBits(int16_t offset_pattern); - -/** - * Custom implementation input routine for use in conjunction with the TIOS. - * It is HIGHLY recommended you implement your own routine, this routine has - * some quirks. It is good enough for getting basic input however. - * - * @param string Input prompt string to be displayed to the user - * @param buf Storage location to store input string - * @param bufsize Available storage size for input string. -1 for null termination. - * @returns None - */ -void os_GetStringInput(char *string, char *buf, size_t bufsize); - -/** - * Gets a key from the OS - * - * @returns Key code - * @returns Extended key code in high byte - */ -uint16_t os_GetKey(void); - -/** - * Disable text buffering on the homescreen. C programs use this area by default for the BSS / Heap. - */ -void os_DisableHomeTextBuffer(void); - -/** - * Enables text buffering on the homescreen. C programs use this area by default for the BSS / Heap. - */ -void os_EnableHomeTextBuffer(void); - -/** - * @brief Scan code type - */ -typedef uint8_t sk_key_t; - -/** - * Performs an OS call to get the keypad scan code - * - * You can also use this function to get input from the user as a string like this: - * @code - * const char *chars = "\0\0\0\0\0\0\0\0\0\0\"WRMH\0\0?[VQLG\0\0:ZUPKFC\0 YTOJEB\0\0XSNIDA\0\0\0\0\0\0\0\0"; - * uint8_t key, i = 0; - * char buffer[50]; - * - * while((key = os_GetCSC()) != sk_Enter) { - * if(chars[key]) { - * buffer[i++] = chars[key]; - * } - * } - * @endcode - * Feel free to modify the string to suit your needs. - * @returns Key scan code - */ -sk_key_t os_GetCSC(void); - -/** - * Runs the calulator at 6 MHz - */ -void boot_Set6MHzMode(void); - -/** - * Runs the calulator at 48 MHz - */ -void boot_Set48MHzMode(void); - -/** - * Runs the calulator at 6 MHz (saves interrupt status) - */ -void boot_Set6MHzModeI(void); - -/** - * Runs the calulator at 48 MHz (saves interrupt status) - */ -void boot_Set48MHzModeI(void); - -/** - * Executes the assembly routine _ForceCmdNoChar - */ -void os_ForceCmdNoChar(void); - -/** - * Use this function to call assembly functions in the OS and Bootcode - * i.e. _OS( asm_ArcChk ); - */ -void _OS(void (*function)(void)); - -/** - * Assembly routine to scroll homescreen up - */ -void asm_MoveUp(void); - -/** - * Assembly routine to scroll homescreen down - */ -void asm_MoveDown(void); - -/** - * Assembly routine to move row and column posistion to (0,0) - */ -void asm_HomeUp(void); - -/** - * Assembly routine to turn on the Run Indicator - */ -void asm_RunIndicOn(void); - -/** - * Assembly routine to turn off the Run Indicator - */ -void asm_RunIndicOff(void); - -/** - * Assembly routine to turn off APD - */ -void asm_DisableAPD(void); - -/** - * Assembly routine to turn on APD - */ -void asm_EnableAPD(void); - -/** - * Assembly routine checks the amount of free archive - */ -void asm_ArcChk(void); - -/** - * Assembly routine to clear the homescreen lcd - */ -void asm_ClrLCDFull(void); - -/** - * Assembly routine to clear the homescreen lcd. - * Accounts for split screen - */ -void asm_ClrLCD(void); - -/** - * Assembly routine to redraw the status bar - */ -void asm_DrawStatusBar(void); - -/** - * Invalidate and clear stat variables - */ -void asm_DelRes(void); - -/** - * Invalidate and clear text shadow area - */ -void asm_ClrTxtShd(void); - -/** - * Colors used by the OS - */ -typedef enum { - OS_COLOR_BLUE = 10, - OS_COLOR_RED, - OS_COLOR_BLACK, - OS_COLOR_MAGENTA, - OS_COLOR_GREEN, - OS_COLOR_ORANGE, - OS_COLOR_BROWN, - OS_COLOR_NAVY, - OS_COLOR_LTBLUE, - OS_COLOR_YELLOW, - OS_COLOR_WHITE, - OS_COLOR_LTGRAY, - OS_COLOR_MEDGRAY, - OS_COLOR_GRAY, - OS_COLOR_DARKGRAY -} os_colors_t; - -#define os_RamStart ((uint8_t*)0xD00000) -#define os_Flags ((uint8_t*)0xD00080) -#define os_TextFlags (*(uint8_t*)0xD00080) -#define os_ApdFlags (*(uint8_t*)0xD00088) -#define os_RclFlags (*(uint8_t*)0xD0008E) - -#define os_AppData ((uint8_t*)0xD00429) - -#define os_KbdScanCode (*(uint8_t*)0xD00587) -#define os_KbdLGSC (*(uint8_t*)0xD00588) -#define os_KbdPSC (*(uint8_t*)0xD00589) -#define os_KbdWUR (*(uint8_t*)0xD0058A) -#define os_KbdDebncCnt (*(uint8_t*)0xD0058B) -#define os_KbdKey (*(uint8_t*)0xD0058C) -#define os_KbdGetKy (*(uint8_t*)0xD0058D) -#define os_KeyExtend (*(uint8_t*)0xD0058E) -#define os_Brightness (*(uint8_t*)0xD0058F) -#define os_ApdSubTimer (*(uint8_t*)0xD00590) -#define os_ApdTimer (*(uint8_t*)0xD00591) -#define os_CurRow (*(uint8_t*)0xD00595) -#define os_CurCol (*(uint8_t*)0xD00596) - -#define os_OP1 ((uint8_t*)0xD005F8) -#define os_OP2 ((uint8_t*)0xD00603) -#define os_OP3 ((uint8_t*)0xD0060E) -#define os_OP4 ((uint8_t*)0xD00619) -#define os_OP5 ((uint8_t*)0xD00624) -#define os_OP6 ((uint8_t*)0xD0062F) -#define os_OP7 ((uint8_t*)0xD0063A) - -#define os_ProgToEdit ((char*)0xD0065B) -#define os_NameBuff ((char*)0xD00663) - -#define os_TextShadow ((uint8_t*)0xD006C0) /**< Text buffer 260 bytes */ - -#define os_PromptRow (*(uint8_t*)0xD00800) -#define os_PromptCol (*(uint8_t*)0xD00801) -#define os_PromptIns (*(uint8_t*)0xD00802) -#define os_PromptShift (*(uint8_t*)0xD00803) -#define os_PromptRet (*(uint8_t*)0xD00804) -#define os_PromptValid (*(uint8_t*)0xD00807) - -#define os_PenCol (*(uint24_t*)0xD008D2) /**< Small font column location */ -#define os_PenRow (*(uint8_t*)0xD008D5) /**< Small font row location */ - -#define os_StatVars ((uint8_t*)0xD01191) -#define os_AsmPrgmSize (*(uint16_t*)0xD0118C) /**< Current size of executing program */ - -#define os_uXMin (*(real_t*)0xD01D61) -#define os_uXMax (*(real_t*)0xD01D6A) -#define os_uXScl (*(real_t*)0xD01D73) -#define os_uYMin (*(real_t*)0xD01D7C) -#define os_uYMax (*(real_t*)0xD01D85) -#define os_uYScl (*(real_t*)0xD01D8E) -#define os_uThetaMin (*(real_t*)0xD01D97) -#define os_uThetaMax (*(real_t*)0xD01DA0) -#define os_uThetaStep (*(real_t*)0xD01DA9) -#define os_uTmin (*(real_t*)0xD01DB2) -#define os_uTmax (*(real_t*)0xD01DBB) -#define os_uTStep (*(real_t*)0xD01DC4) -#define os_uPlotStart (*(real_t*)0xD01DCD) -#define os_unMax (*(real_t*)0xD01DD6) -#define os_uu0 (*(real_t*)0xD01DDF) -#define os_uv0 (*(real_t*)0xD01DE8) -#define os_unMin (*(real_t*)0xD01DF1) -#define os_uu02 (*(real_t*)0xD01DFA) -#define os_uv02 (*(real_t*)0xD01E03) -#define os_uw0 (*(real_t*)0xD01E0C) -#define os_uPlotStep (*(real_t*)0xD01E15) -#define os_uXres (*(real_t*)0xD01E1E) -#define os_uw02 (*(real_t*)0xD01E27) -#define os_XMin (*(real_t*)0xD01E33) -#define os_XMax (*(real_t*)0xD01E3C) -#define os_XScl (*(real_t*)0xD01E45) -#define os_YMin (*(real_t*)0xD01E4E) -#define os_YMax (*(real_t*)0xD01E57) -#define os_YScl (*(real_t*)0xD01E60) -#define os_ThetaMin (*(real_t*)0xD01E69) -#define os_ThetaMax (*(real_t*)0xD01E72) -#define os_ThetaStep (*(real_t*)0xD01E7B) -#define os_TMinPar (*(real_t*)0xD01E84) -#define os_TMaxPar (*(real_t*)0xD01E8D) -#define os_TStep (*(real_t*)0xD01E96) -#define os_PlotStart (*(real_t*)0xD01E9F) -#define os_NMax (*(real_t*)0xD01EA8) -#define os_u0 (*(real_t*)0xD01EB1) -#define os_V0 (*(real_t*)0xD01EBA) -#define os_NMin (*(real_t*)0xD01EC3) -#define os_u02 (*(real_t*)0xD01ECC) -#define os_V02 (*(real_t*)0xD01ED5) -#define os_W0 (*(real_t*)0xD01EDE) -#define os_PlotStep (*(real_t*)0xD01EE7) -#define os_XResO (*(real_t*)0xD01EF0) -#define os_W02 (*(real_t*)0xD01EF9) -#define os_un1 (*(real_t*)0xD01F02) -#define os_un2 (*(real_t*)0xD01F0B) -#define os_Vn1 (*(real_t*)0xD01F14) -#define os_Vn2 (*(real_t*)0xD01F1D) -#define os_Wn1 (*(real_t*)0xD01F26) -#define os_Wn2 (*(real_t*)0xD01F2F) -#define os_Fin_N (*(real_t*)0xD01F38) -#define os_Fin_I (*(real_t*)0xD01F41) -#define os_Fin_PV (*(real_t*)0xD01F4A) -#define os_Fin_PMT (*(real_t*)0xD01F53) -#define os_Fin_FV (*(real_t*)0xD01F5C) -#define os_Fin_PY (*(real_t*)0xD01F65) -#define os_Fin_CY (*(real_t*)0xD01F6E) -#define os_Cal_N (*(real_t*)0xD01F77) -#define os_Cal_I (*(real_t*)0xD01F80) -#define os_Cal_PV (*(real_t*)0xD01F89) -#define os_Cal_PMT (*(real_t*)0xD01F92) -#define os_Cal_FV (*(real_t*)0xD01F9B) -#define os_Cal_PY (*(real_t*)0xD01FA4) - -#define os_CmdShadow ((uint8_t*)0xD0232D) - -#define os_Y1LineType (*(uint8_t*)0xD024BF) -#define os_Y2LineType (*(uint8_t*)0xD024C0) -#define os_Y3LineType (*(uint8_t*)0xD024C1) -#define os_Y4LineType (*(uint8_t*)0xD024C2) -#define os_Y5LineType (*(uint8_t*)0xD024C3) -#define os_Y6LineType (*(uint8_t*)0xD024C4) -#define os_Y7LineType (*(uint8_t*)0xD024C5) -#define os_Y8LineType (*(uint8_t*)0xD024C6) -#define os_Y9LineType (*(uint8_t*)0xD024C7) -#define os_Y0LineType (*(uint8_t*)0xD024C8) -#define os_Para1LineType (*(uint8_t*)0xD024C9) -#define os_Para2LineType (*(uint8_t*)0xD024CA) -#define os_Para3LineType (*(uint8_t*)0xD024CB) -#define os_Para4LineType (*(uint8_t*)0xD024CC) -#define os_Para5LineType (*(uint8_t*)0xD024CD) -#define os_Para6LineType (*(uint8_t*)0xD024CE) -#define os_Polar1LineType (*(uint8_t*)0xD024CF) -#define os_Polar2LineType (*(uint8_t*)0xD024D0) -#define os_Polar3LineType (*(uint8_t*)0xD024D1) -#define os_Polar4LineType (*(uint8_t*)0xD024D2) -#define os_Polar5LineType (*(uint8_t*)0xD024D3) -#define os_Polar6LineType (*(uint8_t*)0xD024D4) -#define os_SecULineType (*(uint8_t*)0xD024D5) -#define os_SecVLineType (*(uint8_t*)0xD024D6) -#define os_SecWLineType (*(uint8_t*)0xD024D7) -#define os_Y1LineColor (*(uint8_t*)0xD024D8) -#define os_Y2LineColor (*(uint8_t*)0xD024D9) -#define os_Y3LineColor (*(uint8_t*)0xD024DA) -#define os_Y4LineColor (*(uint8_t*)0xD024DB) -#define os_Y5LineColor (*(uint8_t*)0xD024DC) -#define os_Y6LineColor (*(uint8_t*)0xD024DD) -#define os_Y7LineColor (*(uint8_t*)0xD024DE) -#define os_Y8LineColor (*(uint8_t*)0xD024DF) -#define os_Y9LineColor (*(uint8_t*)0xD024E0) -#define os_Y0LineColor (*(uint8_t*)0xD024E1) -#define os_Para1LineColor (*(uint8_t*)0xD024E2) -#define os_Para2LineColor (*(uint8_t*)0xD024E3) -#define os_Para3LineColor (*(uint8_t*)0xD024E4) -#define os_Para4LineColor (*(uint8_t*)0xD024E5) -#define os_Para5LineColor (*(uint8_t*)0xD024E6) -#define os_Para6LineColor (*(uint8_t*)0xD024E7) -#define os_Polar1LineColor (*(uint8_t*)0xD024E8) -#define os_Polar2LineColor (*(uint8_t*)0xD024E9) -#define os_Polar3LineColor (*(uint8_t*)0xD024EA) -#define os_Polar4LineColor (*(uint8_t*)0xD024EB) -#define os_Polar5LineColor (*(uint8_t*)0xD024EC) -#define os_Polar6LineColor (*(uint8_t*)0xD024ED) -#define os_SecULineColor (*(uint8_t*)0xD024EE) -#define os_SecVLineColor (*(uint8_t*)0xD024EF) -#define os_SecWLineColor (*(uint8_t*)0xD024F0) - -#define os_AppErr1 ((char*)0xD025A9) /**< String [1] for custom error */ -#define os_AppErr2 ((char*)0xD025B6) /**< String [2] for custom error */ - -#define os_CursorHookPtr (*(uint24_t*)0xD025D5) -#define os_LibraryHookPtr (*(uint24_t*)0xD025D8) -#define os_RawKeyHookPtr (*(uint24_t*)0xD025DB) -#define os_GetKeyHookPtr (*(uint24_t*)0xD025DE) -#define os_HomescreenHookPtr (*(uint24_t*)0xD025E1) -#define os_WindowHookPtr (*(uint24_t*)0xD025E4) -#define os_GraphHookPtr (*(uint24_t*)0xD025E7) -#define os_YEqualsHookPtr (*(uint24_t*)0xD025EA) -#define os_FontHookPtr (*(uint24_t*)0xD025ED) -#define os_RegraphHookPtr (*(uint24_t*)0xD025F0) -#define os_GraphicsHookPtr (*(uint24_t*)0xD025F3) -#define os_TraceHookPtr (*(uint24_t*)0xD025F6) -#define os_ParserHookPtr (*(uint24_t*)0xD025F9) -#define os_AppChangeHookPtr (*(uint24_t*)0xD025FC) -#define os_Catalog1HookPtr (*(uint24_t*)0xD025FF) -#define os_HelpHookPtr (*(uint24_t*)0xD02602) -#define os_CxRedispHookPtr (*(uint24_t*)0xD02605) -#define os_MenuHookPtr (*(uint24_t*)0xD02608) -#define os_Catalog2HookPtr (*(uint24_t*)0xD0260B) -#define os_TokenHookPtr (*(uint24_t*)0xD0260E) -#define os_LocalizeHookPtr (*(uint24_t*)0xD02611) -#define os_SilentLinkHookPtr (*(uint24_t*)0xD02614) -#define os_ActiveUSBHookPtr (*(uint24_t*)0xD0261A) - -#define os_TempFreeArc (*(uint24_t*)0xD02655) /**< Set after asm_ArcChk call */ - -#define os_TextBGcolor (*(uint16_t*)0xD02688) /**< Large font background color */ -#define os_TextFGcolor (*(uint16_t*)0xD0268A) /**< Large font foreground color */ - -#define os_DrawBGColor (*(uint16_t*)0xD026AA) /**< Small font background color */ -#define os_DrawFGColor (*(uint16_t*)0xD026AC) /**< Small font foreground color */ -#define os_DrawColorCode (*(uint8_t*)0xD026AE) - -#define os_BatteryStatus (*(uint8_t*)0xD02A86) - -#define os_GraphBGColor (*(uint16_t*)0xD02A98) /**< Graph background 565 color */ - -#define os_FillRectColor (*(uint16_t*)0xD02AC0) -#define os_StatusBarBGColor (*(uint16_t*)0xD02ACC) /**< Status bar 565 color */ - -#define os_TmpYears (*(real_t*)0xD02B01) -#define os_TmpMonths (*(real_t*)0xD02B0A) -#define os_TmpDays (*(real_t*)0xD02B13) -#define os_TmpHours (*(real_t*)0xD02B1C) -#define os_TmpMinutes (*(real_t*)0xD02B25) - -#define os_RamCode ((uint8_t*)0xD18C7C) /**< 1023 bytes free ram */ - -/* - * TI-OS Token definitions - */ - -#define tToDMS 0x01 -#define tToDEC 0x02 -#define tToAbc 0x03 -#define tStore 0x04 -#define tBoxPlot 0x05 -#define tLBrack 0x06 -#define tRBrack 0x07 -#define tLBrace 0x08 -#define tRBrace 0x09 -#define tFromRad 0x0A -#define tFromDeg 0x0B -#define tRecip 0x0C -#define tSqr 0x0D -#define tTrnspos 0x0E -#define tCube 0x0F -#define tLParen 0x10 -#define tRParen 0x11 -#define tRound 0x12 -#define tPxTst 0x13 -#define tAug 0x14 -#define tRowSwap 0x15 -#define tRowPlu 0x16 -#define tmRow 0x17 -#define tmRowPlus 0x18 -#define tMax 0x19 // 'max' -#define tMin 0x1A // 'min' -#define tRToPr 0x1B // 'R>Pr' -#define tRToPo 0x1C // 'R>Po' -#define tPToRx 0x1D // 'P>Rx' -#define tPToRy 0x1E // 'P>Ry' -#define tMedian 0x1F // 'MEDIAN' -#define tRandM 0x20 // 'randM' -#define tMean 0x21 // 'MEAN' -#define tRoot 0x22 // 'ROOT' -#define tSeries 0x23 // 'seq' -#define tFnInt 0x24 // 'fnInt' -#define tNDeriv 0x25 // 'fnIr' -#define tEvalF 0x26 -#define tFmin 0x27 -#define tFmax 0x28 -#define tSpace 0x29 // ' ' -#define tString 0x2A // '"' -#define tComma 0x2B // ',' -#define tii 0x2C // 'i' -#define tFact 0x2D // '!' -#define tCubicR 0x2E -#define tQuartR 0x2F -#define t0 0x30 -#define t1 0x31 -#define t2 0x32 -#define t3 0x33 -#define t4 0x34 -#define t5 0x35 -#define t6 0x36 -#define t7 0x37 -#define t8 0x38 -#define t9 0x39 -#define tDecPt 0x3A // '.' -#define tee 0x3B // 'e' -#define tOr 0x3C // '_or_' -#define tXor 0x3D -#define tColon 0x3E // ':' -#define tEnter 0x3F -#define tAnd 0x40 // '_and_' -#define tA 0x41 -#define tB 0x42 -#define tC 0x43 -#define tD 0x44 -#define tE 0x45 -#define tF 0x46 -#define tG 0x47 -#define tH 0x48 -#define tI 0x49 -#define tJ 0x4A -#define tK 0x4B -#define tL 0x4C -#define tM 0x4D -#define tN 0x4E -#define tO 0x4F -#define tP 0x50 -#define tQ 0x51 -#define tR 0x52 -#define tS 0x53 -#define tT 0x54 -#define tU 0x55 -#define tV 0x56 -#define tW 0x57 -#define tX 0x58 -#define tY 0x59 -#define tZ 0x5A -#define tTheta 0x5B -#define tProg 0x5F - -/* - * Mode settings tokens - */ -#define tRad 0x64 // 'Radian' -#define tDeg 0x65 // 'Degree' -#define tNormF 0x66 // 'Normal' -#define tSci 0x67 // 'Sci' -#define tEng 0x68 // 'Eng' -#define tFloat 0x69 // 'Float' -#define tFix 0x73 // 'Fix_' -#define tSplitOn 0x74 -#define tFullScreen 0x75 -#define tStndrd 0x76 // 'Func' -#define tParam 0x77 // 'Param' -#define tPolar 0x78 // 'Pol' -#define tSeqG 0x79 // ;79h -#define tAFillOn 0x7A // 'AUTO FILL ON' -#define tAFillOff 0x7B // 'AutoFill OFF' -#define tACalcOn 0x7C -#define tACalcOff 0x7D - -#define tEQ 0x6A // '=' -#define tLT 0x6B // '<' -#define tGT 0x6C // '>' -#define tLE 0x6D // LLE -#define tGE 0x6E // LGE -#define tNE 0x6F // LNE -#define tAdd 0x70 // '+' -#define tSub 0x71 // '-' -#define tAns 0x72 -#define tMul 0x82 // '*' -#define tDiv 0x83 // '/' - -#define tBoxIcon 0x7F -#define tCrossIcon 0x80 -#define tDotIcon 0x81 - -#define tTrace 0x84 // 'Trace' -#define tClDrw 0x85 // 'ClrDraw' -#define tZoomStd 0x86 // 'ZStd' -#define tZoomtrg 0x87 // 'Ztrg' -#define tZoomBox 0x88 // 'ZBOX' -#define tZoomIn 0x89 // 'ZIn' -#define tZoomOut 0x8A // 'ZOut' -#define tZoomSqr 0x8B // 'ZSqr' -#define tZoomInt 0x8C // 'ZInt' -#define tZoomPrev 0x8D // 'ZPrev' -#define tZoomDec 0x8E // 'ZDecm' -#define tZoomStat 0x8F // 'ZStat -#define tUsrZm 0x90 // 'ZRcl' -#define tPrtScrn 0x91 // 'PrtScrn' -#define tZoomSto 0x92 // 'ZSto' -#define tText 0x93 - -#define tnPr 0x94 // '_nPr_' -#define tnCr 0x95 // '_nCr_' - -// Graph Commands -#define tYOn 0x96 // 'FnOn_' -#define tYOff 0x97 // 'FnOff_' -#define tStPic 0x98 // 'StPic_' -#define tRcPic 0x99 // 'RcPic_' -#define tStoDB 0x9A // 'StGDB_' -#define tRclDB 0x9B // 'RcGDB_' -#define tLine 0x9C // 'Line' -#define tVert 0x9D // 'Vert_' -#define tPtOn 0x9E // 'PtOn' -#define tPtOff 0x9F // 'PtOff' -#define tPtChg 0xA0 // 'PtChg' -#define tPXOn 0xA1 -#define tPXOff 0xA2 -#define tPXChg 0xA3 -#define tShade 0xA4 // 'Shade' -#define tCircle 0xA5 // 'Circle' -#define tHorz 0xA6 // 'HORIZONTAL' -#define tTanLn 0xA7 // 'TanLn' -#define tDrInv 0xA8 // 'DrInv_' -#define tDrawF 0xA9 // 'DrawF_' - -// Functions with no argument -#define tRand 0xAB // 'rand' -#define tPi 0xAC // Lpi -#define tGetKey 0xAD // 'getKy' -#define tAPost 0xAE // ''' -#define tQuest 0xAF // '?' -#define tChs 0xB0 -#define tInt 0xB1 -#define tAbs 0xB2 -#define tDet 0xB3 -#define tIdent 0xB4 -#define tDim 0xB5 -#define tSum 0xB6 -#define tProd 0xB7 -#define tNot 0xB8 -#define tIPart 0xB9 -#define tFPart 0xBA - -// New 2 Byte Tokens -#define t2ByteTok 0xBB -#define tSqrt 0xBC -#define tCubRt 0xBD -#define tLn 0xBE -#define tExp 0xBF -#define tLog 0xC0 -#define tALog 0xC1 -#define tSin 0xC2 -#define tASin 0xC3 -#define tCos 0xC4 -#define tACos 0xC5 -#define tTan 0xC6 -#define tATan 0xC7 -#define tSinH 0xC8 -#define tASinH 0xC9 -#define tCoshH 0xCA -#define tACosH 0xCB -#define tTanH 0xCC -#define tATanH 0xCD - -// Some Programming Commands -#define tIf 0xCE // 'If_' -#define tThen 0xCF // 'Then_' -#define tElse 0xD0 // 'Else_' -#define tWhile 0xD1 // 'While_' -#define tRepeat 0xD2 // 'Repeat_' -#define tFor 0xD3 // 'For_' -#define tEnd 0xD4 // 'End' -#define tReturn 0xD5 // 'Return' -#define tLbl 0xD6 // 'Lbl_' -#define tGoto 0xD7 // 'Goto_' -#define tPause 0xD8 // 'Pause_' -#define tStop 0xD9 // 'Stop' -#define tISG 0xDA // 'IS>' -#define tDSL 0xDB // 'DS<' -#define tInput 0xDC // 'Input_' -#define tPrompt 0xDD // 'Prompt_' -#define tDisp 0xDE // 'Disp_' -#define tDispG 0xDF // 'DispG' -#define tOutput 0xE0 // 'Outpt' -#define tClLCD 0xE1 // 'ClLCD' -#define tConst 0xE2 // 'Fill' -#define tSortA 0xE3 // 'sortA_' -#define tSortD 0xE4 // 'sortD_' -#define tDispTab 0xE5 // 'Disp Table -#define tMenu 0xE6 // 'Menu' -#define tSendMBL 0xE7 // 'Send' -#define tGetMBL 0xE8 // 'Get' - -// Stat Plot Commands -#define tPlotOn 0xE9 // 'PLOTSON' -#define tPlotOff 0xEA // 'PLOTSOFF -#define tListName 0xEB // List Designator -#define tPlot1 0xEC -#define tPlot2 0xED -#define tPlot3 0xEE -#define tUnused01 0xEF // available? -#define tPower 0xF0 // '^' -#define tXRoot 0xF1 // LsupX,Lroot -#define tOneVar 0xF2 // 'OneVar_' -#define tTwoVar 0xF3 -#define tLR 0xF4 // 'LinR(A+BX)' -#define tLRExp 0xF5 // 'ExpR_' -#define tLRLn 0xF6 // 'LnR_' -#define tLRPwr 0xF7 // 'PwrR_' -#define tMedMed 0xF8 -#define tQuad 0xF9 -#define tClrLst 0xFA // 'Clear List' -#define tClrTbl 0xFB // 'Clear Table' -#define tHist 0xFC // 'Hist_' -#define txyLine 0xFD // 'xyline_' -#define tScatter 0xFE // 'Scatter_' -#define tLR1 0xFF // 'LINR(AX+B)' - -#define tGFormat 0x7E -// 2nd Half Of Graph Format Tokens -#define tSeq 0x00 // 'SeqG' -#define tSimulG 0x01 // 'SimulG' -#define tPolarG 0x02 // 'PolarGC' -#define tRectG 0x03 // 'RectGC' -#define tCoordOn 0x04 // 'CoordOn' -#define tCoordOff 0x05 // 'CoordOff' -#define tDrawLine 0x06 // 'DrawLine' -#define tDrawDot 0x07 // 'DrawDot' -#define tAxisOn 0x08 // 'AxesOn' -#define tAxisOff 0x09 // 'AxesOff' -#define tGridOn 0x0A // 'GridOn' -#define tGridOff 0x0B // 'GridOff' -#define tLblOn 0x0C // 'LabelOn' -#define tLblOff 0x0D // 'LabelOff' -#define tWebOn 0x0E // 'WebOn' -#define tWebOff 0x0F // 'WebOFF' -#define tuv 0x10 // U vs V -#define tvw 0x11 // V vs W -#define tuw 0x12 // U vs W - -#define tVarMat 0x5C -// 2nd Half Of User Matrix Tokens -#define tMatA 0x00 // MAT A -#define tMatB 0x01 // MAT B -#define tMatC 0x02 // MAT C -#define tMatD 0x03 // MAT D -#define tMatE 0x04 // MAT E -#define tMatF 0x05 // MAT F -#define tMatG 0x06 // MAT G -#define tMatH 0x07 // MAT H -#define tMatI 0x08 // MAT I -#define tMatJ 0x09 // MAT J - -#define tVarLst 0x5D -// 2nd Half Of User List Tokens -#define tL1 0x00 // LIST 1 -#define tL2 0x01 // LIST 2 -#define tL3 0x02 // LIST 3 -#define tL4 0x03 // LIST 4 -#define tL5 0x04 // LIST 5 -#define tL6 0x05 // LIST 6 - -#define tVarEqu 0x5E -// 2nd Half Of User Equation Tokens - -// Y Equations have bit 4 set -#define tY1 0x10 // Y1 -#define tY2 0x11 // Y2 -#define tY3 0x12 // Y3 -#define tY4 0x13 // Y4 -#define tY5 0x14 // Y5 -#define tY6 0x15 // Y6 -#define tY7 0x16 // Y7 -#define tY8 0x17 // Y8 -#define tY9 0x18 // Y9 -#define tY0 0x19 // Y0 - -// Param Equations Have Bit 5 Set -#define tX1T 0x20 // X1t -#define tY1T 0x21 // Y1t -#define tX2T 0x22 // X2t -#define tY2T 0x23 // Y2t -#define tX3T 0x24 // X3t -#define tY3T 0x25 // Y3t -#define tX4T 0x26 // X4t -#define tY4T 0x27 // Y4t -#define tX5T 0x28 // X5t -#define tY5T 0x29 // Y5t -#define tX6T 0x2A // X6t -#define tY6T 0x2B // Y6t - -// Polar Equations Have Bit 6 Set -#define tR1 0x40 // R1 -#define tR2 0x41 // R2 -#define tR3 0x42 // R3 -#define tR4 0x43 // R4 -#define tR5 0x44 // R5 -#define tR6 0x45 // R6 - -// Recursion Equations Have Bit 7 Set -#define tun 0x80 // Un -#define tvn 0x81 // Vn -#define twn 0x82 // Wn - -#define tVarPict 0x60 -// 2nd Half User Picture Tokens -#define tPic1 0x00 // PIC1 -#define tPic2 0x01 // PIC2 -#define tPic3 0x02 // PIC3 -#define tPic4 0x03 // PIC4 -#define tPic5 0x04 // PIC5 -#define tPic6 0x05 // PIC6 -#define tPic7 0x06 // PIC7 -#define tPic8 0x07 // PIC8 -#define tPic9 0x08 // PIC9 -#define tPic0 0x09 // PIC0 - -#define tVarGDB 0x61 -// 2nd Half User Graph Database Tokens -#define tGDB1 0x00 // GDB1 -#define tGDB2 0x01 // GDB2 -#define tGDB3 0x02 // GDB3 -#define tGDB4 0x03 // GDB4 -#define tGDB5 0x04 // GDB5 -#define tGDB6 0x05 // GDB6 -#define tGDB7 0x06 // GDB7 -#define tGDB8 0x07 // GDB8 -#define tGDB9 0x08 // GDB9 -#define tGDB0 0x09 // GDB0 - -#define tVarStrng 0xAA -// 2nd Half Of String Vars -#define tStr1 0x00 -#define tStr2 0x01 -#define tStr3 0x02 -#define tStr4 0x03 -#define tStr5 0x04 -#define tStr6 0x05 -#define tStr7 0x06 -#define tStr8 0x07 -#define tStr9 0x08 -#define tStr0 0x09 - -#define tVarOut 0x62 -// 2nd Half Of System Output Only Variables -#define tRegEq 0x01 // REGRESSION EQUATION -#define tStatN 0x02 // STATISTICS N -#define tXMean 0x03 // X MEAN -#define tSumX 0x04 // SUM(X) -#define tSumXSqr 0x05 // SUM(X^2) -#define tStdX 0x06 // STANDARD DEV X -#define tStdPX 0x07 // STANDARD DEV POP X -#define tMinX 0x08 // Min X VALUE -#define tMaxX 0x09 // Max X VALUE -#define tMinY 0x0A // Min Y VALUE -#define tMaxY 0x0B // Max Y VALUE -#define tYmean 0x0C // Y MEAN -#define tSumY 0x0D // SUM(Y) -#define tSumYSqr 0x0E // SUM(Y^2) -#define tStdY 0x0F // STANDARD DEV Y -#define tStdPY 0x10 // STANDARD DEV POP Y -#define tSumXY 0x11 // SUM(XY) -#define tCorr 0x12 // CORRELATION -#define tMedX 0x13 // MED(X) -#define tQ1 0x14 // 1ST QUADRANT OF X -#define tQ3 0x15 // 3RD QUADRANT OF X -#define tQuadA 0x16 // 1ST TERM OF QUAD POLY REG/ Y-INT -#define tQuadB 0x17 // 2ND TERM OF QUAD POLY REG/ SLOPE -#define tQuadC 0x18 // 3RD TERM OF QUAD POLY REG -#define tCubeD 0x19 // 4TH TERM OF CUBIC POLY REG -#define tQuartE 0x1A // 5TH TERM OF QUART POLY REG -#define tMedX1 0x1B // x1 FOR MED-MED -#define tMedX2 0x1C // x2 FOR MED-MED -#define tMedX3 0x1D // x3 FOR MED-MED -#define tMedY1 0x1E // y1 FOR MED-MED -#define tMedY2 0x1F // y2 FOR MED-MED -#define tMedY3 0x20 // y3 FOR MED-MED -#define tRecurn 0x21 // RECURSION N -#define tStatP 0x22 -#define tStatZ 0x23 -#define tStatT 0x24 -#define tStatChi 0x25 -#define tStatF 0x26 -#define tStatDF 0x27 -#define tStatPhat 0x28 -#define tStatPhat1 0x29 -#define tStatPhat2 0x2A -#define tStatMeanX1 0x2B -#define tStatStdX1 0x2C -#define tStatN1 0x2D -#define tStatMeanX2 0x2E -#define tStatStdX2 0x2F -#define tStatN2 0x30 -#define tStatStdXP 0x31 -#define tStatLower 0x32 -#define tStatUpper 0x33 -#define tStat_s 0x34 -#define tLRSqr 0x35 -#define tBRSqr 0x36 - -// These next tokens are only used to access the data -// They are display only and the user cannot access them at all -#define tF_DF 0x37 -#define tF_SS 0x38 -#define tF_MS 0x39 -#define tE_DF 0x3A -#define tE_SS 0x3B -#define tE_MS 0x3C - -#define tVarSys 0x63 -// 2nd Half Of System Input/Output Variables -#define tuXscl 0x00 -#define tuYscl 0x01 -#define tXscl 0x02 -#define tYscl 0x03 -#define tRecuru0 0x04 -#define tRecurv0 0x05 -#define tun1 0x06 -#define tvn1 0x07 -#define tuRecuru0 0x08 -#define tuRecurv0 0x09 -#define tXmin 0x0A -#define tXmax 0x0B -#define tYmin 0x0C -#define tYmax 0x0D -#define tTmin 0x0E -#define tTmax 0x0F -#define tThetaMin 0x10 -#define tThetaMax 0x11 -#define tuXmin 0x12 -#define tuXmax 0x13 -#define tuYmin 0x14 -#define tuYmax 0x15 -#define tuThetMin 0x16 -#define tuThetMax 0x17 -#define tuTmin 0x18 -#define tuTmax 0x19 -#define tTblMin 0x1A -#define tPlotStart 0x1B -#define tuPlotStart 0x1C -#define tnMax 0x1D -#define tunMax 0x1E -#define tnMin 0x1F -#define tunMin 0x20 -#define tTblStep 0x21 -#define tTStep 0x22 -#define tThetaStep 0x23 -#define tuTStep 0x24 -#define tuThetStep 0x25 -#define tDeltaX 0x26 -#define tDeltaY 0x27 -#define tXFact 0x28 -#define tYFact 0x29 -#define tTblInput 0x2A -#define tFinN 0x2B -#define tFinI 0x2C -#define tFinPV 0x2D -#define tFinPMT 0x2E -#define tFinFV 0x2F -#define tFinPY 0x30 -#define tFinCY 0x31 -#define tRecurw0 0x32 -#define tuRecurw0 0x33 -#define tPlotStep 0x34 -#define tuPlotStep 0x35 -#define tXres 0x36 -#define tuXres 0x37 -#define tRecuru02 0x38 -#define tuRecuru02 0x39 -#define tRecurv02 0x3C -#define tuRecurv02 0x3D -#define tRecurw02 0x3E -#define tuRecurw02 0x3F - -// 2nd Byte Of t2ByteTok Tokens -#define tFinNPV 0x00 -#define tFinIRR 0x01 -#define tFinBAL 0x02 -#define tFinPRN 0x03 -#define tFinINT 0x04 -#define tFinToNom 0x05 -#define tFinToEff 0x06 -#define tFinDBD 0x07 -#define tLCM 0x08 -#define tGCD 0x09 -#define tRandInt 0x0A -#define tRandBin 0x0B -#define tSubStrng 0x0C -#define tStdDev 0x0D -#define tVariance 0x0E -#define tInStrng 0x0F -#define tDNormal 0x10 -#define tInvNorm 0x11 -#define tDT 0x12 -#define tChI 0x13 -#define tDF 0x14 -#define tBINPDF 0x15 -#define tBINCDF 0x16 -#define tPOIPDF 0x17 -#define tPOICDF 0x18 -#define tGEOPDF 0x19 -#define tGEOCDF 0x1A -#define tNormalPDF 0x1B -#define tTPDF 0x1C -#define tChiPDF 0x1D -#define tFPDF 0x1E -#define tRandNorm 0x1F -#define tFinFPMT 0x20 -#define tFinFI 0x21 -#define tFinFPV 0x22 -#define tFinFN 0x23 -#define tFinFFV 0x24 -#define tConj 0x25 -#define tReal 0x26 -#define tImag 0x27 -#define tAngle 0x28 -#define tCumSum 0x29 -#define tExpr 0x2A -#define tLength 0x2B -#define tDeltaLst 0x2C -#define tRef 0x2D -#define tRRef 0x2E -#define tToRect 0x2F -#define tToPolar 0x30 -#define tConste 0x31 -#define tSinReg 0x32 -#define tLogistic 0x33 -#define tLinRegTTest 0x34 -#define tShadeNorm 0x35 -#define tShadeT 0x36 -#define tShadeChi 0x37 -#define tShadeF 0x38 -#define tMatToLst 0x39 -#define tLstToMat 0x3A -#define tZTest 0x3B -#define tTTest 0x3C -#define t2SampZTest 0x3D -#define t1PropZTest 0x3E -#define t2PropZTest 0x3F -#define tChiTest 0x40 -#define tZIntVal 0x41 -#define t2SampZInt 0x42 -#define t1PropZInt 0x43 -#define t2PropZInt 0x44 -#define tGraphStyle 0x45 -#define t2SampTTest 0x46 -#define t2SampFTest 0x47 -#define tTIntVal 0x48 -#define t2SampTInt 0x49 -#define tSetupLst 0x4A -#define tFinPMTend 0x4B -#define tFinPMTbeg 0x4C -#define tRealM 0x4D -#define tPolarM 0x4E -#define tRectM 0x4F -#define tExprOn 0x50 -#define tExprOff 0x51 -#define tClrAllLst 0x52 -#define tGetCalc 0x53 -#define tDelVar 0x54 -#define tEquToStrng 0x55 -#define tStrngToequ 0x56 -#define tDelLast 0x57 -#define tSelect 0x58 -#define tANOVA 0x59 -#define tModBox 0x5A -#define tNormProb 0x5B -#define tMGT 0x64 -#define tZFit 0x65 -#define tDiag_on 0x66 -#define tDiag_off 0x67 -#define tArchive 0x68 -#define tUnarchive 0x69 -#define tAsm 0x6A -#define tAsmComp 0x6B -#define tAsmPrgm 0x6C -#define tAsmCmp 0x6D -#define tLcapAAcute 0x6E -#define tLcapAGrave 0x6F -#define tLcapACaret 0x70 -#define tLcapADier 0x71 -#define tLaAcute 0x72 -#define tLaGrave 0x73 -#define tLaCaret 0x74 -#define tLaDier 0x75 -#define tLcapEAcute 0x76 -#define tLcapEGrave 0x77 -#define tLcapECaret 0x78 -#define tLcapEDier 0x79 -#define tLeAcute 0x7A -#define tLeGrave 0x7B -#define tLeCaret 0x7C -#define tLeDier 0x7D -#define tLcapIGrave 0x7F -#define tLcapICaret 0x80 -#define tLcapIDier 0x81 -#define tLiAcute 0x82 -#define tLiGrave 0x83 -#define tLiCaret 0x84 -#define tLiDier 0x85 -#define tLcapOAcute 0x86 -#define tLcapOGrave 0x87 -#define tLcapOCaret 0x88 -#define tLcapODier 0x89 -#define tLoAcute 0x8A -#define tLoGrave 0x8B -#define tLoCaret 0x8C -#define tLoDier 0x8D -#define tLcapUAcute 0x8E -#define tLcapUGrave 0x8F -#define tLcapUCaret 0x90 -#define tLcapUDier 0x91 -#define tLuAcute 0x92 -#define tLuGrave 0x93 -#define tLuCaret 0x94 -#define tLuDier 0x95 -#define tLcapCCed 0x96 -#define tLcCed 0x97 -#define tLcapNTilde 0x98 -#define tLnTilde 0x99 -#define tLaccent 0x9A -#define tLgrave 0x9B -#define tLdieresis 0x9C -#define tLquesDown 0x9D -#define tLexclamDown 0x9E -#define tLalpha 0x9F -#define tLbeta 0xA0 -#define tLgamma 0xA1 -#define tLcapDelta 0xA2 -#define tLdelta 0xA3 -#define tLepsilon 0xA4 -#define tLlambda 0xA5 -#define tLmu 0xA6 -#define tLpi 0xA7 -#define tLrho 0xA8 -#define tLcapSigma 0xA9 -#define tLphi 0xAB -#define tLcapOmega 0xAC -#define tLphat 0xAD -#define tLchi 0xAE -#define tLstatF 0xAF -#define tLa 0xB0 -#define tLb 0xB1 -#define tLc 0xB2 -#define tLd 0xB3 -#define tLsmalle 0xB4 -#define tLf 0xB5 -#define tLsmallg 0xB6 -#define tLh 0xB7 -#define tLi 0xB8 -#define tLj 0xB9 -#define tLk 0xBA -#define tLl 0xBC -#define tLm 0xBD -#define tLsmalln 0xBE -#define tLo 0xBF -#define tLp 0xC0 -#define tLq 0xC1 -#define tLsmallr 0xC2 -#define tLs 0xC3 -#define tLsmallt 0xC4 -#define tLu 0xC5 -#define tLv 0xC6 -#define tLw 0xC7 -#define tLx 0xC8 -#define tLy 0xC9 -#define tLz 0xCA -#define tLsigma 0xCB -#define tLtau 0xCC -#define tLcapIAcute 0xCD -#define tGarbageCollect 0xCE - -#define tExtTok 0xEF -// 2nd Byte Of tExtTok Tokens -#define tSetDate 0x00 -#define tSetTime 0x01 -#define tCheckTmr 0x02 -#define tSetDtFmt 0x03 -#define tSetTmFmt 0x04 -#define tTimeCnv 0x05 -#define tDayOfWk 0x06 -#define tGetDtStr 0x07 -#define tGetTmStr 0x08 -#define tGetDate 0x09 -#define tGetTime 0x0A -#define tStartTmr 0x0B -#define tGtDtFmt 0x0C -#define tGetTmFmt 0x0D -#define tIsClockOn 0x0E -#define tClockOff 0x0F -#define tClockOn 0x10 -#define tOpenLib 0x11 -#define tExecLib 0x12 -#define tInvT 0x13 -#define tChiSquaredTest 0x14 -#define tLinRegTInt 0x15 -#define tManualFit 0x16 -#define tZQuadrant 0x17 -#define tZFracHalf 0x18 -#define tZFracThird 0x19 -#define tZFracFourth 0x1A -#define tZFracFifth 0x1B -#define tZFracEighth 0x1C -#define tZFracTenth 0x1D -#define tFracSlash 0x2E -#define tFracMixedNum 0x2F -#define tSwapImProper 0x30 -#define tSwapFracDec 0x31 -#define tRemainder 0x32 -#define tSummationSigma 0x33 -#define tLogBase 0x34 -#define tRandIntNoRep 0x35 -#define tMathPrint 0x36 -#define tClassic 0x38 -#define tAutoAnswer 0x3B -#define tDecAnswer 0x3C -#define tFracAnswer 0x3D -#define tBlue 0x41 -#define tRed 0x42 -#define tBlack 0x43 -#define tMagenta 0x44 -#define tGreen 0x45 -#define tOrange 0x46 -#define tBrown 0x47 -#define tNavy 0x48 -#define tLtBlue 0x49 -#define tYellow 0x4A -#define tWhite 0x4B -#define tLtGray 0x4C -#define tMedGray 0x4D -#define tGray 0x4E -#define tDarkGray 0x4F -#define tGraphColor 0x65 -#define tTextColor 0x67 -#define tBackgroundOn 0x5B -#define tBackgroundOff 0x64 -#define tThin 0x74 -#define tBorderColor 0x6C -#define tAsm84CPrgm 0x68 -#define tAsm84CCmp 0x69 -#define tAsm84CeCmp 0x7B -#define tAsm84CePrgm 0x7A - -/* 2 byte extended tokens (tExtTok) present in OS 5.2 and above */ -#define tSEQn 0x8F /* 'SEQ(n)' */ -#define tSEQn1 0x90 /* 'SEQ(n+1)' */ -#define tSEQn2 0x91 /* 'SEQ(n+2)' */ -#define tLEFT 0x92 /* 'LEFT' */ -#define tCENTER 0x93 /* 'CENTER' */ -#define tRIGHT 0x94 /* 'RIGHT' */ -#define tInvBinom 0x95 /* 'invBinom(' */ -#define tWait 0x96 /* 'Wait_' */ -#define tToString 0x97 /* 'toString(' */ -#define tEval 0x98 /* 'eval(' */ - -/* - * --- TIOS System error codes --- - */ -#define OS_E_EDIT (1<<7) -#define OS_E_MASK (0x7F) -#define OS_E_OVERFLOW (1+OS_E_EDIT) -#define OS_E_DIVBY0 (2+OS_E_EDIT) -#define OS_E_SINGULARMAT (3+OS_E_EDIT) -#define OS_E_DOMAIN (4+OS_E_EDIT) -#define OS_E_INCREMENT (5+OS_E_EDIT) -#define OS_E_BREAK (6+OS_E_EDIT) -#define OS_E_NONREAL (7+OS_E_EDIT) -#define OS_E_SYNTAX (8+OS_E_EDIT) -#define OS_E_DATATYPE (9+OS_E_EDIT) -#define OS_E_ARGUMENT (10+OS_E_EDIT) -#define OS_E_DIMMISMATCH (11+OS_E_EDIT) -#define OS_E_DIMENSION (12+OS_E_EDIT) -#define OS_E_UNDEFINED (13+OS_E_EDIT) -#define OS_E_MEMORY (14+OS_E_EDIT) -#define OS_E_INVALID (15+OS_E_EDIT) -#define OS_E_ILLEGALNEST (16+OS_E_EDIT) -#define OS_E_BOUND (17+OS_E_EDIT) -#define OS_E_GRAPHRANGE (18+OS_E_EDIT) -#define OS_E_ZOOM (19+OS_E_EDIT) -#define OS_E_LABEL (20) -#define OS_E_STAT (21) -#define OS_E_SOLVER (22+OS_E_EDIT) -#define OS_E_SINGULARITY (23+OS_E_EDIT) -#define OS_E_SIGNCHANGE (24+OS_E_EDIT) -#define OS_E_ITERATIONS (25+OS_E_EDIT) -#define OS_E_BADGUESS (26+OS_E_EDIT) -#define OS_E_STATPLOT (27) -#define OS_E_TOLTOOSMALL (28+OS_E_EDIT) -#define OS_E_RESERVED (29+OS_E_EDIT) -#define OS_E_MODE (30+OS_E_EDIT) -#define OS_E_LNKERR (31+OS_E_EDIT) -#define OS_E_LNKMEMERR (32+OS_E_EDIT) -#define OS_E_LNKTRANSERR (33+OS_E_EDIT) -#define OS_E_LNKDUPERR (34+OS_E_EDIT) -#define OS_E_LNKMEMFULL (35+OS_E_EDIT) -#define OS_E_UNKNOWN (36+OS_E_EDIT) -#define OS_E_SCALE (37+OS_E_EDIT) -#define OS_E_IDNOTFOUND (38) -#define OS_E_NOMODE (39+OS_E_EDIT) -#define OS_E_VALIDATION (40) -#define OS_E_LENGTH (41+OS_E_EDIT) -#define OS_E_APPLICATION (42+OS_E_EDIT) -#define OS_E_APPERR1 (43+OS_E_EDIT) -#define OS_E_APPERR2 (44+OS_E_EDIT) -#define OS_E_EXPIREDAPP (45) -#define OS_E_BADADD (46) -#define OS_E_ARCHIVED (47+OS_E_EDIT) -#define OS_E_VERSION (48) -#define OS_E_ARCHFULL (49) -#define OS_E_VARIABLE (50+OS_E_EDIT) -#define OS_E_DUPLICATE (51+OS_E_EDIT) - -/* - * --- TI-OS os_GetCSC Scan Code Return Values --- - */ -#define sk_Down 0x01 -#define sk_Left 0x02 -#define sk_Right 0x03 -#define sk_Up 0x04 -#define sk_Enter 0x09 -#define sk_2nd 0x36 -#define sk_Clear 0x0F -#define sk_Alpha 0x30 -#define sk_Add 0x0A -#define sk_Sub 0x0B -#define sk_Mul 0x0C -#define sk_Div 0x0D -#define sk_Graph 0x31 -#define sk_Trace 0x32 -#define sk_Zoom 0x33 -#define sk_Window 0x34 -#define sk_Yequ 0x35 -#define sk_Mode 0x37 -#define sk_Del 0x38 -#define sk_Store 0x2A -#define sk_Ln 0x2B -#define sk_Log 0x2C -#define sk_Square 0x2D -#define sk_Recip 0x2E -#define sk_Math 0x2F -#define sk_0 0x21 -#define sk_1 0x22 -#define sk_4 0x23 -#define sk_7 0x24 -#define sk_2 0x1A -#define sk_5 0x1B -#define sk_8 0x1C -#define sk_3 0x12 -#define sk_6 0x13 -#define sk_9 0x14 -#define sk_Comma 0x25 -#define sk_Sin 0x26 -#define sk_Apps 0x27 -#define sk_GraphVar 0x28 -#define sk_DecPnt 0x19 -#define sk_LParen 0x1D -#define sk_Cos 0x1E -#define sk_Prgm 0x1F -#define sk_Stat 0x20 -#define sk_Chs 0x11 -#define sk_RParen 0x15 -#define sk_Tan 0x16 -#define sk_Vars 0x17 -#define sk_Power 0x0E - -/* Compatibility defines */ -#define prgm_CleanUp() -#define pgrm_CleanUp() -#define memset_fast memset - -#ifdef __cplusplus -} -#endif - -#endif +/**
+ * @file
+ * @authors Matt "MateoConLechuga" Waltz
+ * @authors Jacob "jacobly" Young
+ * @brief Core CE define file
+ */
+
+#ifndef H_TICE
+#define H_TICE
+
+#include <stdbool.h>
+#include <stdint.h>
+#include <stddef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Hardware & custom macros/functions
+ */
+
+/**
+ * Returns a pseudo-random 32-bit integer.
+ *
+ * @return the random integer
+ */
+uint32_t random(void);
+
+/**
+ * Seeds the pseudo-random number generator used by random() and rand() with the
+ * value seed.
+ *
+ * @param seed the seed value
+ */
+void srandom(uint32_t seed);
+
+/**
+ * Returns a pseudo-random integer in the range of \p min to \p max (inclusive).
+ */
+#define randInt(min, max) \
+((unsigned)random() % ((max) - (min) + 1) + (min))
+
+/**
+ * Delays for a number of milliseconds.
+ * <p>
+ * Counts time spent while interrupted. Assumes a CPU clock speed of 48MHz.
+ *
+ * @param msec number of milliseconds
+ */
+void delay(uint16_t msec);
+
+/**
+ * "Atomically" loads from a volatile 32-bit value.
+ *
+ * @remarks
+ * The hardware does not provide a mechanism to truly atomically load from a
+ * 32-bit value. This "atomic" load is implemented by non-atomically reading the
+ * value twice and retrying if the values read differ.
+ *
+ * @attention
+ * If the maximum period between two value changes is 1us or less (assuming a
+ * CPU clock speed of 48MHz), then this function may never complete. For
+ * instance, the counter of a timer ticking at 1MHz or more should not be read
+ * using this function. In such a case of a purely increasing or decreasing
+ * value, atomic_load_increasing_32() or atomic_load_decreasing_32() may be
+ * appropriate instead.
+ *
+ * @param p pointer to 32-bit value
+ */
+uint32_t atomic_load_32(volatile uint32_t *p);
+
+/**
+ * "Atomically" loads from a volatile, increasing 32-bit value.
+ *
+ * @remarks
+ * The hardware does not provide a mechanism to truly atomically load from a
+ * 32-bit value. This "atomic" load is implemented by temporarily disabling
+ * interrupts while non-atomically reading the value twice and then returning
+ * the lesser of the two values read.
+ *
+ * @attention
+ * If the minimum period between two value changes is 5us or less and the
+ * value's maximum rate of change over a 5us period exceeds 256 (assuming a CPU
+ * clock speed of 48MHz), then the value returned may be incorrect. Of relevant
+ * note may be the fact that a 48MHz counter does not exceed this limit.
+ *
+ * @param p pointer to 32-bit value
+ */
+uint32_t atomic_load_increasing_32(volatile uint32_t *p);
+
+/**
+ * "Atomically" loads from a volatile, decreasing 32-bit value.
+ *
+ * @remarks
+ * The hardware does not provide a mechanism to truly atomically load from a
+ * 32-bit value. This "atomic" load is implemented by temporarily disabling
+ * interrupts while non-atomically reading the value twice and then returning
+ * the greater of the two values read.
+ *
+ * @attention
+ * If the minimum period between two value changes is 5us or less and the
+ * value's maximum rate of change over a 5us period exceeds 256 (assuming a CPU
+ * clock speed of 48MHz), then the value returned may be incorrect. Of relevant
+ * note may be the fact that a 48MHz counter does not exceed this limit.
+ *
+ * @param p pointer to 32-bit value
+ */
+uint32_t atomic_load_decreasing_32(volatile uint32_t *p);
+
+/**
+ * Gets a combination of the RTC time; useful for srand()
+ */
+#define rtc_Time() (*(volatile uint32_t*)0xF30044)
+
+/* RTC definitions */
+#define RTC_UNFREEZE (1<<7)
+#define RTC_FREEZE (0<<7)
+#define RTC_LOAD (1<<6)
+#define RTC_ENABLE ((1<<0)|(RTC_UNFREEZE))
+#define RTC_DISABLE (0<<0)
+
+/* RTC registers */
+#define rtc_Seconds (*(volatile uint8_t*)0xF30000)
+#define rtc_Minutes (*(volatile uint8_t*)0xF30004)
+#define rtc_Hours (*(volatile uint8_t*)0xF30008)
+#define rtc_Days (*(volatile uint16_t*)0xF3000C)
+#define rtc_AlarmSeconds (*(uint8_t*)0xF30010)
+#define rtc_AlarmMinutes (*(uint8_t*)0xF30014)
+#define rtc_AlarmHours (*(uint8_t*)0xF30018)
+#define rtc_Control (*(uint8_t*)0xF30020)
+#define rtc_LoadSeconds (*(uint8_t*)0xF30024)
+#define rtc_LoadMinutes (*(uint8_t*)0xF30028)
+#define rtc_LoadHours (*(uint8_t*)0xF3002C)
+#define rtc_LoadDays (*(uint16_t*)0xF30030)
+#define rtc_IntStatus (*(volatile uint8_t*)0xF30034)
+#define rtc_IntAcknowledge (*(volatile uint8_t*)0xF30034)
+#define rtc_IsBusy() (rtc_Control & RTC_LOAD)
+
+/* RTC interrupt masks */
+#define RTC_ALARM_INT_SOURCE (1<<5)
+#define RTC_DAY_INT_SOURCE (1<<4)
+#define RTC_HR_INT_SOURCE (1<<3)
+#define RTC_MIN_INT_SOURCE (1<<2)
+#define RTC_SEC_INT_SOURCE (1<<1)
+
+/* RTC interrupt statuses */
+#define RTC_LOAD_INT (1<<5)
+#define RTC_ALARM_INT (1<<4)
+#define RTC_DAY_INT (1<<3)
+#define RTC_HR_INT (1<<2)
+#define RTC_MIN_INT (1<<1)
+#define RTC_SEC_INT (1<<0)
+#define RTC_INT_MASK (RTC_SEC_INT | RTC_MIN_INT | RTC_HR_INT | RTC_DAY_INT | RTC_ALARM_INT | RTC_LOAD_INT)
+
+/* Whole bunch of useful timer functions */
+#define TIMER1_ENABLE (1<<0) /* Enables Timer 1 */
+#define TIMER1_DISABLE (0<<0) /* Disables Timer 1 */
+#define TIMER1_32K (1<<1) /* Use the 32K clock for timer 1 */
+#define TIMER1_CPU (0<<1) /* Use the CPU clock rate for timer 1 */
+#define TIMER1_0INT (1<<2) /* Enable an interrupt when 0 is reached for the timer 1 */
+#define TIMER1_NOINT (0<<2) /* Disable interrupts for the timer 1 */
+#define TIMER1_UP (1<<9) /* Timer 1 counts up */
+#define TIMER1_DOWN (0<<9) /* Timer 1 counts down */
+
+#define TIMER2_ENABLE (1<<3) /* Enables Timer 2 */
+#define TIMER2_DISABLE (0<<3) /* Disables Timer 2 */
+#define TIMER2_32K (1<<4) /* Use the 32K clock for timer 2 */
+#define TIMER2_CPU (0<<4) /* Use the CPU clock rate for timer 2 */
+#define TIMER2_0INT (1<<5) /* Enable an interrupt when 0 is reached for the timer 2 */
+#define TIMER2_NOINT (0<<5) /* Disable interrupts for the timer 2 */
+#define TIMER2_UP (1<<10) /* Timer 2 counts up */
+#define TIMER2_DOWN (0<<10) /* Timer 2 counts down */
+
+#define TIMER3_ENABLE (1<<6) /* Enables Timer 3 */
+#define TIMER3_DISABLE (0<<6) /* Disables Timer 3 */
+#define TIMER3_32K (1<<7) /* Use the 32K clock for timer 3 */
+#define TIMER3_CPU (0<<7) /* Use the CPU clock rate for timer 3 */
+#define TIMER3_0INT (1<<8) /* Enable an interrupt when 0 is reached for the timer 3 */
+#define TIMER3_NOINT (0<<8) /* Disable interrupts for the timer 3 */
+#define TIMER3_UP (1<<11) /* Timer 3 counts up */
+#define TIMER3_DOWN (0<<11) /* Timer 3 counts down */
+
+/* These defines can be used to check the status of the timer */
+#define TIMER1_MATCH1 (1<<0) /* Timer 1 hit the first match value */
+#define TIMER1_MATCH2 (1<<1) /* Timer 1 hit the second match value */
+#define TIMER1_RELOADED (1<<2) /* Timer 1 was reloaded (Needs TIMER1_0INT enabled) */
+
+#define TIMER2_MATCH1 (1<<3) /* Timer 2 hit the first match value */
+#define TIMER2_MATCH2 (1<<4) /* Timer 2 hit the second match value */
+#define TIMER2_RELOADED (1<<5) /* Timer 2 was reloaded (Needs TIMER2_0INT enabled) */
+
+#define TIMER3_MATCH1 (1<<6) /* Timer 3 hit the first match value */
+#define TIMER3_MATCH2 (1<<7) /* Timer 3 hit the second match value */
+#define TIMER3_RELOADED (1<<8) /* Timer 3 was reloaded (Needs TIMER3_0INT enabled) */
+
+/* Timer registers */
+#define timer_1_Counter (*(volatile uint32_t*)0xF20000)
+#define timer_1_ReloadValue (*(uint32_t*)0xF20004)
+#define timer_1_MatchValue_1 (*(uint32_t*)0xF20008)
+#define timer_1_MatchValue_2 (*(uint32_t*)0xF2000C)
+#define timer_2_Counter (*(volatile uint32_t*)0xF20010)
+#define timer_2_ReloadValue (*(uint32_t*)0xF20014)
+#define timer_2_MatchValue_1 (*(uint32_t*)0xF20018)
+#define timer_2_MatchValue_2 (*(uint32_t*)0xF2001C)
+#define timer_3_Counter (*(volatile uint32_t*)0xF20020)
+#define timer_3_ReloadValue (*(uint32_t*)0xF20024)
+#define timer_3_MatchValue_1 (*(uint32_t*)0xF20028)
+#define timer_3_MatchValue_2 (*(uint32_t*)0xF2002C)
+#define timer_Control (*(uint16_t*)0xF20030)
+#define timer_IntStatus (*(volatile uint16_t*)0xF20034)
+#define timer_IntAcknowledge (*(volatile uint16_t*)0xF20034)
+#define timer_EnableInt (*(uint16_t*)0xF20038)
+
+/* LCD defines */
+#define lcd_BacklightLevel (*(uint8_t*)0xF60024)
+#define lcd_Timing0 (*(uint32_t*)0xE30000)
+#define lcd_Timing1 (*(uint32_t*)0xE30004)
+#define lcd_Timing2 (*(uint32_t*)0xE30008)
+#define lcd_Timing3 (*(uint24_t*)0xE3000C)
+#define lcd_UpBase (*(uint32_t*)0xE30010)
+#define lcd_LpBase (*(uint32_t*)0xE30014)
+#define lcd_Control (*(uint24_t*)0xE30018)
+#define lcd_EnableInt (*(uint8_t*)0xE3001C)
+#define lcd_IntStatus (*(uint8_t*)0xE30020)
+#define lcd_IntStatusMasked (*(uint8_t*)0xE30024)
+#define lcd_IntAcknowledge (*(volatile uint8_t*)0xE30028)
+#define lcd_UpBaseCurr (*(volatile uint32_t*)0xE3002C)
+#define lcd_LpBaseCurr (*(volatile uint32_t*)0xE30030)
+#define lcd_Palette ((uint16_t*)0xE30200)
+#define lcd_Ram ((uint16_t*)0xD40000)
+
+/**
+ * Width of LCD in pixels
+ */
+#define LCD_WIDTH \
+(320)
+
+/**
+ * Height of LCD in pixels
+ */
+#define LCD_HEIGHT \
+(240)
+
+/**
+ * Total number of pixels in LCD
+ */
+#define LCD_SIZE \
+(LCD_WIDTH*LCD_HEIGHT*2)
+
+/**
+ * @brief Structure of real variable type
+ */
+typedef struct { int8_t sign, exp; uint8_t mant[7]; } real_t;
+/**
+ * @brief Structure of complex variable type
+ */
+typedef struct { real_t real, imag; } cplx_t;
+/**
+ * @brief Structure of list variable type
+ */
+typedef struct { uint16_t dim; real_t items[1]; } list_t;
+/**
+ * @brief Structure of complex list variable type
+ */
+typedef struct { uint16_t dim; cplx_t items[1]; } cplx_list_t;
+/**
+ * @brief Structure of matrix variable type
+ */
+typedef struct { uint8_t cols, rows; real_t items[1]; } matrix_t;
+/**
+ * @brief Structure of string variable type
+ */
+typedef struct { uint16_t len; char data[1]; } string_t;
+/**
+ * @brief Structure of equation variable type
+ */
+typedef struct { uint16_t len; char data[1]; } equ_t;
+/**
+ * @brief Structure of miscellaneous variable type
+ */
+typedef struct { uint16_t size; uint8_t data[1]; } var_t;
+
+/**
+ * Gets an element from a matrix
+ *
+ * @param matrix Structure of matrix
+ * @param row Row in matrix
+ * @param col Column in matrix
+ * @returns real_t containing element data
+ */
+#define matrix_element(matrix, row, col) ((matrix)->items[(row)+(col)*(matrix)->rows])
+
+/**
+ * Resets the OS homescreen; accounts for split screen
+ */
+#define os_ClrHome() do { _OS(asm_ClrLCD); _OS(asm_HomeUp); _OS(asm_DrawStatusBar); } while (0)
+
+/**
+ * Resets the OS homescreen fully
+ */
+#define os_ClrHomeFull() do { _OS(asm_ClrLCDFull); _OS(asm_HomeUp); _OS(asm_DrawStatusBar); } while (0)
+
+/*
+ * Bootcode functions
+ */
+
+/**
+ * Sets the calculator's date
+ *
+ * Performs checks to ensure date is within range
+ * @param day Day to set
+ * @param month Month to set
+ * @param year Year to set
+ */
+void boot_SetDate(uint8_t day, uint8_t month, uint16_t year);
+
+/**
+ * Gets the calculator's date
+ *
+ * @param day Pointer to variable to store day
+ * @param month Pointer to variable to store month
+ * @param year Pointer to variable to store year
+ */
+void boot_GetDate(uint8_t *day, uint8_t *month, uint16_t *year);
+
+/**
+ * Sets the calculator's time
+ *
+ * Performs checks to ensure time is within range
+ * @param seconds Seconds to set
+ * @param minutes Minutes to set
+ * @param hours Hours to set
+ */
+void boot_SetTime(uint8_t seconds, uint8_t minutes, uint8_t hours);
+
+/**
+ * Gets the calculator's time
+ *
+ * @param seconds Pointer to variable to store seconds
+ * @param minutes Pointer to variable to store minutes
+ * @param hours Pointer to variable to store hours
+ */
+void boot_GetTime(uint8_t *seconds, uint8_t *minutes, uint8_t *hours);
+
+/**
+ * Checks if past noon
+ *
+ * @returns True if past noon
+ */
+bool boot_IsAfterNoon(void);
+
+/**
+ * @returns Bootcode version major
+ */
+uint8_t boot_GetBootMajorVer(void);
+
+/**
+ * @returns Bootcode version minor
+ */
+uint8_t boot_GetBootMinorVer(void);
+
+/**
+ * @returns Hardware version
+ */
+uint8_t boot_GetHardwareVer(void);
+
+/**
+ * Turns all of VRAM into 0xFF (white)
+ */
+void boot_ClearVRAM(void);
+
+/**
+ * Checks if the [on] key was pressed
+ *
+ * @returns True is returned if [on] key was pressed
+ */
+bool boot_CheckOnPressed(void);
+
+/**
+ * Basically a reimplemented form of printf that prints to some debugging device
+ *
+ * @param string String to send to debug device
+ */
+void boot_DebugPrintf(const char *string);
+
+/**
+ * Turns off the calculator (probably not a good idea to use)
+ */
+void boot_TurnOff(void);
+
+/**
+ * Inserts a new line at the current cursor posistion on the homescreen
+ * Does not scroll.
+ */
+void boot_NewLine(void);
+
+/**
+ * @returns Current battery status
+ */
+uint8_t boot_GetBatteryStatus(void);
+
+/**
+ * Waits for ~10 ms
+ */
+void boot_WaitShort(void);
+
+/*
+ * OS Routines
+ */
+
+/**
+ * Inserts a new line at the current cursor posistion on the homescreen
+ * Does scroll.
+ */
+void os_NewLine(void);
+
+/**
+ * Disables the OS cursor
+ */
+void os_DisableCursor(void);
+
+/**
+ * Enables the OS cursor
+ */
+void os_EnableCursor(void);
+
+/**
+ * Sets the foreground color used to draw text on the graphscreen
+ * @param color 565 BGR color to set text foreground to
+ */
+void os_SetDrawFGColor(uint24_t color);
+
+/**
+ * Gets the foreground color used to draw text on the graphscreen
+ * @returns 565 BGR color of text foreground
+ */
+uint24_t os_GetDrawFGColor(void);
+
+/**
+ * Sets the background color used to draw text on the graphscreen
+ * @param color 565 BGR color to set text background to
+ */
+void os_SetDrawBGColor(uint24_t color);
+
+/**
+ * Gets the background color used to draw text on the graphscreen
+ *
+ * @returns 565 BGR color of text nackground
+ * @warning Only useable in OS 5.2 and above; use at your own risk
+ */
+uint24_t os_GetDrawBGColor(void);
+
+/**
+ * Set the cursor posistion used on the homescreen
+ *
+ * @param curRow The row aligned offset
+ * @param curCol The column aligned offset
+ */
+void os_SetCursorPos(uint8_t curRow, uint8_t curCol);
+
+/**
+ * Gets the cursor posistion used on the homescreen
+ *
+ * @param curRow Pointer to store the row aligned offset
+ * @param curCol Pointer to store the column aligned offset
+ */
+void os_GetCursorPos(unsigned int *curRow, unsigned int *curCol);
+
+/**
+ * Selects the font to use when drawing on the graphscreen
+ *
+ * @param id
+ * 0: small font <br>
+ * 1: large monospace font
+ */
+void os_FontSelect(char id);
+
+/**
+ * Gets the font to use when drawing on the graphscreen
+ *
+ * @returns
+ * 0: small font <br>
+ * 1: large monospace font
+ */
+uint24_t os_FontGetID(void);
+
+/**
+ * @param string String to get pixel width of
+ * @returns The width of a string in the variable-width format
+ */
+uint24_t os_FontGetWidth(const char *string);
+
+/**
+ * @returns The height of the font characters
+ */
+uint24_t os_FontGetHeight(void);
+
+/**
+ * Draws text using the small font to the screen
+ *
+ * @param string String to draw
+ * @param col Column to start drawing at
+ * @param row Row to start drawing at
+ * @returns The end column
+ */
+uint24_t os_FontDrawText(const char *string, uint16_t col, uint8_t row);
+
+/**
+ * Draws transparent text using the small font to the screen
+ *
+ * @param string String to draw
+ * @param col Column to start drawing at
+ * @param row Row to start drawing at
+ * @returns The end column
+ */
+uint24_t os_FontDrawTransText(const char *string, uint16_t col, uint8_t row);
+
+/**
+ * Puts some text at the current homescreen cursor location
+ *
+ * @param string Test to put on homescreen
+ * @returns 1 if string fits on screen, 0 otherwise
+ */
+uint24_t os_PutStrFull(const char *string);
+
+/**
+ * Puts some text at the current homescreen cursor location
+ *
+ * @param string Test to put on homescreen
+ * @returns 1 if string fits on line, 0 otherwise
+ */
+uint24_t os_PutStrLine(const char *string);
+
+/**
+ * Set a particular flag variable
+ *
+ * @param offset Offset to particular flag in list
+ * @param set Bitmask of flag to set
+ */
+void os_SetFlagByte(int offset, uint8_t set);
+
+/**
+ * Get a particular flag variable
+ *
+ * @param offset Offset to particular flag in list
+ * @returns Bitmask of flag
+ */
+uint8_t os_GetFlagByte(int offset);
+
+/**
+ * Get amount of free ram in order to allocate extra ram
+ *
+ * @param free Set to start of free available ram
+ * @returns Size of available ram
+ */
+size_t os_MemChk(void **free);
+
+/**
+ * Throws an OS error
+ *
+ * @param error Error code to throw
+ */
+void os_ThrowError(uint8_t error);
+
+/**
+ * Gets a pointer to the system stats
+ *
+ * @returns
+ * [3] - Hardware version <br>
+ * [12-13] - Boot Version Major <br>
+ * [14] - Boot Version Minor <br>
+ * [15-16] - Boot Version Build <br>
+ * [28-37] - Calc ID (From certificate if exists) <br>
+ * [38-39] - Appears to be localization language
+ */
+void *os_GetSystemStats(void);
+
+/**
+ * This function can return twice (like setjmp).
+ * First return always happens with a return value of 0.
+ * Second return only happens if an error occurs before os_PopErrorHandler is called,
+ * with the errNo as the return value.
+ *
+ * @code
+ * int errno = os_PushErrorHandler();
+ * if (errno) {
+ * // handle error, but no longer under the protection of the error handler so do not call os_PopErrorHandler()
+ * } else {
+ * // run some code that may error
+ * os_PopErrorHandler();
+ * }
+ * @endcode
+ *
+ * @param routine Error handling routine
+ * @see os_PopErrorHandler
+ */
+int os_PushErrorHandler(void);
+
+/**
+ * Restores stack state after a call to os_PushErrorHandler. Must be called with stack in the same state
+ * as it was when os_PushErrorHandler returned with 0, and should not be called along the error path.
+ *
+ * @see os_PushErrorHandler
+ */
+void os_PopErrorHandler(void);
+
+/**
+ * @returns A pointer to symtable of the OS
+ */
+void *os_GetSymTablePtr(void);
+
+/**
+ * Creates an AppVar
+ *
+ * @param name Pointer to name of AppVar to create
+ * @param size Size of AppVar to create
+ * @returns A pointer to the AppVar data
+ * @note Returns NULL if creation failed for some reason, otherwise a pointer to the size bytes
+ */
+var_t *os_CreateAppVar(const char *name, uint16_t size);
+
+/**
+ * Returns next entry or NULL if no more entries, pass os_GetSymTablePtr() as first entry
+ */
+void *os_NextSymEntry(void *entry, uint24_t *type, uint24_t *nameLength, char *name, void **data);
+
+/**
+ * Locates a symbol in the symtable
+ *
+ * @param type Type of symbol to find
+ * @param name Pointer to name of symbol to find
+ * @param entry Can be NULL if you don't care
+ * @param data Can be NULL if you don't care
+ * @returns If file exists, returns 1 and sets entry and data, otherwise returns 0.
+ */
+int os_ChkFindSym(uint8_t type, const char *name, void **entry, void **data);
+
+/**
+ * Gets the Ans variable
+ *
+ * @param type This is set to the current variable type in ANS
+ * @returns Pointer to the data
+ * @note Returns NULL if Ans doesn't exist or type is NULL
+ */
+void *os_RclAns(uint8_t *type);
+
+/**
+ * Copies a real_t type
+ *
+ * @param src Pointer to original real_t
+ * @returns Copied real_t
+ */
+real_t os_RealCopy(const real_t *src);
+
+/* Unary operations used to interact with the OS math functions */
+real_t os_RealAcosRad(const real_t *arg);
+real_t os_RealAsinRad(const real_t *arg);
+real_t os_RealAtanRad(const real_t *arg);
+real_t os_RealCosRad(const real_t *arg);
+real_t os_RealRadToDeg(const real_t *arg);
+real_t os_RealExp(const real_t *arg);
+real_t os_RealFloor(const real_t *arg);
+real_t os_RealFrac(const real_t *arg);
+real_t os_RealRoundInt(const real_t *arg);
+real_t os_RealLog(const real_t *arg);
+real_t os_RealNeg(const real_t *arg);
+real_t os_RealDegToRad(const real_t *arg);
+real_t os_RealInv(const real_t *arg);
+real_t os_RealSinRad(const real_t *arg);
+real_t os_RealSqrt(const real_t *arg);
+real_t os_RealTanRad(const real_t *arg);
+real_t os_RealInt(const real_t *arg);
+cplx_t os_CplxSquare(const cplx_t *arg);
+
+/* Binary operations used to interact with the OS math functions */
+real_t os_RealAdd(const real_t *arg1, const real_t *arg2);
+real_t os_RealDiv(const real_t *arg1, const real_t *arg2);
+real_t os_RealGcd(const real_t *arg1, const real_t *arg2);
+real_t os_RealLcm(const real_t *arg1, const real_t *arg2);
+real_t os_RealMax(const real_t *arg1, const real_t *arg2);
+real_t os_RealMin(const real_t *arg1, const real_t *arg2);
+real_t os_RealMul(const real_t *arg1, const real_t *arg2);
+real_t os_RealNcr(const real_t *total, const real_t *num);
+real_t os_RealNpr(const real_t *total, const real_t *num);
+real_t os_RealPow(const real_t *base, const real_t *exp);
+real_t os_RealRandInt(const real_t *min, const real_t *max);
+real_t os_RealMod(const real_t *arg1, const real_t *arg2);
+real_t os_RealSub(const real_t *arg1, const real_t *arg2);
+
+/**
+ * Rounds a real_t
+ *
+ * @note digits must be in the range 0 - 9
+ */
+real_t os_RealRound(const real_t *arg, char digits);
+
+/**
+ * Compares two real_t
+ *
+ * @returns -1, 0, or 1 depending on the comparison
+ */
+int os_RealCompare(const real_t *arg1, const real_t *arg2);
+
+/**
+ * Converts a real_t to an integer
+ * @note Saturates on overflow
+ */
+int24_t os_RealToInt24(const real_t *arg);
+
+/**
+ * Converts an integer to a real_t
+ * @note Saturates on overflow
+ */
+real_t os_Int24ToReal(int24_t arg);
+
+/**
+ * Converts a real_t to a float
+ * @note Saturates on overflow
+ */
+float os_RealToFloat(const real_t *arg);
+
+/**
+ * Converts an float to a real_t
+ * @note Saturates on overflow
+ */
+real_t os_FloatToReal(float arg);
+
+/** This converts a ti-float to a ti-ascii string.
+ *
+ * @param result Zero terminated string copied to this address
+ * @param arg Real to convert
+ * @param maxLength
+ * <=0: use default max length (14) <br>
+ * >0: max length of result, minimum of 6
+ * @param mode:
+ * 0: Use current mode for everything (digits ignored) <br>
+ * 1: Normal mode <br>
+ * 2: Sci mode <br>
+ * 3: Eng mode <br>
+ * >4: Use current Normal/Sci/Eng mode (digits still used) <br>
+ * @param digits
+ * -1: Float mode <br>
+ * 0-9: Fix # mode <br>
+ * @returns Length of result
+ */
+int os_RealToStr(char *result, const real_t *arg, int8_t maxLength, uint8_t mode, int8_t digits);
+
+/**
+ * This converts a ti-ascii string to a ti-float.
+ *
+ * String format regexp: / *[-\032+]?[0-9]*(\.[0-9]*)?([eE\033][-\032+]?[0-9]*)?/
+ * @param string TI-ascii string to convert
+ * @param end If non-null, pointer to end of parsed number is stored here
+ * @returns resulting TI-float; on exponent overflow this is +-9.9999999999999e99
+ */
+real_t os_StrToReal(const char *string, char **end);
+
+/**
+ * High 8 is unsigned offset, low 8 is bits to test
+ */
+int os_TestFlagBits(uint16_t offset_pattern);
+void os_SetFlagBits(int16_t offset_pattern);
+void os_ResetFlagBits(int16_t offset_pattern);
+
+/**
+ * Custom implementation input routine for use in conjunction with the TIOS.
+ * It is HIGHLY recommended you implement your own routine, this routine has
+ * some quirks. It is good enough for getting basic input however.
+ *
+ * @param string Input prompt string to be displayed to the user
+ * @param buf Storage location to store input string
+ * @param bufsize Available storage size for input string. -1 for null termination.
+ * @returns None
+ */
+void os_GetStringInput(char *string, char *buf, size_t bufsize);
+
+/**
+ * Gets a key from the OS
+ *
+ * @returns Key code
+ * @returns Extended key code in high byte
+ */
+uint16_t os_GetKey(void);
+
+/**
+ * Disable text buffering on the homescreen. C programs use this area by default for the BSS / Heap.
+ */
+void os_DisableHomeTextBuffer(void);
+
+/**
+ * Enables text buffering on the homescreen. C programs use this area by default for the BSS / Heap.
+ */
+void os_EnableHomeTextBuffer(void);
+
+/**
+ * @brief Scan code type
+ */
+typedef uint8_t sk_key_t;
+
+/**
+ * Performs an OS call to get the keypad scan code
+ *
+ * You can also use this function to get input from the user as a string like this:
+ * @code
+ * const char *chars = "\0\0\0\0\0\0\0\0\0\0\"WRMH\0\0?[VQLG\0\0:ZUPKFC\0 YTOJEB\0\0XSNIDA\0\0\0\0\0\0\0\0";
+ * uint8_t key, i = 0;
+ * char buffer[50];
+ *
+ * while((key = os_GetCSC()) != sk_Enter) {
+ * if(chars[key]) {
+ * buffer[i++] = chars[key];
+ * }
+ * }
+ * @endcode
+ * Feel free to modify the string to suit your needs.
+ * @returns Key scan code
+ */
+sk_key_t os_GetCSC(void);
+
+/**
+ * Runs the calulator at 6 MHz
+ */
+void boot_Set6MHzMode(void);
+
+/**
+ * Runs the calulator at 48 MHz
+ */
+void boot_Set48MHzMode(void);
+
+/**
+ * Runs the calulator at 6 MHz (saves interrupt status)
+ */
+void boot_Set6MHzModeI(void);
+
+/**
+ * Runs the calulator at 48 MHz (saves interrupt status)
+ */
+void boot_Set48MHzModeI(void);
+
+/**
+ * Executes the assembly routine _ForceCmdNoChar
+ */
+void os_ForceCmdNoChar(void);
+
+/**
+ * Use this function to call assembly functions in the OS and Bootcode
+ * i.e. _OS( asm_ArcChk );
+ */
+void _OS(void (*function)(void));
+
+/**
+ * Assembly routine to scroll homescreen up
+ */
+void asm_MoveUp(void);
+
+/**
+ * Assembly routine to scroll homescreen down
+ */
+void asm_MoveDown(void);
+
+/**
+ * Assembly routine to move row and column posistion to (0,0)
+ */
+void asm_HomeUp(void);
+
+/**
+ * Assembly routine to turn on the Run Indicator
+ */
+void asm_RunIndicOn(void);
+
+/**
+ * Assembly routine to turn off the Run Indicator
+ */
+void asm_RunIndicOff(void);
+
+/**
+ * Assembly routine to turn off APD
+ */
+void asm_DisableAPD(void);
+
+/**
+ * Assembly routine to turn on APD
+ */
+void asm_EnableAPD(void);
+
+/**
+ * Assembly routine checks the amount of free archive
+ */
+void asm_ArcChk(void);
+
+/**
+ * Assembly routine to clear the homescreen lcd
+ */
+void asm_ClrLCDFull(void);
+
+/**
+ * Assembly routine to clear the homescreen lcd.
+ * Accounts for split screen
+ */
+void asm_ClrLCD(void);
+
+/**
+ * Assembly routine to redraw the status bar
+ */
+void asm_DrawStatusBar(void);
+
+/**
+ * Invalidate and clear stat variables
+ */
+void asm_DelRes(void);
+
+/**
+ * Invalidate and clear text shadow area
+ */
+void asm_ClrTxtShd(void);
+
+/**
+ * Colors used by the OS
+ */
+typedef enum {
+ OS_COLOR_BLUE = 10,
+ OS_COLOR_RED,
+ OS_COLOR_BLACK,
+ OS_COLOR_MAGENTA,
+ OS_COLOR_GREEN,
+ OS_COLOR_ORANGE,
+ OS_COLOR_BROWN,
+ OS_COLOR_NAVY,
+ OS_COLOR_LTBLUE,
+ OS_COLOR_YELLOW,
+ OS_COLOR_WHITE,
+ OS_COLOR_LTGRAY,
+ OS_COLOR_MEDGRAY,
+ OS_COLOR_GRAY,
+ OS_COLOR_DARKGRAY
+} os_colors_t;
+
+#define os_RamStart ((uint8_t*)0xD00000)
+#define os_Flags ((uint8_t*)0xD00080)
+#define os_TextFlags (*(uint8_t*)0xD00080)
+#define os_ApdFlags (*(uint8_t*)0xD00088)
+#define os_RclFlags (*(uint8_t*)0xD0008E)
+
+#define os_AppData ((uint8_t*)0xD00429)
+
+#define os_KbdScanCode (*(uint8_t*)0xD00587)
+#define os_KbdLGSC (*(uint8_t*)0xD00588)
+#define os_KbdPSC (*(uint8_t*)0xD00589)
+#define os_KbdWUR (*(uint8_t*)0xD0058A)
+#define os_KbdDebncCnt (*(uint8_t*)0xD0058B)
+#define os_KbdKey (*(uint8_t*)0xD0058C)
+#define os_KbdGetKy (*(uint8_t*)0xD0058D)
+#define os_KeyExtend (*(uint8_t*)0xD0058E)
+#define os_Brightness (*(uint8_t*)0xD0058F)
+#define os_ApdSubTimer (*(uint8_t*)0xD00590)
+#define os_ApdTimer (*(uint8_t*)0xD00591)
+#define os_CurRow (*(uint8_t*)0xD00595)
+#define os_CurCol (*(uint8_t*)0xD00596)
+
+#define os_OP1 ((uint8_t*)0xD005F8)
+#define os_OP2 ((uint8_t*)0xD00603)
+#define os_OP3 ((uint8_t*)0xD0060E)
+#define os_OP4 ((uint8_t*)0xD00619)
+#define os_OP5 ((uint8_t*)0xD00624)
+#define os_OP6 ((uint8_t*)0xD0062F)
+#define os_OP7 ((uint8_t*)0xD0063A)
+
+#define os_ProgToEdit ((char*)0xD0065B)
+#define os_NameBuff ((char*)0xD00663)
+
+#define os_TextShadow ((uint8_t*)0xD006C0) /**< Text buffer 260 bytes */
+
+#define os_PromptRow (*(uint8_t*)0xD00800)
+#define os_PromptCol (*(uint8_t*)0xD00801)
+#define os_PromptIns (*(uint8_t*)0xD00802)
+#define os_PromptShift (*(uint8_t*)0xD00803)
+#define os_PromptRet (*(uint8_t*)0xD00804)
+#define os_PromptValid (*(uint8_t*)0xD00807)
+
+#define os_PenCol (*(uint24_t*)0xD008D2) /**< Small font column location */
+#define os_PenRow (*(uint8_t*)0xD008D5) /**< Small font row location */
+
+#define os_StatVars ((uint8_t*)0xD01191)
+#define os_AsmPrgmSize (*(uint16_t*)0xD0118C) /**< Current size of executing program */
+
+#define os_uXMin (*(real_t*)0xD01D61)
+#define os_uXMax (*(real_t*)0xD01D6A)
+#define os_uXScl (*(real_t*)0xD01D73)
+#define os_uYMin (*(real_t*)0xD01D7C)
+#define os_uYMax (*(real_t*)0xD01D85)
+#define os_uYScl (*(real_t*)0xD01D8E)
+#define os_uThetaMin (*(real_t*)0xD01D97)
+#define os_uThetaMax (*(real_t*)0xD01DA0)
+#define os_uThetaStep (*(real_t*)0xD01DA9)
+#define os_uTmin (*(real_t*)0xD01DB2)
+#define os_uTmax (*(real_t*)0xD01DBB)
+#define os_uTStep (*(real_t*)0xD01DC4)
+#define os_uPlotStart (*(real_t*)0xD01DCD)
+#define os_unMax (*(real_t*)0xD01DD6)
+#define os_uu0 (*(real_t*)0xD01DDF)
+#define os_uv0 (*(real_t*)0xD01DE8)
+#define os_unMin (*(real_t*)0xD01DF1)
+#define os_uu02 (*(real_t*)0xD01DFA)
+#define os_uv02 (*(real_t*)0xD01E03)
+#define os_uw0 (*(real_t*)0xD01E0C)
+#define os_uPlotStep (*(real_t*)0xD01E15)
+#define os_uXres (*(real_t*)0xD01E1E)
+#define os_uw02 (*(real_t*)0xD01E27)
+#define os_XMin (*(real_t*)0xD01E33)
+#define os_XMax (*(real_t*)0xD01E3C)
+#define os_XScl (*(real_t*)0xD01E45)
+#define os_YMin (*(real_t*)0xD01E4E)
+#define os_YMax (*(real_t*)0xD01E57)
+#define os_YScl (*(real_t*)0xD01E60)
+#define os_ThetaMin (*(real_t*)0xD01E69)
+#define os_ThetaMax (*(real_t*)0xD01E72)
+#define os_ThetaStep (*(real_t*)0xD01E7B)
+#define os_TMinPar (*(real_t*)0xD01E84)
+#define os_TMaxPar (*(real_t*)0xD01E8D)
+#define os_TStep (*(real_t*)0xD01E96)
+#define os_PlotStart (*(real_t*)0xD01E9F)
+#define os_NMax (*(real_t*)0xD01EA8)
+#define os_u0 (*(real_t*)0xD01EB1)
+#define os_V0 (*(real_t*)0xD01EBA)
+#define os_NMin (*(real_t*)0xD01EC3)
+#define os_u02 (*(real_t*)0xD01ECC)
+#define os_V02 (*(real_t*)0xD01ED5)
+#define os_W0 (*(real_t*)0xD01EDE)
+#define os_PlotStep (*(real_t*)0xD01EE7)
+#define os_XResO (*(real_t*)0xD01EF0)
+#define os_W02 (*(real_t*)0xD01EF9)
+#define os_un1 (*(real_t*)0xD01F02)
+#define os_un2 (*(real_t*)0xD01F0B)
+#define os_Vn1 (*(real_t*)0xD01F14)
+#define os_Vn2 (*(real_t*)0xD01F1D)
+#define os_Wn1 (*(real_t*)0xD01F26)
+#define os_Wn2 (*(real_t*)0xD01F2F)
+#define os_Fin_N (*(real_t*)0xD01F38)
+#define os_Fin_I (*(real_t*)0xD01F41)
+#define os_Fin_PV (*(real_t*)0xD01F4A)
+#define os_Fin_PMT (*(real_t*)0xD01F53)
+#define os_Fin_FV (*(real_t*)0xD01F5C)
+#define os_Fin_PY (*(real_t*)0xD01F65)
+#define os_Fin_CY (*(real_t*)0xD01F6E)
+#define os_Cal_N (*(real_t*)0xD01F77)
+#define os_Cal_I (*(real_t*)0xD01F80)
+#define os_Cal_PV (*(real_t*)0xD01F89)
+#define os_Cal_PMT (*(real_t*)0xD01F92)
+#define os_Cal_FV (*(real_t*)0xD01F9B)
+#define os_Cal_PY (*(real_t*)0xD01FA4)
+
+#define os_CmdShadow ((uint8_t*)0xD0232D)
+
+#define os_Y1LineType (*(uint8_t*)0xD024BF)
+#define os_Y2LineType (*(uint8_t*)0xD024C0)
+#define os_Y3LineType (*(uint8_t*)0xD024C1)
+#define os_Y4LineType (*(uint8_t*)0xD024C2)
+#define os_Y5LineType (*(uint8_t*)0xD024C3)
+#define os_Y6LineType (*(uint8_t*)0xD024C4)
+#define os_Y7LineType (*(uint8_t*)0xD024C5)
+#define os_Y8LineType (*(uint8_t*)0xD024C6)
+#define os_Y9LineType (*(uint8_t*)0xD024C7)
+#define os_Y0LineType (*(uint8_t*)0xD024C8)
+#define os_Para1LineType (*(uint8_t*)0xD024C9)
+#define os_Para2LineType (*(uint8_t*)0xD024CA)
+#define os_Para3LineType (*(uint8_t*)0xD024CB)
+#define os_Para4LineType (*(uint8_t*)0xD024CC)
+#define os_Para5LineType (*(uint8_t*)0xD024CD)
+#define os_Para6LineType (*(uint8_t*)0xD024CE)
+#define os_Polar1LineType (*(uint8_t*)0xD024CF)
+#define os_Polar2LineType (*(uint8_t*)0xD024D0)
+#define os_Polar3LineType (*(uint8_t*)0xD024D1)
+#define os_Polar4LineType (*(uint8_t*)0xD024D2)
+#define os_Polar5LineType (*(uint8_t*)0xD024D3)
+#define os_Polar6LineType (*(uint8_t*)0xD024D4)
+#define os_SecULineType (*(uint8_t*)0xD024D5)
+#define os_SecVLineType (*(uint8_t*)0xD024D6)
+#define os_SecWLineType (*(uint8_t*)0xD024D7)
+#define os_Y1LineColor (*(uint8_t*)0xD024D8)
+#define os_Y2LineColor (*(uint8_t*)0xD024D9)
+#define os_Y3LineColor (*(uint8_t*)0xD024DA)
+#define os_Y4LineColor (*(uint8_t*)0xD024DB)
+#define os_Y5LineColor (*(uint8_t*)0xD024DC)
+#define os_Y6LineColor (*(uint8_t*)0xD024DD)
+#define os_Y7LineColor (*(uint8_t*)0xD024DE)
+#define os_Y8LineColor (*(uint8_t*)0xD024DF)
+#define os_Y9LineColor (*(uint8_t*)0xD024E0)
+#define os_Y0LineColor (*(uint8_t*)0xD024E1)
+#define os_Para1LineColor (*(uint8_t*)0xD024E2)
+#define os_Para2LineColor (*(uint8_t*)0xD024E3)
+#define os_Para3LineColor (*(uint8_t*)0xD024E4)
+#define os_Para4LineColor (*(uint8_t*)0xD024E5)
+#define os_Para5LineColor (*(uint8_t*)0xD024E6)
+#define os_Para6LineColor (*(uint8_t*)0xD024E7)
+#define os_Polar1LineColor (*(uint8_t*)0xD024E8)
+#define os_Polar2LineColor (*(uint8_t*)0xD024E9)
+#define os_Polar3LineColor (*(uint8_t*)0xD024EA)
+#define os_Polar4LineColor (*(uint8_t*)0xD024EB)
+#define os_Polar5LineColor (*(uint8_t*)0xD024EC)
+#define os_Polar6LineColor (*(uint8_t*)0xD024ED)
+#define os_SecULineColor (*(uint8_t*)0xD024EE)
+#define os_SecVLineColor (*(uint8_t*)0xD024EF)
+#define os_SecWLineColor (*(uint8_t*)0xD024F0)
+
+#define os_AppErr1 ((char*)0xD025A9) /**< String [1] for custom error */
+#define os_AppErr2 ((char*)0xD025B6) /**< String [2] for custom error */
+
+#define os_CursorHookPtr (*(uint24_t*)0xD025D5)
+#define os_LibraryHookPtr (*(uint24_t*)0xD025D8)
+#define os_RawKeyHookPtr (*(uint24_t*)0xD025DB)
+#define os_GetKeyHookPtr (*(uint24_t*)0xD025DE)
+#define os_HomescreenHookPtr (*(uint24_t*)0xD025E1)
+#define os_WindowHookPtr (*(uint24_t*)0xD025E4)
+#define os_GraphHookPtr (*(uint24_t*)0xD025E7)
+#define os_YEqualsHookPtr (*(uint24_t*)0xD025EA)
+#define os_FontHookPtr (*(uint24_t*)0xD025ED)
+#define os_RegraphHookPtr (*(uint24_t*)0xD025F0)
+#define os_GraphicsHookPtr (*(uint24_t*)0xD025F3)
+#define os_TraceHookPtr (*(uint24_t*)0xD025F6)
+#define os_ParserHookPtr (*(uint24_t*)0xD025F9)
+#define os_AppChangeHookPtr (*(uint24_t*)0xD025FC)
+#define os_Catalog1HookPtr (*(uint24_t*)0xD025FF)
+#define os_HelpHookPtr (*(uint24_t*)0xD02602)
+#define os_CxRedispHookPtr (*(uint24_t*)0xD02605)
+#define os_MenuHookPtr (*(uint24_t*)0xD02608)
+#define os_Catalog2HookPtr (*(uint24_t*)0xD0260B)
+#define os_TokenHookPtr (*(uint24_t*)0xD0260E)
+#define os_LocalizeHookPtr (*(uint24_t*)0xD02611)
+#define os_SilentLinkHookPtr (*(uint24_t*)0xD02614)
+#define os_ActiveUSBHookPtr (*(uint24_t*)0xD0261A)
+
+#define os_TempFreeArc (*(uint24_t*)0xD02655) /**< Set after asm_ArcChk call */
+
+#define os_TextBGcolor (*(uint16_t*)0xD02688) /**< Large font background color */
+#define os_TextFGcolor (*(uint16_t*)0xD0268A) /**< Large font foreground color */
+
+#define os_DrawBGColor (*(uint16_t*)0xD026AA) /**< Small font background color */
+#define os_DrawFGColor (*(uint16_t*)0xD026AC) /**< Small font foreground color */
+#define os_DrawColorCode (*(uint8_t*)0xD026AE)
+
+#define os_BatteryStatus (*(uint8_t*)0xD02A86)
+
+#define os_GraphBGColor (*(uint16_t*)0xD02A98) /**< Graph background 565 color */
+
+#define os_FillRectColor (*(uint16_t*)0xD02AC0)
+#define os_StatusBarBGColor (*(uint16_t*)0xD02ACC) /**< Status bar 565 color */
+
+#define os_TmpYears (*(real_t*)0xD02B01)
+#define os_TmpMonths (*(real_t*)0xD02B0A)
+#define os_TmpDays (*(real_t*)0xD02B13)
+#define os_TmpHours (*(real_t*)0xD02B1C)
+#define os_TmpMinutes (*(real_t*)0xD02B25)
+
+#define os_RamCode ((uint8_t*)0xD18C7C) /**< 1023 bytes free ram */
+
+/*
+ * TI-OS Token definitions
+ */
+
+#define tToDMS 0x01
+#define tToDEC 0x02
+#define tToAbc 0x03
+#define tStore 0x04
+#define tBoxPlot 0x05
+#define tLBrack 0x06
+#define tRBrack 0x07
+#define tLBrace 0x08
+#define tRBrace 0x09
+#define tFromRad 0x0A
+#define tFromDeg 0x0B
+#define tRecip 0x0C
+#define tSqr 0x0D
+#define tTrnspos 0x0E
+#define tCube 0x0F
+#define tLParen 0x10
+#define tRParen 0x11
+#define tRound 0x12
+#define tPxTst 0x13
+#define tAug 0x14
+#define tRowSwap 0x15
+#define tRowPlu 0x16
+#define tmRow 0x17
+#define tmRowPlus 0x18
+#define tMax 0x19 // 'max'
+#define tMin 0x1A // 'min'
+#define tRToPr 0x1B // 'R>Pr'
+#define tRToPo 0x1C // 'R>Po'
+#define tPToRx 0x1D // 'P>Rx'
+#define tPToRy 0x1E // 'P>Ry'
+#define tMedian 0x1F // 'MEDIAN'
+#define tRandM 0x20 // 'randM'
+#define tMean 0x21 // 'MEAN'
+#define tRoot 0x22 // 'ROOT'
+#define tSeries 0x23 // 'seq'
+#define tFnInt 0x24 // 'fnInt'
+#define tNDeriv 0x25 // 'fnIr'
+#define tEvalF 0x26
+#define tFmin 0x27
+#define tFmax 0x28
+#define tSpace 0x29 // ' '
+#define tString 0x2A // '"'
+#define tComma 0x2B // ','
+#define tii 0x2C // 'i'
+#define tFact 0x2D // '!'
+#define tCubicR 0x2E
+#define tQuartR 0x2F
+#define t0 0x30
+#define t1 0x31
+#define t2 0x32
+#define t3 0x33
+#define t4 0x34
+#define t5 0x35
+#define t6 0x36
+#define t7 0x37
+#define t8 0x38
+#define t9 0x39
+#define tDecPt 0x3A // '.'
+#define tee 0x3B // 'e'
+#define tOr 0x3C // '_or_'
+#define tXor 0x3D
+#define tColon 0x3E // ':'
+#define tEnter 0x3F
+#define tAnd 0x40 // '_and_'
+#define tA 0x41
+#define tB 0x42
+#define tC 0x43
+#define tD 0x44
+#define tE 0x45
+#define tF 0x46
+#define tG 0x47
+#define tH 0x48
+#define tI 0x49
+#define tJ 0x4A
+#define tK 0x4B
+#define tL 0x4C
+#define tM 0x4D
+#define tN 0x4E
+#define tO 0x4F
+#define tP 0x50
+#define tQ 0x51
+#define tR 0x52
+#define tS 0x53
+#define tT 0x54
+#define tU 0x55
+#define tV 0x56
+#define tW 0x57
+#define tX 0x58
+#define tY 0x59
+#define tZ 0x5A
+#define tTheta 0x5B
+#define tProg 0x5F
+
+/*
+ * Mode settings tokens
+ */
+#define tRad 0x64 // 'Radian'
+#define tDeg 0x65 // 'Degree'
+#define tNormF 0x66 // 'Normal'
+#define tSci 0x67 // 'Sci'
+#define tEng 0x68 // 'Eng'
+#define tFloat 0x69 // 'Float'
+#define tFix 0x73 // 'Fix_'
+#define tSplitOn 0x74
+#define tFullScreen 0x75
+#define tStndrd 0x76 // 'Func'
+#define tParam 0x77 // 'Param'
+#define tPolar 0x78 // 'Pol'
+#define tSeqG 0x79 // ;79h
+#define tAFillOn 0x7A // 'AUTO FILL ON'
+#define tAFillOff 0x7B // 'AutoFill OFF'
+#define tACalcOn 0x7C
+#define tACalcOff 0x7D
+
+#define tEQ 0x6A // '='
+#define tLT 0x6B // '<'
+#define tGT 0x6C // '>'
+#define tLE 0x6D // LLE
+#define tGE 0x6E // LGE
+#define tNE 0x6F // LNE
+#define tAdd 0x70 // '+'
+#define tSub 0x71 // '-'
+#define tAns 0x72
+#define tMul 0x82 // '*'
+#define tDiv 0x83 // '/'
+
+#define tBoxIcon 0x7F
+#define tCrossIcon 0x80
+#define tDotIcon 0x81
+
+#define tTrace 0x84 // 'Trace'
+#define tClDrw 0x85 // 'ClrDraw'
+#define tZoomStd 0x86 // 'ZStd'
+#define tZoomtrg 0x87 // 'Ztrg'
+#define tZoomBox 0x88 // 'ZBOX'
+#define tZoomIn 0x89 // 'ZIn'
+#define tZoomOut 0x8A // 'ZOut'
+#define tZoomSqr 0x8B // 'ZSqr'
+#define tZoomInt 0x8C // 'ZInt'
+#define tZoomPrev 0x8D // 'ZPrev'
+#define tZoomDec 0x8E // 'ZDecm'
+#define tZoomStat 0x8F // 'ZStat
+#define tUsrZm 0x90 // 'ZRcl'
+#define tPrtScrn 0x91 // 'PrtScrn'
+#define tZoomSto 0x92 // 'ZSto'
+#define tText 0x93
+
+#define tnPr 0x94 // '_nPr_'
+#define tnCr 0x95 // '_nCr_'
+
+// Graph Commands
+#define tYOn 0x96 // 'FnOn_'
+#define tYOff 0x97 // 'FnOff_'
+#define tStPic 0x98 // 'StPic_'
+#define tRcPic 0x99 // 'RcPic_'
+#define tStoDB 0x9A // 'StGDB_'
+#define tRclDB 0x9B // 'RcGDB_'
+#define tLine 0x9C // 'Line'
+#define tVert 0x9D // 'Vert_'
+#define tPtOn 0x9E // 'PtOn'
+#define tPtOff 0x9F // 'PtOff'
+#define tPtChg 0xA0 // 'PtChg'
+#define tPXOn 0xA1
+#define tPXOff 0xA2
+#define tPXChg 0xA3
+#define tShade 0xA4 // 'Shade'
+#define tCircle 0xA5 // 'Circle'
+#define tHorz 0xA6 // 'HORIZONTAL'
+#define tTanLn 0xA7 // 'TanLn'
+#define tDrInv 0xA8 // 'DrInv_'
+#define tDrawF 0xA9 // 'DrawF_'
+
+// Functions with no argument
+#define tRand 0xAB // 'rand'
+#define tPi 0xAC // Lpi
+#define tGetKey 0xAD // 'getKy'
+#define tAPost 0xAE // '''
+#define tQuest 0xAF // '?'
+#define tChs 0xB0
+#define tInt 0xB1
+#define tAbs 0xB2
+#define tDet 0xB3
+#define tIdent 0xB4
+#define tDim 0xB5
+#define tSum 0xB6
+#define tProd 0xB7
+#define tNot 0xB8
+#define tIPart 0xB9
+#define tFPart 0xBA
+
+// New 2 Byte Tokens
+#define t2ByteTok 0xBB
+#define tSqrt 0xBC
+#define tCubRt 0xBD
+#define tLn 0xBE
+#define tExp 0xBF
+#define tLog 0xC0
+#define tALog 0xC1
+#define tSin 0xC2
+#define tASin 0xC3
+#define tCos 0xC4
+#define tACos 0xC5
+#define tTan 0xC6
+#define tATan 0xC7
+#define tSinH 0xC8
+#define tASinH 0xC9
+#define tCoshH 0xCA
+#define tACosH 0xCB
+#define tTanH 0xCC
+#define tATanH 0xCD
+
+// Some Programming Commands
+#define tIf 0xCE // 'If_'
+#define tThen 0xCF // 'Then_'
+#define tElse 0xD0 // 'Else_'
+#define tWhile 0xD1 // 'While_'
+#define tRepeat 0xD2 // 'Repeat_'
+#define tFor 0xD3 // 'For_'
+#define tEnd 0xD4 // 'End'
+#define tReturn 0xD5 // 'Return'
+#define tLbl 0xD6 // 'Lbl_'
+#define tGoto 0xD7 // 'Goto_'
+#define tPause 0xD8 // 'Pause_'
+#define tStop 0xD9 // 'Stop'
+#define tISG 0xDA // 'IS>'
+#define tDSL 0xDB // 'DS<'
+#define tInput 0xDC // 'Input_'
+#define tPrompt 0xDD // 'Prompt_'
+#define tDisp 0xDE // 'Disp_'
+#define tDispG 0xDF // 'DispG'
+#define tOutput 0xE0 // 'Outpt'
+#define tClLCD 0xE1 // 'ClLCD'
+#define tConst 0xE2 // 'Fill'
+#define tSortA 0xE3 // 'sortA_'
+#define tSortD 0xE4 // 'sortD_'
+#define tDispTab 0xE5 // 'Disp Table
+#define tMenu 0xE6 // 'Menu'
+#define tSendMBL 0xE7 // 'Send'
+#define tGetMBL 0xE8 // 'Get'
+
+// Stat Plot Commands
+#define tPlotOn 0xE9 // 'PLOTSON'
+#define tPlotOff 0xEA // 'PLOTSOFF
+#define tListName 0xEB // List Designator
+#define tPlot1 0xEC
+#define tPlot2 0xED
+#define tPlot3 0xEE
+#define tUnused01 0xEF // available?
+#define tPower 0xF0 // '^'
+#define tXRoot 0xF1 // LsupX,Lroot
+#define tOneVar 0xF2 // 'OneVar_'
+#define tTwoVar 0xF3
+#define tLR 0xF4 // 'LinR(A+BX)'
+#define tLRExp 0xF5 // 'ExpR_'
+#define tLRLn 0xF6 // 'LnR_'
+#define tLRPwr 0xF7 // 'PwrR_'
+#define tMedMed 0xF8
+#define tQuad 0xF9
+#define tClrLst 0xFA // 'Clear List'
+#define tClrTbl 0xFB // 'Clear Table'
+#define tHist 0xFC // 'Hist_'
+#define txyLine 0xFD // 'xyline_'
+#define tScatter 0xFE // 'Scatter_'
+#define tLR1 0xFF // 'LINR(AX+B)'
+
+#define tGFormat 0x7E
+// 2nd Half Of Graph Format Tokens
+#define tSeq 0x00 // 'SeqG'
+#define tSimulG 0x01 // 'SimulG'
+#define tPolarG 0x02 // 'PolarGC'
+#define tRectG 0x03 // 'RectGC'
+#define tCoordOn 0x04 // 'CoordOn'
+#define tCoordOff 0x05 // 'CoordOff'
+#define tDrawLine 0x06 // 'DrawLine'
+#define tDrawDot 0x07 // 'DrawDot'
+#define tAxisOn 0x08 // 'AxesOn'
+#define tAxisOff 0x09 // 'AxesOff'
+#define tGridOn 0x0A // 'GridOn'
+#define tGridOff 0x0B // 'GridOff'
+#define tLblOn 0x0C // 'LabelOn'
+#define tLblOff 0x0D // 'LabelOff'
+#define tWebOn 0x0E // 'WebOn'
+#define tWebOff 0x0F // 'WebOFF'
+#define tuv 0x10 // U vs V
+#define tvw 0x11 // V vs W
+#define tuw 0x12 // U vs W
+
+#define tVarMat 0x5C
+// 2nd Half Of User Matrix Tokens
+#define tMatA 0x00 // MAT A
+#define tMatB 0x01 // MAT B
+#define tMatC 0x02 // MAT C
+#define tMatD 0x03 // MAT D
+#define tMatE 0x04 // MAT E
+#define tMatF 0x05 // MAT F
+#define tMatG 0x06 // MAT G
+#define tMatH 0x07 // MAT H
+#define tMatI 0x08 // MAT I
+#define tMatJ 0x09 // MAT J
+
+#define tVarLst 0x5D
+// 2nd Half Of User List Tokens
+#define tL1 0x00 // LIST 1
+#define tL2 0x01 // LIST 2
+#define tL3 0x02 // LIST 3
+#define tL4 0x03 // LIST 4
+#define tL5 0x04 // LIST 5
+#define tL6 0x05 // LIST 6
+
+#define tVarEqu 0x5E
+// 2nd Half Of User Equation Tokens
+
+// Y Equations have bit 4 set
+#define tY1 0x10 // Y1
+#define tY2 0x11 // Y2
+#define tY3 0x12 // Y3
+#define tY4 0x13 // Y4
+#define tY5 0x14 // Y5
+#define tY6 0x15 // Y6
+#define tY7 0x16 // Y7
+#define tY8 0x17 // Y8
+#define tY9 0x18 // Y9
+#define tY0 0x19 // Y0
+
+// Param Equations Have Bit 5 Set
+#define tX1T 0x20 // X1t
+#define tY1T 0x21 // Y1t
+#define tX2T 0x22 // X2t
+#define tY2T 0x23 // Y2t
+#define tX3T 0x24 // X3t
+#define tY3T 0x25 // Y3t
+#define tX4T 0x26 // X4t
+#define tY4T 0x27 // Y4t
+#define tX5T 0x28 // X5t
+#define tY5T 0x29 // Y5t
+#define tX6T 0x2A // X6t
+#define tY6T 0x2B // Y6t
+
+// Polar Equations Have Bit 6 Set
+#define tR1 0x40 // R1
+#define tR2 0x41 // R2
+#define tR3 0x42 // R3
+#define tR4 0x43 // R4
+#define tR5 0x44 // R5
+#define tR6 0x45 // R6
+
+// Recursion Equations Have Bit 7 Set
+#define tun 0x80 // Un
+#define tvn 0x81 // Vn
+#define twn 0x82 // Wn
+
+#define tVarPict 0x60
+// 2nd Half User Picture Tokens
+#define tPic1 0x00 // PIC1
+#define tPic2 0x01 // PIC2
+#define tPic3 0x02 // PIC3
+#define tPic4 0x03 // PIC4
+#define tPic5 0x04 // PIC5
+#define tPic6 0x05 // PIC6
+#define tPic7 0x06 // PIC7
+#define tPic8 0x07 // PIC8
+#define tPic9 0x08 // PIC9
+#define tPic0 0x09 // PIC0
+
+#define tVarGDB 0x61
+// 2nd Half User Graph Database Tokens
+#define tGDB1 0x00 // GDB1
+#define tGDB2 0x01 // GDB2
+#define tGDB3 0x02 // GDB3
+#define tGDB4 0x03 // GDB4
+#define tGDB5 0x04 // GDB5
+#define tGDB6 0x05 // GDB6
+#define tGDB7 0x06 // GDB7
+#define tGDB8 0x07 // GDB8
+#define tGDB9 0x08 // GDB9
+#define tGDB0 0x09 // GDB0
+
+#define tVarStrng 0xAA
+// 2nd Half Of String Vars
+#define tStr1 0x00
+#define tStr2 0x01
+#define tStr3 0x02
+#define tStr4 0x03
+#define tStr5 0x04
+#define tStr6 0x05
+#define tStr7 0x06
+#define tStr8 0x07
+#define tStr9 0x08
+#define tStr0 0x09
+
+#define tVarOut 0x62
+// 2nd Half Of System Output Only Variables
+#define tRegEq 0x01 // REGRESSION EQUATION
+#define tStatN 0x02 // STATISTICS N
+#define tXMean 0x03 // X MEAN
+#define tSumX 0x04 // SUM(X)
+#define tSumXSqr 0x05 // SUM(X^2)
+#define tStdX 0x06 // STANDARD DEV X
+#define tStdPX 0x07 // STANDARD DEV POP X
+#define tMinX 0x08 // Min X VALUE
+#define tMaxX 0x09 // Max X VALUE
+#define tMinY 0x0A // Min Y VALUE
+#define tMaxY 0x0B // Max Y VALUE
+#define tYmean 0x0C // Y MEAN
+#define tSumY 0x0D // SUM(Y)
+#define tSumYSqr 0x0E // SUM(Y^2)
+#define tStdY 0x0F // STANDARD DEV Y
+#define tStdPY 0x10 // STANDARD DEV POP Y
+#define tSumXY 0x11 // SUM(XY)
+#define tCorr 0x12 // CORRELATION
+#define tMedX 0x13 // MED(X)
+#define tQ1 0x14 // 1ST QUADRANT OF X
+#define tQ3 0x15 // 3RD QUADRANT OF X
+#define tQuadA 0x16 // 1ST TERM OF QUAD POLY REG/ Y-INT
+#define tQuadB 0x17 // 2ND TERM OF QUAD POLY REG/ SLOPE
+#define tQuadC 0x18 // 3RD TERM OF QUAD POLY REG
+#define tCubeD 0x19 // 4TH TERM OF CUBIC POLY REG
+#define tQuartE 0x1A // 5TH TERM OF QUART POLY REG
+#define tMedX1 0x1B // x1 FOR MED-MED
+#define tMedX2 0x1C // x2 FOR MED-MED
+#define tMedX3 0x1D // x3 FOR MED-MED
+#define tMedY1 0x1E // y1 FOR MED-MED
+#define tMedY2 0x1F // y2 FOR MED-MED
+#define tMedY3 0x20 // y3 FOR MED-MED
+#define tRecurn 0x21 // RECURSION N
+#define tStatP 0x22
+#define tStatZ 0x23
+#define tStatT 0x24
+#define tStatChi 0x25
+#define tStatF 0x26
+#define tStatDF 0x27
+#define tStatPhat 0x28
+#define tStatPhat1 0x29
+#define tStatPhat2 0x2A
+#define tStatMeanX1 0x2B
+#define tStatStdX1 0x2C
+#define tStatN1 0x2D
+#define tStatMeanX2 0x2E
+#define tStatStdX2 0x2F
+#define tStatN2 0x30
+#define tStatStdXP 0x31
+#define tStatLower 0x32
+#define tStatUpper 0x33
+#define tStat_s 0x34
+#define tLRSqr 0x35
+#define tBRSqr 0x36
+
+// These next tokens are only used to access the data
+// They are display only and the user cannot access them at all
+#define tF_DF 0x37
+#define tF_SS 0x38
+#define tF_MS 0x39
+#define tE_DF 0x3A
+#define tE_SS 0x3B
+#define tE_MS 0x3C
+
+#define tVarSys 0x63
+// 2nd Half Of System Input/Output Variables
+#define tuXscl 0x00
+#define tuYscl 0x01
+#define tXscl 0x02
+#define tYscl 0x03
+#define tRecuru0 0x04
+#define tRecurv0 0x05
+#define tun1 0x06
+#define tvn1 0x07
+#define tuRecuru0 0x08
+#define tuRecurv0 0x09
+#define tXmin 0x0A
+#define tXmax 0x0B
+#define tYmin 0x0C
+#define tYmax 0x0D
+#define tTmin 0x0E
+#define tTmax 0x0F
+#define tThetaMin 0x10
+#define tThetaMax 0x11
+#define tuXmin 0x12
+#define tuXmax 0x13
+#define tuYmin 0x14
+#define tuYmax 0x15
+#define tuThetMin 0x16
+#define tuThetMax 0x17
+#define tuTmin 0x18
+#define tuTmax 0x19
+#define tTblMin 0x1A
+#define tPlotStart 0x1B
+#define tuPlotStart 0x1C
+#define tnMax 0x1D
+#define tunMax 0x1E
+#define tnMin 0x1F
+#define tunMin 0x20
+#define tTblStep 0x21
+#define tTStep 0x22
+#define tThetaStep 0x23
+#define tuTStep 0x24
+#define tuThetStep 0x25
+#define tDeltaX 0x26
+#define tDeltaY 0x27
+#define tXFact 0x28
+#define tYFact 0x29
+#define tTblInput 0x2A
+#define tFinN 0x2B
+#define tFinI 0x2C
+#define tFinPV 0x2D
+#define tFinPMT 0x2E
+#define tFinFV 0x2F
+#define tFinPY 0x30
+#define tFinCY 0x31
+#define tRecurw0 0x32
+#define tuRecurw0 0x33
+#define tPlotStep 0x34
+#define tuPlotStep 0x35
+#define tXres 0x36
+#define tuXres 0x37
+#define tRecuru02 0x38
+#define tuRecuru02 0x39
+#define tRecurv02 0x3C
+#define tuRecurv02 0x3D
+#define tRecurw02 0x3E
+#define tuRecurw02 0x3F
+
+// 2nd Byte Of t2ByteTok Tokens
+#define tFinNPV 0x00
+#define tFinIRR 0x01
+#define tFinBAL 0x02
+#define tFinPRN 0x03
+#define tFinINT 0x04
+#define tFinToNom 0x05
+#define tFinToEff 0x06
+#define tFinDBD 0x07
+#define tLCM 0x08
+#define tGCD 0x09
+#define tRandInt 0x0A
+#define tRandBin 0x0B
+#define tSubStrng 0x0C
+#define tStdDev 0x0D
+#define tVariance 0x0E
+#define tInStrng 0x0F
+#define tDNormal 0x10
+#define tInvNorm 0x11
+#define tDT 0x12
+#define tChI 0x13
+#define tDF 0x14
+#define tBINPDF 0x15
+#define tBINCDF 0x16
+#define tPOIPDF 0x17
+#define tPOICDF 0x18
+#define tGEOPDF 0x19
+#define tGEOCDF 0x1A
+#define tNormalPDF 0x1B
+#define tTPDF 0x1C
+#define tChiPDF 0x1D
+#define tFPDF 0x1E
+#define tRandNorm 0x1F
+#define tFinFPMT 0x20
+#define tFinFI 0x21
+#define tFinFPV 0x22
+#define tFinFN 0x23
+#define tFinFFV 0x24
+#define tConj 0x25
+#define tReal 0x26
+#define tImag 0x27
+#define tAngle 0x28
+#define tCumSum 0x29
+#define tExpr 0x2A
+#define tLength 0x2B
+#define tDeltaLst 0x2C
+#define tRef 0x2D
+#define tRRef 0x2E
+#define tToRect 0x2F
+#define tToPolar 0x30
+#define tConste 0x31
+#define tSinReg 0x32
+#define tLogistic 0x33
+#define tLinRegTTest 0x34
+#define tShadeNorm 0x35
+#define tShadeT 0x36
+#define tShadeChi 0x37
+#define tShadeF 0x38
+#define tMatToLst 0x39
+#define tLstToMat 0x3A
+#define tZTest 0x3B
+#define tTTest 0x3C
+#define t2SampZTest 0x3D
+#define t1PropZTest 0x3E
+#define t2PropZTest 0x3F
+#define tChiTest 0x40
+#define tZIntVal 0x41
+#define t2SampZInt 0x42
+#define t1PropZInt 0x43
+#define t2PropZInt 0x44
+#define tGraphStyle 0x45
+#define t2SampTTest 0x46
+#define t2SampFTest 0x47
+#define tTIntVal 0x48
+#define t2SampTInt 0x49
+#define tSetupLst 0x4A
+#define tFinPMTend 0x4B
+#define tFinPMTbeg 0x4C
+#define tRealM 0x4D
+#define tPolarM 0x4E
+#define tRectM 0x4F
+#define tExprOn 0x50
+#define tExprOff 0x51
+#define tClrAllLst 0x52
+#define tGetCalc 0x53
+#define tDelVar 0x54
+#define tEquToStrng 0x55
+#define tStrngToequ 0x56
+#define tDelLast 0x57
+#define tSelect 0x58
+#define tANOVA 0x59
+#define tModBox 0x5A
+#define tNormProb 0x5B
+#define tMGT 0x64
+#define tZFit 0x65
+#define tDiag_on 0x66
+#define tDiag_off 0x67
+#define tArchive 0x68
+#define tUnarchive 0x69
+#define tAsm 0x6A
+#define tAsmComp 0x6B
+#define tAsmPrgm 0x6C
+#define tAsmCmp 0x6D
+#define tLcapAAcute 0x6E
+#define tLcapAGrave 0x6F
+#define tLcapACaret 0x70
+#define tLcapADier 0x71
+#define tLaAcute 0x72
+#define tLaGrave 0x73
+#define tLaCaret 0x74
+#define tLaDier 0x75
+#define tLcapEAcute 0x76
+#define tLcapEGrave 0x77
+#define tLcapECaret 0x78
+#define tLcapEDier 0x79
+#define tLeAcute 0x7A
+#define tLeGrave 0x7B
+#define tLeCaret 0x7C
+#define tLeDier 0x7D
+#define tLcapIGrave 0x7F
+#define tLcapICaret 0x80
+#define tLcapIDier 0x81
+#define tLiAcute 0x82
+#define tLiGrave 0x83
+#define tLiCaret 0x84
+#define tLiDier 0x85
+#define tLcapOAcute 0x86
+#define tLcapOGrave 0x87
+#define tLcapOCaret 0x88
+#define tLcapODier 0x89
+#define tLoAcute 0x8A
+#define tLoGrave 0x8B
+#define tLoCaret 0x8C
+#define tLoDier 0x8D
+#define tLcapUAcute 0x8E
+#define tLcapUGrave 0x8F
+#define tLcapUCaret 0x90
+#define tLcapUDier 0x91
+#define tLuAcute 0x92
+#define tLuGrave 0x93
+#define tLuCaret 0x94
+#define tLuDier 0x95
+#define tLcapCCed 0x96
+#define tLcCed 0x97
+#define tLcapNTilde 0x98
+#define tLnTilde 0x99
+#define tLaccent 0x9A
+#define tLgrave 0x9B
+#define tLdieresis 0x9C
+#define tLquesDown 0x9D
+#define tLexclamDown 0x9E
+#define tLalpha 0x9F
+#define tLbeta 0xA0
+#define tLgamma 0xA1
+#define tLcapDelta 0xA2
+#define tLdelta 0xA3
+#define tLepsilon 0xA4
+#define tLlambda 0xA5
+#define tLmu 0xA6
+#define tLpi 0xA7
+#define tLrho 0xA8
+#define tLcapSigma 0xA9
+#define tLphi 0xAB
+#define tLcapOmega 0xAC
+#define tLphat 0xAD
+#define tLchi 0xAE
+#define tLstatF 0xAF
+#define tLa 0xB0
+#define tLb 0xB1
+#define tLc 0xB2
+#define tLd 0xB3
+#define tLsmalle 0xB4
+#define tLf 0xB5
+#define tLsmallg 0xB6
+#define tLh 0xB7
+#define tLi 0xB8
+#define tLj 0xB9
+#define tLk 0xBA
+#define tLl 0xBC
+#define tLm 0xBD
+#define tLsmalln 0xBE
+#define tLo 0xBF
+#define tLp 0xC0
+#define tLq 0xC1
+#define tLsmallr 0xC2
+#define tLs 0xC3
+#define tLsmallt 0xC4
+#define tLu 0xC5
+#define tLv 0xC6
+#define tLw 0xC7
+#define tLx 0xC8
+#define tLy 0xC9
+#define tLz 0xCA
+#define tLsigma 0xCB
+#define tLtau 0xCC
+#define tLcapIAcute 0xCD
+#define tGarbageCollect 0xCE
+
+#define tExtTok 0xEF
+// 2nd Byte Of tExtTok Tokens
+#define tSetDate 0x00
+#define tSetTime 0x01
+#define tCheckTmr 0x02
+#define tSetDtFmt 0x03
+#define tSetTmFmt 0x04
+#define tTimeCnv 0x05
+#define tDayOfWk 0x06
+#define tGetDtStr 0x07
+#define tGetTmStr 0x08
+#define tGetDate 0x09
+#define tGetTime 0x0A
+#define tStartTmr 0x0B
+#define tGtDtFmt 0x0C
+#define tGetTmFmt 0x0D
+#define tIsClockOn 0x0E
+#define tClockOff 0x0F
+#define tClockOn 0x10
+#define tOpenLib 0x11
+#define tExecLib 0x12
+#define tInvT 0x13
+#define tChiSquaredTest 0x14
+#define tLinRegTInt 0x15
+#define tManualFit 0x16
+#define tZQuadrant 0x17
+#define tZFracHalf 0x18
+#define tZFracThird 0x19
+#define tZFracFourth 0x1A
+#define tZFracFifth 0x1B
+#define tZFracEighth 0x1C
+#define tZFracTenth 0x1D
+#define tFracSlash 0x2E
+#define tFracMixedNum 0x2F
+#define tSwapImProper 0x30
+#define tSwapFracDec 0x31
+#define tRemainder 0x32
+#define tSummationSigma 0x33
+#define tLogBase 0x34
+#define tRandIntNoRep 0x35
+#define tMathPrint 0x36
+#define tClassic 0x38
+#define tAutoAnswer 0x3B
+#define tDecAnswer 0x3C
+#define tFracAnswer 0x3D
+#define tBlue 0x41
+#define tRed 0x42
+#define tBlack 0x43
+#define tMagenta 0x44
+#define tGreen 0x45
+#define tOrange 0x46
+#define tBrown 0x47
+#define tNavy 0x48
+#define tLtBlue 0x49
+#define tYellow 0x4A
+#define tWhite 0x4B
+#define tLtGray 0x4C
+#define tMedGray 0x4D
+#define tGray 0x4E
+#define tDarkGray 0x4F
+#define tGraphColor 0x65
+#define tTextColor 0x67
+#define tBackgroundOn 0x5B
+#define tBackgroundOff 0x64
+#define tThin 0x74
+#define tBorderColor 0x6C
+#define tAsm84CPrgm 0x68
+#define tAsm84CCmp 0x69
+#define tAsm84CeCmp 0x7B
+#define tAsm84CePrgm 0x7A
+
+/* 2 byte extended tokens (tExtTok) present in OS 5.2 and above */
+#define tSEQn 0x8F /* 'SEQ(n)' */
+#define tSEQn1 0x90 /* 'SEQ(n+1)' */
+#define tSEQn2 0x91 /* 'SEQ(n+2)' */
+#define tLEFT 0x92 /* 'LEFT' */
+#define tCENTER 0x93 /* 'CENTER' */
+#define tRIGHT 0x94 /* 'RIGHT' */
+#define tInvBinom 0x95 /* 'invBinom(' */
+#define tWait 0x96 /* 'Wait_' */
+#define tToString 0x97 /* 'toString(' */
+#define tEval 0x98 /* 'eval(' */
+
+/*
+ * --- TIOS System error codes ---
+ */
+#define OS_E_EDIT (1<<7)
+#define OS_E_MASK (0x7F)
+#define OS_E_OVERFLOW (1+OS_E_EDIT)
+#define OS_E_DIVBY0 (2+OS_E_EDIT)
+#define OS_E_SINGULARMAT (3+OS_E_EDIT)
+#define OS_E_DOMAIN (4+OS_E_EDIT)
+#define OS_E_INCREMENT (5+OS_E_EDIT)
+#define OS_E_BREAK (6+OS_E_EDIT)
+#define OS_E_NONREAL (7+OS_E_EDIT)
+#define OS_E_SYNTAX (8+OS_E_EDIT)
+#define OS_E_DATATYPE (9+OS_E_EDIT)
+#define OS_E_ARGUMENT (10+OS_E_EDIT)
+#define OS_E_DIMMISMATCH (11+OS_E_EDIT)
+#define OS_E_DIMENSION (12+OS_E_EDIT)
+#define OS_E_UNDEFINED (13+OS_E_EDIT)
+#define OS_E_MEMORY (14+OS_E_EDIT)
+#define OS_E_INVALID (15+OS_E_EDIT)
+#define OS_E_ILLEGALNEST (16+OS_E_EDIT)
+#define OS_E_BOUND (17+OS_E_EDIT)
+#define OS_E_GRAPHRANGE (18+OS_E_EDIT)
+#define OS_E_ZOOM (19+OS_E_EDIT)
+#define OS_E_LABEL (20)
+#define OS_E_STAT (21)
+#define OS_E_SOLVER (22+OS_E_EDIT)
+#define OS_E_SINGULARITY (23+OS_E_EDIT)
+#define OS_E_SIGNCHANGE (24+OS_E_EDIT)
+#define OS_E_ITERATIONS (25+OS_E_EDIT)
+#define OS_E_BADGUESS (26+OS_E_EDIT)
+#define OS_E_STATPLOT (27)
+#define OS_E_TOLTOOSMALL (28+OS_E_EDIT)
+#define OS_E_RESERVED (29+OS_E_EDIT)
+#define OS_E_MODE (30+OS_E_EDIT)
+#define OS_E_LNKERR (31+OS_E_EDIT)
+#define OS_E_LNKMEMERR (32+OS_E_EDIT)
+#define OS_E_LNKTRANSERR (33+OS_E_EDIT)
+#define OS_E_LNKDUPERR (34+OS_E_EDIT)
+#define OS_E_LNKMEMFULL (35+OS_E_EDIT)
+#define OS_E_UNKNOWN (36+OS_E_EDIT)
+#define OS_E_SCALE (37+OS_E_EDIT)
+#define OS_E_IDNOTFOUND (38)
+#define OS_E_NOMODE (39+OS_E_EDIT)
+#define OS_E_VALIDATION (40)
+#define OS_E_LENGTH (41+OS_E_EDIT)
+#define OS_E_APPLICATION (42+OS_E_EDIT)
+#define OS_E_APPERR1 (43+OS_E_EDIT)
+#define OS_E_APPERR2 (44+OS_E_EDIT)
+#define OS_E_EXPIREDAPP (45)
+#define OS_E_BADADD (46)
+#define OS_E_ARCHIVED (47+OS_E_EDIT)
+#define OS_E_VERSION (48)
+#define OS_E_ARCHFULL (49)
+#define OS_E_VARIABLE (50+OS_E_EDIT)
+#define OS_E_DUPLICATE (51+OS_E_EDIT)
+
+/*
+ * --- TI-OS os_GetCSC Scan Code Return Values ---
+ */
+#define sk_Down 0x01
+#define sk_Left 0x02
+#define sk_Right 0x03
+#define sk_Up 0x04
+#define sk_Enter 0x09
+#define sk_2nd 0x36
+#define sk_Clear 0x0F
+#define sk_Alpha 0x30
+#define sk_Add 0x0A
+#define sk_Sub 0x0B
+#define sk_Mul 0x0C
+#define sk_Div 0x0D
+#define sk_Graph 0x31
+#define sk_Trace 0x32
+#define sk_Zoom 0x33
+#define sk_Window 0x34
+#define sk_Yequ 0x35
+#define sk_Mode 0x37
+#define sk_Del 0x38
+#define sk_Store 0x2A
+#define sk_Ln 0x2B
+#define sk_Log 0x2C
+#define sk_Square 0x2D
+#define sk_Recip 0x2E
+#define sk_Math 0x2F
+#define sk_0 0x21
+#define sk_1 0x22
+#define sk_4 0x23
+#define sk_7 0x24
+#define sk_2 0x1A
+#define sk_5 0x1B
+#define sk_8 0x1C
+#define sk_3 0x12
+#define sk_6 0x13
+#define sk_9 0x14
+#define sk_Comma 0x25
+#define sk_Sin 0x26
+#define sk_Apps 0x27
+#define sk_GraphVar 0x28
+#define sk_DecPnt 0x19
+#define sk_LParen 0x1D
+#define sk_Cos 0x1E
+#define sk_Prgm 0x1F
+#define sk_Stat 0x20
+#define sk_Chs 0x11
+#define sk_RParen 0x15
+#define sk_Tan 0x16
+#define sk_Vars 0x17
+#define sk_Power 0x0E
+
+/* Compatibility defines */
+#define prgm_CleanUp()
+#define pgrm_CleanUp()
+#define memset_fast memset
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/include/usb.h b/frontends/calculator/CEdev/include/usb.h index 35d95d1..3bbf465 100644 --- a/frontends/calculator/CEdev/include/usb.h +++ b/frontends/calculator/CEdev/include/usb.h @@ -1,52 +1,52 @@ -/** - * @file - * @authors Matt "MateoConLechuga" Waltz - * @authors Jacob "jacobly" Young - * @brief USB communication routines - */ - -#ifndef H_USB -#define H_USB - -#include <stdint.h> -#include <stdbool.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @returns True if the usb bus line is powered, i.e. connected to a another calc - */ -bool usb_BusPowered(void); - -/** - * @returns True if the usb is self powered - */ -bool usb_SelfPowered(void); - -/** - * Resets the usb controller chip - */ -void usb_ResetChip(void); - -/** - * Disables the usb timer interrupt (timer 3) - */ -void usb_DisableTimers(void); - -/** - * Enables the usb timer interrupt (timer 3) - */ -void usb_EnableTimers(void); - -/** - * Resets the usb timer interrupt (timer 3) - */ -void usb_ResetTimers(void); - -#ifdef __cplusplus -} -#endif - -#endif +/**
+ * @file
+ * @authors Matt "MateoConLechuga" Waltz
+ * @authors Jacob "jacobly" Young
+ * @brief USB communication routines
+ */
+
+#ifndef H_USB
+#define H_USB
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @returns True if the usb bus line is powered, i.e. connected to a another calc
+ */
+bool usb_BusPowered(void);
+
+/**
+ * @returns True if the usb is self powered
+ */
+bool usb_SelfPowered(void);
+
+/**
+ * Resets the usb controller chip
+ */
+void usb_ResetChip(void);
+
+/**
+ * Disables the usb timer interrupt (timer 3)
+ */
+void usb_DisableTimers(void);
+
+/**
+ * Enables the usb timer interrupt (timer 3)
+ */
+void usb_EnableTimers(void);
+
+/**
+ * Resets the usb timer interrupt (timer 3)
+ */
+void usb_ResetTimers(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/frontends/calculator/CEdev/lib/ccleanup.src b/frontends/calculator/CEdev/lib/ccleanup.src index 6479ea0..79f8db5 100644 --- a/frontends/calculator/CEdev/lib/ccleanup.src +++ b/frontends/calculator/CEdev/lib/ccleanup.src @@ -1,14 +1,14 @@ -;------------------------------------------------------------------------------- -; Standard C Cleanup module -;------------------------------------------------------------------------------- - .def __ccleanup - - segment cleanup - .assume adl=1 - -__ccleanup: - res 4,(iy+9) ; onInterrupt,(iy+onFlags) - set 0,(iy+3) ; graphDraw,(iy+graphFlags) - call 020808h ; _ClrLCDFull - call 020828h ; _HomeUp - call 021A3Ch ; _DrawStatusBar +;-------------------------------------------------------------------------------
+; Standard C Cleanup module
+;-------------------------------------------------------------------------------
+ .def __ccleanup
+
+ segment cleanup
+ .assume adl=1
+
+__ccleanup:
+ res 4,(iy+9) ; onInterrupt,(iy+onFlags)
+ set 0,(iy+3) ; graphDraw,(iy+graphFlags)
+ call 020808h ; _ClrLCDFull
+ call 020828h ; _HomeUp
+ call 021A3Ch ; _DrawStatusBar
diff --git a/frontends/calculator/CEdev/lib/cstartup.src b/frontends/calculator/CEdev/lib/cstartup.src index 816a138..013deba 100644 --- a/frontends/calculator/CEdev/lib/cstartup.src +++ b/frontends/calculator/CEdev/lib/cstartup.src @@ -1,75 +1,75 @@ -;------------------------------------------------------------------------------- -; Standard CE startup module definitions and references -;------------------------------------------------------------------------------- - - .ref _main - .ref __low_bss - .ref __len_bss - .ref _os_DisableHomeTextBuffer - .ref _os_EnableHomeTextBuffer - - .def _errno - .def _init - .def _exit - .def __exit - .def __exitsp - .def __errsp - - .assume adl=1 - -_errno equ 0D008DCh - -;------------------------------------------------------------------------------- - segment header - db 0efh - db 07bh - db 0 ; Magic byte recognition for C programs -_init: - -;------------------------------------------------------------------------------- - segment startup - - call 0020848h ; _RunInicOff, assumes iy = flags - call 00004F4h ; _usb_DisableTimer - di ; disable interrupts - call _os_DisableHomeTextBuffer - ld hl,0E00305h - push hl ; save flash wait state control port - ld a,(hl) - push af ; save flash wait states - ld (hl),h ; set flash wait states to 3; 1 was definitely - ; too low for some calcs, 2 is untested - push iy ; save iy (flags) - ld (__exitsp+1),sp ; save sp for exiting - ld bc,__len_bss - ld hl,__low_bss - push bc - push hl - call 0000B0h ; __memclear, clear BSS - ; args will get removed from stack on exit - call _main -__exit: -__exitsp: -__errsp: - ld sp,0 - pop iy ; iy = flags - pop af ; a = original flash wait states - ex (sp),hl ; hl = flash wait state control port, - ; save exit code - ld (hl),a ; restore flash wait states - call 00004F0h ; _usb_ResetTimer - call _os_EnableHomeTextBuffer - -;------------------------------------------------------------------------------- - segment exit - - pop hl ; hl = exit code - ret - -_exit: - pop hl - pop hl - jr __exit - -;------------------------------------------------------------------------------- - segment code +;-------------------------------------------------------------------------------
+; Standard CE startup module definitions and references
+;-------------------------------------------------------------------------------
+
+ .ref _main
+ .ref __low_bss
+ .ref __len_bss
+ .ref _os_DisableHomeTextBuffer
+ .ref _os_EnableHomeTextBuffer
+
+ .def _errno
+ .def _init
+ .def _exit
+ .def __exit
+ .def __exitsp
+ .def __errsp
+
+ .assume adl=1
+
+_errno equ 0D008DCh
+
+;-------------------------------------------------------------------------------
+ segment header
+ db 0efh
+ db 07bh
+ db 0 ; Magic byte recognition for C programs
+_init:
+
+;-------------------------------------------------------------------------------
+ segment startup
+
+ call 0020848h ; _RunInicOff, assumes iy = flags
+ call 00004F4h ; _usb_DisableTimer
+ di ; disable interrupts
+ call _os_DisableHomeTextBuffer
+ ld hl,0E00305h
+ push hl ; save flash wait state control port
+ ld a,(hl)
+ push af ; save flash wait states
+ ld (hl),h ; set flash wait states to 3; 1 was definitely
+ ; too low for some calcs, 2 is untested
+ push iy ; save iy (flags)
+ ld (__exitsp+1),sp ; save sp for exiting
+ ld bc,__len_bss
+ ld hl,__low_bss
+ push bc
+ push hl
+ call 0000B0h ; __memclear, clear BSS
+ ; args will get removed from stack on exit
+ call _main
+__exit:
+__exitsp:
+__errsp:
+ ld sp,0
+ pop iy ; iy = flags
+ pop af ; a = original flash wait states
+ ex (sp),hl ; hl = flash wait state control port,
+ ; save exit code
+ ld (hl),a ; restore flash wait states
+ call 00004F0h ; _usb_ResetTimer
+ call _os_EnableHomeTextBuffer
+
+;-------------------------------------------------------------------------------
+ segment exit
+
+ pop hl ; hl = exit code
+ ret
+
+_exit:
+ pop hl
+ pop hl
+ jr __exit
+
+;-------------------------------------------------------------------------------
+ segment code
diff --git a/frontends/calculator/CEdev/lib/libheader.src b/frontends/calculator/CEdev/lib/libheader.src index bfd9183..465b96e 100644 --- a/frontends/calculator/CEdev/lib/libheader.src +++ b/frontends/calculator/CEdev/lib/libheader.src @@ -1,55 +1,55 @@ -;------------------------------------------------------------------------------- -; Libload launcher for shared libraries -;------------------------------------------------------------------------------- - .def __findlibload - - segment launcher - .assume adl=1 - -__findlibload: - call 020628h ; _pushop1 to save running program name - jr __tryfind -__inram: - call 021448h ; _arc_unarc -__tryfind: - ld hl,__libloadname-1 - call 020320h ; _mov9toop1 - ld a,015h ; appvarobj - ld (0D005F8h),a ; op1 - call 02050Ch ; _chkfindsym - jr c,__notfound - call 021F98h ; _chkinram - jr z,__inram ; if in ram, archive LibLoad and search again - ld hl,9+1+__libloadnamelen+2 - add hl,de - push hl - call 0205C4h ; _popop1 to restore running program name - pop hl ; start of loader (required to be in hl) - ld de,__relocationstart ; start of relocation data - jp (hl) ; jump to the loader -- it should take care of everything else -__notfound: - call 0205C4h ; _popop1 to restore running program name - call 020814h ; _clrscrn - call 020828h ; _homeup - ld hl,__missingappvar - call 0207C0h ; _puts - call 0207F0h ; _newline - ld hl,__webaddress - call 0207C0h ; _puts - jp 020D8Ch ; _getkey - - segment libs -__relocationstart: ; relocation data will be placed here - ;... - ;... - ;... - - segment data -__missingappvar: - db "Need " -__libloadname: - db "LibLoad" -__libloadnamelen := $-__libloadname - db 0 -__webaddress: - db "http://tiny.cc/clibs",0 +;-------------------------------------------------------------------------------
+; Libload launcher for shared libraries
+;-------------------------------------------------------------------------------
+ .def __findlibload
+
+ segment launcher
+ .assume adl=1
+
+__findlibload:
+ call 020628h ; _pushop1 to save running program name
+ jr __tryfind
+__inram:
+ call 021448h ; _arc_unarc
+__tryfind:
+ ld hl,__libloadname-1
+ call 020320h ; _mov9toop1
+ ld a,015h ; appvarobj
+ ld (0D005F8h),a ; op1
+ call 02050Ch ; _chkfindsym
+ jr c,__notfound
+ call 021F98h ; _chkinram
+ jr z,__inram ; if in ram, archive LibLoad and search again
+ ld hl,9+1+__libloadnamelen+2
+ add hl,de
+ push hl
+ call 0205C4h ; _popop1 to restore running program name
+ pop hl ; start of loader (required to be in hl)
+ ld de,__relocationstart ; start of relocation data
+ jp (hl) ; jump to the loader -- it should take care of everything else
+__notfound:
+ call 0205C4h ; _popop1 to restore running program name
+ call 020814h ; _clrscrn
+ call 020828h ; _homeup
+ ld hl,__missingappvar
+ call 0207C0h ; _puts
+ call 0207F0h ; _newline
+ ld hl,__webaddress
+ call 0207C0h ; _puts
+ jp 020D8Ch ; _getkey
+
+ segment libs
+__relocationstart: ; relocation data will be placed here
+ ;...
+ ;...
+ ;...
+
+ segment data
+__missingappvar:
+ db "Need "
+__libloadname:
+ db "LibLoad"
+__libloadnamelen := $-__libloadname
+ db 0
+__webaddress:
+ db "http://tiny.cc/clibs",0
diff --git a/frontends/calculator/CEdev/lib/libload.lib b/frontends/calculator/CEdev/lib/libload.lib index 16549cd..5e9ee20 100644 --- a/frontends/calculator/CEdev/lib/libload.lib +++ b/frontends/calculator/CEdev/lib/libload.lib @@ -1 +1 @@ -library "LibLoad", 30 +library "LibLoad", 30
diff --git a/frontends/calculator/CEdev/lib/libload/fileioc.lib b/frontends/calculator/CEdev/lib/libload/fileioc.lib index 73b0a24..910dbef 100644 --- a/frontends/calculator/CEdev/lib/libload/fileioc.lib +++ b/frontends/calculator/CEdev/lib/libload/fileioc.lib @@ -1,35 +1,35 @@ -library "FILEIOC", 4 - export ti_CloseAll ; 2 - export ti_Open ; 4 - export ti_OpenVar ; 6 - export ti_Close ; 8 - export ti_Write ; 10 - export ti_Read ; 12 - export ti_GetC ; 14 - export ti_PutC ; 16 - export ti_Delete ; 18 - export ti_DeleteVar ; 20 - export ti_Seek ; 22 - export ti_Resize ; 24 - export ti_IsArchived ; 26 - export ti_SetArchiveStatus ; 28 - export ti_Tell ; 30 - export ti_Rewind ; 32 - export ti_GetSize ; 34 - export ti_GetTokenString ; 36 - export ti_GetDataPtr ; 38 - export ti_Detect ; 40 - export ti_DetectVar ; 42 - export ti_SetVar ; 44 - export ti_StoVar ; 46 - export ti_RclVar ; 48 - export ti_AllocString ; 50 - export ti_AllocList ; 52 - export ti_AllocMatrix ; 54 - export ti_AllocCplxList ; 56 - export ti_AllocEqu ; 58 - export ti_DetectAny ; 60 - export ti_GetVATPtr ; 62 - export ti_GetName ; 64 - export ti_Rename ; 66 - export ti_RenameVar ; 68 +library "FILEIOC", 4
+ export ti_CloseAll ; 2
+ export ti_Open ; 4
+ export ti_OpenVar ; 6
+ export ti_Close ; 8
+ export ti_Write ; 10
+ export ti_Read ; 12
+ export ti_GetC ; 14
+ export ti_PutC ; 16
+ export ti_Delete ; 18
+ export ti_DeleteVar ; 20
+ export ti_Seek ; 22
+ export ti_Resize ; 24
+ export ti_IsArchived ; 26
+ export ti_SetArchiveStatus ; 28
+ export ti_Tell ; 30
+ export ti_Rewind ; 32
+ export ti_GetSize ; 34
+ export ti_GetTokenString ; 36
+ export ti_GetDataPtr ; 38
+ export ti_Detect ; 40
+ export ti_DetectVar ; 42
+ export ti_SetVar ; 44
+ export ti_StoVar ; 46
+ export ti_RclVar ; 48
+ export ti_AllocString ; 50
+ export ti_AllocList ; 52
+ export ti_AllocMatrix ; 54
+ export ti_AllocCplxList ; 56
+ export ti_AllocEqu ; 58
+ export ti_DetectAny ; 60
+ export ti_GetVATPtr ; 62
+ export ti_GetName ; 64
+ export ti_Rename ; 66
+ export ti_RenameVar ; 68
diff --git a/frontends/calculator/CEdev/lib/libload/graphx.lib b/frontends/calculator/CEdev/lib/libload/graphx.lib index 58aafe8..8822316 100644 --- a/frontends/calculator/CEdev/lib/libload/graphx.lib +++ b/frontends/calculator/CEdev/lib/libload/graphx.lib @@ -1,95 +1,95 @@ -library "GRAPHX", 10 - export gfx_Begin ; 2 - export gfx_End ; 4 - export gfx_SetColor ; 6 - export gfx_SetDefaultPalette ; 8 - export gfx_SetPalette ; 10 - export gfx_FillScreen ; 12 - export gfx_SetPixel ; 14 - export gfx_GetPixel ; 16 - export gfx_GetDraw ; 18 - export gfx_SetDraw ; 20 - export gfx_SwapDraw ; 22 - export gfx_Blit ; 24 - export gfx_BlitLines ; 26 - export gfx_BlitRectangle ; 28 - export gfx_PrintChar ; 30 - export gfx_PrintInt ; 32 - export gfx_PrintUInt ; 34 - export gfx_PrintString ; 36 - export gfx_PrintStringXY ; 38 - export gfx_SetTextXY ; 40 - export gfx_SetTextBGColor ; 42 - export gfx_SetTextFGColor ; 44 - export gfx_SetTextTransparentColor ; 46 - export gfx_SetFontData ; 48 - export gfx_SetFontSpacing ; 50 - export gfx_SetMonospaceFont ; 52 - export gfx_GetStringWidth ; 54 - export gfx_GetCharWidth ; 56 - export gfx_GetTextX ; 58 - export gfx_GetTextY ; 60 - export gfx_Line ; 62 - export gfx_HorizLine ; 64 - export gfx_VertLine ; 66 - export gfx_Circle ; 68 - export gfx_FillCircle ; 70 - export gfx_Rectangle ; 72 - export gfx_FillRectangle ; 74 - export gfx_Line_NoClip ; 76 - export gfx_HorizLine_NoClip ; 78 - export gfx_VertLine_NoClip ; 80 - export gfx_FillCircle_NoClip ; 82 - export gfx_Rectangle_NoClip ; 84 - export gfx_FillRectangle_NoClip ; 86 - export gfx_SetClipRegion ; 88 - export gfx_GetClipRegion ; 90 - export gfx_ShiftDown ; 92 - export gfx_ShiftUp ; 94 - export gfx_ShiftLeft ; 96 - export gfx_ShiftRight ; 98 - export gfx_Tilemap ; 100 - export gfx_Tilemap_NoClip ; 102 - export gfx_TransparentTilemap ; 104 - export gfx_TransparentTilemap_NoClip ; 106 - export gfx_TilePtr ; 108 - export gfx_TilePtrMapped ; 110 - export gfx_Reserved ; 112 - export gfx_AllocSprite ; 114 - export gfx_Sprite ; 116 - export gfx_TransparentSprite ; 118 - export gfx_Sprite_NoClip ; 120 - export gfx_TransparentSprite_NoClip ; 122 - export gfx_GetSprite ; 124 - export gfx_ScaledSprite_NoClip ; 126 - export gfx_ScaledTransparentSprite_NoClip ; 128 - export gfx_FlipSpriteY ; 130 - export gfx_FlipSpriteX ; 132 - export gfx_RotateSpriteC ; 134 - export gfx_RotateSpriteCC ; 136 - export gfx_RotateSpriteHalf ; 138 - export gfx_Polygon ; 140 - export gfx_Polygon_NoClip ; 142 - export gfx_FillTriangle ; 144 - export gfx_FillTriangle_NoClip ; 146 - export gfx_Deprecated ; 148 - export gfx_SetTextScale ; 150 - export gfx_SetTransparentColor ; 152 - export gfx_ZeroScreen ; 154 - export gfx_SetTextConfig ; 156 - export gfx_GetSpriteChar ; 158 - export gfx_Lighten ; 160 - export gfx_Darken ; 162 - export gfx_SetFontHeight ; 164 - export gfx_ScaleSprite ; 166 - export gfx_FloodFill ; 168 - export gfx_RLETSprite ; 170 - export gfx_RLETSprite_NoClip ; 172 - export gfx_ConvertFromRLETSprite ; 174 - export gfx_ConvertToRLETSprite ; 176 - export gfx_ConvertToNewRLETSprite ; 178 - export gfx_RotateScaleSprite ; 180 - export gfx_RotatedScaledTransparentSprite_NoClip ; 182 - export gfx_RotatedScaledSprite_NoClip ; 184 - export gfx_SetCharData ; 186 - export gfx_Wait ; 188 +library "GRAPHX", 10
+ export gfx_Begin ; 2
+ export gfx_End ; 4
+ export gfx_SetColor ; 6
+ export gfx_SetDefaultPalette ; 8
+ export gfx_SetPalette ; 10
+ export gfx_FillScreen ; 12
+ export gfx_SetPixel ; 14
+ export gfx_GetPixel ; 16
+ export gfx_GetDraw ; 18
+ export gfx_SetDraw ; 20
+ export gfx_SwapDraw ; 22
+ export gfx_Blit ; 24
+ export gfx_BlitLines ; 26
+ export gfx_BlitRectangle ; 28
+ export gfx_PrintChar ; 30
+ export gfx_PrintInt ; 32
+ export gfx_PrintUInt ; 34
+ export gfx_PrintString ; 36
+ export gfx_PrintStringXY ; 38
+ export gfx_SetTextXY ; 40
+ export gfx_SetTextBGColor ; 42
+ export gfx_SetTextFGColor ; 44
+ export gfx_SetTextTransparentColor ; 46
+ export gfx_SetFontData ; 48
+ export gfx_SetFontSpacing ; 50
+ export gfx_SetMonospaceFont ; 52
+ export gfx_GetStringWidth ; 54
+ export gfx_GetCharWidth ; 56
+ export gfx_GetTextX ; 58
+ export gfx_GetTextY ; 60
+ export gfx_Line ; 62
+ export gfx_HorizLine ; 64
+ export gfx_VertLine ; 66
+ export gfx_Circle ; 68
+ export gfx_FillCircle ; 70
+ export gfx_Rectangle ; 72
+ export gfx_FillRectangle ; 74
+ export gfx_Line_NoClip ; 76
+ export gfx_HorizLine_NoClip ; 78
+ export gfx_VertLine_NoClip ; 80
+ export gfx_FillCircle_NoClip ; 82
+ export gfx_Rectangle_NoClip ; 84
+ export gfx_FillRectangle_NoClip ; 86
+ export gfx_SetClipRegion ; 88
+ export gfx_GetClipRegion ; 90
+ export gfx_ShiftDown ; 92
+ export gfx_ShiftUp ; 94
+ export gfx_ShiftLeft ; 96
+ export gfx_ShiftRight ; 98
+ export gfx_Tilemap ; 100
+ export gfx_Tilemap_NoClip ; 102
+ export gfx_TransparentTilemap ; 104
+ export gfx_TransparentTilemap_NoClip ; 106
+ export gfx_TilePtr ; 108
+ export gfx_TilePtrMapped ; 110
+ export gfx_Reserved ; 112
+ export gfx_AllocSprite ; 114
+ export gfx_Sprite ; 116
+ export gfx_TransparentSprite ; 118
+ export gfx_Sprite_NoClip ; 120
+ export gfx_TransparentSprite_NoClip ; 122
+ export gfx_GetSprite ; 124
+ export gfx_ScaledSprite_NoClip ; 126
+ export gfx_ScaledTransparentSprite_NoClip ; 128
+ export gfx_FlipSpriteY ; 130
+ export gfx_FlipSpriteX ; 132
+ export gfx_RotateSpriteC ; 134
+ export gfx_RotateSpriteCC ; 136
+ export gfx_RotateSpriteHalf ; 138
+ export gfx_Polygon ; 140
+ export gfx_Polygon_NoClip ; 142
+ export gfx_FillTriangle ; 144
+ export gfx_FillTriangle_NoClip ; 146
+ export gfx_Deprecated ; 148
+ export gfx_SetTextScale ; 150
+ export gfx_SetTransparentColor ; 152
+ export gfx_ZeroScreen ; 154
+ export gfx_SetTextConfig ; 156
+ export gfx_GetSpriteChar ; 158
+ export gfx_Lighten ; 160
+ export gfx_Darken ; 162
+ export gfx_SetFontHeight ; 164
+ export gfx_ScaleSprite ; 166
+ export gfx_FloodFill ; 168
+ export gfx_RLETSprite ; 170
+ export gfx_RLETSprite_NoClip ; 172
+ export gfx_ConvertFromRLETSprite ; 174
+ export gfx_ConvertToRLETSprite ; 176
+ export gfx_ConvertToNewRLETSprite ; 178
+ export gfx_RotateScaleSprite ; 180
+ export gfx_RotatedScaledTransparentSprite_NoClip ; 182
+ export gfx_RotatedScaledSprite_NoClip ; 184
+ export gfx_SetCharData ; 186
+ export gfx_Wait ; 188
diff --git a/frontends/calculator/CEdev/lib/libload/keypadc.lib b/frontends/calculator/CEdev/lib/libload/keypadc.lib index 89bc3ba..0f6eb9f 100644 --- a/frontends/calculator/CEdev/lib/libload/keypadc.lib +++ b/frontends/calculator/CEdev/lib/libload/keypadc.lib @@ -1,5 +1,5 @@ -library "KEYPADC", 2 - export kb_Scan ; 2 - export kb_ScanGroup ; 4 - export kb_AnyKey ; 6 - export kb_Reset ; 8 +library "KEYPADC", 2
+ export kb_Scan ; 2
+ export kb_ScanGroup ; 4
+ export kb_AnyKey ; 6
+ export kb_Reset ; 8
diff --git a/frontends/calculator/CEdev/lib/shared/abort.src b/frontends/calculator/CEdev/lib/shared/abort.src index b2d9648..cbab8af 100644 --- a/frontends/calculator/CEdev/lib/shared/abort.src +++ b/frontends/calculator/CEdev/lib/shared/abort.src @@ -1,13 +1,13 @@ -; --- -; triggers open debugger -; --- - - .def _abort - .ref __exit - .assume adl=1 - -_abort: - scf - sbc hl,hl - ld (hl),1 - jp __exit +; ---
+; triggers open debugger
+; ---
+
+ .def _abort
+ .ref __exit
+ .assume adl=1
+
+_abort:
+ scf
+ sbc hl,hl
+ ld (hl),1
+ jp __exit
diff --git a/frontends/calculator/CEdev/lib/shared/abs.src b/frontends/calculator/CEdev/lib/shared/abs.src index 5dc8aa1..65aa2b6 100644 --- a/frontends/calculator/CEdev/lib/shared/abs.src +++ b/frontends/calculator/CEdev/lib/shared/abs.src @@ -1,17 +1,17 @@ - .def _abs - .assume adl=1 - -;int abs(int); - -_abs: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - sbc hl,de - ret p - ex de,hl - ret - + .def _abs
+ .assume adl=1
+
+;int abs(int);
+
+_abs:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ sbc hl,de
+ ret p
+ ex de,hl
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/atoi.src b/frontends/calculator/CEdev/lib/shared/atoi.src index 2619388..86bc88e 100644 --- a/frontends/calculator/CEdev/lib/shared/atoi.src +++ b/frontends/calculator/CEdev/lib/shared/atoi.src @@ -1,22 +1,22 @@ - .ref _strtol - .def _atoi - .assume adl=1 - -; int atoi(char *cp); - -_atoi: - pop bc - pop de - push de - push bc - ld bc,10 - push bc - ld c,b - push bc - push de - call _strtol - pop de - pop bc - pop bc - ret - + .ref _strtol
+ .def _atoi
+ .assume adl=1
+
+; int atoi(char *cp);
+
+_atoi:
+ pop bc
+ pop de
+ push de
+ push bc
+ ld bc,10
+ push bc
+ ld c,b
+ push bc
+ push de
+ call _strtol
+ pop de
+ pop bc
+ pop bc
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/atol.src b/frontends/calculator/CEdev/lib/shared/atol.src index 7bf22d7..b241ad7 100644 --- a/frontends/calculator/CEdev/lib/shared/atol.src +++ b/frontends/calculator/CEdev/lib/shared/atol.src @@ -1,8 +1,8 @@ - .ref _atoi - .def _atol - .assume adl=1 - -; long atol(char *cp); - -_atol equ _atoi - + .ref _atoi
+ .def _atol
+ .assume adl=1
+
+; long atol(char *cp);
+
+_atol equ _atoi
+
diff --git a/frontends/calculator/CEdev/lib/shared/atomic_load_32.src b/frontends/calculator/CEdev/lib/shared/atomic_load_32.src index a49df22..d0bb9fa 100644 --- a/frontends/calculator/CEdev/lib/shared/atomic_load_32.src +++ b/frontends/calculator/CEdev/lib/shared/atomic_load_32.src @@ -1,61 +1,61 @@ -; --- -; uint32_t atomic_load_32(volatile uint32_t *p) -; --- - - .def _atomic_load_32 - .assume adl=1 - -_atomic_load_32: - pop hl - ex (sp),iy - push hl - ld c,0 -retry: -; Wait for a different (increasing) amount of time before each retry to prevent -; getting caught in an endless loop of the value changing between reads with a -; fixed period equal to the amount of time it takes for each retry - inc c - ld b,c -wait: - djnz wait -; Read the value twice. - lea hl,iy+3 - ; Time between first and last byte read: - ld de,(iy) ; 2R - ld a,(hl) ; + 1F+1R - cp a,(hl) ; + 1F+1R - ld hl,(iy) ; + 3F+3R - ; = 5F+7R - ; = 48cc (assuming F = R = 3) - ; = 1us (assuming 48MHz clock speed) - ; Don't need to worry about DMA, just - ; retry until not interrupted by DMA -; Retry if the values read differ. -; -; If the values differ, then the underlying value changed between reading the -; first byte of the first 32-bit read and the last byte of the second 32-bit -; read: -; * If a change occurs between the two 32-bit reads, then both values read -; remain valid. -; * If a change occurs in the middle of one of the 32-bit reads: -; * If the bytes already read change but the bytes yet to read do not -; change, then the value read is the valid value before the change. -; * If the bytes already read do not change but the yet still to read -; change, then the value read is the valid value after the change. -; * If the bytes already read and the bytes yet to read change, then the -; value read is an invalid mix of the values before and after the change. -; -; Without reading the value again, there is not enough information to determine -; if the third case occurred. If it did occur, then one of the values is -; invalid. But there is also not enough information to determine which is -; invalid, and therefore which is valid. So reading the value must be retried. -; -; (Furthermore, if a change occurs in the middle of both 32-bit reads and the -; bytes already read change in both, then both values read become invalid.) - jr nz,retry - sbc hl,de - jr nz,retry -; Values don't differ, good to go. - add hl,de - ld e,a ; euhl = value read - ret +; ---
+; uint32_t atomic_load_32(volatile uint32_t *p)
+; ---
+
+ .def _atomic_load_32
+ .assume adl=1
+
+_atomic_load_32:
+ pop hl
+ ex (sp),iy
+ push hl
+ ld c,0
+retry:
+; Wait for a different (increasing) amount of time before each retry to prevent
+; getting caught in an endless loop of the value changing between reads with a
+; fixed period equal to the amount of time it takes for each retry
+ inc c
+ ld b,c
+wait:
+ djnz wait
+; Read the value twice.
+ lea hl,iy+3
+ ; Time between first and last byte read:
+ ld de,(iy) ; 2R
+ ld a,(hl) ; + 1F+1R
+ cp a,(hl) ; + 1F+1R
+ ld hl,(iy) ; + 3F+3R
+ ; = 5F+7R
+ ; = 48cc (assuming F = R = 3)
+ ; = 1us (assuming 48MHz clock speed)
+ ; Don't need to worry about DMA, just
+ ; retry until not interrupted by DMA
+; Retry if the values read differ.
+;
+; If the values differ, then the underlying value changed between reading the
+; first byte of the first 32-bit read and the last byte of the second 32-bit
+; read:
+; * If a change occurs between the two 32-bit reads, then both values read
+; remain valid.
+; * If a change occurs in the middle of one of the 32-bit reads:
+; * If the bytes already read change but the bytes yet to read do not
+; change, then the value read is the valid value before the change.
+; * If the bytes already read do not change but the yet still to read
+; change, then the value read is the valid value after the change.
+; * If the bytes already read and the bytes yet to read change, then the
+; value read is an invalid mix of the values before and after the change.
+;
+; Without reading the value again, there is not enough information to determine
+; if the third case occurred. If it did occur, then one of the values is
+; invalid. But there is also not enough information to determine which is
+; invalid, and therefore which is valid. So reading the value must be retried.
+;
+; (Furthermore, if a change occurs in the middle of both 32-bit reads and the
+; bytes already read change in both, then both values read become invalid.)
+ jr nz,retry
+ sbc hl,de
+ jr nz,retry
+; Values don't differ, good to go.
+ add hl,de
+ ld e,a ; euhl = value read
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/atomic_load_decreasing_32.src b/frontends/calculator/CEdev/lib/shared/atomic_load_decreasing_32.src index 639eac1..555e93e 100644 --- a/frontends/calculator/CEdev/lib/shared/atomic_load_decreasing_32.src +++ b/frontends/calculator/CEdev/lib/shared/atomic_load_decreasing_32.src @@ -1,89 +1,89 @@ -; --- -; uint32_t atomic_load_decreasing_32(volatile uint32_t *p) -; --- - - .def _atomic_load_decreasing_32 - .assume adl=1 - -_atomic_load_decreasing_32: - pop hl - ex (sp),iy - push hl -; Temporarily disable interrupts. - ld a,i - di -; Read the value twice. -; first value read = cude, second value read = auhl - ; Time between first and last byte read: - ld de,(iy) ; 2R - ld c,(iy+3) ; + 3F+1R - ld hl,(iy) ; + 3F+3R - ld a,(iy+3) ; + 3F+1R - ; = 9F+7R - ; = 56cc (assuming F = R = 3) - ; ~ 1.17us (assuming 48MHz clock speed) - ; + approximate worst-case LCD + USB DMA - ; ~ 5us -; Re-enable interrupts if they were previously enabled. - jp po,no_ei - ei -no_ei: -; Compare and return the greater of the two values read. -; -; If the values differ, then the underlying value changed between reading the -; first byte of the first 32-bit read and the last byte of the second 32-bit -; read: -; * If a change occurs between the two 32-bit reads, then both values read -; remain valid. -; * If a change occurs in the middle of one of the 32-bit reads: -; * If the bytes already read change but the bytes yet to read do not -; change, then the value read is the valid value before the change. -; * If the bytes already read do not change but the yet still to read -; change, then the value read is the valid value after the change. -; * If the bytes already read and the bytes yet to read change, then the -; value read is an invalid mix of the values before and after the change. -; -; If the final case did not occur, then both values read are valid. -; -; If the final case occurred for only the second value read, then due to reading -; bytes in little-endian order, one to three upper bytes will reflect the -; decreased value after the change. Regardless of the lower bytes, the valid, -; first value read will be greater than the invalid, second value read. -; -; If the final case occurred for only the first value read, then due to reading -; bytes in little-endian order, one to three upper bytes will reflect the -; decreased value after the change, while the remaining one to three lower bytes -; will reflect the value before the change. If it is assumed that the value -; decreased by less than 256, then the upper bytes must have decreased through -; borrow and the lower bytes of the valid, second value read will be greater -; than the lower bytes of the invalid, first value read. And because the full -; second value read will reflect the the decreased value after the change, and -; therefore the two values read will only differ in the lower bytes, it follows -; that the full, valid, second valid read will be greater than the full, -; invalid, first value read. (Note that this assertion can be extended to -; include 256 because only one byte would change, making this whole case -; unreachable.) -; -; If the third case occurred for both values read, then both are invalid. There -; is no reasonable way to detect this, so it is assumed that this did not occur. -; -; Combining all of these cases and assumptions, the greater of the two values -; read will always be valid. - or a,a - sbc hl,de - sbc a,c ; auhl = second value read - ; - first value read - jr c,swap -; second value read >= first value read -; ==> second value read is valid - add hl,de - adc a,c - ld e,a ; euhl = second value read - ret - -swap: -; second value read < first value read -; ==> first value read is valid - ex de,hl - ld e,c ; euhl = first value read - ret +; ---
+; uint32_t atomic_load_decreasing_32(volatile uint32_t *p)
+; ---
+
+ .def _atomic_load_decreasing_32
+ .assume adl=1
+
+_atomic_load_decreasing_32:
+ pop hl
+ ex (sp),iy
+ push hl
+; Temporarily disable interrupts.
+ ld a,i
+ di
+; Read the value twice.
+; first value read = cude, second value read = auhl
+ ; Time between first and last byte read:
+ ld de,(iy) ; 2R
+ ld c,(iy+3) ; + 3F+1R
+ ld hl,(iy) ; + 3F+3R
+ ld a,(iy+3) ; + 3F+1R
+ ; = 9F+7R
+ ; = 56cc (assuming F = R = 3)
+ ; ~ 1.17us (assuming 48MHz clock speed)
+ ; + approximate worst-case LCD + USB DMA
+ ; ~ 5us
+; Re-enable interrupts if they were previously enabled.
+ jp po,no_ei
+ ei
+no_ei:
+; Compare and return the greater of the two values read.
+;
+; If the values differ, then the underlying value changed between reading the
+; first byte of the first 32-bit read and the last byte of the second 32-bit
+; read:
+; * If a change occurs between the two 32-bit reads, then both values read
+; remain valid.
+; * If a change occurs in the middle of one of the 32-bit reads:
+; * If the bytes already read change but the bytes yet to read do not
+; change, then the value read is the valid value before the change.
+; * If the bytes already read do not change but the yet still to read
+; change, then the value read is the valid value after the change.
+; * If the bytes already read and the bytes yet to read change, then the
+; value read is an invalid mix of the values before and after the change.
+;
+; If the final case did not occur, then both values read are valid.
+;
+; If the final case occurred for only the second value read, then due to reading
+; bytes in little-endian order, one to three upper bytes will reflect the
+; decreased value after the change. Regardless of the lower bytes, the valid,
+; first value read will be greater than the invalid, second value read.
+;
+; If the final case occurred for only the first value read, then due to reading
+; bytes in little-endian order, one to three upper bytes will reflect the
+; decreased value after the change, while the remaining one to three lower bytes
+; will reflect the value before the change. If it is assumed that the value
+; decreased by less than 256, then the upper bytes must have decreased through
+; borrow and the lower bytes of the valid, second value read will be greater
+; than the lower bytes of the invalid, first value read. And because the full
+; second value read will reflect the the decreased value after the change, and
+; therefore the two values read will only differ in the lower bytes, it follows
+; that the full, valid, second valid read will be greater than the full,
+; invalid, first value read. (Note that this assertion can be extended to
+; include 256 because only one byte would change, making this whole case
+; unreachable.)
+;
+; If the third case occurred for both values read, then both are invalid. There
+; is no reasonable way to detect this, so it is assumed that this did not occur.
+;
+; Combining all of these cases and assumptions, the greater of the two values
+; read will always be valid.
+ or a,a
+ sbc hl,de
+ sbc a,c ; auhl = second value read
+ ; - first value read
+ jr c,swap
+; second value read >= first value read
+; ==> second value read is valid
+ add hl,de
+ adc a,c
+ ld e,a ; euhl = second value read
+ ret
+
+swap:
+; second value read < first value read
+; ==> first value read is valid
+ ex de,hl
+ ld e,c ; euhl = first value read
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/atomic_load_increasing_32.src b/frontends/calculator/CEdev/lib/shared/atomic_load_increasing_32.src index d8c871f..1ef6f8f 100644 --- a/frontends/calculator/CEdev/lib/shared/atomic_load_increasing_32.src +++ b/frontends/calculator/CEdev/lib/shared/atomic_load_increasing_32.src @@ -1,88 +1,88 @@ -; --- -; uint32_t atomic_load_increasing_32(volatile uint32_t *p) -; --- - - .def _atomic_load_increasing_32 - .assume adl=1 - -_atomic_load_increasing_32: - pop hl - ex (sp),iy - push hl -; Temporarily disable interrupts. - ld a,i - di -; Read the value twice. -; first value read = cude, second value read = auhl - ; Time between first and last byte read: - ld de,(iy) ; 2R - ld c,(iy+3) ; + 3F+1R - ld hl,(iy) ; + 3F+3R - ld a,(iy+3) ; + 3F+1R - ; = 9F+7R - ; = 56cc (assuming F = R = 3) - ; ~ 1.17us (assuming 48MHz clock speed) - ; + approximate worst-case LCD + USB DMA - ; ~ 5us -; Re-enable interrupts if they were previously enabled. - jp po,no_ei - ei -no_ei: -; Compare and return the lesser of the two values read. -; -; If the values differ, then the underlying value changed between reading the -; first byte of the first 32-bit read and the last byte of the second 32-bit -; read: -; * If a change occurs between the two 32-bit reads, then both values read -; remain valid. -; * If a change occurs in the middle of one of the 32-bit reads: -; * If the bytes already read change but the bytes yet to read do not -; change, then the value read is the valid value before the change. -; * If the bytes already read do not change but the yet still to read -; change, then the value read is the valid value after the change. -; * If the bytes already read and the bytes yet to read change, then the -; value read is an invalid mix of the values before and after the change. -; -; If the final case did not occur, then both values read are valid. -; -; If the final case occurred for only the second value read, then due to reading -; bytes in little-endian order, one to three upper bytes will reflect the -; increased value after the change. Regardless of the lower bytes, the valid, -; first value read will be less than the invalid, second value read. -; -; If the final case occurred for only the first value read, then due to reading -; bytes in little-endian order, one to three upper bytes will reflect the -; increased value after the change, while the remaining one to three lower bytes -; will reflect the value before the change. If it is assumed that the value -; increased by less than 256, then the upper bytes must have increased through -; carry and the lower bytes of the valid, second value read will be less than -; the lower bytes of the invalid, first value read. And because the full second -; value read will reflect the the increased value after the change, and -; therefore the two values read will only differ in the lower bytes, it follows -; that the full, valid, second valid read will be less than the full, invalid, -; first value read. (Note that this assertion can be extended to include 256 -; because only one byte would change, making this whole case unreachable.) -; -; If the third case occurred for both values read, then both are invalid. There -; is no reasonable way to detect this, so it is assumed that this did not occur. -; -; Combining all of these cases and assumptions, the lesser of the two values -; read will always be valid. - or a,a - sbc hl,de - sbc a,c ; auhl = second value read - ; - first value read - jr c,no_swap -; second value read >= first value read -; ==> first value read is valid - ex de,hl - ld e,c ; euhl = first value read - ret - -no_swap: -; second value read < first value read -; ==> second value read is valid - add hl,de - adc a,c - ld e,a ; euhl = second value read - ret +; ---
+; uint32_t atomic_load_increasing_32(volatile uint32_t *p)
+; ---
+
+ .def _atomic_load_increasing_32
+ .assume adl=1
+
+_atomic_load_increasing_32:
+ pop hl
+ ex (sp),iy
+ push hl
+; Temporarily disable interrupts.
+ ld a,i
+ di
+; Read the value twice.
+; first value read = cude, second value read = auhl
+ ; Time between first and last byte read:
+ ld de,(iy) ; 2R
+ ld c,(iy+3) ; + 3F+1R
+ ld hl,(iy) ; + 3F+3R
+ ld a,(iy+3) ; + 3F+1R
+ ; = 9F+7R
+ ; = 56cc (assuming F = R = 3)
+ ; ~ 1.17us (assuming 48MHz clock speed)
+ ; + approximate worst-case LCD + USB DMA
+ ; ~ 5us
+; Re-enable interrupts if they were previously enabled.
+ jp po,no_ei
+ ei
+no_ei:
+; Compare and return the lesser of the two values read.
+;
+; If the values differ, then the underlying value changed between reading the
+; first byte of the first 32-bit read and the last byte of the second 32-bit
+; read:
+; * If a change occurs between the two 32-bit reads, then both values read
+; remain valid.
+; * If a change occurs in the middle of one of the 32-bit reads:
+; * If the bytes already read change but the bytes yet to read do not
+; change, then the value read is the valid value before the change.
+; * If the bytes already read do not change but the yet still to read
+; change, then the value read is the valid value after the change.
+; * If the bytes already read and the bytes yet to read change, then the
+; value read is an invalid mix of the values before and after the change.
+;
+; If the final case did not occur, then both values read are valid.
+;
+; If the final case occurred for only the second value read, then due to reading
+; bytes in little-endian order, one to three upper bytes will reflect the
+; increased value after the change. Regardless of the lower bytes, the valid,
+; first value read will be less than the invalid, second value read.
+;
+; If the final case occurred for only the first value read, then due to reading
+; bytes in little-endian order, one to three upper bytes will reflect the
+; increased value after the change, while the remaining one to three lower bytes
+; will reflect the value before the change. If it is assumed that the value
+; increased by less than 256, then the upper bytes must have increased through
+; carry and the lower bytes of the valid, second value read will be less than
+; the lower bytes of the invalid, first value read. And because the full second
+; value read will reflect the the increased value after the change, and
+; therefore the two values read will only differ in the lower bytes, it follows
+; that the full, valid, second valid read will be less than the full, invalid,
+; first value read. (Note that this assertion can be extended to include 256
+; because only one byte would change, making this whole case unreachable.)
+;
+; If the third case occurred for both values read, then both are invalid. There
+; is no reasonable way to detect this, so it is assumed that this did not occur.
+;
+; Combining all of these cases and assumptions, the lesser of the two values
+; read will always be valid.
+ or a,a
+ sbc hl,de
+ sbc a,c ; auhl = second value read
+ ; - first value read
+ jr c,no_swap
+; second value read >= first value read
+; ==> first value read is valid
+ ex de,hl
+ ld e,c ; euhl = first value read
+ ret
+
+no_swap:
+; second value read < first value read
+; ==> second value read is valid
+ add hl,de
+ adc a,c
+ ld e,a ; euhl = second value read
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/atos.src b/frontends/calculator/CEdev/lib/shared/atos.src index cb3403b..6c39f89 100644 --- a/frontends/calculator/CEdev/lib/shared/atos.src +++ b/frontends/calculator/CEdev/lib/shared/atos.src @@ -1,8 +1,8 @@ - .ref _atoi - .def _atos - .assume adl=1 - -; short int atos(char *cp); - -_atos equ _atoi - + .ref _atoi
+ .def _atos
+ .assume adl=1
+
+; short int atos(char *cp);
+
+_atos equ _atoi
+
diff --git a/frontends/calculator/CEdev/lib/shared/bdivs.src b/frontends/calculator/CEdev/lib/shared/bdivs.src index 1bd30b8..710ad7e 100644 --- a/frontends/calculator/CEdev/lib/shared/bdivs.src +++ b/frontends/calculator/CEdev/lib/shared/bdivs.src @@ -1,44 +1,44 @@ -; (c) Copyright 2001-2008 Zilog Inc. -;------------------------------------------------------------------------- -; Signed Byte Division. -; Input: -; Operand1: -; B : 8 bit dividend (numerator) -; -; Operand2: -; C : 8 bit divisor (denominator) -; -; Output: -; Result: A : 8 bit quotient -; Registers Used: -; d, e -;------------------------------------------------------------------------- - .ref __bdivu - .def __bdivs - .assume adl=1 - -__bdivs: - push bc - xor a,a - sub a,b - jp m,_L0 - ld b,a -_L0: - xor a,a - sub a,c - jp m,_L1 - ld c,a -_L1: - call __bdivu - pop bc - push hl - ld l,a - ld a,b - xor a,c - ld a,l - jp p,_L2 - neg -_L2: - pop hl - ret - +; (c) Copyright 2001-2008 Zilog Inc.
+;-------------------------------------------------------------------------
+; Signed Byte Division.
+; Input:
+; Operand1:
+; B : 8 bit dividend (numerator)
+;
+; Operand2:
+; C : 8 bit divisor (denominator)
+;
+; Output:
+; Result: A : 8 bit quotient
+; Registers Used:
+; d, e
+;-------------------------------------------------------------------------
+ .ref __bdivu
+ .def __bdivs
+ .assume adl=1
+
+__bdivs:
+ push bc
+ xor a,a
+ sub a,b
+ jp m,_L0
+ ld b,a
+_L0:
+ xor a,a
+ sub a,c
+ jp m,_L1
+ ld c,a
+_L1:
+ call __bdivu
+ pop bc
+ push hl
+ ld l,a
+ ld a,b
+ xor a,c
+ ld a,l
+ jp p,_L2
+ neg
+_L2:
+ pop hl
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/bdivu.src b/frontends/calculator/CEdev/lib/shared/bdivu.src index cd2b7d3..68b9d82 100644 --- a/frontends/calculator/CEdev/lib/shared/bdivu.src +++ b/frontends/calculator/CEdev/lib/shared/bdivu.src @@ -1,41 +1,41 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Byte Division. -; Input: -; Operand1: -; B : 8 bit dividend (numerator x) -; -; Operand2: -; C : 8 bit divisor (denominator y) -; -; Output: -; Result: A : 8 bit quotient -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __bdivu - .assume adl=1 - -__bdivu: - push bc - push hl - ld h,b - xor a,a - ld b,8 ;i = 8 (bit counter) -loop: - sla h - rla - jr c,over - cp a,c - jr c,under -over: - sub a,c - inc h -under: - djnz loop - - ld a,h - pop hl - pop bc - ret - +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Byte Division.
+; Input:
+; Operand1:
+; B : 8 bit dividend (numerator x)
+;
+; Operand2:
+; C : 8 bit divisor (denominator y)
+;
+; Output:
+; Result: A : 8 bit quotient
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __bdivu
+ .assume adl=1
+
+__bdivu:
+ push bc
+ push hl
+ ld h,b
+ xor a,a
+ ld b,8 ;i = 8 (bit counter)
+loop:
+ sla h
+ rla
+ jr c,over
+ cp a,c
+ jr c,under
+over:
+ sub a,c
+ inc h
+under:
+ djnz loop
+
+ ld a,h
+ pop hl
+ pop bc
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/bldix.src b/frontends/calculator/CEdev/lib/shared/bldix.src index 6d3dbf7..dbf7ef0 100644 --- a/frontends/calculator/CEdev/lib/shared/bldix.src +++ b/frontends/calculator/CEdev/lib/shared/bldix.src @@ -1,25 +1,25 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; byte load a,(ix+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from ix -; -; Output: -; Result: A : 8 bit -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __bldix - .assume adl=1 - -__bldix: - push ix - push af ; Preserve flags - add ix,bc - pop af ; Restore flags - ld a,(ix) - pop ix - ret - +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; byte load a,(ix+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+;
+; Output:
+; Result: A : 8 bit
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __bldix
+ .assume adl=1
+
+__bldix:
+ push ix
+ push af ; Preserve flags
+ add ix,bc
+ pop af ; Restore flags
+ ld a,(ix)
+ pop ix
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/bldiy.src b/frontends/calculator/CEdev/lib/shared/bldiy.src index acda08a..3631134 100644 --- a/frontends/calculator/CEdev/lib/shared/bldiy.src +++ b/frontends/calculator/CEdev/lib/shared/bldiy.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; byte load a,(iy+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from iy -; -; Output: -; Result: A : 8 bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __bldiy - .assume adl=1 - -__bldiy equ 0000FCh +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; byte load a,(iy+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+;
+; Output:
+; Result: A : 8 bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __bldiy
+ .assume adl=1
+
+__bldiy equ 0000FCh
diff --git a/frontends/calculator/CEdev/lib/shared/bmuls.src b/frontends/calculator/CEdev/lib/shared/bmuls.src index 45d7111..1c5ab2e 100644 --- a/frontends/calculator/CEdev/lib/shared/bmuls.src +++ b/frontends/calculator/CEdev/lib/shared/bmuls.src @@ -1,25 +1,25 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Signed Byte Multiply -; Input: -; Operand1: -; A : 8 bit -; -; Operand2: -; B : 8 bit -; -; Output: -; Result: A : 8 bit product -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __bmuls - .assume adl=1 - -__bmuls: - push bc - ld c,a - mlt bc - ld a,c - pop bc - ret +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Signed Byte Multiply
+; Input:
+; Operand1:
+; A : 8 bit
+;
+; Operand2:
+; B : 8 bit
+;
+; Output:
+; Result: A : 8 bit product
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __bmuls
+ .assume adl=1
+
+__bmuls:
+ push bc
+ ld c,a
+ mlt bc
+ ld a,c
+ pop bc
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/bmulu.src b/frontends/calculator/CEdev/lib/shared/bmulu.src index 20c27b5..a8413df 100644 --- a/frontends/calculator/CEdev/lib/shared/bmulu.src +++ b/frontends/calculator/CEdev/lib/shared/bmulu.src @@ -1,24 +1,24 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Byte Multiply -; Input: -; Operand1: -; B : 8 bit -; -; Operand2: -; C : 8 bit -; -; Output: -; Result: A : 8 bit product -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __bmulu - .assume adl=1 - -__bmulu: - push bc - mlt bc - ld a,c - pop bc - ret +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Byte Multiply
+; Input:
+; Operand1:
+; B : 8 bit
+;
+; Operand2:
+; C : 8 bit
+;
+; Output:
+; Result: A : 8 bit product
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __bmulu
+ .assume adl=1
+
+__bmulu:
+ push bc
+ mlt bc
+ ld a,c
+ pop bc
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/brems.src b/frontends/calculator/CEdev/lib/shared/brems.src index 3687ced..5a05f82 100644 --- a/frontends/calculator/CEdev/lib/shared/brems.src +++ b/frontends/calculator/CEdev/lib/shared/brems.src @@ -1,40 +1,40 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Signed Byte Modulus -; Input: -; Operand1: -; A : 8 bit dividend (numerator) -; -; Operand2: -; C : 8 bit divisor (denominator) -; -; Output: -; Result: A : 8 bit modulus -; Registers Used: -; -;------------------------------------------------------------------------- - .ref __bremu - .def __brems - .assume adl=1 - -__brems: - push bc - ld b,a - bit 7,c - jr z,skip1 - ld a,c - neg - ld c,a -skip1: - ld a,b - bit 7,a - jr z,skip2 - neg -skip2: - call __bremu - bit 7,b - jr z,skip3 - neg -skip3: - pop bc - ret +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Signed Byte Modulus
+; Input:
+; Operand1:
+; A : 8 bit dividend (numerator)
+;
+; Operand2:
+; C : 8 bit divisor (denominator)
+;
+; Output:
+; Result: A : 8 bit modulus
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .ref __bremu
+ .def __brems
+ .assume adl=1
+
+__brems:
+ push bc
+ ld b,a
+ bit 7,c
+ jr z,skip1
+ ld a,c
+ neg
+ ld c,a
+skip1:
+ ld a,b
+ bit 7,a
+ jr z,skip2
+ neg
+skip2:
+ call __bremu
+ bit 7,b
+ jr z,skip3
+ neg
+skip3:
+ pop bc
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/bremu.src b/frontends/calculator/CEdev/lib/shared/bremu.src index 4c60bc8..758e765 100644 --- a/frontends/calculator/CEdev/lib/shared/bremu.src +++ b/frontends/calculator/CEdev/lib/shared/bremu.src @@ -1,39 +1,39 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Byte Modulus -; Input: -; Operand1: -; A : 8 bit dividend (numerator) -; -; Operand2: -; C : 8 bit divisor (denominator) -; -; Output: -; Result: A : 8 bit modulus -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __bremu - .assume adl=1 - -__bremu: - push bc - push hl - ld h,a - xor a,a - ld b,8 -loop: - sla h - rla - jr c,over - cp a,c - jr c,under -over: - sub a,c - inc h -under: - djnz loop - pop hl - pop bc - ret - +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Byte Modulus
+; Input:
+; Operand1:
+; A : 8 bit dividend (numerator)
+;
+; Operand2:
+; C : 8 bit divisor (denominator)
+;
+; Output:
+; Result: A : 8 bit modulus
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __bremu
+ .assume adl=1
+
+__bremu:
+ push bc
+ push hl
+ ld h,a
+ xor a,a
+ ld b,8
+loop:
+ sla h
+ rla
+ jr c,over
+ cp a,c
+ jr c,under
+over:
+ sub a,c
+ inc h
+under:
+ djnz loop
+ pop hl
+ pop bc
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/bshl.src b/frontends/calculator/CEdev/lib/shared/bshl.src index 9c6c14b..2688b9e 100644 --- a/frontends/calculator/CEdev/lib/shared/bshl.src +++ b/frontends/calculator/CEdev/lib/shared/bshl.src @@ -1,18 +1,18 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Byte Shift Left -; Input: -; Operand1: -; A : 8 bit number to shift -; Operand2: -; B : 8 bit shift count -; -; Output: -; Result: A : 8 bit -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __bshl - .assume adl=1 - -__bshl equ 000100h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Byte Shift Left
+; Input:
+; Operand1:
+; A : 8 bit number to shift
+; Operand2:
+; B : 8 bit shift count
+;
+; Output:
+; Result: A : 8 bit
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __bshl
+ .assume adl=1
+
+__bshl equ 000100h
diff --git a/frontends/calculator/CEdev/lib/shared/bshrs.src b/frontends/calculator/CEdev/lib/shared/bshrs.src index 4c53262..7a3fd54 100644 --- a/frontends/calculator/CEdev/lib/shared/bshrs.src +++ b/frontends/calculator/CEdev/lib/shared/bshrs.src @@ -1,29 +1,29 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Byte Shift Right Signed -; Input: -; Operand1: -; A : 8 bit number to shift -; Operand2: -; B : 8 bit shift count -; -; Output: -; Result: A : 8 bit -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __bshrs - .assume adl=1 - -__bshrs: - push bc - inc b - jr test - -loop: - sra a -test: - djnz loop - - pop bc - ret +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Byte Shift Right Signed
+; Input:
+; Operand1:
+; A : 8 bit number to shift
+; Operand2:
+; B : 8 bit shift count
+;
+; Output:
+; Result: A : 8 bit
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __bshrs
+ .assume adl=1
+
+__bshrs:
+ push bc
+ inc b
+ jr test
+
+loop:
+ sra a
+test:
+ djnz loop
+
+ pop bc
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/bshru.src b/frontends/calculator/CEdev/lib/shared/bshru.src index ec73588..8b13d56 100644 --- a/frontends/calculator/CEdev/lib/shared/bshru.src +++ b/frontends/calculator/CEdev/lib/shared/bshru.src @@ -1,18 +1,18 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Byte Shift Right Unsigned -; Input: -; Operand1: -; A : 8 bit number to shift -; Operand2: -; B : 8 bit shift count -; -; Output: -; Result: A : 8 bit -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __bshru - .assume adl=1 - -__bshru equ 000104h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Byte Shift Right Unsigned
+; Input:
+; Operand1:
+; A : 8 bit number to shift
+; Operand2:
+; B : 8 bit shift count
+;
+; Output:
+; Result: A : 8 bit
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __bshru
+ .assume adl=1
+
+__bshru equ 000104h
diff --git a/frontends/calculator/CEdev/lib/shared/bstix.src b/frontends/calculator/CEdev/lib/shared/bstix.src index 3719b30..1fec2dd 100644 --- a/frontends/calculator/CEdev/lib/shared/bstix.src +++ b/frontends/calculator/CEdev/lib/shared/bstix.src @@ -1,19 +1,19 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; byte store (ix+nnnnnn),A -; Input: -; Operand1: -; BC : 24-bit offset from ix -; A : 8-bit integer to store -; -; Output: -; none -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __bstix - .assume adl=1 - -__bstix equ 00010Ch - +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; byte store (ix+nnnnnn),A
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+; A : 8-bit integer to store
+;
+; Output:
+; none
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __bstix
+ .assume adl=1
+
+__bstix equ 00010Ch
+
diff --git a/frontends/calculator/CEdev/lib/shared/bstiy.src b/frontends/calculator/CEdev/lib/shared/bstiy.src index b95ce91..98a9d00 100644 --- a/frontends/calculator/CEdev/lib/shared/bstiy.src +++ b/frontends/calculator/CEdev/lib/shared/bstiy.src @@ -1,18 +1,18 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; byte store (iy+nnnnnn),A -; Input: -; Operand1: -; BC : 24-bit offset from iy -; A : 8-bit integer to store -; -; Output: -; -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __bstiy - .assume adl=1 - -__bstiy equ 000108h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; byte store (iy+nnnnnn),A
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+; A : 8-bit integer to store
+;
+; Output:
+;
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __bstiy
+ .assume adl=1
+
+__bstiy equ 000108h
diff --git a/frontends/calculator/CEdev/lib/shared/calloc.src b/frontends/calculator/CEdev/lib/shared/calloc.src index 069e4bf..73d5704 100644 --- a/frontends/calculator/CEdev/lib/shared/calloc.src +++ b/frontends/calculator/CEdev/lib/shared/calloc.src @@ -1,27 +1,27 @@ - .ref __imulu - .ref _malloc - .ref _memset - .def _calloc - .assume adl=1 - -_calloc: - pop de - pop bc - pop hl - push hl - push bc - push de - call __imulu - push hl - call _malloc - add hl,de - xor a,a - sbc hl,de - ld e,a - push de - push hl - call nz,_memset - pop hl - pop de - pop bc - ret + .ref __imulu
+ .ref _malloc
+ .ref _memset
+ .def _calloc
+ .assume adl=1
+
+_calloc:
+ pop de
+ pop bc
+ pop hl
+ push hl
+ push bc
+ push de
+ call __imulu
+ push hl
+ call _malloc
+ add hl,de
+ xor a,a
+ sbc hl,de
+ ld e,a
+ push de
+ push hl
+ call nz,_memset
+ pop hl
+ pop de
+ pop bc
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/case.src b/frontends/calculator/CEdev/lib/shared/case.src index 26919eb..c2fc6c4 100644 --- a/frontends/calculator/CEdev/lib/shared/case.src +++ b/frontends/calculator/CEdev/lib/shared/case.src @@ -1,27 +1,27 @@ -; (c) Copyright 2001-2008 Zilog Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand1: -; bc : 24 bit address of CASE TABLE -; -; Operand2: -; de : 24 bit number of entries in table -; -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; Result: hl : 24 bit address of case jp to take -; Registers Used: -; -; -; Table Format: -; [24-bit value][JP label (4-bytes)] 7 bytes total -; -;------------------------------------------------------------------------- - .def __case - .assume adl=1 - -__case equ 000110h +; (c) Copyright 2001-2008 Zilog Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand1:
+; bc : 24 bit address of CASE TABLE
+;
+; Operand2:
+; de : 24 bit number of entries in table
+;
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+; Result: hl : 24 bit address of case jp to take
+; Registers Used:
+;
+;
+; Table Format:
+; [24-bit value][JP label (4-bytes)] 7 bytes total
+;
+;-------------------------------------------------------------------------
+ .def __case
+ .assume adl=1
+
+__case equ 000110h
diff --git a/frontends/calculator/CEdev/lib/shared/case16.src b/frontends/calculator/CEdev/lib/shared/case16.src index 33cb5cc..4d25c76 100644 --- a/frontends/calculator/CEdev/lib/shared/case16.src +++ b/frontends/calculator/CEdev/lib/shared/case16.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __case16 - .assume adl=1 - -__case16 equ 000114h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __case16
+ .assume adl=1
+
+__case16 equ 000114h
diff --git a/frontends/calculator/CEdev/lib/shared/case16d.src b/frontends/calculator/CEdev/lib/shared/case16d.src index f2a929d..21f47d9 100644 --- a/frontends/calculator/CEdev/lib/shared/case16d.src +++ b/frontends/calculator/CEdev/lib/shared/case16d.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; Result: hl : 24 bit address of case jp to take -; Registers Used: -; -;------------------------------------------------------------------------- - .def __case16D - .assume adl=1 - -__case16D equ 000118h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+; Result: hl : 24 bit address of case jp to take
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __case16D
+ .assume adl=1
+
+__case16D equ 000118h
diff --git a/frontends/calculator/CEdev/lib/shared/case24.src b/frontends/calculator/CEdev/lib/shared/case24.src index 43539e5..de39859 100644 --- a/frontends/calculator/CEdev/lib/shared/case24.src +++ b/frontends/calculator/CEdev/lib/shared/case24.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __case24 - .assume adl=1 - -__case24 equ 00011Ch +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __case24
+ .assume adl=1
+
+__case24 equ 00011Ch
diff --git a/frontends/calculator/CEdev/lib/shared/case24d.src b/frontends/calculator/CEdev/lib/shared/case24d.src index bdec1ac..8ebfbc0 100644 --- a/frontends/calculator/CEdev/lib/shared/case24d.src +++ b/frontends/calculator/CEdev/lib/shared/case24d.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; Result: hl : 24 bit address of case jp to take -; Registers Used: -; -;------------------------------------------------------------------------- - .def __case24D - .assume adl=1 - -__case24D equ 000120h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+; Result: hl : 24 bit address of case jp to take
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __case24D
+ .assume adl=1
+
+__case24D equ 000120h
diff --git a/frontends/calculator/CEdev/lib/shared/case8.src b/frontends/calculator/CEdev/lib/shared/case8.src index 8d4f00f..da200d6 100644 --- a/frontends/calculator/CEdev/lib/shared/case8.src +++ b/frontends/calculator/CEdev/lib/shared/case8.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __case8 - .assume adl=1 - -__case8 equ 000124h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __case8
+ .assume adl=1
+
+__case8 equ 000124h
diff --git a/frontends/calculator/CEdev/lib/shared/case8d.src b/frontends/calculator/CEdev/lib/shared/case8d.src index f4be7a6..52ade6f 100644 --- a/frontends/calculator/CEdev/lib/shared/case8d.src +++ b/frontends/calculator/CEdev/lib/shared/case8d.src @@ -1,17 +1,17 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; Result: hl : 24 bit address of case jp to take -; Registers Used: -; -;------------------------------------------------------------------------- - .def __case8D - .assume adl=1 - -__case8D equ 000128h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+; Result: hl : 24 bit address of case jp to take
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __case8D
+ .assume adl=1
+
+__case8D equ 000128h
diff --git a/frontends/calculator/CEdev/lib/shared/debugger.src b/frontends/calculator/CEdev/lib/shared/debugger.src index 684b3a2..bc6a4a4 100644 --- a/frontends/calculator/CEdev/lib/shared/debugger.src +++ b/frontends/calculator/CEdev/lib/shared/debugger.src @@ -1,12 +1,12 @@ -; --- -; opens the debugger -; --- - - .def _dbg_Debugger - .assume adl=1 - -_dbg_Debugger: - scf - sbc hl,hl - ld (hl),2 - ret +; ---
+; opens the debugger
+; ---
+
+ .def _dbg_Debugger
+ .assume adl=1
+
+_dbg_Debugger:
+ scf
+ sbc hl,hl
+ ld (hl),2
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/delay.src b/frontends/calculator/CEdev/lib/shared/delay.src index 62978b8..affa948 100644 --- a/frontends/calculator/CEdev/lib/shared/delay.src +++ b/frontends/calculator/CEdev/lib/shared/delay.src @@ -1,92 +1,92 @@ - -; --- -; void delay(uint16_t millis) -; --- - - .def _delay - .assume adl=1 - -mpTmrRange equ 0F20000h - -tmr2Counter equ 10h -tmr2Load equ 14h -tmr2Match1 equ 18h -tmr2Match2 equ 1Ch - -tmrCtrl equ 30h - -bTmr2Enable equ 3 -bTmr2Crystal equ 4 -bTmr2Overflow equ 5 -bTmr2CountUp equ 10 - -_delay: -; Read argument. - pop de - ex (sp),hl ; 0hl = millis - push de -; Abort ASAP if millis == 0. - ld a,h - or a,l - ret z -; Convert millis to CPU cycles by multiplying by 48000. -; Subtract 2 to offset overhead and the unknown counter low byte. - ld b,h - ld c,l ; 0bc = millis - dec.s bc ; bc = millis-1; need to set bcu = 0 - srl b - rr c ; bc = (millis-1)>>1 - ; = millis*(48000&0FFh)>>8, - ; off by -1 or -0.5 - ld e,l - ld d,187 ; 48000/256 == 187.5 - ld l,d - mlt de ; de = (millis&0FFh)*(48000>>8) - mlt hl ; hl = (millis>>8)*(48000>>8) - dec hl - push hl - dec sp - pop hl - inc sp - ld l,-2 ; hl = (millis&0FF00h)*(48000>>8)-2 - add hl,de ; hl = millis*(48000>>8)-2 - add hl,bc ; hl ~ (millis*48000>>8)-3 -; Set up timer 2 control bits: disabled, CPU clock, no interrupt, count down. - ex de,hl ; de ~ (millis*48000>>8)-3 - ld hl,mpTmrRange+tmrCtrl - res bTmr2Enable,(hl) - res bTmr2Crystal,(hl) - res bTmr2Overflow,(hl) - inc hl - res bTmr2CountUp-8,(hl) -; Set up timer 2 counter, match, and reload values. - ld l,tmr2Counter+1 - ld (hl),de ; counter = millis*48000-768+0xxh - ld l,tmr2Match1+3 - ld (hl),0FFh ; match1 = 0FFxxxxxxh - ld l,tmr2Match2+3 - ld (hl),0FFh ; match2 = 0FFxxxxxxh - ld l,tmr2Load+3 - ld (hl),0FEh ; reload = 0FExxxxxxh -; Enable timer 2. - ld l,tmrCtrl - set bTmr2Enable,(hl) -; Wait until timer 2 expires (underflows). -; Will catch the underflow if not interrupted for a continuous period of -; ((254-188)<<24)/48000000 ~ 23.1s. - ld l,tmr2Counter+3 - ld a,188 ; = 1+((0FFFFh*24000 shl 1)-12 shr 24) -; 380 cc up to this point -_delay_wait: - cp a,(hl) - jr nc,_delay_wait -; 12-29 cc to exit waitloop -; Done. - ret -; ~421 cc up to this point -; caller overhead: -; ld bc,millis -; push bc -; call _delay -; pop bc -; ~485 cc total +
+; ---
+; void delay(uint16_t millis)
+; ---
+
+ .def _delay
+ .assume adl=1
+
+mpTmrRange equ 0F20000h
+
+tmr2Counter equ 10h
+tmr2Load equ 14h
+tmr2Match1 equ 18h
+tmr2Match2 equ 1Ch
+
+tmrCtrl equ 30h
+
+bTmr2Enable equ 3
+bTmr2Crystal equ 4
+bTmr2Overflow equ 5
+bTmr2CountUp equ 10
+
+_delay:
+; Read argument.
+ pop de
+ ex (sp),hl ; 0hl = millis
+ push de
+; Abort ASAP if millis == 0.
+ ld a,h
+ or a,l
+ ret z
+; Convert millis to CPU cycles by multiplying by 48000.
+; Subtract 2 to offset overhead and the unknown counter low byte.
+ ld b,h
+ ld c,l ; 0bc = millis
+ dec.s bc ; bc = millis-1; need to set bcu = 0
+ srl b
+ rr c ; bc = (millis-1)>>1
+ ; = millis*(48000&0FFh)>>8,
+ ; off by -1 or -0.5
+ ld e,l
+ ld d,187 ; 48000/256 == 187.5
+ ld l,d
+ mlt de ; de = (millis&0FFh)*(48000>>8)
+ mlt hl ; hl = (millis>>8)*(48000>>8)
+ dec hl
+ push hl
+ dec sp
+ pop hl
+ inc sp
+ ld l,-2 ; hl = (millis&0FF00h)*(48000>>8)-2
+ add hl,de ; hl = millis*(48000>>8)-2
+ add hl,bc ; hl ~ (millis*48000>>8)-3
+; Set up timer 2 control bits: disabled, CPU clock, no interrupt, count down.
+ ex de,hl ; de ~ (millis*48000>>8)-3
+ ld hl,mpTmrRange+tmrCtrl
+ res bTmr2Enable,(hl)
+ res bTmr2Crystal,(hl)
+ res bTmr2Overflow,(hl)
+ inc hl
+ res bTmr2CountUp-8,(hl)
+; Set up timer 2 counter, match, and reload values.
+ ld l,tmr2Counter+1
+ ld (hl),de ; counter = millis*48000-768+0xxh
+ ld l,tmr2Match1+3
+ ld (hl),0FFh ; match1 = 0FFxxxxxxh
+ ld l,tmr2Match2+3
+ ld (hl),0FFh ; match2 = 0FFxxxxxxh
+ ld l,tmr2Load+3
+ ld (hl),0FEh ; reload = 0FExxxxxxh
+; Enable timer 2.
+ ld l,tmrCtrl
+ set bTmr2Enable,(hl)
+; Wait until timer 2 expires (underflows).
+; Will catch the underflow if not interrupted for a continuous period of
+; ((254-188)<<24)/48000000 ~ 23.1s.
+ ld l,tmr2Counter+3
+ ld a,188 ; = 1+((0FFFFh*24000 shl 1)-12 shr 24)
+; 380 cc up to this point
+_delay_wait:
+ cp a,(hl)
+ jr nc,_delay_wait
+; 12-29 cc to exit waitloop
+; Done.
+ ret
+; ~421 cc up to this point
+; caller overhead:
+; ld bc,millis
+; push bc
+; call _delay
+; pop bc
+; ~485 cc total
diff --git a/frontends/calculator/CEdev/lib/shared/div.src b/frontends/calculator/CEdev/lib/shared/div.src index 0ae3c0d..030a767 100644 --- a/frontends/calculator/CEdev/lib/shared/div.src +++ b/frontends/calculator/CEdev/lib/shared/div.src @@ -1,54 +1,54 @@ -; Copyright 1992-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Div function -; -; div_t div(int numer,int denom); -; -;------------------------------------------------------------------------- - .def _div - .ref __idivs - .ref __irems - .assume adl=1 - -_div: - push af - push bc - push hl - push de - - ld hl,21 - add hl,sp - ld bc,(hl) ; bc=val of denominator - dec hl - dec hl - dec hl - ld hl,(hl) ; hl=val of numerator - push hl - call __idivs - ex de,hl ; de= quotient - pop hl ; hl=val of numerator - call __irems - ld bc,hl - - ld hl,15 - add hl,sp - ld hl,(hl) - inc hl - inc hl - inc hl - ld (hl),bc ; remainder - dec hl - dec hl - dec hl - ld (hl),de ;quotient - - pop de - pop bc - pop bc - pop af - - ret - - - - +; Copyright 1992-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Div function
+;
+; div_t div(int numer,int denom);
+;
+;-------------------------------------------------------------------------
+ .def _div
+ .ref __idivs
+ .ref __irems
+ .assume adl=1
+
+_div:
+ push af
+ push bc
+ push hl
+ push de
+
+ ld hl,21
+ add hl,sp
+ ld bc,(hl) ; bc=val of denominator
+ dec hl
+ dec hl
+ dec hl
+ ld hl,(hl) ; hl=val of numerator
+ push hl
+ call __idivs
+ ex de,hl ; de= quotient
+ pop hl ; hl=val of numerator
+ call __irems
+ ld bc,hl
+
+ ld hl,15
+ add hl,sp
+ ld hl,(hl)
+ inc hl
+ inc hl
+ inc hl
+ ld (hl),bc ; remainder
+ dec hl
+ dec hl
+ dec hl
+ ld (hl),de ;quotient
+
+ pop de
+ pop bc
+ pop bc
+ pop af
+
+ ret
+
+
+
+
diff --git a/frontends/calculator/CEdev/lib/shared/dzx7_standard.src b/frontends/calculator/CEdev/lib/shared/dzx7_standard.src index a3591a2..9b71b89 100644 --- a/frontends/calculator/CEdev/lib/shared/dzx7_standard.src +++ b/frontends/calculator/CEdev/lib/shared/dzx7_standard.src @@ -1,106 +1,106 @@ -; --- -; void dzx7_turbo(void *src, void *dst) -; --- -; Dec 2012 by Einar Saukas & Urusergi -; "Standard" version (70 bytes) -; --- - - .def _dzx7_Standard - .assume adl=1 - -; enter : hl = void *src -; de = void *dst -; -; exit : hl = & following uncompressed block -; -; uses : af, bc, de, hl - -_dzx7_Standard: - pop bc - pop hl - pop de - push de - push hl - push bc - - ld a, 128 - -dzx7s_copy_byte_loop: - - ldi ; copy literal byte - -dzx7s_main_loop: - - call dzx7s_next_bit - jr nc, dzx7s_copy_byte_loop ; next bit indicates either literal or sequence - -; determine number of bits used for length (Elias gamma coding) - - push de - ld de, 0 - ld bc, 0 - -dzx7s_len_size_loop: - - inc d - call dzx7s_next_bit - jr nc, dzx7s_len_size_loop - -; determine length - -dzx7s_len_value_loop: - - call nc, dzx7s_next_bit - rl c - rl b - jr c, dzx7s_exit ; check end marker - dec d - jr nz, dzx7s_len_value_loop - inc bc ; adjust length - -; determine offset - - ld e, (hl) ; load offset flag (1 bit) + offset value (7 bits) - inc hl - - sla e - inc e - - jr nc, dzx7s_offset_end ; if offset flag is set, load 4 extra bits - ld d, 16 ; bit marker to load 4 bits - -dzx7s_rld_next_bit: - - call dzx7s_next_bit - rl d ; insert next bit into D - jr nc, dzx7s_rld_next_bit ; repeat 4 times, until bit marker is out - inc d ; add 128 to DE - srl d ; retrieve fourth bit from D - -dzx7s_offset_end: - - rr e ; insert fourth bit into E - -; copy previous sequence - - ex (sp), hl ; store source, restore destination - push hl ; store destination - sbc hl, de ; HL = destination - offset - 1 - pop de ; DE = destination - ldir - -dzx7s_exit: - - pop hl ; restore source address (compressed data) - jr nc, dzx7s_main_loop - -dzx7s_next_bit: - - add a, a ; check next bit - ret nz ; no more bits left? - ld a, (hl) ; load another group of 8 bits - inc hl - rla - ret - - end +; ---
+; void dzx7_turbo(void *src, void *dst)
+; ---
+; Dec 2012 by Einar Saukas & Urusergi
+; "Standard" version (70 bytes)
+; ---
+
+ .def _dzx7_Standard
+ .assume adl=1
+
+; enter : hl = void *src
+; de = void *dst
+;
+; exit : hl = & following uncompressed block
+;
+; uses : af, bc, de, hl
+
+_dzx7_Standard:
+ pop bc
+ pop hl
+ pop de
+ push de
+ push hl
+ push bc
+
+ ld a, 128
+
+dzx7s_copy_byte_loop:
+
+ ldi ; copy literal byte
+
+dzx7s_main_loop:
+
+ call dzx7s_next_bit
+ jr nc, dzx7s_copy_byte_loop ; next bit indicates either literal or sequence
+
+; determine number of bits used for length (Elias gamma coding)
+
+ push de
+ ld de, 0
+ ld bc, 0
+
+dzx7s_len_size_loop:
+
+ inc d
+ call dzx7s_next_bit
+ jr nc, dzx7s_len_size_loop
+
+; determine length
+
+dzx7s_len_value_loop:
+
+ call nc, dzx7s_next_bit
+ rl c
+ rl b
+ jr c, dzx7s_exit ; check end marker
+ dec d
+ jr nz, dzx7s_len_value_loop
+ inc bc ; adjust length
+
+; determine offset
+
+ ld e, (hl) ; load offset flag (1 bit) + offset value (7 bits)
+ inc hl
+
+ sla e
+ inc e
+
+ jr nc, dzx7s_offset_end ; if offset flag is set, load 4 extra bits
+ ld d, 16 ; bit marker to load 4 bits
+
+dzx7s_rld_next_bit:
+
+ call dzx7s_next_bit
+ rl d ; insert next bit into D
+ jr nc, dzx7s_rld_next_bit ; repeat 4 times, until bit marker is out
+ inc d ; add 128 to DE
+ srl d ; retrieve fourth bit from D
+
+dzx7s_offset_end:
+
+ rr e ; insert fourth bit into E
+
+; copy previous sequence
+
+ ex (sp), hl ; store source, restore destination
+ push hl ; store destination
+ sbc hl, de ; HL = destination - offset - 1
+ pop de ; DE = destination
+ ldir
+
+dzx7s_exit:
+
+ pop hl ; restore source address (compressed data)
+ jr nc, dzx7s_main_loop
+
+dzx7s_next_bit:
+
+ add a, a ; check next bit
+ ret nz ; no more bits left?
+ ld a, (hl) ; load another group of 8 bits
+ inc hl
+ rla
+ ret
+
+ end
diff --git a/frontends/calculator/CEdev/lib/shared/dzx7_turbo.src b/frontends/calculator/CEdev/lib/shared/dzx7_turbo.src index 15a6236..cd54eae 100644 --- a/frontends/calculator/CEdev/lib/shared/dzx7_turbo.src +++ b/frontends/calculator/CEdev/lib/shared/dzx7_turbo.src @@ -1,117 +1,117 @@ -; --- -; void dzx7_turbo(void *src, void *dst) -; --- -; Dec 2012 by Einar Saukas & Urusergi -; "Turbo" version (89 bytes, 25% faster) -; --- - - .def _dzx7_Turbo - .assume adl=1 - -; enter : hl = void *src -; de = void *dst -; -; exit : hl = & following uncompressed block -; -; uses : af, bc, de, hl - -_dzx7_Turbo: - pop bc - pop hl - pop de - push de - push hl - push bc - - ld a, 128 - -dzx7t_copy_byte_loop: - - ldi ; copy literal byte - -dzx7t_main_loop: - - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - jr nc, dzx7t_copy_byte_loop ; next bit indicates either literal or sequence - -; determine number of bits used for length (Elias gamma coding) - - push de - ld de, 0 - ld bc, 1 - -dzx7t_len_size_loop: - - inc d - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - jr nc, dzx7t_len_size_loop - jp dzx7t_len_value_start - -; determine length - -dzx7t_len_value_loop: - - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - rl c - rl b - jr c, dzx7t_exit ; check end marker - -dzx7t_len_value_start: - - dec d - jr nz, dzx7t_len_value_loop - inc bc ; adjust length - -; determine offset - - ld e, (hl) ; load offset flag (1 bit) + offset value (7 bits) - inc hl - - sla e - inc e - - jr nc, dzx7t_offset_end ; if offset flag is set, load 4 extra bits - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - rl d ; insert first bit into D - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - rl d ; insert second bit into D - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - rl d ; insert third bit into D - add a, a ; check next bit - call z, dzx7t_load_bits ; no more bits left? - ccf - jr c, dzx7t_offset_end - inc d ; equivalent to adding 128 to DE - -dzx7t_offset_end: - - rr e ; insert inverted fourth bit into E - -; copy previous sequence - - ex (sp), hl ; store source, restore destination - push hl ; store destination - sbc hl, de ; HL = destination - offset - 1 - pop de ; DE = destination - ldir - -dzx7t_exit: - - pop hl ; restore source address (compressed data) - jp nc, dzx7t_main_loop - -dzx7t_load_bits: - - ld a, (hl) ; load another group of 8 bits - inc hl - rla - ret - - - end +; ---
+; void dzx7_turbo(void *src, void *dst)
+; ---
+; Dec 2012 by Einar Saukas & Urusergi
+; "Turbo" version (89 bytes, 25% faster)
+; ---
+
+ .def _dzx7_Turbo
+ .assume adl=1
+
+; enter : hl = void *src
+; de = void *dst
+;
+; exit : hl = & following uncompressed block
+;
+; uses : af, bc, de, hl
+
+_dzx7_Turbo:
+ pop bc
+ pop hl
+ pop de
+ push de
+ push hl
+ push bc
+
+ ld a, 128
+
+dzx7t_copy_byte_loop:
+
+ ldi ; copy literal byte
+
+dzx7t_main_loop:
+
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ jr nc, dzx7t_copy_byte_loop ; next bit indicates either literal or sequence
+
+; determine number of bits used for length (Elias gamma coding)
+
+ push de
+ ld de, 0
+ ld bc, 1
+
+dzx7t_len_size_loop:
+
+ inc d
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ jr nc, dzx7t_len_size_loop
+ jp dzx7t_len_value_start
+
+; determine length
+
+dzx7t_len_value_loop:
+
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ rl c
+ rl b
+ jr c, dzx7t_exit ; check end marker
+
+dzx7t_len_value_start:
+
+ dec d
+ jr nz, dzx7t_len_value_loop
+ inc bc ; adjust length
+
+; determine offset
+
+ ld e, (hl) ; load offset flag (1 bit) + offset value (7 bits)
+ inc hl
+
+ sla e
+ inc e
+
+ jr nc, dzx7t_offset_end ; if offset flag is set, load 4 extra bits
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ rl d ; insert first bit into D
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ rl d ; insert second bit into D
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ rl d ; insert third bit into D
+ add a, a ; check next bit
+ call z, dzx7t_load_bits ; no more bits left?
+ ccf
+ jr c, dzx7t_offset_end
+ inc d ; equivalent to adding 128 to DE
+
+dzx7t_offset_end:
+
+ rr e ; insert inverted fourth bit into E
+
+; copy previous sequence
+
+ ex (sp), hl ; store source, restore destination
+ push hl ; store destination
+ sbc hl, de ; HL = destination - offset - 1
+ pop de ; DE = destination
+ ldir
+
+dzx7t_exit:
+
+ pop hl ; restore source address (compressed data)
+ jp nc, dzx7t_main_loop
+
+dzx7t_load_bits:
+
+ ld a, (hl) ; load another group of 8 bits
+ inc hl
+ rla
+ ret
+
+
+ end
diff --git a/frontends/calculator/CEdev/lib/shared/finite.src b/frontends/calculator/CEdev/lib/shared/finite.src index 35c8c5c..2b55337 100644 --- a/frontends/calculator/CEdev/lib/shared/finite.src +++ b/frontends/calculator/CEdev/lib/shared/finite.src @@ -1,19 +1,19 @@ - .def _finite - .assume adl=1 - -; int finite(double n); - -_finite: - pop bc - pop hl - pop de - push de - push hl - push bc - add hl,hl - ld a,e - rla - add a,1 - sbc hl,hl - inc hl - ret + .def _finite
+ .assume adl=1
+
+; int finite(double n);
+
+_finite:
+ pop bc
+ pop hl
+ pop de
+ push de
+ push hl
+ push bc
+ add hl,hl
+ ld a,e
+ rla
+ add a,1
+ sbc hl,hl
+ inc hl
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/fpadd.src b/frontends/calculator/CEdev/lib/shared/fpadd.src index 238ee39..696867b 100644 --- a/frontends/calculator/CEdev/lib/shared/fpadd.src +++ b/frontends/calculator/CEdev/lib/shared/fpadd.src @@ -1,25 +1,25 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; IEEE Single precision add -; -; INPUTS: AuBC OP1. -; EuHL OP2. -; -; OUTPUTS: AuBC Sum. -; -; Returns the result of adding the absolute values of the single-precision -; floating-point values OP1 and OP2. If Sign of result is 1, the sum is -; negated before being returned. -; -;-------------------------------------------------------------- - .def __fadd - .assume adl=1 - -__fadd equ 000270h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; IEEE Single precision add
+;
+; INPUTS: AuBC OP1.
+; EuHL OP2.
+;
+; OUTPUTS: AuBC Sum.
+;
+; Returns the result of adding the absolute values of the single-precision
+; floating-point values OP1 and OP2. If Sign of result is 1, the sum is
+; negated before being returned.
+;
+;--------------------------------------------------------------
+ .def __fadd
+ .assume adl=1
+
+__fadd equ 000270h
diff --git a/frontends/calculator/CEdev/lib/shared/fpcmp.src b/frontends/calculator/CEdev/lib/shared/fpcmp.src index acfbce0..1e1df2e 100644 --- a/frontends/calculator/CEdev/lib/shared/fpcmp.src +++ b/frontends/calculator/CEdev/lib/shared/fpcmp.src @@ -1,27 +1,27 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; IEEE Single precision compare. -; -; INPUTS: -; -; Operand1: -; EuHL : 32 bit IEEE format -; -; Operand2: -; AuBC : 32 bit IEEE format -; -; -; OUTPUTS: FLAGS based on Op1 - Op2 -; -;-------------------------------------------------------------- - .def __fcmp - .assume adl=1 - -__fcmp equ 000274h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; IEEE Single precision compare.
+;
+; INPUTS:
+;
+; Operand1:
+; EuHL : 32 bit IEEE format
+;
+; Operand2:
+; AuBC : 32 bit IEEE format
+;
+;
+; OUTPUTS: FLAGS based on Op1 - Op2
+;
+;--------------------------------------------------------------
+ .def __fcmp
+ .assume adl=1
+
+__fcmp equ 000274h
diff --git a/frontends/calculator/CEdev/lib/shared/fpdiv.src b/frontends/calculator/CEdev/lib/shared/fpdiv.src index ab80d15..f8ec9e1 100644 --- a/frontends/calculator/CEdev/lib/shared/fpdiv.src +++ b/frontends/calculator/CEdev/lib/shared/fpdiv.src @@ -1,28 +1,28 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; IEEE Single precision division -; -; INPUTS: -; Operand1: -; AuBC : 32 bit IEEE format -; -; Operand2: -; EuHL : 32 bit IEEE format divisor -; -; OUTPUTS: -; Result: AuBC : 32 bit IEEE Quotient. -; Registers Used: -; flags -; -;-------------------------------------------------------------- - .def __fdiv - .assume adl=1 - -__fdiv equ 000278h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; IEEE Single precision division
+;
+; INPUTS:
+; Operand1:
+; AuBC : 32 bit IEEE format
+;
+; Operand2:
+; EuHL : 32 bit IEEE format divisor
+;
+; OUTPUTS:
+; Result: AuBC : 32 bit IEEE Quotient.
+; Registers Used:
+; flags
+;
+;--------------------------------------------------------------
+ .def __fdiv
+ .assume adl=1
+
+__fdiv equ 000278h
diff --git a/frontends/calculator/CEdev/lib/shared/fpftol.src b/frontends/calculator/CEdev/lib/shared/fpftol.src index bc4e01e..4e21a05 100644 --- a/frontends/calculator/CEdev/lib/shared/fpftol.src +++ b/frontends/calculator/CEdev/lib/shared/fpftol.src @@ -1,20 +1,20 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; IEEE Single precision to long. -; -; INPUTS: abc: 32-bit IEEE Single precision. -; -; OUTPUTS: abc: 32-bit signed long. -; -;-------------------------------------------------------------- - .def __ftol - .assume adl=1 - -__ftol equ 00027Ch +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; IEEE Single precision to long.
+;
+; INPUTS: abc: 32-bit IEEE Single precision.
+;
+; OUTPUTS: abc: 32-bit signed long.
+;
+;--------------------------------------------------------------
+ .def __ftol
+ .assume adl=1
+
+__ftol equ 00027Ch
diff --git a/frontends/calculator/CEdev/lib/shared/fpltof.src b/frontends/calculator/CEdev/lib/shared/fpltof.src index ba2e70f..19b4dbb 100644 --- a/frontends/calculator/CEdev/lib/shared/fpltof.src +++ b/frontends/calculator/CEdev/lib/shared/fpltof.src @@ -1,20 +1,20 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; Signed long to IEEE Single precision. -; -; INPUTS: AuBC 32-bit signed long. -; -; OUTPUTS: AuBC 32-bit IEEE Single precision. -; -;-------------------------------------------------------------- - .def __ltof - .assume adl=1 - -__ltof equ 000284h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; Signed long to IEEE Single precision.
+;
+; INPUTS: AuBC 32-bit signed long.
+;
+; OUTPUTS: AuBC 32-bit IEEE Single precision.
+;
+;--------------------------------------------------------------
+ .def __ltof
+ .assume adl=1
+
+__ltof equ 000284h
diff --git a/frontends/calculator/CEdev/lib/shared/fpmul.src b/frontends/calculator/CEdev/lib/shared/fpmul.src index 7b59483..3080acd 100644 --- a/frontends/calculator/CEdev/lib/shared/fpmul.src +++ b/frontends/calculator/CEdev/lib/shared/fpmul.src @@ -1,26 +1,26 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;------------------------------------------------------------------------- -; IEEE Single precision multiply -; Input: -; Operand1: -; AuBC : 32 bit -; -; Operand2: -; EuHL : 32 bit -; -; Output: -; Result: AuBC : 32 bit -; Registers Used: -; flags -; -;------------------------------------------------------------------------- - .def __fmul - .assume adl=1 - -__fmul equ 000288h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;-------------------------------------------------------------------------
+; IEEE Single precision multiply
+; Input:
+; Operand1:
+; AuBC : 32 bit
+;
+; Operand2:
+; EuHL : 32 bit
+;
+; Output:
+; Result: AuBC : 32 bit
+; Registers Used:
+; flags
+;
+;-------------------------------------------------------------------------
+ .def __fmul
+ .assume adl=1
+
+__fmul equ 000288h
diff --git a/frontends/calculator/CEdev/lib/shared/fpneg.src b/frontends/calculator/CEdev/lib/shared/fpneg.src index 9de1421..06e6643 100644 --- a/frontends/calculator/CEdev/lib/shared/fpneg.src +++ b/frontends/calculator/CEdev/lib/shared/fpneg.src @@ -1,32 +1,32 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; IEEE Negate. -; -; INPUTS: -; AuBC: 32-bit IEEE Single Precision. -; -; OUTPUTS: -; AuBC: 32-bit IEEE Single Precision. -; -;-------------------------------------------------------------- - .def __fneg - .assume adl=1 - -__fneg: - or a,a - jr nz,__noexit - push hl - sbc hl,hl - sbc hl,bc - pop hl - ret z -__noexit: - xor a,80h - ret +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; IEEE Negate.
+;
+; INPUTS:
+; AuBC: 32-bit IEEE Single Precision.
+;
+; OUTPUTS:
+; AuBC: 32-bit IEEE Single Precision.
+;
+;--------------------------------------------------------------
+ .def __fneg
+ .assume adl=1
+
+__fneg:
+ or a,a
+ jr nz,__noexit
+ push hl
+ sbc hl,hl
+ sbc hl,bc
+ pop hl
+ ret z
+__noexit:
+ xor a,80h
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/fppack.src b/frontends/calculator/CEdev/lib/shared/fppack.src index fe14285..6dad178 100644 --- a/frontends/calculator/CEdev/lib/shared/fppack.src +++ b/frontends/calculator/CEdev/lib/shared/fppack.src @@ -1,28 +1,28 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; Pack IEEE operand of dyadic operations. -; -; INPUTS: -; AuBC: 2s-comp mantissa+fraction (9+23 bit) -; E: Exponent. -; D: Sign. -; -; OUTPUTS: AuBC: 32 bit IEEE float. -; -; A AAAAAAB BBBBBBBBBBBBBBCCCCCCCCC -; S EEEEEEE FFFFFFFFFFFFFFFFFFFFFFF -; 0 1 8 9 31 -; MODIFIES: -; flags -;-------------------------------------------------------------- - .def __fppack - .assume adl=1 - -__fppack equ 00026Ch +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; Pack IEEE operand of dyadic operations.
+;
+; INPUTS:
+; AuBC: 2s-comp mantissa+fraction (9+23 bit)
+; E: Exponent.
+; D: Sign.
+;
+; OUTPUTS: AuBC: 32 bit IEEE float.
+;
+; A AAAAAAB BBBBBBBBBBBBBBCCCCCCCCC
+; S EEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
+; 0 1 8 9 31
+; MODIFIES:
+; flags
+;--------------------------------------------------------------
+ .def __fppack
+ .assume adl=1
+
+__fppack equ 00026Ch
diff --git a/frontends/calculator/CEdev/lib/shared/fpsub.src b/frontends/calculator/CEdev/lib/shared/fpsub.src index daaf034..cefa0e3 100644 --- a/frontends/calculator/CEdev/lib/shared/fpsub.src +++ b/frontends/calculator/CEdev/lib/shared/fpsub.src @@ -1,27 +1,27 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; IEEE Single precision sub -; Input: -; Operand1: -; abc : 32 bit IEEE single precision -; -; Operand2: -; ehl : 32 bit IEEE single precision -; -; Output: -; Result: abc : 32 bit IEEE single precision (abc - ehl) -; Registers Used: - -;------------------------------------------------------------------------- - .def __fsub - .ref __fadd - .assume adl=1 - -__fsub equ 000290h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; IEEE Single precision sub
+; Input:
+; Operand1:
+; abc : 32 bit IEEE single precision
+;
+; Operand2:
+; ehl : 32 bit IEEE single precision
+;
+; Output:
+; Result: abc : 32 bit IEEE single precision (abc - ehl)
+; Registers Used:
+
+;-------------------------------------------------------------------------
+ .def __fsub
+ .ref __fadd
+ .assume adl=1
+
+__fsub equ 000290h
diff --git a/frontends/calculator/CEdev/lib/shared/fpultof.src b/frontends/calculator/CEdev/lib/shared/fpultof.src index 45fe5f4..5a91730 100644 --- a/frontends/calculator/CEdev/lib/shared/fpultof.src +++ b/frontends/calculator/CEdev/lib/shared/fpultof.src @@ -1,22 +1,22 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; Unsigned long to IEEE Single precision. -; -; INPUTS: -; abc: 32-bit unsigned long -; -; OUTPUTS: -; abc: IEEE Single precision. -; -;-------------------------------------------------------------- - .def __ultof - .assume adl=1 - -__ultof equ 000280h +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; Unsigned long to IEEE Single precision.
+;
+; INPUTS:
+; abc: 32-bit unsigned long
+;
+; OUTPUTS:
+; abc: IEEE Single precision.
+;
+;--------------------------------------------------------------
+ .def __ultof
+ .assume adl=1
+
+__ultof equ 000280h
diff --git a/frontends/calculator/CEdev/lib/shared/fpupop1.src b/frontends/calculator/CEdev/lib/shared/fpupop1.src index 4a7064f..e0c623d 100644 --- a/frontends/calculator/CEdev/lib/shared/fpupop1.src +++ b/frontends/calculator/CEdev/lib/shared/fpupop1.src @@ -1,48 +1,48 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; Unpack IEEE op1 of dyadic operations. -; -; INPUTS: AuBC: 32bits -; -; A AAAAAAAB BBBBBBBBBBBBBBBCCCCCCCC -; S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF -; 0 1 8 9 31 -; -; OUTPUTS: uBC: Mantissa -; A: Exponent -; D: Sign Bit -; ZERO FLAG Set if op was zero. -; -; MODIFIES: -; flags -;-------------------------------------------------------------- - .def __fpupop1 - .assume adl=1 - -__fpupop1: - push ix - ld ix,0 - add ix,sp - push bc - rlc (ix-1) ;move high-bit to low-bit - scf - rr (ix-1) ;carry = exponent low-bit, high-bit = 1 - pop bc ;restore modified mantissa - rl a ;compute exponent, carry = sign - ld d,0 - jr nz,nzero ;skip if exponent non-zero - - ld bc,0 ;clear mantissa - or a,a ;clear carry -nzero: - rl d ;set 1 if negative operand - or a,a ;set Z/NZ - pop ix - ret +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; Unpack IEEE op1 of dyadic operations.
+;
+; INPUTS: AuBC: 32bits
+;
+; A AAAAAAAB BBBBBBBBBBBBBBBCCCCCCCC
+; S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
+; 0 1 8 9 31
+;
+; OUTPUTS: uBC: Mantissa
+; A: Exponent
+; D: Sign Bit
+; ZERO FLAG Set if op was zero.
+;
+; MODIFIES:
+; flags
+;--------------------------------------------------------------
+ .def __fpupop1
+ .assume adl=1
+
+__fpupop1:
+ push ix
+ ld ix,0
+ add ix,sp
+ push bc
+ rlc (ix-1) ;move high-bit to low-bit
+ scf
+ rr (ix-1) ;carry = exponent low-bit, high-bit = 1
+ pop bc ;restore modified mantissa
+ rl a ;compute exponent, carry = sign
+ ld d,0
+ jr nz,nzero ;skip if exponent non-zero
+
+ ld bc,0 ;clear mantissa
+ or a,a ;clear carry
+nzero:
+ rl d ;set 1 if negative operand
+ or a,a ;set Z/NZ
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/fpupop2.src b/frontends/calculator/CEdev/lib/shared/fpupop2.src index 8461f59..e5e899b 100644 --- a/frontends/calculator/CEdev/lib/shared/fpupop2.src +++ b/frontends/calculator/CEdev/lib/shared/fpupop2.src @@ -1,47 +1,47 @@ -;-------------------------------------------------------------- -; -; Code Generation Helper -; For the Zilog eZ80 C Compiler -; Copyright 1992-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -;-------------------------------------------------------------- -; -; Unpack IEEE op2 of dyadic operations. -; -; INPUTS: EuHL: 32 bits -; -; E EEEEEEEH HHHHHHHHHHHHHHHLLLLLLLL -; S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF -; 0 1 8 9 31 -; -; OUTPUTS: uHL: Mantissa -; E: Exponent -; D: Sign Bit -; ZERO FLAG Set if op was zero. -; -; MODIFIES: -; flags -;-------------------------------------------------------------- - .def __fpupop2 - .assume adl=1 - -__fpupop2: - push bc - ld bc,0800000h - add hl,bc - jr nc,ncarry - add hl,bc - scf -ncarry: - ld d,c - pop bc - rl e - jr nz,nzero - or a,a - sbc hl,hl -nzero: - rl d - inc e - dec e - ret +;--------------------------------------------------------------
+;
+; Code Generation Helper
+; For the Zilog eZ80 C Compiler
+; Copyright 1992-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;--------------------------------------------------------------
+;
+; Unpack IEEE op2 of dyadic operations.
+;
+; INPUTS: EuHL: 32 bits
+;
+; E EEEEEEEH HHHHHHHHHHHHHHHLLLLLLLL
+; S EEEEEEEE FFFFFFFFFFFFFFFFFFFFFFF
+; 0 1 8 9 31
+;
+; OUTPUTS: uHL: Mantissa
+; E: Exponent
+; D: Sign Bit
+; ZERO FLAG Set if op was zero.
+;
+; MODIFIES:
+; flags
+;--------------------------------------------------------------
+ .def __fpupop2
+ .assume adl=1
+
+__fpupop2:
+ push bc
+ ld bc,0800000h
+ add hl,bc
+ jr nc,ncarry
+ add hl,bc
+ scf
+ncarry:
+ ld d,c
+ pop bc
+ rl e
+ jr nz,nzero
+ or a,a
+ sbc hl,hl
+nzero:
+ rl d
+ inc e
+ dec e
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/frameset.src b/frontends/calculator/CEdev/lib/shared/frameset.src index 669a9d2..c9e7848 100644 --- a/frontends/calculator/CEdev/lib/shared/frameset.src +++ b/frontends/calculator/CEdev/lib/shared/frameset.src @@ -1,12 +1,12 @@ - .assume adl=1 - .def __frameset - -__frameset: - pop de - push ix - ld ix,0 - add ix,sp - add hl,sp - ld sp,hl - ex de,hl + .assume adl=1
+ .def __frameset
+
+__frameset:
+ pop de
+ push ix
+ ld ix,0
+ add ix,sp
+ add hl,sp
+ ld sp,hl
+ ex de,hl
jp (hl)
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/frameset0.src b/frontends/calculator/CEdev/lib/shared/frameset0.src index 061a597..d15c47e 100644 --- a/frontends/calculator/CEdev/lib/shared/frameset0.src +++ b/frontends/calculator/CEdev/lib/shared/frameset0.src @@ -1,9 +1,9 @@ - .assume adl=1 - .def __frameset0 - -__frameset0: - pop hl - push ix - ld ix,0 - add ix,sp + .assume adl=1
+ .def __frameset0
+
+__frameset0:
+ pop hl
+ push ix
+ ld ix,0
+ add ix,sp
jp (hl)
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/frbmuls.src b/frontends/calculator/CEdev/lib/shared/frbmuls.src index c415d42..3897459 100644 --- a/frontends/calculator/CEdev/lib/shared/frbmuls.src +++ b/frontends/calculator/CEdev/lib/shared/frbmuls.src @@ -1,53 +1,53 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract short Multiplication signed. -; -; Input: -; Operand1: -; H : 8 bits -; -; Operand2: -; L : 8 bits -; -; Output: -; Result: A : 8 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frbmuls - .assume adl=1 - -__frbmuls: - push hl - ;; - ;; Check sign info - ;; - xor a,a - rl h - jr nc,_L0 - sub a,h - ld h,a -_L0: - xor a,a - rl l - jr nc,_L1 - sub a,l - ld l,a -_L1: - mlt hl - ld a,h - pop hl - or a,a - rra - adc a,0h - push af - ld a,h - xor a,l - jp p,_L2 - pop af - neg - ret -_L2: - pop af - ret - +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract short Multiplication signed.
+;
+; Input:
+; Operand1:
+; H : 8 bits
+;
+; Operand2:
+; L : 8 bits
+;
+; Output:
+; Result: A : 8 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frbmuls
+ .assume adl=1
+
+__frbmuls:
+ push hl
+ ;;
+ ;; Check sign info
+ ;;
+ xor a,a
+ rl h
+ jr nc,_L0
+ sub a,h
+ ld h,a
+_L0:
+ xor a,a
+ rl l
+ jr nc,_L1
+ sub a,l
+ ld l,a
+_L1:
+ mlt hl
+ ld a,h
+ pop hl
+ or a,a
+ rra
+ adc a,0h
+ push af
+ ld a,h
+ xor a,l
+ jp p,_L2
+ pop af
+ neg
+ ret
+_L2:
+ pop af
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/frbtof.src b/frontends/calculator/CEdev/lib/shared/frbtof.src index 1967abb..7d9f158 100644 --- a/frontends/calculator/CEdev/lib/shared/frbtof.src +++ b/frontends/calculator/CEdev/lib/shared/frbtof.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract unsigned char to float conversion. -; -; Input: -; Operand1: -; A : 8 bits -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frbtof - .assume adl=1 - -__frbtof equ 00029Ch +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract unsigned char to float conversion.
+;
+; Input:
+; Operand1:
+; A : 8 bits
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frbtof
+ .assume adl=1
+
+__frbtof equ 00029Ch
diff --git a/frontends/calculator/CEdev/lib/shared/frftob.src b/frontends/calculator/CEdev/lib/shared/frftob.src index 39065d8..99cb225 100644 --- a/frontends/calculator/CEdev/lib/shared/frftob.src +++ b/frontends/calculator/CEdev/lib/shared/frftob.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; float to fract char conversion. -; -; Input: -; Operand1: -; eHL : 32 bits -; -; Output: -; Result: A : 8 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frftob - .assume adl=1 - -__frftob equ 0002A0h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; float to fract char conversion.
+;
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Output:
+; Result: A : 8 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frftob
+ .assume adl=1
+
+__frftob equ 0002A0h
diff --git a/frontends/calculator/CEdev/lib/shared/frftoi.src b/frontends/calculator/CEdev/lib/shared/frftoi.src index 048c298..6f4706d 100644 --- a/frontends/calculator/CEdev/lib/shared/frftoi.src +++ b/frontends/calculator/CEdev/lib/shared/frftoi.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; float to fract integer conversion. -; -; Input: -; Operand1: -; eHL : 32 bits -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frftoi - .assume adl=1 - -__frftoi equ 0002A8h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; float to fract integer conversion.
+;
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frftoi
+ .assume adl=1
+
+__frftoi equ 0002A8h
diff --git a/frontends/calculator/CEdev/lib/shared/frftos.src b/frontends/calculator/CEdev/lib/shared/frftos.src index b2f71b1..17f1bcb 100644 --- a/frontends/calculator/CEdev/lib/shared/frftos.src +++ b/frontends/calculator/CEdev/lib/shared/frftos.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; float to fract short conversion. -; -; Input: -; Operand1: -; eHL : 32 bits -; -; Output: -; Result: HL : 16 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frftos - .assume adl=1 - -__frftos equ 0002B0h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; float to fract short conversion.
+;
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Output:
+; Result: HL : 16 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frftos
+ .assume adl=1
+
+__frftos equ 0002B0h
diff --git a/frontends/calculator/CEdev/lib/shared/frftoub.src b/frontends/calculator/CEdev/lib/shared/frftoub.src index e07b750..da46faf 100644 --- a/frontends/calculator/CEdev/lib/shared/frftoub.src +++ b/frontends/calculator/CEdev/lib/shared/frftoub.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; float to fract unsigned char conversion. -; -; Input: -; Operand1: -; eHL : 32 bits -; -; Output: -; Result: A : 8 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frftoub - .assume adl=1 - -__frftoub equ 0002A4h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; float to fract unsigned char conversion.
+;
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Output:
+; Result: A : 8 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frftoub
+ .assume adl=1
+
+__frftoub equ 0002A4h
diff --git a/frontends/calculator/CEdev/lib/shared/frftoui.src b/frontends/calculator/CEdev/lib/shared/frftoui.src index 07ef9c0..0136f56 100644 --- a/frontends/calculator/CEdev/lib/shared/frftoui.src +++ b/frontends/calculator/CEdev/lib/shared/frftoui.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; float to fract unsigned integer conversion. -; -; Input: -; Operand1: -; eHL : 32 bits -; -; Output: -; Result: HL : 24 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frftoui - .assume adl=1 - -__frftoui equ 0002ACh +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; float to fract unsigned integer conversion.
+;
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Output:
+; Result: HL : 24 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frftoui
+ .assume adl=1
+
+__frftoui equ 0002ACh
diff --git a/frontends/calculator/CEdev/lib/shared/frftous.src b/frontends/calculator/CEdev/lib/shared/frftous.src index 0fbb6b2..12b743e 100644 --- a/frontends/calculator/CEdev/lib/shared/frftous.src +++ b/frontends/calculator/CEdev/lib/shared/frftous.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; float to fract unsigned short conversion. -; -; Input: -; Operand1: -; eHL : 32 bits -; -; Output: -; Result: HL : 16 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frftous - .assume adl=1 - -__frftous equ 0002B4h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; float to fract unsigned short conversion.
+;
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Output:
+; Result: HL : 16 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frftous
+ .assume adl=1
+
+__frftous equ 0002B4h
diff --git a/frontends/calculator/CEdev/lib/shared/frimuls.src b/frontends/calculator/CEdev/lib/shared/frimuls.src index 955d658..bc886a5 100644 --- a/frontends/calculator/CEdev/lib/shared/frimuls.src +++ b/frontends/calculator/CEdev/lib/shared/frimuls.src @@ -1,81 +1,81 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract interger Multiplication Unsigned. -; -; Input: -; Operand1: -; uHL : 24 bits -; -; Operand2: -; uBC : 24 bits -; -; Output: -; Result: uHL : 24 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .assume adl=1 - .def __frimuls - .ref __frimulu - -__frimuls: - push af - push de - push bc - push hl - ;; - ;; Check sign info - ;; - add hl,hl - jr nc,_L0 - ex de,hl - or a,a - sbc hl,hl - sbc hl,de -_L0: - ex de,hl - or a,a - sbc hl,hl - add hl,bc - add hl,hl - jr nc,_L1 - or a,a - sbc hl,hl - sbc hl,bc - add hl,hl -_L1: - ld bc,hl - ex de,hl - call __frimulu - push hl - ex de,hl - ld hl,2 - add hl,sp - rr (hl) - rr d - rr e - pop hl - ld h,d - ld l,e - ;; - ;; Check signs - ;; - ex de,hl - ld hl,2 - add hl,sp - ld a,(hl) - inc hl - ld sp,hl - inc hl - inc hl - xor a,(hl) - jp p,_L2 - sbc hl,hl - sbc hl,de - ex de,hl -_L2: - ex de,hl - pop bc - pop de - pop af - ret +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract interger Multiplication Unsigned.
+;
+; Input:
+; Operand1:
+; uHL : 24 bits
+;
+; Operand2:
+; uBC : 24 bits
+;
+; Output:
+; Result: uHL : 24 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .assume adl=1
+ .def __frimuls
+ .ref __frimulu
+
+__frimuls:
+ push af
+ push de
+ push bc
+ push hl
+ ;;
+ ;; Check sign info
+ ;;
+ add hl,hl
+ jr nc,_L0
+ ex de,hl
+ or a,a
+ sbc hl,hl
+ sbc hl,de
+_L0:
+ ex de,hl
+ or a,a
+ sbc hl,hl
+ add hl,bc
+ add hl,hl
+ jr nc,_L1
+ or a,a
+ sbc hl,hl
+ sbc hl,bc
+ add hl,hl
+_L1:
+ ld bc,hl
+ ex de,hl
+ call __frimulu
+ push hl
+ ex de,hl
+ ld hl,2
+ add hl,sp
+ rr (hl)
+ rr d
+ rr e
+ pop hl
+ ld h,d
+ ld l,e
+ ;;
+ ;; Check signs
+ ;;
+ ex de,hl
+ ld hl,2
+ add hl,sp
+ ld a,(hl)
+ inc hl
+ ld sp,hl
+ inc hl
+ inc hl
+ xor a,(hl)
+ jp p,_L2
+ sbc hl,hl
+ sbc hl,de
+ ex de,hl
+_L2:
+ ex de,hl
+ pop bc
+ pop de
+ pop af
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/frimulu.src b/frontends/calculator/CEdev/lib/shared/frimulu.src index d008a49..1f95434 100644 --- a/frontends/calculator/CEdev/lib/shared/frimulu.src +++ b/frontends/calculator/CEdev/lib/shared/frimulu.src @@ -1,112 +1,112 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract interger Multiplication Unsigned. -; -; Input: -; Operand1: -; uHL : 24 bits -; -; Operand2: -; uBC : 24 bits -; -; Output: -; Result: uHL : 24 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .assume adl=1 - .def __frimulu - -__frimulu: - push af - push de - push iy - push bc - push hl - ld d,l - ld e,c - mlt de - ld a,d - ld d,h - ld e,b - ld b,h - ld h,e - mlt hl - mlt bc - mlt de - add a,c - ld c,a - ld a,b - adc a,0h - ld b,a - add.s hl,bc - jr nc,_L0 - inc d -_L0: - ld iy,0h - add iy,sp - ld b,(iy+2) - ld c,(iy+5) - mlt bc - ld a,h - add a,e - ld e,a - jr nc,_L1 - inc d - jr nz,_L1 - inc bc -_L1: - ld h,(iy+2) - ld l,(iy+3) - mlt hl - - ld a,l ;approximation - add a,80h - ld l,a - ld a,h - adc a,0h - ld h,a - - add.s hl,de - jr nc,_L2 - inc bc -_L2: - ld d,(iy+0) - ld e,(iy+5) - mlt de - add.s hl,de - jr nc,_L3 - inc bc -_L3: - ld a,h - ld d,(iy+2) - ld e,(iy+4) - ld h,(iy+1) - ld l,(iy+5) - mlt de - mlt hl - add.s hl,de - jr nc,_L4 - inc b -_L4: - add a,l - ld l,a - ld a,h - adc a,c - ld h,a - jr nc,_L5 - inc b -_L5: - ex de,hl - push bc - dec sp - pop hl - inc sp - ld h,d - ld l,e - pop bc - pop bc - pop iy - pop de - pop af - ret +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract interger Multiplication Unsigned.
+;
+; Input:
+; Operand1:
+; uHL : 24 bits
+;
+; Operand2:
+; uBC : 24 bits
+;
+; Output:
+; Result: uHL : 24 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .assume adl=1
+ .def __frimulu
+
+__frimulu:
+ push af
+ push de
+ push iy
+ push bc
+ push hl
+ ld d,l
+ ld e,c
+ mlt de
+ ld a,d
+ ld d,h
+ ld e,b
+ ld b,h
+ ld h,e
+ mlt hl
+ mlt bc
+ mlt de
+ add a,c
+ ld c,a
+ ld a,b
+ adc a,0h
+ ld b,a
+ add.s hl,bc
+ jr nc,_L0
+ inc d
+_L0:
+ ld iy,0h
+ add iy,sp
+ ld b,(iy+2)
+ ld c,(iy+5)
+ mlt bc
+ ld a,h
+ add a,e
+ ld e,a
+ jr nc,_L1
+ inc d
+ jr nz,_L1
+ inc bc
+_L1:
+ ld h,(iy+2)
+ ld l,(iy+3)
+ mlt hl
+
+ ld a,l ;approximation
+ add a,80h
+ ld l,a
+ ld a,h
+ adc a,0h
+ ld h,a
+
+ add.s hl,de
+ jr nc,_L2
+ inc bc
+_L2:
+ ld d,(iy+0)
+ ld e,(iy+5)
+ mlt de
+ add.s hl,de
+ jr nc,_L3
+ inc bc
+_L3:
+ ld a,h
+ ld d,(iy+2)
+ ld e,(iy+4)
+ ld h,(iy+1)
+ ld l,(iy+5)
+ mlt de
+ mlt hl
+ add.s hl,de
+ jr nc,_L4
+ inc b
+_L4:
+ add a,l
+ ld l,a
+ ld a,h
+ adc a,c
+ ld h,a
+ jr nc,_L5
+ inc b
+_L5:
+ ex de,hl
+ push bc
+ dec sp
+ pop hl
+ inc sp
+ ld h,d
+ ld l,e
+ pop bc
+ pop bc
+ pop iy
+ pop de
+ pop af
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/fritof.src b/frontends/calculator/CEdev/lib/shared/fritof.src index d35fb32..fddf7ab 100644 --- a/frontends/calculator/CEdev/lib/shared/fritof.src +++ b/frontends/calculator/CEdev/lib/shared/fritof.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract integer to float conversion. -; -; Input: -; Operand1: -; HL : 24 bits -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __fritof - .assume adl=1 - -__fritof equ 0002B8h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract integer to float conversion.
+;
+; Input:
+; Operand1:
+; HL : 24 bits
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __fritof
+ .assume adl=1
+
+__fritof equ 0002B8h
diff --git a/frontends/calculator/CEdev/lib/shared/frsmuls.src b/frontends/calculator/CEdev/lib/shared/frsmuls.src index b337a01..fb0e389 100644 --- a/frontends/calculator/CEdev/lib/shared/frsmuls.src +++ b/frontends/calculator/CEdev/lib/shared/frsmuls.src @@ -1,61 +1,61 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract short Multiplication signed. -; -; Input: -; Operand1: -; HL : 16 bits -; -; Operand2: -; BC : 16 bits -; -; Output: -; Result: HL : 16 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .assume adl=1 - .def __frsmuls - .ref __frsmulu - -__frsmuls: - push af - push de - push bc - push hl - ;; - ;; Check sign info - ;; - add.s hl,hl - jr nc,_L0 - ex de,hl - or a,a - sbc hl,hl - sbc hl,de -_L0: - rl c - rl b - jr nc,_L1 - ex de,hl - or a,a - sbc hl,hl - sbc hl,bc - ld b,h - ld c,l - ex de,hl -_L1: - call __frsmulu - srl h - rr l - pop af - pop bc - xor a,b - jp p,_L2 - ex de,hl - sbc hl,hl - sbc hl,de -_L2: - pop de - pop af - ret - +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract short Multiplication signed.
+;
+; Input:
+; Operand1:
+; HL : 16 bits
+;
+; Operand2:
+; BC : 16 bits
+;
+; Output:
+; Result: HL : 16 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .assume adl=1
+ .def __frsmuls
+ .ref __frsmulu
+
+__frsmuls:
+ push af
+ push de
+ push bc
+ push hl
+ ;;
+ ;; Check sign info
+ ;;
+ add.s hl,hl
+ jr nc,_L0
+ ex de,hl
+ or a,a
+ sbc hl,hl
+ sbc hl,de
+_L0:
+ rl c
+ rl b
+ jr nc,_L1
+ ex de,hl
+ or a,a
+ sbc hl,hl
+ sbc hl,bc
+ ld b,h
+ ld c,l
+ ex de,hl
+_L1:
+ call __frsmulu
+ srl h
+ rr l
+ pop af
+ pop bc
+ xor a,b
+ jp p,_L2
+ ex de,hl
+ sbc hl,hl
+ sbc hl,de
+_L2:
+ pop de
+ pop af
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/frsmulu.src b/frontends/calculator/CEdev/lib/shared/frsmulu.src index ca9e7f6..30ee909 100644 --- a/frontends/calculator/CEdev/lib/shared/frsmulu.src +++ b/frontends/calculator/CEdev/lib/shared/frsmulu.src @@ -1,51 +1,51 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract interger Multiplication Unsigned. -; -; Input: -; Operand1: -; HL : 16 bits -; -; Operand2: -; BC : 16 bits -; -; Output: -; Result: HL : 16 bits -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frsmulu - .assume adl=1 - -__frsmulu: - push af - push de - push bc - ld d,l - ld e,c - mlt de - ld a,d - ld d,h - ld e,b - ld b,h - ld h,e - mlt hl - mlt bc - mlt de - add a,c - jr nc,_L0 - inc de -_L0: - ld c,a - xor a,a - add hl,bc - adc a,d - ld d,a - ld l,h - ld h,0h - ex de,hl - add hl,de - pop bc - pop de - pop af - ret +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract interger Multiplication Unsigned.
+;
+; Input:
+; Operand1:
+; HL : 16 bits
+;
+; Operand2:
+; BC : 16 bits
+;
+; Output:
+; Result: HL : 16 bits
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frsmulu
+ .assume adl=1
+
+__frsmulu:
+ push af
+ push de
+ push bc
+ ld d,l
+ ld e,c
+ mlt de
+ ld a,d
+ ld d,h
+ ld e,b
+ ld b,h
+ ld h,e
+ mlt hl
+ mlt bc
+ mlt de
+ add a,c
+ jr nc,_L0
+ inc de
+_L0:
+ ld c,a
+ xor a,a
+ add hl,bc
+ adc a,d
+ ld d,a
+ ld l,h
+ ld h,0h
+ ex de,hl
+ add hl,de
+ pop bc
+ pop de
+ pop af
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/frstof.src b/frontends/calculator/CEdev/lib/shared/frstof.src index a5e8003..03f0f56 100644 --- a/frontends/calculator/CEdev/lib/shared/frstof.src +++ b/frontends/calculator/CEdev/lib/shared/frstof.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract short to float conversion. -; -; Input: -; Operand1: -; HL : 24 bits -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frstof - .assume adl=1 - -__frstof equ 0002C0h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract short to float conversion.
+;
+; Input:
+; Operand1:
+; HL : 24 bits
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frstof
+ .assume adl=1
+
+__frstof equ 0002C0h
diff --git a/frontends/calculator/CEdev/lib/shared/frubtof.src b/frontends/calculator/CEdev/lib/shared/frubtof.src index 7a2a234..e4e6511 100644 --- a/frontends/calculator/CEdev/lib/shared/frubtof.src +++ b/frontends/calculator/CEdev/lib/shared/frubtof.src @@ -1,17 +1,17 @@ -; (c) Copyright 2004-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract unsigned char to float conversion. -; -; Input: -; Operand1: -; A : 8 bits -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frubtof - .assume adl=1 - -__frubtof equ 0002C4h +; (c) Copyright 2004-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract unsigned char to float conversion.
+;
+; Input:
+; Operand1:
+; A : 8 bits
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frubtof
+ .assume adl=1
+
+__frubtof equ 0002C4h
diff --git a/frontends/calculator/CEdev/lib/shared/fruitof.src b/frontends/calculator/CEdev/lib/shared/fruitof.src index a173276..2726889 100644 --- a/frontends/calculator/CEdev/lib/shared/fruitof.src +++ b/frontends/calculator/CEdev/lib/shared/fruitof.src @@ -1,17 +1,17 @@ -; (c) Copyright 2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract unsigned integer to float conversion. -; -; Input: -; Operand1: -; HL : 24 bits -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __fruitof - .assume adl=1 - -__fruitof equ 0002BCh +; (c) Copyright 2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract unsigned integer to float conversion.
+;
+; Input:
+; Operand1:
+; HL : 24 bits
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __fruitof
+ .assume adl=1
+
+__fruitof equ 0002BCh
diff --git a/frontends/calculator/CEdev/lib/shared/frustof.src b/frontends/calculator/CEdev/lib/shared/frustof.src index 4cf0ba8..9b10c57 100644 --- a/frontends/calculator/CEdev/lib/shared/frustof.src +++ b/frontends/calculator/CEdev/lib/shared/frustof.src @@ -1,17 +1,17 @@ -; (c) Copyright 2008 Zilog, Inc. -;------------------------------------------------------------------------- -; fract unsigned short to float conversion. -; -; Input: -; Operand1: -; HL : 16 bits -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __frustof - .assume adl=1 - -__frustof equ 0002C8h +; (c) Copyright 2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; fract unsigned short to float conversion.
+;
+; Input:
+; Operand1:
+; HL : 16 bits
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __frustof
+ .assume adl=1
+
+__frustof equ 0002C8h
diff --git a/frontends/calculator/CEdev/lib/shared/getstringinput.src b/frontends/calculator/CEdev/lib/shared/getstringinput.src index b3282c3..d29028e 100644 --- a/frontends/calculator/CEdev/lib/shared/getstringinput.src +++ b/frontends/calculator/CEdev/lib/shared/getstringinput.src @@ -1,136 +1,136 @@ -; --- -; void os_GetStringInput(char *string, char *buf, size_t size) -; --- - - .def _os_GetStringInput - .assume adl=1 - -kUp := 3 -kLeft := 2 -kDown := 4 -kEnter := 5 -kClear := 9 -kRight := 1 -curLock := 4 -flags := $D00080 -curRow := $D00595 -curUnder := $D00599 -_PutS := $207C0 -_PutC := $207B8 -_PutPS := $207C8 -_GetKey := $20D8C -_CursorOn := $208B0 -_CursorOff := $208A8 -_PullDownChk := $208BC -_ConvKeyToTok := $20E40 -_GetTokString := $20874 -_PutTokString := $20D74 - -_os_GetStringInput: - push ix - ld ix,0 - add ix,sp - ld hl,(ix+6) ; hl -> input string prompt - add hl,de - xor a,a - sbc hl,de - jr z,__nodisp - ld iy,flags - call _PutS -__nodisp: - ld hl,(curRow) - ld (__savecur),hl - ld a,(ix+12) - dec a - ld (ix+12),a - ld (ix+6),a -__start: - ld de,(ix+9) -__loop: - ld a,' ' - ld (curUnder),a - push de - push ix - call _CursorOn -__getkey: - call _GetKey - call _CursorOff - call _PullDownChk - call _CursorOn - jr c,__getkey - cp a,kLeft - jr z,__loop - cp a,kDown - jr z,__loop - cp a,kRight - jr z,__loop - cp a,kUp - jr z,__loop - cp a,kClear - jr z,__clearpop - cp a,kEnter - jr z,__done - call _ConvKeyToTok - call _GetTokString - pop ix - pop de - ld b,(hl) - inc hl - ld a,(ix+12) - sub a,b - jr nc,__notfull - ld b,(ix+12) - xor a,a -__notfull: - ld (ix+12),a -__draw: - ld a,(hl) - ld (de),a - inc hl - inc de - call _PutC - djnz __draw - ld a,(ix+12) - or a,a - jr nz,__loop -__full: - ld a,' ' - ld (curUnder),a - call _GetKey - cp a,kClear - jr z,__clear - cp a,kEnter - jr z,__exit - jr __full -__clearpop: - pop ix - pop de -__clear: -__savecur := $+1 - ld hl,0 - ld (curRow),hl - ld a,(ix+6) - ld b,(ix+12) - ld (ix+12),a - sub a,b - ld b,a - inc b -__clearloop: - ld a,' ' - call _PutC - djnz __clearloop - ld hl,(__savecur) - ld (curRow),hl - jr __start -__done: - pop ix - pop de -__exit: - ld a,' ' - ld (curUnder),a - xor a,a - ld (de),a - call _CursorOff - di - pop ix - ret +; ---
+; void os_GetStringInput(char *string, char *buf, size_t size)
+; ---
+
+ .def _os_GetStringInput
+ .assume adl=1
+
+kUp := 3
+kLeft := 2
+kDown := 4
+kEnter := 5
+kClear := 9
+kRight := 1
+curLock := 4
+flags := $D00080
+curRow := $D00595
+curUnder := $D00599
+_PutS := $207C0
+_PutC := $207B8
+_PutPS := $207C8
+_GetKey := $20D8C
+_CursorOn := $208B0
+_CursorOff := $208A8
+_PullDownChk := $208BC
+_ConvKeyToTok := $20E40
+_GetTokString := $20874
+_PutTokString := $20D74
+
+_os_GetStringInput:
+ push ix
+ ld ix,0
+ add ix,sp
+ ld hl,(ix+6) ; hl -> input string prompt
+ add hl,de
+ xor a,a
+ sbc hl,de
+ jr z,__nodisp
+ ld iy,flags
+ call _PutS
+__nodisp:
+ ld hl,(curRow)
+ ld (__savecur),hl
+ ld a,(ix+12)
+ dec a
+ ld (ix+12),a
+ ld (ix+6),a
+__start:
+ ld de,(ix+9)
+__loop:
+ ld a,' '
+ ld (curUnder),a
+ push de
+ push ix
+ call _CursorOn
+__getkey:
+ call _GetKey
+ call _CursorOff
+ call _PullDownChk
+ call _CursorOn
+ jr c,__getkey
+ cp a,kLeft
+ jr z,__loop
+ cp a,kDown
+ jr z,__loop
+ cp a,kRight
+ jr z,__loop
+ cp a,kUp
+ jr z,__loop
+ cp a,kClear
+ jr z,__clearpop
+ cp a,kEnter
+ jr z,__done
+ call _ConvKeyToTok
+ call _GetTokString
+ pop ix
+ pop de
+ ld b,(hl)
+ inc hl
+ ld a,(ix+12)
+ sub a,b
+ jr nc,__notfull
+ ld b,(ix+12)
+ xor a,a
+__notfull:
+ ld (ix+12),a
+__draw:
+ ld a,(hl)
+ ld (de),a
+ inc hl
+ inc de
+ call _PutC
+ djnz __draw
+ ld a,(ix+12)
+ or a,a
+ jr nz,__loop
+__full:
+ ld a,' '
+ ld (curUnder),a
+ call _GetKey
+ cp a,kClear
+ jr z,__clear
+ cp a,kEnter
+ jr z,__exit
+ jr __full
+__clearpop:
+ pop ix
+ pop de
+__clear:
+__savecur := $+1
+ ld hl,0
+ ld (curRow),hl
+ ld a,(ix+6)
+ ld b,(ix+12)
+ ld (ix+12),a
+ sub a,b
+ ld b,a
+ inc b
+__clearloop:
+ ld a,' '
+ call _PutC
+ djnz __clearloop
+ ld hl,(__savecur)
+ ld (curRow),hl
+ jr __start
+__done:
+ pop ix
+ pop de
+__exit:
+ ld a,' '
+ ld (curUnder),a
+ xor a,a
+ ld (de),a
+ call _CursorOff
+ di
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/iand.src b/frontends/calculator/CEdev/lib/shared/iand.src index 79d731c..0ddf272 100644 --- a/frontends/calculator/CEdev/lib/shared/iand.src +++ b/frontends/calculator/CEdev/lib/shared/iand.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer AND. -; Input: -; Operand1: -; hl : 24 bit -; -; Operand2: -; bc : 24 bit -; -; Output: -; Result: hl : 24 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __iand - .assume adl=1 - -__iand equ 000134h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer AND.
+; Input:
+; Operand1:
+; hl : 24 bit
+;
+; Operand2:
+; bc : 24 bit
+;
+; Output:
+; Result: hl : 24 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __iand
+ .assume adl=1
+
+__iand equ 000134h
diff --git a/frontends/calculator/CEdev/lib/shared/icmpzero.src b/frontends/calculator/CEdev/lib/shared/icmpzero.src index fced974..d264461 100644 --- a/frontends/calculator/CEdev/lib/shared/icmpzero.src +++ b/frontends/calculator/CEdev/lib/shared/icmpzero.src @@ -1,20 +1,20 @@ -; (c) Copyright 2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Set flag for comparison of 24-bit scalar with constant value zero -; Input: -; Operand1: HL register -; -; Output: -; Result: f register -; -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __icmpzero - .assume adl=1 - -__icmpzero: - add hl,de - or a,a - sbc hl,de - ret +; (c) Copyright 2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Set flag for comparison of 24-bit scalar with constant value zero
+; Input:
+; Operand1: HL register
+;
+; Output:
+; Result: f register
+;
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __icmpzero
+ .assume adl=1
+
+__icmpzero:
+ add hl,de
+ or a,a
+ sbc hl,de
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/idivs.src b/frontends/calculator/CEdev/lib/shared/idivs.src index 1c7bba1..a52e712 100644 --- a/frontends/calculator/CEdev/lib/shared/idivs.src +++ b/frontends/calculator/CEdev/lib/shared/idivs.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Signed Integer Division -; Input: -; Operand1: -; hl : 24 bits (dividend x) -; -; Operand2: -; bc : 24 bits (divisor y) -; -; Output: -; Result: hl : 24 bits -; -; Registers Used: -; a, de -;------------------------------------------------------------------------- - .def __idivs - .assume adl=1 - -__idivs equ 00013Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Signed Integer Division
+; Input:
+; Operand1:
+; hl : 24 bits (dividend x)
+;
+; Operand2:
+; bc : 24 bits (divisor y)
+;
+; Output:
+; Result: hl : 24 bits
+;
+; Registers Used:
+; a, de
+;-------------------------------------------------------------------------
+ .def __idivs
+ .assume adl=1
+
+__idivs equ 00013Ch
diff --git a/frontends/calculator/CEdev/lib/shared/idivu.src b/frontends/calculator/CEdev/lib/shared/idivu.src index 6fdcacc..6db78cf 100644 --- a/frontends/calculator/CEdev/lib/shared/idivu.src +++ b/frontends/calculator/CEdev/lib/shared/idivu.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Integer Division. -; Input: -; Operand1: -; uHL : 24 bit dividend -; -; Operand2: -; uBC : 24 bit divisor -; -; Output: -; Result: uHL: 24 bit quotient -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __idivu,__idvrmu - .assume adl=1 - -__idivu equ 000140h -__idvrmu equ 000144h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Integer Division.
+; Input:
+; Operand1:
+; uHL : 24 bit dividend
+;
+; Operand2:
+; uBC : 24 bit divisor
+;
+; Output:
+; Result: uHL: 24 bit quotient
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __idivu,__idvrmu
+ .assume adl=1
+
+__idivu equ 000140h
+__idvrmu equ 000144h
diff --git a/frontends/calculator/CEdev/lib/shared/ildix.src b/frontends/calculator/CEdev/lib/shared/ildix.src index 8702ff5..e6523cc 100644 --- a/frontends/calculator/CEdev/lib/shared/ildix.src +++ b/frontends/calculator/CEdev/lib/shared/ildix.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer load hl,(ix+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from ix -; -; Output: -; Result: hl : 24 bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __ildix - .assume adl=1 - -__ildix equ 000148h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer load hl,(ix+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+;
+; Output:
+; Result: hl : 24 bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __ildix
+ .assume adl=1
+
+__ildix equ 000148h
diff --git a/frontends/calculator/CEdev/lib/shared/ildiy.src b/frontends/calculator/CEdev/lib/shared/ildiy.src index 3883f15..07a02f2 100644 --- a/frontends/calculator/CEdev/lib/shared/ildiy.src +++ b/frontends/calculator/CEdev/lib/shared/ildiy.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer load hl,(iy+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from iy -; -; Output: -; Result: hl : 24 bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __ildiy - .assume adl=1 - -__ildiy equ 00014Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer load hl,(iy+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+;
+; Output:
+; Result: hl : 24 bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __ildiy
+ .assume adl=1
+
+__ildiy equ 00014Ch
diff --git a/frontends/calculator/CEdev/lib/shared/imuls.src b/frontends/calculator/CEdev/lib/shared/imuls.src index 6d70bc3..c67ab51 100644 --- a/frontends/calculator/CEdev/lib/shared/imuls.src +++ b/frontends/calculator/CEdev/lib/shared/imuls.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer Multiplication Signed. -; Input: -; Operand1: -; BC : 24 bits -; -; Operand2: -; HL : 24 bits -; -; Output: -; Result: hl : 24 bit -; Registers Used: -; de,af -;------------------------------------------------------------------------- - .def __imuls - .assume adl=1 - -__imuls equ 000154h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer Multiplication Signed.
+; Input:
+; Operand1:
+; BC : 24 bits
+;
+; Operand2:
+; HL : 24 bits
+;
+; Output:
+; Result: hl : 24 bit
+; Registers Used:
+; de,af
+;-------------------------------------------------------------------------
+ .def __imuls
+ .assume adl=1
+
+__imuls equ 000154h
diff --git a/frontends/calculator/CEdev/lib/shared/imulu.src b/frontends/calculator/CEdev/lib/shared/imulu.src index fd9c068..061efe2 100644 --- a/frontends/calculator/CEdev/lib/shared/imulu.src +++ b/frontends/calculator/CEdev/lib/shared/imulu.src @@ -1,24 +1,24 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer Multiplication Unsigned. -; Note: When multipying two n-bit values, the low-order n-bits -; of the product are the same, whether or not the values -; are considered signed or unsigned. -; Input: -; Operand1: -; uHL : 24 bits -; -; Operand2: -; uBC : 24 bits -; -; Output: -; Result: uHL : 24 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __imulu,__imul_b - .assume adl=1 - -__imul_b equ 000150h -__imulu equ 000158h - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer Multiplication Unsigned.
+; Note: When multipying two n-bit values, the low-order n-bits
+; of the product are the same, whether or not the values
+; are considered signed or unsigned.
+; Input:
+; Operand1:
+; uHL : 24 bits
+;
+; Operand2:
+; uBC : 24 bits
+;
+; Output:
+; Result: uHL : 24 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __imulu,__imul_b
+ .assume adl=1
+
+__imul_b equ 000150h
+__imulu equ 000158h
+
diff --git a/frontends/calculator/CEdev/lib/shared/indcall.src b/frontends/calculator/CEdev/lib/shared/indcall.src index 5f5a122..d8c8ea5 100644 --- a/frontends/calculator/CEdev/lib/shared/indcall.src +++ b/frontends/calculator/CEdev/lib/shared/indcall.src @@ -1,14 +1,14 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Indirect Call -; Input: -; Operand1: -; iy : 24 bit -; -; Output: -; Registers Used: -;------------------------------------------------------------------------- - .def __indcall - .assume adl=1 - -__indcall equ 00015Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Indirect Call
+; Input:
+; Operand1:
+; iy : 24 bit
+;
+; Output:
+; Registers Used:
+;-------------------------------------------------------------------------
+ .def __indcall
+ .assume adl=1
+
+__indcall equ 00015Ch
diff --git a/frontends/calculator/CEdev/lib/shared/ineg.src b/frontends/calculator/CEdev/lib/shared/ineg.src index 4bb0b46..3444991 100644 --- a/frontends/calculator/CEdev/lib/shared/ineg.src +++ b/frontends/calculator/CEdev/lib/shared/ineg.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer/short NEG. -; Input: -; Operand1: -; hl : 24/16 bit -; -; Output: -; Result: hl : 24/16 bit ( 0 - hl) -; Registers Used: -; a,de -;------------------------------------------------------------------------- - .def __ineg - .assume adl=1 - -__ineg equ 000160h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer/short NEG.
+; Input:
+; Operand1:
+; hl : 24/16 bit
+;
+; Output:
+; Result: hl : 24/16 bit ( 0 - hl)
+; Registers Used:
+; a,de
+;-------------------------------------------------------------------------
+ .def __ineg
+ .assume adl=1
+
+__ineg equ 000160h
diff --git a/frontends/calculator/CEdev/lib/shared/inot.src b/frontends/calculator/CEdev/lib/shared/inot.src index 8fcf888..74efd5b 100644 --- a/frontends/calculator/CEdev/lib/shared/inot.src +++ b/frontends/calculator/CEdev/lib/shared/inot.src @@ -1,15 +1,15 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer/Short NOT. -; Input: -; Operand1: -; hl : 24/16 bit -; -; Output: -; Result: hl : 24/16 bit -; Registers Used: -;------------------------------------------------------------------------- - .def __inot - .assume adl=1 - -__inot equ 000164h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer/Short NOT.
+; Input:
+; Operand1:
+; hl : 24/16 bit
+;
+; Output:
+; Result: hl : 24/16 bit
+; Registers Used:
+;-------------------------------------------------------------------------
+ .def __inot
+ .assume adl=1
+
+__inot equ 000164h
diff --git a/frontends/calculator/CEdev/lib/shared/interrupts.src b/frontends/calculator/CEdev/lib/shared/interrupts.src index 64d30d5..868906b 100644 --- a/frontends/calculator/CEdev/lib/shared/interrupts.src +++ b/frontends/calculator/CEdev/lib/shared/interrupts.src @@ -1,142 +1,142 @@ - .def _int_Initialize - .def _int_Handler - .def _int_SetVector - .def _int_Reset - .assume adl=1 - -;------------------------------------------------------------------------------- -; Interrupts equates -mpIntStatus equ 0F00000h -mpIntMask equ 0F00004h -mpIntAck equ 0F00008h -mpIntLachEnable equ 0F0000Ch -mpIntXor equ 0F00010h -mpIntStatusMasked equ 0F00014h - -intOnKey equ 1 -intTimer1 equ 2 -intTimer2 equ 4 -intTimer3 equ 8 -intOsTimer equ 10h -intKbd equ 400h -intLcd equ 800h -intRtc equ 1000h - -;------------------------------------------------------------------------------- -_int_Initialize: - di - ld de,lconf - ld hl,mpIntMask - ld bc,16 - ldir - ld hl,cconf - ld de,mpIntMask - ld bc,16 - ldir - ld hl,0D18879h - ld de,0C90611h - ld (hl),de - dec hl - ld (hl),0EDh - push hl - inc d - call 0D18878h - ld hl, 0E10010h | ((_int_Handler >> 8) & 000FF00h) - ld de, 0C3h | ((_int_Handler << 8) & 0FFFF00h) - ld (hl),h - inc hl - ld (hl),de - ld hl,0E30800h - ld bc,0401h - ld a,0E1h - call 00210E0h ; _Memset - ld hl,0E308h - ld i,hl - im 2 - ld d,3 - ret - -_int_Handler: - ex af,af' - exx - ld hl,(mpIntStatusMasked) - add hl,hl - inc hl - add hl,hl - xor a,a -isr_loop: - inc a - add hl,hl - jr nc,isr_loop -identified: - dec a - add a,a - add a,a - ld (isr_dispatch_smc+1),a - exx - ex af, af' -isr_dispatch_smc: - jr $+2 -iv_list: - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt - jp unhandledInt -unhandledInt: - ei - ret - -;------------------------------------------------------------------------------- -_int_SetVector: - ld iy,0 - add iy,sp - ld a,21 - ld l,(iy+3) - sub a,l - ld l,a - ld h,4 - mlt hl - ld de,iv_list+1 - add hl,de - ld de,(iy+6) - ld (hl),de - ret - -;------------------------------------------------------------------------------- -_int_Reset: - di - ld hl, lconf - ld de, mpIntMask - ld bc, 16 - ldir - im 1 - ret - segment bss -lconf: ds 16 - segment data -cconf: ; Mask - db 000h,000h,000h,000h - ; ACK - db 0FFh,0FFh,0FFh,0FFh - ; Latch - db 000h,000h,000h,000h - ; Invert - db 000h,000h,000h,000h + .def _int_Initialize
+ .def _int_Handler
+ .def _int_SetVector
+ .def _int_Reset
+ .assume adl=1
+
+;-------------------------------------------------------------------------------
+; Interrupts equates
+mpIntStatus equ 0F00000h
+mpIntMask equ 0F00004h
+mpIntAck equ 0F00008h
+mpIntLachEnable equ 0F0000Ch
+mpIntXor equ 0F00010h
+mpIntStatusMasked equ 0F00014h
+
+intOnKey equ 1
+intTimer1 equ 2
+intTimer2 equ 4
+intTimer3 equ 8
+intOsTimer equ 10h
+intKbd equ 400h
+intLcd equ 800h
+intRtc equ 1000h
+
+;-------------------------------------------------------------------------------
+_int_Initialize:
+ di
+ ld de,lconf
+ ld hl,mpIntMask
+ ld bc,16
+ ldir
+ ld hl,cconf
+ ld de,mpIntMask
+ ld bc,16
+ ldir
+ ld hl,0D18879h
+ ld de,0C90611h
+ ld (hl),de
+ dec hl
+ ld (hl),0EDh
+ push hl
+ inc d
+ call 0D18878h
+ ld hl, 0E10010h | ((_int_Handler >> 8) & 000FF00h)
+ ld de, 0C3h | ((_int_Handler << 8) & 0FFFF00h)
+ ld (hl),h
+ inc hl
+ ld (hl),de
+ ld hl,0E30800h
+ ld bc,0401h
+ ld a,0E1h
+ call 00210E0h ; _Memset
+ ld hl,0E308h
+ ld i,hl
+ im 2
+ ld d,3
+ ret
+
+_int_Handler:
+ ex af,af'
+ exx
+ ld hl,(mpIntStatusMasked)
+ add hl,hl
+ inc hl
+ add hl,hl
+ xor a,a
+isr_loop:
+ inc a
+ add hl,hl
+ jr nc,isr_loop
+identified:
+ dec a
+ add a,a
+ add a,a
+ ld (isr_dispatch_smc+1),a
+ exx
+ ex af, af'
+isr_dispatch_smc:
+ jr $+2
+iv_list:
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+ jp unhandledInt
+unhandledInt:
+ ei
+ ret
+
+;-------------------------------------------------------------------------------
+_int_SetVector:
+ ld iy,0
+ add iy,sp
+ ld a,21
+ ld l,(iy+3)
+ sub a,l
+ ld l,a
+ ld h,4
+ mlt hl
+ ld de,iv_list+1
+ add hl,de
+ ld de,(iy+6)
+ ld (hl),de
+ ret
+
+;-------------------------------------------------------------------------------
+_int_Reset:
+ di
+ ld hl, lconf
+ ld de, mpIntMask
+ ld bc, 16
+ ldir
+ im 1
+ ret
+ segment bss
+lconf: ds 16
+ segment data
+cconf: ; Mask
+ db 000h,000h,000h,000h
+ ; ACK
+ db 0FFh,0FFh,0FFh,0FFh
+ ; Latch
+ db 000h,000h,000h,000h
+ ; Invert
+ db 000h,000h,000h,000h
diff --git a/frontends/calculator/CEdev/lib/shared/ior.src b/frontends/calculator/CEdev/lib/shared/ior.src index 0edcd5a..c59a38c 100644 --- a/frontends/calculator/CEdev/lib/shared/ior.src +++ b/frontends/calculator/CEdev/lib/shared/ior.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer OR. -; Input: -; Operand1: -; HL : 24 bit -; -; Operand2: -; BC : 24 bit -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __ior - .assume adl=1 - -__ior equ 000168h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer OR.
+; Input:
+; Operand1:
+; HL : 24 bit
+;
+; Operand2:
+; BC : 24 bit
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __ior
+ .assume adl=1
+
+__ior equ 000168h
diff --git a/frontends/calculator/CEdev/lib/shared/irems.src b/frontends/calculator/CEdev/lib/shared/irems.src index ef4c8d7..b73666e 100644 --- a/frontends/calculator/CEdev/lib/shared/irems.src +++ b/frontends/calculator/CEdev/lib/shared/irems.src @@ -1,19 +1,19 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer Modulus Signed. -; Input: -; Operand1: -; HL : 24 bits (dividend) -; -; Operand2: -; BC : 24 bits (divisor) -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; de,af -;------------------------------------------------------------------------- - .def __irems - .assume adl=1 - -__irems equ 00016Ch +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer Modulus Signed.
+; Input:
+; Operand1:
+; HL : 24 bits (dividend)
+;
+; Operand2:
+; BC : 24 bits (divisor)
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; de,af
+;-------------------------------------------------------------------------
+ .def __irems
+ .assume adl=1
+
+__irems equ 00016Ch
diff --git a/frontends/calculator/CEdev/lib/shared/iremu.src b/frontends/calculator/CEdev/lib/shared/iremu.src index dac22a0..e519264 100644 --- a/frontends/calculator/CEdev/lib/shared/iremu.src +++ b/frontends/calculator/CEdev/lib/shared/iremu.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Integer Modulus -; Input: -; Operand1: -; uHL : 24 bits (dividend x) -; -; Operand2: -; uBC : 24 bits (divisor y) -; -; Output: -; Result: uHL : 24 bits (remainder) -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __iremu - .assume adl=1 - -__iremu equ 000170h - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Integer Modulus
+; Input:
+; Operand1:
+; uHL : 24 bits (dividend x)
+;
+; Operand2:
+; uBC : 24 bits (divisor y)
+;
+; Output:
+; Result: uHL : 24 bits (remainder)
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __iremu
+ .assume adl=1
+
+__iremu equ 000170h
+
diff --git a/frontends/calculator/CEdev/lib/shared/isalnum.src b/frontends/calculator/CEdev/lib/shared/isalnum.src index 12c28a1..7c38350 100644 --- a/frontends/calculator/CEdev/lib/shared/isalnum.src +++ b/frontends/calculator/CEdev/lib/shared/isalnum.src @@ -1,28 +1,28 @@ - .def _isalnum - .ref ___maptab - .assume adl=1 - -; original source -; int isalnum(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(UC|LC|DIG)); -; } - -_isalnum: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,13 - sbc hl,hl - ld l,a - ret + .def _isalnum
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isalnum(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(UC|LC|DIG));
+; }
+
+_isalnum:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,13
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isalpha.src b/frontends/calculator/CEdev/lib/shared/isalpha.src index 94627ba..56bfc47 100644 --- a/frontends/calculator/CEdev/lib/shared/isalpha.src +++ b/frontends/calculator/CEdev/lib/shared/isalpha.src @@ -1,27 +1,27 @@ - .def _isalpha - .ref ___maptab - .assume adl=1 - -; original source -; int isalnum(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(UC|LC)); - -_isalpha: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,12 - sbc hl,hl - ld l,a - ret + .def _isalpha
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isalnum(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(UC|LC));
+
+_isalpha:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,12
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isascii.src b/frontends/calculator/CEdev/lib/shared/isascii.src index 0c88ffb..2d5b87e 100644 --- a/frontends/calculator/CEdev/lib/shared/isascii.src +++ b/frontends/calculator/CEdev/lib/shared/isascii.src @@ -1,19 +1,19 @@ - .def _isascii - .assume adl=1 - -; original source -; int isascii(int c) { -; return c >= 0 && c < 128; -; } - -_isascii: - pop de - pop hl - push hl - push de - - ld de,-128 - add hl,de - sbc hl,hl - inc hl - ret + .def _isascii
+ .assume adl=1
+
+; original source
+; int isascii(int c) {
+; return c >= 0 && c < 128;
+; }
+
+_isascii:
+ pop de
+ pop hl
+ push hl
+ push de
+
+ ld de,-128
+ add hl,de
+ sbc hl,hl
+ inc hl
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/iscntrl.src b/frontends/calculator/CEdev/lib/shared/iscntrl.src index a8e7864..d6205c7 100644 --- a/frontends/calculator/CEdev/lib/shared/iscntrl.src +++ b/frontends/calculator/CEdev/lib/shared/iscntrl.src @@ -1,27 +1,27 @@ - .def _iscntrl - .ref ___maptab - .assume adl=1 - -;int iscntrl(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(CTL)); -;} - -_iscntrl: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,128 - sbc hl,hl - ld l,a - ret + .def _iscntrl
+ .ref ___maptab
+ .assume adl=1
+
+;int iscntrl(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(CTL));
+;}
+
+_iscntrl:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,128
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isdigit.src b/frontends/calculator/CEdev/lib/shared/isdigit.src index bbd555a..8517967 100644 --- a/frontends/calculator/CEdev/lib/shared/isdigit.src +++ b/frontends/calculator/CEdev/lib/shared/isdigit.src @@ -1,27 +1,27 @@ - .def _isdigit - .ref ___maptab - .assume adl=1 - -;int isdigit(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(DIG)); -;} - -_isdigit: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,1 - sbc hl,hl - ld l,a - ret + .def _isdigit
+ .ref ___maptab
+ .assume adl=1
+
+;int isdigit(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(DIG));
+;}
+
+_isdigit:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,1
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isgraph.src b/frontends/calculator/CEdev/lib/shared/isgraph.src index 59bc61e..063009d 100644 --- a/frontends/calculator/CEdev/lib/shared/isgraph.src +++ b/frontends/calculator/CEdev/lib/shared/isgraph.src @@ -1,28 +1,28 @@ - .def _isgraph - .ref ___maptab - .assume adl=1 - -; original source -; int isgraph(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(UC|LC|DIG|PUN)); -; } - -_isgraph: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,15 - sbc hl,hl - ld l,a - ret + .def _isgraph
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isgraph(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(UC|LC|DIG|PUN));
+; }
+
+_isgraph:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,15
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/ishl.src b/frontends/calculator/CEdev/lib/shared/ishl.src index b9a7347..084ea40 100644 --- a/frontends/calculator/CEdev/lib/shared/ishl.src +++ b/frontends/calculator/CEdev/lib/shared/ishl.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer Shift Left -; Input: -; Operand1: -; BC : 24 bit number of bits to shift -; Asuume B=0 C=shift count -; Operand2: -; HL : 24 bit value to be shifted by C -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __ishl, __ishl_b - .assume adl=1 - -__ishl_b equ 000178h -__ishl equ 000174h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer Shift Left
+; Input:
+; Operand1:
+; BC : 24 bit number of bits to shift
+; Asuume B=0 C=shift count
+; Operand2:
+; HL : 24 bit value to be shifted by C
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __ishl, __ishl_b
+ .assume adl=1
+
+__ishl_b equ 000178h
+__ishl equ 000174h
diff --git a/frontends/calculator/CEdev/lib/shared/ishrs.src b/frontends/calculator/CEdev/lib/shared/ishrs.src index 79125e7..0c0a3c7 100644 --- a/frontends/calculator/CEdev/lib/shared/ishrs.src +++ b/frontends/calculator/CEdev/lib/shared/ishrs.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer Shift Right Signed -; Input: -; Operand1: -; BC : 24 bit number of bits to shift -; Assume B=0 C=shift count -; Operand2: -; HL : 24 bit value to be shifted by C -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __ishrs, __ishrs_b - .assume adl=1 - -__ishrs_b equ 000180h -__ishrs equ 00017Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer Shift Right Signed
+; Input:
+; Operand1:
+; BC : 24 bit number of bits to shift
+; Assume B=0 C=shift count
+; Operand2:
+; HL : 24 bit value to be shifted by C
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __ishrs, __ishrs_b
+ .assume adl=1
+
+__ishrs_b equ 000180h
+__ishrs equ 00017Ch
diff --git a/frontends/calculator/CEdev/lib/shared/ishru.src b/frontends/calculator/CEdev/lib/shared/ishru.src index ed190d4..f369fa9 100644 --- a/frontends/calculator/CEdev/lib/shared/ishru.src +++ b/frontends/calculator/CEdev/lib/shared/ishru.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer Shift Right Unsigned -; Input: -; Operand1: -; BC : 24 bit number of bits to shift -; Assume B=0 C=shift count -; Operand2: -; HL : 24 bit value to be shifted by C -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __ishru, __ishru_b - .assume adl=1 - -__ishru_b equ 000188h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer Shift Right Unsigned
+; Input:
+; Operand1:
+; BC : 24 bit number of bits to shift
+; Assume B=0 C=shift count
+; Operand2:
+; HL : 24 bit value to be shifted by C
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __ishru, __ishru_b
+ .assume adl=1
+
+__ishru_b equ 000188h
__ishru equ 000184h
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/isinf.src b/frontends/calculator/CEdev/lib/shared/isinf.src index 1c0c46b..f3782a9 100644 --- a/frontends/calculator/CEdev/lib/shared/isinf.src +++ b/frontends/calculator/CEdev/lib/shared/isinf.src @@ -1,20 +1,20 @@ - .ref __frameset0 - .def _isinf - .assume adl=1 - -; int isinf(double n); - -_isinf: - call __frameset0 - ld hl,(ix+6) - adc hl,hl - jr nz,l_1 - ld hl,(ix+8) - add hl,hl - inc h -l_1: ld hl,0 - jr nz,l_2 - inc hl -l_2: ld sp,ix - pop ix - ret + .ref __frameset0
+ .def _isinf
+ .assume adl=1
+
+; int isinf(double n);
+
+_isinf:
+ call __frameset0
+ ld hl,(ix+6)
+ adc hl,hl
+ jr nz,l_1
+ ld hl,(ix+8)
+ add hl,hl
+ inc h
+l_1: ld hl,0
+ jr nz,l_2
+ inc hl
+l_2: ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/islower.src b/frontends/calculator/CEdev/lib/shared/islower.src index 3f72f9c..260a1d0 100644 --- a/frontends/calculator/CEdev/lib/shared/islower.src +++ b/frontends/calculator/CEdev/lib/shared/islower.src @@ -1,29 +1,29 @@ - .def _islower - .ref ___maptab - .assume adl=1 - -; original source -; int islower(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(LC)); -; } - -_islower: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - ld a,e - and a,128 - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,4 - sbc hl,hl - ld l,a - ret + .def _islower
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int islower(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(LC));
+; }
+
+_islower:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ ld a,e
+ and a,128
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,4
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isnan.src b/frontends/calculator/CEdev/lib/shared/isnan.src index 129bf69..d3e2b44 100644 --- a/frontends/calculator/CEdev/lib/shared/isnan.src +++ b/frontends/calculator/CEdev/lib/shared/isnan.src @@ -1,20 +1,20 @@ - .ref __frameset0 - .def _isnan - .assume adl=1 - -; int isnan(double n); - -_isnan: - call __frameset0 - ld hl,(ix+6) - adc hl,hl - jr z,l_1 - ld hl,(ix+8) - add hl,hl -l_1: inc h - ld hl,0 - jr nz,l_2 - inc hl -l_2: ld sp,ix - pop ix - ret + .ref __frameset0
+ .def _isnan
+ .assume adl=1
+
+; int isnan(double n);
+
+_isnan:
+ call __frameset0
+ ld hl,(ix+6)
+ adc hl,hl
+ jr z,l_1
+ ld hl,(ix+8)
+ add hl,hl
+l_1: inc h
+ ld hl,0
+ jr nz,l_2
+ inc hl
+l_2: ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isprint.src b/frontends/calculator/CEdev/lib/shared/isprint.src index 79b7bbf..ed19c41 100644 --- a/frontends/calculator/CEdev/lib/shared/isprint.src +++ b/frontends/calculator/CEdev/lib/shared/isprint.src @@ -1,28 +1,28 @@ - .def _isprint - .ref ___maptab - .assume adl=1 - -; original source -; int isprint(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(UC|LC|DIG|PUN|SP)); -; } - -_isprint: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,47 - sbc hl,hl - ld l,a - ret + .def _isprint
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isprint(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(UC|LC|DIG|PUN|SP));
+; }
+
+_isprint:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,47
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/ispunct.src b/frontends/calculator/CEdev/lib/shared/ispunct.src index 52a2e79..baefad2 100644 --- a/frontends/calculator/CEdev/lib/shared/ispunct.src +++ b/frontends/calculator/CEdev/lib/shared/ispunct.src @@ -1,28 +1,28 @@ - .def _ispunct - .ref ___maptab - .assume adl=1 - -; original source -; int ispunct(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(PUN)); -; } - -_ispunct: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,2 - sbc hl,hl - ld l,a - ret + .def _ispunct
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int ispunct(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(PUN));
+; }
+
+_ispunct:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,2
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isspace.src b/frontends/calculator/CEdev/lib/shared/isspace.src index 4e670f2..e6b8ec6 100644 --- a/frontends/calculator/CEdev/lib/shared/isspace.src +++ b/frontends/calculator/CEdev/lib/shared/isspace.src @@ -1,28 +1,28 @@ - .def _isspace - .ref ___maptab - .assume adl=1 - -; original source -; int isspace(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(WS)); -; } - -_isspace: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,64 - sbc hl,hl - ld l,a - ret + .def _isspace
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isspace(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(WS));
+; }
+
+_isspace:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,64
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/istix.src b/frontends/calculator/CEdev/lib/shared/istix.src index 8570366..6e986e1 100644 --- a/frontends/calculator/CEdev/lib/shared/istix.src +++ b/frontends/calculator/CEdev/lib/shared/istix.src @@ -1,18 +1,18 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer store (ix+nnnnnn),HL -; Input: -; Operand1: -; BC : 24-bit offset from ix -; HL : 24-bit integer to store -; -; Output: -; -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __istix - .assume adl=1 - -__istix equ 00018Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer store (ix+nnnnnn),HL
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+; HL : 24-bit integer to store
+;
+; Output:
+;
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __istix
+ .assume adl=1
+
+__istix equ 00018Ch
diff --git a/frontends/calculator/CEdev/lib/shared/istiy.src b/frontends/calculator/CEdev/lib/shared/istiy.src index 7ca71ea..d336856 100644 --- a/frontends/calculator/CEdev/lib/shared/istiy.src +++ b/frontends/calculator/CEdev/lib/shared/istiy.src @@ -1,18 +1,18 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer store (iy+nnnnnn),HL -; Input: -; Operand1: -; BC : 24-bit offset from iy -; HL : 24-bit integer to store -; -; Output: -; -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __istiy - .assume adl=1 - -__istiy equ 000190h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer store (iy+nnnnnn),HL
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+; HL : 24-bit integer to store
+;
+; Output:
+;
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __istiy
+ .assume adl=1
+
+__istiy equ 000190h
diff --git a/frontends/calculator/CEdev/lib/shared/isupper.src b/frontends/calculator/CEdev/lib/shared/isupper.src index 300474e..79b812e 100644 --- a/frontends/calculator/CEdev/lib/shared/isupper.src +++ b/frontends/calculator/CEdev/lib/shared/isupper.src @@ -1,28 +1,28 @@ - .def _isupper - .ref ___maptab - .assume adl=1 - -; original source -; int isupper(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(UC)); -; } - -_isupper: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,8 - sbc hl,hl - ld l,a - ret + .def _isupper
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isupper(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(UC));
+; }
+
+_isupper:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,8
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/isxdigit.src b/frontends/calculator/CEdev/lib/shared/isxdigit.src index 9db54a4..354a161 100644 --- a/frontends/calculator/CEdev/lib/shared/isxdigit.src +++ b/frontends/calculator/CEdev/lib/shared/isxdigit.src @@ -1,28 +1,28 @@ - .def _isxdigit - .ref ___maptab - .assume adl=1 - -; original source -; int isxdigit(int c) { -; if( (unsigned char)c & (unsigned char)0x80 ) -; return (0); -; return(__maptab[c] & (unsigned char)(DIG|HEX)); -; } - -_isxdigit: - pop hl - pop de - push de - push hl - or a,a - sbc hl,hl - bit 7,e - ret nz - ex de,hl - ld de,___maptab - add hl,de - ld a,(hl) - and a,17 - sbc hl,hl - ld l,a - ret + .def _isxdigit
+ .ref ___maptab
+ .assume adl=1
+
+; original source
+; int isxdigit(int c) {
+; if( (unsigned char)c & (unsigned char)0x80 )
+; return (0);
+; return(__maptab[c] & (unsigned char)(DIG|HEX));
+; }
+
+_isxdigit:
+ pop hl
+ pop de
+ push de
+ push hl
+ or a,a
+ sbc hl,hl
+ bit 7,e
+ ret nz
+ ex de,hl
+ ld de,___maptab
+ add hl,de
+ ld a,(hl)
+ and a,17
+ sbc hl,hl
+ ld l,a
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/itol.src b/frontends/calculator/CEdev/lib/shared/itol.src index 8efd34d..81e7315 100644 --- a/frontends/calculator/CEdev/lib/shared/itol.src +++ b/frontends/calculator/CEdev/lib/shared/itol.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Signed Integer to Long conversion -; Input: -; Operand1: -; BC : 24 bit -; -; Output: -; Result: A:BC : 32 bit -; Registers Used: -; -;------------------------------------------------------------------------- - .def __itol - .assume adl=1 - -__itol equ 000194h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Signed Integer to Long conversion
+; Input:
+; Operand1:
+; BC : 24 bit
+;
+; Output:
+; Result: A:BC : 32 bit
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __itol
+ .assume adl=1
+
+__itol equ 000194h
diff --git a/frontends/calculator/CEdev/lib/shared/ixor.src b/frontends/calculator/CEdev/lib/shared/ixor.src index 75299dd..7b6b41b 100644 --- a/frontends/calculator/CEdev/lib/shared/ixor.src +++ b/frontends/calculator/CEdev/lib/shared/ixor.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer XOR. -; Input: -; Operand1: -; hl : 24 bit -; -; Operand2: -; bc : 24 bit -; -; Output: -; Result: hl : 24 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __ixor - .assume adl=1 - -__ixor equ 000198h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer XOR.
+; Input:
+; Operand1:
+; hl : 24 bit
+;
+; Operand2:
+; bc : 24 bit
+;
+; Output:
+; Result: hl : 24 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __ixor
+ .assume adl=1
+
+__ixor equ 000198h
diff --git a/frontends/calculator/CEdev/lib/shared/labs.src b/frontends/calculator/CEdev/lib/shared/labs.src index 38cd6dc..dfe7f98 100644 --- a/frontends/calculator/CEdev/lib/shared/labs.src +++ b/frontends/calculator/CEdev/lib/shared/labs.src @@ -1,24 +1,24 @@ - .ref __frameset0 - .ref __lcmpzero - .ref __setflag - .ref __lneg - .def _labs - .assume adl=1 - -; long labs(long j); - -_labs: - call __frameset0 - ld hl,(ix+6) - ld e,(ix+9) - push hl - push de - call __lcmpzero - call __setflag - pop de - pop hl - jp p,l_1 - call __lneg -l_1: ld sp,ix - pop ix - ret + .ref __frameset0
+ .ref __lcmpzero
+ .ref __setflag
+ .ref __lneg
+ .def _labs
+ .assume adl=1
+
+; long labs(long j);
+
+_labs:
+ call __frameset0
+ ld hl,(ix+6)
+ ld e,(ix+9)
+ push hl
+ push de
+ call __lcmpzero
+ call __setflag
+ pop de
+ pop hl
+ jp p,l_1
+ call __lneg
+l_1: ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/ladd.src b/frontends/calculator/CEdev/lib/shared/ladd.src index c678a1e..39b16e9 100644 --- a/frontends/calculator/CEdev/lib/shared/ladd.src +++ b/frontends/calculator/CEdev/lib/shared/ladd.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long ADD. -; Input: -; Operand1: -; ehl : 32 bit -; -; Operand2: -; abc : 32 bit -; -; Output: -; Result: ehl : 32 bit -; Registers Used: - -;------------------------------------------------------------------------- - .def __ladd, __ladd_b - .assume adl=1 - -__ladd_b equ 0001A0h -__ladd equ 00019Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long ADD.
+; Input:
+; Operand1:
+; ehl : 32 bit
+;
+; Operand2:
+; abc : 32 bit
+;
+; Output:
+; Result: ehl : 32 bit
+; Registers Used:
+
+;-------------------------------------------------------------------------
+ .def __ladd, __ladd_b
+ .assume adl=1
+
+__ladd_b equ 0001A0h
+__ladd equ 00019Ch
diff --git a/frontends/calculator/CEdev/lib/shared/land.src b/frontends/calculator/CEdev/lib/shared/land.src index 6db554a..ae0460c 100644 --- a/frontends/calculator/CEdev/lib/shared/land.src +++ b/frontends/calculator/CEdev/lib/shared/land.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long AND. -; Input: -; Operand1: -; ehl : 32 bit -; -; Operand2: -; abc : 32 bit -; -; Output: -; Result: ehl : 32 bit -; Registers Used: - -;------------------------------------------------------------------------- - .def __land - .assume adl=1 - -__land equ 0001A4h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long AND.
+; Input:
+; Operand1:
+; ehl : 32 bit
+;
+; Operand2:
+; abc : 32 bit
+;
+; Output:
+; Result: ehl : 32 bit
+; Registers Used:
+
+;-------------------------------------------------------------------------
+ .def __land
+ .assume adl=1
+
+__land equ 0001A4h
diff --git a/frontends/calculator/CEdev/lib/shared/lcmps.src b/frontends/calculator/CEdev/lib/shared/lcmps.src index 495cadd..aaf3163 100644 --- a/frontends/calculator/CEdev/lib/shared/lcmps.src +++ b/frontends/calculator/CEdev/lib/shared/lcmps.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Comparison -; Input: -; Operand1: -; EHL : 32 bits -; -; Operand2: -; ABC : 32 bits -; -; Output: -; Result: F : S,V flags from EHL - ABC -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __lcmps - .assume adl=1 - -__lcmps equ 0001A8h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Comparison
+; Input:
+; Operand1:
+; EHL : 32 bits
+;
+; Operand2:
+; ABC : 32 bits
+;
+; Output:
+; Result: F : S,V flags from EHL - ABC
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __lcmps
+ .assume adl=1
+
+__lcmps equ 0001A8h
diff --git a/frontends/calculator/CEdev/lib/shared/lcmpu.src b/frontends/calculator/CEdev/lib/shared/lcmpu.src index 5d7db79..deda9dc 100644 --- a/frontends/calculator/CEdev/lib/shared/lcmpu.src +++ b/frontends/calculator/CEdev/lib/shared/lcmpu.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Unsigned Comparison -; Input: -; Operand1: -; EHL : 32 bits -; -; Operand2: -; ABC : 32 bits -; -; Output: -; Result: F : S,V flags from EHL - ABC -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __lcmpu - .assume adl=1 - -__lcmpu equ 0001ACh +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Unsigned Comparison
+; Input:
+; Operand1:
+; EHL : 32 bits
+;
+; Operand2:
+; ABC : 32 bits
+;
+; Output:
+; Result: F : S,V flags from EHL - ABC
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __lcmpu
+ .assume adl=1
+
+__lcmpu equ 0001ACh
diff --git a/frontends/calculator/CEdev/lib/shared/lcmpzero.src b/frontends/calculator/CEdev/lib/shared/lcmpzero.src index 518c58a..e9c19f3 100644 --- a/frontends/calculator/CEdev/lib/shared/lcmpzero.src +++ b/frontends/calculator/CEdev/lib/shared/lcmpzero.src @@ -1,16 +1,16 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Set flag for comparison of 32-bit scalar with constant value zero -; Input: -; Operand1: E:HL register -; -; Output: -; Result: f register -; -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __lcmpzero - .assume adl=1 - -__lcmpzero equ 0001B0h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Set flag for comparison of 32-bit scalar with constant value zero
+; Input:
+; Operand1: E:HL register
+;
+; Output:
+; Result: f register
+;
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __lcmpzero
+ .assume adl=1
+
+__lcmpzero equ 0001B0h
diff --git a/frontends/calculator/CEdev/lib/shared/ldiv.src b/frontends/calculator/CEdev/lib/shared/ldiv.src index 8da316b..7f41e0c 100644 --- a/frontends/calculator/CEdev/lib/shared/ldiv.src +++ b/frontends/calculator/CEdev/lib/shared/ldiv.src @@ -1,79 +1,79 @@ -; Copyright (C) 1999-2008 Zilog, Inc, All Rights Reserved -;------------------------------------------------------------------------- -; ldiv function -; -; ldiv_t ldiv(long numer, long denom); -; -;------------------------------------------------------------------------- - .def _ldiv - .ref __ldivs - .ref __lrems - .assume adl=1 - -_ldiv: - - push bc - push af - push de - push hl - - ld hl,27 - add hl,sp - ld a,(hl) - dec hl - dec hl - dec hl - ld bc,(hl) ; aBC : denominator - dec hl - dec hl - dec hl - ld e,(hl) - dec hl - dec hl - dec hl - ld hl,(hl) ; eHL: Numerator - call __ldivs - push de - push hl ; eHL : quotient - - ld hl,27 - add hl,sp - ld e,(hl) - dec hl - dec hl - dec hl - ld hl,(hl) - call __lrems - ld a,e - ex de,hl ;aDE :remainder - - ld hl,21 - add hl,sp - ld hl,(hl) - push hl - - ld bc, 7 - add hl, bc - ld (hl),a - dec hl - dec hl - dec hl - ld (hl),de ; aDE : remainder - - pop hl - pop bc - ld (hl),bc ; bc : 3 LSB of quotient - pop bc - push hl - inc hl - inc hl - inc hl - ld (hl),c ; c : MSB of quotient - pop hl - - pop de - pop de - pop af - pop bc - - ret +; Copyright (C) 1999-2008 Zilog, Inc, All Rights Reserved
+;-------------------------------------------------------------------------
+; ldiv function
+;
+; ldiv_t ldiv(long numer, long denom);
+;
+;-------------------------------------------------------------------------
+ .def _ldiv
+ .ref __ldivs
+ .ref __lrems
+ .assume adl=1
+
+_ldiv:
+
+ push bc
+ push af
+ push de
+ push hl
+
+ ld hl,27
+ add hl,sp
+ ld a,(hl)
+ dec hl
+ dec hl
+ dec hl
+ ld bc,(hl) ; aBC : denominator
+ dec hl
+ dec hl
+ dec hl
+ ld e,(hl)
+ dec hl
+ dec hl
+ dec hl
+ ld hl,(hl) ; eHL: Numerator
+ call __ldivs
+ push de
+ push hl ; eHL : quotient
+
+ ld hl,27
+ add hl,sp
+ ld e,(hl)
+ dec hl
+ dec hl
+ dec hl
+ ld hl,(hl)
+ call __lrems
+ ld a,e
+ ex de,hl ;aDE :remainder
+
+ ld hl,21
+ add hl,sp
+ ld hl,(hl)
+ push hl
+
+ ld bc, 7
+ add hl, bc
+ ld (hl),a
+ dec hl
+ dec hl
+ dec hl
+ ld (hl),de ; aDE : remainder
+
+ pop hl
+ pop bc
+ ld (hl),bc ; bc : 3 LSB of quotient
+ pop bc
+ push hl
+ inc hl
+ inc hl
+ inc hl
+ ld (hl),c ; c : MSB of quotient
+ pop hl
+
+ pop de
+ pop de
+ pop af
+ pop bc
+
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/ldivs.src b/frontends/calculator/CEdev/lib/shared/ldivs.src index 950209e..bc5779c 100644 --- a/frontends/calculator/CEdev/lib/shared/ldivs.src +++ b/frontends/calculator/CEdev/lib/shared/ldivs.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Division Signed -; Input: -; Operand1: -; eHL : 32 bits -; -; Operand2: -; aBC : 32 bits -; Output: -; Result: eHL : 24 bits -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __ldivs - .assume adl=1 - -__ldivs equ 0001B4h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Division Signed
+; Input:
+; Operand1:
+; eHL : 32 bits
+;
+; Operand2:
+; aBC : 32 bits
+; Output:
+; Result: eHL : 24 bits
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __ldivs
+ .assume adl=1
+
+__ldivs equ 0001B4h
diff --git a/frontends/calculator/CEdev/lib/shared/ldivu.src b/frontends/calculator/CEdev/lib/shared/ldivu.src index c570423..32f7c83 100644 --- a/frontends/calculator/CEdev/lib/shared/ldivu.src +++ b/frontends/calculator/CEdev/lib/shared/ldivu.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Division Unsigned -; Input: -; Operand1: -; EuHL : 32 bits -; -; Operand2: -; AuBC : 32 bits -; Output: -; Result: EuHL : 32 bits -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __ldivu, __ldvrmu - .assume adl=1 - -__ldivu equ 0001B8h -__ldvrmu equ 0001BCh +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Division Unsigned
+; Input:
+; Operand1:
+; EuHL : 32 bits
+;
+; Operand2:
+; AuBC : 32 bits
+; Output:
+; Result: EuHL : 32 bits
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __ldivu, __ldvrmu
+ .assume adl=1
+
+__ldivu equ 0001B8h
+__ldvrmu equ 0001BCh
diff --git a/frontends/calculator/CEdev/lib/shared/lldix.src b/frontends/calculator/CEdev/lib/shared/lldix.src index 379c4e7..9697040 100644 --- a/frontends/calculator/CEdev/lib/shared/lldix.src +++ b/frontends/calculator/CEdev/lib/shared/lldix.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; long load e:hl,(ix+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from ix -; -; Output: -; Result: E:HL : 32 bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __lldix - .assume adl=1 - -__lldix equ 0001C0h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; long load e:hl,(ix+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+;
+; Output:
+; Result: E:HL : 32 bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __lldix
+ .assume adl=1
+
+__lldix equ 0001C0h
diff --git a/frontends/calculator/CEdev/lib/shared/lldiy.src b/frontends/calculator/CEdev/lib/shared/lldiy.src index 8e308fd..8cec260 100644 --- a/frontends/calculator/CEdev/lib/shared/lldiy.src +++ b/frontends/calculator/CEdev/lib/shared/lldiy.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; long load e:hl,(iy+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from iy -; -; Output: -; Result: E:HL : 32 bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __lldiy - .assume adl=1 - -__lldiy equ 0001C4h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; long load e:hl,(iy+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+;
+; Output:
+; Result: E:HL : 32 bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __lldiy
+ .assume adl=1
+
+__lldiy equ 0001C4h
diff --git a/frontends/calculator/CEdev/lib/shared/lmuls.src b/frontends/calculator/CEdev/lib/shared/lmuls.src index 8f75c0b..3629808 100644 --- a/frontends/calculator/CEdev/lib/shared/lmuls.src +++ b/frontends/calculator/CEdev/lib/shared/lmuls.src @@ -1,19 +1,19 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Multiplication Signed. -; Input: -; Operand1: -; ABC : 32 bits -; -; Operand2: -; EHL : 32 bits -; -; Output: -; Result: ABC : 32 bit -; Registers Used: -; de,af -;------------------------------------------------------------------------- - .def __lmuls - .assume adl=1 - -__lmuls equ 0001C8h +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Multiplication Signed.
+; Input:
+; Operand1:
+; ABC : 32 bits
+;
+; Operand2:
+; EHL : 32 bits
+;
+; Output:
+; Result: ABC : 32 bit
+; Registers Used:
+; de,af
+;-------------------------------------------------------------------------
+ .def __lmuls
+ .assume adl=1
+
+__lmuls equ 0001C8h
diff --git a/frontends/calculator/CEdev/lib/shared/lmulu.src b/frontends/calculator/CEdev/lib/shared/lmulu.src index f84fe24..87bc9d7 100644 --- a/frontends/calculator/CEdev/lib/shared/lmulu.src +++ b/frontends/calculator/CEdev/lib/shared/lmulu.src @@ -1,22 +1,22 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Multiplication Signed/Unsigned. -; Note: When multipying two n-bit values, the low-order n-bits -; of the product are the same, whether or not the values -; are considered signed or unsigned. -; Input: -; Operand1: -; EuHL : 32 bits -; -; Operand2: -; AuBC : 32 bits -; -; Output: -; Result: EuHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __lmulu - .assume adl=1 - -__lmulu equ 0001CCh +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Multiplication Signed/Unsigned.
+; Note: When multipying two n-bit values, the low-order n-bits
+; of the product are the same, whether or not the values
+; are considered signed or unsigned.
+; Input:
+; Operand1:
+; EuHL : 32 bits
+;
+; Operand2:
+; AuBC : 32 bits
+;
+; Output:
+; Result: EuHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __lmulu
+ .assume adl=1
+
+__lmulu equ 0001CCh
diff --git a/frontends/calculator/CEdev/lib/shared/lneg.src b/frontends/calculator/CEdev/lib/shared/lneg.src index 3e8b407..ab44f20 100644 --- a/frontends/calculator/CEdev/lib/shared/lneg.src +++ b/frontends/calculator/CEdev/lib/shared/lneg.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long NEG. -; Input: -; Operand1: -; EuHL : 32 bit -; -; Output: -; Result: EuHL : 32 bit -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __lneg - .assume adl=1 - -__lneg equ 0001D0h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long NEG.
+; Input:
+; Operand1:
+; EuHL : 32 bit
+;
+; Output:
+; Result: EuHL : 32 bit
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __lneg
+ .assume adl=1
+
+__lneg equ 0001D0h
diff --git a/frontends/calculator/CEdev/lib/shared/lnot.src b/frontends/calculator/CEdev/lib/shared/lnot.src index 774b304..083a572 100644 --- a/frontends/calculator/CEdev/lib/shared/lnot.src +++ b/frontends/calculator/CEdev/lib/shared/lnot.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long NOT. -; Input: -; Operand1: -; eHL : 32 bit -; -; Output: -; Result: eHL : 32 bit -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __lnot - .assume adl=1 - -__lnot equ 0001D4h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long NOT.
+; Input:
+; Operand1:
+; eHL : 32 bit
+;
+; Output:
+; Result: eHL : 32 bit
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __lnot
+ .assume adl=1
+
+__lnot equ 0001D4h
diff --git a/frontends/calculator/CEdev/lib/shared/log2.src b/frontends/calculator/CEdev/lib/shared/log2.src index 5630503..028886f 100644 --- a/frontends/calculator/CEdev/lib/shared/log2.src +++ b/frontends/calculator/CEdev/lib/shared/log2.src @@ -1,27 +1,27 @@ - .def _log2 - .ref _log - .ref __fdiv - .ref __frameset0 - .assume adl=1 - -_log2: - call __frameset0 - ld c,(ix+9) - ld b,0 - push bc - ld bc,(ix+6) - push bc - call _log - push hl - pop bc - ld a,e - ld hl,3240472 - ld e,63 - call __fdiv - ld e,a - push bc - pop hl - ld sp,ix - pop ix - ret - + .def _log2
+ .ref _log
+ .ref __fdiv
+ .ref __frameset0
+ .assume adl=1
+
+_log2:
+ call __frameset0
+ ld c,(ix+9)
+ ld b,0
+ push bc
+ ld bc,(ix+6)
+ push bc
+ call _log
+ push hl
+ pop bc
+ ld a,e
+ ld hl,3240472
+ ld e,63
+ call __fdiv
+ ld e,a
+ push bc
+ pop hl
+ ld sp,ix
+ pop ix
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/longjmp.src b/frontends/calculator/CEdev/lib/shared/longjmp.src index 0399ff0..54baa77 100644 --- a/frontends/calculator/CEdev/lib/shared/longjmp.src +++ b/frontends/calculator/CEdev/lib/shared/longjmp.src @@ -1,4 +1,4 @@ - .def _longjmp - .assume adl=1 - + .def _longjmp
+ .assume adl=1
+
_longjmp equ 000098h
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/lor.src b/frontends/calculator/CEdev/lib/shared/lor.src index b9a3c95..91fef65 100644 --- a/frontends/calculator/CEdev/lib/shared/lor.src +++ b/frontends/calculator/CEdev/lib/shared/lor.src @@ -1,19 +1,19 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long OR. -; Input: -; Operand1: -; ehl : 32 bit -; -; Operand2: -; abc : 32 bit -; -; Output: -; Result: ehl : 32 bit -; Registers Used: -; -;------------------------------------------------------------------------- - .def __lor - .assume adl=1 - -__lor equ 0001D8h +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long OR.
+; Input:
+; Operand1:
+; ehl : 32 bit
+;
+; Operand2:
+; abc : 32 bit
+;
+; Output:
+; Result: ehl : 32 bit
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __lor
+ .assume adl=1
+
+__lor equ 0001D8h
diff --git a/frontends/calculator/CEdev/lib/shared/lrems.src b/frontends/calculator/CEdev/lib/shared/lrems.src index 958404b..8e1d9bc 100644 --- a/frontends/calculator/CEdev/lib/shared/lrems.src +++ b/frontends/calculator/CEdev/lib/shared/lrems.src @@ -1,19 +1,19 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Modulus Signed. -; Input: -; Operand1: -; EHL : 32 bits (dividend) -; -; Operand2: -; ABC : 32 bits (divisor) -; -; Output: -; Result: EHL : 32 bit -; Registers Used: -; de,af -;------------------------------------------------------------------------- - .def __lrems - .assume adl=1 - -__lrems equ 0001DCh +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Modulus Signed.
+; Input:
+; Operand1:
+; EHL : 32 bits (dividend)
+;
+; Operand2:
+; ABC : 32 bits (divisor)
+;
+; Output:
+; Result: EHL : 32 bit
+; Registers Used:
+; de,af
+;-------------------------------------------------------------------------
+ .def __lrems
+ .assume adl=1
+
+__lrems equ 0001DCh
diff --git a/frontends/calculator/CEdev/lib/shared/lremu.src b/frontends/calculator/CEdev/lib/shared/lremu.src index 6ed28b1..9b00573 100644 --- a/frontends/calculator/CEdev/lib/shared/lremu.src +++ b/frontends/calculator/CEdev/lib/shared/lremu.src @@ -1,19 +1,19 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Modulus Unsigned. -; Input: -; Operand1: -; EuHL : 32 bits (dividend x) -; -; Operand2: -; AuBC : 32 bits (divisor y) -; -; Output: -; Result: EuHL : 32 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __lremu - .assume adl=1 - -__lremu equ 0001E0h +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Modulus Unsigned.
+; Input:
+; Operand1:
+; EuHL : 32 bits (dividend x)
+;
+; Operand2:
+; AuBC : 32 bits (divisor y)
+;
+; Output:
+; Result: EuHL : 32 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __lremu
+ .assume adl=1
+
+__lremu equ 0001E0h
diff --git a/frontends/calculator/CEdev/lib/shared/lshl.src b/frontends/calculator/CEdev/lib/shared/lshl.src index 3038a0d..c49c3d9 100644 --- a/frontends/calculator/CEdev/lib/shared/lshl.src +++ b/frontends/calculator/CEdev/lib/shared/lshl.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Shift Left -; Input: -; Operand1: -; AuBC : 32 bit value to be shifted -; -; Operand2: -; L : number of bits to shift -; -; Output: -; Result: AuBC : 32 bit result -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __lshl - .assume adl=1 - -__lshl equ 0001E4h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Shift Left
+; Input:
+; Operand1:
+; AuBC : 32 bit value to be shifted
+;
+; Operand2:
+; L : number of bits to shift
+;
+; Output:
+; Result: AuBC : 32 bit result
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __lshl
+ .assume adl=1
+
+__lshl equ 0001E4h
diff --git a/frontends/calculator/CEdev/lib/shared/lshrs.src b/frontends/calculator/CEdev/lib/shared/lshrs.src index a8a35d1..08bb693 100644 --- a/frontends/calculator/CEdev/lib/shared/lshrs.src +++ b/frontends/calculator/CEdev/lib/shared/lshrs.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Shift Right Signed -; Input: -; Operand1: -; AuBC : 32 bit value to be shifted by L -; -; Operand2: -; L : number of bits to shift -; -; Output: -; Result: AuBC : 32 bit -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __lshrs - .assume adl=1 - -__lshrs equ 0001E8h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Shift Right Signed
+; Input:
+; Operand1:
+; AuBC : 32 bit value to be shifted by L
+;
+; Operand2:
+; L : number of bits to shift
+;
+; Output:
+; Result: AuBC : 32 bit
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __lshrs
+ .assume adl=1
+
+__lshrs equ 0001E8h
diff --git a/frontends/calculator/CEdev/lib/shared/lshru.src b/frontends/calculator/CEdev/lib/shared/lshru.src index 5334d7f..2734ecf 100644 --- a/frontends/calculator/CEdev/lib/shared/lshru.src +++ b/frontends/calculator/CEdev/lib/shared/lshru.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Shift Right Unsigned -; Input: -; Operand1: -; AuBC : 32 bit value to be shifted by L -; -; Operand2: -; L : number of bits to shift -; -; Output: -; Result: AuBC : 32 bit -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __lshru - .assume adl=1 - -__lshru equ 0001ECh +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Shift Right Unsigned
+; Input:
+; Operand1:
+; AuBC : 32 bit value to be shifted by L
+;
+; Operand2:
+; L : number of bits to shift
+;
+; Output:
+; Result: AuBC : 32 bit
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __lshru
+ .assume adl=1
+
+__lshru equ 0001ECh
diff --git a/frontends/calculator/CEdev/lib/shared/lstix.src b/frontends/calculator/CEdev/lib/shared/lstix.src index 22c014e..749d3ff 100644 --- a/frontends/calculator/CEdev/lib/shared/lstix.src +++ b/frontends/calculator/CEdev/lib/shared/lstix.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; long store (ix+nnnnnn),H:HL -; Input: -; Operand1: -; BC : 24-bit offset from ix -; E:HL : 32-bit value -; -; Output: -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __lstix - .assume adl=1 - -__lstix equ 0001F0h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; long store (ix+nnnnnn),H:HL
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+; E:HL : 32-bit value
+;
+; Output:
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __lstix
+ .assume adl=1
+
+__lstix equ 0001F0h
diff --git a/frontends/calculator/CEdev/lib/shared/lstiy.src b/frontends/calculator/CEdev/lib/shared/lstiy.src index e141502..4da53a6 100644 --- a/frontends/calculator/CEdev/lib/shared/lstiy.src +++ b/frontends/calculator/CEdev/lib/shared/lstiy.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; long store (iy+nnnnnn),E:HL -; Input: -; Operand1: -; BC : 24-bit offset from iy -; E:HL : 32-bit value -; -; Output: -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __lstiy - .assume adl=1 - -__lstiy equ 0001F4h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; long store (iy+nnnnnn),E:HL
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+; E:HL : 32-bit value
+;
+; Output:
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __lstiy
+ .assume adl=1
+
+__lstiy equ 0001F4h
diff --git a/frontends/calculator/CEdev/lib/shared/lsub.src b/frontends/calculator/CEdev/lib/shared/lsub.src index ef51463..1cccbd4 100644 --- a/frontends/calculator/CEdev/lib/shared/lsub.src +++ b/frontends/calculator/CEdev/lib/shared/lsub.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long Subtract Op1 - Op2 -; Input: -; Operand1: -; EHL : 32 bits -; -; Operand2: -; ABC : 32 bits -; -; Output: -; Result: EHL : 32 bits -; Registers Used: -; flags -;------------------------------------------------------------------------- - .def __lsub - .assume adl=1 - -__lsub equ 0001F8h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long Subtract Op1 - Op2
+; Input:
+; Operand1:
+; EHL : 32 bits
+;
+; Operand2:
+; ABC : 32 bits
+;
+; Output:
+; Result: EHL : 32 bits
+; Registers Used:
+; flags
+;-------------------------------------------------------------------------
+ .def __lsub
+ .assume adl=1
+
+__lsub equ 0001F8h
diff --git a/frontends/calculator/CEdev/lib/shared/lxor.src b/frontends/calculator/CEdev/lib/shared/lxor.src index c14d3cc..b8753d1 100644 --- a/frontends/calculator/CEdev/lib/shared/lxor.src +++ b/frontends/calculator/CEdev/lib/shared/lxor.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Long XOR. -; Input: -; Operand1: -; ehl : 32 bit -; -; Operand2: -; abc : 32 bit -; -; Output: -; Result: ehl : 32 bit -; Registers Used: -; -;------------------------------------------------------------------------- - .def __lxor - .assume adl=1 - -__lxor equ 0001FCh +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Long XOR.
+; Input:
+; Operand1:
+; ehl : 32 bit
+;
+; Operand2:
+; abc : 32 bit
+;
+; Output:
+; Result: ehl : 32 bit
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __lxor
+ .assume adl=1
+
+__lxor equ 0001FCh
diff --git a/frontends/calculator/CEdev/lib/shared/memchr.src b/frontends/calculator/CEdev/lib/shared/memchr.src index 1dec0c8..cc1646c 100644 --- a/frontends/calculator/CEdev/lib/shared/memchr.src +++ b/frontends/calculator/CEdev/lib/shared/memchr.src @@ -1,6 +1,6 @@ - .def _memchr - .assume adl=1 - -; void *memchr(const void *buf, int c, size_t count); - -_memchr equ 00009Ch + .def _memchr
+ .assume adl=1
+
+; void *memchr(const void *buf, int c, size_t count);
+
+_memchr equ 00009Ch
diff --git a/frontends/calculator/CEdev/lib/shared/memcmp.src b/frontends/calculator/CEdev/lib/shared/memcmp.src index 4658030..72477a6 100644 --- a/frontends/calculator/CEdev/lib/shared/memcmp.src +++ b/frontends/calculator/CEdev/lib/shared/memcmp.src @@ -1,6 +1,6 @@ - .def _memcmp - .assume adl=1 - -; int memcmp(const void *buf1, const void *buf2, size_t count); - -_memcmp equ 0000A0h + .def _memcmp
+ .assume adl=1
+
+; int memcmp(const void *buf1, const void *buf2, size_t count);
+
+_memcmp equ 0000A0h
diff --git a/frontends/calculator/CEdev/lib/shared/memcpy.src b/frontends/calculator/CEdev/lib/shared/memcpy.src index 9ecc289..3049840 100644 --- a/frontends/calculator/CEdev/lib/shared/memcpy.src +++ b/frontends/calculator/CEdev/lib/shared/memcpy.src @@ -1,6 +1,6 @@ - .def _memcpy - .assume adl=1 - -; void *memcpy( void *dest, const void *src, size_t count ); - -_memcpy equ 0000A4h + .def _memcpy
+ .assume adl=1
+
+; void *memcpy( void *dest, const void *src, size_t count );
+
+_memcpy equ 0000A4h
diff --git a/frontends/calculator/CEdev/lib/shared/memmove.src b/frontends/calculator/CEdev/lib/shared/memmove.src index 4a219cd..31d3ce9 100644 --- a/frontends/calculator/CEdev/lib/shared/memmove.src +++ b/frontends/calculator/CEdev/lib/shared/memmove.src @@ -1,6 +1,6 @@ - .def _memmove - .assume adl=1 - -; void *memmove(void *dest, const void *src, size_t count); - -_memmove equ 0000A8h + .def _memmove
+ .assume adl=1
+
+; void *memmove(void *dest, const void *src, size_t count);
+
+_memmove equ 0000A8h
diff --git a/frontends/calculator/CEdev/lib/shared/memset.src b/frontends/calculator/CEdev/lib/shared/memset.src index 2ff1317..f64608c 100644 --- a/frontends/calculator/CEdev/lib/shared/memset.src +++ b/frontends/calculator/CEdev/lib/shared/memset.src @@ -1,26 +1,26 @@ - .def _memset - .assume adl=1 - -; void *memset(void *dest, int c, size_t count); - -_memset: - pop iy - pop hl - pop de - pop bc - push bc - push de - push hl - push iy - cpi - add hl,bc - ret c - dec hl - ld (hl),e - ret po - push hl - pop de - dec de - lddr - ret - + .def _memset
+ .assume adl=1
+
+; void *memset(void *dest, int c, size_t count);
+
+_memset:
+ pop iy
+ pop hl
+ pop de
+ pop bc
+ push bc
+ push de
+ push hl
+ push iy
+ cpi
+ add hl,bc
+ ret c
+ dec hl
+ ld (hl),e
+ ret po
+ push hl
+ pop de
+ dec de
+ lddr
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/os.src b/frontends/calculator/CEdev/lib/shared/os.src index 23e0852..76fd462 100644 --- a/frontends/calculator/CEdev/lib/shared/os.src +++ b/frontends/calculator/CEdev/lib/shared/os.src @@ -1,14 +1,14 @@ -; --- -; call an os or bootcode routine -; --- - - .def __OS - .assume adl=1 - -__OS: - pop de - pop hl - push hl - push de - ld iy,13631616 - jp (hl) +; ---
+; call an os or bootcode routine
+; ---
+
+ .def __OS
+ .assume adl=1
+
+__OS:
+ pop de
+ pop hl
+ push hl
+ push de
+ ld iy,13631616
+ jp (hl)
diff --git a/frontends/calculator/CEdev/lib/shared/os_textbuffer.src b/frontends/calculator/CEdev/lib/shared/os_textbuffer.src index 0f3c106..f8462c7 100644 --- a/frontends/calculator/CEdev/lib/shared/os_textbuffer.src +++ b/frontends/calculator/CEdev/lib/shared/os_textbuffer.src @@ -1,22 +1,22 @@ -; --- -; enables / disables homescreen text buffering which can destroy bss / heap -; --- - - .def _os_DisableHomeTextBuffer - .def _os_EnableHomeTextBuffer - .assume adl=1 - -_os_DisableHomeTextBuffer: - ld iy,$d00080 - res 1,(iy + $0d) ; no text buffer - res 3,(iy + $4a) ; use first shadow buffer - set 5,(iy + $4c) ; only display - ret - -_os_EnableHomeTextBuffer: - ld iy,$d00080 - set 1,(iy + $0d) ; use text buffer - res 3,(iy + $4a) ; use first shadow buffer - res 5,(iy + $4c) ; use shadow buffer - ret - +; ---
+; enables / disables homescreen text buffering which can destroy bss / heap
+; ---
+
+ .def _os_DisableHomeTextBuffer
+ .def _os_EnableHomeTextBuffer
+ .assume adl=1
+
+_os_DisableHomeTextBuffer:
+ ld iy,$d00080
+ res 1,(iy + $0d) ; no text buffer
+ res 3,(iy + $4a) ; use first shadow buffer
+ set 5,(iy + $4c) ; only display
+ ret
+
+_os_EnableHomeTextBuffer:
+ ld iy,$d00080
+ set 1,(iy + $0d) ; use text buffer
+ res 3,(iy + $4a) ; use first shadow buffer
+ res 5,(iy + $4c) ; use shadow buffer
+ ret
+
diff --git a/frontends/calculator/CEdev/lib/shared/rand.src b/frontends/calculator/CEdev/lib/shared/rand.src index ea569cf..df14c3a 100644 --- a/frontends/calculator/CEdev/lib/shared/rand.src +++ b/frontends/calculator/CEdev/lib/shared/rand.src @@ -1,13 +1,13 @@ - .ref _random - .def _rand - .assume adl=1 - -; int rand(void); - -_rand: - call _random - ld de,8388608 - sbc hl,de - ret p - add hl,de - ret + .ref _random
+ .def _rand
+ .assume adl=1
+
+; int rand(void);
+
+_rand:
+ call _random
+ ld de,8388608
+ sbc hl,de
+ ret p
+ add hl,de
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/random.src b/frontends/calculator/CEdev/lib/shared/random.src index ede9051..5381840 100644 --- a/frontends/calculator/CEdev/lib/shared/random.src +++ b/frontends/calculator/CEdev/lib/shared/random.src @@ -1,110 +1,110 @@ -; --- -; uint32_t random(void) -; --- - - .def _random - .def __state - .assume adl=1 - -; https://github.com/MersenneTwister-Lab/XSadd/blob/master/xsadd.h#L75 -; using shift parameters (19, 21, 8) instead of (15, 18, 11) - -; uint32_t xsadd(uint32_t state[static 4]) -; { -; uint32_t s0, s1, s2, t0, t1, t2, t3, z, result; -; t0 = state[0]; -; state[0] = state[1]; state[1] = state[2]; state[2] = state[3]; -; s0 = t0 << 19; -; t1 = t0 ^ s0; -; s1 = t1 >> 21; -; t2 = t1 ^ s1; -; z = state[3]; -; s2 = z << 8; -; t3 = t2 ^ s2; -; state[3] = t3; -; result = t3 + state[2]; -; return result; -; } - - segment data -__state: - dl 0d0e0f10h,090a0b0ch,05060708h,01020304h - - segment code -_random: -; Read state[0] and perform state shifting. - ld iy,__state ; iy = &state[0] - ld hl,(iy+0*4+0) ; hl = hl(state[0]) - push hl - ld hl,(iy+0*4+2) ; hl = eu(state[0]) - push hl - lea hl,iy+1*4 ; hl = &state[1] - lea de,iy+0*4 ; de = &state[0] - ld bc,3*4 - ldir ; state[0] = state[1] - ; state[1] = state[2] - ; state[2] = state[3] - pop bc - pop de ; bcde = state[0] == t0 -; -; s0 = t0 << 19 ==> s0h == 0 ==> t1h = t0h -; s0l == 0 ==> t1l = t0l -; -; s1 = t1 >> 21 ==> s1e == 0 ==> t2e = t1e -; s1u == 0 ==> t2u = t1u -; -; s2 = z << 8 ==> s2e == zu ==> t3e == t2e ^ s2e == t1e ^ s2e == t0e ^ s0e ^ s2e -; s2u == zh ==> t3u == t2u ^ s2u == t1u ^ s2u == t0u ^ s0u ^ s2u -; s2h == zl ==> t3h == t2h ^ s2h == t1h ^ s1h ^ s2h == t0h ^ s1h ^ s2h -; s2l == 0 ==> t3l == t2l == t1l ^ s1l == t0l ^ s1l -; -; Calculate s0. - ld h,d - ld l,e ; hl = t0hl == t0 << 16 - add hl,hl - add hl,hl - add hl,hl ; hl = t0 << 19 = s0eu - ; h = s0e - ; l = s0u -; Calculate t1e and t3e. - ld a,b ; a = t0e - xor a,h ; a = t0e ^ s0e == t1e - ld h,a ; h = t1e - xor a,(iy+3*4+2) ; a = t1e ^ zu == t2e ^ s2e == t3e - ld (iy+3*4+3),a ; e(state[3]) = t3e - ld b,a ; b = t3e -; Calculate t1u and t3u. - ld a,c ; a = t0u - xor a,l ; a = t0u ^ s0u == t1u - ld l,a ; l = t1u - ; hl = t1eu == t1 >> 16 - xor a,(iy+3*4+1) ; a = t1u ^ zh == t2u ^ s2u == t3u - ld (iy+3*4+2),a ; u(state[3]) = t3u -; Calculate s1. - xor a,a ; a = 0 - add.s hl,hl - adc a,a - add.s hl,hl - adc a,a - add.s hl,hl - adc a,a ; ahl = (t1 >> 16) << 3 - ; ah = ((t1 >> 16) << 3) >> 8 == t1 >> 21 == s1hl - ; a = s1h - ; h = s1l -; Calculate t3h. - xor a,d ; a = s1h ^ t0h === s1h ^ t1h == t2h - xor a,(iy+3*4+0) ; a = t2h ^ zl == t2h ^ s2h == t3h - ld (iy+3*4+1),a ; h(state[3]) = t3h -; Calculate t3l. - ld a,e ; a = t0l == t1l - xor a,h ; a = t1l ^ s1l == t2l == t3l - ld (iy+3*4+0),a ; l(state[3]) = t3l -; Calculate result. - ld hl,(iy+3*4) - ld a,b ; auhl = t3 - ld de,(iy+2*4) - ld c,(iy+2*4+3) ; cude = state[2] - add hl,de - adc a,c ; auhl = t3 + state[2] = result - ld e,a ; euhl = result - ret +; ---
+; uint32_t random(void)
+; ---
+
+ .def _random
+ .def __state
+ .assume adl=1
+
+; https://github.com/MersenneTwister-Lab/XSadd/blob/master/xsadd.h#L75
+; using shift parameters (19, 21, 8) instead of (15, 18, 11)
+
+; uint32_t xsadd(uint32_t state[static 4])
+; {
+; uint32_t s0, s1, s2, t0, t1, t2, t3, z, result;
+; t0 = state[0];
+; state[0] = state[1]; state[1] = state[2]; state[2] = state[3];
+; s0 = t0 << 19;
+; t1 = t0 ^ s0;
+; s1 = t1 >> 21;
+; t2 = t1 ^ s1;
+; z = state[3];
+; s2 = z << 8;
+; t3 = t2 ^ s2;
+; state[3] = t3;
+; result = t3 + state[2];
+; return result;
+; }
+
+ segment data
+__state:
+ dl 0d0e0f10h,090a0b0ch,05060708h,01020304h
+
+ segment code
+_random:
+; Read state[0] and perform state shifting.
+ ld iy,__state ; iy = &state[0]
+ ld hl,(iy+0*4+0) ; hl = hl(state[0])
+ push hl
+ ld hl,(iy+0*4+2) ; hl = eu(state[0])
+ push hl
+ lea hl,iy+1*4 ; hl = &state[1]
+ lea de,iy+0*4 ; de = &state[0]
+ ld bc,3*4
+ ldir ; state[0] = state[1]
+ ; state[1] = state[2]
+ ; state[2] = state[3]
+ pop bc
+ pop de ; bcde = state[0] == t0
+;
+; s0 = t0 << 19 ==> s0h == 0 ==> t1h = t0h
+; s0l == 0 ==> t1l = t0l
+;
+; s1 = t1 >> 21 ==> s1e == 0 ==> t2e = t1e
+; s1u == 0 ==> t2u = t1u
+;
+; s2 = z << 8 ==> s2e == zu ==> t3e == t2e ^ s2e == t1e ^ s2e == t0e ^ s0e ^ s2e
+; s2u == zh ==> t3u == t2u ^ s2u == t1u ^ s2u == t0u ^ s0u ^ s2u
+; s2h == zl ==> t3h == t2h ^ s2h == t1h ^ s1h ^ s2h == t0h ^ s1h ^ s2h
+; s2l == 0 ==> t3l == t2l == t1l ^ s1l == t0l ^ s1l
+;
+; Calculate s0.
+ ld h,d
+ ld l,e ; hl = t0hl == t0 << 16
+ add hl,hl
+ add hl,hl
+ add hl,hl ; hl = t0 << 19 = s0eu
+ ; h = s0e
+ ; l = s0u
+; Calculate t1e and t3e.
+ ld a,b ; a = t0e
+ xor a,h ; a = t0e ^ s0e == t1e
+ ld h,a ; h = t1e
+ xor a,(iy+3*4+2) ; a = t1e ^ zu == t2e ^ s2e == t3e
+ ld (iy+3*4+3),a ; e(state[3]) = t3e
+ ld b,a ; b = t3e
+; Calculate t1u and t3u.
+ ld a,c ; a = t0u
+ xor a,l ; a = t0u ^ s0u == t1u
+ ld l,a ; l = t1u
+ ; hl = t1eu == t1 >> 16
+ xor a,(iy+3*4+1) ; a = t1u ^ zh == t2u ^ s2u == t3u
+ ld (iy+3*4+2),a ; u(state[3]) = t3u
+; Calculate s1.
+ xor a,a ; a = 0
+ add.s hl,hl
+ adc a,a
+ add.s hl,hl
+ adc a,a
+ add.s hl,hl
+ adc a,a ; ahl = (t1 >> 16) << 3
+ ; ah = ((t1 >> 16) << 3) >> 8 == t1 >> 21 == s1hl
+ ; a = s1h
+ ; h = s1l
+; Calculate t3h.
+ xor a,d ; a = s1h ^ t0h === s1h ^ t1h == t2h
+ xor a,(iy+3*4+0) ; a = t2h ^ zl == t2h ^ s2h == t3h
+ ld (iy+3*4+1),a ; h(state[3]) = t3h
+; Calculate t3l.
+ ld a,e ; a = t0l == t1l
+ xor a,h ; a = t1l ^ s1l == t2l == t3l
+ ld (iy+3*4+0),a ; l(state[3]) = t3l
+; Calculate result.
+ ld hl,(iy+3*4)
+ ld a,b ; auhl = t3
+ ld de,(iy+2*4)
+ ld c,(iy+2*4+3) ; cude = state[2]
+ add hl,de
+ adc a,c ; auhl = t3 + state[2] = result
+ ld e,a ; euhl = result
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/removeallbreakpoints.src b/frontends/calculator/CEdev/lib/shared/removeallbreakpoints.src index ddae792..effb0d2 100644 --- a/frontends/calculator/CEdev/lib/shared/removeallbreakpoints.src +++ b/frontends/calculator/CEdev/lib/shared/removeallbreakpoints.src @@ -1,12 +1,12 @@ -; --- -; remove all breakpoints -; --- - - .def _dbg_RemoveAllBreakpoints - .assume adl=1 - -_dbg_RemoveAllBreakpoints: - scf - sbc hl,hl - ld (hl),9 - ret +; ---
+; remove all breakpoints
+; ---
+
+ .def _dbg_RemoveAllBreakpoints
+ .assume adl=1
+
+_dbg_RemoveAllBreakpoints:
+ scf
+ sbc hl,hl
+ ld (hl),9
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/removeallwatchpoints.src b/frontends/calculator/CEdev/lib/shared/removeallwatchpoints.src index 7171ba4..c5b86bb 100644 --- a/frontends/calculator/CEdev/lib/shared/removeallwatchpoints.src +++ b/frontends/calculator/CEdev/lib/shared/removeallwatchpoints.src @@ -1,12 +1,12 @@ -; --- -; remove all watchpoints -; --- - - .def _dbg_RemoveAllWatchpoints - .assume adl=1 - -_dbg_RemoveAllWatchpoints: - scf - sbc hl,hl - ld (hl),10 - ret +; ---
+; remove all watchpoints
+; ---
+
+ .def _dbg_RemoveAllWatchpoints
+ .assume adl=1
+
+_dbg_RemoveAllWatchpoints:
+ scf
+ sbc hl,hl
+ ld (hl),10
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/removebreakpoint.src b/frontends/calculator/CEdev/lib/shared/removebreakpoint.src index d2c4b9b..a7094da 100644 --- a/frontends/calculator/CEdev/lib/shared/removebreakpoint.src +++ b/frontends/calculator/CEdev/lib/shared/removebreakpoint.src @@ -1,16 +1,16 @@ -; --- -; remove breakpoint -; --- - - .def _dbg_RemoveBreakpoint - .assume adl=1 - -_dbg_RemoveBreakpoint: - pop hl - pop de - push de - push hl - scf - sbc hl,hl - ld (hl),4 - ret +; ---
+; remove breakpoint
+; ---
+
+ .def _dbg_RemoveBreakpoint
+ .assume adl=1
+
+_dbg_RemoveBreakpoint:
+ pop hl
+ pop de
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),4
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/removewatchpoint.src b/frontends/calculator/CEdev/lib/shared/removewatchpoint.src index a096d15..eb39c92 100644 --- a/frontends/calculator/CEdev/lib/shared/removewatchpoint.src +++ b/frontends/calculator/CEdev/lib/shared/removewatchpoint.src @@ -1,16 +1,16 @@ -; --- -; remove watchpoint -; --- - - .def _dbg_RemoveWatchpoint - .assume adl=1 - -_dbg_RemoveWatchpoint: - pop hl - pop de - push de - push hl - scf - sbc hl,hl - ld (hl),8 - ret +; ---
+; remove watchpoint
+; ---
+
+ .def _dbg_RemoveWatchpoint
+ .assume adl=1
+
+_dbg_RemoveWatchpoint:
+ pop hl
+ pop de
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),8
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/round.src b/frontends/calculator/CEdev/lib/shared/round.src index e78e237..99573e9 100644 --- a/frontends/calculator/CEdev/lib/shared/round.src +++ b/frontends/calculator/CEdev/lib/shared/round.src @@ -1,44 +1,44 @@ - .def _round - .ref __frameset0 - .ref __fcmp - .ref __fadd - .ref __fsub - .ref _floor - .ref _ceil - .assume adl=1 - -_round: - call __frameset0 - ld hl,(ix+6) - ld e,(ix+9) - ld bc,0 - xor a,a - call __fcmp - push af - or a,a - sbc hl,hl - ld e,63 - ld bc,(ix+6) - pop af - ld a,(ix+9) - jp m,IsLessZero - call __fadd - or a,a - sbc hl,hl - ld l,a - push bc - push hl - call _floor - jr Finish -IsLessZero: - call __fsub - or a,a - sbc hl,hl - ld l,a - push bc - push hl - call _ceil -Finish: - ld sp,ix - pop ix - ret + .def _round
+ .ref __frameset0
+ .ref __fcmp
+ .ref __fadd
+ .ref __fsub
+ .ref _floor
+ .ref _ceil
+ .assume adl=1
+
+_round:
+ call __frameset0
+ ld hl,(ix+6)
+ ld e,(ix+9)
+ ld bc,0
+ xor a,a
+ call __fcmp
+ push af
+ or a,a
+ sbc hl,hl
+ ld e,63
+ ld bc,(ix+6)
+ pop af
+ ld a,(ix+9)
+ jp m,IsLessZero
+ call __fadd
+ or a,a
+ sbc hl,hl
+ ld l,a
+ push bc
+ push hl
+ call _floor
+ jr Finish
+IsLessZero:
+ call __fsub
+ or a,a
+ sbc hl,hl
+ ld l,a
+ push bc
+ push hl
+ call _ceil
+Finish:
+ ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/sand.src b/frontends/calculator/CEdev/lib/shared/sand.src index a39e220..401ffc6 100644 --- a/frontends/calculator/CEdev/lib/shared/sand.src +++ b/frontends/calculator/CEdev/lib/shared/sand.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short AND. -; Input: -; Operand1: -; hl : 16 bit -; -; Operand2: -; bc : 16 bit -; -; Output: -; Result: hl : 16 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __sand - .assume adl=1 - -__sand equ 000200h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short AND.
+; Input:
+; Operand1:
+; hl : 16 bit
+;
+; Operand2:
+; bc : 16 bit
+;
+; Output:
+; Result: hl : 16 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __sand
+ .assume adl=1
+
+__sand equ 000200h
diff --git a/frontends/calculator/CEdev/lib/shared/sbrk.src b/frontends/calculator/CEdev/lib/shared/sbrk.src index ab1cf1b..6410631 100644 --- a/frontends/calculator/CEdev/lib/shared/sbrk.src +++ b/frontends/calculator/CEdev/lib/shared/sbrk.src @@ -1,49 +1,49 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Heap allocation routine s_sbrk -; Input: -; argument : 24 bit - number of bytes requested -; -; Output: -; Result: HL: 24 bit address of memory allocated -; HL = 0 if no memory available - -; Registers Used: -; -;------------------------------------------------------------------------- - .assume adl=1 - .ref __heapbot - .ref __heaptop - .def __s_sbrk - - SEGMENT DATA -__sbrkbase: - .trio __heapbot - - SEGMENT CODE -__s_sbrk: - ld hl,3 - add hl,sp - ld hl,(hl) ;nbytes - ld de,(__sbrkbase) - add hl,de - jr c,_fail - - ; fail if hl >= sp. - ; hl is now, or will be, the next un-allocated address = minimal value - ; for sp that will not corrupt allocated data or that writing to - ; allocated data may corrupt the stack. - ; Actually, if hl is anywhere close to sp we're probably in trouble :( - - push hl - sbc hl,sp - pop hl - jr nc,_fail -_ok: - ex hl,de - ld (__sbrkbase),de - ret -_fail: - or a,a - sbc hl,hl - ret +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Heap allocation routine s_sbrk
+; Input:
+; argument : 24 bit - number of bytes requested
+;
+; Output:
+; Result: HL: 24 bit address of memory allocated
+; HL = 0 if no memory available
+
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .assume adl=1
+ .ref __heapbot
+ .ref __heaptop
+ .def __s_sbrk
+
+ SEGMENT DATA
+__sbrkbase:
+ .trio __heapbot
+
+ SEGMENT CODE
+__s_sbrk:
+ ld hl,3
+ add hl,sp
+ ld hl,(hl) ;nbytes
+ ld de,(__sbrkbase)
+ add hl,de
+ jr c,_fail
+
+ ; fail if hl >= sp.
+ ; hl is now, or will be, the next un-allocated address = minimal value
+ ; for sp that will not corrupt allocated data or that writing to
+ ; allocated data may corrupt the stack.
+ ; Actually, if hl is anywhere close to sp we're probably in trouble :(
+
+ push hl
+ sbc hl,sp
+ pop hl
+ jr nc,_fail
+_ok:
+ ex hl,de
+ ld (__sbrkbase),de
+ ret
+_fail:
+ or a,a
+ sbc hl,hl
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/scmpzero.src b/frontends/calculator/CEdev/lib/shared/scmpzero.src index 5c62a13..5b54941 100644 --- a/frontends/calculator/CEdev/lib/shared/scmpzero.src +++ b/frontends/calculator/CEdev/lib/shared/scmpzero.src @@ -1,16 +1,16 @@ -; (c) Copyright 2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Set flag for comparison of 16-bit scalar with constant value zero -; Input: -; Operand1: HL register -; -; Output: -; Result: f register -; -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __scmpzero - .assume adl=1 - -__scmpzero equ 000204h +; (c) Copyright 2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Set flag for comparison of 16-bit scalar with constant value zero
+; Input:
+; Operand1: HL register
+;
+; Output:
+; Result: f register
+;
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __scmpzero
+ .assume adl=1
+
+__scmpzero equ 000204h
diff --git a/frontends/calculator/CEdev/lib/shared/sdivs.src b/frontends/calculator/CEdev/lib/shared/sdivs.src index 75cda77..e91692c 100644 --- a/frontends/calculator/CEdev/lib/shared/sdivs.src +++ b/frontends/calculator/CEdev/lib/shared/sdivs.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Division Signed -; Input: -; Operand1: -; hl : 16 bits x -; -; Operand2: -; bc : 16 bits y -; -; Output: -; Result: hl : 16 bits -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __sdivs - .assume adl=1 - -__sdivs equ 000208h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Division Signed
+; Input:
+; Operand1:
+; hl : 16 bits x
+;
+; Operand2:
+; bc : 16 bits y
+;
+; Output:
+; Result: hl : 16 bits
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __sdivs
+ .assume adl=1
+
+__sdivs equ 000208h
diff --git a/frontends/calculator/CEdev/lib/shared/sdivu.src b/frontends/calculator/CEdev/lib/shared/sdivu.src index 2002728..9cde056 100644 --- a/frontends/calculator/CEdev/lib/shared/sdivu.src +++ b/frontends/calculator/CEdev/lib/shared/sdivu.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Division Unsigned -; Input: -; Operand1: -; hl : 16 bits -; -; Operand2: -; bc : 16 bits -; -; Output: -; Result: hl : 16 bits -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __sdivu - .assume adl=1 - -__sdivu equ 00020Ch - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Division Unsigned
+; Input:
+; Operand1:
+; hl : 16 bits
+;
+; Operand2:
+; bc : 16 bits
+;
+; Output:
+; Result: hl : 16 bits
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __sdivu
+ .assume adl=1
+
+__sdivu equ 00020Ch
+
diff --git a/frontends/calculator/CEdev/lib/shared/seqcase.src b/frontends/calculator/CEdev/lib/shared/seqcase.src index 5c4a084..fda01b3 100644 --- a/frontends/calculator/CEdev/lib/shared/seqcase.src +++ b/frontends/calculator/CEdev/lib/shared/seqcase.src @@ -1,25 +1,25 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; Returns to case label -; Data at Return Address: -; DW numCases 0 -; DW24 startValue 2 -; DW24 Lab1 5 -; DW24 Lab2 8 -; ... -; DW24 defaultLab 5+3*numCases -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __seqcase - .assume adl=1 - +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+; Returns to case label
+; Data at Return Address:
+; DW numCases 0
+; DW24 startValue 2
+; DW24 Lab1 5
+; DW24 Lab2 8
+; ...
+; DW24 defaultLab 5+3*numCases
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __seqcase
+ .assume adl=1
+
__seqcase equ 000210h
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/seqcased.src b/frontends/calculator/CEdev/lib/shared/seqcased.src index d6dcea1..7a40003 100644 --- a/frontends/calculator/CEdev/lib/shared/seqcased.src +++ b/frontends/calculator/CEdev/lib/shared/seqcased.src @@ -1,26 +1,26 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; CASE branch resolution. -; -; Input: -; Operand3: -; hl : 24 bit value to match in table -; -; Output: -; Result: hl : 24 bit address of case jp to take -; Registers Used: -; -; Data at Return Address: -; JP (HL) 0 -; DW numCases 1 -; DW24 startValue 3 -; DW24 Lab1 6 -; DW24 Lab2 9 -; ... -; DW24 defaultLab 6+3*numCases -; -;------------------------------------------------------------------------- - .def __seqcaseD - .assume adl=1 - -__seqcaseD equ 000214h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; CASE branch resolution.
+;
+; Input:
+; Operand3:
+; hl : 24 bit value to match in table
+;
+; Output:
+; Result: hl : 24 bit address of case jp to take
+; Registers Used:
+;
+; Data at Return Address:
+; JP (HL) 0
+; DW numCases 1
+; DW24 startValue 3
+; DW24 Lab1 6
+; DW24 Lab2 9
+; ...
+; DW24 defaultLab 6+3*numCases
+;
+;-------------------------------------------------------------------------
+ .def __seqcaseD
+ .assume adl=1
+
+__seqcaseD equ 000214h
diff --git a/frontends/calculator/CEdev/lib/shared/setbreakpoint.src b/frontends/calculator/CEdev/lib/shared/setbreakpoint.src index 5a1e929..6fd03d5 100644 --- a/frontends/calculator/CEdev/lib/shared/setbreakpoint.src +++ b/frontends/calculator/CEdev/lib/shared/setbreakpoint.src @@ -1,16 +1,16 @@ -; --- -; set breakpoint -; --- - - .def _dbg_SetBreakpoint - .assume adl=1 - -_dbg_SetBreakpoint: - pop hl - pop de - push de - push hl - scf - sbc hl,hl - ld (hl),3 - ret +; ---
+; set breakpoint
+; ---
+
+ .def _dbg_SetBreakpoint
+ .assume adl=1
+
+_dbg_SetBreakpoint:
+ pop hl
+ pop de
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),3
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/setflag.src b/frontends/calculator/CEdev/lib/shared/setflag.src index b710b95..928cfdd 100644 --- a/frontends/calculator/CEdev/lib/shared/setflag.src +++ b/frontends/calculator/CEdev/lib/shared/setflag.src @@ -1,22 +1,22 @@ -; (c) Copyright 2007-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Set Sign flag for signed comparison -; s <-- s xor v -; Input: -; Operand1: f register -; -; Output: -; Result: updated f register -; -; Registers Used: -; None -;------------------------------------------------------------------------- -; if ( V == 0) -; S = S xor 0 -> S = S -; if ( V != 0) -; S = S xor V -;------------------------------------------------------------------------- - .def __setflag - .assume adl=1 - -__setflag equ 000218h +; (c) Copyright 2007-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Set Sign flag for signed comparison
+; s <-- s xor v
+; Input:
+; Operand1: f register
+;
+; Output:
+; Result: updated f register
+;
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+; if ( V == 0)
+; S = S xor 0 -> S = S
+; if ( V != 0)
+; S = S xor V
+;-------------------------------------------------------------------------
+ .def __setflag
+ .assume adl=1
+
+__setflag equ 000218h
diff --git a/frontends/calculator/CEdev/lib/shared/setjmp.src b/frontends/calculator/CEdev/lib/shared/setjmp.src index 9bc7c37..607a6eb 100644 --- a/frontends/calculator/CEdev/lib/shared/setjmp.src +++ b/frontends/calculator/CEdev/lib/shared/setjmp.src @@ -1,6 +1,6 @@ - .def _setjmp - .assume adl=1 - -; int setjmp(jmp_buf env); - -_setjmp equ 0000B8h + .def _setjmp
+ .assume adl=1
+
+; int setjmp(jmp_buf env);
+
+_setjmp equ 0000B8h
diff --git a/frontends/calculator/CEdev/lib/shared/setreadwatchpoint.src b/frontends/calculator/CEdev/lib/shared/setreadwatchpoint.src index 7ada983..c4c57aa 100644 --- a/frontends/calculator/CEdev/lib/shared/setreadwatchpoint.src +++ b/frontends/calculator/CEdev/lib/shared/setreadwatchpoint.src @@ -1,18 +1,18 @@ -; --- -; set read watchpoint -; --- - - .def _dbg_SetReadWatchpoint - .assume adl=1 - -_dbg_SetReadWatchpoint: - pop hl - pop de - pop bc - push bc - push de - push hl - scf - sbc hl,hl - ld (hl),5 - ret +; ---
+; set read watchpoint
+; ---
+
+ .def _dbg_SetReadWatchpoint
+ .assume adl=1
+
+_dbg_SetReadWatchpoint:
+ pop hl
+ pop de
+ pop bc
+ push bc
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),5
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/setreadwritewatchpoint.src b/frontends/calculator/CEdev/lib/shared/setreadwritewatchpoint.src index f303929..ba7a44d 100644 --- a/frontends/calculator/CEdev/lib/shared/setreadwritewatchpoint.src +++ b/frontends/calculator/CEdev/lib/shared/setreadwritewatchpoint.src @@ -1,18 +1,18 @@ -; --- -; set write watchpoint -; --- - - .def _dbg_SetReadWriteWatchpoint - .assume adl=1 - -_dbg_SetReadWriteWatchpoint: - pop hl - pop de - pop bc - push bc - push de - push hl - scf - sbc hl,hl - ld (hl),7 - ret +; ---
+; set write watchpoint
+; ---
+
+ .def _dbg_SetReadWriteWatchpoint
+ .assume adl=1
+
+_dbg_SetReadWriteWatchpoint:
+ pop hl
+ pop de
+ pop bc
+ push bc
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),7
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/setwatchpoint.src b/frontends/calculator/CEdev/lib/shared/setwatchpoint.src index bf148d4..a46bc74 100644 --- a/frontends/calculator/CEdev/lib/shared/setwatchpoint.src +++ b/frontends/calculator/CEdev/lib/shared/setwatchpoint.src @@ -1,18 +1,18 @@ -; --- -; set watchpoint -; --- - - .def _dbg_SetWatchpoint - .assume adl=1 - -_dbg_SetWatchpoint: - pop hl - pop de - pop bc - push bc - push de - push hl - scf - sbc hl,hl - ld (hl),11 - ret +; ---
+; set watchpoint
+; ---
+
+ .def _dbg_SetWatchpoint
+ .assume adl=1
+
+_dbg_SetWatchpoint:
+ pop hl
+ pop de
+ pop bc
+ push bc
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),11
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/setwritewatchpoint.src b/frontends/calculator/CEdev/lib/shared/setwritewatchpoint.src index 62bb06f..42f8ef9 100644 --- a/frontends/calculator/CEdev/lib/shared/setwritewatchpoint.src +++ b/frontends/calculator/CEdev/lib/shared/setwritewatchpoint.src @@ -1,18 +1,18 @@ -; --- -; set write watchpoint -; --- - - .def _dbg_SetWriteWatchpoint - .assume adl=1 - -_dbg_SetWriteWatchpoint: - pop hl - pop de - pop bc - push bc - push de - push hl - scf - sbc hl,hl - ld (hl),6 - ret +; ---
+; set write watchpoint
+; ---
+
+ .def _dbg_SetWriteWatchpoint
+ .assume adl=1
+
+_dbg_SetWriteWatchpoint:
+ pop hl
+ pop de
+ pop bc
+ push bc
+ push de
+ push hl
+ scf
+ sbc hl,hl
+ ld (hl),6
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/sldix.src b/frontends/calculator/CEdev/lib/shared/sldix.src index 45c8006..9306541 100644 --- a/frontends/calculator/CEdev/lib/shared/sldix.src +++ b/frontends/calculator/CEdev/lib/shared/sldix.src @@ -1,17 +1,17 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; short load hl,(ix+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from ix -; -; Output: -; Result: hl : 16 bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __sldix - .assume adl=1 - -__sldix equ 00021Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; short load hl,(ix+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+;
+; Output:
+; Result: hl : 16 bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __sldix
+ .assume adl=1
+
+__sldix equ 00021Ch
diff --git a/frontends/calculator/CEdev/lib/shared/sldiy.src b/frontends/calculator/CEdev/lib/shared/sldiy.src index 2a820ce..a0e923e 100644 --- a/frontends/calculator/CEdev/lib/shared/sldiy.src +++ b/frontends/calculator/CEdev/lib/shared/sldiy.src @@ -1,18 +1,18 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; short load hl,(iy+nnnnnn) -; Input: -; Operand1: -; BC : 24-bit offset from iy -; -; Output: -; Result: hl : 16-bit -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __sldiy - .assume adl=1 - -__sldiy equ 000220h - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; short load hl,(iy+nnnnnn)
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+;
+; Output:
+; Result: hl : 16-bit
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __sldiy
+ .assume adl=1
+
+__sldiy equ 000220h
+
diff --git a/frontends/calculator/CEdev/lib/shared/smuls.src b/frontends/calculator/CEdev/lib/shared/smuls.src index 4ac0260..f16bb98 100644 --- a/frontends/calculator/CEdev/lib/shared/smuls.src +++ b/frontends/calculator/CEdev/lib/shared/smuls.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Multiply Signed -; Input: -; Operand1: -; bc : 16 bits -; -; Operand2: -; hl : 16 bits -; -; Output: -; Result: hl : 16 bits -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __smuls - .assume adl=1 - -__smuls equ 000224h - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Multiply Signed
+; Input:
+; Operand1:
+; bc : 16 bits
+;
+; Operand2:
+; hl : 16 bits
+;
+; Output:
+; Result: hl : 16 bits
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __smuls
+ .assume adl=1
+
+__smuls equ 000224h
+
diff --git a/frontends/calculator/CEdev/lib/shared/smulu.src b/frontends/calculator/CEdev/lib/shared/smulu.src index 4433a62..aace92f 100644 --- a/frontends/calculator/CEdev/lib/shared/smulu.src +++ b/frontends/calculator/CEdev/lib/shared/smulu.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Multiply Unsigned -; Input: -; Operand1: -; BC : 16 bits -; -; Operand2: -; HL : 16 bits -; -; Output: -; Result: HL : 16 bits -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __smulu - .assume adl=1 - -__smulu equ 000228h - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Multiply Unsigned
+; Input:
+; Operand1:
+; BC : 16 bits
+;
+; Operand2:
+; HL : 16 bits
+;
+; Output:
+; Result: HL : 16 bits
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __smulu
+ .assume adl=1
+
+__smulu equ 000228h
+
diff --git a/frontends/calculator/CEdev/lib/shared/sneg.src b/frontends/calculator/CEdev/lib/shared/sneg.src index 4a3fb47..6222cf2 100644 --- a/frontends/calculator/CEdev/lib/shared/sneg.src +++ b/frontends/calculator/CEdev/lib/shared/sneg.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short NEG. -; Input: -; Operand1: -; hl : 16 bit -; -; Output: -; Result: hl : 16 bit -; Registers Used: -; None -;------------------------------------------------------------------------- - .def __sneg - .assume adl=1 - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short NEG.
+; Input:
+; Operand1:
+; hl : 16 bit
+;
+; Output:
+; Result: hl : 16 bit
+; Registers Used:
+; None
+;-------------------------------------------------------------------------
+ .def __sneg
+ .assume adl=1
+
__sneg equ 00022Ch
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/snot.src b/frontends/calculator/CEdev/lib/shared/snot.src index 307da76..9a9cb26 100644 --- a/frontends/calculator/CEdev/lib/shared/snot.src +++ b/frontends/calculator/CEdev/lib/shared/snot.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short NOT. -; Input: -; Operand1: -; hl : 16 bit -; -; Output: -; Result: hl : 16 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __snot - .assume adl=1 - -__snot equ 000230h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short NOT.
+; Input:
+; Operand1:
+; hl : 16 bit
+;
+; Output:
+; Result: hl : 16 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __snot
+ .assume adl=1
+
+__snot equ 000230h
diff --git a/frontends/calculator/CEdev/lib/shared/sor.src b/frontends/calculator/CEdev/lib/shared/sor.src index 119a003..1e8968a 100644 --- a/frontends/calculator/CEdev/lib/shared/sor.src +++ b/frontends/calculator/CEdev/lib/shared/sor.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short OR. -; Input: -; Operand1: -; hl : 16 bit -; -; Operand2: -; bc : 16 bit -; -; Output: -; Result: hl : 16 bit -; hl OR bc -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __sor - .assume adl=1 - -__sor equ 000234h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short OR.
+; Input:
+; Operand1:
+; hl : 16 bit
+;
+; Operand2:
+; bc : 16 bit
+;
+; Output:
+; Result: hl : 16 bit
+; hl OR bc
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __sor
+ .assume adl=1
+
+__sor equ 000234h
diff --git a/frontends/calculator/CEdev/lib/shared/sprintf.src b/frontends/calculator/CEdev/lib/shared/sprintf.src index 7c09553..367e689 100644 --- a/frontends/calculator/CEdev/lib/shared/sprintf.src +++ b/frontends/calculator/CEdev/lib/shared/sprintf.src @@ -1,7 +1,7 @@ - .def _sprintf - .assume adl=1 - -; int sprintf (char * str, const char * format, ...); - -_sprintf equ 0000BCh - + .def _sprintf
+ .assume adl=1
+
+; int sprintf (char * str, const char * format, ...);
+
+_sprintf equ 0000BCh
+
diff --git a/frontends/calculator/CEdev/lib/shared/sqrtf.src b/frontends/calculator/CEdev/lib/shared/sqrtf.src index 563d151..f3d4214 100644 --- a/frontends/calculator/CEdev/lib/shared/sqrtf.src +++ b/frontends/calculator/CEdev/lib/shared/sqrtf.src @@ -1,37 +1,37 @@ -;-------------------------------------------------------------- -; -; IEEE Single precision square root -; Copyright 2003-2008 Zilog, Inc. -; -;-------------------------------------------------------------- -; -; INPUTS: -; Operand1: -; (stack) : 32 bit IEEE format -; -; OUTPUTS: -; Result: -; EuHL : 32 bit IEEE format result -; -; ALGORITHM: -; This algorithm is very similar to that used for binary -; division; readers should be familiar with that -; algorithm of repetitive compare/subtract, and shift. -; This algorithm uses the same concepts, except that the -; number compared/subtracted is 2*x+1, where 'x' is the -; developing result. Briefly, if 'y' is the input parameter, -; and 'x' is the result developed (and subtracted out) so -; far, then 'y - x^2' is the residual value. If the residual -; is greater than '2*x + 1', then we subtract that out, -; and add one to x; this means that the new residual is -; 'y - (x+1)^2'. Repetitively applied with shifting, 'x^2' -; approaches the value of 'y'. -; -; Registers Used: -; AF,BC,D -; -;-------------------------------------------------------------- - .def _sqrtf - .assume adl=1 - -_sqrtf equ 000298h +;--------------------------------------------------------------
+;
+; IEEE Single precision square root
+; Copyright 2003-2008 Zilog, Inc.
+;
+;--------------------------------------------------------------
+;
+; INPUTS:
+; Operand1:
+; (stack) : 32 bit IEEE format
+;
+; OUTPUTS:
+; Result:
+; EuHL : 32 bit IEEE format result
+;
+; ALGORITHM:
+; This algorithm is very similar to that used for binary
+; division; readers should be familiar with that
+; algorithm of repetitive compare/subtract, and shift.
+; This algorithm uses the same concepts, except that the
+; number compared/subtracted is 2*x+1, where 'x' is the
+; developing result. Briefly, if 'y' is the input parameter,
+; and 'x' is the result developed (and subtracted out) so
+; far, then 'y - x^2' is the residual value. If the residual
+; is greater than '2*x + 1', then we subtract that out,
+; and add one to x; this means that the new residual is
+; 'y - (x+1)^2'. Repetitively applied with shifting, 'x^2'
+; approaches the value of 'y'.
+;
+; Registers Used:
+; AF,BC,D
+;
+;--------------------------------------------------------------
+ .def _sqrtf
+ .assume adl=1
+
+_sqrtf equ 000298h
diff --git a/frontends/calculator/CEdev/lib/shared/srand.src b/frontends/calculator/CEdev/lib/shared/srand.src index bbcf8f2..cf19c1d 100644 --- a/frontends/calculator/CEdev/lib/shared/srand.src +++ b/frontends/calculator/CEdev/lib/shared/srand.src @@ -1,12 +1,12 @@ - .ref __setstate - .def _srand - .assume adl=1 - -; void srand(unsigned int seed); - -_srand: - pop bc - ex (sp),hl - push bc - xor a,a - jp __setstate + .ref __setstate
+ .def _srand
+ .assume adl=1
+
+; void srand(unsigned int seed);
+
+_srand:
+ pop bc
+ ex (sp),hl
+ push bc
+ xor a,a
+ jp __setstate
diff --git a/frontends/calculator/CEdev/lib/shared/srandom.src b/frontends/calculator/CEdev/lib/shared/srandom.src index 0aa5189..ffcd54f 100644 --- a/frontends/calculator/CEdev/lib/shared/srandom.src +++ b/frontends/calculator/CEdev/lib/shared/srandom.src @@ -1,29 +1,29 @@ -; --- -; void srandom(uint32_t seed) -; --- - - .ref __state - .def _srandom - .def __setstate - .assume adl=1 - -_MemClear equ 00210E0h - -_srandom: - pop bc - pop de - ex (sp),hl ; lude = seed - push de - push bc - ex de,hl - ld a,e ; auhl = seed -__setstate: - ld (__state),hl - ld hl,__state+3 - ld (hl),a - ld b,12 -__setstateloop: - inc hl - ld (hl),b - djnz __setstateloop - ret +; ---
+; void srandom(uint32_t seed)
+; ---
+
+ .ref __state
+ .def _srandom
+ .def __setstate
+ .assume adl=1
+
+_MemClear equ 00210E0h
+
+_srandom:
+ pop bc
+ pop de
+ ex (sp),hl ; lude = seed
+ push de
+ push bc
+ ex de,hl
+ ld a,e ; auhl = seed
+__setstate:
+ ld (__state),hl
+ ld hl,__state+3
+ ld (hl),a
+ ld b,12
+__setstateloop:
+ inc hl
+ ld (hl),b
+ djnz __setstateloop
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/srems.src b/frontends/calculator/CEdev/lib/shared/srems.src index 54b2907..1cc74a2 100644 --- a/frontends/calculator/CEdev/lib/shared/srems.src +++ b/frontends/calculator/CEdev/lib/shared/srems.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Modulus Signed -; Input: -; Operand1: -; hl : 16 bits -; -; Operand2: -; bc : 16 bits -; -; Output: -; Result: hl : 16 bits -; -; Registers Used: -; -;------------------------------------------------------------------------- - .ref __irems - .def __srems - .assume adl=1 - -__srems equ 000238h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Modulus Signed
+; Input:
+; Operand1:
+; hl : 16 bits
+;
+; Operand2:
+; bc : 16 bits
+;
+; Output:
+; Result: hl : 16 bits
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .ref __irems
+ .def __srems
+ .assume adl=1
+
+__srems equ 000238h
diff --git a/frontends/calculator/CEdev/lib/shared/sremu.src b/frontends/calculator/CEdev/lib/shared/sremu.src index 6ecd4aa..d8ca078 100644 --- a/frontends/calculator/CEdev/lib/shared/sremu.src +++ b/frontends/calculator/CEdev/lib/shared/sremu.src @@ -1,21 +1,21 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Modulus Unsigned -; Input: -; Operand1: -; hl : 16 bits -; -; Operand2: -; bc : 16 bits -; -; Output: -; Result: hl : 16 bits -; -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __sremu - .ref __iremu - .assume adl=1 - -__sremu equ 00023Ch +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Modulus Unsigned
+; Input:
+; Operand1:
+; hl : 16 bits
+;
+; Operand2:
+; bc : 16 bits
+;
+; Output:
+; Result: hl : 16 bits
+;
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __sremu
+ .ref __iremu
+ .assume adl=1
+
+__sremu equ 00023Ch
diff --git a/frontends/calculator/CEdev/lib/shared/sshl.src b/frontends/calculator/CEdev/lib/shared/sshl.src index cf5034d..1c10828 100644 --- a/frontends/calculator/CEdev/lib/shared/sshl.src +++ b/frontends/calculator/CEdev/lib/shared/sshl.src @@ -1,22 +1,22 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Shift Left -; Input: -; Operand1: -; BC : 16 bit number of bits to shift -; Assume B=0 C=shift count -; Operand2: -; HL : 16 bit value to be shifted by C -; -; Output: -; Result: HL : 16 bit -; Registers Used: -; none -; Comments: -; Created 12/2001: G.Loegel -;------------------------------------------------------------------------- - .def __sshl, __sshl_b - .assume adl=1 - -__sshl_b equ 000244h -__sshl equ 000240h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Shift Left
+; Input:
+; Operand1:
+; BC : 16 bit number of bits to shift
+; Assume B=0 C=shift count
+; Operand2:
+; HL : 16 bit value to be shifted by C
+;
+; Output:
+; Result: HL : 16 bit
+; Registers Used:
+; none
+; Comments:
+; Created 12/2001: G.Loegel
+;-------------------------------------------------------------------------
+ .def __sshl, __sshl_b
+ .assume adl=1
+
+__sshl_b equ 000244h
+__sshl equ 000240h
diff --git a/frontends/calculator/CEdev/lib/shared/sshrs.src b/frontends/calculator/CEdev/lib/shared/sshrs.src index a997ae1..94be572 100644 --- a/frontends/calculator/CEdev/lib/shared/sshrs.src +++ b/frontends/calculator/CEdev/lib/shared/sshrs.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Shift Right Signed -; Input: -; Operand1: -; BC : 16 bit number of bits to shift -; Assume B=0 C=shift count -; Operand2: -; HL : 16 bit value to be shifted by C -; -; Output: -; Result: HL : 16 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __sshrs, __sshrs_b - .assume adl=1 - -__sshrs_b equ 00024Ch -__sshrs equ 000248h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Shift Right Signed
+; Input:
+; Operand1:
+; BC : 16 bit number of bits to shift
+; Assume B=0 C=shift count
+; Operand2:
+; HL : 16 bit value to be shifted by C
+;
+; Output:
+; Result: HL : 16 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __sshrs, __sshrs_b
+ .assume adl=1
+
+__sshrs_b equ 00024Ch
+__sshrs equ 000248h
diff --git a/frontends/calculator/CEdev/lib/shared/sshru.src b/frontends/calculator/CEdev/lib/shared/sshru.src index 796f776..3a47401 100644 --- a/frontends/calculator/CEdev/lib/shared/sshru.src +++ b/frontends/calculator/CEdev/lib/shared/sshru.src @@ -1,20 +1,20 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Short Shift Right Unsigned -; Input: -; Operand1: -; BC : 16 bit number of bits to shift -; Assume B=0 C=shift count -; Operand2: -; HL : 16 bit value to be shifted by C -; -; Output: -; Result: HL : 16 bit -; Registers Used: -; none -;------------------------------------------------------------------------- - .def __sshru, __sshru_b - .assume adl=1 - -__sshru_b equ 000254h -__sshru equ 000250h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Short Shift Right Unsigned
+; Input:
+; Operand1:
+; BC : 16 bit number of bits to shift
+; Assume B=0 C=shift count
+; Operand2:
+; HL : 16 bit value to be shifted by C
+;
+; Output:
+; Result: HL : 16 bit
+; Registers Used:
+; none
+;-------------------------------------------------------------------------
+ .def __sshru, __sshru_b
+ .assume adl=1
+
+__sshru_b equ 000254h
+__sshru equ 000250h
diff --git a/frontends/calculator/CEdev/lib/shared/sstix.src b/frontends/calculator/CEdev/lib/shared/sstix.src index 6f0a11b..652d263 100644 --- a/frontends/calculator/CEdev/lib/shared/sstix.src +++ b/frontends/calculator/CEdev/lib/shared/sstix.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Integer store (ix+nnnnnn),HL -; Input: -; Operand1: -; BC : 24-bit offset from ix -; HL : 16-bit integer to store -; -; Output: -; -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __sstix - .assume adl=1 - -__sstix equ 000258h - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Integer store (ix+nnnnnn),HL
+; Input:
+; Operand1:
+; BC : 24-bit offset from ix
+; HL : 16-bit integer to store
+;
+; Output:
+;
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __sstix
+ .assume adl=1
+
+__sstix equ 000258h
+
diff --git a/frontends/calculator/CEdev/lib/shared/sstiy.src b/frontends/calculator/CEdev/lib/shared/sstiy.src index 504133c..799a899 100644 --- a/frontends/calculator/CEdev/lib/shared/sstiy.src +++ b/frontends/calculator/CEdev/lib/shared/sstiy.src @@ -1,19 +1,19 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; short store (iy+nnnnnn),HL -; Input: -; Operand1: -; BC : 24-bit offset from iy -; HL : 16-bit integer to store -; -; Output: -; -; -; Registers Used: -; -;------------------------------------------------------------------------- - .def __sstiy - .assume adl=1 - -__sstiy equ 00025Ch - +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; short store (iy+nnnnnn),HL
+; Input:
+; Operand1:
+; BC : 24-bit offset from iy
+; HL : 16-bit integer to store
+;
+; Output:
+;
+;
+; Registers Used:
+;
+;-------------------------------------------------------------------------
+ .def __sstiy
+ .assume adl=1
+
+__sstiy equ 00025Ch
+
diff --git a/frontends/calculator/CEdev/lib/shared/stoi.src b/frontends/calculator/CEdev/lib/shared/stoi.src index 9ad6430..e4b66d6 100644 --- a/frontends/calculator/CEdev/lib/shared/stoi.src +++ b/frontends/calculator/CEdev/lib/shared/stoi.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Signed Short to Integer Conversion -; Input: -; Operand1: -; BC : 16 bit number to convert -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __stoi - .assume adl=1 - -__stoi equ 000260h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Signed Short to Integer Conversion
+; Input:
+; Operand1:
+; BC : 16 bit number to convert
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __stoi
+ .assume adl=1
+
+__stoi equ 000260h
diff --git a/frontends/calculator/CEdev/lib/shared/stoiu.src b/frontends/calculator/CEdev/lib/shared/stoiu.src index db0d59e..1985544 100644 --- a/frontends/calculator/CEdev/lib/shared/stoiu.src +++ b/frontends/calculator/CEdev/lib/shared/stoiu.src @@ -1,16 +1,16 @@ -; (c) Copyright 2001-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Short to Integer Conversion -; Input: -; Operand1: -; BC : 16 bit number to convert -; -; Output: -; Result: HL : 24 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __stoiu - .assume adl=1 - -__stoiu equ 000264h +; (c) Copyright 2001-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Short to Integer Conversion
+; Input:
+; Operand1:
+; BC : 16 bit number to convert
+;
+; Output:
+; Result: HL : 24 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __stoiu
+ .assume adl=1
+
+__stoiu equ 000264h
diff --git a/frontends/calculator/CEdev/lib/shared/strcasecmp.src b/frontends/calculator/CEdev/lib/shared/strcasecmp.src index 2808f5b..abc6b93 100644 --- a/frontends/calculator/CEdev/lib/shared/strcasecmp.src +++ b/frontends/calculator/CEdev/lib/shared/strcasecmp.src @@ -1,6 +1,6 @@ - .def _strcasecmp - .assume adl=1 - -; int strcasecmp(const char *f1, const char *f2); - + .def _strcasecmp
+ .assume adl=1
+
+; int strcasecmp(const char *f1, const char *f2);
+
_strcasecmp equ 021E3Ch
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/strcat.src b/frontends/calculator/CEdev/lib/shared/strcat.src index 297e5da..553c111 100644 --- a/frontends/calculator/CEdev/lib/shared/strcat.src +++ b/frontends/calculator/CEdev/lib/shared/strcat.src @@ -1,6 +1,6 @@ - .def _strcat - .assume adl=1 - -; char *strcat(char *s1, char *s2); - -_strcat equ 0000C0h + .def _strcat
+ .assume adl=1
+
+; char *strcat(char *s1, char *s2);
+
+_strcat equ 0000C0h
diff --git a/frontends/calculator/CEdev/lib/shared/strchr.src b/frontends/calculator/CEdev/lib/shared/strchr.src index 103602b..109a37c 100644 --- a/frontends/calculator/CEdev/lib/shared/strchr.src +++ b/frontends/calculator/CEdev/lib/shared/strchr.src @@ -1,6 +1,6 @@ - .def _strchr - .assume adl=1 - -; char *strchr(char *s, int c); - -_strchr equ 0000C4h + .def _strchr
+ .assume adl=1
+
+; char *strchr(char *s, int c);
+
+_strchr equ 0000C4h
diff --git a/frontends/calculator/CEdev/lib/shared/strcmp.src b/frontends/calculator/CEdev/lib/shared/strcmp.src index 9eb4f6e..3ba6280 100644 --- a/frontends/calculator/CEdev/lib/shared/strcmp.src +++ b/frontends/calculator/CEdev/lib/shared/strcmp.src @@ -1,6 +1,6 @@ - .def _strcmp - .assume adl=1 - -; int strcmp(register char *s1, register char *s2) - -_strcmp equ 0000C8h + .def _strcmp
+ .assume adl=1
+
+; int strcmp(register char *s1, register char *s2)
+
+_strcmp equ 0000C8h
diff --git a/frontends/calculator/CEdev/lib/shared/strcpy.src b/frontends/calculator/CEdev/lib/shared/strcpy.src index 38c0eb0..da9a089 100644 --- a/frontends/calculator/CEdev/lib/shared/strcpy.src +++ b/frontends/calculator/CEdev/lib/shared/strcpy.src @@ -1,6 +1,6 @@ - .def _strcpy - .assume adl=1 - -; char *strcpy(void *d, void *s); - -_strcpy equ 0000CCh + .def _strcpy
+ .assume adl=1
+
+; char *strcpy(void *d, void *s);
+
+_strcpy equ 0000CCh
diff --git a/frontends/calculator/CEdev/lib/shared/strcspn.src b/frontends/calculator/CEdev/lib/shared/strcspn.src index 1d83171..ca3d1ff 100644 --- a/frontends/calculator/CEdev/lib/shared/strcspn.src +++ b/frontends/calculator/CEdev/lib/shared/strcspn.src @@ -1,6 +1,6 @@ - .def _strcspn - .assume adl=1 - -; size_t strcspn(char *s1, char *s2); - -_strcspn equ 0000D0h + .def _strcspn
+ .assume adl=1
+
+; size_t strcspn(char *s1, char *s2);
+
+_strcspn equ 0000D0h
diff --git a/frontends/calculator/CEdev/lib/shared/strdup.src b/frontends/calculator/CEdev/lib/shared/strdup.src index 2debaa3..4e893ca 100644 --- a/frontends/calculator/CEdev/lib/shared/strdup.src +++ b/frontends/calculator/CEdev/lib/shared/strdup.src @@ -1,35 +1,35 @@ - .ref __frameset - .ref _malloc - .ref _strlen - .ref _strcpy - .def _strdup - .assume adl=1 - -_strdup: - ld hl,-3 - call __frameset - ld bc,(ix+6) - push bc - call _strlen - pop bc - inc hl - push hl - call _malloc - pop bc - ld (ix+-3),hl - add hl,de - or a,a - sbc hl,de - jr z,MallocFail - ld bc,(ix+6) - push bc - ld bc,(ix+-3) - push bc - call _strcpy - pop bc - pop bc -MallocFail: - ld hl,(ix+-3) - ld sp,ix - pop ix - ret + .ref __frameset
+ .ref _malloc
+ .ref _strlen
+ .ref _strcpy
+ .def _strdup
+ .assume adl=1
+
+_strdup:
+ ld hl,-3
+ call __frameset
+ ld bc,(ix+6)
+ push bc
+ call _strlen
+ pop bc
+ inc hl
+ push hl
+ call _malloc
+ pop bc
+ ld (ix+-3),hl
+ add hl,de
+ or a,a
+ sbc hl,de
+ jr z,MallocFail
+ ld bc,(ix+6)
+ push bc
+ ld bc,(ix+-3)
+ push bc
+ call _strcpy
+ pop bc
+ pop bc
+MallocFail:
+ ld hl,(ix+-3)
+ ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/strlen.src b/frontends/calculator/CEdev/lib/shared/strlen.src index 5ef9fad..12abdfc 100644 --- a/frontends/calculator/CEdev/lib/shared/strlen.src +++ b/frontends/calculator/CEdev/lib/shared/strlen.src @@ -1,6 +1,6 @@ - .def _strlen - .assume adl=1 - -; size_t strlen(char *s); - -_strlen equ 0000D4h + .def _strlen
+ .assume adl=1
+
+; size_t strlen(char *s);
+
+_strlen equ 0000D4h
diff --git a/frontends/calculator/CEdev/lib/shared/strncasecmp.src b/frontends/calculator/CEdev/lib/shared/strncasecmp.src index fdc603e..2e0dc4b 100644 --- a/frontends/calculator/CEdev/lib/shared/strncasecmp.src +++ b/frontends/calculator/CEdev/lib/shared/strncasecmp.src @@ -1,6 +1,6 @@ - .def _strncasecmp - .assume adl=1 - -; int strncasecmp ( const char *str1 , const char *str2 , int len ); - -_strncasecmp equ 021E3Ch + .def _strncasecmp
+ .assume adl=1
+
+; int strncasecmp ( const char *str1 , const char *str2 , int len );
+
+_strncasecmp equ 021E3Ch
diff --git a/frontends/calculator/CEdev/lib/shared/strncat.src b/frontends/calculator/CEdev/lib/shared/strncat.src index 5f6a532..9d7e8be 100644 --- a/frontends/calculator/CEdev/lib/shared/strncat.src +++ b/frontends/calculator/CEdev/lib/shared/strncat.src @@ -1,6 +1,6 @@ - .def _strncat - .assume adl=1 - -; char *strncat(char *s1, char *s2, size_t n) - -_strncat equ 0000D8h + .def _strncat
+ .assume adl=1
+
+; char *strncat(char *s1, char *s2, size_t n)
+
+_strncat equ 0000D8h
diff --git a/frontends/calculator/CEdev/lib/shared/strncmp.src b/frontends/calculator/CEdev/lib/shared/strncmp.src index 08f2750..62bc058 100644 --- a/frontends/calculator/CEdev/lib/shared/strncmp.src +++ b/frontends/calculator/CEdev/lib/shared/strncmp.src @@ -1,6 +1,6 @@ - .def _strncmp - .assume adl=1 - -; int strncmp(char *s1, char *s2, size_t n) - -_strncmp equ 0000DCh + .def _strncmp
+ .assume adl=1
+
+; int strncmp(char *s1, char *s2, size_t n)
+
+_strncmp equ 0000DCh
diff --git a/frontends/calculator/CEdev/lib/shared/strncpy.src b/frontends/calculator/CEdev/lib/shared/strncpy.src index b46a72e..ef359b2 100644 --- a/frontends/calculator/CEdev/lib/shared/strncpy.src +++ b/frontends/calculator/CEdev/lib/shared/strncpy.src @@ -1,6 +1,6 @@ - .def _strncpy - .assume adl=1 - -; char *strncpy(char *dst, char *src, size_t n) - -_strncpy equ 0000E0h + .def _strncpy
+ .assume adl=1
+
+; char *strncpy(char *dst, char *src, size_t n)
+
+_strncpy equ 0000E0h
diff --git a/frontends/calculator/CEdev/lib/shared/strndup.src b/frontends/calculator/CEdev/lib/shared/strndup.src index 26c656c..b2ee007 100644 --- a/frontends/calculator/CEdev/lib/shared/strndup.src +++ b/frontends/calculator/CEdev/lib/shared/strndup.src @@ -1,46 +1,46 @@ - .def _strndup - .ref __frameset - .ref _strlen - .ref _malloc - .ref _memcpy - .assume adl=1 - -_strndup: - ld hl,-6 - call __frameset - ld bc,(ix+6) - push bc - call _strlen - ld (ix+-3),hl - ex de,hl - ld hl,(ix+9) - or a,a - sbc hl,de - jr nc,Greater - ld hl,(ix+9) - ld (ix+-3),hl -Greater: - ld bc,(ix+-3) - inc bc - push bc - call _malloc - ld (ix+-6),hl - add hl,bc - or a,a - sbc hl,bc - jr z,MallocFail - ld bc,(ix+-3) - ld hl,(ix+-6) - add hl,bc - ld (hl),0 - or a,a - sbc hl,bc - push bc - ld bc,(ix+6) - push bc - push hl - call _memcpy -MallocFail: - ld sp,ix - pop ix - ret + .def _strndup
+ .ref __frameset
+ .ref _strlen
+ .ref _malloc
+ .ref _memcpy
+ .assume adl=1
+
+_strndup:
+ ld hl,-6
+ call __frameset
+ ld bc,(ix+6)
+ push bc
+ call _strlen
+ ld (ix+-3),hl
+ ex de,hl
+ ld hl,(ix+9)
+ or a,a
+ sbc hl,de
+ jr nc,Greater
+ ld hl,(ix+9)
+ ld (ix+-3),hl
+Greater:
+ ld bc,(ix+-3)
+ inc bc
+ push bc
+ call _malloc
+ ld (ix+-6),hl
+ add hl,bc
+ or a,a
+ sbc hl,bc
+ jr z,MallocFail
+ ld bc,(ix+-3)
+ ld hl,(ix+-6)
+ add hl,bc
+ ld (hl),0
+ or a,a
+ sbc hl,bc
+ push bc
+ ld bc,(ix+6)
+ push bc
+ push hl
+ call _memcpy
+MallocFail:
+ ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/strnlen.src b/frontends/calculator/CEdev/lib/shared/strnlen.src index 823ea49..f7e7380 100644 --- a/frontends/calculator/CEdev/lib/shared/strnlen.src +++ b/frontends/calculator/CEdev/lib/shared/strnlen.src @@ -1,27 +1,27 @@ - .def _strnlen - .ref __frameset0 - .assume adl=1 - -_strnlen: - call __frameset0 - ld de,(ix+6) - ld bc,(ix+9) - or a,a - sbc hl,hl - jr StartFor -ForLoop: - inc hl - inc de -StartFor: - push hl - or a,a - sbc hl,bc - pop hl - jr nc,ReachedMax - ld a,(de) - or a,a - jr nz,ForLoop -ReachedMax: - ld sp,ix - pop ix - ret + .def _strnlen
+ .ref __frameset0
+ .assume adl=1
+
+_strnlen:
+ call __frameset0
+ ld de,(ix+6)
+ ld bc,(ix+9)
+ or a,a
+ sbc hl,hl
+ jr StartFor
+ForLoop:
+ inc hl
+ inc de
+StartFor:
+ push hl
+ or a,a
+ sbc hl,bc
+ pop hl
+ jr nc,ReachedMax
+ ld a,(de)
+ or a,a
+ jr nz,ForLoop
+ReachedMax:
+ ld sp,ix
+ pop ix
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/strpbrk.src b/frontends/calculator/CEdev/lib/shared/strpbrk.src index f9ff01f..ee38418 100644 --- a/frontends/calculator/CEdev/lib/shared/strpbrk.src +++ b/frontends/calculator/CEdev/lib/shared/strpbrk.src @@ -1,6 +1,6 @@ - .def _strpbrk - .assume adl=1 - -; char *strpbrk(char *s1, char *s2) - -_strpbrk equ 0000E4h + .def _strpbrk
+ .assume adl=1
+
+; char *strpbrk(char *s1, char *s2)
+
+_strpbrk equ 0000E4h
diff --git a/frontends/calculator/CEdev/lib/shared/strrchr.src b/frontends/calculator/CEdev/lib/shared/strrchr.src index 80fab4a..d682fa2 100644 --- a/frontends/calculator/CEdev/lib/shared/strrchr.src +++ b/frontends/calculator/CEdev/lib/shared/strrchr.src @@ -1,6 +1,6 @@ - .def _strrchr - .assume adl=1 - -; char *strrchr(char *s, int c) - -_strrchr equ 0000E8h + .def _strrchr
+ .assume adl=1
+
+; char *strrchr(char *s, int c)
+
+_strrchr equ 0000E8h
diff --git a/frontends/calculator/CEdev/lib/shared/strspn.src b/frontends/calculator/CEdev/lib/shared/strspn.src index bb5ad3e..37613d1 100644 --- a/frontends/calculator/CEdev/lib/shared/strspn.src +++ b/frontends/calculator/CEdev/lib/shared/strspn.src @@ -1,5 +1,5 @@ - .def _strspn - .assume adl=1 - -; size_t strspn(char *s1,char *s2) -_strspn equ 0000ECh + .def _strspn
+ .assume adl=1
+
+; size_t strspn(char *s1,char *s2)
+_strspn equ 0000ECh
diff --git a/frontends/calculator/CEdev/lib/shared/strstr.src b/frontends/calculator/CEdev/lib/shared/strstr.src index 585c5c0..a28c80e 100644 --- a/frontends/calculator/CEdev/lib/shared/strstr.src +++ b/frontends/calculator/CEdev/lib/shared/strstr.src @@ -1,6 +1,6 @@ - .def _strstr - .assume adl=1 - -; char *strstr(char *s1, char *s2); - -_strstr equ 0000F0h + .def _strstr
+ .assume adl=1
+
+; char *strstr(char *s1, char *s2);
+
+_strstr equ 0000F0h
diff --git a/frontends/calculator/CEdev/lib/shared/strtok.src b/frontends/calculator/CEdev/lib/shared/strtok.src index 14f3ef6..0bce87d 100644 --- a/frontends/calculator/CEdev/lib/shared/strtok.src +++ b/frontends/calculator/CEdev/lib/shared/strtok.src @@ -1,5 +1,5 @@ - .def _strtok - .assume adl=1 - -_strtok equ 0000F4h + .def _strtok
+ .assume adl=1
+
+_strtok equ 0000F4h
\ No newline at end of file diff --git a/frontends/calculator/CEdev/lib/shared/sxor.src b/frontends/calculator/CEdev/lib/shared/sxor.src index 2771ff2..f6e9ae8 100644 --- a/frontends/calculator/CEdev/lib/shared/sxor.src +++ b/frontends/calculator/CEdev/lib/shared/sxor.src @@ -1,18 +1,18 @@ -;------------------------------------------------------------------------- -; Short XOR. -; Input: -; Operand1: -; bc : 16 bit -; -; Operand2: -; hl : 16 bit -; -; Output: -; Result: hl : 16 bit -; Registers Used: -; a -;------------------------------------------------------------------------- - .def __sxor - .assume adl=1 - -__sxor equ 000268h +;-------------------------------------------------------------------------
+; Short XOR.
+; Input:
+; Operand1:
+; bc : 16 bit
+;
+; Operand2:
+; hl : 16 bit
+;
+; Output:
+; Result: hl : 16 bit
+; Registers Used:
+; a
+;-------------------------------------------------------------------------
+ .def __sxor
+ .assume adl=1
+
+__sxor equ 000268h
diff --git a/frontends/calculator/CEdev/lib/shared/tice.src b/frontends/calculator/CEdev/lib/shared/tice.src index 5467be1..c95ade8 100644 --- a/frontends/calculator/CEdev/lib/shared/tice.src +++ b/frontends/calculator/CEdev/lib/shared/tice.src @@ -1,241 +1,241 @@ -; --- -; external definitions -; --- - .def _boot_GetBootMajorVer - .def _boot_GetHardwareVer - .def _boot_GetBootMinorVer - .def _boot_DebugPrintf - .def _boot_ClearVRAM - .def _boot_TurnOff - .def _boot_NewLine - .def _boot_Set6MHzMode - .def _boot_Set48MHzMode - .def _boot_Set6MHzModeI - .def _boot_Set48MHzModeI - .def _boot_GetBatteryStatus - .def _boot_WaitShort - .def _boot_CheckOnPressed - .def _boot_SetDate - .def _boot_GetDate - .def _boot_GetTime - .def _boot_SetTime - .def _boot_IsAfterNoon - - .def _os_NewLine - .def _os_PushErrorHandler - .def _os_PopErrorHandler - .def _os_ThrowError - .def _os_RealCopy - .def _os_RealAsinRad - .def _os_RealAcosRad - .def _os_RealAtanRad - .def _os_RealAdd - .def _os_CplxSquare - .def _os_RealCompare - .def _os_RealCosRad - .def _os_RealRadToDeg - .def _os_RealDiv - .def _os_RealExp - .def _os_RealFloor - .def _os_RealToStr - .def _os_RealFrac - .def _os_RealGcd - .def _os_RealRoundInt - .def _os_RealLcm - .def _os_RealLog - .def _os_RealMax - .def _os_RealMin - .def _os_RealMul - .def _os_RealNcr - .def _os_RealNeg - .def _os_RealNpr - .def _os_RealPow - .def _os_RealDegToRad - .def _os_RealRandInt - .def _os_RealInv - .def _os_RealMod - .def _os_RealRound - .def _os_RealSinRad - .def _os_RealSqrt - .def _os_RealSub - .def _os_RealTanRad - .def _os_StrToReal - .def _os_RealInt - .def _os_SetFlagBits - .def _os_ResetFlagBits - .def _os_TestFlagBits - .def _os_SetFlagByte - .def _os_GetFlagByte - .def _os_GetCursorPos - .def _os_PutStrFull - .def _os_PutStrLine - .def _os_SetCursorPos - .def _os_AppInit - .def _os_GetKey - .def _os_GetCSC - .def _os_DisableCursor - .def _os_EnableCursor - .def _os_FontDrawText - .def _os_FontGetHeight - .def _os_FontGetWidth - .def _os_InitDrawing - .def _os_SetDrawBGColor - .def _os_SetDrawFGColor - .def _os_FontSelect - .def _os_RclAns - .def _os_SetTimer1 - .def _os_DisableTimer1 - .def _os_GetSystemStats - .def _os_GetDrawBGColor - .def _os_GetDrawFGColor - .def _os_FontGetID - .def _os_RealToInt24 - .def _os_Int24ToReal - .def _os_ForceCmdNoChar - .def _os_GetSymTablePtr - .def _os_NextSymEntry - .def _os_ChkFindSym - .def _os_MemChk - .def _os_SetTimer2 - .def _os_DisableTimer2 - .def _os_FloatToReal - .def _os_RealToFloat - .def _os_FontDrawTransText - .def _os_CreateAppVar - - .def _asm_MoveDown - .def _asm_MoveUp - .def _asm_ClrLCDFull - .def _asm_ClrLCD - .def _asm_ClrTxtShd - .def _asm_HomeUp - .def _asm_RunIndicOn - .def _asm_RunIndicOff - .def _asm_DelRes - .def _asm_DisableAPD - .def _asm_EnableAPD - .def _asm_DrawStatusBar - .def _asm_ArcChk - .assume adl=1 - -; --- -; locations -; --- -_boot_GetBootMajorVer equ 000080h -_boot_GetHardwareVer equ 000084h -_boot_GetBootMinorVer equ 00008Ch -_boot_DebugPrintf equ 0000B4h -_boot_ClearVRAM equ 000374h -_boot_TurnOff equ 000388h -_boot_NewLine equ 000390h -_boot_Set6MHzMode equ 00039Ch -_boot_Set48MHzMode equ 0003A0h -_boot_Set6MHzModeI equ 0003A4h -_boot_Set48MHzModeI equ 0003A8h -_boot_GetBatteryStatus equ 0003B0h -_boot_WaitShort equ 0003B4h -_boot_CheckOnPressed equ 00057Ch -_boot_SetDate equ 000598h -_boot_GetDate equ 0005A8h -_boot_GetTime equ 0005B0h -_boot_SetTime equ 0005B4h -_boot_IsAfterNoon equ 0005C8h - -_os_NewLine equ 0207F0h -_os_PushErrorHandler equ 021C78h -_os_PopErrorHandler equ 021C7Ch -_os_ThrowError equ 021C80h -_os_RealCopy equ 021C84h -_os_RealAsinRad equ 021C88h -_os_RealAcosRad equ 021C8Ch -_os_RealAtanRad equ 021C90h -_os_RealAdd equ 021C94h -_os_CplxSquare equ 021C98h -_os_RealCompare equ 021C9Ch -_os_RealCosRad equ 021CA0h -_os_RealRadToDeg equ 021CA4h -_os_RealDiv equ 021CA8h -_os_RealExp equ 021CACh -_os_RealFloor equ 021CB0h -_os_RealToStr equ 021CB4h -_os_RealFrac equ 021CB8h -_os_RealGcd equ 021CBCh -_os_RealRoundInt equ 021CC0h -_os_RealLcm equ 021CC4h -_os_RealLog equ 021CC8h -_os_RealMax equ 021CCCh -_os_RealMin equ 021CD0h -_os_RealMul equ 021CD4h -_os_RealNcr equ 021CD8h -_os_RealNeg equ 021CDCh -_os_RealNpr equ 021CE0h -_os_RealPow equ 021CE4h -_os_RealDegToRad equ 021CE8h -_os_RealRandInt equ 021CECh -_os_RealInv equ 021CF0h -_os_RealMod equ 021CF4h -_os_RealRound equ 021CF8h -_os_RealSinRad equ 021CFCh -_os_RealSqrt equ 021D00h -_os_RealSub equ 021D04h -_os_RealTanRad equ 021D08h -_os_StrToReal equ 021D0Ch -_os_RealInt equ 021D10h -_os_SetFlagBits equ 021D14h -_os_ResetFlagBits equ 021D18h -_os_TestFlagBits equ 021D1Ch -_os_SetFlagByte equ 021D20h -_os_GetFlagByte equ 021D24h -_os_GetCursorPos equ 021D28h -_os_PutStrFull equ 021D2Ch -_os_PutStrLine equ 021D30h -_os_SetCursorPos equ 021D34h -_os_AppInit equ 021D40h -_os_GetKey equ 021D38h -_os_GetCSC equ 021D3Ch -_os_DisableCursor equ 021DE4h -_os_EnableCursor equ 021DE8h -_os_FontDrawText equ 021E00h -_os_FontGetHeight equ 021E14h -_os_FontGetWidth equ 021E18h -_os_InitDrawing equ 021E1Ch -_os_SetDrawBGColor equ 021E20h -_os_SetDrawFGColor equ 021E24h -_os_FontSelect equ 021E28h -_os_RclAns equ 021E70h -_os_SetTimer1 equ 021EC8h -_os_DisableTimer1 equ 021ECCh -_os_GetSystemStats equ 021ED4h -_os_GetDrawBGColor equ 021EE4h -_os_GetDrawFGColor equ 021EE8h -_os_FontGetID equ 021EECh -_os_RealToInt24 equ 021EF4h -_os_Int24ToReal equ 021EF8h -_os_ForceCmdNoChar equ 021FA8h -_os_GetSymTablePtr equ 021FB0h -_os_NextSymEntry equ 021FB4h -_os_ChkFindSym equ 021FB8h -_os_MemChk equ 021FF0h -_os_SetTimer2 equ 022080h -_os_DisableTimer2 equ 022084h -_os_FloatToReal equ 022170h -_os_RealToFloat equ 022174h -_os_FontDrawTransText equ 022178h -_os_CreateAppVar equ 022184h - -; --- -; directly callable asm functions -; --- -_asm_MoveDown equ 0207F4h -_asm_MoveUp equ 020800h -_asm_ClrLCDFull equ 020808h -_asm_ClrLCD equ 02080Ch -_asm_ClrTxtShd equ 020818h -_asm_HomeUp equ 020828h -_asm_RunIndicOn equ 020844h -_asm_RunIndicOff equ 020848h -_asm_DelRes equ 020E5Ch -_asm_DisableAPD equ 021134h -_asm_EnableAPD equ 021138h -_asm_DrawStatusBar equ 021A3Ch -_asm_ArcChk equ 022040h +; ---
+; external definitions
+; ---
+ .def _boot_GetBootMajorVer
+ .def _boot_GetHardwareVer
+ .def _boot_GetBootMinorVer
+ .def _boot_DebugPrintf
+ .def _boot_ClearVRAM
+ .def _boot_TurnOff
+ .def _boot_NewLine
+ .def _boot_Set6MHzMode
+ .def _boot_Set48MHzMode
+ .def _boot_Set6MHzModeI
+ .def _boot_Set48MHzModeI
+ .def _boot_GetBatteryStatus
+ .def _boot_WaitShort
+ .def _boot_CheckOnPressed
+ .def _boot_SetDate
+ .def _boot_GetDate
+ .def _boot_GetTime
+ .def _boot_SetTime
+ .def _boot_IsAfterNoon
+
+ .def _os_NewLine
+ .def _os_PushErrorHandler
+ .def _os_PopErrorHandler
+ .def _os_ThrowError
+ .def _os_RealCopy
+ .def _os_RealAsinRad
+ .def _os_RealAcosRad
+ .def _os_RealAtanRad
+ .def _os_RealAdd
+ .def _os_CplxSquare
+ .def _os_RealCompare
+ .def _os_RealCosRad
+ .def _os_RealRadToDeg
+ .def _os_RealDiv
+ .def _os_RealExp
+ .def _os_RealFloor
+ .def _os_RealToStr
+ .def _os_RealFrac
+ .def _os_RealGcd
+ .def _os_RealRoundInt
+ .def _os_RealLcm
+ .def _os_RealLog
+ .def _os_RealMax
+ .def _os_RealMin
+ .def _os_RealMul
+ .def _os_RealNcr
+ .def _os_RealNeg
+ .def _os_RealNpr
+ .def _os_RealPow
+ .def _os_RealDegToRad
+ .def _os_RealRandInt
+ .def _os_RealInv
+ .def _os_RealMod
+ .def _os_RealRound
+ .def _os_RealSinRad
+ .def _os_RealSqrt
+ .def _os_RealSub
+ .def _os_RealTanRad
+ .def _os_StrToReal
+ .def _os_RealInt
+ .def _os_SetFlagBits
+ .def _os_ResetFlagBits
+ .def _os_TestFlagBits
+ .def _os_SetFlagByte
+ .def _os_GetFlagByte
+ .def _os_GetCursorPos
+ .def _os_PutStrFull
+ .def _os_PutStrLine
+ .def _os_SetCursorPos
+ .def _os_AppInit
+ .def _os_GetKey
+ .def _os_GetCSC
+ .def _os_DisableCursor
+ .def _os_EnableCursor
+ .def _os_FontDrawText
+ .def _os_FontGetHeight
+ .def _os_FontGetWidth
+ .def _os_InitDrawing
+ .def _os_SetDrawBGColor
+ .def _os_SetDrawFGColor
+ .def _os_FontSelect
+ .def _os_RclAns
+ .def _os_SetTimer1
+ .def _os_DisableTimer1
+ .def _os_GetSystemStats
+ .def _os_GetDrawBGColor
+ .def _os_GetDrawFGColor
+ .def _os_FontGetID
+ .def _os_RealToInt24
+ .def _os_Int24ToReal
+ .def _os_ForceCmdNoChar
+ .def _os_GetSymTablePtr
+ .def _os_NextSymEntry
+ .def _os_ChkFindSym
+ .def _os_MemChk
+ .def _os_SetTimer2
+ .def _os_DisableTimer2
+ .def _os_FloatToReal
+ .def _os_RealToFloat
+ .def _os_FontDrawTransText
+ .def _os_CreateAppVar
+
+ .def _asm_MoveDown
+ .def _asm_MoveUp
+ .def _asm_ClrLCDFull
+ .def _asm_ClrLCD
+ .def _asm_ClrTxtShd
+ .def _asm_HomeUp
+ .def _asm_RunIndicOn
+ .def _asm_RunIndicOff
+ .def _asm_DelRes
+ .def _asm_DisableAPD
+ .def _asm_EnableAPD
+ .def _asm_DrawStatusBar
+ .def _asm_ArcChk
+ .assume adl=1
+
+; ---
+; locations
+; ---
+_boot_GetBootMajorVer equ 000080h
+_boot_GetHardwareVer equ 000084h
+_boot_GetBootMinorVer equ 00008Ch
+_boot_DebugPrintf equ 0000B4h
+_boot_ClearVRAM equ 000374h
+_boot_TurnOff equ 000388h
+_boot_NewLine equ 000390h
+_boot_Set6MHzMode equ 00039Ch
+_boot_Set48MHzMode equ 0003A0h
+_boot_Set6MHzModeI equ 0003A4h
+_boot_Set48MHzModeI equ 0003A8h
+_boot_GetBatteryStatus equ 0003B0h
+_boot_WaitShort equ 0003B4h
+_boot_CheckOnPressed equ 00057Ch
+_boot_SetDate equ 000598h
+_boot_GetDate equ 0005A8h
+_boot_GetTime equ 0005B0h
+_boot_SetTime equ 0005B4h
+_boot_IsAfterNoon equ 0005C8h
+
+_os_NewLine equ 0207F0h
+_os_PushErrorHandler equ 021C78h
+_os_PopErrorHandler equ 021C7Ch
+_os_ThrowError equ 021C80h
+_os_RealCopy equ 021C84h
+_os_RealAsinRad equ 021C88h
+_os_RealAcosRad equ 021C8Ch
+_os_RealAtanRad equ 021C90h
+_os_RealAdd equ 021C94h
+_os_CplxSquare equ 021C98h
+_os_RealCompare equ 021C9Ch
+_os_RealCosRad equ 021CA0h
+_os_RealRadToDeg equ 021CA4h
+_os_RealDiv equ 021CA8h
+_os_RealExp equ 021CACh
+_os_RealFloor equ 021CB0h
+_os_RealToStr equ 021CB4h
+_os_RealFrac equ 021CB8h
+_os_RealGcd equ 021CBCh
+_os_RealRoundInt equ 021CC0h
+_os_RealLcm equ 021CC4h
+_os_RealLog equ 021CC8h
+_os_RealMax equ 021CCCh
+_os_RealMin equ 021CD0h
+_os_RealMul equ 021CD4h
+_os_RealNcr equ 021CD8h
+_os_RealNeg equ 021CDCh
+_os_RealNpr equ 021CE0h
+_os_RealPow equ 021CE4h
+_os_RealDegToRad equ 021CE8h
+_os_RealRandInt equ 021CECh
+_os_RealInv equ 021CF0h
+_os_RealMod equ 021CF4h
+_os_RealRound equ 021CF8h
+_os_RealSinRad equ 021CFCh
+_os_RealSqrt equ 021D00h
+_os_RealSub equ 021D04h
+_os_RealTanRad equ 021D08h
+_os_StrToReal equ 021D0Ch
+_os_RealInt equ 021D10h
+_os_SetFlagBits equ 021D14h
+_os_ResetFlagBits equ 021D18h
+_os_TestFlagBits equ 021D1Ch
+_os_SetFlagByte equ 021D20h
+_os_GetFlagByte equ 021D24h
+_os_GetCursorPos equ 021D28h
+_os_PutStrFull equ 021D2Ch
+_os_PutStrLine equ 021D30h
+_os_SetCursorPos equ 021D34h
+_os_AppInit equ 021D40h
+_os_GetKey equ 021D38h
+_os_GetCSC equ 021D3Ch
+_os_DisableCursor equ 021DE4h
+_os_EnableCursor equ 021DE8h
+_os_FontDrawText equ 021E00h
+_os_FontGetHeight equ 021E14h
+_os_FontGetWidth equ 021E18h
+_os_InitDrawing equ 021E1Ch
+_os_SetDrawBGColor equ 021E20h
+_os_SetDrawFGColor equ 021E24h
+_os_FontSelect equ 021E28h
+_os_RclAns equ 021E70h
+_os_SetTimer1 equ 021EC8h
+_os_DisableTimer1 equ 021ECCh
+_os_GetSystemStats equ 021ED4h
+_os_GetDrawBGColor equ 021EE4h
+_os_GetDrawFGColor equ 021EE8h
+_os_FontGetID equ 021EECh
+_os_RealToInt24 equ 021EF4h
+_os_Int24ToReal equ 021EF8h
+_os_ForceCmdNoChar equ 021FA8h
+_os_GetSymTablePtr equ 021FB0h
+_os_NextSymEntry equ 021FB4h
+_os_ChkFindSym equ 021FB8h
+_os_MemChk equ 021FF0h
+_os_SetTimer2 equ 022080h
+_os_DisableTimer2 equ 022084h
+_os_FloatToReal equ 022170h
+_os_RealToFloat equ 022174h
+_os_FontDrawTransText equ 022178h
+_os_CreateAppVar equ 022184h
+
+; ---
+; directly callable asm functions
+; ---
+_asm_MoveDown equ 0207F4h
+_asm_MoveUp equ 020800h
+_asm_ClrLCDFull equ 020808h
+_asm_ClrLCD equ 02080Ch
+_asm_ClrTxtShd equ 020818h
+_asm_HomeUp equ 020828h
+_asm_RunIndicOn equ 020844h
+_asm_RunIndicOff equ 020848h
+_asm_DelRes equ 020E5Ch
+_asm_DisableAPD equ 021134h
+_asm_EnableAPD equ 021138h
+_asm_DrawStatusBar equ 021A3Ch
+_asm_ArcChk equ 022040h
diff --git a/frontends/calculator/CEdev/lib/shared/tolower.src b/frontends/calculator/CEdev/lib/shared/tolower.src index db6c58d..a389331 100644 --- a/frontends/calculator/CEdev/lib/shared/tolower.src +++ b/frontends/calculator/CEdev/lib/shared/tolower.src @@ -1,4 +1,4 @@ - .assume adl=1 - .def _tolower - -_tolower equ 021E34h + .assume adl=1
+ .def _tolower
+
+_tolower equ 021E34h
diff --git a/frontends/calculator/CEdev/lib/shared/toupper.src b/frontends/calculator/CEdev/lib/shared/toupper.src index eb5dcea..9edc2b1 100644 --- a/frontends/calculator/CEdev/lib/shared/toupper.src +++ b/frontends/calculator/CEdev/lib/shared/toupper.src @@ -1,4 +1,4 @@ - .assume adl=1 - .def _toupper - -_toupper equ 021E38h + .assume adl=1
+ .def _toupper
+
+_toupper equ 021E38h
diff --git a/frontends/calculator/CEdev/lib/shared/uldiv.src b/frontends/calculator/CEdev/lib/shared/uldiv.src index 6acdeac..ff407ac 100644 --- a/frontends/calculator/CEdev/lib/shared/uldiv.src +++ b/frontends/calculator/CEdev/lib/shared/uldiv.src @@ -1,128 +1,128 @@ -; (c) Copyright 1999-2008 Zilog, Inc. -;------------------------------------------------------------------------- -; Unsigned Long Division. -; Input: -; Operand1: -; (ix+9) : high word,high byte -; (ix+8) : high word,low byte -; (ix+7) : low word,high byte -; (ix+6) : low word,low byte -; -; Operand2: -; (ix+15) : high word,high byte -; (ix+14) : high word,low byte -; (ix+13) : low word,high byte -; (ix+12) : low word,low byte -; -; Output: -; Result: b : high byte -; de : low byte -; Registers Used: -; a,b,c,d,e,h,l,iy -;------------------------------------------------------------------------- - .assume adl=1 - .def .uldiv - -.uldiv: - push ix - ld ix,0 - add ix,sp - - ld de,0 ;res = 0; - ld b,0 - - ld hl,0 ;num = 0 - ld c,0 - - ld iy,32 ;i = 32; - -loop: - ;res = res << 1 - ex de,hl - add hl,hl - ld a,b - adc a,b - ld b,a - ex de,hl - - ;num = num << 1 - add hl,hl - ld a,c - adc a,c - ld c,a - - ;x = x << 1 - ld a,(ix+6) - add a,(ix+6) - ld (ix+6),a - ld a,(ix+7) - adc a,(ix+7) - ld (ix+7),a - ld a,(ix+8) - adc a,(ix+8) - ld (ix+8),a - ld a,(ix+9) - adc a,(ix+9) - ld (ix+9),a - - - push de - - ;num = num + carry - - ld de,0 - adc hl,de - ld a,c - adc a,d - ld c,a - - - ;num = num - y - ld de,(ix+12) - or a,a - sbc hl,de - ld a,c - ld d,(ix+15) - sbc a,d - ld c,a - - pop de - jr c, out ;if (num < y) goto out - - inc de ;res = res | 1 - - jr done ;goto done - -out: - push de - ;num = num + y - ld de,(ix+12) - add hl,de - ld a,c - ld d,(ix+15) - adc a,d - ld c,a - - pop de - -done: - ;i--, if (i != 0) go to loop - dec iyl - jr nz,loop - - - pop ix - ret - - .def .uldivbdechl -.uldivbdechl: - push bc - push hl - ld c,b - push bc - push de - call .uldiv - ld iy,12 - add iy,sp - ld sp,iy - ret +; (c) Copyright 1999-2008 Zilog, Inc.
+;-------------------------------------------------------------------------
+; Unsigned Long Division.
+; Input:
+; Operand1:
+; (ix+9) : high word,high byte
+; (ix+8) : high word,low byte
+; (ix+7) : low word,high byte
+; (ix+6) : low word,low byte
+;
+; Operand2:
+; (ix+15) : high word,high byte
+; (ix+14) : high word,low byte
+; (ix+13) : low word,high byte
+; (ix+12) : low word,low byte
+;
+; Output:
+; Result: b : high byte
+; de : low byte
+; Registers Used:
+; a,b,c,d,e,h,l,iy
+;-------------------------------------------------------------------------
+ .assume adl=1
+ .def .uldiv
+
+.uldiv:
+ push ix
+ ld ix,0
+ add ix,sp
+
+ ld de,0 ;res = 0;
+ ld b,0
+
+ ld hl,0 ;num = 0
+ ld c,0
+
+ ld iy,32 ;i = 32;
+
+loop:
+ ;res = res << 1
+ ex de,hl
+ add hl,hl
+ ld a,b
+ adc a,b
+ ld b,a
+ ex de,hl
+
+ ;num = num << 1
+ add hl,hl
+ ld a,c
+ adc a,c
+ ld c,a
+
+ ;x = x << 1
+ ld a,(ix+6)
+ add a,(ix+6)
+ ld (ix+6),a
+ ld a,(ix+7)
+ adc a,(ix+7)
+ ld (ix+7),a
+ ld a,(ix+8)
+ adc a,(ix+8)
+ ld (ix+8),a
+ ld a,(ix+9)
+ adc a,(ix+9)
+ ld (ix+9),a
+
+
+ push de
+
+ ;num = num + carry
+
+ ld de,0
+ adc hl,de
+ ld a,c
+ adc a,d
+ ld c,a
+
+
+ ;num = num - y
+ ld de,(ix+12)
+ or a,a
+ sbc hl,de
+ ld a,c
+ ld d,(ix+15)
+ sbc a,d
+ ld c,a
+
+ pop de
+ jr c, out ;if (num < y) goto out
+
+ inc de ;res = res | 1
+
+ jr done ;goto done
+
+out:
+ push de
+ ;num = num + y
+ ld de,(ix+12)
+ add hl,de
+ ld a,c
+ ld d,(ix+15)
+ adc a,d
+ ld c,a
+
+ pop de
+
+done:
+ ;i--, if (i != 0) go to loop
+ dec iyl
+ jr nz,loop
+
+
+ pop ix
+ ret
+
+ .def .uldivbdechl
+.uldivbdechl:
+ push bc
+ push hl
+ ld c,b
+ push bc
+ push de
+ call .uldiv
+ ld iy,12
+ add iy,sp
+ ld sp,iy
+ ret
diff --git a/frontends/calculator/CEdev/lib/shared/usb.src b/frontends/calculator/CEdev/lib/shared/usb.src index 91cc310..f339be8 100644 --- a/frontends/calculator/CEdev/lib/shared/usb.src +++ b/frontends/calculator/CEdev/lib/shared/usb.src @@ -1,21 +1,21 @@ -; --- -; External Definitions -; --- - .def _usb_BusPowered - .def _usb_SelfPowered - .def _usb_ResetChip - .def _usb_DisableTimers - .def _usb_EnableTimers - .def _usb_ResetTimers - .assume adl=1 - -; --- -; Location Equates -; --- -_usb_BusPowered equ 0003E4h -_usb_SelfPowered equ 0003E8h -_usb_ResetChip equ 0003F4h -_usb_DisableTimers equ 0004F4h -_usb_EnableTimers equ 0004F8h -_usb_ResetTimers equ 0004F0h -; --- +; ---
+; External Definitions
+; ---
+ .def _usb_BusPowered
+ .def _usb_SelfPowered
+ .def _usb_ResetChip
+ .def _usb_DisableTimers
+ .def _usb_EnableTimers
+ .def _usb_ResetTimers
+ .assume adl=1
+
+; ---
+; Location Equates
+; ---
+_usb_BusPowered equ 0003E4h
+_usb_SelfPowered equ 0003E8h
+_usb_ResetChip equ 0003F4h
+_usb_DisableTimers equ 0004F4h
+_usb_EnableTimers equ 0004F8h
+_usb_ResetTimers equ 0004F0h
+; ---
diff --git a/frontends/calculator/CEdev/lib/shared/zx7_Decompress.src b/frontends/calculator/CEdev/lib/shared/zx7_Decompress.src index e45c146..3190bdb 100644 --- a/frontends/calculator/CEdev/lib/shared/zx7_Decompress.src +++ b/frontends/calculator/CEdev/lib/shared/zx7_Decompress.src @@ -1,117 +1,117 @@ -; --- -; void zx7_Decompress(void *dest, void *src) -; --- -; Dec 2012 by Einar Saukas & Urusergi -; "Turbo" version (89 bytes, 25% faster) -; --- - - .def _zx7_Decompress - .assume adl=1 - -; enter : hl = void *src -; de = void *dst -; -; exit : hl = & following uncompressed block -; -; uses : af, bc, de, hl - -_zx7_Decompress: - pop bc - pop de - pop hl - push hl - push de - push bc - - ld a, 128 - -zx7t_copy_byte_loop: - - ldi ; copy literal byte - -zx7t_main_loop: - - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - jr nc, zx7t_copy_byte_loop ; next bit indicates either literal or sequence - -; determine number of bits used for length (Elias gamma coding) - - push de - ld de, 0 - ld bc, 1 - -zx7t_len_size_loop: - - inc d - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - jr nc, zx7t_len_size_loop - jp zx7t_len_value_start - -; determine length - -zx7t_len_value_loop: - - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - rl c - rl b - jr c, zx7t_exit ; check end marker - -zx7t_len_value_start: - - dec d - jr nz, zx7t_len_value_loop - inc bc ; adjust length - -; determine offset - - ld e, (hl) ; load offset flag (1 bit) + offset value (7 bits) - inc hl - - sla e - inc e - - jr nc, zx7t_offset_end ; if offset flag is set, load 4 extra bits - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - rl d ; insert first bit into D - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - rl d ; insert second bit into D - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - rl d ; insert third bit into D - add a, a ; check next bit - call z, zx7t_load_bits ; no more bits left? - ccf - jr c, zx7t_offset_end - inc d ; equivalent to adding 128 to DE - -zx7t_offset_end: - - rr e ; insert inverted fourth bit into E - -; copy previous sequence - - ex (sp), hl ; store source, restore destination - push hl ; store destination - sbc hl, de ; HL = destination - offset - 1 - pop de ; DE = destination - ldir - -zx7t_exit: - - pop hl ; restore source address (compressed data) - jp nc, zx7t_main_loop - -zx7t_load_bits: - - ld a, (hl) ; load another group of 8 bits - inc hl - rla - ret - - - end +; ---
+; void zx7_Decompress(void *dest, void *src)
+; ---
+; Dec 2012 by Einar Saukas & Urusergi
+; "Turbo" version (89 bytes, 25% faster)
+; ---
+
+ .def _zx7_Decompress
+ .assume adl=1
+
+; enter : hl = void *src
+; de = void *dst
+;
+; exit : hl = & following uncompressed block
+;
+; uses : af, bc, de, hl
+
+_zx7_Decompress:
+ pop bc
+ pop de
+ pop hl
+ push hl
+ push de
+ push bc
+
+ ld a, 128
+
+zx7t_copy_byte_loop:
+
+ ldi ; copy literal byte
+
+zx7t_main_loop:
+
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ jr nc, zx7t_copy_byte_loop ; next bit indicates either literal or sequence
+
+; determine number of bits used for length (Elias gamma coding)
+
+ push de
+ ld de, 0
+ ld bc, 1
+
+zx7t_len_size_loop:
+
+ inc d
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ jr nc, zx7t_len_size_loop
+ jp zx7t_len_value_start
+
+; determine length
+
+zx7t_len_value_loop:
+
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ rl c
+ rl b
+ jr c, zx7t_exit ; check end marker
+
+zx7t_len_value_start:
+
+ dec d
+ jr nz, zx7t_len_value_loop
+ inc bc ; adjust length
+
+; determine offset
+
+ ld e, (hl) ; load offset flag (1 bit) + offset value (7 bits)
+ inc hl
+
+ sla e
+ inc e
+
+ jr nc, zx7t_offset_end ; if offset flag is set, load 4 extra bits
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ rl d ; insert first bit into D
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ rl d ; insert second bit into D
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ rl d ; insert third bit into D
+ add a, a ; check next bit
+ call z, zx7t_load_bits ; no more bits left?
+ ccf
+ jr c, zx7t_offset_end
+ inc d ; equivalent to adding 128 to DE
+
+zx7t_offset_end:
+
+ rr e ; insert inverted fourth bit into E
+
+; copy previous sequence
+
+ ex (sp), hl ; store source, restore destination
+ push hl ; store destination
+ sbc hl, de ; HL = destination - offset - 1
+ pop de ; DE = destination
+ ldir
+
+zx7t_exit:
+
+ pop hl ; restore source address (compressed data)
+ jp nc, zx7t_main_loop
+
+zx7t_load_bits:
+
+ ld a, (hl) ; load another group of 8 bits
+ inc hl
+ rla
+ ret
+
+
+ end
|