summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/drivers')
-rw-r--r--src/mess/drivers/mac.c2
-rw-r--r--src/mess/drivers/megadriv.c22
-rw-r--r--src/mess/drivers/segapico.c33
3 files changed, 26 insertions, 31 deletions
diff --git a/src/mess/drivers/mac.c b/src/mess/drivers/mac.c
index 56a4c7f95a8..5ba63ada537 100644
--- a/src/mess/drivers/mac.c
+++ b/src/mess/drivers/mac.c
@@ -202,7 +202,7 @@ READ8_MEMBER( mac_state::mac_sonora_vctl_r )
if (offset == 2)
{
// printf("Sonora: read monitor ID at PC=%x\n", m_maincpu->pc());
- return (m_montype->read_safe(6)<<4);
+ return ((m_montype ? m_montype->read() : 6)<<4);
}
return m_sonora_vctl[offset];
diff --git a/src/mess/drivers/megadriv.c b/src/mess/drivers/megadriv.c
index 34e17a29190..63164a11d0f 100644
--- a/src/mess/drivers/megadriv.c
+++ b/src/mess/drivers/megadriv.c
@@ -54,14 +54,14 @@ READ8_MEMBER(md_cons_state::mess_md_io_read_data_port)
{
/* here we read B, C & the additional buttons */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- (((m_io_pad6b[0][portnum]->read_safe(0) & 0x30) |
- (m_io_pad6b[1][portnum]->read_safe(0) & 0x0f)) & ~helper_6b);
+ ((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0x30) |
+ ((m_io_pad6b[1][portnum] ? m_io_pad6b[1][portnum]->read() : 0) & 0x0f)) & ~helper_6b);
}
else
{
/* here we read B, C & the directional buttons */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- ((m_io_pad6b[0][portnum]->read_safe(0) & 0x3f) & ~helper_6b);
+ (((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0x3f) & ~helper_6b);
}
}
else
@@ -70,20 +70,20 @@ READ8_MEMBER(md_cons_state::mess_md_io_read_data_port)
{
/* here we read ((Start & A) >> 2) | 0x00 */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- (((m_io_pad6b[0][portnum]->read_safe(0) & 0xc0) >> 2) & ~helper_6b);
+ ((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0xc0) >> 2) & ~helper_6b);
}
else if (m_io_stage[portnum]==2)
{
/* here we read ((Start & A) >> 2) | 0x0f */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- ((((m_io_pad6b[0][portnum]->read_safe(0) & 0xc0) >> 2) | 0x0f) & ~helper_6b);
+ (((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0xc0) >> 2) | 0x0f) & ~helper_6b);
}
else
{
/* here we read ((Start & A) >> 2) | Up and Down */
retdata = (m_megadrive_io_data_regs[portnum] & helper_6b) |
- ((((m_io_pad6b[0][portnum]->read_safe(0) & 0xc0) >> 2) |
- (m_io_pad6b[0][portnum]->read_safe(0) & 0x03)) & ~helper_6b);
+ (((((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0xc0) >> 2) |
+ ((m_io_pad6b[0][portnum] ? m_io_pad6b[0][portnum]->read() : 0) & 0x03)) & ~helper_6b);
}
}
@@ -107,14 +107,14 @@ READ8_MEMBER(md_cons_state::mess_md_io_read_data_port)
{
/* here we read B, C & the directional buttons */
retdata = (m_megadrive_io_data_regs[portnum] & helper_3b) |
- (((m_io_pad3b[portnum]->read_safe(0) & 0x3f) | 0x40) & ~helper_3b);
+ ((((m_io_pad3b[portnum] ? m_io_pad3b[portnum]->read() : 0) & 0x3f) | 0x40) & ~helper_3b);
}
else
{
/* here we read ((Start & A) >> 2) | Up and Down */
retdata = (m_megadrive_io_data_regs[portnum] & helper_3b) |
- ((((m_io_pad3b[portnum]->read_safe(0) & 0xc0) >> 2) |
- (m_io_pad3b[portnum]->read_safe(0) & 0x03) | 0x40) & ~helper_3b);
+ (((((m_io_pad3b[portnum] ? m_io_pad3b[portnum]->read() : 0) & 0xc0) >> 2) |
+ ((m_io_pad3b[portnum] ? m_io_pad3b[portnum]->read() : 0) & 0x03) | 0x40) & ~helper_3b);
}
}
@@ -311,7 +311,7 @@ MACHINE_RESET_MEMBER(md_cons_state, ms_megadriv)
// same as screen_eof_megadriv but with addition of 32x and SegaCD/MegaCD pieces
void md_cons_state::screen_eof_console(screen_device &screen, bool state)
{
- if (m_io_reset->read_safe(0x00) & 0x01)
+ if (m_io_reset && (m_io_reset->read() & 0x01))
m_maincpu->set_input_line(INPUT_LINE_RESET, PULSE_LINE);
// rising edge
diff --git a/src/mess/drivers/segapico.c b/src/mess/drivers/segapico.c
index 805aa14db7c..df93af5705b 100644
--- a/src/mess/drivers/segapico.c
+++ b/src/mess/drivers/segapico.c
@@ -130,14 +130,19 @@ class pico_base_state : public md_cons_state
public:
pico_base_state(const machine_config &mconfig, device_type type, const char *tag)
: md_cons_state(mconfig, type, tag),
- m_upd7759(*this, "7759") { }
+ m_upd7759(*this, "7759"),
+ m_io_page(*this, "PAGE"),
+ m_io_pad(*this, "PAD"),
+ m_io_penx(*this, "PENX"),
+ m_io_peny(*this, "PENY")
+ { }
optional_device<upd7759_device> m_upd7759;
- ioport_port *m_io_page;
- ioport_port *m_io_pad;
- ioport_port *m_io_penx;
- ioport_port *m_io_peny;
+ required_ioport m_io_page;
+ required_ioport m_io_pad;
+ required_ioport m_io_penx;
+ required_ioport m_io_peny;
UINT8 m_page_register;
@@ -171,13 +176,13 @@ UINT16 pico_base_state::pico_read_penpos(int pen)
switch (pen)
{
case PICO_PENX:
- penpos = m_io_penx->read_safe(0);
+ penpos = m_io_penx->read();
penpos |= 0x6;
penpos = penpos * 320 / 255;
penpos += 0x3d;
break;
case PICO_PENY:
- penpos = m_io_peny->read_safe(0);
+ penpos = m_io_peny->read();
penpos |= 0x6;
penpos = penpos * 251 / 255;
penpos += 0x1fc;
@@ -197,7 +202,7 @@ READ16_MEMBER(pico_base_state::pico_68k_io_read )
retdata = m_version_hi_nibble;
break;
case 1:
- retdata = m_io_pad->read_safe(0);
+ retdata = m_io_pad->read();
break;
/*
@@ -230,7 +235,7 @@ READ16_MEMBER(pico_base_state::pico_68k_io_read )
either page 5 or page 6 is often unused.
*/
{
- UINT8 tmp = m_io_page->read_safe(0);
+ UINT8 tmp = m_io_page->read();
if (tmp == 2 && m_page_register != 0x3f)
{
m_page_register <<= 1;
@@ -336,11 +341,6 @@ SLOT_INTERFACE_END
MACHINE_START_MEMBER(pico_state,pico)
{
- m_io_page = ioport("PAGE");
- m_io_pad = ioport("PAD");
- m_io_penx = ioport("PENX");
- m_io_peny = ioport("PENY");
-
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));
@@ -547,11 +547,6 @@ SLOT_INTERFACE_END
MACHINE_START_MEMBER(copera_state,copera)
{
- m_io_page = ioport("PAGE");
- m_io_pad = ioport("PAD");
- m_io_penx = ioport("PENX");
- m_io_peny = ioport("PENY");
-
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7fffff, read16_delegate(FUNC(base_md_cart_slot_device::read),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa13000, 0xa130ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a13),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a13),(base_md_cart_slot_device*)m_picocart));
m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xa15000, 0xa150ff, read16_delegate(FUNC(base_md_cart_slot_device::read_a15),(base_md_cart_slot_device*)m_picocart), write16_delegate(FUNC(base_md_cart_slot_device::write_a15),(base_md_cart_slot_device*)m_picocart));