diff --git a/src/mame/drivers/model1.cpp b/src/mame/drivers/model1.cpp index a6959b7ba58..03f6c5ccf7b 100644 --- a/src/mame/drivers/model1.cpp +++ b/src/mame/drivers/model1.cpp @@ -968,6 +968,38 @@ void model1_state::model1_comm_mem(address_map &map) map(0xb01002, 0xb01002).rw(m_m1comm, FUNC(m1comm_device::fg_r), FUNC(m1comm_device::fg_w)); } +static INPUT_PORTS_START( ioboard_dipswitches ) + PORT_START("ioboard:dsw1") + PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW1:1") + PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW1:2") + PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW1:3") + PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW1:4") + PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW1:5") + PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW1:6") + PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW1:7") + PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW1:8") + + PORT_START("ioboard:dsw2") + PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW2:1") + PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW2:2") + PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW2:3") + PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW2:4") + PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW2:5") + PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW2:6") + PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW2:7") + PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW2:8") + + PORT_START("ioboard:dsw3") + PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW3:1") + PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW3:2") + PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW3:3") + PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW3:4") + PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW3:5") + PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW3:6") + PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW3:7") + PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW3:8") +INPUT_PORTS_END + static INPUT_PORTS_START( vf ) PORT_START("IN.0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 ) @@ -998,6 +1030,8 @@ static INPUT_PORTS_START( vf ) PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_JOYSTICK_UP ) PORT_PLAYER(2) PORT_8WAY PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT ) PORT_PLAYER(2) PORT_8WAY PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT ) PORT_PLAYER(2) PORT_8WAY + + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END static INPUT_PORTS_START( vr ) @@ -1033,6 +1067,7 @@ static INPUT_PORTS_START( vr ) PORT_START("BRAKE") PORT_BIT( 0xff, 0x30, IPT_PEDAL2 ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END static INPUT_PORTS_START( swa ) @@ -1070,6 +1105,8 @@ static INPUT_PORTS_START( swa ) PORT_START("STICK2Y") PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_MINMAX(27,227) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_PLAYER(2) + + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END static INPUT_PORTS_START( wingwar ) @@ -1102,35 +1139,7 @@ static INPUT_PORTS_START( wingwar ) PORT_START("THROTTLE") PORT_BIT( 0xff, 0x01, IPT_PEDAL ) PORT_MINMAX(1,0xff) PORT_SENSITIVITY(100) PORT_KEYDELTA(16) - PORT_START("ioboard:dsw1") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW1:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW1:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW1:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW1:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW1:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW1:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW1:8") - - PORT_START("ioboard:dsw2") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW2:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW2:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW2:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW2:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW2:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW2:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW2:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW2:8") - - PORT_START("ioboard:dsw3") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW3:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW3:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW3:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW3:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW3:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW3:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW3:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW3:8") + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END static INPUT_PORTS_START( wingwar360 ) @@ -1170,35 +1179,7 @@ static INPUT_PORTS_START( netmerc ) PORT_START("STICKY") PORT_BIT( 0xff, 0x7f, IPT_AD_STICK_Y ) PORT_SENSITIVITY(100) PORT_KEYDELTA(4) PORT_REVERSE - PORT_START("ioboard:dsw1") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW1:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW1:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW1:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW1:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW1:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW1:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW1:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW1:8") - - PORT_START("ioboard:dsw2") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW2:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW2:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW2:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW2:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW2:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW2:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW2:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW2:8") - - PORT_START("ioboard:dsw3") - PORT_DIPUNKNOWN_DIPLOC(0x01, 0x01, "DSW3:1") - PORT_DIPUNKNOWN_DIPLOC(0x02, 0x02, "DSW3:2") - PORT_DIPUNKNOWN_DIPLOC(0x04, 0x04, "DSW3:3") - PORT_DIPUNKNOWN_DIPLOC(0x08, 0x08, "DSW3:4") - PORT_DIPUNKNOWN_DIPLOC(0x10, 0x10, "DSW3:5") - PORT_DIPUNKNOWN_DIPLOC(0x20, 0x20, "DSW3:6") - PORT_DIPUNKNOWN_DIPLOC(0x40, 0x40, "DSW3:7") - PORT_DIPUNKNOWN_DIPLOC(0x80, 0x80, "DSW3:8") + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END @@ -1785,6 +1766,7 @@ MACHINE_CONFIG_START(model1_state::swa) model1_hle(config); MCFG_DEVICE_MODIFY("ioboard") + MCFG_DEVICE_BIOS("epr14869b"); MCFG_MODEL1IO_AN0_CB(IOPORT("STICK1X")) MCFG_MODEL1IO_AN1_CB(IOPORT("STICK1Y")) MCFG_MODEL1IO_AN2_CB(IOPORT("THROTTLE")) diff --git a/src/mame/drivers/model2.cpp b/src/mame/drivers/model2.cpp index 0aede45d5d0..8800163efe5 100644 --- a/src/mame/drivers/model2.cpp +++ b/src/mame/drivers/model2.cpp @@ -1689,6 +1689,38 @@ static INPUT_PORTS_START( model2 ) PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_PLAYER(2) INPUT_PORTS_END +static INPUT_PORTS_START( ioboard_dipswitches ) + PORT_START("ioboard:dsw1") + PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW1:1") + PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW1:2") + PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW1:3") + PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW1:4") + PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW1:5") + PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW1:6") + PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW1:7") + PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW1:8") + + PORT_START("ioboard:dsw2") + PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW2:1") + PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW2:2") + PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW2:3") + PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW2:4") + PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW2:5") + PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW2:6") + PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW2:7") + PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW2:8") + + PORT_START("ioboard:dsw3") + PORT_DIPUNUSED_DIPLOC(0x01, 0x01, "DSW3:1") + PORT_DIPUNUSED_DIPLOC(0x02, 0x02, "DSW3:2") + PORT_DIPUNUSED_DIPLOC(0x04, 0x04, "DSW3:3") + PORT_DIPUNUSED_DIPLOC(0x08, 0x08, "DSW3:4") + PORT_DIPUNUSED_DIPLOC(0x10, 0x10, "DSW3:5") + PORT_DIPUNUSED_DIPLOC(0x20, 0x20, "DSW3:6") + PORT_DIPUNUSED_DIPLOC(0x40, 0x40, "DSW3:7") + PORT_DIPUNUSED_DIPLOC(0x80, 0x80, "DSW3:8") +INPUT_PORTS_END + static INPUT_PORTS_START( gears ) PORT_START("GEARS") // fake to handle gear bits PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_BUTTON1) PORT_NAME("GEAR N") @@ -1724,6 +1756,8 @@ static INPUT_PORTS_START( daytona ) PORT_START("BRAKE") PORT_BIT(0xff, 0x00, IPT_PEDAL2) PORT_SENSITIVITY(30) PORT_KEYDELTA(10) + + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END static INPUT_PORTS_START( desert ) @@ -1752,6 +1786,8 @@ static INPUT_PORTS_START( desert ) PORT_START("BRAKE") PORT_BIT(0xff, 0x00, IPT_AD_STICK_Y) PORT_SENSITIVITY(60) PORT_KEYDELTA(20) + + PORT_INCLUDE(ioboard_dipswitches) INPUT_PORTS_END static INPUT_PORTS_START( vcop ) @@ -1764,7 +1800,7 @@ static INPUT_PORTS_START( vcop ) PORT_MODIFY("IN2") PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_UNUSED) - PORT_DIPNAME(0x02, 0x02, "No enemies") PORT_DIPLOCATION("DEBUG:1") + PORT_DIPNAME(0x02, 0x02, "No Enemies") // I/O board connector CN5 PORT_DIPSETTING( 0x02, DEF_STR( Off )) PORT_DIPSETTING( 0x00, DEF_STR( On )) PORT_BIT(0xfc, IP_ACTIVE_LOW, IPT_UNUSED) @@ -1780,6 +1816,16 @@ static INPUT_PORTS_START( vcop ) PORT_START("P2_Y") PORT_BIT(0x3ff, 0x0e8, IPT_LIGHTGUN_Y) PORT_CROSSHAIR(Y, 1.0, 0.0, 0) PORT_MINMAX(0x027, 0x1a9) PORT_SENSITIVITY(50) PORT_KEYDELTA(10) PORT_PLAYER(2) + + PORT_INCLUDE(ioboard_dipswitches) + + PORT_MODIFY("ioboard:dsw1") + PORT_DIPNAME(0x80, 0x80, "Reloading") PORT_DIPLOCATION("DSW1:8") + PORT_DIPSETTING( 0x80, "Normal") + PORT_DIPSETTING( 0x00, "Auto Reload") + PORT_DIPNAME(0x40, 0x40, "Enemy Character") PORT_DIPLOCATION("DSW1:7") + PORT_DIPSETTING( 0x40, "Normal") + PORT_DIPSETTING( 0x00, "Robot") INPUT_PORTS_END INPUT_PORTS_START( vf2 ) diff --git a/src/mame/machine/model1io.cpp b/src/mame/machine/model1io.cpp index 855e35403e4..eb3bf7449cf 100644 --- a/src/mame/machine/model1io.cpp +++ b/src/mame/machine/model1io.cpp @@ -2,7 +2,7 @@ // copyright-holders: Dirk Best /*************************************************************************** - Sega Model 1/2 I/O Board + Sega Model 1 I/O Board I/O PCB @@ -85,17 +85,17 @@ void model1io_device::mem_map(address_map &map) // input_ports - device-specific input ports //------------------------------------------------- -static INPUT_PORTS_START( model1io ) +static INPUT_PORTS_START( ioboard_buttons ) PORT_START("buttons") - PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 0") - PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 1") - PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 2") - PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 3") + PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 0 (SW4)") + PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 1 (SW5)") + PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 2 (SW6)") + PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_OTHER) PORT_NAME("Board 3 (SW7)") INPUT_PORTS_END ioport_constructor model1io_device::device_input_ports() const { - return INPUT_PORTS_NAME(model1io); + return INPUT_PORTS_NAME(ioboard_buttons); } //------------------------------------------------- @@ -110,7 +110,7 @@ ROM_START( model1io ) ROM_SYSTEM_BIOS(0, "epr14869", "EPR-14869") ROMX_LOAD("epr-14869.25", 0x0000, 0x10000, CRC(6187cd7a) SHA1(b65fdd0ad31794a565a0ca4dc67a3f16b329fd71), ROM_BIOS(1)) - // Virtua Fighter (837-8936) + // Virtua Fighter (837-8936), Star Wars Arcade ROM_SYSTEM_BIOS(1, "epr14869b", "EPR-14869B") ROMX_LOAD("epr-14869b.25", 0x0000, 0x10000, CRC(2d093304) SHA1(af0fe245eb9fa3c3c60e4b685f1e779f83d894f9), ROM_BIOS(2)) @@ -134,7 +134,7 @@ MACHINE_CONFIG_START( model1io_device::device_add_mconfig ) MCFG_EEPROM_SERIAL_93C46_ADD("eeprom") // 93C45 - MCFG_DEVICE_ADD("io", SEGA_315_5338A, 0) + MCFG_DEVICE_ADD("io", SEGA_315_5338A, 32_MHz_XTAL) MCFG_315_5338A_READ_CB(READ8(*this, model1io_device, io_r)) MCFG_315_5338A_WRITE_CB(WRITE8(*this, model1io_device, io_w)) MCFG_315_5338A_OUT_PA_CB(WRITE8(*this, model1io_device, io_pa_w)) @@ -159,15 +159,16 @@ MACHINE_CONFIG_END //************************************************************************** //------------------------------------------------- -// m1io_device - constructor +// model1io_device - constructor //------------------------------------------------- model1io_device::model1io_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, SEGA_MODEL1IO, tag, owner, clock), m_eeprom(*this, "eeprom"), m_buttons(*this, "buttons"), + m_dsw(*this, "dsw%u", 1U), m_read_cb(*this), m_write_cb(*this), - m_in_cb{ {*this}, {*this}, {*this}, {*this}, {*this}, {*this} }, + m_in_cb{ {*this}, {*this}, {*this} }, m_drive_read_cb(*this), m_drive_write_cb(*this), m_an_cb{ {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this}, {*this} }, m_output_cb(*this), @@ -185,7 +186,7 @@ void model1io_device::device_start() m_read_cb.resolve_safe(0xff); m_write_cb.resolve_safe(); - for (unsigned i = 0; i < 6; i++) + for (unsigned i = 0; i < 3; i++) m_in_cb[i].resolve_safe(0xff); m_drive_read_cb.resolve_safe(0xff); @@ -195,6 +196,9 @@ void model1io_device::device_start() m_an_cb[i].resolve_safe(0xff); m_output_cb.resolve_safe(); + + // register for save states + save_item(NAME(m_secondary_controls)); } @@ -217,10 +221,10 @@ WRITE8_MEMBER( model1io_device::io_pa_w ) // 7------- eeprom clk // -6------ eeprom cs // --5----- eeprom di - // ---4---- eeprom related (0 on reads, 1 on writes) - // ----32-- unknown (not used?) - // ------1- led? set to 1 in startup, after eeprom written to ram - // -------0 control panel switch (0 = first, 1 = second) + // ---4---- eeprom pe + // ----32-- not used + // ------1- led2 + // -------0 control switch (0 = first, 1 = second) m_eeprom->clk_write(BIT(data, 7) ? ASSERT_LINE : CLEAR_LINE); m_eeprom->di_write(BIT(data, 5)); @@ -231,17 +235,17 @@ WRITE8_MEMBER( model1io_device::io_pa_w ) READ8_MEMBER( model1io_device::io_pb_r ) { - return m_secondary_controls ? m_in_cb[3](0) : m_in_cb[0](0); + return m_secondary_controls ? m_dsw[0]->read() : m_in_cb[0](0); } READ8_MEMBER( model1io_device::io_pc_r ) { - return m_secondary_controls ? m_in_cb[4](0) : m_in_cb[1](0); + return m_secondary_controls ? m_dsw[1]->read() : m_in_cb[1](0); } READ8_MEMBER( model1io_device::io_pd_r ) { - return m_secondary_controls ? m_in_cb[5](0) : m_in_cb[2](0); + return m_secondary_controls ? m_dsw[2]->read() : m_in_cb[2](0); } READ8_MEMBER( model1io_device::io_pe_r ) @@ -262,11 +266,12 @@ WRITE8_MEMBER( model1io_device::io_pf_w ) READ8_MEMBER( model1io_device::io_pg_r ) { // 7------- eeprom do - // -654---- unknown - // ----3--- button board 3 - // -----2-- button board 2 - // ------1- button board 1 - // -------0 button board 0 + // -6------ eeprom nc + // --54---- not used + // ----3--- button board 3 (sw7) + // -----2-- button board 2 (sw6) + // ------1- button board 1 (sw5) + // -------0 button board 0 (sw4) uint8_t data = 0; @@ -277,6 +282,7 @@ READ8_MEMBER( model1io_device::io_pg_r ) return data; } +// analog port switching is handled by two 74hc4066 analog switches ioport_value model1io_device::analog0_r() { return m_secondary_controls ? m_an_cb[4](0) : m_an_cb[0](0); diff --git a/src/mame/machine/model1io.h b/src/mame/machine/model1io.h index acb2fe5bae9..78434ff5adb 100644 --- a/src/mame/machine/model1io.h +++ b/src/mame/machine/model1io.h @@ -37,15 +37,6 @@ #define MCFG_MODEL1IO_IN2_CB(_devcb) \ devcb = &downcast(*device).set_in_callback(DEVCB_##_devcb, 2); -#define MCFG_MODEL1IO_IN3_CB(_devcb) \ - devcb = &downcast(*device).set_in_callback(DEVCB_##_devcb, 3); - -#define MCFG_MODEL1IO_IN4_CB(_devcb) \ - devcb = &downcast(*device).set_in_callback(DEVCB_##_devcb, 4); - -#define MCFG_MODEL1IO_IN5_CB(_devcb) \ - devcb = &downcast(*device).set_in_callback(DEVCB_##_devcb, 5); - #define MCFG_MODEL1IO_DRIVE_READ_CB(_devcb) \ devcb = &downcast(*device).set_drive_read_callback(DEVCB_##_devcb); @@ -124,6 +115,7 @@ protected: private: required_device m_eeprom; required_ioport m_buttons; + required_ioport_array<3> m_dsw; DECLARE_READ8_MEMBER(io_r); DECLARE_WRITE8_MEMBER(io_w); @@ -144,7 +136,7 @@ private: devcb_read8 m_read_cb; devcb_write8 m_write_cb; - devcb_read8 m_in_cb[6]; + devcb_read8 m_in_cb[3]; devcb_read8 m_drive_read_cb; devcb_write8 m_drive_write_cb; devcb_read8 m_an_cb[8];