aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2022-10-20 10:10:27 +0200
committerBad Diode <bd@badd10de.dev>2022-10-20 10:10:27 +0200
commit42dcdb3a98a957974225b5f699c02891db176c55 (patch)
treead5d35e9c7d0a167cea19cb8faa7a90ca29b20ab
parente577c73974aefb0d78ff8d731e002c47d9804326 (diff)
downloaduxn64-42dcdb3a98a957974225b5f699c02891db176c55.tar.gz
uxn64-42dcdb3a98a957974225b5f699c02891db176c55.zip
Add custom uxn rom selection via Makefile
-rw-r--r--Makefile20
-rw-r--r--src/main.c2
-rw-r--r--src/uxn_controller_rom.c56
-rw-r--r--src/uxn_dvd_rom.c19
-rw-r--r--src/uxn_noodle_rom.c478
-rw-r--r--src/uxn_polycat_rom.c47
-rw-r--r--src/uxn_screen_rom.c41
-rw-r--r--tools/bin2carr/Makefile47
-rw-r--r--tools/bin2carr/src/main.c232
-rw-r--r--tools/bin2carr/src/shorthand.h35
10 files changed, 332 insertions, 645 deletions
diff --git a/Makefile b/Makefile
index 2016e10..f69dd8d 100644
--- a/Makefile
+++ b/Makefile
@@ -16,6 +16,8 @@ BUILD_DIR := build
16SRC_MAIN := $(SRC_DIR)/main.c $(SRC_DIR)/entry.s 16SRC_MAIN := $(SRC_DIR)/main.c $(SRC_DIR)/entry.s
17SRC_LN := $(SRC_DIR)/linker.ld 17SRC_LN := $(SRC_DIR)/linker.ld
18SRC_OBJ := 18SRC_OBJ :=
19UXN_ROM_C := $(BUILD_DIR)/rom.c
20UXN_ROM := $(SRC_DIR)/uxn/bin/screen.rom
19OBJECTS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRC_OBJ)) 21OBJECTS := $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRC_OBJ))
20WATCH_SRC := $(shell find $(SRC_DIR) \ 22WATCH_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")
25INC_DIRS := $(shell find $(SRC_DIR) -type d) 27INC_DIRS := $(shell find $(SRC_DIR) -type d)
28INC_DIRS += $(BUILD_DIR)
26INC_DIRS += $(LIBULTRA_INC) 29INC_DIRS += $(LIBULTRA_INC)
27INC_FLAGS := $(addprefix -I,$(INC_DIRS)) 30INC_FLAGS := $(addprefix -I,$(INC_DIRS))
28 31
@@ -31,6 +34,9 @@ TARGET := uxn64
31ELF := $(BUILD_DIR)/$(TARGET).elf 34ELF := $(BUILD_DIR)/$(TARGET).elf
32BIN := $(BUILD_DIR)/$(TARGET).n64 35BIN := $(BUILD_DIR)/$(TARGET).n64
33 36
37# Target tools.
38TOOLS_BIN2CARR := tools/bin2carr/build/bin2carr
39
34# Main compilation tool paths. 40# Main compilation tool paths.
35CC := $(SDK_BIN)/mips32-elf-gcc 41CC := $(SDK_BIN)/mips32-elf-gcc
36LD := $(SDK_BIN)/mips32-elf-ld 42LD := $(SDK_BIN)/mips32-elf-ld
@@ -52,8 +58,6 @@ RELEASE_CFLAGS := -O2 -DNDEBUG -D_FINALROM
52DEBUG_CFLAGS := -O0 -DDEBUG -D_FINALROM 58DEBUG_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
57DEBUG ?= 0 61DEBUG ?= 0
58ifeq ($(DEBUG), 1) 62ifeq ($(DEBUG), 1)
59 CFLAGS += $(DEBUG_CFLAGS) 63 CFLAGS += $(DEBUG_CFLAGS)
@@ -63,13 +67,23 @@ endif
63 67
64main: $(BIN) 68main: $(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.
74run: $(BIN) 88run: $(BIN)
75 $(EMULATOR) $(BIN) 89 $(EMULATOR) $(BIN)
diff --git a/src/main.c b/src/main.c
index c3a66b2..9a75498 100644
--- a/src/main.c
+++ b/src/main.c
@@ -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 @@
1const 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 @@
1const 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 @@
1const 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 @@
1const 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.
2const 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.
5SRC_DIR := src
6SRC_MAIN := $(SRC_DIR)/main.c
7WATCH_SRC := $(wildcard $(SRC_DIR)/*.c)
8WATCH_SRC += $(wildcard $(SRC_DIR)/*.h)
9
10# Output library names and executables.
11BIN_NAME := bin2carr
12BUILD_DIR := build
13BIN := $(BUILD_DIR)/$(BIN_NAME)
14
15# Compiler and linker configuration.
16CC := gcc
17CFLAGS := -Wall -Wextra -pedantic -std=c99 -DBIN_NAME=\"$(BIN_NAME)\"
18LDFLAGS := -lm
19LDLIBS :=
20RELEASE_CFLAGS := -DNDEBUG -O2
21DEBUG_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
28DEBUG ?= 0
29ifeq ($(DEBUG), 1)
30 CFLAGS += $(DEBUG_CFLAGS)
31else
32 CFLAGS += $(RELEASE_CFLAGS)
33endif
34
35static: $(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
43run: $(BIN)
44 exec $(BIN)
45
46clean:
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
8typedef enum {
9 ELEM_U8, ELEM_S8, ELEM_U16, ELEM_S16,
10 ELEM_U32, ELEM_S32, ELEM_U64, ELEM_S64,
11} ElemSize;
12
13void
14write_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
108void
109print_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
118int
119main(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
19typedef uint8_t u8;
20typedef uint16_t u16;
21typedef uint32_t u32;
22typedef uint64_t u64;
23typedef int8_t s8;
24typedef int16_t s16;
25typedef int32_t s32;
26typedef int64_t s64;
27typedef float f32;
28typedef 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