summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Scott Stone <tafoid@users.noreply.github.com>2013-09-12 18:45:45 +0000
committer Scott Stone <tafoid@users.noreply.github.com>2013-09-12 18:45:45 +0000
commitc6a6b78f9501dfe9d61a5c830f4c5876b36b9ff6 (patch)
treee2050512f321ede205386da29babf1b02b553097
parentddf4c2f101375465bb6001bb7f3ee4bddd31cfe2 (diff)
a7800.c: Stored data for 26.7 & 27.7 phase shifts with corrections and label for 25.7 values. Made 26.7 (medium) default. Phase shifting falls outside the realm of video controls and hope to implement a selectable toggle hardware option similar to Donkey Kong TKG02/TKG04. [Robert Tuccitto]
rainbow.c: RAM OPTION (up to 896K) now emulated; DIP switch enhancements; cold / warm boot OK now. [Bavarese]
-rw-r--r--.gitattributes1
-rw-r--r--src/mess/drivers/a7800.c329
-rw-r--r--src/mess/drivers/rainbow.c117
-rw-r--r--src/mess/layout/rainbow.lh195
-rw-r--r--src/mess/video/vtvideo.c29
5 files changed, 591 insertions, 80 deletions
diff --git a/.gitattributes b/.gitattributes
index 45489ae4b4a..5ae5b2cdc7c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -6969,6 +6969,7 @@ src/mess/layout/pro80.lay svneol=native#text/plain
src/mess/layout/px4.lay svneol=native#text/plain
src/mess/layout/px8.lay svneol=native#text/plain
src/mess/layout/rainbow.lay svneol=native#text/plain
+src/mess/layout/rainbow.lh svneol=native#text/plain
src/mess/layout/ravens.lay svneol=native#text/plain
src/mess/layout/savia84.lay svneol=native#text/plain
src/mess/layout/sc1.lay svneol=native#text/plain
diff --git a/src/mess/drivers/a7800.c b/src/mess/drivers/a7800.c
index 5111612035a..db7363abe92 100644
--- a/src/mess/drivers/a7800.c
+++ b/src/mess/drivers/a7800.c
@@ -52,6 +52,11 @@
2013/08/13 Robert Tuccitto Normalized contrast and brightness,
providing a standardize grayscale and adjusted color values.
+ 2013/09/02 Robert Tuccitto Stored data for 26.7 & 27.7 phase shifts
+ with corrections and label for 25.7 values. Made 26.7
+ (medium) default. Phase shifting falls outside the realm of
+ video controls and hope to implement a selectable toggle
+ hardware option similar to Donkey Kong TKG02/TKG04.
***************************************************************************/
#include "emu.h"
@@ -137,7 +142,7 @@ INPUT_PORTS_END
/***************************************************************************
- PALETTE
+ PALETTE - 26.7 PHASE SHIFT
***************************************************************************/
#define NTSC_GREY \
@@ -147,94 +152,94 @@ INPUT_PORTS_END
MAKE_RGB(0xCC,0xCC,0xCC), MAKE_RGB(0xDD,0xDD,0xDD), MAKE_RGB(0xEE,0xEE,0xEE), MAKE_RGB(0xFF,0xFF,0xFF )
#define NTSC_GOLD \
- MAKE_RGB(0x1B,0x05,0x00), MAKE_RGB(0x2D,0x15,0x00), MAKE_RGB(0x3F,0x24,0x00), MAKE_RGB(0x51,0x34,0x00), \
- MAKE_RGB(0x64,0x44,0x00), MAKE_RGB(0x76,0x54,0x00), MAKE_RGB(0x88,0x63,0x00), MAKE_RGB(0x99,0x74,0x09), \
- MAKE_RGB(0xAA,0x85,0x1A), MAKE_RGB(0xBB,0x96,0x2B), MAKE_RGB(0xCC,0xA7,0x3C), MAKE_RGB(0xDD,0xB8,0x4D), \
- MAKE_RGB(0xEE,0xC9,0x5E), MAKE_RGB(0xFF,0xDA,0x6F), MAKE_RGB(0xFF,0xEC,0x83), MAKE_RGB(0xFF,0xF7,0x97 )
+ MAKE_RGB(0x1A,0x07,0x00), MAKE_RGB(0x2B,0x18,0x00), MAKE_RGB(0x3C,0x29,0x00), MAKE_RGB(0x4D,0x34,0x00), \
+ MAKE_RGB(0x5E,0x4B,0x00), MAKE_RGB(0x6F,0x5C,0x00), MAKE_RGB(0x80,0x6D,0x00), MAKE_RGB(0x91,0x7F,0x0A), \
+ MAKE_RGB(0xA2,0x8F,0x1A), MAKE_RGB(0xB3,0xA0,0x2B), MAKE_RGB(0xC4,0xB1,0x3C), MAKE_RGB(0xD5,0xC2,0x4D), \
+ MAKE_RGB(0xE6,0xD3,0x5E), MAKE_RGB(0xF7,0xE4,0x6F), MAKE_RGB(0xFF,0xF5,0x83), MAKE_RGB(0xFF,0xFF,0x97 )
#define NTSC_ORANGE \
- MAKE_RGB(0x31,0x00,0x00), MAKE_RGB(0x42,0x01,0x00), MAKE_RGB(0x55,0x11,0x00), MAKE_RGB(0x67,0x20,0x00), \
- MAKE_RGB(0x79,0x30,0x00), MAKE_RGB(0x8B,0x41,0x00), MAKE_RGB(0x9C,0x52,0x0A), MAKE_RGB(0xAD,0x63,0x1B), \
- MAKE_RGB(0xBE,0x74,0x2C), MAKE_RGB(0xCF,0x85,0x3D), MAKE_RGB(0xE0,0x96,0x4E), MAKE_RGB(0xF1,0xA7,0x5F), \
- MAKE_RGB(0xFF,0xB8,0x70), MAKE_RGB(0xFF,0xCA,0x85), MAKE_RGB(0xFF,0xDC,0x9C), MAKE_RGB(0xFF,0xEE,0xB2 )
+ MAKE_RGB(0x32,0x00,0x00), MAKE_RGB(0x43,0x06,0x00), MAKE_RGB(0x54,0x17,0x00), MAKE_RGB(0x65,0x28,0x00), \
+ MAKE_RGB(0x79,0x39,0x00), MAKE_RGB(0x87,0x4A,0x00), MAKE_RGB(0x98,0x5B,0x0C), MAKE_RGB(0xA9,0x6C,0x1D), \
+ MAKE_RGB(0xBA,0x7D,0x2E), MAKE_RGB(0xCB,0x8E,0x3F), MAKE_RGB(0xDC,0x9F,0x50), MAKE_RGB(0xED,0xB0,0x61), \
+ MAKE_RGB(0xFE,0xC1,0x72), MAKE_RGB(0xFF,0xD2,0x87), MAKE_RGB(0xFF,0xE3,0x9E), MAKE_RGB(0xFF,0xF4,0xB4 )
#define NTSC_RED_ORANGE \
- MAKE_RGB(0x3E,0x00,0x00), MAKE_RGB(0x4F,0x00,0x00), MAKE_RGB(0x60,0x01,0x00), MAKE_RGB(0x71,0x12,0x00), \
- MAKE_RGB(0x82,0x23,0x0D), MAKE_RGB(0x93,0x34,0x1E), MAKE_RGB(0xA4,0x45,0x2F), MAKE_RGB(0xB5,0x56,0x40), \
- MAKE_RGB(0xC6,0x67,0x51), MAKE_RGB(0xD7,0x78,0x62), MAKE_RGB(0xE8,0x89,0x73), MAKE_RGB(0xF9,0x9A,0x83), \
- MAKE_RGB(0xFF,0xAC,0x98), MAKE_RGB(0xFF,0xBE,0xAE), MAKE_RGB(0xFF,0xD0,0xC4), MAKE_RGB(0xFF,0xE3,0xDA )
+ MAKE_RGB(0x3E,0x00,0x00), MAKE_RGB(0x4F,0x00,0x00), MAKE_RGB(0x60,0x07,0x00), MAKE_RGB(0x71,0x18,0x00), \
+ MAKE_RGB(0x82,0x29,0x10), MAKE_RGB(0x93,0x3A,0x21), MAKE_RGB(0xA4,0x4B,0x32), MAKE_RGB(0xB5,0x5C,0x43), \
+ MAKE_RGB(0xC6,0x6D,0x54), MAKE_RGB(0xD7,0x7E,0x65), MAKE_RGB(0xE8,0x8F,0x76), MAKE_RGB(0xF9,0xA0,0x87), \
+ MAKE_RGB(0xFF,0xB1,0x9C), MAKE_RGB(0xFF,0xC2,0xB2), MAKE_RGB(0xFF,0xD3,0xC8), MAKE_RGB(0xFF,0xE4,0xDE )
#define NTSC_PINK \
- MAKE_RGB(0x3D,0x00,0x03), MAKE_RGB(0x4D,0x00,0x0F), MAKE_RGB(0x5D,0x00,0x1B), MAKE_RGB(0x6E,0x0C,0x2B), \
- MAKE_RGB(0x7F,0x1D,0x3C), MAKE_RGB(0x90,0x2E,0x4D), MAKE_RGB(0xA1,0x3F,0x5E), MAKE_RGB(0xB2,0x50,0x6F), \
- MAKE_RGB(0xC3,0x61,0x80), MAKE_RGB(0xD4,0x72,0x91), MAKE_RGB(0xE5,0x83,0xA2), MAKE_RGB(0xF6,0x94,0xB3), \
- MAKE_RGB(0xFB,0xA6,0xC8), MAKE_RGB(0xFB,0xB8,0xDE), MAKE_RGB(0xFB,0xCA,0xEF), MAKE_RGB(0xFC,0xDB,0xF4 )
+ MAKE_RGB(0x3E,0x00,0x09), MAKE_RGB(0x4F,0x00,0x15), MAKE_RGB(0x60,0x00,0x21), MAKE_RGB(0x71,0x0E,0x31), \
+ MAKE_RGB(0x82,0x1F,0x42), MAKE_RGB(0x93,0x30,0x53), MAKE_RGB(0xA4,0x41,0x64), MAKE_RGB(0xB5,0x52,0x75), \
+ MAKE_RGB(0xC6,0x63,0x86), MAKE_RGB(0xD7,0x74,0x97), MAKE_RGB(0xE8,0x85,0xA8), MAKE_RGB(0xF9,0x96,0xB9), \
+ MAKE_RGB(0xFF,0xA7,0xCE), MAKE_RGB(0xFF,0xB8,0xE4), MAKE_RGB(0xFF,0xC9,0xEF), MAKE_RGB(0xFF,0xDA,0xF4 )
#define NTSC_PURPLE \
- MAKE_RGB(0x2E,0x01,0x35), MAKE_RGB(0x3E,0x01,0x41), MAKE_RGB(0x4D,0x01,0x4C), MAKE_RGB(0x5E,0x0D,0x5C), \
- MAKE_RGB(0x6F,0x1E,0x6D), MAKE_RGB(0x80,0x2F,0x7E), MAKE_RGB(0x91,0x40,0x8F), MAKE_RGB(0xA2,0x51,0xA0), \
- MAKE_RGB(0xB3,0x62,0xB1), MAKE_RGB(0xC4,0x73,0xC2), MAKE_RGB(0xD5,0x84,0xD3), MAKE_RGB(0xE6,0x95,0xE4), \
- MAKE_RGB(0xF8,0xA5,0xE4), MAKE_RGB(0xFA,0xB6,0xE9), MAKE_RGB(0xFB,0xC7,0xEE), MAKE_RGB(0xFC,0xD8,0xF3 )
+ MAKE_RGB(0x30,0x00,0x3D), MAKE_RGB(0x41,0x00,0x48), MAKE_RGB(0x52,0x00,0x54), MAKE_RGB(0x63,0x0C,0x64), \
+ MAKE_RGB(0x74,0x1D,0x75), MAKE_RGB(0x85,0x2E,0x86), MAKE_RGB(0x96,0x3F,0x97), MAKE_RGB(0xA7,0x50,0xA8), \
+ MAKE_RGB(0xB8,0x61,0xB9), MAKE_RGB(0xC9,0x72,0xCA), MAKE_RGB(0xDA,0x83,0xDB), MAKE_RGB(0xEB,0x94,0xE5), \
+ MAKE_RGB(0xFC,0xA5,0xE5), MAKE_RGB(0xFF,0xB6,0xE9), MAKE_RGB(0xFF,0xC7,0xEE), MAKE_RGB(0xFF,0xD8,0xF3 )
#define NTSC_PURPLE_BLUE \
- MAKE_RGB(0x15,0x05,0x5C), MAKE_RGB(0x25,0x05,0x68), MAKE_RGB(0x35,0x05,0x74), MAKE_RGB(0x46,0x15,0x85), \
- MAKE_RGB(0x57,0x26,0x96), MAKE_RGB(0x68,0x37,0xA7), MAKE_RGB(0x79,0x48,0xB8), MAKE_RGB(0x8A,0x59,0xC9), \
- MAKE_RGB(0x9B,0x6A,0xDA), MAKE_RGB(0xAC,0x7B,0xEB), MAKE_RGB(0xBE,0x8B,0xEC), MAKE_RGB(0xD0,0x9B,0xEC), \
- MAKE_RGB(0xE2,0xAB,0xEC), MAKE_RGB(0xF5,0xBA,0xEC), MAKE_RGB(0xFB,0xCB,0xEF), MAKE_RGB(0xFC,0xDC,0xF4 )
+ MAKE_RGB(0x18,0x00,0x62), MAKE_RGB(0x29,0x00,0x6E), MAKE_RGB(0x3A,0x01,0x7A), MAKE_RGB(0x4B,0x12,0x8B), \
+ MAKE_RGB(0x5C,0x23,0x9C), MAKE_RGB(0x6D,0x34,0xAD), MAKE_RGB(0x7E,0x45,0xBE), MAKE_RGB(0x8F,0x56,0xCF), \
+ MAKE_RGB(0xA0,0x67,0xE0), MAKE_RGB(0xB1,0x78,0xEE), MAKE_RGB(0xC2,0x89,0xEE), MAKE_RGB(0xD3,0x9A,0xEE), \
+ MAKE_RGB(0xE4,0xAB,0xEE), MAKE_RGB(0xF5,0xBC,0xEE), MAKE_RGB(0xFF,0xCD,0xE0), MAKE_RGB(0xFF,0xDE,0xF5 )
#define NTSC_BLUE1 \
- MAKE_RGB(0x00,0x08,0x71), MAKE_RGB(0x09,0x08,0x7D), MAKE_RGB(0x1A,0x13,0x8C), MAKE_RGB(0x2B,0x24,0x9D), \
- MAKE_RGB(0x3C,0x35,0xAE), MAKE_RGB(0x4D,0x46,0xBF), MAKE_RGB(0x5E,0x57,0xD0), MAKE_RGB(0x6F,0x68,0xE1), \
- MAKE_RGB(0x80,0x79,0xF2), MAKE_RGB(0x92,0x89,0xF7), MAKE_RGB(0xA4,0x99,0xF7), MAKE_RGB(0xB6,0xA9,0xF7), \
- MAKE_RGB(0xC8,0xB9,0xF7), MAKE_RGB(0xDB,0xC8,0xF7), MAKE_RGB(0xED,0xD8,0xF7), MAKE_RGB(0xFD,0xE8,0xF8 )
+ MAKE_RGB(0x00,0x00,0x72), MAKE_RGB(0x0C,0x00,0x7F), MAKE_RGB(0x1D,0x0E,0x8F), MAKE_RGB(0x2E,0x1F,0xAA), \
+ MAKE_RGB(0x3F,0x30,0xB1), MAKE_RGB(0x50,0x41,0xC2), MAKE_RGB(0x61,0x52,0xD3), MAKE_RGB(0x72,0x63,0xE4), \
+ MAKE_RGB(0x83,0x74,0xF5), MAKE_RGB(0x94,0x85,0xFA), MAKE_RGB(0xA5,0x96,0xFA), MAKE_RGB(0xB6,0xA7,0xFA), \
+ MAKE_RGB(0xC7,0xB8,0xFA), MAKE_RGB(0xD8,0xC9,0xFA), MAKE_RGB(0xE9,0xDA,0xFA), MAKE_RGB(0xFA,0xE8,0xFA )
#define NTSC_BLUE2 \
- MAKE_RGB(0x00,0x08,0x68), MAKE_RGB(0x00,0x13,0x7C), MAKE_RGB(0x00,0x25,0x90), MAKE_RGB(0x11,0x36,0xA1), \
- MAKE_RGB(0x22,0x47,0xB2), MAKE_RGB(0x33,0x58,0xC3), MAKE_RGB(0x44,0x69,0xD4), MAKE_RGB(0x55,0x7A,0xE5), \
- MAKE_RGB(0x66,0x8B,0xF6), MAKE_RGB(0x77,0x9C,0xFF), MAKE_RGB(0x89,0xAB,0xFF), MAKE_RGB(0x9B,0xBB,0xFF), \
- MAKE_RGB(0xAE,0xCB,0xFF), MAKE_RGB(0xC0,0xDA,0xFF), MAKE_RGB(0xD2,0xEA,0xFF), MAKE_RGB(0xE4,0xFA,0xFF )
+ MAKE_RGB(0x00,0x00,0x62), MAKE_RGB(0x00,0x0F,0x77), MAKE_RGB(0x01,0x20,0x8D), MAKE_RGB(0x12,0x31,0x9E), \
+ MAKE_RGB(0x23,0x42,0xAF), MAKE_RGB(0x34,0x53,0xC0), MAKE_RGB(0x45,0x64,0xD1), MAKE_RGB(0x56,0x75,0xE2), \
+ MAKE_RGB(0x67,0x86,0xF3), MAKE_RGB(0x78,0x97,0xFF), MAKE_RGB(0x89,0xA8,0xFF), MAKE_RGB(0x9A,0xB9,0xFF), \
+ MAKE_RGB(0xAB,0xCA,0xFF), MAKE_RGB(0xBC,0xDB,0xFF), MAKE_RGB(0xCD,0xEC,0xFF), MAKE_RGB(0xDE,0xFD,0xFF )
#define NTSC_LIGHT_BLUE \
- MAKE_RGB(0x00,0x10,0x4C), MAKE_RGB(0x00,0x23,0x62), MAKE_RGB(0x00,0x35,0x78), MAKE_RGB(0x00,0x47,0x8E), \
- MAKE_RGB(0x0E,0x58,0x9F), MAKE_RGB(0x1F,0x69,0xB0), MAKE_RGB(0x30,0x7A,0xC1), MAKE_RGB(0x41,0x8B,0xD2), \
- MAKE_RGB(0x52,0x9C,0xE3), MAKE_RGB(0x63,0xAD,0xF4), MAKE_RGB(0x74,0xBE,0xFF), MAKE_RGB(0x86,0xCF,0xFF), \
- MAKE_RGB(0x98,0xDE,0xFF), MAKE_RGB(0xAA,0xEE,0xFF), MAKE_RGB(0xBD,0xFE,0xFF), MAKE_RGB(0xCE,0xFF,0xFF )
+ MAKE_RGB(0x00,0x10,0x42), MAKE_RGB(0x00,0x21,0x58), MAKE_RGB(0x00,0x32,0x6E), MAKE_RGB(0x00,0x43,0x84), \
+ MAKE_RGB(0x0E,0x54,0x96), MAKE_RGB(0x1F,0x65,0xA7), MAKE_RGB(0x30,0x76,0xB8), MAKE_RGB(0x41,0x87,0xC9), \
+ MAKE_RGB(0x52,0x98,0xDA), MAKE_RGB(0x63,0xA9,0xEB), MAKE_RGB(0x74,0xBA,0xFC), MAKE_RGB(0x85,0xCB,0xFF), \
+ MAKE_RGB(0x96,0xDC,0xFF), MAKE_RGB(0xA7,0xED,0xFF), MAKE_RGB(0xB8,0xFE,0xFF), MAKE_RGB(0xC9,0xFF,0xFF )
#define NTSC_TURQUOISE \
- MAKE_RGB(0x00,0x1C,0x24), MAKE_RGB(0x00,0x2E,0x3A), MAKE_RGB(0x00,0x41,0x50), MAKE_RGB(0x00,0x53,0x66), \
- MAKE_RGB(0x06,0x65,0x7A), MAKE_RGB(0x17,0x76,0x8B), MAKE_RGB(0x28,0x87,0x9C), MAKE_RGB(0x39,0x98,0xAD), \
- MAKE_RGB(0x4A,0xA9,0xBE), MAKE_RGB(0x5B,0xBA,0xCF), MAKE_RGB(0x6C,0xCB,0xE0), MAKE_RGB(0x7D,0xDC,0xF1), \
- MAKE_RGB(0x8E,0xED,0xFF), MAKE_RGB(0x9F,0xFE,0xFF), MAKE_RGB(0xB0,0xFF,0xFF), MAKE_RGB(0xC1,0xFF,0xFF )
+ MAKE_RGB(0x00,0x1E,0x14), MAKE_RGB(0x00,0x2F,0x2A), MAKE_RGB(0x00,0x40,0x40), MAKE_RGB(0x00,0x51,0x56), \
+ MAKE_RGB(0x04,0x62,0x6B), MAKE_RGB(0x15,0x73,0x7C), MAKE_RGB(0x26,0x84,0x8D), MAKE_RGB(0x37,0x95,0x9E), \
+ MAKE_RGB(0x48,0xA6,0xAF), MAKE_RGB(0x59,0xB7,0xC0), MAKE_RGB(0x6A,0xC8,0xD1), MAKE_RGB(0x7B,0xD9,0xE2), \
+ MAKE_RGB(0x8C,0xEA,0xF3), MAKE_RGB(0x9D,0xFB,0xFF), MAKE_RGB(0xAE,0xFF,0xFF), MAKE_RGB(0xBF,0xFF,0xFF )
#define NTSC_GREEN_BLUE \
- MAKE_RGB(0x03,0x24,0x0B), MAKE_RGB(0x04,0x35,0x10), MAKE_RGB(0x04,0x47,0x21), MAKE_RGB(0x04,0x59,0x37), \
- MAKE_RGB(0x09,0x6B,0x4C), MAKE_RGB(0x1A,0x7C,0x5D), MAKE_RGB(0x2B,0x8D,0x6E), MAKE_RGB(0x3C,0x9E,0x7F), \
- MAKE_RGB(0x4D,0xAF,0x90), MAKE_RGB(0x5E,0xC0,0xA1), MAKE_RGB(0x6F,0xD1,0xB2), MAKE_RGB(0x80,0xE2,0xC3), \
- MAKE_RGB(0x91,0xF3,0xD4), MAKE_RGB(0xA2,0xFF,0xE4), MAKE_RGB(0xB2,0xFF,0xF0), MAKE_RGB(0xC2,0xFF,0xFC )
+ MAKE_RGB(0x00,0x26,0x0B), MAKE_RGB(0x00,0x37,0x10), MAKE_RGB(0x00,0x48,0x16), MAKE_RGB(0x00,0x59,0x25), \
+ MAKE_RGB(0x08,0x6A,0x38), MAKE_RGB(0x19,0x7B,0x49), MAKE_RGB(0x2A,0x8C,0x5A), MAKE_RGB(0x3B,0x9D,0x6B), \
+ MAKE_RGB(0x4C,0xAE,0x7C), MAKE_RGB(0x5D,0xBF,0x8D), MAKE_RGB(0x6E,0xD0,0x9E), MAKE_RGB(0x7F,0xE1,0xAF), \
+ MAKE_RGB(0x90,0xF2,0xC0), MAKE_RGB(0xA1,0xFF,0xD0), MAKE_RGB(0xB2,0xFF,0xDC), MAKE_RGB(0xC3,0xFF,0xE8 )
#define NTSC_GREEN \
- MAKE_RGB(0x03,0x27,0x0C), MAKE_RGB(0x04,0x38,0x11), MAKE_RGB(0x05,0x49,0x16), MAKE_RGB(0x07,0x5A,0x1B), \
- MAKE_RGB(0x19,0x6A,0x1B), MAKE_RGB(0x2A,0x7B,0x2B), MAKE_RGB(0x3B,0x8C,0x3C), MAKE_RGB(0x4C,0x9D,0x4D), \
- MAKE_RGB(0x5D,0xAE,0x5E), MAKE_RGB(0x6E,0xBF,0x6F), MAKE_RGB(0x7F,0xD0,0x80), MAKE_RGB(0x90,0xE1,0x91), \
- MAKE_RGB(0xA1,0xF2,0xA2), MAKE_RGB(0xB2,0xFE,0xB1), MAKE_RGB(0xC1,0xFE,0xBD), MAKE_RGB(0xD1,0xFE,0xC9 )
+ MAKE_RGB(0x00,0x26,0x0B), MAKE_RGB(0x00,0x37,0x10), MAKE_RGB(0x00,0x48,0x16), MAKE_RGB(0x08,0x59,0x18), \
+ MAKE_RGB(0x19,0x6A,0x18), MAKE_RGB(0x2A,0x7B,0x18), MAKE_RGB(0x3B,0x8C,0x29), MAKE_RGB(0x4C,0x9D,0x3A), \
+ MAKE_RGB(0x5D,0xAE,0x4B), MAKE_RGB(0x6E,0xBF,0x5C), MAKE_RGB(0x7F,0xD0,0x6D), MAKE_RGB(0x90,0xE1,0x7E), \
+ MAKE_RGB(0xA1,0xF2,0x8F), MAKE_RGB(0xB2,0xFF,0x9F), MAKE_RGB(0xC3,0xFF,0xAB), MAKE_RGB(0xD4,0xFF,0xB7 )
#define NTSC_YELLOW_GREEN \
- MAKE_RGB(0x03,0x23,0x0A), MAKE_RGB(0x04,0x34,0x10), MAKE_RGB(0x0A,0x45,0x13), MAKE_RGB(0x1C,0x54,0x13), \
- MAKE_RGB(0x2F,0x64,0x13), MAKE_RGB(0x41,0x74,0x13), MAKE_RGB(0x53,0x83,0x14), MAKE_RGB(0x64,0x95,0x25), \
- MAKE_RGB(0x75,0xA5,0x36), MAKE_RGB(0x86,0xB7,0x47), MAKE_RGB(0x97,0xC8,0x58), MAKE_RGB(0xA8,0xD9,0x69), \
- MAKE_RGB(0xB9,0xEA,0x7A), MAKE_RGB(0xCA,0xFA,0x8B), MAKE_RGB(0xDA,0xFA,0x97), MAKE_RGB(0xE9,0xFA,0xA3 )
+ MAKE_RGB(0x00,0x1E,0x09), MAKE_RGB(0x00,0x2F,0x0E), MAKE_RGB(0x11,0x40,0x0E), MAKE_RGB(0x22,0x51,0x0E), \
+ MAKE_RGB(0x33,0x62,0x0E), MAKE_RGB(0x44,0x73,0x0E), MAKE_RGB(0x55,0x84,0x0E), MAKE_RGB(0x66,0x95,0x17), \
+ MAKE_RGB(0x77,0xA6,0x28), MAKE_RGB(0x88,0xB7,0x39), MAKE_RGB(0x99,0xC8,0x4A), MAKE_RGB(0xAA,0xD9,0x5B), \
+ MAKE_RGB(0xBB,0xEA,0x6C), MAKE_RGB(0xCC,0xFB,0x7D), MAKE_RGB(0xDD,0xFF,0x8A), MAKE_RGB(0xEE,0xFF,0x96 )
#define NTSC_ORANGE_GREEN \
- MAKE_RGB(0x02,0x17,0x07), MAKE_RGB(0x12,0x27,0x07), MAKE_RGB(0x24,0x37,0x07), MAKE_RGB(0x37,0x46,0x07), \
- MAKE_RGB(0x49,0x56,0x07), MAKE_RGB(0x5B,0x66,0x07), MAKE_RGB(0x6D,0x75,0x07), MAKE_RGB(0x7F,0x85,0x0C), \
- MAKE_RGB(0x90,0x97,0x1D), MAKE_RGB(0xA1,0xA8,0x2E), MAKE_RGB(0xB2,0xB9,0x3F), MAKE_RGB(0xC3,0xCA,0x50), \
- MAKE_RGB(0xD4,0xDB,0x61), MAKE_RGB(0xE5,0xEC,0x72), MAKE_RGB(0xF6,0xF7,0x82), MAKE_RGB(0xFF,0xF7,0x8E )
+ MAKE_RGB(0x0D,0x0F,0x01), MAKE_RGB(0x1E,0x20,0x01), MAKE_RGB(0x2F,0x31,0x01), MAKE_RGB(0x40,0x42,0x01), \
+ MAKE_RGB(0x51,0x53,0x01), MAKE_RGB(0x62,0x64,0x01), MAKE_RGB(0x73,0x75,0x01), MAKE_RGB(0x84,0x86,0x08), \
+ MAKE_RGB(0x95,0x97,0x19), MAKE_RGB(0xA6,0xA8,0x2A), MAKE_RGB(0xB7,0xB9,0x3B), MAKE_RGB(0xC8,0xCA,0x4C), \
+ MAKE_RGB(0xD9,0xDB,0x5D), MAKE_RGB(0xEA,0xEC,0x6E), MAKE_RGB(0xFB,0xFD,0x7F), MAKE_RGB(0xFF,0xFF,0x8F )
#define NTSC_LIGHT_ORANGE \
- MAKE_RGB(0x1B,0x05,0x00), MAKE_RGB(0x2D,0x15,0x00), MAKE_RGB(0x3F,0x24,0x00), MAKE_RGB(0x51,0x34,0x00), \
- MAKE_RGB(0x64,0x44,0x00), MAKE_RGB(0x76,0x54,0x00), MAKE_RGB(0x88,0x63,0x00), MAKE_RGB(0x99,0x74,0x09), \
- MAKE_RGB(0xAA,0x85,0x1A), MAKE_RGB(0xBB,0x96,0x2B), MAKE_RGB(0xCC,0xA7,0x3C), MAKE_RGB(0xDD,0xB8,0x4D), \
- MAKE_RGB(0xEE,0xC9,0x5E), MAKE_RGB(0xFF,0xDA,0x6F), MAKE_RGB(0xFF,0xEC,0x83), MAKE_RGB(0xFF,0xF7,0x97 )
+ MAKE_RGB(0x28,0x00,0x00), MAKE_RGB(0x39,0x0E,0x00), MAKE_RGB(0x4A,0x1F,0x00), MAKE_RGB(0x5B,0x30,0x00), \
+ MAKE_RGB(0x6C,0x41,0x00), MAKE_RGB(0x7D,0x52,0x00), MAKE_RGB(0x8E,0x63,0x00), MAKE_RGB(0x9F,0x74,0x10), \
+ MAKE_RGB(0xB0,0x85,0x21), MAKE_RGB(0xC1,0x96,0x32), MAKE_RGB(0xD2,0xA7,0x43), MAKE_RGB(0xE3,0xB8,0x54), \
+ MAKE_RGB(0xF4,0xC9,0x65), MAKE_RGB(0xFF,0xDA,0x78), MAKE_RGB(0xFF,0xEB,0x8E), MAKE_RGB(0xFF,0xFC,0xA4 )
static const rgb_t a7800_palette[256*3] =
{
@@ -276,6 +281,208 @@ static const rgb_t a7800p_palette[256*3] =
NTSC_ORANGE_GREEN
};
+/***************************************************************************
+ PALETTE - PHASE 25.7 SHIFT
+
+
+define NTSC_GREY
+ MAKE_RGB(0x00,0x00,0x00), MAKE_RGB(0x11,0x11,0x11), MAKE_RGB(0x22,0x22,0x22), MAKE_RGB(0x33,0x33,0x33), \
+ MAKE_RGB(0x44,0x44,0x44), MAKE_RGB(0x55,0x55,0x55), MAKE_RGB(0x66,0x66,0x66), MAKE_RGB(0x77,0x77,0x77), \
+ MAKE_RGB(0x88,0x88,0x88), MAKE_RGB(0x99,0x99,0x99), MAKE_RGB(0xAA,0xAA,0xAA), MAKE_RGB(0xBB,0xBB,0xBB), \
+ MAKE_RGB(0xCC,0xCC,0xCC), MAKE_RGB(0xDD,0xDD,0xDD), MAKE_RGB(0xEE,0xEE,0xEE), MAKE_RGB(0xFF,0xFF,0xFF )
+
+define NTSC_GOLD
+ MAKE_RGB(0x1A,0x07,0x00), MAKE_RGB(0x2B,0x18,0x00), MAKE_RGB(0x3C,0x29,0x00), MAKE_RGB(0x4D,0x3A,0x00), \
+ MAKE_RGB(0x5E,0x4B,0x00), MAKE_RGB(0x6F,0x5C,0x00), MAKE_RGB(0x80,0x6D,0x00), MAKE_RGB(0x91,0x7E,0x09), \
+ MAKE_RGB(0xA2,0x8F,0x1A), MAKE_RGB(0xB3,0xA0,0x2B), MAKE_RGB(0xC4,0xB1,0x3C), MAKE_RGB(0xD5,0xC2,0x4D), \
+ MAKE_RGB(0xE6,0xD3,0x5E), MAKE_RGB(0xF7,0xE4,0x6F), MAKE_RGB(0xFF,0xF5,0x83), MAKE_RGB(0xFF,0xF7,0x97 )
+
+define NTSC_ORANGE
+ MAKE_RGB(0x31,0x00,0x00), MAKE_RGB(0x42,0x06,0x00), MAKE_RGB(0x53,0x17,0x00), MAKE_RGB(0x64,0x28,0x00), \
+ MAKE_RGB(0x75,0x39,0x00), MAKE_RGB(0x86,0X4A,0x00), MAKE_RGB(0x97,0x5B,0x0A), MAKE_RGB(0xA8,0x6C,0x1B), \
+ MAKE_RGB(0xB9,0x7D,0x2C), MAKE_RGB(0xCA,0x8E,0x3D), MAKE_RGB(0xDB,0x9F,0x4E), MAKE_RGB(0xEC,0xB0,0x5F), \
+ MAKE_RGB(0xFD,0xC1,0x70), MAKE_RGB(0xFF,0xD2,0x85), MAKE_RGB(0xFF,0xE3,0x9C), MAKE_RGB(0xFF,0xF4,0xB2 )
+
+define NTSC_RED_ORANGE
+ MAKE_RGB(0x3E,0x00,0x00), MAKE_RGB(0x4F,0x00,0x00), MAKE_RGB(0x60,0x08,0x00), MAKE_RGB(0x71,0x19,0x00), \
+ MAKE_RGB(0x82,0x2A,0x0D), MAKE_RGB(0x93,0x3B,0x1E), MAKE_RGB(0xA4,0x4C,0x2F), MAKE_RGB(0xB5,0x5D,0x40), \
+ MAKE_RGB(0xC6,0x6E,0x51), MAKE_RGB(0xD7,0x7F,0x62), MAKE_RGB(0xE8,0x90,0x73), MAKE_RGB(0xF9,0xA1,0x83), \
+ MAKE_RGB(0xFF,0xB2,0x98), MAKE_RGB(0xFF,0xC3,0xAE), MAKE_RGB(0xFF,0xD4,0xC4), MAKE_RGB(0xFF,0xE5,0xDA )
+
+define NTSC_PINK
+ MAKE_RGB(0x3F,0x00,0x03), MAKE_RGB(0x50,0x00,0x0F), MAKE_RGB(0x61,0x00,0x1B), MAKE_RGB(0x72,0x0F,0x2B), \
+ MAKE_RGB(0x83,0x20,0x3C), MAKE_RGB(0x94,0x31,0x4D), MAKE_RGB(0xA5,0x42,0x5E), MAKE_RGB(0xB6,0x53,0x6F), \
+ MAKE_RGB(0xC7,0x64,0x80), MAKE_RGB(0xD8,0x75,0x91), MAKE_RGB(0xE9,0x86,0xA2), MAKE_RGB(0xFA,0x97,0xB3), \
+ MAKE_RGB(0xFF,0xA8,0xC8), MAKE_RGB(0xFF,0xB9,0xDE), MAKE_RGB(0xFF,0xCA,0xEF), MAKE_RGB(0xFF,0xDB,0xF4 )
+
+define NTSC_PURPLE
+ MAKE_RGB(0x33,0x00,0x35), MAKE_RGB(0x44,0x00,0x41), MAKE_RGB(0x55,0x00,0x4C), MAKE_RGB(0x66,0x0C,0x5C), \
+ MAKE_RGB(0x77,0x1D,0x6D), MAKE_RGB(0x88,0x2E,0x7E), MAKE_RGB(0x99,0x3F,0x8F), MAKE_RGB(0xAA,0x50,0xA0), \
+ MAKE_RGB(0xBB,0x61,0xB1), MAKE_RGB(0xCC,0x72,0xC2), MAKE_RGB(0xDD,0x83,0xD3), MAKE_RGB(0xEE,0x94,0xE4), \
+ MAKE_RGB(0xFF,0xA5,0xE4), MAKE_RGB(0xFF,0xB6,0xE9), MAKE_RGB(0xFF,0xC7,0xEE), MAKE_RGB(0xFF,0xD8,0xF3 )
+
+define NTSC_PURPLE_BLUE
+ MAKE_RGB(0x1D,0x00,0x5C), MAKE_RGB(0x2E,0x00,0x68), MAKE_RGB(0x40,0x00,0x74), MAKE_RGB(0x51,0x10,0x84), \
+ MAKE_RGB(0x62,0x21,0x95), MAKE_RGB(0x73,0x32,0xA6), MAKE_RGB(0x84,0x43,0xB7), MAKE_RGB(0x95,0x54,0xC8), \
+ MAKE_RGB(0xA6,0x65,0xD9), MAKE_RGB(0xB7,0x76,0xEA), MAKE_RGB(0xC8,0x87,0xEB), MAKE_RGB(0xD9,0x98,0xEB), \
+ MAKE_RGB(0xE9,0xA9,0xEC), MAKE_RGB(0xFB,0xBA,0xEB), MAKE_RGB(0xFF,0xCB,0xEF), MAKE_RGB(0xFF,0xDC,0xF4 )
+
+define NTSC_BLUE1
+ MAKE_RGB(0x02,0x00,0x71), MAKE_RGB(0x13,0x00,0x7D), MAKE_RGB(0x24,0x0B,0x8C), MAKE_RGB(0x35,0x1C,0x9D), \
+ MAKE_RGB(0x46,0x2D,0xAE), MAKE_RGB(0x57,0x3E,0xBF), MAKE_RGB(0x68,0x4F,0xD0), MAKE_RGB(0x79,0x60,0xE1), \
+ MAKE_RGB(0x8A,0x71,0xF2), MAKE_RGB(0x9B,0x82,0xF7), MAKE_RGB(0xAC,0x93,0xF7), MAKE_RGB(0xBD,0xA4,0xF7), \
+ MAKE_RGB(0xCE,0xB5,0xF7), MAKE_RGB(0xDF,0xC6,0xF7), MAKE_RGB(0xF0,0xD7,0xF7), MAKE_RGB(0xFF,0xE8,0xF8 )
+
+define NTSC_BLUE2
+ MAKE_RGB(0x00,0x00,0x68), MAKE_RGB(0x00,0x0A,0x7C), MAKE_RGB(0x08,0x1B,0x90), MAKE_RGB(0x19,0x2C,0xA1), \
+ MAKE_RGB(0x2A,0x3D,0xB2), MAKE_RGB(0x3B,0x4E,0xC3), MAKE_RGB(0x4C,0x5F,0xD4), MAKE_RGB(0x5D,0x70,0xE5), \
+ MAKE_RGB(0x6E,0x81,0xF6), MAKE_RGB(0x7F,0x92,0xFF), MAKE_RGB(0x90,0xA3,0xFF), MAKE_RGB(0xA1,0xB4,0xFF), \
+ MAKE_RGB(0xB2,0xC5,0xFF), MAKE_RGB(0xC3,0xD6,0xFF), MAKE_RGB(0xD4,0xE7,0xFF), MAKE_RGB(0xE5,0xF8,0xFF )
+
+define NTSC_LIGHT_BLUE
+ MAKE_RGB(0x00,0x0A,0x4D), MAKE_RGB(0x00,0x1B,0x63), MAKE_RGB(0x00,0x2C,0x79), MAKE_RGB(0x02,0x3D,0x8F), \
+ MAKE_RGB(0x13,0x4E,0xA0), MAKE_RGB(0x24,0x5F,0xB1), MAKE_RGB(0x35,0x70,0xC2), MAKE_RGB(0x46,0x81,0xD3), \
+ MAKE_RGB(0x57,0x92,0xE4), MAKE_RGB(0x68,0xA3,0xF5), MAKE_RGB(0x79,0xB4,0xFF), MAKE_RGB(0x8A,0xC5,0xFF), \
+ MAKE_RGB(0x9B,0xD6,0xFF), MAKE_RGB(0xAC,0xE7,0xFF), MAKE_RGB(0xBD,0xF8,0xFF), MAKE_RGB(0xCE,0xFF,0xFF )
+
+define NTSC_TURQUOISE
+ MAKE_RGB(0x00,0x1A,0x26), MAKE_RGB(0x00,0x2B,0x3C), MAKE_RGB(0x00,0x3C,0x52), MAKE_RGB(0x00,0x4D,0x68), \
+ MAKE_RGB(0x06,0x5E,0x7C), MAKE_RGB(0x17,0x6F,0x8D), MAKE_RGB(0x28,0x80,0x9E), MAKE_RGB(0x39,0x91,0xAF), \
+ MAKE_RGB(0x4A,0xA2,0xC0), MAKE_RGB(0x5B,0xB3,0xD1), MAKE_RGB(0x6C,0xC4,0xE2), MAKE_RGB(0x7D,0xD5,0xF3), \
+ MAKE_RGB(0x8E,0xE6,0xFF), MAKE_RGB(0x9F,0xF7,0xFF), MAKE_RGB(0xB0,0xFF,0xFF), MAKE_RGB(0xC1,0xFF,0xFF )
+
+define NTSC_GREEN_BLUE
+ MAKE_RGB(0x00,0x24,0x0B), MAKE_RGB(0x00,0x35,0x10), MAKE_RGB(0x00,0x46,0x22), MAKE_RGB(0x00,0x57,0x38), \
+ MAKE_RGB(0x05,0x68,0x4D), MAKE_RGB(0x16,0x79,0x5E), MAKE_RGB(0x27,0x8A,0x6F), MAKE_RGB(0x38,0x9B,0x80), \
+ MAKE_RGB(0x49,0xAC,0x91), MAKE_RGB(0x5A,0xBD,0xA2), MAKE_RGB(0x6B,0xCE,0xB3), MAKE_RGB(0x7C,0xDF,0xC4), \
+ MAKE_RGB(0x8D,0xF0,0xD5), MAKE_RGB(0x9E,0xFF,0xE5), MAKE_RGB(0xAF,0xFF,0xF1), MAKE_RGB(0xC0,0xFF,0xFD )
+
+define NTSC_GREEN
+ MAKE_RGB(0x00,0x27,0x0C), MAKE_RGB(0x00,0x38,0x11), MAKE_RGB(0x00,0x49,0x16), MAKE_RGB(0x00,0x5A,0x1B), \
+ MAKE_RGB(0x10,0x6B,0x1B), MAKE_RGB(0x21,0x7C,0x2C), MAKE_RGB(0x32,0x8D,0x3D), MAKE_RGB(0x43,0x9E,0x4E), \
+ MAKE_RGB(0x54,0xAF,0x5F), MAKE_RGB(0x65,0xC0,0x70), MAKE_RGB(0x76,0xD1,0x81), MAKE_RGB(0x87,0xE2,0x92), \
+ MAKE_RGB(0x98,0xF3,0xA3), MAKE_RGB(0xA9,0xFF,0xB3), MAKE_RGB(0xBA,0xFF,0xBF), MAKE_RGB(0xCB,0xFF,0xCB )
+
+define NTSC_YELLOW_GREEN
+ MAKE_RGB(0x00,0x23,0x0A), MAKE_RGB(0x00,0x34,0x10), MAKE_RGB(0x04,0x45,0x13), MAKE_RGB(0x15,0x56,0x13), \
+ MAKE_RGB(0x26,0x67,0x13), MAKE_RGB(0x37,0x78,0x13), MAKE_RGB(0x48,0x89,0x14), MAKE_RGB(0x59,0x9A,0x25), \
+ MAKE_RGB(0x6A,0xAB,0x36), MAKE_RGB(0x7B,0xBC,0x47), MAKE_RGB(0x8C,0xCD,0x58), MAKE_RGB(0x9D,0xDE,0x69), \
+ MAKE_RGB(0xAE,0xEF,0x7A), MAKE_RGB(0xBF,0xFF,0x8B), MAKE_RGB(0xD0,0xFF,0x97), MAKE_RGB(0xE1,0xFF,0xA3 )
+
+define NTSC_ORANGE_GREEN
+ MAKE_RGB(0x00,0x17,0x07), MAKE_RGB(0x0E,0x28,0x08), MAKE_RGB(0x1F,0x39,0x08), MAKE_RGB(0x30,0x4A,0x08), \
+ MAKE_RGB(0x41,0x5B,0x08), MAKE_RGB(0x52,0x6C,0x08), MAKE_RGB(0x63,0x7D,0x08), MAKE_RGB(0x74,0x8E,0x0D), \
+ MAKE_RGB(0x85,0x9F,0x1E), MAKE_RGB(0x96,0xB0,0x2F), MAKE_RGB(0xA7,0xC1,0x40), MAKE_RGB(0xB8,0xD2,0x51), \
+ MAKE_RGB(0xC9,0xE3,0x62), MAKE_RGB(0xDA,0xF4,0x73), MAKE_RGB(0xEB,0xFF,0x82), MAKE_RGB(0xFC,0xFF,0x8E )
+
+define NTSC_LIGHT_ORANGE
+ MAKE_RGB(0x19,0x07,0x00), MAKE_RGB(0x2A,0x18,0x00), MAKE_RGB(0x3B,0x29,0x00), MAKE_RGB(0x4C,0x3A,0x00), \
+ MAKE_RGB(0x5D,0x4B,0x00), MAKE_RGB(0x6E,0x5C,0x00), MAKE_RGB(0x7F,0x6D,0x00), MAKE_RGB(0x90,0x7E,0x09), \
+ MAKE_RGB(0xA1,0x8F,0x1A), MAKE_RGB(0xB2,0xA0,0x2B), MAKE_RGB(0xC3,0xB1,0x3C), MAKE_RGB(0xD4,0xC2,0x4D), \
+ MAKE_RGB(0xE5,0xD3,0x5E), MAKE_RGB(0xF6,0xE4,0x6F), MAKE_RGB(0xFF,0xF5,0x82), MAKE_RGB(0xFF,0xFF,0x96 )
+***************************************************************************/
+
+
+/***************************************************************************
+ PALETTE - 27.7 PHASE SHIFT
+
+
+define NTSC_GREY
+ MAKE_RGB(0x00,0x00,0x00), MAKE_RGB(0x11,0x11,0x11), MAKE_RGB(0x22,0x22,0x22), MAKE_RGB(0x33,0x33,0x33), \
+ MAKE_RGB(0x44,0x44,0x44), MAKE_RGB(0x55,0x55,0x55), MAKE_RGB(0x66,0x66,0x66), MAKE_RGB(0x77,0x77,0x77), \
+ MAKE_RGB(0x88,0x88,0x88), MAKE_RGB(0x99,0x99,0x99), MAKE_RGB(0xAA,0xAA,0xAA), MAKE_RGB(0xBB,0xBB,0xBB), \
+ MAKE_RGB(0xCC,0xCC,0xCC), MAKE_RGB(0xDD,0xDD,0xDD), MAKE_RGB(0xEE,0xEE,0xEE), MAKE_RGB(0xFF,0xFF,0xFF )
+
+define NTSC_GOLD
+ MAKE_RGB(0x1A,0x07,0x00), MAKE_RGB(0x2B,0x18,0x00), MAKE_RGB(0x3C,0x29,0x00), MAKE_RGB(0x4D,0x3A,0x00), \
+ MAKE_RGB(0x5E,0x4B,0x00), MAKE_RGB(0x6F,0x5C,0x00), MAKE_RGB(0x80,0x6D,0x00), MAKE_RGB(0x91,0x7E,0x09), \
+ MAKE_RGB(0xA2,0x8F,0x1A), MAKE_RGB(0xB3,0xA0,0x2B), MAKE_RGB(0xC4,0xB1,0x3C), MAKE_RGB(0xD5,0xC2,0x4D), \
+ MAKE_RGB(0xE6,0xD3,0x5E), MAKE_RGB(0xF7,0xE4,0x6F), MAKE_RGB(0xFF,0xF5,0x83), MAKE_RGB(0xFF,0xFF,0x97 )
+
+define NTSC_ORANGE
+ MAKE_RGB(0x32,0x00,0x00), MAKE_RGB(0x43,0x05,0x00), MAKE_RGB(0x54,0x16,0x00), MAKE_RGB(0x65,0x27,0x00), \
+ MAKE_RGB(0x76,0x38,0x00), MAKE_RGB(0x87,0x49,0x00), MAKE_RGB(0x98,0x5A,0x0C), MAKE_RGB(0xA9,0x6B,0x1D), \
+ MAKE_RGB(0xBA,0x7C,0x2E), MAKE_RGB(0xCB,0x8D,0x3F), MAKE_RGB(0xDC,0x9E,0x50), MAKE_RGB(0xED,0xAF,0x61), \
+ MAKE_RGB(0xFE,0xC0,0x72), MAKE_RGB(0xFF,0xD1,0x88), MAKE_RGB(0xFF,0xE2,0x9E), MAKE_RGB(0xFF,0xF3,0xB4 )
+
+define NTSC_RED_ORANGE
+ MAKE_RGB(0x3F,0x00,0x00), MAKE_RGB(0x50,0x00,0x00), MAKE_RGB(0x61,0x06,0x00), MAKE_RGB(0x72,0x17,0x03), \
+ MAKE_RGB(0x83,0x28,0x14), MAKE_RGB(0x94,0x39,0x25), MAKE_RGB(0xA5,0x4A,0x36), MAKE_RGB(0xB6,0x5B,0x47), \
+ MAKE_RGB(0xC7,0x6C,0x58), MAKE_RGB(0xD8,0x7D,0x69), MAKE_RGB(0xE9,0x8E,0x7A), MAKE_RGB(0xFA,0x9F,0x8B), \
+ MAKE_RGB(0xFF,0xB0,0x9F), MAKE_RGB(0xFF,0xC1,0xB5), MAKE_RGB(0xFF,0xD2,0xCB), MAKE_RGB(0xFF,0xE3,0xE1 )
+
+define NTSC_PINK
+ MAKE_RGB(0x3D,0x00,0x10), MAKE_RGB(0x4E,0x00,0x1C), MAKE_RGB(0x5F,0x00,0x27), MAKE_RGB(0x70,0x0D,0x37), \
+ MAKE_RGB(0x81,0x1E,0x48), MAKE_RGB(0x92,0x2F,0x59), MAKE_RGB(0xA3,0x40,0x6A), MAKE_RGB(0xB4,0x51,0x7B), \
+ MAKE_RGB(0xC5,0x62,0x8C), MAKE_RGB(0xD6,0x73,0x9D), MAKE_RGB(0xE7,0x84,0xAE), MAKE_RGB(0xF8,0x95,0xBF), \
+ MAKE_RGB(0xFF,0xA6,0xD3), MAKE_RGB(0xFF,0xB7,0xE9), MAKE_RGB(0xFF,0xC8,0xEE), MAKE_RGB(0xFF,0xD9,0xF4 )
+
+define NTSC_PURPLE
+ MAKE_RGB(0x2D,0x00,0x42), MAKE_RGB(0x3E,0x00,0x4E), MAKE_RGB(0x4F,0x00,0x5A), MAKE_RGB(0x60,0x0C,0x6A), \
+ MAKE_RGB(0x71,0x1D,0x7B), MAKE_RGB(0x82,0x2E,0x8C), MAKE_RGB(0x93,0x3F,0x9D), MAKE_RGB(0xA4,0x50,0xAE), \
+ MAKE_RGB(0xB5,0x61,0xBF), MAKE_RGB(0xC6,0x72,0xD0), MAKE_RGB(0xD7,0x83,0xE1), MAKE_RGB(0xE8,0x94,0xE6), \
+ MAKE_RGB(0xF9,0xA5,0xE6), MAKE_RGB(0xFF,0xB6,0xE9), MAKE_RGB(0xFF,0xC7,0xEE), MAKE_RGB(0xFF,0xD8,0xF3 )
+
+define NTSC_PURPLE_BLUE
+ MAKE_RGB(0x13,0x00,0x67), MAKE_RGB(0x24,0x00,0x73), MAKE_RGB(0x35,0x03,0x80), MAKE_RGB(0x46,0x14,0x91), \
+ MAKE_RGB(0x57,0x25,0xA2), MAKE_RGB(0x68,0x36,0xB3), MAKE_RGB(0x79,0x47,0xC4), MAKE_RGB(0x8A,0x58,0xD5), \
+ MAKE_RGB(0x9B,0x69,0xE6), MAKE_RGB(0xAC,0x7A,0xF0), MAKE_RGB(0xBD,0x8B,0xF0), MAKE_RGB(0xCE,0x9C,0xF0), \
+ MAKE_RGB(0xDF,0xAD,0xF0), MAKE_RGB(0xF0,0xBE,0xF0), MAKE_RGB(0xFF,0xCF,0xF1), MAKE_RGB(0xFF,0xE0,0xF6 )
+
+define NTSC_BLUE1
+ MAKE_RGB(0x00,0x00,0x70), MAKE_RGB(0x05,0x01,0x80), MAKE_RGB(0x16,0x12,0x91), MAKE_RGB(0x27,0x23,0xA2), \
+ MAKE_RGB(0x38,0x34,0xB3), MAKE_RGB(0x49,0x45,0xC4), MAKE_RGB(0x5A,0x56,0xD5), MAKE_RGB(0x6B,0x67,0xE6), \
+ MAKE_RGB(0x7C,0x78,0xF7), MAKE_RGB(0x8D,0x89,0xFE), MAKE_RGB(0x9E,0x9A,0xFE), MAKE_RGB(0xAF,0xAB,0xFE), \
+ MAKE_RGB(0xC0,0xBC,0xFE), MAKE_RGB(0xD1,0xCD,0xFE), MAKE_RGB(0xE2,0xDE,0xFE), MAKE_RGB(0xF3,0xEF,0xFE )
+
+define NTSC_BLUE2
+ MAKE_RGB(0x00,0x03,0x5B), MAKE_RGB(0x00,0x14,0x71), MAKE_RGB(0x00,0x25,0x87), MAKE_RGB(0x0C,0x36,0x9A), \
+ MAKE_RGB(0x1D,0x47,0xAB), MAKE_RGB(0x2E,0x58,0xBC), MAKE_RGB(0x3F,0x69,0xCD), MAKE_RGB(0x50,0x7A,0xDE), \
+ MAKE_RGB(0x61,0x8B,0xEF), MAKE_RGB(0x72,0x9C,0xFF), MAKE_RGB(0x83,0xAD,0xFF), MAKE_RGB(0x94,0xBE,0xFF), \
+ MAKE_RGB(0xA5,0xCF,0xFF), MAKE_RGB(0xB6,0xE0,0xFF), MAKE_RGB(0xC7,0xF1,0xFF), MAKE_RGB(0xD8,0xFF,0xFF )
+
+define NTSC_LIGHT_BLUE
+ MAKE_RGB(0x00,0x15,0x35), MAKE_RGB(0x00,0x26,0x4B), MAKE_RGB(0x00,0x37,0x61), MAKE_RGB(0x00,0x48,0x78), \
+ MAKE_RGB(0x0A,0x59,0x8B), MAKE_RGB(0x1B,0x6A,0x9C), MAKE_RGB(0x2C,0x7B,0xAD), MAKE_RGB(0x3D,0x8C,0xBE), \
+ MAKE_RGB(0x4E,0x9D,0xCF), MAKE_RGB(0x5F,0xAE,0xE0), MAKE_RGB(0x70,0xBF,0xF1), MAKE_RGB(0x81,0xD0,0xFF), \
+ MAKE_RGB(0x92,0xE1,0xFF), MAKE_RGB(0xA3,0xF2,0xFF), MAKE_RGB(0xB4,0xFF,0xFF), MAKE_RGB(0xC5,0xFF,0xFF )
+
+define NTSC_TURQUOISE
+ MAKE_RGB(0x00,0x22,0x0A), MAKE_RGB(0x00,0x33,0x19), MAKE_RGB(0x00,0x44,0x2F), MAKE_RGB(0x00,0x55,0x45), \
+ MAKE_RGB(0x04,0x66,0x5A), MAKE_RGB(0x15,0x77,0x6B), MAKE_RGB(0x26,0x88,0x7C), MAKE_RGB(0x37,0x99,0x8D), \
+ MAKE_RGB(0x48,0xAA,0x9E), MAKE_RGB(0x59,0xBB,0xAF), MAKE_RGB(0x6A,0xCC,0xC0), MAKE_RGB(0x7B,0xDD,0xD1), \
+ MAKE_RGB(0x8C,0xEE,0xE2), MAKE_RGB(0x9D,0xFF,0xF3), MAKE_RGB(0xAE,0xFF,0xFF), MAKE_RGB(0xBF,0xFF,0xFF )
+
+define NTSC_GREEN_BLUE
+ MAKE_RGB(0x00,0x27,0x0C), MAKE_RGB(0x00,0x38,0x11), MAKE_RGB(0x00,0x49,0x16), MAKE_RGB(0x00,0x5A,0x1B), \
+ MAKE_RGB(0x0D,0x6B,0x25), MAKE_RGB(0x1E,0x7C,0x36), MAKE_RGB(0x2F,0x8D,0x47), MAKE_RGB(0x40,0x9E,0x58), \
+ MAKE_RGB(0x51,0xAF,0x69), MAKE_RGB(0x62,0xC0,0x7A), MAKE_RGB(0x73,0xD1,0x8B), MAKE_RGB(0x84,0xE2,0x9C), \
+ MAKE_RGB(0x95,0xF3,0xAD), MAKE_RGB(0xA6,0xFF,0xBD), MAKE_RGB(0xB7,0xFF,0xC9), MAKE_RGB(0xC8,0xFF,0xD4 )
+
+define NTSC_GREEN
+ MAKE_RGB(0x00,0x24,0x0B), MAKE_RGB(0x00,0x35,0x10), MAKE_RGB(0x01,0x46,0x15), MAKE_RGB(0x12,0x57,0x15), \
+ MAKE_RGB(0x23,0x68,0x15), MAKE_RGB(0x34,0x79,0x15), MAKE_RGB(0x45,0x8A,0x19), MAKE_RGB(0x56,0x9B,0x2A), \
+ MAKE_RGB(0x67,0xAC,0x3B), MAKE_RGB(0x78,0xBD,0x4C), MAKE_RGB(0x89,0xCE,0x5D), MAKE_RGB(0x9A,0xDF,0x6E), \
+ MAKE_RGB(0xAB,0xF0,0x7F), MAKE_RGB(0xBC,0xFF,0x8F), MAKE_RGB(0xCD,0xFF,0x9B), MAKE_RGB(0xDE,0xFF,0xA7 )
+
+define NTSC_YELLOW_GREEN
+ MAKE_RGB(0x00,0x18,0x07), MAKE_RGB(0x00,0x29,0x0C), MAKE_RGB(0x1E,0x3A,0x08), MAKE_RGB(0x2F,0x4B,0x08), \
+ MAKE_RGB(0x40,0x5C,0x08), MAKE_RGB(0x51,0x6D,0x08), MAKE_RGB(0x62,0x7E,0x08), MAKE_RGB(0x73,0x8F,0x0D), \
+ MAKE_RGB(0x84,0xA0,0x1E), MAKE_RGB(0x95,0xB1,0x2F), MAKE_RGB(0xA6,0xC2,0x40), MAKE_RGB(0xB7,0xD3,0x51), \
+ MAKE_RGB(0xC8,0xE4,0x62), MAKE_RGB(0xD9,0xF5,0x73), MAKE_RGB(0xEA,0xFF,0x82), MAKE_RGB(0xFB,0xFF,0x8E )
+
+define NTSC_ORANGE_GREEN
+ MAKE_RGB(0x1B,0x07,0x00), MAKE_RGB(0x2C,0x18,0x00), MAKE_RGB(0x3D,0x29,0x00), MAKE_RGB(0x4E,0x3A,0x00), \
+ MAKE_RGB(0x5F,0x4B,0x00), MAKE_RGB(0x70,0x5C,0x00), MAKE_RGB(0x81,0x6D,0x00), MAKE_RGB(0x92,0x7E,0x09), \
+ MAKE_RGB(0xA3,0x8F,0x1A), MAKE_RGB(0xB4,0xA0,0x2B), MAKE_RGB(0xC5,0xB1,0x3C), MAKE_RGB(0xD6,0xC2,0x4D), \
+ MAKE_RGB(0xE7,0xD3,0x5E), MAKE_RGB(0xF8,0xE4,0x6F), MAKE_RGB(0xFF,0xF5,0x83), MAKE_RGB(0xFF,0xFF,0x97 )
+
+define NTSC_LIGHT_ORANGE
+ MAKE_RGB(0x33,0x00,0x00), MAKE_RGB(0x44,0x05,0x00), MAKE_RGB(0x55,0x16,0x00), MAKE_RGB(0x66,0x27,0x00), \
+ MAKE_RGB(0x77,0x38,0x00), MAKE_RGB(0x88,0x49,0x00), MAKE_RGB(0x99,0x5A,0x0D), MAKE_RGB(0xAA,0x6B,0x1E), \
+ MAKE_RGB(0xBB,0x7C,0x2F), MAKE_RGB(0xCC,0x8D,0x40), MAKE_RGB(0xDD,0x9E,0x51), MAKE_RGB(0xEE,0xAF,0x62), \
+ MAKE_RGB(0xFF,0xC0,0x73), MAKE_RGB(0xFF,0xD1,0x89), MAKE_RGB(0xFF,0xE2,0x9F), MAKE_RGB(0xFF,0xF3,0xB5 )
+***************************************************************************/
/* Initialise the palette */
void a7800_state::palette_init()
diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c
index 300ca135c32..3c29694e2a8 100644
--- a/src/mess/drivers/rainbow.c
+++ b/src/mess/drivers/rainbow.c
@@ -2,8 +2,22 @@
DEC Rainbow 100
- Driver-in-progress by R. Belmont and Miodrag Milanovic
+ Driver-in-progress by R. Belmont and Miodrag Milanovic with additions by Karl-Ludwig Deisenhofer.
+ STATE AS OF SEPTEMBER 2013
+ --------------------------
+ - FATAL: keyboard emulation needs love (inhibits the system from booting with ERROR 50 on cold or ERROR 13 on warm boot).
+ - NOT WORKING: serial (ERROR 60)
+ - NOT WORKING: printer interface (ERROR 40).
+
+ - NON-CRITICAL: NVRAM currently saves changes instantly. A switch to EEPROM (load, store...) might be in order.
+ - NON-CRITICAL: no code for W18 (DSR) jumper.
+ - NON-CRITICAL: watchdog logic not implemented. MHFLU - ERROR 16 indicated hardware problems or (most often) software crashes on real hardware.
+
+ - FUTURE IMPROVEMENTS (=> DIP switches currently disabled):
+ * Color graphics option (NEC 7220)
+ * Extended communication option ( = Bundle option ?)
+
Meaning of Diagnostics LEDs (from PC100ESV1.PDF found, e.g.,
on ftp://ftp.update.uu.se/pub/rainbow/doc/rainbow-docs/
@@ -122,6 +136,10 @@ public:
m_inp2(*this, "W14"),
m_inp3(*this, "W15"),
m_inp4(*this, "W18"),
+ m_inp5(*this, "BUNDLE OPTION"),
+ m_inp6(*this, "FLOPPY CONTROLLER"),
+ m_inp7(*this, "GRAPHICS OPTION"),
+ m_inp8(*this, "MEMORY PRESENT"),
m_beep(*this, "beeper"),
m_crtc(*this, "vt100_video"),
@@ -139,7 +157,10 @@ public:
required_ioport m_inp2;
required_ioport m_inp3;
required_ioport m_inp4;
-
+ required_ioport m_inp5;
+ required_ioport m_inp6;
+ required_ioport m_inp7;
+ required_ioport m_inp8;
required_device<beep_device> m_beep;
@@ -162,12 +183,14 @@ public:
DECLARE_READ8_MEMBER(diagnostic_r);
DECLARE_WRITE8_MEMBER(diagnostic_w);
+ DECLARE_READ8_MEMBER(comm_control_r);
DECLARE_WRITE8_MEMBER(comm_control_w);
DECLARE_READ8_MEMBER(share_z80_r);
DECLARE_WRITE8_MEMBER(share_z80_w);
DECLARE_READ8_MEMBER(floating_bus_r);
+ DECLARE_WRITE8_MEMBER(floating_bus_w);
// EMULATOR TRAP TO INTERCEPT KEYBOARD cmd in AH and PARAMETER in AL (port 90 = AL / port 91 = AH)
// TODO: beeper and led handling should better be handled by LK201 code.
@@ -190,6 +213,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(kbd_rxready_w);
DECLARE_WRITE_LINE_MEMBER(kbd_txready_w);
+ bool m_COLDBOOT;
+
bool m_zflip; // Z80 alternate memory map with A15 inverted
bool m_z80_halted;
bool m_kbd_tx_ready, m_kbd_rx_ready;
@@ -211,7 +236,8 @@ public:
};
void rainbow_state::machine_start()
-{
+{ m_COLDBOOT = true;
+
save_item(NAME(m_z80_private));
save_item(NAME(m_z80_mailbox));
save_item(NAME(m_8088_mailbox));
@@ -252,8 +278,10 @@ static ADDRESS_MAP_START( rainbow8088_map, AS_PROGRAM, 8, rainbow_state)
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(0x00000, 0x0ffff) AM_RAM AM_SHARE("sh_ram")
AM_RANGE(0x10000, 0x1ffff) AM_RAM
- AM_RANGE(0x20000, 0xdffff) AM_READ(floating_bus_r) // test at f4e1c
- AM_RANGE(0x20000, 0x3ffff) AM_RAM
+
+ // test at f4e00 - f4e1c
+ AM_RANGE(0x20000, 0xdffff) AM_READWRITE(floating_bus_r,floating_bus_w)
+ AM_RANGE(0x20000, 0xdffff) AM_RAM
// TODO: handle shadowing 100% correctly.
// PDF says there is a 256 x 4 bit NVRAM from 0xed000 to 0xed040.
@@ -274,8 +302,8 @@ static ADDRESS_MAP_START( rainbow8088_io , AS_IO, 8, rainbow_state)
AM_RANGE (0x00, 0x00) AM_READWRITE(i8088_latch_r, i8088_latch_w)
// 0x02 Communication status / control register (8088)
- AM_RANGE (0x02, 0x02) AM_WRITE(comm_control_w)
-
+ AM_RANGE (0x02, 0x02) AM_READWRITE(comm_control_r, comm_control_w)
+
// 0x04 Video processor DC011
AM_RANGE (0x04, 0x04) AM_DEVWRITE("vt100_video", rainbow_video_device, dc011_w)
@@ -312,6 +340,36 @@ ADDRESS_MAP_END
/* Input ports */
static INPUT_PORTS_START( rainbow )
+ PORT_START("FLOPPY CONTROLLER")
+ PORT_DIPNAME( 0x02, 0x02, "FLOPPY CONTROLLER") PORT_TOGGLE
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x02, DEF_STR( On ) )
+
+ PORT_START("MEMORY PRESENT")
+ PORT_DIPNAME( 0xF000, 0x2000, "MEMORY PRESENT")
+ PORT_DIPSETTING( 0x2000, "128 K (BOARD DEFAULT)" ) // NOTE: 0x2000 hard coded in 'system_parameter_r'
+ PORT_DIPSETTING( 0x3000, "192 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0x4000, "256 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0x5000, "320 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0x6000, "384 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0x7000, "448 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0x8000, "512 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0x9000, "576 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0xA000, "640 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0xB000, "704 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0xC000, "768 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0xD000, "832 K (MEMORY OPTION)" )
+ PORT_DIPSETTING( 0xE000, "896 K (MEMORY OPTION)" )
+
+ PORT_START("GRAPHICS OPTION")
+ PORT_DIPNAME( 0x00, 0x00, "GRAPHICS OPTION") PORT_TOGGLE
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x04, DEF_STR( On ) )
+ PORT_START("BUNDLE OPTION")
+ PORT_DIPNAME( 0x00, 0x00, "BUNDLE OPTION") PORT_TOGGLE
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ) )
+ PORT_DIPSETTING( 0x01, DEF_STR( On ) )
+
PORT_START("W13")
PORT_DIPNAME( 0x02, 0x02, "W13") PORT_TOGGLE
PORT_DIPSETTING( 0x02, DEF_STR( Off ) )
@@ -325,8 +383,8 @@ static INPUT_PORTS_START( rainbow )
PORT_DIPSETTING( 0x08, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_START("W18")
- PORT_DIPNAME( 0x80, 0x80, "W18") PORT_TOGGLE
- PORT_DIPSETTING( 0x80, DEF_STR( Off ) )
+ PORT_DIPNAME( 0x00, 0x04, "W18") PORT_TOGGLE
+ PORT_DIPSETTING( 0x04, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
INPUT_PORTS_END
@@ -369,11 +427,28 @@ UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16
return 0;
}
+// Simulate floating bus for initial RAM detection in low ROM.
+// WANTED: is a cleaner, more compatible way feasible?
READ8_MEMBER(rainbow_state::floating_bus_r)
{
- return (offset>>16) + 2;
+ if ( m_maincpu->state_int(I8086_CS) != 0xF400)
+ return space.read_byte(offset);
+
+ if ( m_maincpu->state_int(I8086_DS) < m_inp8->read() )
+ {
+ return space.read_byte(offset);
+ } else
+ {
+ return (offset>>16) + 2;
+ }
+}
+
+WRITE8_MEMBER(rainbow_state::floating_bus_w)
+{
+ space.write_byte(offset,data);
}
+
READ8_MEMBER(rainbow_state::share_z80_r)
{
if (m_zflip)
@@ -439,8 +514,24 @@ READ8_MEMBER(rainbow_state::system_parameter_r)
B F G M
( 1 means NOT present )
*/
- // return 0x0f;
- return 0x0f - 2;
+ // Hard coded value 0x2000 - see DIP switch setup!
+ return 0x0f - m_inp5->read() - m_inp6->read() - m_inp7->read() - (
+ (m_inp8->read() > 0x2000) ? 8 : 0
+ );
+}
+
+READ8_MEMBER(rainbow_state::comm_control_r)
+{
+ // Our simple COLDBOOT flag is adequate for the initial MHFU test (at BIOS location 00A8).
+
+ // TODO: on real hardware, MHFU detection is disabled BY WRITING TO 0x10c (=> BIOS assumes power-up reset)
+ // MHFU is enabled by writing to 0x0c.
+ if (m_COLDBOOT)
+ { m_COLDBOOT = 0;
+ return ( 0x20 ); // bit 5 = watchdog detect.
+ } else {
+ return ( 0x00 ); // ERROR 16 is displayed = watchdog triggered
+ }
}
WRITE8_MEMBER(rainbow_state::comm_control_w)
@@ -759,7 +850,7 @@ static MACHINE_CONFIG_START( rainbow, rainbow_state )
MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow)
MCFG_GFXDECODE(rainbow)
MCFG_PALETTE_LENGTH(3)
- MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_green)
+ MCFG_PALETTE_INIT_OVERRIDE(driver_device, monochrome_amber)
MCFG_RAINBOW_VIDEO_ADD("vt100_video", video_interface)
/* sound hardware */
diff --git a/src/mess/layout/rainbow.lh b/src/mess/layout/rainbow.lh
new file mode 100644
index 00000000000..0bcc5657b24
--- /dev/null
+++ b/src/mess/layout/rainbow.lh
@@ -0,0 +1,195 @@
+extern const char layout_rainbow[];
+const char layout_rainbow[] =
+{
+ 0x3c,0x6d,0x61,0x6d,0x65,0x6c,0x61,0x79,0x6f,0x75,0x74,0x20,0x76,0x65,0x72,0x73,
+ 0x69,0x6f,0x6e,0x3d,0x22,0x32,0x22,0x3e,0x0d,0x0a,0x09,0x3c,0x65,0x6c,0x65,0x6d,
+ 0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,0x22,0x20,0x64,
+ 0x65,0x66,0x73,0x74,0x61,0x74,0x65,0x3d,0x22,0x30,0x22,0x3e,0x0d,0x0a,0x09,0x09,
+ 0x3c,0x64,0x69,0x73,0x6b,0x20,0x73,0x74,0x61,0x74,0x65,0x3d,0x22,0x30,0x22,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,
+ 0x22,0x30,0x2e,0x37,0x35,0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x30,0x2e,
+ 0x30,0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,0x30,0x2e,0x30,0x22,0x20,0x2f,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x64,0x69,0x73,0x6b,0x3e,0x0d,0x0a,0x09,0x09,0x3c,
+ 0x64,0x69,0x73,0x6b,0x20,0x73,0x74,0x61,0x74,0x65,0x3d,0x22,0x31,0x22,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,0x22,
+ 0x30,0x2e,0x32,0x30,0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x30,0x2e,0x30,
+ 0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,0x30,0x2e,0x30,0x22,0x20,0x2f,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x3c,0x2f,0x64,0x69,0x73,0x6b,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x65,
+ 0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3e,0x0d,0x0a,0x0d,0x0a,0x09,0x3c,0x65,0x6c,0x65,
+ 0x6d,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x31,0x22,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x3c,0x74,0x65,0x78,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,
+ 0x22,0x31,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,
+ 0x72,0x65,0x64,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,
+ 0x22,0x31,0x2e,0x30,0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,0x31,0x2e,0x30,0x22,
+ 0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x74,0x65,0x78,0x74,0x3e,0x0d,0x0a,
+ 0x09,0x3c,0x2f,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x65,
+ 0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x32,0x22,
+ 0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x74,0x65,0x78,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,
+ 0x67,0x3d,0x22,0x32,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,
+ 0x72,0x20,0x72,0x65,0x64,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x67,0x72,0x65,0x65,
+ 0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,0x31,0x2e,
+ 0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x74,0x65,0x78,0x74,0x3e,
+ 0x0d,0x0a,0x09,0x3c,0x2f,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3e,0x0d,0x0a,0x09,
+ 0x3c,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,
+ 0x33,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x74,0x65,0x78,0x74,0x20,0x73,0x74,0x72,
+ 0x69,0x6e,0x67,0x3d,0x22,0x33,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,
+ 0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x67,0x72,
+ 0x65,0x65,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,
+ 0x31,0x2e,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x74,0x65,0x78,
+ 0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3e,0x0d,
+ 0x0a,0x09,0x3c,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x3d,
+ 0x22,0x6c,0x34,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x74,0x65,0x78,0x74,0x20,0x73,
+ 0x74,0x72,0x69,0x6e,0x67,0x3d,0x22,0x34,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,
+ 0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,
+ 0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x62,0x6c,0x75,0x65,
+ 0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x74,
+ 0x65,0x78,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+ 0x3e,0x0d,0x0a,0x09,0x3c,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,0x61,0x6d,
+ 0x65,0x3d,0x22,0x6c,0x35,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x74,0x65,0x78,0x74,
+ 0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x22,0x35,0x22,0x3e,0x0d,0x0a,0x09,0x09,
+ 0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,0x22,0x31,0x2e,0x30,
+ 0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x62,0x6c,
+ 0x75,0x65,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,
+ 0x2f,0x74,0x65,0x78,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x65,0x6c,0x65,0x6d,0x65,
+ 0x6e,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x20,0x6e,
+ 0x61,0x6d,0x65,0x3d,0x22,0x6c,0x36,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x74,0x65,
+ 0x78,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x22,0x36,0x22,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,0x22,0x31,
+ 0x2e,0x30,0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,
+ 0x62,0x6c,0x75,0x65,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,
+ 0x09,0x3c,0x2f,0x74,0x65,0x78,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x65,0x6c,0x65,
+ 0x6d,0x65,0x6e,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,
+ 0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x37,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x3c,
+ 0x74,0x65,0x78,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x22,0x37,0x22,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,0x64,0x3d,
+ 0x22,0x31,0x2e,0x30,0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x31,0x2e,0x30,
+ 0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x2f,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x3c,0x2f,0x74,0x65,0x78,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x2f,0x65,
+ 0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3e,0x0d,0x0a,0x09,0x3c,0x65,0x6c,0x65,0x6d,0x65,
+ 0x6e,0x74,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x38,0x22,0x3e,0x0d,0x0a,0x09,
+ 0x09,0x3c,0x74,0x65,0x78,0x74,0x20,0x73,0x74,0x72,0x69,0x6e,0x67,0x3d,0x22,0x38,
+ 0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x63,0x6f,0x6c,0x6f,0x72,0x20,0x72,0x65,
+ 0x64,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x67,0x72,0x65,0x65,0x6e,0x3d,0x22,0x31,
+ 0x2e,0x30,0x22,0x20,0x62,0x6c,0x75,0x65,0x3d,0x22,0x31,0x2e,0x30,0x22,0x20,0x2f,
+ 0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x74,0x65,0x78,0x74,0x3e,0x0d,0x0a,0x09,0x3c,
+ 0x2f,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3e,0x0d,0x0a,0x0d,0x0a,0x0d,0x0a,0x09,
+ 0x3c,0x76,0x69,0x65,0x77,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x44,0x65,0x66,0x61,
+ 0x75,0x6c,0x74,0x20,0x4c,0x61,0x79,0x6f,0x75,0x74,0x22,0x3e,0x0d,0x0a,0x09,0x09,
+ 0x3c,0x73,0x63,0x72,0x65,0x65,0x6e,0x20,0x69,0x6e,0x64,0x65,0x78,0x3d,0x22,0x30,
+ 0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,
+ 0x3d,0x22,0x33,0x30,0x22,0x20,0x79,0x3d,0x22,0x30,0x22,0x20,0x77,0x69,0x64,0x74,
+ 0x68,0x3d,0x22,0x36,0x34,0x30,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,
+ 0x34,0x38,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x73,0x63,0x72,
+ 0x65,0x65,0x6e,0x3e,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,
+ 0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,0x31,0x22,0x20,0x65,0x6c,0x65,
+ 0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x65,0x64,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,
+ 0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x31,0x35,0x22,0x20,0x79,
+ 0x3d,0x22,0x33,0x33,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x22,
+ 0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x30,0x22,0x20,0x2f,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,
+ 0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,0x32,
+ 0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x65,0x64,0x22,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,
+ 0x31,0x35,0x22,0x20,0x79,0x3d,0x22,0x35,0x33,0x22,0x20,0x77,0x69,0x64,0x74,0x68,
+ 0x3d,0x22,0x31,0x30,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x30,
+ 0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,
+ 0x22,0x6c,0x65,0x64,0x33,0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,
+ 0x6c,0x65,0x64,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,
+ 0x73,0x20,0x78,0x3d,0x22,0x31,0x35,0x22,0x20,0x79,0x3d,0x22,0x37,0x33,0x22,0x20,
+ 0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x22,0x20,0x68,0x65,0x69,0x67,0x68,
+ 0x74,0x3d,0x22,0x31,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,
+ 0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,
+ 0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,0x34,0x22,0x20,0x65,0x6c,0x65,0x6d,
+ 0x65,0x6e,0x74,0x3d,0x22,0x6c,0x65,0x64,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,
+ 0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x31,0x35,0x22,0x20,0x79,0x3d,
+ 0x22,0x39,0x33,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x22,0x20,
+ 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,
+ 0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,0x35,0x22,
+ 0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x65,0x64,0x22,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x31,
+ 0x35,0x22,0x20,0x79,0x3d,0x22,0x31,0x31,0x33,0x22,0x20,0x77,0x69,0x64,0x74,0x68,
+ 0x3d,0x22,0x31,0x30,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x30,
+ 0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,
+ 0x22,0x6c,0x65,0x64,0x36,0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,
+ 0x6c,0x65,0x64,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,
+ 0x73,0x20,0x78,0x3d,0x22,0x31,0x35,0x22,0x20,0x79,0x3d,0x22,0x31,0x33,0x33,0x22,
+ 0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x22,0x20,0x68,0x65,0x69,0x67,
+ 0x68,0x74,0x3d,0x22,0x31,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,
+ 0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,
+ 0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,0x37,0x22,0x20,0x65,0x6c,0x65,
+ 0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x65,0x64,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,
+ 0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x31,0x35,0x22,0x20,0x79,
+ 0x3d,0x22,0x31,0x35,0x33,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,
+ 0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x30,0x22,0x20,0x2f,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,
+ 0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x65,0x64,
+ 0x38,0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x65,0x64,0x22,
+ 0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,
+ 0x22,0x31,0x35,0x22,0x20,0x79,0x3d,0x22,0x31,0x37,0x33,0x22,0x20,0x77,0x69,0x64,
+ 0x74,0x68,0x3d,0x22,0x31,0x30,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,
+ 0x31,0x30,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,
+ 0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,
+ 0x61,0x6d,0x65,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x31,0x22,0x20,0x65,0x6c,0x65,
+ 0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x31,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,
+ 0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x30,0x22,0x20,0x79,0x3d,0x22,
+ 0x33,0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x35,0x22,0x20,0x68,
+ 0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,
+ 0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,
+ 0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x32,
+ 0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x32,0x22,0x3e,0x0d,
+ 0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x30,
+ 0x22,0x20,0x79,0x3d,0x22,0x35,0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,
+ 0x31,0x35,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,
+ 0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,
+ 0x61,0x62,0x65,0x6c,0x33,0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,
+ 0x6c,0x33,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,
+ 0x20,0x78,0x3d,0x22,0x30,0x22,0x20,0x79,0x3d,0x22,0x37,0x30,0x22,0x20,0x77,0x69,
+ 0x64,0x74,0x68,0x3d,0x22,0x31,0x35,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,
+ 0x22,0x31,0x36,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,
+ 0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,
+ 0x6d,0x65,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x34,0x22,0x20,0x65,0x6c,0x65,0x6d,
+ 0x65,0x6e,0x74,0x3d,0x22,0x6c,0x34,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,
+ 0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x30,0x22,0x20,0x79,0x3d,0x22,0x39,
+ 0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x35,0x22,0x20,0x68,0x65,
+ 0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,
+ 0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,
+ 0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x35,0x22,
+ 0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x35,0x22,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x30,0x22,
+ 0x20,0x79,0x3d,0x22,0x31,0x31,0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,
+ 0x31,0x35,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,
+ 0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,
+ 0x61,0x62,0x65,0x6c,0x36,0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,
+ 0x6c,0x36,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,
+ 0x20,0x78,0x3d,0x22,0x30,0x22,0x20,0x79,0x3d,0x22,0x31,0x33,0x30,0x22,0x20,0x77,
+ 0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x35,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,
+ 0x3d,0x22,0x31,0x36,0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,
+ 0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,0x65,0x7a,0x65,0x6c,0x20,0x6e,
+ 0x61,0x6d,0x65,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,0x37,0x22,0x20,0x65,0x6c,0x65,
+ 0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x37,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x09,0x3c,
+ 0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x30,0x22,0x20,0x79,0x3d,0x22,
+ 0x31,0x35,0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x35,0x22,0x20,
+ 0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,0x22,0x20,0x2f,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x62,
+ 0x65,0x7a,0x65,0x6c,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x6c,0x61,0x62,0x65,0x6c,
+ 0x38,0x22,0x20,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x3d,0x22,0x6c,0x38,0x22,0x3e,
+ 0x0d,0x0a,0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,
+ 0x30,0x22,0x20,0x79,0x3d,0x22,0x31,0x37,0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,
+ 0x3d,0x22,0x31,0x35,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x31,0x36,
+ 0x22,0x20,0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x62,0x65,0x7a,0x65,0x6c,0x3e,
+ 0x0d,0x0a,0x09,0x3c,0x2f,0x76,0x69,0x65,0x77,0x3e,0x0d,0x0a,0x0d,0x0a,0x09,0x3c,
+ 0x76,0x69,0x65,0x77,0x20,0x6e,0x61,0x6d,0x65,0x3d,0x22,0x53,0x63,0x72,0x65,0x65,
+ 0x6e,0x20,0x4f,0x6e,0x6c,0x79,0x22,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x73,0x63,0x72,
+ 0x65,0x65,0x6e,0x20,0x69,0x6e,0x64,0x65,0x78,0x3d,0x22,0x30,0x22,0x3e,0x0d,0x0a,
+ 0x09,0x09,0x09,0x3c,0x62,0x6f,0x75,0x6e,0x64,0x73,0x20,0x78,0x3d,0x22,0x30,0x22,
+ 0x20,0x79,0x3d,0x22,0x30,0x22,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x36,0x34,
+ 0x30,0x22,0x20,0x68,0x65,0x69,0x67,0x68,0x74,0x3d,0x22,0x34,0x38,0x30,0x22,0x20,
+ 0x2f,0x3e,0x0d,0x0a,0x09,0x09,0x3c,0x2f,0x73,0x63,0x72,0x65,0x65,0x6e,0x3e,0x0d,
+ 0x0a,0x09,0x3c,0x2f,0x76,0x69,0x65,0x77,0x3e,0x0d,0x0a,0x0d,0x0a,0x3c,0x2f,0x6d,
+ 0x61,0x6d,0x65,0x6c,0x61,0x79,0x6f,0x75,0x74,0x3e,0x0d,0x0a,0x00
+};
diff --git a/src/mess/video/vtvideo.c b/src/mess/video/vtvideo.c
index bcfa4d3304f..2157e71ee4d 100644
--- a/src/mess/video/vtvideo.c
+++ b/src/mess/video/vtvideo.c
@@ -4,6 +4,22 @@
[ DC012 and DC011 emulation ]
01/05/2009 Initial implementation [Miodrag Milanovic]
+ Sept. 2013 portions by Karl-Ludwig Deisenhofer.
+
+ STATE OF DEC-100 VIDEO AS OF SEPTEMBER 2013
+ -------------------------------------------
+ - FURTHER TESTING: do line and character attributes match real hardware? Does soft scrolling work?
+ - LIKELY INCORRECT : implementation of double size attribute in 132 columns mode (additional case)
+
+ - MISSING: undocumented features of DC011 / DC012 - see public domain SQUEEZE.COM pokes:
+ 0f00 => PORT 0C;
+ 0b00 => PORT 0C;
+ 1000 => PORT 04
+ (SQUEEZE compresses the display in X and Y direction on a real DEC-100 B)
+
+ - IMPROVEMENTS:
+ - find a more realistic approach for intensity control (bold attribute)
+ - correct phosphor colors (green, white and amber monitors were common)
Copyright MESS Team.
Visit http://mamedev.org for licensing and usage restrictions.
@@ -128,8 +144,8 @@ void vt100_video_device::device_reset()
void rainbow_video_device::device_reset()
{
palette_set_color_rgb(machine(), 0, 0x00, 0x00, 0x00); // black
- palette_set_color_rgb(machine(), 1, 213, 146, 82); // ORANGE (not exact)
- palette_set_color_rgb(machine(), 2, 255, 193, 129); // ORANGE (brighter)
+ palette_set_color_rgb(machine(), 1, 213, 146, 82); // AMBER (not exact)
+ palette_set_color_rgb(machine(), 2, 255, 193, 129); // AMBER (brighter)
m_height = 24; // <---- DEC-100
m_height_MAX = 48;
@@ -464,13 +480,14 @@ void rainbow_video_device::display_char(bitmap_ind16 &bitmap, UINT8 code, int x,
if ( underline != 0 ) line = 0xff;
}
- // TODO: verify if basic attribute behaves the same on DEC-100
+ // Code to handle basic attribute from VT-100
if ( m_basic_attribute == 1 )
{
- {
- line = line ^ 0xff;
+ if ((code & 0x80) == 0x80)
+ invert = 1;
+ else
+ invert = 0;
}
- }
if (m_blink_flip_flop > 0)
{