diff options
author | Bad Diode <bd@badd10de.dev> | 2022-10-20 10:10:27 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-10-20 10:10:27 +0200 |
commit | 42dcdb3a98a957974225b5f699c02891db176c55 (patch) | |
tree | ad5d35e9c7d0a167cea19cb8faa7a90ca29b20ab | |
parent | e577c73974aefb0d78ff8d731e002c47d9804326 (diff) | |
download | uxn64-42dcdb3a98a957974225b5f699c02891db176c55.tar.gz uxn64-42dcdb3a98a957974225b5f699c02891db176c55.zip |
Add custom uxn rom selection via Makefile
-rw-r--r-- | Makefile | 20 | ||||
-rw-r--r-- | src/main.c | 2 | ||||
-rw-r--r-- | src/uxn_controller_rom.c | 56 | ||||
-rw-r--r-- | src/uxn_dvd_rom.c | 19 | ||||
-rw-r--r-- | src/uxn_noodle_rom.c | 478 | ||||
-rw-r--r-- | src/uxn_polycat_rom.c | 47 | ||||
-rw-r--r-- | src/uxn_screen_rom.c | 41 | ||||
-rw-r--r-- | tools/bin2carr/Makefile | 47 | ||||
-rw-r--r-- | tools/bin2carr/src/main.c | 232 | ||||
-rw-r--r-- | tools/bin2carr/src/shorthand.h | 35 |
10 files changed, 332 insertions, 645 deletions
@@ -16,6 +16,8 @@ BUILD_DIR := build | |||
16 | SRC_MAIN := $(SRC_DIR)/main.c $(SRC_DIR)/entry.s | 16 | SRC_MAIN := $(SRC_DIR)/main.c $(SRC_DIR)/entry.s |
17 | SRC_LN := $(SRC_DIR)/linker.ld | 17 | SRC_LN := $(SRC_DIR)/linker.ld |
18 | SRC_OBJ := | 18 | SRC_OBJ := |
19 | UXN_ROM_C := $(BUILD_DIR)/rom.c | ||
20 | UXN_ROM := $(SRC_DIR)/uxn/bin/screen.rom | ||
19 | OBJECTS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRC_OBJ)) | 21 | OBJECTS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRC_OBJ)) |
20 | WATCH_SRC := $(shell find $(SRC_DIR) \ | 22 | WATCH_SRC := $(shell find $(SRC_DIR) \ |
21 | -name "*.c" -or \ | 23 | -name "*.c" -or \ |
@@ -23,6 +25,7 @@ WATCH_SRC := $(shell find $(SRC_DIR) \ | |||
23 | -name "*.h" -or \ | 25 | -name "*.h" -or \ |
24 | -name "**.ld") | 26 | -name "**.ld") |
25 | INC_DIRS := $(shell find $(SRC_DIR) -type d) | 27 | INC_DIRS := $(shell find $(SRC_DIR) -type d) |
28 | INC_DIRS += $(BUILD_DIR) | ||
26 | INC_DIRS += $(LIBULTRA_INC) | 29 | INC_DIRS += $(LIBULTRA_INC) |
27 | INC_FLAGS := $(addprefix -I,$(INC_DIRS)) | 30 | INC_FLAGS := $(addprefix -I,$(INC_DIRS)) |
28 | 31 | ||
@@ -31,6 +34,9 @@ TARGET := uxn64 | |||
31 | ELF := $(BUILD_DIR)/$(TARGET).elf | 34 | ELF := $(BUILD_DIR)/$(TARGET).elf |
32 | BIN := $(BUILD_DIR)/$(TARGET).n64 | 35 | BIN := $(BUILD_DIR)/$(TARGET).n64 |
33 | 36 | ||
37 | # Target tools. | ||
38 | TOOLS_BIN2CARR := tools/bin2carr/build/bin2carr | ||
39 | |||
34 | # Main compilation tool paths. | 40 | # Main compilation tool paths. |
35 | CC := $(SDK_BIN)/mips32-elf-gcc | 41 | CC := $(SDK_BIN)/mips32-elf-gcc |
36 | LD := $(SDK_BIN)/mips32-elf-ld | 42 | LD := $(SDK_BIN)/mips32-elf-ld |
@@ -52,8 +58,6 @@ RELEASE_CFLAGS := -O2 -DNDEBUG -D_FINALROM | |||
52 | DEBUG_CFLAGS := -O0 -DDEBUG -D_FINALROM | 58 | DEBUG_CFLAGS := -O0 -DDEBUG -D_FINALROM |
53 | 59 | ||
54 | # Setup debug/release builds. | 60 | # Setup debug/release builds. |
55 | # make clean && make <target> DEBUG=0 | ||
56 | # make clean && make <target> DEBUG=1 | ||
57 | DEBUG ?= 0 | 61 | DEBUG ?= 0 |
58 | ifeq ($(DEBUG), 1) | 62 | ifeq ($(DEBUG), 1) |
59 | CFLAGS += $(DEBUG_CFLAGS) | 63 | CFLAGS += $(DEBUG_CFLAGS) |
@@ -63,13 +67,23 @@ endif | |||
63 | 67 | ||
64 | main: $(BIN) | 68 | main: $(BIN) |
65 | 69 | ||
66 | $(ELF): $(SRC_MAIN) $(WATCH_SRC) | $(BUILD_DIR) | 70 | # Compile the elf file. |
71 | $(ELF): $(SRC_MAIN) $(UXN_ROM_C) $(WATCH_SRC) | $(BUILD_DIR) | ||
67 | $(CC) $(CFLAGS) $(LDFLAGS) -o $(ELF) -T $(SRC_LN) $(SRC_MAIN) $(LDLIBS) | 72 | $(CC) $(CFLAGS) $(LDFLAGS) -o $(ELF) -T $(SRC_LN) $(SRC_MAIN) $(LDLIBS) |
68 | 73 | ||
74 | # Create the valid .n64 rom from the elf file. | ||
69 | $(BIN): $(ELF) $(OBJECTS) $(WATCH_SRC) | $(BUILD_DIR) | 75 | $(BIN): $(ELF) $(OBJECTS) $(WATCH_SRC) | $(BUILD_DIR) |
70 | $(OBJCOPY) -O binary $< $@ | 76 | $(OBJCOPY) -O binary $< $@ |
71 | $(MAKEMASK) $(BIN) | 77 | $(MAKEMASK) $(BIN) |
72 | 78 | ||
79 | # Build the uxn rom's C file. | ||
80 | $(UXN_ROM_C): $(TOOLS_BIN2CARR) | $(BUILD_DIR) | ||
81 | ./$(TOOLS_BIN2CARR) -n uxn_rom -e u8 -o $(UXN_ROM_C) $(UXN_ROM) | ||
82 | |||
83 | # Build the tools. | ||
84 | $(TOOLS_BIN2CARR): | ||
85 | make -C tools/bin2carr | ||
86 | |||
73 | # Test the output .n64 in an emulator. | 87 | # Test the output .n64 in an emulator. |
74 | run: $(BIN) | 88 | run: $(BIN) |
75 | $(EMULATOR) $(BIN) | 89 | $(EMULATOR) $(BIN) |
@@ -36,7 +36,7 @@ OSPiHandle *rom_handle; | |||
36 | #include "ppu.c" | 36 | #include "ppu.c" |
37 | #include "uxn/src/uxn.c" | 37 | #include "uxn/src/uxn.c" |
38 | 38 | ||
39 | #include "uxn_noodle_rom.c" | 39 | #include "rom.c" |
40 | 40 | ||
41 | #define CLAMP(X, MIN, MAX) ((X) <= (MIN) ? (MIN) : (X) > (MAX) ? (MAX): (X)) | 41 | #define CLAMP(X, MIN, MAX) ((X) <= (MIN) ? (MIN) : (X) > (MAX) ? (MAX): (X)) |
42 | 42 | ||
diff --git a/src/uxn_controller_rom.c b/src/uxn_controller_rom.c deleted file mode 100644 index a302c70..0000000 --- a/src/uxn_controller_rom.c +++ /dev/null | |||
@@ -1,56 +0,0 @@ | |||
1 | const u16 uxn_rom[] = { | ||
2 | 0xa00f, 0xf780, 0x0837, 0xa00f, 0x0780, 0x0a37, 0xa00f, 0x0780, | ||
3 | 0x0c37, 0x8022, 0x3680, 0x013f, 0x8000, 0x3180, 0x2436, 0x8001, | ||
4 | 0x3f80, 0x0231, 0xa000, 0x6880, 0x0431, 0xa000, 0x3080, 0x0631, | ||
5 | 0x8000, 0x3080, 0x0430, 0x8001, 0x3f39, 0x8008, 0x3180, 0x0230, | ||
6 | 0x8006, 0x3080, 0x013f, 0x3980, 0x0a31, 0x8008, 0x3080, 0x0430, | ||
7 | 0x3880, 0x0c31, 0x800a, 0x3080, 0x0630, 0x3880, 0x0e31, 0xa001, | ||
8 | 0x7a80, 0x8037, 0x8008, 0x3080, 0x0a30, 0x800c, 0x3080, 0x0e30, | ||
9 | 0x8003, 0xa003, 0x3e2e, 0x8011, 0x0e00, 0x800d, 0x0e80, 0x8216, | ||
10 | 0x8008, 0x080c, 0x00a0, 0x010e, 0x1700, 0x8082, 0x160f, 0x8008, | ||
11 | 0x30a0, 0x0010, 0x3880, 0x2837, 0x800a, 0x30a0, 0x0010, 0x3880, | ||
12 | 0x2a37, 0xa003, 0xaa80, 0x2c37, 0x8003, 0xcf80, 0x041f, 0x8001, | ||
13 | 0x1c06, 0x1819, 0x802f, 0x1780, 0x2a36, 0xa000, 0x1038, 0x802a, | ||
14 | 0x37a0, 0x03b2, 0x802c, 0x3780, 0x03cf, 0x8005, 0x1f80, 0x011c, | ||
15 | 0x0618, 0x1980, 0x2f17, 0x802a, 0x36a0, 0x0008, 0x3980, 0x2a37, | ||
16 | 0x8028, 0x36a0, 0x0008, 0x3980, 0x2837, 0xa003, 0xba80, 0x2c37, | ||
17 | 0x8003, 0xcf80, 0x061f, 0x8001, 0x1c06, 0x1819, 0x802f, 0x1780, | ||
18 | 0x2836, 0xa000, 0x1038, 0x8028, 0x37a0, 0x03c2, 0x802c, 0x3780, | ||
19 | 0x03cf, 0x8007, 0x1f80, 0x011c, 0x0618, 0x1980, 0x2f17, 0x8028, | ||
20 | 0x36a0, 0x0008, 0x3980, 0x2837, 0xa003, 0xa280, 0x2c37, 0xa003, | ||
21 | 0x2f17, 0x8002, 0x30a0, 0x0009, 0x3880, 0x2a37, 0x8000, 0x30a0, | ||
22 | 0x0009, 0x3980, 0x2837, 0xa003, 0xca80, 0x2c37, 0x8003, 0xcf80, | ||
23 | 0x021f, 0x8001, 0x1c06, 0x1819, 0x802f, 0x1780, 0x0030, 0xa000, | ||
24 | 0x0438, 0x8028, 0x37a0, 0x03ca, 0x802c, 0x3780, 0x03cf, 0x8003, | ||
25 | 0x1f80, 0x011c, 0x0618, 0x1980, 0x2f17, 0x8002, 0x30a0, 0x0000, | ||
26 | 0x3880, 0x2a37, 0x8000, 0x30a0, 0x0018, 0x3880, 0x2837, 0xa003, | ||
27 | 0xd280, 0x2c37, 0x8003, 0xcf80, 0x011f, 0x8001, 0x1c19, 0x802f, | ||
28 | 0x1780, 0x2a36, 0xa000, 0x0a38, 0x802a, 0x37a0, 0x03da, 0xa000, | ||
29 | 0x0b80, 0x303f, 0x3880, 0x2c37, 0xa003, 0x2f17, 0x8002, 0x30a0, | ||
30 | 0x0000, 0x3880, 0x2a37, 0x8000, 0x30a0, 0x0024, 0x3880, 0x2837, | ||
31 | 0xa003, 0xd280, 0x2c37, 0x8003, 0x4f80, 0x011c, 0x1980, 0x2f17, | ||
32 | 0x802a, 0x36a0, 0x000a, 0x3880, 0x2a37, 0xa003, 0xdaa0, 0x000a, | ||
33 | 0x8030, 0x3f38, 0x802c, 0x37a0, 0x032f, 0x1780, 0x0030, 0xa000, | ||
34 | 0x1039, 0x8028, 0x3780, 0x0230, 0xa000, 0x1039, 0x802a, 0x37a0, | ||
35 | 0x0126, 0x1780, 0x8236, 0x8005, 0x0ea0, 0x0026, 0x176c, 0x0480, | ||
36 | 0x000e, 0x0680, 0x041f, 0x8000, 0x0e80, 0x0004, 0x800f, 0x1c80, | ||
37 | 0x303f, 0xa003, 0xda38, 0x802c, 0x37a0, 0x032f, 0x176c, 0x0f26, | ||
38 | 0x803c, 0x3380, 0x2b33, 0x2680, 0x4933, 0x800f, 0x3326, 0x8031, | ||
39 | 0x3380, 0x1333, 0x2680, 0x3133, 0x8005, 0x33a0, 0x0000, 0x21a0, | ||
40 | 0x0000, 0x2680, 0x2837, 0xa000, 0x0080, 0x2a37, 0xcf80, 0x2e97, | ||
41 | 0xa000, 0x0080, 0x2a37, 0x1721, 0xaa80, 0xe60d, 0x2222, 0xa000, | ||
42 | 0x00a0, 0x0000, 0x2680, 0x2a37, 0xa000, 0x0080, 0x2837, 0xcf80, | ||
43 | 0x2e97, 0xa000, 0x0080, 0x2837, 0x1721, 0xaa80, 0xe60d, 0x2222, | ||
44 | 0x426c, 0xffff, 0xffff, 0xffff, 0xffff, 0x7eff, 0xe7c3, 0xffff, | ||
45 | 0xffff, 0xffff, 0xffff, 0xc3e7, 0xff7e, 0x7fff, 0xefcf, 0xcfef, | ||
46 | 0xff7f, 0xfeff, 0xf7f3, 0xf3f7, 0xfffe, 0x0000, 0x7eff, 0xff7e, | ||
47 | 0x0000, 0x3c7e, 0xffff, 0xffff, 0x7e3c, 0x007c, 0x8282, 0x8282, | ||
48 | 0x827c, 0x0030, 0x1010, 0x1010, 0x1010, 0x007c, 0x8202, 0x7c80, | ||
49 | 0x80fe, 0x007c, 0x8202, 0x1c02, 0x827c, 0x000c, 0x1424, 0x4484, | ||
50 | 0xfe04, 0x00fe, 0x8080, 0x7c02, 0x827c, 0x007c, 0x8280, 0xfc82, | ||
51 | 0x827c, 0x00fe, 0x0202, 0x0408, 0x1010, 0x007c, 0x8282, 0x7c82, | ||
52 | 0x827c, 0x007c, 0x8282, 0x7e02, 0x827c, 0x007c, 0x8202, 0x7e82, | ||
53 | 0x827e, 0x00fc, 0x8282, 0xfc82, 0x82fc, 0x007c, 0x8280, 0x8080, | ||
54 | 0x827c, 0x00fc, 0x8282, 0x8282, 0x82fc, 0x00fe, 0x8080, 0xfe80, | ||
55 | 0x80fe, 0x00fe, 0x8080, 0xf080, 0x8080, 0x8080, | ||
56 | }; | ||
diff --git a/src/uxn_dvd_rom.c b/src/uxn_dvd_rom.c deleted file mode 100644 index 006f877..0000000 --- a/src/uxn_dvd_rom.c +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
1 | const u16 uxn_rom[] = { | ||
2 | 0xa04c, 0xfd80, 0x0837, 0xa04c, 0xf380, 0x0a37, 0xa0dc, 0xf280, | ||
3 | 0x0c37, 0xa001, 0x4980, 0x2037, 0x8022, 0x3680, 0x013f, 0x8000, | ||
4 | 0x3180, 0x2436, 0x8001, 0x3f80, 0x0231, 0x8022, 0x36a0, 0x0020, | ||
5 | 0x39a0, 0x015a, 0x3580, 0x2436, 0xa000, 0x1039, 0xa001, 0x7d35, | ||
6 | 0xa036, 0x2617, 0xa001, 0x660e, 0x00a0, 0x0061, 0x0e80, 0x0030, | ||
7 | 0xafa0, 0x0000, 0x2880, 0x400d, 0xefa0, 0x0000, 0x2880, 0x380d, | ||
8 | 0x6fa0, 0x0004, 0x1080, 0x103f, 0x38a0, 0xffff, 0x3880, 0x0031, | ||
9 | 0x8002, 0x30af, 0xa000, 0x0028, 0x8028, 0x0def, 0xa000, 0x0028, | ||
10 | 0x8020, 0x0d6f, 0xa000, 0x0510, 0x8010, 0x3f38, 0xa0ff, 0xff38, | ||
11 | 0x8002, 0x31a0, 0x0117, 0x0e00, 0x8004, 0x9080, 0x0008, 0x0411, | ||
12 | 0x80bd, 0x0c80, 0x0590, 0x8000, 0x0804, 0x1180, 0xd50c, 0xa001, | ||
13 | 0xc580, 0x2c37, 0x8000, 0x3080, 0x2837, 0x8002, 0x3080, 0x2a37, | ||
14 | 0x802f, 0x9717, 0x6c00, 0x1f3f, 0x3838, 0x3878, 0x7f00, 0xfefe, | ||
15 | 0x7e77, 0x77e3, 0xc300, 0x0f1f, 0x3b7b, 0x77e7, 0xc700, 0xfcfe, | ||
16 | 0x8f87, 0x070e, 0xfc7f, 0x0000, 0x0fff, 0x7f07, 0x0003, 0x0100, | ||
17 | 0xfff0, 0xf8ff, 0x0087, 0x0000, 0xff7f, 0x7fff, 0x00f0, 0x0000, | ||
18 | 0xe0fc, 0xfc80, 0x0080, | ||
19 | }; | ||
diff --git a/src/uxn_noodle_rom.c b/src/uxn_noodle_rom.c deleted file mode 100644 index 37bbefe..0000000 --- a/src/uxn_noodle_rom.c +++ /dev/null | |||
@@ -1,478 +0,0 @@ | |||
1 | const u16 uxn_rom[] = { | ||
2 | 0xa001, 0xcf80, 0x1037, 0xa003, 0x4880, 0x4f31, 0xa003, 0x7380, | ||
3 | 0x6331, 0xa003, 0x9680, 0x6d31, 0xa003, 0xc180, 0x8131, 0xa070, | ||
4 | 0xfe80, 0x0837, 0xa0c0, 0xf380, 0x0a37, 0xa090, 0xf380, 0x0c37, | ||
5 | 0xa016, 0x322e, 0xa004, 0x0311, 0xa000, 0x0411, 0xa000, 0x0211, | ||
6 | 0xa000, 0x08a0, 0x0008, 0xa007, 0x672e, 0xa000, 0x28a0, 0x0012, | ||
7 | 0xa007, 0x822e, 0x8022, 0x3680, 0x033f, 0x0380, 0x0719, 0x8024, | ||
8 | 0x3680, 0x033f, 0x0380, 0x0419, 0xa007, 0x062e, 0x8059, 0x1080, | ||
9 | 0x0219, 0x805a, 0x1080, 0x0219, 0xa007, 0xa52e, 0xa001, 0x852e, | ||
10 | 0xa00c, 0x412e, 0x00a0, 0x029a, 0x8020, 0x37a0, 0x052a, 0x8080, | ||
11 | 0x37a0, 0x02a8, 0x8090, 0x3780, 0x06a0, 0x111a, 0x2ea0, 0x0096, | ||
12 | 0x176c, 0xa002, 0x7a80, 0x2037, 0xa002, 0x0680, 0x8037, 0xa002, | ||
13 | 0x9b80, 0x9037, 0x8006, 0xa011, 0x1a2e, 0xa000, 0x9617, 0x800c, | ||
14 | 0x3080, 0x2837, 0x800e, 0x3080, 0x2a37, 0xa040, 0x2f17, 0x6c80, | ||
15 | 0x00a0, 0x111a, 0x2e80, 0x0080, 0x0e0d, 0xa001, 0xf813, 0xa000, | ||
16 | 0x83a0, 0x0040, 0xa016, 0xa92e, 0x8012, 0x1606, 0x0680, 0x1f0a, | ||
17 | 0x0480, 0x7f0b, 0x1c80, 0x040d, 0xa000, 0xda13, 0x8022, 0x0e80, | ||
18 | 0x06a0, 0x111a, 0x2e00, 0x8000, 0xa011, 0x1a2e, 0x8083, 0x1606, | ||
19 | 0x800d, 0x0880, 0x031a, 0x1980, 0x070e, 0x8006, 0xa011, 0x1a2e, | ||
20 | 0x0006, 0x8002, 0x0d02, 0x6c80, 0x0889, 0x0380, 0x090d, 0xa000, | ||
21 | 0x83a0, 0x16f3, 0x2e02, 0x6c80, 0x0a89, 0x0380, 0x040d, 0xa00c, | ||
22 | 0x762e, 0x807f, 0x8903, 0x800c, 0x0da0, 0x0083, 0xa000, 0x40a0, | ||
23 | 0x16a9, 0x2e02, 0x6c80, 0x208a, 0x0380, 0x060d, 0xa001, 0x852e, | ||
24 | 0x026c, 0xa000, 0x83a0, 0x16cb, 0x2e03, 0x803f, 0x0880, 0x080d, | ||
25 | 0x06a0, 0x0083, 0xa016, 0xee2e, 0x026c, 0x8000, 0x1006, 0x8007, | ||
26 | 0x1c80, 0x110d, 0x0680, 0x031f, 0x8001, 0x1c80, 0x101f, 0x8006, | ||
27 | 0x18a0, 0x111a, 0x2e01, 0x8000, 0x1100, 0x0080, 0x9616, 0x8000, | ||
28 | 0x090c, 0x00a0, 0x0185, 0x2e00, 0xa00f, 0x112e, 0x8011, 0x1080, | ||
29 | 0x0008, 0x800e, 0x0d80, 0x9616, 0x8000, 0x0980, 0x050d, 0xa003, | ||
30 | 0x2a2e, 0x0080, 0x9236, 0x8094, 0x3680, 0x1110, 0x8000, 0x0a80, | ||
31 | 0x9616, 0x8000, 0x0a1c, 0x8056, 0x0d27, 0x2780, 0x47a0, 0x11d4, | ||
32 | 0x2ea0, 0x03ee, 0x2d80, 0x1210, 0x8030, 0x0d27, 0x2780, 0x5ba0, | ||
33 | 0x11d4, 0x2ea0, 0x04f7, 0x2d27, 0x2780, 0x65a0, 0x11d4, 0x2ea0, | ||
34 | 0x0508, 0x2d27, 0x2780, 0x79a0, 0x11d4, 0x2ea0, 0x0519, 0x2d27, | ||
35 | 0x2780, 0x6fa0, 0x11d4, 0x2ea0, 0x04bf, 0x2d27, 0x2780, 0x51a0, | ||
36 | 0x11d4, 0x2ea0, 0x04ce, 0x2d22, 0x2200, 0xa000, 0x1111, 0x6c80, | ||
37 | 0x1110, 0x8008, 0x1830, 0x2c00, 0x8011, 0x1180, 0x9236, 0x8008, | ||
38 | 0x3180, 0x9436, 0x800a, 0x316c, 0xa00f, 0xc32e, 0xa00d, 0x212e, | ||
39 | 0x2680, 0x0a30, 0x392f, 0x800a, 0x3180, 0x4930, 0x6f38, 0x2f26, | ||
40 | 0x8008, 0x3039, 0x2f80, 0x0831, 0x8047, 0x306f, 0x386f, 0xa007, | ||
41 | 0x672e, 0x0080, 0x5330, 0x39a0, 0x0008, 0x3880, 0x033f, 0x030f, | ||
42 | 0x8051, 0x3039, 0xa000, 0x0838, 0x8003, 0x3f03, 0x4fa0, 0x0706, | ||
43 | 0x2ea0, 0x0ffe, 0x2e00, 0xa00f, 0xd92e, 0x2680, 0x0a30, 0x392f, | ||
44 | 0x800a, 0x3180, 0x5330, 0x6f38, 0x2f26, 0x8008, 0x3039, 0x2f80, | ||
45 | 0x0831, 0x8051, 0x306f, 0x386f, 0xa007, 0x822e, 0xa00f, 0xfe2e, | ||
46 | 0x00a0, 0x005a, 0x1080, 0x011f, 0x8030, 0x3f80, 0x5330, 0x3839, | ||
47 | 0x8002, 0x3f03, 0x0fa0, 0x0059, 0x1080, 0x011f, 0x8030, 0x3f80, | ||
48 | 0x5130, 0x3839, 0x8002, 0x3f03, 0x4fa0, 0x07a5, 0x2e00, 0x8096, | ||
49 | 0x1680, 0x030d, 0x2222, 0x0080, 0x4930, 0xa000, 0x0338, 0x39a0, | ||
50 | 0x000a, 0x3b03, 0x0f80, 0x4730, 0x39a0, 0x000a, 0x3b03, 0x4f07, | ||
51 | 0x8002, 0x0b80, 0x020d, 0x2200, 0x0680, 0x0308, 0x804c, 0x0d06, | ||
52 | 0x8008, 0x0880, 0x450d, 0xa000, 0x9617, 0x0680, 0x030b, 0x8019, | ||
53 | 0x0d06, 0x8003, 0x0a07, 0x8008, 0x0b1c, 0x8016, 0x0d06, 0x8007, | ||
54 | 0x0a07, 0x800d, 0x0b1c, 0x8016, 0x0d00, 0x8010, 0x1f18, 0xa006, | ||
55 | 0x962e, 0x0080, 0x0419, 0x8010, 0x1f18, 0xa006, 0x9e2e, 0x0080, | ||
56 | 0x0919, 0x8010, 0x1f18, 0xa006, 0xb32e, 0x0022, 0x8047, 0xa003, | ||
57 | 0x382e, 0x00a0, 0x0077, 0x10a0, 0x0078, 0x103a, 0x8030, 0x3f6c, | ||
58 | 0xa00b, 0xdba0, 0x0bba, 0x8096, 0x1680, 0x010a, 0x8007, 0x1018, | ||
59 | 0x8001, 0x0d24, 0x2280, 0x0531, 0xa000, 0x9616, 0x8000, 0x0a80, | ||
60 | 0x101f, 0x8010, 0x1080, 0x000a, 0x1880, 0x101f, 0x8002, 0x1080, | ||
61 | 0x301f, 0x18a0, 0x134d, 0x3834, 0x8096, 0x1680, 0x1011, 0x6c80, | ||
62 | 0x7130, 0x3924, 0x806f, 0x3039, 0x2480, 0xb40e, 0x2c00, 0x8012, | ||
63 | 0x1080, 0x0008, 0x801d, 0x0d80, 0x5330, 0x3980, 0x033f, 0x8015, | ||
64 | 0x3038, 0x2480, 0x5130, 0x3980, 0x033f, 0x8013, 0x3038, 0x2480, | ||
65 | 0x8e0e, 0x2c00, 0x2222, 0x0022, 0x2280, 0x9616, 0x8000, 0x090c, | ||
66 | 0x0080, 0x5ba0, 0x0338, 0x2e00, 0x2222, 0x8096, 0x1680, 0x0009, | ||
67 | 0x0c00, 0x8065, 0xa003, 0x382e, 0x0022, 0x2280, 0x9616, 0x8000, | ||
68 | 0x090c, 0x0080, 0x79a0, 0x0338, 0x2e00, 0x8082, 0x1606, 0x8001, | ||
69 | 0x1ca0, 0x0608, 0x2d06, 0x80f0, 0x1ca0, 0x0642, 0x2d06, 0x8004, | ||
70 | 0x0980, 0x040d, 0xa006, 0xd82e, 0x0680, 0x0809, 0x800c, 0x0d80, | ||
71 | 0x0790, 0x8000, 0x0804, 0x11a0, 0x108b, 0x2e02, 0x8083, 0x1680, | ||
72 | 0x0089, 0x0380, 0x020d, 0x0200, 0x8009, 0x8903, 0x8006, 0x0d02, | ||
73 | 0xa006, 0xe92e, 0x0080, 0x2089, 0x0380, 0x040d, 0xa006, 0xd82e, | ||
74 | 0x8071, 0x8903, 0x8006, 0x0d80, 0x00a0, 0x0696, 0x2e80, 0x7789, | ||
75 | 0x0380, 0x060d, 0x8001, 0xa006, 0x962e, 0x8065, 0x8903, 0x8006, | ||
76 | 0x0d80, 0x02a0, 0x0696, 0x2e80, 0x7289, 0x0380, 0x060d, 0x8003, | ||
77 | 0xa006, 0x962e, 0x8074, 0x8903, 0x8006, 0x0d80, 0x04a0, 0x0696, | ||
78 | 0x2e80, 0x7989, 0x0380, 0x060d, 0x8005, 0xa006, 0x962e, 0x805b, | ||
79 | 0x8903, 0x800a, 0x0d80, 0x0310, 0x8001, 0x19a0, 0x06b3, 0x2e80, | ||
80 | 0x5d89, 0x0380, 0x080d, 0x8003, 0x1001, 0xa006, 0xb32e, 0x0606, | ||
81 | 0x8030, 0x0a04, 0x8039, 0x0ba0, 0x0101, 0x2980, 0x080d, 0x0680, | ||
82 | 0x3119, 0xa006, 0x9e2e, 0x0200, 0x0280, 0x8316, 0x806e, 0x8903, | ||
83 | 0x8006, 0x0da0, 0x0c41, 0x2e02, 0x0080, 0x7289, 0x0380, 0x060d, | ||
84 | 0xa001, 0xa22e, 0x0200, 0x806f, 0x8903, 0x8006, 0x0da0, 0x0c76, | ||
85 | 0x2e02, 0x0080, 0x7389, 0x0380, 0x060d, 0xa00c, 0xcd2e, 0x0200, | ||
86 | 0x0200, 0x8012, 0x1080, 0x020d, 0x0200, 0x0680, 0x101c, 0x8000, | ||
87 | 0x0880, 0x090d, 0x8015, 0xb0a0, 0x0001, 0x3905, 0x3106, 0x8020, | ||
88 | 0x1c80, 0x0008, 0x8006, 0x0d80, 0x15b0, 0x2105, 0x3106, 0x8040, | ||
89 | 0x1c80, 0x0008, 0x8009, 0x0d80, 0x13b0, 0xa000, 0x0139, 0x0531, | ||
90 | 0x0680, 0x801c, 0x8000, 0x0880, 0x060d, 0x8013, 0xb021, 0x0531, | ||
91 | 0x02a0, 0x0d4f, 0x2e00, 0x8002, 0x11a0, 0x1053, 0x2e6c, 0x8007, | ||
92 | 0x1c80, 0x0411, 0x8002, 0x1080, 0x040d, 0xa001, 0xe80e, 0xa010, | ||
93 | 0x6f2e, 0x6c80, 0x071c, 0x0680, 0x0310, 0x0980, 0x080d, 0x8007, | ||
94 | 0x9080, 0x0008, 0x0411, 0x8003, 0x1180, 0x0210, 0x8004, 0x0da0, | ||
95 | 0x01c3, 0x0ea0, 0x108b, 0x2e6c, 0x8012, 0x9080, 0x0008, 0x0411, | ||
96 | 0xa00d, 0x212e, 0xa00f, 0xfe2e, 0x6ca0, 0x1ebd, 0xafa0, 0x0473, | ||
97 | 0x2e38, 0x6faf, 0x9480, 0xff1e, 0x6f15, 0x21aa, 0x80f4, 0x0d22, | ||
98 | 0x22a0, 0x0d4f, 0x2e6c, 0x2680, 0x5930, 0x2880, 0x570d, 0x0680, | ||
99 | 0x010b, 0x8050, 0x0d07, 0x8001, 0x0b80, 0x490d, 0x0680, 0x2436, | ||
100 | 0x8003, 0x3f03, 0x8004, 0x190a, 0x803a, 0x0d07, 0x8022, 0x3680, | ||
101 | 0x033f, 0x0380, 0x0719, 0x0a80, 0x2b0d, 0xa00f, 0xd92e, 0x0680, | ||
102 | 0x5a11, 0x8000, 0x0480, 0x303f, 0x8053, 0x3038, 0x8057, 0x3106, | ||
103 | 0x8059, 0x1180, 0x0004, 0x8030, 0x3f80, 0x5130, 0x3880, 0x5531, | ||
104 | 0xa007, 0xd52e, 0x6c22, 0x6c26, 0x8049, 0x31a0, 0x0088, 0x3880, | ||
105 | 0x4d31, 0x2680, 0x4731, 0xa000, 0x1838, 0x804b, 0x31a0, 0x0ffe, | ||
106 | 0x2e6c, 0x2680, 0x5331, 0xa000, 0x5a10, 0x8030, 0x3f38, 0x8057, | ||
107 | 0x3126, 0x8051, 0x31a0, 0x0059, 0x1080, 0x303f, 0x3880, 0x5531, | ||
108 | 0xa007, 0xd52e, 0x6c26, 0x8077, 0x3028, 0x8026, 0x0d06, 0x8001, | ||
109 | 0x0b80, 0x1f0d, 0x0780, 0x010b, 0x8018, 0x0d06, 0x807f, 0x0a80, | ||
110 | 0x110d, 0x0780, 0x7f0a, 0x800a, 0x0d80, 0x7811, 0x8077, 0x1180, | ||
111 | 0x030e, 0x6c22, 0x6c80, 0x5910, 0x8077, 0x1001, 0x0a80, 0x0f0d, | ||
112 | 0x8051, 0x3080, 0x6f31, 0x8055, 0x3080, 0x7331, 0x8023, 0x0c80, | ||
113 | 0x5130, 0xaf80, 0x5530, 0x6f39, 0xa000, 0x7710, 0x8030, 0x3faf, | ||
114 | 0x3980, 0x013f, 0x3826, 0x806f, 0x316f, 0xa000, 0x0139, 0x3880, | ||
115 | 0x7331, 0x805a, 0x1080, 0x7810, 0x010a, 0x800f, 0x0d80, 0x5330, | ||
116 | 0x8071, 0x3180, 0x5730, 0x8075, 0x3180, 0x230c, 0x8053, 0x30af, | ||
117 | 0x8057, 0x306f, 0x39a0, 0x0078, 0x1080, 0x303f, 0xaf39, 0x8001, | ||
118 | 0x3f38, 0x2680, 0x7131, 0x6fa0, 0x0001, 0x3938, 0x8075, 0x3180, | ||
119 | 0x5530, 0xa000, 0x0839, 0x2680, 0x5b31, 0xa000, 0x0838, 0x805f, | ||
120 | 0x3180, 0x5730, 0xa000, 0x0839, 0x2680, 0x5d31, 0xa000, 0x0838, | ||
121 | 0x8061, 0x3180, 0x7330, 0x2680, 0x7931, 0xa000, 0x0838, 0x807d, | ||
122 | 0x3180, 0x7530, 0x2680, 0x7b31, 0xa000, 0x0838, 0x807f, 0x3180, | ||
123 | 0x5130, 0x8065, 0x3180, 0x5530, 0x8069, 0x3180, 0x5330, 0x26a0, | ||
124 | 0x0008, 0x3980, 0x6731, 0x806b, 0x31a0, 0x0d21, 0x2e6c, 0x8021, | ||
125 | 0x3180, 0x1f31, 0x8025, 0x3180, 0x2331, 0x801f, 0x3080, 0x2330, | ||
126 | 0x39a0, 0x1724, 0x2e80, 0x2b31, 0xa000, 0x0080, 0x2130, 0x8025, | ||
127 | 0x3039, 0xa017, 0x242e, 0x3980, 0x2d31, 0xa0ff, 0xffa0, 0x0023, | ||
128 | 0x3080, 0x1f30, 0xa017, 0x322e, 0x8010, 0x3f38, 0x8027, 0x31a0, | ||
129 | 0xffff, 0xa000, 0x2530, 0x8021, 0x30a0, 0x1732, 0x2e80, 0x103f, | ||
130 | 0x3880, 0x2931, 0x802b, 0x3080, 0x2d30, 0x3880, 0x2f31, 0x8023, | ||
131 | 0x3080, 0x2530, 0x8005, 0x302e, 0x8023, 0x3080, 0x2530, 0xa00e, | ||
132 | 0x6d2e, 0x8023, 0x3080, 0x1f30, 0x2880, 0x2530, 0x8021, 0x3028, | ||
133 | 0x1c80, 0x4f0d, 0x802f, 0x3080, 0x103f, 0x8031, 0x3180, 0x3130, | ||
134 | 0x802d, 0x30a0, 0x1732, 0x2e80, 0x140d, 0x802f, 0x3080, 0x2d30, | ||
135 | 0x3880, 0x2f31, 0x8023, 0x3080, 0x2730, 0x3880, 0x2331, 0x8031, | ||
136 | 0x3080, 0x2b30, 0xa017, 0x3c2e, 0x8014, 0x0d80, 0x2f30, 0x802b, | ||
137 | 0x3038, 0x802f, 0x3180, 0x2530, 0x8029, 0x3038, 0x8025, 0x31a0, | ||
138 | 0x090e, 0x2c6c, 0x800e, 0x3080, 0x0a30, 0xaa0c, 0x24af, 0x800c, | ||
139 | 0x3080, 0x0830, 0xaa0c, 0x2426, 0xefa0, 0x0a32, 0x2e80, 0x0008, | ||
140 | 0x8006, 0x0d26, 0xef80, 0x0530, 0x2e21, 0x2727, 0xa017, 0x3c2e, | ||
141 | 0x80e4, 0x0d22, 0x2262, 0x2127, 0x27a0, 0x173c, 0x2e80, 0xcd0d, | ||
142 | 0x2222, 0xa00d, 0x4f2e, 0x6c2f, 0x2fa0, 0x0800, 0xa008, 0x0027, | ||
143 | 0x0307, 0x0426, 0x0f0f, 0xa019, 0x4da0, 0x0003, 0x1080, 0x303f, | ||
144 | 0x3880, 0x004f, 0x3814, 0x8007, 0x4f19, 0x1f80, 0x011c, 0x8000, | ||
145 | 0x0880, 0x2e0d, 0x2680, 0x0004, 0x0580, 0x0004, 0x24ef, 0x64ef, | ||
146 | 0x6425, 0x3825, 0x2538, 0x2427, 0x27a0, 0x0a32, 0x2e80, 0x0008, | ||
147 | 0x800d, 0x0d27, 0x2780, 0x0530, 0x2ea0, 0x0e6d, 0x2e80, 0x020c, | ||
148 | 0x2222, 0x2201, 0x8a80, 0xa70d, 0x2201, 0x8a80, 0x9e0d, 0x2262, | ||
149 | 0x626c, 0x2f2f, 0x8004, 0x1006, 0x8006, 0x0d02, 0x6262, 0x8001, | ||
150 | 0x6c06, 0x8001, 0x0980, 0x1b0d, 0x0267, 0x676f, 0x6f38, 0xa000, | ||
151 | 0x013c, 0xa000, 0x0028, 0x6f6f, 0x39a0, 0x0001, 0x3ca0, 0x0000, | ||
152 | 0x281c, 0x6c06, 0x8002, 0x0980, 0x1b0d, 0x0267, 0x676f, 0x6f38, | ||
153 | 0xa000, 0x033c, 0xa000, 0x0028, 0x6f6f, 0x39a0, 0x0003, 0x3ca0, | ||
154 | 0x0000, 0x281c, 0x6c06, 0x8003, 0x0980, 0x1b0d, 0x0267, 0x676f, | ||
155 | 0x6f38, 0xa000, 0x053c, 0xa000, 0x0028, 0x6f6f, 0x39a0, 0x0005, | ||
156 | 0x3ca0, 0x0000, 0x281c, 0x6c06, 0x8004, 0x0980, 0x0d0d, 0x026f, | ||
157 | 0x6f38, 0xa000, 0x033c, 0xa000, 0x0028, 0x6c06, 0x8005, 0x0980, | ||
158 | 0x0d0d, 0x026f, 0x6f39, 0xa000, 0x033c, 0xa000, 0x0028, 0x6c06, | ||
159 | 0x8006, 0x0980, 0x0a0d, 0x0264, 0x626f, 0xa000, 0x013c, 0x036c, | ||
160 | 0x0680, 0x0709, 0x8009, 0x0d02, 0x626f, 0xa000, 0x013c, 0x036c, | ||
161 | 0x0262, 0x6280, 0x006c, 0x2f2f, 0x8003, 0x1080, 0x0080, 0x0310, | ||
162 | 0x8000, 0x2703, 0x0704, 0x8000, 0x0405, 0x8000, 0x04ef, 0x64ef, | ||
163 | 0x6425, 0x3825, 0x2538, 0x2427, 0x27a0, 0x0b95, 0x2e80, 0x0008, | ||
164 | 0x800b, 0x0d27, 0x2780, 0x170e, 0x2727, 0xa00e, 0x6d2e, 0x2222, | ||
165 | 0x018a, 0x80cd, 0x0d22, 0x018a, 0x80c2, 0x0d22, 0x6262, 0x6c27, | ||
166 | 0x27a0, 0x0001, 0x3980, 0x4d0e, 0x0f27, 0x2127, 0x8046, 0x0e80, | ||
167 | 0x101f, 0x0f58, 0x2727, 0x2180, 0x3b0e, 0x8020, 0x1f0f, 0x5827, | ||
168 | 0xa000, 0x0139, 0x2780, 0x2d0e, 0x8030, 0x1f0f, 0x584f, 0x0680, | ||
169 | 0x0308, 0x8019, 0x0d06, 0x8006, 0x0880, 0x120d, 0x0680, 0x0908, | ||
170 | 0x800b, 0x0d06, 0x800c, 0x0880, 0x040d, 0x0222, 0x226c, 0x02a0, | ||
171 | 0x0bdb, 0x2e6c, 0x6c80, 0x670e, 0x8005, 0x0d22, 0x2280, 0x016c, | ||
172 | 0x2703, 0x8007, 0x1c0f, 0x807b, 0x0e14, 0x8007, 0x4f19, 0x1f80, | ||
173 | 0x011c, 0x6c80, 0x040d, 0x8022, 0x0c6c, 0x8042, 0x0e80, 0x030d, | ||
174 | 0x2222, 0x6c27, 0x0380, 0x071c, 0x0f80, 0x580e, 0x94a0, 0x0107, | ||
175 | 0x4f19, 0x8040, 0x1f1f, 0x1d05, 0x0515, 0x6c80, 0x210e, 0x8003, | ||
176 | 0x0d22, 0x226c, 0x2703, 0x8007, 0x1c0f, 0x8037, 0x0e94, 0xa001, | ||
177 | 0x074f, 0x1980, 0x401f, 0x1f80, 0xff1e, 0x1c05, 0x0515, 0x6c26, | ||
178 | 0x8003, 0x3f03, 0x8078, 0x1080, 0x0119, 0x0a80, 0x120d, 0x2780, | ||
179 | 0x033f, 0x0380, 0x7710, 0x8001, 0x190a, 0x8003, 0x0d80, 0x016c, | ||
180 | 0x8000, 0x6c6c, 0xaf80, 0x033f, 0x2480, 0x033f, 0x24a0, 0x0077, | ||
181 | 0x103a, 0x3880, 0x303f, 0x6fa0, 0x0007, 0x3c38, 0xa01e, 0xbd38, | ||
182 | 0x6c80, 0x00a0, 0x111a, 0x2ea0, 0x0083, 0xa000, 0x20a0, 0x16a9, | ||
183 | 0x2ea0, 0x1541, 0xa000, 0x83a0, 0x000c, 0xa016, 0xb92e, 0xa01e, | ||
184 | 0xbda0, 0x0473, 0x2ea0, 0x16a9, 0x2ea0, 0x0001, 0x11a0, 0x10f0, | ||
185 | 0x2ea0, 0x0d21, 0x2e6c, 0xa01e, 0xbda0, 0x0473, 0x2ea0, 0x16a9, | ||
186 | 0x2ea0, 0x0001, 0x11a0, 0x10f0, 0x2ea0, 0x0083, 0xa016, 0xd22e, | ||
187 | 0xa000, 0x0339, 0xa00c, 0xc9a0, 0x1706, 0x2ea0, 0x1772, 0x2da0, | ||
188 | 0x0083, 0x80a8, 0x37a0, 0xfff0, 0xa01e, 0xbd39, 0x80aa, 0x37a0, | ||
189 | 0x1ebd, 0x80ac, 0x37a0, 0x0083, 0xa016, 0xd22e, 0xa000, 0x0939, | ||
190 | 0xa00c, 0xe52e, 0xa00d, 0x212e, 0x6c74, 0x6761, 0x00a0, 0x0083, | ||
191 | 0x80a8, 0x37a0, 0x0473, 0x2e80, 0xaa37, 0xa01e, 0xbd80, 0xae37, | ||
192 | 0xa00d, 0x212e, 0x6c26, 0xa016, 0x642e, 0x8000, 0x0880, 0x2f0d, | ||
193 | 0x26a0, 0x0002, 0x3814, 0x8078, 0x0980, 0x230d, 0x26a0, 0x0003, | ||
194 | 0x38a0, 0x1664, 0x2e80, 0x0008, 0x8014, 0x0d26, 0xa000, 0x0338, | ||
195 | 0xa016, 0x642e, 0x0fa0, 0x1664, 0x2e4f, 0xa007, 0xa52e, 0x6c22, | ||
196 | 0x6c80, 0x5930, 0xa000, 0x002a, 0x0c6c, 0x8051, 0x30a0, 0x0008, | ||
197 | 0x3980, 0x5330, 0xa000, 0x0839, 0x8059, 0x1080, 0x5a10, 0xa01b, | ||
198 | 0x2da0, 0x154e, 0x2ea0, 0x10f0, 0x2e80, 0x06a0, 0x111a, 0x2e80, | ||
199 | 0x7730, 0xa000, 0x002a, 0x0c6c, 0x8012, 0x10a0, 0x0e15, 0x2da0, | ||
200 | 0x0526, 0x17a0, 0x1ebd, 0x802c, 0x3780, 0x7130, 0x802a, 0x3780, | ||
201 | 0x7810, 0x805a, 0x108b, 0x0c04, 0x0280, 0x0080, 0x0007, 0xa000, | ||
202 | 0x7710, 0x3a80, 0x303f, 0xa01e, 0xbd38, 0x802c, 0x3780, 0x6f30, | ||
203 | 0x8028, 0x3780, 0x7710, 0x8059, 0x108b, 0x0c04, 0x0280, 0x00a0, | ||
204 | 0x092f, 0x1701, 0x8a80, 0xf70d, 0x2280, 0x2ab6, 0xa000, 0x0838, | ||
205 | 0x0537, 0x018a, 0x80c4, 0x0d22, 0xa011, 0x452e, 0x8077, 0x1080, | ||
206 | 0x5910, 0x8002, 0x190a, 0x802d, 0x0d80, 0x7810, 0x805a, 0x1080, | ||
207 | 0x0219, 0x0a80, 0x200d, 0x8077, 0x30a0, 0x0000, 0x2880, 0x160d, | ||
208 | 0xa019, 0x0580, 0x2c37, 0x8079, 0x3080, 0x2837, 0x807b, 0x3080, | ||
209 | 0x2a37, 0xa00f, 0x2f17, 0xa019, 0x0d80, 0x2c37, 0x8055, 0x30a0, | ||
210 | 0x0008, 0x3980, 0x2837, 0x8057, 0x30a0, 0x0008, 0x3980, 0x2a37, | ||
211 | 0xa005, 0x2f17, 0x6ca0, 0x0126, 0x1780, 0x5330, 0x802a, 0x3780, | ||
212 | 0x5a10, 0x8000, 0x8f80, 0x5130, 0x8028, 0x3780, 0x5910, 0x8000, | ||
213 | 0x8000, 0xcf80, 0x1530, 0x382f, 0x8000, 0x0780, 0x1330, 0x386f, | ||
214 | 0xa00b, 0x952e, 0x8000, 0x0480, 0x303f, 0xa019, 0x3d38, 0x802c, | ||
215 | 0x37a0, 0x092f, 0x1701, 0x8a80, 0xd60d, 0x2242, 0x802a, 0x36a0, | ||
216 | 0x0008, 0x3880, 0x2a37, 0x018a, 0x80b9, 0x0d22, 0x6c80, 0x1210, | ||
217 | 0x8047, 0x0d26, 0xa000, 0x7810, 0x8030, 0x3fa0, 0x0001, 0x392a, | ||
218 | 0x8034, 0x0d27, 0xa000, 0x7710, 0x8030, 0x3fa0, 0x0001, 0x392a, | ||
219 | 0x8024, 0x0d80, 0x333f, 0x2480, 0x333f, 0x2427, 0x27a0, 0x0c24, | ||
220 | 0x2e80, 0x2c37, 0x8071, 0x3038, 0x802a, 0x3780, 0x6f30, 0x3880, | ||
221 | 0x2837, 0xa009, 0x2f17, 0x6c22, 0x226c, 0x2680, 0x1530, 0x39a0, | ||
222 | 0x005a, 0x1080, 0x0119, 0x2a80, 0x440d, 0x2780, 0x1330, 0x39a0, | ||
223 | 0x0059, 0x1080, 0x0119, 0x2a80, 0x340d, 0x2727, 0xa00b, 0x952e, | ||
224 | 0x8000, 0x0480, 0x303f, 0xa019, 0x3d38, 0x802c, 0x3780, 0x1530, | ||
225 | 0x3980, 0x303f, 0x8053, 0x3038, 0x802a, 0x3780, 0x1330, 0x3980, | ||
226 | 0x303f, 0x8051, 0x3038, 0x8028, 0x37a0, 0x092f, 0x176c, 0x2222, | ||
227 | 0x6c80, 0x0c30, 0x800e, 0x3027, 0x27a0, 0x0003, 0x3980, 0x2a37, | ||
228 | 0xa000, 0x0339, 0x8028, 0x37a0, 0x402f, 0x1780, 0x40a0, 0x0fb1, | ||
229 | 0x2e80, 0x9236, 0x800c, 0x3180, 0x9436, 0x800e, 0x3180, 0x0210, | ||
230 | 0x0680, 0x0108, 0x0480, 0x0308, 0xa000, 0x0028, 0xa00f, 0x9c2d, | ||
231 | 0x8092, 0x3680, 0x9436, 0x806f, 0xa011, 0xd42e, 0x8000, 0x08a0, | ||
232 | 0x0f9c, 0x2d80, 0x0c30, 0xa000, 0x0339, 0x8028, 0x3780, 0x0e30, | ||
233 | 0xa000, 0x0339, 0x802a, 0x37a0, 0x1a45, 0xa000, 0x0310, 0x8030, | ||
234 | 0x3f38, 0x802c, 0x3780, 0x9616, 0x8000, 0x0906, 0x8010, 0x1f80, | ||
235 | 0x4118, 0x802f, 0x1780, 0x0008, 0x8001, 0x0d6c, 0x800c, 0x3080, | ||
236 | 0x0e30, 0xa041, 0x4380, 0x9616, 0x8001, 0x0d04, 0x0280, 0x010e, | ||
237 | 0x6c0f, 0x802a, 0x3780, 0x2837, 0xa01a, 0x8d80, 0x2c37, 0x4f80, | ||
238 | 0x2f17, 0x6c80, 0x4730, 0x8028, 0x3780, 0x4930, 0x802a, 0x37a0, | ||
239 | 0x0311, 0x8000, 0xa015, 0xf52e, 0x6c80, 0x6530, 0xa000, 0x0239, | ||
240 | 0x8028, 0x3780, 0x6730, 0xa000, 0x0239, 0x802a, 0x3780, 0x5910, | ||
241 | 0x0180, 0x5a10, 0x8002, 0x1880, 0x00a0, 0x15f5, 0x2e6c, 0x8047, | ||
242 | 0x3080, 0x4930, 0xa001, 0x0fa0, 0x1a9d, 0xa015, 0x4e2e, 0x8042, | ||
243 | 0x0e80, 0x4730, 0x2180, 0x4b30, 0x8049, 0x30a0, 0x0026, 0x38a0, | ||
244 | 0x0119, 0x0e80, 0x490e, 0x8047, 0x3021, 0x804b, 0x3080, 0x4930, | ||
245 | 0xa000, 0x5838, 0xa001, 0x040e, 0x8050, 0x0e6c, 0x0f80, 0x2a37, | ||
246 | 0x2426, 0x8028, 0x37cf, 0x802e, 0x1721, 0x21aa, 0x80f2, 0x0d22, | ||
247 | 0x2242, 0x6ca0, 0x1a0d, 0x802c, 0x37a0, 0x0602, 0x1080, 0x4730, | ||
248 | 0xa000, 0x0438, 0x8049, 0x30a0, 0x0005, 0x3880, 0x410e, 0x6ca0, | ||
249 | 0x19cd, 0x802c, 0x37a0, 0x0804, 0x1080, 0x4730, 0xa000, 0x0438, | ||
250 | 0x8049, 0x30a0, 0x002d, 0x3880, 0x250e, 0x6ca0, 0x0007, 0x1080, | ||
251 | 0x601f, 0xa019, 0x4d38, 0x802c, 0x37a0, 0x0803, 0x1080, 0x4730, | ||
252 | 0xa000, 0x0438, 0x8049, 0x30a0, 0x005f, 0x3880, 0x010e, 0x6ca0, | ||
253 | 0x0426, 0x1780, 0x2033, 0x800d, 0x330f, 0x8000, 0x8000, 0x0780, | ||
254 | 0x011c, 0x8009, 0x1aa0, 0x0000, 0x3880, 0x2837, 0x8000, 0x0780, | ||
255 | 0x011f, 0x800a, 0x1aa0, 0x0000, 0x3880, 0x2a37, 0x06cf, 0x0880, | ||
256 | 0x101f, 0x8009, 0x1880, 0x2f17, 0x018a, 0x80cf, 0x0d22, 0x426c, | ||
257 | 0xa004, 0x2617, 0x8065, 0x3080, 0x2837, 0x8067, 0x30a0, 0x0002, | ||
258 | 0x3980, 0x2a37, 0xa019, 0x1580, 0x2c37, 0xa001, 0x2f17, 0xa00a, | ||
259 | 0x0110, 0x8005, 0x1a18, 0x802f, 0x176c, 0x0f80, 0x6530, 0xa000, | ||
260 | 0x0838, 0x8028, 0x3780, 0x6730, 0xa000, 0x0239, 0x802a, 0x37a0, | ||
261 | 0x0083, 0xcfa0, 0x1193, 0x2ea0, 0x1925, 0x802c, 0x374f, 0x8000, | ||
262 | 0x0980, 0x2f17, 0x6c80, 0x1210, 0x8000, 0x0880, 0x010d, 0x6c80, | ||
263 | 0x5910, 0x8005, 0x0a80, 0x010d, 0x6c80, 0x7130, 0x8053, 0x302a, | ||
264 | 0x8001, 0x0d6c, 0xa001, 0x2617, 0x806f, 0x3080, 0x2837, 0x8071, | ||
265 | 0x30a0, 0x0008, 0x3980, 0x2a37, 0x8077, 0x1080, 0x08a0, 0x11a5, | ||
266 | 0x2e80, 0x7880, 0x08a0, 0x11bf, 0x2e80, 0x7810, 0x8008, 0xa011, | ||
267 | 0xa52e, 0x6c0f, 0xa001, 0x2617, 0x94cf, 0x8022, 0x0e21, 0x9480, | ||
268 | 0xf60d, 0x2242, 0x6c0f, 0x0680, 0x041f, 0xcf80, 0x010e, 0x4f04, | ||
269 | 0x800f, 0x1c06, 0x8009, 0x0a80, 0x271a, 0x1880, 0x3018, 0x0404, | ||
270 | 0x8020, 0x1980, 0x0004, 0x8030, 0x3fa0, 0x1bbd, 0x3880, 0x2c37, | ||
271 | 0x802f, 0x176c, 0x0f26, 0xcf80, 0x0218, 0x30a0, 0x1732, 0x2e80, | ||
272 | 0x2b0d, 0x26cf, 0x8006, 0x1830, 0xa017, 0x3c2e, 0x801e, 0x0d24, | ||
273 | 0x26cf, 0x30a0, 0x1732, 0x2e80, 0x130d, 0x26cf, 0x8004, 0x1830, | ||
274 | 0xa017, 0x3c2e, 0x8006, 0x0d22, 0x2242, 0x8001, 0x6c22, 0x2242, | ||
275 | 0x8000, 0x6c0f, 0xb0a0, 0x0001, 0x3980, 0x3731, 0x0101, 0xb0a0, | ||
276 | 0x0001, 0x3980, 0x3931, 0x0101, 0xb080, 0x3331, 0x0101, 0x3080, | ||
277 | 0x3531, 0x8033, 0x3080, 0x3730, 0x39a0, 0x1724, 0x2e80, 0x3f31, | ||
278 | 0x8035, 0x3080, 0x3930, 0x39a0, 0x1724, 0x2ea0, 0x0000, 0x2439, | ||
279 | 0x8041, 0x31a0, 0xffff, 0xa000, 0x3730, 0x8033, 0x30a0, 0x1732, | ||
280 | 0x2e80, 0x103f, 0x3880, 0x3b31, 0xa0ff, 0xffa0, 0x0039, 0x3080, | ||
281 | 0x3530, 0xa017, 0x322e, 0x8010, 0x3f38, 0x803d, 0x3180, 0x3f30, | ||
282 | 0x8041, 0x3038, 0x8043, 0x3180, 0x3730, 0x8028, 0x3780, 0x3930, | ||
283 | 0x802a, 0x37cf, 0x802e, 0x1780, 0x3730, 0x8033, 0x3028, 0x8039, | ||
284 | 0x3080, 0x3530, 0x281c, 0x804f, 0x0d80, 0x4330, 0x8010, 0x3f80, | ||
285 | 0x4531, 0x8045, 0x3080, 0x4130, 0xa017, 0x322e, 0x8014, 0x0d80, | ||
286 | 0x4330, 0x8041, 0x3038, 0x8043, 0x3180, 0x3730, 0x803b, 0x3038, | ||
287 | 0x8037, 0x3180, 0x4530, 0x803f, 0x30a0, 0x173c, 0x2e80, 0x140d, | ||
288 | 0x8043, 0x3080, 0x3f30, 0x3880, 0x4331, 0x8039, 0x3080, 0x3d30, | ||
289 | 0x3880, 0x3931, 0xa012, 0x872c, 0x426c, 0x0f80, 0x1b30, 0x8017, | ||
290 | 0x30aa, 0x0c24, 0x2680, 0x2837, 0x8019, 0x3080, 0x2a37, 0xcf80, | ||
291 | 0x2e17, 0x801d, 0x3080, 0x2a37, 0xcf80, 0x2e17, 0x21aa, 0x80e3, | ||
292 | 0x0d22, 0x2280, 0x1d30, 0x8019, 0x30aa, 0x0c24, 0x2680, 0x2a37, | ||
293 | 0x8017, 0x3080, 0x2837, 0xcf80, 0x2e17, 0x801b, 0x3080, 0x2837, | ||
294 | 0xcf80, 0x2e17, 0x21aa, 0x80e3, 0x0d22, 0x2242, 0x6c13, 0xaf13, | ||
295 | 0x8b13, 0x7d13, 0x9813, 0xcc13, 0xb213, 0xbd13, 0xbd14, 0x5e13, | ||
296 | 0xe913, 0xcf14, 0x1b14, 0x7814, 0x6114, 0x6914, 0x6914, 0xf614, | ||
297 | 0x9414, 0x7b14, 0xb915, 0x3e15, 0x3e15, 0x2315, 0x3e27, 0x2780, | ||
298 | 0x0a31, 0x8008, 0x3127, 0x2780, 0x0530, 0x2ea0, 0x0e6d, 0x2ea0, | ||
299 | 0x0101, 0x11a0, 0x10f0, 0x2e00, 0x2727, 0x2f2f, 0x8008, 0x3080, | ||
300 | 0x0a30, 0x6f6f, 0xa008, 0xae2e, 0x800a, 0x3180, 0x0831, 0x0022, | ||
301 | 0x2200, 0x2222, 0xa001, 0x0111, 0xa010, 0xf02e, 0x00a0, 0x0003, | ||
302 | 0x3924, 0xa000, 0x0339, 0x24a0, 0x09c7, 0x2e00, 0x2222, 0x0080, | ||
303 | 0x0c30, 0x800e, 0x3080, 0x40a0, 0x0fb1, 0x2ea0, 0x1740, 0xa012, | ||
304 | 0x132e, 0x800a, 0x3180, 0x0831, 0x0080, 0x0c30, 0x800e, 0x3080, | ||
305 | 0x40a0, 0x0fb1, 0x2ea0, 0x1740, 0xa012, 0x132e, 0x800e, 0x3180, | ||
306 | 0x0c31, 0x8008, 0x3080, 0x0a30, 0x800c, 0x3080, 0x0e30, 0xa008, | ||
307 | 0xae2e, 0xa001, 0x0111, 0xa010, 0xf02e, 0x0080, 0x0c30, 0x800e, | ||
308 | 0x3080, 0x40a0, 0x0fb1, 0x2ea0, 0x1740, 0xa012, 0x132e, 0x800e, | ||
309 | 0x3180, 0x0c31, 0x8008, 0x3080, 0x0a30, 0xa014, 0xf92e, 0x2180, | ||
310 | 0x1931, 0x2180, 0x1731, 0x800c, 0x3080, 0x0e30, 0xa014, 0xf92e, | ||
311 | 0x801d, 0x3180, 0x1b31, 0xa017, 0x43a0, 0x1213, 0x2e00, 0x2222, | ||
312 | 0x00a0, 0x0101, 0x11a0, 0x10f0, 0x2ea0, 0x0003, 0x3924, 0xa000, | ||
313 | 0x0339, 0x24a0, 0x0af6, 0x2e00, 0x2222, 0x0080, 0x0c30, 0x800e, | ||
314 | 0x3080, 0x40a0, 0x0fb1, 0x2e80, 0x40a0, 0x12fa, 0x2e80, 0x0a31, | ||
315 | 0x8008, 0x3100, 0x800c, 0x3080, 0x0e30, 0x8040, 0xa00f, 0xb12e, | ||
316 | 0x8040, 0xa012, 0xfa2e, 0x800e, 0x3180, 0x0c31, 0xa009, 0x842e, | ||
317 | 0xa001, 0x0111, 0xa010, 0xf02e, 0x0080, 0x0c30, 0x800e, 0x3080, | ||
318 | 0x40a0, 0x0fb1, 0x2e80, 0x40a0, 0x12fa, 0x2e80, 0x0e31, 0x800c, | ||
319 | 0x3180, 0x0830, 0x800a, 0x3080, 0x1f0e, 0x8019, 0x3180, 0x1731, | ||
320 | 0x800c, 0x3080, 0x0e30, 0x8010, 0x0e80, 0x1d31, 0x801b, 0x3180, | ||
321 | 0x43a0, 0x12fa, 0x2e00, 0x2222, 0x0080, 0x1210, 0x800b, 0x0d80, | ||
322 | 0x7130, 0x3824, 0x806f, 0x3038, 0x246c, 0x8015, 0x3039, 0x8030, | ||
323 | 0x3f80, 0x5330, 0x3824, 0x8013, 0x3039, 0x8030, 0x3f80, 0x5130, | ||
324 | 0x3824, 0x6ca0, 0x0078, 0x1080, 0x013f, 0x3980, 0x1531, 0xa000, | ||
325 | 0x7710, 0x8001, 0x3f39, 0x8013, 0x31a0, 0x06d8, 0x2e00, 0x2222, | ||
326 | 0x0075, 0x6e74, 0x6974, 0x6c65, 0x642e, 0x6963, 0x6e00, 0x802c, | ||
327 | 0x3780, 0x3013, 0x801a, 0x1326, 0x802a, 0x3780, 0x2b33, 0x2680, | ||
328 | 0x2837, 0x802e, 0x33a0, 0x0126, 0x17a0, 0x852f, 0x1780, 0x6e0e, | ||
329 | 0x8000, 0x8073, 0x0ea0, 0x0226, 0x1780, 0x620e, 0xa085, 0x2f17, | ||
330 | 0x805b, 0x0e80, 0x0080, 0x600e, 0xa000, 0x00a0, 0x0008, 0x3880, | ||
331 | 0x2a37, 0xa000, 0x0080, 0x2837, 0x8043, 0x0e80, 0xe612, 0x8047, | ||
332 | 0x0ea0, 0x0126, 0x1780, 0x360e, 0xa085, 0x2f17, 0x802f, 0x0e80, | ||
333 | 0xbf12, 0x8033, 0x0e80, 0x260e, 0xa085, 0x2f17, 0x801f, 0x0e80, | ||
334 | 0xd132, 0xa000, 0x0838, 0x8028, 0x3780, 0xbd32, 0xa000, 0x0838, | ||
335 | 0x802a, 0x3780, 0x9b12, 0x80ab, 0x12a0, 0x8118, 0x0e6c, 0x802c, | ||
336 | 0xb6a0, 0x0010, 0x3805, 0x376c, 0x8000, 0xa081, 0x2f17, 0x018a, | ||
337 | 0x80f7, 0x0d22, 0x6c0f, 0xa001, 0x2617, 0x8028, 0x3680, 0x1e33, | ||
338 | 0x0480, 0x0313, 0x8000, 0x8000, 0x8000, 0xcf80, 0x2f17, 0x018a, | ||
339 | 0x80f7, 0x0d22, 0x802a, 0xb6a0, 0x0008, 0x3805, 0x37a0, 0x0000, | ||
340 | 0x8028, 0x3701, 0x8a80, 0xde0d, 0x2242, 0x6c2e, 0x7468, 0x656d, | ||
341 | 0x6500, 0xa016, 0x2b80, 0xa837, 0xa000, 0x0680, 0xaa37, 0xa0ff, | ||
342 | 0xfa80, 0xac37, 0x80a2, 0x36a0, 0x0006, 0x2980, 0x150d, 0xa0ff, | ||
343 | 0xfa34, 0x8008, 0x37a0, 0xfffc, 0x3480, 0x0a37, 0xa0ff, 0xfe34, | ||
344 | 0x800c, 0x376c, 0x9480, 0x0c0e, 0x0f21, 0x1480, 0x060e, 0x4f80, | ||
345 | 0x401f, 0x186c, 0x0680, 0x2f0a, 0x0780, 0x3a0b, 0x1c80, 0x1c0d, | ||
346 | 0x0680, 0x600a, 0x0780, 0x670b, 0x1c80, 0x180d, 0x0680, 0x400a, | ||
347 | 0x0780, 0x470b, 0x1c80, 0x080d, 0x0280, 0x006c, 0x8030, 0x196c, | ||
348 | 0x8037, 0x196c, 0x8057, 0x196c, 0x6c27, 0x3824, 0xaf80, 0x006f, | ||
349 | 0x1521, 0xaa80, 0xf60d, 0x2222, 0x6c24, 0x2f27, 0x3824, 0x94ef, | ||
350 | 0x1561, 0x21aa, 0x80f7, 0x0d22, 0x2262, 0x6c26, 0x8003, 0x0e24, | ||
351 | 0x396c, 0x9480, 0x0009, 0x0c6c, 0x2194, 0x80fb, 0x0d6c, 0x2f94, | ||
352 | 0xef15, 0x6121, 0x9480, 0xf70d, 0x2280, 0x006f, 0x156c, 0x80e1, | ||
353 | 0x0e15, 0x6c94, 0x8002, 0x0d22, 0x6c80, 0x0005, 0x0580, 0xd20e, | ||
354 | 0xa000, 0x0139, 0x156c, 0x2f94, 0xd44f, 0x0980, 0x110d, 0x94d4, | ||
355 | 0x4f1d, 0x8005, 0x0d22, 0x6280, 0x016c, 0x2161, 0x80e8, 0x0c22, | ||
356 | 0x6280, 0x006c, 0x2680, 0x0f3f, 0x0880, 0x050d, 0xa000, 0x0024, | ||
357 | 0x396c, 0xa080, 0x00af, 0x3824, 0x6f38, 0x2a6c, 0xa080, 0x00af, | ||
358 | 0x3824, 0x6f38, 0x2b6c, 0x0480, 0x000e, 0x0680, 0x041f, 0x8000, | ||
359 | 0x0e80, 0x0f1c, 0x0680, 0x090a, 0x8027, 0x1a18, 0x8030, 0x1880, | ||
360 | 0x1817, 0x6ca0, 0x0001, 0x3921, 0x9406, 0x8018, 0x1780, 0xf70d, | ||
361 | 0x226c, 0xa000, 0x8380, 0xa837, 0xa000, 0x1280, 0xaa37, 0xa018, | ||
362 | 0xf380, 0xac37, 0xa018, 0xffaf, 0x3404, 0x6f35, 0xa019, 0x01af, | ||
363 | 0x3404, 0x6f35, 0xa018, 0xff34, 0x8003, 0x3f03, 0xa019, 0x0134, | ||
364 | 0x8003, 0x3f03, 0xa007, 0xa52e, 0xa018, 0xf514, 0x8002, 0x8903, | ||
365 | 0x800b, 0x0da0, 0x187e, 0xa000, 0x0480, 0x490e, 0x026c, 0x8003, | ||
366 | 0x8903, 0x800b, 0x0da0, 0x1895, 0xa000, 0x0180, 0x370e, 0x026c, | ||
367 | 0xa017, 0xeea0, 0x1763, 0x2e80, 0x00a0, 0x18f5, 0x1480, 0x101f, | ||
368 | 0xa018, 0xdb38, 0x34a0, 0x1763, 0x2ea0, 0x0a18, 0x176c, 0x556e, | ||
369 | 0x7375, 0x7070, 0x6f72, 0x7465, 0x6420, 0x7467, 0x612d, 0x7479, | ||
370 | 0x7065, 0x3a20, 0x0080, 0xaa37, 0x801f, 0x33a0, 0x0126, 0x17a0, | ||
371 | 0x0000, 0x800e, 0x33a0, 0x0000, 0x800b, 0x33a0, 0x1876, 0xaf80, | ||
372 | 0xac37, 0xa000, 0x00a0, 0x0000, 0x6fa0, 0x0000, 0x2e80, 0x071f, | ||
373 | 0xa00b, 0xb32e, 0x80ec, 0x3221, 0x2680, 0xe733, 0xa018, 0xff34, | ||
374 | 0x2980, 0x0d0d, 0xa000, 0x0080, 0xd933, 0x80d9, 0x3221, 0x80d5, | ||
375 | 0x3380, 0xa236, 0xa000, 0x0029, 0x80c0, 0x0da0, 0x0026, 0x17a0, | ||
376 | 0x187a, 0xa000, 0x83a0, 0x16d2, 0x2ea0, 0x0003, 0x39a0, 0x16de, | ||
377 | 0x2ea0, 0x0d4f, 0x2e6c, 0x0000, 0x0000, 0x6963, 0x6e00, 0x2f80, | ||
378 | 0x00ef, 0x1461, 0x8000, 0xef14, 0x6180, 0x006f, 0x1438, 0x38a0, | ||
379 | 0x0003, 0x3b03, 0x6c14, 0x6c6e, 0x6f2d, 0x6461, 0x7461, 0x0052, | ||
380 | 0x4157, 0x2d63, 0x6f6c, 0x6f72, 0x0052, 0x4157, 0x2d74, 0x7275, | ||
381 | 0x6500, 0x5241, 0x572d, 0x6277, 0x0052, 0x4c45, 0x2d63, 0x6f6c, | ||
382 | 0x6f72, 0x0052, 0x4c45, 0x2d74, 0x7275, 0x6500, 0x524c, 0x452d, | ||
383 | 0x6277, 0x0075, 0x6e6b, 0x6e6f, 0x776e, 0x0018, 0x9718, 0x9f18, | ||
384 | 0xa918, 0xb218, 0xd318, 0xd318, 0xd318, 0xd318, 0xd318, 0xb918, | ||
385 | 0xc318, 0xcc00, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
386 | 0x0000, 0x0000, 0x00f8, 0xfcfc, 0xfcfc, 0x7800, 0x0000, 0x0000, | ||
387 | 0x0103, 0x070f, 0x1f3f, 0x7fff, 0xffff, 0xffff, 0xff00, 0x0004, | ||
388 | 0x0e1f, 0x0e04, 0x00fc, 0xfeff, 0xffff, 0xffff, 0xff00, 0x0000, | ||
389 | 0x8244, 0x3800, 0x0000, 0x3844, 0x9228, 0x1000, 0x0055, 0x8000, | ||
390 | 0x8000, 0x8000, 0x8055, 0xff7f, 0xff7f, 0xff7f, 0xff00, 0x0000, | ||
391 | 0x1000, 0x0000, 0x0000, 0x0010, 0x3810, 0x0000, 0x0000, 0x0038, | ||
392 | 0x3838, 0x0000, 0x0000, 0x1038, 0x7c38, 0x1000, 0x0000, 0x387c, | ||
393 | 0x7c7c, 0x3800, 0x0010, 0x387c, 0xfe7c, 0x3810, 0x0038, 0x7cfe, | ||
394 | 0xfefe, 0x7c38, 0x007c, 0xfefe, 0xfefe, 0xfe7c, 0x0000, 0x0000, | ||
395 | 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0010, | ||
396 | 0x2810, 0x0000, 0x0000, 0x1028, 0x4428, 0x1000, 0x0000, 0x3844, | ||
397 | 0x4444, 0x3800, 0x0010, 0x2844, 0x8244, 0x2810, 0x0038, 0x4482, | ||
398 | 0x8282, 0x4438, 0x007c, 0x8282, 0x8282, 0x827c, 0x00fe, 0xfefe, | ||
399 | 0xfefe, 0xfefe, 0x00fe, 0xd6aa, 0xd6aa, 0xd6fe, 0x00fe, 0x9282, | ||
400 | 0xd682, 0x92fe, 0x00fe, 0x8292, 0xaa92, 0x82fe, 0x00fe, 0xa6ca, | ||
401 | 0x92a6, 0xcafe, 0x00fe, 0xcaa6, 0x92ca, 0xa6fe, 0x00fe, 0xaaaa, | ||
402 | 0xaaaa, 0xaafe, 0x00fe, 0x82fe, 0x82fe, 0x82fe, 0x00c0, 0xe050, | ||
403 | 0x2814, 0x0a04, 0x00e0, 0xd0a8, 0x4422, 0x120c, 0x00c0, 0xb848, | ||
404 | 0x4878, 0x0402, 0x00a8, 0x5088, 0x50a8, 0x0402, 0x00fc, 0x8484, | ||
405 | 0x8084, 0xea04, 0x0030, 0x4884, 0x8448, 0x3402, 0x0032, 0x4582, | ||
406 | 0x8448, 0x3402, 0x0000, 0x0000, 0x1000, 0x0000, 0x0000, 0x0010, | ||
407 | 0x2810, 0x0000, 0x0000, 0x0038, 0x2838, 0x0000, 0x0000, 0x1028, | ||
408 | 0x4428, 0x1000, 0x0000, 0x3844, 0x4444, 0x3800, 0x0010, 0x2844, | ||
409 | 0x8244, 0x2810, 0x0038, 0x4482, 0x8282, 0x4438, 0x007c, 0x8282, | ||
410 | 0x8282, 0x827c, 0x007c, 0xfefe, 0xfefe, 0xfe7c, 0x0080, 0xc0e0, | ||
411 | 0xf0f8, 0xe010, 0x0020, 0x2020, 0xb87c, 0x7c38, 0x383f, 0x4080, | ||
412 | 0x8080, 0x8080, 0x8000, 0x3f7f, 0x7f7f, 0x7f7f, 0x7fff, 0x0000, | ||
413 | 0x0000, 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xfffc, 0x0201, | ||
414 | 0x0101, 0x0101, 0x0100, 0xfcfe, 0xfefe, 0xfefe, 0xfe01, 0x0101, | ||
415 | 0x0101, 0x0101, 0x01fe, 0xfefe, 0xfefe, 0xfefe, 0xfe80, 0x8080, | ||
416 | 0x8080, 0x8080, 0x807f, 0x7f7f, 0x7f7f, 0x7f7f, 0x7f80, 0x8080, | ||
417 | 0x8080, 0x8040, 0x3f7f, 0x7f7f, 0x7f7f, 0x7f3f, 0x0000, 0x0000, | ||
418 | 0x0000, 0x0000, 0xffff, 0xffff, 0xffff, 0xffff, 0x0001, 0x0101, | ||
419 | 0x0101, 0x0102, 0xfcfe, 0xfefe, 0xfefe, 0xfefc, 0x0000, 0x0000, | ||
420 | 0x0000, 0x0000, 0x00ff, 0xffff, 0xffff, 0xffff, 0xff00, 0x0000, | ||
421 | 0x0000, 0x0001, 0x0200, 0x0000, 0x0000, 0x0000, 0x0100, 0x0000, | ||
422 | 0x0000, 0x00ff, 0x0000, 0x0000, 0x0000, 0x0000, 0xff00, 0x0000, | ||
423 | 0x0000, 0x0080, 0x4000, 0x0000, 0x0000, 0x0000, 0x8040, 0x4040, | ||
424 | 0x4040, 0x4040, 0x4080, 0x8080, 0x8080, 0x8080, 0x8002, 0x0202, | ||
425 | 0x0202, 0x0202, 0x0201, 0x0101, 0x0101, 0x0101, 0x0102, 0x0100, | ||
426 | 0x0000, 0x0000, 0x0001, 0x0000, 0x0000, 0x0000, 0x0000, 0xff00, | ||
427 | 0x0000, 0x0000, 0x00ff, 0x0000, 0x0000, 0x0000, 0x0040, 0x8000, | ||
428 | 0x0000, 0x0000, 0x0080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, | ||
429 | 0x0000, 0x0000, 0x00cc, 0xcc33, 0x33cc, 0xcc33, 0x3300, 0x0000, | ||
430 | 0x0000, 0x0000, 0x0000, 0x0808, 0x0808, 0x0008, 0x0000, 0x1414, | ||
431 | 0x0000, 0x0000, 0x0000, 0x247e, 0x2424, 0x7e24, 0x0000, 0x081e, | ||
432 | 0x281c, 0x0a3c, 0x0800, 0x0022, 0x0408, 0x1022, 0x0000, 0x3048, | ||
433 | 0x324c, 0x443a, 0x0000, 0x0810, 0x0000, 0x0000, 0x0000, 0x0408, | ||
434 | 0x0808, 0x0804, 0x0000, 0x2010, 0x1010, 0x1020, 0x0000, 0x0022, | ||
435 | 0x1408, 0x1422, 0x0000, 0x0008, 0x083e, 0x0808, 0x0000, 0x0000, | ||
436 | 0x0000, 0x0008, 0x1000, 0x0000, 0x003e, 0x0000, 0x0000, 0x0000, | ||
437 | 0x0000, 0x0008, 0x0000, 0x0002, 0x0408, 0x1020, 0x0000, 0x3c46, | ||
438 | 0x4a52, 0x623c, 0x0000, 0x1808, 0x0808, 0x081c, 0x0000, 0x3c42, | ||
439 | 0x023c, 0x407e, 0x0000, 0x3c42, 0x1c02, 0x423c, 0x0000, 0x0c14, | ||
440 | 0x2444, 0x7e04, 0x0000, 0x7e40, 0x7c02, 0x423c, 0x0000, 0x3c40, | ||
441 | 0x7c42, 0x423c, 0x0000, 0x7e02, 0x0408, 0x1010, 0x0000, 0x3c42, | ||
442 | 0x3c42, 0x423c, 0x0000, 0x3c42, 0x423e, 0x023c, 0x0000, 0x0000, | ||
443 | 0x1000, 0x0010, 0x0000, 0x0010, 0x0000, 0x1010, 0x2000, 0x0008, | ||
444 | 0x1020, 0x1008, 0x0000, 0x0000, 0x3e00, 0x3e00, 0x0000, 0x0010, | ||
445 | 0x0804, 0x0810, 0x0000, 0x3c42, 0x0c10, 0x0010, 0x0000, 0x3c42, | ||
446 | 0x324a, 0x423c, 0x0000, 0x3c42, 0x427e, 0x4242, 0x0000, 0x7c42, | ||
447 | 0x7c42, 0x427c, 0x0000, 0x3c42, 0x4040, 0x423c, 0x0000, 0x7c42, | ||
448 | 0x4242, 0x427c, 0x0000, 0x7e40, 0x7840, 0x407e, 0x0000, 0x7e40, | ||
449 | 0x7840, 0x4040, 0x0000, 0x3c42, 0x4046, 0x423c, 0x0000, 0x4242, | ||
450 | 0x7e42, 0x4242, 0x0000, 0x1c08, 0x0808, 0x081c, 0x0000, 0x7e02, | ||
451 | 0x0202, 0x423c, 0x0000, 0x4244, 0x7844, 0x4242, 0x0000, 0x4040, | ||
452 | 0x4040, 0x407e, 0x0000, 0x4266, 0x5a42, 0x4242, 0x0000, 0x4262, | ||
453 | 0x524a, 0x4642, 0x0000, 0x3c42, 0x4242, 0x423c, 0x0000, 0x7c42, | ||
454 | 0x427c, 0x4040, 0x0000, 0x3c42, 0x4242, 0x443a, 0x0000, 0x7c42, | ||
455 | 0x427c, 0x4442, 0x0000, 0x3e40, 0x3c02, 0x423c, 0x0000, 0x7e08, | ||
456 | 0x0808, 0x0810, 0x0000, 0x4242, 0x4242, 0x443a, 0x0000, 0x4242, | ||
457 | 0x4242, 0x2418, 0x0000, 0x4242, 0x425a, 0x6642, 0x0000, 0x4242, | ||
458 | 0x3c42, 0x4242, 0x0000, 0x4242, 0x3e02, 0x423c, 0x0000, 0x7e02, | ||
459 | 0x0c30, 0x407e, 0x0000, 0x0c08, 0x0808, 0x080c, 0x0000, 0x4020, | ||
460 | 0x1008, 0x0402, 0x0000, 0x3010, 0x1010, 0x1030, 0x0000, 0x0814, | ||
461 | 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x007e, 0x0000, 0x0804, | ||
462 | 0x0000, 0x0000, 0x0000, 0x003c, 0x023e, 0x423a, 0x0000, 0x4040, | ||
463 | 0x7c42, 0x427c, 0x0000, 0x003c, 0x4240, 0x423c, 0x0000, 0x0202, | ||
464 | 0x3e42, 0x423e, 0x0000, 0x003c, 0x427e, 0x403e, 0x0000, 0x003e, | ||
465 | 0x4078, 0x4040, 0x0000, 0x003c, 0x423e, 0x023c, 0x0000, 0x4040, | ||
466 | 0x5c62, 0x4242, 0x0000, 0x0800, 0x1808, 0x0804, 0x0000, 0x0800, | ||
467 | 0x1808, 0x0848, 0x3000, 0x4042, 0x4478, 0x4442, 0x0000, 0x1010, | ||
468 | 0x1010, 0x100c, 0x0000, 0x006c, 0x5252, 0x5252, 0x0000, 0x005c, | ||
469 | 0x6242, 0x4242, 0x0000, 0x003c, 0x4242, 0x423c, 0x0000, 0x007c, | ||
470 | 0x4242, 0x7c40, 0x4000, 0x003e, 0x4242, 0x3e02, 0x0200, 0x005c, | ||
471 | 0x6240, 0x4040, 0x0000, 0x003e, 0x403c, 0x027c, 0x0000, 0x087e, | ||
472 | 0x0808, 0x0810, 0x0000, 0x0042, 0x4242, 0x443a, 0x0000, 0x0042, | ||
473 | 0x4242, 0x2418, 0x0000, 0x0052, 0x5252, 0x522e, 0x0000, 0x0042, | ||
474 | 0x2418, 0x2442, 0x0000, 0x0042, 0x423e, 0x027c, 0x0000, 0x007e, | ||
475 | 0x023c, 0x407e, 0x0000, 0x0c08, 0x1010, 0x080c, 0x0000, 0x0808, | ||
476 | 0x0808, 0x0808, 0x0000, 0x3010, 0x0808, 0x1030, 0x0000, 0x0000, | ||
477 | 0x324c, 0x0000, 0x003c, 0x4299, 0xa1a1, 0x9942, 0x3c42, | ||
478 | }; | ||
diff --git a/src/uxn_polycat_rom.c b/src/uxn_polycat_rom.c deleted file mode 100644 index 77d2032..0000000 --- a/src/uxn_polycat_rom.c +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | const u16 uxn_rom[] = { | ||
2 | 0xa00a, 0x3f80, 0x0837, 0xa005, 0xdf80, 0x0a37, 0xa00c, 0xaf80, | ||
3 | 0x0c37, 0xa001, 0x4080, 0x2237, 0xa000, 0xc880, 0x2437, 0xa001, | ||
4 | 0xae80, 0x9037, 0x8022, 0x3680, 0x013f, 0x8000, 0x3180, 0x2436, | ||
5 | 0x8001, 0x3f80, 0x0231, 0xa0f6, 0x2617, 0x8002, 0x30a0, 0x0018, | ||
6 | 0x3880, 0x2a37, 0x8000, 0x30a0, 0x0010, 0x3980, 0x2837, 0xa003, | ||
7 | 0xa780, 0x2c37, 0xa001, 0x2f17, 0x80ff, 0xa002, 0x0a15, 0x80ff, | ||
8 | 0xa002, 0x4315, 0xa005, 0x2617, 0x8001, 0x0e00, 0x8002, 0x3080, | ||
9 | 0x2a37, 0x8000, 0x30a0, 0x0008, 0x3980, 0x2837, 0xa002, 0x9780, | ||
10 | 0x2c37, 0xa081, 0x2f97, 0x1780, 0x0230, 0xa000, 0x1038, 0x802a, | ||
11 | 0x3780, 0x0030, 0xa000, 0x0839, 0x8028, 0x37a0, 0x0337, 0x802c, | ||
12 | 0x37a0, 0x812f, 0x17a0, 0x002f, 0x0ea0, 0x005e, 0x0e6c, 0x8092, | ||
13 | 0x3680, 0x0030, 0x2a80, 0x501f, 0x8094, 0x3680, 0x0230, 0x2a80, | ||
14 | 0x601f, 0x1880, 0x120e, 0x8004, 0x1001, 0x0680, 0x0411, 0x8004, | ||
15 | 0x1f80, 0x370e, 0x806d, 0x0e00, 0x0680, 0x2e12, 0x0980, 0x020d, | ||
16 | 0x026c, 0x0680, 0x0004, 0xa002, 0xb738, 0x802c, 0x3780, 0x0230, | ||
17 | 0xa000, 0x0838, 0x802a, 0x3780, 0x0030, 0xa000, 0x0839, 0x8028, | ||
18 | 0x37a0, 0x812f, 0x9717, 0x8001, 0x136c, 0x008f, 0x8034, 0x1209, | ||
19 | 0x8002, 0x0d42, 0x6c4f, 0x8000, 0x07a0, 0x0287, 0x3814, 0x8000, | ||
20 | 0x0480, 0x403f, 0xa003, 0x4738, 0x802c, 0x3780, 0x0030, 0x8028, | ||
21 | 0x3780, 0x0230, 0xa000, 0x1038, 0x802a, 0x37a0, 0x812f, 0x1780, | ||
22 | 0x0113, 0x6c00, 0xa002, 0x7faf, 0x802c, 0x3780, 0x0530, 0x8028, | ||
23 | 0x3780, 0x0730, 0x802a, 0x37a0, 0x402f, 0x176f, 0x802c, 0x3780, | ||
24 | 0x9236, 0x2680, 0x0531, 0x8028, 0x3780, 0x9436, 0x2680, 0x0731, | ||
25 | 0x802a, 0x37a0, 0x4196, 0x1680, 0x0009, 0x1880, 0x2f17, 0x6c80, | ||
26 | 0xc0e0, 0xf0f8, 0xe010, 0x0000, 0x0102, 0x0302, 0x0100, 0x0000, | ||
27 | 0x0000, 0x0000, 0x0000, 0x0008, 0x1c3e, 0x3e7f, 0x7fff, 0xff08, | ||
28 | 0x1c3e, 0x3e7f, 0x7fff, 0xfc08, 0x1c3c, 0x3e7e, 0x7eff, 0xff08, | ||
29 | 0x1c3c, 0x3e7e, 0x7eff, 0x1fff, 0xffff, 0xffff, 0x7f3f, 0x0ff7, | ||
30 | 0xefcf, 0xe7f0, 0x7c3f, 0x0fff, 0xffff, 0xffff, 0xfefc, 0xf087, | ||
31 | 0xc3c1, 0x8307, 0x1efc, 0xf0ff, 0xffff, 0xffff, 0x7f3f, 0x0ff0, | ||
32 | 0xe1c1, 0xe0f0, 0x7c3f, 0x0fff, 0xffff, 0xffff, 0xfefc, 0xf0f7, | ||
33 | 0xfbf9, 0xf307, 0x1efc, 0xf0ff, 0xffff, 0xffff, 0x7f3f, 0x0ff0, | ||
34 | 0xe7cf, 0xeff7, 0x7c3f, 0x0fff, 0xffff, 0xffff, 0xfefc, 0xf007, | ||
35 | 0x83c1, 0xc387, 0x1efc, 0xf0ff, 0xffff, 0xffff, 0x7f3f, 0x0ff0, | ||
36 | 0xe0c1, 0xe1f0, 0x7c3f, 0x0fff, 0xffff, 0xffff, 0xfefc, 0xf007, | ||
37 | 0xf3f9, 0xfbf7, 0x1efc, 0xf007, 0x0707, 0x0703, 0x0202, 0x0001, | ||
38 | 0x0707, 0x0703, 0x0000, 0x00e0, 0xf0f0, 0xe0e0, 0x8080, 0x00c0, | ||
39 | 0xf2f9, 0xf9fe, 0xf8b0, 0x00e0, 0xf0f0, 0xe0e0, 0x8080, 0x00c0, | ||
40 | 0xf2f9, 0xf9fe, 0xf8b0, 0x00e0, 0xf0f0, 0xe0e0, 0x8080, 0x00c0, | ||
41 | 0xf2fa, 0xf9fe, 0xf8b0, 0x00e0, 0xf0f0, 0xe0e0, 0x8080, 0x00c0, | ||
42 | 0xf1fa, 0xf9fe, 0xf8b0, 0x0007, 0x0707, 0x070f, 0x0810, 0x0003, | ||
43 | 0x0707, 0x070f, 0x0000, 0x00e0, 0xe0e0, 0xe0e0, 0x8080, 0x00f2, | ||
44 | 0xf9f9, 0xfeb8, 0x8484, 0x00bf, 0x005c, 0x0202, 0x0202, 0x0cef, | ||
45 | 0x106f, 0x9080, 0x8080, 0x74ff, 0x00fe, 0x0101, 0x0001, 0x16fd, | ||
46 | 0x003c, 0x4040, 0x4040, 0x2840, | ||
47 | }; | ||
diff --git a/src/uxn_screen_rom.c b/src/uxn_screen_rom.c deleted file mode 100644 index 4e00d83..0000000 --- a/src/uxn_screen_rom.c +++ /dev/null | |||
@@ -1,41 +0,0 @@ | |||
1 | // NOTE: MIPS is a MSB system, make sure the bytes are in the right order. | ||
2 | const u16 uxn_rom[] = { | ||
3 | 0xa001, 0x4780, 0x2037, 0xa0f0, 0x7f80, 0x0837, 0xa0f0, 0xe080, | ||
4 | 0x0a37, 0xa0f0, 0xc080, 0x0c37, 0xa000, 0xf080, 0x2237, 0xa000, | ||
5 | 0xa080, 0x2437, 0x8022, 0x3680, 0x013f, 0x8002, 0x3180, 0x2436, | ||
6 | 0x8001, 0x3f80, 0x0431, 0xa001, 0x6c2e, 0xa001, 0xf52e, 0xa002, | ||
7 | 0x2f2e, 0xa000, 0x2617, 0x00a0, 0x0126, 0x1780, 0x0030, 0x2126, | ||
8 | 0x8000, 0x3180, 0x0230, 0xa000, 0x5038, 0x8028, 0x3780, 0x0430, | ||
9 | 0xa000, 0x4839, 0x802a, 0x37a0, 0x02a3, 0x2e00, 0x8002, 0x30a0, | ||
10 | 0x0060, 0x3980, 0x2837, 0x8004, 0x30a0, 0x0048, 0x3980, 0x2a37, | ||
11 | 0xa002, 0xd380, 0x2c37, 0xa0f6, 0x2617, 0xa001, 0x2f17, 0x8002, | ||
12 | 0x30a0, 0x0070, 0x3980, 0x2837, 0x8004, 0x30a0, 0x0038, 0x3980, | ||
13 | 0x2a37, 0xa002, 0xd380, 0x2c37, 0xa0f5, 0x2617, 0xa001, 0x2f17, | ||
14 | 0xa000, 0x2617, 0xa002, 0xc380, 0x2c37, 0xa000, 0x0006, 0x800f, | ||
15 | 0x1c80, 0x401f, 0x8001, 0x1f80, 0x0004, 0x8002, 0x30a0, 0x0060, | ||
16 | 0x3938, 0x8028, 0x3706, 0x80f0, 0x1c80, 0x011f, 0x8000, 0x0480, | ||
17 | 0x0430, 0xa000, 0x3839, 0x3880, 0x2a37, 0x0680, 0x2f17, 0x0189, | ||
18 | 0x80ca, 0x0d22, 0x6ca0, 0x1000, 0x8f06, 0x8002, 0x1f80, 0x0004, | ||
19 | 0x8040, 0x3f80, 0x0430, 0xa000, 0x3839, 0x382f, 0x0680, 0x031c, | ||
20 | 0x8000, 0x0480, 0x403f, 0xa000, 0x4038, 0x8002, 0x30a0, 0x0010, | ||
21 | 0x3938, 0x6f4f, 0xa000, 0x410e, 0x018a, 0x80cb, 0x0d22, 0x6ca0, | ||
22 | 0x1000, 0x8f06, 0x8002, 0x1f80, 0x0004, 0x8040, 0x3f80, 0x0430, | ||
23 | 0xa000, 0x0838, 0x382f, 0x0680, 0x031c, 0x8000, 0x0480, 0x403f, | ||
24 | 0xa000, 0x4038, 0x8002, 0x30a0, 0x0010, 0x3938, 0x6f4f, 0xa080, | ||
25 | 0x070e, 0x018a, 0x80cb, 0x0d22, 0x6c18, 0x0fa0, 0x02c3, 0x802c, | ||
26 | 0x3780, 0x2a37, 0x8028, 0x37a0, 0x0126, 0x174f, 0x802f, 0x97a0, | ||
27 | 0x0226, 0x1704, 0x8010, 0x1804, 0x9780, 0x28b6, 0xa000, 0x0839, | ||
28 | 0x0537, 0xa001, 0x2617, 0x0480, 0x1018, 0x0497, 0x0480, 0x1018, | ||
29 | 0x0417, 0x6c04, 0x8000, 0x0e06, 0x8004, 0x1f80, 0x030e, 0x800f, | ||
30 | 0x1c80, 0x0004, 0x8030, 0x3fa0, 0x02d3, 0x3880, 0x2c37, 0xa001, | ||
31 | 0x2f17, 0x6c0f, 0x3867, 0x5fdf, 0xbfbf, 0xbf00, 0x0718, 0x2023, | ||
32 | 0x4448, 0x4800, 0x7c82, 0x8282, 0x8282, 0x7c00, 0x3010, 0x1010, | ||
33 | 0x1010, 0x1000, 0x7c82, 0x027c, 0x8080, 0xfe00, 0x7c82, 0x021c, | ||
34 | 0x0282, 0x7c00, 0x0c14, 0x2444, 0x84fe, 0x0400, 0xfe80, 0x807c, | ||
35 | 0x0282, 0x7c00, 0x7c82, 0x80fc, 0x8282, 0x7c00, 0x7c82, 0x021e, | ||
36 | 0x0202, 0x0200, 0x7c82, 0x827c, 0x8282, 0x7c00, 0x7c82, 0x827e, | ||
37 | 0x0282, 0x7c00, 0x7c82, 0x027e, 0x8282, 0x7e00, 0xfc82, 0x82fc, | ||
38 | 0x8282, 0xfc00, 0x7c82, 0x8080, 0x8082, 0x7c00, 0xfc82, 0x8282, | ||
39 | 0x8282, 0xfc00, 0x7c82, 0x80f0, 0x8082, 0x7c00, 0x7c82, 0x80f0, | ||
40 | 0x8080, 0x8080, | ||
41 | }; | ||
diff --git a/tools/bin2carr/Makefile b/tools/bin2carr/Makefile new file mode 100644 index 0000000..a9ff816 --- /dev/null +++ b/tools/bin2carr/Makefile | |||
@@ -0,0 +1,47 @@ | |||
1 | .POSIX: | ||
2 | .SUFFIXES: | ||
3 | |||
4 | # Source code location and files to watch for changes. | ||
5 | SRC_DIR := src | ||
6 | SRC_MAIN := $(SRC_DIR)/main.c | ||
7 | WATCH_SRC := $(wildcard $(SRC_DIR)/*.c) | ||
8 | WATCH_SRC += $(wildcard $(SRC_DIR)/*.h) | ||
9 | |||
10 | # Output library names and executables. | ||
11 | BIN_NAME := bin2carr | ||
12 | BUILD_DIR := build | ||
13 | BIN := $(BUILD_DIR)/$(BIN_NAME) | ||
14 | |||
15 | # Compiler and linker configuration. | ||
16 | CC := gcc | ||
17 | CFLAGS := -Wall -Wextra -pedantic -std=c99 -DBIN_NAME=\"$(BIN_NAME)\" | ||
18 | LDFLAGS := -lm | ||
19 | LDLIBS := | ||
20 | RELEASE_CFLAGS := -DNDEBUG -O2 | ||
21 | DEBUG_CFLAGS := -DDEBUG -g | ||
22 | |||
23 | .PHONY: static clean run | ||
24 | |||
25 | # Setup debug/release builds. | ||
26 | # make clean && make <target> DEBUG=0 | ||
27 | # make clean && make <target> DEBUG=1 | ||
28 | DEBUG ?= 0 | ||
29 | ifeq ($(DEBUG), 1) | ||
30 | CFLAGS += $(DEBUG_CFLAGS) | ||
31 | else | ||
32 | CFLAGS += $(RELEASE_CFLAGS) | ||
33 | endif | ||
34 | |||
35 | static: $(BUILD_DIR) $(BIN) | ||
36 | |||
37 | $(BIN): $(SRC_MAIN) $(WATCH_SRC) | ||
38 | $(CC) $(CFLAGS) $(LDFLAGS) -o $(BIN) $(SRC_MAIN) $(LDLIBS) | ||
39 | |||
40 | $(BUILD_DIR): | ||
41 | mkdir -p $(BUILD_DIR) | ||
42 | |||
43 | run: $(BIN) | ||
44 | exec $(BIN) | ||
45 | |||
46 | clean: | ||
47 | rm -r $(BUILD_DIR) | ||
diff --git a/tools/bin2carr/src/main.c b/tools/bin2carr/src/main.c new file mode 100644 index 0000000..699db61 --- /dev/null +++ b/tools/bin2carr/src/main.c | |||
@@ -0,0 +1,232 @@ | |||
1 | #include <getopt.h> | ||
2 | #include <stdio.h> | ||
3 | #include <stdlib.h> | ||
4 | #include <string.h> | ||
5 | |||
6 | #include "shorthand.h" | ||
7 | |||
8 | typedef enum { | ||
9 | ELEM_U8, ELEM_S8, ELEM_U16, ELEM_S16, | ||
10 | ELEM_U32, ELEM_S32, ELEM_U64, ELEM_S64, | ||
11 | } ElemSize; | ||
12 | |||
13 | void | ||
14 | write_array(FILE *file_in, FILE *file_out, char *arr_name, ElemSize elem_size) { | ||
15 | char *arr_type; | ||
16 | size_t n_elem = 0; | ||
17 | switch (elem_size) { | ||
18 | case ELEM_U8: | ||
19 | arr_type = "u8"; | ||
20 | n_elem = 8; | ||
21 | break; | ||
22 | case ELEM_S8: | ||
23 | arr_type = "s8"; | ||
24 | n_elem = 8; | ||
25 | break; | ||
26 | case ELEM_U16: | ||
27 | arr_type = "u16"; | ||
28 | n_elem = 8; | ||
29 | break; | ||
30 | case ELEM_S16: | ||
31 | arr_type = "s16"; | ||
32 | n_elem = 8; | ||
33 | break; | ||
34 | case ELEM_U32: | ||
35 | arr_type = "u32"; | ||
36 | n_elem = 4; | ||
37 | break; | ||
38 | case ELEM_S32: | ||
39 | arr_type = "s32"; | ||
40 | n_elem = 4; | ||
41 | break; | ||
42 | case ELEM_U64: | ||
43 | arr_type = "u64"; | ||
44 | n_elem = 4; | ||
45 | break; | ||
46 | case ELEM_S64: | ||
47 | arr_type = "s64"; | ||
48 | n_elem = 4; | ||
49 | break; | ||
50 | default: | ||
51 | arr_type = "u8"; | ||
52 | n_elem = 8; | ||
53 | break; | ||
54 | } | ||
55 | fprintf(file_out, "const %s %s[] = {\n", arr_type, arr_name); | ||
56 | size_t n_read = 0; | ||
57 | size_t counter = 0; | ||
58 | do { | ||
59 | if (counter == 0) { | ||
60 | fprintf(file_out, " "); | ||
61 | } | ||
62 | switch (elem_size) { | ||
63 | case ELEM_U8: | ||
64 | case ELEM_S8: { | ||
65 | u8 elem; | ||
66 | n_read = fread(&elem, sizeof(u8), 1, file_in); | ||
67 | fprintf(file_out, "0x%02x,", elem); | ||
68 | break; | ||
69 | } | ||
70 | case ELEM_U16: | ||
71 | case ELEM_S16: { | ||
72 | u16 elem; | ||
73 | n_read = fread(&elem, sizeof(u16), 1, file_in); | ||
74 | fprintf(file_out, "0x%04x,", elem); | ||
75 | break; | ||
76 | } | ||
77 | case ELEM_U32: | ||
78 | case ELEM_S32: { | ||
79 | u32 elem; | ||
80 | n_read = fread(&elem, sizeof(u32), 1, file_in); | ||
81 | fprintf(file_out, "0x%08x,", elem); | ||
82 | break; | ||
83 | } | ||
84 | case ELEM_U64: | ||
85 | case ELEM_S64: { | ||
86 | u64 elem; | ||
87 | n_read = fread(&elem, sizeof(u64), 1, file_in); | ||
88 | fprintf(file_out, "0x%016lx,", elem); | ||
89 | break; | ||
90 | } | ||
91 | } | ||
92 | |||
93 | if (counter == n_elem - 1) { | ||
94 | fprintf(file_out, "\n"); | ||
95 | counter = 0; | ||
96 | } else { | ||
97 | fprintf(file_out, " "); | ||
98 | counter++; | ||
99 | } | ||
100 | } while(n_read != 0); | ||
101 | if (counter != 0) { | ||
102 | fseek(file_out, -1, SEEK_CUR); | ||
103 | fprintf(file_out, "\n"); | ||
104 | } | ||
105 | fprintf(file_out, "};\n"); | ||
106 | } | ||
107 | |||
108 | void | ||
109 | print_usage(void) { | ||
110 | printf("Usage: %s [options] <filename>\n", BIN_NAME); | ||
111 | printf("\n"); | ||
112 | printf("\t-e <u16>\tSize of array elements.\n"); | ||
113 | printf("\t-n <arr_name>\tName of the output array.\n"); | ||
114 | printf("\t-o <out_file.c>\tPath to the output file. If blank, stdout will be used.\n"); | ||
115 | printf("\n"); | ||
116 | } | ||
117 | |||
118 | int | ||
119 | main(int argc, char *argv[]) { | ||
120 | // Initialize default parameters. | ||
121 | char *in_file_path = NULL; | ||
122 | char *out_file_path = NULL; | ||
123 | char arr_name[256] = {0}; | ||
124 | ElemSize elem_size = ELEM_U8; | ||
125 | |||
126 | // Process options. | ||
127 | int option; | ||
128 | while ((option = getopt(argc, argv, "e:n:o:")) != -1) { | ||
129 | switch (option) { | ||
130 | case 'e': { | ||
131 | // Element size. | ||
132 | char *size = optarg; | ||
133 | if (strcmp(size, "u8") == 0) { | ||
134 | elem_size = ELEM_U8; | ||
135 | } else if (strcmp(size, "s8") == 0) { | ||
136 | elem_size = ELEM_S8; | ||
137 | } else if (strcmp(size, "u16") == 0) { | ||
138 | elem_size = ELEM_U16; | ||
139 | } else if (strcmp(size, "s16") == 0) { | ||
140 | elem_size = ELEM_S16; | ||
141 | } else if (strcmp(size, "u32") == 0) { | ||
142 | elem_size = ELEM_U32; | ||
143 | } else if (strcmp(size, "s32") == 0) { | ||
144 | elem_size = ELEM_S32; | ||
145 | } else if (strcmp(size, "u64") == 0) { | ||
146 | elem_size = ELEM_U64; | ||
147 | } else if (strcmp(size, "s64") == 0) { | ||
148 | elem_size = ELEM_S64; | ||
149 | } | ||
150 | } break; | ||
151 | case 'n': { | ||
152 | // Array name. | ||
153 | char *ptr = optarg; | ||
154 | size_t k = 0; | ||
155 | while(*ptr) { | ||
156 | switch (*ptr) { | ||
157 | case '.': | ||
158 | case '/': | ||
159 | case '-': | ||
160 | case '\\': | ||
161 | ptr++; | ||
162 | break; | ||
163 | default: { | ||
164 | arr_name[k++] = *ptr++; | ||
165 | } break; | ||
166 | } | ||
167 | } | ||
168 | } break; | ||
169 | case 'o': { | ||
170 | // Output file. | ||
171 | out_file_path = optarg; | ||
172 | } break; | ||
173 | default: { | ||
174 | print_usage(); | ||
175 | return EXIT_FAILURE; | ||
176 | } break; | ||
177 | } | ||
178 | } | ||
179 | |||
180 | // Get the path to the file to be exported. | ||
181 | if (optind != argc - 1) { | ||
182 | fprintf(stderr, "%s: No input file given.\n", BIN_NAME); | ||
183 | print_usage(); | ||
184 | return EXIT_FAILURE; | ||
185 | } | ||
186 | in_file_path = argv[optind]; | ||
187 | |||
188 | // Check if there is a default array name. | ||
189 | if (arr_name[0] == '\0') { | ||
190 | char *ptr = in_file_path; | ||
191 | size_t k = 0; | ||
192 | while(*ptr) { | ||
193 | switch (*ptr) { | ||
194 | case '.': | ||
195 | case '/': | ||
196 | case '-': | ||
197 | case '\\': | ||
198 | ptr++; | ||
199 | break; | ||
200 | default: { | ||
201 | arr_name[k++] = *ptr++; | ||
202 | } break; | ||
203 | } | ||
204 | } | ||
205 | } | ||
206 | |||
207 | // Try to open input file. | ||
208 | FILE *file_in = fopen(in_file_path, "r"); | ||
209 | if (file_in == NULL) { | ||
210 | fprintf(stderr, "%s: can't open input file: %s\n", BIN_NAME, | ||
211 | in_file_path); | ||
212 | return EXIT_FAILURE; | ||
213 | } | ||
214 | |||
215 | // Write output to file. | ||
216 | if (out_file_path == NULL) { | ||
217 | write_array(file_in, stdout, arr_name, elem_size); | ||
218 | } else { | ||
219 | FILE *file_out = fopen(out_file_path, "w"); | ||
220 | if (!file_out) { | ||
221 | fprintf(stderr, "%s: can't open output file: %s\n", BIN_NAME, out_file_path); | ||
222 | fclose(file_in); | ||
223 | return EXIT_FAILURE; | ||
224 | } | ||
225 | write_array(file_in, file_out, arr_name, elem_size); | ||
226 | fclose(file_out); | ||
227 | } | ||
228 | |||
229 | // Cleanup. | ||
230 | fclose(file_in); | ||
231 | return EXIT_SUCCESS; | ||
232 | } | ||
diff --git a/tools/bin2carr/src/shorthand.h b/tools/bin2carr/src/shorthand.h new file mode 100644 index 0000000..9c2e2f0 --- /dev/null +++ b/tools/bin2carr/src/shorthand.h | |||
@@ -0,0 +1,35 @@ | |||
1 | #ifndef MIC_SHORTHAND_H | ||
2 | #define MIC_SHORTHAND_H | ||
3 | |||
4 | #include <assert.h> | ||
5 | #include <stdbool.h> | ||
6 | #include <stddef.h> | ||
7 | #include <stdint.h> | ||
8 | |||
9 | // | ||
10 | // This simple header just typedefs the basic C define types to a shorter name, | ||
11 | // loads the quality of life bool macro for _Bool and defines shorthand macros | ||
12 | // for byte sizes. We need that the targeted architecture uses the floating | ||
13 | // point representation as described on the IEEE-754 standard. | ||
14 | // | ||
15 | |||
16 | _Static_assert(sizeof(double) == 8, "no support for IEEE-754"); | ||
17 | _Static_assert(sizeof(float) == 4, "no support for IEEE-754"); | ||
18 | |||
19 | typedef uint8_t u8; | ||
20 | typedef uint16_t u16; | ||
21 | typedef uint32_t u32; | ||
22 | typedef uint64_t u64; | ||
23 | typedef int8_t s8; | ||
24 | typedef int16_t s16; | ||
25 | typedef int32_t s32; | ||
26 | typedef int64_t s64; | ||
27 | typedef float f32; | ||
28 | typedef double f64; | ||
29 | |||
30 | #define KB(N) ((u64)(N) * 1024) | ||
31 | #define MB(N) ((u64)KB(N) * 1024) | ||
32 | #define GB(N) ((u64)MB(N) * 1024) | ||
33 | #define TB(N) ((u64)GB(N) * 1024) | ||
34 | |||
35 | #endif // MIC_SHORTHAND_H | ||