mirror of
https://github.com/holub/mame
synced 2025-06-03 19:36:26 +03:00
De-legacy the z80pio device.
This commit is contained in:
parent
1f5354f403
commit
41ff565a92
@ -210,6 +210,52 @@ void z80pio_device::z80daisy_irq_reti()
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// READ/WRITE HANDLERS
|
||||
//**************************************************************************
|
||||
|
||||
//-------------------------------------------------
|
||||
// read - register read
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_MEMBER( z80pio_device::read )
|
||||
{
|
||||
int index = BIT(offset, 0);
|
||||
return BIT(offset, 1) ? control_read() : data_read(index);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// write - register write
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER( z80pio_device::write )
|
||||
{
|
||||
int index = BIT(offset, 0);
|
||||
BIT(offset, 1) ? control_write(index, data) : data_write(index, data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// read_alt - register read
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_MEMBER( z80pio_device::read_alt )
|
||||
{
|
||||
int index = BIT(offset, 1);
|
||||
return BIT(offset, 0) ? control_read() : data_read(index);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// write_alt - register write
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_MEMBER( z80pio_device::write_alt )
|
||||
{
|
||||
int index = BIT(offset, 1);
|
||||
BIT(offset, 0) ? control_write(index, data) : data_write(index, data);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// DEVICE-LEVEL IMPLEMENTATION
|
||||
//**************************************************************************
|
||||
@ -774,71 +820,3 @@ void z80pio_device::pio_port::data_write(UINT8 data)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// GLOBAL STUBS
|
||||
//**************************************************************************
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_c_r ) { return downcast<z80pio_device *>(device)->control_read(); }
|
||||
WRITE8_DEVICE_HANDLER( z80pio_c_w ) { downcast<z80pio_device *>(device)->control_write(offset & 1, data); }
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_d_r ) { return downcast<z80pio_device *>(device)->data_read(offset & 1); }
|
||||
WRITE8_DEVICE_HANDLER( z80pio_d_w ) { downcast<z80pio_device *>(device)->data_write(offset & 1, data); }
|
||||
|
||||
READ_LINE_DEVICE_HANDLER( z80pio_ardy_r ) { return downcast<z80pio_device *>(device)->rdy(z80pio_device::PORT_A); }
|
||||
READ_LINE_DEVICE_HANDLER( z80pio_brdy_r ) { return downcast<z80pio_device *>(device)->rdy(z80pio_device::PORT_B); }
|
||||
|
||||
WRITE_LINE_DEVICE_HANDLER( z80pio_astb_w ) { downcast<z80pio_device *>(device)->strobe(z80pio_device::PORT_A, state ? true : false); }
|
||||
WRITE_LINE_DEVICE_HANDLER( z80pio_bstb_w ) { downcast<z80pio_device *>(device)->strobe(z80pio_device::PORT_B, state ? true : false); }
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_pa_r ) { return downcast<z80pio_device *>(device)->port_read(z80pio_device::PORT_A); }
|
||||
READ8_DEVICE_HANDLER( z80pio_pb_r ) { return downcast<z80pio_device *>(device)->port_read(z80pio_device::PORT_B); }
|
||||
|
||||
WRITE8_DEVICE_HANDLER( z80pio_pa_w ) { downcast<z80pio_device *>(device)->port_write(z80pio_device::PORT_A, data); }
|
||||
WRITE8_DEVICE_HANDLER( z80pio_pb_w ) { downcast<z80pio_device *>(device)->port_write(z80pio_device::PORT_B, data); }
|
||||
|
||||
//-------------------------------------------------
|
||||
// z80pio_cd_ba_r - register read
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_cd_ba_r )
|
||||
{
|
||||
int index = BIT(offset, 0);
|
||||
|
||||
return BIT(offset, 1) ? z80pio_c_r(device, index) : z80pio_d_r(device, index);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// z80pio_cd_ba_w - register write
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_DEVICE_HANDLER( z80pio_cd_ba_w )
|
||||
{
|
||||
int index = BIT(offset, 0);
|
||||
|
||||
BIT(offset, 1) ? z80pio_c_w(device, index, data) : z80pio_d_w(device, index, data);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// z80pio_ba_cd_r - register read
|
||||
//-------------------------------------------------
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_ba_cd_r )
|
||||
{
|
||||
int index = BIT(offset, 1);
|
||||
|
||||
return BIT(offset, 0) ? z80pio_c_r(device, index) : z80pio_d_r(device, index);
|
||||
}
|
||||
|
||||
//-------------------------------------------------
|
||||
// z80pio_ba_cd_w - register write
|
||||
//-------------------------------------------------
|
||||
|
||||
WRITE8_DEVICE_HANDLER( z80pio_ba_cd_w )
|
||||
{
|
||||
int index = BIT(offset, 1);
|
||||
|
||||
BIT(offset, 0) ? z80pio_c_w(device, index, data) : z80pio_d_w(device, index, data);
|
||||
}
|
||||
|
@ -91,18 +91,40 @@ public:
|
||||
// I/O line access
|
||||
int rdy(int which) { return m_port[which].rdy(); }
|
||||
void strobe(int which, bool state) { m_port[which].strobe(state); }
|
||||
DECLARE_READ_LINE_MEMBER( rdy_a ) { return rdy(PORT_A); }
|
||||
DECLARE_READ_LINE_MEMBER( rdy_b ) { return rdy(PORT_B); }
|
||||
DECLARE_WRITE_LINE_MEMBER( strobe_a ) { strobe(PORT_A, state); }
|
||||
DECLARE_WRITE_LINE_MEMBER( strobe_b ) { strobe(PORT_B, state); }
|
||||
|
||||
// control register I/O
|
||||
UINT8 control_read();
|
||||
void control_write(int offset, UINT8 data) { m_port[offset & 1].control_write(data); }
|
||||
void control_a_write(UINT8 data) { control_write(PORT_A, data); }
|
||||
void control_b_write(UINT8 data) { control_write(PORT_B, data); }
|
||||
|
||||
// data register I/O
|
||||
UINT8 data_read(int offset) { return m_port[offset & 1].data_read(); }
|
||||
void data_write(int offset, UINT8 data) { m_port[offset & 1].data_write(data); }
|
||||
UINT8 data_a_read() { return data_read(PORT_A); }
|
||||
UINT8 data_b_read() { return data_read(PORT_B); }
|
||||
void data_a_write(UINT8 data) { data_write(PORT_A, data); }
|
||||
void data_b_write(UINT8 data) { data_write(PORT_B, data); }
|
||||
|
||||
// port I/O
|
||||
UINT8 port_read(int offset) { return m_port[offset & 1].read(); }
|
||||
void port_write(int offset, UINT8 data) { m_port[offset & 1].write(data); }
|
||||
UINT8 port_a_read() { return port_read(PORT_A); }
|
||||
UINT8 port_b_read() { return port_read(PORT_B); }
|
||||
void port_a_write(UINT8 data) { port_write(PORT_A, data); }
|
||||
void port_b_write(UINT8 data) { port_write(PORT_B, data); }
|
||||
|
||||
// standard read/write, with C/D in bit 1, B/A in bit 0
|
||||
DECLARE_READ8_MEMBER( read );
|
||||
DECLARE_WRITE8_MEMBER( write );
|
||||
|
||||
// alternate read/write, with C/D in bit 0, B/A in bit 1
|
||||
DECLARE_READ8_MEMBER( read_alt );
|
||||
DECLARE_WRITE8_MEMBER( write_alt );
|
||||
|
||||
private:
|
||||
// device-level overrides
|
||||
@ -183,39 +205,4 @@ private:
|
||||
extern const device_type Z80PIO;
|
||||
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// FUNCTION PROTOTYPES
|
||||
//**************************************************************************
|
||||
|
||||
// control register access
|
||||
READ8_DEVICE_HANDLER( z80pio_c_r );
|
||||
WRITE8_DEVICE_HANDLER( z80pio_c_w );
|
||||
|
||||
// data register access
|
||||
READ8_DEVICE_HANDLER( z80pio_d_r );
|
||||
WRITE8_DEVICE_HANDLER( z80pio_d_w );
|
||||
|
||||
// register access
|
||||
READ8_DEVICE_HANDLER( z80pio_cd_ba_r );
|
||||
WRITE8_DEVICE_HANDLER( z80pio_cd_ba_w );
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_ba_cd_r );
|
||||
WRITE8_DEVICE_HANDLER( z80pio_ba_cd_w );
|
||||
|
||||
// port access
|
||||
READ8_DEVICE_HANDLER( z80pio_pa_r );
|
||||
WRITE8_DEVICE_HANDLER( z80pio_pa_w );
|
||||
|
||||
READ8_DEVICE_HANDLER( z80pio_pb_r );
|
||||
WRITE8_DEVICE_HANDLER( z80pio_pb_w );
|
||||
|
||||
// ready
|
||||
READ_LINE_DEVICE_HANDLER( z80pio_ardy_r );
|
||||
READ_LINE_DEVICE_HANDLER( z80pio_brdy_r );
|
||||
|
||||
// strobe
|
||||
WRITE_LINE_DEVICE_HANDLER( z80pio_astb_w );
|
||||
WRITE_LINE_DEVICE_HANDLER( z80pio_bstb_w );
|
||||
|
||||
#endif
|
||||
|
@ -751,10 +751,10 @@ ADDRESS_MAP_END
|
||||
static ADDRESS_MAP_START( ipu_91695_portmap, AS_IO, 8, mcr_state )
|
||||
ADDRESS_MAP_UNMAP_HIGH
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x03) AM_MIRROR(0xe0) AM_DEVREADWRITE_LEGACY("ipu_pio0", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x00, 0x03) AM_MIRROR(0xe0) AM_DEVREADWRITE("ipu_pio0", z80pio_device, read, write)
|
||||
AM_RANGE(0x04, 0x07) AM_MIRROR(0xe0) AM_DEVREADWRITE_LEGACY("ipu_sio", z80sio_cd_ba_r, z80sio_cd_ba_w)
|
||||
AM_RANGE(0x08, 0x0b) AM_MIRROR(0xe0) AM_DEVREADWRITE("ipu_ctc", z80ctc_device, read, write)
|
||||
AM_RANGE(0x0c, 0x0f) AM_MIRROR(0xe0) AM_DEVREADWRITE_LEGACY("ipu_pio1", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x0c, 0x0f) AM_MIRROR(0xe0) AM_DEVREADWRITE("ipu_pio1", z80pio_device, read, write)
|
||||
AM_RANGE(0x10, 0x13) AM_MIRROR(0xe0) AM_WRITE(mcr_ipu_laserdisk_w)
|
||||
AM_RANGE(0x1c, 0x1f) AM_MIRROR(0xe0) AM_READWRITE(mcr_ipu_watchdog_r, mcr_ipu_watchdog_w)
|
||||
ADDRESS_MAP_END
|
||||
|
@ -130,13 +130,16 @@ class meritm_state : public driver_device
|
||||
public:
|
||||
meritm_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag),
|
||||
m_z80pio_0(*this, "z80pio_0"),
|
||||
m_z80pio_1(*this, "z80pio_1"),
|
||||
m_v9938_0(*this, "v9938_0"),
|
||||
m_v9938_1(*this, "v9938_1"),
|
||||
m_microtouch(*this, "microtouch") { }
|
||||
|
||||
DECLARE_WRITE8_MEMBER(microtouch_tx);
|
||||
UINT8* m_ram;
|
||||
device_t *m_z80pio[2];
|
||||
required_device<z80pio_device> m_z80pio_0;
|
||||
required_device<z80pio_device> m_z80pio_1;
|
||||
int m_vint;
|
||||
int m_interrupt_vdp0_state;
|
||||
int m_interrupt_vdp1_state;
|
||||
@ -603,8 +606,8 @@ static ADDRESS_MAP_START( meritm_crt250_io_map, AS_IO, 8, meritm_state )
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("v9938_0", v9938_device, read, write)
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("v9938_1", v9938_device, read, write)
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_LEGACY("z80pio_0", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE_LEGACY("z80pio_1", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("z80pio_0", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("z80pio_1", z80pio_device, read, write)
|
||||
AM_RANGE(0x80, 0x80) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
|
||||
AM_RANGE(0xff, 0xff) AM_WRITE(meritm_crt250_bank_w)
|
||||
@ -615,8 +618,8 @@ static ADDRESS_MAP_START( meritm_crt250_crt258_io_map, AS_IO, 8, meritm_state )
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("v9938_0", v9938_device, read, write)
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("v9938_1", v9938_device, read, write)
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_LEGACY("z80pio_0", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE_LEGACY("z80pio_1", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("z80pio_0", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("z80pio_1", z80pio_device, read, write)
|
||||
AM_RANGE(0x60, 0x67) AM_READWRITE_LEGACY(pc16552d_0_r,pc16552d_0_w)
|
||||
AM_RANGE(0x80, 0x80) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
|
||||
@ -636,8 +639,8 @@ static ADDRESS_MAP_START( meritm_io_map, AS_IO, 8, meritm_state )
|
||||
AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("v9938_0", v9938_device, read, write)
|
||||
AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("v9938_1", v9938_device, read, write)
|
||||
AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_LEGACY("z80pio_0", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE_LEGACY("z80pio_1", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x40, 0x43) AM_DEVREADWRITE("z80pio_0", z80pio_device, read, write)
|
||||
AM_RANGE(0x50, 0x53) AM_DEVREADWRITE("z80pio_1", z80pio_device, read, write)
|
||||
AM_RANGE(0x60, 0x67) AM_READWRITE_LEGACY(pc16552d_0_r,pc16552d_0_w)
|
||||
AM_RANGE(0x80, 0x80) AM_DEVREAD_LEGACY("aysnd", ay8910_r)
|
||||
AM_RANGE(0x80, 0x81) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w)
|
||||
@ -984,13 +987,11 @@ static const z80_daisy_config meritm_daisy_chain[] =
|
||||
static MACHINE_START(merit_common)
|
||||
{
|
||||
meritm_state *state = machine.driver_data<meritm_state>();
|
||||
state->m_z80pio[0] = machine.device( "z80pio_0" );
|
||||
state->m_z80pio[1] = machine.device( "z80pio_1" );
|
||||
|
||||
z80pio_astb_w(state->m_z80pio[0], 1);
|
||||
z80pio_bstb_w(state->m_z80pio[0], 1);
|
||||
z80pio_astb_w(state->m_z80pio[1], 1);
|
||||
z80pio_bstb_w(state->m_z80pio[1], 1);
|
||||
state->m_z80pio_0->strobe_a(1);
|
||||
state->m_z80pio_0->strobe_b(1);
|
||||
state->m_z80pio_1->strobe_a(1);
|
||||
state->m_z80pio_1->strobe_b(1);
|
||||
};
|
||||
|
||||
static MACHINE_START(meritm_crt250)
|
||||
@ -1049,7 +1050,7 @@ static TIMER_DEVICE_CALLBACK( vblank_start_tick )
|
||||
meritm_state *state = timer.machine().driver_data<meritm_state>();
|
||||
/* this is a workaround to signal the v9938 vblank interrupt correctly */
|
||||
state->m_vint = 0x08;
|
||||
z80pio_pa_w(state->m_z80pio[0], 0, state->m_vint);
|
||||
state->m_z80pio_0->port_a_write(state->m_vint);
|
||||
}
|
||||
|
||||
static TIMER_DEVICE_CALLBACK( vblank_end_tick )
|
||||
@ -1057,7 +1058,7 @@ static TIMER_DEVICE_CALLBACK( vblank_end_tick )
|
||||
meritm_state *state = timer.machine().driver_data<meritm_state>();
|
||||
/* this is a workaround to signal the v9938 vblank interrupt correctly */
|
||||
state->m_vint = 0x18;
|
||||
z80pio_pa_w(state->m_z80pio[0], 0, state->m_vint);
|
||||
state->m_z80pio_0->port_a_write(state->m_vint);
|
||||
}
|
||||
|
||||
static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
|
||||
|
@ -48,30 +48,30 @@ public:
|
||||
DECLARE_WRITE8_MEMBER( sio_w2 ) { z80sio_cd_ba_w(m_z80sio, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( sio_w3 ) { z80sio_cd_ba_w(m_z80sio, 3, data); }
|
||||
|
||||
DECLARE_WRITE8_MEMBER( pio1_w0 ) { z80pio_cd_ba_w(m_z80pio_1, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w1 ) { z80pio_cd_ba_w(m_z80pio_1, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w2 ) { z80pio_cd_ba_w(m_z80pio_1, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w3 ) { z80pio_cd_ba_w(m_z80pio_1, 3, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w0 ) { m_z80pio_1->write(space, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w1 ) { m_z80pio_1->write(space, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w2 ) { m_z80pio_1->write(space, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio1_w3 ) { m_z80pio_1->write(space, 3, data); }
|
||||
|
||||
DECLARE_WRITE8_MEMBER( pio2_w0 ) { z80pio_cd_ba_w(m_z80pio_2, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w1 ) { z80pio_cd_ba_w(m_z80pio_2, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w2 ) { z80pio_cd_ba_w(m_z80pio_2, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w3 ) { z80pio_cd_ba_w(m_z80pio_2, 3, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w0 ) { m_z80pio_2->write(space, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w1 ) { m_z80pio_2->write(space, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w2 ) { m_z80pio_2->write(space, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio2_w3 ) { m_z80pio_2->write(space, 3, data); }
|
||||
|
||||
DECLARE_WRITE8_MEMBER( pio3_w0 ) { z80pio_cd_ba_w(m_z80pio_3, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w1 ) { z80pio_cd_ba_w(m_z80pio_3, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w2 ) { z80pio_cd_ba_w(m_z80pio_3, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w3 ) { z80pio_cd_ba_w(m_z80pio_3, 3, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w0 ) { m_z80pio_3->write(space, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w1 ) { m_z80pio_3->write(space, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w2 ) { m_z80pio_3->write(space, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio3_w3 ) { m_z80pio_3->write(space, 3, data); }
|
||||
|
||||
DECLARE_WRITE8_MEMBER( pio4_w0 ) { z80pio_cd_ba_w(m_z80pio_4, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w1 ) { z80pio_cd_ba_w(m_z80pio_4, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w2 ) { z80pio_cd_ba_w(m_z80pio_4, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w3 ) { z80pio_cd_ba_w(m_z80pio_4, 3, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w0 ) { m_z80pio_4->write(space, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w1 ) { m_z80pio_4->write(space, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w2 ) { m_z80pio_4->write(space, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio4_w3 ) { m_z80pio_4->write(space, 3, data); }
|
||||
|
||||
DECLARE_WRITE8_MEMBER( pio5_w0 ) { z80pio_cd_ba_w(m_z80pio_5, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w1 ) { z80pio_cd_ba_w(m_z80pio_5, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w2 ) { z80pio_cd_ba_w(m_z80pio_5, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w3 ) { z80pio_cd_ba_w(m_z80pio_5, 3, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w0 ) { m_z80pio_5->write(space, 0, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w1 ) { m_z80pio_5->write(space, 1, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w2 ) { m_z80pio_5->write(space, 2, data); }
|
||||
DECLARE_WRITE8_MEMBER( pio5_w3 ) { m_z80pio_5->write(space, 3, data); }
|
||||
|
||||
DECLARE_READ8_MEMBER( ay_r0 ) { return ay8910_r(m_ay, 0); }
|
||||
|
||||
@ -85,30 +85,30 @@ public:
|
||||
DECLARE_READ8_MEMBER( sio_r2 ) { return z80sio_cd_ba_r(m_z80sio, 2); }
|
||||
DECLARE_READ8_MEMBER( sio_r3 ) { return z80sio_cd_ba_r(m_z80sio, 3); }
|
||||
|
||||
DECLARE_READ8_MEMBER( pio1_r0 ) { return z80pio_cd_ba_r(m_z80pio_1, 0); }
|
||||
DECLARE_READ8_MEMBER( pio1_r1 ) { return z80pio_cd_ba_r(m_z80pio_1, 1); }
|
||||
DECLARE_READ8_MEMBER( pio1_r2 ) { return z80pio_cd_ba_r(m_z80pio_1, 2); }
|
||||
DECLARE_READ8_MEMBER( pio1_r3 ) { return z80pio_cd_ba_r(m_z80pio_1, 3); }
|
||||
DECLARE_READ8_MEMBER( pio1_r0 ) { return m_z80pio_1->read(space, 0); }
|
||||
DECLARE_READ8_MEMBER( pio1_r1 ) { return m_z80pio_1->read(space, 1); }
|
||||
DECLARE_READ8_MEMBER( pio1_r2 ) { return m_z80pio_1->read(space, 2); }
|
||||
DECLARE_READ8_MEMBER( pio1_r3 ) { return m_z80pio_1->read(space, 3); }
|
||||
|
||||
DECLARE_READ8_MEMBER( pio2_r0 ) { return z80pio_cd_ba_r(m_z80pio_2, 0); }
|
||||
DECLARE_READ8_MEMBER( pio2_r1 ) { return z80pio_cd_ba_r(m_z80pio_2, 1); }
|
||||
DECLARE_READ8_MEMBER( pio2_r2 ) { return z80pio_cd_ba_r(m_z80pio_2, 2); }
|
||||
DECLARE_READ8_MEMBER( pio2_r3 ) { return z80pio_cd_ba_r(m_z80pio_2, 3); }
|
||||
DECLARE_READ8_MEMBER( pio2_r0 ) { return m_z80pio_2->read(space, 0); }
|
||||
DECLARE_READ8_MEMBER( pio2_r1 ) { return m_z80pio_2->read(space, 1); }
|
||||
DECLARE_READ8_MEMBER( pio2_r2 ) { return m_z80pio_2->read(space, 2); }
|
||||
DECLARE_READ8_MEMBER( pio2_r3 ) { return m_z80pio_2->read(space, 3); }
|
||||
|
||||
DECLARE_READ8_MEMBER( pio3_r0 ) { return z80pio_cd_ba_r(m_z80pio_3, 0); }
|
||||
DECLARE_READ8_MEMBER( pio3_r1 ) { return z80pio_cd_ba_r(m_z80pio_3, 1); }
|
||||
DECLARE_READ8_MEMBER( pio3_r2 ) { return z80pio_cd_ba_r(m_z80pio_3, 2); }
|
||||
DECLARE_READ8_MEMBER( pio3_r3 ) { return z80pio_cd_ba_r(m_z80pio_3, 3); }
|
||||
DECLARE_READ8_MEMBER( pio3_r0 ) { return m_z80pio_3->read(space, 0); }
|
||||
DECLARE_READ8_MEMBER( pio3_r1 ) { return m_z80pio_3->read(space, 1); }
|
||||
DECLARE_READ8_MEMBER( pio3_r2 ) { return m_z80pio_3->read(space, 2); }
|
||||
DECLARE_READ8_MEMBER( pio3_r3 ) { return m_z80pio_3->read(space, 3); }
|
||||
|
||||
DECLARE_READ8_MEMBER( pio4_r0 ) { return z80pio_cd_ba_r(m_z80pio_4, 0); }
|
||||
DECLARE_READ8_MEMBER( pio4_r1 ) { return z80pio_cd_ba_r(m_z80pio_4, 1); }
|
||||
DECLARE_READ8_MEMBER( pio4_r2 ) { return z80pio_cd_ba_r(m_z80pio_4, 2); }
|
||||
DECLARE_READ8_MEMBER( pio4_r3 ) { return z80pio_cd_ba_r(m_z80pio_4, 3); }
|
||||
DECLARE_READ8_MEMBER( pio4_r0 ) { return m_z80pio_4->read(space, 0); }
|
||||
DECLARE_READ8_MEMBER( pio4_r1 ) { return m_z80pio_4->read(space, 1); }
|
||||
DECLARE_READ8_MEMBER( pio4_r2 ) { return m_z80pio_4->read(space, 2); }
|
||||
DECLARE_READ8_MEMBER( pio4_r3 ) { return m_z80pio_4->read(space, 3); }
|
||||
|
||||
DECLARE_READ8_MEMBER( pio5_r0 ) { return z80pio_cd_ba_r(m_z80pio_5, 0); }
|
||||
DECLARE_READ8_MEMBER( pio5_r1 ) { return z80pio_cd_ba_r(m_z80pio_5, 1); }
|
||||
DECLARE_READ8_MEMBER( pio5_r2 ) { return z80pio_cd_ba_r(m_z80pio_5, 2); }
|
||||
DECLARE_READ8_MEMBER( pio5_r3 ) { return z80pio_cd_ba_r(m_z80pio_5, 3); }
|
||||
DECLARE_READ8_MEMBER( pio5_r0 ) { return m_z80pio_5->read(space, 0); }
|
||||
DECLARE_READ8_MEMBER( pio5_r1 ) { return m_z80pio_5->read(space, 1); }
|
||||
DECLARE_READ8_MEMBER( pio5_r2 ) { return m_z80pio_5->read(space, 2); }
|
||||
DECLARE_READ8_MEMBER( pio5_r3 ) { return m_z80pio_5->read(space, 3); }
|
||||
|
||||
protected:
|
||||
|
||||
|
@ -104,12 +104,12 @@ WRITE8_MEMBER(senjyo_state::flip_screen_w)
|
||||
|
||||
WRITE8_MEMBER(senjyo_state::sound_cmd_w)
|
||||
{
|
||||
device_t *device = machine().device("z80pio");
|
||||
z80pio_device *device = machine().device<z80pio_device>("z80pio");
|
||||
|
||||
m_sound_cmd = data;
|
||||
|
||||
z80pio_astb_w(device, 0);
|
||||
z80pio_astb_w(device, 1);
|
||||
device->strobe_a(0);
|
||||
device->strobe_a(1);
|
||||
}
|
||||
|
||||
WRITE8_MEMBER(senjyo_state::senjyo_paletteram_w)
|
||||
@ -174,7 +174,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( senjyo_sound_io_map, AS_IO, 8, senjyo_state )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("z80pio", z80pio_ba_cd_r, z80pio_ba_cd_w)
|
||||
AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("z80pio", z80pio_device, read_alt, write_alt)
|
||||
AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE("z80ctc", z80ctc_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
@ -760,7 +760,7 @@ static ADDRESS_MAP_START( system1_pio_io_map, AS_IO, 8, system1_state )
|
||||
AM_RANGE(0x0c, 0x0c) AM_MIRROR(0x02) AM_READ_PORT("SWA") /* DIP2 */
|
||||
AM_RANGE(0x0d, 0x0d) AM_MIRROR(0x02) AM_READ_PORT("SWB") /* DIP1 some games read it from here... */
|
||||
AM_RANGE(0x10, 0x10) AM_MIRROR(0x03) AM_READ_PORT("SWB") /* DIP1 ... and some others from here but there are games which check BOTH! */
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE_LEGACY("pio", z80pio_cd_ba_r, z80pio_cd_ba_w)
|
||||
AM_RANGE(0x18, 0x1b) AM_DEVREADWRITE("pio", z80pio_device, read, write)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user