summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2012-08-12 04:16:25 (GMT)
committerH. Peter Anvin <hpa@linux.intel.com>2012-08-12 04:16:25 (GMT)
commitad4333d9763f709227cbbd20ccd995cac4a1986e (patch)
tree47e07c4214b968eb38aebcce08ca684ccef69d7e
parent4bff55d3ba6bd40d402469bc1d476c20f8e6181b (diff)
downloadabc80sim-ad4333d9763f709227cbbd20ccd995cac4a1986e.zip
abc80sim-ad4333d9763f709227cbbd20ccd995cac4a1986e.tar.gz
abc80sim-ad4333d9763f709227cbbd20ccd995cac4a1986e.tar.bz2
abc80sim-ad4333d9763f709227cbbd20ccd995cac4a1986e.tar.xz
Handle the I/O side of 80 character support
80 character support in the VDU; still need to swap out the ROM
-rw-r--r--Makefile4
-rw-r--r--abc80_mem.c10
-rw-r--r--abc80font.c5636
-rw-r--r--abcfont.c258
-rw-r--r--io.c11
-rw-r--r--screen.h8
-rw-r--r--screen3.c568
-rw-r--r--sdlscrn.c148
8 files changed, 371 insertions, 6272 deletions
diff --git a/Makefile b/Makefile
index 8ced958..c29acce 100644
--- a/Makefile
+++ b/Makefile
@@ -34,8 +34,8 @@ CC = gcc
CFLAGS = -W -Wall -g -O2 $(DEFINES) -I/usr/X11R6/include -I/usr/include/SDL -DABCDIR=\"$(ABCDIR)\"
LDFLAGS = -g -L/usr/X11R6/lib
-OBJS = abc80.o clock.o sdlscrn.o z80.o abc80_mem.o io.o abc80font.o disk.o z80dis.o
-SRCS = abc80.c clock.c sdlscrn.c z80.c abc80_mem.c io.c abc80font.c disk.c z80dis.c
+OBJS = abc80.o clock.o sdlscrn.o z80.o abc80_mem.o io.o abcfont.o disk.o z80dis.o
+SRCS = abc80.c clock.c sdlscrn.c z80.c abc80_mem.c io.c abcfont.c disk.c z80dis.c
HDRS = clock.h screen.h z80.h patchlevel.h
all: abc80
diff --git a/abc80_mem.c b/abc80_mem.c
index d2a29a5..3367467 100644
--- a/abc80_mem.c
+++ b/abc80_mem.c
@@ -8,7 +8,8 @@
#define ROM_START (0x0000)
#define ROM_END (0x4000)
-#define VIDEO_START (0x7c00)
+#define VIDEO_START (0x7400) /* GeJo2 80 tecken */
+#define VIDEO_MASK (0xf400)
#define VIDEO_LEN (0x0400)
#define RAM_START (0x8000)
@@ -56,16 +57,15 @@ uchar mem_read(ushort address)
void mem_write(ushort address, uchar value)
{
- if((address >= VIDEO_START) && (address < RAM_START))
- {
+ if ((address & VIDEO_MASK) == VIDEO_START) {
/*
* Speed hack -- check to see if the character has actually changed.
* Only call the video emulator if it has.
*/
- if(memory[address] != value)
+ if (memory[address] != value)
{
memory[address] = value;
- screen_write(address - VIDEO_START, value);
+ screen_write(address, value);
}
} else if (WRITEABLE(address)) {
diff --git a/abc80font.c b/abc80font.c
deleted file mode 100644
index 8b08683..0000000
--- a/abc80font.c
+++ /dev/null
@@ -1,5636 +0,0 @@
-#include <inttypes.h>
-uint32_t abc_font[256][20] =
-{
- { /* 0 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 1 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 2 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 3 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 4 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 5 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 6 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 7 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 8 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 9 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 10 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 11 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 12 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 13 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 14 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 15 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 16 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 17 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 18 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 19 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 20 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 21 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 22 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 23 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 24 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 25 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 26 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 27 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 28 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 29 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 30 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 31 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 32 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 33 */
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 34 */
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 35 */
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0x7fff,
- 0x7fff,
- 0xe38,
- 0xe38,
- 0x7fff,
- 0x7fff,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 36 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0xe38,
- 0xe38,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 37 */
- 0x7e00,
- 0x7e00,
- 0x7e07,
- 0x7e07,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x703f,
- 0x703f,
- 0x3f,
- 0x3f,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 38 */
- 0x1c0,
- 0x1c0,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xfc0,
- 0xfc0,
- 0x71c7,
- 0x71c7,
- 0x7038,
- 0x7038,
- 0xfc7,
- 0xfc7,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 39 */
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 40 */
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0x1c0,
- 0x1c0,
- 0x38,
- 0x38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 41 */
- 0xe00,
- 0xe00,
- 0x1c0,
- 0x1c0,
- 0x38,
- 0x38,
- 0x38,
- 0x38,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 42 */
- 0x1c0,
- 0x1c0,
- 0x71c7,
- 0x71c7,
- 0xff8,
- 0xff8,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x71c7,
- 0x71c7,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 43 */
- 0x0,
- 0x0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x7fff,
- 0x7fff,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 44 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 45 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 46 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xfc0,
- 0xfc0,
- 0xfc0,
- 0xfc0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 47 */
- 0x0,
- 0x0,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 48 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x71c7,
- 0x71c7,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 49 */
- 0x1c0,
- 0x1c0,
- 0xfc0,
- 0xfc0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 50 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7,
- 0x7,
- 0x1f8,
- 0x1f8,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 51 */
- 0x7fff,
- 0x7fff,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x1f8,
- 0x1f8,
- 0x7,
- 0x7,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 52 */
- 0x38,
- 0x38,
- 0x1f8,
- 0x1f8,
- 0xe38,
- 0xe38,
- 0x7038,
- 0x7038,
- 0x7fff,
- 0x7fff,
- 0x38,
- 0x38,
- 0x38,
- 0x38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 53 */
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7,
- 0x7,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 54 */
- 0x1ff,
- 0x1ff,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 55 */
- 0x7fff,
- 0x7fff,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 56 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 57 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x7fc0,
- 0x7fc0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 58 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 59 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 60 */
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0xe00,
- 0xe00,
- 0x1c0,
- 0x1c0,
- 0x38,
- 0x38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 61 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 62 */
- 0x7000,
- 0x7000,
- 0xe00,
- 0xe00,
- 0x1c0,
- 0x1c0,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 63 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 64 */
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 65 */
- 0x1c0,
- 0x1c0,
- 0xe38,
- 0xe38,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 66 */
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 67 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 68 */
- 0x7ff8,
- 0x7ff8,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0x7ff8,
- 0x7ff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 69 */
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 70 */
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 71 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x703f,
- 0x703f,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 72 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 73 */
- 0xff8,
- 0xff8,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 74 */
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 75 */
- 0x7007,
- 0x7007,
- 0x7038,
- 0x7038,
- 0x71c0,
- 0x71c0,
- 0x7e00,
- 0x7e00,
- 0x71c0,
- 0x71c0,
- 0x7038,
- 0x7038,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 76 */
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 77 */
- 0x7007,
- 0x7007,
- 0x7e3f,
- 0x7e3f,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 78 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7e07,
- 0x7e07,
- 0x71c7,
- 0x71c7,
- 0x703f,
- 0x703f,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 79 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 80 */
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 81 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x71c7,
- 0x71c7,
- 0x7038,
- 0x7038,
- 0xfc7,
- 0xfc7,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 82 */
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x71c0,
- 0x71c0,
- 0x7038,
- 0x7038,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 83 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7000,
- 0x7000,
- 0xff8,
- 0xff8,
- 0x7,
- 0x7,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 84 */
- 0x7fff,
- 0x7fff,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 85 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 86 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 87 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 88 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0xe38,
- 0xe38,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 89 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 90 */
- 0x7fff,
- 0x7fff,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 91 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 92 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 93 */
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 94 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 95 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 96 */
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 97 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7,
- 0x7,
- 0xfff,
- 0xfff,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 98 */
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 99 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xfff,
- 0xfff,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 100 */
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0xfff,
- 0xfff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 101 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 102 */
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 103 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x7,
- 0x7,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- },
- { /* 104 */
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 105 */
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0xfc0,
- 0xfc0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 106 */
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0xfc0,
- 0xfc0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- },
- { /* 107 */
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7038,
- 0x7038,
- 0x71c0,
- 0x71c0,
- 0x7e00,
- 0x7e00,
- 0x71c0,
- 0x71c0,
- 0x7038,
- 0x7038,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 108 */
- 0xfc0,
- 0xfc0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 109 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7e38,
- 0x7e38,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 110 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 111 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 112 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- },
- { /* 113 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xfff,
- 0xfff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x0,
- 0x0,
- },
- { /* 114 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xe3f,
- 0xe3f,
- 0xfc0,
- 0xfc0,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0xe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 115 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0xfff,
- 0xfff,
- 0x7000,
- 0x7000,
- 0xff8,
- 0xff8,
- 0x7,
- 0x7,
- 0x7ff8,
- 0x7ff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 116 */
- 0x0,
- 0x0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x38,
- 0x38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 117 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 118 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 119 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x71c7,
- 0x71c7,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 120 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0xe38,
- 0xe38,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 121 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x7,
- 0x7,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- },
- { /* 122 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7fff,
- 0x7fff,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 123 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7,
- 0x7,
- 0xfff,
- 0xfff,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 124 */
- 0x0,
- 0x0,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 125 */
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7,
- 0x7,
- 0xfff,
- 0xfff,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 126 */
- 0x0,
- 0x0,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 127 */
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 0 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 1 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 2 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 3 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 4 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 5 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 6 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 7 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 8 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 9 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 10 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 11 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 12 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 13 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 14 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 15 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 16 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 17 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 18 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 19 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 20 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 21 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 22 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 23 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 24 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 25 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 26 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 27 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 28 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 29 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 30 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 31 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 32 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 33 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 34 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 35 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 36 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 37 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 38 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 39 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 40 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 41 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 42 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 43 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 44 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 45 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 46 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 47 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 48 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 49 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 50 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 51 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 52 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 53 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 54 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 55 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 56 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 57 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 58 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 59 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 60 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 61 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 62 */
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 63 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- },
- { /* 64 */
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 65 */
- 0x1c0,
- 0x1c0,
- 0xe38,
- 0xe38,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 66 */
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 67 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 68 */
- 0x7ff8,
- 0x7ff8,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0xe07,
- 0x7ff8,
- 0x7ff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 69 */
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 70 */
- 0x7fff,
- 0x7fff,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 71 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x703f,
- 0x703f,
- 0x7007,
- 0x7007,
- 0xfff,
- 0xfff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 72 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 73 */
- 0xff8,
- 0xff8,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 74 */
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 75 */
- 0x7007,
- 0x7007,
- 0x7038,
- 0x7038,
- 0x71c0,
- 0x71c0,
- 0x7e00,
- 0x7e00,
- 0x71c0,
- 0x71c0,
- 0x7038,
- 0x7038,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 76 */
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 77 */
- 0x7007,
- 0x7007,
- 0x7e3f,
- 0x7e3f,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 78 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7e07,
- 0x7e07,
- 0x71c7,
- 0x71c7,
- 0x703f,
- 0x703f,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 79 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 80 */
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x7000,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 81 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x71c7,
- 0x71c7,
- 0x7038,
- 0x7038,
- 0xfc7,
- 0xfc7,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 82 */
- 0x7ff8,
- 0x7ff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7ff8,
- 0x7ff8,
- 0x71c0,
- 0x71c0,
- 0x7038,
- 0x7038,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 83 */
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7000,
- 0x7000,
- 0xff8,
- 0xff8,
- 0x7,
- 0x7,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 84 */
- 0x7fff,
- 0x7fff,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 85 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 86 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 87 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0x71c7,
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 88 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0xe38,
- 0xe38,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 89 */
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xe38,
- 0xe38,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 90 */
- 0x7fff,
- 0x7fff,
- 0x7,
- 0x7,
- 0x38,
- 0x38,
- 0x1c0,
- 0x1c0,
- 0xe00,
- 0xe00,
- 0x7000,
- 0x7000,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 91 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 92 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 93 */
- 0x1c0,
- 0x1c0,
- 0x0,
- 0x0,
- 0xff8,
- 0xff8,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7fff,
- 0x7fff,
- 0x7007,
- 0x7007,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 94 */
- 0xe38,
- 0xe38,
- 0x0,
- 0x0,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0x7007,
- 0xff8,
- 0xff8,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 95 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x7fff,
- 0x7fff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- },
- { /* 96 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 97 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 98 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 99 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 100 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 101 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 102 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 103 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 104 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 105 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 106 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 107 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 108 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 109 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 110 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 111 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- },
- { /* 112 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 113 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 114 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 115 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 116 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 117 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 118 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 119 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 120 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 121 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 122 */
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 123 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x1ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 124 */
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x0,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 125 */
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3fe00,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 126 */
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
- { /* 127 */
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- 0x3ffff,
- },
-};
diff --git a/abcfont.c b/abcfont.c
new file mode 100644
index 0000000..4547e72
--- /dev/null
+++ b/abcfont.c
@@ -0,0 +1,258 @@
+unsigned char abc_font[256][10] = {
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 1T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 2T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 3T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 4T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 5T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 6T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 7T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 8T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 9T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 10T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 11T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 12T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 13T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 14T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 15T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 16T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 17T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 18T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 19T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 20T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 21T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 22T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 23T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 24T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 25T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 26T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 27T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 28T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 29T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 30T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 31T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 32T */
+ {0x00,0x20,0x20,0x20,0x20,0x20,0x00,0x20,0x00,0x00}, /* 33T */
+ {0x00,0x50,0x50,0x50,0x00,0x00,0x00,0x00,0x00,0x00}, /* 34T */
+ {0x00,0x50,0x50,0xf8,0x50,0xf8,0x50,0x50,0x00,0x00}, /* 35T */
+ {0x00,0x00,0x00,0x88,0x70,0x50,0x70,0x88,0x00,0x00}, /* 36T */
+ {0x00,0x48,0xa8,0x50,0x20,0x50,0xa8,0x90,0x00,0x00}, /* 37T */
+ {0x00,0x40,0xa0,0xa0,0x40,0xa8,0x90,0x68,0x00,0x00}, /* 38T */
+ {0x00,0x10,0x10,0x20,0x00,0x00,0x00,0x00,0x00,0x00}, /* 39T */
+ {0x00,0x10,0x20,0x40,0x40,0x40,0x20,0x10,0x00,0x00}, /* 40T */
+ {0x00,0x40,0x20,0x10,0x10,0x10,0x20,0x40,0x00,0x00}, /* 41T */
+ {0x00,0x00,0x88,0x50,0xf8,0x50,0x88,0x00,0x00,0x00}, /* 42T */
+ {0x00,0x00,0x20,0x20,0xf8,0x20,0x20,0x00,0x00,0x00}, /* 43T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x20,0x40,0x00}, /* 44T */
+ {0x00,0x00,0x00,0x00,0xf8,0x00,0x00,0x00,0x00,0x00}, /* 45T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x70,0x20,0x00}, /* 46T */
+ {0x00,0x08,0x08,0x10,0x20,0x40,0x80,0x80,0x00,0x00}, /* 47T */
+ {0x00,0x70,0x88,0x88,0xa8,0x88,0x88,0x70,0x00,0x00}, /* 48T */
+ {0x00,0x20,0x60,0xa0,0x20,0x20,0x20,0xf8,0x00,0x00}, /* 49T */
+ {0x00,0x70,0x88,0x08,0x30,0x40,0x80,0xf8,0x00,0x00}, /* 50T */
+ {0x00,0xf8,0x08,0x10,0x30,0x08,0x88,0x70,0x00,0x00}, /* 51T */
+ {0x00,0x10,0x30,0x50,0x90,0xf8,0x10,0x10,0x00,0x00}, /* 52T */
+ {0x00,0xf8,0x80,0xf0,0x08,0x08,0x88,0x70,0x00,0x00}, /* 53T */
+ {0x00,0x30,0x40,0x80,0xf0,0x88,0x88,0x70,0x00,0x00}, /* 54T */
+ {0x00,0xf8,0x08,0x10,0x10,0x20,0x40,0x40,0x00,0x00}, /* 55T */
+ {0x00,0x70,0x88,0x88,0x70,0x88,0x88,0x70,0x00,0x00}, /* 56T */
+ {0x00,0x70,0x88,0x88,0x78,0x08,0x10,0x60,0x00,0x00}, /* 57T */
+ {0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x30,0x00,0x00}, /* 58T */
+ {0x00,0x00,0x30,0x30,0x00,0x00,0x30,0x10,0x20,0x00}, /* 59T */
+ {0x00,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x00,0x00}, /* 60T */
+ {0x00,0x00,0x00,0xf8,0x00,0xf8,0x00,0x00,0x00,0x00}, /* 61T */
+ {0x00,0x40,0x20,0x10,0x08,0x10,0x20,0x40,0x00,0x00}, /* 62T */
+ {0x00,0x70,0x88,0x10,0x20,0x20,0x00,0x20,0x00,0x00}, /* 63T */
+ {0x10,0x20,0x00,0xf8,0x80,0xf0,0x80,0xf8,0x00,0x00}, /* 64T */
+ {0x00,0x20,0x50,0x88,0x88,0xf8,0x88,0x88,0x00,0x00}, /* 65T */
+ {0x00,0xf0,0x48,0x48,0x70,0x48,0x48,0xf0,0x00,0x00}, /* 66T */
+ {0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00,0x00}, /* 67T */
+ {0x00,0xf0,0x48,0x48,0x48,0x48,0x48,0xf0,0x00,0x00}, /* 68T */
+ {0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x00,0x00}, /* 69T */
+ {0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0x80,0x00,0x00}, /* 70T */
+ {0x00,0x70,0x88,0x80,0x80,0x98,0x88,0x70,0x00,0x00}, /* 71T */
+ {0x00,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x00,0x00}, /* 72T */
+ {0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00}, /* 73T */
+ {0x00,0x38,0x10,0x10,0x10,0x10,0x90,0x60,0x00,0x00}, /* 74T */
+ {0x00,0x88,0x90,0xa0,0xc0,0xa0,0x90,0x88,0x00,0x00}, /* 75T */
+ {0x00,0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x00,0x00}, /* 76T */
+ {0x00,0x88,0x88,0xd8,0xa8,0x88,0x88,0x88,0x00,0x00}, /* 77T */
+ {0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88,0x00,0x00}, /* 78T */
+ {0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 79T */
+ {0x00,0xf0,0x88,0x88,0xf0,0x80,0x80,0x80,0x00,0x00}, /* 80T */
+ {0x00,0x70,0x88,0x88,0x88,0x88,0xa8,0x70,0x08,0x00}, /* 81T */
+ {0x00,0xf0,0x88,0x88,0xf0,0xa0,0x90,0x88,0x00,0x00}, /* 82T */
+ {0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00,0x00}, /* 83T */
+ {0x00,0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00}, /* 84T */
+ {0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 85T */
+ {0x00,0x88,0x88,0x88,0x50,0x50,0x50,0x20,0x00,0x00}, /* 86T */
+ {0x00,0x88,0x88,0x88,0xa8,0xa8,0xd8,0x88,0x00,0x00}, /* 87T */
+ {0x00,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x00,0x00}, /* 88T */
+ {0x00,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x00,0x00}, /* 89T */
+ {0x00,0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,0x00}, /* 90T */
+ {0x50,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x00,0x00}, /* 91T */
+ {0x50,0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 92T */
+ {0x20,0x50,0x70,0x88,0x88,0xf8,0x88,0x88,0x00,0x00}, /* 93T */
+ {0x50,0x00,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 94T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00}, /* 95T */
+ {0x10,0x20,0x00,0x70,0x88,0xf8,0x80,0x70,0x00,0x00}, /* 96T */
+ {0x00,0x00,0x00,0x70,0x08,0x78,0x88,0x78,0x00,0x00}, /* 97T */
+ {0x00,0x80,0x80,0xf0,0x88,0x88,0x88,0xf0,0x00,0x00}, /* 98T */
+ {0x00,0x00,0x00,0x70,0x88,0x80,0x88,0x70,0x00,0x00}, /* 99T */
+ {0x00,0x08,0x08,0x78,0x88,0x88,0x88,0x78,0x00,0x00}, /* 100T */
+ {0x00,0x00,0x00,0x70,0x88,0xf8,0x80,0x70,0x00,0x00}, /* 101T */
+ {0x00,0x30,0x48,0x40,0xf0,0x40,0x40,0x40,0x00,0x00}, /* 102T */
+ {0x00,0x00,0x00,0x78,0x88,0x88,0x78,0x08,0x88,0x70}, /* 103T */
+ {0x00,0x80,0x80,0xb0,0xc8,0x88,0x88,0x88,0x00,0x00}, /* 104T */
+ {0x00,0x20,0x00,0x60,0x20,0x20,0x20,0x70,0x00,0x00}, /* 105T */
+ {0x00,0x08,0x00,0x18,0x08,0x08,0x08,0x48,0x48,0x30}, /* 106T */
+ {0x00,0x80,0x80,0x88,0x90,0xe0,0x90,0x88,0x00,0x00}, /* 107T */
+ {0x00,0x60,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00}, /* 108T */
+ {0x00,0x00,0x00,0xd0,0xa8,0xa8,0xa8,0x88,0x00,0x00}, /* 109T */
+ {0x00,0x00,0x00,0xb0,0xc8,0x88,0x88,0x88,0x00,0x00}, /* 110T */
+ {0x00,0x00,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0x00}, /* 111T */
+ {0x00,0x00,0x00,0xf0,0x88,0x88,0x88,0xf0,0x80,0x80}, /* 112T */
+ {0x00,0x00,0x00,0x78,0x88,0x88,0x88,0x78,0x08,0x08}, /* 113T */
+ {0x00,0x00,0x00,0xb0,0xc8,0x80,0x80,0x80,0x00,0x00}, /* 114T */
+ {0x00,0x00,0x00,0x70,0x80,0x70,0x08,0xf0,0x00,0x00}, /* 115T */
+ {0x00,0x40,0x40,0xf0,0x40,0x40,0x48,0x30,0x00,0x00}, /* 116T */
+ {0x00,0x00,0x00,0x88,0x88,0x88,0x98,0x68,0x00,0x00}, /* 117T */
+ {0x00,0x00,0x00,0x88,0x88,0x50,0x50,0x20,0x00,0x00}, /* 118T */
+ {0x00,0x00,0x00,0x88,0x88,0xa8,0xa8,0x50,0x00,0x00}, /* 119T */
+ {0x00,0x00,0x00,0x88,0x50,0x20,0x50,0x88,0x00,0x00}, /* 120T */
+ {0x00,0x00,0x00,0x88,0x88,0x98,0x68,0x08,0x88,0x70}, /* 121T */
+ {0x00,0x00,0x00,0xf8,0x10,0x20,0x40,0xf8,0x00,0x00}, /* 122T */
+ {0x00,0x50,0x00,0x70,0x08,0x78,0x88,0x78,0x00,0x00}, /* 123T */
+ {0x00,0x50,0x00,0x70,0x88,0x88,0x88,0x70,0x00,0x00}, /* 124T */
+ {0x20,0x50,0x20,0x70,0x08,0x78,0x88,0x78,0x00,0x00}, /* 125T */
+ {0x00,0x50,0x00,0x88,0x88,0x88,0x98,0x68,0x00,0x00}, /* 126T */
+ {0x00,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0x00,0x00}, /* 127T */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 0G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 1G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 2G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 3G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 4G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 5G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 6G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 7G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 8G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 9G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 10G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 11G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 12G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 13G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 14G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 15G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 16G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 17G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 18G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 19G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 20G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 21G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 22G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 23G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 24G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 25G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 26G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 27G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 28G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 29G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 30G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, /* 31G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 32G */
+ {0xe0,0xe0,0xe0,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 33G */
+ {0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 34G */
+ {0xfc,0xfc,0xfc,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 35G */
+ {0x00,0x00,0x00,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 36G */
+ {0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 37G */
+ {0x1c,0x1c,0x1c,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 38G */
+ {0xfc,0xfc,0xfc,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 39G */
+ {0x00,0x00,0x00,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 40G */
+ {0xe0,0xe0,0xe0,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 41G */
+ {0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 42G */
+ {0xfc,0xfc,0xfc,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 43G */
+ {0x00,0x00,0x00,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 44G */
+ {0xe0,0xe0,0xe0,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 45G */
+ {0x1c,0x1c,0x1c,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 46G */
+ {0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 47G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 48G */
+ {0xe0,0xe0,0xe0,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 49G */
+ {0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 50G */
+ {0xfc,0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 51G */
+ {0x00,0x00,0x00,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 52G */
+ {0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 53G */
+ {0x1c,0x1c,0x1c,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 54G */
+ {0xfc,0xfc,0xfc,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 55G */
+ {0x00,0x00,0x00,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 56G */
+ {0xe0,0xe0,0xe0,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 57G */
+ {0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 58G */
+ {0xfc,0xfc,0xfc,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 59G */
+ {0x00,0x00,0x00,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 60G */
+ {0xe0,0xe0,0xe0,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 61G */
+ {0x1c,0x1c,0x1c,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 62G */
+ {0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 63G */
+ {0x10,0x20,0x00,0xf8,0x80,0xf0,0x80,0xf8,0x00,0x00}, /* 64G */
+ {0x00,0x20,0x50,0x88,0x88,0xf8,0x88,0x88,0x00,0x00}, /* 65G */
+ {0x00,0xf0,0x48,0x48,0x70,0x48,0x48,0xf0,0x00,0x00}, /* 66G */
+ {0x00,0x70,0x88,0x80,0x80,0x80,0x88,0x70,0x00,0x00}, /* 67G */
+ {0x00,0xf0,0x48,0x48,0x48,0x48,0x48,0xf0,0x00,0x00}, /* 68G */
+ {0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0xf8,0x00,0x00}, /* 69G */
+ {0x00,0xf8,0x80,0x80,0xf0,0x80,0x80,0x80,0x00,0x00}, /* 70G */
+ {0x00,0x70,0x88,0x80,0x80,0x98,0x88,0x70,0x00,0x00}, /* 71G */
+ {0x00,0x88,0x88,0x88,0xf8,0x88,0x88,0x88,0x00,0x00}, /* 72G */
+ {0x00,0x70,0x20,0x20,0x20,0x20,0x20,0x70,0x00,0x00}, /* 73G */
+ {0x00,0x38,0x10,0x10,0x10,0x10,0x90,0x60,0x00,0x00}, /* 74G */
+ {0x00,0x88,0x90,0xa0,0xc0,0xa0,0x90,0x88,0x00,0x00}, /* 75G */
+ {0x00,0x80,0x80,0x80,0x80,0x80,0x80,0xf8,0x00,0x00}, /* 76G */
+ {0x00,0x88,0x88,0xd8,0xa8,0x88,0x88,0x88,0x00,0x00}, /* 77G */
+ {0x00,0x88,0x88,0xc8,0xa8,0x98,0x88,0x88,0x00,0x00}, /* 78G */
+ {0x00,0x70,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 79G */
+ {0x00,0xf0,0x88,0x88,0xf0,0x80,0x80,0x80,0x00,0x00}, /* 80G */
+ {0x00,0x70,0x88,0x88,0x88,0x88,0xa8,0x70,0x08,0x00}, /* 81G */
+ {0x00,0xf0,0x88,0x88,0xf0,0xa0,0x90,0x88,0x00,0x00}, /* 82G */
+ {0x00,0x70,0x88,0x80,0x70,0x08,0x88,0x70,0x00,0x00}, /* 83G */
+ {0x00,0xf8,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00}, /* 84G */
+ {0x00,0x88,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 85G */
+ {0x00,0x88,0x88,0x88,0x50,0x50,0x50,0x20,0x00,0x00}, /* 86G */
+ {0x00,0x88,0x88,0x88,0xa8,0xa8,0xd8,0x88,0x00,0x00}, /* 87G */
+ {0x00,0x88,0x88,0x50,0x20,0x50,0x88,0x88,0x00,0x00}, /* 88G */
+ {0x00,0x88,0x88,0x50,0x20,0x20,0x20,0x20,0x00,0x00}, /* 89G */
+ {0x00,0xf8,0x08,0x10,0x20,0x40,0x80,0xf8,0x00,0x00}, /* 90G */
+ {0x50,0x00,0x70,0x88,0x88,0xf8,0x88,0x88,0x00,0x00}, /* 91G */
+ {0x50,0x00,0x70,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 92G */
+ {0x20,0x50,0x70,0x88,0x88,0xf8,0x88,0x88,0x00,0x00}, /* 93G */
+ {0x50,0x00,0x88,0x88,0x88,0x88,0x88,0x70,0x00,0x00}, /* 94G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xf8,0x00}, /* 95G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 96G */
+ {0xe0,0xe0,0xe0,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 97G */
+ {0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 98G */
+ {0xfc,0xfc,0xfc,0x00,0x00,0x00,0x00,0x1c,0x1c,0x1c}, /* 99G */
+ {0x00,0x00,0x00,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 100G */
+ {0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 101G */
+ {0x1c,0x1c,0x1c,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 102G */
+ {0xfc,0xfc,0xfc,0xe0,0xe0,0xe0,0xe0,0x1c,0x1c,0x1c}, /* 103G */
+ {0x00,0x00,0x00,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 104G */
+ {0xe0,0xe0,0xe0,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 105G */
+ {0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 106G */
+ {0xfc,0xfc,0xfc,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c}, /* 107G */
+ {0x00,0x00,0x00,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 108G */
+ {0xe0,0xe0,0xe0,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 109G */
+ {0x1c,0x1c,0x1c,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 110G */
+ {0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0x1c,0x1c,0x1c}, /* 111G */
+ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 112G */
+ {0xe0,0xe0,0xe0,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 113G */
+ {0x1c,0x1c,0x1c,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 114G */
+ {0xfc,0xfc,0xfc,0x00,0x00,0x00,0x00,0xfc,0xfc,0xfc}, /* 115G */
+ {0x00,0x00,0x00,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 116G */
+ {0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 117G */
+ {0x1c,0x1c,0x1c,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 118G */
+ {0xfc,0xfc,0xfc,0xe0,0xe0,0xe0,0xe0,0xfc,0xfc,0xfc}, /* 119G */
+ {0x00,0x00,0x00,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 120G */
+ {0xe0,0xe0,0xe0,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 121G */
+ {0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 122G */
+ {0xfc,0xfc,0xfc,0x1c,0x1c,0x1c,0x1c,0xfc,0xfc,0xfc}, /* 123G */
+ {0x00,0x00,0x00,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 124G */
+ {0xe0,0xe0,0xe0,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 125G */
+ {0x1c,0x1c,0x1c,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 126G */
+ {0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc}, /* 127G */
+};
diff --git a/io.c b/io.c
index 5580cf0..8ab9da5 100644
--- a/io.c
+++ b/io.c
@@ -2,6 +2,7 @@
#include <dirent.h>
#include "z80.h"
+#include "screen.h"
static uchar inports[256];
static uchar outports[256];
@@ -330,6 +331,14 @@ z80_in(int port)
return v;
}
+ if ( port == 3 ) {
+ setmode40(1);
+ }
+
+ if ( port == 4 ) {
+ setmode40(0);
+ }
+
if (port == 254) {
lib_getchar();
}
@@ -348,6 +357,8 @@ io_init(void)
{
int i;
+ memset(inports, 0xff, sizeof inports);
+
for (i = 0; i < 8; i++) {
files[i].u.fp = NULL;
}
diff --git a/screen.h b/screen.h
index c6a0976..7decb9b 100644
--- a/screen.h
+++ b/screen.h
@@ -9,17 +9,11 @@
#define EXTERN
#endif
-typedef struct {
- int r, c; /* Location of the position on screen. */
- int x, y; /* Location of the position in the image. */
- unsigned char value; /* Last ascii value stored in the point. */
- int graph_mode; /* True if position is in graphic mode */
-} Screen_pos;
-
extern void screen_init(void);
extern void screen_reset(void);
extern void screen_write(int, int);
extern void screen_flush(void);
+extern void setmode40(int);
extern void get_event(void);
extern void key_check(void);
diff --git a/screen3.c b/screen3.c
deleted file mode 100644
index 72e7e42..0000000
--- a/screen3.c
+++ /dev/null
@@ -1,568 +0,0 @@
-/*
- * Screen and keyboard management for the ABC80 emulator.
- */
-
-#include <stdio.h>
-#include <fcntl.h>
-#include <memory.h>
-#include <signal.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-
-#include <X11/Xos.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/extensions/shape.h>
-
-#include "screen.h"
-#include "z80.h"
-
-
-#define FRAMEWIDTH 9
-#define FRAMEHEIGHT 10
-
-#define EVENT_MASK (KeyPressMask | KeyReleaseMask | FocusChangeMask\
- | EnterWindowMask | LeaveWindowMask\
- | ButtonPressMask | ButtonReleaseMask | PointerMotionMask\
- | StructureNotifyMask)
-
-#define NORMAL 0
-#define GRAPHIC 1
-
-
-/*
- * The bitmap for the error list.
- */
-#include "errlist.xbm"
-static Pixmap errlist_pm;
-
-
-static Display *x_display;
-static Window x_window;
-static Window err_window;
-static int err_y;
-static int x_screen;
-static GC norm_gc;
-static GC inv_gc;
-static GC norm_graph_gc;
-static GC inv_graph_gc;
-static int flushcount;
-static int winwidth, winheight;
-
-Screen_pos screenpos[24][40]; /* Logical screen */
-char screenbuf[24][40]; /* Actual contents of screen */
-Screen_pos *addr_to_sp[1024]; /* Map "address" (0 - 1023) to screen pos. */
-
-/*
- * State of the screen buffer.
- */
-static int buf_row = 0;
-static int buf_start = 0;
-static int buf_end = 0;
-static int buf_len = 0;
-static int buf_mode = NORMAL;
-static int buf_inv = 0;
-
-extern int events_in_queue;
-extern int event_pending;
-int xfd;
-
-
-/*
- * Get an event from the X server.
- */
-static int dragging;
-static short last_y;
-void
-get_event(void)
-{
- static int keycount = 0;
- static uchar portval;
- XEvent event;
- KeySym keysym;
- char key;
-
- event_pending = 0;
-
- if (!XCheckMaskEvent(x_display, EVENT_MASK, &event)) {
- events_in_queue = 0;
- return;
- }
- /* x_flushed = 1;
- flushcount=0;*/
-
- switch (event.type) {
- case FocusIn:
- case EnterNotify:
- XAutoRepeatOff(x_display);
- XFlush(x_display);
- break;
-
- case FocusOut:
- case LeaveNotify:
- XAutoRepeatOn(x_display);
- XFlush(x_display);
- break;
-
- case KeyPress:
- if (XLookupString(&event.xkey, &key, 1, &keysym, NULL)) {
- switch (key) {
- case '': key=']'; break;
- case '': key='['; break;
- case '': key='\\'; break;
- case '': key='}'; break;
- case '': key='{'; break;
- case '': key='|'; break;
- }
- keycount++;
- portval = 0x80 | key;
- set_in_port(56, portval);
- z80_state.i_vector = 26;
- z80_state.interrupt = 1;
- }
- break;
-
- case KeyRelease:
- if (!XLookupString(&event.xkey, &key, 1, NULL, NULL)) {
- return;
- }
- if (!(--keycount)) {
- portval &= 0x7f;
- set_in_port(56, portval);
- }
- break;
-
- case ButtonPress:
- {
- XButtonPressedEvent *ev = (XButtonPressedEvent *)&event;
-
- if (ev->window == err_window) {
- dragging = 1;
- last_y = ev->y;
- }
- }
- break;
-
- case ButtonRelease:
- dragging = 0;
- break;
-
- case MotionNotify:
- {
- XPointerMovedEvent *ev = (XPointerMovedEvent *)&event;
- Window tmp;
- int x, y;
- unsigned int button_status;
-
- XQueryPointer(x_display, err_window, &tmp, &tmp, &x, &y, &x, &y,
- &button_status);
- button_status &= (Button1Mask | Button2Mask | Button3Mask);
- if (button_status == 0) {
- dragging = 0;
- }
-
- if (dragging) {
- if (err_y + ev->y - last_y < winheight - errlist_height) {
- last_y += (ev->y - last_y - winheight + errlist_height
- + err_y);
- err_y = winheight - errlist_height;
- } else if (err_y + ev->y - last_y > winheight) {
- last_y += (ev->y - last_y - winheight + err_y);
- err_y = winheight;
- } else {
- err_y += (ev->y - last_y);
- }
-
- XTranslateCoordinates(x_display, x_window,
- RootWindow(x_display, x_screen),
- 20, err_y,
- &x, &y, &tmp);
- XMoveWindow(x_display, err_window, x, y);
- XSync(x_display, True);
- }
- }
- break;
-
- case ConfigureNotify:
- {
- XConfigureEvent *ev = (XConfigureEvent *)&event;
- Window tmp;
- int x, y;
-
- XTranslateCoordinates(x_display, x_window,
- RootWindow(x_display, x_screen),
- 20, err_y,
- &x, &y, &tmp);
- XMoveWindow(x_display, err_window, x, y);
- }
- break;
-
- case MapNotify:
- {
- XConfigureEvent *ev = (XConfigureEvent *)&event;
-
- if (ev->window == err_window) {
- XRaiseWindow(x_display, x_window);
- }
- }
- break;
-
- }
-}
-
-
-
-/*
- * Load the ABC80 font.
- */
-static XFontStruct *
-load_font(char *fontname)
-{
- XFontStruct *fontstruct;
- char **old_fontpath;
- char **new_fontpath;
- int nfont;
- int i;
-
- if ((fontstruct = XLoadQueryFont(x_display, fontname)) == NULL) {
- old_fontpath = XGetFontPath(x_display, &nfont);
- new_fontpath = (char **)malloc((nfont + 1) * sizeof(char*));
- if (!new_fontpath) {
- perror("Out of memory");
- exit(1);
- }
-
- for (i = 0; i < nfont; i++) {
- new_fontpath[i] = (char *)malloc(strlen(old_fontpath[i]) + 1);
- if (!new_fontpath[i]) {
- perror("Out of memory");
- exit(1);
- }
- strcpy(new_fontpath[i], old_fontpath[i]);
- }
-
- new_fontpath[i] = (char *)malloc(256 * sizeof(char));
- if (!new_fontpath[i]) {
- perror("Out of memory");
- exit(1);
- }
-
- sprintf(new_fontpath[i], "%s/%s/", ABCDIR, "font");
- XSetFontPath(x_display, new_fontpath, nfont + 1);
-
- XFreeFontPath(old_fontpath);
- for (i = 0; i < nfont + 1; i++) {
- free(new_fontpath[i]);
- }
- free(new_fontpath);
-
- if ((fontstruct = XLoadQueryFont(x_display, fontname)) == NULL) {
- fprintf(stderr, "ABC80: Can't load font: %s\n", fontname);
- exit(1);
- }
- }
-
- return fontstruct;
-}
-
-
-
-/*
- * Initialize the ABC80 screen and IO handling.
- */
-void
-screen_init()
-{
- XSetWindowAttributes win_attr; /* storage for "window attributes" */
- XSizeHints hints;
- XGCValues gcvalues;
- int r, c;
- int rc;
- XFontStruct *tfont, *gfont;
- int charwidth, charheight;
-XEvent ev;
-
- x_display = XOpenDisplay(NULL);
- if (!x_display) {
- perror("window_new: Can't open display.");
- exit(1);
- }
-
- x_screen = DefaultScreen(x_display);
-
- tfont = load_font("abc80");
- gfont = load_font("abc80graph");
- charwidth = tfont->max_bounds.width;
- charheight = tfont->ascent + tfont->descent;
- winwidth = charwidth * 40 + FRAMEWIDTH * 2;
- winheight = charheight * 24 + FRAMEHEIGHT * 2;
-
- x_window = XCreateSimpleWindow(x_display, RootWindow(x_display, x_screen),
- 100, 100, winwidth, winheight, 0,
- WhitePixel(x_display, x_screen),
- BlackPixel(x_display, x_screen));
-
- /*
- * Set up "window hints" so that we won't be allowed to
- * resize the window while it's running
- */
- hints.flags = PSize | PMinSize | PMaxSize;
- hints.width = hints.min_width = hints.max_width = winwidth;
- hints.height = hints.min_height = hints.max_height = winheight;
- XSetStandardProperties(x_display, x_window, "ABC80", "ABC80",
- None, NULL, 0, &hints);
-
- /*
- * Tell X which events we'd like to be aware of
- */
- win_attr.backing_store = Always;
- win_attr.event_mask = EVENT_MASK;
- XChangeWindowAttributes(x_display, x_window,
- CWBackingStore | CWEventMask, &win_attr);
-
- /*
- * Create the Graphic Contexts needed for writing
- * text and graphics in both normal and inverted video.
- */
- gcvalues.plane_mask = 1;
- gcvalues.background = BlackPixel(x_display, x_screen);
- gcvalues.foreground = WhitePixel(x_display, x_screen);
- gcvalues.font = tfont->fid;
- norm_gc = XCreateGC(x_display, x_window, GCPlaneMask | GCFont |
- GCForeground | GCBackground, &gcvalues);
- gcvalues.font = gfont->fid;
- norm_graph_gc = XCreateGC(x_display, x_window, GCPlaneMask | GCFont |
- GCForeground | GCBackground, &gcvalues);
- gcvalues.background = WhitePixel(x_display, x_screen);
- gcvalues.foreground = BlackPixel(x_display, x_screen);
- inv_graph_gc = XCreateGC(x_display, x_window, GCPlaneMask | GCFont |
- GCForeground | GCBackground, &gcvalues);
- gcvalues.font = tfont->fid;
- inv_gc = XCreateGC(x_display, x_window, GCPlaneMask | GCFont |
- GCForeground | GCBackground, &gcvalues);
-
- /*
- * Initialize the "logical" screen"
- */
- memset((char *)addr_to_sp, 0, 1024 * sizeof(Screen_pos *));
- for (r = 0; r < 24; r++) {
- for (c = 0; c < 40; c++) {
- int addr;
- screenpos[r][c].r = r;
- screenpos[r][c].c = c;
- screenpos[r][c].x = c * charwidth + FRAMEWIDTH;
- screenpos[r][c].y = r * charheight + FRAMEHEIGHT + 14;
- screenpos[r][c].graph_mode = 0;
- addr = ((r & 7) << 7) + (r >> 3) * 40 + c;
- addr_to_sp[addr] = &screenpos[r][c];
- }
- }
-
- errlist_pm = XCreateBitmapFromData(x_display, x_window, errlist_bits,
- errlist_width, errlist_height);
- err_window = XCreateSimpleWindow(x_display,
- RootWindow(x_display, x_screen),
- 0, 400, errlist_width,
- errlist_height + 20, 0,
- BlackPixel(x_display, x_screen),
- WhitePixel(x_display, x_screen));
- XChangeWindowAttributes(x_display, err_window,
- CWBackingStore | CWEventMask, &win_attr);
- XSetTransientForHint(x_display, err_window, x_window);
-
- XMapWindow(x_display, x_window);
- XWindowEvent(x_display, x_window, StructureNotifyMask, &ev);
-
- {
- Window tmp;
- int x, y;
-
- err_y = winheight - errlist_height;
- XTranslateCoordinates(x_display, x_window,
- RootWindow(x_display, x_screen),
- 20, err_y,
- &x, &y, &tmp);
- XMoveWindow(x_display, err_window, x, y);
- }
- XMapWindow(x_display, err_window);
-#ifdef ARRRRGHHH
- {
- Window w[2];
-
- w[0] = x_window;
- w[1] = err_window;
- XRestackWindows(x_display, w, 2);
- }
-#endif
- XRaiseWindow(x_display, x_window);
- XSync(x_display, FALSE);
-
- XCopyPlane(x_display, errlist_pm, err_window, inv_gc, 0, 0,
- errlist_width, errlist_height,
- 0, 0, 1);
-
- /*
- * Set up handling of the keyboard.
- */
- XAutoRepeatOff(x_display);
- XSync(x_display, FALSE);
-
- xfd = ConnectionNumber(x_display);
-}
-
-
-
-/*
- * Clean up before exiting.
- */
-void
-screen_reset(void)
-{
- XAutoRepeatOn(x_display);
- XFlush(x_display);
-}
-
-
-
-/*
- * Flush the screen buffer.
- */
-static void
-buf_flush(int r, int c, int length, int graph_mode, int inv_mode)
-{
- if (inv_mode) {
- if (graph_mode == GRAPHIC) {
- XDrawImageString(x_display, x_window, inv_graph_gc,
- screenpos[r][c].x, screenpos[r][c].y,
- &screenbuf[r][c], length);
- } else {
- XDrawImageString(x_display, x_window, inv_gc,
- screenpos[r][c].x, screenpos[r][c].y,
- &screenbuf[r][c], length);
- }
- } else {
- if (graph_mode == GRAPHIC) {
- XDrawImageString(x_display, x_window, norm_graph_gc,
- screenpos[r][c].x, screenpos[r][c].y,
- &screenbuf[r][c], length);
- } else {
- XDrawImageString(x_display, x_window, norm_gc,
- screenpos[r][c].x, screenpos[r][c].y,
- &screenbuf[r][c], length);
- }
- }
-}
-
-
-/*
- * This function is called whenever something is written in the
- * image memory. We try to buffer writes as long as they are
- * creating a contiguous string to minimize the calls to the X server.
- * We also update screen appearence according to the graphic and/or
- * inverted video.
- */
-void
-screen_write(int addr, int value)
-{
- Screen_pos *sp;
- int c, r;
- int graph_mode;
- int inv_mode;
- int update;
-
- if ((sp = addr_to_sp[addr]) != 0) { /* Is the addr on the sreen? */
- r = sp->r;
- c = sp->c;
-
- /*
- * If the new character is not right after the last
- * written character we need to flush the buffer.
- */
- if (buf_len != 0 && (r != buf_row || c != buf_end)) {
- buf_flush(buf_row, buf_start, buf_len, buf_mode, buf_inv);
- buf_len = 0;
- }
-
- if (buf_len == 0) {
- buf_row = r;
- buf_start = buf_end = c;
- }
-
- /*
- * Write the character in the buffer.
- */
- screenpos[r][c].value = (uchar)value;
-
- /*
- * Update graphics/normal mode on the line in
- * which the character was written.
- */
- if (c > 0) {
- graph_mode = screenpos[r][c - 1].graph_mode;
- } else {
- graph_mode = NORMAL;
- }
- update = 1;
- while (c < 40 && update) {
- if (((screenpos[r][c].value & 0x7f) >= 17)
- && ((screenpos[r][c].value & 0x7f) <= 23))
- {
- graph_mode = GRAPHIC;
-
- } else if (((screenpos[r][c].value & 0x7f) >= 1)
- && ((screenpos[r][c].value & 0x7f) <= 7))
- {
- graph_mode = NORMAL;
- }
-
- inv_mode = ((screenpos[r][c].value & 0x80) != 0);
-
- if (buf_len != 0 && (buf_mode != graph_mode
- || buf_inv != inv_mode)) {
- buf_flush(buf_row, buf_start, buf_len, buf_mode, buf_inv);
- buf_row = r;
- buf_start = buf_end = c;
- buf_len = 0;
- }
-
- if (c == sp->c) {
- screenpos[r][c].graph_mode = graph_mode;
- screenbuf[r][c] = value & 0x7f;
- if (screenbuf[r][c] < 32) {
- screenbuf[r][c] = 32;
- }
- buf_len++;
- buf_end++;
- buf_mode = graph_mode;
- buf_inv = ((screenpos[r][c].value & 0x80) != 0);
-
- } else if (screenpos[r][c].graph_mode != graph_mode) {
- screenpos[r][c].graph_mode = graph_mode;
- buf_len++;
- buf_end++;
- buf_mode = graph_mode;
- buf_inv = ((screenpos[r][c].value & 0x80) != 0);
-
- } else {
- update = 0;
- }
- c++;
- }
- }
-}
-
-
-void
-screen_flush(void)
-{
- extern int flush_pending;
-
- if ((++flushcount) == 5) {
- flushcount = 0;
- buf_flush(buf_row, buf_start, buf_len, buf_mode, buf_inv);
- buf_len = 0;
- XFlush(x_display);
- }
- flush_pending = 0;
-}
diff --git a/sdlscrn.c b/sdlscrn.c
index 4a7a64c..bc9293f 100644
--- a/sdlscrn.c
+++ b/sdlscrn.c
@@ -1,8 +1,7 @@
/*
* sdlscrn.c
*
- * ABC80 screen emulation (40x24)
- * NB: 80x24 should be doable as well
+ * ABC80 screen emulation (40x24/80x24)
*/
#include <stdarg.h>
@@ -16,17 +15,19 @@
#define min(x,y) ((x)<(y)?(x):(y))
#define max(x,y) ((x)>(y)?(x):(y))
-#define TS_WIDTH 40
+#define TS_WIDTH 80
#define TS_HEIGHT 24
-#define FONT_XSIZE 18
-#define FONT_YSIZE 20
+#define FONT_XSIZE 6
+#define FONT_YSIZE 10
-#define PX_WIDTH (TS_WIDTH*FONT_XSIZE)
-#define PX_HEIGHT (TS_HEIGHT*FONT_YSIZE)
+#define FONT_XDUP 2 /* For 80-column mode */
+#define FONT_YDUP 3
-typedef uint32_t font_t;
-extern font_t abc_font[256][FONT_YSIZE];
+#define PX_WIDTH (TS_WIDTH*FONT_XSIZE*FONT_XDUP)
+#define PX_HEIGHT (TS_HEIGHT*FONT_YSIZE*FONT_YDUP)
+
+extern unsigned char abc_font[256][FONT_YSIZE];
#define NCOLORS 2
@@ -37,19 +38,24 @@ static struct rgba { uint8_t a, r, g, b; } rgbcolors[NCOLORS] = {
{0x00,0xff,0xff,0xff}, /* white */
};
-unsigned char screendata[1024];
-static struct { int x, y; } addr_to_xy[1024];
+unsigned char screendata[2048];
+static struct { int x, y; } addr_to_xy[2][2048];
static SDL_Surface *rscreen;
static volatile uint8_t blink_mask = 0x80; /* 0x80 for inverse enable */
+static int mode40;
+
/*
* Get the pointer for a specific row -- this decodes the ABC80
* funky video memory.
*/
static inline unsigned char *screenptr(int y, int x)
{
- return &screendata[(((y >> 3)*5) << 3) + ((y & 7) << 7) + x];
+ if (mode40)
+ return &screendata[1024 + (((y >> 3)*5) << 3) + ((y & 7) << 7) + x];
+ else
+ return &screendata[(((y >> 3)*5) << 4) + ((y & 7) << 8) + x];
}
/*
@@ -67,25 +73,24 @@ static void lock_screen(void)
*/
static void put_screen(int tx, int ty)
{
- font_t *fontp;
- font_t v;
- uint32_t *pixelp, fgp, bgp;
- int x, y, z;
- int attr;
- int pxwid = 1;
+ unsigned char *fontp, v;
+ uint32_t *pixelp, *pixelpp, fgp, bgp;
+ int x, xx, y, yy;
int bmask = blink_mask;
- int gmode, gx;
+ int gx;
+ unsigned char gmode;
unsigned char cc;
+ int xdup = FONT_XDUP << mode40;
gmode = 0;
for ( gx = 0 ; gx < tx ; gx++ ) {
cc = *screenptr(ty,gx);
if ( (cc & 0x68) == 0 )
- gmode = cc & 0x10;
+ gmode = (cc & 0x10) << 3;
}
cc = *screenptr(ty,tx);
- fontp = abc_font[(cc & 0x7f) + (gmode ? 0x80 : 0)];
+ fontp = abc_font[(cc & 0x7f) + gmode];
if ( cc & bmask ) {
bgp = colors[1];
@@ -96,17 +101,22 @@ static void put_screen(int tx, int ty)
}
pixelp = ((uint32_t *) rscreen->pixels) +
- ty*(FONT_XSIZE*FONT_YSIZE*TS_WIDTH) +
- tx*FONT_XSIZE;
+ ty*PX_WIDTH*FONT_YSIZE*FONT_YDUP +
+ ((tx*FONT_XSIZE*FONT_XDUP) << mode40);
for ( y = 0 ; y < FONT_YSIZE ; y++ ) {
- v = *fontp++;
- for ( x = 0 ; x < FONT_XSIZE ; x++ ) {
- for ( z = 0 ; z < pxwid ; z++ )
- *pixelp++ = v & ((font_t)1 << (FONT_XSIZE-1)) ? fgp : bgp;
- v <<= 1;
+ for ( yy = 0 ; yy < FONT_YDUP ; yy++ ) {
+ v = *fontp;
+ pixelpp = pixelp;
+ for ( x = 0 ; x < FONT_XSIZE ; x++ ) {
+ for ( xx = 0 ; xx < xdup ; xx++) {
+ *pixelpp++ = (v & 0x80) ? fgp : bgp;
+ }
+ v <<= 1;
+ }
+ pixelp += PX_WIDTH;
}
- pixelp += PX_WIDTH-pxwid*FONT_XSIZE;
+ fontp++;
}
}
@@ -116,23 +126,22 @@ static void put_screen(int tx, int ty)
*/
static void toggle_blink(void)
{
- int x, y, xs;
+ int x, y;
int gx, gy, gw, gh;
- SDL_Rect rects[TS_WIDTH*TS_HEIGHT]; /* Absolute maximum needed */
+ SDL_Rect rects[TS_HEIGHT*TS_WIDTH/2]; /* Absolute maximum needed */
SDL_Rect *rect = rects-1;
int nrects = 0;
- int bmask;
+ int width = TS_WIDTH >> mode40;
blink_mask ^= 0x80;
- bmask = blink_mask;
SDL_LockSurface(rscreen);
- gw = FONT_XSIZE;
- gh = FONT_YSIZE;
+ gw = FONT_XSIZE*FONT_XDUP;
+ gh = (FONT_YSIZE*FONT_YDUP) << mode40;
for ( y = 0, gy = 0 ; y < TS_HEIGHT ; y++, gy += gh ) {
- for ( x = 0, gx = 0 ; x < TS_WIDTH ; x++, gx += gw ) {
+ for ( x = 0, gx = 0 ; x < width ; x++, gx += gw ) {
if ( *screenptr(y,x) & 0x80 ) {
put_screen(x,y);
if ( !nrects || rect->y != gy || rect->x+rect->w != gx ) {
@@ -161,8 +170,10 @@ static void update_screen(int x0, int y0, int x1, int y1)
{
SDL_UnlockSurface(rscreen);
- SDL_UpdateRect(rscreen, x0*FONT_XSIZE, y0*FONT_YSIZE,
- (x1-x0+1)*FONT_XSIZE, (y1-y0+1)*FONT_YSIZE);
+ SDL_UpdateRect(rscreen, (x0*FONT_XSIZE*FONT_XDUP) << mode40,
+ y0*FONT_YSIZE*FONT_YDUP,
+ ((x1-x0+1)*FONT_XSIZE*FONT_XDUP) << mode40,
+ (y1-y0+1)*FONT_YSIZE*FONT_YDUP);
}
/*
@@ -174,13 +185,17 @@ screen_write(int addr, int value)
int x, y, xx;
int old;
unsigned char *p;
+ int width = TS_WIDTH >> mode40;
- x = addr_to_xy[addr].x;
- y = addr_to_xy[addr].y;
-
- if ( addr_to_xy[addr].y == -1 )
+ addr = ((addr & 0x800) >> 1) | (addr & 0x3ff);
+
+ x = addr_to_xy[mode40][addr].x;
+ y = addr_to_xy[mode40][addr].y;
+ if ( y == -1 )
return; /* Nothing to do */
+ lock_screen();
+
p = &screendata[addr];
old = *p;
@@ -190,14 +205,33 @@ screen_write(int addr, int value)
if ( (old & 0x78) == 0 || (value & 0x78) == 0 ) {
/* Graphics control character change */
- for ( xx = x+1 ; xx < TS_WIDTH ; xx++ )
+ for ( xx = x+1 ; xx < width ; xx++ )
put_screen(xx,y);
- xx = TS_WIDTH-1;
+ xx = width-1;
}
update_screen(x,y,xx,y);
}
+void setmode40(int m)
+{
+ int x, y, width;
+
+ if (m != mode40) {
+ mode40 = !!m;
+
+ width = TS_WIDTH >> mode40;
+
+ lock_screen();
+
+ for (y = 0; y < TS_HEIGHT; y++)
+ for (x = 0; x < width; x++)
+ put_screen(x, y);
+
+ update_screen(0,0,width-1,23);
+ }
+}
+
/*
* Initialize SDL and the data structures
*/
@@ -205,7 +239,7 @@ void screen_init(void)
{
int window = 1; /* True = run in a window */
int debug = 1; /* False = force clean shutdown */
- int i, x, y;
+ int i, j, x, y;
if ( SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO
| (debug ? SDL_INIT_NOPARACHUTE : 0)) )
@@ -229,18 +263,24 @@ void screen_init(void)
}
/* Initialize reverse mapping table */
- for ( i = 0 ; i < 1024 ; i++ ) {
- addr_to_xy[i].x = -1;
- addr_to_xy[i].y = -1;
- }
- for ( y = 0 ; y < 24 ; y++ ) {
- for ( x = 0 ; x < 40 ; x++ ) {
- int p = screenptr(y,x)-screendata;
- addr_to_xy[p].x = x;
- addr_to_xy[p].y = y;
+ for ( i = 0 ; i < 2 ; i++ ) {
+ mode40 = i;
+
+ for ( j = 0 ; j < 2048 ; j++ ) {
+ addr_to_xy[i][j].x = -1;
+ addr_to_xy[i][j].y = -1;
+ }
+
+ for ( y = 0 ; y < TS_HEIGHT ; y++ ) {
+ for ( x = 0 ; x < (TS_WIDTH >> i); x++ ) {
+ int p = screenptr(y,x)-screendata;
+ addr_to_xy[i][p].x = x;
+ addr_to_xy[i][p].y = y;
+ }
}
}
+ mode40 = 1;
/* Blink timer */
SDL_AddTimer(400, post_periodic, (void *)toggle_blink);