(MESS) VK100: tag cleanup

This commit is contained in:
Jonathan Gevaryahu 2013-01-30 23:57:46 +00:00
parent 9de1534f04
commit 14a120be2a

View File

@ -137,10 +137,28 @@ public:
m_screen(*this, "screen"), m_screen(*this, "screen"),
m_crtc(*this, "crtc"), m_crtc(*this, "crtc"),
m_speaker(*this, BEEPER_TAG), m_speaker(*this, BEEPER_TAG),
m_uart(*this, "i8251")//, m_uart(*this, "i8251"),
//m_i8251_rx_timer(NULL), //m_i8251_rx_timer(NULL),
//m_i8251_tx_timer(NULL), //m_i8251_tx_timer(NULL),
//m_sync_timer(NULL) //m_sync_timer(NULL),
m_col0(*this, "COL0"),
m_col1(*this, "COL1"),
m_col2(*this, "COL2"),
m_col3(*this, "COL3"),
m_col4(*this, "COL4"),
m_col5(*this, "COL5"),
m_col6(*this, "COL6"),
m_col7(*this, "COL7"),
m_col8(*this, "COL8"),
m_col9(*this, "COL9"),
m_cola(*this, "COLA"),
m_colb(*this, "COLB"),
m_colc(*this, "COLC"),
m_cold(*this, "COLD"),
m_cole(*this, "COLE"),
m_colf(*this, "COLF"),
m_capsshift(*this, "CAPSSHIFT"),
m_dipsw(*this, "SWITCHES")
{ } { }
required_device<cpu_device> m_maincpu; required_device<cpu_device> m_maincpu;
required_device<screen_device> m_screen; required_device<screen_device> m_screen;
@ -150,6 +168,24 @@ public:
//required_device<> m_i8251_rx_timer; //required_device<> m_i8251_rx_timer;
//required_device<> m_i8251_tx_timer; //required_device<> m_i8251_tx_timer;
//required_device<> m_sync_timer; //required_device<> m_sync_timer;
required_ioport m_col0;
required_ioport m_col1;
required_ioport m_col2;
required_ioport m_col3;
required_ioport m_col4;
required_ioport m_col5;
required_ioport m_col6;
required_ioport m_col7;
required_ioport m_col8;
required_ioport m_col9;
required_ioport m_cola;
required_ioport m_colb;
required_ioport m_colc;
required_ioport m_cold;
required_ioport m_cole;
required_ioport m_colf;
required_ioport m_capsshift;
required_ioport m_dipsw;
UINT8* m_vram; UINT8* m_vram;
UINT8* m_trans; UINT8* m_trans;
@ -496,7 +532,7 @@ WRITE8_MEMBER(vk100_state::KBDW)
to mask their own dividers on custom ordered chips if desired. to mask their own dividers on custom ordered chips if desired.
* The COM8116(T)/8136(T) came it at least 4 mask rom types meant for different * The COM8116(T)/8136(T) came it at least 4 mask rom types meant for different
input clocks: input clocks:
-000 or no mark for 5.0688Mhz (which exactly matches the table below) -000 or no mark for 5.0688Mhz (which exactly matches the table below) (synertek sy2661-3 also matches this exactly)
-003 is for 6.01835MHz -003 is for 6.01835MHz
-005 is for 4.915200Mhz -005 is for 4.915200Mhz
-006 is for 5.0688Mhz but omits the 2000 baud entry, instead has 200, -006 is for 5.0688Mhz but omits the 2000 baud entry, instead has 200,
@ -569,7 +605,7 @@ READ8_MEMBER(vk100_state::SYSTAT_A)
#ifdef SYSTAT_A_VERBOSE #ifdef SYSTAT_A_VERBOSE
if (m_maincpu->pc() != 0x31D) logerror("0x%04X: SYSTAT_A Read!\n", m_maincpu->pc()); if (m_maincpu->pc() != 0x31D) logerror("0x%04X: SYSTAT_A Read!\n", m_maincpu->pc());
#endif #endif
return ((m_vgGO?0:1)<<7)|(vram_read(machine())<<3)|(((ioport("SWITCHES")->read()>>dipswitchLUT[offset])&1)?0x4:0)|(m_vsync?0x2:0); return ((m_vgGO?0:1)<<7)|(vram_read(machine())<<3)|(((m_dipsw->read()>>dipswitchLUT[offset])&1)?0x4:0)|(m_vsync?0x2:0);
} }
/* port 0x48: "SYSTAT B"; NOT documented in the tech manual at all. /* port 0x48: "SYSTAT B"; NOT documented in the tech manual at all.
@ -601,7 +637,9 @@ READ8_MEMBER(vk100_state::vk100_keyboard_column_r)
UINT8 code; UINT8 code;
char kbdcol[8]; char kbdcol[8];
sprintf(kbdcol,"COL%X", (offset&0xF)); sprintf(kbdcol,"COL%X", (offset&0xF));
code = ioport(kbdcol)->read() | ioport("CAPSSHIFT")->read(); ioport_port* col_array[16] = { m_col0, m_col1, m_col2, m_col3, m_col4, m_col5, m_col6, m_col7,
m_col8, m_col9, m_cola, m_colb, m_colc, m_cold, m_cole, m_colf };
code = col_array[offset&0xF]->read() | m_capsshift->read();
#ifdef KBD_VERBOSE #ifdef KBD_VERBOSE
logerror("Keyboard column %X read, returning %02X\n", offset&0xF, code); logerror("Keyboard column %X read, returning %02X\n", offset&0xF, code);
#endif #endif
@ -658,7 +696,7 @@ ADDRESS_MAP_END
*/ */
static ADDRESS_MAP_START(vk100_io, AS_IO, 8, vk100_state) static ADDRESS_MAP_START(vk100_io, AS_IO, 8, vk100_state)
ADDRESS_MAP_UNMAP_HIGH ADDRESS_MAP_UNMAP_HIGH
//ADDRESS_MAP_GLOBAL_MASK(0x7f) // guess, probably correct ADDRESS_MAP_GLOBAL_MASK(0x7f) // guess, probably correct
AM_RANGE(0x00, 0x00) AM_MIRROR(0xBE) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0x00, 0x00) AM_MIRROR(0xBE) AM_DEVWRITE("crtc", mc6845_device, address_w)
AM_RANGE(0x01, 0x01) AM_MIRROR(0xBE) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w) AM_RANGE(0x01, 0x01) AM_MIRROR(0xBE) AM_DEVREADWRITE("crtc", mc6845_device, register_r, register_w)
// Comments are from page 118 (5-14) of http://web.archive.org/web/20091015205827/http://www.computer.museum.uq.edu.au/pdf/EK-VK100-TM-001%20VK100%20Technical%20Manual.pdf // Comments are from page 118 (5-14) of http://web.archive.org/web/20091015205827/http://www.computer.museum.uq.edu.au/pdf/EK-VK100-TM-001%20VK100%20Technical%20Manual.pdf
@ -720,7 +758,7 @@ static INPUT_PORTS_START( vk100 )
PORT_BIT(0x3f, IP_ACTIVE_HIGH, IPT_UNUSED) PORT_BIT(0x3f, IP_ACTIVE_HIGH, IPT_UNUSED)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT) PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift") PORT_CODE(KEYCODE_LSHIFT) PORT_CODE(KEYCODE_RSHIFT)
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_TOGGLE PORT_NAME("Caps lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_TOGGLE PORT_NAME("Caps lock") PORT_CODE(KEYCODE_CAPSLOCK)
PORT_START("COL0") PORT_START("COL0")
PORT_BIT(0x1f, IP_ACTIVE_LOW, IPT_UNUSED) PORT_BIT(0x1f, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) // row 0 bit 6 is always low, checked by keyboard test PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_UNUSED) // row 0 bit 6 is always low, checked by keyboard test
PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED) // all rows have these bits left low to save a mask op later PORT_BIT(0xc0, IP_ACTIVE_HIGH, IPT_UNUSED) // all rows have these bits left low to save a mask op later
@ -1004,15 +1042,14 @@ MACHINE_CONFIG_END
/* according to http://www.computer.museum.uq.edu.au/pdf/EK-VK100-TM-001%20VK100%20Technical%20Manual.pdf /* according to http://www.computer.museum.uq.edu.au/pdf/EK-VK100-TM-001%20VK100%20Technical%20Manual.pdf
page 5-10 (pdf pg 114), The 4 firmware roms should go from 0x0000-0x1fff, page 5-10 (pdf pg 114), The 4 firmware roms should go from 0x0000-0x1fff,
0x2000-0x3fff, 0x4000-0x5fff and 0x6000-0x63ff; The last rom is actually a 0x2000-0x3fff, 0x4000-0x5fff and 0x6000-0x63ff; The last rom is actually a
little bit longer and goes to 6fff. The data goes 6000-67ff and the 6800-6ff little bit longer and goes to 67ff.
area is blank.
*/ */
ROM_START( vk100 ) ROM_START( vk100 )
ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
ROM_LOAD( "23-031e4-00.rom1.e53", 0x0000, 0x2000, CRC(c8596398) SHA1(a8dc833dcdfb7550c030ac3d4143e266b1eab03a)) ROM_LOAD( "23-031e4-00.rom1.e53", 0x0000, 0x2000, CRC(c8596398) SHA1(a8dc833dcdfb7550c030ac3d4143e266b1eab03a))
ROM_LOAD( "23-017e4-00.rom2.e52", 0x2000, 0x2000, CRC(e857a01e) SHA1(914b2c51c43d0d181ffb74e3ea59d74e70ab0813)) ROM_LOAD( "23-017e4-00.rom2.e52", 0x2000, 0x2000, CRC(e857a01e) SHA1(914b2c51c43d0d181ffb74e3ea59d74e70ab0813))
ROM_LOAD( "23-018e4-00.rom3.e51", 0x4000, 0x2000, CRC(b3e7903b) SHA1(8ad6ed25cd9b04a9968aa09ab69ba526d35ca550)) ROM_LOAD( "23-018e4-00.rom3.e51", 0x4000, 0x2000, CRC(b3e7903b) SHA1(8ad6ed25cd9b04a9968aa09ab69ba526d35ca550))
ROM_LOAD( "23-190e2-00.rom4.e50", 0x6000, 0x1000, CRC(ad596fa5) SHA1(b30a24155640d32c1b47a3a16ea33cd8df2624f6)) ROM_LOAD( "23-190e2-00.rom4.e50", 0x6000, 0x1000, CRC(ad596fa5) SHA1(b30a24155640d32c1b47a3a16ea33cd8df2624f6)) // probably an overdump, e2 implies the size is 0x800 not 0x1000, and the end is all blank
ROM_REGION( 0x8000, "vram", ROMREGION_ERASE00 ) // 32k of vram ROM_REGION( 0x8000, "vram", ROMREGION_ERASE00 ) // 32k of vram