mirror of
https://github.com/holub/mame
synced 2025-07-03 09:06:08 +03:00
model1io: Various updates
- Map the 3 dip switches, remove bogus IN3, IN4 and IN5 callbacks - Set swa to use epr14869b - Clock for 315_5338A - Add missing save state variable - Update comments - Document vcop dip switch settings
This commit is contained in:
parent
53b791f756
commit
c0dff0ebcb
@ -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"))
|
||||
|
@ -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 )
|
||||
|
@ -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);
|
||||
|
@ -37,15 +37,6 @@
|
||||
#define MCFG_MODEL1IO_IN2_CB(_devcb) \
|
||||
devcb = &downcast<model1io_device &>(*device).set_in_callback(DEVCB_##_devcb, 2);
|
||||
|
||||
#define MCFG_MODEL1IO_IN3_CB(_devcb) \
|
||||
devcb = &downcast<model1io_device &>(*device).set_in_callback(DEVCB_##_devcb, 3);
|
||||
|
||||
#define MCFG_MODEL1IO_IN4_CB(_devcb) \
|
||||
devcb = &downcast<model1io_device &>(*device).set_in_callback(DEVCB_##_devcb, 4);
|
||||
|
||||
#define MCFG_MODEL1IO_IN5_CB(_devcb) \
|
||||
devcb = &downcast<model1io_device &>(*device).set_in_callback(DEVCB_##_devcb, 5);
|
||||
|
||||
#define MCFG_MODEL1IO_DRIVE_READ_CB(_devcb) \
|
||||
devcb = &downcast<model1io_device &>(*device).set_drive_read_callback(DEVCB_##_devcb);
|
||||
|
||||
@ -124,6 +115,7 @@ protected:
|
||||
private:
|
||||
required_device<eeprom_serial_93cxx_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];
|
||||
|
Loading…
Reference in New Issue
Block a user