[libticalcs] 01/01: Imported Upstream version 1.1.8+dfsg1
Andreas B. Mundt
andi at alioth.debian.org
Wed Aug 21 07:12:31 UTC 2013
This is an automated email from the git hooks/post-receive script.
andi pushed a commit to branch upstream
in repository libticalcs.
commit 32540bd5141e4ecbe7550dc986e017119690e6dd
Author: Andreas B. Mundt <andi at debian.org>
Date: Wed Aug 21 00:02:51 2013 +0200
Imported Upstream version 1.1.8+dfsg1
---
src/rom73.h | 106 +----
src/rom82.h | 160 +------
src/rom83.h | 99 +----
src/rom83p.h | 113 +----
src/rom84p.h | 195 +--------
src/rom85.h | 155 +------
src/rom86.h | 88 +---
src/rom89.h | 182 +-------
src/rom89t.h | 219 +---------
src/rom92f2.h | 161 +------
src/romdump_84p_usb/romdump.z80 | 918 +++++++++++++++++++++++++++++++++++++++
src/romdump_8x/data.asm | 49 +++
src/romdump_8x/defs.inc | 40 ++
src/romdump_8x/display.asm | 96 ++++
src/romdump_8x/display82.asm | 138 ++++++
src/romdump_8x/display85.asm | 159 +++++++
src/romdump_8x/font.asm | 412 ++++++++++++++++++
src/romdump_8x/link.asm | 153 +++++++
src/romdump_8x/link83p.asm | 92 ++++
src/romdump_8x/linksw.asm | 227 ++++++++++
src/romdump_8x/main.asm | 238 ++++++++++
src/romdump_8x/packet.asm | 117 +++++
src/romdump_8x/romdump.asm | 324 ++++++++++++++
src/romdump_8x/romdump.inc | 35 ++
src/romdump_8x/ti73defs.inc | 81 ++++
src/romdump_8x/ti82defs.inc | 74 ++++
src/romdump_8x/ti83defs.inc | 71 +++
src/romdump_8x/ti83pdefs.inc | 93 ++++
src/romdump_8x/ti85defs.inc | 72 +++
src/romdump_8x/ti86defs.inc | 74 ++++
src/romdump_8x/unlock73.asm | 114 +++++
src/romdump_8x/unlock83p.asm | 167 +++++++
32 files changed, 3754 insertions(+), 1468 deletions(-)
diff --git a/src/rom73.h b/src/rom73.h
index 3af6816..125070a 100644
--- a/src/rom73.h
+++ b/src/rom73.h
@@ -1,107 +1,3 @@
static unsigned char romDump73[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x37, 0x33, 0x2a, 0x2a,
-0x1a, 0x0a, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0b,
-0x00, 0xf1, 0x02, 0x06, 0x52, 0x4f, 0x4d, 0x44,
-0x55, 0x4d, 0x50, 0x00, 0xf1, 0x02, 0xef, 0x02,
-0x5f, 0x30, 0x30, 0x30, 0x30, 0x31, 0x30, 0x30,
-0x35, 0x3f, 0x2a, 0x5d, 0x9a, 0xe9, 0x01, 0xd5,
-0x3f, 0x11, 0x2b, 0x01, 0x19, 0x11, 0x52, 0x8a,
-0x01, 0xb6, 0x01, 0xed, 0xb0, 0xfd, 0xcb, 0x1f,
-0xae, 0xfd, 0xcb, 0x08, 0x9e, 0xdb, 0x06, 0x32,
-0x13, 0x86, 0xcd, 0x53, 0x8a, 0x3a, 0x13, 0x86,
-0xd3, 0x06, 0x21, 0x00, 0x00, 0x22, 0x16, 0x86,
-0x22, 0x18, 0x86, 0xef, 0xd7, 0x44, 0xef, 0xad,
-0x44, 0x21, 0x00, 0x00, 0x22, 0xe2, 0x83, 0x21,
-0xd2, 0x8b, 0xef, 0x71, 0x44, 0x11, 0x04, 0x00,
-0xed, 0x53, 0xe2, 0x83, 0xef, 0x71, 0x44, 0xfb,
-0x76, 0xef, 0x0f, 0x40, 0xfe, 0x37, 0x28, 0x2f,
-0xcd, 0x6a, 0x8b, 0x28, 0xf2, 0xcd, 0xca, 0x8a,
-0x38, 0x53, 0xed, 0x5b, 0x26, 0x86, 0x21, 0x55,
-0xaa, 0xb7, 0xed, 0x52, 0x28, 0x09, 0x7a, 0xb7,
-0x20, 0x43, 0x43, 0x10, 0x0a, 0x18, 0xd8, 0x21,
-0x01, 0x00, 0xcd, 0x00, 0x8b, 0x18, 0xd0, 0x10,
-0x10, 0x21, 0x02, 0x00, 0xcd, 0x00, 0x8b, 0xef,
-0xad, 0x44, 0x21, 0x00, 0x00, 0x22, 0xe2, 0x83,
-0xc9, 0x10, 0x20, 0x21, 0x04, 0x8c, 0x22, 0x1e,
-0x86, 0x21, 0x04, 0x00, 0x22, 0x1c, 0x86, 0x21,
-0x03, 0x00, 0xcd, 0x08, 0x8b, 0x21, 0x02, 0x04,
-0x22, 0xe2, 0x83, 0x21, 0xfa, 0x8b, 0xef, 0x71,
-0x44, 0x18, 0x9c, 0x10, 0x1b, 0x21, 0x07, 0x00,
-0x22, 0xe2, 0x83, 0x21, 0xf2, 0x8b, 0xef, 0x71,
-0x44, 0x2a, 0x16, 0x86, 0x23, 0x22, 0x16, 0x86,
-0xef, 0x6e, 0x44, 0xcd, 0x5c, 0x8b, 0x18, 0xe1,
-0x10, 0xe3, 0x2a, 0x2a, 0x86, 0x3a, 0x2c, 0x86,
-0xcb, 0x24, 0x17, 0xcb, 0x24, 0x17, 0xd3, 0x06,
-0x37, 0xcb, 0x1c, 0xcb, 0x3c, 0x22, 0x1e, 0x86,
-0xcd, 0xc0, 0x8a, 0x20, 0x19, 0x67, 0x6f, 0x22,
-0x22, 0x86, 0x21, 0x00, 0x04, 0x22, 0x20, 0x86,
-0x21, 0x20, 0x86, 0x22, 0x1e, 0x86, 0x21, 0x04,
-0x00, 0x11, 0x07, 0x00, 0x18, 0x06, 0x21, 0x00,
-0x04, 0x11, 0x06, 0x00, 0x22, 0x1c, 0x86, 0xeb,
-0xcd, 0x08, 0x8b, 0x3a, 0x13, 0x86, 0xd3, 0x06,
-0x38, 0x9b, 0x21, 0x02, 0x00, 0x22, 0xe2, 0x83,
-0x2a, 0x18, 0x86, 0x23, 0x22, 0x18, 0x86, 0xef,
-0x6e, 0x44, 0x3e, 0x4b, 0xef, 0x6b, 0x44, 0x18,
-0x9d, 0xe9, 0xef, 0x8e, 0x4b, 0x48, 0x47, 0x21,
-0x91, 0x01, 0xb7, 0xed, 0x42, 0xd8, 0xf3, 0x3e,
-0x1c, 0xd3, 0x06, 0x21, 0x00, 0x40, 0x44, 0x4d,
-0x3e, 0xf5, 0xed, 0xb1, 0x37, 0xc0, 0xe5, 0xc5,
-0x11, 0xb0, 0x8a, 0x06, 0x0c, 0x1a, 0xbe, 0x20,
-0x0c, 0x23, 0x13, 0x10, 0xf8, 0x23, 0x23, 0x23,
-0x87, 0x06, 0x04, 0x20, 0xf0, 0xc1, 0xe1, 0x20,
-0xdf, 0xed, 0x73, 0x13, 0x86, 0x2b, 0xe5, 0x21,
-0xaa, 0x8a, 0x22, 0x15, 0x86, 0x21, 0x15, 0x86,
-0xe5, 0x11, 0x17, 0x86, 0xef, 0xfc, 0x46, 0x21,
-0xf0, 0xff, 0x39, 0xeb, 0xe1, 0x01, 0x14, 0x00,
-0xc9, 0xed, 0x7b, 0x13, 0x86, 0xaf, 0xc9, 0x3e,
-0x01, 0x00, 0xf3, 0x00, 0x00, 0xed, 0x56, 0xf3,
-0xd3, 0x14, 0xf3, 0xf1, 0xef, 0x54, 0x80, 0x7e,
-0x01, 0x00, 0x04, 0xed, 0xa1, 0xe0, 0x28, 0xfb,
-0xc9, 0x21, 0x00, 0x00, 0x11, 0x26, 0x86, 0x06,
-0x04, 0xcd, 0x45, 0x8b, 0xd8, 0x3a, 0x29, 0x86,
-0xc6, 0xff, 0xd8, 0x3a, 0x28, 0x86, 0xb7, 0x28,
-0x0b, 0x47, 0xc6, 0xbf, 0xd8, 0x11, 0x2a, 0x86,
-0xcd, 0x45, 0x8b, 0xd8, 0xe5, 0x11, 0x24, 0x86,
-0x06, 0x02, 0xcd, 0x45, 0x8b, 0xd1, 0xd8, 0x2a,
-0x24, 0x86, 0xed, 0x52, 0xc8, 0x37, 0xc9, 0xe5,
-0x21, 0x00, 0x00, 0x22, 0x1c, 0x86, 0xe1, 0x22,
-0x1a, 0x86, 0x21, 0x00, 0x00, 0x11, 0x1a, 0x86,
-0x01, 0x04, 0x00, 0xcd, 0x2f, 0x8b, 0xd8, 0xed,
-0x5b, 0x1e, 0x86, 0xed, 0x4b, 0x1c, 0x86, 0xcd,
-0x2f, 0x8b, 0xd8, 0x22, 0x24, 0x86, 0x11, 0x24,
-0x86, 0x01, 0x02, 0x00, 0x18, 0x00, 0x78, 0xb1,
-0xc8, 0x0b, 0xc5, 0x1a, 0x13, 0x4f, 0x06, 0x00,
-0x09, 0xd5, 0xe5, 0xcd, 0xa6, 0x8b, 0xe1, 0xd1,
-0xc1, 0xd8, 0x18, 0xea, 0xc5, 0xe5, 0xd5, 0xcd,
-0x70, 0x8b, 0xd1, 0xe1, 0x38, 0x0b, 0x06, 0x00,
-0x09, 0x79, 0x12, 0x13, 0xc1, 0x10, 0xed, 0xb7,
-0xc5, 0xc1, 0xc9, 0x06, 0xff, 0xf5, 0x3e, 0x00,
-0xd3, 0x00, 0xfb, 0x76, 0x76, 0x10, 0xfb, 0xf1,
-0xc9, 0xdb, 0x00, 0x2f, 0xe6, 0x03, 0xc9, 0xf3,
-0x3e, 0x00, 0xd3, 0x00, 0x06, 0x08, 0x16, 0xff,
-0xcd, 0x96, 0x8b, 0xd8, 0xc6, 0xfe, 0x3e, 0x02,
-0x30, 0x03, 0xc0, 0x3e, 0x01, 0xd3, 0x00, 0xcb,
-0x19, 0x14, 0xcd, 0x96, 0x8b, 0xd8, 0x3e, 0x00,
-0xd3, 0x00, 0x10, 0xe2, 0xc9, 0x21, 0xff, 0xff,
-0x2b, 0xdb, 0x00, 0xaa, 0xe6, 0x03, 0xc0, 0x7c,
-0xb5, 0x20, 0xf5, 0x37, 0xc9, 0xf3, 0x06, 0x08,
-0xcd, 0xbc, 0x8b, 0xd8, 0xcb, 0x19, 0x3e, 0x01,
-0x30, 0x02, 0x3e, 0x02, 0x14, 0xcd, 0xc0, 0x8b,
-0xd8, 0x10, 0xed, 0x3e, 0x00, 0x16, 0xff, 0xd3,
-0x00, 0x21, 0xff, 0xff, 0x2b, 0xdb, 0x00, 0xaa,
-0xe6, 0x03, 0xc8, 0x7c, 0xb5, 0x20, 0xf5, 0x37,
-0xc9, 0x44, 0x75, 0x6d, 0x70, 0x69, 0x6e, 0x67,
-0x20, 0x52, 0x4f, 0x4d, 0x2e, 0x2e, 0x2e, 0x00,
-0xc1, 0x4d, 0x4f, 0x44, 0x45, 0x5d, 0x20, 0x74,
-0x6f, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c,
-0x00, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x3a,
-0x00, 0x30, 0x4b, 0x20, 0x6f, 0x66, 0x20, 0x35,
-0x31, 0x32, 0x4b, 0x00, 0x00, 0x08, 0x00, 0x2e,
-0x2d,
};
-static unsigned int romDumpSize73 = 825;
+static unsigned int romDumpSize73 = 0;
diff --git a/src/rom82.h b/src/rom82.h
index 671dcb2..4c37745 100644
--- a/src/rom82.h
+++ b/src/rom82.h
@@ -1,161 +1,3 @@
static unsigned char romDump82[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x32, 0x2a, 0x2a,
-0x1a, 0x0a, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x04, 0x0b,
-0x00, 0xa5, 0x04, 0x03, 0x24, 0x52, 0x44, 0x00,
-0x00, 0x00, 0x00, 0x00, 0xa5, 0x04, 0xa3, 0x04,
-0x11, 0x65, 0x01, 0x19, 0x11, 0xa8, 0x82, 0x01,
-0x06, 0x02, 0xed, 0xb0, 0x22, 0x34, 0x84, 0xed,
-0x73, 0x1a, 0x82, 0x11, 0xde, 0xfc, 0x19, 0xcd,
-0xa8, 0x82, 0x2a, 0x10, 0x8d, 0x22, 0x12, 0x8d,
-0x2a, 0x0c, 0x8d, 0x22, 0x0e, 0x8d, 0x21, 0x08,
-0x00, 0x39, 0x5e, 0x23, 0x56, 0x21, 0x06, 0x00,
-0x19, 0x7e, 0x23, 0xae, 0x23, 0xae, 0xfe, 0xa1,
-0x20, 0x03, 0x3e, 0x40, 0xe9, 0xe1, 0xe1, 0xe1,
-0xf1, 0xd3, 0x02, 0x3e, 0x06, 0x32, 0x19, 0x82,
-0xc9, 0xfd, 0xcb, 0x08, 0x9e, 0xdb, 0x02, 0x32,
-0x28, 0x82, 0xcd, 0x53, 0x83, 0x21, 0x00, 0x00,
-0x22, 0x2b, 0x82, 0x22, 0x2d, 0x82, 0xfd, 0xcb,
-0x12, 0x86, 0xcd, 0x19, 0x84, 0x21, 0x00, 0x00,
-0x22, 0x0c, 0x80, 0x21, 0x78, 0x84, 0xcd, 0x10,
-0x84, 0x11, 0x04, 0x00, 0xed, 0x53, 0x0c, 0x80,
-0xcd, 0x10, 0x84, 0xfb, 0x76, 0xf3, 0x21, 0x00,
-0x80, 0x7e, 0x36, 0x00, 0xfe, 0x37, 0x28, 0x2f,
-0xcd, 0x76, 0x83, 0x28, 0xee, 0xcd, 0xb3, 0x82,
-0x38, 0x53, 0xed, 0x5b, 0x3b, 0x82, 0x21, 0x55,
-0xaa, 0xb7, 0xed, 0x52, 0x28, 0x09, 0x7a, 0xb7,
-0x20, 0x43, 0x43, 0x10, 0x0a, 0x18, 0xd4, 0x21,
-0x01, 0x00, 0xcd, 0xe9, 0x82, 0x18, 0xcc, 0x10,
-0x10, 0x21, 0x02, 0x00, 0xcd, 0xe9, 0x82, 0xcd,
-0x19, 0x84, 0x21, 0x00, 0x00, 0x22, 0x0c, 0x80,
-0xc9, 0x10, 0x20, 0x21, 0xaa, 0x84, 0x22, 0x33,
-0x82, 0x21, 0x04, 0x00, 0x22, 0x31, 0x82, 0x21,
-0x03, 0x00, 0xcd, 0xf1, 0x82, 0x21, 0x02, 0x04,
-0x22, 0x0c, 0x80, 0x21, 0xa0, 0x84, 0xcd, 0x10,
-0x84, 0x18, 0x98, 0x10, 0x1b, 0x21, 0x07, 0x00,
-0x22, 0x0c, 0x80, 0x21, 0x98, 0x84, 0xcd, 0x10,
-0x84, 0x2a, 0x2b, 0x82, 0x23, 0x22, 0x2b, 0x82,
-0xcd, 0xe4, 0x83, 0xcd, 0x45, 0x83, 0x18, 0xe1,
-0x10, 0xe3, 0x2a, 0x3f, 0x82, 0x3a, 0x41, 0x82,
-0xcb, 0x24, 0x17, 0xcb, 0x24, 0x17, 0xe6, 0x07,
-0xf6, 0x88, 0xd3, 0x02, 0x37, 0xcb, 0x1c, 0xcb,
-0x3c, 0x22, 0x33, 0x82, 0xcd, 0xa9, 0x82, 0x20,
-0x19, 0x67, 0x6f, 0x22, 0x37, 0x82, 0x21, 0x00,
-0x04, 0x22, 0x35, 0x82, 0x21, 0x35, 0x82, 0x22,
-0x33, 0x82, 0x21, 0x04, 0x00, 0x11, 0x07, 0x00,
-0x18, 0x06, 0x21, 0x00, 0x04, 0x11, 0x06, 0x00,
-0x22, 0x31, 0x82, 0xeb, 0xcd, 0xf1, 0x82, 0x3a,
-0x28, 0x82, 0xd3, 0x02, 0x38, 0x97, 0x21, 0x02,
-0x00, 0x22, 0x0c, 0x80, 0x2a, 0x2d, 0x82, 0x23,
-0x22, 0x2d, 0x82, 0xcd, 0xe4, 0x83, 0x3e, 0x4b,
-0xcd, 0x30, 0x84, 0x18, 0x99, 0xe9, 0x7e, 0x01,
-0x00, 0x04, 0xed, 0xa1, 0xe0, 0x28, 0xfb, 0xc9,
-0x21, 0x00, 0x00, 0x11, 0x3b, 0x82, 0x06, 0x04,
-0xcd, 0x2e, 0x83, 0xd8, 0x3a, 0x3e, 0x82, 0xc6,
-0xff, 0xd8, 0x3a, 0x3d, 0x82, 0xb7, 0x28, 0x0b,
-0x47, 0xc6, 0xbf, 0xd8, 0x11, 0x3f, 0x82, 0xcd,
-0x2e, 0x83, 0xd8, 0xe5, 0x11, 0x39, 0x82, 0x06,
-0x02, 0xcd, 0x2e, 0x83, 0xd1, 0xd8, 0x2a, 0x39,
-0x82, 0xed, 0x52, 0xc8, 0x37, 0xc9, 0xe5, 0x21,
-0x00, 0x00, 0x22, 0x31, 0x82, 0xe1, 0x22, 0x2f,
-0x82, 0x21, 0x00, 0x00, 0x11, 0x2f, 0x82, 0x01,
-0x04, 0x00, 0xcd, 0x18, 0x83, 0xd8, 0xed, 0x5b,
-0x33, 0x82, 0xed, 0x4b, 0x31, 0x82, 0xcd, 0x18,
-0x83, 0xd8, 0x22, 0x39, 0x82, 0x11, 0x39, 0x82,
-0x01, 0x02, 0x00, 0x18, 0x00, 0x78, 0xb1, 0xc8,
-0x0b, 0xc5, 0x1a, 0x13, 0x4f, 0x06, 0x00, 0x09,
-0xd5, 0xe5, 0xcd, 0xb5, 0x83, 0xe1, 0xd1, 0xc1,
-0xd8, 0x18, 0xea, 0xc5, 0xe5, 0xd5, 0xcd, 0x7c,
-0x83, 0xd1, 0xe1, 0x38, 0x0b, 0x06, 0x00, 0x09,
-0x79, 0x12, 0x13, 0xc1, 0x10, 0xed, 0xb7, 0xc5,
-0xc1, 0xc9, 0x06, 0xff, 0xf5, 0x3e, 0xc0, 0xd3,
-0x00, 0xfb, 0x76, 0x76, 0x10, 0xfb, 0xf1, 0xc9,
-0xf3, 0x3e, 0xc0, 0xd3, 0x00, 0x01, 0x03, 0xfe,
-0x21, 0xd4, 0xe8, 0xdb, 0x00, 0xe6, 0x0c, 0x28,
-0x06, 0x01, 0x0c, 0xf8, 0x21, 0xc1, 0xc2, 0x79,
-0x32, 0x7a, 0x83, 0x78, 0x32, 0x8a, 0x83, 0x22,
-0x29, 0x82, 0xc9, 0xdb, 0x00, 0x2f, 0xe6, 0x00,
-0xc9, 0xf3, 0x3e, 0xc0, 0xd3, 0x00, 0x06, 0x08,
-0x16, 0xff, 0xcd, 0xa4, 0x83, 0xd8, 0xc6, 0x00,
-0x3a, 0x2a, 0x82, 0x30, 0x04, 0xc0, 0x3a, 0x29,
-0x82, 0xd3, 0x00, 0xcb, 0x19, 0x14, 0xcd, 0xa4,
-0x83, 0xd8, 0x3e, 0xc0, 0xd3, 0x00, 0x10, 0xe0,
-0xc9, 0x21, 0xff, 0xff, 0x2b, 0xdb, 0x00, 0xaa,
-0xcd, 0x79, 0x83, 0xc0, 0x7c, 0xb5, 0x20, 0xf4,
-0x37, 0xc9, 0xf3, 0x06, 0x08, 0xcd, 0xcd, 0x83,
-0xd8, 0xcb, 0x19, 0x3a, 0x29, 0x82, 0x30, 0x03,
-0x3a, 0x2a, 0x82, 0x14, 0xcd, 0xd1, 0x83, 0xd8,
-0x10, 0xeb, 0x3e, 0xc0, 0x16, 0xff, 0xd3, 0x00,
-0x21, 0xff, 0xff, 0x2b, 0xdb, 0x00, 0xaa, 0xcd,
-0x79, 0x83, 0xc8, 0x7c, 0xb5, 0x20, 0xf4, 0x37,
-0xc9, 0x06, 0x05, 0xeb, 0x3e, 0x20, 0xcd, 0x30,
-0x84, 0x10, 0xf9, 0x21, 0x0d, 0x80, 0x7e, 0xf5,
-0x35, 0xeb, 0x01, 0x0a, 0x10, 0xaf, 0x29, 0x8f,
-0xb9, 0x38, 0x02, 0x91, 0x2c, 0x10, 0xf7, 0xeb,
-0xc6, 0x30, 0xcd, 0x30, 0x84, 0x35, 0x7a, 0xb3,
-0x20, 0xe6, 0xf1, 0x77, 0xc9, 0x7e, 0x23, 0xb7,
-0xc8, 0xcd, 0x30, 0x84, 0x18, 0xf7, 0x3e, 0x20,
-0x4f, 0xcd, 0x6a, 0x84, 0x06, 0x40, 0xcd, 0x72,
-0x84, 0xaf, 0xd3, 0x11, 0x10, 0xf8, 0x79, 0x3c,
-0xfe, 0x2c, 0x38, 0xec, 0xc9, 0xe5, 0xd5, 0xc5,
-0x21, 0x00, 0x00, 0x01, 0x08, 0x00, 0xbe, 0x28,
-0x03, 0x09, 0x30, 0xfa, 0x23, 0xaf, 0xcd, 0x6a,
-0x84, 0x11, 0x0d, 0x80, 0x1a, 0x3c, 0x12, 0x3d,
-0xf6, 0x20, 0xcd, 0x6a, 0x84, 0x1b, 0x1a, 0x87,
-0x87, 0x87, 0xf6, 0x80, 0xcd, 0x6a, 0x84, 0x06,
-0x07, 0xcd, 0x72, 0x84, 0x7e, 0xd3, 0x11, 0x23,
-0x10, 0xf7, 0xc1, 0xd1, 0xe1, 0x3e, 0x01, 0xf5,
-0xcd, 0x72, 0x84, 0xf1, 0xd3, 0x10, 0xc9, 0xdb,
-0x10, 0x87, 0x38, 0xfb, 0xc9, 0x44, 0x75, 0x6d,
-0x70, 0x69, 0x6e, 0x67, 0x20, 0x52, 0x4f, 0x4d,
-0x2e, 0x2e, 0x2e, 0x00, 0x5b, 0x4d, 0x4f, 0x44,
-0x45, 0x5d, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x61,
-0x6e, 0x63, 0x65, 0x6c, 0x00, 0x45, 0x72, 0x72,
-0x6f, 0x72, 0x73, 0x3a, 0x00, 0x30, 0x4b, 0x20,
-0x6f, 0x66, 0x20, 0x31, 0x32, 0x38, 0x4b, 0x00,
-0x00, 0x02, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x2e, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x0c, 0x0c, 0x3a, 0x00, 0x0c, 0x0c, 0x00,
-0x0c, 0x0c, 0x00, 0x5b, 0x0c, 0x08, 0x08, 0x08,
-0x08, 0x08, 0x0c, 0x5d, 0x18, 0x08, 0x08, 0x08,
-0x08, 0x08, 0x18, 0x30, 0x1c, 0x22, 0x26, 0x2a,
-0x32, 0x22, 0x1c, 0x31, 0x08, 0x18, 0x08, 0x08,
-0x08, 0x08, 0x1c, 0x32, 0x1c, 0x22, 0x02, 0x04,
-0x08, 0x10, 0x3e, 0x33, 0x3e, 0x04, 0x08, 0x04,
-0x02, 0x22, 0x1c, 0x34, 0x04, 0x0c, 0x14, 0x24,
-0x3e, 0x04, 0x04, 0x35, 0x3e, 0x20, 0x3c, 0x02,
-0x02, 0x22, 0x1c, 0x36, 0x0c, 0x10, 0x20, 0x3c,
-0x22, 0x22, 0x1c, 0x37, 0x3e, 0x02, 0x04, 0x08,
-0x10, 0x10, 0x10, 0x38, 0x1c, 0x22, 0x22, 0x1c,
-0x22, 0x22, 0x1c, 0x39, 0x1c, 0x22, 0x22, 0x1e,
-0x02, 0x04, 0x18, 0x44, 0x3c, 0x22, 0x22, 0x22,
-0x22, 0x22, 0x3c, 0x45, 0x3e, 0x20, 0x20, 0x3c,
-0x20, 0x20, 0x3e, 0x49, 0x1c, 0x08, 0x08, 0x08,
-0x08, 0x08, 0x1c, 0x4b, 0x22, 0x24, 0x28, 0x30,
-0x28, 0x24, 0x22, 0x4d, 0x22, 0x36, 0x2a, 0x2a,
-0x22, 0x22, 0x22, 0x4f, 0x1c, 0x22, 0x22, 0x22,
-0x22, 0x22, 0x1c, 0x52, 0x3c, 0x22, 0x22, 0x3c,
-0x28, 0x24, 0x22, 0x54, 0x3e, 0x08, 0x08, 0x08,
-0x08, 0x08, 0x08, 0x58, 0x22, 0x22, 0x14, 0x08,
-0x14, 0x22, 0x22, 0x61, 0x00, 0x00, 0x1c, 0x02,
-0x1e, 0x22, 0x1e, 0x63, 0x00, 0x00, 0x1c, 0x20,
-0x20, 0x22, 0x1c, 0x65, 0x00, 0x00, 0x1c, 0x22,
-0x3e, 0x20, 0x1c, 0x66, 0x0c, 0x12, 0x10, 0x38,
-0x10, 0x10, 0x10, 0x67, 0x00, 0x1e, 0x22, 0x22,
-0x1e, 0x02, 0x1c, 0x69, 0x08, 0x00, 0x18, 0x08,
-0x08, 0x08, 0x1c, 0x6c, 0x18, 0x08, 0x08, 0x08,
-0x08, 0x08, 0x1c, 0x6d, 0x00, 0x00, 0x34, 0x2a,
-0x2a, 0x22, 0x22, 0x6e, 0x00, 0x00, 0x2c, 0x32,
-0x22, 0x22, 0x22, 0x6f, 0x00, 0x00, 0x1c, 0x22,
-0x22, 0x22, 0x1c, 0x70, 0x00, 0x00, 0x3c, 0x22,
-0x3c, 0x20, 0x20, 0x72, 0x00, 0x00, 0x2c, 0x32,
-0x20, 0x20, 0x20, 0x73, 0x00, 0x00, 0x1c, 0x20,
-0x1c, 0x02, 0x3c, 0x74, 0x10, 0x10, 0x38, 0x10,
-0x10, 0x12, 0x0c, 0x75, 0x00, 0x00, 0x22, 0x22,
-0x22, 0x26, 0x1a, 0xde, 0x86,
};
-static unsigned int romDumpSize82 = 1261;
+static unsigned int romDumpSize82 = 0;
diff --git a/src/rom83.h b/src/rom83.h
index 72eefe2..5a716d0 100644
--- a/src/rom83.h
+++ b/src/rom83.h
@@ -1,100 +1,3 @@
static unsigned char romDump83[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x33, 0x2a, 0x2a,
-0x1a, 0x0a, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x02, 0x0b,
-0x00, 0xbb, 0x02, 0x06, 0x52, 0x4f, 0x4d, 0x44,
-0x55, 0x4d, 0x50, 0x00, 0xbb, 0x02, 0xb9, 0x02,
-0x43, 0x44, 0x32, 0x36, 0x34, 0x34, 0x32, 0x31,
-0x31, 0x39, 0x30, 0x30, 0x31, 0x39, 0x45, 0x39,
-0xd4, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x3f, 0x11,
-0x37, 0x01, 0x19, 0x11, 0xe5, 0x82, 0x01, 0x63,
-0x01, 0xed, 0xb0, 0xfd, 0xcb, 0x08, 0x9e, 0xdb,
-0x02, 0x32, 0x65, 0x82, 0xdb, 0x00, 0xe6, 0x10,
-0xf6, 0xc0, 0x32, 0x66, 0x82, 0x21, 0x00, 0x00,
-0x22, 0x68, 0x82, 0x22, 0x6a, 0x82, 0xcd, 0x95,
-0x47, 0xcd, 0x5d, 0x47, 0x21, 0x00, 0x00, 0x22,
-0x0c, 0x80, 0x21, 0x12, 0x84, 0xcd, 0x0d, 0x47,
-0x11, 0x04, 0x00, 0xed, 0x53, 0x0c, 0x80, 0xcd,
-0x0d, 0x47, 0xfb, 0x76, 0xcd, 0x14, 0x40, 0xfe,
-0x37, 0x28, 0x2f, 0xcd, 0xaa, 0x83, 0x28, 0xf2,
-0xcd, 0xf0, 0x82, 0x38, 0x53, 0xed, 0x5b, 0x78,
-0x82, 0x21, 0x55, 0xaa, 0xb7, 0xed, 0x52, 0x28,
-0x09, 0x7a, 0xb7, 0x20, 0x43, 0x43, 0x10, 0x0a,
-0x18, 0xd8, 0x21, 0x01, 0x00, 0xcd, 0x26, 0x83,
-0x18, 0xd0, 0x10, 0x10, 0x21, 0x02, 0x00, 0xcd,
-0x26, 0x83, 0xcd, 0x5d, 0x47, 0x21, 0x00, 0x00,
-0x22, 0x0c, 0x80, 0xc9, 0x10, 0x20, 0x21, 0x44,
-0x84, 0x22, 0x70, 0x82, 0x21, 0x04, 0x00, 0x22,
-0x6e, 0x82, 0x21, 0x03, 0x00, 0xcd, 0x2e, 0x83,
-0x21, 0x02, 0x04, 0x22, 0x0c, 0x80, 0x21, 0x3a,
-0x84, 0xcd, 0x0d, 0x47, 0x18, 0x9c, 0x10, 0x1b,
-0x21, 0x07, 0x00, 0x22, 0x0c, 0x80, 0x21, 0x32,
-0x84, 0xcd, 0x0d, 0x47, 0x2a, 0x68, 0x82, 0x23,
-0x22, 0x68, 0x82, 0xcd, 0x09, 0x47, 0xcd, 0x98,
-0x83, 0x18, 0xe1, 0x10, 0xe3, 0x2a, 0x7c, 0x82,
-0x3a, 0x7e, 0x82, 0xcb, 0x24, 0x17, 0xcb, 0x24,
-0x17, 0xf5, 0xe6, 0x08, 0x07, 0xf6, 0xc0, 0xd3,
-0x00, 0xf1, 0xe6, 0x07, 0xf6, 0x88, 0xd3, 0x02,
-0x37, 0xcb, 0x1c, 0xcb, 0x3c, 0x22, 0x70, 0x82,
-0xcd, 0xe6, 0x82, 0x20, 0x19, 0x67, 0x6f, 0x22,
-0x74, 0x82, 0x21, 0x00, 0x04, 0x22, 0x72, 0x82,
-0x21, 0x72, 0x82, 0x22, 0x70, 0x82, 0x21, 0x04,
-0x00, 0x11, 0x07, 0x00, 0x18, 0x06, 0x21, 0x00,
-0x04, 0x11, 0x06, 0x00, 0x22, 0x6e, 0x82, 0xeb,
-0xcd, 0x2e, 0x83, 0x3a, 0x66, 0x82, 0xd3, 0x00,
-0x3a, 0x65, 0x82, 0xd3, 0x02, 0x38, 0x89, 0x21,
-0x02, 0x00, 0x22, 0x0c, 0x80, 0x2a, 0x6a, 0x82,
-0x23, 0x22, 0x6a, 0x82, 0xcd, 0x09, 0x47, 0x3e,
-0x4b, 0xcd, 0x05, 0x47, 0x18, 0x8b, 0xe9, 0x7e,
-0x01, 0x00, 0x04, 0xed, 0xa1, 0xe0, 0x28, 0xfb,
-0xc9, 0x21, 0x00, 0x00, 0x11, 0x78, 0x82, 0x06,
-0x04, 0xcd, 0x77, 0x83, 0xd8, 0x3a, 0x7b, 0x82,
-0xc6, 0xff, 0xd8, 0x3a, 0x7a, 0x82, 0xb7, 0x28,
-0x0b, 0x47, 0xc6, 0xbf, 0xd8, 0x11, 0x7c, 0x82,
-0xcd, 0x77, 0x83, 0xd8, 0xe5, 0x11, 0x76, 0x82,
-0x06, 0x02, 0xcd, 0x77, 0x83, 0xd1, 0xd8, 0x2a,
-0x76, 0x82, 0xed, 0x52, 0xc8, 0x37, 0xc9, 0xe5,
-0x21, 0x00, 0x00, 0x22, 0x6e, 0x82, 0xe1, 0x22,
-0x6c, 0x82, 0x21, 0x00, 0x00, 0x11, 0x6c, 0x82,
-0x01, 0x04, 0x00, 0xcd, 0x55, 0x83, 0xd8, 0xed,
-0x5b, 0x70, 0x82, 0xed, 0x4b, 0x6e, 0x82, 0xcd,
-0x55, 0x83, 0xd8, 0x22, 0x76, 0x82, 0x11, 0x76,
-0x82, 0x01, 0x02, 0x00, 0x18, 0x00, 0x78, 0xb1,
-0xc8, 0x0b, 0xc5, 0xdb, 0x00, 0xe6, 0x10, 0xf6,
-0xc0, 0xf5, 0x1a, 0x13, 0x4f, 0x06, 0x00, 0x09,
-0xd5, 0xe5, 0xcd, 0xe6, 0x83, 0xe1, 0xd1, 0xc1,
-0x0e, 0x00, 0xed, 0x41, 0xc1, 0xd8, 0x18, 0xde,
-0xdb, 0x00, 0xe6, 0x10, 0xf6, 0xc0, 0x4f, 0xc5,
-0xe5, 0xd5, 0xcd, 0xb0, 0x83, 0xd1, 0xe1, 0x38,
-0x0b, 0x06, 0x00, 0x09, 0x79, 0x12, 0x13, 0xc1,
-0x10, 0xed, 0xb7, 0xc5, 0xc1, 0x79, 0xd3, 0x00,
-0xc9, 0x06, 0xff, 0xf5, 0xdb, 0x00, 0xe6, 0x10,
-0xf6, 0xc0, 0xd3, 0x00, 0xfb, 0x76, 0x76, 0x10,
-0xfb, 0xf1, 0xc9, 0xdb, 0x00, 0x2f, 0xe6, 0x0c,
-0xc9, 0xf3, 0x3e, 0xc0, 0xd3, 0x00, 0x06, 0x08,
-0x16, 0xff, 0xcd, 0xd6, 0x83, 0xd8, 0xc6, 0xf8,
-0x3e, 0xc2, 0x30, 0x03, 0xc0, 0x3e, 0xc1, 0xd3,
-0x00, 0xcb, 0x19, 0x14, 0xcd, 0xd6, 0x83, 0xd8,
-0x3e, 0xc0, 0xd3, 0x00, 0x10, 0xe2, 0xc9, 0x21,
-0xff, 0xff, 0x2b, 0xdb, 0x00, 0xaa, 0xe6, 0x0c,
-0xc0, 0x7c, 0xb5, 0x20, 0xf5, 0x37, 0xc9, 0xf3,
-0x06, 0x08, 0xcd, 0xfc, 0x83, 0xd8, 0xcb, 0x19,
-0x3e, 0xc1, 0x30, 0x02, 0x3e, 0xc2, 0x14, 0xcd,
-0x00, 0x84, 0xd8, 0x10, 0xed, 0x3e, 0xc0, 0x16,
-0xff, 0xd3, 0x00, 0x21, 0xff, 0xff, 0x2b, 0xdb,
-0x00, 0xaa, 0xe6, 0x0c, 0xc8, 0x7c, 0xb5, 0x20,
-0xf5, 0x37, 0xc9, 0x44, 0x75, 0x6d, 0x70, 0x69,
-0x6e, 0x67, 0x20, 0x52, 0x4f, 0x4d, 0x2e, 0x2e,
-0x2e, 0x00, 0xc1, 0x4d, 0x4f, 0x44, 0x45, 0x5d,
-0x20, 0x74, 0x6f, 0x20, 0x63, 0x61, 0x6e, 0x63,
-0x65, 0x6c, 0x00, 0x45, 0x72, 0x72, 0x6f, 0x72,
-0x73, 0x3a, 0x00, 0x30, 0x4b, 0x20, 0x6f, 0x66,
-0x20, 0x32, 0x35, 0x36, 0x4b, 0x00, 0x00, 0x04,
-0x00, 0xd4, 0x3f, 0x30, 0x30, 0x30, 0x30, 0x3f,
-0xd4, 0x93, 0x1b,
};
-static unsigned int romDumpSize83 = 771;
+static unsigned int romDumpSize83 = 0;
diff --git a/src/rom83p.h b/src/rom83p.h
index 75362e3..945edbb 100644
--- a/src/rom83p.h
+++ b/src/rom83p.h
@@ -1,114 +1,3 @@
static unsigned char romDump8Xp[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x33, 0x46, 0x2a,
-0x1a, 0x0a, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x03, 0x0d,
-0x00, 0x2d, 0x03, 0x06, 0x52, 0x4f, 0x4d, 0x44,
-0x55, 0x4d, 0x50, 0x00, 0x00, 0x00, 0x2d, 0x03,
-0x2b, 0x03, 0xbb, 0x6d, 0xdb, 0x02, 0x07, 0xe6,
-0x01, 0xd3, 0x20, 0xfd, 0xcb, 0x1f, 0xae, 0xfd,
-0xcb, 0x08, 0x9e, 0xdb, 0x06, 0x32, 0xec, 0x86,
-0xcd, 0xf1, 0x9e, 0x3a, 0xec, 0x86, 0xd3, 0x06,
-0xdb, 0x02, 0x87, 0x30, 0x10, 0x3e, 0x01, 0xd3,
-0x20, 0xdb, 0x21, 0xe6, 0x03, 0x3e, 0x10, 0x28,
-0x01, 0x87, 0x32, 0xbc, 0xa0, 0x21, 0x00, 0x00,
-0x22, 0xef, 0x86, 0x22, 0xf1, 0x86, 0xef, 0x70,
-0x45, 0xef, 0x46, 0x45, 0x21, 0x00, 0x00, 0x22,
-0x4b, 0x84, 0x21, 0x8c, 0xa0, 0xef, 0x0a, 0x45,
-0x11, 0x04, 0x00, 0xed, 0x53, 0x4b, 0x84, 0xef,
-0x0a, 0x45, 0xfb, 0x76, 0xef, 0x18, 0x40, 0xfe,
-0x37, 0x28, 0x2f, 0xcd, 0x5f, 0xa0, 0x28, 0xf2,
-0xcd, 0xb6, 0x9f, 0x38, 0x62, 0xed, 0x5b, 0xff,
-0x86, 0x21, 0x55, 0xaa, 0xb7, 0xed, 0x52, 0x28,
-0x09, 0x7a, 0xb7, 0x20, 0x52, 0x43, 0x10, 0x0a,
-0x18, 0xd8, 0x21, 0x01, 0x00, 0xcd, 0xec, 0x9f,
-0x18, 0xd0, 0x10, 0x10, 0x21, 0x02, 0x00, 0xcd,
-0xec, 0x9f, 0xef, 0x46, 0x45, 0x21, 0x00, 0x00,
-0x22, 0x4b, 0x84, 0xc9, 0x10, 0x2f, 0x21, 0xba,
-0xa0, 0x22, 0xf7, 0x86, 0x21, 0x04, 0x00, 0x22,
-0xf5, 0x86, 0x21, 0x03, 0x00, 0xcd, 0xf4, 0x9f,
-0x21, 0x02, 0x04, 0x22, 0x4b, 0x84, 0x21, 0xb4,
-0xa0, 0xef, 0x0a, 0x45, 0x2a, 0xbb, 0xa0, 0xcb,
-0x3c, 0xcb, 0x3c, 0xef, 0x07, 0x45, 0x3e, 0x4b,
-0xef, 0x04, 0x45, 0x18, 0x8d, 0x10, 0x1b, 0x21,
-0x07, 0x00, 0x22, 0x4b, 0x84, 0x21, 0xac, 0xa0,
-0xef, 0x0a, 0x45, 0x2a, 0xef, 0x86, 0x23, 0x22,
-0xef, 0x86, 0xef, 0x07, 0x45, 0xcd, 0x48, 0xa0,
-0x18, 0xe1, 0x10, 0xe3, 0x2a, 0x03, 0x87, 0x3a,
-0x05, 0x87, 0xcb, 0x24, 0x17, 0xcb, 0x24, 0x17,
-0xd3, 0x06, 0x37, 0xcb, 0x1c, 0xcb, 0x3c, 0x22,
-0xf7, 0x86, 0xcd, 0xac, 0x9f, 0x20, 0x19, 0x67,
-0x6f, 0x22, 0xfb, 0x86, 0x21, 0x00, 0x04, 0x22,
-0xf9, 0x86, 0x21, 0xf9, 0x86, 0x22, 0xf7, 0x86,
-0x21, 0x04, 0x00, 0x11, 0x07, 0x00, 0x18, 0x06,
-0x21, 0x00, 0x04, 0x11, 0x06, 0x00, 0x22, 0xf5,
-0x86, 0xeb, 0xcd, 0xf4, 0x9f, 0x3a, 0xec, 0x86,
-0xd3, 0x06, 0x38, 0x9b, 0x21, 0x02, 0x00, 0x22,
-0x4b, 0x84, 0x2a, 0xf1, 0x86, 0x23, 0x22, 0xf1,
-0x86, 0xef, 0x07, 0x45, 0x3e, 0x4b, 0xef, 0x04,
-0x45, 0x18, 0x9d, 0xe9, 0x01, 0x13, 0x01, 0x01,
-0x01, 0x13, 0x01, 0x00, 0x02, 0x37, 0x01, 0x03,
-0x02, 0x37, 0x01, 0x03, 0x02, 0x38, 0x01, 0x03,
-0xef, 0x6f, 0x4c, 0x4f, 0xef, 0xba, 0x80, 0x6f,
-0xc6, 0xfc, 0xd8, 0x3c, 0x20, 0x05, 0xcb, 0x40,
-0x20, 0x01, 0x2c, 0x26, 0x00, 0x29, 0x29, 0x11,
-0xdd, 0x9e, 0x19, 0x79, 0xcd, 0xa5, 0x9f, 0xd8,
-0x23, 0xef, 0xb7, 0x80, 0xcd, 0xa5, 0x9f, 0xd8,
-0xf3, 0xfd, 0xe5, 0x11, 0x09, 0x7b, 0x7b, 0x32,
-0xee, 0x83, 0xd3, 0x06, 0x1a, 0x47, 0xc5, 0xd5,
-0xcd, 0x91, 0x9f, 0x7b, 0xef, 0xc6, 0x80, 0x21,
-0x80, 0x9f, 0x11, 0x38, 0x98, 0xef, 0xda, 0x47,
-0xed, 0x73, 0x3c, 0x98, 0xcd, 0x44, 0x9f, 0xf1,
-0xc1, 0x18, 0x4a, 0x3a, 0x94, 0x50, 0x57, 0x21,
-0x00, 0x81, 0x01, 0x30, 0x01, 0x3e, 0xed, 0xed,
-0xb1, 0xc0, 0x7e, 0xd6, 0xa0, 0x20, 0xf6, 0x4e,
-0x47, 0x23, 0x22, 0xdb, 0x84, 0x2a, 0x92, 0x50,
-0x3c, 0x32, 0x34, 0x98, 0xb7, 0xc4, 0x91, 0x9f,
-0x3e, 0x3a, 0xed, 0xb1, 0xc0, 0x11, 0x63, 0x9f,
-0x1a, 0xbe, 0x20, 0xf4, 0x23, 0x13, 0xfe, 0xc4,
-0x20, 0xf6, 0xef, 0x09, 0x40, 0xfd, 0x21, 0x31,
-0x00, 0xe9, 0x31, 0x00, 0x00, 0xe1, 0xf1, 0x77,
-0xbe, 0x20, 0xfd, 0x36, 0xf0, 0xfd, 0xe1, 0xc9,
-0xdb, 0x02, 0x87, 0x3e, 0x1f, 0x30, 0x09, 0xdb,
-0x21, 0xe6, 0x03, 0x3e, 0x7f, 0x20, 0x01, 0x1f,
-0xa2, 0xd3, 0x06, 0xc9, 0xbe, 0x23, 0x3f, 0xc0,
-0x7e, 0xb8, 0xc9, 0x7e, 0x01, 0x00, 0x04, 0xed,
-0xa1, 0xe0, 0x28, 0xfb, 0xc9, 0x21, 0x00, 0x00,
-0x11, 0xff, 0x86, 0x06, 0x04, 0xcd, 0x31, 0xa0,
-0xd8, 0x3a, 0x02, 0x87, 0xc6, 0xff, 0xd8, 0x3a,
-0x01, 0x87, 0xb7, 0x28, 0x0b, 0x47, 0xc6, 0xbf,
-0xd8, 0x11, 0x03, 0x87, 0xcd, 0x31, 0xa0, 0xd8,
-0xe5, 0x11, 0xfd, 0x86, 0x06, 0x02, 0xcd, 0x31,
-0xa0, 0xd1, 0xd8, 0x2a, 0xfd, 0x86, 0xed, 0x52,
-0xc8, 0x37, 0xc9, 0xe5, 0x21, 0x00, 0x00, 0x22,
-0xf5, 0x86, 0xe1, 0x22, 0xf3, 0x86, 0x21, 0x00,
-0x00, 0x11, 0xf3, 0x86, 0x01, 0x04, 0x00, 0xcd,
-0x1b, 0xa0, 0xd8, 0xed, 0x5b, 0xf7, 0x86, 0xed,
-0x4b, 0xf5, 0x86, 0xcd, 0x1b, 0xa0, 0xd8, 0x22,
-0xfd, 0x86, 0x11, 0xfd, 0x86, 0x01, 0x02, 0x00,
-0x18, 0x00, 0x78, 0xb1, 0xc8, 0x0b, 0xc5, 0x1a,
-0x13, 0x4f, 0x06, 0x00, 0x09, 0xd5, 0xe5, 0xcd,
-0x7b, 0xa0, 0xe1, 0xd1, 0xc1, 0xd8, 0x18, 0xea,
-0xc5, 0xe5, 0xd5, 0xcd, 0x6f, 0xa0, 0xd1, 0xe1,
-0x38, 0x0b, 0x06, 0x00, 0x09, 0x79, 0x12, 0x13,
-0xc1, 0x10, 0xed, 0xb7, 0xc5, 0xc1, 0xc9, 0x06,
-0xff, 0xf5, 0xdb, 0x02, 0xe6, 0x80, 0xd3, 0x08,
-0x3e, 0x00, 0xd3, 0x00, 0xfb, 0x76, 0x76, 0x10,
-0xfb, 0xaf, 0xd3, 0x08, 0xf1, 0xc9, 0xdb, 0x00,
-0x2f, 0xe6, 0x03, 0xc0, 0xdb, 0x02, 0xe6, 0x80,
-0xc8, 0xdb, 0x09, 0xe6, 0x18, 0xc9, 0x21, 0x8a,
-0xa0, 0xcd, 0x59, 0x00, 0xef, 0x03, 0x4f, 0x57,
-0x18, 0x09, 0x21, 0x8a, 0xa0, 0xcd, 0x59, 0x00,
-0xef, 0xe5, 0x4e, 0xcd, 0x5c, 0x00, 0x4a, 0xb7,
-0xc9, 0x37, 0xc9, 0x44, 0x75, 0x6d, 0x70, 0x69,
-0x6e, 0x67, 0x20, 0x52, 0x4f, 0x4d, 0x2e, 0x2e,
-0x2e, 0x00, 0xc1, 0x4d, 0x4f, 0x44, 0x45, 0x5d,
-0x20, 0x74, 0x6f, 0x20, 0x63, 0x61, 0x6e, 0x63,
-0x65, 0x6c, 0x00, 0x45, 0x72, 0x72, 0x6f, 0x72,
-0x73, 0x3a, 0x00, 0x30, 0x4b, 0x20, 0x6f, 0x66,
-0x20, 0x00, 0x00, 0x08, 0x00, 0x66, 0x5b,
};
-static unsigned int romDumpSize8Xp = 887;
+static unsigned int romDumpSize8Xp = 0;
diff --git a/src/rom84p.h b/src/rom84p.h
index 4becc1d..797c284 100644
--- a/src/rom84p.h
+++ b/src/rom84p.h
@@ -1,196 +1,3 @@
static unsigned char romDump84p[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x33, 0x46, 0x2a,
-0x1a, 0x0a, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x05, 0x0d,
-0x00, 0xba, 0x05, 0x06, 0x52, 0x4f, 0x4d, 0x44,
-0x55, 0x4d, 0x50, 0x00, 0x00, 0x00, 0xba, 0x05,
-0xb8, 0x05, 0xbb, 0x6d, 0xef, 0x70, 0x45, 0xdb,
-0x06, 0xf5, 0xcd, 0x90, 0xa2, 0xf1, 0xd3, 0x06,
-0xed, 0x73, 0x72, 0x98, 0xcd, 0xc2, 0x9d, 0xcd,
-0xe7, 0xa0, 0x30, 0x20, 0xcd, 0x57, 0xa0, 0x30,
-0x1b, 0xed, 0x7b, 0x72, 0x98, 0xcd, 0xc2, 0x9d,
-0x21, 0x2c, 0x9f, 0xef, 0x0a, 0x45, 0xef, 0x72,
-0x49, 0xef, 0x40, 0x45, 0xef, 0x58, 0x45, 0xfd,
-0xcb, 0x09, 0xa6, 0xc9, 0x21, 0xd5, 0x9e, 0xef,
-0x0a, 0x45, 0xfd, 0xcb, 0x41, 0xae, 0x21, 0x00,
-0x80, 0xcd, 0x0e, 0xa0, 0x38, 0xd3, 0x2a, 0x00,
-0x80, 0x11, 0x02, 0x00, 0xef, 0x0c, 0x40, 0x28,
-0x1a, 0x11, 0x03, 0x00, 0xef, 0x0c, 0x40, 0x28,
-0x1d, 0x11, 0x05, 0x00, 0xef, 0x0c, 0x40, 0x28,
-0x4c, 0x11, 0x55, 0xaa, 0xef, 0x0c, 0x40, 0x28,
-0x36, 0x18, 0xd3, 0x11, 0x02, 0x00, 0x01, 0x00,
-0x00, 0xcd, 0xa2, 0x9f, 0x18, 0xb3, 0x21, 0x74,
-0x98, 0x36, 0x00, 0x23, 0x36, 0x00, 0x23, 0xdb,
-0x21, 0xe6, 0x03, 0x3e, 0x10, 0x28, 0x01, 0x87,
-0x77, 0x23, 0x36, 0x00, 0x3e, 0x81, 0x21, 0x74,
-0x58, 0x11, 0x03, 0x00, 0x01, 0x04, 0x00, 0xcd,
-0xa2, 0x9f, 0xda, 0xb2, 0x9d, 0x18, 0x9f, 0x11,
-0x01, 0x00, 0x01, 0x00, 0x00, 0xcd, 0xa2, 0x9f,
-0xda, 0xb2, 0x9d, 0x18, 0x91, 0xdd, 0x21, 0x04,
-0x80, 0xdd, 0x6e, 0x00, 0xdd, 0x66, 0x01, 0xdd,
-0x5e, 0x02, 0xdd, 0x56, 0x03, 0x01, 0x02, 0x04,
-0xed, 0x43, 0x4b, 0x84, 0x7b, 0xcd, 0x30, 0xa0,
-0x7c, 0xcd, 0x30, 0xa0, 0x7d, 0xcd, 0x30, 0xa0,
-0x7b, 0x87, 0x87, 0x11, 0x00, 0x40, 0xb7, 0xed,
-0x52, 0x38, 0x03, 0x3c, 0x18, 0xf5, 0x19, 0x11,
-0x00, 0x40, 0x19, 0xe5, 0x32, 0xeb, 0x83, 0xdb,
-0x06, 0xf5, 0x3a, 0xeb, 0x83, 0xd3, 0x06, 0x56,
-0x01, 0x00, 0x04, 0x7e, 0xba, 0x20, 0x06, 0x23,
-0x0b, 0x78, 0xb1, 0x20, 0xf6, 0xc1, 0x78, 0xd3,
-0x06, 0xe1, 0x28, 0x12, 0x3a, 0xeb, 0x83, 0x11,
-0x06, 0x00, 0x01, 0x00, 0x04, 0xcd, 0xa2, 0x9f,
-0xda, 0xb2, 0x9d, 0xc3, 0xd7, 0x9d, 0xdd, 0x21,
-0x78, 0x84, 0xdd, 0x36, 0x00, 0x00, 0xdd, 0x36,
-0x01, 0x04, 0xdd, 0x72, 0x02, 0xdd, 0x72, 0x03,
-0x3e, 0x81, 0x21, 0x78, 0x44, 0x11, 0x07, 0x00,
-0x01, 0x04, 0x00, 0xcd, 0xa2, 0x9f, 0xda, 0xb2,
-0x9d, 0xc3, 0xd7, 0x9d, 0x44, 0x75, 0x6d, 0x70,
-0x69, 0x6e, 0x67, 0xce, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x50, 0x72, 0x65, 0x73,
-0x73, 0x20, 0xc1, 0x4f, 0x4e, 0x5d, 0x20, 0x74,
-0x6f, 0x20, 0x20, 0x20, 0x61, 0x62, 0x6f, 0x72,
-0x74, 0x2e, 0x00, 0x45, 0x52, 0x52, 0x4f, 0x52,
-0x21, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65,
-0x20, 0x77, 0x61, 0x73, 0x20, 0x61, 0x6e, 0x20,
-0x20, 0x20, 0x20, 0x75, 0x6e, 0x6b, 0x6e, 0x6f,
-0x77, 0x6e, 0x20, 0x55, 0x53, 0x42, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72,
-0x2e, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x20, 0x50, 0x72, 0x65, 0x73, 0x73,
-0x20, 0x61, 0x6e, 0x79, 0x20, 0x6b, 0x65, 0x79,
-0x20, 0x74, 0x6f, 0x71, 0x75, 0x69, 0x74, 0x2e,
-0x00, 0xf3, 0xc5, 0x32, 0xeb, 0x83, 0xdb, 0x06,
-0xf5, 0x3e, 0x83, 0xd3, 0x06, 0xe5, 0x21, 0x00,
-0x40, 0x73, 0x23, 0x72, 0x23, 0x71, 0x23, 0x70,
-0x23, 0xeb, 0xe1, 0x78, 0xb1, 0x28, 0x25, 0xc5,
-0x3a, 0xeb, 0x83, 0xd3, 0x06, 0x7e, 0xf5, 0x3e,
-0x83, 0xd3, 0x06, 0xf1, 0x12, 0x23, 0xcb, 0x7c,
-0x28, 0x0b, 0xcb, 0xbc, 0xcb, 0xf4, 0x3a, 0xeb,
-0x83, 0x3c, 0x32, 0xeb, 0x83, 0x13, 0x0b, 0x78,
-0xb1, 0x20, 0xdd, 0xc1, 0x03, 0x03, 0x03, 0x03,
-0x21, 0x00, 0x40, 0x11, 0x00, 0x00, 0x7e, 0x23,
-0x83, 0x5f, 0x30, 0x01, 0x14, 0x0b, 0x78, 0xb1,
-0x20, 0xf4, 0x73, 0x23, 0x72, 0xf1, 0xd3, 0x06,
-0xd1, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x21,
-0x00, 0x80, 0xc3, 0xfa, 0xa0, 0x01, 0x04, 0x00,
-0xe5, 0xcd, 0x0a, 0xa1, 0xe1, 0xd8, 0x23, 0x23,
-0x4e, 0x23, 0x46, 0x23, 0x78, 0xb1, 0x28, 0x09,
-0xe5, 0xc5, 0xcd, 0x0a, 0xa1, 0xc1, 0xe1, 0xd8,
-0x09, 0x01, 0x02, 0x00, 0xc3, 0x0a, 0xa1, 0xdd,
-0xe5, 0xf5, 0xe5, 0xc5, 0xf5, 0x0f, 0x0f, 0x0f,
-0x0f, 0xcd, 0x47, 0xa0, 0xf1, 0xcd, 0x47, 0xa0,
-0xc1, 0xe1, 0xf1, 0xdd, 0xe1, 0xc9, 0xe6, 0x0f,
-0xfe, 0x0a, 0x30, 0x04, 0xc6, 0x30, 0x18, 0x02,
-0xc6, 0x37, 0xef, 0x04, 0x45, 0xc9, 0xef, 0x0e,
-0x81, 0xd8, 0x3e, 0x80, 0xd3, 0x57, 0xaf, 0xd3,
-0x4c, 0x3e, 0x01, 0xd3, 0x5b, 0xaf, 0xdb, 0x4c,
-0x3e, 0x02, 0xd3, 0x54, 0x3e, 0x20, 0xd3, 0x4a,
-0xaf, 0xd3, 0x4b, 0xdb, 0x3a, 0xcb, 0x5f, 0x28,
-0x04, 0x3e, 0x20, 0xd3, 0x4b, 0xaf, 0xd3, 0x54,
-0x3e, 0x42, 0xd3, 0x36, 0xaf, 0xd3, 0x37, 0x3e,
-0x01, 0xd3, 0x38, 0xdb, 0x04, 0xcb, 0x7f, 0x28,
-0xfa, 0xdb, 0x3a, 0xcb, 0x5f, 0x28, 0x04, 0x3e,
-0x44, 0xd3, 0x54, 0x3e, 0xc4, 0xd3, 0x54, 0x3e,
-0x08, 0xd3, 0x4c, 0x11, 0xff, 0xff, 0x1b, 0x7a,
-0xb3, 0x37, 0xc8, 0xdb, 0x4c, 0xfe, 0x1a, 0x28,
-0x04, 0xfe, 0x5a, 0x20, 0xf1, 0x3e, 0xff, 0xd3,
-0x87, 0xaf, 0xd3, 0x92, 0xdb, 0x87, 0x3e, 0x0e,
-0xd3, 0x89, 0x3e, 0x05, 0xd3, 0x8b, 0xdb, 0x81,
-0xf6, 0x00, 0xd3, 0x81, 0xdb, 0x54, 0xf6, 0x01,
-0xd3, 0x54, 0x06, 0x05, 0x11, 0xff, 0xff, 0x1b,
-0x7a, 0xb3, 0x28, 0x06, 0xdb, 0x8c, 0xb7, 0x28,
-0xf6, 0xc9, 0x10, 0xf0, 0x37, 0xc9, 0xdb, 0x02,
-0xcb, 0x6f, 0x37, 0xc8, 0x3a, 0x4d, 0x00, 0xb7,
-0xcb, 0x6f, 0xc8, 0xcb, 0x77, 0x37, 0xc0, 0x3f,
-0xc9, 0xfd, 0xcb, 0x40, 0xd6, 0xfd, 0xcb, 0x43,
-0x86, 0xef, 0xf2, 0x50, 0xfd, 0xcb, 0x41, 0x86,
-0xc9, 0xfb, 0x76, 0xdb, 0x04, 0xcb, 0x5f, 0x37,
-0xc8, 0xfd, 0xcb, 0x41, 0x6e, 0x28, 0xf2, 0xc5,
-0xf5, 0xaf, 0x32, 0x34, 0x98, 0x18, 0x28, 0xdb,
-0x04, 0xcb, 0x5f, 0x28, 0x47, 0xfd, 0xcb, 0x41,
-0x6e, 0x20, 0x1c, 0xdb, 0x84, 0xcb, 0x57, 0x20,
-0x04, 0xcb, 0x4f, 0x28, 0x0a, 0xfd, 0xcb, 0x41,
-0xee, 0xaf, 0x32, 0x27, 0x9c, 0x18, 0x08, 0xdb,
-0x86, 0xcb, 0x6f, 0x20, 0x27, 0x18, 0xd8, 0xc5,
-0xe5, 0x21, 0x40, 0x00, 0xb7, 0xed, 0x42, 0xe1,
-0x41, 0x30, 0x02, 0x06, 0x40, 0xcd, 0x71, 0xa1,
-0xeb, 0xe1, 0x38, 0x10, 0xb7, 0x06, 0x00, 0xed,
-0x42, 0x28, 0x05, 0x44, 0x4d, 0xeb, 0x18, 0xb7,
-0xc1, 0x78, 0xc1, 0xc9, 0xf1, 0xc1, 0x37, 0xc9,
-0x78, 0xb7, 0xc8, 0x3e, 0x40, 0xb8, 0xd8, 0x78,
-0x32, 0x80, 0x9c, 0x3a, 0x27, 0x9c, 0xb7, 0x28,
-0x07, 0xb8, 0x30, 0x04, 0x47, 0x32, 0x80, 0x9c,
-0xdb, 0x8f, 0xcb, 0x57, 0xca, 0x27, 0xa2, 0xaf,
-0xd3, 0x5b, 0x3a, 0x27, 0x9c, 0xb7, 0x20, 0x3d,
-0x3e, 0x01, 0xd3, 0x8e, 0x3e, 0x21, 0xd3, 0x9a,
-0xaf, 0xdb, 0x9a, 0x3e, 0x08, 0xd3, 0x93, 0xaf,
-0xdb, 0x93, 0x3e, 0xff, 0xd3, 0x89, 0xaf, 0xd3,
-0x95, 0xdb, 0x89, 0x3e, 0xa1, 0xd3, 0x8b, 0xdb,
-0x94, 0xcb, 0x57, 0xc2, 0x6d, 0xa2, 0xcb, 0x77,
-0xc2, 0x6d, 0xa2, 0x3e, 0x01, 0xd3, 0x5b, 0x3a,
-0x27, 0x9c, 0xb7, 0x20, 0x08, 0x3e, 0x01, 0xd3,
-0x8e, 0xdb, 0x94, 0xdb, 0x96, 0xf5, 0x3a, 0x80,
-0x9c, 0x47, 0x0e, 0x00, 0xdb, 0xa1, 0x77, 0x23,
-0x0c, 0x10, 0xf9, 0x3e, 0x01, 0xd3, 0x8e, 0xdb,
-0x94, 0xcb, 0x57, 0x20, 0x7e, 0xcb, 0x77, 0x20,
-0x7a, 0xf1, 0x91, 0x32, 0x27, 0x9c, 0xfd, 0xcb,
-0x41, 0xee, 0xc0, 0x3e, 0x01, 0xd3, 0x8e, 0x3e,
-0x21, 0xd3, 0x9a, 0x3e, 0x08, 0xd3, 0x93, 0xaf,
-0xdb, 0x93, 0x3e, 0x0e, 0xd3, 0x89, 0xaf, 0xd3,
-0x95, 0xfd, 0xcb, 0x41, 0xae, 0xaf, 0x32, 0x27,
-0x9c, 0xfd, 0xcb, 0x41, 0x86, 0x3e, 0x20, 0xd3,
-0x94, 0x3e, 0x01, 0xd3, 0x5b, 0xc9, 0x3e, 0x02,
-0xd3, 0x8e, 0xdb, 0x94, 0xcb, 0x77, 0x28, 0x0a,
-0xe6, 0xdf, 0xd3, 0x94, 0xf1, 0xef, 0x57, 0x52,
-0x18, 0x32, 0x3a, 0x27, 0x9c, 0xb7, 0x20, 0x02,
-0xdb, 0x96, 0xf5, 0x0e, 0x00, 0xdb, 0xa2, 0x77,
-0x23, 0x0c, 0x10, 0xf9, 0x3e, 0x02, 0xd3, 0x8e,
-0xf1, 0x91, 0x32, 0x27, 0x9c, 0xc0, 0xaf, 0x32,
-0x27, 0x9c, 0xdb, 0x94, 0xe6, 0xfe, 0xd3, 0x94,
-0xfd, 0xcb, 0x41, 0xae, 0x3e, 0xa1, 0x32, 0x8b,
-0x00, 0x18, 0x06, 0xf1, 0xfd, 0xcb, 0x41, 0xae,
-0x37, 0xfb, 0x3e, 0x01, 0xd3, 0x5b, 0xfd, 0xcb,
-0x41, 0x86, 0xc9, 0x01, 0x13, 0x01, 0x01, 0x01,
-0x13, 0x01, 0x00, 0x02, 0x37, 0x01, 0x03, 0x02,
-0x37, 0x01, 0x03, 0x02, 0x38, 0x01, 0x03, 0xef,
-0x6f, 0x4c, 0x4f, 0xef, 0xba, 0x80, 0x6f, 0xc6,
-0xfc, 0xd8, 0x3c, 0x20, 0x05, 0xcb, 0x40, 0x20,
-0x01, 0x2c, 0x26, 0x00, 0x29, 0x29, 0x11, 0x7c,
-0xa2, 0x19, 0x79, 0xcd, 0x44, 0xa3, 0xd8, 0x23,
-0xef, 0xb7, 0x80, 0xcd, 0x44, 0xa3, 0xd8, 0xf3,
-0xfd, 0xe5, 0x11, 0x09, 0x7b, 0x7b, 0x32, 0xee,
-0x83, 0xd3, 0x06, 0x1a, 0x47, 0xc5, 0xd5, 0xcd,
-0x30, 0xa3, 0x7b, 0xef, 0xc6, 0x80, 0x21, 0x1f,
-0xa3, 0x11, 0x38, 0x98, 0xef, 0xda, 0x47, 0xed,
-0x73, 0x3c, 0x98, 0xcd, 0xe3, 0xa2, 0xf1, 0xc1,
-0x18, 0x4a, 0x3a, 0x94, 0x50, 0x57, 0x21, 0x00,
-0x81, 0x01, 0x30, 0x01, 0x3e, 0xed, 0xed, 0xb1,
-0xc0, 0x7e, 0xd6, 0xa0, 0x20, 0xf6, 0x4e, 0x47,
-0x23, 0x22, 0xdb, 0x84, 0x2a, 0x92, 0x50, 0x3c,
-0x32, 0x34, 0x98, 0xb7, 0xc4, 0x30, 0xa3, 0x3e,
-0x3a, 0xed, 0xb1, 0xc0, 0x11, 0x02, 0xa3, 0x1a,
-0xbe, 0x20, 0xf4, 0x23, 0x13, 0xfe, 0xc4, 0x20,
-0xf6, 0xef, 0x09, 0x40, 0xfd, 0x21, 0x31, 0x00,
-0xe9, 0x31, 0x00, 0x00, 0xe1, 0xf1, 0x77, 0xbe,
-0x20, 0xfd, 0x36, 0xf0, 0xfd, 0xe1, 0xc9, 0xdb,
-0x02, 0x87, 0x3e, 0x1f, 0x30, 0x09, 0xdb, 0x21,
-0xe6, 0x03, 0x3e, 0x7f, 0x20, 0x01, 0x1f, 0xa2,
-0xd3, 0x06, 0xc9, 0xbe, 0x23, 0x3f, 0xc0, 0x7e,
-0xb8, 0xc9, 0x6f, 0x6d,
};
-static unsigned int romDumpSize84p = 1540;
+static unsigned int romDumpSize84p = 0;
diff --git a/src/rom85.h b/src/rom85.h
index 4ff2ada..5a9fecc 100644
--- a/src/rom85.h
+++ b/src/rom85.h
@@ -1,156 +1,3 @@
static unsigned char romDump85[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x35, 0x2a, 0x2a,
-0x1a, 0x0c, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x04, 0x07,
-0x00, 0x7e, 0x04, 0x0c, 0x03, 0x24, 0x52, 0x44,
-0x7e, 0x04, 0x7c, 0x04, 0x11, 0x43, 0x01, 0x19,
-0x11, 0xc1, 0x86, 0x01, 0x01, 0x02, 0xed, 0xb0,
-0x22, 0x1a, 0x88, 0x11, 0xea, 0xfc, 0x19, 0xcd,
-0xc1, 0x86, 0x2a, 0xe3, 0x8b, 0x22, 0xe5, 0x8b,
-0x2a, 0xdf, 0x8b, 0x22, 0xe1, 0x8b, 0xe1, 0xe1,
-0xe1, 0xf1, 0xd3, 0x05, 0x3e, 0x06, 0x32, 0x37,
-0x83, 0xc9, 0xfd, 0xcb, 0x08, 0x9e, 0xdb, 0x05,
-0x32, 0x41, 0x86, 0x21, 0x00, 0x00, 0x22, 0x44,
-0x86, 0x22, 0x46, 0x86, 0xfd, 0xcb, 0x12, 0x86,
-0xcd, 0x09, 0x88, 0x21, 0x00, 0x00, 0x22, 0x0c,
-0x80, 0x21, 0x8c, 0x88, 0xcd, 0x00, 0x88, 0x11,
-0x04, 0x00, 0xed, 0x53, 0x0c, 0x80, 0xcd, 0x00,
-0x88, 0xfb, 0x76, 0xf3, 0x21, 0x00, 0x80, 0x7e,
-0x36, 0x00, 0xfe, 0x37, 0x28, 0x2f, 0xcd, 0x6c,
-0x87, 0x28, 0xee, 0xcd, 0xcc, 0x86, 0x38, 0x53,
-0xed, 0x5b, 0x54, 0x86, 0x21, 0x55, 0xaa, 0xb7,
-0xed, 0x52, 0x28, 0x09, 0x7a, 0xb7, 0x20, 0x43,
-0x43, 0x10, 0x0a, 0x18, 0xd4, 0x21, 0x01, 0x00,
-0xcd, 0x02, 0x87, 0x18, 0xcc, 0x10, 0x10, 0x21,
-0x02, 0x00, 0xcd, 0x02, 0x87, 0xcd, 0x09, 0x88,
-0x21, 0x00, 0x00, 0x22, 0x0c, 0x80, 0xc9, 0x10,
-0x20, 0x21, 0xbe, 0x88, 0x22, 0x4c, 0x86, 0x21,
-0x04, 0x00, 0x22, 0x4a, 0x86, 0x21, 0x03, 0x00,
-0xcd, 0x0a, 0x87, 0x21, 0x02, 0x04, 0x22, 0x0c,
-0x80, 0x21, 0xb4, 0x88, 0xcd, 0x00, 0x88, 0x18,
-0x98, 0x10, 0x1b, 0x21, 0x07, 0x00, 0x22, 0x0c,
-0x80, 0x21, 0xac, 0x88, 0xcd, 0x00, 0x88, 0x2a,
-0x44, 0x86, 0x23, 0x22, 0x44, 0x86, 0xcd, 0xd4,
-0x87, 0xcd, 0x5e, 0x87, 0x18, 0xe1, 0x10, 0xe3,
-0x2a, 0x58, 0x86, 0x3a, 0x5a, 0x86, 0xcb, 0x24,
-0x17, 0xcb, 0x24, 0x17, 0xd3, 0x05, 0x37, 0xcb,
-0x1c, 0xcb, 0x3c, 0x22, 0x4c, 0x86, 0xcd, 0xc2,
-0x86, 0x20, 0x19, 0x67, 0x6f, 0x22, 0x50, 0x86,
-0x21, 0x00, 0x04, 0x22, 0x4e, 0x86, 0x21, 0x4e,
-0x86, 0x22, 0x4c, 0x86, 0x21, 0x04, 0x00, 0x11,
-0x07, 0x00, 0x18, 0x06, 0x21, 0x00, 0x04, 0x11,
-0x06, 0x00, 0x22, 0x4a, 0x86, 0xeb, 0xcd, 0x0a,
-0x87, 0x3a, 0x41, 0x86, 0xd3, 0x05, 0x38, 0x9b,
-0x21, 0x02, 0x00, 0x22, 0x0c, 0x80, 0x2a, 0x46,
-0x86, 0x23, 0x22, 0x46, 0x86, 0xcd, 0xd4, 0x87,
-0x3e, 0x4b, 0xcd, 0x16, 0x88, 0x18, 0x9d, 0xe9,
-0x7e, 0x01, 0x00, 0x04, 0xed, 0xa1, 0xe0, 0x28,
-0xfb, 0xc9, 0x21, 0x00, 0x00, 0x11, 0x54, 0x86,
-0x06, 0x04, 0xcd, 0x47, 0x87, 0xd8, 0x3a, 0x57,
-0x86, 0xc6, 0xff, 0xd8, 0x3a, 0x56, 0x86, 0xb7,
-0x28, 0x0b, 0x47, 0xc6, 0xbf, 0xd8, 0x11, 0x58,
-0x86, 0xcd, 0x47, 0x87, 0xd8, 0xe5, 0x11, 0x52,
-0x86, 0x06, 0x02, 0xcd, 0x47, 0x87, 0xd1, 0xd8,
-0x2a, 0x52, 0x86, 0xed, 0x52, 0xc8, 0x37, 0xc9,
-0xe5, 0x21, 0x00, 0x00, 0x22, 0x4a, 0x86, 0xe1,
-0x22, 0x48, 0x86, 0x21, 0x00, 0x00, 0x11, 0x48,
-0x86, 0x01, 0x04, 0x00, 0xcd, 0x31, 0x87, 0xd8,
-0xed, 0x5b, 0x4c, 0x86, 0xed, 0x4b, 0x4a, 0x86,
-0xcd, 0x31, 0x87, 0xd8, 0x22, 0x52, 0x86, 0x11,
-0x52, 0x86, 0x01, 0x02, 0x00, 0x18, 0x00, 0x78,
-0xb1, 0xc8, 0x0b, 0xc5, 0x1a, 0x13, 0x4f, 0x06,
-0x00, 0x09, 0xd5, 0xe5, 0xcd, 0xa8, 0x87, 0xe1,
-0xd1, 0xc1, 0xd8, 0x18, 0xea, 0xc5, 0xe5, 0xd5,
-0xcd, 0x72, 0x87, 0xd1, 0xe1, 0x38, 0x0b, 0x06,
-0x00, 0x09, 0x79, 0x12, 0x13, 0xc1, 0x10, 0xed,
-0xb7, 0xc5, 0xc1, 0xc9, 0x06, 0xff, 0xf5, 0x3e,
-0xc0, 0xd3, 0x07, 0xfb, 0x76, 0x76, 0x10, 0xfb,
-0xf1, 0xc9, 0xdb, 0x07, 0x2f, 0xe6, 0x03, 0xc9,
-0xf3, 0x3e, 0xc0, 0xd3, 0x07, 0x06, 0x08, 0x16,
-0xff, 0xcd, 0x98, 0x87, 0xd8, 0xc6, 0xfe, 0x3e,
-0xe8, 0x30, 0x03, 0xc0, 0x3e, 0xd4, 0xd3, 0x07,
-0xcb, 0x19, 0x14, 0xcd, 0x98, 0x87, 0xd8, 0x3e,
-0xc0, 0xd3, 0x07, 0x10, 0xe2, 0xc9, 0x21, 0xff,
-0xff, 0x2b, 0xdb, 0x07, 0xaa, 0xe6, 0x03, 0xc0,
-0x7c, 0xb5, 0x20, 0xf5, 0x37, 0xc9, 0xf3, 0x06,
-0x08, 0xcd, 0xbe, 0x87, 0xd8, 0xcb, 0x19, 0x3e,
-0xd4, 0x30, 0x02, 0x3e, 0xe8, 0x14, 0xcd, 0xc2,
-0x87, 0xd8, 0x10, 0xed, 0x3e, 0xc0, 0x16, 0xff,
-0xd3, 0x07, 0x21, 0xff, 0xff, 0x2b, 0xdb, 0x07,
-0xaa, 0xe6, 0x03, 0xc8, 0x7c, 0xb5, 0x20, 0xf5,
-0x37, 0xc9, 0x06, 0x05, 0xeb, 0x3e, 0x20, 0xcd,
-0x16, 0x88, 0x10, 0xf9, 0x21, 0x0d, 0x80, 0x7e,
-0xf5, 0x35, 0xeb, 0x01, 0x0a, 0x10, 0xaf, 0x29,
-0x8f, 0xb9, 0x38, 0x02, 0x91, 0x2c, 0x10, 0xf7,
-0xeb, 0xc6, 0x30, 0xcd, 0x16, 0x88, 0x35, 0x7a,
-0xb3, 0x20, 0xe6, 0xf1, 0x77, 0xc9, 0x7e, 0x23,
-0xb7, 0xc8, 0xcd, 0x16, 0x88, 0x18, 0xf7, 0x21,
-0x00, 0xfc, 0x75, 0x11, 0x01, 0xfc, 0x01, 0xff,
-0x03, 0xed, 0xb0, 0xc9, 0xe5, 0xd5, 0xc5, 0x21,
-0x00, 0x00, 0x01, 0x08, 0x00, 0xbe, 0x28, 0x03,
-0x09, 0x30, 0xfa, 0x23, 0x01, 0x0c, 0x80, 0x0a,
-0x0f, 0x5f, 0xf6, 0xfc, 0x57, 0x03, 0x0a, 0x3c,
-0x02, 0x3d, 0x47, 0x87, 0x80, 0x0f, 0x0f, 0xab,
-0xe6, 0x1f, 0xab, 0x5f, 0x06, 0x07, 0x3a, 0x0d,
-0x80, 0xe6, 0x03, 0x28, 0x19, 0x3d, 0x28, 0x1c,
-0x3d, 0x7e, 0x0f, 0x0f, 0x28, 0x20, 0x4f, 0x1c,
-0x1a, 0xa9, 0xe6, 0x3f, 0xa9, 0x12, 0x1d, 0x1a,
-0xa9, 0xe6, 0xf0, 0xa9, 0x18, 0x20, 0x1a, 0xe6,
-0xc0, 0xb6, 0x18, 0x1a, 0x7e, 0x07, 0x07, 0x4f,
-0x1a, 0xe6, 0x03, 0xb1, 0x18, 0x10, 0x0f, 0x0f,
-0x4f, 0x1c, 0x1a, 0xa9, 0xe6, 0x0f, 0xa9, 0x12,
-0x1d, 0x1a, 0xa9, 0xe6, 0xfc, 0xa9, 0x12, 0x23,
-0x7b, 0xc6, 0x10, 0x5f, 0x10, 0xb8, 0xc1, 0xd1,
-0xe1, 0xc9, 0x44, 0x75, 0x6d, 0x70, 0x69, 0x6e,
-0x67, 0x20, 0x52, 0x4f, 0x4d, 0x2e, 0x2e, 0x2e,
-0x00, 0x5b, 0x45, 0x58, 0x49, 0x54, 0x5d, 0x20,
-0x74, 0x6f, 0x20, 0x63, 0x61, 0x6e, 0x63, 0x65,
-0x6c, 0x00, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73,
-0x3a, 0x00, 0x30, 0x4b, 0x20, 0x6f, 0x66, 0x20,
-0x31, 0x32, 0x38, 0x4b, 0x00, 0x00, 0x02, 0x00,
-0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x2e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x0c,
-0x3a, 0x00, 0x0c, 0x0c, 0x00, 0x0c, 0x0c, 0x00,
-0x5b, 0x0c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x0c,
-0x5d, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x18,
-0x30, 0x1c, 0x22, 0x26, 0x2a, 0x32, 0x22, 0x1c,
-0x31, 0x08, 0x18, 0x08, 0x08, 0x08, 0x08, 0x1c,
-0x32, 0x1c, 0x22, 0x02, 0x04, 0x08, 0x10, 0x3e,
-0x33, 0x3e, 0x04, 0x08, 0x04, 0x02, 0x22, 0x1c,
-0x34, 0x04, 0x0c, 0x14, 0x24, 0x3e, 0x04, 0x04,
-0x35, 0x3e, 0x20, 0x3c, 0x02, 0x02, 0x22, 0x1c,
-0x36, 0x0c, 0x10, 0x20, 0x3c, 0x22, 0x22, 0x1c,
-0x37, 0x3e, 0x02, 0x04, 0x08, 0x10, 0x10, 0x10,
-0x38, 0x1c, 0x22, 0x22, 0x1c, 0x22, 0x22, 0x1c,
-0x39, 0x1c, 0x22, 0x22, 0x1e, 0x02, 0x04, 0x18,
-0x44, 0x3c, 0x22, 0x22, 0x22, 0x22, 0x22, 0x3c,
-0x45, 0x3e, 0x20, 0x20, 0x3c, 0x20, 0x20, 0x3e,
-0x49, 0x1c, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c,
-0x4b, 0x22, 0x24, 0x28, 0x30, 0x28, 0x24, 0x22,
-0x4d, 0x22, 0x36, 0x2a, 0x2a, 0x22, 0x22, 0x22,
-0x4f, 0x1c, 0x22, 0x22, 0x22, 0x22, 0x22, 0x1c,
-0x52, 0x3c, 0x22, 0x22, 0x3c, 0x28, 0x24, 0x22,
-0x54, 0x3e, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08,
-0x58, 0x22, 0x22, 0x14, 0x08, 0x14, 0x22, 0x22,
-0x61, 0x00, 0x00, 0x1c, 0x02, 0x1e, 0x22, 0x1e,
-0x63, 0x00, 0x00, 0x1c, 0x20, 0x20, 0x22, 0x1c,
-0x65, 0x00, 0x00, 0x1c, 0x22, 0x3e, 0x20, 0x1c,
-0x66, 0x0c, 0x12, 0x10, 0x38, 0x10, 0x10, 0x10,
-0x67, 0x00, 0x1e, 0x22, 0x22, 0x1e, 0x02, 0x1c,
-0x69, 0x08, 0x00, 0x18, 0x08, 0x08, 0x08, 0x1c,
-0x6c, 0x18, 0x08, 0x08, 0x08, 0x08, 0x08, 0x1c,
-0x6d, 0x00, 0x00, 0x34, 0x2a, 0x2a, 0x22, 0x22,
-0x6e, 0x00, 0x00, 0x2c, 0x32, 0x22, 0x22, 0x22,
-0x6f, 0x00, 0x00, 0x1c, 0x22, 0x22, 0x22, 0x1c,
-0x70, 0x00, 0x00, 0x3c, 0x22, 0x3c, 0x20, 0x20,
-0x72, 0x00, 0x00, 0x2c, 0x32, 0x20, 0x20, 0x20,
-0x73, 0x00, 0x00, 0x1c, 0x20, 0x1c, 0x02, 0x3c,
-0x74, 0x10, 0x10, 0x38, 0x10, 0x10, 0x12, 0x0c,
-0x75, 0x00, 0x00, 0x22, 0x22, 0x22, 0x26, 0x1a,
-0x99, 0x72,
};
-static unsigned int romDumpSize85 = 1218;
+static unsigned int romDumpSize85 = 0;
diff --git a/src/rom86.h b/src/rom86.h
index 1103730..fc35d5e 100644
--- a/src/rom86.h
+++ b/src/rom86.h
@@ -1,89 +1,3 @@
static unsigned char romDump86[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x36, 0x2a, 0x2a,
-0x1a, 0x0a, 0x00, 0x43, 0x72, 0x65, 0x61, 0x74,
-0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x69,
-0x70, 0x61, 0x63, 0x6b, 0x20, 0x30, 0x2e, 0x31,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x02, 0x0c,
-0x00, 0x63, 0x02, 0x12, 0x07, 0x52, 0x4f, 0x4d,
-0x44, 0x75, 0x6d, 0x70, 0x20, 0x63, 0x02, 0x61,
-0x02, 0x8e, 0x28, 0xfd, 0xcb, 0x15, 0xbe, 0xfd,
-0xcb, 0x08, 0x9e, 0xdb, 0x05, 0x32, 0x00, 0x90,
-0x21, 0x00, 0x00, 0x22, 0x03, 0x90, 0x22, 0x05,
-0x90, 0xcd, 0xb1, 0x4a, 0xcd, 0x82, 0x4a, 0x21,
-0x00, 0x00, 0x22, 0x0f, 0xc0, 0x21, 0x71, 0xd9,
-0xcd, 0x37, 0x4a, 0x11, 0x04, 0x00, 0xed, 0x53,
-0x0f, 0xc0, 0xcd, 0x37, 0x4a, 0xfb, 0x76, 0xcd,
-0x68, 0x40, 0xfe, 0x37, 0x28, 0x2f, 0xcd, 0x09,
-0xd9, 0x28, 0xf2, 0xcd, 0x69, 0xd8, 0x38, 0x53,
-0xed, 0x5b, 0x13, 0x90, 0x21, 0x55, 0xaa, 0xb7,
-0xed, 0x52, 0x28, 0x09, 0x7a, 0xb7, 0x20, 0x43,
-0x43, 0x10, 0x0a, 0x18, 0xd8, 0x21, 0x01, 0x00,
-0xcd, 0x9f, 0xd8, 0x18, 0xd0, 0x10, 0x10, 0x21,
-0x02, 0x00, 0xcd, 0x9f, 0xd8, 0xcd, 0x82, 0x4a,
-0x21, 0x00, 0x00, 0x22, 0x0f, 0xc0, 0xc9, 0x10,
-0x20, 0x21, 0xa3, 0xd9, 0x22, 0x0b, 0x90, 0x21,
-0x04, 0x00, 0x22, 0x09, 0x90, 0x21, 0x03, 0x00,
-0xcd, 0xa7, 0xd8, 0x21, 0x02, 0x04, 0x22, 0x0f,
-0xc0, 0x21, 0x99, 0xd9, 0xcd, 0x37, 0x4a, 0x18,
-0x9c, 0x10, 0x1c, 0x21, 0x07, 0x00, 0x22, 0x0f,
-0xc0, 0x21, 0x91, 0xd9, 0xcd, 0x37, 0x4a, 0x2a,
-0x03, 0x90, 0x23, 0x22, 0x03, 0x90, 0xaf, 0xcd,
-0x33, 0x4a, 0xcd, 0xfb, 0xd8, 0x18, 0xe0, 0x10,
-0xe2, 0x2a, 0x17, 0x90, 0x3a, 0x19, 0x90, 0xcb,
-0x24, 0x17, 0xcb, 0x24, 0x17, 0xd3, 0x05, 0x37,
-0xcb, 0x1c, 0xcb, 0x3c, 0x22, 0x0b, 0x90, 0xcd,
-0x5f, 0xd8, 0x20, 0x19, 0x67, 0x6f, 0x22, 0x0f,
-0x90, 0x21, 0x00, 0x04, 0x22, 0x0d, 0x90, 0x21,
-0x0d, 0x90, 0x22, 0x0b, 0x90, 0x21, 0x04, 0x00,
-0x11, 0x07, 0x00, 0x18, 0x06, 0x21, 0x00, 0x04,
-0x11, 0x06, 0x00, 0x22, 0x09, 0x90, 0xeb, 0xcd,
-0xa7, 0xd8, 0x3a, 0x00, 0x90, 0xd3, 0x05, 0x38,
-0x9a, 0x21, 0x02, 0x00, 0x22, 0x0f, 0xc0, 0x2a,
-0x05, 0x90, 0x23, 0x22, 0x05, 0x90, 0xaf, 0xcd,
-0x33, 0x4a, 0x3e, 0x4b, 0xcd, 0x2b, 0x4a, 0x18,
-0x9c, 0xe9, 0x7e, 0x01, 0x00, 0x04, 0xed, 0xa1,
-0xe0, 0x28, 0xfb, 0xc9, 0x21, 0x00, 0x00, 0x11,
-0x13, 0x90, 0x06, 0x04, 0xcd, 0xe4, 0xd8, 0xd8,
-0x3a, 0x16, 0x90, 0xc6, 0xff, 0xd8, 0x3a, 0x15,
-0x90, 0xb7, 0x28, 0x0b, 0x47, 0xc6, 0xbf, 0xd8,
-0x11, 0x17, 0x90, 0xcd, 0xe4, 0xd8, 0xd8, 0xe5,
-0x11, 0x11, 0x90, 0x06, 0x02, 0xcd, 0xe4, 0xd8,
-0xd1, 0xd8, 0x2a, 0x11, 0x90, 0xed, 0x52, 0xc8,
-0x37, 0xc9, 0xe5, 0x21, 0x00, 0x00, 0x22, 0x09,
-0x90, 0xe1, 0x22, 0x07, 0x90, 0x21, 0x00, 0x00,
-0x11, 0x07, 0x90, 0x01, 0x04, 0x00, 0xcd, 0xce,
-0xd8, 0xd8, 0xed, 0x5b, 0x0b, 0x90, 0xed, 0x4b,
-0x09, 0x90, 0xcd, 0xce, 0xd8, 0xd8, 0x22, 0x11,
-0x90, 0x11, 0x11, 0x90, 0x01, 0x02, 0x00, 0x18,
-0x00, 0x78, 0xb1, 0xc8, 0x0b, 0xc5, 0x1a, 0x13,
-0x4f, 0x06, 0x00, 0x09, 0xd5, 0xe5, 0xcd, 0x45,
-0xd9, 0xe1, 0xd1, 0xc1, 0xd8, 0x18, 0xea, 0xc5,
-0xe5, 0xd5, 0xcd, 0x0f, 0xd9, 0xd1, 0xe1, 0x38,
-0x0b, 0x06, 0x00, 0x09, 0x79, 0x12, 0x13, 0xc1,
-0x10, 0xed, 0xb7, 0xc5, 0xc1, 0xc9, 0x06, 0xff,
-0xf5, 0x3e, 0xc0, 0xd3, 0x07, 0xfb, 0x76, 0x76,
-0x10, 0xfb, 0xf1, 0xc9, 0xdb, 0x07, 0x2f, 0xe6,
-0x03, 0xc9, 0xf3, 0x3e, 0xc0, 0xd3, 0x07, 0x06,
-0x08, 0x16, 0xff, 0xcd, 0x35, 0xd9, 0xd8, 0xc6,
-0xfe, 0x3e, 0xe8, 0x30, 0x03, 0xc0, 0x3e, 0xd4,
-0xd3, 0x07, 0xcb, 0x19, 0x14, 0xcd, 0x35, 0xd9,
-0xd8, 0x3e, 0xc0, 0xd3, 0x07, 0x10, 0xe2, 0xc9,
-0x21, 0xff, 0xff, 0x2b, 0xdb, 0x07, 0xaa, 0xe6,
-0x03, 0xc0, 0x7c, 0xb5, 0x20, 0xf5, 0x37, 0xc9,
-0xf3, 0x06, 0x08, 0xcd, 0x5b, 0xd9, 0xd8, 0xcb,
-0x19, 0x3e, 0xd4, 0x30, 0x02, 0x3e, 0xe8, 0x14,
-0xcd, 0x5f, 0xd9, 0xd8, 0x10, 0xed, 0x3e, 0xc0,
-0x16, 0xff, 0xd3, 0x07, 0x21, 0xff, 0xff, 0x2b,
-0xdb, 0x07, 0xaa, 0xe6, 0x03, 0xc8, 0x7c, 0xb5,
-0x20, 0xf5, 0x37, 0xc9, 0x44, 0x75, 0x6d, 0x70,
-0x69, 0x6e, 0x67, 0x20, 0x52, 0x4f, 0x4d, 0x2e,
-0x2e, 0x2e, 0x00, 0x5b, 0x45, 0x58, 0x49, 0x54,
-0x5d, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x61, 0x6e,
-0x63, 0x65, 0x6c, 0x00, 0x45, 0x72, 0x72, 0x6f,
-0x72, 0x73, 0x3a, 0x00, 0x30, 0x4b, 0x20, 0x6f,
-0x66, 0x20, 0x32, 0x35, 0x36, 0x4b, 0x00, 0x00,
-0x04, 0x00, 0x5d, 0xf9,
};
-static unsigned int romDumpSize86 = 684;
+static unsigned int romDumpSize86 = 0;
diff --git a/src/rom89.h b/src/rom89.h
index 920bc8c..c096ba3 100644
--- a/src/rom89.h
+++ b/src/rom89.h
@@ -1,183 +1,3 @@
static unsigned char romDump89[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x39, 0x2a, 0x2a,
-0x01, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x00, 0x52, 0x00, 0x00, 0x00,
-0x72, 0x6f, 0x6d, 0x64, 0x75, 0x6d, 0x70, 0x00,
-0x21, 0x00, 0x00, 0x00, 0x9d, 0x05, 0x00, 0x00,
-0xa5, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x05, 0x43,
-0x20, 0x78, 0x00, 0xc8, 0x70, 0x01, 0x22, 0x08,
-0x02, 0x81, 0x00, 0x40, 0x00, 0x00, 0x66, 0x10,
-0x42, 0x40, 0x22, 0x68, 0x00, 0xbc, 0x0c, 0x29,
-0x00, 0xc8, 0x00, 0x02, 0x65, 0x02, 0x70, 0x03,
-0x43, 0xfa, 0x00, 0xac, 0x32, 0x80, 0x48, 0xe7,
-0x1c, 0x04, 0x2a, 0x78, 0x00, 0xc8, 0x43, 0xfa,
-0x00, 0x00, 0x28, 0x09, 0x02, 0x84, 0x00, 0x03,
-0xff, 0xff, 0x76, 0x01, 0x61, 0x3e, 0x4a, 0x40,
-0x66, 0x14, 0x28, 0x2f, 0x00, 0x10, 0x0c, 0x84,
-0x00, 0x1f, 0xff, 0xff, 0x62, 0x08, 0x02, 0x84,
-0x00, 0x03, 0xff, 0xff, 0x61, 0x26, 0x30, 0x3c,
-0x03, 0xbf, 0x41, 0xf8, 0x4c, 0x00, 0x2f, 0x18,
-0x51, 0xc8, 0xff, 0xfc, 0x61, 0x6a, 0x30, 0x3c,
-0x03, 0xbf, 0x41, 0xf8, 0x5b, 0x00, 0x21, 0x1f,
-0x51, 0xc8, 0xff, 0xfc, 0x61, 0x06, 0x4c, 0xdf,
-0x20, 0x38, 0x4e, 0x75, 0x3f, 0x3c, 0x00, 0x06,
-0x42, 0xa7, 0x20, 0x6d, 0x01, 0xb0, 0x4e, 0x90,
-0x5c, 0x8f, 0x42, 0x40, 0x2a, 0x08, 0x67, 0x3c,
-0x3f, 0x28, 0x00, 0x0c, 0x20, 0x6d, 0x02, 0x58,
-0x4e, 0x90, 0x54, 0x8f, 0xb1, 0xc4, 0x62, 0x20,
-0x70, 0x00, 0x30, 0x10, 0xd1, 0xc0, 0xb1, 0xc4,
-0x63, 0x16, 0x70, 0x01, 0x20, 0x45, 0x41, 0xe8,
-0x00, 0x0b, 0x4a, 0x43, 0x67, 0x12, 0x72, 0x10,
-0x16, 0x10, 0xc6, 0x41, 0x83, 0x10, 0x4e, 0x75,
-0x20, 0x6d, 0x01, 0xb4, 0x4e, 0x90, 0x60, 0xc2,
-0x02, 0x10, 0x00, 0xef, 0x4e, 0x75, 0xff, 0xff,
-0x4f, 0xef, 0xef, 0xb4, 0x48, 0xe7, 0x1e, 0x30,
-0x20, 0x6d, 0x06, 0x78, 0x4e, 0x90, 0x3f, 0x3c,
-0x00, 0x02, 0x20, 0x6d, 0x06, 0x3c, 0x4e, 0x90,
-0x48, 0x7a, 0x03, 0xb8, 0x48, 0x7a, 0x03, 0xb9,
-0x45, 0xef, 0x10, 0x48, 0x2f, 0x0a, 0x20, 0x6d,
-0x01, 0x4c, 0x4e, 0x90, 0x3f, 0x3c, 0x00, 0x01,
-0x2f, 0x0a, 0x42, 0xa7, 0x20, 0x6d, 0x06, 0xa4,
-0x4e, 0x90, 0x61, 0x00, 0x03, 0xf8, 0x3f, 0x00,
-0x48, 0x7a, 0x03, 0xa3, 0x2f, 0x0a, 0x20, 0x6d,
-0x01, 0x4c, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x20,
-0x3e, 0xbc, 0x00, 0x01, 0x2f, 0x0a, 0x48, 0x78,
-0x00, 0x14, 0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90,
-0x22, 0x0d, 0x02, 0x81, 0x00, 0xe0, 0x00, 0x00,
-0x2f, 0x01, 0x48, 0x7a, 0x03, 0x84, 0x2f, 0x0a,
-0x20, 0x6d, 0x01, 0x4c, 0x4e, 0x90, 0x3f, 0x3c,
-0x00, 0x01, 0x2f, 0x0a, 0x48, 0x78, 0x00, 0x28,
-0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90, 0x4f, 0xef,
-0x00, 0x1c, 0x2e, 0xbc, 0x00, 0x00, 0x00, 0x00,
-0x2f, 0x0a, 0x20, 0x6d, 0x01, 0x4c, 0x4e, 0x90,
-0x3f, 0x3c, 0x00, 0x01, 0x2f, 0x0a, 0x48, 0x78,
-0x00, 0x50, 0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90,
-0x3c, 0x3a, 0xff, 0x54, 0x4f, 0xef, 0x00, 0x12,
-0x48, 0x78, 0x00, 0x14, 0x48, 0x78, 0x00, 0x04,
-0x45, 0xef, 0x00, 0x22, 0x2f, 0x0a, 0x20, 0x6d,
-0x01, 0x6c, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c,
-0x4a, 0x40, 0x67, 0x04, 0x78, 0xff, 0x60, 0x60,
-0x18, 0x2f, 0x00, 0x1b, 0xe1, 0x4c, 0x42, 0x40,
-0x10, 0x2f, 0x00, 0x1a, 0x88, 0x40, 0x16, 0x2f,
-0x00, 0x1d, 0xe1, 0x4b, 0x42, 0x40, 0x10, 0x2f,
-0x00, 0x1c, 0x86, 0x40, 0x47, 0xfa, 0x02, 0xc4,
-0x70, 0x04, 0x20, 0x4a, 0x4e, 0x93, 0x48, 0x78,
-0x00, 0x14, 0x7a, 0x00, 0x3a, 0x03, 0x2f, 0x05,
-0x2f, 0x0a, 0x20, 0x6d, 0x01, 0x6c, 0x4e, 0x90,
-0x4f, 0xef, 0x00, 0x0c, 0x4a, 0x40, 0x66, 0x20,
-0x48, 0x78, 0x00, 0x14, 0x48, 0x78, 0x00, 0x02,
-0x48, 0x72, 0x58, 0x00, 0x20, 0x6d, 0x01, 0x6c,
-0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c, 0x4a, 0x40,
-0x66, 0x06, 0x30, 0x03, 0x20, 0x4a, 0x4e, 0x93,
-0x20, 0x6d, 0x01, 0x48, 0x4e, 0x90, 0x3a, 0x00,
-0x0c, 0x44, 0x00, 0x02, 0x67, 0x20, 0x0c, 0x44,
-0x00, 0x03, 0x67, 0x2c, 0x0c, 0x44, 0x00, 0x05,
-0x67, 0x00, 0x00, 0xdc, 0x0c, 0x44, 0xaa, 0x55,
-0x66, 0x00, 0x01, 0xe0, 0x93, 0xc9, 0x42, 0x41,
-0x70, 0x01, 0x60, 0x00, 0x01, 0xd0, 0x93, 0xc9,
-0x42, 0x41, 0x70, 0x02, 0x41, 0xef, 0x00, 0x1a,
-0x61, 0x00, 0x01, 0xd8, 0x60, 0x00, 0x01, 0xca,
-0x0c, 0x46, 0x00, 0x03, 0x66, 0x04, 0x70, 0x01,
-0x60, 0x14, 0x20, 0x0d, 0x02, 0x80, 0x00, 0xe0,
-0x00, 0x00, 0x0c, 0x80, 0x00, 0x80, 0x00, 0x00,
-0x57, 0xc0, 0x48, 0x80, 0x44, 0x40, 0x48, 0xc0,
-0x72, 0x20, 0x48, 0x41, 0xe1, 0xa9, 0x24, 0x01,
-0x42, 0x42, 0x48, 0x42, 0xe0, 0x4a, 0x20, 0x01,
-0x02, 0x80, 0x00, 0xff, 0x00, 0x00, 0xe0, 0x88,
-0x84, 0x80, 0x20, 0x01, 0x02, 0x80, 0x00, 0x00,
-0xff, 0x00, 0xe1, 0x88, 0xe1, 0x49, 0x48, 0x41,
-0x42, 0x41, 0x82, 0x80, 0x43, 0xef, 0x10, 0x64,
-0x84, 0x81, 0x23, 0x02, 0x72, 0x04, 0x70, 0x03,
-0x41, 0xef, 0x00, 0x1a, 0x61, 0x00, 0x01, 0x74,
-0x20, 0x0d, 0x20, 0x6d, 0x01, 0x4c, 0x0c, 0x46,
-0x00, 0x03, 0x66, 0x04, 0x70, 0x01, 0x60, 0x12,
-0x02, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x0c, 0x80,
-0x00, 0x80, 0x00, 0x00, 0x57, 0xc0, 0x48, 0x80,
-0x44, 0x40, 0x32, 0x00, 0x48, 0xc1, 0x70, 0x20,
-0x48, 0x40, 0xe3, 0xa8, 0x72, 0x0a, 0xe2, 0xa8,
-0x2f, 0x00, 0x48, 0x7a, 0x02, 0x0d, 0x45, 0xef,
-0x10, 0x28, 0x2f, 0x0a, 0x4e, 0x90, 0x3f, 0x3c,
-0x00, 0x04, 0x2f, 0x0a, 0x48, 0x78, 0x00, 0x3c,
-0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90, 0x4f, 0xef,
-0x00, 0x16, 0x60, 0x00, 0x01, 0x0e, 0x76, 0x00,
-0x16, 0x2f, 0x00, 0x1b, 0xe1, 0x8b, 0x86, 0x2f,
-0x00, 0x1a, 0x12, 0x2f, 0x00, 0x1d, 0xe1, 0x49,
-0x48, 0x41, 0x42, 0x41, 0x70, 0x00, 0x10, 0x2f,
-0x00, 0x1c, 0x48, 0x40, 0x42, 0x40, 0x82, 0x80,
-0x86, 0x81, 0x0c, 0x46, 0x00, 0x03, 0x66, 0x04,
-0x70, 0x01, 0x60, 0x14, 0x20, 0x0d, 0x02, 0x80,
-0x00, 0xe0, 0x00, 0x00, 0x0c, 0x80, 0x00, 0x80,
-0x00, 0x00, 0x57, 0xc0, 0x48, 0x80, 0x44, 0x40,
-0x32, 0x00, 0x48, 0xc1, 0x70, 0x20, 0x48, 0x40,
-0xe3, 0xa8, 0xb0, 0x83, 0x64, 0x0e, 0x93, 0xc9,
-0x42, 0x41, 0x70, 0x04, 0x41, 0xef, 0x00, 0x1a,
-0x61, 0x00, 0x00, 0xc0, 0x20, 0x0d, 0x20, 0x6d,
-0x01, 0x4c, 0x0c, 0x46, 0x00, 0x03, 0x66, 0x04,
-0x70, 0x01, 0x60, 0x12, 0x02, 0x80, 0x00, 0xe0,
-0x00, 0x00, 0x0c, 0x80, 0x00, 0x80, 0x00, 0x00,
-0x57, 0xc0, 0x48, 0x80, 0x44, 0x40, 0x32, 0x00,
-0x48, 0xc1, 0x70, 0x20, 0x48, 0x40, 0xe3, 0xa8,
-0x72, 0x0a, 0xe2, 0xa8, 0x2f, 0x00, 0x20, 0x03,
-0xe2, 0xa8, 0x2f, 0x00, 0x48, 0x7a, 0x01, 0x60,
-0x45, 0xef, 0x10, 0x2c, 0x2f, 0x0a, 0x4e, 0x90,
-0x3f, 0x3c, 0x00, 0x04, 0x2f, 0x0a, 0x48, 0x78,
-0x00, 0x3c, 0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90,
-0x20, 0x0d, 0x02, 0x80, 0x00, 0xe0, 0x00, 0x00,
-0x22, 0x40, 0xd3, 0xc3, 0x10, 0x11, 0x72, 0x00,
-0x4f, 0xef, 0x00, 0x1a, 0xb0, 0x31, 0x18, 0x00,
-0x66, 0x34, 0x34, 0x01, 0x52, 0x42, 0x52, 0x81,
-0x0c, 0x81, 0x00, 0x00, 0x10, 0x00, 0x66, 0xec,
-0x0c, 0x42, 0x10, 0x00, 0x66, 0x20, 0x02, 0x40,
-0x00, 0xff, 0x42, 0x2f, 0x10, 0x5c, 0x1f, 0x7c,
-0x00, 0x10, 0x10, 0x5d, 0x1f, 0x40, 0x10, 0x5e,
-0x42, 0x2f, 0x10, 0x5f, 0x43, 0xef, 0x10, 0x5c,
-0x72, 0x04, 0x70, 0x07, 0x60, 0x06, 0x32, 0x3c,
-0x10, 0x00, 0x70, 0x06, 0x41, 0xef, 0x00, 0x1a,
-0x61, 0x10, 0x4a, 0x45, 0x67, 0x00, 0xfd, 0x7a,
-0x4c, 0xdf, 0x0c, 0x78, 0x4f, 0xef, 0x10, 0x4c,
-0x4e, 0x75, 0x48, 0xe7, 0x1c, 0x38, 0x26, 0x48,
-0x38, 0x01, 0x2a, 0x09, 0x28, 0x48, 0x18, 0xc0,
-0xe0, 0x48, 0x18, 0x80, 0x17, 0x41, 0x00, 0x02,
-0x30, 0x01, 0xe0, 0x48, 0x11, 0x40, 0x00, 0x03,
-0x48, 0x78, 0x00, 0x04, 0x2f, 0x08, 0x20, 0x6d,
-0x01, 0x68, 0x4e, 0x90, 0x50, 0x8f, 0x4a, 0x40,
-0x66, 0x3a, 0x3f, 0x04, 0x42, 0x67, 0x2f, 0x05,
-0x20, 0x6d, 0x01, 0x68, 0x4e, 0x90, 0x50, 0x8f,
-0x4a, 0x40, 0x66, 0x28, 0x45, 0xfa, 0x00, 0x2c,
-0x70, 0x04, 0x20, 0x4b, 0x4e, 0x92, 0x36, 0x00,
-0x30, 0x04, 0x20, 0x45, 0x4e, 0x92, 0xd6, 0x40,
-0x16, 0x83, 0xe0, 0x4b, 0x18, 0x83, 0x48, 0x78,
-0x00, 0x02, 0x2f, 0x0b, 0x20, 0x6d, 0x01, 0x68,
-0x4e, 0x90, 0x50, 0x8f, 0x4c, 0xdf, 0x1c, 0x38,
-0x4e, 0x75, 0x34, 0x00, 0x42, 0x41, 0x93, 0xc9,
-0x60, 0x10, 0x70, 0x00, 0x30, 0x01, 0x10, 0x30,
-0x08, 0x00, 0x02, 0x40, 0x00, 0xff, 0xd2, 0xc0,
-0x52, 0x41, 0xb4, 0x41, 0x66, 0xec, 0x30, 0x09,
-0x4e, 0x75, 0x31, 0x2e, 0x30, 0x32, 0x00, 0x52,
-0x6f, 0x6d, 0x44, 0x75, 0x6d, 0x70, 0x65, 0x72,
-0x20, 0x76, 0x25, 0x73, 0x00, 0x54, 0x79, 0x70,
-0x65, 0x3a, 0x20, 0x48, 0x57, 0x25, 0x69, 0x00,
-0x52, 0x4f, 0x4d, 0x20, 0x62, 0x61, 0x73, 0x65,
-0x3a, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x00,
-0x62, 0x79, 0x20, 0x54, 0x68, 0x65, 0x20, 0x54,
-0x69, 0x4c, 0x50, 0x20, 0x54, 0x65, 0x61, 0x6d,
-0x00, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x25,
-0x6c, 0x75, 0x20, 0x4b, 0x42, 0x00, 0x44, 0x6f,
-0x6e, 0x65, 0x3a, 0x20, 0x25, 0x6c, 0x75, 0x2f,
-0x25, 0x6c, 0x75, 0x4b, 0x42, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x00, 0x00, 0x20, 0x38, 0x00, 0xc8,
-0x02, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x20, 0x40,
-0x22, 0x68, 0x01, 0x04, 0xd1, 0xfc, 0x00, 0x01,
-0x00, 0x00, 0xb3, 0xc8, 0x64, 0x14, 0x0c, 0x51,
-0x00, 0x16, 0x63, 0x0e, 0x4e, 0x4c, 0x46, 0xfc,
-0x30, 0x00, 0x40, 0xc1, 0x46, 0xc0, 0xe7, 0x49,
-0x6a, 0x04, 0x70, 0x01, 0x4e, 0x75, 0x20, 0x29,
-0x00, 0x16, 0x4e, 0x75, 0x00, 0x00, 0x04, 0xd0,
-0x01, 0x5c, 0xf3, 0x59, 0x81,
};
-static unsigned int romDumpSize89 = 1437;
+static unsigned int romDumpSize89 = 0;
diff --git a/src/rom89t.h b/src/rom89t.h
index 5d13a75..6886f0d 100644
--- a/src/rom89t.h
+++ b/src/rom89t.h
@@ -1,220 +1,3 @@
static unsigned char romDump89t[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x38, 0x39, 0x2a, 0x2a,
-0x01, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x00, 0x52, 0x00, 0x00, 0x00,
-0x72, 0x6f, 0x6d, 0x64, 0x75, 0x6d, 0x70, 0x00,
-0x21, 0x00, 0x00, 0x00, 0xc5, 0x06, 0x00, 0x00,
-0xa5, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x06, 0x6b,
-0x20, 0x78, 0x00, 0xc8, 0x70, 0x01, 0x22, 0x08,
-0x02, 0x81, 0x00, 0x40, 0x00, 0x00, 0x66, 0x10,
-0x42, 0x40, 0x22, 0x68, 0x00, 0xbc, 0x0c, 0x29,
-0x00, 0xc8, 0x00, 0x02, 0x65, 0x02, 0x70, 0x03,
-0x4a, 0x40, 0x67, 0x0e, 0x48, 0x7a, 0x00, 0xb6,
-0x20, 0x68, 0x03, 0x98, 0x4e, 0x90, 0x58, 0x8f,
-0x4e, 0x75, 0x48, 0xe7, 0x1c, 0x04, 0x2a, 0x78,
-0x00, 0xc8, 0x43, 0xfa, 0x00, 0x00, 0x28, 0x09,
-0x02, 0x84, 0x00, 0x03, 0xff, 0xff, 0x76, 0x01,
-0x61, 0x40, 0x4a, 0x40, 0x66, 0x14, 0x28, 0x2f,
-0x00, 0x10, 0x0c, 0x84, 0x00, 0x1f, 0xff, 0xff,
-0x62, 0x08, 0x02, 0x84, 0x00, 0x03, 0xff, 0xff,
-0x61, 0x28, 0x30, 0x3c, 0x03, 0xbf, 0x41, 0xf8,
-0x4c, 0x00, 0x2f, 0x18, 0x51, 0xc8, 0xff, 0xfc,
-0x61, 0x00, 0x00, 0x82, 0x30, 0x3c, 0x03, 0xbf,
-0x41, 0xf8, 0x5b, 0x00, 0x21, 0x1f, 0x51, 0xc8,
-0xff, 0xfc, 0x61, 0x06, 0x4c, 0xdf, 0x20, 0x38,
-0x4e, 0x75, 0x3f, 0x3c, 0x00, 0x06, 0x42, 0xa7,
-0x20, 0x6d, 0x01, 0xb0, 0x4e, 0x90, 0x5c, 0x8f,
-0x42, 0x40, 0x2a, 0x08, 0x67, 0x3c, 0x3f, 0x28,
-0x00, 0x0c, 0x20, 0x6d, 0x02, 0x58, 0x4e, 0x90,
-0x54, 0x8f, 0xb1, 0xc4, 0x62, 0x20, 0x70, 0x00,
-0x30, 0x10, 0xd1, 0xc0, 0xb1, 0xc4, 0x63, 0x16,
-0x70, 0x01, 0x20, 0x45, 0x41, 0xe8, 0x00, 0x0b,
-0x4a, 0x43, 0x67, 0x12, 0x72, 0x10, 0x16, 0x10,
-0xc6, 0x41, 0x83, 0x10, 0x4e, 0x75, 0x20, 0x6d,
-0x01, 0xb4, 0x4e, 0x90, 0x60, 0xc2, 0x02, 0x10,
-0x00, 0xef, 0x4e, 0x75, 0x57, 0x72, 0x6f, 0x6e,
-0x67, 0x20, 0x63, 0x61, 0x6c, 0x63, 0x75, 0x6c,
-0x61, 0x74, 0x6f, 0x72, 0x20, 0x6d, 0x6f, 0x64,
-0x65, 0x6c, 0x00, 0x00, 0x4e, 0x56, 0xef, 0xb4,
-0x48, 0xe7, 0x1f, 0x20, 0x20, 0x6d, 0x06, 0x78,
-0x4e, 0x90, 0x3f, 0x3c, 0x00, 0x02, 0x20, 0x6d,
-0x06, 0x3c, 0x4e, 0x90, 0x48, 0x7a, 0x04, 0xb8,
-0x48, 0x7a, 0x04, 0xbd, 0x45, 0xee, 0xff, 0xda,
-0x2f, 0x0a, 0x20, 0x6d, 0x01, 0x4c, 0x4e, 0x90,
-0x3f, 0x3c, 0x00, 0x01, 0x2f, 0x0a, 0x42, 0xa7,
-0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90, 0x61, 0x00,
-0x04, 0xfc, 0x3f, 0x00, 0x48, 0x7a, 0x04, 0xa7,
-0x2f, 0x0a, 0x20, 0x6d, 0x01, 0x4c, 0x4e, 0x90,
-0x4f, 0xef, 0x00, 0x20, 0x3e, 0xbc, 0x00, 0x01,
-0x2f, 0x0a, 0x48, 0x78, 0x00, 0x14, 0x20, 0x6d,
-0x06, 0xa4, 0x4e, 0x90, 0x22, 0x0d, 0x02, 0x81,
-0x00, 0xe0, 0x00, 0x00, 0x2f, 0x01, 0x48, 0x7a,
-0x04, 0x88, 0x2f, 0x0a, 0x20, 0x6d, 0x01, 0x4c,
-0x4e, 0x90, 0x3f, 0x3c, 0x00, 0x01, 0x2f, 0x0a,
-0x48, 0x78, 0x00, 0x28, 0x20, 0x6d, 0x06, 0xa4,
-0x4e, 0x90, 0x4f, 0xef, 0x00, 0x1c, 0x2e, 0xbc,
-0x00, 0x00, 0x00, 0x00, 0x2f, 0x0a, 0x20, 0x6d,
-0x01, 0x4c, 0x4e, 0x90, 0x3f, 0x3c, 0x00, 0x01,
-0x2f, 0x0a, 0x48, 0x78, 0x00, 0x50, 0x20, 0x6d,
-0x06, 0xa4, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x12,
-0x20, 0x6d, 0x0f, 0x10, 0x20, 0x28, 0xfb, 0xa8,
-0x22, 0x28, 0xfb, 0xac, 0x24, 0x3c, 0x76, 0x02,
-0x10, 0x03, 0x26, 0x3c, 0x26, 0x1f, 0x4e, 0x75,
-0x92, 0x83, 0x91, 0x82, 0x66, 0x06, 0x41, 0xe8,
-0xfb, 0xc6, 0x60, 0x08, 0x30, 0x7c, 0xff, 0xaa,
-0xd1, 0xed, 0x0a, 0x4c, 0x20, 0x50, 0x41, 0xe8,
-0xff, 0x0a, 0x48, 0x78, 0x07, 0xd0, 0x48, 0x78,
-0x00, 0x04, 0x2a, 0x0e, 0x06, 0x85, 0xff, 0xff,
-0xef, 0xb6, 0x2f, 0x05, 0x4e, 0x90, 0x4f, 0xef,
-0x00, 0x0c, 0x4a, 0x40, 0x67, 0x06, 0x78, 0xff,
-0x60, 0x00, 0x00, 0xc4, 0x18, 0x2e, 0xef, 0xb7,
-0xe1, 0x4c, 0x42, 0x40, 0x10, 0x2e, 0xef, 0xb6,
-0x88, 0x40, 0x16, 0x2e, 0xef, 0xb9, 0xe1, 0x4b,
-0x42, 0x40, 0x10, 0x2e, 0xef, 0xb8, 0x86, 0x40,
-0x70, 0x04, 0x20, 0x45, 0x61, 0x00, 0x03, 0x90,
-0x20, 0x6d, 0x0f, 0x10, 0x20, 0x28, 0xfb, 0xa8,
-0x22, 0x28, 0xfb, 0xac, 0x2a, 0x3c, 0x76, 0x02,
-0x10, 0x03, 0x2c, 0x3c, 0x26, 0x1f, 0x4e, 0x75,
-0x92, 0x86, 0x91, 0x85, 0x66, 0x06, 0x41, 0xe8,
-0xfb, 0xc6, 0x60, 0x08, 0x30, 0x7c, 0xff, 0xaa,
-0xd1, 0xed, 0x0a, 0x4c, 0x7a, 0x00, 0x3a, 0x03,
-0x20, 0x50, 0x41, 0xe8, 0xff, 0x0a, 0x48, 0x78,
-0x07, 0xd0, 0x2f, 0x05, 0x48, 0x6e, 0xef, 0xb6,
-0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c, 0x4a, 0x40,
-0x66, 0x54, 0x20, 0x6d, 0x0f, 0x10, 0x20, 0x28,
-0xfb, 0xa8, 0x22, 0x28, 0xfb, 0xac, 0x2c, 0x3c,
-0x76, 0x02, 0x10, 0x03, 0x2e, 0x3c, 0x26, 0x1f,
-0x4e, 0x75, 0x92, 0x87, 0x91, 0x86, 0x66, 0x06,
-0x41, 0xe8, 0xfb, 0xc6, 0x60, 0x08, 0x30, 0x7c,
-0xff, 0xaa, 0xd1, 0xed, 0x0a, 0x4c, 0x20, 0x50,
-0x41, 0xe8, 0xff, 0x0a, 0x48, 0x78, 0x07, 0xd0,
-0x48, 0x78, 0x00, 0x02, 0x45, 0xee, 0xef, 0xb6,
-0x48, 0x72, 0x58, 0x00, 0x4e, 0x90, 0x4f, 0xef,
-0x00, 0x0c, 0x4a, 0x40, 0x66, 0x08, 0x30, 0x03,
-0x20, 0x4a, 0x61, 0x00, 0x02, 0xf2, 0x20, 0x6d,
-0x01, 0x48, 0x4e, 0x90, 0x3a, 0x00, 0x0c, 0x44,
-0x00, 0x02, 0x67, 0x20, 0x0c, 0x44, 0x00, 0x03,
-0x67, 0x2c, 0x0c, 0x44, 0x00, 0x05, 0x67, 0x00,
-0x00, 0x96, 0x0c, 0x44, 0xaa, 0x55, 0x66, 0x00,
-0x01, 0x7c, 0x93, 0xc9, 0x42, 0x41, 0x70, 0x01,
-0x60, 0x00, 0x01, 0x6c, 0x93, 0xc9, 0x42, 0x41,
-0x70, 0x02, 0x41, 0xee, 0xef, 0xb6, 0x61, 0x00,
-0x01, 0xa8, 0x60, 0x00, 0x01, 0x66, 0x20, 0x0d,
-0x02, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x72, 0x40,
-0x48, 0x41, 0x0c, 0x80, 0x00, 0x80, 0x00, 0x00,
-0x67, 0x04, 0x72, 0x20, 0x48, 0x41, 0xe0, 0x89,
-0x22, 0x4e, 0x23, 0x01, 0x72, 0x04, 0x70, 0x03,
-0x41, 0xee, 0xef, 0xb6, 0x61, 0x00, 0x01, 0x7a,
-0x20, 0x0d, 0x20, 0x6d, 0x01, 0x4c, 0x02, 0x80,
-0x00, 0xe0, 0x00, 0x00, 0x22, 0x3c, 0x00, 0x00,
-0x10, 0x00, 0x0c, 0x80, 0x00, 0x80, 0x00, 0x00,
-0x67, 0x06, 0x22, 0x3c, 0x00, 0x00, 0x08, 0x00,
-0x2f, 0x01, 0x48, 0x7a, 0x02, 0xc5, 0x45, 0xee,
-0xff, 0xbc, 0x2f, 0x0a, 0x4e, 0x90, 0x3f, 0x3c,
-0x00, 0x04, 0x2f, 0x0a, 0x48, 0x78, 0x00, 0x3c,
-0x20, 0x6d, 0x06, 0xa4, 0x4e, 0x90, 0x4f, 0xef,
-0x00, 0x16, 0x60, 0x00, 0x00, 0xf0, 0x76, 0x00,
-0x16, 0x2e, 0xef, 0xb7, 0xe1, 0x8b, 0x86, 0x2e,
-0xef, 0xb6, 0x10, 0x2e, 0xef, 0xb9, 0xe1, 0x48,
-0x48, 0x40, 0x42, 0x40, 0x72, 0x00, 0x12, 0x2e,
-0xef, 0xb8, 0x48, 0x41, 0x42, 0x41, 0x80, 0x81,
-0x86, 0x80, 0x20, 0x0d, 0x02, 0x80, 0x00, 0xe0,
-0x00, 0x00, 0x72, 0x40, 0x48, 0x41, 0x0c, 0x80,
-0x00, 0x80, 0x00, 0x00, 0x67, 0x04, 0x72, 0x20,
-0x48, 0x41, 0xb2, 0x83, 0x64, 0x0e, 0x93, 0xc9,
-0x42, 0x41, 0x70, 0x04, 0x41, 0xee, 0xef, 0xb6,
-0x61, 0x00, 0x00, 0xe6, 0x20, 0x0d, 0x20, 0x6d,
-0x01, 0x4c, 0x02, 0x80, 0x00, 0xe0, 0x00, 0x00,
-0x22, 0x3c, 0x00, 0x00, 0x10, 0x00, 0x0c, 0x80,
-0x00, 0x80, 0x00, 0x00, 0x67, 0x06, 0x22, 0x3c,
-0x00, 0x00, 0x08, 0x00, 0x2f, 0x01, 0x20, 0x03,
-0x7e, 0x0a, 0xee, 0xa8, 0x2f, 0x00, 0x48, 0x7a,
-0x02, 0x36, 0x45, 0xee, 0xff, 0xbc, 0x2f, 0x0a,
-0x4e, 0x90, 0x3f, 0x3c, 0x00, 0x04, 0x2f, 0x0a,
-0x48, 0x78, 0x00, 0x3c, 0x20, 0x6d, 0x06, 0xa4,
-0x4e, 0x90, 0x20, 0x0d, 0x02, 0x80, 0x00, 0xe0,
-0x00, 0x00, 0x22, 0x40, 0xd3, 0xc3, 0x10, 0x11,
-0x72, 0x00, 0x4f, 0xef, 0x00, 0x1a, 0xb0, 0x31,
-0x18, 0x00, 0x66, 0x34, 0x34, 0x01, 0x52, 0x42,
-0x52, 0x81, 0x0c, 0x81, 0x00, 0x00, 0x10, 0x00,
-0x66, 0xec, 0x0c, 0x42, 0x10, 0x00, 0x66, 0x20,
-0x02, 0x40, 0x00, 0xff, 0x42, 0x2e, 0xff, 0xf8,
-0x1d, 0x7c, 0x00, 0x10, 0xff, 0xf9, 0x1d, 0x40,
-0xff, 0xfa, 0x42, 0x2e, 0xff, 0xfb, 0x43, 0xee,
-0xff, 0xf8, 0x72, 0x04, 0x70, 0x07, 0x60, 0x06,
-0x32, 0x3c, 0x10, 0x00, 0x70, 0x06, 0x41, 0xee,
-0xef, 0xb6, 0x61, 0x44, 0x4a, 0x45, 0x67, 0x00,
-0xfd, 0x48, 0x20, 0x6d, 0x0f, 0x10, 0x20, 0x28,
-0xfb, 0xa8, 0x22, 0x28, 0xfb, 0xac, 0x24, 0x3c,
-0x76, 0x02, 0x10, 0x03, 0x26, 0x3c, 0x26, 0x1f,
-0x4e, 0x75, 0x92, 0x83, 0x91, 0x82, 0x66, 0x06,
-0x41, 0xe8, 0xfb, 0xc6, 0x60, 0x08, 0x30, 0x7c,
-0xff, 0xaa, 0xd1, 0xed, 0x0a, 0x4c, 0x20, 0x50,
-0x41, 0xe8, 0xfe, 0xf6, 0x4e, 0x90, 0x4c, 0xee,
-0x04, 0xf8, 0xef, 0x9c, 0x4e, 0x5e, 0x4e, 0x75,
-0x48, 0xe7, 0x1c, 0x38, 0x26, 0x48, 0x38, 0x01,
-0x2a, 0x09, 0x28, 0x48, 0x18, 0xc0, 0xe0, 0x48,
-0x18, 0x80, 0x17, 0x41, 0x00, 0x02, 0x30, 0x01,
-0xe0, 0x48, 0x11, 0x40, 0x00, 0x03, 0x20, 0x6d,
-0x0f, 0x10, 0x20, 0x28, 0xfb, 0xa8, 0x22, 0x28,
-0xfb, 0xac, 0x24, 0x3c, 0x76, 0x02, 0x10, 0x03,
-0x26, 0x3c, 0x26, 0x1f, 0x4e, 0x75, 0x92, 0x83,
-0x91, 0x82, 0x66, 0x06, 0x41, 0xe8, 0xfb, 0xc6,
-0x60, 0x08, 0x30, 0x7c, 0xff, 0xaa, 0xd1, 0xed,
-0x0a, 0x4c, 0x20, 0x50, 0x41, 0xe8, 0xfe, 0x12,
-0x48, 0x78, 0x07, 0xd0, 0x48, 0x78, 0x00, 0x04,
-0x2f, 0x0b, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c,
-0x4a, 0x40, 0x66, 0x00, 0x00, 0xa4, 0x20, 0x6d,
-0x0f, 0x10, 0x20, 0x28, 0xfb, 0xa8, 0x22, 0x28,
-0xfb, 0xac, 0x24, 0x3c, 0x76, 0x02, 0x10, 0x03,
-0x26, 0x3c, 0x26, 0x1f, 0x4e, 0x75, 0x92, 0x83,
-0x91, 0x82, 0x66, 0x06, 0x41, 0xe8, 0xfb, 0xc6,
-0x60, 0x08, 0x30, 0x7c, 0xff, 0xaa, 0xd1, 0xed,
-0x0a, 0x4c, 0x20, 0x50, 0x41, 0xe8, 0xfe, 0x12,
-0x48, 0x78, 0x07, 0xd0, 0x3f, 0x04, 0x42, 0x67,
-0x2f, 0x05, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c,
-0x4a, 0x40, 0x66, 0x5c, 0x45, 0xfa, 0x00, 0x60,
-0x70, 0x04, 0x20, 0x4b, 0x4e, 0x92, 0x36, 0x00,
-0x30, 0x04, 0x20, 0x45, 0x4e, 0x92, 0xd6, 0x40,
-0x16, 0x83, 0xe0, 0x4b, 0x18, 0x83, 0x20, 0x6d,
-0x0f, 0x10, 0x20, 0x28, 0xfb, 0xa8, 0x22, 0x28,
-0xfb, 0xac, 0x24, 0x3c, 0x76, 0x02, 0x10, 0x03,
-0x26, 0x3c, 0x26, 0x1f, 0x4e, 0x75, 0x92, 0x83,
-0x91, 0x82, 0x66, 0x06, 0x41, 0xe8, 0xfb, 0xc6,
-0x60, 0x08, 0x30, 0x7c, 0xff, 0xaa, 0xd1, 0xed,
-0x0a, 0x4c, 0x20, 0x50, 0x41, 0xe8, 0xfe, 0x12,
-0x48, 0x78, 0x07, 0xd0, 0x48, 0x78, 0x00, 0x02,
-0x2f, 0x0b, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c,
-0x4c, 0xdf, 0x1c, 0x38, 0x4e, 0x75, 0x34, 0x00,
-0x42, 0x41, 0x93, 0xc9, 0x60, 0x10, 0x70, 0x00,
-0x30, 0x01, 0x10, 0x30, 0x08, 0x00, 0x02, 0x40,
-0x00, 0xff, 0xd2, 0xc0, 0x52, 0x41, 0xb4, 0x41,
-0x66, 0xec, 0x30, 0x09, 0x4e, 0x75, 0x31, 0x2e,
-0x30, 0x32, 0x20, 0x55, 0x53, 0x42, 0x00, 0x52,
-0x6f, 0x6d, 0x44, 0x75, 0x6d, 0x70, 0x65, 0x72,
-0x20, 0x76, 0x25, 0x73, 0x00, 0x54, 0x79, 0x70,
-0x65, 0x3a, 0x20, 0x48, 0x57, 0x25, 0x69, 0x00,
-0x52, 0x4f, 0x4d, 0x20, 0x62, 0x61, 0x73, 0x65,
-0x3a, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x00,
-0x62, 0x79, 0x20, 0x54, 0x68, 0x65, 0x20, 0x54,
-0x69, 0x4c, 0x50, 0x20, 0x54, 0x65, 0x61, 0x6d,
-0x00, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x25,
-0x6c, 0x75, 0x20, 0x4b, 0x42, 0x00, 0x44, 0x6f,
-0x6e, 0x65, 0x3a, 0x20, 0x25, 0x6c, 0x75, 0x2f,
-0x25, 0x6c, 0x75, 0x4b, 0x42, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x00, 0x00, 0x20, 0x38, 0x00, 0xc8,
-0x02, 0x80, 0x00, 0xe0, 0x00, 0x00, 0x20, 0x40,
-0x22, 0x68, 0x01, 0x04, 0xd1, 0xfc, 0x00, 0x01,
-0x00, 0x00, 0xb3, 0xc8, 0x64, 0x14, 0x0c, 0x51,
-0x00, 0x16, 0x63, 0x0e, 0x4e, 0x4c, 0x46, 0xfc,
-0x30, 0x00, 0x40, 0xc1, 0x46, 0xc0, 0xe7, 0x49,
-0x6a, 0x04, 0x70, 0x01, 0x4e, 0x75, 0x20, 0x29,
-0x00, 0x16, 0x4e, 0x75, 0x00, 0x00, 0x05, 0xf8,
-0x01, 0x80, 0xf3, 0x3a, 0x19,
};
-static unsigned int romDumpSize89t = 1733;
+static unsigned int romDumpSize89t = 0;
diff --git a/src/rom92f2.h b/src/rom92f2.h
index 1817c69..8a2f7a4 100644
--- a/src/rom92f2.h
+++ b/src/rom92f2.h
@@ -1,162 +1,3 @@
static unsigned char romDump92[] = {
-0x2a, 0x2a, 0x54, 0x49, 0x39, 0x32, 0x2a, 0x2a,
-0x01, 0x00, 0x6d, 0x61, 0x69, 0x6e, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x01, 0x00, 0x52, 0x00, 0x00, 0x00,
-0x72, 0x6f, 0x6d, 0x64, 0x75, 0x6d, 0x70, 0x00,
-0x12, 0x00, 0x00, 0x00, 0xf2, 0x04, 0x00, 0x00,
-0xa5, 0x5a, 0x00, 0x00, 0x00, 0x00, 0x04, 0x98,
-0x00, 0x32, 0x45, 0x58, 0x45, 0x20, 0x41, 0x50,
-0x50, 0x4c, 0x00, 0x00, 0x04, 0x4e, 0x04, 0x52,
-0x04, 0x54, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x01,
-0x00, 0x01, 0x00, 0x1e, 0x4f, 0xef, 0xef, 0xb4,
-0x48, 0xe7, 0x1e, 0x38, 0x23, 0xfc, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x04, 0x46, 0x20, 0x3c,
-0x00, 0x00, 0x00, 0x00, 0x60, 0x02, 0x54, 0x80,
-0x20, 0x40, 0x0c, 0x90, 0x00, 0x00, 0x00, 0x00,
-0x66, 0xf4, 0x23, 0xc0, 0x00, 0x00, 0x04, 0x4a,
-0x72, 0xe4, 0xd2, 0x80, 0x23, 0xc1, 0x00, 0x00,
-0x04, 0x46, 0x60, 0x02, 0x54, 0x80, 0x20, 0x40,
-0x0c, 0x90, 0x00, 0x00, 0x00, 0x00, 0x66, 0xf4,
-0x06, 0x80, 0xff, 0xff, 0xff, 0x6a, 0x23, 0xc0,
-0x00, 0x00, 0x04, 0x4a, 0x48, 0x78, 0x0f, 0x00,
-0x42, 0x67, 0x48, 0x79, 0x00, 0x00, 0x00, 0x00,
-0x4e, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3c,
-0x00, 0x02, 0x4e, 0xb9, 0x00, 0x00, 0x00, 0x00,
-0x48, 0x7a, 0x03, 0x34, 0x48, 0x7a, 0x03, 0x35,
-0x45, 0xef, 0x10, 0x56, 0x2f, 0x0a, 0x49, 0xf9,
-0x00, 0x00, 0x00, 0x00, 0x4e, 0x94, 0x3f, 0x3c,
-0x00, 0x01, 0x2f, 0x0a, 0x42, 0xa7, 0x47, 0xf9,
-0x00, 0x00, 0x00, 0x00, 0x4e, 0x93, 0x4f, 0xef,
-0x00, 0x22, 0x20, 0x39, 0x00, 0x00, 0x00, 0xc4,
-0x06, 0x80, 0x00, 0x0f, 0xff, 0xff, 0x42, 0x40,
-0x48, 0x40, 0xe8, 0x48, 0x3f, 0x00, 0x48, 0x7a,
-0x03, 0x09, 0x2f, 0x0a, 0x4e, 0x94, 0x3f, 0x3c,
-0x00, 0x01, 0x2f, 0x0a, 0x48, 0x78, 0x00, 0x14,
-0x4e, 0x93, 0x48, 0x79, 0x00, 0x00, 0x00, 0x00,
-0x48, 0x7a, 0x02, 0xfe, 0x2f, 0x0a, 0x4e, 0x94,
-0x4f, 0xef, 0x00, 0x1e, 0x3e, 0xbc, 0x00, 0x01,
-0x2f, 0x0a, 0x48, 0x78, 0x00, 0x28, 0x4e, 0x93,
-0x48, 0x7a, 0x02, 0xf6, 0x2f, 0x0a, 0x4e, 0x94,
-0x3f, 0x3c, 0x00, 0x01, 0x2f, 0x0a, 0x48, 0x78,
-0x00, 0x50, 0x4e, 0x93, 0x4f, 0xef, 0x00, 0x1c,
-0x48, 0x78, 0x00, 0x14, 0x48, 0x78, 0x00, 0x04,
-0x45, 0xef, 0x00, 0x26, 0x2f, 0x0a, 0x20, 0x7a,
-0x03, 0x28, 0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c,
-0x4a, 0x40, 0x66, 0x00, 0x02, 0x08, 0x1a, 0x2f,
-0x00, 0x1f, 0x1c, 0x2f, 0x00, 0x1e, 0x16, 0x2f,
-0x00, 0x21, 0xe1, 0x4b, 0x42, 0x40, 0x10, 0x2f,
-0x00, 0x20, 0x86, 0x40, 0x47, 0xfa, 0x02, 0xde,
-0x70, 0x04, 0x20, 0x4a, 0x4e, 0x93, 0x78, 0x00,
-0x38, 0x03, 0x48, 0x78, 0x00, 0x14, 0x2f, 0x04,
-0x2f, 0x0a, 0x20, 0x7a, 0x02, 0xec, 0x4e, 0x90,
-0x4f, 0xef, 0x00, 0x0c, 0x4a, 0x40, 0x66, 0x20,
-0x48, 0x78, 0x00, 0x14, 0x48, 0x78, 0x00, 0x02,
-0x48, 0x72, 0x48, 0x00, 0x20, 0x7a, 0x02, 0xd2,
-0x4e, 0x90, 0x4f, 0xef, 0x00, 0x0c, 0x4a, 0x40,
-0x66, 0x06, 0x30, 0x03, 0x20, 0x4a, 0x4e, 0x93,
-0x30, 0x39, 0x00, 0x00, 0x00, 0x1c, 0x56, 0xc0,
-0x18, 0x00, 0x48, 0x84, 0x44, 0x44, 0x32, 0x05,
-0xe1, 0x49, 0x42, 0x40, 0x10, 0x06, 0x82, 0x40,
-0x0c, 0x41, 0x00, 0x02, 0x67, 0x20, 0x0c, 0x41,
-0x00, 0x03, 0x67, 0x2c, 0x0c, 0x41, 0x00, 0x05,
-0x67, 0x00, 0x00, 0x96, 0x0c, 0x41, 0xaa, 0x55,
-0x66, 0x00, 0x01, 0x72, 0x93, 0xc9, 0x42, 0x41,
-0x70, 0x01, 0x60, 0x00, 0x01, 0x62, 0x93, 0xc9,
-0x42, 0x41, 0x70, 0x02, 0x41, 0xef, 0x00, 0x1e,
-0x61, 0x00, 0x01, 0x7c, 0x60, 0x00, 0x01, 0x6e,
-0x20, 0x39, 0x00, 0x00, 0x00, 0xc4, 0x06, 0x80,
-0x00, 0x0f, 0xff, 0xff, 0x22, 0x00, 0x02, 0x81,
-0x00, 0xf0, 0x00, 0x00, 0xe0, 0x89, 0x43, 0xef,
-0x10, 0x68, 0x42, 0x40, 0x48, 0x40, 0xe0, 0x48,
-0x80, 0x81, 0x23, 0x00, 0x72, 0x04, 0x70, 0x03,
-0x41, 0xef, 0x00, 0x1e, 0x61, 0x00, 0x01, 0x48,
-0x20, 0x39, 0x00, 0x00, 0x00, 0xc4, 0x06, 0x80,
-0x00, 0x0f, 0xff, 0xff, 0x72, 0x0a, 0xe2, 0xa8,
-0x02, 0x80, 0x00, 0x3f, 0xfc, 0x00, 0x2f, 0x00,
-0x48, 0x7a, 0x01, 0xdf, 0x45, 0xef, 0x10, 0x2c,
-0x2f, 0x0a, 0x4e, 0xb9, 0x00, 0x00, 0x00, 0x00,
-0x3f, 0x3c, 0x00, 0x04, 0x2f, 0x0a, 0x48, 0x78,
-0x00, 0x3c, 0x4e, 0xb9, 0x00, 0x00, 0x00, 0x00,
-0x4f, 0xef, 0x00, 0x16, 0x60, 0x00, 0x00, 0xe6,
-0x76, 0x00, 0x16, 0x2f, 0x00, 0x1f, 0xe1, 0x8b,
-0x86, 0x2f, 0x00, 0x1e, 0x10, 0x2f, 0x00, 0x21,
-0xe1, 0x48, 0x48, 0x40, 0x42, 0x40, 0x72, 0x00,
-0x12, 0x2f, 0x00, 0x20, 0x48, 0x41, 0x42, 0x41,
-0x80, 0x81, 0x86, 0x80, 0x20, 0x39, 0x00, 0x00,
-0x00, 0xc4, 0x06, 0x80, 0x00, 0x0f, 0xff, 0xff,
-0x02, 0x80, 0xff, 0xf0, 0x00, 0x00, 0xb0, 0x83,
-0x64, 0x0e, 0x93, 0xc9, 0x42, 0x41, 0x70, 0x04,
-0x41, 0xef, 0x00, 0x1e, 0x61, 0x00, 0x00, 0xc0,
-0x20, 0x39, 0x00, 0x00, 0x00, 0xc4, 0x06, 0x80,
-0x00, 0x0f, 0xff, 0xff, 0x72, 0x0a, 0xe2, 0xa8,
-0x02, 0x80, 0x00, 0x3f, 0xfc, 0x00, 0x2f, 0x00,
-0x20, 0x03, 0xe2, 0xa8, 0x2f, 0x00, 0x48, 0x7a,
-0x01, 0x5e, 0x45, 0xef, 0x10, 0x30, 0x2f, 0x0a,
-0x4e, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x3c,
-0x00, 0x04, 0x2f, 0x0a, 0x48, 0x78, 0x00, 0x3c,
-0x4e, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x22, 0x43,
-0xd3, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x10, 0x11,
-0x72, 0x00, 0x4f, 0xef, 0x00, 0x1a, 0x20, 0x43,
-0xd1, 0xfc, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x30,
-0x18, 0x00, 0x66, 0x34, 0x34, 0x01, 0x52, 0x42,
-0x52, 0x81, 0x0c, 0x81, 0x00, 0x00, 0x10, 0x00,
-0x66, 0xe4, 0x0c, 0x42, 0x10, 0x00, 0x66, 0x20,
-0x02, 0x40, 0x00, 0xff, 0x42, 0x2f, 0x10, 0x60,
-0x1f, 0x7c, 0x00, 0x10, 0x10, 0x61, 0x1f, 0x40,
-0x10, 0x62, 0x42, 0x2f, 0x10, 0x63, 0x43, 0xef,
-0x10, 0x60, 0x72, 0x04, 0x70, 0x07, 0x60, 0x06,
-0x32, 0x3c, 0x10, 0x00, 0x70, 0x06, 0x41, 0xef,
-0x00, 0x1e, 0x61, 0x22, 0x4a, 0x44, 0x66, 0x14,
-0x60, 0x00, 0xfd, 0xde, 0x30, 0x39, 0x00, 0x00,
-0x00, 0x1c, 0x56, 0xc0, 0x18, 0x00, 0x48, 0x84,
-0x44, 0x44, 0x60, 0xe8, 0x4c, 0xdf, 0x1c, 0x78,
-0x4f, 0xef, 0x10, 0x4c, 0x4e, 0x75, 0x48, 0xe7,
-0x1c, 0x38, 0x26, 0x48, 0x38, 0x01, 0x2a, 0x09,
-0x28, 0x48, 0x18, 0xc0, 0xe0, 0x48, 0x18, 0x80,
-0x17, 0x41, 0x00, 0x02, 0x30, 0x01, 0xe0, 0x48,
-0x11, 0x40, 0x00, 0x03, 0x48, 0x78, 0x00, 0x04,
-0x2f, 0x08, 0x20, 0x7a, 0x00, 0xd0, 0x4e, 0x90,
-0x50, 0x8f, 0x4a, 0x40, 0x66, 0x3a, 0x3f, 0x04,
-0x42, 0x67, 0x2f, 0x05, 0x20, 0x7a, 0x00, 0xbe,
-0x4e, 0x90, 0x50, 0x8f, 0x4a, 0x40, 0x66, 0x28,
-0x45, 0xfa, 0x00, 0x92, 0x70, 0x04, 0x20, 0x4b,
-0x4e, 0x92, 0x36, 0x00, 0x30, 0x04, 0x20, 0x45,
-0x4e, 0x92, 0xd6, 0x40, 0x16, 0x83, 0xe0, 0x4b,
-0x18, 0x83, 0x48, 0x78, 0x00, 0x02, 0x2f, 0x0b,
-0x20, 0x7a, 0x00, 0x92, 0x4e, 0x90, 0x50, 0x8f,
-0x4c, 0xdf, 0x1c, 0x38, 0x4e, 0x75, 0x31, 0x2e,
-0x30, 0x32, 0x00, 0x52, 0x6f, 0x6d, 0x44, 0x75,
-0x6d, 0x70, 0x65, 0x72, 0x20, 0x76, 0x25, 0x73,
-0x00, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x54,
-0x49, 0x2d, 0x39, 0x32, 0x20, 0x25, 0x69, 0x00,
-0x52, 0x4f, 0x4d, 0x20, 0x62, 0x61, 0x73, 0x65,
-0x3a, 0x20, 0x30, 0x78, 0x25, 0x6c, 0x78, 0x00,
-0x62, 0x79, 0x20, 0x54, 0x68, 0x65, 0x20, 0x54,
-0x69, 0x4c, 0x50, 0x20, 0x54, 0x65, 0x61, 0x6d,
-0x00, 0x53, 0x69, 0x7a, 0x65, 0x3a, 0x20, 0x25,
-0x6c, 0x75, 0x20, 0x4b, 0x42, 0x00, 0x44, 0x6f,
-0x6e, 0x65, 0x3a, 0x20, 0x25, 0x6c, 0x75, 0x2f,
-0x25, 0x6c, 0x75, 0x4b, 0x42, 0x20, 0x20, 0x20,
-0x20, 0x20, 0x00, 0x00, 0x34, 0x00, 0x42, 0x41,
-0x93, 0xc9, 0x60, 0x10, 0x70, 0x00, 0x30, 0x01,
-0x10, 0x30, 0x08, 0x00, 0x02, 0x40, 0x00, 0xff,
-0xd2, 0xc0, 0x52, 0x41, 0xb4, 0x41, 0x66, 0xec,
-0x30, 0x09, 0x4e, 0x75, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x8a, 0xb3, 0x0c, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x04, 0x89, 0x09, 0x14,
-0x00, 0x02, 0x23, 0x00, 0x05, 0x42, 0xc0, 0x49,
-0x46, 0x00, 0x01, 0x4a, 0xc0, 0x49, 0x46, 0x00,
-0x02, 0x38, 0x00, 0x09, 0xc0, 0x3b, 0xc0, 0x55,
-0x00, 0x01, 0x30, 0x00, 0x09, 0x50, 0x13, 0x7e,
-0x17, 0x31, 0x11, 0x1f, 0x07, 0x00, 0x0a, 0x09,
-0x04, 0x00, 0x03, 0x33, 0x00, 0x00, 0x00, 0x74,
-0x69, 0x6f, 0x73, 0x00, 0xe9, 0x12, 0xe4, 0x00,
-0xe8, 0x19, 0xe4, 0xe5, 0x00, 0x00, 0x40, 0xdc,
-0x3b, 0x37,
};
-static unsigned int romDumpSize92 = 1266;
+static unsigned int romDumpSize92 = 0;
diff --git a/src/romdump_84p_usb/romdump.z80 b/src/romdump_84p_usb/romdump.z80
new file mode 100644
index 0000000..a22bcca
--- /dev/null
+++ b/src/romdump_84p_usb/romdump.z80
@@ -0,0 +1,918 @@
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-84+ USB ROM Dumper
+;;;
+;;; Copyright (c) 2009, 2010 Brandon Wilson
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program; if not, write to the Free Software Foundation,
+;;; Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ .nolist
+#define bcall(romcallname) rst 28h \ .dw romcallname
+
+_LdHLind = 4009h
+_cphlde = 400Ch
+_PutC = 4504h
+_PutS = 450Ah
+_clrLCDFull = 4540h
+_homeUp = 4558h
+_runIndicOff = 4570h
+_Mov18B = 47DAh
+_getKey = 4972h
+_GetBaseVer = 4C6Fh
+_GetVariableData = 5092h
+_GetBootVer = 80B7h
+_GetHWVer = 80BAh
+_WriteAByteSafe = 80C6h
+
+appData = 8000h
+ramCode = 8100h
+arcInfo = 83EEh
+curRow = 844Bh
+OP1 = 8478h
+iMathPtr5 = 84DBh
+flags = 89F0h
+pagedCount = 9834h
+pagedBuf = 983Ah
+appBackUpScreen = 9872h
+userMem = 9D95h
+
+onInterrupt = 4
+onFlags = 9h
+LlBrack = 0C1h
+
+PACKET_SIZE = 1024
+CMD_READY = 0AA55h
+CMD_OK = 0001h
+CMD_EXIT = 0002h
+CMD_SIZE = 0003h
+CMD_GETDATA = 0005h
+CMD_DATA = 0006h
+CMD_REPEAT = 0007h
+ .list
+inputBuffer = 9C31h
+SPbackup = appBackUpScreen
+outputBuffer = appBackUpScreen+2
+
+.org userMem-2
+ .db 0BBh,6Dh
+ bcall(_runIndicOff)
+; Unlock Flash, if possible.
+; The purpose is to get an accurate dump of the certificate page (page 3Eh/7Eh).
+ in a,(6)
+ push af
+ call Unlock
+ pop af
+ out (6),a
+
+ ld (SPbackup),sp
+ call clearScreen
+ call IsUSBAvailable
+ jr nc,startDump
+ call InitializePeriphUSB
+ jr nc,startDump
+throwError:
+ ld sp,(SPbackup)
+ call clearScreen
+ ld hl,sError
+ bcall(_PutS)
+ bcall(_getKey)
+clearScreen:
+ bcall(_clrLCDFull)
+ bcall(_homeUp)
+ res onInterrupt,(iy+onFlags)
+ ret
+startDump:
+ ld hl,sMessage
+ bcall(_PutS)
+ res 5,(iy+41h)
+getCommandsLoop:
+ ld hl,appData
+ call GetPacket
+ jr c,throwError
+ ld hl,(appData)
+;Exit dumper?
+ ld de,CMD_EXIT
+ bcall(_cphlde)
+ jr z,exitDumper
+;Requesting ROM dump size?
+ ld de,CMD_SIZE
+ bcall(_cphlde)
+ jr z,sizeRequested
+;Requesting ROM data?
+ ld de,CMD_GETDATA
+ bcall(_cphlde)
+ jr z,dataRequested
+;Are we ready?
+ ld de,CMD_READY
+ bcall(_cphlde)
+ jr z,readyReceived
+ jr getCommandsLoop
+
+exitDumper:
+ ld de,CMD_EXIT
+ ld bc,0
+ call SendPacket
+ jr clearScreen
+
+sizeRequested:
+ ld hl,outputBuffer
+ ld (hl),0
+ inc hl
+ ld (hl),0
+ inc hl
+ in a,(21h)
+ and 3
+ ld a,10h
+ jr z,srIsNotSE
+ add a,a
+srIsNotSE:
+ ld (hl),a
+ inc hl
+ ld (hl),0
+ ld a,81h
+ ld hl,outputBuffer-4000h
+ ld de,CMD_SIZE
+ ld bc,4
+ call SendPacket
+ jp c,throwError
+ jr getCommandsLoop
+
+readyReceived:
+ ld de,CMD_OK
+ ld bc,0
+ call SendPacket
+ jp c,throwError
+ jr getCommandsLoop
+
+dataRequested:
+ ld ix,appData+4
+ ld l,(ix+0)
+ ld h,(ix+1)
+ ld e,(ix+2)
+ ld d,(ix+3)
+ ;DEHL contains the base address
+ ld bc,0402h
+ ld (curRow),bc
+ ld a,e
+ call DispHexA
+ ld a,h
+ call DispHexA
+ ld a,l
+ call DispHexA
+ ;Figure out what Flash page this is
+ ld a,e
+ add a,a
+ add a,a
+drGetFlashPage:
+ ld de,4000h
+ or a
+ sbc hl,de
+ jr c,drGFPDone
+ inc a
+ jr drGetFlashPage
+drGFPDone:
+ add hl,de
+ ld de,4000h
+ add hl,de
+ ;See if this block is "empty"/same
+ push hl
+ ld (83EBh),a
+ in a,(6)
+ push af
+ ld a,(83EBh)
+ out (6),a
+ ld d,(hl)
+ ld bc,PACKET_SIZE
+drGFDLoop:
+ ld a,(hl)
+ cp d
+ jr nz,drGFDDone
+ inc hl
+ dec bc
+ ld a,b
+ or c
+ jr nz,drGFDLoop
+drGFDDone:
+ pop bc
+ ld a,b
+ out (6),a
+ pop hl
+ jr z,requestingEmptyPacket
+ ld a,(83EBh)
+ ld de,CMD_DATA
+ ld bc,PACKET_SIZE
+ call SendPacket
+ jp c,throwError
+ jp getCommandsLoop
+requestingEmptyPacket:
+ ld ix,OP1
+ ld (ix+0),PACKET_SIZE & 0FFh
+ ld (ix+1),(PACKET_SIZE & 0FF00h) >> 8
+ ld (ix+2),d
+ ld (ix+3),d
+ ld a,81h
+ ld hl,OP1-4000h
+ ld de,CMD_REPEAT
+ ld bc,4
+ call SendPacket
+ jp c,throwError
+ jp getCommandsLoop
+
+sMessage:
+ .db "Dumping",0CEh," "
+ .db " "
+ .db " "
+ .db " "
+ .db "Press ",LlBrack,"ON] to "
+ .db "abort.",0
+sError: .db "ERROR! "
+ .db " "
+ .db "There was an "
+ .db "unknown USB "
+ .db "error. "
+ .db " "
+ .db "Press any key to"
+ .db "quit.",0
+
+SendPacket:
+;Sends a TiLP ROM dump packet.
+;Inputs: DE: command ID
+; HL => buffer of data to send (if any) (4000h range)
+; A: page of data to send (if any) (81h\80h for RAM)
+; BC: number of bytes to send
+;Outputs: Returns carry flag set if problems
+;Notes: This routine is absolutely horrible. Somebody optimize it.
+ di
+ push bc
+ ld (83EBh),a
+ in a,(6)
+ push af
+ ld a,83h
+ out (6),a
+ push hl
+ ld hl,4000h
+ ld (hl),e
+ inc hl
+ ld (hl),d
+ inc hl
+ ld (hl),c
+ inc hl
+ ld (hl),b
+ inc hl
+ ex de,hl
+ pop hl
+ ;Copy BC bytes from HL to DE
+ ld a,b
+ or c
+ jr z,spSkipData
+ push bc
+spCopyLoop:
+ ld a,(83EBh)
+ out (6),a
+ ld a,(hl)
+ push af
+ ld a,83h
+ out (6),a
+ pop af
+ ld (de),a
+ inc hl
+ bit 7,h
+ jr z,spNC
+ res 7,h
+ set 6,h
+ ld a,(83EBh)
+ inc a
+ ld (83EBh),a
+spNC: inc de
+ dec bc
+ ld a,b
+ or c
+ jr nz,spCopyLoop
+ pop bc
+spSkipData:
+ ;Calculate the checksum
+ inc bc
+ inc bc
+ inc bc
+ inc bc
+ ;Total BC bytes from 8000h
+ ld hl,4000h
+ ld de,0
+spGetChecksum:
+ ld a,(hl)
+ inc hl
+ add a,e
+ ld e,a
+ jr nc,spGCC
+ inc d
+spGCC: dec bc
+ ld a,b
+ or c
+ jr nz,spGetChecksum
+ ld (hl),e
+ inc hl
+ ld (hl),d
+ pop af
+ out (6),a
+ pop de
+ inc de
+ inc de
+ inc de
+ inc de
+ inc de
+ inc de
+ ld hl,8000h
+ jp SendUSBData
+
+GetPacket:
+;Gets a TiLP ROM dump packet.
+;Inputs: HL points to packet buffer
+;Outputs: Returns carry flag set if problems
+ ;Get command and data length words
+ ld bc,4
+ push hl
+ call ReceiveUSBDataWait
+ pop hl
+ ret c
+ inc hl
+ inc hl
+ ld c,(hl)
+ inc hl
+ ld b,(hl)
+ inc hl
+ ld a,b
+ or c
+ jr z,gpSkipData
+ push hl
+ push bc
+ ;Data bytes
+ call ReceiveUSBDataWait
+ pop bc
+ pop hl
+ ret c
+ add hl,bc
+gpSkipData:
+ ;Checksum word
+ ld bc,2
+ jp ReceiveUSBDataWait
+ ;TODO: validate the PC's checksum?
+
+DispHexA:
+ push ix
+ push af
+ push hl
+ push bc
+ push af
+ rrca
+ rrca
+ rrca
+ rrca
+ call vdispha
+ pop af
+ call vdispha
+ pop bc
+ pop hl
+ pop af
+ pop ix
+ ret
+vdispha:
+ and 15
+ cp 10
+ jr nc,vdhlet
+ add a,48
+ jr vdispd
+vdhlet: add a,55
+vdispd: bcall(_PutC)
+ ret
+
+;----------------------------------------------------------------------------
+;InitializePeriphUSB:
+;Initializes ourself as a USB peripheral connected to...something.
+;Inputs: None
+;Outputs: Carry flag set if any issues
+InitializePeriphUSB:
+ bcall(810Eh) ;_KillUSB
+ ret c
+ ld a,80h
+ out (57h),a
+ xor a
+ out (4Ch),a
+ ld a,1
+ out (5Bh),a
+ xor a
+ in a,(4Ch)
+ ld a,2
+ out (54h),a
+ ld a,20h
+ out (4Ah),a
+ xor a
+ out (4Bh),a
+ in a,(3Ah)
+ bit 3,a
+ jr z,port3AhReset1
+ ld a,20h
+ out (4Bh),a
+port3AhReset1:
+ xor a
+ out (54h),a
+ ld a,42h
+ out (36h),a
+ xor a
+ out (37h),a
+ ld a,1
+ out (38h),a
+timerWait:
+ in a,(4)
+ bit 7,a
+ jr z,timerWait
+ in a,(3Ah)
+ bit 3,a
+ jr z,port3AhReset2
+ ld a,44h
+ out (54h),a
+port3AhReset2:
+ ld a,0C4h
+ out (54h),a
+ ld a,8
+ out (4Ch),a
+ ld de,0FFFFh
+port5AhLoop:
+ dec de
+ ld a,d
+ or e
+ scf
+ ret z
+ in a,(4Ch)
+ cp 1Ah
+ jr z,port5AhDone
+ cp 5Ah
+ jr nz,port5AhLoop
+port5AhDone:
+ ld a,0FFh
+ out (87h),a
+ xor a
+ out (92h),a
+ in a,(87h)
+ ld a,0Eh
+ out (89h),a
+ ld a,5
+ out (8Bh),a
+ in a,(81h)
+ or 0
+ out (81h),a
+ in a,(54h)
+ or 1
+ out (54h),a
+ ld b,5
+frameCounterLoop:
+ ld de,0FFFFh
+frameCounterLoop2:
+ dec de
+ ld a,d
+ or e
+ jr z,counterExpired
+ in a,(8Ch)
+ or a
+ jr z,frameCounterLoop2
+ ret
+counterExpired:
+ djnz frameCounterLoop
+ scf
+ ret
+
+;----------------------------------------------------------------------------
+;IsUSBAvailable:
+;Returns whether USB communication MAY be available.
+;Inputs: None
+;Outputs: Carry flag set if USB is not available
+IsUSBAvailable:
+ in a,(2)
+ bit 5,a
+ scf
+ ret z
+ ld a,(4Dh)
+ or a
+ bit 5,a
+ ret z
+ bit 6,a
+ scf
+ ret nz
+ ccf
+ ret
+
+;----------------------------------------------------------------------------
+;SendUSBData:
+;Sends data over USB.
+;Inputs: HL => data to send
+; DE: number of bytes to send
+;Outputs: DE bytes sent from HL
+; Carry flag set if any issues
+SendUSBData:
+ set 2,(iy+40h)
+ res 0,(iy+43h)
+ bcall(50F2h)
+ res 0,(iy+41h)
+ ret
+
+;----------------------------------------------------------------------------
+;ReceiveUSBDataWait:
+;Receives data over USB (waits until data is received).
+;Inputs: HL => buffer to store data to
+; BC: number of bytes to receive
+;Outputs: BC bytes received to HL
+; Carry flag set if any issues
+;Make sure you know how much you need to be receiving before calling.
+;This is a blocking call and will not return until everything is received.
+ReceiveUSBDataWait:
+ ei
+ halt
+ in a,(4)
+ bit 3,a
+ scf
+ ret z
+ bit 5,(iy+41h)
+ jr z,ReceiveUSBDataWait
+
+;----------------------------------------------------------------------------
+;ReceiveUSBData:
+;Receives data over USB.
+;Inputs: 5,(iy+41h) set by OS.
+; HL => buffer to store data to
+; BC: number of bytes to receive
+;Outputs: BC bytes received to HL
+; Carry flag set if any issues
+;Make sure you know how much you need to be receiving before calling.
+ReceiveUSBData:
+ push bc
+ push af
+ xor a
+ ld (9834h),a
+ jr receive_data_ready
+receive_big_loop:
+ in a,(4)
+ bit 3,a
+ jr z,P2scfRet
+ bit 5,(iy+41h)
+ jr nz,receive_data_ready
+ in a,(84h)
+ bit 2,a
+ jr nz,receiving_data
+ bit 1,a
+ jr z,restart_receive_loop
+receiving_data:
+ set 5,(iy+41h)
+ xor a
+ ld (9C27h),a
+ jr receive_data_ready
+restart_receive_loop:
+ in a,(86h)
+ bit 5,a
+ jr nz,P2scfRet
+ jr receive_big_loop
+receive_data_ready:
+ push bc
+ push hl
+ ld hl,40h
+ or a
+ sbc hl,bc
+ pop hl
+ ld b,c
+ jr nc,receiveRest
+ ld b,40h
+receiveRest:
+ call ReceiveUSBData_small
+ ex de,hl
+ pop hl
+ jr c,P2scfRet
+ or a
+ ld b,0
+ sbc hl,bc
+ jr z,P2ret
+ ld b,h
+ ld c,l
+ ex de,hl
+ jr receive_big_loop
+P2ret: pop bc
+ ld a,b
+ pop bc
+ ret
+P2scfRet:
+ pop af
+ pop bc
+ scf
+ ret
+ReceiveUSBData_small:
+ ld a,b
+ or a
+ ret z
+ ld a,40h
+ cp b
+ ret c
+ ld a,b
+ ld (9C80h),a
+ ld a,(9C27h)
+ or a
+ jr z,ReceiveUSBData_continue
+ cp b
+ jr nc,ReceiveUSBData_continue
+ ld b,a
+ ld (9C80h),a
+ReceiveUSBData_continue:
+ in a,(8Fh)
+ bit 2,a
+ jp z,calcIsPeripheral
+ xor a
+ out (5Bh),a
+ ld a,(9C27h)
+ or a
+ jr nz,startReceive
+ ld a,1
+ out (8Eh),a
+ ld a,21h
+ out (9Ah),a
+ xor a
+ in a,(9Ah)
+ ld a,8
+ out (93h),a
+ xor a
+ in a,(93h)
+ ld a,0FFh
+ out (89h),a
+ xor a
+ out (95h),a
+ in a,(89h)
+ ld a,0A1h
+ out (8Bh),a
+ in a,(94h)
+ bit 2,a
+ jp nz,receiveError
+ bit 6,a
+ jp nz,receiveError
+ ld a,1
+ out (5Bh),a
+ ld a,(9C27h)
+ or a
+ jr nz,startReceive
+ ld a,1
+ out (8Eh),a
+ in a,(94h)
+ in a,(96h)
+startReceive:
+ push af
+ ld a,(9C80h)
+ ld b,a
+ ld c,0
+receiveLoop:
+ in a,(0A1h)
+ ld (hl),a
+ inc hl
+ inc c
+ djnz receiveLoop
+ ld a,1
+ out (8Eh),a
+ in a,(94h)
+ bit 2,a
+ jr nz,p1ReceiveError
+ bit 6,a
+ jr nz,p1ReceiveError
+ pop af
+ sub c
+ ld (9C27h),a
+ set 5,(iy+41h)
+ ret nz
+ ld a,1
+ out (8Eh),a
+ ld a,21h
+ out (9Ah),a
+ ld a,8
+ out (93h),a
+ xor a
+ in a,(93h)
+ ld a,0Eh
+ out (89h),a
+ xor a
+ out (95h),a
+ res 5,(iy+41h)
+ xor a
+ ld (9C27h),a
+ res 0,(iy+41h)
+ ld a,20h
+ out (94h),a
+ ld a,1
+ out (5Bh),a
+ ret
+calcIsPeripheral:
+ ld a,2
+ out (8Eh),a
+ in a,(94h)
+ bit 6,a
+ jr z,startReceive2
+ and 0DFh
+ out (94h),a
+ pop af
+ bcall(5257h) ;_KillUSBDevice
+ jr receiveError
+startReceive2:
+ ld a,(9C27h)
+ or a
+ jr nz,startReceive3
+ in a,(96h)
+startReceive3:
+ push af
+ ld c,0
+receivePeriphLoop:
+ in a,(0A2h)
+ ld (hl),a
+ inc hl
+ inc c
+ djnz receivePeriphLoop
+ ld a,2
+ out (8Eh),a
+ pop af
+ sub c
+ ld (9C27h),a
+ ret nz
+ xor a
+ ld (9C27h),a
+ in a,(94h)
+ and 0FEh
+ out (94h),a
+ res 5,(iy+41h)
+ ld a,0A1h
+ ld (8Bh),a
+ jr endReceive
+p1ReceiveError:
+ pop af
+receiveError:
+ res 5,(iy+41h)
+ scf
+endReceive:
+ ei
+ ld a,1
+ out (5Bh),a
+ res 0,(iy+41h)
+ ret
+
+;----------------------------------------------------------------------------
+;;; Table of supported OS and boot code versions
+VersionTable:
+ .db 1,19, 1,01 ; TI-83 Plus
+ .db 1,19, 1,00 ; TI-83 Plus SE
+ .db 2,55, 1,03 ; TI-84 Plus
+ .db 2,55, 1,03 ; TI-84 Plus SE (odd versions)
+ .db 2,56, 1,03 ; Nspire (even versions)
+
+;; Unlock:
+;;
+;; Write-enable Flash.
+;;
+;; Output:
+;; - Carry flag set if unlocking failed
+;;
+;; Destroys:
+;; - AF, BC, DE, HL
+;; - Port 6
+;; - Interrupts disabled
+;; - Interrupt mode set to 1
+
+Unlock:
+ ;; Check if current OS/boot version is known to be supported
+ bcall(_GetBaseVer)
+ ld c, a
+ bcall(_GetHWVer)
+ ld l, a
+ add a, -4
+ ret c
+ inc a
+ jr nz, Unlock_NotNspire
+ bit 0, b
+ jr nz, Unlock_NotNspire
+ inc l
+Unlock_NotNspire:
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, VersionTable
+ add hl, de
+ ld a, c
+ call CheckVersion
+ ret c
+ inc hl
+ bcall(_GetBootVer)
+ call CheckVersion
+ ret c
+
+ di
+ push iy
+ ld de, 7B09h
+ ld a, e
+ ld (arcInfo), a
+ out (6), a
+ ld a, (de)
+ ld b, a
+ push bc
+ push de
+ call SetFlashPageD
+ ld a, e
+ bcall(_WriteAByteSafe)
+ ld hl, Unlock_Recover - 2
+ ld de, pagedBuf - 2
+ bcall(_Mov18B)
+ ld (pagedBuf + 2), sp
+ call Unlock_Main
+ pop af
+ pop bc
+ jr Unlock_Done
+
+Unlock_Main:
+ ld a, (_GetVariableData + 2)
+ ld d, a
+ ld hl, ramCode
+ ld bc, 304
+Unlock_Loop1:
+ ld a, 0EDh
+ cpir
+ ret nz
+ ld a, (hl)
+ sub 0A0h
+ jr nz, Unlock_Loop1
+ ld c, (hl)
+ ld b, a
+ inc hl
+ ld (iMathPtr5), hl
+ ld hl, (_GetVariableData)
+ inc a
+Unlock_Data:
+ ld (pagedCount), a
+ or a
+ call nz, SetFlashPageD
+Unlock_Loop2:
+ ld a, 3Ah
+ cpir
+ ret nz
+ ld de, Unlock_Data + 1
+Unlock_Loop3:
+ ld a,(de)
+ cp (hl)
+ jr nz, Unlock_Loop2
+ inc hl
+ inc de
+ cp 0C4h
+ jr nz, Unlock_Loop3
+ bcall(_LdHLind)
+ ld iy, 56h - 25h
+Unlock_Recover:
+ jp (hl)
+ ld sp, 0
+ pop hl
+ pop af
+ ld (hl), a
+Unlock_WriteByte:
+ cp (hl)
+ jr nz, Unlock_WriteByte
+ ld (hl), 0F0h
+Unlock_Done:
+ pop iy
+ ret
+
+SetFlashPageD:
+ in a, (2)
+ add a, a
+ ld a, 1Fh
+ jr nc, SetFlashPage_Mask
+ in a, (21h)
+ and 3
+ ld a, 7Fh
+ jr nz, SetFlashPage_Mask
+ rra
+SetFlashPage_Mask:
+ and d
+ out (6), a
+ ret
+
+CheckVersion:
+ cp (hl)
+ inc hl
+ ccf
+ ret nz
+ ld a, (hl)
+ cp b
+ ret
+
+.end
+end
diff --git a/src/romdump_8x/data.asm b/src/romdump_8x/data.asm
new file mode 100644
index 0000000..d49ec19
--- /dev/null
+++ b/src/romdump_8x/data.asm
@@ -0,0 +1,49 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+DumpingROMString: db "Dumping ROM...", 0
+ EXIT_KEY_STR
+ db " to cancel", 0
+
+ErrorString: db "Errors:", 0
+
+KString: db "0K of "
+
+ #if CALC_ROM_SIZE == 512
+ db "512K"
+ROMSize: dw 0000h, 0008h
+ #endif
+
+ #if CALC_ROM_SIZE == 128
+ db "128K"
+ROMSize: dw 0000h, 0002h
+ #endif
+
+ #if CALC_ROM_SIZE == 256
+ db "256K"
+ROMSize: dw 0000h, 0004h
+ #endif
+
+ #if CALC_ROM_SIZE == 0
+ROMSize: dw 0000h, 0008h
+ #endif
diff --git a/src/romdump_8x/defs.inc b/src/romdump_8x/defs.inc
new file mode 100644
index 0000000..6990996
--- /dev/null
+++ b/src/romdump_8x/defs.inc
@@ -0,0 +1,40 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+defaultMemPage equ safe_mem ; 1 Original ROM page
+defaultLinkState equ defaultMemPage + 1 ; 1 Original link port value (83)
+linkD0L equ defaultLinkState ; 1 Link port value for a 0 (82)
+linkD1L equ linkD0L + 1 ; 1 Link port value for a 1 (82)
+
+errorCount equ linkD1L + 1 ; 2 Count of errors
+blockCount equ errorCount + 2 ; 2 Count of blocks transferred
+
+sendPacketCmd equ blockCount + 2 ; 2 Command to send
+sendPacketLength equ sendPacketCmd + 2 ; 2 Length of packet to send
+sendPacketDataPtr equ sendPacketLength + 2 ; 2 Pointer to data to send
+sendPacketData equ sendPacketDataPtr + 2 ; 4 Buffer for data to send
+
+packetChecksum equ sendPacketData + 4 ; 2 Checksum of packet
+recPacketCmd equ packetChecksum + 2 ; 2 Last command received
+recPacketLength equ recPacketCmd + 2 ; 2 Length of last packet received
+recPacketData equ recPacketLength + 2 ; 64 Data received in last packet
diff --git a/src/romdump_8x/display.asm b/src/romdump_8x/display.asm
new file mode 100644
index 0000000..a56eb71
--- /dev/null
+++ b/src/romdump_8x/display.asm
@@ -0,0 +1,96 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; DispHL:
+;;
+;; Display a 16-bit unsigned integer in decimal, padded on the left
+;; with spaces.
+;;
+;; Input:
+;; - HL = number
+;; - (curRow) = cursor row
+;; - (curCol) = cursor column
+;;
+;; Output:
+;; - (curRow), (curCol) = updated
+;;
+;; Destroys:
+;; - AF, BC, DE, HL
+
+DispHL:
+ ld b, 5
+ ex de, hl
+DispHL_PadLoop:
+ ld a, ' '
+ call PutC
+ djnz DispHL_PadLoop
+ ld hl, curCol
+ ld a, (hl)
+ push af
+DispHL_Loop:
+ dec (hl)
+ ex de, hl
+ ld bc, 100Ah
+ xor a
+DispHL_DivLoop:
+ add hl, hl
+ adc a, a
+ cp c
+ jr c, DispHL_DivNC
+ sub c
+ inc l
+DispHL_DivNC:
+ djnz DispHL_DivLoop
+ ex de, hl
+ add a, '0'
+ call PutC
+ dec (hl)
+ ld a, d
+ or e
+ jr nz, DispHL_Loop
+ pop af
+ ld (hl), a
+ ret
+
+;; PutS:
+;;
+;; Display a zero-terminated ASCII string.
+;;
+;; Input:
+;; - HL = address of string
+;; - (curRow) = cursor row
+;; - (curCol) = cursor column
+;;
+;; Output:
+;; - (curRow), (curCol) = updated
+;;
+;; Destroys:
+;; - AF, HL
+
+PutS:
+ ld a, (hl)
+ inc hl
+ or a
+ ret z
+ call PutC
+ jr PutS
diff --git a/src/romdump_8x/display82.asm b/src/romdump_8x/display82.asm
new file mode 100644
index 0000000..5a3dd45
--- /dev/null
+++ b/src/romdump_8x/display82.asm
@@ -0,0 +1,138 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; ClearLCD:
+;;
+;; Clear the LCD.
+;;
+;; Destroys:
+;; - AF, BC, DE, HL
+
+ClearLCD:
+ ld a, 20h
+ClearLCD_Loop:
+ ld c, a
+ call LCDCommand
+ ld b, 64
+ClearLCD_ColumnLoop:
+ call LCDBusy
+ xor a
+ out (11h), a
+ djnz ClearLCD_ColumnLoop
+ ld a, c
+ inc a
+ cp 2Ch
+ jr c, ClearLCD_Loop
+ ret
+
+;; PutC:
+;;
+;; Display an ASCII character.
+;;
+;; Input:
+;; - A = character
+;; - (curRow) = cursor row
+;; - (curCol) = cursor column
+;;
+;; Output:
+;; - (curRow), (curCol) = updated
+;;
+;; Destroys:
+;; - AF
+
+PutC:
+ push hl
+ push de
+ push bc
+fontTable equ $ + 1
+ ld hl, 0
+ ld bc, 8
+PutC_FindBitmapLoop:
+ cp (hl)
+ jr z, PutC_FoundBitmap
+ add hl, bc
+ jr nc, PutC_FindBitmapLoop
+PutC_FoundBitmap:
+ inc hl
+
+ xor a
+ call LCDCommand
+
+ ld de, curCol
+ ld a, (de)
+ inc a
+ ld (de), a
+ dec a
+ or 20h
+ call LCDCommand
+
+ dec de
+ ld a, (de)
+ add a, a
+ add a, a
+ add a, a
+ or 80h
+ call LCDCommand
+
+ ld b, 7
+PutC_Loop:
+ call LCDBusy
+ ld a, (hl)
+ out (11h), a
+ inc hl
+ djnz PutC_Loop
+
+ pop bc
+ pop de
+ pop hl
+ ld a, 1
+
+;; LCDCommand:
+;;
+;; Send a command to the LCD driver.
+;;
+;; Input:
+;; - A = command
+;;
+;; Destroys:
+;; - None
+
+LCDCommand:
+ push af
+ call LCDBusy
+ pop af
+ out (10h), a
+ ret
+
+;; LCDBusy:
+;;
+;; Wait for the LCD driver to be ready to accept a command.
+;;
+;; Destroys:
+;; - AF
+
+LCDBusy:
+ in a, (10h)
+ add a, a
+ jr c, LCDBusy
+ ret
diff --git a/src/romdump_8x/display85.asm b/src/romdump_8x/display85.asm
new file mode 100644
index 0000000..6d5da85
--- /dev/null
+++ b/src/romdump_8x/display85.asm
@@ -0,0 +1,159 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; ClearLCD:
+;;
+;; Clear the LCD.
+;;
+;; Destroys:
+;; - AF, BC, DE, HL
+
+ClearLCD:
+ ld hl, 0FC00h
+ ld (hl), l
+ ld de, 0FC01h
+ ld bc, 03FFh
+ ldir
+ ret
+
+;; PutC:
+;;
+;; Display an ASCII character.
+;;
+;; Input:
+;; - A = character
+;; - (curRow) = cursor row
+;; - (curCol) = cursor column
+;;
+;; Output:
+;; - (curRow), (curCol) = updated
+;;
+;; Destroys:
+;; - AF
+
+PutC:
+ push hl
+ push de
+ push bc
+fontTable equ $ + 1
+ ld hl, 0
+ ld bc, 8
+PutC_FindBitmapLoop:
+ cp (hl)
+ jr z, PutC_FoundBitmap
+ add hl, bc
+ jr nc, PutC_FindBitmapLoop
+PutC_FoundBitmap:
+ inc hl
+
+ ld bc, curRow
+ ld a, (bc)
+ rrca
+ ld e, a
+ or 0FCh
+ ld d, a
+
+ inc bc
+ ld a, (bc)
+ inc a
+ ld (bc), a
+ dec a
+ ld b, a
+ add a, a
+ add a, b
+ rrca
+ rrca
+ xor e
+ and 1Fh
+ xor e
+ ld e, a
+
+ ld b, 7
+PutC_Loop:
+ ld a, (curCol)
+ and 3
+ jr z, PutC_0
+ dec a
+ jr z, PutC_1
+ dec a
+ ld a, (hl)
+ rrca
+ rrca
+ jr z, PutC_2
+
+ ld c, a
+ inc e
+ ld a, (de)
+ xor c
+ and 03Fh
+ xor c
+ ld (de), a
+ dec e
+ ld a, (de)
+ xor c
+ and 0F0h
+ xor c
+ jr PutC_Next
+
+PutC_0:
+ ld a, (de)
+ and 0C0h
+ or (hl)
+ jr PutC_Next
+
+PutC_1:
+ ld a, (hl)
+ rlca
+ rlca
+ ld c, a
+ ld a, (de)
+ and 3
+ or c
+ jr PutC_Next
+
+PutC_2:
+ rrca
+ rrca
+ ld c, a
+ inc e
+ ld a, (de)
+ xor c
+ and 0Fh
+ xor c
+ ld (de), a
+ dec e
+ ld a, (de)
+ xor c
+ and 0FCh
+ xor c
+PutC_Next:
+ ld (de), a
+ inc hl
+ ld a, e
+ add a, 16
+ ld e, a
+ djnz PutC_Loop
+ pop bc
+ pop de
+ pop hl
+ ret
diff --git a/src/romdump_8x/font.asm b/src/romdump_8x/font.asm
new file mode 100644
index 0000000..ff083b8
--- /dev/null
+++ b/src/romdump_8x/font.asm
@@ -0,0 +1,412 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+ db ' '
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+
+ db '.'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00000000b
+ db 00001100b
+ db 00001100b
+
+ db ':'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00001100b
+ db 00001100b
+ db 00000000b
+ db 00001100b
+ db 00001100b
+ db 00000000b
+
+ db '['
+;;;SPRITE 8x7x1
+ db 00001100b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001100b
+
+ db ']'
+;;;SPRITE 8x7x1
+ db 00011000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00011000b
+
+ db '0'
+;;;SPRITE 8x7x1
+ db 00011100b
+ db 00100010b
+ db 00100110b
+ db 00101010b
+ db 00110010b
+ db 00100010b
+ db 00011100b
+
+ db '1'
+;;;SPRITE 8x7x1
+ db 00001000b
+ db 00011000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00011100b
+
+ db '2'
+;;;SPRITE 8x7x1
+ db 00011100b
+ db 00100010b
+ db 00000010b
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00111110b
+
+ db '3'
+;;;SPRITE 8x7x1
+ db 00111110b
+ db 00000100b
+ db 00001000b
+ db 00000100b
+ db 00000010b
+ db 00100010b
+ db 00011100b
+
+ db '4'
+;;;SPRITE 8x7x1
+ db 00000100b
+ db 00001100b
+ db 00010100b
+ db 00100100b
+ db 00111110b
+ db 00000100b
+ db 00000100b
+
+ db '5'
+;;;SPRITE 8x7x1
+ db 00111110b
+ db 00100000b
+ db 00111100b
+ db 00000010b
+ db 00000010b
+ db 00100010b
+ db 00011100b
+
+ db '6'
+;;;SPRITE 8x7x1
+ db 00001100b
+ db 00010000b
+ db 00100000b
+ db 00111100b
+ db 00100010b
+ db 00100010b
+ db 00011100b
+
+ db '7'
+;;;SPRITE 8x7x1
+ db 00111110b
+ db 00000010b
+ db 00000100b
+ db 00001000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+
+ db '8'
+;;;SPRITE 8x7x1
+ db 00011100b
+ db 00100010b
+ db 00100010b
+ db 00011100b
+ db 00100010b
+ db 00100010b
+ db 00011100b
+
+ db '9'
+;;;SPRITE 8x7x1
+ db 00011100b
+ db 00100010b
+ db 00100010b
+ db 00011110b
+ db 00000010b
+ db 00000100b
+ db 00011000b
+
+ db 'D'
+;;;SPRITE 8x7x1
+ db 00111100b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00111100b
+
+ db 'E'
+;;;SPRITE 8x7x1
+ db 00111110b
+ db 00100000b
+ db 00100000b
+ db 00111100b
+ db 00100000b
+ db 00100000b
+ db 00111110b
+
+ db 'I'
+;;;SPRITE 8x7x1
+ db 00011100b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00011100b
+
+ db 'K'
+;;;SPRITE 8x7x1
+ db 00100010b
+ db 00100100b
+ db 00101000b
+ db 00110000b
+ db 00101000b
+ db 00100100b
+ db 00100010b
+
+ db 'M'
+;;;SPRITE 8x7x1
+ db 00100010b
+ db 00110110b
+ db 00101010b
+ db 00101010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+
+ db 'O'
+;;;SPRITE 8x7x1
+ db 00011100b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00011100b
+
+ db 'R'
+;;;SPRITE 8x7x1
+ db 00111100b
+ db 00100010b
+ db 00100010b
+ db 00111100b
+ db 00101000b
+ db 00100100b
+ db 00100010b
+
+ db 'T'
+;;;SPRITE 8x7x1
+ db 00111110b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+
+ db 'X'
+;;;SPRITE 8x7x1
+ db 00100010b
+ db 00100010b
+ db 00010100b
+ db 00001000b
+ db 00010100b
+ db 00100010b
+ db 00100010b
+
+ db 'a'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00011100b
+ db 00000010b
+ db 00011110b
+ db 00100010b
+ db 00011110b
+
+ db 'c'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00011100b
+ db 00100000b
+ db 00100000b
+ db 00100010b
+ db 00011100b
+
+ db 'e'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00011100b
+ db 00100010b
+ db 00111110b
+ db 00100000b
+ db 00011100b
+
+ db 'f'
+;;;SPRITE 8x7x1
+ db 00001100b
+ db 00010010b
+ db 00010000b
+ db 00111000b
+ db 00010000b
+ db 00010000b
+ db 00010000b
+
+ db 'g'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00011110b
+ db 00100010b
+ db 00100010b
+ db 00011110b
+ db 00000010b
+ db 00011100b
+
+ db 'i'
+;;;SPRITE 8x7x1
+ db 00001000b
+ db 00000000b
+ db 00011000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00011100b
+
+ db 'l'
+;;;SPRITE 8x7x1
+ db 00011000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00001000b
+ db 00011100b
+
+ db 'm'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00110100b
+ db 00101010b
+ db 00101010b
+ db 00100010b
+ db 00100010b
+
+ db 'n'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00101100b
+ db 00110010b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+
+ db 'o'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00011100b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00011100b
+
+ db 'p'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00111100b
+ db 00100010b
+ db 00111100b
+ db 00100000b
+ db 00100000b
+
+ db 'r'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00101100b
+ db 00110010b
+ db 00100000b
+ db 00100000b
+ db 00100000b
+
+ db 's'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00011100b
+ db 00100000b
+ db 00011100b
+ db 00000010b
+ db 00111100b
+
+ db 't'
+;;;SPRITE 8x7x1
+ db 00010000b
+ db 00010000b
+ db 00111000b
+ db 00010000b
+ db 00010000b
+ db 00010010b
+ db 00001100b
+
+ db 'u'
+;;;SPRITE 8x7x1
+ db 00000000b
+ db 00000000b
+ db 00100010b
+ db 00100010b
+ db 00100010b
+ db 00100110b
+ db 00011010b
diff --git a/src/romdump_8x/link.asm b/src/romdump_8x/link.asm
new file mode 100644
index 0000000..ef0c846
--- /dev/null
+++ b/src/romdump_8x/link.asm
@@ -0,0 +1,153 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; LinkSendBC:
+;;
+;; Send a sequence of bytes to the link port.
+;;
+;; Input:
+;; - DE = address of bytes to send
+;; - BC = number of bytes to send
+;; - HL = checksum so far
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;; - HL = updated checksum
+;;
+;; Destroys:
+;; - AF, BC, DE
+
+LinkSendBC:
+ ld a, b
+ or c
+ ret z
+ dec bc
+ push bc
+ #ifdef TI83
+ in a, (linkPort)
+ and 10h
+ or LINK_RESET
+ push af
+ #endif
+ ld a, (de)
+ inc de
+ ld c, a
+ ld b, 0
+ add hl, bc
+ push de
+ push hl
+ call LinkPutByte
+ pop hl
+ pop de
+ #ifdef TI83
+ pop bc
+ ld c, linkPort
+ out (c), b
+ #endif
+ pop bc
+ ret c
+ jr LinkSendBC
+
+;; LinkReceiveB:
+;;
+;; Read a sequence of bytes from the link port.
+;;
+;; Input:
+;; - B = number of bytes to read
+;; - DE = address of buffer to store data
+;; - HL = checksum so far
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;; - HL = updated checksum
+;;
+;; Destroys:
+;; - AF, BC, DE
+
+LinkReceiveB:
+ #ifdef TI83
+ in a, (linkPort)
+ and 10h
+ or LINK_RESET
+ ld c, a
+ #endif
+LinkReceiveB_Loop:
+ push bc
+ push hl
+ push de
+ call LinkGetByte
+ pop de
+ pop hl
+ jr c, LinkReceiveB_Error
+ ld b, 0
+ add hl, bc
+ ld a, c
+ ld (de), a
+ inc de
+ pop bc
+ djnz LinkReceiveB_Loop
+ or a
+ push bc
+LinkReceiveB_Error:
+ pop bc
+ #ifdef TI83
+ ld a, c
+ out (linkPort), a
+ #endif
+ ret
+
+;; LinkError:
+;;
+;; Reset the link port and wait for ~2 seconds to ensure that the
+;; PC sees an error condition.
+;;
+;; Destroys:
+;; - B
+
+LinkError:
+ ld b, 255
+ push af
+ #ifdef TI83P
+ in a, (2)
+ and 80h
+ out (8), a
+ #endif
+ #ifdef TI83
+ in a, (linkPort)
+ and 10h
+ or LINK_RESET
+ #else
+ ld a, LINK_RESET
+ #endif
+ out (linkPort), a
+LinkDelay_Loop:
+ ei
+ halt
+ halt
+ djnz LinkDelay_Loop
+ #ifdef TI83P
+ xor a
+ out (8), a
+ #endif
+ pop af
+ ret
diff --git a/src/romdump_8x/link83p.asm b/src/romdump_8x/link83p.asm
new file mode 100644
index 0000000..8db415b
--- /dev/null
+++ b/src/romdump_8x/link83p.asm
@@ -0,0 +1,92 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; CheckLinkActivity:
+;;
+;; Check whether we are receiving data from the link port.
+;;
+;; Output:
+;; - Zero flag clear (NZ) if we are receiving data
+;;
+;; Destroys:
+;; - AF
+;; - DE, HL
+
+CheckLinkActivity:
+ in a, (linkPort)
+ cpl
+ and 3
+ ret nz
+ in a, (2)
+ and 80h
+ ret z
+ in a, (9)
+ and 18h
+ ret
+
+;; LinkGetByte:
+;;
+;; Read a byte from the link port.
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;; - C = byte value
+;;
+;; Destroys:
+;; - Interrupts disabled
+;; - AF, B, DE, HL
+
+LinkGetByte:
+ ld hl, LinkIOError
+ call APP_PUSH_ERRORH
+ B_CALL _RecAByteIO
+ ld d, a
+ jr LinkIODone
+
+;; LinkPutByte:
+;;
+;; Read a byte from the link port.
+;;
+;; Input:
+;; - A = C = byte value to write
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;;
+;; Destroys:
+;; - Interrupts disabled
+;; - AF, B, DE, HL
+
+LinkPutByte:
+ ld hl, LinkIOError
+ call APP_PUSH_ERRORH
+ B_CALL _SendAByte
+LinkIODone:
+ call APP_POP_ERRORH
+ ld c, d
+ or a
+ ret
+
+LinkIOError:
+ scf
+ ret
diff --git a/src/romdump_8x/linksw.asm b/src/romdump_8x/linksw.asm
new file mode 100644
index 0000000..9d69512
--- /dev/null
+++ b/src/romdump_8x/linksw.asm
@@ -0,0 +1,227 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+BIT_TIMEOUT equ 65535
+
+#ifndef TI82
+
+#define LD_A_LINK_D0L ld a, LINK_D0L
+#define LD_A_LINK_D1L ld a, LINK_D1L
+#define AND_LINK_STATUS_MASK and LINK_STATUS_MASK
+
+#else ; TI82
+
+#define LD_A_LINK_D0L ld a, (linkD0L)
+#define LD_A_LINK_D1L ld a, (linkD1L)
+#define AND_LINK_STATUS_MASK call AndLinkStatusMask
+
+LINK_STATUS_MASK equ 0
+
+;; InitializeLink:
+;;
+;; Set the link port status mask and control values based on the
+;; hardware version. Note that the LINK_RESET value is C0h for both
+;; hardware versions.
+;;
+;; Destroys:
+;; - Interrupts disabled
+;; - AF, DE, HL
+
+InitializeLink:
+ di
+ ld a, LINK_RESET
+ out (linkPort), a
+
+ ld bc, 0FE03h
+ ld hl, 0E8D4h
+ in a, (linkPort)
+ and 0Ch
+ jr z, InitializeLink_Old
+ ld bc, 0F80Ch
+ ld hl, 0C2C1h
+InitializeLink_Old:
+ ld a, c
+ ld (AndLinkStatusMask + 1), a
+ ld a, b
+ ld (LinkGetByte_CheckStatus + 1), a
+ ld (linkD0L), hl
+ ret
+
+#endif ; TI82
+
+;; CheckLinkActivity:
+;;
+;; Check whether we are receiving data from the link port.
+;;
+;; Output:
+;; - Zero flag clear (NZ) if we are receiving data
+;;
+;; Destroys:
+;; - AF
+;; - DE, HL
+
+CheckLinkActivity:
+ in a, (linkPort)
+ cpl
+AndLinkStatusMask:
+ and LINK_STATUS_MASK
+ ret
+
+;; LinkGetByte:
+;;
+;; Read a byte from the link port.
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;; - C = byte value
+;;
+;; Destroys:
+;; - Interrupts disabled
+;; - AF, B, DE, HL
+;; - ROM bank number [TI83]
+
+LinkGetByte:
+ di
+ ld a, LINK_RESET
+ out (linkPort), a
+
+ ld b, 8
+LinkGetByte_Loop:
+ ld d, 0FFh
+ call LinkWaitEither
+ ret c
+
+LinkGetByte_CheckStatus:
+ add a, -(LINK_STATUS_MASK & 0AAh)
+ ;; NC, NZ if "D0" bit set
+ ;; C, Z if "D1" bit set
+ ;; C, NZ if both bits set
+
+ LD_A_LINK_D1L
+ jr nc, LinkGetByte_0 ; ~status < D1 -> zero bit
+ ret nz ; ~status > D1 -> error
+ LD_A_LINK_D0L ; ~status = D1 -> one bit
+LinkGetByte_0:
+ out (linkPort), a
+ rr c
+ inc d ; -> D = 0
+ call LinkWaitEither
+ ret c
+
+ ld a, LINK_RESET
+ out (linkPort), a
+ djnz LinkGetByte_Loop
+ ret
+
+;; LinkWaitEither:
+;;
+;; Wait until link port state does not equal D.
+;;
+;; Input:
+;; - A = link port control value
+;; - D = existing status value
+;;
+;; Output:
+;; - Carry flag set if timeout reached
+;; - A = input bits xor D
+;;
+;; Destroys:
+;; - AF, HL
+
+LinkWaitEither:
+ ld hl, BIT_TIMEOUT
+LinkWaitEither_Loop:
+ dec hl
+ in a, (linkPort)
+ xor d
+ AND_LINK_STATUS_MASK
+ ret nz
+ ld a, h
+ or l
+ jr nz, LinkWaitEither_Loop
+ scf
+ ret
+
+;; LinkPutByte:
+;;
+;; Write a byte to the link port.
+;;
+;; Input:
+;; - A = C = byte value to write
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;;
+;; Destroys:
+;; - Interrupts disabled
+;; - AF, B, DE, HL
+;; - ROM bank number [TI83]
+
+LinkPutByte:
+ di
+ ld b, 8
+LinkPutByte_Loop:
+ call LinkSetWaitBothHigh
+ ret c
+ rr c
+ LD_A_LINK_D0L
+ jr nc, LinkPutByte_0
+ LD_A_LINK_D1L
+LinkPutByte_0:
+ inc d ; -> D = 0
+ call LinkSetWaitBoth
+ ret c
+ djnz LinkPutByte_Loop
+LinkSetWaitBothHigh:
+ ld a, LINK_RESET
+ ld d, 0FFh
+ ;; fall through
+
+;; LinkSetWaitBoth:
+;;
+;; Write a value to link port, then wait until line state equals D.
+;;
+;; Input:
+;; - A = link port control value
+;; - D = desired status value
+;;
+;; Output:
+;; - Carry flag set if timeout reached
+;;
+;; Destroys:
+;; - AF, HL
+
+LinkSetWaitBoth:
+ out (linkPort), a
+ ld hl, BIT_TIMEOUT
+LinkSetWaitBoth_Loop:
+ dec hl
+ in a, (linkPort)
+ xor d
+ AND_LINK_STATUS_MASK
+ ret z
+ ld a, h
+ or l
+ jr nz, LinkSetWaitBoth_Loop
+ scf
+ ret
diff --git a/src/romdump_8x/main.asm b/src/romdump_8x/main.asm
new file mode 100644
index 0000000..0f02491
--- /dev/null
+++ b/src/romdump_8x/main.asm
@@ -0,0 +1,238 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+Main:
+ res apdRunning, (iy + apdFlags)
+ in a, (memPort)
+ ld (defaultMemPage), a
+ #ifdef TI83
+ in a, (linkPort)
+ and 10h
+ or LINK_RESET
+ ld (defaultLinkState), a
+ #endif
+
+ #ifdef TI82
+ call InitializeLink
+ #endif
+
+ #ifdef CALC_USB
+ call InitializeUSB
+ #endif
+
+ #ifdef CALC_FLASH
+ call Unlock
+ ld a, (defaultMemPage)
+ out (memPort), a
+ #endif
+
+ #ifdef TI83P
+ in a, (2)
+ add a, a
+ jr nc, Main_83PlusBE
+ ld a, 1
+ out (20h), a
+ in a, (21h)
+ and 3
+ ld a, 10h
+ jr z, Main_84PlusBE
+ add a, a
+Main_84PlusBE:
+ ld (ROMSize + 2), a
+Main_83PlusBE:
+ #endif
+
+ ld hl, 0
+ ld (errorCount), hl
+ ld (blockCount), hl
+
+ RUN_INDIC_OFF
+ CLEAR_LCD
+
+ ld hl, 0
+ ld (curRow), hl
+
+ ld hl, DumpingROMString
+ PUT_STRING
+
+ ld de, 4
+ ld (curRow), de
+ PUT_STRING
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; Main Loop
+;;;
+
+MainLoop:
+ ei
+ halt
+ GET_CSC
+ cp 37h
+ jr z, Quit
+
+ call CheckLinkActivity
+ jr z, MainLoop
+
+ call ReceivePacket
+ jr c, Main_Error
+
+ ;; What command did we receive?
+ ld de, (recPacketCmd)
+ ld hl, CMD_PING
+ or a
+ sbc hl, de
+ jr z, Received_Ping
+
+ ld a, d
+ or a
+ jr nz, Main_Error
+
+ ld b, e
+ djnz Received_2
+ ;; 0001: OK, no response needed
+ jr MainLoop
+
+Received_Ping:
+ ;; AA55: reply OK
+ ld hl, CMD_OK
+ call SendShortPacket
+ jr MainLoop
+
+Received_2:
+ djnz Received_3
+ ;; 0002: End of Transmission
+ ld hl, CMD_EOT
+ call SendShortPacket
+Quit:
+ CLEAR_LCD
+ ld hl, 0
+ ld (curRow), hl
+ ret
+
+Received_3:
+ djnz Received_4
+ ;; 0003: Request ROM size
+ ld hl, ROMSize
+ ld (sendPacketDataPtr), hl
+ ld hl, 4
+ ld (sendPacketLength), hl
+ ld hl, CMD_SIZE
+ call SendPacket
+
+ ld hl, 0402h
+ ld (curRow), hl
+ ld hl, KString
+ PUT_STRING
+ #ifdef TI83P
+ ld hl, (ROMSize + 1)
+ srl h
+ srl h
+ PUT_DECIMAL
+ ld a, 'K'
+ PUT_CHAR
+ #endif
+MainLoop_:
+ jr MainLoop
+
+Received_4:
+ djnz Received_5
+ ;; 0004: deprecated
+Main_Error:
+ ld hl, 7
+ ld (curRow), hl
+ ld hl, ErrorString
+ PUT_STRING
+ ld hl, (errorCount)
+ inc hl
+ ld (errorCount), hl
+ PUT_DECIMAL
+ #ifndef USB
+ call LinkError
+ #endif
+MainLoop__:
+ jr MainLoop_
+
+Received_5:
+ djnz Main_Error
+ ;; 0005: Request data block
+
+ ld hl, (recPacketData)
+ ld a, (recPacketData + 2)
+ ;; A = addr >> 14
+ sla h
+ rla
+ sla h
+ rla
+ SET_ROM_PAGE
+ ;; HL = (addr & 3FFFh) | 4000h
+ scf
+ rr h
+ srl h
+ ld (sendPacketDataPtr), hl
+
+ ;; Check if the block is empty
+ call CheckBlockUniform
+ jr nz, BlockRequest_NotEmpty
+
+ ;; Empty block, send a REPEAT packet
+ ld h, a
+ ld l, a
+ ld (sendPacketData + 2), hl
+ ld hl, BLOCK_SIZE
+ ld (sendPacketData), hl
+ ld hl, sendPacketData
+ ld (sendPacketDataPtr), hl
+ ld hl, 4
+ ld de, CMD_REPEAT
+ jr BlockRequest_SetPacket
+
+BlockRequest_NotEmpty:
+ ld hl, BLOCK_SIZE
+ ld de, CMD_DATA
+BlockRequest_SetPacket:
+ ld (sendPacketLength), hl
+ ex de, hl
+ call SendPacket
+
+ ;; Restore original memory page
+ #ifdef TI83
+ ld a, (defaultLinkState)
+ out (linkPort), a
+ #endif
+ ld a, (defaultMemPage)
+ out (memPort), a
+
+ jr c, Main_Error
+
+ ld hl, 2
+ ld (curRow), hl
+ ld hl, (blockCount)
+ inc hl
+ ld (blockCount), hl
+ PUT_DECIMAL
+
+ ld a, 'K'
+ PUT_CHAR
+
+ jr MainLoop__
diff --git a/src/romdump_8x/packet.asm b/src/romdump_8x/packet.asm
new file mode 100644
index 0000000..360ce48
--- /dev/null
+++ b/src/romdump_8x/packet.asm
@@ -0,0 +1,117 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;; CheckBlockUniform:
+;;
+;; Check whether a data block consists of a single repeated byte
+;; value.
+;;
+;; Input:
+;; - HL = address of block
+;;
+;; Output:
+;; - A = byte value at start of block
+;; - Zero flag set (Z) if block is uniform
+;;
+;; Destroys:
+;; - F, BC, HL
+
+CheckBlockUniform:
+ ld a, (hl)
+ ld bc, BLOCK_SIZE
+CheckBlockUniform_Loop:
+ cpi
+ ret po
+ jr z, CheckBlockUniform_Loop
+ ret
+
+;; ReceivePacket:
+;;
+;; Receive a packet using the TiLP ROM protocol.
+;;
+;; Output:
+;; - Carry flag set if there was an error
+;; - (recPacketCmd) = command
+;;
+;; Destroys:
+;; - Interrupts disabled
+;; - AF, BC, DE, HL
+
+ReceivePacket:
+ ld hl, 0
+ ld de, recPacketCmd
+ ld b, 4
+ call LinkReceiveB
+ ret c
+
+ ld a, (recPacketLength + 1)
+ add a, -1
+ ret c
+ ld a, (recPacketLength)
+ or a
+ jr z, ReceivePacket_0
+ ld b, a
+ add a, -65
+ ret c
+
+ ld de, recPacketData
+ call LinkReceiveB
+ ret c
+
+ReceivePacket_0:
+ push hl
+ ld de, packetChecksum
+ ld b, 2
+ call LinkReceiveB
+ pop de
+ ret c
+ ld hl, (packetChecksum)
+ sbc hl, de
+ ret z
+ scf
+ ret
+
+
+SendShortPacket:
+ push hl
+ ld hl, 0
+ ld (sendPacketLength), hl
+ pop hl
+SendPacket:
+ ld (sendPacketCmd), hl
+ ld hl, 0
+ ld de, sendPacketCmd
+ ld bc, 4
+ call LinkSendBC
+ ret c
+
+ ld de, (sendPacketDataPtr)
+ ld bc, (sendPacketLength)
+ call LinkSendBC
+ ret c
+
+ ld (packetChecksum), hl
+ ld de, packetChecksum
+ ld bc, 2
+ jr LinkSendBC
+
diff --git a/src/romdump_8x/romdump.asm b/src/romdump_8x/romdump.asm
new file mode 100644
index 0000000..c9b660d
--- /dev/null
+++ b/src/romdump_8x/romdump.asm
@@ -0,0 +1,324 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+#define equ .equ
+#define org .org
+#define rorg .org
+#define db .db
+#define dw .dw
+
+#include "romdump.inc"
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73
+;;;
+
+#ifdef TI73
+
+;;; This program can be launched from the home screen.
+
+#include "ti73defs.inc"
+
+#define safe_mem appBackUpScreen
+#define fixed_exec saveSScreen
+#define fixed_size_limit 768
+
+ ;; BASIC code to launch assembly stub
+ db "_00001005?"
+ ld hl, (curPC)
+ jp (hl)
+start: ld bc, 3FD5h
+
+ ld de, fixed_code - start
+ add hl, de
+ ld de, fixed_exec
+ ld bc, fixed_code_size
+ ldir
+
+ res remoteKeyPress, (iy + remoteKeyFlag)
+
+#endif ; TI73
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-82
+;;;
+
+#ifdef TI82
+
+;;; This program is launched using a buffer overflow, which jumps
+;;; directly to 'start', with HL equal to the address of 'start' and
+;;; SP = (onSP).
+
+#include "ti82defs.inc"
+
+#define NEED_DISPLAY_ROUTINES
+
+#define safe_mem saveSScreen
+#define fixed_exec (saveSScreen + 128)
+#define fixed_size_limit 640
+
+start:
+ ld de, fixed_code - start
+ add hl, de
+ ld de, fixed_exec
+ ld bc, fixed_code_size
+ ldir
+ ld (fontTable), hl
+
+ ld (errSP), sp
+
+ ld de, Main - fixed_code - fixed_code_size
+ add hl, de
+ call CallHL
+
+ ld hl, (OPBase)
+ ld (OPS), hl
+ ld hl, (fpBase)
+ ld (FPS), hl
+
+ ;; look at error handler; if possible, tweak it so that we
+ ;; exit directly to the home screen
+ ld hl, 8
+ add hl, sp
+ ld e, (hl)
+ inc hl
+ ld d, (hl)
+ ld hl, 6
+ add hl, de
+ ld a, (hl)
+ inc hl
+ xor (hl)
+ inc hl
+ xor (hl)
+ cp 3Eh ^ cxError ^ 0CDh
+ jr nz, exit_error
+ ld a, cxCmd
+ jp (hl)
+
+exit_error:
+ ;; if we can't figure out how to exit to home screen, then
+ ;; simply throw an error
+ pop hl
+ pop hl
+ pop hl
+ pop af
+ out (2), a
+ ld a, 6
+ ld (errNo), a
+ ret
+
+#endif ; TI82
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-83 / TI-82 STATS / TI-76.fr
+;;;
+
+#ifdef TI83
+
+;;; This program can be launched using the command "Send(9prgmROMDUMP".
+
+#include "ti83defs.inc"
+
+#define safe_mem saveSScreen
+#define fixed_exec saveSScreen + 128
+#define fixed_size_limit 640
+
+ db "CD2644" ; call _FindProgSym
+ db "211900" ; ld hl, 25
+ db "19" ; add hl, de
+ db "E9" ; jp (hl)
+ db 0D4h
+ db "?0000?"
+
+start:
+ ld de, fixed_code - start
+ add hl, de
+ ld de, fixed_exec
+ ld bc, fixed_code_size
+ ldir
+
+#endif ; TI83
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-83 Plus / TI-84 Plus
+;;;
+
+#ifdef TI83P
+
+;;; This program can be launched using the command "Asm(prgmROMDUMP".
+
+#include "ti83pdefs.inc"
+
+#define safe_mem saveSScreen
+
+ ;; Header for Asm(
+ org 9d93h
+ db 0BBh, 6Dh
+
+ in a, (2)
+ rlca
+ and 1
+ out (20h), a
+
+ res remoteKeyPress, (iy + remoteKeyFlag)
+
+#endif ; TI83P
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-85
+;;;
+
+#ifdef TI85
+
+;;; This program is launched using a buffer overflow, which jumps
+;;; directly to 'start', with HL equal to the address of 'start' and
+;;; SP = (onSP).
+
+#include "ti85defs.inc"
+
+#define NEED_DISPLAY_ROUTINES
+
+#define safe_mem plotSScreen
+#define fixed_exec plotSScreen + 128
+#define fixed_size_limit 896
+
+start:
+ ld de, fixed_code - start
+ add hl, de
+ ld de, fixed_exec
+ ld bc, fixed_code_size
+ ldir
+ ld (fontTable), hl
+
+ ; ld (errSP), sp
+
+ ld de, Main - fixed_code - fixed_code_size
+ add hl, de
+ call CallHL
+
+ ld hl, (OPBase)
+ ld (OPS), hl
+ ld hl, (fpBase)
+ ld (FPS), hl
+
+ ;; I don't know if there's any ROM-independent way to exit
+ ;; directly to home screen
+ pop hl
+ pop hl
+ pop hl
+ pop af
+ out (5), a
+ ld a, 6
+ ld (errNo), a
+ ret
+
+#endif ; TI85
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-86
+;;;
+
+#ifdef TI86
+
+#include "ti86defs.inc"
+
+;;; This program can be launched using the command "Asm(ROMDump".
+
+#define safe_mem 9000h
+
+ ;; Header for Asm(
+ org 0D746h
+ db 8Eh, 28h
+
+ res remoteKeyPress, (iy + remoteKeyFlag)
+
+#endif ; TI86
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; Main program
+;;;
+
+#include "defs.inc"
+#include "main.asm"
+
+fixed_code:
+
+#ifdef fixed_exec
+ rorg fixed_exec
+#endif
+
+CallHL: jp (hl)
+
+#ifdef TI73
+ #include "unlock73.asm"
+#endif
+
+#ifdef TI83P
+ #include "unlock83p.asm"
+#endif
+
+#include "packet.asm"
+
+#ifdef USB
+ #include "usb.asm"
+#else
+ #include "link.asm"
+ #ifdef TI83P
+ #include "link83p.asm"
+ #else
+ #include "linksw.asm"
+ #endif
+#endif
+
+#ifdef NEED_DISPLAY_ROUTINES
+ #include "display.asm"
+ #ifdef TI82
+ #include "display82.asm"
+ #else
+ #include "display85.asm"
+ #endif
+#endif
+
+#include "data.asm"
+
+#ifdef fixed_exec
+fixed_code_size equ $ - fixed_exec
+ #if (fixed_code_size > fixed_size_limit)
+ #error "Fixed code section too large"
+ #endif
+#endif
+
+#ifdef NEED_DISPLAY_ROUTINES
+ #include "font.asm"
+#endif
+
+#ifdef TI83
+ db 0D4h, "?0000?", 0D4h
+#endif
diff --git a/src/romdump_8x/romdump.inc b/src/romdump_8x/romdump.inc
new file mode 100644
index 0000000..01efc67
--- /dev/null
+++ b/src/romdump_8x/romdump.inc
@@ -0,0 +1,35 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+CMD_PING .equ 0AA55h
+CMD_NOK .equ 0
+CMD_OK .equ 1
+CMD_EOT .equ 2
+CMD_SIZE .equ 3
+CMD_RETRY .equ 4
+CMD_REQ .equ 5
+CMD_DATA .equ 6
+CMD_REPEAT .equ 7
+
+BLOCK_SIZE .equ 1024
+TIMEOUT .equ 65535
diff --git a/src/romdump_8x/ti73defs.inc b/src/romdump_8x/ti73defs.inc
new file mode 100644
index 0000000..e9f41d9
--- /dev/null
+++ b/src/romdump_8x/ti73defs.inc
@@ -0,0 +1,81 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Memory mapping
+
+memPort equ 6
+
+;;; Link port
+
+linkPort equ 0
+LINK_STATUS_MASK equ 3
+LINK_RESET equ 0
+LINK_D0L equ 1
+LINK_D1L equ 2
+
+;;; RAM addresses
+
+curRow equ 83E2h
+curCol equ 83E3h
+appBackUpScreen equ 8613h
+saveSScreen equ 8A52h
+curPC equ 9A5Dh
+
+;;; Flags
+
+apdFlags equ 08h
+apdRunning equ 3
+
+remoteKeyFlag equ 1Fh
+remoteKeyPress equ 5
+
+;;; System calls
+
+_ClrScrnFull equ 44ADh
+_DispHL equ 446Eh
+_FlashToRAM2 equ 8054h
+_GetBaseVer equ 4B8Eh
+_GetCSC equ 400Fh
+_Mov18B equ 46FCh
+_PutC equ 446Bh
+_PutS equ 4471h
+_RunIndicOff equ 44D7h
+
+;;; Macros
+
+.addinstr B_CALL * EF 3 NOP 1
+
+#define CLEAR_LCD B_CALL _ClrScrnFull
+#define GET_CSC B_CALL _GetCSC
+#define PUT_CHAR B_CALL _PutC
+#define PUT_DECIMAL B_CALL _DispHL
+#define PUT_STRING B_CALL _PutS
+#define RUN_INDIC_OFF B_CALL _RunIndicOff
+#define SET_ROM_PAGE out (memPort), a
+
+#define EXIT_KEY_STR db 0C1h, "MODE]"
+
+;;; Miscellaneous
+
+#define CALC_FLASH
+#define CALC_ROM_SIZE 512
diff --git a/src/romdump_8x/ti82defs.inc b/src/romdump_8x/ti82defs.inc
new file mode 100644
index 0000000..d478e2b
--- /dev/null
+++ b/src/romdump_8x/ti82defs.inc
@@ -0,0 +1,74 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Memory mapping
+
+memPort equ 2
+
+;;; Link port
+
+linkPort equ 0
+LINK_RESET equ 0C0h
+
+;;; RAM addresses
+
+kbdScanCode equ 8000h
+curRow equ 800Ch
+curCol equ 800Dh
+errNo equ 8219h
+errSP equ 821Ah
+saveSScreen equ 8228h
+fpBase equ 8D0Ch
+FPS equ 8D0Eh
+OPBase equ 8D10h
+OPS equ 8D12h
+
+;;; Flags
+
+apdFlags equ 08h
+apdRunning equ 3
+
+indicFlags equ 12h
+indicRun equ 0
+
+;;; Constants
+
+cxCmd equ 40h
+cxError equ 52h
+
+;;; Macros
+
+#define CLEAR_LCD call ClearLCD
+#define PUT_CHAR call PutC
+#define PUT_DECIMAL call DispHL
+#define PUT_STRING call PutS
+
+#define GET_CSC di \ ld hl, kbdScanCode \ ld a, (hl) \ ld (hl), 0
+#define RUN_INDIC_OFF res indicRun, (iy + indicFlags)
+#define SET_ROM_PAGE and 7 \ or 88h \ out (memPort), a
+
+#define EXIT_KEY_STR db "[MODE]"
+
+;;; Miscellaneous
+
+#define CALC_ROM_SIZE 128
diff --git a/src/romdump_8x/ti83defs.inc b/src/romdump_8x/ti83defs.inc
new file mode 100644
index 0000000..765430d
--- /dev/null
+++ b/src/romdump_8x/ti83defs.inc
@@ -0,0 +1,71 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Memory mapping
+
+memPort equ 2
+
+;;; Link port
+
+linkPort equ 0
+LINK_STATUS_MASK equ 0Ch
+LINK_RESET equ 0C0h
+LINK_D0L equ 0C1h
+LINK_D1L equ 0C2h
+
+;;; RAM addresses
+
+curRow equ 800Ch
+curCol equ 800Dh
+saveSScreen equ 8265h
+
+;;; Flags
+
+apdFlags equ 08h
+apdRunning equ 3
+
+;;; System calls
+
+_ClrScrnFull equ 475Dh
+_DispHL equ 4709h
+_GetCSC equ 4014h
+_PutC equ 4705h
+_PutS equ 470Dh
+_RunIndicOff equ 4795h
+
+;;; Macros
+
+#define CLEAR_LCD call _ClrScrnFull
+#define GET_CSC call _GetCSC
+#define PUT_CHAR call _PutC
+#define PUT_DECIMAL call _DispHL
+#define PUT_STRING call _PutS
+#define RUN_INDIC_OFF call _RunIndicOff
+
+#define SET_ROM_PAGE push af \ and 8 \ rlca \ or LINK_RESET \ out (linkPort), a \ pop af \ and 7 \ or 88h \ out (2), a
+
+#define EXIT_KEY_STR db 0C1h, "MODE]"
+
+;;; Miscellaneous
+
+#define CALC_ROM_SIZE 256
diff --git a/src/romdump_8x/ti83pdefs.inc b/src/romdump_8x/ti83pdefs.inc
new file mode 100644
index 0000000..3f938a6
--- /dev/null
+++ b/src/romdump_8x/ti83pdefs.inc
@@ -0,0 +1,93 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Memory mapping
+
+memPort equ 6
+
+;;; Link port
+
+linkPort equ 0
+LINK_STATUS_MASK equ 3
+LINK_RESET equ 0
+LINK_D0L equ 1
+LINK_D1L equ 2
+
+;;; RAM addresses
+
+ramCode equ 8100h
+arcInfo equ 83EEh
+pagedCount equ 9834h
+pagedBuf equ 983Ah
+curRow equ 844Bh
+curCol equ 844Ch
+iMathPtr5 equ 84DBh
+saveSScreen equ 86ECh
+
+;;; Flags
+
+apdFlags equ 08h
+apdRunning equ 3
+
+remoteKeyFlag equ 1Fh
+remoteKeyPress equ 5
+
+;;; System calls
+
+APP_PUSH_ERRORH equ 59h
+APP_POP_ERRORH equ 5Ch
+
+_ClrScrnFull equ 4546h
+_DispHL equ 4507h
+_GetBaseVer equ 4C6Fh
+_GetBootVer equ 80B7h
+_GetHWVer equ 80BAh
+_GetCSC equ 4018h
+_GetVariableData equ 5092h
+_LdHLind equ 4009h
+_Mov18B equ 47DAh
+_PutC equ 4504h
+_PutS equ 450Ah
+_RecAByteIO equ 4F03h
+_RunIndicOff equ 4570h
+_SendAByte equ 4EE5h
+_WriteAByteSafe equ 80C6h
+
+;;; Macros
+
+.addinstr B_CALL * EF 3 NOP 1
+
+#define CLEAR_LCD B_CALL _ClrScrnFull
+#define GET_CSC B_CALL _GetCSC
+#define PUT_CHAR B_CALL _PutC
+#define PUT_DECIMAL B_CALL _DispHL
+#define PUT_STRING B_CALL _PutS
+#define RUN_INDIC_OFF B_CALL _RunIndicOff
+#define SET_ROM_PAGE out (memPort), a
+
+#define EXIT_KEY_STR db 0C1h, "MODE]"
+
+;;; Miscellaneous
+
+#define CALC_FLASH
+#define CALC_ROM_SIZE 0
diff --git a/src/romdump_8x/ti85defs.inc b/src/romdump_8x/ti85defs.inc
new file mode 100644
index 0000000..753eaf9
--- /dev/null
+++ b/src/romdump_8x/ti85defs.inc
@@ -0,0 +1,72 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Memory mapping
+
+memPort equ 5
+
+;;; Link port
+
+linkPort equ 7
+LINK_STATUS_MASK equ 03h
+LINK_RESET equ 0C0h
+LINK_D0L equ 0D4h
+LINK_D1L equ 0E8h
+
+;;; RAM addresses
+
+kbdScanCode equ 8000h
+curRow equ 800Ch
+curCol equ 800Dh
+errNo equ 8337h
+errSP equ 8338h
+plotSScreen equ 8641h
+fpBase equ 8BDFh
+FPS equ 8BE1h
+OPBase equ 8BE3h
+OPS equ 8BE5h
+
+;;; Flags
+
+apdFlags equ 08h
+apdRunning equ 3
+
+indicFlags equ 12h
+indicRun equ 0
+
+;;; Macros
+
+#define CLEAR_LCD call ClearLCD
+#define PUT_CHAR call PutC
+#define PUT_DECIMAL call DispHL
+#define PUT_STRING call PutS
+
+#define GET_CSC di \ ld hl, kbdScanCode \ ld a, (hl) \ ld (hl), 0
+#define RUN_INDIC_OFF res indicRun, (iy + indicFlags)
+#define SET_ROM_PAGE out (memPort), a
+
+#define EXIT_KEY_STR db "[EXIT]"
+
+;;; Miscellaneous
+
+#define CALC_ROM_SIZE 128
diff --git a/src/romdump_8x/ti86defs.inc b/src/romdump_8x/ti86defs.inc
new file mode 100644
index 0000000..247a7f5
--- /dev/null
+++ b/src/romdump_8x/ti86defs.inc
@@ -0,0 +1,74 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Memory mapping
+
+memPort equ 5
+
+;;; Link port
+
+linkPort equ 7
+LINK_STATUS_MASK equ 03h
+LINK_RESET equ 0C0h
+LINK_D0L equ 0D4h
+LINK_D1L equ 0E8h
+
+;;; RAM addresses
+
+curRow equ 0C00Fh
+curCol equ 0C010h
+
+;;; Flags
+
+apdFlags equ 08h
+apdRunning equ 3
+
+remoteKeyFlag equ 15h
+remoteKeyPress equ 7
+
+;;; System calls
+
+_clrScrn equ 4A82h
+_dispAHL equ 4A33h
+_get_key equ 4068h
+_putc equ 4A2Bh
+_puts equ 4A37h
+_runindicoff equ 4AB1h
+
+;;; Macros
+
+#define CLEAR_LCD call _clrScrn
+#define GET_CSC call _get_key
+#define PUT_CHAR call _putc
+#define PUT_DECIMAL xor a \ call _dispAHL
+#define PUT_STRING call _puts
+#define RUN_INDIC_OFF call _runindicoff
+
+#define SET_ROM_PAGE out (memPort), a
+
+#define EXIT_KEY_STR db "[EXIT]"
+
+;;; Miscellaneous
+
+#define CALC_ROM_SIZE 256
+
diff --git a/src/romdump_8x/unlock73.asm b/src/romdump_8x/unlock73.asm
new file mode 100644
index 0000000..b7dd349
--- /dev/null
+++ b/src/romdump_8x/unlock73.asm
@@ -0,0 +1,114 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+MAX_OS_VERSION equ 0191h ; last supported version: 1.91 (BCD)
+
+;; Unlock:
+;;
+;; Write-enable Flash.
+;;
+;; Output:
+;; - Carry flag set if unlocking failed
+;;
+;; Destroys:
+;; - AF, BC, DE, HL
+;; - Port 6
+;; - appBackUpScreen
+;; - Interrupts disabled
+;; - Interrupt mode set to 1
+
+Unlock:
+ ;; Check if current OS version is known to be supported
+ B_CALL _GetBaseVer
+ ld c, b
+ ld b, a
+ ld hl, MAX_OS_VERSION
+ or a
+ sbc hl, bc
+ ret c
+
+ di
+ ld a, 1Ch
+ out (6), a
+ ld hl, 4000h
+ ld b, h
+ ld c, l
+Unlock_FindTargetLoop:
+ ld a, 0F5h
+ cpir
+ scf
+ ret nz
+ push hl
+ push bc
+ ld de, Unlock_Data
+ ld b, 12
+Unlock_CheckTargetLoop:
+ ld a, (de)
+ cp (hl)
+ jr nz, Unlock_CheckTargetDone
+ inc hl
+ inc de
+ djnz Unlock_CheckTargetLoop
+ inc hl
+ inc hl
+ inc hl
+ add a, a
+ ld b, 4
+ jr nz, Unlock_CheckTargetLoop
+Unlock_CheckTargetDone:
+ pop bc
+ pop hl
+ jr nz, Unlock_FindTargetLoop
+ ld (appBackUpScreen), sp
+ dec hl
+ push hl ;SETRETURN
+ ld hl, Unlock_Cleanup
+ ld (appBackUpScreen + 2), hl
+ ld hl, appBackUpScreen + 2
+ push hl
+ ld de, appBackUpScreen + 4
+ B_CALL _Mov18B
+ ld hl, -16
+ add hl, sp
+ ex de, hl
+ pop hl
+ ld bc, 20
+ ret
+Unlock_Cleanup:
+ ld sp, (appBackUpScreen)
+ xor a
+ ret
+
+Unlock_Data:
+ ld a, 1
+ nop
+ di
+ nop
+ nop
+ im 1
+ di
+ out (14h), a
+ di
+ ;; ...
+ pop af
+ B_CALL _FlashToRAM2
diff --git a/src/romdump_8x/unlock83p.asm b/src/romdump_8x/unlock83p.asm
new file mode 100644
index 0000000..cb6ee74
--- /dev/null
+++ b/src/romdump_8x/unlock83p.asm
@@ -0,0 +1,167 @@
+;;; -*- TI-Asm -*-
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;;
+;;; TI-73/82/83/83+/84+/85/86 ROM Dumper
+;;;
+;;; Copyright (c) 2012 Benjamin Moody
+;;;
+;;; This program is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; This program is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+;;; Table of supported OS and boot code versions
+VersionTable:
+ db 1,19, 1,01 ; TI-83 Plus
+ db 1,19, 1,00 ; TI-83 Plus SE
+ db 2,55, 1,03 ; TI-84 Plus
+ db 2,55, 1,03 ; TI-84 Plus SE (odd versions)
+ db 2,56, 1,03 ; Nspire (even versions)
+
+;; Unlock:
+;;
+;; Write-enable Flash.
+;;
+;; Output:
+;; - Carry flag set if unlocking failed
+;;
+;; Destroys:
+;; - AF, BC, DE, HL
+;; - Port 6
+;; - Interrupts disabled
+;; - Interrupt mode set to 1
+
+Unlock:
+ ;; Check if current OS/boot version is known to be supported
+ B_CALL _GetBaseVer
+ ld c, a
+ B_CALL _GetHWVer
+ ld l, a
+ add a, -4
+ ret c
+ inc a
+ jr nz, Unlock_NotNspire
+ bit 0, b
+ jr nz, Unlock_NotNspire
+ inc l
+Unlock_NotNspire:
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, VersionTable
+ add hl, de
+ ld a, c
+ call CheckVersion
+ ret c
+ inc hl
+ B_CALL _GetBootVer
+ call CheckVersion
+ ret c
+
+ di
+ push iy
+ ld de, 7B09h
+ ld a, e
+ ld (arcInfo), a
+ out (6), a
+ ld a, (de)
+ ld b, a
+ push bc
+ push de
+ call SetFlashPageD
+ ld a, e
+ B_CALL _WriteAByteSafe
+ ld hl, Unlock_Recover - 2
+ ld de, pagedBuf - 2
+ B_CALL _Mov18B
+ ld (pagedBuf + 2), sp
+ call Unlock_Main
+ pop af
+ pop bc
+ jr Unlock_Done
+
+Unlock_Main:
+ ld a, (_GetVariableData + 2)
+ ld d, a
+ ld hl, ramCode
+ ld bc, 304
+Unlock_Loop1:
+ ld a, 0EDh
+ cpir
+ ret nz
+ ld a, (hl)
+ sub 0A0h
+ jr nz, Unlock_Loop1
+ ld c, (hl)
+ ld b, a
+ inc hl
+ ld (iMathPtr5), hl
+ ld hl, (_GetVariableData)
+ inc a
+Unlock_Data:
+ ld (pagedCount), a
+ or a
+ call nz, SetFlashPageD
+Unlock_Loop2:
+ ld a, 3Ah
+ cpir
+ ret nz
+ ld de, Unlock_Data + 1
+Unlock_Loop3:
+ ld a,(de)
+ cp (hl)
+ jr nz, Unlock_Loop2
+ inc hl
+ inc de
+ cp 0C4h
+ jr nz, Unlock_Loop3
+ B_CALL _LdHLind
+ ld iy, 56h - 25h
+Unlock_Recover:
+ jp (hl)
+ ld sp, 0
+ pop hl
+ pop af
+ ld (hl), a
+Unlock_WriteByte:
+ cp (hl)
+ jr nz, Unlock_WriteByte
+ ld (hl), 0F0h
+Unlock_Done:
+ pop iy
+ ret
+
+SetFlashPageD:
+ in a, (2)
+ add a, a
+ ld a, 1Fh
+ jr nc, SetFlashPage_Mask
+ in a, (21h)
+ and 3
+ ld a, 7Fh
+ jr nz, SetFlashPage_Mask
+ rra
+SetFlashPage_Mask:
+ and d
+ out (6), a
+ ret
+
+CheckVersion:
+ cp (hl)
+ inc hl
+ ccf
+ ret nz
+ ld a, (hl)
+ cp b
+ ret
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/libticalcs.git
More information about the debian-science-commits
mailing list