+ struct arena_deleter::type>
+ {
+ using arena_storage_type = P *;
constexpr arena_deleter(arena_storage_type a = arena_storage_type()) noexcept
: m_a(a) { }
-#if 1
template::value>::type>
arena_deleter(const arena_deleter &rhs) noexcept
: m_a(rhs.m_a) { }
-#else
- template::value>::type>
- arena_deleter(const arena_deleter &rhs) : m_a(rhs.m_a) { }
-#endif
+
void operator()(T *p) noexcept
{
// call destructor
p->~T();
- getref(m_a).deallocate(p, sizeof(T));
+ m_a->deallocate(p, sizeof(T));
}
//private:
arena_storage_type m_a;
};
+ template
+ struct arena_deleter::type>
+ {
+ using arena_storage_type = P;
+
+ constexpr arena_deleter(arena_storage_type a = arena_storage_type()) noexcept
+ {
+ plib::unused_var(a);
+ }
+
+ template::value>::type>
+ arena_deleter(const arena_deleter &rhs) noexcept
+ {
+ plib::unused_var(rhs);
+ }
+
+ void operator()(T *p) noexcept
+ {
+ // call destructor
+ p->~T();
+ P::deallocate(p, sizeof(T));
+ }
+ };
+
//============================================================
// owned_ptr: smart pointer with ownership information
//============================================================
diff --git a/src/lib/netlist/plib/pmempool.h b/src/lib/netlist/plib/pmempool.h
index 72a07613315..2490913dc20 100644
--- a/src/lib/netlist/plib/pmempool.h
+++ b/src/lib/netlist/plib/pmempool.h
@@ -45,6 +45,7 @@ namespace plib {
, m_stat_cur_alloc(0)
, m_stat_max_alloc(0)
{
+ icount()++;
}
PCOPYASSIGNMOVE(mempool, delete)
@@ -62,6 +63,11 @@ namespace plib {
aligned_arena::free(b);
//::operator delete(b->m_data);
}
+ if (icount()-- == 1)
+ {
+ if (sinfo().size() != 0)
+ plib::perrlogger("Still found {} info blocks after last mempool deleted\n", sinfo().size());
+ }
}
void *allocate(size_t align, size_t size)
@@ -231,6 +237,12 @@ namespace plib {
return spinfo;
}
+ static std::size_t &icount()
+ {
+ static std::size_t count = 0;
+ return count;
+ }
+
size_t m_min_alloc;
size_t m_min_align;
diff --git a/src/lib/netlist/plib/ppreprocessor.cpp b/src/lib/netlist/plib/ppreprocessor.cpp
index 44ad423c8b7..177599da924 100644
--- a/src/lib/netlist/plib/ppreprocessor.cpp
+++ b/src/lib/netlist/plib/ppreprocessor.cpp
@@ -556,7 +556,14 @@ namespace plib {
pstring n = args.next();
if (!is_valid_token(n))
error("define expected identifier");
- if (args.next_ws() == "(")
+ auto prevdef = get_define(n);
+ if (lti.size() == 2)
+ {
+ if (prevdef != nullptr && prevdef->m_replace != "")
+ error("redefinition of " + n);
+ m_defines.insert({n, define_t(n, "")});
+ }
+ else if (args.next_ws() == "(")
{
define_t def(n);
def.m_has_params = true;
@@ -576,6 +583,8 @@ namespace plib {
while (!args.eod())
r += args.next_ws();
def.m_replace = r;
+ if (prevdef != nullptr && prevdef->m_replace != r)
+ error("redefinition of " + n);
m_defines.insert({n, def});
}
else
@@ -583,6 +592,8 @@ namespace plib {
pstring r;
while (!args.eod())
r += args.next_ws();
+ if (prevdef != nullptr && prevdef->m_replace != r)
+ error("redefinition of " + n);
m_defines.insert({n, define_t(n, r)});
}
}
diff --git a/src/lib/netlist/prg/nltool.cpp b/src/lib/netlist/prg/nltool.cpp
index b88d3a41c73..0ac02df201c 100644
--- a/src/lib/netlist/prg/nltool.cpp
+++ b/src/lib/netlist/prg/nltool.cpp
@@ -446,9 +446,10 @@ void tool_app_t::run()
opt_logs(),
m_defines, opt_rfolders(), opt_includes());
+ // Inputs must be read before reset -> will clear setup and parser
+ inps = read_input(nt.setup(), opt_inp());
nt.exec().reset();
- inps = read_input(nt.setup(), opt_inp());
ttr = netlist::netlist_time_ext::from_fp(opt_ttr());
}
diff --git a/src/lib/netlist/solver/nld_matrix_solver.cpp b/src/lib/netlist/solver/nld_matrix_solver.cpp
index 291f56100a8..11c8a60df60 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.cpp
+++ b/src/lib/netlist/solver/nld_matrix_solver.cpp
@@ -56,7 +56,7 @@ namespace solver
log().fatal(MF_ERROR_CONNECTING_1_TO_2(m_fb_sync.name(), m_Q_sync.name()));
throw nl_exception(MF_ERROR_CONNECTING_1_TO_2(m_fb_sync.name(), m_Q_sync.name()));
}
- setup_base(nets);
+ setup_base(anetlist.setup(), nets);
// now setup the matrix
setup_matrix();
@@ -67,7 +67,7 @@ namespace solver
return &state().setup().get_connected_terminal(*term)->net();
}
- void matrix_solver_t::setup_base(const analog_net_t::list_t &nets)
+ void matrix_solver_t::setup_base(setup_t &setup, const analog_net_t::list_t &nets)
{
log().debug("New solver setup\n");
std::vector step_devices;
@@ -125,7 +125,7 @@ namespace solver
net_proxy_output = net_proxy_output_u.get();
m_inps.emplace_back(std::move(net_proxy_output_u));
}
- net_proxy_output->net().add_terminal(*p);
+ setup.add_terminal(net_proxy_output->net(), *p);
// FIXME: repeated calling - kind of brute force
net_proxy_output->net().rebuild_list();
log().debug("Added input {1}", net_proxy_output->name());
@@ -581,7 +581,7 @@ namespace solver
{
log().verbose("==============================================");
log().verbose("Solver {1}", this->name());
- log().verbose(" ==> {1} nets", this->m_terms.size()); //, (*(*groups[i].first())->m_core_terms.first())->name());
+ log().verbose(" ==> {1} nets", this->m_terms.size());
log().verbose(" has {1} dynamic elements", this->dynamic_device_count());
log().verbose(" has {1} timestep elements", this->timestep_device_count());
log().verbose(" {1:6.3} average newton raphson loops",
diff --git a/src/lib/netlist/solver/nld_matrix_solver.h b/src/lib/netlist/solver/nld_matrix_solver.h
index 4d9dcbbd9af..ffecbfbe72c 100644
--- a/src/lib/netlist/solver/nld_matrix_solver.h
+++ b/src/lib/netlist/solver/nld_matrix_solver.h
@@ -304,7 +304,7 @@ namespace solver
std::size_t m_ops;
// base setup - called from constructor
- void setup_base(const analog_net_t::list_t &nets) noexcept(false);
+ void setup_base(setup_t &setup, const analog_net_t::list_t &nets) noexcept(false);
void sort_terms(matrix_sort_type_e sort);
diff --git a/src/mame/audio/alesis.cpp b/src/mame/audio/alesis.cpp
index 135a301dae7..ee62c0d6ab2 100644
--- a/src/mame/audio/alesis.cpp
+++ b/src/mame/audio/alesis.cpp
@@ -122,7 +122,7 @@ void alesis_dm3ag_device::device_timer(emu_timer &timer, device_timer_id id, int
}
}
-WRITE8_MEMBER(alesis_dm3ag_device::write)
+void alesis_dm3ag_device::write(uint8_t data)
{
if (LOG) logerror("DM3AG '%s' write: %02x\n", tag(), data);
diff --git a/src/mame/audio/cinemat.cpp b/src/mame/audio/cinemat.cpp
index e624ab6e8d5..421bb09ca30 100644
--- a/src/mame/audio/cinemat.cpp
+++ b/src/mame/audio/cinemat.cpp
@@ -1314,20 +1314,20 @@ WRITE_LINE_MEMBER(demon_state::demon_sound4_w)
}
-READ8_MEMBER(demon_state::sound_porta_r)
+uint8_t demon_state::sound_porta_r()
{
/* bits 0-3 are the sound data; bit 4 is the data ready */
return m_sound_fifo[m_sound_fifo_out] | ((m_sound_fifo_in != m_sound_fifo_out) << 4);
}
-READ8_MEMBER(demon_state::sound_portb_r)
+uint8_t demon_state::sound_portb_r()
{
return m_last_portb_write;
}
-WRITE8_MEMBER(demon_state::sound_portb_w)
+void demon_state::sound_portb_w(uint8_t data)
{
/* watch for a 0->1 edge on bit 0 ("shift out") to advance the data pointer */
if ((data & 1) != (m_last_portb_write & 1) && (data & 1) != 0)
@@ -1345,7 +1345,7 @@ WRITE8_MEMBER(demon_state::sound_portb_w)
m_last_portb_write = data;
}
-WRITE8_MEMBER(demon_state::sound_output_w)
+void demon_state::sound_output_w(uint8_t data)
{
logerror("sound_output = %02X\n", data);
}
diff --git a/src/mame/audio/jaguar.cpp b/src/mame/audio/jaguar.cpp
index c3c044e95a0..a7cabde84fe 100644
--- a/src/mame/audio/jaguar.cpp
+++ b/src/mame/audio/jaguar.cpp
@@ -261,7 +261,7 @@ WRITE16_MEMBER( jaguar_state::jerry_regs_w )
WRITE32_MEMBER( jaguar_state::dsp_flags_w )
{
/* write the data through */
- m_dsp->ctrl_w(offset, data, mem_mask);
+ m_dsp->iobus_w(offset, data, mem_mask);
/* if they were clearing the A2S interrupt, see if we are headed for the spin */
/* loop with R22 != 0; if we are, just start spinning again */
diff --git a/src/mame/audio/scramble.cpp b/src/mame/audio/scramble.cpp
index d6970d34c53..b2c6f43e029 100644
--- a/src/mame/audio/scramble.cpp
+++ b/src/mame/audio/scramble.cpp
@@ -45,7 +45,7 @@ static const int scramble_timer[10] =
0x00, 0x10, 0x20, 0x30, 0x40, 0x90, 0xa0, 0xb0, 0xa0, 0xd0
};
-READ8_MEMBER( scramble_state::scramble_portB_r )
+uint8_t scramble_state::scramble_portB_r()
{
return scramble_timer[(m_audiocpu->total_cycles()/512) % 10];
}
@@ -74,12 +74,12 @@ static const int frogger_timer[10] =
0x00, 0x10, 0x08, 0x18, 0x40, 0x90, 0x88, 0x98, 0x88, 0xd0
};
-READ8_MEMBER( scramble_state::hustler_portB_r )
+uint8_t scramble_state::hustler_portB_r()
{
return frogger_timer[(m_audiocpu->total_cycles()/512) % 10];
}
-WRITE8_MEMBER( scramble_state::scramble_sh_irqtrigger_w )
+void scramble_state::scramble_sh_irqtrigger_w(uint8_t data)
{
/* the complement of bit 3 is connected to the flip-flop's clock */
m_konami_7474->clock_w((~data & 0x08) >> 3);
@@ -88,7 +88,7 @@ WRITE8_MEMBER( scramble_state::scramble_sh_irqtrigger_w )
machine().sound().system_mute((data & 0x10) >> 4);
}
-WRITE8_MEMBER( scramble_state::mrkougar_sh_irqtrigger_w )
+void scramble_state::mrkougar_sh_irqtrigger_w(uint8_t data)
{
/* the complement of bit 3 is connected to the flip-flop's clock */
m_konami_7474->clock_w((~data & 0x08) >> 3);
@@ -114,12 +114,12 @@ WRITE_LINE_MEMBER(scramble_state::scramble_sh_7474_q_callback)
m_audiocpu->set_input_line(0, !state ? ASSERT_LINE : CLEAR_LINE);
}
-WRITE8_MEMBER(scramble_state::hotshock_sh_irqtrigger_w)
+void scramble_state::hotshock_sh_irqtrigger_w(uint8_t data)
{
m_audiocpu->set_input_line(0, ASSERT_LINE);
}
-READ8_MEMBER( scramble_state::hotshock_soundlatch_r )
+uint8_t scramble_state::hotshock_soundlatch_r()
{
m_audiocpu->set_input_line(0, CLEAR_LINE);
return m_soundlatch->read();
@@ -139,7 +139,7 @@ READ8_MEMBER(scramble_state::harem_digitalker_intr_r)
return m_digitalker->digitalker_0_intr_r();
}
-WRITE8_MEMBER(scramble_state::harem_digitalker_control_w)
+void scramble_state::harem_digitalker_control_w(uint8_t data)
{
m_digitalker->digitalker_0_cs_w (data & 1 ? ASSERT_LINE : CLEAR_LINE);
m_digitalker->digitalker_0_cms_w(data & 2 ? ASSERT_LINE : CLEAR_LINE);
diff --git a/src/mame/audio/starwars.cpp b/src/mame/audio/starwars.cpp
index 2f9074f2f56..4f590f1d45f 100644
--- a/src/mame/audio/starwars.cpp
+++ b/src/mame/audio/starwars.cpp
@@ -19,7 +19,7 @@
*
*************************************/
-READ8_MEMBER(starwars_state::r6532_porta_r)
+uint8_t starwars_state::r6532_porta_r()
{
/* Configured as follows: */
/* d7 (in) Main Ready Flag */
@@ -38,7 +38,7 @@ READ8_MEMBER(starwars_state::r6532_porta_r)
}
-WRITE8_MEMBER(starwars_state::r6532_porta_w)
+void starwars_state::r6532_porta_w(uint8_t data)
{
/* handle 5220 read */
m_tms->rsq_w((data & 2)>>1);
diff --git a/src/mame/drivers/68ksbc.cpp b/src/mame/drivers/68ksbc.cpp
index 40d635d8d35..ab7f60956ba 100644
--- a/src/mame/drivers/68ksbc.cpp
+++ b/src/mame/drivers/68ksbc.cpp
@@ -83,7 +83,7 @@ void c68ksbc_state::c68ksbc(machine_config &config)
/* ROM definition */
ROM_START( 68ksbc )
- ROM_REGION(0x1000000, "maincpu", 0)
+ ROM_REGION(0x3000, "maincpu", 0)
ROM_LOAD( "t68k.bin", 0x0000, 0x2f78, CRC(20a8d0d0) SHA1(544fd8bd8ed017115388c8b0f7a7a59a32253e43) )
ROM_END
diff --git a/src/mame/drivers/88games.cpp b/src/mame/drivers/88games.cpp
index 2672faf4087..32999e0d1e2 100644
--- a/src/mame/drivers/88games.cpp
+++ b/src/mame/drivers/88games.cpp
@@ -252,7 +252,7 @@ INPUT_PORTS_END
*
*************************************/
-WRITE8_MEMBER( _88games_state::banking_callback )
+void _88games_state::banking_callback(uint8_t data)
{
logerror("%s: bank select %02x\n", machine().describe_context(), data);
diff --git a/src/mame/drivers/a2600.cpp b/src/mame/drivers/a2600.cpp
index 5ba1f18924e..6145048bcc7 100644
--- a/src/mame/drivers/a2600.cpp
+++ b/src/mame/drivers/a2600.cpp
@@ -115,7 +115,7 @@ WRITE8_MEMBER(a2600_state::cart_over_all_w)
/* 0x300 - 0x3ff already masked out */
}
-WRITE8_MEMBER(a2600_base_state::switch_A_w)
+void a2600_base_state::switch_A_w(uint8_t data)
{
/* Left controller port */
m_joy1->joy_w( data >> 4 );
@@ -131,7 +131,7 @@ WRITE8_MEMBER(a2600_base_state::switch_A_w)
// }
}
-READ8_MEMBER(a2600_base_state::switch_A_r)
+uint8_t a2600_base_state::switch_A_r()
{
uint8_t val = 0;
@@ -144,7 +144,7 @@ READ8_MEMBER(a2600_base_state::switch_A_r)
return val;
}
-WRITE8_MEMBER(a2600_base_state::switch_B_w)
+void a2600_base_state::switch_B_w(uint8_t data)
{
}
@@ -152,13 +152,7 @@ WRITE_LINE_MEMBER(a2600_base_state::irq_callback)
{
}
-READ8_MEMBER(a2600_base_state::riot_input_port_8_r)
-{
- return m_swb->read();
-}
-
-
-READ16_MEMBER(a2600_base_state::a2600_read_input_port)
+uint16_t a2600_base_state::a2600_read_input_port(offs_t offset)
{
switch (offset)
{
@@ -192,7 +186,7 @@ READ16_MEMBER(a2600_base_state::a2600_read_input_port)
Q-Bert's Qubes (NTSC,F6) at 0x1594
Berzerk at 0xF093.
*/
-READ8_MEMBER(a2600_base_state::a2600_get_databus_contents)
+uint8_t a2600_base_state::a2600_get_databus_contents(offs_t offset)
{
uint16_t last_address, prev_address;
uint8_t last_byte, prev_byte;
@@ -230,11 +224,9 @@ static const rectangle visarea[4] = {
};
#endif
-WRITE16_MEMBER(a2600_base_state::a2600_tia_vsync_callback)
+void a2600_base_state::a2600_tia_vsync_callback(uint16_t data)
{
- int i;
-
- for ( i = 0; i < ARRAY_LENGTH(supported_screen_heights); i++ )
+ for ( int i = 0; i < ARRAY_LENGTH(supported_screen_heights); i++ )
{
if ( data >= supported_screen_heights[i] - 3 && data <= supported_screen_heights[i] + 3 )
{
@@ -247,11 +239,9 @@ WRITE16_MEMBER(a2600_base_state::a2600_tia_vsync_callback)
}
}
-WRITE16_MEMBER(a2600_base_state::a2600_tia_vsync_callback_pal)
+void a2600_base_state::a2600_tia_vsync_callback_pal(uint16_t data)
{
- int i;
-
- for ( i = 0; i < ARRAY_LENGTH(supported_screen_heights); i++ )
+ for ( int i = 0; i < ARRAY_LENGTH(supported_screen_heights); i++ )
{
if ( data >= supported_screen_heights[i] - 3 && data <= supported_screen_heights[i] + 3 )
{
@@ -530,14 +520,14 @@ void a2600_state::a2600(machine_config &config)
MOS6532_NEW(config, m_riot, MASTER_CLOCK_NTSC / 3);
m_riot->pa_rd_callback().set(FUNC(a2600_state::switch_A_r));
m_riot->pa_wr_callback().set(FUNC(a2600_state::switch_A_w));
- m_riot->pb_rd_callback().set(FUNC(a2600_state::riot_input_port_8_r));
+ m_riot->pb_rd_callback().set_ioport("SWB");
m_riot->pb_wr_callback().set(FUNC(a2600_state::switch_B_w));
m_riot->irq_wr_callback().set(FUNC(a2600_state::irq_callback));
#else
RIOT6532(config, m_riot, MASTER_CLOCK_NTSC / 3);
m_riot->in_pa_callback().set(FUNC(a2600_state::switch_A_r));
m_riot->out_pa_callback().set(FUNC(a2600_state::switch_A_w));
- m_riot->in_pb_callback().set(FUNC(a2600_state::riot_input_port_8_r));
+ m_riot->in_pb_callback().set_ioport("SWB");
m_riot->out_pb_callback().set(FUNC(a2600_state::switch_B_w));
m_riot->irq_callback().set(FUNC(a2600_state::irq_callback));
#endif
@@ -575,14 +565,14 @@ void a2600_state::a2600p(machine_config &config)
MOS6532_NEW(config, m_riot, MASTER_CLOCK_PAL / 3);
m_riot->pa_rd_callback().set(FUNC(a2600_state::switch_A_r));
m_riot->pa_wr_callback().set(FUNC(a2600_state::switch_A_w));
- m_riot->pb_rd_callback().set(FUNC(a2600_state::riot_input_port_8_r));
+ m_riot->pb_rd_callback().set_ioport("SWB");
m_riot->pb_wr_callback().set(FUNC(a2600_state::switch_B_w));
m_riot->irq_wr_callback().set(FUNC(a2600_state::irq_callback));
#else
RIOT6532(config, m_riot, MASTER_CLOCK_PAL / 3);
m_riot->in_pa_callback().set(FUNC(a2600_state::switch_A_r));
m_riot->out_pa_callback().set(FUNC(a2600_state::switch_A_w));
- m_riot->in_pb_callback().set(FUNC(a2600_state::riot_input_port_8_r));
+ m_riot->in_pb_callback().set_ioport("SWB");
m_riot->out_pb_callback().set(FUNC(a2600_state::switch_B_w));
m_riot->irq_callback().set(FUNC(a2600_state::irq_callback));
#endif
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index faa75435354..01d1f86e677 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -641,7 +641,7 @@ WRITE8_MEMBER( abc1600_state::cio_w )
m_cio->write(A2_A1, data);
}
-READ8_MEMBER( abc1600_state::cio_pa_r )
+uint8_t abc1600_state::cio_pa_r()
{
/*
@@ -672,7 +672,7 @@ READ8_MEMBER( abc1600_state::cio_pa_r )
return data;
}
-READ8_MEMBER( abc1600_state::cio_pb_r )
+uint8_t abc1600_state::cio_pb_r()
{
/*
@@ -700,7 +700,7 @@ READ8_MEMBER( abc1600_state::cio_pb_r )
return data;
}
-WRITE8_MEMBER( abc1600_state::cio_pb_w )
+void abc1600_state::cio_pb_w(uint8_t data)
{
/*
@@ -724,7 +724,7 @@ WRITE8_MEMBER( abc1600_state::cio_pb_w )
m_dart->rxca_w(prbr);
}
-READ8_MEMBER( abc1600_state::cio_pc_r )
+uint8_t abc1600_state::cio_pc_r()
{
/*
@@ -745,7 +745,7 @@ READ8_MEMBER( abc1600_state::cio_pc_r )
return data;
}
-WRITE8_MEMBER( abc1600_state::cio_pc_w )
+void abc1600_state::cio_pc_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/abc80.cpp b/src/mame/drivers/abc80.cpp
index 54d3d332575..028f9e1e142 100644
--- a/src/mame/drivers/abc80.cpp
+++ b/src/mame/drivers/abc80.cpp
@@ -219,7 +219,7 @@ void abc80_state::abc80_io(address_map &map)
// Z80PIO
//-------------------------------------------------
-READ8_MEMBER( abc80_state::pio_pa_r )
+uint8_t abc80_state::pio_pa_r()
{
/*
@@ -247,7 +247,7 @@ READ8_MEMBER( abc80_state::pio_pa_r )
return data;
}
-READ8_MEMBER( abc80_state::pio_pb_r )
+uint8_t abc80_state::pio_pb_r()
{
/*
@@ -283,7 +283,7 @@ READ8_MEMBER( abc80_state::pio_pb_r )
return data;
}
-WRITE8_MEMBER( abc80_state::pio_pb_w )
+void abc80_state::pio_pb_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/aci_ggm.cpp b/src/mame/drivers/aci_ggm.cpp
index b76a7599a55..1a028605d89 100644
--- a/src/mame/drivers/aci_ggm.cpp
+++ b/src/mame/drivers/aci_ggm.cpp
@@ -113,22 +113,17 @@ private:
void shift_clock_w(int state);
void shift_data_w(int state);
- u8 m_inp_mux;
- u16 m_digit_data;
- u8 m_shift_data;
- u8 m_shift_clock;
- u32 m_cart_mask;
- u8 m_overlay;
+ u8 m_inp_mux = 0;
+ u16 m_digit_data = 0;
+ u8 m_shift_data = 0;
+ u8 m_shift_clock = 0;
+
+ u32 m_cart_mask = 0;
+ u8 m_overlay = 0;
};
void ggm_state::machine_start()
{
- // zerofill
- m_inp_mux = 0;
- m_digit_data = 0;
- m_shift_data = 0;
- m_shift_clock = 0;
-
// register for savestates
save_item(NAME(m_inp_mux));
save_item(NAME(m_digit_data));
@@ -176,9 +171,8 @@ DEVICE_IMAGE_LOAD_MEMBER(ggm_state::cartridge)
m_cart->rom_alloc(size, GENERIC_ROM8_WIDTH, ENDIANNESS_LITTLE);
m_cart->common_load_rom(m_cart->get_rom_base(), size, "rom");
- // keypad overlay
- std::string overlay(image.get_feature("overlay"));
- m_overlay = std::stoul(overlay, nullptr, 0) & 0xf;
+ // keypad overlay (will return 0 if it's not defined)
+ m_overlay = strtoul(image.get_feature("overlay"), nullptr, 0) & 0xf;
// extra ram (optional)
if (image.get_feature("ram"))
diff --git a/src/mame/drivers/actfancr.cpp b/src/mame/drivers/actfancr.cpp
index 14dc844e182..496d0bbb17a 100644
--- a/src/mame/drivers/actfancr.cpp
+++ b/src/mame/drivers/actfancr.cpp
@@ -30,12 +30,12 @@
/******************************************************************************/
-WRITE8_MEMBER(actfancr_state::triothep_control_select_w)
+void actfancr_state::triothep_control_select_w(uint8_t data)
{
m_trio_control_select = data;
}
-READ8_MEMBER(actfancr_state::triothep_control_r)
+uint8_t actfancr_state::triothep_control_r()
{
switch (m_trio_control_select)
{
diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp
index ad9e5f8a402..eb4b4e4387b 100644
--- a/src/mame/drivers/adam.cpp
+++ b/src/mame/drivers/adam.cpp
@@ -701,7 +701,7 @@ WRITE8_MEMBER( adam_state::adamnet_w )
// m6801_p1_w -
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::m6801_p1_w )
+void adam_state::m6801_p1_w(uint8_t data)
{
/*
@@ -726,7 +726,7 @@ WRITE8_MEMBER( adam_state::m6801_p1_w )
// m6801_p2_r -
//-------------------------------------------------
-READ8_MEMBER( adam_state::m6801_p2_r )
+uint8_t adam_state::m6801_p2_r()
{
/*
@@ -753,7 +753,7 @@ READ8_MEMBER( adam_state::m6801_p2_r )
// m6801_p2_w -
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::m6801_p2_w )
+void adam_state::m6801_p2_w(uint8_t data)
{
/*
@@ -782,7 +782,7 @@ WRITE8_MEMBER( adam_state::m6801_p2_w )
// m6801_p3_r -
//-------------------------------------------------
-READ8_MEMBER( adam_state::m6801_p3_r )
+uint8_t adam_state::m6801_p3_r()
{
/*
@@ -807,7 +807,7 @@ READ8_MEMBER( adam_state::m6801_p3_r )
// m6801_p3_w -
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::m6801_p3_w )
+void adam_state::m6801_p3_w(uint8_t data)
{
/*
@@ -832,7 +832,7 @@ WRITE8_MEMBER( adam_state::m6801_p3_w )
// m6801_p4_w -
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::m6801_p4_w )
+void adam_state::m6801_p4_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/advision.cpp b/src/mame/drivers/advision.cpp
index 89b2a7affaa..65bbce03615 100644
--- a/src/mame/drivers/advision.cpp
+++ b/src/mame/drivers/advision.cpp
@@ -26,7 +26,7 @@
/* Memory Maps */
-READ8_MEMBER( advision_state::rom_r )
+uint8_t advision_state::rom_r(offs_t offset)
{
offset += 0x400;
return m_cart->read_rom(offset & 0xfff);
diff --git a/src/mame/drivers/ajax.cpp b/src/mame/drivers/ajax.cpp
index 1d984639dcc..cba3c579e0e 100644
--- a/src/mame/drivers/ajax.cpp
+++ b/src/mame/drivers/ajax.cpp
@@ -151,7 +151,7 @@ WRITE8_MEMBER(ajax_state::sound_bank_w)
m_k007232_2->set_bank(bank_A, bank_B);
}
-WRITE8_MEMBER(ajax_state::volume_callback0)
+void ajax_state::volume_callback0(uint8_t data)
{
m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11);
@@ -163,7 +163,7 @@ WRITE8_MEMBER(ajax_state::k007232_extvol_w)
m_k007232_2->set_volume(0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2);
}
-WRITE8_MEMBER(ajax_state::volume_callback1)
+void ajax_state::volume_callback1(uint8_t data)
{
/* channel B volume/pan */
m_k007232_2->set_volume(1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2);
diff --git a/src/mame/drivers/alesis.cpp b/src/mame/drivers/alesis.cpp
index 119803cb1cd..36759cd6af8 100644
--- a/src/mame/drivers/alesis.cpp
+++ b/src/mame/drivers/alesis.cpp
@@ -18,12 +18,12 @@
#include "screen.h"
-WRITE8_MEMBER( alesis_state::kb_matrix_w )
+void alesis_state::kb_matrix_w(uint8_t data)
{
m_kb_matrix = data;
}
-READ8_MEMBER( alesis_state::kb_r )
+uint8_t alesis_state::kb_r()
{
uint8_t data = 0xff;
@@ -43,7 +43,7 @@ READ8_MEMBER( alesis_state::kb_r )
return data;
}
-WRITE8_MEMBER( alesis_state::led_w )
+void alesis_state::led_w(uint8_t data)
{
m_patt_led = BIT(data, 0) ? 1 : 0;
m_song_led = BIT(data, 0) ? 0 : 1;
@@ -56,7 +56,7 @@ WRITE8_MEMBER( alesis_state::led_w )
m_midi_led = BIT(data, 7) ? 0 : 1;
}
-READ8_MEMBER( alesis_state::p3_r )
+uint8_t alesis_state::p3_r()
{
uint8_t data = 0xff;
@@ -65,17 +65,17 @@ READ8_MEMBER( alesis_state::p3_r )
return data;
}
-WRITE8_MEMBER( alesis_state::p3_w )
+void alesis_state::p3_w(uint8_t data)
{
m_cassette->output(data & 0x04 ? -1.0 : +1.0);
}
-WRITE8_MEMBER( alesis_state::sr16_lcd_w )
+void alesis_state::sr16_lcd_w(uint8_t data)
{
m_lcdc->write(BIT(m_kb_matrix,7), data);
}
-WRITE8_MEMBER( alesis_state::mmt8_led_w )
+void alesis_state::mmt8_led_w(uint8_t data)
{
m_play_led = BIT(data, 0) ? 0 : 1;
m_record_led = BIT(data, 1) ? 0 : 1;
@@ -88,18 +88,18 @@ WRITE8_MEMBER( alesis_state::mmt8_led_w )
m_leds = data;
}
-READ8_MEMBER( alesis_state::mmt8_led_r )
+uint8_t alesis_state::mmt8_led_r()
{
return m_leds;
}
-WRITE8_MEMBER( alesis_state::track_led_w )
+void alesis_state::track_led_w(uint8_t data)
{
for (int i=0; i < 8; i++)
m_track_led[i] = BIT(data, i);
}
-READ8_MEMBER( alesis_state::mmt8_p3_r )
+uint8_t alesis_state::mmt8_p3_r()
{
// ---- -x-- Tape in
// ---- x--- Start/Stop input
@@ -110,7 +110,7 @@ READ8_MEMBER( alesis_state::mmt8_p3_r )
return data;
}
-WRITE8_MEMBER( alesis_state::mmt8_p3_w )
+void alesis_state::mmt8_p3_w(uint8_t data)
{
// ---x ---- Tape out
// --x- ---- Click out
diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp
index c0712544c42..ddf4af77576 100644
--- a/src/mame/drivers/aliens.cpp
+++ b/src/mame/drivers/aliens.cpp
@@ -48,7 +48,7 @@ WRITE8_MEMBER(aliens_state::aliens_sh_irqtrigger_w)
m_audiocpu->set_input_line(0, HOLD_LINE);
}
-WRITE8_MEMBER(aliens_state::aliens_snd_bankswitch_w)
+void aliens_state::aliens_snd_bankswitch_w(uint8_t data)
{
/* b1: bank for chanel A */
/* b0: bank for chanel B */
@@ -172,7 +172,7 @@ INPUT_PORTS_END
***************************************************************************/
-WRITE8_MEMBER(aliens_state::volume_callback)
+void aliens_state::volume_callback(uint8_t data)
{
m_k007232->set_volume(0, (data & 0x0f) * 0x11, 0);
m_k007232->set_volume(1, 0, (data >> 4) * 0x11);
@@ -189,7 +189,7 @@ void aliens_state::machine_reset()
m_bank0000->set_bank(0);
}
-WRITE8_MEMBER( aliens_state::banking_callback )
+void aliens_state::banking_callback(uint8_t data)
{
m_rombank->set_entry(data & 0x1f);
}
diff --git a/src/mame/drivers/altos486.cpp b/src/mame/drivers/altos486.cpp
index 0e976201b97..34bfef9944d 100644
--- a/src/mame/drivers/altos486.cpp
+++ b/src/mame/drivers/altos486.cpp
@@ -28,7 +28,7 @@ public:
void altos486(machine_config &config);
private:
- DECLARE_READ8_MEMBER(read_rmx_ack);
+ uint8_t read_rmx_ack(offs_t offset);
DECLARE_READ16_MEMBER(mmu_ram_r);
DECLARE_READ16_MEMBER(mmu_io_r);
@@ -49,7 +49,7 @@ private:
uint8_t m_prot[256];
};
-READ8_MEMBER(altos486_state::read_rmx_ack)
+uint8_t altos486_state::read_rmx_ack(offs_t offset)
{
if(offset == 4)
return m_maincpu->int_callback(*this, 0);
diff --git a/src/mame/drivers/altos5.cpp b/src/mame/drivers/altos5.cpp
index 59ccd2b936d..3c0d6f218c1 100644
--- a/src/mame/drivers/altos5.cpp
+++ b/src/mame/drivers/altos5.cpp
@@ -45,15 +45,15 @@ public:
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
private:
- DECLARE_READ8_MEMBER(memory_read_byte);
- DECLARE_WRITE8_MEMBER(memory_write_byte);
- DECLARE_READ8_MEMBER(io_read_byte);
- DECLARE_WRITE8_MEMBER(io_write_byte);
- DECLARE_READ8_MEMBER(port08_r);
- DECLARE_READ8_MEMBER(port09_r);
- DECLARE_WRITE8_MEMBER(port08_w);
- DECLARE_WRITE8_MEMBER(port09_w);
- DECLARE_WRITE8_MEMBER(port14_w);
+ uint8_t memory_read_byte(offs_t offset);
+ void memory_write_byte(offs_t offset, uint8_t data);
+ uint8_t io_read_byte(offs_t offset);
+ void io_write_byte(offs_t offset, uint8_t data);
+ uint8_t port08_r();
+ uint8_t port09_r();
+ void port08_w(uint8_t data);
+ void port09_w(uint8_t data);
+ void port14_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(busreq_w);
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
@@ -210,31 +210,31 @@ static const z80_daisy_config daisy_chain_intf[] =
// turns off IPL mode, removes boot rom from memory map
-WRITE8_MEMBER( altos5_state::port14_w )
+void altos5_state::port14_w(uint8_t data)
{
m_ipl = 0;
setup_banks(2);
}
-READ8_MEMBER(altos5_state::memory_read_byte)
+uint8_t altos5_state::memory_read_byte(offs_t offset)
{
address_space& prog_space = m_maincpu->space(AS_PROGRAM);
return prog_space.read_byte(offset);
}
-WRITE8_MEMBER(altos5_state::memory_write_byte)
+void altos5_state::memory_write_byte(offs_t offset, uint8_t data)
{
address_space& prog_space = m_maincpu->space(AS_PROGRAM);
prog_space.write_byte(offset, data);
}
-READ8_MEMBER(altos5_state::io_read_byte)
+uint8_t altos5_state::io_read_byte(offs_t offset)
{
address_space& prog_space = m_maincpu->space(AS_IO);
return prog_space.read_byte(offset);
}
-WRITE8_MEMBER(altos5_state::io_write_byte)
+void altos5_state::io_write_byte(offs_t offset, uint8_t data)
{
address_space& prog_space = m_maincpu->space(AS_IO);
prog_space.write_byte(offset, data);
@@ -255,7 +255,7 @@ d2: unused configuration input (must be H to skip HD boot)
d3: selected floppy is single(L) or double sided(H)
d7: IRQ from FDC
*/
-READ8_MEMBER( altos5_state::port08_r )
+uint8_t altos5_state::port08_r()
{
uint8_t data = m_port08 | 0x87;
if (m_floppy)
@@ -266,7 +266,7 @@ READ8_MEMBER( altos5_state::port08_r )
/*
d0: HD IRQ
*/
-READ8_MEMBER( altos5_state::port09_r )
+uint8_t altos5_state::port09_r()
{
return m_port09 & 0xfe;
}
@@ -276,7 +276,7 @@ d4: DDEN (H = double density)
d5: DS (H = drive 2)
d6: SS (H = side 2)
*/
-WRITE8_MEMBER( altos5_state::port08_w )
+void altos5_state::port08_w(uint8_t data)
{
m_port08 = data & 0x70;
@@ -302,7 +302,7 @@ d3, 4: CPU bank select
d5: H = Write protect of common area
d6, 7: DMA bank select (not emulated)
*/
-WRITE8_MEMBER( altos5_state::port09_w )
+void altos5_state::port09_w(uint8_t data)
{
m_port09 = data;
setup_banks(2);
diff --git a/src/mame/drivers/altos8600.cpp b/src/mame/drivers/altos8600.cpp
index 4fb3c4c8bb0..35fca787dc1 100644
--- a/src/mame/drivers/altos8600.cpp
+++ b/src/mame/drivers/altos8600.cpp
@@ -53,7 +53,7 @@ private:
DECLARE_WRITE16_MEMBER(mmuaddr_w);
DECLARE_READ16_MEMBER(mmuflags_r);
DECLARE_WRITE16_MEMBER(mmuflags_w);
- DECLARE_READ8_MEMBER(get_slave_ack);
+ u8 get_slave_ack(offs_t offset);
DECLARE_READ16_MEMBER(fault_r);
DECLARE_READ16_MEMBER(errlo_r);
DECLARE_READ16_MEMBER(errhi_r);
@@ -495,7 +495,7 @@ WRITE16_MEMBER(altos8600_state::mode_w)
m_user = true;
}
-READ8_MEMBER(altos8600_state::get_slave_ack)
+u8 altos8600_state::get_slave_ack(offs_t offset)
{
if(offset == 2)
return m_pic[1]->acknowledge();
diff --git a/src/mame/drivers/amiga.cpp b/src/mame/drivers/amiga.cpp
index f63b98a889c..ab9945c8d88 100644
--- a/src/mame/drivers/amiga.cpp
+++ b/src/mame/drivers/amiga.cpp
@@ -347,13 +347,11 @@ public:
DECLARE_READ16_MEMBER( clock_r );
DECLARE_WRITE16_MEMBER( clock_w );
- DECLARE_READ8_MEMBER( dmac_scsi_data_read );
- DECLARE_WRITE8_MEMBER( dmac_scsi_data_write );
- DECLARE_READ8_MEMBER( dmac_io_read );
- DECLARE_WRITE8_MEMBER( dmac_io_write );
+ uint8_t dmac_scsi_data_read(offs_t offset);
+ void dmac_scsi_data_write(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( dmac_int_w );
- DECLARE_WRITE8_MEMBER( tpi_port_b_write );
+ void tpi_port_b_write(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( tpi_int_w );
void cdtv(machine_config &config);
@@ -545,7 +543,7 @@ public:
{ }
DECLARE_WRITE_LINE_MEMBER( akiko_int_w );
- DECLARE_WRITE8_MEMBER( akiko_cia_0_port_a_write );
+ void akiko_cia_0_port_a_write(uint8_t data);
void handle_joystick_cia(u8 pra, u8 dra);
u16 handle_joystick_potgor(u16 potgor);
@@ -613,7 +611,7 @@ WRITE16_MEMBER( a500p_state::clock_w )
// CD-ROM CONTROLLER
//**************************************************************************
-READ8_MEMBER( cdtv_state::dmac_scsi_data_read )
+uint8_t cdtv_state::dmac_scsi_data_read(offs_t offset)
{
if (offset >= 0xb0 && offset <= 0xbf)
return m_tpi->read(offset);
@@ -621,29 +619,19 @@ READ8_MEMBER( cdtv_state::dmac_scsi_data_read )
return 0xff;
}
-WRITE8_MEMBER( cdtv_state::dmac_scsi_data_write )
+void cdtv_state::dmac_scsi_data_write(offs_t offset, uint8_t data)
{
if (offset >= 0xb0 && offset <= 0xbf)
m_tpi->write(offset, data);
}
-READ8_MEMBER( cdtv_state::dmac_io_read )
-{
- return m_cdrom->read();
-}
-
-WRITE8_MEMBER( cdtv_state::dmac_io_write )
-{
- m_cdrom->write(data);
-}
-
WRITE_LINE_MEMBER( cdtv_state::dmac_int_w )
{
m_dmac_irq = state;
update_int2();
}
-WRITE8_MEMBER( cdtv_state::tpi_port_b_write )
+void cdtv_state::tpi_port_b_write(uint8_t data)
{
m_cdrom->cmd_w(BIT(data, 0));
m_cdrom->enable_w(BIT(data, 1));
@@ -987,9 +975,9 @@ READ16_MEMBER( a4000_state::ide_r )
// this very likely doesn't respond to all the addresses, figure out which ones
if (BIT(offset, 12))
- data = m_ata->read_cs1((offset >> 1) & 0x07, mem_mask);
+ data = m_ata->cs1_r((offset >> 1) & 0x07, mem_mask);
else
- data = m_ata->read_cs0((offset >> 1) & 0x07, mem_mask);
+ data = m_ata->cs0_r((offset >> 1) & 0x07, mem_mask);
// swap
data = (data << 8) | (data >> 8);
@@ -1009,9 +997,9 @@ WRITE16_MEMBER( a4000_state::ide_w )
// this very likely doesn't respond to all the addresses, figure out which ones
if (BIT(offset, 12))
- m_ata->write_cs1((offset >> 1) & 0x07, data, mem_mask);
+ m_ata->cs1_w((offset >> 1) & 0x07, data, mem_mask);
else
- m_ata->write_cs0((offset >> 1) & 0x07, data, mem_mask);
+ m_ata->cs0_w((offset >> 1) & 0x07, data, mem_mask);
}
WRITE_LINE_MEMBER( a4000_state::ide_interrupt_w )
@@ -1152,7 +1140,7 @@ READ_LINE_MEMBER( cd32_state::cd32_sel_mirror_input )
return (bits & 0x20)>>5;
}
-WRITE8_MEMBER( cd32_state::akiko_cia_0_port_a_write )
+void cd32_state::akiko_cia_0_port_a_write(uint8_t data)
{
// bit 0, cd audio mute
m_cdda->set_output_gain(0, BIT(data, 0) ? 0.0 : 1.0);
@@ -1823,8 +1811,8 @@ void cdtv_state::cdtv(machine_config &config)
AMIGA_DMAC(config, m_dmac, amiga_state::CLK_7M_PAL);
m_dmac->scsi_read_handler().set(FUNC(cdtv_state::dmac_scsi_data_read));
m_dmac->scsi_write_handler().set(FUNC(cdtv_state::dmac_scsi_data_write));
- m_dmac->io_read_handler().set(FUNC(cdtv_state::dmac_io_read));
- m_dmac->io_write_handler().set(FUNC(cdtv_state::dmac_io_write));
+ m_dmac->io_read_handler().set(m_cdrom, FUNC(cr511b_device::read));
+ m_dmac->io_write_handler().set(m_cdrom, FUNC(cr511b_device::write));
m_dmac->int_handler().set(FUNC(cdtv_state::dmac_int_w));
TPI6525(config, m_tpi, 0);
diff --git a/src/mame/drivers/apf.cpp b/src/mame/drivers/apf.cpp
index 7e76e51b7c3..2799abb6ec2 100644
--- a/src/mame/drivers/apf.cpp
+++ b/src/mame/drivers/apf.cpp
@@ -114,16 +114,16 @@ public:
void apfimag(machine_config &config);
private:
- DECLARE_READ8_MEMBER(videoram_r);
- DECLARE_READ8_MEMBER(pia0_porta_r);
- DECLARE_WRITE8_MEMBER(pia0_portb_w);
+ uint8_t videoram_r(offs_t offset);
+ uint8_t pia0_porta_r();
+ void pia0_portb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w);
- DECLARE_READ8_MEMBER(pia1_porta_r);
- DECLARE_READ8_MEMBER(pia1_portb_r);
- DECLARE_WRITE8_MEMBER(pia1_portb_w);
- DECLARE_WRITE8_MEMBER(apf_dischw_w);
- DECLARE_READ8_MEMBER(serial_r);
- DECLARE_WRITE8_MEMBER(serial_w);
+ uint8_t pia1_porta_r();
+ uint8_t pia1_portb_r();
+ void pia1_portb_w(uint8_t data);
+ void apf_dischw_w(offs_t offset, uint8_t data);
+ uint8_t serial_r(offs_t offset);
+ void serial_w(offs_t offset, uint8_t data);
void apfimag_map(address_map &map);
void apfm1000_map(address_map &map);
@@ -153,7 +153,7 @@ private:
};
-READ8_MEMBER( apf_state::videoram_r )
+uint8_t apf_state::videoram_r(offs_t offset)
{
if (BIT(m_pad_data, 7)) // AG line
{
@@ -184,7 +184,7 @@ READ8_MEMBER( apf_state::videoram_r )
}
}
-READ8_MEMBER( apf_state::pia0_porta_r )
+uint8_t apf_state::pia0_porta_r()
{
uint8_t data = 0xff;
@@ -195,7 +195,7 @@ READ8_MEMBER( apf_state::pia0_porta_r )
return data;
}
-WRITE8_MEMBER( apf_state::pia0_portb_w )
+void apf_state::pia0_portb_w(uint8_t data)
{
/* bit 7..6 video control */
m_crtc->ag_w(BIT(data, 7));
@@ -210,12 +210,12 @@ WRITE_LINE_MEMBER( apf_state::pia0_ca2_w )
m_ca2 = state;
}
-READ8_MEMBER( apf_state::pia1_porta_r )
+uint8_t apf_state::pia1_porta_r()
{
return m_key[m_keyboard_data]->read();
}
-READ8_MEMBER( apf_state::pia1_portb_r )
+uint8_t apf_state::pia1_portb_r()
{
uint8_t data = m_portb;
@@ -226,7 +226,7 @@ READ8_MEMBER( apf_state::pia1_portb_r )
}
-WRITE8_MEMBER( apf_state::pia1_portb_w )
+void apf_state::pia1_portb_w(uint8_t data)
{
/* bits 2..0 = keyboard line */
/* bit 3 = cass audio enable */
@@ -284,7 +284,7 @@ void apf_state::machine_reset()
}
}
-WRITE8_MEMBER( apf_state::apf_dischw_w)
+void apf_state::apf_dischw_w(offs_t offset, uint8_t data)
{
/* bit 3 is index of drive to select */
uint8_t drive = BIT(data, 3);
@@ -305,13 +305,13 @@ WRITE8_MEMBER( apf_state::apf_dischw_w)
logerror("disc w %04x %04x\n",offset,data);
}
-READ8_MEMBER( apf_state::serial_r)
+uint8_t apf_state::serial_r(offs_t offset)
{
logerror("serial r %04x\n",offset);
return 0;
}
-WRITE8_MEMBER( apf_state::serial_w)
+void apf_state::serial_w(offs_t offset, uint8_t data)
{
logerror("serial w %04x %04x\n",offset,data);
}
diff --git a/src/mame/drivers/apple1.cpp b/src/mame/drivers/apple1.cpp
index c6ecc243e96..5cf5e9c3e95 100644
--- a/src/mame/drivers/apple1.cpp
+++ b/src/mame/drivers/apple1.cpp
@@ -136,10 +136,10 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_READ8_MEMBER(ram_r);
- DECLARE_WRITE8_MEMBER(ram_w);
- DECLARE_READ8_MEMBER(pia_keyboard_r);
- DECLARE_WRITE8_MEMBER(pia_display_w);
+ uint8_t ram_r(offs_t offset);
+ void ram_w(offs_t offset, uint8_t data);
+ uint8_t pia_keyboard_r();
+ void pia_display_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(pia_display_gate_w);
DECLARE_SNAPSHOT_LOAD_MEMBER(snapshot_cb);
TIMER_CALLBACK_MEMBER(ready_start_cb);
@@ -414,7 +414,7 @@ void apple1_state::machine_reset()
m_lastports[0] = m_lastports[1] = m_lastports[2] = m_lastports[3] = 0;
}
-READ8_MEMBER(apple1_state::ram_r)
+uint8_t apple1_state::ram_r(offs_t offset)
{
if (offset < m_ram_size)
{
@@ -424,7 +424,7 @@ READ8_MEMBER(apple1_state::ram_r)
return 0xff;
}
-WRITE8_MEMBER(apple1_state::ram_w)
+void apple1_state::ram_w(offs_t offset, uint8_t data)
{
if (offset < m_ram_size)
{
@@ -440,12 +440,12 @@ void apple1_state::apple1_map(address_map &map)
map(0xff00, 0xffff).rom().region(A1_CPU_TAG, 0);
}
-READ8_MEMBER(apple1_state::pia_keyboard_r)
+uint8_t apple1_state::pia_keyboard_r()
{
return m_transchar | 0x80; // bit 7 is wired high, similar-ish to the Apple II
}
-WRITE8_MEMBER(apple1_state::pia_display_w)
+void apple1_state::pia_display_w(uint8_t data)
{
data &= 0x7f; // D7 is ignored by the video h/w
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index c003c713e70..97ec6f7d1b5 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -369,7 +369,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(ay3600_ako_w);
DECLARE_READ8_MEMBER(memexp_r);
DECLARE_WRITE8_MEMBER(memexp_w);
- DECLARE_READ8_MEMBER(nsc_backing_r);
+ uint8_t nsc_backing_r(offs_t offset);
void apple2cp(machine_config &config);
void laser128ex2(machine_config &config);
@@ -2380,7 +2380,7 @@ uint8_t apple2e_state::read_int_rom(int slotbias, int offset)
return m_ds1315->read(slotbias + offset);
}
-READ8_MEMBER(apple2e_state::nsc_backing_r) { return m_rom_ptr[offset]; }
+uint8_t apple2e_state::nsc_backing_r(offs_t offset) { return m_rom_ptr[offset]; }
READ8_MEMBER(apple2e_state::c100_r) { return read_slot_rom(1, offset); }
READ8_MEMBER(apple2e_state::c100_int_r) { return read_int_rom(0x100, offset); }
diff --git a/src/mame/drivers/apple2gs.cpp b/src/mame/drivers/apple2gs.cpp
index 96f3550b3ef..5816891f935 100644
--- a/src/mame/drivers/apple2gs.cpp
+++ b/src/mame/drivers/apple2gs.cpp
@@ -485,7 +485,7 @@ private:
DECLARE_WRITE_LINE_MEMBER(a2bus_inh_w);
DECLARE_WRITE_LINE_MEMBER(doc_irq_w);
DECLARE_WRITE_LINE_MEMBER(scc_irq_w);
- DECLARE_READ8_MEMBER(doc_adc_read);
+ uint8_t doc_adc_read();
DECLARE_READ8_MEMBER(apple2gs_read_vector);
#if !RUN_ADB_MICRO
@@ -502,17 +502,17 @@ private:
void keyglu_816_write(uint8_t offset, uint8_t data);
void keyglu_regen_irqs();
- DECLARE_READ8_MEMBER(adbmicro_p0_in);
- DECLARE_READ8_MEMBER(adbmicro_p1_in);
- DECLARE_READ8_MEMBER(adbmicro_p2_in);
- DECLARE_READ8_MEMBER(adbmicro_p3_in);
- DECLARE_WRITE8_MEMBER(adbmicro_p0_out);
- DECLARE_WRITE8_MEMBER(adbmicro_p1_out);
- DECLARE_WRITE8_MEMBER(adbmicro_p2_out);
- DECLARE_WRITE8_MEMBER(adbmicro_p3_out);
+ uint8_t adbmicro_p0_in();
+ uint8_t adbmicro_p1_in();
+ uint8_t adbmicro_p2_in();
+ uint8_t adbmicro_p3_in();
+ void adbmicro_p0_out(uint8_t data);
+ void adbmicro_p1_out(uint8_t data);
+ void adbmicro_p2_out(uint8_t data);
+ void adbmicro_p3_out(uint8_t data);
offs_t dasm_trampoline(std::ostream &stream, offs_t pc, const util::disasm_interface::data_buffer &opcodes, const util::disasm_interface::data_buffer ¶ms);
- DECLARE_WRITE8_MEMBER(wdm_trampoline) { }; //m_a2host->wdm_w(space, offset, data); }
+ void wdm_trampoline(offs_t offset, uint8_t data) { }; //m_a2host->wdm_w(space, offset, data); }
private:
bool m_is_rom3;
@@ -1079,6 +1079,7 @@ void apple2gs_state::adb_write_datareg(uint8_t data)
break;
case 0xf2:
+ adb_post_response_1(0x80);
break;
default:
@@ -3770,12 +3771,12 @@ void apple2gs_state::a2gs_es5503_map(address_map &map)
http://www.llx.com/~nparker/a2/adb.html
***************************************************************************/
-READ8_MEMBER(apple2gs_state::adbmicro_p0_in)
+uint8_t apple2gs_state::adbmicro_p0_in()
{
return m_glu_bus;
}
-READ8_MEMBER(apple2gs_state::adbmicro_p1_in)
+uint8_t apple2gs_state::adbmicro_p1_in()
{
#if RUN_ADB_MICRO
switch (m_glu_kbd_y)
@@ -3805,7 +3806,7 @@ READ8_MEMBER(apple2gs_state::adbmicro_p1_in)
return 0xff;
}
-READ8_MEMBER(apple2gs_state::adbmicro_p2_in)
+uint8_t apple2gs_state::adbmicro_p2_in()
{
uint8_t rv = 0;
@@ -3815,7 +3816,7 @@ READ8_MEMBER(apple2gs_state::adbmicro_p2_in)
return rv;
}
-READ8_MEMBER(apple2gs_state::adbmicro_p3_in)
+uint8_t apple2gs_state::adbmicro_p3_in()
{
uint8_t rv = 0;
#if RUN_ADB_MICRO
@@ -3832,16 +3833,16 @@ READ8_MEMBER(apple2gs_state::adbmicro_p3_in)
return rv;
}
-WRITE8_MEMBER(apple2gs_state::adbmicro_p0_out)
+void apple2gs_state::adbmicro_p0_out(uint8_t data)
{
m_glu_bus = data;
}
-WRITE8_MEMBER(apple2gs_state::adbmicro_p1_out)
+void apple2gs_state::adbmicro_p1_out(uint8_t data)
{
}
-WRITE8_MEMBER(apple2gs_state::adbmicro_p2_out)
+void apple2gs_state::adbmicro_p2_out(uint8_t data)
{
if (!(data & 0x10))
{
@@ -3860,7 +3861,7 @@ WRITE8_MEMBER(apple2gs_state::adbmicro_p2_out)
}
}
-WRITE8_MEMBER(apple2gs_state::adbmicro_p3_out)
+void apple2gs_state::adbmicro_p3_out(uint8_t data)
{
if (((data & 0x08) == 0x08) != m_adb_line)
{
@@ -4094,7 +4095,7 @@ WRITE_LINE_MEMBER(apple2gs_state::doc_irq_w)
}
}
-READ8_MEMBER(apple2gs_state::doc_adc_read)
+uint8_t apple2gs_state::doc_adc_read()
{
return 0x80;
}
diff --git a/src/mame/drivers/apricot.cpp b/src/mame/drivers/apricot.cpp
index 4ddfc719a62..d782dd9111d 100644
--- a/src/mame/drivers/apricot.cpp
+++ b/src/mame/drivers/apricot.cpp
@@ -76,16 +76,16 @@ private:
DECLARE_FLOPPY_FORMATS(floppy_formats);
DECLARE_WRITE_LINE_MEMBER(i8086_lock_w);
- DECLARE_WRITE8_MEMBER(i8089_ca1_w);
- DECLARE_WRITE8_MEMBER(i8089_ca2_w);
- DECLARE_WRITE8_MEMBER(i8255_portb_w);
- DECLARE_READ8_MEMBER(i8255_portc_r);
- DECLARE_WRITE8_MEMBER(i8255_portc_w);
+ void i8089_ca1_w(uint8_t data);
+ void i8089_ca2_w(uint8_t data);
+ void i8255_portb_w(uint8_t data);
+ uint8_t i8255_portc_r();
+ void i8255_portc_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
- DECLARE_READ8_MEMBER(sio_da_r);
- DECLARE_READ8_MEMBER(sio_ca_r);
- DECLARE_READ8_MEMBER(sio_db_r);
- DECLARE_READ8_MEMBER(sio_cb_r);
+ uint8_t sio_da_r();
+ uint8_t sio_ca_r();
+ uint8_t sio_db_r();
+ uint8_t sio_cb_r();
DECLARE_WRITE_LINE_MEMBER(write_centronics_fault);
DECLARE_WRITE_LINE_MEMBER(write_centronics_perror);
@@ -133,14 +133,14 @@ private:
// I/O
//**************************************************************************
-WRITE8_MEMBER( apricot_state::i8089_ca1_w )
+void apricot_state::i8089_ca1_w(uint8_t data)
{
m_iop->sel_w(0);
m_iop->ca_w(1);
m_iop->ca_w(0);
}
-WRITE8_MEMBER( apricot_state::i8089_ca2_w )
+void apricot_state::i8089_ca2_w(uint8_t data)
{
m_iop->sel_w(1);
m_iop->ca_w(1);
@@ -159,7 +159,7 @@ WRITE_LINE_MEMBER( apricot_state::write_centronics_perror )
m_centronics_perror = state;
}
-READ8_MEMBER( apricot_state::i8255_portc_r )
+uint8_t apricot_state::i8255_portc_r()
{
uint8_t data = 0;
@@ -171,7 +171,7 @@ READ8_MEMBER( apricot_state::i8255_portc_r )
return data;
}
-WRITE8_MEMBER( apricot_state::i8255_portb_w )
+void apricot_state::i8255_portb_w(uint8_t data)
{
// bit 0, crt reset
// bit 1, not connected
@@ -200,14 +200,14 @@ WRITE8_MEMBER( apricot_state::i8255_portb_w )
// PB7 Centronics transceiver direction. 0 = output, 1 = input
}
-WRITE8_MEMBER( apricot_state::i8255_portc_w )
+void apricot_state::i8255_portc_w(uint8_t data)
{
// schematic page 294 says pc4 outputs to centronics pin 13, which is the "select" output from the printer.
m_centronics->write_strobe(BIT(data, 5));
// schematic page 294 says pc6 outputs to centronics pin 15, which is unused
}
-READ8_MEMBER( apricot_state::sio_da_r )
+uint8_t apricot_state::sio_da_r()
{
if (m_bus_locked)
return m_sio->m1_r();
@@ -215,7 +215,7 @@ READ8_MEMBER( apricot_state::sio_da_r )
return m_sio->da_r();
}
-READ8_MEMBER( apricot_state::sio_ca_r )
+uint8_t apricot_state::sio_ca_r()
{
if (m_bus_locked)
return m_sio->m1_r();
@@ -223,7 +223,7 @@ READ8_MEMBER( apricot_state::sio_ca_r )
return m_sio->ca_r();
}
-READ8_MEMBER( apricot_state::sio_cb_r )
+uint8_t apricot_state::sio_cb_r()
{
if (m_bus_locked)
return m_sio->m1_r();
@@ -231,7 +231,7 @@ READ8_MEMBER( apricot_state::sio_cb_r )
return m_sio->cb_r();
}
-READ8_MEMBER( apricot_state::sio_db_r )
+uint8_t apricot_state::sio_db_r()
{
if (m_bus_locked)
return m_sio->m1_r();
diff --git a/src/mame/drivers/argo.cpp b/src/mame/drivers/argo.cpp
index 64da55393f1..162f58d5929 100644
--- a/src/mame/drivers/argo.cpp
+++ b/src/mame/drivers/argo.cpp
@@ -70,7 +70,7 @@ private:
DECLARE_WRITE_LINE_MEMBER(z0_w);
DECLARE_WRITE_LINE_MEMBER(hrq_w);
void argo_palette(palette_device &palette) const;
- DECLARE_READ8_MEMBER(dma_r);
+ uint8_t dma_r(offs_t offset);
I8275_DRAW_CHARACTER_MEMBER(display_pixels);
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
@@ -234,7 +234,7 @@ WRITE_LINE_MEMBER(argo_state::z0_w)
// read - incoming 2514Hz
}
-READ8_MEMBER(argo_state::dma_r)
+uint8_t argo_state::dma_r(offs_t offset)
{
if (offset < 0xf800)
return m_maincpu->space(AS_PROGRAM).read_byte(offset);
diff --git a/src/mame/drivers/aristmk4.cpp b/src/mame/drivers/aristmk4.cpp
index f9faaf5c073..f852ec51479 100644
--- a/src/mame/drivers/aristmk4.cpp
+++ b/src/mame/drivers/aristmk4.cpp
@@ -418,35 +418,35 @@ private:
int m_printer_motor;
emu_timer *m_power_timer;
- DECLARE_READ8_MEMBER(ldsw);
- DECLARE_READ8_MEMBER(cgdrr);
- DECLARE_WRITE8_MEMBER(cgdrw);
- DECLARE_WRITE8_MEMBER(u3_p0);
- DECLARE_READ8_MEMBER(u3_p2);
- DECLARE_READ8_MEMBER(u3_p3);
- DECLARE_READ8_MEMBER(bv_p0);
- DECLARE_READ8_MEMBER(bv_p1);
- DECLARE_READ8_MEMBER(mkiv_pia_ina);
- DECLARE_WRITE8_MEMBER(mkiv_pia_outa);
- DECLARE_WRITE8_MEMBER(mlamps);
- DECLARE_READ8_MEMBER(cashcade_r);
- DECLARE_WRITE8_MEMBER(mk4_printer_w);
- DECLARE_READ8_MEMBER(mk4_printer_r);
+ uint8_t ldsw();
+ uint8_t cgdrr();
+ void cgdrw(uint8_t data);
+ void u3_p0(uint8_t data);
+ uint8_t u3_p2();
+ uint8_t u3_p3();
+ uint8_t bv_p0();
+ uint8_t bv_p1();
+ uint8_t mkiv_pia_ina();
+ void mkiv_pia_outa(uint8_t data);
+ void mlamps(uint8_t data);
+ uint8_t cashcade_r();
+ void mk4_printer_w(uint8_t data);
+ uint8_t mk4_printer_r();
DECLARE_WRITE_LINE_MEMBER(mkiv_pia_ca2);
DECLARE_WRITE_LINE_MEMBER(mkiv_pia_cb2);
- DECLARE_WRITE8_MEMBER(mkiv_pia_outb);
- DECLARE_READ8_MEMBER(via_a_r);
- DECLARE_READ8_MEMBER(via_b_r);
- DECLARE_WRITE8_MEMBER(via_a_w);
- DECLARE_WRITE8_MEMBER(via_b_w);
+ void mkiv_pia_outb(uint8_t data);
+ uint8_t via_a_r();
+ uint8_t via_b_r();
+ void via_a_w(uint8_t data);
+ void via_b_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(via_ca2_w);
DECLARE_WRITE_LINE_MEMBER(via_cb2_w);
- DECLARE_WRITE8_MEMBER(pblp_out);
- DECLARE_WRITE8_MEMBER(pbltlp_out);
- DECLARE_WRITE8_MEMBER(zn434_w);
- DECLARE_READ8_MEMBER(pa1_r);
- DECLARE_READ8_MEMBER(pb1_r);
- DECLARE_READ8_MEMBER(pc1_r);
+ void pblp_out(uint8_t data);
+ void pbltlp_out(uint8_t data);
+ void zn434_w(uint8_t data);
+ uint8_t pa1_r();
+ uint8_t pb1_r();
+ uint8_t pc1_r();
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -539,7 +539,7 @@ uint32_t aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_rg
return 0;
}
-READ8_MEMBER(aristmk4_state::ldsw)
+uint8_t aristmk4_state::ldsw()
{
int U3_p2_ret= ioport("5002")->read();
if(U3_p2_ret & 0x1)
@@ -549,7 +549,7 @@ READ8_MEMBER(aristmk4_state::ldsw)
return m_cgdrsw = ioport("5005")->read();
}
-READ8_MEMBER(aristmk4_state::cgdrr)
+uint8_t aristmk4_state::cgdrr()
{
if(m_cgdrsw) // is the LC closed
{
@@ -558,12 +558,12 @@ READ8_MEMBER(aristmk4_state::cgdrr)
return 0x0; // otherwise the counter outputs are set low.
}
-WRITE8_MEMBER(aristmk4_state::cgdrw)
+void aristmk4_state::cgdrw(uint8_t data)
{
m_ripple = data;
}
-WRITE8_MEMBER(aristmk4_state::u3_p0)
+void aristmk4_state::u3_p0(uint8_t data)
{
m_u3_p0_w = data;
@@ -575,7 +575,7 @@ WRITE8_MEMBER(aristmk4_state::u3_p0)
//logerror("u3_p0_w: %02X\n",m_u3_p0_w);
}
-READ8_MEMBER(aristmk4_state::u3_p2)
+uint8_t aristmk4_state::u3_p2()
{
int u3_p2_ret= ioport("5002")->read();
int u3_p3_ret= ioport("5003")->read();
@@ -600,7 +600,7 @@ READ8_MEMBER(aristmk4_state::u3_p2)
return u3_p2_ret;
}
-READ8_MEMBER(aristmk4_state::u3_p3)
+uint8_t aristmk4_state::u3_p3()
{
int u3_p3_ret= ioport("5003")->read();
@@ -621,7 +621,7 @@ TIMER_CALLBACK_MEMBER(aristmk4_state::note_input_reset)
m_insnote=0; //reset note input after 150msec
}
-READ8_MEMBER(aristmk4_state::bv_p0)
+uint8_t aristmk4_state::bv_p0()
{
int bv_p0_ret=0x00;
@@ -644,7 +644,7 @@ READ8_MEMBER(aristmk4_state::bv_p0)
}
-READ8_MEMBER(aristmk4_state::bv_p1)
+uint8_t aristmk4_state::bv_p1()
{
int bv_p1_ret=0x00;
@@ -676,7 +676,7 @@ PORTB - MECHANICAL METERS
******************************************************************************/
//input a
-READ8_MEMBER(aristmk4_state::mkiv_pia_ina)
+uint8_t aristmk4_state::mkiv_pia_ina()
{
/* uncomment this code once RTC is fixed */
@@ -685,7 +685,7 @@ READ8_MEMBER(aristmk4_state::mkiv_pia_ina)
}
//output a
-WRITE8_MEMBER(aristmk4_state::mkiv_pia_outa)
+void aristmk4_state::mkiv_pia_outa(uint8_t data)
{
if(m_rtc_data_strobe)
{
@@ -714,7 +714,7 @@ WRITE_LINE_MEMBER(aristmk4_state::mkiv_pia_cb2)
}
//output b
-WRITE8_MEMBER(aristmk4_state::mkiv_pia_outb)
+void aristmk4_state::mkiv_pia_outb(uint8_t data)
{
uint8_t emet[5];
int i = 0;
@@ -792,7 +792,7 @@ TIMER_CALLBACK_MEMBER(aristmk4_state::hopper_reset)
}
// Port A read (SW1)
-READ8_MEMBER(aristmk4_state::via_a_r)
+uint8_t aristmk4_state::via_a_r()
{
int psg_ret=0;
@@ -810,7 +810,7 @@ READ8_MEMBER(aristmk4_state::via_a_r)
return psg_ret;
}
-READ8_MEMBER(aristmk4_state::via_b_r)
+uint8_t aristmk4_state::via_b_r()
{
int ret=ioport("via_port_b")->read();
@@ -861,13 +861,13 @@ READ8_MEMBER(aristmk4_state::via_b_r)
return ret;
}
-WRITE8_MEMBER(aristmk4_state::via_a_w)
+void aristmk4_state::via_a_w(uint8_t data)
{
//logerror("VIA port A write %02X\n",data);
m_psg_data = data;
}
-WRITE8_MEMBER(aristmk4_state::via_b_w)
+void aristmk4_state::via_b_w(uint8_t data)
{
m_ay8910_1 = ( data & 0x0F ) ; //only need first 4 bits per schematics
//NOTE: when bit 4 is off, we write to AY1, when bit 4 is on, we write to AY2
@@ -963,7 +963,7 @@ WRITE_LINE_MEMBER(aristmk4_state::via_cb2_w)
// Lamp output
-WRITE8_MEMBER(aristmk4_state::pblp_out)
+void aristmk4_state::pblp_out(uint8_t data)
{
m_lamps[ 1] = BIT(data, 0);
m_lamps[ 5] = BIT(data, 1);
@@ -976,7 +976,7 @@ WRITE8_MEMBER(aristmk4_state::pblp_out)
//logerror("Lights port A %02X\n",data);
}
-WRITE8_MEMBER(aristmk4_state::pbltlp_out)
+void aristmk4_state::pbltlp_out(uint8_t data)
{
m_lamps[ 8] = BIT(data, 0);
m_lamps[12] = BIT(data, 1);
@@ -989,32 +989,32 @@ WRITE8_MEMBER(aristmk4_state::pbltlp_out)
//logerror("Lights port B: %02X\n",data);
}
-WRITE8_MEMBER(aristmk4_state::mlamps)
+void aristmk4_state::mlamps(uint8_t data)
{
/* TAKE WIN AND GAMBLE LAMPS */
m_lamps[18] = BIT(data, 5);
m_lamps[13] = BIT(data, 6);
}
-WRITE8_MEMBER(aristmk4_state::zn434_w)
+void aristmk4_state::zn434_w(uint8_t data)
{
- // Introducted to prevent warning in log for write to AY1 PORT B
- // this is a write to the ZN434 DA convertors..
+ // Introduced to prevent warning in log for write to AY1 PORT B
+ // this is a write to the ZN434 DA converters..
}
-READ8_MEMBER(aristmk4_state::cashcade_r)
+uint8_t aristmk4_state::cashcade_r()
{
/* work around for cashcade games */
return cashcade_p[(m_cashcade_c++)%15];
}
-WRITE8_MEMBER(aristmk4_state::mk4_printer_w)
+void aristmk4_state::mk4_printer_w(uint8_t data)
{
//logerror("Printer: %c %d\n",data,data);
}
-READ8_MEMBER(aristmk4_state::mk4_printer_r)
+uint8_t aristmk4_state::mk4_printer_r()
{
return 0;
}
@@ -1685,17 +1685,17 @@ GFXDECODE_END
/* read m/c number */
-READ8_MEMBER(aristmk4_state::pa1_r)
+uint8_t aristmk4_state::pa1_r()
{
return (ioport("SW3")->read() << 4) + ioport("SW4")->read();
}
-READ8_MEMBER(aristmk4_state::pb1_r)
+uint8_t aristmk4_state::pb1_r()
{
return (ioport("SW5")->read() << 4) + ioport("SW6")->read();
}
-READ8_MEMBER(aristmk4_state::pc1_r)
+uint8_t aristmk4_state::pc1_r()
{
return 0;
}
diff --git a/src/mame/drivers/arsystems.cpp b/src/mame/drivers/arsystems.cpp
index 41608be4f40..ab846cbb586 100644
--- a/src/mame/drivers/arsystems.cpp
+++ b/src/mame/drivers/arsystems.cpp
@@ -91,7 +91,7 @@ public:
DECLARE_WRITE16_MEMBER(arcadia_multibios_change_game);
template DECLARE_CUSTOM_INPUT_MEMBER(coin_counter_r);
DECLARE_INPUT_CHANGED_MEMBER(coin_changed_callback);
- DECLARE_WRITE8_MEMBER(arcadia_cia_0_portb_w);
+ void arcadia_cia_0_portb_w(uint8_t data);
private:
inline void generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0);
@@ -142,7 +142,7 @@ WRITE16_MEMBER(arcadia_amiga_state::arcadia_multibios_change_game)
*
*************************************/
-WRITE8_MEMBER(arcadia_amiga_state::arcadia_cia_0_portb_w)
+void arcadia_amiga_state::arcadia_cia_0_portb_w(uint8_t data)
{
/* writing a 0 in the low bit clears one of the coins */
if ((data & 1) == 0)
diff --git a/src/mame/drivers/astrocde.cpp b/src/mame/drivers/astrocde.cpp
index e17eef39264..f3123075e8a 100644
--- a/src/mame/drivers/astrocde.cpp
+++ b/src/mame/drivers/astrocde.cpp
@@ -220,7 +220,7 @@ WRITE8_MEMBER(seawolf2_state::sound_2_w)// Port 41
*
*************************************/
-READ8_MEMBER(astrocde_state::input_mux_r)
+uint8_t astrocde_state::input_mux_r(offs_t offset)
{
return m_handle[offset & 3].read_safe(0xff);
}
@@ -395,7 +395,7 @@ WRITE8_MEMBER(tenpindx_state::lights_w)
*
*************************************/
-WRITE8_MEMBER(astrocde_state::votrax_speech_w)
+void astrocde_state::votrax_speech_w(uint8_t data)
{
m_votrax->inflection_w(data >> 6);
m_votrax->write(data & 0x3f);
diff --git a/src/mame/drivers/astrohome.cpp b/src/mame/drivers/astrohome.cpp
index dddcea45f54..931510dffdf 100644
--- a/src/mame/drivers/astrohome.cpp
+++ b/src/mame/drivers/astrohome.cpp
@@ -37,8 +37,9 @@ public:
{ }
void astrocde(machine_config &config);
+
private:
- DECLARE_READ8_MEMBER(inputs_r);
+ uint8_t inputs_r(offs_t offset);
DECLARE_MACHINE_START(astrocde);
void astrocade_io(address_map &map);
@@ -105,7 +106,7 @@ void astrocde_home_state::astrocade_io(address_map &map)
*
*************************************/
-READ8_MEMBER(astrocde_home_state::inputs_r)
+uint8_t astrocde_home_state::inputs_r(offs_t offset)
{
if (BIT(offset, 2))
return m_keypad[offset & 3]->read();
diff --git a/src/mame/drivers/at.cpp b/src/mame/drivers/at.cpp
index facffe41658..06b8b047e0d 100644
--- a/src/mame/drivers/at.cpp
+++ b/src/mame/drivers/at.cpp
@@ -241,10 +241,10 @@ private:
required_device m_isabus;
required_device m_speaker;
- DECLARE_READ16_MEMBER( wd7600_ior );
- DECLARE_WRITE16_MEMBER( wd7600_iow );
+ uint16_t wd7600_ior(offs_t offset);
+ void wd7600_iow(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER( wd7600_hold );
- DECLARE_WRITE8_MEMBER( wd7600_tc ) { m_isabus->eop_w(offset, data); }
+ void wd7600_tc(offs_t offset, uint8_t data) { m_isabus->eop_w(offset, data); }
DECLARE_WRITE_LINE_MEMBER( wd7600_spkr ) { m_speaker->level_w(state); }
void megapc_io(address_map &map);
void megapc_map(address_map &map);
@@ -383,7 +383,7 @@ void at_vrom_fix_state::init_megapcpla()
ROM[0x3ffff] = 0x41; // to correct checksum
}
-READ16_MEMBER( megapc_state::wd7600_ior )
+uint16_t megapc_state::wd7600_ior(offs_t offset)
{
if (offset < 4)
return m_isabus->dack_r(offset);
@@ -391,7 +391,7 @@ READ16_MEMBER( megapc_state::wd7600_ior )
return m_isabus->dack16_r(offset);
}
-WRITE16_MEMBER( megapc_state::wd7600_iow )
+void megapc_state::wd7600_iow(offs_t offset, uint16_t data)
{
if (offset < 4)
m_isabus->dack_w(offset, data);
diff --git a/src/mame/drivers/atari400.cpp b/src/mame/drivers/atari400.cpp
index 8330ea22bfc..b87e7ab7a47 100644
--- a/src/mame/drivers/atari400.cpp
+++ b/src/mame/drivers/atari400.cpp
@@ -285,17 +285,17 @@ private:
DECLARE_MACHINE_RESET(a400);
- DECLARE_WRITE8_MEMBER(gtia_cb);
+ void gtia_cb(uint8_t data);
- DECLARE_WRITE8_MEMBER(a600xl_pia_pb_w);
- DECLARE_WRITE8_MEMBER(a800xl_pia_pb_w);
+ void a600xl_pia_pb_w(uint8_t data);
+ void a800xl_pia_pb_w(uint8_t data);
DECLARE_READ8_MEMBER(read_d5xx); // at least one cart type can enable/disable roms when reading
DECLARE_WRITE8_MEMBER(disable_cart);
// these are needed to handle carts which can disable ROM without
// installing/disinstalling continuously RAM and ROM (with e.g. big
- // preformance hit in Williams carts)
+ // performance hit in Williams carts)
DECLARE_READ8_MEMBER(special_read_8000);
DECLARE_WRITE8_MEMBER(special_write_8000);
DECLARE_READ8_MEMBER(special_read_a000);
@@ -2078,7 +2078,7 @@ MACHINE_START_MEMBER( a400_state, a5200 )
*
**************************************************************/
-WRITE8_MEMBER(a400_state::gtia_cb)
+void a400_state::gtia_cb(uint8_t data)
{
m_dac->write(BIT(data, 3));
}
@@ -2089,12 +2089,12 @@ WRITE8_MEMBER(a400_state::gtia_cb)
*
**************************************************************/
-WRITE8_MEMBER(a400_state::a600xl_pia_pb_w)
+void a400_state::a600xl_pia_pb_w(uint8_t data)
{
m_mmu = data;
}
-WRITE8_MEMBER(a400_state::a800xl_pia_pb_w)
+void a400_state::a800xl_pia_pb_w(uint8_t data)
{
if (m_pia->port_b_z_mask() != 0xff)
{
diff --git a/src/mame/drivers/atarigt.cpp b/src/mame/drivers/atarigt.cpp
index 91d4f8a0ce7..e17cbfc0c1e 100644
--- a/src/mame/drivers/atarigt.cpp
+++ b/src/mame/drivers/atarigt.cpp
@@ -126,7 +126,7 @@ void atarigt_state::machine_start()
*
*************************************/
-WRITE8_MEMBER(atarigt_state::cage_irq_callback)
+void atarigt_state::cage_irq_callback(uint8_t data)
{
m_maincpu->set_input_line(M68K_IRQ_3, data != 0 ? ASSERT_LINE : CLEAR_LINE);
}
diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp
index 84330de60d4..5d31a1442ab 100644
--- a/src/mame/drivers/atarist.cpp
+++ b/src/mame/drivers/atarist.cpp
@@ -521,7 +521,7 @@ void st_state::mouse_tick()
// ikbd_port1_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::ikbd_port1_r )
+uint8_t st_state::ikbd_port1_r()
{
/*
@@ -565,7 +565,7 @@ READ8_MEMBER( st_state::ikbd_port1_r )
// ikbd_port2_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::ikbd_port2_r )
+uint8_t st_state::ikbd_port2_r()
{
/*
@@ -592,7 +592,7 @@ READ8_MEMBER( st_state::ikbd_port2_r )
// ikbd_port2_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::ikbd_port2_w )
+void st_state::ikbd_port2_w(uint8_t data)
{
/*
@@ -618,7 +618,7 @@ WRITE8_MEMBER( st_state::ikbd_port2_w )
// ikbd_port3_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::ikbd_port3_w )
+void st_state::ikbd_port3_w(uint8_t data)
{
/*
@@ -647,7 +647,7 @@ WRITE8_MEMBER( st_state::ikbd_port3_w )
// ikbd_port4_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::ikbd_port4_r )
+uint8_t st_state::ikbd_port4_r()
{
/*
@@ -681,7 +681,7 @@ READ8_MEMBER( st_state::ikbd_port4_r )
// ikbd_port4_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::ikbd_port4_w )
+void st_state::ikbd_port4_w(uint8_t data)
{
/*
@@ -1698,7 +1698,7 @@ INPUT_PORTS_END
// ay8910_interface psg_intf
//-------------------------------------------------
-WRITE8_MEMBER( st_state::psg_pa_w )
+void st_state::psg_pa_w(uint8_t data)
{
/*
@@ -1742,7 +1742,7 @@ WRITE8_MEMBER( st_state::psg_pa_w )
// ay8910_interface stbook_psg_intf
//-------------------------------------------------
-WRITE8_MEMBER( stbook_state::psg_pa_w )
+void stbook_state::psg_pa_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/atarisy1.cpp b/src/mame/drivers/atarisy1.cpp
index 9746a600f67..936e4035119 100644
--- a/src/mame/drivers/atarisy1.cpp
+++ b/src/mame/drivers/atarisy1.cpp
@@ -13,9 +13,11 @@
* Road Runner (1985) [3 sets]
* Road Blasters (1987) [10 sets]
- Known bugs:
+ TODO:
* indytemp: "Welcome" doesn't play at start (regression). Code for
speech (0x46) is written but fails to play due to timing issues.
+ * is MOTHERBOARD_ALPHA actually 16KB, or maybe only for the LSI version?
+ see romsets of indytempc, roadblstcg
****************************************************************************
@@ -883,24 +885,24 @@ void atarisy1_state::roadb110(machine_config &config)
ROM_LOAD16_BYTE_BIOS(0, "136032.205.l13", 0x00000, 0x04000, CRC(88d0be26) SHA1(d124045eccc562ff0423b23a240e27ad740fa0c9) ) \
ROM_LOAD16_BYTE_BIOS(0, "136032.206.l12", 0x00001, 0x04000, CRC(3c79ef05) SHA1(20fdca7131478e1ee12691bdafd2d5bb74cbd16f) ) \
ROM_SYSTEM_BIOS( 1, "ttl1", "TTL Motherboard (Rev 1)" ) \
- ROM_LOAD16_BYTE_BIOS(1, "136032.105.l13", 0x00000, 0x04000, CRC(690b37d3) SHA1(547372f1044a3442aa52fcd2b3546540aba59344) ) \
+ ROM_LOAD16_BYTE_BIOS(1, "136032.105.l13", 0x00000, 0x04000, CRC(79021d3c) SHA1(85febd34bcb166fc3326b5e5e4e80e157b660a08) ) \
ROM_LOAD16_BYTE_BIOS(1, "136032.106.l12", 0x00001, 0x04000, CRC(76ee86c4) SHA1(cbcd424510435a04e9041967a13781fd19b0f2c4) ) \
ROM_SYSTEM_BIOS( 2, "lsi", "LSI Motherboard" ) \
ROM_LOAD16_BYTE_BIOS(2, "136032.114.j11", 0x00000, 0x04000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) ) \
- ROM_LOAD16_BYTE_BIOS(2, "136032.115.j10", 0x00001, 0x04000, CRC(7275b4dc) SHA1(0896ab37ea832a1335046353612c1b4c86d8d040) )
+ ROM_LOAD16_BYTE_BIOS(2, "136032.115.j10", 0x00001, 0x04000, CRC(9af9fe29) SHA1(1d5077662e4111ece9f8a5124394dad8b1abdc13) )
#define MOTHERBOARD_ALPHA \
ROM_LOAD_BIOS(0, "136032.104.f5", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) ) \
ROM_LOAD_BIOS(1, "136032.104.f5", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) ) \
- ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(315e4bea) SHA1(a00ea23fbdbf075f8f3f184275be83387e8ac82b) ) /* is this bad? it just seems to be missing upper nibbles and hence some of the planes? */
+ ROM_LOAD_BIOS(2, "136032.107.b2", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) )
#define MOTHERBOARD_PROMS \
- ROM_LOAD_BIOS(0, "136032.101.e3", 0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
- ROM_LOAD_BIOS(0, "136032.102.e5", 0x00000, 0x00100, CRC(ebf1e0ae) SHA1(2d327e78832edd67ca3909c25b8c8c839637a1ed) ) \
- ROM_LOAD_BIOS(0, "136032.103.f7.bin", 0x00000, 0x000eb, CRC(92d6a0b4) SHA1(0a42a4816c89447b16e1f3245409591efea98a4a) ) /* N82S153 */ \
- ROM_LOAD_BIOS(1, "136032.101.e3", 0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
- ROM_LOAD_BIOS(1, "136032.102.e5", 0x00000, 0x00100, CRC(ebf1e0ae) SHA1(2d327e78832edd67ca3909c25b8c8c839637a1ed) ) \
- ROM_LOAD_BIOS(1, "136032.103.f7.bin", 0x00000, 0x000eb, CRC(92d6a0b4) SHA1(0a42a4816c89447b16e1f3245409591efea98a4a) ) /* N82S153 */
+ ROM_LOAD_BIOS(0, "136032.101.e3", 0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
+ ROM_LOAD_BIOS(0, "136032.102.e5", 0x00000, 0x00100, CRC(ebf1e0ae) SHA1(2d327e78832edd67ca3909c25b8c8c839637a1ed) ) \
+ ROM_LOAD_BIOS(0, "136032.103.f7", 0x00000, 0x000eb, CRC(92d6a0b4) SHA1(0a42a4816c89447b16e1f3245409591efea98a4a) ) /* N82S153 */ \
+ ROM_LOAD_BIOS(1, "136032.101.e3", 0x00000, 0x00100, CRC(7e84972a) SHA1(84d422b53547271e3a07342704a05ef481db3f99) ) \
+ ROM_LOAD_BIOS(1, "136032.102.e5", 0x00000, 0x00100, CRC(ebf1e0ae) SHA1(2d327e78832edd67ca3909c25b8c8c839637a1ed) ) \
+ ROM_LOAD_BIOS(1, "136032.103.f7", 0x00000, 0x000eb, CRC(92d6a0b4) SHA1(0a42a4816c89447b16e1f3245409591efea98a4a) ) /* N82S153 */
ROM_START( atarisy1 )
ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
@@ -1840,31 +1842,29 @@ Dumped from the original Atari
// different IC positions and different GFX rom configuration.
ROM_START( roadblstgu )
ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
- // expects bios roms 114/115, does not work properly with others (corrupt insert coin text)
- ROM_LOAD16_BYTE( "136032-114.j7", 0x00000, 0x04000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) )
- ROM_LOAD16_BYTE( "136032-115.j8", 0x00001, 0x04000, CRC(7275b4dc) SHA1(0896ab37ea832a1335046353612c1b4c86d8d040) )
+ MOTHERBOARD_BIOS
+ ROM_DEFAULT_BIOS("lsi") // only works with LSI BIOS
ROM_LOAD16_BYTE( "136048-1257.c11", 0x010000, 0x008000, CRC(604a5cc0) SHA1(a057a2e47ac7b7c727e9c1bfce28ba955ce75442) )
ROM_LOAD16_BYTE( "136048-1258.a11", 0x010001, 0x008000, CRC(3d10929d) SHA1(aa4d568e5d5b62fb8ea11094bad78bb8f713404e) )
ROM_LOAD16_BYTE( "136048-1259.c13", 0x020000, 0x008000, CRC(b9c807ac) SHA1(ca955790c98037045aa49425392581f21d33caa9) )
ROM_LOAD16_BYTE( "136048-1260.a13", 0x020001, 0x008000, CRC(eaeb1196) SHA1(82bf14244b342c97adde893f19a050baab30ab1e) )
-
- ROM_LOAD16_BYTE( "136048-1163.c12", 0x050000, 0x008000, CRC(054273b2) SHA1(4c820c00d3b67825c361edc9615c89c2a9a1c6d3) )//
- ROM_LOAD16_BYTE( "136048-1164.a12", 0x050001, 0x008000, CRC(49181bec) SHA1(79e042e4f079a9806ef12c5c8dfdc2e6e4f90011) )//
- ROM_LOAD16_BYTE( "136048-1165.c14", 0x060000, 0x008000, CRC(f63dc29a) SHA1(e54637b9d0b271aa9b58e89a442ac03ec812e1eb) )//
- ROM_LOAD16_BYTE( "136048-1166.a14", 0x060001, 0x008000, CRC(b1fc5955) SHA1(b860213a9b5ae7547c258812045e71795129598f) )//
- ROM_LOAD16_BYTE( "136048-1167.c16", 0x070000, 0x008000, CRC(c6d30d6f) SHA1(acb552976b2dcfa585097ea246ca88034549c8ab) )//
- ROM_LOAD16_BYTE( "136048-1168.a16", 0x070001, 0x008000, CRC(16951020) SHA1(5e5a6ad4ae87723060232c7ecb837f5fc2a9be68) )//
- ROM_LOAD16_BYTE( "136048-2147.c17", 0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )//
- ROM_LOAD16_BYTE( "136048-2148.a17", 0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )//
+ ROM_LOAD16_BYTE( "136048-1163.c12", 0x050000, 0x008000, CRC(054273b2) SHA1(4c820c00d3b67825c361edc9615c89c2a9a1c6d3) )
+ ROM_LOAD16_BYTE( "136048-1164.a12", 0x050001, 0x008000, CRC(49181bec) SHA1(79e042e4f079a9806ef12c5c8dfdc2e6e4f90011) )
+ ROM_LOAD16_BYTE( "136048-1165.c14", 0x060000, 0x008000, CRC(f63dc29a) SHA1(e54637b9d0b271aa9b58e89a442ac03ec812e1eb) )
+ ROM_LOAD16_BYTE( "136048-1166.a14", 0x060001, 0x008000, CRC(b1fc5955) SHA1(b860213a9b5ae7547c258812045e71795129598f) )
+ ROM_LOAD16_BYTE( "136048-1167.c16", 0x070000, 0x008000, CRC(c6d30d6f) SHA1(acb552976b2dcfa585097ea246ca88034549c8ab) )
+ ROM_LOAD16_BYTE( "136048-1168.a16", 0x070001, 0x008000, CRC(16951020) SHA1(5e5a6ad4ae87723060232c7ecb837f5fc2a9be68) )
+ ROM_LOAD16_BYTE( "136048-2147.c17", 0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )
+ ROM_LOAD16_BYTE( "136048-2148.a17", 0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136048-1149.e14", 0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) )
- ROM_LOAD( "136048-1169.e15", 0x8000, 0x4000, CRC(ee318052) SHA1(f66ff39499697b7439dc62567e727fec769c1505) )//
- ROM_LOAD( "136048-1170.e17", 0xc000, 0x4000, CRC(75dfec33) SHA1(3092348b98419bb23181d21406733d5d21cd3d82) )//
+ ROM_LOAD( "136048-1169.e15", 0x8000, 0x4000, CRC(ee318052) SHA1(f66ff39499697b7439dc62567e727fec769c1505) )
+ ROM_LOAD( "136048-1170.e17", 0xc000, 0x4000, CRC(75dfec33) SHA1(3092348b98419bb23181d21406733d5d21cd3d82) )
ROM_REGION( 0x2000, "alpha", 0 )
- ROM_LOAD( "136032.107.b2", 0x00000, 0x02000, CRC(7a29dc07) SHA1(72ba464da01bd6d3a91b8d9997d5ac14b6f47aad) )
+ MOTHERBOARD_ALPHA
ROM_REGION( 0x380000, "tiles", ROMREGION_INVERT | ROMREGION_ERASEFF )
ROM_LOAD( "136048-1101.b4", 0x000000, 0x008000, CRC(fe342d27) SHA1(72deac16ab9b6b811f49d70d700d6bc3a904f9d5) ) /* bank 1, plane 0 *///
@@ -1907,11 +1907,7 @@ ROM_START( roadblstgu )
ROM_LOAD( "136048-1174.a7", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )//
ROM_LOAD( "136048-1173.a5", 0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )//
- // FIXME: this game requires the LSI BIOS, so why are we loading the PROMs that are only present on TTL boards?
ROM_REGION( 0x201, "motherbrd_proms", 0) /* Motherboard PROM's (Only used by TTL version.) */
- ROM_SYSTEM_BIOS( 0, "ttl", "TTL Motherboard (Rev 2)" )
- ROM_SYSTEM_BIOS( 1, "ttl1", "TTL Motherboard (Rev 1)" )
- ROM_SYSTEM_BIOS( 2, "lsi", "LSI Motherboard" )
MOTHERBOARD_PROMS
ROM_END
@@ -2332,8 +2328,8 @@ Note: The text on the board says "cocktail" but I suppose this is the cockpit ve
ROM_START( roadblstcg )
ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
- ROM_LOAD16_BYTE( "136032-117-l9", 0x000001, 0x004000, CRC(9af9fe29) SHA1(1d5077662e4111ece9f8a5124394dad8b1abdc13) ) // alt bios roms? (to put in bios structure, or are they specific to this set?)
- ROM_LOAD16_BYTE( "136032-116.m9", 0x000000, 0x004000, CRC(195c54ad) SHA1(d7cda3cd3db4c6f77074ca05e96ae11b62e048b7) ) //
+ MOTHERBOARD_BIOS
+ ROM_DEFAULT_BIOS("lsi") // only works with LSI BIOS
ROM_LOAD16_BYTE( "136048-1235.7p", 0x010000, 0x008000, CRC(58b2998f) SHA1(7e9f4ca2b15cf60c61e0615f214f9fcc518cb194) )
ROM_LOAD16_BYTE( "136048-1236.8p", 0x010001, 0x008000, CRC(02e23a40) SHA1(6525351669e95dab869c7adc7d992d12d9313aee) )
@@ -2348,7 +2344,6 @@ ROM_START( roadblstcg )
ROM_LOAD16_BYTE( "136048-2147.7k", 0x080000, 0x004000, CRC(5c1adf67) SHA1(53838a2f5059797991aa337a7bec32f7e694610a) )
ROM_LOAD16_BYTE( "136048-2148.8k", 0x080001, 0x004000, CRC(d9ac8966) SHA1(7d056c1eb8184b4261c5713b0d5799b2fd8bde2a) )
-
ROM_REGION( 0x10000, "audiocpu", 0 ) /* 64k for 6502 code */
ROM_LOAD( "136048-1149.c8", 0x4000, 0x4000, CRC(2e54f95e) SHA1(5056ddec3c88384ada1d2ee9b1532b9ba9f34e08) ) //
ROM_LOAD( "136048-1150.d7", 0x8000, 0x8000, CRC(e89e7fc8) SHA1(d944bc27de2f2f675680c62d999cacf84a08fd4b) )
@@ -2402,11 +2397,7 @@ ROM_START( roadblstcg )
ROM_LOAD( "136048-1174.12d", 0x000000, 0x000200, CRC(db4a4d53) SHA1(c5468f3585ec9bc23c9ee990b3ae3738b0309823) )
ROM_LOAD( "136048-1173.2d", 0x000200, 0x000200, CRC(c80574af) SHA1(9a3dc83f70e79915ce0db3e6e69b5dcfee3acb6f) )
- // FIXME: this game requires the LSI BIOS, so why are we loading the PROMs that are only present on TTL boards?
ROM_REGION( 0x201, "motherbrd_proms", 0) /* Motherboard PROM's (Only used by TTL version.) */
- ROM_SYSTEM_BIOS( 0, "ttl", "TTL Motherboard (Rev 2)" )
- ROM_SYSTEM_BIOS( 1, "ttl1", "TTL Motherboard (Rev 1)" )
- ROM_SYSTEM_BIOS( 2, "lsi", "LSI Motherboard" )
MOTHERBOARD_PROMS
ROM_END
@@ -2414,6 +2405,8 @@ ROM_END
ROM_START( roadblstc1 )
ROM_REGION( 0x88000, "maincpu", 0 ) /* 8.5*64k for 68000 code & slapstic ROM */
MOTHERBOARD_BIOS
+ ROM_DEFAULT_BIOS("lsi") // only works with LSI BIOS
+
ROM_LOAD16_BYTE( "136048-2135.7p", 0x010000, 0x008000, CRC(c0ef86df) SHA1(7dd4d2acba55dc001e009c37fae5a97a53ea1e66) )
ROM_LOAD16_BYTE( "136048-2136.8p", 0x010001, 0x008000, CRC(9637e2f0) SHA1(86257e1316356c1a7d86bcf7b57bcaff33ac3df5) )
ROM_LOAD16_BYTE( "136048-2137.7r", 0x020000, 0x008000, CRC(5382ab85) SHA1(1511dfaf8537980e506e4180a23ffcfcfec81451) )
@@ -2551,7 +2544,7 @@ GAME( 1985, indytemp2, indytemp, indytemp, indytemp, atarisy1_state, init_indyt
GAME( 1985, indytemp3, indytemp, indytemp, indytemp, atarisy1_state, init_indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 3)", MACHINE_IMPERFECT_SOUND )
GAME( 1985, indytemp4, indytemp, indytemp, indytemp, atarisy1_state, init_indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (set 4)", MACHINE_IMPERFECT_SOUND )
GAME( 1985, indytempd, indytemp, indytemp, indytemp, atarisy1_state, init_indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (German)", MACHINE_IMPERFECT_SOUND )
-GAME( 1985, indytempc, indytemp, indytemp, indytemc, atarisy1_state, init_indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (Cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1985, indytempc, indytemp, indytemp, indytemc, atarisy1_state, init_indytemp, ROT0, "Atari Games", "Indiana Jones and the Temple of Doom (cocktail)", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS )
GAME( 1985, roadrunn, atarisy1, roadrunn, roadrunn, atarisy1r_state, init_roadrunn, ROT0, "Atari Games", "Road Runner (rev 2)", 0 )
GAME( 1985, roadrunn2, roadrunn, roadrunn, roadrunn, atarisy1r_state, init_roadrunn, ROT0, "Atari Games", "Road Runner (rev 1+)", 0 )
@@ -2565,6 +2558,6 @@ GAME( 1987, roadblst2, roadblst, roadb110, roadblst, atarisy1r_state, init_road
GAME( 1987, roadblstg1, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (upright, German, rev 1)", 0 )
GAME( 1987, roadblst1, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (upright, rev 1)", 0 )
GAME( 1987, roadblstc, roadblst, roadb110, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (cockpit, rev 2)", 0 )
-GAME( 1987, roadblstcg, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (cockpit, German, rev 1)", MACHINE_IMPERFECT_GRAPHICS )
-GAME( 1987, roadblstc1, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (cockpit, rev 1)", MACHINE_IMPERFECT_GRAPHICS )
+GAME( 1987, roadblstcg, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (cockpit, German, rev 1)", 0 )
+GAME( 1987, roadblstc1, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (cockpit, rev 1)", 0 )
GAME( 1987, roadblstgu, roadblst, roadb109, roadblst, atarisy1r_state, init_roadblst, ROT0, "Atari Games", "Road Blasters (upright, German, rev ?)", 0 )
diff --git a/src/mame/drivers/atetris.cpp b/src/mame/drivers/atetris.cpp
index 65ead905379..42a3ead991f 100644
--- a/src/mame/drivers/atetris.cpp
+++ b/src/mame/drivers/atetris.cpp
@@ -237,7 +237,7 @@ void atetris_mcu_state::atetrisb3_map(address_map &map)
*
*************************************/
-READ8_MEMBER(atetris_mcu_state::mcu_bus_r)
+uint8_t atetris_mcu_state::mcu_bus_r()
{
switch (m_mcu->p2_r() & 0xf0)
{
@@ -252,13 +252,13 @@ READ8_MEMBER(atetris_mcu_state::mcu_bus_r)
}
}
-WRITE8_MEMBER(atetris_mcu_state::mcu_p2_w)
+void atetris_mcu_state::mcu_p2_w(uint8_t data)
{
if ((data & 0xc0) == 0x80)
m_sn[(data >> 4) & 3]->write(m_mcu->p1_r());
}
-WRITE8_MEMBER(atetris_mcu_state::mcu_reg_w)
+void atetris_mcu_state::mcu_reg_w(offs_t offset, uint8_t data)
{
// FIXME: a lot of sound writes seem to get lost this way; why doesn't that hurt?
m_soundlatch[0]->write(offset | 0x20);
diff --git a/src/mame/drivers/atlantis.cpp b/src/mame/drivers/atlantis.cpp
index 0dc5af430bf..f7c40ac8d6f 100644
--- a/src/mame/drivers/atlantis.cpp
+++ b/src/mame/drivers/atlantis.cpp
@@ -149,8 +149,8 @@ private:
READ8_MEMBER (exprom_r);
WRITE8_MEMBER(exprom_w);
- WRITE32_MEMBER(user_io_output);
- READ32_MEMBER(user_io_input);
+ void user_io_output(uint32_t data);
+ uint32_t user_io_input();
int m_user_io_state;
// Board Ctrl Reg Offsets
@@ -387,13 +387,13 @@ WRITE32_MEMBER(atlantis_state::dcs3_fifo_full_w)
/*************************************
* PCI9050 User I/O handlers
*************************************/
-WRITE32_MEMBER(atlantis_state::user_io_output)
+void atlantis_state::user_io_output(uint32_t data)
{
m_user_io_state = data;
logerror("atlantis_state::user_io_output m_user_io_state = %1x\n", m_user_io_state);
}
-READ32_MEMBER(atlantis_state::user_io_input)
+uint32_t atlantis_state::user_io_input()
{
// user io 0: 6016 nCONFIG -- output
// user io 1: 6016 nSTATUS -- input
diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp
index 34d0327143d..775147a910a 100644
--- a/src/mame/drivers/atom.cpp
+++ b/src/mame/drivers/atom.cpp
@@ -183,7 +183,7 @@ QUICKLOAD_LOAD_MEMBER(atom_state::quickload_cb)
eprom_r - EPROM slot select read
-------------------------------------------------*/
-READ8_MEMBER( atomeb_state::eprom_r )
+uint8_t atomeb_state::eprom_r()
{
return m_eprom;
}
@@ -192,7 +192,7 @@ READ8_MEMBER( atomeb_state::eprom_r )
eprom_w - EPROM slot select write
-------------------------------------------------*/
-WRITE8_MEMBER( atomeb_state::eprom_w )
+void atomeb_state::eprom_w(uint8_t data)
{
/*
@@ -217,7 +217,7 @@ WRITE8_MEMBER( atomeb_state::eprom_w )
ext_r - read external roms at 0xa000
-------------------------------------------------*/
-READ8_MEMBER( atomeb_state::ext_r )
+uint8_t atomeb_state::ext_r(offs_t offset)
{
if (m_ext[m_eprom & 0x0f]->exists())
return m_ext[m_eprom & 0x0f]->read_rom(offset);
@@ -229,7 +229,7 @@ READ8_MEMBER( atomeb_state::ext_r )
dor_r - read DOS roms at 0xe000
-------------------------------------------------*/
-READ8_MEMBER( atomeb_state::dos_r )
+uint8_t atomeb_state::dos_r(offs_t offset)
{
if (m_e0->exists() && !BIT(m_eprom, 7))
return m_e0->read_rom(offset);
@@ -452,7 +452,7 @@ INPUT_PORTS_END
I8255 interface
-------------------------------------------------*/
-WRITE8_MEMBER( atom_state::ppi_pa_w )
+void atom_state::ppi_pa_w(uint8_t data)
{
/*
@@ -479,7 +479,7 @@ WRITE8_MEMBER( atom_state::ppi_pa_w )
m_vdg->gm2_w(BIT(data, 7));
}
-READ8_MEMBER( atom_state::ppi_pb_r )
+uint8_t atom_state::ppi_pb_r()
{
/*
@@ -517,7 +517,7 @@ READ8_MEMBER( atom_state::ppi_pb_r )
return data;
}
-READ8_MEMBER( atom_state::ppi_pc_r )
+uint8_t atom_state::ppi_pc_r()
{
/*
@@ -551,7 +551,7 @@ READ8_MEMBER( atom_state::ppi_pc_r )
return data;
}
-WRITE8_MEMBER( atom_state::ppi_pc_w )
+void atom_state::ppi_pc_w(uint8_t data)
{
/*
@@ -629,7 +629,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atom_state::cassette_output_tick)
mc6847 interface
-------------------------------------------------*/
-READ8_MEMBER( atom_state::vdg_videoram_r )
+uint8_t atom_state::vdg_videoram_r(offs_t offset)
{
if (offset == ~0) return 0xff;
diff --git a/src/mame/drivers/atpci.cpp b/src/mame/drivers/atpci.cpp
index e7c4c3e46d0..38811b20388 100644
--- a/src/mame/drivers/atpci.cpp
+++ b/src/mame/drivers/atpci.cpp
@@ -27,7 +27,7 @@ public:
protected:
void at_softlists(machine_config &config);
- DECLARE_WRITE8_MEMBER(boot_state_w);
+ void boot_state_w(uint8_t data);
void tx_config(device_t *device);
void sb_config(device_t *device);
@@ -40,7 +40,7 @@ private:
required_device m_maincpu;
};
-WRITE8_MEMBER(at586_state::boot_state_w)
+void at586_state::boot_state_w(uint8_t data)
{
logerror("Boot state %02x\n", data);
printf("[%02X]",data);
diff --git a/src/mame/drivers/ave_arb.cpp b/src/mame/drivers/ave_arb.cpp
index 47349ee1fdf..0f376257b99 100644
--- a/src/mame/drivers/ave_arb.cpp
+++ b/src/mame/drivers/ave_arb.cpp
@@ -100,14 +100,14 @@ private:
// cartridge
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(cart_load);
- DECLARE_READ8_MEMBER(cartridge_r);
+ u8 cartridge_r(offs_t offset);
u32 m_cart_mask;
// I/O handlers
void update_display();
- DECLARE_WRITE8_MEMBER(leds_w);
- DECLARE_WRITE8_MEMBER(control_w);
- DECLARE_READ8_MEMBER(input_r);
+ void leds_w(u8 data);
+ void control_w(u8 data);
+ u8 input_r();
u16 m_inp_mux;
u16 m_led_select;
@@ -156,7 +156,7 @@ DEVICE_IMAGE_LOAD_MEMBER(arb_state::cart_load)
return image_init_result::PASS;
}
-READ8_MEMBER(arb_state::cartridge_r)
+u8 arb_state::cartridge_r(offs_t offset)
{
return m_cart->read_rom(offset & m_cart_mask);
}
@@ -175,14 +175,14 @@ void arb_state::update_display()
m_display->matrix(m_led_select | 0x200, m_led_data);
}
-WRITE8_MEMBER(arb_state::leds_w)
+void arb_state::leds_w(u8 data)
{
// PA0-PA7: led latch input
m_led_latch = ~data & 0xff;
update_display();
}
-WRITE8_MEMBER(arb_state::control_w)
+void arb_state::control_w(u8 data)
{
// PB0-PB3: 74145 A-D
// 74145 0-8: input mux, led row select
@@ -197,7 +197,7 @@ WRITE8_MEMBER(arb_state::control_w)
m_dac->write(BIT(data, 7));
}
-READ8_MEMBER(arb_state::input_r)
+u8 arb_state::input_r()
{
u8 data = 0;
diff --git a/src/mame/drivers/b16.cpp b/src/mame/drivers/b16.cpp
index 2b044eda37f..fb9c96f70c9 100644
--- a/src/mame/drivers/b16.cpp
+++ b/src/mame/drivers/b16.cpp
@@ -57,8 +57,8 @@ private:
DECLARE_WRITE8_MEMBER(b16_6845_data_w);
DECLARE_READ8_MEMBER(unk_dev_r);
DECLARE_WRITE8_MEMBER(unk_dev_w);
- DECLARE_READ8_MEMBER(memory_read_byte);
- DECLARE_WRITE8_MEMBER(memory_write_byte);
+ uint8_t memory_read_byte(offs_t offset);
+ void memory_write_byte(offs_t offset, uint8_t data);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -253,13 +253,13 @@ static GFXDECODE_START( gfx_b16 )
GFXDECODE_ENTRY( "pcg", 0x0000, b16_charlayout, 0, 1 )
GFXDECODE_END
-READ8_MEMBER(b16_state::memory_read_byte)
+uint8_t b16_state::memory_read_byte(offs_t offset)
{
address_space& prog_space = m_maincpu->space(AS_PROGRAM);
return prog_space.read_byte(offset);
}
-WRITE8_MEMBER(b16_state::memory_write_byte)
+void b16_state::memory_write_byte(offs_t offset, uint8_t data)
{
address_space& prog_space = m_maincpu->space(AS_PROGRAM);
return prog_space.write_byte(offset, data);
diff --git a/src/mame/drivers/babbage.cpp b/src/mame/drivers/babbage.cpp
index 2681cdb1cbe..dafc874de14 100644
--- a/src/mame/drivers/babbage.cpp
+++ b/src/mame/drivers/babbage.cpp
@@ -17,8 +17,6 @@
Copy the text and Paste into the emulator.
=3E^=0F^=D3^=13^=3E^=07^=D3^=13^=3E^=00^=D3^=12^=76^-1000X
- ToDo:
- - Blank the display if digits aren't being refreshed
***************************************************************************/
@@ -28,6 +26,7 @@
#include "machine/z80ctc.h"
#include "machine/z80pio.h"
#include "machine/z80daisy.h"
+#include "video/pwm.h"
#include "babbage.lh"
#define MAIN_CLOCK 25e5
@@ -41,13 +40,13 @@ public:
, m_pio_1(*this, "z80pio_1")
, m_pio_2(*this, "z80pio_2")
, m_ctc(*this, "z80ctc")
- , m_keyboard(*this, "X%u", 0)
- , m_digits(*this, "digit%u", 0U)
+ , m_display(*this, "display")
+ , m_io_keyboard(*this, "X%u", 0U)
{ }
void babbage(machine_config &config);
-protected:
+private:
DECLARE_READ8_MEMBER(pio2_a_r);
DECLARE_WRITE8_MEMBER(pio1_b_w);
DECLARE_WRITE8_MEMBER(pio2_b_w);
@@ -59,18 +58,16 @@ protected:
void babbage_io(address_map &map);
void babbage_map(address_map &map);
-private:
- uint8_t m_segment;
+ uint8_t m_seg;
uint8_t m_key;
uint8_t m_prev_key;
bool m_step;
- virtual void machine_start() override { m_digits.resolve(); }
required_device m_maincpu;
required_device m_pio_1;
required_device m_pio_2;
required_device m_ctc;
- required_ioport_array<4> m_keyboard;
- output_finder<33> m_digits;
+ required_device m_display;
+ required_ioport_array<4> m_io_keyboard;
};
@@ -172,18 +169,15 @@ READ8_MEMBER( babbage_state::pio2_a_r )
WRITE8_MEMBER( babbage_state::pio2_b_w )
{
if (BIT(data, 7))
- {
m_step = false;
- }
- else if (!m_step)
+ else
+ if (!m_step)
{
- m_segment = data;
+ m_seg = data;
m_step = true;
}
else
- {
- m_digits[data] = m_segment;
- }
+ m_display->matrix(data, m_seg);
}
static const z80_daisy_config babbage_daisy_chain[] =
@@ -200,7 +194,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(babbage_state::keyboard_callback)
for (u8 i = 0; i < 4; i++)
{
- inp = m_keyboard[i]->read();
+ inp = m_io_keyboard[i]->read();
for (u8 j = 0; j < 5; j++)
if (BIT(inp, j))
@@ -240,6 +234,8 @@ void babbage_state::babbage(machine_config &config)
/* video hardware */
config.set_default_layout(layout_babbage);
+ PWM_DISPLAY(config, m_display).set_size(6, 8);
+ m_display->set_segmask(0x3f, 0xff);
/* Devices */
Z80CTC(config, m_ctc, MAIN_CLOCK);
@@ -268,7 +264,7 @@ void babbage_state::babbage(machine_config &config)
***************************************************************************/
ROM_START(babbage)
- ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x0800, "maincpu", ROMREGION_ERASEFF)
ROM_LOAD("mon.rom", 0x0000, 0x0200, CRC(469bd607) SHA1(8f3489a0f96de6a03b05c1ee01b89d9848f4b152) )
ROM_END
diff --git a/src/mame/drivers/baraduke.cpp b/src/mame/drivers/baraduke.cpp
index 5633b8fdc3c..edf66797a63 100644
--- a/src/mame/drivers/baraduke.cpp
+++ b/src/mame/drivers/baraduke.cpp
@@ -116,7 +116,7 @@ DIP locations verified for:
#include "speaker.h"
-WRITE8_MEMBER(baraduke_state::inputport_select_w)
+void baraduke_state::inputport_select_w(uint8_t data)
{
if ((data & 0xe0) == 0x60)
m_inputport_selected = data & 0x07;
@@ -128,7 +128,7 @@ WRITE8_MEMBER(baraduke_state::inputport_select_w)
}
}
-READ8_MEMBER(baraduke_state::inputport_r)
+uint8_t baraduke_state::inputport_r()
{
switch (m_inputport_selected)
{
@@ -151,13 +151,13 @@ READ8_MEMBER(baraduke_state::inputport_r)
}
}
-WRITE8_MEMBER(baraduke_state::baraduke_lamps_w)
+void baraduke_state::baraduke_lamps_w(uint8_t data)
{
m_lamps[0] = BIT(data, 3);
m_lamps[1] = BIT(data, 4);
}
-WRITE8_MEMBER(baraduke_state::baraduke_irq_ack_w)
+void baraduke_state::baraduke_irq_ack_w(uint8_t data)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
}
@@ -177,7 +177,7 @@ void baraduke_state::baraduke_map(address_map &map)
map(0x6000, 0xffff).rom(); /* ROM */
}
-READ8_MEMBER(baraduke_state::soundkludge_r)
+uint8_t baraduke_state::soundkludge_r()
{
return ((m_counter++) >> 4) & 0xff;
}
diff --git a/src/mame/drivers/barata.cpp b/src/mame/drivers/barata.cpp
index 6e3e193ca05..2f32dd90b95 100644
--- a/src/mame/drivers/barata.cpp
+++ b/src/mame/drivers/barata.cpp
@@ -53,10 +53,10 @@ public:
, m_lamps(*this, "lamp%u", 0U)
{ }
- DECLARE_WRITE8_MEMBER(fpga_w);
- DECLARE_WRITE8_MEMBER(port0_w);
- DECLARE_WRITE8_MEMBER(port2_w);
- DECLARE_READ8_MEMBER(port2_r);
+ void fpga_w(uint8_t data);
+ void port0_w(uint8_t data);
+ void port2_w(uint8_t data);
+ uint8_t port2_r();
void barata(machine_config &config);
private:
unsigned char row_selection;
@@ -274,7 +274,7 @@ void barata_state::fpga_send(unsigned char cmd)
}
}
-WRITE8_MEMBER(barata_state::fpga_w)
+void barata_state::fpga_w(uint8_t data)
{
static unsigned char old_data = 0;
if (!BIT(old_data, 5) && BIT(data, 5)){
@@ -284,17 +284,17 @@ WRITE8_MEMBER(barata_state::fpga_w)
old_data = data;
}
-WRITE8_MEMBER(barata_state::port0_w)
+void barata_state::port0_w(uint8_t data)
{
row_selection = data;
}
-WRITE8_MEMBER(barata_state::port2_w)
+void barata_state::port2_w(uint8_t data)
{
/* why does it write to PORT2 ? */
}
-READ8_MEMBER(barata_state::port2_r)
+uint8_t barata_state::port2_r()
{
if (!BIT(row_selection, 0)) return ioport("PLAYER1_ROW1")->read();
if (!BIT(row_selection, 1)) return ioport("PLAYER1_ROW2")->read();
diff --git a/src/mame/drivers/basic52.cpp b/src/mame/drivers/basic52.cpp
index 907cf613ab2..30d92570710 100644
--- a/src/mame/drivers/basic52.cpp
+++ b/src/mame/drivers/basic52.cpp
@@ -52,8 +52,8 @@ public:
protected:
void kbd_put(u8 data);
- DECLARE_READ8_MEMBER(unk_r);
- DECLARE_READ8_MEMBER(from_term);
+ uint8_t unk_r();
+ uint8_t from_term();
void basic52_io(address_map &map);
void basic52_mem(address_map &map);
uint8_t m_term_data;
@@ -87,12 +87,12 @@ static INPUT_PORTS_START( basic52 )
INPUT_PORTS_END
-READ8_MEMBER(basic52_state::from_term)
+uint8_t basic52_state::from_term()
{
return m_term_data;
}
-READ8_MEMBER( basic52_state::unk_r)
+uint8_t basic52_state::unk_r()
{
return m_term_data; // won't boot without this
}
diff --git a/src/mame/drivers/battlera.cpp b/src/mame/drivers/battlera.cpp
index 5f4defc2fc1..c7402d1ed4d 100644
--- a/src/mame/drivers/battlera.cpp
+++ b/src/mame/drivers/battlera.cpp
@@ -113,12 +113,12 @@ void battlera_state::machine_reset()
/******************************************************************************/
-WRITE8_MEMBER(battlera_state::control_data_w)
+void battlera_state::control_data_w(uint8_t data)
{
m_control_port_select=data;
}
-READ8_MEMBER(battlera_state::control_data_r)
+uint8_t battlera_state::control_data_r()
{
switch (m_control_port_select)
{
@@ -162,12 +162,12 @@ WRITE_LINE_MEMBER(battlera_state::adpcm_int)
m_audiocpu->set_input_line(1, HOLD_LINE);
}
-WRITE8_MEMBER(battlera_state::adpcm_data_w)
+void battlera_state::adpcm_data_w(uint8_t data)
{
m_msm5205next = data;
}
-WRITE8_MEMBER(battlera_state::adpcm_reset_w)
+void battlera_state::adpcm_reset_w(uint8_t data)
{
m_msm->reset_w(0);
}
diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp
index ebe7675ec85..24c93e75ef5 100644
--- a/src/mame/drivers/bebox.cpp
+++ b/src/mame/drivers/bebox.cpp
@@ -166,8 +166,8 @@ void bebox_state::bebox_peripherals(machine_config &config)
m_dma8237[0]->out_eop_callback().set(FUNC(bebox_state::bebox_dma8237_out_eop));
m_dma8237[0]->in_memr_callback().set(FUNC(bebox_state::bebox_dma_read_byte));
m_dma8237[0]->out_memw_callback().set(FUNC(bebox_state::bebox_dma_write_byte));
- m_dma8237[0]->in_ior_callback<2>().set(FUNC(bebox_state::bebox_dma8237_fdc_dack_r));
- m_dma8237[0]->out_iow_callback<2>().set(FUNC(bebox_state::bebox_dma8237_fdc_dack_w));
+ m_dma8237[0]->in_ior_callback<2>().set(m_smc37c78, FUNC(smc37c78_device::dma_r));
+ m_dma8237[0]->out_iow_callback<2>().set(m_smc37c78, FUNC(smc37c78_device::dma_w));
m_dma8237[0]->out_dack_callback<0>().set(FUNC(bebox_state::pc_dack0_w));
m_dma8237[0]->out_dack_callback<1>().set(FUNC(bebox_state::pc_dack1_w));
m_dma8237[0]->out_dack_callback<2>().set(FUNC(bebox_state::pc_dack2_w));
@@ -178,7 +178,7 @@ void bebox_state::bebox_peripherals(machine_config &config)
PIC8259(config, m_pic8259[0], 0);
m_pic8259[0]->out_int_callback().set(FUNC(bebox_state::bebox_pic8259_master_set_int_line));
m_pic8259[0]->in_sp_callback().set_constant(1);
- m_pic8259[0]->read_slave_ack_callback().set(FUNC(bebox_state::get_slave_ack));
+ m_pic8259[0]->read_slave_ack_callback().set(m_pic8259[1], FUNC(pic8259_device::acknowledge));
PIC8259(config, m_pic8259[1], 0);
m_pic8259[1]->out_int_callback().set(FUNC(bebox_state::bebox_pic8259_slave_set_int_line));
diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp
index 89a8fc15435..fc346f97d84 100644
--- a/src/mame/drivers/bfm_sc4.cpp
+++ b/src/mame/drivers/bfm_sc4.cpp
@@ -846,13 +846,13 @@ WRITE_LINE_MEMBER(sc4_state::bfm_sc4_duart_txa)
-READ8_MEMBER(sc4_state::bfm_sc4_duart_input_r)
+uint8_t sc4_state::bfm_sc4_duart_input_r()
{
// printf("bfm_sc4_duart_input_r\n");
return m_optic_pattern;
}
-WRITE8_MEMBER(sc4_state::bfm_sc4_duart_output_w)
+void sc4_state::bfm_sc4_duart_output_w(uint8_t data)
{
// logerror("bfm_sc4_duart_output_w\n");
m_reel56_latch = data;
@@ -876,13 +876,13 @@ WRITE_LINE_MEMBER(sc4_state::m68307_duart_txa)
logerror("m68307_duart_tx %02x\n", state);
}
-READ8_MEMBER(sc4_state::m68307_duart_input_r)
+uint8_t sc4_state::m68307_duart_input_r()
{
logerror("m68307_duart_input_r\n");
return 0x00;
}
-WRITE8_MEMBER(sc4_state::m68307_duart_output_w)
+void sc4_state::m68307_duart_output_w(uint8_t data)
{
logerror("m68307_duart_output_w %02x\n", data);
}
diff --git a/src/mame/drivers/bfm_sc5.cpp b/src/mame/drivers/bfm_sc5.cpp
index 2a91c2bc2e6..b4b64fba746 100644
--- a/src/mame/drivers/bfm_sc5.cpp
+++ b/src/mame/drivers/bfm_sc5.cpp
@@ -323,13 +323,13 @@ WRITE_LINE_MEMBER(bfm_sc5_state::bfm_sc5_duart_txa)
logerror("bfm_sc5_duart_tx\n");
}
-READ8_MEMBER(bfm_sc5_state::bfm_sc5_duart_input_r)
+uint8_t bfm_sc5_state::bfm_sc5_duart_input_r()
{
logerror("bfm_sc5_duart_input_r\n");
return 0xff;
}
-WRITE8_MEMBER(bfm_sc5_state::bfm_sc5_duart_output_w)
+void bfm_sc5_state::bfm_sc5_duart_output_w(uint8_t data)
{
logerror("bfm_sc5_duart_output_w\n");
}
diff --git a/src/mame/drivers/big10.cpp b/src/mame/drivers/big10.cpp
index 25f46b8bae7..5a1a602c000 100644
--- a/src/mame/drivers/big10.cpp
+++ b/src/mame/drivers/big10.cpp
@@ -78,12 +78,7 @@ public:
void big10(machine_config &config);
protected:
- virtual void machine_start() override { m_lamp.resolve(); }
- void main_io(address_map &map);
- void main_map(address_map &map);
-
- DECLARE_READ8_MEMBER(mux_r);
- DECLARE_WRITE8_MEMBER(mux_w);
+ virtual void machine_start() override { save_item(NAME(m_mux_data)); m_lamp.resolve(); }
private:
uint8_t m_mux_data;
@@ -91,6 +86,12 @@ private:
required_device m_hopper;
required_ioport_array<6> m_in;
output_finder<> m_lamp;
+
+ void main_io(address_map &map);
+ void main_map(address_map &map);
+
+ uint8_t mux_r();
+ void mux_w(uint8_t data);
};
@@ -103,14 +104,14 @@ private:
****************************************/
-WRITE8_MEMBER(big10_state::mux_w)
+void big10_state::mux_w(uint8_t data)
{
m_mux_data = ~data;
m_hopper->motor_w(BIT(data, 6));
m_lamp = BIT(~data, 7); // maybe a coin counter?
}
-READ8_MEMBER(big10_state::mux_r)
+uint8_t big10_state::mux_r()
{
uint8_t result = 0xff;
for (int b = 0; b < 6; b++)
diff --git a/src/mame/drivers/blackt96.cpp b/src/mame/drivers/blackt96.cpp
index 8107526fe62..900be856020 100644
--- a/src/mame/drivers/blackt96.cpp
+++ b/src/mame/drivers/blackt96.cpp
@@ -108,11 +108,11 @@ public:
DECLARE_WRITE8_MEMBER(sound_cmd_w);
DECLARE_WRITE16_MEMBER(tx_vram_w);
- DECLARE_WRITE8_MEMBER(blackt96_soundio_port_a_w);
- DECLARE_READ8_MEMBER(blackt96_soundio_port_b_r);
- DECLARE_WRITE8_MEMBER(blackt96_soundio_port_b_w);
- DECLARE_READ8_MEMBER(blackt96_soundio_port_c_r);
- DECLARE_WRITE8_MEMBER(blackt96_soundio_port_c_w);
+ void blackt96_soundio_port_a_w(uint8_t data);
+ uint8_t blackt96_soundio_port_b_r();
+ void blackt96_soundio_port_b_w(uint8_t data);
+ uint8_t blackt96_soundio_port_c_r();
+ void blackt96_soundio_port_c_w(uint8_t data);
DECLARE_READ16_MEMBER( random_r ) // todo, get rid of this once we work out where reads are from
{
@@ -393,33 +393,33 @@ static GFXDECODE_START( gfx_blackt96 )
GFXDECODE_END
-WRITE8_MEMBER(blackt96_state::blackt96_soundio_port_a_w)
+void blackt96_state::blackt96_soundio_port_a_w(uint8_t data)
{
// soundbank
logerror("%s: blackt96_soundio_port_a_w (set soundbank %02x)\n", machine().describe_context().c_str(), data);
m_oki1bank->set_entry(data & 0x07);
}
-READ8_MEMBER(blackt96_state::blackt96_soundio_port_b_r)
+uint8_t blackt96_state::blackt96_soundio_port_b_r()
{
//logerror("%s: blackt96_soundio_port_b_r (data read is %02x)\n", machine().describe_context().c_str(), m_port_b_latch);
return m_port_b_latch;
}
-WRITE8_MEMBER(blackt96_state::blackt96_soundio_port_b_w)
+void blackt96_state::blackt96_soundio_port_b_w(uint8_t data)
{
m_port_b_latch = data;
//logerror("%s: blackt96_soundio_port_b_w (set latch to %02x)\n", machine().describe_context().c_str(), m_port_b_latch);
}
-READ8_MEMBER(blackt96_state::blackt96_soundio_port_c_r)
+uint8_t blackt96_state::blackt96_soundio_port_c_r()
{
// bit 0x40 = sound command ready?
if (m_soundcmd_ready) return 0x40;
return 0x00;
}
-WRITE8_MEMBER(blackt96_state::blackt96_soundio_port_c_w)
+void blackt96_state::blackt96_soundio_port_c_w(uint8_t data)
{
// logerror("%s: blackt96_soundio_port_c_w (PREV DATA %02x CURR DATA %02x)\n", machine().describe_context().c_str(), m_port_c_data, data);
// data & 0x80 unuused?
diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp
index 94ebb553f50..c3158356de4 100644
--- a/src/mame/drivers/bladestl.cpp
+++ b/src/mame/drivers/bladestl.cpp
@@ -86,7 +86,7 @@ WRITE8_MEMBER(bladestl_state::bladestl_bankswitch_w)
}
-WRITE8_MEMBER(bladestl_state::bladestl_port_B_w)
+void bladestl_state::bladestl_port_B_w(uint8_t data)
{
// bits 3-5 = ROM bank select
m_upd7759->set_rom_bank((data & 0x38) >> 3);
diff --git a/src/mame/drivers/blktiger.cpp b/src/mame/drivers/blktiger.cpp
index d5cc4cc9d31..d986e70e341 100644
--- a/src/mame/drivers/blktiger.cpp
+++ b/src/mame/drivers/blktiger.cpp
@@ -43,14 +43,14 @@ WRITE8_MEMBER(blktiger_state::blktiger_to_mcu_w)
m_z80_latch = data;
}
-READ8_MEMBER(blktiger_state::blktiger_from_main_r)
+uint8_t blktiger_state::blktiger_from_main_r()
{
m_mcu->set_input_line(MCS51_INT1_LINE, CLEAR_LINE);
//printf("%02x read\n",latch);
return m_z80_latch;
}
-WRITE8_MEMBER(blktiger_state::blktiger_to_main_w)
+void blktiger_state::blktiger_to_main_w(uint8_t data)
{
//printf("%02x write\n",data);
m_i8751_latch = data;
diff --git a/src/mame/drivers/blockhl.cpp b/src/mame/drivers/blockhl.cpp
index 318fba0869f..ba110574629 100644
--- a/src/mame/drivers/blockhl.cpp
+++ b/src/mame/drivers/blockhl.cpp
@@ -58,7 +58,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_irq_w);
- DECLARE_WRITE8_MEMBER(banking_callback);
+ void banking_callback(uint8_t data);
void blockhl(machine_config &config);
void audio_map(address_map &map);
@@ -194,7 +194,7 @@ void blockhl_state::machine_start()
m_rombank->configure_entries(0, 4, memregion("maincpu")->base(), 0x2000);
}
-WRITE8_MEMBER( blockhl_state::banking_callback )
+void blockhl_state::banking_callback(uint8_t data)
{
// bits 0-1 = ROM bank
m_rombank->set_entry(data & 0x03);
diff --git a/src/mame/drivers/blueprnt.cpp b/src/mame/drivers/blueprnt.cpp
index 54b7007b4c5..7795f327f4e 100644
--- a/src/mame/drivers/blueprnt.cpp
+++ b/src/mame/drivers/blueprnt.cpp
@@ -65,7 +65,7 @@
*
*************************************/
-WRITE8_MEMBER(blueprnt_state::dipsw_w)
+void blueprnt_state::dipsw_w(uint8_t data)
{
m_dipsw = data;
}
diff --git a/src/mame/drivers/bmcbowl.cpp b/src/mame/drivers/bmcbowl.cpp
index 45125c983e8..d0e0ebd6aec 100644
--- a/src/mame/drivers/bmcbowl.cpp
+++ b/src/mame/drivers/bmcbowl.cpp
@@ -138,12 +138,11 @@ private:
uint8_t random_read();
DECLARE_READ16_MEMBER(protection_r);
DECLARE_WRITE16_MEMBER(scroll_w);
- DECLARE_READ8_MEMBER(via_b_in);
- DECLARE_WRITE8_MEMBER(via_a_out);
- DECLARE_WRITE8_MEMBER(via_b_out);
+ void via_a_out(uint8_t data);
+ void via_b_out(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(via_ca2_out);
- DECLARE_READ8_MEMBER(dips1_r);
- DECLARE_WRITE8_MEMBER(input_mux_w);
+ uint8_t dips1_r();
+ void input_mux_w(uint8_t data);
void int_ack_w(uint8_t data);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void init_stats(const uint8_t *table, int table_len, int address);
@@ -236,19 +235,12 @@ WRITE16_MEMBER(bmcbowl_state::scroll_w)
//TODO - scroll
}
-
-READ8_MEMBER(bmcbowl_state::via_b_in)
-{
- return ioport("IN3")->read();
-}
-
-
-WRITE8_MEMBER(bmcbowl_state::via_a_out)
+void bmcbowl_state::via_a_out(uint8_t data)
{
// related to video hw ? BG scroll ?
}
-WRITE8_MEMBER(bmcbowl_state::via_b_out)
+void bmcbowl_state::via_b_out(uint8_t data)
{
//used
}
@@ -446,7 +438,7 @@ static INPUT_PORTS_START( bmcbowl )
INPUT_PORTS_END
-READ8_MEMBER(bmcbowl_state::dips1_r)
+uint8_t bmcbowl_state::dips1_r()
{
switch(m_selected_input)
{
@@ -458,7 +450,7 @@ READ8_MEMBER(bmcbowl_state::dips1_r)
}
-WRITE8_MEMBER(bmcbowl_state::input_mux_w)
+void bmcbowl_state::input_mux_w(uint8_t data)
{
m_selected_input = data;
}
@@ -507,7 +499,7 @@ void bmcbowl_state::bmcbowl(machine_config &config)
/* via */
via6522_device &via(VIA6522(config, "via6522_0", XTAL(3'579'545) / 4)); // clock not verified (controls music tempo)
- via.readpb_handler().set(FUNC(bmcbowl_state::via_b_in));
+ via.readpb_handler().set_ioport("IN3");
via.writepa_handler().set(FUNC(bmcbowl_state::via_a_out));
via.writepb_handler().set(FUNC(bmcbowl_state::via_b_out));
via.ca2_handler().set(FUNC(bmcbowl_state::via_ca2_out));
diff --git a/src/mame/drivers/bml3.cpp b/src/mame/drivers/bml3.cpp
index 67ccb984eba..ab94c778a4e 100644
--- a/src/mame/drivers/bml3.cpp
+++ b/src/mame/drivers/bml3.cpp
@@ -102,7 +102,7 @@ public:
DECLARE_WRITE8_MEMBER(vram_attr_w);
DECLARE_READ8_MEMBER(beep_r);
DECLARE_WRITE8_MEMBER(beep_w);
- DECLARE_WRITE8_MEMBER(piaA_w);
+ void piaA_w(uint8_t data);
DECLARE_READ8_MEMBER(keyb_nmi_r);
DECLARE_WRITE8_MEMBER(firq_mask_w);
DECLARE_READ8_MEMBER(firq_status_r);
@@ -776,7 +776,7 @@ void bml3_state::machine_reset()
m_firq_mask = -1; // disable firq
}
-WRITE8_MEMBER(bml3_state::piaA_w)
+void bml3_state::piaA_w(uint8_t data)
{
address_space &mem = m_maincpu->space(AS_PROGRAM);
/* ROM banking:
diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp
index 5eea1b374c1..687957c58e5 100644
--- a/src/mame/drivers/boogwing.cpp
+++ b/src/mame/drivers/boogwing.cpp
@@ -301,7 +301,7 @@ void boogwing_state::machine_reset()
m_priority = 0;
}
-WRITE8_MEMBER(boogwing_state::sound_bankswitch_w)
+void boogwing_state::sound_bankswitch_w(uint8_t data)
{
m_oki[1]->set_rom_bank((data & 2) >> 1);
m_oki[0]->set_rom_bank(data & 1);
diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp
index 92f954c9ed4..8276aca6732 100644
--- a/src/mame/drivers/bottom9.cpp
+++ b/src/mame/drivers/bottom9.cpp
@@ -262,13 +262,13 @@ INPUT_PORTS_END
-WRITE8_MEMBER(bottom9_state::volume_callback0)
+void bottom9_state::volume_callback0(uint8_t data)
{
m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11);
}
-WRITE8_MEMBER(bottom9_state::volume_callback1)
+void bottom9_state::volume_callback1(uint8_t data)
{
m_k007232_2->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232_2->set_volume(1, 0, (data & 0x0f) * 0x11);
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp
index f4e059b90b5..ceda47a9c61 100644
--- a/src/mame/drivers/btime.cpp
+++ b/src/mame/drivers/btime.cpp
@@ -176,7 +176,7 @@ WRITE8_MEMBER(btime_state::audio_nmi_enable_w)
m_audionmi->in_w<0>(BIT(data, 0));
}
-WRITE8_MEMBER(btime_state::ay_audio_nmi_enable_w)
+void btime_state::ay_audio_nmi_enable_w(uint8_t data)
{
/* port A bit 0, when 1, inhibits the NMI */
if (m_audio_nmi_enable_type == AUDIO_ENABLE_AY8910)
diff --git a/src/mame/drivers/bw12.cpp b/src/mame/drivers/bw12.cpp
index 7bcc6580078..93337ce0e5b 100644
--- a/src/mame/drivers/bw12.cpp
+++ b/src/mame/drivers/bw12.cpp
@@ -124,7 +124,7 @@ WRITE_LINE_MEMBER(bw12_state::motor1_w)
floppy_motor_on_off();
}
-READ8_MEMBER( bw12_state::ls259_r )
+uint8_t bw12_state::ls259_r(offs_t offset)
{
if (!machine().side_effects_disabled())
m_latch->write_bit(offset >> 1, BIT(offset, 0));
@@ -346,7 +346,7 @@ WRITE_LINE_MEMBER( bw12_state::write_centronics_perror )
m_centronics_perror = state;
}
-READ8_MEMBER( bw12_state::pia_pa_r )
+uint8_t bw12_state::pia_pa_r()
{
/*
diff --git a/src/mame/drivers/bw2.cpp b/src/mame/drivers/bw2.cpp
index c573744b49a..a6db1e20bb0 100644
--- a/src/mame/drivers/bw2.cpp
+++ b/src/mame/drivers/bw2.cpp
@@ -59,7 +59,7 @@ enum
// read -
//-------------------------------------------------
-READ8_MEMBER( bw2_state::read )
+uint8_t bw2_state::read(offs_t offset)
{
int rom = 1, vram = 1, ram1 = 1, ram2 = 1, ram3 = 1, ram4 = 1, ram5 = 1, ram6 = 1;
@@ -116,7 +116,7 @@ READ8_MEMBER( bw2_state::read )
// write -
//-------------------------------------------------
-WRITE8_MEMBER( bw2_state::write )
+void bw2_state::write(offs_t offset, uint8_t data)
{
int vram = 1, ram1 = 1, ram2 = 1, ram3 = 1, ram4 = 1, ram5 = 1, ram6 = 1;
@@ -370,7 +370,7 @@ WRITE_LINE_MEMBER( bw2_state::write_centronics_busy )
// I8255A interface
//-------------------------------------------------
-WRITE8_MEMBER( bw2_state::ppi_pa_w )
+void bw2_state::ppi_pa_w(uint8_t data)
{
/*
@@ -400,7 +400,7 @@ WRITE8_MEMBER( bw2_state::ppi_pa_w )
m_centronics->write_strobe(BIT(data, 7));
}
-READ8_MEMBER( bw2_state::ppi_pb_r )
+uint8_t bw2_state::ppi_pb_r()
{
/*
@@ -425,7 +425,7 @@ READ8_MEMBER( bw2_state::ppi_pb_r )
return data;
}
-WRITE8_MEMBER( bw2_state::ppi_pc_w )
+void bw2_state::ppi_pc_w(uint8_t data)
{
/*
@@ -439,7 +439,7 @@ WRITE8_MEMBER( bw2_state::ppi_pc_w )
m_bank = data & 0x07;
}
-READ8_MEMBER( bw2_state::ppi_pc_r )
+uint8_t bw2_state::ppi_pc_r()
{
/*
diff --git a/src/mame/drivers/c128.cpp b/src/mame/drivers/c128.cpp
index aa92864ba67..4b187ace728 100644
--- a/src/mame/drivers/c128.cpp
+++ b/src/mame/drivers/c128.cpp
@@ -144,29 +144,29 @@ public:
DECLARE_READ_LINE_MEMBER( mmu_exrom_r );
DECLARE_READ_LINE_MEMBER( mmu_sense40_r );
- DECLARE_WRITE8_MEMBER( vic_k_w );
+ void vic_k_w(uint8_t data);
- DECLARE_READ8_MEMBER( sid_potx_r );
- DECLARE_READ8_MEMBER( sid_poty_r );
+ uint8_t sid_potx_r();
+ uint8_t sid_poty_r();
DECLARE_WRITE_LINE_MEMBER( cia1_cnt_w );
DECLARE_WRITE_LINE_MEMBER( cia1_sp_w );
- DECLARE_READ8_MEMBER( cia1_pa_r );
- DECLARE_WRITE8_MEMBER( cia1_pa_w );
- DECLARE_READ8_MEMBER( cia1_pb_r );
- DECLARE_WRITE8_MEMBER( cia1_pb_w );
+ uint8_t cia1_pa_r();
+ void cia1_pa_w(uint8_t data);
+ uint8_t cia1_pb_r();
+ void cia1_pb_w(uint8_t data);
- DECLARE_READ8_MEMBER( cia2_pa_r );
- DECLARE_WRITE8_MEMBER( cia2_pa_w );
+ uint8_t cia2_pa_r();
+ void cia2_pa_w(uint8_t data);
- DECLARE_READ8_MEMBER( cpu_r );
- DECLARE_WRITE8_MEMBER( cpu_w );
+ uint8_t cpu_r();
+ void cpu_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( iec_srq_w );
DECLARE_WRITE_LINE_MEMBER( iec_data_w );
- DECLARE_READ8_MEMBER( exp_dma_cd_r );
- DECLARE_WRITE8_MEMBER( exp_dma_cd_w );
+ uint8_t exp_dma_cd_r(offs_t offset);
+ void exp_dma_cd_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER( exp_dma_w );
DECLARE_WRITE_LINE_MEMBER( exp_reset_w );
@@ -175,8 +175,8 @@ public:
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_c128);
- DECLARE_READ8_MEMBER( cia2_pb_r );
- DECLARE_WRITE8_MEMBER( cia2_pb_w );
+ uint8_t cia2_pb_r();
+ void cia2_pb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( write_user_pa2 ) { m_user_pa2 = state; }
DECLARE_WRITE_LINE_MEMBER( write_user_pb0 ) { if (state) m_user_pb |= 1; else m_user_pb &= ~1; }
@@ -1091,7 +1091,7 @@ GFXDECODE_END
// MOS8564_INTERFACE( vic_intf )
//-------------------------------------------------
-WRITE8_MEMBER( c128_state::vic_k_w )
+void c128_state::vic_k_w(uint8_t data)
{
m_vic_k = data;
}
@@ -1101,7 +1101,7 @@ WRITE8_MEMBER( c128_state::vic_k_w )
// MOS6581_INTERFACE( sid_intf )
//-------------------------------------------------
-READ8_MEMBER( c128_state::sid_potx_r )
+uint8_t c128_state::sid_potx_r()
{
uint8_t data = 0xff;
@@ -1128,7 +1128,7 @@ READ8_MEMBER( c128_state::sid_potx_r )
return data;
}
-READ8_MEMBER( c128_state::sid_poty_r )
+uint8_t c128_state::sid_poty_r()
{
uint8_t data = 0xff;
@@ -1160,7 +1160,7 @@ READ8_MEMBER( c128_state::sid_poty_r )
// MOS6526_INTERFACE( cia1_intf )
//-------------------------------------------------
-READ8_MEMBER( c128_state::cia1_pa_r )
+uint8_t c128_state::cia1_pa_r()
{
/*
@@ -1208,7 +1208,7 @@ READ8_MEMBER( c128_state::cia1_pa_r )
return data;
}
-WRITE8_MEMBER( c128_state::cia1_pa_w )
+void c128_state::cia1_pa_w(uint8_t data)
{
/*
@@ -1228,7 +1228,7 @@ WRITE8_MEMBER( c128_state::cia1_pa_w )
m_joy2->joy_w(data & 0x1f);
}
-READ8_MEMBER( c128_state::cia1_pb_r )
+uint8_t c128_state::cia1_pb_r()
{
/*
@@ -1272,7 +1272,7 @@ READ8_MEMBER( c128_state::cia1_pb_r )
return data;
}
-WRITE8_MEMBER( c128_state::cia1_pb_w )
+void c128_state::cia1_pb_w(uint8_t data)
{
/*
@@ -1315,7 +1315,7 @@ WRITE_LINE_MEMBER( c128_state::cia1_sp_w )
// MOS6526_INTERFACE( cia2_intf )
//-------------------------------------------------
-READ8_MEMBER( c128_state::cia2_pa_r )
+uint8_t c128_state::cia2_pa_r()
{
/*
@@ -1344,7 +1344,7 @@ READ8_MEMBER( c128_state::cia2_pa_r )
return data;
}
-WRITE8_MEMBER( c128_state::cia2_pa_w )
+void c128_state::cia2_pa_w(uint8_t data)
{
/*
@@ -1376,12 +1376,12 @@ WRITE8_MEMBER( c128_state::cia2_pa_w )
update_iec();
}
-READ8_MEMBER( c128_state::cia2_pb_r )
+uint8_t c128_state::cia2_pb_r()
{
return m_user_pb;
}
-WRITE8_MEMBER( c128_state::cia2_pb_w )
+void c128_state::cia2_pb_w(uint8_t data)
{
m_user->write_c((data>>0)&1);
m_user->write_d((data>>1)&1);
@@ -1397,7 +1397,7 @@ WRITE8_MEMBER( c128_state::cia2_pb_w )
// M6510_INTERFACE( cpu_intf )
//-------------------------------------------------
-READ8_MEMBER( c128_state::cpu_r)
+uint8_t c128_state::cpu_r()
{
/*
@@ -1424,7 +1424,7 @@ READ8_MEMBER( c128_state::cpu_r)
return data;
}
-WRITE8_MEMBER( c128_state::cpu_w )
+void c128_state::cpu_w(uint8_t data)
{
/*
@@ -1501,7 +1501,7 @@ WRITE_LINE_MEMBER( c128_state::iec_data_w )
// C64_EXPANSION_INTERFACE( expansion_intf )
//-------------------------------------------------
-READ8_MEMBER( c128_state::exp_dma_cd_r )
+uint8_t c128_state::exp_dma_cd_r(offs_t offset)
{
int ba = 0, aec = 1, z80io = 1;
offs_t vma = 0;
@@ -1509,7 +1509,7 @@ READ8_MEMBER( c128_state::exp_dma_cd_r )
return read_memory(offset, vma, ba, aec, z80io);
}
-WRITE8_MEMBER( c128_state::exp_dma_cd_w )
+void c128_state::exp_dma_cd_w(offs_t offset, uint8_t data)
{
int ba = 0, aec = 1, z80io = 1;
offs_t vma = 0;
diff --git a/src/mame/drivers/c64.cpp b/src/mame/drivers/c64.cpp
index 7847994757c..3753fdf91f0 100644
--- a/src/mame/drivers/c64.cpp
+++ b/src/mame/drivers/c64.cpp
@@ -102,28 +102,28 @@ public:
void check_interrupts();
int read_pla(offs_t offset, offs_t va, int rw, int aec, int ba);
- uint8_t read_memory(address_space &space, offs_t offset, offs_t va, int aec, int ba);
- void write_memory(address_space &space, offs_t offset, uint8_t data, int aec, int ba);
+ uint8_t read_memory(offs_t offset, offs_t va, int aec, int ba);
+ void write_memory(offs_t offset, uint8_t data, int aec, int ba);
- DECLARE_READ8_MEMBER( read );
- DECLARE_WRITE8_MEMBER( write );
+ uint8_t read(offs_t offset);
+ void write(offs_t offset, uint8_t data);
DECLARE_READ8_MEMBER( vic_videoram_r );
DECLARE_READ8_MEMBER( vic_colorram_r );
- DECLARE_READ8_MEMBER( sid_potx_r );
- DECLARE_READ8_MEMBER( sid_poty_r );
+ uint8_t sid_potx_r();
+ uint8_t sid_poty_r();
- DECLARE_READ8_MEMBER( cia1_pa_r );
- DECLARE_WRITE8_MEMBER( cia1_pa_w );
- DECLARE_READ8_MEMBER( cia1_pb_r );
- DECLARE_WRITE8_MEMBER( cia1_pb_w );
+ uint8_t cia1_pa_r();
+ void cia1_pa_w(uint8_t data);
+ uint8_t cia1_pb_r();
+ void cia1_pb_w(uint8_t data);
- DECLARE_READ8_MEMBER( cia2_pa_r );
- DECLARE_WRITE8_MEMBER( cia2_pa_w );
+ uint8_t cia2_pa_r();
+ void cia2_pa_w(uint8_t data);
- DECLARE_READ8_MEMBER( cpu_r );
- DECLARE_WRITE8_MEMBER( cpu_w );
+ uint8_t cpu_r();
+ void cpu_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( write_restore );
DECLARE_WRITE_LINE_MEMBER( exp_dma_w );
@@ -131,8 +131,8 @@ public:
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_c64);
- DECLARE_READ8_MEMBER( cia2_pb_r );
- DECLARE_WRITE8_MEMBER( cia2_pb_w );
+ uint8_t cia2_pb_r();
+ void cia2_pb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( write_user_pa2 ) { m_user_pa2 = state; }
DECLARE_WRITE_LINE_MEMBER( write_user_pb0 ) { if (state) m_user_pb |= 1; else m_user_pb &= ~1; }
@@ -179,8 +179,8 @@ public:
: c64_state(mconfig, type, tag)
{ }
- DECLARE_READ8_MEMBER( cpu_r );
- DECLARE_WRITE8_MEMBER( cpu_w );
+ uint8_t cpu_r();
+ void cpu_w(uint8_t data);
void ntsc_sx(machine_config &config);
void ntsc_dx(machine_config &config);
void pal_sx(machine_config &config);
@@ -205,11 +205,11 @@ public:
: c64c_state(mconfig, type, tag)
{ }
- DECLARE_READ8_MEMBER( cpu_r );
- DECLARE_WRITE8_MEMBER( cpu_w );
+ uint8_t cpu_r();
+ void cpu_w(uint8_t data);
- DECLARE_READ8_MEMBER( cia1_pa_r );
- DECLARE_READ8_MEMBER( cia1_pb_r );
+ uint8_t cia1_pa_r();
+ uint8_t cia1_pb_r();
void pal_gs(machine_config &config);
};
@@ -459,7 +459,7 @@ int c64_state::read_pla(offs_t offset, offs_t va, int rw, int aec, int ba)
// read_memory -
//-------------------------------------------------
-uint8_t c64_state::read_memory(address_space &space, offs_t offset, offs_t va, int aec, int ba)
+uint8_t c64_state::read_memory(offs_t offset, offs_t va, int aec, int ba)
{
int rw = 1;
int io1 = 1, io2 = 1;
@@ -550,7 +550,7 @@ uint8_t c64_state::read_memory(address_space &space, offs_t offset, offs_t va, i
// write_memory -
//-------------------------------------------------
-void c64_state::write_memory(address_space &space, offs_t offset, uint8_t data, int aec, int ba)
+void c64_state::write_memory(offs_t offset, uint8_t data, int aec, int ba)
{
int rw = 0;
offs_t va = 0;
@@ -622,14 +622,14 @@ void c64_state::write_memory(address_space &space, offs_t offset, uint8_t data,
// read -
//-------------------------------------------------
-READ8_MEMBER( c64_state::read )
+uint8_t c64_state::read(offs_t offset)
{
int aec = 1, ba = 1;
// VIC address bus is floating
offs_t va = 0x3fff;
- return read_memory(space, offset, va, aec, ba);
+ return read_memory(offset, va, aec, ba);
}
@@ -637,11 +637,11 @@ READ8_MEMBER( c64_state::read )
// write -
//-------------------------------------------------
-WRITE8_MEMBER( c64_state::write )
+void c64_state::write(offs_t offset, uint8_t data)
{
int aec = 1, ba = 1;
- write_memory(space, offset, data, aec, ba);
+ write_memory(offset, data, aec, ba);
}
@@ -657,7 +657,7 @@ READ8_MEMBER( c64_state::vic_videoram_r )
// A15/A14 are not connected to VIC so they are floating
//offset |= 0xc000;
- return read_memory(space, offset, va, aec, ba);
+ return read_memory(offset, va, aec, ba);
}
@@ -861,7 +861,7 @@ INPUT_PORTS_END
// MOS6581_INTERFACE( sid_intf )
//-------------------------------------------------
-READ8_MEMBER( c64_state::sid_potx_r )
+uint8_t c64_state::sid_potx_r()
{
uint8_t data = 0xff;
@@ -888,7 +888,7 @@ READ8_MEMBER( c64_state::sid_potx_r )
return data;
}
-READ8_MEMBER( c64_state::sid_poty_r )
+uint8_t c64_state::sid_poty_r()
{
uint8_t data = 0xff;
@@ -920,7 +920,7 @@ READ8_MEMBER( c64_state::sid_poty_r )
// MOS6526_INTERFACE( cia1_intf )
//-------------------------------------------------
-READ8_MEMBER( c64_state::cia1_pa_r )
+uint8_t c64_state::cia1_pa_r()
{
/*
@@ -968,7 +968,7 @@ READ8_MEMBER( c64_state::cia1_pa_r )
return data;
}
-WRITE8_MEMBER( c64_state::cia1_pa_w )
+void c64_state::cia1_pa_w(uint8_t data)
{
/*
@@ -988,7 +988,7 @@ WRITE8_MEMBER( c64_state::cia1_pa_w )
m_joy2->joy_w(data & 0x1f);
}
-READ8_MEMBER( c64_state::cia1_pb_r )
+uint8_t c64_state::cia1_pb_r()
{
/*
@@ -1028,7 +1028,7 @@ READ8_MEMBER( c64_state::cia1_pb_r )
return data;
}
-WRITE8_MEMBER( c64_state::cia1_pb_w )
+void c64_state::cia1_pb_w(uint8_t data)
{
/*
@@ -1050,7 +1050,7 @@ WRITE8_MEMBER( c64_state::cia1_pb_w )
m_vic->lp_w(BIT(data, 4));
}
-READ8_MEMBER( c64gs_state::cia1_pa_r )
+uint8_t c64gs_state::cia1_pa_r()
{
/*
@@ -1078,7 +1078,7 @@ READ8_MEMBER( c64gs_state::cia1_pa_r )
return data;
}
-READ8_MEMBER( c64gs_state::cia1_pb_r )
+uint8_t c64gs_state::cia1_pb_r()
{
/*
@@ -1111,7 +1111,7 @@ READ8_MEMBER( c64gs_state::cia1_pb_r )
// MOS6526_INTERFACE( cia2_intf )
//-------------------------------------------------
-READ8_MEMBER( c64_state::cia2_pa_r )
+uint8_t c64_state::cia2_pa_r()
{
/*
@@ -1140,7 +1140,7 @@ READ8_MEMBER( c64_state::cia2_pa_r )
return data;
}
-WRITE8_MEMBER( c64_state::cia2_pa_w )
+void c64_state::cia2_pa_w(uint8_t data)
{
/*
@@ -1170,12 +1170,12 @@ WRITE8_MEMBER( c64_state::cia2_pa_w )
m_iec->host_data_w(!BIT(data, 5));
}
-READ8_MEMBER( c64_state::cia2_pb_r )
+uint8_t c64_state::cia2_pb_r()
{
return m_user_pb;
}
-WRITE8_MEMBER( c64_state::cia2_pb_w )
+void c64_state::cia2_pb_w(uint8_t data)
{
m_user->write_c((data>>0)&1);
m_user->write_d((data>>1)&1);
@@ -1191,7 +1191,7 @@ WRITE8_MEMBER( c64_state::cia2_pb_w )
// M6510_INTERFACE( cpu_intf )
//-------------------------------------------------
-READ8_MEMBER( c64_state::cpu_r )
+uint8_t c64_state::cpu_r()
{
/*
@@ -1213,7 +1213,7 @@ READ8_MEMBER( c64_state::cpu_r )
return data;
}
-WRITE8_MEMBER( c64_state::cpu_w )
+void c64_state::cpu_w(uint8_t data)
{
/*
@@ -1245,7 +1245,7 @@ WRITE8_MEMBER( c64_state::cpu_w )
// M6510_INTERFACE( sx64_cpu_intf )
//-------------------------------------------------
-READ8_MEMBER( sx64_state::cpu_r )
+uint8_t sx64_state::cpu_r()
{
/*
@@ -1263,7 +1263,7 @@ READ8_MEMBER( sx64_state::cpu_r )
return 0x07;
}
-WRITE8_MEMBER( sx64_state::cpu_w )
+void sx64_state::cpu_w(uint8_t data)
{
/*
@@ -1289,7 +1289,7 @@ WRITE8_MEMBER( sx64_state::cpu_w )
// M6510_INTERFACE( c64gs_cpu_intf )
//-------------------------------------------------
-READ8_MEMBER( c64gs_state::cpu_r )
+uint8_t c64gs_state::cpu_r()
{
/*
@@ -1307,7 +1307,7 @@ READ8_MEMBER( c64gs_state::cpu_r )
return 0x07;
}
-WRITE8_MEMBER( c64gs_state::cpu_w )
+void c64gs_state::cpu_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/c65.cpp b/src/mame/drivers/c65.cpp
index d826c3f1828..f393f81ce47 100644
--- a/src/mame/drivers/c65.cpp
+++ b/src/mame/drivers/c65.cpp
@@ -84,10 +84,10 @@ public:
DECLARE_WRITE8_MEMBER(DMAgic_w);
DECLARE_READ8_MEMBER(CIASelect_r);
DECLARE_WRITE8_MEMBER(CIASelect_w);
- DECLARE_READ8_MEMBER(cia0_porta_r);
- DECLARE_WRITE8_MEMBER(cia0_porta_w);
- DECLARE_READ8_MEMBER(cia0_portb_r);
- DECLARE_WRITE8_MEMBER(cia0_portb_w);
+ uint8_t cia0_porta_r();
+ void cia0_porta_w(uint8_t data);
+ uint8_t cia0_portb_r();
+ void cia0_portb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(cia0_irq);
DECLARE_READ8_MEMBER(dummy_r);
@@ -439,12 +439,12 @@ WRITE8_MEMBER(c65_state::CIASelect_w)
}
-READ8_MEMBER(c65_state::cia0_porta_r)
+uint8_t c65_state::cia0_porta_r()
{
return 0xff;
}
-READ8_MEMBER(c65_state::cia0_portb_r)
+uint8_t c65_state::cia0_portb_r()
{
static const char *const c64ports[] = { "C0", "C1", "C2", "C3", "C4", "C5", "C6", "C7" };
static const char *const c65ports[] = { "C8", "C9" };
@@ -470,13 +470,13 @@ READ8_MEMBER(c65_state::cia0_portb_r)
return res;
}
-WRITE8_MEMBER(c65_state::cia0_porta_w)
+void c65_state::cia0_porta_w(uint8_t data)
{
m_keyb_c0_c7 = ~data;
// printf("%02x\n",m_keyb_c0_c7);
}
-WRITE8_MEMBER(c65_state::cia0_portb_w)
+void c65_state::cia0_portb_w(uint8_t data)
{
}
diff --git a/src/mame/drivers/c80.cpp b/src/mame/drivers/c80.cpp
index ea2924cfe28..c76c2c9d4fa 100644
--- a/src/mame/drivers/c80.cpp
+++ b/src/mame/drivers/c80.cpp
@@ -126,7 +126,7 @@ INPUT_PORTS_END
/* Z80-PIO Interface */
-READ8_MEMBER( c80_state::pio1_pa_r )
+uint8_t c80_state::pio1_pa_r()
{
/*
@@ -162,7 +162,7 @@ READ8_MEMBER( c80_state::pio1_pa_r )
return data;
}
-WRITE8_MEMBER( c80_state::pio1_pa_w )
+void c80_state::pio1_pa_w(uint8_t data)
{
/*
@@ -189,7 +189,7 @@ WRITE8_MEMBER( c80_state::pio1_pa_w )
m_cassette->output(BIT(data, 6) ? +1.0 : -1.0);
}
-WRITE8_MEMBER( c80_state::pio1_pb_w )
+void c80_state::pio1_pb_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/cabaret.cpp b/src/mame/drivers/cabaret.cpp
index 4b3dbe20342..6e52b3976be 100644
--- a/src/mame/drivers/cabaret.cpp
+++ b/src/mame/drivers/cabaret.cpp
@@ -52,9 +52,9 @@ public:
DECLARE_WRITE8_MEMBER(bg_tile_w);
DECLARE_WRITE8_MEMBER(fg_tile_w);
DECLARE_WRITE8_MEMBER(fg_color_w);
- DECLARE_WRITE8_MEMBER(nmi_and_coins_w);
- DECLARE_WRITE8_MEMBER(ppi2_b_w);
- DECLARE_WRITE8_MEMBER(ppi2_c_w);
+ void nmi_and_coins_w(uint8_t data);
+ void ppi2_b_w(uint8_t data);
+ void ppi2_c_w(uint8_t data);
void show_out();
void init_cabaret();
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@@ -163,7 +163,7 @@ void cabaret_state::show_out()
#endif
}
-WRITE8_MEMBER(cabaret_state::nmi_and_coins_w)
+void cabaret_state::nmi_and_coins_w(uint8_t data)
{
if ((m_nmi_enable ^ data) & (~0xdd))
{
@@ -184,13 +184,13 @@ WRITE8_MEMBER(cabaret_state::nmi_and_coins_w)
show_out();
}
-WRITE8_MEMBER(cabaret_state::ppi2_b_w)
+void cabaret_state::ppi2_b_w(uint8_t data)
{
m_out[1] = data;
show_out();
}
-WRITE8_MEMBER(cabaret_state::ppi2_c_w)
+void cabaret_state::ppi2_c_w(uint8_t data)
{
m_out[2] = data;
show_out();
diff --git a/src/mame/drivers/caswin.cpp b/src/mame/drivers/caswin.cpp
index d161ef96880..1a623a4f0d6 100644
--- a/src/mame/drivers/caswin.cpp
+++ b/src/mame/drivers/caswin.cpp
@@ -92,13 +92,13 @@ public:
void vvillage(machine_config &config);
protected:
- DECLARE_WRITE8_MEMBER(sc0_vram_w);
- DECLARE_WRITE8_MEMBER(sc0_attr_w);
- DECLARE_WRITE8_MEMBER(vvillage_scroll_w);
- DECLARE_WRITE8_MEMBER(vvillage_vregs_w);
- DECLARE_READ8_MEMBER(vvillage_rng_r);
- DECLARE_WRITE8_MEMBER(vvillage_output_w);
- DECLARE_WRITE8_MEMBER(vvillage_lamps_w);
+ void sc0_vram_w(offs_t offset, uint8_t data);
+ void sc0_attr_w(offs_t offset, uint8_t data);
+ void vvillage_scroll_w(uint8_t data);
+ void vvillage_vregs_w(uint8_t data);
+ uint8_t vvillage_rng_r();
+ void vvillage_output_w(uint8_t data);
+ void vvillage_lamps_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
void caswin_palette(palette_device &palette) const;
uint32_t screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -141,27 +141,27 @@ uint32_t caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind1
return 0;
}
-WRITE8_MEMBER(caswin_state::sc0_vram_w)
+void caswin_state::sc0_vram_w(offs_t offset, uint8_t data)
{
m_sc0_vram[offset] = data;
m_sc0_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(caswin_state::sc0_attr_w)
+void caswin_state::sc0_attr_w(offs_t offset, uint8_t data)
{
m_sc0_attr[offset] = data;
m_sc0_tilemap->mark_tile_dirty(offset);
}
/*These two are tested during the two cherry sub-games.I really don't know what is supposed to do...*/
-WRITE8_MEMBER(caswin_state::vvillage_scroll_w)
+void caswin_state::vvillage_scroll_w(uint8_t data)
{
//...
}
/*---- --x- window effect? */
/*---- ---x flip screen */
-WRITE8_MEMBER(caswin_state::vvillage_vregs_w)
+void caswin_state::vvillage_vregs_w(uint8_t data)
{
flip_screen_set(data & 1);
}
@@ -172,12 +172,12 @@ WRITE8_MEMBER(caswin_state::vvillage_vregs_w)
*
**********************/
-READ8_MEMBER(caswin_state::vvillage_rng_r)
+uint8_t caswin_state::vvillage_rng_r()
{
return machine().rand();
}
-WRITE8_MEMBER(caswin_state::vvillage_output_w)
+void caswin_state::vvillage_output_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0,data & 1);
machine().bookkeeping().coin_counter_w(1,data & 1);
@@ -186,7 +186,7 @@ WRITE8_MEMBER(caswin_state::vvillage_output_w)
machine().bookkeeping().coin_lockout_w(1,data & 0x20);
}
-WRITE8_MEMBER(caswin_state::vvillage_lamps_w)
+void caswin_state::vvillage_lamps_w(uint8_t data)
{
/*
---x ---- lamp button 5
diff --git a/src/mame/drivers/cat.cpp b/src/mame/drivers/cat.cpp
index c4b6ad042ba..a0aba3460c2 100644
--- a/src/mame/drivers/cat.cpp
+++ b/src/mame/drivers/cat.cpp
@@ -297,7 +297,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(cat_duart_irq_handler);
DECLARE_WRITE_LINE_MEMBER(cat_duart_txa);
DECLARE_WRITE_LINE_MEMBER(cat_duart_txb);
- DECLARE_WRITE8_MEMBER(cat_duart_output);
+ void cat_duart_output(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(prn_ack_ff);
DECLARE_READ16_MEMBER(cat_floppy_control_r);
@@ -1032,7 +1032,7 @@ WRITE_LINE_MEMBER(cat_state::cat_duart_txb) // memit sends stuff here; connects
* OP6: TD01 "
* OP7: TD00 "
*/
-WRITE8_MEMBER(cat_state::cat_duart_output)
+void cat_state::cat_duart_output(uint8_t data)
{
#ifdef DEBUG_DUART_OUTPUT_LINES
fprintf(stderr,"Duart output io lines changed to: %02X\n", data);
diff --git a/src/mame/drivers/cbm2.cpp b/src/mame/drivers/cbm2.cpp
index d9eb765e244..75d4fdd336a 100644
--- a/src/mame/drivers/cbm2.cpp
+++ b/src/mame/drivers/cbm2.cpp
@@ -162,31 +162,31 @@ public:
DECLARE_READ8_MEMBER( ext_read );
DECLARE_WRITE8_MEMBER( ext_write );
- DECLARE_READ8_MEMBER( sid_potx_r );
- DECLARE_READ8_MEMBER( sid_poty_r );
+ uint8_t sid_potx_r();
+ uint8_t sid_poty_r();
- DECLARE_READ8_MEMBER( tpi1_pa_r );
- DECLARE_WRITE8_MEMBER( tpi1_pa_w );
- DECLARE_READ8_MEMBER( tpi1_pb_r );
- DECLARE_WRITE8_MEMBER( tpi1_pb_w );
+ uint8_t tpi1_pa_r();
+ void tpi1_pa_w(uint8_t data);
+ uint8_t tpi1_pb_r();
+ void tpi1_pb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( tpi1_ca_w );
DECLARE_WRITE_LINE_MEMBER( tpi1_cb_w );
- DECLARE_WRITE8_MEMBER( tpi2_pa_w );
- DECLARE_WRITE8_MEMBER( tpi2_pb_w );
- DECLARE_READ8_MEMBER( tpi2_pc_r );
+ void tpi2_pa_w(uint8_t data);
+ void tpi2_pb_w(uint8_t data);
+ uint8_t tpi2_pc_r();
- DECLARE_READ8_MEMBER( cia_pa_r );
- DECLARE_WRITE8_MEMBER( cia_pa_w );
- DECLARE_READ8_MEMBER( cia_pb_r );
+ uint8_t cia_pa_r();
+ void cia_pa_w(uint8_t data);
+ uint8_t cia_pb_r();
- DECLARE_READ8_MEMBER( ext_tpi_pb_r );
- DECLARE_WRITE8_MEMBER( ext_tpi_pb_w );
- DECLARE_WRITE8_MEMBER( ext_tpi_pc_w );
+ uint8_t ext_tpi_pb_r();
+ void ext_tpi_pb_w(uint8_t data);
+ void ext_tpi_pc_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( ext_cia_irq_w );
- DECLARE_READ8_MEMBER( ext_cia_pb_r );
- DECLARE_WRITE8_MEMBER( ext_cia_pb_w );
+ uint8_t ext_cia_pb_r();
+ void ext_cia_pb_w(uint8_t data);
MC6845_UPDATE_ROW( crtc_update_row );
@@ -240,7 +240,7 @@ public:
virtual void read_pla(offs_t offset, int ras, int cas, int refen, int eras, int ecas,
int *casseg1, int *casseg2, int *casseg3, int *casseg4, int *rasseg1, int *rasseg2, int *rasseg3, int *rasseg4) override;
- DECLARE_READ8_MEMBER( tpi2_pc_r );
+ uint8_t tpi2_pc_r();
void b256hp(machine_config &config);
void b128hp(machine_config &config);
void cbm710(machine_config &config);
@@ -296,8 +296,8 @@ public:
DECLARE_WRITE_LINE_MEMBER( tpi1_ca_w );
DECLARE_WRITE_LINE_MEMBER( tpi1_cb_w );
- DECLARE_READ8_MEMBER( tpi2_pc_r );
- DECLARE_WRITE8_MEMBER( tpi2_pc_w );
+ uint8_t tpi2_pc_r();
+ void tpi2_pc_w(uint8_t data);
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_p500);
// video state
@@ -1441,7 +1441,7 @@ MC6845_UPDATE_ROW( cbm2_state::crtc_update_row )
// MOS6581_INTERFACE( sid_intf )
//-------------------------------------------------
-READ8_MEMBER( cbm2_state::sid_potx_r )
+uint8_t cbm2_state::sid_potx_r()
{
uint8_t data = 0xff;
@@ -1468,7 +1468,7 @@ READ8_MEMBER( cbm2_state::sid_potx_r )
return data;
}
-READ8_MEMBER( cbm2_state::sid_poty_r )
+uint8_t cbm2_state::sid_poty_r()
{
uint8_t data = 0xff;
@@ -1500,7 +1500,7 @@ READ8_MEMBER( cbm2_state::sid_poty_r )
// tpi6525_interface tpi1_intf
//-------------------------------------------------
-READ8_MEMBER( cbm2_state::tpi1_pa_r )
+uint8_t cbm2_state::tpi1_pa_r()
{
/*
@@ -1530,7 +1530,7 @@ READ8_MEMBER( cbm2_state::tpi1_pa_r )
return data;
}
-WRITE8_MEMBER( cbm2_state::tpi1_pa_w )
+void cbm2_state::tpi1_pa_w(uint8_t data)
{
/*
@@ -1561,7 +1561,7 @@ WRITE8_MEMBER( cbm2_state::tpi1_pa_w )
m_ieee2->nrfd_w(BIT(data, 7));
}
-READ8_MEMBER( cbm2_state::tpi1_pb_r )
+uint8_t cbm2_state::tpi1_pb_r()
{
/*
@@ -1594,7 +1594,7 @@ READ8_MEMBER( cbm2_state::tpi1_pb_r )
return data;
}
-WRITE8_MEMBER( cbm2_state::tpi1_pb_w )
+void cbm2_state::tpi1_pb_w(uint8_t data)
{
/*
@@ -1671,17 +1671,17 @@ uint8_t cbm2_state::read_keyboard()
return data;
}
-WRITE8_MEMBER( cbm2_state::tpi2_pa_w )
+void cbm2_state::tpi2_pa_w(uint8_t data)
{
m_tpi2_pa = data;
}
-WRITE8_MEMBER( cbm2_state::tpi2_pb_w )
+void cbm2_state::tpi2_pb_w(uint8_t data)
{
m_tpi2_pb = data;
}
-READ8_MEMBER( cbm2_state::tpi2_pc_r )
+uint8_t cbm2_state::tpi2_pc_r()
{
/*
@@ -1701,7 +1701,7 @@ READ8_MEMBER( cbm2_state::tpi2_pc_r )
return (m_ntsc << 6) | (read_keyboard() & 0x3f);
}
-READ8_MEMBER( cbm2hp_state::tpi2_pc_r )
+uint8_t cbm2hp_state::tpi2_pc_r()
{
/*
@@ -1721,7 +1721,7 @@ READ8_MEMBER( cbm2hp_state::tpi2_pc_r )
return read_keyboard();
}
-READ8_MEMBER( p500_state::tpi2_pc_r )
+uint8_t p500_state::tpi2_pc_r()
{
/*
@@ -1741,7 +1741,7 @@ READ8_MEMBER( p500_state::tpi2_pc_r )
return read_keyboard();
}
-WRITE8_MEMBER( p500_state::tpi2_pc_w )
+void p500_state::tpi2_pc_w(uint8_t data)
{
/*
@@ -1765,7 +1765,7 @@ WRITE8_MEMBER( p500_state::tpi2_pc_w )
// MOS6526_INTERFACE( cia_intf )
//-------------------------------------------------
-READ8_MEMBER( cbm2_state::cia_pa_r )
+uint8_t cbm2_state::cia_pa_r()
{
/*
@@ -1797,7 +1797,7 @@ READ8_MEMBER( cbm2_state::cia_pa_r )
return data;
}
-WRITE8_MEMBER( cbm2_state::cia_pa_w )
+void cbm2_state::cia_pa_w(uint8_t data)
{
/*
@@ -1824,7 +1824,7 @@ WRITE8_MEMBER( cbm2_state::cia_pa_w )
m_cia_pa = data;
}
-READ8_MEMBER( cbm2_state::cia_pb_r )
+uint8_t cbm2_state::cia_pb_r()
{
/*
@@ -1876,7 +1876,7 @@ void cbm2_state::set_busy2(int state)
}
}
-READ8_MEMBER( cbm2_state::ext_tpi_pb_r )
+uint8_t cbm2_state::ext_tpi_pb_r()
{
/*
@@ -1907,7 +1907,7 @@ READ8_MEMBER( cbm2_state::ext_tpi_pb_r )
return data;
}
-WRITE8_MEMBER( cbm2_state::ext_tpi_pb_w )
+void cbm2_state::ext_tpi_pb_w(uint8_t data)
{
/*
@@ -1936,7 +1936,7 @@ WRITE8_MEMBER( cbm2_state::ext_tpi_pb_w )
m_ext_cia->flag_w(BIT(data, 6));
}
-WRITE8_MEMBER( cbm2_state::ext_tpi_pc_w )
+void cbm2_state::ext_tpi_pc_w(uint8_t data)
{
/*
@@ -1969,7 +1969,7 @@ WRITE_LINE_MEMBER( cbm2_state::ext_cia_irq_w )
m_tpi1->i3_w(!state);
}
-READ8_MEMBER( cbm2_state::ext_cia_pb_r )
+uint8_t cbm2_state::ext_cia_pb_r()
{
/*
@@ -2000,7 +2000,7 @@ READ8_MEMBER( cbm2_state::ext_cia_pb_r )
return data;
}
-WRITE8_MEMBER( cbm2_state::ext_cia_pb_w )
+void cbm2_state::ext_cia_pb_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/centiped.cpp b/src/mame/drivers/centiped.cpp
index 6e6488571fd..ebfbd314f7f 100644
--- a/src/mame/drivers/centiped.cpp
+++ b/src/mame/drivers/centiped.cpp
@@ -616,7 +616,7 @@ READ8_MEMBER(centiped_state::bullsdrt_data_port_r)
*
*************************************/
-READ8_MEMBER(centiped_state::caterplr_unknown_r)
+uint8_t centiped_state::caterplr_unknown_r()
{
return machine().rand() % 0xff;
}
diff --git a/src/mame/drivers/cfx9850.cpp b/src/mame/drivers/cfx9850.cpp
index 9d40a746014..ffed4490e53 100644
--- a/src/mame/drivers/cfx9850.cpp
+++ b/src/mame/drivers/cfx9850.cpp
@@ -44,27 +44,28 @@ public:
, m_opt(0)
{ }
- DECLARE_WRITE8_MEMBER(kol_w);
- DECLARE_WRITE8_MEMBER(koh_w);
- DECLARE_WRITE8_MEMBER(port_w);
- DECLARE_WRITE8_MEMBER(opt_w);
- DECLARE_READ8_MEMBER(ki_r);
- DECLARE_READ8_MEMBER(in0_r);
+ void cfx9850(machine_config &config);
+
+private:
required_shared_ptr m_video_ram;
required_shared_ptr m_display_ram;
- void cfx9850_palette(palette_device &palette) const;
- u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- void cfx9850(machine_config &config);
- void cfx9850_mem(address_map &map);
-protected:
required_ioport_array<12> m_ko_port;
required_device m_maincpu;
-private:
u16 m_ko; // KO lines KO1 - KO14
u8 m_port; // PORT lines PORT0 - PORT7 (serial I/O)
u8 m_opt; // OPT lines OPT0 - OPT7 (contrast)
+
+ void kol_w(u8 data);
+ void koh_w(u8 data);
+ void port_w(u8 data);
+ void opt_w(u8 data);
+ u8 ki_r();
+ u8 in0_r();
+ void cfx9850_palette(palette_device &palette) const;
+ u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+
+ void cfx9850_mem(address_map &map);
};
@@ -81,14 +82,14 @@ void cfx9850_state::cfx9850_mem(address_map &map)
}
-WRITE8_MEMBER(cfx9850_state::kol_w)
+void cfx9850_state::kol_w(u8 data)
{
m_ko = (m_ko & 0xff00) | data;
logerror("KO is now %04x\n", m_ko);
}
-WRITE8_MEMBER(cfx9850_state::koh_w)
+void cfx9850_state::koh_w(u8 data)
{
m_ko = (m_ko & 0x00ff) | (data << 8);
logerror("KO is now %04x\n", m_ko);
@@ -103,7 +104,7 @@ WRITE8_MEMBER(cfx9850_state::koh_w)
// -----2-- PORT2 - NC / CP29
// ------1- PORT1 - NC / CP30
// -------0 PORT0 - display (enable?) related? + CP31
-WRITE8_MEMBER(cfx9850_state::port_w)
+void cfx9850_state::port_w(u8 data)
{
m_port = data;
logerror("PORT is now %02x\n", m_port);
@@ -118,14 +119,14 @@ WRITE8_MEMBER(cfx9850_state::port_w)
// -----2-- OPT2 - contrast (TC74HC4066AFS pin 6)
// ------1- OPT1 - contrast (TC74HC4066AFS pin 5)
// -------0 OPT0 - contrast (TC74HC4066AFS pin 13)
-WRITE8_MEMBER(cfx9850_state::opt_w)
+void cfx9850_state::opt_w(u8 data)
{
m_opt = data;
logerror("OPT is now %02x\n", m_opt);
}
-READ8_MEMBER(cfx9850_state::ki_r)
+u8 cfx9850_state::ki_r()
{
u8 data = 0;
@@ -141,7 +142,7 @@ READ8_MEMBER(cfx9850_state::ki_r)
}
-READ8_MEMBER(cfx9850_state::in0_r)
+u8 cfx9850_state::in0_r()
{
// battery level?
// bit4 -> if reset CPU keeps restarting (several unknown instructions before jumping to 0)
diff --git a/src/mame/drivers/cgang.cpp b/src/mame/drivers/cgang.cpp
index a166a5f23a4..5748098cf03 100644
--- a/src/mame/drivers/cgang.cpp
+++ b/src/mame/drivers/cgang.cpp
@@ -165,26 +165,26 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(door_motor_tick);
void refresh_motor_output();
- DECLARE_READ8_MEMBER(ppi1_b_r);
- DECLARE_READ8_MEMBER(ppi1_c_r);
- DECLARE_READ8_MEMBER(ppi2_a_r);
- DECLARE_READ8_MEMBER(ppi2_b_r);
- DECLARE_WRITE8_MEMBER(ppi2_c_w);
- DECLARE_WRITE8_MEMBER(ppi3_a_w);
- DECLARE_WRITE8_MEMBER(ppi3_b_w);
- DECLARE_WRITE8_MEMBER(ppi3_c_w);
+ u8 ppi1_b_r();
+ u8 ppi1_c_r();
+ u8 ppi2_a_r();
+ u8 ppi2_b_r();
+ void ppi2_c_w(u8 data);
+ void ppi3_a_w(u8 data);
+ void ppi3_b_w(u8 data);
+ void ppi3_c_w(u8 data);
void set_en_sol(int i, int state);
- DECLARE_WRITE8_MEMBER(ppi4_a_w);
- DECLARE_WRITE8_MEMBER(ppi4_b_w);
- DECLARE_WRITE8_MEMBER(ppi4_c_w);
+ void ppi4_a_w(u8 data);
+ void ppi4_b_w(u8 data);
+ void ppi4_c_w(u8 data);
- template DECLARE_WRITE8_MEMBER(adpcm_w);
- DECLARE_WRITE8_MEMBER(spot_w);
- DECLARE_WRITE8_MEMBER(output_spot_w) { m_spot_lamps[offset >> 6] = data; }
+ template void adpcm_w(u8 data);
+ void spot_w(u8 data);
+ void output_spot_w(offs_t offset, u8 data) { m_spot_lamps[offset >> 6] = data; }
- DECLARE_WRITE8_MEMBER(ppi5_a_w);
- DECLARE_WRITE8_MEMBER(ppi5_b_w);
- DECLARE_READ8_MEMBER(ppi5_c_r);
+ void ppi5_a_w(u8 data);
+ void ppi5_b_w(u8 data);
+ u8 ppi5_c_r();
int m_watchdog_clk = 0;
int m_main_irq = 0;
@@ -359,7 +359,7 @@ void cgang_state::refresh_motor_output()
// maincpu (PPI1-PPI4)
-READ8_MEMBER(cgang_state::ppi1_b_r)
+u8 cgang_state::ppi1_b_r()
{
u8 data = 0xff;
@@ -376,7 +376,7 @@ READ8_MEMBER(cgang_state::ppi1_b_r)
return data;
}
-READ8_MEMBER(cgang_state::ppi1_c_r)
+u8 cgang_state::ppi1_c_r()
{
u8 data = 0x7f;
@@ -396,7 +396,7 @@ READ8_MEMBER(cgang_state::ppi1_c_r)
return data;
}
-READ8_MEMBER(cgang_state::ppi2_a_r)
+u8 cgang_state::ppi2_a_r()
{
u8 data = 0x60;
@@ -424,7 +424,7 @@ READ8_MEMBER(cgang_state::ppi2_a_r)
return data;
}
-READ8_MEMBER(cgang_state::ppi2_b_r)
+u8 cgang_state::ppi2_b_r()
{
u8 data = 0x1f;
@@ -436,7 +436,7 @@ READ8_MEMBER(cgang_state::ppi2_b_r)
return data;
}
-WRITE8_MEMBER(cgang_state::ppi2_c_w)
+void cgang_state::ppi2_c_w(u8 data)
{
// PC0: coincounter
// PC1: coinlock solenoid
@@ -449,7 +449,7 @@ WRITE8_MEMBER(cgang_state::ppi2_c_w)
m_misc_lamps[1] = BIT(data, 3);
}
-WRITE8_MEMBER(cgang_state::ppi3_a_w)
+void cgang_state::ppi3_a_w(u8 data)
{
// PA0-PA4: cosmogang motor direction
m_cg_motor_dir = data & 0x1f;
@@ -459,7 +459,7 @@ WRITE8_MEMBER(cgang_state::ppi3_a_w)
m_misc_lamps[i + 6] = BIT(data, i + 5);
}
-WRITE8_MEMBER(cgang_state::ppi3_b_w)
+void cgang_state::ppi3_b_w(u8 data)
{
// PB0-PB4: cosmogang motor power
m_cg_motor_on = data & 0x1f;
@@ -471,7 +471,7 @@ WRITE8_MEMBER(cgang_state::ppi3_b_w)
m_misc_lamps[i + 8] = BIT(data, i + 5);
}
-WRITE8_MEMBER(cgang_state::ppi3_c_w)
+void cgang_state::ppi3_c_w(u8 data)
{
// PC0-PC3: 7448
// PC4-PC7: 7445
@@ -488,7 +488,7 @@ void cgang_state::set_en_sol(int i, int state)
m_sol_filter[i]->adjust(attotime::from_msec(1), i << 1 | state);
}
-WRITE8_MEMBER(cgang_state::ppi4_a_w)
+void cgang_state::ppi4_a_w(u8 data)
{
// PA2-PA4: round leds
for (int i = 0; i < 3; i++)
@@ -499,7 +499,7 @@ WRITE8_MEMBER(cgang_state::ppi4_a_w)
set_en_sol(i, BIT(data, i + 5));
}
-WRITE8_MEMBER(cgang_state::ppi4_b_w)
+void cgang_state::ppi4_b_w(u8 data)
{
// PB0,PB1: energy crate solenoids (4-5)
for (int i = 0; i < 2; i++)
@@ -513,7 +513,7 @@ WRITE8_MEMBER(cgang_state::ppi4_b_w)
m_misc_lamps[5] = BIT(data, 7);
}
-WRITE8_MEMBER(cgang_state::ppi4_c_w)
+void cgang_state::ppi4_c_w(u8 data)
{
// PC0,PC1: gun xenon lamps
for (int i = 0; i < 2; i++)
@@ -538,7 +538,7 @@ WRITE8_MEMBER(cgang_state::ppi4_c_w)
// audiocpu
template
-WRITE8_MEMBER(cgang_state::adpcm_w)
+void cgang_state::adpcm_w(u8 data)
{
m_adpcm[N]->port_w(data);
@@ -547,7 +547,7 @@ WRITE8_MEMBER(cgang_state::adpcm_w)
m_adpcm[N]->start_w(1);
}
-WRITE8_MEMBER(cgang_state::spot_w)
+void cgang_state::spot_w(u8 data)
{
// d0-d2: ufo boss spotlights
// d3-d7: cosmo spotlights
@@ -555,7 +555,7 @@ WRITE8_MEMBER(cgang_state::spot_w)
m_spot->matrix(1, data);
}
-WRITE8_MEMBER(cgang_state::ppi5_a_w)
+void cgang_state::ppi5_a_w(u8 data)
{
// PA0,PA1: ADPCM reset
m_adpcm[0]->reset_w(BIT(data, 0));
@@ -573,14 +573,14 @@ WRITE8_MEMBER(cgang_state::ppi5_a_w)
m_ufo_sol = BIT(data, 7);
}
-WRITE8_MEMBER(cgang_state::ppi5_b_w)
+void cgang_state::ppi5_b_w(u8 data)
{
// PB0-PB7: ufo lamps
for (int i = 0; i < 8; i++)
m_ufo_lamps[i] = BIT(data, i);
}
-READ8_MEMBER(cgang_state::ppi5_c_r)
+u8 cgang_state::ppi5_c_r()
{
u8 data = 0;
diff --git a/src/mame/drivers/chanbara.cpp b/src/mame/drivers/chanbara.cpp
index 6e131a7d82c..bba5826c4c6 100644
--- a/src/mame/drivers/chanbara.cpp
+++ b/src/mame/drivers/chanbara.cpp
@@ -88,8 +88,8 @@ private:
DECLARE_WRITE8_MEMBER(chanbara_colorram_w);
DECLARE_WRITE8_MEMBER(chanbara_videoram2_w);
DECLARE_WRITE8_MEMBER(chanbara_colorram2_w);
- DECLARE_WRITE8_MEMBER(chanbara_ay_out_0_w);
- DECLARE_WRITE8_MEMBER(chanbara_ay_out_1_w);
+ void chanbara_ay_out_0_w(uint8_t data);
+ void chanbara_ay_out_1_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
void chanbara_palette(palette_device &palette) const;
@@ -363,14 +363,14 @@ GFXDECODE_END
/***************************************************************************/
-WRITE8_MEMBER(chanbara_state::chanbara_ay_out_0_w)
+void chanbara_state::chanbara_ay_out_0_w(uint8_t data)
{
//printf("chanbara_ay_out_0_w %02x\n",data);
m_scroll = data;
}
-WRITE8_MEMBER(chanbara_state::chanbara_ay_out_1_w)
+void chanbara_state::chanbara_ay_out_1_w(uint8_t data)
{
//printf("chanbara_ay_out_1_w %02x\n",data);
diff --git a/src/mame/drivers/chessmate.cpp b/src/mame/drivers/chessmate.cpp
index e6083139533..b89352c7076 100644
--- a/src/mame/drivers/chessmate.cpp
+++ b/src/mame/drivers/chessmate.cpp
@@ -90,9 +90,9 @@ private:
// I/O handlers
void update_display();
- DECLARE_WRITE8_MEMBER(control_w);
- DECLARE_WRITE8_MEMBER(digit_w);
- DECLARE_READ8_MEMBER(input_r);
+ void control_w(u8 data);
+ void digit_w(u8 data);
+ u8 input_r();
u8 m_inp_mux;
u8 m_7seg_data;
@@ -134,7 +134,7 @@ void chmate_state::update_display()
m_display->matrix_partial(0, 4, 1 << m_inp_mux, m_7seg_data);
}
-WRITE8_MEMBER(chmate_state::control_w)
+void chmate_state::control_w(u8 data)
{
// d0-d2: 74145 to input mux/digit select
m_inp_mux = data & 7;
@@ -151,13 +151,13 @@ WRITE8_MEMBER(chmate_state::control_w)
m_maincpu->set_input_line(M6502_IRQ_LINE, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
}
-WRITE8_MEMBER(chmate_state::digit_w)
+void chmate_state::digit_w(u8 data)
{
m_7seg_data = data;
update_display();
}
-READ8_MEMBER(chmate_state::input_r)
+u8 chmate_state::input_r()
{
u8 data = 0;
diff --git a/src/mame/drivers/chqflag.cpp b/src/mame/drivers/chqflag.cpp
index d5a94d0f287..239192f4e47 100644
--- a/src/mame/drivers/chqflag.cpp
+++ b/src/mame/drivers/chqflag.cpp
@@ -255,7 +255,7 @@ INPUT_PORTS_END
-WRITE8_MEMBER(chqflag_state::volume_callback0)
+void chqflag_state::volume_callback0(uint8_t data)
{
// volume/pan for one of the channels on this chip
// which channel and which bits are left/right is a guess
@@ -269,7 +269,7 @@ WRITE8_MEMBER(chqflag_state::k007232_extvolume_w)
m_k007232[0]->set_volume(1, (data & 0x0f) * 0x11/2, (data >> 4) * 0x11/2);
}
-WRITE8_MEMBER(chqflag_state::volume_callback1)
+void chqflag_state::volume_callback1(uint8_t data)
{
m_k007232[1]->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232[1]->set_volume(1, 0, (data & 0x0f) * 0x11);
diff --git a/src/mame/drivers/cidelsa.cpp b/src/mame/drivers/cidelsa.cpp
index 4e998a5bc26..f95ab22ae49 100644
--- a/src/mame/drivers/cidelsa.cpp
+++ b/src/mame/drivers/cidelsa.cpp
@@ -17,7 +17,7 @@ WRITE_LINE_MEMBER( cidelsa_state::q_w )
/* Sound Interface */
-WRITE8_MEMBER( draco_state::sound_bankswitch_w )
+void draco_state::sound_bankswitch_w(uint8_t data)
{
/*
@@ -35,7 +35,7 @@ WRITE8_MEMBER( draco_state::sound_bankswitch_w )
membank("bank1")->set_entry(bank);
}
-WRITE8_MEMBER( draco_state::sound_g_w )
+void draco_state::sound_g_w(uint8_t data)
{
/*
@@ -64,24 +64,24 @@ WRITE8_MEMBER( draco_state::sound_g_w )
}
}
-READ8_MEMBER( draco_state::sound_in_r )
+uint8_t draco_state::sound_in_r()
{
return ~(m_sound) & 0x07;
}
-READ8_MEMBER( draco_state::psg_r )
+uint8_t draco_state::psg_r()
{
return m_psg_latch;
}
-WRITE8_MEMBER( draco_state::psg_w )
+void draco_state::psg_w(uint8_t data)
{
m_psg_latch = data;
}
/* Read/Write Handlers */
-WRITE8_MEMBER( cidelsa_state::destryer_out1_w )
+void cidelsa_state::destryer_out1_w(uint8_t data)
{
/*
bit description
@@ -99,7 +99,7 @@ WRITE8_MEMBER( cidelsa_state::destryer_out1_w )
/* CDP1852 Interfaces */
-WRITE8_MEMBER( cidelsa_state::altair_out1_w )
+void cidelsa_state::altair_out1_w(uint8_t data)
{
/*
bit description
@@ -119,7 +119,7 @@ WRITE8_MEMBER( cidelsa_state::altair_out1_w )
m_leds[2] = BIT(data, 5); // FIRE
}
-WRITE8_MEMBER( draco_state::out1_w )
+void draco_state::out1_w(uint8_t data)
{
/*
bit description
diff --git a/src/mame/drivers/cinemat.cpp b/src/mame/drivers/cinemat.cpp
index d3f78ab5202..21f2c49bfe2 100644
--- a/src/mame/drivers/cinemat.cpp
+++ b/src/mame/drivers/cinemat.cpp
@@ -146,7 +146,7 @@ WRITE_LINE_MEMBER(cinemat_state::mux_select_w)
*
*************************************/
-READ8_MEMBER(cinemat_state::joystick_read)
+uint8_t cinemat_state::joystick_read()
{
if (machine().phase() != machine_phase::RUNNING)
return 0;
diff --git a/src/mame/drivers/cit101.cpp b/src/mame/drivers/cit101.cpp
index 5d1049db3c2..0ac8d542236 100644
--- a/src/mame/drivers/cit101.cpp
+++ b/src/mame/drivers/cit101.cpp
@@ -94,10 +94,8 @@ private:
DECLARE_WRITE8_MEMBER(screen_control_w);
DECLARE_WRITE8_MEMBER(brightness_w);
- DECLARE_WRITE8_MEMBER(nvr_address_w);
- DECLARE_READ8_MEMBER(nvr_data_r);
- DECLARE_WRITE8_MEMBER(nvr_data_w);
- DECLARE_WRITE8_MEMBER(nvr_control_w);
+ void nvr_address_w(u8 data);
+ void nvr_control_w(u8 data);
void mem_map(address_map &map);
void io_map(address_map &map);
@@ -276,23 +274,13 @@ WRITE8_MEMBER(cit101_state::brightness_w)
m_brightness = pal5bit(~data & 0x1f);
}
-WRITE8_MEMBER(cit101_state::nvr_address_w)
+void cit101_state::nvr_address_w(u8 data)
{
m_nvr->set_address(data & 0x3f);
m_nvr->set_clk(BIT(data, 6));
}
-READ8_MEMBER(cit101_state::nvr_data_r)
-{
- return m_nvr->data();
-}
-
-WRITE8_MEMBER(cit101_state::nvr_data_w)
-{
- m_nvr->set_data(data);
-}
-
-WRITE8_MEMBER(cit101_state::nvr_control_w)
+void cit101_state::nvr_control_w(u8 data)
{
m_nvr->set_control(BIT(data, 5), !BIT(data, 4), BIT(data, 7), BIT(data, 6));
}
@@ -391,8 +379,8 @@ void cit101_state::cit101(machine_config &config)
i8255_device &ppi(I8255A(config, "ppi", 0));
ppi.out_pa_callback().set(FUNC(cit101_state::nvr_address_w));
- ppi.in_pb_callback().set(FUNC(cit101_state::nvr_data_r));
- ppi.out_pb_callback().set(FUNC(cit101_state::nvr_data_w));
+ ppi.in_pb_callback().set(m_nvr, FUNC(er2055_device::data));
+ ppi.out_pb_callback().set(m_nvr, FUNC(er2055_device::set_data));
ppi.in_pc_callback().set("comm", FUNC(rs232_port_device::cts_r)).lshift(0);
ppi.in_pc_callback().append("comm", FUNC(rs232_port_device::dcd_r)).lshift(1); // tied to DSR for loopback test
ppi.in_pc_callback().append("comm", FUNC(rs232_port_device::ri_r)).lshift(2); // tied to CTS for loopback test
diff --git a/src/mame/drivers/clayshoo.cpp b/src/mame/drivers/clayshoo.cpp
index 7ee439fb337..87b59a9ad6f 100644
--- a/src/mame/drivers/clayshoo.cpp
+++ b/src/mame/drivers/clayshoo.cpp
@@ -35,10 +35,10 @@ public:
void clayshoo(machine_config &config);
protected:
- DECLARE_WRITE8_MEMBER(analog_reset_w);
- DECLARE_READ8_MEMBER(analog_r);
- DECLARE_WRITE8_MEMBER(input_port_select_w);
- DECLARE_READ8_MEMBER(input_port_r);
+ void analog_reset_w(uint8_t data);
+ uint8_t analog_r();
+ void input_port_select_w(uint8_t data);
+ uint8_t input_port_r();
uint32_t screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(reset_analog_bit);
uint8_t difficulty_input_port_r(int bit);
@@ -68,7 +68,7 @@ private:
*
*************************************/
-WRITE8_MEMBER(clayshoo_state::input_port_select_w)
+void clayshoo_state::input_port_select_w(uint8_t data)
{
m_input_port_select = data;
}
@@ -92,7 +92,7 @@ uint8_t clayshoo_state::difficulty_input_port_r( int bit )
}
-READ8_MEMBER(clayshoo_state::input_port_r)
+uint8_t clayshoo_state::input_port_r()
{
uint8_t ret = 0;
@@ -132,7 +132,7 @@ static attotime compute_duration( device_t *device, int analog_pos )
}
-WRITE8_MEMBER(clayshoo_state::analog_reset_w)
+void clayshoo_state::analog_reset_w(uint8_t data)
{
/* reset the analog value, and start the two times that will fire
off in a short period proportional to the position of the
@@ -145,7 +145,7 @@ WRITE8_MEMBER(clayshoo_state::analog_reset_w)
}
-READ8_MEMBER(clayshoo_state::analog_r)
+uint8_t clayshoo_state::analog_r()
{
return m_analog_port_val;
}
diff --git a/src/mame/drivers/clcd.cpp b/src/mame/drivers/clcd.cpp
index 4535395e18f..f1179caf4f3 100644
--- a/src/mame/drivers/clcd.cpp
+++ b/src/mame/drivers/clcd.cpp
@@ -385,12 +385,12 @@ public:
m_lcd_size = data;
}
- WRITE8_MEMBER(via0_pa_w)
+ void via0_pa_w(uint8_t data)
{
m_key_column = data;
}
- WRITE8_MEMBER(via0_pb_w)
+ void via0_pb_w(uint8_t data)
{
write_key_poll((data >> 0) & 1);
m_rtc->cs2_w((data >> 1) & 1);
@@ -439,7 +439,7 @@ public:
}
}
- WRITE8_MEMBER(via1_pa_w)
+ void via1_pa_w(uint8_t data)
{
m_rtc->d0_w(BIT(data, 0));
m_centronics->write_data0(BIT(data, 0));
@@ -465,7 +465,7 @@ public:
m_centronics->write_data7(BIT(data, 7));
}
- WRITE8_MEMBER(via1_pb_w)
+ void via1_pb_w(uint8_t data)
{
//int centronics_unknown = !BIT(data,5);
}
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index bdfdf088c84..2a54d3e6f1b 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -257,9 +257,9 @@ public:
DECLARE_WRITE8_MEMBER( aic_ad565_msb_w );
DECLARE_WRITE8_MEMBER( aic_ad565_lsb_w );
- DECLARE_READ8_MEMBER( q133_1_porta_r );
- DECLARE_WRITE8_MEMBER( q133_1_porta_w );
- DECLARE_WRITE8_MEMBER( q133_1_portb_w );
+ uint8_t q133_1_porta_r();
+ void q133_1_porta_w(uint8_t data);
+ void q133_1_portb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( cmi_iix_vblank );
IRQ_CALLBACK_MEMBER( cpu1_interrupt_callback );
@@ -268,10 +268,10 @@ public:
// Video-related
DECLARE_READ8_MEMBER( video_r );
DECLARE_READ8_MEMBER( lightpen_r );
- DECLARE_READ8_MEMBER( pia_q219_b_r );
+ uint8_t pia_q219_b_r();
DECLARE_WRITE8_MEMBER( video_w );
- DECLARE_WRITE8_MEMBER( vscroll_w );
- DECLARE_WRITE8_MEMBER( video_attr_w );
+ void vscroll_w(uint8_t data);
+ void video_attr_w(uint8_t data);
DECLARE_READ8_MEMBER( vram_r );
DECLARE_WRITE8_MEMBER( vram_w );
DECLARE_READ8_MEMBER( tvt_r );
@@ -311,8 +311,8 @@ public:
// Master card
DECLARE_READ8_MEMBER( cmi02_r );
DECLARE_WRITE8_MEMBER( cmi02_w );
- DECLARE_WRITE8_MEMBER( cmi02_chsel_w );
- DECLARE_WRITE8_MEMBER( master_tune_w );
+ void cmi02_chsel_w(uint8_t data);
+ void master_tune_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( cmi02_ptm_irq );
DECLARE_WRITE_LINE_MEMBER( cmi02_ptm_o2 );
DECLARE_WRITE_LINE_MEMBER( cmi02_pia2_irqa_w );
@@ -594,7 +594,7 @@ READ8_MEMBER( cmi_state::lightpen_r )
return m_lp_x >> 1;
}
-READ8_MEMBER( cmi_state::pia_q219_b_r )
+uint8_t cmi_state::pia_q219_b_r()
{
return ((m_lp_x << 7) & 0x80) | m_q219_b_touch;
}
@@ -606,12 +606,12 @@ WRITE8_MEMBER( cmi_state::video_w )
video_write(offset);
}
-WRITE8_MEMBER( cmi_state::vscroll_w )
+void cmi_state::vscroll_w(uint8_t data)
{
// TODO: Partial updates. Also, this should be done through a PIA
}
-WRITE8_MEMBER( cmi_state::video_attr_w )
+void cmi_state::video_attr_w(uint8_t data)
{
// TODO
}
@@ -1277,12 +1277,12 @@ WRITE_LINE_MEMBER( cmi_state::wd1791_drq )
28 - 2B = PIA
*/
-WRITE8_MEMBER( cmi_state::master_tune_w )
+void cmi_state::master_tune_w(uint8_t data)
{
// double mfreq = (double)data * ((double)MASTER_OSCILLATOR / 2.0) / 256.0;
}
-WRITE8_MEMBER( cmi_state::cmi02_chsel_w )
+void cmi_state::cmi02_chsel_w(uint8_t data)
{
m_cmi02_pia_chsel = data;
}
@@ -1725,7 +1725,7 @@ WRITE_LINE_MEMBER( cmi_state::pia_q219_irqb )
IRQA/B = /RTINT?
*/
-READ8_MEMBER( cmi_state::q133_1_porta_r )
+uint8_t cmi_state::q133_1_porta_r()
{
if (BIT(m_q133_pia[0]->b_output(), 1))
{
@@ -1734,13 +1734,13 @@ READ8_MEMBER( cmi_state::q133_1_porta_r )
return 0xff;
}
-WRITE8_MEMBER( cmi_state::q133_1_porta_w )
+void cmi_state::q133_1_porta_w(uint8_t data)
{
m_msm5832_addr = data & 0xf;
m_msm5832->address_w(data & 0x0f);
}
-WRITE8_MEMBER( cmi_state::q133_1_portb_w )
+void cmi_state::q133_1_portb_w(uint8_t data)
{
m_msm5832->hold_w(BIT(data, 0));
m_msm5832->read_w(BIT(data, 1));
diff --git a/src/mame/drivers/cninja.cpp b/src/mame/drivers/cninja.cpp
index 6e3d6d5a4b6..6e0fecf13ef 100644
--- a/src/mame/drivers/cninja.cpp
+++ b/src/mame/drivers/cninja.cpp
@@ -682,13 +682,13 @@ GFXDECODE_END
/**********************************************************************************/
-WRITE8_MEMBER(cninja_state::sound_bankswitch_w)
+void cninja_state::sound_bankswitch_w(uint8_t data)
{
/* the second OKIM6295 ROM is bank switched */
m_oki2->set_rom_bank(data & 1);
}
-WRITE8_MEMBER(cninja_state::cninjabl2_oki_bank_w)
+void cninja_state::cninjabl2_oki_bank_w(uint8_t data)
{
m_okibank->set_entry(data & 7);
}
diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp
index 3c2339d98b8..0b8c552f7f0 100644
--- a/src/mame/drivers/cobra.cpp
+++ b/src/mame/drivers/cobra.cpp
@@ -1911,7 +1911,7 @@ READ16_MEMBER(cobra_state::sub_ata0_r)
{
mem_mask = ( mem_mask << 8 ) | ( mem_mask >> 8 );
- uint32_t data = m_ata->read_cs0(offset, mem_mask);
+ uint32_t data = m_ata->cs0_r(offset, mem_mask);
data = ( data << 8 ) | ( data >> 8 );
return data;
@@ -1922,14 +1922,14 @@ WRITE16_MEMBER(cobra_state::sub_ata0_w)
mem_mask = ( mem_mask << 8 ) | ( mem_mask >> 8 );
data = ( data << 8 ) | ( data >> 8 );
- m_ata->write_cs0(offset, data, mem_mask);
+ m_ata->cs0_w(offset, data, mem_mask);
}
READ16_MEMBER(cobra_state::sub_ata1_r)
{
mem_mask = ( mem_mask << 8 ) | ( mem_mask >> 8 );
- uint32_t data = m_ata->read_cs1(offset, mem_mask);
+ uint32_t data = m_ata->cs1_r(offset, mem_mask);
return ( data << 8 ) | ( data >> 8 );
}
@@ -1939,7 +1939,7 @@ WRITE16_MEMBER(cobra_state::sub_ata1_w)
mem_mask = ( mem_mask << 8 ) | ( mem_mask >> 8 );
data = ( data << 8 ) | ( data >> 8 );
- m_ata->write_cs1(offset, data, mem_mask);
+ m_ata->cs1_w(offset, data, mem_mask);
}
READ32_MEMBER(cobra_state::sub_comram_r)
diff --git a/src/mame/drivers/combatsc.cpp b/src/mame/drivers/combatsc.cpp
index 86ecbabcfd3..82a119c776d 100644
--- a/src/mame/drivers/combatsc.cpp
+++ b/src/mame/drivers/combatsc.cpp
@@ -329,7 +329,7 @@ WRITE8_MEMBER(combatsc_state::combatsc_voice_reset_w)
m_upd7759->reset_w(data & 1);
}
-WRITE8_MEMBER(combatsc_state::combatsc_portA_w)
+void combatsc_state::combatsc_portA_w(uint8_t data)
{
/* unknown. always write 0 */
}
diff --git a/src/mame/drivers/compgolf.cpp b/src/mame/drivers/compgolf.cpp
index 14c334fee6f..273370c4579 100644
--- a/src/mame/drivers/compgolf.cpp
+++ b/src/mame/drivers/compgolf.cpp
@@ -27,17 +27,17 @@
*
*************************************/
-WRITE8_MEMBER(compgolf_state::compgolf_scrollx_lo_w)
+void compgolf_state::compgolf_scrollx_lo_w(uint8_t data)
{
m_scrollx_lo = data;
}
-WRITE8_MEMBER(compgolf_state::compgolf_scrolly_lo_w)
+void compgolf_state::compgolf_scrolly_lo_w(uint8_t data)
{
m_scrolly_lo = data;
}
-WRITE8_MEMBER(compgolf_state::compgolf_ctrl_w)
+void compgolf_state::compgolf_ctrl_w(uint8_t data)
{
/* bit 4 and 6 are always set */
diff --git a/src/mame/drivers/compucolor.cpp b/src/mame/drivers/compucolor.cpp
index 7be709ab659..f5dc5662f4b 100644
--- a/src/mame/drivers/compucolor.cpp
+++ b/src/mame/drivers/compucolor.cpp
@@ -72,8 +72,8 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_READ8_MEMBER( xi_r );
- DECLARE_WRITE8_MEMBER( xo_w );
+ uint8_t xi_r();
+ void xo_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( xmt_w );
IRQ_CALLBACK_MEMBER( int_ack );
@@ -299,7 +299,7 @@ uint32_t compucolor2_state::screen_update(screen_device &screen, bitmap_rgb32 &b
return 0;
}
-READ8_MEMBER( compucolor2_state::xi_r )
+uint8_t compucolor2_state::xi_r()
{
uint8_t data = 0xff;
@@ -321,7 +321,7 @@ READ8_MEMBER( compucolor2_state::xi_r )
return data;
}
-WRITE8_MEMBER( compucolor2_state::xo_w )
+void compucolor2_state::xo_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/comx35.cpp b/src/mame/drivers/comx35.cpp
index e5a76dd6d9d..688cf20f5a4 100644
--- a/src/mame/drivers/comx35.cpp
+++ b/src/mame/drivers/comx35.cpp
@@ -485,7 +485,7 @@ WRITE_LINE_MEMBER( comx35_state::q_w )
m_exp->q_w(state);
}
-WRITE8_MEMBER( comx35_state::sc_w )
+void comx35_state::sc_w(uint8_t data)
{
switch (data)
{
diff --git a/src/mame/drivers/conic_cchess2.cpp b/src/mame/drivers/conic_cchess2.cpp
index dcb90d16121..2b56ffd24ba 100644
--- a/src/mame/drivers/conic_cchess2.cpp
+++ b/src/mame/drivers/conic_cchess2.cpp
@@ -78,11 +78,11 @@ private:
// I/O handlers
void update_display();
void update_dac();
- DECLARE_WRITE8_MEMBER(pia0_pa_w);
- DECLARE_WRITE8_MEMBER(pia0_pb_w);
- DECLARE_READ8_MEMBER(pia1_pa_r);
- DECLARE_READ8_MEMBER(pia1_pb_r);
- DECLARE_WRITE8_MEMBER(pia1_pb_w);
+ void pia0_pa_w(u8 data);
+ void pia0_pb_w(u8 data);
+ u8 pia1_pa_r();
+ u8 pia1_pb_r();
+ void pia1_pb_w(u8 data);
u8 m_inp_mux = 0;
u8 m_led_data = 0;
@@ -112,7 +112,7 @@ void cchess2_state::update_dac()
m_dac->write(m_dac_on & BIT(m_inp_mux, 1));
}
-WRITE8_MEMBER(cchess2_state::pia0_pa_w)
+void cchess2_state::pia0_pa_w(u8 data)
{
// d0-d7: input mux/led select
// d1: dac data
@@ -121,14 +121,14 @@ WRITE8_MEMBER(cchess2_state::pia0_pa_w)
update_dac();
}
-WRITE8_MEMBER(cchess2_state::pia0_pb_w)
+void cchess2_state::pia0_pb_w(u8 data)
{
// d0-d7: led data
m_led_data = data;
update_display();
}
-READ8_MEMBER(cchess2_state::pia1_pa_r)
+u8 cchess2_state::pia1_pa_r()
{
u8 data = 0;
@@ -140,7 +140,7 @@ READ8_MEMBER(cchess2_state::pia1_pa_r)
return ~data;
}
-READ8_MEMBER(cchess2_state::pia1_pb_r)
+u8 cchess2_state::pia1_pb_r()
{
u8 data = 0;
@@ -152,7 +152,7 @@ READ8_MEMBER(cchess2_state::pia1_pb_r)
return data;
}
-WRITE8_MEMBER(cchess2_state::pia1_pb_w)
+void cchess2_state::pia1_pb_w(u8 data)
{
// d7: dac on
m_dac_on = BIT(data, 7);
diff --git a/src/mame/drivers/cops.cpp b/src/mame/drivers/cops.cpp
index f27f2e9f957..15b1665a721 100644
--- a/src/mame/drivers/cops.cpp
+++ b/src/mame/drivers/cops.cpp
@@ -95,11 +95,11 @@ public:
void update_dacia_irq();
DECLARE_WRITE8_MEMBER(dacia_w);
DECLARE_READ8_MEMBER(dacia_r);
- DECLARE_WRITE8_MEMBER(via1_b_w);
- DECLARE_WRITE8_MEMBER(via1_cb1_w);
- DECLARE_WRITE8_MEMBER(cdrom_data_w);
- DECLARE_WRITE8_MEMBER(cdrom_ctrl_w);
- DECLARE_READ8_MEMBER(cdrom_data_r);
+ void via1_b_w(uint8_t data);
+ void via1_cb1_w(uint8_t data);
+ void cdrom_data_w(uint8_t data);
+ void cdrom_ctrl_w(uint8_t data);
+ uint8_t cdrom_data_r();
void init_cops();
int m_irq;
@@ -202,7 +202,7 @@ uint32_t cops_state::screen_update( screen_device &screen, bitmap_ind16 &bitmap,
*
*************************************/
-WRITE8_MEMBER(cops_state::cdrom_data_w)
+void cops_state::cdrom_data_w(uint8_t data)
{
const char *regs[4] = { "CMD", "PARAM", "WRITE", "CTRL" };
m_cdrom_data = bitswap<8>(data,0,1,2,3,4,5,6,7);
@@ -210,13 +210,13 @@ WRITE8_MEMBER(cops_state::cdrom_data_w)
if (LOG_CDROM) logerror("%s:cdrom_data_w(reg = %s, data = %02x)\n", machine().describe_context(), regs[reg & 0x03], m_cdrom_data);
}
-WRITE8_MEMBER(cops_state::cdrom_ctrl_w)
+void cops_state::cdrom_ctrl_w(uint8_t data)
{
if (LOG_CDROM) logerror("%s:cdrom_ctrl_w(%02x)\n", machine().describe_context(), data);
m_cdrom_ctrl = data;
}
-READ8_MEMBER(cops_state::cdrom_data_r)
+uint8_t cops_state::cdrom_data_r()
{
const char *regs[4] = { "STATUS", "RESULT", "READ", "FIFOST" };
uint8_t reg = ((m_cdrom_ctrl & 4) >> 1) | ((m_cdrom_ctrl & 8) >> 3);
@@ -760,7 +760,7 @@ WRITE_LINE_MEMBER(cops_state::via1_irq)
m_maincpu->set_input_line(M6502_IRQ_LINE, m_irq ? ASSERT_LINE : CLEAR_LINE);
}
-WRITE8_MEMBER(cops_state::via1_b_w)
+void cops_state::via1_b_w(uint8_t data)
{
m_sn_data = bitswap<8>(data,0,1,2,3,4,5,6,7);
if (m_sn_cb1)
@@ -769,7 +769,7 @@ WRITE8_MEMBER(cops_state::via1_b_w)
}
}
-WRITE8_MEMBER(cops_state::via1_cb1_w)
+void cops_state::via1_cb1_w(uint8_t data)
{
m_sn_cb1 = data;
}
diff --git a/src/mame/drivers/cp1.cpp b/src/mame/drivers/cp1.cpp
index 97f50ef2fe7..8aec2a4fe7b 100644
--- a/src/mame/drivers/cp1.cpp
+++ b/src/mame/drivers/cp1.cpp
@@ -13,10 +13,13 @@
****************************************************************************/
#include "emu.h"
+
#include "cpu/mcs48/mcs48.h"
#include "machine/i8155.h"
#include "imagedev/cassette.h"
#include "imagedev/snapquik.h"
+#include "video/pwm.h"
+
#include "speaker.h"
#include "cp1.lh"
@@ -29,9 +32,9 @@ public:
m_i8155(*this, "i8155"),
m_i8155_cp3(*this, "i8155_cp3"),
m_cassette(*this, "cassette"),
+ m_display(*this, "display"),
m_io_lines(*this, "LINE%u", 0U),
- m_io_config(*this, "CONFIG"),
- m_digits(*this, "digit%u", 0U)
+ m_io_config(*this, "CONFIG")
{ }
void cp1(machine_config &config);
@@ -58,9 +61,9 @@ private:
required_device m_i8155;
required_device m_i8155_cp3;
required_device m_cassette;
+ required_device m_display;
required_ioport_array<5> m_io_lines;
required_ioport m_io_config;
- output_finder<6> m_digits;
uint8_t m_7seg;
uint8_t m_port2;
@@ -153,19 +156,8 @@ WRITE8_MEMBER(cp1_state::i8155_write)
WRITE8_MEMBER(cp1_state::i8155_porta_w)
{
- data &= 0x7f; // PA7 is not connected
-
- if (m_7seg)
- {
- if (!(m_matrix & 0x01)) m_digits[5] = data;
- if (!(m_matrix & 0x02)) m_digits[4] = data;
- if (!(m_matrix & 0x04)) m_digits[3] = data;
- if (!(m_matrix & 0x08)) m_digits[2] = data | 0x80; // this digit has always the dot active
- if (!(m_matrix & 0x10)) m_digits[1] = data;
- if (!(m_matrix & 0x20)) m_digits[0] = data;
- }
-
- m_7seg ^= 0x01;
+ m_7seg = data & 0x7f; // PA7 is not connected
+ m_display->matrix(~m_matrix, m_7seg);
}
READ8_MEMBER(cp1_state::i8155_portb_r)
@@ -181,9 +173,9 @@ WRITE8_MEMBER(cp1_state::i8155_portb_w)
WRITE8_MEMBER(cp1_state::i8155_portc_w)
{
- // --xx xxxx keyboard matrix
-
+ // --xx xxxx keyboard matrix, 7seg select
m_matrix = data & 0x3f;
+ m_display->matrix(~m_matrix, m_7seg);
}
@@ -232,7 +224,6 @@ INPUT_PORTS_END
void cp1_state::machine_start()
{
- m_digits.resolve();
}
void cp1_state::machine_reset()
@@ -286,6 +277,8 @@ void cp1_state::cp1(machine_config &config)
I8155(config, "i8155_cp3", 0);
+ PWM_DISPLAY(config, m_display).set_size(6, 7);
+ m_display->set_segmask(0x3f, 0x7f);
config.set_default_layout(layout_cp1);
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/cps2.cpp b/src/mame/drivers/cps2.cpp
index 0795c89dcfa..3404ddf2680 100644
--- a/src/mame/drivers/cps2.cpp
+++ b/src/mame/drivers/cps2.cpp
@@ -8910,6 +8910,40 @@ ROM_START( vsavh )
ROM_LOAD( "vsavh.key", 0x000000, 0x000014, CRC(a7dd6409) SHA1(5c60390e540ea538b1cd0b31635a8ffa1844fa24) )
ROM_END
+ROM_START( vsavb )
+ ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
+ ROM_LOAD16_WORD_SWAP( "vm3b.03d", 0x000000, 0x080000, CRC(22ffba4b) SHA1(2c214c43115fc0978d5ebb814a19b8ee23faab3f) )
+ ROM_LOAD16_WORD_SWAP( "vm3b.04d", 0x080000, 0x080000, CRC(88624909) SHA1(052c8f49ac3bc3d231cfea38c5bad89c3380834e) )
+ ROM_LOAD16_WORD_SWAP( "vm3.05a", 0x100000, 0x080000, CRC(4118e00f) SHA1(94ce8abc5ff547667f4c6022d84d0ed4cd062d7e) )
+ ROM_LOAD16_WORD_SWAP( "vm3.06a", 0x180000, 0x080000, CRC(2f4fd3a9) SHA1(48549ff0121312ea4a18d0fa167a32f905c14c9f) )
+ ROM_LOAD16_WORD_SWAP( "vm3.07b", 0x200000, 0x080000, CRC(cbda91b8) SHA1(31b20aa92422384b1d7a4706ad4c01ea2bd0e0d1) )
+ ROM_LOAD16_WORD_SWAP( "vm3.08a", 0x280000, 0x080000, CRC(6ca47259) SHA1(485d8f3a132ccb3f7930cae74de8662d2d44e412) )
+ ROM_LOAD16_WORD_SWAP( "vm3.09b", 0x300000, 0x080000, CRC(f4a339e3) SHA1(abd101a55f7d9ddb8aba04fe8d3f0f5d2006c925) )
+ ROM_LOAD16_WORD_SWAP( "vm3.10b", 0x380000, 0x080000, CRC(fffbb5b8) SHA1(38aecb820bd1cbd17287848c3ffb013e1d464ddf) )
+
+ ROM_REGION( 0x2000000, "gfx", 0 )
+ ROM_LOAD64_WORD( "vm3.13m", 0x0000000, 0x400000, CRC(fd8a11eb) SHA1(21b9773959e17976ff46b75a6a405042836b2c5f) )
+ ROM_LOAD64_WORD( "vm3.15m", 0x0000002, 0x400000, CRC(dd1e7d4e) SHA1(30476e061cdebdb1838b83f4ebd5efae12b7dbfb) )
+ ROM_LOAD64_WORD( "vm3.17m", 0x0000004, 0x400000, CRC(6b89445e) SHA1(2abd489839d143c46e25f4fc3db476b70607dc03) )
+ ROM_LOAD64_WORD( "vm3.19m", 0x0000006, 0x400000, CRC(3830fdc7) SHA1(ebd3f559c254d349e256c9feb3477f1ed7518206) )
+ ROM_LOAD64_WORD( "vm3.14m", 0x1000000, 0x400000, CRC(c1a28e6c) SHA1(012803af33174c0602649d2a2d84f6ee79f54ad2) )
+ ROM_LOAD64_WORD( "vm3.16m", 0x1000002, 0x400000, CRC(194a7304) SHA1(a19a9a6fb829953b054dc5c3b0dc017f60d37928) )
+ ROM_LOAD64_WORD( "vm3.18m", 0x1000004, 0x400000, CRC(df9a9f47) SHA1(ce29ff00cf4b6fdd9b3b1ed87823534f1d364eab) )
+ ROM_LOAD64_WORD( "vm3.20m", 0x1000006, 0x400000, CRC(c22fc3d9) SHA1(df7538c05b03a4ad94d369f8083799979e6fac42) )
+
+ ROM_REGION( QSOUND_SIZE, "audiocpu", 0 ) /* 64k for the audio CPU (+banks) */
+ ROM_LOAD( "vm3.01", 0x00000, 0x08000, CRC(f778769b) SHA1(788ce1ad8a322179f634df9e62a31ad776b96762) )
+ ROM_CONTINUE( 0x10000, 0x18000 )
+ ROM_LOAD( "vm3.02", 0x28000, 0x20000, CRC(cc09faa1) SHA1(2962ef0ceaf7e7279de3c421ea998763330eb43e) )
+
+ ROM_REGION( 0x800000, "qsound", 0 ) /* QSound samples */
+ ROM_LOAD16_WORD_SWAP( "vm3.11m", 0x000000, 0x400000, CRC(e80e956e) SHA1(74181fca4b764fb3c56ceef2cb4c6fd6c18ec4b6) )
+ ROM_LOAD16_WORD_SWAP( "vm3.12m", 0x400000, 0x400000, CRC(9cd71557) SHA1(7059db25698a0b286314c5961c618f6d2e6f24a1) )
+
+ ROM_REGION( 0x20, "key", 0 )
+ ROM_LOAD( "vsavb.key", 0x000000, 0x000014, CRC(5274e635) SHA1(4a36bc9cc4497bdfaecf7dd638b5deace131c111) )
+ROM_END
+
ROM_START( vsav2 )
ROM_REGION( CODE_SIZE, "maincpu", 0 ) /* 68000 code */
ROM_LOAD16_WORD_SWAP( "vs2j.03", 0x000000, 0x80000, CRC(89fd86b4) SHA1(a52f40618d7f12f1df5862ad8e15fea60bef22a2) )
@@ -10242,6 +10276,7 @@ GAME( 1997, vsavu, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, RO
GAME( 1997, vsavj, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Japan 970519)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, vsava, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Asia 970519)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, vsavh, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Hispanic 970519)", MACHINE_SUPPORTS_SAVE )
+GAME( 1997, vsavb, vsav, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Vampire Savior: The Lord of Vampire (Brazil 970519)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, mshvsf, 0, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (Euro 970625)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, mshvsfu, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970827)", MACHINE_SUPPORTS_SAVE )
GAME( 1997, mshvsfu1, mshvsf, cps2, cps2_2p6b, cps2_state, init_cps2, ROT0, "Capcom", "Marvel Super Heroes Vs. Street Fighter (USA 970625)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/crimfght.cpp b/src/mame/drivers/crimfght.cpp
index 147f8619994..4a382ffd5c7 100644
--- a/src/mame/drivers/crimfght.cpp
+++ b/src/mame/drivers/crimfght.cpp
@@ -68,9 +68,9 @@ IRQ_CALLBACK_MEMBER( crimfght_state::audiocpu_irq_ack )
return 0xff;
}
-WRITE8_MEMBER(crimfght_state::ym2151_ct_w)
+void crimfght_state::ym2151_ct_w(uint8_t data)
{
- // ne output from the 007232 is connected to a ls399 which
+ // one output from the 007232 is connected to a ls399 which
// has inputs connected to the ct1 and ct2 outputs from
// the ym2151 used to select the bank
@@ -260,7 +260,7 @@ INPUT_PORTS_END
***************************************************************************/
-WRITE8_MEMBER(crimfght_state::volume_callback)
+void crimfght_state::volume_callback(uint8_t data)
{
m_k007232->set_volume(0, (data & 0x0f) * 0x11, 0);
m_k007232->set_volume(1, 0, (data >> 4) * 0x11);
@@ -272,7 +272,7 @@ void crimfght_state::machine_start()
m_rombank->set_entry(0);
}
-WRITE8_MEMBER( crimfght_state::banking_callback )
+void crimfght_state::banking_callback(uint8_t data)
{
m_rombank->set_entry(data & 0x0f);
diff --git a/src/mame/drivers/csplayh5.cpp b/src/mame/drivers/csplayh5.cpp
index 52a4809eaa7..593b2fd1a3b 100644
--- a/src/mame/drivers/csplayh5.cpp
+++ b/src/mame/drivers/csplayh5.cpp
@@ -63,7 +63,7 @@ public:
DECLARE_READ16_MEMBER(csplayh5_mux_r);
DECLARE_WRITE16_MEMBER(csplayh5_mux_w);
- DECLARE_WRITE16_MEMBER(tmp68301_parallel_port_w);
+ void tmp68301_parallel_port_w(uint16_t data);
#if USE_H8
DECLARE_READ16_MEMBER(test_r);
@@ -342,7 +342,7 @@ WRITE_LINE_MEMBER(csplayh5_state::ide_irq)
}
#endif
-WRITE16_MEMBER(csplayh5_state::tmp68301_parallel_port_w)
+void csplayh5_state::tmp68301_parallel_port_w(uint16_t data)
{
/*
-x-- ---- used during ROM check, h8 reset assert?
diff --git a/src/mame/drivers/ct486.cpp b/src/mame/drivers/ct486.cpp
index 144e4b9f89f..310ad4d86fa 100644
--- a/src/mame/drivers/ct486.cpp
+++ b/src/mame/drivers/ct486.cpp
@@ -47,10 +47,10 @@ public:
virtual void machine_start() override;
- DECLARE_READ16_MEMBER( cs4031_ior );
- DECLARE_WRITE16_MEMBER( cs4031_iow );
+ uint16_t cs4031_ior(offs_t offset);
+ void cs4031_iow(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER( cs4031_hold );
- DECLARE_WRITE8_MEMBER( cs4031_tc ) { m_isabus->eop_w(offset, data); }
+ void cs4031_tc(offs_t offset, uint8_t data) { m_isabus->eop_w(offset, data); }
DECLARE_WRITE_LINE_MEMBER( cs4031_spkr ) { m_speaker->level_w(state); }
void ct486(machine_config &config);
void ct486_io(address_map &map);
@@ -66,7 +66,7 @@ void ct486_state::machine_start()
{
}
-READ16_MEMBER( ct486_state::cs4031_ior )
+uint16_t ct486_state::cs4031_ior(offs_t offset)
{
if (offset < 4)
return m_isabus->dack_r(offset);
@@ -74,7 +74,7 @@ READ16_MEMBER( ct486_state::cs4031_ior )
return m_isabus->dack16_r(offset);
}
-WRITE16_MEMBER( ct486_state::cs4031_iow )
+void ct486_state::cs4031_iow(offs_t offset, uint16_t data)
{
if (offset < 4)
m_isabus->dack_w(offset, data);
diff --git a/src/mame/drivers/cubo.cpp b/src/mame/drivers/cubo.cpp
index a8c5713533a..9f0f723f4b1 100644
--- a/src/mame/drivers/cubo.cpp
+++ b/src/mame/drivers/cubo.cpp
@@ -342,7 +342,7 @@ public:
template DECLARE_READ_LINE_MEMBER(cd32_sel_mirror_input);
DECLARE_WRITE_LINE_MEMBER( akiko_int_w );
- DECLARE_WRITE8_MEMBER( akiko_cia_0_port_a_write );
+ void akiko_cia_0_port_a_write(uint8_t data);
void init_cubo();
void init_mgprem11();
@@ -406,7 +406,7 @@ WRITE_LINE_MEMBER( cubo_state::akiko_int_w )
*************************************/
-WRITE8_MEMBER( cubo_state::akiko_cia_0_port_a_write )
+void cubo_state::akiko_cia_0_port_a_write(uint8_t data)
{
/* bit 0 = cd audio mute */
m_cdda->set_output_gain( 0, ( data & 1 ) ? 0.0 : 1.0 );
diff --git a/src/mame/drivers/cvicny.cpp b/src/mame/drivers/cvicny.cpp
index 7d5dca51587..cb824eb7250 100644
--- a/src/mame/drivers/cvicny.cpp
+++ b/src/mame/drivers/cvicny.cpp
@@ -2,38 +2,36 @@
// copyright-holders:Robbbert
/***************************************************************************
- CVICNY8080 - Practice-z80 - a homebrew from Czechoslavakia.
+CVICNY8080 - Practice-z80 - a homebrew from Czechoslavakia.
- More data at :
- http://www.nostalcomp.cz/cvicny8080.php
+More data at :
+ https://web.archive.org/web/20190202185251/http://www.nostalcomp.cz/cvicny8080.php
- 21/OCT/2011 New working driver. [Robbbert]
+2011-10-21 New working driver. [Robbbert]
- Keys:
- 0-9,A-F : hexadecimal numbers
- ADR : enter an address to work with. After the 4 digits are entered,
- the data at that address shows, and you can modify the data.
- + (inc) : Enter the data into memory, and increment the address by 1.
- GO : execute the program located at the current address.
+Keys:
+ 0-9,A-F : hexadecimal numbers
+ ADR : enter an address to work with. After the 4 digits are entered,
+ the data at that address shows, and you can modify the data.
+ + (inc) : Enter the data into memory, and increment the address by 1.
+ GO : execute the program located at the current address.
- Pasting:
- 0-F : as is
- + (inc) : ^
- ADR : -
- GO : X
+Pasting:
+ 0-F : as is
+ + (inc) : ^
+ ADR : -
+ GO : X
- Test Paste:
- 11^22^33^44^55^66^77^88^99^-0800
- Now press up-arrow to confirm the data has been entered.
+Test Paste:
+ 11^22^33^44^55^66^77^88^99^-0800
+ Now press up-arrow to confirm the data has been entered.
- ToDo:
- - When ADR is pressed, sometimes a segment stays alight. Bug?
- - Blank the display if digits aren't being refreshed
****************************************************************************/
#include "emu.h"
#include "cpu/z80/z80.h"
+#include "video/pwm.h"
#include "cvicny.lh"
class cvicny_state : public driver_device
@@ -41,9 +39,9 @@ class cvicny_state : public driver_device
public:
cvicny_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
- , m_digit_last(0)
, m_maincpu(*this, "maincpu")
- , m_digits(*this, "digit%u", 0U)
+ , m_display(*this, "display")
+ , m_io_keyboard(*this, "X%u", 0U)
{ }
void cvicny(machine_config &config);
@@ -53,31 +51,27 @@ public:
DECLARE_WRITE8_MEMBER(segment_w );
private:
uint8_t m_digit;
- uint8_t m_digit_last;
- virtual void machine_start() override { m_digits.resolve(); }
+ uint8_t m_seg;
required_device m_maincpu;
- output_finder<8> m_digits;
+ required_device m_display;
+ required_ioport_array<8> m_io_keyboard;
};
WRITE8_MEMBER( cvicny_state::segment_w ) // output segments on the selected digit
{
- if (m_digit != m_digit_last)
- m_digits[m_digit] = data;
-
- m_digit_last = m_digit;
+ m_seg = data;
+ m_display->matrix(1<matrix(1<read();
+ u8 data = m_io_keyboard[m_digit]->read();
return ((data << 4) ^ 0xf0) | data;
}
@@ -143,11 +137,13 @@ void cvicny_state::cvicny(machine_config &config)
/* video hardware */
config.set_default_layout(layout_cvicny);
+ PWM_DISPLAY(config, m_display).set_size(8, 8);
+ m_display->set_segmask(0xff, 0xff);
}
/* ROM definition */
ROM_START( cvicny )
- ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
+ ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD("cvicny8080.bin", 0x0000, 0x05ea, CRC(e6119052) SHA1(d03c2cbfd047f0d090a787fbbde6353593cc2dd8) )
ROM_END
diff --git a/src/mame/drivers/cxg_dominator.cpp b/src/mame/drivers/cxg_dominator.cpp
index ff1e72eb1f3..eafc0d5ab7f 100644
--- a/src/mame/drivers/cxg_dominator.cpp
+++ b/src/mame/drivers/cxg_dominator.cpp
@@ -71,10 +71,10 @@ private:
void main_map(address_map &map);
// I/O handlers
- DECLARE_WRITE64_MEMBER(lcd_s_w);
- DECLARE_WRITE8_MEMBER(control_w);
- DECLARE_WRITE8_MEMBER(leds_w);
- DECLARE_READ8_MEMBER(input_r);
+ void lcd_s_w(offs_t offset, u64 data);
+ void control_w(u8 data);
+ void leds_w(offs_t offset, u8 data);
+ u8 input_r(offs_t offset);
};
void dominator_state::machine_start()
@@ -91,7 +91,7 @@ void dominator_state::machine_start()
// LC7582 LCD
-WRITE64_MEMBER(dominator_state::lcd_s_w)
+void dominator_state::lcd_s_w(offs_t offset, u64 data)
{
u8 d[4];
@@ -115,7 +115,7 @@ WRITE64_MEMBER(dominator_state::lcd_s_w)
// TTL
-WRITE8_MEMBER(dominator_state::control_w)
+void dominator_state::control_w(u8 data)
{
// d0: LC7582 DATA
// d1: LC7582 CLK
@@ -128,13 +128,13 @@ WRITE8_MEMBER(dominator_state::control_w)
m_dac->write(BIT(data, 3));
}
-WRITE8_MEMBER(dominator_state::leds_w)
+void dominator_state::leds_w(offs_t offset, u8 data)
{
// led data
m_display->matrix(1 << offset, data);
}
-READ8_MEMBER(dominator_state::input_r)
+u8 dominator_state::input_r(offs_t offset)
{
u8 data = 0;
diff --git a/src/mame/drivers/cxg_sphinx40.cpp b/src/mame/drivers/cxg_sphinx40.cpp
index 0c689f19412..b421d629582 100644
--- a/src/mame/drivers/cxg_sphinx40.cpp
+++ b/src/mame/drivers/cxg_sphinx40.cpp
@@ -96,16 +96,16 @@ private:
void nvram_map(address_map &map);
// I/O handlers
- DECLARE_WRITE64_MEMBER(lcd_seg_w);
+ void lcd_seg_w(u64 data);
void update_display();
- DECLARE_WRITE8_MEMBER(cb_mux_w);
- DECLARE_WRITE8_MEMBER(cb_leds_w);
- DECLARE_READ8_MEMBER(cb_r);
+ void cb_mux_w(u8 data);
+ void cb_leds_w(u8 data);
+ u8 cb_r();
- DECLARE_READ8_MEMBER(input_r);
- DECLARE_WRITE8_MEMBER(input_w);
- DECLARE_WRITE8_MEMBER(lcd_w);
+ u8 input_r();
+ void input_w(u8 data);
+ void lcd_w(u8 data);
u8 m_cb_mux = 0;
u8 m_led_data = 0;
@@ -131,7 +131,7 @@ void sphinx40_state::machine_start()
// HD61603 LCD
-WRITE64_MEMBER(sphinx40_state::lcd_seg_w)
+void sphinx40_state::lcd_seg_w(u64 data)
{
// output individual segments
for (int i = 0; i < 64; i++)
@@ -153,14 +153,14 @@ void sphinx40_state::update_display()
m_display->matrix(m_cb_mux, m_led_data);
}
-WRITE8_MEMBER(sphinx40_state::cb_mux_w)
+void sphinx40_state::cb_mux_w(u8 data)
{
// PA0-PA7: chessboard input/led mux
m_cb_mux = ~data;
update_display();
}
-WRITE8_MEMBER(sphinx40_state::cb_leds_w)
+void sphinx40_state::cb_leds_w(u8 data)
{
// PB0-PB7: chessboard leds
m_led_data = ~data;
@@ -170,7 +170,7 @@ WRITE8_MEMBER(sphinx40_state::cb_leds_w)
// TTL
-READ8_MEMBER(sphinx40_state::cb_r)
+u8 sphinx40_state::cb_r()
{
u8 data = 0;
@@ -182,13 +182,13 @@ READ8_MEMBER(sphinx40_state::cb_r)
return data;
}
-WRITE8_MEMBER(sphinx40_state::input_w)
+void sphinx40_state::input_w(u8 data)
{
// d0-d3: input mux (buttons)
m_inp_mux = ~data & 0xf;
}
-READ8_MEMBER(sphinx40_state::input_r)
+u8 sphinx40_state::input_r()
{
u8 data = 0;
@@ -200,7 +200,7 @@ READ8_MEMBER(sphinx40_state::input_r)
return ~data & 0x1f;
}
-WRITE8_MEMBER(sphinx40_state::lcd_w)
+void sphinx40_state::lcd_w(u8 data)
{
// d0-d3: HD61603 data
m_lcd->data_w(data & 0xf);
diff --git a/src/mame/drivers/cz101.cpp b/src/mame/drivers/cz101.cpp
index f21ba712804..c34c37936cf 100644
--- a/src/mame/drivers/cz101.cpp
+++ b/src/mame/drivers/cz101.cpp
@@ -57,9 +57,8 @@ private:
void maincpu_map(address_map &map);
- DECLARE_WRITE8_MEMBER(port_b_w);
- DECLARE_READ8_MEMBER(port_c_r);
- DECLARE_WRITE8_MEMBER(port_c_w);
+ void port_b_w(uint8_t data);
+ void port_c_w(uint8_t data);
DECLARE_WRITE8_MEMBER(led_1_w);
DECLARE_WRITE8_MEMBER(led_2_w);
@@ -322,7 +321,7 @@ READ8_MEMBER( cz101_state::keys_r )
// ---4---- music lsi irq input
// ----3210 key select output
-WRITE8_MEMBER( cz101_state::port_b_w )
+void cz101_state::port_b_w(uint8_t data)
{
LOG("port_b_w: %02x\n", data);
@@ -338,7 +337,7 @@ WRITE8_MEMBER( cz101_state::port_b_w )
// ------1- midi input
// -------0 midi output
-WRITE8_MEMBER( cz101_state::port_c_w )
+void cz101_state::port_c_w(uint8_t data)
{
LOG("port_c_w: %02x\n", data);
diff --git a/src/mame/drivers/dassault.cpp b/src/mame/drivers/dassault.cpp
index 5b53a00c76b..c7327511c1b 100644
--- a/src/mame/drivers/dassault.cpp
+++ b/src/mame/drivers/dassault.cpp
@@ -504,7 +504,7 @@ GFXDECODE_END
/**********************************************************************************/
-WRITE8_MEMBER(dassault_state::sound_bankswitch_w)
+void dassault_state::sound_bankswitch_w(uint8_t data)
{
/* the second OKIM6295 ROM is bank switched */
m_oki2->set_rom_bank(data & 1);
diff --git a/src/mame/drivers/datum.cpp b/src/mame/drivers/datum.cpp
index a49a560fe80..4e86ef3bf2e 100644
--- a/src/mame/drivers/datum.cpp
+++ b/src/mame/drivers/datum.cpp
@@ -55,6 +55,7 @@ Z1000G
#include "machine/6821pia.h"
#include "machine/6850acia.h"
#include "bus/rs232/rs232.h"
+#include "video/pwm.h"
#include "datum.lh"
@@ -66,9 +67,9 @@ public:
, m_pia1(*this, "pia1")
, m_pia2(*this, "pia2")
, m_acia(*this, "acia")
- , m_keyboard(*this, "X%u", 0)
, m_maincpu(*this, "maincpu")
- , m_digits(*this, "digit%u", 0U)
+ , m_display(*this, "display")
+ , m_io_keyboard(*this, "X%u", 0U)
{ }
void datum(machine_config &config);
@@ -81,14 +82,14 @@ private:
DECLARE_WRITE8_MEMBER(pb_w);
void datum_mem(address_map &map);
uint8_t m_keydata;
+ uint8_t m_seg;
virtual void machine_reset() override;
- virtual void machine_start() override { m_digits.resolve(); }
required_device m_pia1;
required_device m_pia2;
required_device m_acia;
- required_ioport_array<4> m_keyboard;
required_device m_maincpu;
- output_finder<16> m_digits;
+ required_device m_display;
+ required_ioport_array<4> m_io_keyboard;
};
@@ -156,13 +157,14 @@ INPUT_CHANGED_MEMBER( datum_state::trigger_nmi )
void datum_state::machine_reset()
{
m_keydata = 0;
+ m_seg = 0;
}
// read keyboard
READ8_MEMBER( datum_state::pa_r )
{
if (m_keydata < 4)
- return m_keyboard[m_keydata]->read();
+ return m_io_keyboard[m_keydata]->read();
return 0xff;
}
@@ -170,21 +172,15 @@ READ8_MEMBER( datum_state::pa_r )
// write display segments
WRITE8_MEMBER( datum_state::pa_w )
{
- data ^= 0xff;
- if (m_keydata > 3)
- {
- m_digits[m_keydata] = bitswap<8>(data & 0x7f, 7, 0, 5, 6, 4, 2, 1, 3);
- m_keydata = 0;
- }
-
- return;
+ m_seg = bitswap<8>(~data, 7, 0, 5, 6, 4, 2, 1, 3);
+ m_display->matrix(1<(data, 7, 6, 5, 4, 0, 1, 2, 3) & 15;
- return;
+ m_display->matrix(1<set_segmask(0x3f0, 0x7f);
/* Devices */
PIA6821(config, m_pia1, 0); // keyboard & display
diff --git a/src/mame/drivers/dblcrown.cpp b/src/mame/drivers/dblcrown.cpp
index 55eab934533..ede808fea5e 100644
--- a/src/mame/drivers/dblcrown.cpp
+++ b/src/mame/drivers/dblcrown.cpp
@@ -83,7 +83,7 @@ private:
// screen updates
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE8_MEMBER(bank_w);
+ void bank_w(uint8_t data);
DECLARE_READ8_MEMBER(irq_source_r);
DECLARE_WRITE8_MEMBER(irq_source_w);
DECLARE_READ8_MEMBER(palette_r);
@@ -92,11 +92,11 @@ private:
DECLARE_WRITE8_MEMBER(vram_w);
DECLARE_READ8_MEMBER(vram_bank_r);
DECLARE_WRITE8_MEMBER(vram_bank_w);
- DECLARE_WRITE8_MEMBER(mux_w);
+ void mux_w(uint8_t data);
DECLARE_READ8_MEMBER(in_mux_r);
DECLARE_READ8_MEMBER(in_mux_type_r);
DECLARE_WRITE8_MEMBER(output_w);
- DECLARE_WRITE8_MEMBER(lamps_w);
+ void lamps_w(uint8_t data);
DECLARE_WRITE8_MEMBER(watchdog_w);
TIMER_DEVICE_CALLBACK_MEMBER(dblcrown_irq_scanline);
@@ -169,7 +169,7 @@ uint32_t dblcrown_state::screen_update( screen_device &screen, bitmap_ind16 &bit
return 0;
}
-WRITE8_MEMBER( dblcrown_state::bank_w)
+void dblcrown_state::bank_w(uint8_t data)
{
m_bank = data;
membank("rom_bank")->set_entry(m_bank & 0x1f);
@@ -251,7 +251,7 @@ WRITE8_MEMBER( dblcrown_state::vram_bank_w)
printf("vram bank = %02x\n",data);
}
-WRITE8_MEMBER( dblcrown_state::mux_w)
+void dblcrown_state::mux_w(uint8_t data)
{
m_mux_data = data;
}
@@ -305,7 +305,7 @@ WRITE8_MEMBER( dblcrown_state::output_w )
}
-WRITE8_MEMBER( dblcrown_state::lamps_w )
+void dblcrown_state::lamps_w(uint8_t data)
{
/* bits
7654 3210
diff --git a/src/mame/drivers/ddenlovr.cpp b/src/mame/drivers/ddenlovr.cpp
index fcfb9f20ae5..2f14b88c7bd 100644
--- a/src/mame/drivers/ddenlovr.cpp
+++ b/src/mame/drivers/ddenlovr.cpp
@@ -287,8 +287,8 @@ private:
DECLARE_WRITE8_MEMBER(ddenlovr_transparency_mask2_w);
DECLARE_READ8_MEMBER(unk_r);
DECLARE_READ16_MEMBER(unk16_r);
- DECLARE_WRITE8_MEMBER(ddenlovr_select2_w);
- DECLARE_READ8_MEMBER(rongrong_input2_r);
+ void ddenlovr_select2_w(uint8_t data);
+ uint8_t rongrong_input2_r();
DECLARE_READ16_MEMBER(quiz365_input2_r);
DECLARE_WRITE8_MEMBER(quiz365_coincounter_w);
DECLARE_READ16_MEMBER(quiz365_protection_r);
@@ -303,10 +303,10 @@ private:
DECLARE_WRITE8_MEMBER(nettoqc_coincounter_w);
DECLARE_READ16_MEMBER(ultrchmp_protection2_r);
DECLARE_WRITE16_MEMBER(ultrchmp_protection2_w);
- DECLARE_READ8_MEMBER(rongrong_input_r);
- DECLARE_WRITE8_MEMBER(rongrong_select_w);
+ uint8_t rongrong_input_r();
+ void rongrong_select_w(uint8_t data);
DECLARE_READ8_MEMBER(magic_r);
- DECLARE_WRITE8_MEMBER(mmpanic_rombank_w);
+ void mmpanic_rombank_w(uint8_t data);
DECLARE_WRITE8_MEMBER(mmpanic_blitter2_w);
DECLARE_WRITE_LINE_MEMBER(mmpanic_blitter_irq);
DECLARE_WRITE8_MEMBER(mmpanic_leds_w);
@@ -316,16 +316,16 @@ private:
DECLARE_READ8_MEMBER(funkyfig_busy_r);
DECLARE_WRITE8_MEMBER(funkyfig_blitter_w);
DECLARE_WRITE_LINE_MEMBER(funkyfig_blitter_irq);
- DECLARE_WRITE8_MEMBER(funkyfig_rombank_w);
- DECLARE_READ8_MEMBER(funkyfig_dsw_r);
+ void funkyfig_rombank_w(uint8_t data);
+ uint8_t funkyfig_dsw_r();
DECLARE_READ8_MEMBER(funkyfig_coin_r);
DECLARE_READ8_MEMBER(funkyfig_key_r);
DECLARE_WRITE8_MEMBER(funkyfig_lockout_w);
- DECLARE_WRITE8_MEMBER(hanakanz_rombank_w);
- DECLARE_WRITE8_MEMBER(hanakanz_keyb_w);
+ void hanakanz_rombank_w(uint8_t data);
+ void hanakanz_keyb_w(uint8_t data);
DECLARE_WRITE8_MEMBER(hanakanz_dsw_w);
DECLARE_READ8_MEMBER(hanakanz_keyb_r);
- DECLARE_READ8_MEMBER(hanakanz_dsw_r);
+ uint8_t hanakanz_dsw_r();
DECLARE_READ8_MEMBER(hanakanz_busy_r);
DECLARE_READ8_MEMBER(hanakanz_gfxrom_r);
DECLARE_WRITE8_MEMBER(hanakanz_coincounter_w);
@@ -341,13 +341,13 @@ private:
DECLARE_READ8_MEMBER(mjchuuka_gfxrom_1_r);
DECLARE_WRITE8_MEMBER(mjchuuka_palette_w);
DECLARE_WRITE8_MEMBER(mjchuuka_coincounter_w);
- DECLARE_WRITE8_MEMBER(mjmyster_rambank_w);
+ void mjmyster_rambank_w(uint8_t data);
DECLARE_WRITE8_MEMBER(mjmyster_select2_w);
DECLARE_READ8_MEMBER(mjmyster_coins_r);
DECLARE_READ8_MEMBER(mjmyster_keyb_r);
DECLARE_READ8_MEMBER(mjmyster_dsw_r);
DECLARE_WRITE8_MEMBER(mjmyster_coincounter_w);
- DECLARE_WRITE8_MEMBER(hginga_rombank_w);
+ void hginga_rombank_w(uint8_t data);
DECLARE_READ8_MEMBER(hginga_protection_r);
DECLARE_WRITE8_MEMBER(hginga_input_w);
DECLARE_READ8_MEMBER(hginga_coins_r);
@@ -360,9 +360,9 @@ private:
DECLARE_WRITE8_MEMBER(hgokou_input_w);
DECLARE_READ8_MEMBER(hgokou_protection_r);
DECLARE_READ8_MEMBER(hgokbang_input_r);
- DECLARE_WRITE8_MEMBER(hparadis_select_w);
+ void hparadis_select_w(uint8_t data);
DECLARE_READ8_MEMBER(hparadis_input_r);
- DECLARE_READ8_MEMBER(hparadis_dsw_r);
+ uint8_t hparadis_dsw_r();
DECLARE_WRITE8_MEMBER(hparadis_coin_w);
DECLARE_READ8_MEMBER(mjmywrld_coins_r);
DECLARE_READ16_MEMBER(akamaru_protection1_r);
@@ -373,7 +373,7 @@ private:
DECLARE_READ16_MEMBER(akamaru_dsw_r);
DECLARE_READ16_MEMBER(akamaru_blitter_r);
DECLARE_READ16_MEMBER(akamaru_e0010d_r);
- DECLARE_WRITE8_MEMBER(mjflove_rombank_w);
+ void mjflove_rombank_w(uint8_t data);
DECLARE_READ8_MEMBER(mjflove_protection_r);
DECLARE_READ8_MEMBER(mjflove_keyb_r);
DECLARE_WRITE_LINE_MEMBER(mjflove_blitter_irq);
@@ -384,8 +384,8 @@ private:
DECLARE_WRITE8_MEMBER(mjgnight_protection_w);
DECLARE_WRITE8_MEMBER(mjgnight_coincounter_w);
DECLARE_READ8_MEMBER(sryudens_keyb_r);
- DECLARE_WRITE8_MEMBER(sryudens_coincounter_w);
- DECLARE_WRITE8_MEMBER(sryudens_rambank_w);
+ void sryudens_coincounter_w(uint8_t data);
+ void sryudens_rambank_w(uint8_t data);
DECLARE_READ8_MEMBER(daimyojn_keyb1_r);
DECLARE_READ8_MEMBER(daimyojn_keyb2_r);
DECLARE_WRITE8_MEMBER(daimyojn_protection_w);
@@ -405,21 +405,21 @@ private:
DECLARE_WRITE8_MEMBER(htengoku_rombank_w);
DECLARE_WRITE8_MEMBER(htengoku_blit_romregion_w);
DECLARE_VIDEO_START(htengoku);
- DECLARE_WRITE8_MEMBER(htengoku_dsw_w);
- DECLARE_READ8_MEMBER(htengoku_dsw_r);
+ void htengoku_dsw_w(uint8_t data);
+ uint8_t htengoku_dsw_r();
DECLARE_WRITE8_MEMBER(quizchq_oki_bank_w);
DECLARE_WRITE8_MEMBER(ddenlovr_oki_bank_w);
DECLARE_WRITE_LINE_MEMBER(quiz365_oki_bank1_w);
DECLARE_WRITE_LINE_MEMBER(quiz365_oki_bank2_w);
- DECLARE_WRITE8_MEMBER(ddenlovr_select_w);
- DECLARE_READ8_MEMBER(quiz365_input_r);
+ void ddenlovr_select_w(uint8_t data);
+ uint8_t quiz365_input_r();
DECLARE_WRITE8_MEMBER(nettoqc_oki_bank_w);
DECLARE_WRITE8_MEMBER(hanakanz_oki_bank_w);
- DECLARE_WRITE8_MEMBER(mjchuuka_oki_bank_w);
- DECLARE_READ8_MEMBER(hginga_dsw_r);
+ void mjchuuka_oki_bank_w(uint8_t data);
+ uint8_t hginga_dsw_r();
DECLARE_WRITE8_MEMBER(mjflove_okibank_w);
DECLARE_WRITE8_MEMBER(jongtei_okibank_w);
- DECLARE_READ8_MEMBER(seljan2_dsw_r);
+ uint8_t seljan2_dsw_r();
DECLARE_WRITE8_MEMBER(daimyojn_okibank_w);
void ddenlovr_flipscreen_w( uint8_t data );
@@ -1868,17 +1868,17 @@ READ16_MEMBER(ddenlovr_state::unk16_r)
}
-WRITE8_MEMBER(ddenlovr_state::ddenlovr_select_w )
+void ddenlovr_state::ddenlovr_select_w(uint8_t data)
{
m_dsw_sel = data;
}
-WRITE8_MEMBER(ddenlovr_state::ddenlovr_select2_w)
+void ddenlovr_state::ddenlovr_select2_w(uint8_t data)
{
m_input_sel = data;
}
-READ8_MEMBER(ddenlovr_state::rongrong_input2_r)
+uint8_t ddenlovr_state::rongrong_input2_r()
{
// logerror("%04x: input2_r offset %d select %x\n", m_maincpu->pc(), offset, m_input_sel);
/* 0 and 1 are read from offset 1, 2 from offset 0... */
@@ -1892,7 +1892,7 @@ READ8_MEMBER(ddenlovr_state::rongrong_input2_r)
}
-READ8_MEMBER(ddenlovr_state::quiz365_input_r )
+uint8_t ddenlovr_state::quiz365_input_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW1")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW2")->read();
@@ -2263,7 +2263,7 @@ void ddenlovr_state::ultrchmp_map(address_map &map)
Rong Rong
***************************************************************************/
-READ8_MEMBER(ddenlovr_state::rongrong_input_r)
+uint8_t ddenlovr_state::rongrong_input_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW1")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW2")->read();
@@ -2273,7 +2273,7 @@ READ8_MEMBER(ddenlovr_state::rongrong_input_r)
return 0xff;
}
-WRITE8_MEMBER(ddenlovr_state::rongrong_select_w)
+void ddenlovr_state::rongrong_select_w(uint8_t data)
{
//logerror("%04x: rongrong_select_w %02x\n",m_maincpu->pc(),data);
@@ -2387,7 +2387,7 @@ READ8_MEMBER(ddenlovr_state::magic_r)
return 0x01;
}
-WRITE8_MEMBER(ddenlovr_state::mmpanic_rombank_w)
+void ddenlovr_state::mmpanic_rombank_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0x7);
/* Bit 4? */
@@ -2550,7 +2550,7 @@ WRITE_LINE_MEMBER(ddenlovr_state::funkyfig_blitter_irq)
m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xe0); // Z80
}
-WRITE8_MEMBER(ddenlovr_state::funkyfig_rombank_w)
+void ddenlovr_state::funkyfig_rombank_w(uint8_t data)
{
m_dsw_sel = data;
@@ -2559,7 +2559,7 @@ WRITE8_MEMBER(ddenlovr_state::funkyfig_rombank_w)
membank("bank2")->set_entry(((data & 0xe0) >> 5));
}
-READ8_MEMBER(ddenlovr_state::funkyfig_dsw_r)
+uint8_t ddenlovr_state::funkyfig_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW1")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW2")->read();
@@ -2658,7 +2658,7 @@ void ddenlovr_state::funkyfig_sound_portmap(address_map &map)
***************************************************************************/
-WRITE8_MEMBER(ddenlovr_state::hanakanz_rombank_w)
+void ddenlovr_state::hanakanz_rombank_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0x0f);
membank("bank2")->set_entry(((data & 0xf0) >> 4));
@@ -2673,7 +2673,7 @@ void ddenlovr_state::hanakanz_map(address_map &map)
}
-WRITE8_MEMBER(ddenlovr_state::hanakanz_keyb_w)
+void ddenlovr_state::hanakanz_keyb_w(uint8_t data)
{
m_keyb = data;
}
@@ -2697,7 +2697,7 @@ READ8_MEMBER(ddenlovr_state::hanakanz_keyb_r)
return val;
}
-READ8_MEMBER(ddenlovr_state::hanakanz_dsw_r)
+uint8_t ddenlovr_state::hanakanz_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW1")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW2")->read();
@@ -3007,7 +3007,7 @@ WRITE8_MEMBER(ddenlovr_state::mjchuuka_coincounter_w)
#endif
}
-WRITE8_MEMBER(ddenlovr_state::mjchuuka_oki_bank_w )
+void ddenlovr_state::mjchuuka_oki_bank_w(uint8_t data)
{
// data & 0x08 ?
m_oki->set_rom_bank(data & 1);
@@ -3113,7 +3113,7 @@ void ddenlovr_state::mjmyster_map(address_map &map)
map(0xf200, 0xffff).nopw(); // ""
}
-WRITE8_MEMBER(ddenlovr_state::mjmyster_rambank_w)
+void ddenlovr_state::mjmyster_rambank_w(uint8_t data)
{
membank("bank2")->set_entry(data & 0x07);
//logerror("%04x: rambank = %02x\n", m_maincpu->pc(), data);
@@ -3218,7 +3218,7 @@ void ddenlovr_state::mjmyster_portmap(address_map &map)
Hanafuda Hana Ginga
***************************************************************************/
-WRITE8_MEMBER(ddenlovr_state::hginga_rombank_w)
+void ddenlovr_state::hginga_rombank_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0x7);
m_hginga_rombank = data;
@@ -3245,7 +3245,7 @@ void ddenlovr_state::hginga_map(address_map &map)
map(0xf700, 0xf706).nopw();
}
-READ8_MEMBER(ddenlovr_state::hginga_dsw_r )
+uint8_t ddenlovr_state::hginga_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW4")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW3")->read();
@@ -3552,7 +3552,7 @@ void ddenlovr_state::hgokbang_portmap(address_map &map)
Super Hana Paradise
***************************************************************************/
-WRITE8_MEMBER(ddenlovr_state::hparadis_select_w)
+void ddenlovr_state::hparadis_select_w(uint8_t data)
{
m_dsw_sel = data;
m_keyb = 0;
@@ -3580,7 +3580,7 @@ READ8_MEMBER(ddenlovr_state::hparadis_input_r)
return 0xff;
}
-READ8_MEMBER(ddenlovr_state::hparadis_dsw_r)
+uint8_t ddenlovr_state::hparadis_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW1")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW2")->read();
@@ -3782,7 +3782,7 @@ void ddenlovr_state::akamaru_map(address_map &map)
Mahjong Fantasic Love
***************************************************************************/
-WRITE8_MEMBER(ddenlovr_state::mjflove_rombank_w)
+void ddenlovr_state::mjflove_rombank_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0xf);
// bit 4 enables palette ram
@@ -3988,7 +3988,7 @@ READ8_MEMBER(ddenlovr_state::sryudens_keyb_r)
return val;
}
-WRITE8_MEMBER(ddenlovr_state::sryudens_coincounter_w)
+void ddenlovr_state::sryudens_coincounter_w(uint8_t data)
{
// bit 0 = coin counter
// bit 1 = out counter
@@ -4008,7 +4008,7 @@ WRITE8_MEMBER(ddenlovr_state::sryudens_coincounter_w)
#endif
}
-WRITE8_MEMBER(ddenlovr_state::sryudens_rambank_w)
+void ddenlovr_state::sryudens_rambank_w(uint8_t data)
{
membank("bank2")->set_entry(data & 0x0f);
//logerror("%04x: rambank = %02x\n", m_maincpu->pc(), data);
@@ -4135,7 +4135,7 @@ WRITE8_MEMBER(ddenlovr_state::seljan2_palette_w)
logerror("%s: warning, palette_w with palette disabled, %04x <- %02x\n", machine().describe_context(), offset, data);
}
-READ8_MEMBER(ddenlovr_state::seljan2_dsw_r )
+uint8_t ddenlovr_state::seljan2_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW1")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW2")->read();
@@ -4222,12 +4222,12 @@ WRITE8_MEMBER(ddenlovr_state::htengoku_select_w)
m_keyb = 0;
}
-WRITE8_MEMBER(ddenlovr_state::htengoku_dsw_w)
+void ddenlovr_state::htengoku_dsw_w(uint8_t data)
{
m_dsw_sel = data;
}
-READ8_MEMBER(ddenlovr_state::htengoku_dsw_r)
+uint8_t ddenlovr_state::htengoku_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW0")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW1")->read();
diff --git a/src/mame/drivers/ddribble.cpp b/src/mame/drivers/ddribble.cpp
index 0d2a055b07e..20270a163fd 100644
--- a/src/mame/drivers/ddribble.cpp
+++ b/src/mame/drivers/ddribble.cpp
@@ -68,7 +68,7 @@ WRITE8_MEMBER(ddribble_state::ddribble_coin_counter_w)
machine().bookkeeping().coin_counter_w(1,(data >> 1) & 0x01);
}
-READ8_MEMBER(ddribble_state::ddribble_vlm5030_busy_r)
+uint8_t ddribble_state::ddribble_vlm5030_busy_r()
{
return machine().rand(); /* patch */
/* FIXME: remove ? */
@@ -78,7 +78,7 @@ READ8_MEMBER(ddribble_state::ddribble_vlm5030_busy_r)
#endif
}
-WRITE8_MEMBER(ddribble_state::ddribble_vlm5030_ctrl_w)
+void ddribble_state::ddribble_vlm5030_ctrl_w(uint8_t data)
{
/* b7 : vlm data bus OE */
diff --git a/src/mame/drivers/dec8.cpp b/src/mame/drivers/dec8.cpp
index e053f627c3c..73819a4cbe4 100644
--- a/src/mame/drivers/dec8.cpp
+++ b/src/mame/drivers/dec8.cpp
@@ -168,80 +168,6 @@ WRITE8_MEMBER(dec8_state::dec8_i8751_w)
}
}
-/********************************
-*
-* MCU simulations
-*
-********************************/
-
-WRITE8_MEMBER(dec8_state::csilver_i8751_w)
-{
- /* Japan coinage first, then World coinage - US coinage shall be the same as the Japan one */
- int lneed1[2][4] = {{1, 1, 1, 2}, {1, 1, 1, 1}}; /* slot 1 : coins needed */
- int lcred1[2][4] = {{1, 2, 3, 1}, {2, 3, 4, 6}}; /* slot 1 : credits awarded */
- int lneed2[2][4] = {{1, 1, 1, 2}, {1, 2, 3, 4}}; /* slot 2 : coins needed */
- int lcred2[2][4] = {{1, 2, 3, 1}, {1, 1, 1, 1}}; /* slot 2 : credits awarded */
-
- m_i8751_return = 0;
-
- switch (offset)
- {
- case 0: /* High byte */
- m_i8751_value = (m_i8751_value & 0xff) | (data << 8);
- m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); /* Signal main cpu */
- break;
- case 1: /* Low byte */
- m_i8751_value = (m_i8751_value & 0xff00) | data;
- break;
- }
-
- /* Coins are controlled by the i8751 */
- if ((ioport("IN2")->read() & 3) == 3) m_latch = 1;
- if ((ioport("IN2")->read() & 1) != 1 && m_latch)
- {
- m_coin1++;
- m_latch = 0;
- m_snd = 0x1200;
- m_i8751_return = 0x1200;
- if (m_coin1>=m_need1)
- {
- m_coin1-=m_need1;
- m_credits+=m_cred1;
- }
- }
- if ((ioport("IN2")->read() & 2) != 2 && m_latch)
- {
- m_coin2++;
- m_latch = 0;
- m_snd = 0x1200;
- m_i8751_return = 0x1200;
- if (m_coin2>=m_need2)
- {
- m_coin2-=m_need2;
- m_credits+=m_cred2;
- }
- }
- if (m_credits>99) m_credits=99; /* not handled by main CPU */
-
- if (m_i8751_value == 0x054a) { m_i8751_return = 0xb5; m_coinage_id = 0; } /* Japanese version ID */
- if (m_i8751_value == 0x054c) { m_i8751_return = 0xb3; m_coinage_id = 1; } /* World version ID */
-
- if (offset == 0)
- {
- if ((m_i8751_value >> 8) == 0x01) /* Coinage settings */
- {
- m_i8751_return = m_i8751_value;
- m_need1 = lneed1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
- m_need2 = lneed2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
- m_cred1 = lcred1[m_coinage_id][(m_i8751_value & 0x03) >> 0];
- m_cred2 = lcred2[m_coinage_id][(m_i8751_value & 0x0c) >> 2];
- }
- if ((m_i8751_value >> 8) == 0x02) { m_i8751_return = m_snd | m_credits; m_snd = 0; } /* Credits request */
- if ((m_i8751_value >> 8) == 0x03 && m_credits) { m_i8751_return = 0; m_credits--; } /* Credits clear */
- }
-}
-
-
/******************************************************************************/
WRITE8_MEMBER(dec8_state::dec8_bank_w)
@@ -545,7 +471,7 @@ void dec8_state::csilver_map(address_map &map)
map(0x1808, 0x180b).w(FUNC(dec8_state::dec8_scroll2_w));
map(0x180c, 0x180c).w(FUNC(dec8_state::dec8_sound_w));
map(0x180d, 0x180d).w(FUNC(dec8_state::csilver_control_w));
- map(0x180e, 0x180f).w(FUNC(dec8_state::csilver_i8751_w));
+ map(0x180e, 0x180f).w(FUNC(dec8_state::dec8_i8751_w));
map(0x1c00, 0x1c00).r(FUNC(dec8_state::i8751_h_r));
map(0x1e00, 0x1e00).r(FUNC(dec8_state::i8751_l_r));
map(0x2000, 0x27ff).ram().w(FUNC(dec8_state::dec8_videoram_w));
@@ -725,27 +651,27 @@ void dec8_state::csilver_s_map(address_map &map)
*/
-READ8_MEMBER(dec8_state::i8751_port0_r)
+uint8_t dec8_state::i8751_port0_r()
{
return m_i8751_port0;
}
-WRITE8_MEMBER(dec8_state::i8751_port0_w)
+void dec8_state::i8751_port0_w(uint8_t data)
{
m_i8751_port0 = data;
}
-READ8_MEMBER(dec8_state::i8751_port1_r)
+uint8_t dec8_state::i8751_port1_r()
{
return m_i8751_port1;
}
-WRITE8_MEMBER(dec8_state::i8751_port1_w)
+void dec8_state::i8751_port1_w(uint8_t data)
{
m_i8751_port1 = data;
}
-WRITE8_MEMBER(dec8_state::gondo_mcu_to_main_w)
+void dec8_state::gondo_mcu_to_main_w(uint8_t data)
{
// P2 - controls latches for main CPU communication
if ((data&0x10)==0)
@@ -763,7 +689,7 @@ WRITE8_MEMBER(dec8_state::gondo_mcu_to_main_w)
m_i8751_p2 = data;
}
-WRITE8_MEMBER(dec8_state::shackled_mcu_to_main_w)
+void dec8_state::shackled_mcu_to_main_w(uint8_t data)
{
// P2 - controls latches for main CPU communication
if ((data&0x10)==0)
@@ -796,7 +722,7 @@ WRITE8_MEMBER(dec8_state::shackled_mcu_to_main_w)
Super Real Darwin is similar but only appears to have a single port
*/
-WRITE8_MEMBER(dec8_state::srdarwin_mcu_to_main_w)
+void dec8_state::srdarwin_mcu_to_main_w(uint8_t data)
{
// P2 - controls latches for main CPU communication
if ((data & 0x10) == 0)
@@ -821,6 +747,27 @@ WRITE8_MEMBER(dec8_state::srdarwin_mcu_to_main_w)
m_maincpu->set_input_line(MCS51_INT1_LINE, CLEAR_LINE);
}
+
+void dec8_state::csilver_mcu_to_main_w(uint8_t data)
+{
+ if (~data & 0x10)
+ m_i8751_port0 = m_i8751_value >> 8;
+
+ if (~data & 0x20)
+ m_i8751_port1 = m_i8751_value & 0xff;
+
+ if (~data & 0x40)
+ {
+ m_i8751_return = (m_i8751_return & 0xff) | (m_i8751_port0 << 8);
+ m_subcpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); // FIRQ to main cpu
+ }
+
+ if (~data & 0x80)
+ m_i8751_return = (m_i8751_return & 0xff00) | m_i8751_port1;
+
+ m_i8751_p2 = data;
+}
+
/******************************************************************************/
#define PLAYER1_JOYSTICK /* Player 1 controls */ \
@@ -1333,8 +1280,8 @@ static INPUT_PORTS_START( csilver )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNKNOWN )
PORT_START("IN2")
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN1 )
- PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_COIN2 )
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_UNUSED ) // coins read through MCU
+ PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_UNUSED ) // ^
PORT_BIT( 0x04, IP_ACTIVE_LOW, IPT_START1 )
PORT_BIT( 0x08, IP_ACTIVE_LOW, IPT_START2 )
PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_UNKNOWN )
@@ -1383,6 +1330,10 @@ static INPUT_PORTS_START( csilver )
PORT_DIPSETTING( 0x40, DEF_STR( Off ) )
PORT_DIPSETTING( 0x00, DEF_STR( On ) )
PORT_DIPUNUSED( 0x80, IP_ACTIVE_LOW )
+
+ PORT_START("I8751") /* hooked up on the i8751 */
+ PORT_BIT( 0x20, IP_ACTIVE_LOW, IPT_COIN1 )
+ PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_COIN2 )
INPUT_PORTS_END
/* verified from M6809 code - coinage needs further checking when the MCU is available */
@@ -1403,6 +1354,7 @@ static INPUT_PORTS_START( csilverj )
INPUT_PORTS_END
+
/* verified from HD6309 code */
static INPUT_PORTS_START( oscar )
PORT_START("IN0")
@@ -2182,6 +2134,7 @@ void dec8_state::meikyuh(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &dec8_state::dec8_s_map);
}
+
void dec8_state::csilver(machine_config &config)
{
/* basic machine hardware */
@@ -2196,6 +2149,16 @@ void dec8_state::csilver(machine_config &config)
config.set_maximum_quantum(attotime::from_hz(6000));
+ I8751(config, m_mcu, XTAL(8'000'000));
+ m_mcu->port_in_cb<0>().set(FUNC(dec8_state::i8751_port0_r));
+ m_mcu->port_out_cb<0>().set(FUNC(dec8_state::i8751_port0_w));
+ m_mcu->port_in_cb<1>().set(FUNC(dec8_state::i8751_port1_r));
+ m_mcu->port_out_cb<1>().set(FUNC(dec8_state::i8751_port1_w));
+ m_mcu->port_out_cb<2>().set(FUNC(dec8_state::csilver_mcu_to_main_w));
+ m_mcu->port_in_cb<3>().set_ioport("I8751");
+
+ config.set_perfect_quantum(m_maincpu);
+
/* video hardware */
BUFFERED_SPRITERAM8(config, m_spriteram);
@@ -3231,6 +3194,7 @@ Lower board (DATA EAST DE-0251-2):
*/
+
ROM_START( csilver )
ROM_REGION( 0x48000, "maincpu", 0 )
ROM_LOAD( "dx03-12.18d", 0x08000, 0x08000, CRC(2d926e7c) SHA1(cf38e92904edb1870b0a4965f9049d67efe8cf6a) )
@@ -3245,7 +3209,8 @@ ROM_START( csilver )
ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
// 017F: B4 4C 0D : cjne a,#$4C,$018F (ID code 0x4c = World version)
- ROM_LOAD( "id8751h.mcu", 0x0000, 0x1000, CRC(ca663965) SHA1(a5fb7afdfd324761bde4bb90ba12efc9954627af) ) // dx-8.19a ?
+ // 3 bytes (always bit 0x08 set incorrectly) had to be hand fixed, hence 'BAD_DUMP'
+ ROM_LOAD( "id8751h.mcu", 0x0000, 0x1000, BAD_DUMP CRC(c0266263) SHA1(27ac6fa4af7195f04249c04dec168ab82158704e) ) // dx-8.19a ?
ROM_REGION( 0x08000, "gfx1", 0 ) /* characters */
ROM_LOAD( "dx00.3d", 0x00000, 0x08000, CRC(f01ef985) SHA1(d5b823bd7c0efcf3137f8643c5d99a260bed5675) )
@@ -3282,7 +3247,8 @@ ROM_START( csilverj )
ROM_LOAD( "dx05.a6", 0x00000, 0x10000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) )
ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
- ROM_LOAD( "id8751h.mcu", 0x0000, 0x1000, NO_DUMP )
+ // hand modified version of csilver ROM
+ ROM_LOAD( "id8751h_japan.mcu", 0x0000, 0x1000, BAD_DUMP CRC(6e801217) SHA1(2d8f7ae533dd8146acf8461d61ddd839544adf55) )
ROM_REGION( 0x08000, "gfx1", 0 ) /* characters */
ROM_LOAD( "dx00.a1", 0x00000, 0x08000, CRC(f01ef985) SHA1(d5b823bd7c0efcf3137f8643c5d99a260bed5675) )
@@ -3320,7 +3286,8 @@ ROM_START( csilverja ) // DE-0250-3 + DE-0251-2
ROM_LOAD( "dx05.3f", 0x00000, 0x10000, CRC(eb32cf25) SHA1(9390c88033259c65eb15320e31f5d696970987cc) )
ROM_REGION( 0x1000, "mcu", 0 ) /* i8751 microcontroller */
- ROM_LOAD( "id8751h.mcu", 0x0000, 0x1000, NO_DUMP )
+ // hand modified version of csilver ROM
+ ROM_LOAD( "id8751h_japan.mcu", 0x0000, 0x1000, BAD_DUMP CRC(6e801217) SHA1(2d8f7ae533dd8146acf8461d61ddd839544adf55) )
ROM_REGION( 0x08000, "gfx1", 0 ) /* characters */
ROM_LOAD( "dx00.3d", 0x00000, 0x08000, CRC(f01ef985) SHA1(d5b823bd7c0efcf3137f8643c5d99a260bed5675) )
diff --git a/src/mame/drivers/dectalk.cpp b/src/mame/drivers/dectalk.cpp
index 8351036a2b0..cfac359b976 100644
--- a/src/mame/drivers/dectalk.cpp
+++ b/src/mame/drivers/dectalk.cpp
@@ -299,8 +299,8 @@ private:
required_device m_dac;
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
DECLARE_WRITE_LINE_MEMBER(duart_txa);
- DECLARE_READ8_MEMBER(duart_input);
- DECLARE_WRITE8_MEMBER(duart_output);
+ uint8_t duart_input();
+ void duart_output(uint8_t data);
DECLARE_READ8_MEMBER(nvram_recall);
DECLARE_WRITE8_MEMBER(led_write);
DECLARE_WRITE8_MEMBER(nvram_store);
@@ -338,7 +338,7 @@ WRITE_LINE_MEMBER(dectalk_state::duart_irq_handler)
m_maincpu->set_input_line(M68K_IRQ_6, state);
}
-READ8_MEMBER(dectalk_state::duart_input)
+uint8_t dectalk_state::duart_input()
{
uint8_t data = 0;
data |= m_duart_inport&0xf;
@@ -348,7 +348,7 @@ READ8_MEMBER(dectalk_state::duart_input)
return data;
}
-WRITE8_MEMBER(dectalk_state::duart_output)
+void dectalk_state::duart_output(uint8_t data)
{
m_duart_outport = data;
#ifdef SERIAL_TO_STDERR
diff --git a/src/mame/drivers/djboy.cpp b/src/mame/drivers/djboy.cpp
index edd0580fc6b..d006205fddf 100644
--- a/src/mame/drivers/djboy.cpp
+++ b/src/mame/drivers/djboy.cpp
@@ -263,13 +263,13 @@ void djboy_state::soundcpu_port_am(address_map &map)
/******************************************************************************/
-READ8_MEMBER(djboy_state::beast_p0_r)
+uint8_t djboy_state::beast_p0_r()
{
// ?
return 0;
}
-WRITE8_MEMBER(djboy_state::beast_p0_w)
+void djboy_state::beast_p0_w(uint8_t data)
{
if (!BIT(m_beast_p0, 1) && BIT(data, 1))
{
@@ -282,7 +282,7 @@ WRITE8_MEMBER(djboy_state::beast_p0_w)
m_beast_p0 = data;
}
-READ8_MEMBER(djboy_state::beast_p1_r)
+uint8_t djboy_state::beast_p1_r()
{
if (BIT(m_beast_p0, 0) == 0)
return m_beastlatch->read();
@@ -290,12 +290,12 @@ READ8_MEMBER(djboy_state::beast_p1_r)
return 0; // ?
}
-WRITE8_MEMBER(djboy_state::beast_p1_w)
+void djboy_state::beast_p1_w(uint8_t data)
{
m_beast_p1 = data;
}
-READ8_MEMBER(djboy_state::beast_p2_r)
+uint8_t djboy_state::beast_p2_r()
{
switch ((m_beast_p0 >> 2) & 3)
{
@@ -306,12 +306,12 @@ READ8_MEMBER(djboy_state::beast_p2_r)
}
}
-WRITE8_MEMBER(djboy_state::beast_p2_w)
+void djboy_state::beast_p2_w(uint8_t data)
{
m_beast_p2 = data;
}
-READ8_MEMBER(djboy_state::beast_p3_r)
+uint8_t djboy_state::beast_p3_r()
{
uint8_t dsw = 0;
uint8_t dsw1 = ~m_port_dsw[0]->read();
@@ -327,7 +327,7 @@ READ8_MEMBER(djboy_state::beast_p3_r)
return (dsw << 4) | (m_beastlatch->pending_r() ? 0x0 : 0x4) | (m_slavelatch->pending_r() ? 0x8 : 0x0);
}
-WRITE8_MEMBER(djboy_state::beast_p3_w)
+void djboy_state::beast_p3_w(uint8_t data)
{
m_beast_p3 = data;
m_slavecpu->set_input_line(INPUT_LINE_RESET, data & 2 ? CLEAR_LINE : ASSERT_LINE);
diff --git a/src/mame/drivers/dolphunk.cpp b/src/mame/drivers/dolphunk.cpp
index f6b6140985b..f1dc5ef5647 100644
--- a/src/mame/drivers/dolphunk.cpp
+++ b/src/mame/drivers/dolphunk.cpp
@@ -86,6 +86,7 @@
#include "machine/timer.h"
#include "sound/spkrdev.h"
#include "speaker.h"
+#include "video/pwm.h"
#include "dolphunk.lh"
@@ -98,7 +99,7 @@ public:
, m_maincpu(*this, "maincpu")
, m_speaker(*this, "speaker")
, m_cass(*this, "cassette")
- , m_digits(*this, "digit%u", 0U)
+ , m_display(*this, "display")
{ }
void dauphin(machine_config &config);
@@ -117,11 +118,10 @@ private:
bool m_cassbit;
bool m_cassold;
bool m_speaker_state;
- virtual void machine_start() override { m_digits.resolve(); }
required_device m_maincpu;
required_device m_speaker;
required_device m_cass;
- output_finder<4> m_digits;
+ required_device m_display;
};
READ_LINE_MEMBER( dauphin_state::cass_r )
@@ -131,7 +131,7 @@ READ_LINE_MEMBER( dauphin_state::cass_r )
WRITE8_MEMBER( dauphin_state::port00_w )
{
- m_digits[offset] = data;
+ m_display->matrix(1<set_segmask(0x0f, 0xff);
/* sound hardware */
SPEAKER(config, "mono").front_center();
@@ -250,7 +252,7 @@ void dauphin_state::dauphin(machine_config &config)
/* ROM definition */
ROM_START( dauphin )
- ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_REGION( 0x1000, "maincpu", 0 )
ROM_LOAD( "dolphin_mo.rom", 0x0000, 0x0100, CRC(a8811f48) SHA1(233c629dc20fac286c8c1559e461bb0b742a675e) )
// This one is used in winarcadia but it is a bad dump, we use the corrected one above
//ROM_LOAD( "dolphin_mo.rom", 0x0000, 0x0100, BAD_DUMP CRC(1ac4ac18) SHA1(62a63de6fcd6cd5fcee930d31c73fe603647f06c) )
diff --git a/src/mame/drivers/dragrace.cpp b/src/mame/drivers/dragrace.cpp
index 876a8a1527c..5cfa432e01f 100644
--- a/src/mame/drivers/dragrace.cpp
+++ b/src/mame/drivers/dragrace.cpp
@@ -40,7 +40,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(dragrace_state::dragrace_frame_callback)
}
-WRITE8_MEMBER(dragrace_state::speed1_w)
+void dragrace_state::speed1_w(uint8_t data)
{
unsigned freq = ~data & 0x1f;
m_discrete->write(DRAGRACE_MOTOR1_DATA, freq);
@@ -49,7 +49,7 @@ WRITE8_MEMBER(dragrace_state::speed1_w)
output().set_value("tachometer", freq);
}
-WRITE8_MEMBER(dragrace_state::speed2_w)
+void dragrace_state::speed2_w(uint8_t data)
{
unsigned freq = ~data & 0x1f;
m_discrete->write(DRAGRACE_MOTOR2_DATA, freq);
diff --git a/src/mame/drivers/drw80pkr.cpp b/src/mame/drivers/drw80pkr.cpp
index 6807e990f74..fa768209258 100644
--- a/src/mame/drivers/drw80pkr.cpp
+++ b/src/mame/drivers/drw80pkr.cpp
@@ -78,16 +78,16 @@ private:
required_device m_aysnd;
required_memory_bank m_mainbank;
- DECLARE_WRITE8_MEMBER(p1_w);
- DECLARE_WRITE8_MEMBER(p2_w);
+ void p1_w(uint8_t data);
+ void p2_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(prog_w);
- DECLARE_WRITE8_MEMBER(bus_w);
+ void bus_w(uint8_t data);
DECLARE_WRITE8_MEMBER(io_w);
DECLARE_READ_LINE_MEMBER(t0_r);
DECLARE_READ_LINE_MEMBER(t1_r);
- DECLARE_READ8_MEMBER(p1_r);
- DECLARE_READ8_MEMBER(p2_r);
- DECLARE_READ8_MEMBER(bus_r);
+ uint8_t p1_r();
+ uint8_t p2_r();
+ uint8_t bus_r();
DECLARE_READ8_MEMBER(io_r);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@@ -111,12 +111,12 @@ void drw80pkr_state::machine_start()
* Write Handlers *
******************/
-WRITE8_MEMBER(drw80pkr_state::p1_w)
+void drw80pkr_state::p1_w(uint8_t data)
{
m_p1 = data;
}
-WRITE8_MEMBER(drw80pkr_state::p2_w)
+void drw80pkr_state::p2_w(uint8_t data)
{
m_p2 = data;
}
@@ -134,7 +134,7 @@ WRITE_LINE_MEMBER(drw80pkr_state::prog_w)
}
}
-WRITE8_MEMBER(drw80pkr_state::bus_w)
+void drw80pkr_state::bus_w(uint8_t data)
{
m_bus = data;
}
@@ -204,17 +204,17 @@ READ_LINE_MEMBER(drw80pkr_state::t1_r)
return m_t1;
}
-READ8_MEMBER(drw80pkr_state::p1_r)
+uint8_t drw80pkr_state::p1_r()
{
return m_p1;
}
-READ8_MEMBER(drw80pkr_state::p2_r)
+uint8_t drw80pkr_state::p2_r()
{
return m_p2;
}
-READ8_MEMBER(drw80pkr_state::bus_r)
+uint8_t drw80pkr_state::bus_r()
{
return m_bus;
}
diff --git a/src/mame/drivers/dunhuang.cpp b/src/mame/drivers/dunhuang.cpp
index dc487f2307f..dc902f5df72 100644
--- a/src/mame/drivers/dunhuang.cpp
+++ b/src/mame/drivers/dunhuang.cpp
@@ -100,11 +100,11 @@ private:
DECLARE_WRITE8_MEMBER(block_addr_hi_w);
DECLARE_WRITE8_MEMBER(block_h_w);
DECLARE_WRITE8_MEMBER(layers_w);
- DECLARE_WRITE8_MEMBER(input_w);
+ void input_w(uint8_t data);
DECLARE_READ8_MEMBER(service_r);
DECLARE_READ8_MEMBER(input_r);
DECLARE_WRITE8_MEMBER(rombank_w);
- DECLARE_READ8_MEMBER(dsw_r);
+ uint8_t dsw_r();
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void dunhuang_io_map(address_map &map);
@@ -439,7 +439,7 @@ void dunhuang_state::dunhuang_map(address_map &map)
// Inputs
-WRITE8_MEMBER(dunhuang_state::input_w)
+void dunhuang_state::input_w(uint8_t data)
{
m_input = data;
}
@@ -452,7 +452,7 @@ READ8_MEMBER(dunhuang_state::service_r)
;
}
-READ8_MEMBER(dunhuang_state::dsw_r)
+uint8_t dunhuang_state::dsw_r()
{
if (!(m_input & 0x01)) return m_dsw[0]->read();
if (!(m_input & 0x02)) return m_dsw[1]->read();
diff --git a/src/mame/drivers/dvk_ksm.cpp b/src/mame/drivers/dvk_ksm.cpp
index 4a5a84b1b33..37dc73a84e8 100644
--- a/src/mame/drivers/dvk_ksm.cpp
+++ b/src/mame/drivers/dvk_ksm.cpp
@@ -123,8 +123,8 @@ private:
DECLARE_WRITE_LINE_MEMBER(write_brgb);
DECLARE_WRITE_LINE_MEMBER(write_brgc);
- DECLARE_WRITE8_MEMBER(ksm_ppi_porta_w);
- DECLARE_WRITE8_MEMBER(ksm_ppi_portc_w);
+ void ksm_ppi_porta_w(uint8_t data);
+ void ksm_ppi_portc_w(uint8_t data);
void ksm_io(address_map &map);
void ksm_mem(address_map &map);
@@ -247,13 +247,13 @@ void ksm_state::video_start()
m_brg = timer_alloc(TIMER_ID_BRG);
}
-WRITE8_MEMBER(ksm_state::ksm_ppi_porta_w)
+void ksm_state::ksm_ppi_porta_w(uint8_t data)
{
LOG("PPI port A line %d\n", data);
m_video.line = data;
}
-WRITE8_MEMBER(ksm_state::ksm_ppi_portc_w)
+void ksm_state::ksm_ppi_portc_w(uint8_t data)
{
brgc = (data >> 5) & 3;
diff --git a/src/mame/drivers/dynax.cpp b/src/mame/drivers/dynax.cpp
index de6a7c383d2..ecae7f5a1d3 100644
--- a/src/mame/drivers/dynax.cpp
+++ b/src/mame/drivers/dynax.cpp
@@ -1108,12 +1108,12 @@ READ8_MEMBER(dynax_state::tenkai_ip_r)
}
-WRITE8_MEMBER(dynax_state::tenkai_dswsel_w)
+void dynax_state::tenkai_dswsel_w(uint8_t data)
{
m_dsw_sel = data;
}
-READ8_MEMBER(dynax_state::tenkai_dsw_r)
+uint8_t dynax_state::tenkai_dsw_r()
{
if (!BIT(m_dsw_sel, 0)) return ioport("DSW0")->read();
if (!BIT(m_dsw_sel, 1)) return ioport("DSW1")->read();
@@ -1151,28 +1151,28 @@ void dynax_state::tenkai_update_rombank()
// logerror("rombank = %02x\n", m_rombank);
}
-READ8_MEMBER(dynax_state::tenkai_p3_r)
+uint8_t dynax_state::tenkai_p3_r()
{
return 0x00;
}
-WRITE8_MEMBER(dynax_state::tenkai_p3_w)
+void dynax_state::tenkai_p3_w(uint8_t data)
{
m_rombank = ((data & 0x04) << 1) | (m_rombank & 0x07);
tenkai_update_rombank();
}
-WRITE8_MEMBER(dynax_state::tenkai_p4_w)
+void dynax_state::tenkai_p4_w(uint8_t data)
{
m_rombank = (m_rombank & 0x08) | ((data & 0x0e) >> 1);
tenkai_update_rombank();
}
-READ8_MEMBER(dynax_state::tenkai_p5_r)
+uint8_t dynax_state::tenkai_p5_r()
{
return m_tenkai_p5_val;
}
-WRITE8_MEMBER(dynax_state::tenkai_p6_w)
+void dynax_state::tenkai_p6_w(uint8_t data)
{
m_tenkai_p5_val &= 0x0f;
@@ -1180,7 +1180,7 @@ WRITE8_MEMBER(dynax_state::tenkai_p6_w)
m_tenkai_p5_val |= (1 << 4);
}
-WRITE8_MEMBER(dynax_state::tenkai_p7_w)
+void dynax_state::tenkai_p7_w(uint8_t data)
{
m_tenkai_p5_val &= 0xf0;
@@ -1188,13 +1188,13 @@ WRITE8_MEMBER(dynax_state::tenkai_p7_w)
m_tenkai_p5_val |= (1 << 3);
}
-WRITE8_MEMBER(dynax_state::tenkai_p8_w)
+void dynax_state::tenkai_p8_w(uint8_t data)
{
m_rombank = ((data & 0x08) << 1) | (m_rombank & 0x0f);
tenkai_update_rombank();
}
-READ8_MEMBER(dynax_state::tenkai_p8_r)
+uint8_t dynax_state::tenkai_p8_r()
{
return 0x00;
}
@@ -1297,7 +1297,7 @@ WRITE8_MEMBER(dynax_state::gekisha_hopper_w)
// popmessage("%02x %02x", gekisha_val[0], gekisha_val[1]);
}
-WRITE8_MEMBER(dynax_state::gekisha_p4_w)
+void dynax_state::gekisha_p4_w(uint8_t data)
{
m_bankdev->set_bank((data >> 2) & 3);
}
diff --git a/src/mame/drivers/eacc.cpp b/src/mame/drivers/eacc.cpp
index 3a126dc3056..db1814c700c 100644
--- a/src/mame/drivers/eacc.cpp
+++ b/src/mame/drivers/eacc.cpp
@@ -104,7 +104,7 @@ void eacc_state::eacc_mem(address_map &map)
map.global_mask(0xc7ff); // A11,A12,A13 not connected
map(0x0000, 0x001f).ram().share("nvram"); // inside cpu, battery-backed
map(0x0020, 0x007f).ram(); // inside cpu
- map(0x4000, 0x47ff).rom().mirror(0x8000);
+ map(0x4000, 0x47ff).rom().mirror(0x8000).region("maincpu",0);
map(0x8000, 0x8003).mirror(0x7fc).rw(m_pia, FUNC(pia6821_device::read), FUNC(pia6821_device::write));
}
@@ -277,8 +277,8 @@ void eacc_state::eacc(machine_config &config)
******************************************************************************/
ROM_START(eacc)
- ROM_REGION(0x10000, "maincpu", 0)
- ROM_LOAD("eacc.bin", 0x4000, 0x0800, CRC(287a63c0) SHA1(f61b397d33ea40e5742e34d5f5468572125e8b39) )
+ ROM_REGION(0x0800, "maincpu", 0)
+ ROM_LOAD("eacc.bin", 0x0000, 0x0800, CRC(287a63c0) SHA1(f61b397d33ea40e5742e34d5f5468572125e8b39) )
ROM_END
diff --git a/src/mame/drivers/eispc.cpp b/src/mame/drivers/eispc.cpp
index 2168bae6b31..dd4de0ae963 100644
--- a/src/mame/drivers/eispc.cpp
+++ b/src/mame/drivers/eispc.cpp
@@ -148,8 +148,8 @@ private:
DECLARE_WRITE_LINE_MEMBER(dreq0_ck_w);
DECLARE_WRITE_LINE_MEMBER( epc_dma_hrq_changed );
DECLARE_WRITE_LINE_MEMBER( epc_dma8237_out_eop );
- DECLARE_READ8_MEMBER( epc_dma_read_byte );
- DECLARE_WRITE8_MEMBER( epc_dma_write_byte );
+ uint8_t epc_dma_read_byte(offs_t offset);
+ void epc_dma_write_byte(offs_t offset, uint8_t data);
template uint8_t epc_dma8237_io_r(offs_t offset);
template void epc_dma8237_io_w(offs_t offset, uint8_t data);
template DECLARE_WRITE_LINE_MEMBER(epc_dack_w);
@@ -164,8 +164,8 @@ private:
// PPI
required_device m_ppi8255;
- DECLARE_WRITE8_MEMBER(ppi_portb_w);
- DECLARE_READ8_MEMBER(ppi_portc_r);
+ void ppi_portb_w(uint8_t data);
+ uint8_t ppi_portc_r();
uint8_t m_ppi_portb;
required_ioport m_io_dsw;
required_ioport m_io_j10;
@@ -695,7 +695,7 @@ WRITE_LINE_MEMBER(epc_state::speaker_ck_w)
*
**********************************************************/
-READ8_MEMBER( epc_state::ppi_portc_r )
+uint8_t epc_state::ppi_portc_r()
{
uint8_t data;
@@ -710,7 +710,7 @@ READ8_MEMBER( epc_state::ppi_portc_r )
return data;
}
-WRITE8_MEMBER( epc_state::ppi_portb_w )
+void epc_state::ppi_portb_w(uint8_t data)
{
LOGPPI("PPI Port B write: %02x\n", data);
LOGPPI(" PB0 - Enable beeper : %d\n", (data & 0x01) ? 1 : 0);
@@ -987,7 +987,7 @@ WRITE_LINE_MEMBER( epc_state::epc_dma_hrq_changed )
}
-READ8_MEMBER( epc_state::epc_dma_read_byte )
+uint8_t epc_state::epc_dma_read_byte(offs_t offset)
{
if ((m_dma_active & 0x0f) == 0)
{
@@ -999,7 +999,7 @@ READ8_MEMBER( epc_state::epc_dma_read_byte )
return m_maincpu->space(AS_PROGRAM).read_byte(offset | u32(m_dma_segment[seg]) << 16);
}
-WRITE8_MEMBER( epc_state::epc_dma_write_byte )
+void epc_state::epc_dma_write_byte(offs_t offset, uint8_t data)
{
if ((m_dma_active & 0x0f) == 0)
{
diff --git a/src/mame/drivers/emma2.cpp b/src/mame/drivers/emma2.cpp
index e348dd17dc8..5fc6a007dee 100644
--- a/src/mame/drivers/emma2.cpp
+++ b/src/mame/drivers/emma2.cpp
@@ -39,7 +39,6 @@ and 16k of static RAM.
To Do:
- Cassette LED doesn't work.
-- Display should blank if PB0 not being pulsed.
- Code up the expansion unit (rom is there but no schematic exists)
- Need software.
@@ -52,6 +51,7 @@ To Do:
#include "machine/6821pia.h"
#include "imagedev/cassette.h"
#include "speaker.h"
+#include "video/pwm.h"
#include "emma2.lh"
@@ -64,8 +64,8 @@ public:
, m_cassette(*this, "cassette")
, m_via(*this, "via")
, m_pia(*this, "pia")
- , m_keyboard(*this, "X%u", 0)
- , m_digits(*this, "digit%u", 0U)
+ , m_display(*this, "display")
+ , m_io_keyboard(*this, "X%u", 0U)
{ }
void emma2(machine_config &config);
@@ -75,18 +75,17 @@ private:
DECLARE_WRITE8_MEMBER(digit_w);
DECLARE_READ8_MEMBER(keyboard_r);
virtual void machine_reset() override;
- virtual void machine_start() override;
void mem_map(address_map &map);
uint8_t m_digit;
- bool m_dig_change;
+ uint8_t m_seg;
required_device m_maincpu;
required_device m_cassette;
required_device m_via;
required_device m_pia;
- required_ioport_array<8> m_keyboard;
- output_finder<8> m_digits;
+ required_device m_display;
+ required_ioport_array<8> m_io_keyboard;
};
void emma2_state::mem_map(address_map &map)
@@ -155,39 +154,27 @@ WRITE8_MEMBER( emma2_state::digit_w )
{
m_cassette->output( BIT(data, 6) ? +1.0 : -1.0);
- data &= 7;
- if (data != m_digit)
- {
- m_digit = data;
- m_dig_change = true;
- }
+ m_digit = data & 7;
+ m_display->matrix(1 << m_digit, m_seg);
}
WRITE8_MEMBER( emma2_state::segment_w )
{
- if (m_dig_change)
- {
- m_dig_change = false;
- m_digits[m_digit] = data;
- }
+ m_seg = data;
+ m_display->matrix(1 << m_digit, m_seg);
}
READ8_MEMBER( emma2_state::keyboard_r )
{
- u8 data = m_keyboard[m_digit]->read();
+ u8 data = m_io_keyboard[m_digit]->read();
data |= ((m_cassette)->input() < 0.0) ? 0x80 : 0;
return data;
}
-void emma2_state::machine_start()
-{
- m_digits.resolve();
-}
-
void emma2_state::machine_reset()
{
+ m_seg = 0;
m_digit = 0;
- m_dig_change = 0;
}
void emma2_state::emma2(machine_config &config)
@@ -198,6 +185,8 @@ void emma2_state::emma2(machine_config &config)
/* video hardware */
config.set_default_layout(layout_emma2);
+ PWM_DISPLAY(config, m_display).set_size(8, 8);
+ m_display->set_segmask(0xff, 0xff);
/* Devices */
VIA6522(config, m_via, 1'000'000); // #2 from cpu
diff --git a/src/mame/drivers/enigma2.cpp b/src/mame/drivers/enigma2.cpp
index cc0609461aa..1f2ffe31567 100644
--- a/src/mame/drivers/enigma2.cpp
+++ b/src/mame/drivers/enigma2.cpp
@@ -105,8 +105,8 @@ private:
DECLARE_READ8_MEMBER(dip_switch_r);
DECLARE_WRITE8_MEMBER(sound_data_w);
DECLARE_WRITE8_MEMBER(enigma2_flip_screen_w);
- DECLARE_READ8_MEMBER(sound_latch_r);
- DECLARE_WRITE8_MEMBER(protection_data_w);
+ uint8_t sound_latch_r();
+ void protection_data_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -411,13 +411,13 @@ WRITE8_MEMBER(enigma2_state::sound_data_w)
}
-READ8_MEMBER(enigma2_state::sound_latch_r)
+uint8_t enigma2_state::sound_latch_r()
{
return bitswap<8>(m_sound_latch,0,1,2,3,4,5,6,7);
}
-WRITE8_MEMBER(enigma2_state::protection_data_w)
+void enigma2_state::protection_data_w(uint8_t data)
{
if (LOG_PROT) logerror("%s: Protection Data Write: %x\n", machine().describe_context(), data);
m_protection_data = data;
diff --git a/src/mame/drivers/enmirage.cpp b/src/mame/drivers/enmirage.cpp
index a03e24c239c..4d5a226e1d7 100644
--- a/src/mame/drivers/enmirage.cpp
+++ b/src/mame/drivers/enmirage.cpp
@@ -77,10 +77,10 @@ private:
DECLARE_FLOPPY_FORMATS( floppy_formats );
- DECLARE_WRITE8_MEMBER(mirage_via_write_porta);
- DECLARE_WRITE8_MEMBER(mirage_via_write_portb);
+ void mirage_via_write_porta(uint8_t data);
+ void mirage_via_write_portb(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(mirage_doc_irq);
- DECLARE_READ8_MEMBER(mirage_adc_read);
+ uint8_t mirage_adc_read();
void mirage_map(address_map &map);
@@ -109,7 +109,7 @@ WRITE_LINE_MEMBER(enmirage_state::mirage_doc_irq)
// m_maincpu->set_input_line(M6809_IRQ_LINE, state);
}
-READ8_MEMBER(enmirage_state::mirage_adc_read)
+uint8_t enmirage_state::mirage_adc_read()
{
return 0x00;
}
@@ -137,7 +137,7 @@ void enmirage_state::mirage_map(address_map &map)
// bits 0-2: column select from 0-7
// bits 3/4 = right and left LED enable
// bits 5/6/7 keypad rows 0/1/2 return
-WRITE8_MEMBER(enmirage_state::mirage_via_write_porta)
+void enmirage_state::mirage_via_write_porta(uint8_t data)
{
u8 segdata = data & 7;
m_display->matrix(((data >> 3) & 3) ^ 3, (1<serial_in(data);
machine().scheduler().boost_interleave(attotime::zero, attotime::from_usec(250));
diff --git a/src/mame/drivers/esq1.cpp b/src/mame/drivers/esq1.cpp
index 87b2fda19dd..4f3fd8c0f4e 100644
--- a/src/mame/drivers/esq1.cpp
+++ b/src/mame/drivers/esq1.cpp
@@ -421,9 +421,9 @@ private:
DECLARE_WRITE8_MEMBER(mapper_w);
DECLARE_WRITE8_MEMBER(analog_w);
- DECLARE_WRITE8_MEMBER(duart_output);
+ void duart_output(uint8_t data);
- DECLARE_READ8_MEMBER(esq1_adc_read);
+ uint8_t esq1_adc_read();
DECLARE_READ8_MEMBER(es5503_sample_r);
@@ -453,7 +453,7 @@ void esq1_state::sq80_es5503_map(address_map &map)
map(0x000000, 0x1ffff).r(FUNC(esq1_state::es5503_sample_r));
}
-READ8_MEMBER(esq1_state::esq1_adc_read)
+uint8_t esq1_state::esq1_adc_read()
{
return m_adc_value[m_adc_target];
}
@@ -560,7 +560,7 @@ void esq1_state::sq80_map(address_map &map)
// OP5 = metronome hi
// OP6/7 = tape out
-WRITE8_MEMBER(esq1_state::duart_output)
+void esq1_state::duart_output(uint8_t data)
{
int bank = m_adc_target = ((data >> 1) & 0x7);
// printf("DP [%02x]: %d mlo %d mhi %d tape %d\n", data, data&1, (data>>4)&1, (data>>5)&1, (data>>6)&3);
diff --git a/src/mame/drivers/esq5505.cpp b/src/mame/drivers/esq5505.cpp
index 7b961a884bc..5e385e8f08f 100644
--- a/src/mame/drivers/esq5505.cpp
+++ b/src/mame/drivers/esq5505.cpp
@@ -248,13 +248,13 @@ private:
DECLARE_READ16_MEMBER(lower_r);
DECLARE_WRITE16_MEMBER(lower_w);
- DECLARE_READ16_MEMBER(analog_r);
- DECLARE_WRITE16_MEMBER(analog_w);
+ uint16_t analog_r();
+ void analog_w(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
DECLARE_WRITE_LINE_MEMBER(duart_tx_a);
DECLARE_WRITE_LINE_MEMBER(duart_tx_b);
- DECLARE_WRITE8_MEMBER(duart_output);
+ void duart_output(uint8_t data);
void es5505_clock_changed(u32 data);
@@ -470,13 +470,13 @@ void esq5505_state::es5505_clock_changed(u32 data)
m_pump->set_unscaled_clock(data);
}
-WRITE16_MEMBER(esq5505_state::analog_w)
+void esq5505_state::analog_w(offs_t offset, uint16_t data)
{
offset &= 0x7;
m_analog_values[offset] = data;
}
-READ16_MEMBER(esq5505_state::analog_r)
+uint16_t esq5505_state::analog_r()
{
return m_analog_values[m_duart_io & 7];
}
@@ -495,7 +495,7 @@ WRITE_LINE_MEMBER(esq5505_state::duart_irq_handler)
update_irq_to_maincpu();
}
-WRITE8_MEMBER(esq5505_state::duart_output)
+void esq5505_state::duart_output(uint8_t data)
{
floppy_image_device *floppy = m_floppy_connector ? m_floppy_connector->get_device() : nullptr;
diff --git a/src/mame/drivers/esqasr.cpp b/src/mame/drivers/esqasr.cpp
index 890748050b0..af0c49e5f22 100644
--- a/src/mame/drivers/esqasr.cpp
+++ b/src/mame/drivers/esqasr.cpp
@@ -75,7 +75,7 @@ private:
virtual void machine_reset() override;
DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq);
- DECLARE_READ16_MEMBER(esq5506_read_adc);
+ u16 esq5506_read_adc();
void es5506_clock_changed(u32 data);
void asr_map(address_map &map);
@@ -107,7 +107,7 @@ WRITE_LINE_MEMBER(esqasr_state::esq5506_otto_irq)
{
}
-READ16_MEMBER(esqasr_state::esq5506_read_adc)
+u16 esqasr_state::esq5506_read_adc()
{
return 0;
}
diff --git a/src/mame/drivers/esqkt.cpp b/src/mame/drivers/esqkt.cpp
index d537b16d0bd..681e76d41b8 100644
--- a/src/mame/drivers/esqkt.cpp
+++ b/src/mame/drivers/esqkt.cpp
@@ -134,13 +134,13 @@ private:
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
DECLARE_WRITE_LINE_MEMBER(duart_tx_a);
DECLARE_WRITE_LINE_MEMBER(duart_tx_b);
- DECLARE_WRITE8_MEMBER(duart_output);
+ void duart_output(u8 data);
u8 m_duart_io;
bool m_bCalibSecondByte;
DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq);
- DECLARE_READ16_MEMBER(esq5506_read_adc);
+ u16 esq5506_read_adc();
void es5506_clock_changed(u32 data);
void kt_map(address_map &map);
void ts_map(address_map &map);
@@ -190,7 +190,7 @@ WRITE_LINE_MEMBER(esqkt_state::esq5506_otto_irq)
#endif
}
-READ16_MEMBER(esqkt_state::esq5506_read_adc)
+u16 esqkt_state::esq5506_read_adc()
{
switch ((m_duart_io & 7) ^ 7)
{
@@ -224,7 +224,7 @@ WRITE_LINE_MEMBER(esqkt_state::duart_irq_handler)
m_maincpu->set_input_line(M68K_IRQ_3, state);
}
-WRITE8_MEMBER(esqkt_state::duart_output)
+void esqkt_state::duart_output(u8 data)
{
m_duart_io = data;
diff --git a/src/mame/drivers/esqmr.cpp b/src/mame/drivers/esqmr.cpp
index 93c3352479c..e5bbe345e73 100644
--- a/src/mame/drivers/esqmr.cpp
+++ b/src/mame/drivers/esqmr.cpp
@@ -231,7 +231,7 @@ private:
virtual void machine_reset() override;
DECLARE_WRITE_LINE_MEMBER(esq5506_otto_irq);
- DECLARE_READ16_MEMBER(esq5506_read_adc);
+ u16 esq5506_read_adc();
DECLARE_WRITE_LINE_MEMBER(duart_tx_a);
DECLARE_WRITE_LINE_MEMBER(duart_tx_b);
@@ -265,7 +265,7 @@ WRITE_LINE_MEMBER(esqmr_state::esq5506_otto_irq)
{
}
-READ16_MEMBER(esqmr_state::esq5506_read_adc)
+u16 esqmr_state::esq5506_read_adc()
{
return 0;
}
diff --git a/src/mame/drivers/et3400.cpp b/src/mame/drivers/et3400.cpp
index 6cf98f4d71a..ad007626b8c 100644
--- a/src/mame/drivers/et3400.cpp
+++ b/src/mame/drivers/et3400.cpp
@@ -57,13 +57,13 @@ private:
virtual void machine_start() override;
- DECLARE_READ8_MEMBER(keypad_r);
- DECLARE_WRITE8_MEMBER(display_w);
- template DECLARE_WRITE8_MEMBER(led_w);
- DECLARE_READ8_MEMBER(pia_ar);
- DECLARE_WRITE8_MEMBER(pia_aw);
- DECLARE_READ8_MEMBER(pia_br);
- DECLARE_WRITE8_MEMBER(pia_bw);
+ uint8_t keypad_r(offs_t offset);
+ void display_w(offs_t offset, uint8_t data);
+ template void led_w(uint8_t data);
+ uint8_t pia_ar();
+ void pia_aw(uint8_t data);
+ uint8_t pia_br();
+ void pia_bw(uint8_t data);
void mem_map(address_map &map);
@@ -84,7 +84,7 @@ void et3400_state::machine_start()
}
-READ8_MEMBER(et3400_state::keypad_r)
+uint8_t et3400_state::keypad_r(offs_t offset)
{
uint8_t data = 0xff;
@@ -95,7 +95,7 @@ READ8_MEMBER(et3400_state::keypad_r)
return data;
}
-WRITE8_MEMBER(et3400_state::display_w)
+void et3400_state::display_w(offs_t offset, uint8_t data)
{
// A6-A4 decoded by IC22 (74LS42); D0 inverted by one gate of IC21 (74S00)
uint8_t digit = (offset >> 4) & 7;
@@ -104,7 +104,7 @@ WRITE8_MEMBER(et3400_state::display_w)
}
template
-WRITE8_MEMBER(et3400_state::led_w)
+void et3400_state::led_w(uint8_t data)
{
// This computer sets each segment, one at a time.
m_digit[Digit - 1] = bitswap<8>(~data, 7, 0, 1, 2, 3, 4, 5, 6);
@@ -113,25 +113,25 @@ WRITE8_MEMBER(et3400_state::led_w)
// d1,2,3 = Baud rate
// d4 = gnd
// d7 = rs232 in
-READ8_MEMBER(et3400_state::pia_ar)
+uint8_t et3400_state::pia_ar()
{
return ioport("BAUD")->read() | (m_rs232->rxd_r() << 7);
}
// d0 = rs232 out
-WRITE8_MEMBER(et3400_state::pia_aw)
+void et3400_state::pia_aw(uint8_t data)
{
m_rs232->write_txd(BIT(data, 0));
}
// d7 = cass in
-READ8_MEMBER(et3400_state::pia_br)
+uint8_t et3400_state::pia_br()
{
return (m_cass->input() > +0.0) << 7;
}
// d0 = cass out
-WRITE8_MEMBER(et3400_state::pia_bw)
+void et3400_state::pia_bw(uint8_t data)
{
m_cass->output(BIT(data, 0) ? -1.0 : +1.0);
}
diff --git a/src/mame/drivers/eurit.cpp b/src/mame/drivers/eurit.cpp
index a651376e047..24b9ad57b44 100644
--- a/src/mame/drivers/eurit.cpp
+++ b/src/mame/drivers/eurit.cpp
@@ -9,6 +9,9 @@
#include "emu.h"
#include "cpu/m37710/m37710.h"
#include "machine/am79c30.h"
+#include "video/hd44780.h"
+#include "emupal.h"
+#include "screen.h"
class eurit_state : public driver_device
{
@@ -16,37 +19,63 @@ public:
eurit_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
+ , m_keys(*this, "KEY%c", 'A')
+ , m_key_scan(0x1f)
{
}
void eurit30(machine_config &mconfig);
+protected:
+ virtual void machine_start() override;
+
private:
- void p4_w(u8 data);
- void p6_w(u8 data);
+ HD44780_PIXEL_UPDATE(lcd_pixel_update);
+
+ void key_scan_w(u8 data);
+ u8 key_matrix_r();
void mem_map(address_map &map);
- required_device m_maincpu;
+ void palette_init(palette_device &palette);
- u8 m_p4 = 0;
+ required_device m_maincpu;
+ required_ioport_array<5> m_keys;
+
+ u8 m_key_scan;
};
-void eurit_state::p4_w(u8 data)
+void eurit_state::machine_start()
{
- m_p4 = data;
+ save_item(NAME(m_key_scan));
}
-void eurit_state::p6_w(u8 data)
+HD44780_PIXEL_UPDATE(eurit_state::lcd_pixel_update)
{
- if (BIT(data, 6))
- logerror("%s: Writing $%X to LCDC %s register\n", machine().describe_context(), (m_p4 & 0xf0) >> 4, BIT(data, 4) ? "data" : "instruction");
+ if (x < 5 && y < 8 && line < 2 && pos < 20)
+ bitmap.pix16(line * 8 + y, pos * 6 + x) = state;
+}
+
+
+void eurit_state::key_scan_w(u8 data)
+{
+ m_key_scan = data >> 3;
+}
+
+u8 eurit_state::key_matrix_r()
+{
+ u8 ret = 0xff;
+ for (int i = 0; i < 5; i++)
+ if (!BIT(m_key_scan, i))
+ ret &= m_keys[i]->read();
+
+ return ret;
}
void eurit_state::mem_map(address_map &map)
{
- map(0x000480, 0x007fff).ram();
+ map(0x000480, 0x007fff).ram(); // probably NVRAM (0x000480 counts seconds for software RTC)
map(0x008000, 0x00ffff).rom().region("firmware", 0x8000);
map(0x040000, 0x05ffff).rom().region("firmware", 0);
map(0x0c0000, 0x0c0007).rw("dsc", FUNC(am79c30a_device::read), FUNC(am79c30a_device::write));
@@ -54,17 +83,91 @@ void eurit_state::mem_map(address_map &map)
static INPUT_PORTS_START(eurit30)
+ PORT_START("KEYA")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key A0")
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key A1")
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("#") PORT_CODE(KEYCODE_EQUALS)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("0 0...9") PORT_CODE(KEYCODE_0)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("*") PORT_CODE(KEYCODE_MINUS)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("ESC") PORT_CODE(KEYCODE_BACKSPACE)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("R") PORT_CODE(KEYCODE_R)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key A7") // phone off hook?
+
+ PORT_START("KEYB")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Z2") PORT_CODE(KEYCODE_X)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Menu") PORT_CODE(KEYCODE_ENTER)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("9 YZ") PORT_CODE(KEYCODE_9)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("8 VWX") PORT_CODE(KEYCODE_8)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("7 STU") PORT_CODE(KEYCODE_7)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key B5")
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("L") PORT_CODE(KEYCODE_L)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("MIC") PORT_CODE(KEYCODE_M)
+
+ PORT_START("KEYC")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Z6") PORT_CODE(KEYCODE_N)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Z3") PORT_CODE(KEYCODE_C)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("6 PQR") PORT_CODE(KEYCODE_6)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("5 MNO") PORT_CODE(KEYCODE_5)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("4 JKL") PORT_CODE(KEYCODE_4)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key C5")
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("+") PORT_CODE(KEYCODE_UP)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key C7")
+
+ PORT_START("KEYD")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Z4") PORT_CODE(KEYCODE_V)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Z5") PORT_CODE(KEYCODE_B)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("3 GHI") PORT_CODE(KEYCODE_3)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("2 DEF") PORT_CODE(KEYCODE_2)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("1 ABC") PORT_CODE(KEYCODE_1)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Unknown Key D5")
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME(UTF8_RIGHT) PORT_CODE(KEYCODE_RIGHT)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME(UTF8_LEFT) PORT_CODE(KEYCODE_LEFT)
+
+ PORT_START("KEYE")
+ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Fox Key Center Right") PORT_CODE(KEYCODE_F)
+ PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Fox Key Next to Left") PORT_CODE(KEYCODE_S)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("-") PORT_CODE(KEYCODE_DOWN)
+ PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Fox Key Next to Right") PORT_CODE(KEYCODE_G)
+ PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Fox Key Right") PORT_CODE(KEYCODE_H)
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Fox Key Center Left") PORT_CODE(KEYCODE_D)
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Fox Key Left") PORT_CODE(KEYCODE_A)
+ PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_NAME("Z1") PORT_CODE(KEYCODE_Z)
INPUT_PORTS_END
+void eurit_state::palette_init(palette_device &palette)
+{
+ palette.set_pen_color(0, rgb_t(131, 136, 139));
+ palette.set_pen_color(1, rgb_t( 92, 83, 88));
+}
+
void eurit_state::eurit30(machine_config &config)
{
- M37730S2(config, m_maincpu, 8'000'000); // type and clock unknown
+ M37730S2(config, m_maincpu, 4'096'000);
m_maincpu->set_addrmap(AS_PROGRAM, &eurit_state::mem_map);
- m_maincpu->p4_out_cb().set(FUNC(eurit_state::p4_w));
- m_maincpu->p6_out_cb().set(FUNC(eurit_state::p6_w));
+ m_maincpu->p4_in_cb().set("lcdc", FUNC(hd44780_device::db_r)); // not actually used for input?
+ m_maincpu->p4_out_cb().set("lcdc", FUNC(hd44780_device::db_w));
+ m_maincpu->p4_out_cb().append(FUNC(eurit_state::key_scan_w));
+ m_maincpu->p5_in_cb().set(FUNC(eurit_state::key_matrix_r));
+ m_maincpu->p6_out_cb().set("lcdc", FUNC(hd44780_device::e_w)).bit(6);
+ m_maincpu->p6_out_cb().append("lcdc", FUNC(hd44780_device::rw_w)).bit(5); // not actually used for read mode?
+ m_maincpu->p6_out_cb().append("lcdc", FUNC(hd44780_device::rs_w)).bit(4);
am79c30a_device &dsc(AM79C30A(config, "dsc", 12'288'000));
dsc.int_callback().set_inputline(m_maincpu, M37710_LINE_IRQ0);
+
+ screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
+ screen.set_refresh_hz(60);
+ screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */
+ screen.set_screen_update("lcdc", FUNC(hd44780_device::screen_update));
+ screen.set_size(6*20, 8*2);
+ screen.set_visarea_full();
+ screen.set_palette("palette");
+
+ PALETTE(config, "palette", FUNC(eurit_state::palette_init), 2);
+
+ hd44780_device &lcdc(SED1278_0B(config, "lcdc", 0));
+ lcdc.set_lcd_size(2, 20);
+ lcdc.set_pixel_update_cb(FUNC(eurit_state::lcd_pixel_update));
}
@@ -74,4 +177,4 @@ ROM_START(eurit30)
ROM_END
-SYST(1996, eurit30, 0, 0, eurit30, eurit30, eurit_state, empty_init, "Ascom", "Eurit 30", MACHINE_IS_SKELETON)
+SYST(1996, eurit30, 0, 0, eurit30, eurit30, eurit_state, empty_init, "Ascom", "Eurit 30", MACHINE_NOT_WORKING | MACHINE_NO_SOUND)
diff --git a/src/mame/drivers/eva.cpp b/src/mame/drivers/eva.cpp
index d5c71f0db77..a0a6a32b452 100644
--- a/src/mame/drivers/eva.cpp
+++ b/src/mame/drivers/eva.cpp
@@ -62,9 +62,9 @@ private:
// devices
required_device m_maincpu;
- DECLARE_READ8_MEMBER(read_k);
- DECLARE_WRITE16_MEMBER(write_o);
- DECLARE_WRITE16_MEMBER(write_r);
+ u8 read_k();
+ void write_o(u16 data);
+ void write_r(u16 data);
};
class eva24_state : public base_state
@@ -85,9 +85,9 @@ private:
// devices
required_device m_maincpu;
- DECLARE_READ8_MEMBER(read_g);
- DECLARE_WRITE8_MEMBER(write_g);
- DECLARE_WRITE8_MEMBER(write_d);
+ u8 read_g();
+ void write_g(u8 data);
+ void write_d(u8 data);
u8 m_g = 0;
};
@@ -105,19 +105,19 @@ void eva24_state::machine_start()
// EVA-24
-WRITE8_MEMBER(eva24_state::write_g)
+void eva24_state::write_g(u8 data)
{
// G3: TMS5100 PDC pin
m_tms5100->pdc_w(data >> 3 & 1);
m_g = data;
}
-READ8_MEMBER(eva24_state::read_g)
+u8 eva24_state::read_g()
{
return m_g;
}
-WRITE8_MEMBER(eva24_state::write_d)
+void eva24_state::write_d(u8 data)
{
// D3210: TMS5100 CTL8421
m_tms5100->ctl_w(data & 0xf);
@@ -126,19 +126,19 @@ WRITE8_MEMBER(eva24_state::write_d)
// EVA-11
-WRITE16_MEMBER(eva11_state::write_r)
+void eva11_state::write_r(u16 data)
{
// R7: TMS5100 PDC pin
m_tms5100->pdc_w(data >> 7 & 1);
}
-WRITE16_MEMBER(eva11_state::write_o)
+void eva11_state::write_o(u16 data)
{
// O3210: TMS5100 CTL8421
m_tms5100->ctl_w(data & 0xf);
}
-READ8_MEMBER(eva11_state::read_k)
+u8 eva11_state::read_k()
{
// K84: TMS5100 CTL81(O30)
u8 ctl = m_tms5100->ctl_r();
diff --git a/src/mame/drivers/exerion.cpp b/src/mame/drivers/exerion.cpp
index f89a3242dd4..8fe90169a96 100644
--- a/src/mame/drivers/exerion.cpp
+++ b/src/mame/drivers/exerion.cpp
@@ -158,14 +158,14 @@ INPUT_CHANGED_MEMBER(exerion_state::coin_inserted)
/* This is the first of many Exerion "features". No clue if it's */
/* protection or some sort of timer. */
-READ8_MEMBER(exerion_state::exerion_porta_r)
+uint8_t exerion_state::exerion_porta_r()
{
m_porta ^= 0x40;
return m_porta;
}
-WRITE8_MEMBER(exerion_state::exerion_portb_w)
+void exerion_state::exerion_portb_w(uint8_t data)
{
/* pull the expected value from the ROM */
m_porta = memregion("maincpu")->base()[0x5f76];
@@ -175,7 +175,7 @@ WRITE8_MEMBER(exerion_state::exerion_portb_w)
}
-READ8_MEMBER(exerion_state::exerion_protection_r)
+uint8_t exerion_state::exerion_protection_r(offs_t offset)
{
if (m_maincpu->pc() == 0x4143)
return memregion("maincpu")->base()[0x33c0 + (m_main_ram[0xd] << 2) + offset];
diff --git a/src/mame/drivers/fastfred.cpp b/src/mame/drivers/fastfred.cpp
index 1fb0df22581..3bb840559f0 100644
--- a/src/mame/drivers/fastfred.cpp
+++ b/src/mame/drivers/fastfred.cpp
@@ -149,7 +149,7 @@ WRITE_LINE_MEMBER(fastfred_state::imago_dma_irq_w)
m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE);
}
-WRITE8_MEMBER(fastfred_state::imago_sprites_bank_w)
+void fastfred_state::imago_sprites_bank_w(uint8_t data)
{
m_imago_sprites_bank = (data & 2) >> 1;
}
@@ -184,7 +184,7 @@ WRITE_LINE_MEMBER(fastfred_state::nmi_mask_w)
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
-WRITE8_MEMBER(fastfred_state::sound_nmi_mask_w)
+void fastfred_state::sound_nmi_mask_w(uint8_t data)
{
m_sound_nmi_mask = data & 1;
}
diff --git a/src/mame/drivers/fastlane.cpp b/src/mame/drivers/fastlane.cpp
index bac17f048fc..dfb52a86d35 100644
--- a/src/mame/drivers/fastlane.cpp
+++ b/src/mame/drivers/fastlane.cpp
@@ -180,13 +180,13 @@ GFXDECODE_END
***************************************************************************/
-WRITE8_MEMBER(fastlane_state::volume_callback0)
+void fastlane_state::volume_callback0(uint8_t data)
{
m_k007232_1->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11);
}
-WRITE8_MEMBER(fastlane_state::volume_callback1)
+void fastlane_state::volume_callback1(uint8_t data)
{
m_k007232_2->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232_2->set_volume(1, 0, (data & 0x0f) * 0x11);
diff --git a/src/mame/drivers/fccpu30.cpp b/src/mame/drivers/fccpu30.cpp
index 4d390cde0b1..7b91ee74e07 100644
--- a/src/mame/drivers/fccpu30.cpp
+++ b/src/mame/drivers/fccpu30.cpp
@@ -97,7 +97,7 @@
* - A32/D32 VMEbus master/slave interface with system controller function (VMEchip ASIC)
* - Ethernet transceiver interface (AM79C90)
* - SCSI bus interface with independent data bus on P2 connector (MB87033/34)
- * - Flopyy disk interface on P2 connector (FCD37C65C)
+ * - Floppy disk interface on P2 connector (FCD37C65C)
* - Four serial ports (DUSCC SCN68562 x 2)
* - 20 bit digital i/o for user applications( 2 x 68230 PI/T )
* - Real-Time Clock with interrupt (72423)
@@ -107,7 +107,7 @@
*
* Address Map
* --------------------------------------------------------------------------
- * Range Decscription
+ * Range Desccription
* --------------------------------------------------------------------------
* 00000000-0xxFFFFF Shared DRAM D8-D32 xx=0x1F-0x03 for 32Mb-4Mb
* 0yy00000-FAFFFFFF VME A32 D8-D32 yy=xx+1
@@ -287,16 +287,16 @@ private:
int fga_irq_level;
/* Rotary switch PIT input */
- DECLARE_READ8_MEMBER (rotary_rd);
- DECLARE_READ8_MEMBER (flop_dmac_r);
- DECLARE_WRITE8_MEMBER (flop_dmac_w);
- DECLARE_READ8_MEMBER (pit1c_r);
- DECLARE_WRITE8_MEMBER (pit1c_w);
- DECLARE_READ8_MEMBER (pit2a_r);
- DECLARE_WRITE8_MEMBER (pit2a_w);
- DECLARE_READ8_MEMBER (board_mem_id_rd);
- DECLARE_READ8_MEMBER (pit2c_r);
- DECLARE_WRITE8_MEMBER (pit2c_w);
+ uint8_t rotary_rd();
+ uint8_t flop_dmac_r();
+ void flop_dmac_w(uint8_t data);
+ uint8_t pit1c_r();
+ void pit1c_w(uint8_t data);
+ uint8_t pit2a_r();
+ void pit2a_w(uint8_t data);
+ uint8_t board_mem_id_rd();
+ uint8_t pit2c_r();
+ void pit2c_w(uint8_t data);
/* VME bus accesses */
//DECLARE_READ16_MEMBER (vme_a24_r);
@@ -487,42 +487,42 @@ WRITE32_MEMBER (cpu30_state::bootvect_w){
*
* "To start VMEPROM, the rotary switches must both be set to 'F':" Hmm...
*/
-READ8_MEMBER (cpu30_state::rotary_rd){
+uint8_t cpu30_state::rotary_rd(){
LOG("%s\n", FUNCNAME);
return 0xff; // TODO: make this configurable from commandline or artwork
}
// PIT#1 Port B TODO: implement floppy and dma control
-READ8_MEMBER (cpu30_state::flop_dmac_r){
+uint8_t cpu30_state::flop_dmac_r(){
LOG("%s\n", FUNCNAME);
return 0xff;
}
-WRITE8_MEMBER (cpu30_state::flop_dmac_w){
+void cpu30_state::flop_dmac_w(uint8_t data){
LOG("%s(%02x)\n", FUNCNAME, data);
}
#define FPCP_SENSE 0x40 /* Port C bit 6 is low if a Floating Point Co Processor is installed */
// PIT#1 Port C TODO: implement timer+port interrupts
// TODO: Connect PC0, PC1, PC4 and PC7 to B5 and/or P2 connector
-READ8_MEMBER (cpu30_state::pit1c_r){
+uint8_t cpu30_state::pit1c_r(){
LOG("%s\n", FUNCNAME);
m_maincpu->set_fpu_enable(1); // Lets assume the FPCP is always installed ( which is default for 68030 atm )
return 0xff & ~FPCP_SENSE; // Should really be command line for the edge cases...
}
-WRITE8_MEMBER (cpu30_state::pit1c_w){
+void cpu30_state::pit1c_w(uint8_t data){
LOG("%s(%02x)\n", FUNCNAME, data);
}
// PIT#2 Port A TODO: Connect to B5 and /or P2 connector
-READ8_MEMBER (cpu30_state::pit2a_r){
+uint8_t cpu30_state::pit2a_r(){
LOG("%s\n", FUNCNAME);
logerror("Unsupported user i/o on PIT2 port A detected\n");
return 0xff;
}
-WRITE8_MEMBER (cpu30_state::pit2a_w){
+void cpu30_state::pit2a_w(uint8_t data){
LOG("%s(%02x)\n", FUNCNAME, data);
logerror("Unsupported user i/o on PIT2 port A detected\n");
}
@@ -541,11 +541,11 @@ WRITE8_MEMBER (cpu30_state::pit2a_w){
* contain the same identification number. In the case of the CPU-30 R4, the
* number is 0x0a
*
- * The speed of the board is meassured by looping some instructions and meassure the time it takes with a timer
+ * The speed of the board is measured by looping some instructions and measure the time it takes with a timer
* Currently this doesn't work so the wrong speed is displayed on the screen. To fix this timing needs to be more exact.
- * Speed meassure subroutine is at address 0xffe033c4 in the FGA-002 firmware with CRC (faa38972) (for example)
+ * Speed measure subroutine is at address 0xffe033c4 in the FGA-002 firmware with CRC (faa38972) (for example)
*/
-READ8_MEMBER (cpu30_state::board_mem_id_rd)
+uint8_t cpu30_state::board_mem_id_rd()
{
int sz;
LOG("%s\n", FUNCNAME);
@@ -591,12 +591,12 @@ READ8_MEMBER (cpu30_state::board_mem_id_rd)
}
// PIT#2 Port C TODO: implement timer interrupt, DMA i/o, memory control and Hardware ID
-READ8_MEMBER (cpu30_state::pit2c_r){
+uint8_t cpu30_state::pit2c_r(){
LOG("%s\n", FUNCNAME);
return 0xfe;
}
-WRITE8_MEMBER (cpu30_state::pit2c_w){
+void cpu30_state::pit2c_w(uint8_t data){
LOG("%s(%02x)\n", FUNCNAME, data);
}
diff --git a/src/mame/drivers/fidel_card.cpp b/src/mame/drivers/fidel_card.cpp
index 215fd9daa26..9717115c937 100644
--- a/src/mame/drivers/fidel_card.cpp
+++ b/src/mame/drivers/fidel_card.cpp
@@ -237,9 +237,9 @@ private:
// I/O handlers
void update_display();
- DECLARE_WRITE8_MEMBER(speech_w);
- DECLARE_WRITE8_MEMBER(mcu_p1_w);
- DECLARE_READ8_MEMBER(mcu_p2_r);
+ void speech_w(u8 data);
+ void mcu_p1_w(u8 data);
+ u8 mcu_p2_r();
DECLARE_READ_LINE_MEMBER(mcu_t0_r);
template void ioexp_port_w(uint8_t data);
};
@@ -278,7 +278,7 @@ void card_state::update_display()
m_dac->write(BIT(~m_inp_mux, 7) & BIT(m_vfd_data, 13));
}
-WRITE8_MEMBER(card_state::speech_w)
+void card_state::speech_w(u8 data)
{
if (m_speech == nullptr)
return;
@@ -326,14 +326,14 @@ void card_state::ioexp_port_w(uint8_t data)
// I8041 MCU
-WRITE8_MEMBER(card_state::mcu_p1_w)
+void card_state::mcu_p1_w(u8 data)
{
// P10-P17: input mux, digit select
m_inp_mux = data;
update_display();
}
-READ8_MEMBER(card_state::mcu_p2_r)
+u8 card_state::mcu_p2_r()
{
// P20-P23: I8243 P2
u8 data = m_i8243->p2_r() & 0x0f;
diff --git a/src/mame/drivers/fidel_cc1.cpp b/src/mame/drivers/fidel_cc1.cpp
index eb1ec8ce428..902b3c0d3d5 100644
--- a/src/mame/drivers/fidel_cc1.cpp
+++ b/src/mame/drivers/fidel_cc1.cpp
@@ -107,9 +107,9 @@ private:
// I/O handlers
void update_display();
- DECLARE_READ8_MEMBER(ppi_porta_r);
- DECLARE_WRITE8_MEMBER(ppi_portb_w);
- DECLARE_WRITE8_MEMBER(ppi_portc_w);
+ u8 ppi_porta_r();
+ void ppi_portb_w(u8 data);
+ void ppi_portc_w(u8 data);
u8 m_led_select;
u8 m_7seg_data;
@@ -140,7 +140,7 @@ void cc1_state::update_display()
m_display->matrix(m_led_select, m_7seg_data);
}
-READ8_MEMBER(cc1_state::ppi_porta_r)
+u8 cc1_state::ppi_porta_r()
{
// 74148(priority encoder) I0-I7: inputs
// d0-d2: 74148 S0-S2, d3: 74148 GS
@@ -153,14 +153,14 @@ READ8_MEMBER(cc1_state::ppi_porta_r)
return data | ((m_delay->enabled()) ? 0x10 : 0);
}
-WRITE8_MEMBER(cc1_state::ppi_portb_w)
+void cc1_state::ppi_portb_w(u8 data)
{
// d0-d6: digit segment data
m_7seg_data = bitswap<7>(data,0,1,2,3,4,5,6);
update_display();
}
-WRITE8_MEMBER(cc1_state::ppi_portc_w)
+void cc1_state::ppi_portc_w(u8 data)
{
// d6: trigger monostable 555 (R=15K, C=1uF)
if (~data & m_led_select & 0x40 && !m_delay->enabled())
diff --git a/src/mame/drivers/fidel_cc10.cpp b/src/mame/drivers/fidel_cc10.cpp
index 701bcfe3d8e..03b2cab3b19 100644
--- a/src/mame/drivers/fidel_cc10.cpp
+++ b/src/mame/drivers/fidel_cc10.cpp
@@ -89,10 +89,10 @@ private:
// I/O handlers
void update_display();
- DECLARE_WRITE8_MEMBER(ppi_porta_w);
- DECLARE_WRITE8_MEMBER(ppi_portb_w);
- DECLARE_READ8_MEMBER(ppi_portc_r);
- DECLARE_WRITE8_MEMBER(ppi_portc_w);
+ void ppi_porta_w(u8 data);
+ void ppi_portb_w(u8 data);
+ u8 ppi_portc_r();
+ void ppi_portc_w(u8 data);
u8 m_inp_mux;
u8 m_led_select;
@@ -126,7 +126,7 @@ void ccx_state::update_display()
m_display->matrix(m_led_select, m_7seg_data);
}
-WRITE8_MEMBER(ccx_state::ppi_porta_w)
+void ccx_state::ppi_porta_w(u8 data)
{
// d7: enable beeper on falling edge (556 monostable) (unpopulated on ACR)
if (m_beeper != nullptr && ~data & m_7seg_data & 0x80 && !m_beeper_off->enabled())
@@ -140,7 +140,7 @@ WRITE8_MEMBER(ccx_state::ppi_porta_w)
update_display();
}
-WRITE8_MEMBER(ccx_state::ppi_portb_w)
+void ccx_state::ppi_portb_w(u8 data)
{
// d0: lose led, d1: check(win) led
// d2-d5: digit select
@@ -148,7 +148,7 @@ WRITE8_MEMBER(ccx_state::ppi_portb_w)
update_display();
}
-READ8_MEMBER(ccx_state::ppi_portc_r)
+u8 ccx_state::ppi_portc_r()
{
u8 data = 0;
@@ -160,7 +160,7 @@ READ8_MEMBER(ccx_state::ppi_portc_r)
return ~data & 0xf;
}
-WRITE8_MEMBER(ccx_state::ppi_portc_w)
+void ccx_state::ppi_portc_w(u8 data)
{
// d4-d7: input mux (inverted)
m_inp_mux = ~data >> 4 & 0xf;
diff --git a/src/mame/drivers/fidel_csc.cpp b/src/mame/drivers/fidel_csc.cpp
index d78062c2ba5..eb707d0ff7f 100644
--- a/src/mame/drivers/fidel_csc.cpp
+++ b/src/mame/drivers/fidel_csc.cpp
@@ -270,18 +270,18 @@ protected:
u16 read_inputs();
void update_display();
void update_sound();
- DECLARE_READ8_MEMBER(speech_r);
+ u8 speech_r(offs_t offset);
- DECLARE_WRITE8_MEMBER(pia0_pa_w);
- DECLARE_WRITE8_MEMBER(pia0_pb_w);
- DECLARE_READ8_MEMBER(pia0_pa_r);
+ void pia0_pa_w(u8 data);
+ void pia0_pb_w(u8 data);
+ u8 pia0_pa_r();
DECLARE_WRITE_LINE_MEMBER(pia0_ca2_w);
DECLARE_WRITE_LINE_MEMBER(pia0_cb2_w);
DECLARE_READ_LINE_MEMBER(pia0_ca1_r);
DECLARE_READ_LINE_MEMBER(pia0_cb1_r);
- DECLARE_WRITE8_MEMBER(pia1_pa_w);
- DECLARE_WRITE8_MEMBER(pia1_pb_w);
- DECLARE_READ8_MEMBER(pia1_pb_r);
+ void pia1_pa_w(u8 data);
+ void pia1_pb_w(u8 data);
+ u8 pia1_pb_r();
DECLARE_WRITE_LINE_MEMBER(pia1_ca2_w);
u8 m_led_data;
@@ -398,7 +398,7 @@ void csc_state::update_sound()
m_dac->write(BIT(1 << m_inp_mux, 9));
}
-READ8_MEMBER(csc_state::speech_r)
+u8 csc_state::speech_r(offs_t offset)
{
return m_speech_rom[m_speech_bank << 12 | offset];
}
@@ -406,13 +406,13 @@ READ8_MEMBER(csc_state::speech_r)
// 6821 PIA 0
-READ8_MEMBER(csc_state::pia0_pa_r)
+u8 csc_state::pia0_pa_r()
{
// d0-d5: button row 0-5
return (read_inputs() & 0x3f) | 0xc0;
}
-WRITE8_MEMBER(csc_state::pia0_pa_w)
+void csc_state::pia0_pa_w(u8 data)
{
// d6,d7: 7442 A0,A1
m_inp_mux = (m_inp_mux & ~3) | (data >> 6 & 3);
@@ -420,7 +420,7 @@ WRITE8_MEMBER(csc_state::pia0_pa_w)
update_sound();
}
-WRITE8_MEMBER(csc_state::pia0_pb_w)
+void csc_state::pia0_pb_w(u8 data)
{
// d0-d7: led row data
m_led_data = data;
@@ -458,7 +458,7 @@ WRITE_LINE_MEMBER(csc_state::pia0_ca2_w)
// 6821 PIA 1
-WRITE8_MEMBER(csc_state::pia1_pa_w)
+void csc_state::pia1_pa_w(u8 data)
{
// d0-d5: TSI C0-C5
m_speech->data_w(data & 0x3f);
@@ -468,7 +468,7 @@ WRITE8_MEMBER(csc_state::pia1_pa_w)
update_display();
}
-WRITE8_MEMBER(csc_state::pia1_pb_w)
+void csc_state::pia1_pb_w(u8 data)
{
// d0: speech ROM A12
m_speech->force_update(); // update stream to now
@@ -481,7 +481,7 @@ WRITE8_MEMBER(csc_state::pia1_pb_w)
m_speech->set_output_gain(0, (data & 0x10) ? 0.25 : 1.0);
}
-READ8_MEMBER(csc_state::pia1_pb_r)
+u8 csc_state::pia1_pb_r()
{
// d2: printer?
u8 data = 0x04;
diff --git a/src/mame/drivers/fidel_elite.cpp b/src/mame/drivers/fidel_elite.cpp
index 0b18d43a514..216b84c21c1 100644
--- a/src/mame/drivers/fidel_elite.cpp
+++ b/src/mame/drivers/fidel_elite.cpp
@@ -134,13 +134,13 @@ protected:
// I/O handlers
void update_display();
- DECLARE_READ8_MEMBER(speech_r);
- DECLARE_WRITE8_MEMBER(segment_w);
- DECLARE_WRITE8_MEMBER(led_w);
- DECLARE_READ8_MEMBER(input_r);
- DECLARE_WRITE8_MEMBER(ppi_porta_w);
- DECLARE_READ8_MEMBER(ppi_portb_r);
- DECLARE_WRITE8_MEMBER(ppi_portc_w);
+ u8 speech_r(offs_t offset);
+ void segment_w(offs_t offset, u8 data);
+ void led_w(offs_t offset, u8 data);
+ u8 input_r();
+ void ppi_porta_w(u8 data);
+ u8 ppi_portb_r();
+ void ppi_portc_w(u8 data);
bool m_rotate;
u8 m_led_data;
@@ -209,12 +209,12 @@ void elite_state::update_display()
m_display->matrix(1 << m_inp_mux, m_led_data << 8 | seg_data);
}
-READ8_MEMBER(elite_state::speech_r)
+u8 elite_state::speech_r(offs_t offset)
{
return m_speech_rom[m_speech_bank << 12 | offset];
}
-WRITE8_MEMBER(elite_state::segment_w)
+void elite_state::segment_w(offs_t offset, u8 data)
{
// a0-a2,d7: digit segment
u8 mask = 1 << offset;
@@ -222,14 +222,14 @@ WRITE8_MEMBER(elite_state::segment_w)
update_display();
}
-WRITE8_MEMBER(elite_state::led_w)
+void elite_state::led_w(offs_t offset, u8 data)
{
// a0-a2,d0: led data
m_led_data = (m_led_data & ~(1 << offset)) | ((data & 1) << offset);
update_display();
}
-READ8_MEMBER(elite_state::input_r)
+u8 elite_state::input_r()
{
u8 data = 0;
@@ -254,7 +254,7 @@ READ8_MEMBER(elite_state::input_r)
// 8255 PPI (PC: done with TTL instead)
-WRITE8_MEMBER(elite_state::ppi_porta_w)
+void elite_state::ppi_porta_w(u8 data)
{
// d0-d5: TSI C0-C5
// d6: TSI START line
@@ -264,7 +264,7 @@ WRITE8_MEMBER(elite_state::ppi_porta_w)
// d7: printer? (black wire to LED pcb)
}
-WRITE8_MEMBER(elite_state::ppi_portc_w)
+void elite_state::ppi_portc_w(u8 data)
{
// d0-d3: 7442 a0-a3
// 7442 0-8: led select, input mux
@@ -286,7 +286,7 @@ WRITE8_MEMBER(elite_state::ppi_portc_w)
m_rombank->set_entry(data >> 6 & 3);
}
-READ8_MEMBER(elite_state::ppi_portb_r)
+u8 elite_state::ppi_portb_r()
{
// d0: printer? white wire from LED pcb
u8 data = 1;
diff --git a/src/mame/drivers/fidel_excel.cpp b/src/mame/drivers/fidel_excel.cpp
index 6a5db5bc199..868fb8b22ed 100644
--- a/src/mame/drivers/fidel_excel.cpp
+++ b/src/mame/drivers/fidel_excel.cpp
@@ -202,9 +202,9 @@ private:
template TIMER_DEVICE_CALLBACK_MEMBER(irq_off) { m_maincpu->set_input_line(Line, CLEAR_LINE); }
// I/O handlers
- DECLARE_READ8_MEMBER(speech_r);
- DECLARE_WRITE8_MEMBER(ttl_w);
- DECLARE_READ8_MEMBER(ttl_r);
+ u8 speech_r(offs_t offset);
+ void ttl_w(offs_t offset, u8 data);
+ u8 ttl_r(offs_t offset);
u8 m_select;
u8 m_7seg_data;
@@ -242,7 +242,7 @@ INPUT_CHANGED_MEMBER(excel_state::speech_bankswitch)
m_speech_bank = (m_speech_bank & 1) | newval << 1;
}
-READ8_MEMBER(excel_state::speech_r)
+u8 excel_state::speech_r(offs_t offset)
{
// TSI A11 is A12, program controls A11, user controls A13,A14(language switches)
offset = (offset & 0x7ff) | (offset << 1 & 0x1000);
@@ -252,7 +252,7 @@ READ8_MEMBER(excel_state::speech_r)
// TTL
-WRITE8_MEMBER(excel_state::ttl_w)
+void excel_state::ttl_w(offs_t offset, u8 data)
{
// a0-a2,d0: 74259(1)
u8 mask = 1 << offset;
@@ -294,7 +294,7 @@ WRITE8_MEMBER(excel_state::ttl_w)
}
}
-READ8_MEMBER(excel_state::ttl_r)
+u8 excel_state::ttl_r(offs_t offset)
{
u8 sel = m_select & 0xf;
u8 d7 = 0x80;
diff --git a/src/mame/drivers/fidel_sc6.cpp b/src/mame/drivers/fidel_sc6.cpp
index 927f3a2928f..f396a449d19 100644
--- a/src/mame/drivers/fidel_sc6.cpp
+++ b/src/mame/drivers/fidel_sc6.cpp
@@ -69,11 +69,11 @@ private:
// I/O handlers
void update_display();
- DECLARE_WRITE8_MEMBER(mux_w);
- DECLARE_WRITE8_MEMBER(select_w);
+ void mux_w(u8 data);
+ void select_w(u8 data);
u8 read_inputs();
- DECLARE_READ8_MEMBER(input_r);
+ u8 input_r();
DECLARE_READ_LINE_MEMBER(input6_r);
DECLARE_READ_LINE_MEMBER(input7_r);
@@ -106,7 +106,7 @@ void sc6_state::update_display()
m_display->matrix(m_led_select, 1 << m_inp_mux);
}
-WRITE8_MEMBER(sc6_state::mux_w)
+void sc6_state::mux_w(u8 data)
{
// P24-P27: 7442 A-D
// 7442 0-8: input mux, 7seg data
@@ -117,7 +117,7 @@ WRITE8_MEMBER(sc6_state::mux_w)
m_dac->write(BIT(1 << m_inp_mux, 9));
}
-WRITE8_MEMBER(sc6_state::select_w)
+void sc6_state::select_w(u8 data)
{
// P16,P17: digit select
m_led_select = ~data >> 6 & 3;
@@ -139,7 +139,7 @@ u8 sc6_state::read_inputs()
return ~data;
}
-READ8_MEMBER(sc6_state::input_r)
+u8 sc6_state::input_r()
{
// P10-P15: multiplexed inputs low
return (read_inputs() & 0x3f) | 0xc0;
diff --git a/src/mame/drivers/fidel_vcc.cpp b/src/mame/drivers/fidel_vcc.cpp
index ffaededb2fe..3ea064afb4c 100644
--- a/src/mame/drivers/fidel_vcc.cpp
+++ b/src/mame/drivers/fidel_vcc.cpp
@@ -152,12 +152,12 @@ private:
// I/O handlers
void update_display();
- DECLARE_READ8_MEMBER(speech_r);
- DECLARE_WRITE8_MEMBER(ppi_porta_w);
- DECLARE_READ8_MEMBER(ppi_portb_r);
- DECLARE_WRITE8_MEMBER(ppi_portb_w);
- DECLARE_READ8_MEMBER(ppi_portc_r);
- DECLARE_WRITE8_MEMBER(ppi_portc_w);
+ u8 speech_r(offs_t offset);
+ void ppi_porta_w(u8 data);
+ u8 ppi_portb_r();
+ void ppi_portb_w(u8 data);
+ u8 ppi_portc_r();
+ void ppi_portc_w(u8 data);
u8 m_led_select;
u8 m_7seg_data;
@@ -199,7 +199,7 @@ void vcc_state::update_display()
m_display->matrix(m_led_select >> 2 & 0xf, outdata);
}
-READ8_MEMBER(vcc_state::speech_r)
+u8 vcc_state::speech_r(offs_t offset)
{
return m_speech_rom[m_speech_bank << 12 | offset];
}
@@ -207,7 +207,7 @@ READ8_MEMBER(vcc_state::speech_r)
// I8255 PPI
-WRITE8_MEMBER(vcc_state::ppi_porta_w)
+void vcc_state::ppi_porta_w(u8 data)
{
// d0-d6: digit segment data, bits are xABCDEFG
m_7seg_data = bitswap<8>(data,7,0,1,2,3,4,5,6);
@@ -227,13 +227,13 @@ WRITE8_MEMBER(vcc_state::ppi_porta_w)
}
}
-READ8_MEMBER(vcc_state::ppi_portb_r)
+u8 vcc_state::ppi_portb_r()
{
// d7: TSI BUSY line
return (m_speech->busy_r()) ? 0x80 : 0x00;
}
-WRITE8_MEMBER(vcc_state::ppi_portb_w)
+void vcc_state::ppi_portb_w(u8 data)
{
// d0,d2-d5: digit/led select
// _d6: enable language switches
@@ -241,7 +241,7 @@ WRITE8_MEMBER(vcc_state::ppi_portb_w)
update_display();
}
-READ8_MEMBER(vcc_state::ppi_portc_r)
+u8 vcc_state::ppi_portc_r()
{
u8 data = 0;
@@ -258,7 +258,7 @@ READ8_MEMBER(vcc_state::ppi_portc_r)
return ~data & 0xf;
}
-WRITE8_MEMBER(vcc_state::ppi_portc_w)
+void vcc_state::ppi_portc_w(u8 data)
{
// d4-d7: input mux (inverted)
m_inp_mux = ~data >> 4 & 0xf;
diff --git a/src/mame/drivers/fidel_vsc.cpp b/src/mame/drivers/fidel_vsc.cpp
index 7542d07aa62..5dba5bf8982 100644
--- a/src/mame/drivers/fidel_vsc.cpp
+++ b/src/mame/drivers/fidel_vsc.cpp
@@ -202,8 +202,8 @@ private:
// address maps
void main_map(address_map &map);
void main_io(address_map &map);
- DECLARE_READ8_MEMBER(main_io_trampoline_r);
- DECLARE_WRITE8_MEMBER(main_io_trampoline_w);
+ u8 main_io_trampoline_r(offs_t offset);
+ void main_io_trampoline_w(offs_t offset, u8 data);
// periodic interrupts
template TIMER_DEVICE_CALLBACK_MEMBER(irq_on) { m_maincpu->set_input_line(Line, ASSERT_LINE); }
@@ -211,13 +211,13 @@ private:
// I/O handlers
void update_display();
- DECLARE_READ8_MEMBER(speech_r);
- DECLARE_WRITE8_MEMBER(ppi_porta_w);
- DECLARE_WRITE8_MEMBER(ppi_portb_w);
- DECLARE_WRITE8_MEMBER(ppi_portc_w);
- DECLARE_READ8_MEMBER(pio_porta_r);
- DECLARE_READ8_MEMBER(pio_portb_r);
- DECLARE_WRITE8_MEMBER(pio_portb_w);
+ u8 speech_r(offs_t offset);
+ void ppi_porta_w(u8 data);
+ void ppi_portb_w(u8 data);
+ void ppi_portc_w(u8 data);
+ u8 pio_porta_r();
+ u8 pio_portb_r();
+ void pio_portb_w(u8 data);
u8 m_led_data;
u8 m_7seg_data;
@@ -260,7 +260,7 @@ void vsc_state::update_display()
m_display->matrix(m_cb_mux, m_led_data << 8 | m_7seg_data);
}
-READ8_MEMBER(vsc_state::speech_r)
+u8 vsc_state::speech_r(offs_t offset)
{
return m_speech_rom[m_speech_bank << 12 | offset];
}
@@ -268,7 +268,7 @@ READ8_MEMBER(vsc_state::speech_r)
// I8255 PPI
-WRITE8_MEMBER(vsc_state::ppi_porta_w)
+void vsc_state::ppi_porta_w(u8 data)
{
// d0-d5: TSI C0-C5
m_speech->data_w(data & 0x3f);
@@ -278,14 +278,14 @@ WRITE8_MEMBER(vsc_state::ppi_porta_w)
update_display();
}
-WRITE8_MEMBER(vsc_state::ppi_portb_w)
+void vsc_state::ppi_portb_w(u8 data)
{
// d0-d7: led row data
m_led_data = data;
update_display();
}
-WRITE8_MEMBER(vsc_state::ppi_portc_w)
+void vsc_state::ppi_portc_w(u8 data)
{
// d0-d3: select digits
// d0-d7: select leds, chessboard input mux
@@ -296,7 +296,7 @@ WRITE8_MEMBER(vsc_state::ppi_portc_w)
// Z80 PIO
-READ8_MEMBER(vsc_state::pio_porta_r)
+u8 vsc_state::pio_porta_r()
{
u8 data = 0;
@@ -318,7 +318,7 @@ READ8_MEMBER(vsc_state::pio_porta_r)
return data;
}
-READ8_MEMBER(vsc_state::pio_portb_r)
+u8 vsc_state::pio_portb_r()
{
u8 data = 0;
@@ -328,7 +328,7 @@ READ8_MEMBER(vsc_state::pio_portb_r)
return data;
}
-WRITE8_MEMBER(vsc_state::pio_portb_w)
+void vsc_state::pio_portb_w(u8 data)
{
// d0,d1: keypad input mux
// d5: enable language switch
@@ -361,7 +361,7 @@ void vsc_state::main_map(address_map &map)
}
// VSC io: A2 is 8255 _CE, A3 is Z80 PIO _CE - in theory, both chips can be accessed simultaneously
-READ8_MEMBER(vsc_state::main_io_trampoline_r)
+u8 vsc_state::main_io_trampoline_r(offs_t offset)
{
u8 data = 0xff; // open bus
if (~offset & 4)
@@ -372,7 +372,7 @@ READ8_MEMBER(vsc_state::main_io_trampoline_r)
return data;
}
-WRITE8_MEMBER(vsc_state::main_io_trampoline_w)
+void vsc_state::main_io_trampoline_w(offs_t offset, u8 data)
{
if (~offset & 4)
m_ppi8255->write(offset & 3, data);
diff --git a/src/mame/drivers/finalizr.cpp b/src/mame/drivers/finalizr.cpp
index 0e94cf52187..f02cf728002 100644
--- a/src/mame/drivers/finalizr.cpp
+++ b/src/mame/drivers/finalizr.cpp
@@ -65,7 +65,7 @@ WRITE8_MEMBER(finalizr_state::finalizr_i8039_irq_w)
m_audiocpu->set_input_line(0, ASSERT_LINE);
}
-WRITE8_MEMBER(finalizr_state::i8039_irqen_w)
+void finalizr_state::i8039_irqen_w(uint8_t data)
{
/* bit 0x80 goes active low, indicating that the
external IRQ being serviced is complete
diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp
index 0bc5e606678..81a2327f7c0 100644
--- a/src/mame/drivers/firebeat.cpp
+++ b/src/mame/drivers/firebeat.cpp
@@ -335,12 +335,12 @@ READ32_MEMBER(firebeat_state::ata_command_r )
// printf("ata_command_r: %08X, %08X\n", offset, mem_mask);
if (ACCESSING_BITS_16_31)
{
- r = m_ata->read_cs0(offset*2, BYTESWAP16((mem_mask >> 16) & 0xffff));
+ r = m_ata->cs0_r(offset*2, BYTESWAP16((mem_mask >> 16) & 0xffff));
return BYTESWAP16(r) << 16;
}
else
{
- r = m_ata->read_cs0((offset*2) + 1, BYTESWAP16((mem_mask >> 0) & 0xffff));
+ r = m_ata->cs0_r((offset*2) + 1, BYTESWAP16((mem_mask >> 0) & 0xffff));
return BYTESWAP16(r) << 0;
}
}
@@ -351,11 +351,11 @@ WRITE32_MEMBER(firebeat_state::ata_command_w )
if (ACCESSING_BITS_16_31)
{
- m_ata->write_cs0(offset*2, BYTESWAP16((data >> 16) & 0xffff), BYTESWAP16((mem_mask >> 16) & 0xffff));
+ m_ata->cs0_w(offset*2, BYTESWAP16((data >> 16) & 0xffff), BYTESWAP16((mem_mask >> 16) & 0xffff));
}
else
{
- m_ata->write_cs0((offset*2) + 1, BYTESWAP16((data >> 0) & 0xffff), BYTESWAP16((mem_mask >> 0) & 0xffff));
+ m_ata->cs0_w((offset*2) + 1, BYTESWAP16((data >> 0) & 0xffff), BYTESWAP16((mem_mask >> 0) & 0xffff));
}
}
@@ -367,12 +367,12 @@ READ32_MEMBER(firebeat_state::ata_control_r )
if (ACCESSING_BITS_16_31)
{
- r = m_ata->read_cs1(offset*2, BYTESWAP16((mem_mask >> 16) & 0xffff));
+ r = m_ata->cs1_r(offset*2, BYTESWAP16((mem_mask >> 16) & 0xffff));
return BYTESWAP16(r) << 16;
}
else
{
- r = m_ata->read_cs1((offset*2) + 1, BYTESWAP16((mem_mask >> 0) & 0xffff));
+ r = m_ata->cs1_r((offset*2) + 1, BYTESWAP16((mem_mask >> 0) & 0xffff));
return BYTESWAP16(r) << 0;
}
}
@@ -381,11 +381,11 @@ WRITE32_MEMBER(firebeat_state::ata_control_w )
{
if (ACCESSING_BITS_16_31)
{
- m_ata->write_cs1(offset*2, BYTESWAP16(data >> 16) & 0xffff, BYTESWAP16((mem_mask >> 16) & 0xffff));
+ m_ata->cs1_w(offset*2, BYTESWAP16(data >> 16) & 0xffff, BYTESWAP16((mem_mask >> 16) & 0xffff));
}
else
{
- m_ata->write_cs1((offset*2) + 1, BYTESWAP16(data >> 0) & 0xffff, BYTESWAP16((mem_mask >> 0) & 0xffff));
+ m_ata->cs1_w((offset*2) + 1, BYTESWAP16(data >> 0) & 0xffff, BYTESWAP16((mem_mask >> 0) & 0xffff));
}
}
diff --git a/src/mame/drivers/firefox.cpp b/src/mame/drivers/firefox.cpp
index 8e94da7359d..057cd731b97 100644
--- a/src/mame/drivers/firefox.cpp
+++ b/src/mame/drivers/firefox.cpp
@@ -96,8 +96,8 @@ private:
DECLARE_WRITE8_MEMBER(self_reset_w);
DECLARE_WRITE_LINE_MEMBER(coin_counter_right_w);
DECLARE_WRITE_LINE_MEMBER(coin_counter_left_w);
- DECLARE_READ8_MEMBER(riot_porta_r);
- DECLARE_WRITE8_MEMBER(riot_porta_w);
+ uint8_t riot_porta_r();
+ void riot_porta_w(uint8_t data);
TILE_GET_INFO_MEMBER(bgtile_get_info);
uint32_t screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(video_timer_callback);
@@ -345,7 +345,7 @@ WRITE_LINE_MEMBER(firefox_state::sound_reset_w)
*
*************************************/
-READ8_MEMBER(firefox_state::riot_porta_r)
+uint8_t firefox_state::riot_porta_r()
{
/* bit 7 = MAINFLAG */
/* bit 6 = SOUNDFLAG */
@@ -359,7 +359,7 @@ READ8_MEMBER(firefox_state::riot_porta_r)
return (m_soundlatch->pending_r() ? 0x80 : 0x00) | (m_soundlatch2->pending_r() ? 0x40 : 0x00) | 0x10 | (m_tms->readyq_r() << 2);
}
-WRITE8_MEMBER(firefox_state::riot_porta_w)
+void firefox_state::riot_porta_w(uint8_t data)
{
/* handle 5220 read */
m_tms->rsq_w((data>>1) & 1);
diff --git a/src/mame/drivers/flkatck.cpp b/src/mame/drivers/flkatck.cpp
index a184903a2be..972eaa21f96 100644
--- a/src/mame/drivers/flkatck.cpp
+++ b/src/mame/drivers/flkatck.cpp
@@ -188,7 +188,7 @@ static GFXDECODE_START( gfx_flkatck )
GFXDECODE_ENTRY( "gfx1", 0, gfxlayout, 0, 32 )
GFXDECODE_END
-WRITE8_MEMBER(flkatck_state::volume_callback)
+void flkatck_state::volume_callback(uint8_t data)
{
m_k007232->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11);
diff --git a/src/mame/drivers/fm7.cpp b/src/mame/drivers/fm7.cpp
index 30fe9cfb9d9..4db7f63ebb3 100644
--- a/src/mame/drivers/fm7.cpp
+++ b/src/mame/drivers/fm7.cpp
@@ -965,16 +965,6 @@ READ8_MEMBER(fm7_state::fm7_fmirq_r)
return ret;
}
-READ8_MEMBER(fm7_state::fm77av_joy_1_r)
-{
- return m_joy1->read();
-}
-
-READ8_MEMBER(fm7_state::fm77av_joy_2_r)
-{
- return m_joy2->read();
-}
-
READ8_MEMBER(fm7_state::fm7_unknown_r)
{
// Port 0xFDFC is read by Dig Dug. Controller port, perhaps?
@@ -2145,8 +2135,8 @@ void fm7_state::fm77av(machine_config &config)
SPEAKER(config, "mono").front_center();
YM2203(config, m_ym, 4.9152_MHz_XTAL / 4);
m_ym->irq_handler().set(FUNC(fm7_state::fm77av_fmirq));
- m_ym->port_a_read_callback().set(FUNC(fm7_state::fm77av_joy_1_r));
- m_ym->port_b_read_callback().set(FUNC(fm7_state::fm77av_joy_2_r));
+ m_ym->port_a_read_callback().set_ioport("joy1");
+ m_ym->port_b_read_callback().set_ioport("joy2");
m_ym->add_route(ALL_OUTPUTS,"mono", 1.00);
BEEP(config, "beeper", 1200).add_route(ALL_OUTPUTS, "mono", 0.50);
diff --git a/src/mame/drivers/fmtowns.cpp b/src/mame/drivers/fmtowns.cpp
index bea9210ef2f..c9988667c6a 100644
--- a/src/mame/drivers/fmtowns.cpp
+++ b/src/mame/drivers/fmtowns.cpp
@@ -656,12 +656,12 @@ WRITE8_MEMBER(towns_state::towns_floppy_w)
}
}
-READ16_MEMBER(towns_state::towns_fdc_dma_r)
+uint16_t towns_state::towns_fdc_dma_r()
{ uint16_t data = m_fdc->data_r();
return data;
}
-WRITE16_MEMBER(towns_state::towns_fdc_dma_w)
+void towns_state::towns_fdc_dma_w(uint16_t data)
{
m_fdc->data_w(data);
}
@@ -1734,7 +1734,7 @@ void towns_state::towns_cdrom_execute_command(cdrom_image_device* device)
}
}
-READ16_MEMBER(towns_state::towns_cdrom_dma_r)
+uint16_t towns_state::towns_cdrom_dma_r()
{
if(m_towns_cd.buffer_ptr >= 2048)
return 0x00;
@@ -2012,12 +2012,12 @@ WRITE_LINE_MEMBER(towns_state::rtc_busy_w)
}
// SCSI controller - I/O ports 0xc30 and 0xc32
-READ16_MEMBER(towns_state::towns_scsi_dma_r)
+uint16_t towns_state::towns_scsi_dma_r()
{
return m_scsi->fmscsi_data_r();
}
-WRITE16_MEMBER(towns_state::towns_scsi_dma_w)
+void towns_state::towns_scsi_dma_w(uint16_t data)
{
m_scsi->fmscsi_data_w(data & 0xff);
}
@@ -2783,7 +2783,7 @@ void towns_state::machine_reset()
m_towns_fm_irq_flag = 0;
}
-READ8_MEMBER(towns_state::get_slave_ack)
+uint8_t towns_state::get_slave_ack(offs_t offset)
{
if (offset==7) { // IRQ = 7
return m_pic_slave->acknowledge();
diff --git a/src/mame/drivers/foodf.cpp b/src/mame/drivers/foodf.cpp
index d23a6b336bb..6f3f3ce2e85 100644
--- a/src/mame/drivers/foodf.cpp
+++ b/src/mame/drivers/foodf.cpp
@@ -326,7 +326,7 @@ GFXDECODE_END
*
*************************************/
-READ8_MEMBER(foodf_state::pot_r)
+uint8_t foodf_state::pot_r(offs_t offset)
{
return (ioport("DSW")->read() >> offset) << 7;
}
diff --git a/src/mame/drivers/forte2.cpp b/src/mame/drivers/forte2.cpp
index ff12238af46..b9ffadaca49 100644
--- a/src/mame/drivers/forte2.cpp
+++ b/src/mame/drivers/forte2.cpp
@@ -55,14 +55,16 @@ public:
void init_pesadelo();
void pesadelo(machine_config &config);
-private:
+protected:
virtual void machine_start() override;
virtual void machine_reset() override;
+
+private:
void io_mem(address_map &map);
void program_mem(address_map &map);
- DECLARE_READ8_MEMBER(ay8910_read_input);
- DECLARE_WRITE8_MEMBER(ay8910_set_input_mask);
+ uint8_t ay8910_read_input();
+ void ay8910_set_input_mask(uint8_t data);
required_device m_maincpu;
@@ -101,12 +103,12 @@ static INPUT_PORTS_START( pesadelo )
INPUT_PORTS_END
-READ8_MEMBER(forte2_state::ay8910_read_input)
+uint8_t forte2_state::ay8910_read_input()
{
return ioport("IN0")->read() | (m_input_mask & 0x3f);
}
-WRITE8_MEMBER(forte2_state::ay8910_set_input_mask)
+void forte2_state::ay8910_set_input_mask(uint8_t data)
{
/* PSG reg 15, writes 0 at coin insert, 0xff at boot and game over */
m_input_mask = data;
diff --git a/src/mame/drivers/fruitpc.cpp b/src/mame/drivers/fruitpc.cpp
index af5436ecd82..1987638c7d8 100644
--- a/src/mame/drivers/fruitpc.cpp
+++ b/src/mame/drivers/fruitpc.cpp
@@ -38,14 +38,14 @@ private:
required_device m_isabus;
required_ioport_array<4> m_inp;
- DECLARE_READ8_MEMBER(fruit_inp_r);
- DECLARE_WRITE8_MEMBER(dma8237_1_dack_w);
+ uint8_t fruit_inp_r(offs_t offset);
+ void dma8237_1_dack_w(uint8_t data);
static void fruitpc_sb_conf(device_t *device);
void fruitpc_io(address_map &map);
void fruitpc_map(address_map &map);
};
-READ8_MEMBER(fruitpc_state::fruit_inp_r)
+uint8_t fruitpc_state::fruit_inp_r(offs_t offset)
{
return m_inp[offset & 0x03]->read();
}
@@ -98,7 +98,7 @@ static INPUT_PORTS_START( fruitpc )
INPUT_PORTS_END
//TODO: use atmb device
-WRITE8_MEMBER( fruitpc_state::dma8237_1_dack_w ){ m_isabus->dack_w(1, data); }
+void fruitpc_state::dma8237_1_dack_w(uint8_t data) { m_isabus->dack_w(1, data); }
static void fruitpc_isa8_cards(device_slot_interface &device)
{
diff --git a/src/mame/drivers/funworld.cpp b/src/mame/drivers/funworld.cpp
index e31ae730960..c399dbb34c6 100644
--- a/src/mame/drivers/funworld.cpp
+++ b/src/mame/drivers/funworld.cpp
@@ -658,7 +658,7 @@
* Read/Write Handlers *
**********************/
-WRITE8_MEMBER(funworld_state::funworld_lamp_a_w)
+void funworld_state::funworld_lamp_a_w(uint8_t data)
{
/* - bits -
7654 3210
@@ -686,7 +686,7 @@ WRITE8_MEMBER(funworld_state::funworld_lamp_a_w)
// popmessage("Lamps A: %02X", (data ^ 0xff));
}
-WRITE8_MEMBER(funworld_state::funworld_lamp_b_w)
+void funworld_state::funworld_lamp_b_w(uint8_t data)
{
/* - bits -
7654 3210
@@ -2966,12 +2966,12 @@ GFXDECODE_END
*/
/* these ports are set to output anyway, but this quietens the log */
-READ8_MEMBER(funworld_state::funquiz_ay8910_a_r)
+uint8_t funworld_state::funquiz_ay8910_a_r()
{
return 0x00;
}
-READ8_MEMBER(funworld_state::funquiz_ay8910_b_r)
+uint8_t funworld_state::funquiz_ay8910_b_r()
{
return 0x00;
}
diff --git a/src/mame/drivers/gaelco3d.cpp b/src/mame/drivers/gaelco3d.cpp
index effd653945a..90009bc79d7 100644
--- a/src/mame/drivers/gaelco3d.cpp
+++ b/src/mame/drivers/gaelco3d.cpp
@@ -388,7 +388,7 @@ WRITE32_MEMBER(gaelco3d_state::tms_m68k_ram_w)
}
-WRITE8_MEMBER(gaelco3d_state::tms_iack_w)
+void gaelco3d_state::tms_iack_w(offs_t offset, uint8_t data)
{
if (LOG)
logerror("iack_w(%d) - %06X\n", data, offset);
@@ -551,7 +551,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(gaelco3d_state::adsp_autobuffer_irq)
m_adsp->set_state_int(ADSP2100_I0 + m_adsp_ireg, reg);
}
-WRITE32_MEMBER(gaelco3d_state::adsp_tx_callback)
+void gaelco3d_state::adsp_tx_callback(offs_t offset, uint32_t data)
{
/* check if it's for SPORT1 */
if (offset != 1)
diff --git a/src/mame/drivers/galaga.cpp b/src/mame/drivers/galaga.cpp
index 6c3a47d90bb..83523b472ea 100644
--- a/src/mame/drivers/galaga.cpp
+++ b/src/mame/drivers/galaga.cpp
@@ -759,7 +759,7 @@ WRITE_LINE_MEMBER(galaga_state::nmion_w)
m_sub2_nmi_mask = !state;
}
-WRITE8_MEMBER(galaga_state::out)
+void galaga_state::out(uint8_t data)
{
m_leds[1] = BIT(data, 0);
m_leds[0] = BIT(data, 1);
@@ -772,7 +772,7 @@ WRITE_LINE_MEMBER(galaga_state::lockout)
machine().bookkeeping().coin_lockout_global_w(state);
}
-READ8_MEMBER(galaga_state::namco_52xx_rom_r)
+uint8_t galaga_state::namco_52xx_rom_r(offs_t offset)
{
uint32_t length = memregion("52xx")->bytes();
//printf("ROM read %04X\n", offset);
@@ -787,7 +787,7 @@ READ8_MEMBER(galaga_state::namco_52xx_rom_r)
return (offset < length) ? memregion("52xx")->base()[offset] : 0xff;
}
-READ8_MEMBER(galaga_state::namco_52xx_si_r)
+uint8_t galaga_state::namco_52xx_si_r()
{
/* pulled to GND */
return 0;
diff --git a/src/mame/drivers/galaxian.cpp b/src/mame/drivers/galaxian.cpp
index 962de624fa0..caafede0388 100644
--- a/src/mame/drivers/galaxian.cpp
+++ b/src/mame/drivers/galaxian.cpp
@@ -770,7 +770,7 @@ WRITE8_MEMBER(galaxian_state::konami_ay8910_w)
}
-WRITE8_MEMBER(galaxian_state::konami_sound_control_w)
+void galaxian_state::konami_sound_control_w(uint8_t data)
{
uint8_t old = m_konami_sound_control;
m_konami_sound_control = data;
@@ -785,7 +785,7 @@ WRITE8_MEMBER(galaxian_state::konami_sound_control_w)
}
-READ8_MEMBER(galaxian_state::konami_sound_timer_r)
+uint8_t galaxian_state::konami_sound_timer_r()
{
/*
The timer is clocked at KONAMI_SOUND_CLOCK and cascades through a
@@ -845,13 +845,13 @@ WRITE8_MEMBER(galaxian_state::konami_sound_filter_w)
}
-WRITE8_MEMBER(galaxian_state::konami_portc_0_w)
+void galaxian_state::konami_portc_0_w(uint8_t data)
{
logerror("%s:ppi0_portc_w = %02X\n", machine().describe_context(), data);
}
-WRITE8_MEMBER(galaxian_state::konami_portc_1_w)
+void galaxian_state::konami_portc_1_w(uint8_t data)
{
logerror("%s:ppi1_portc_w = %02X\n", machine().describe_context(), data);
}
@@ -881,13 +881,13 @@ WRITE8_MEMBER(galaxian_state::theend_ppi8255_w)
}
-WRITE8_MEMBER(galaxian_state::theend_coin_counter_w)
+void galaxian_state::theend_coin_counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, data & 0x80);
}
-WRITE8_MEMBER(galaxian_state::theend_protection_w)
+void galaxian_state::theend_protection_w(uint8_t data)
{
/*
Handled by a PAL16VR8(?) at 6J. Both inputs and outputs are a nibble.
@@ -926,7 +926,7 @@ WRITE8_MEMBER(galaxian_state::theend_protection_w)
}
-READ8_MEMBER(galaxian_state::theend_protection_r)
+uint8_t galaxian_state::theend_protection_r()
{
return m_protection_result;
}
@@ -954,7 +954,7 @@ WRITE8_MEMBER(galaxian_state::explorer_sound_control_w)
}
-READ8_MEMBER(galaxian_state::explorer_sound_latch_r)
+uint8_t galaxian_state::explorer_sound_latch_r()
{
m_audiocpu->set_input_line(0, CLEAR_LINE);
return m_soundlatch->read();
@@ -985,7 +985,7 @@ WRITE8_MEMBER(galaxian_state::sfx_sample_io_w)
}
-WRITE8_MEMBER(galaxian_state::sfx_sample_control_w)
+void galaxian_state::sfx_sample_control_w(uint8_t data)
{
uint8_t old = m_sfx_sample_control;
m_sfx_sample_control = data;
@@ -1030,7 +1030,7 @@ void galaxian_state::monsterz_set_latch()
}
-WRITE8_MEMBER(galaxian_state::monsterz_porta_1_w)
+void galaxian_state::monsterz_porta_1_w(uint8_t data)
{
// d7 high: set latch + advance address high bits (and reset low bits?)
if (data & 0x80)
@@ -1040,7 +1040,7 @@ WRITE8_MEMBER(galaxian_state::monsterz_porta_1_w)
}
}
-WRITE8_MEMBER(galaxian_state::monsterz_portb_1_w)
+void galaxian_state::monsterz_portb_1_w(uint8_t data)
{
// d3 high: set latch + advance address low bits
if (data & 0x08)
@@ -1050,7 +1050,7 @@ WRITE8_MEMBER(galaxian_state::monsterz_portb_1_w)
}
}
-WRITE8_MEMBER(galaxian_state::monsterz_portc_1_w)
+void galaxian_state::monsterz_portc_1_w(uint8_t data)
{
}
@@ -1098,10 +1098,10 @@ WRITE8_MEMBER(galaxian_state::frogger_ay8910_w)
}
-READ8_MEMBER(galaxian_state::frogger_sound_timer_r)
+uint8_t galaxian_state::frogger_sound_timer_r()
{
/* same as regular Konami sound but with bits 3,5 swapped */
- uint8_t konami_value = konami_sound_timer_r(space, 0);
+ uint8_t konami_value = konami_sound_timer_r();
return bitswap<8>(konami_value, 7,6,3,4,5,2,1,0);
}
@@ -1186,7 +1186,7 @@ WRITE8_MEMBER(galaxian_state::scorpion_ay8910_w)
}
-READ8_MEMBER(galaxian_state::scorpion_protection_r)
+uint8_t galaxian_state::scorpion_protection_r()
{
uint16_t paritybits;
uint8_t parity = 0;
@@ -1201,7 +1201,7 @@ READ8_MEMBER(galaxian_state::scorpion_protection_r)
}
-WRITE8_MEMBER(galaxian_state::scorpion_protection_w)
+void galaxian_state::scorpion_protection_w(uint8_t data)
{
/* bit 5 low is a reset */
if (!(data & 0x20))
@@ -1211,7 +1211,7 @@ WRITE8_MEMBER(galaxian_state::scorpion_protection_w)
if (!(data & 0x10))
{
/* each clock shifts left one bit and ORs in the inverse of the parity */
- m_protection_state = (m_protection_state << 1) | (~scorpion_protection_r(space, 0) & 1);
+ m_protection_state = (m_protection_state << 1) | (~scorpion_protection_r() & 1);
}
}
@@ -1220,7 +1220,7 @@ READ8_MEMBER(galaxian_state::scorpion_digitalker_intr_r)
return m_digitalker->digitalker_0_intr_r();
}
-WRITE8_MEMBER(galaxian_state::scorpion_digitalker_control_w)
+void galaxian_state::scorpion_digitalker_control_w(uint8_t data)
{
m_digitalker->digitalker_0_cs_w(data & 1 ? ASSERT_LINE : CLEAR_LINE);
m_digitalker->digitalker_0_cms_w(data & 2 ? ASSERT_LINE : CLEAR_LINE);
@@ -1486,7 +1486,7 @@ READ8_MEMBER(galaxian_state::dingoe_3001_r)
*
*************************************/
-WRITE8_MEMBER(galaxian_state::moonwar_port_select_w)
+void galaxian_state::moonwar_port_select_w(uint8_t data)
{
m_moonwar_port_select = data & 0x10;
}
diff --git a/src/mame/drivers/gameplan.cpp b/src/mame/drivers/gameplan.cpp
index 8e63b24593b..fbb59b0cd2b 100644
--- a/src/mame/drivers/gameplan.cpp
+++ b/src/mame/drivers/gameplan.cpp
@@ -91,7 +91,7 @@ TODO:
*
*************************************/
-WRITE8_MEMBER(gameplan_state::io_select_w)
+void gameplan_state::io_select_w(uint8_t data)
{
switch (data)
{
@@ -105,7 +105,7 @@ WRITE8_MEMBER(gameplan_state::io_select_w)
}
-READ8_MEMBER(gameplan_state::io_port_r)
+uint8_t gameplan_state::io_port_r()
{
static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3", "DSW0", "DSW1" };
@@ -138,7 +138,7 @@ WRITE_LINE_MEMBER(gameplan_state::audio_reset_w)
}
-WRITE8_MEMBER(gameplan_state::audio_cmd_w)
+void gameplan_state::audio_cmd_w(uint8_t data)
{
m_riot->porta_in_set(data, 0x7f);
}
@@ -165,11 +165,6 @@ WRITE_LINE_MEMBER(gameplan_state::r6532_irq)
}
-WRITE8_MEMBER(gameplan_state::r6532_soundlatch_w)
-{
- m_soundlatch->write(data);
-}
-
/*************************************
*
@@ -967,7 +962,7 @@ void gameplan_state::gameplan(machine_config &config)
m_audiocpu->set_addrmap(AS_PROGRAM, &gameplan_state::gameplan_audio_map);
RIOT6532(config, m_riot, GAMEPLAN_AUDIO_CPU_CLOCK);
- m_riot->out_pb_callback().set(FUNC(gameplan_state::r6532_soundlatch_w));
+ m_riot->out_pb_callback().set(m_soundlatch, FUNC(generic_latch_8_device::write));
m_riot->irq_callback().set(FUNC(gameplan_state::r6532_irq));
/* video hardware */
diff --git a/src/mame/drivers/gaplus.cpp b/src/mame/drivers/gaplus.cpp
index 8c0630c1db3..3188074a7e9 100644
--- a/src/mame/drivers/gaplus.cpp
+++ b/src/mame/drivers/gaplus.cpp
@@ -484,7 +484,7 @@ static const char *const gaplus_sample_names[] =
***************************************************************************/
-WRITE8_MEMBER(gaplus_state::out_lamps0)
+void gaplus_state::out_lamps0(uint8_t data)
{
m_lamps[0] = BIT(data, 0);
m_lamps[1] = BIT(data, 1);
@@ -492,7 +492,7 @@ WRITE8_MEMBER(gaplus_state::out_lamps0)
machine().bookkeeping().coin_counter_w(0, ~data & 8);
}
-WRITE8_MEMBER(gaplus_state::out_lamps1)
+void gaplus_state::out_lamps1(uint8_t data)
{
machine().bookkeeping().coin_counter_w(1, ~data & 1);
}
diff --git a/src/mame/drivers/gatron.cpp b/src/mame/drivers/gatron.cpp
index 78c4691b1c3..ac428dd0e67 100644
--- a/src/mame/drivers/gatron.cpp
+++ b/src/mame/drivers/gatron.cpp
@@ -345,7 +345,7 @@
* Read/Write Handlers *
****************************/
-WRITE8_MEMBER(gatron_state::output_port_0_w)
+void gatron_state::output_port_0_w(uint8_t data)
{
/*---------------
Poker 4-1 lamps
@@ -422,7 +422,7 @@ WRITE8_MEMBER(gatron_state::output_port_0_w)
}
-WRITE8_MEMBER(gatron_state::output_port_1_w)
+void gatron_state::output_port_1_w(uint8_t data)
{
/*----------------
Lamps & Counters
diff --git a/src/mame/drivers/ghosteo.cpp b/src/mame/drivers/ghosteo.cpp
index 61c4e0dbf31..628fa176224 100644
--- a/src/mame/drivers/ghosteo.cpp
+++ b/src/mame/drivers/ghosteo.cpp
@@ -122,20 +122,20 @@ private:
DECLARE_READ32_MEMBER(bballoon_speedup_r);
DECLARE_READ32_MEMBER(touryuu_port_10000000_r);
- DECLARE_WRITE8_MEMBER(qs1000_p1_w);
- DECLARE_WRITE8_MEMBER(qs1000_p2_w);
- DECLARE_WRITE8_MEMBER(qs1000_p3_w);
+ void qs1000_p1_w(uint8_t data);
+ void qs1000_p2_w(uint8_t data);
+ void qs1000_p3_w(uint8_t data);
int m_rom_pagesize;
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ32_MEMBER(s3c2410_gpio_port_r);
- DECLARE_WRITE32_MEMBER(s3c2410_gpio_port_w);
- DECLARE_READ32_MEMBER(s3c2410_core_pin_r);
- DECLARE_WRITE8_MEMBER(s3c2410_nand_command_w );
- DECLARE_WRITE8_MEMBER(s3c2410_nand_address_w );
- DECLARE_READ8_MEMBER(s3c2410_nand_data_r );
- DECLARE_WRITE8_MEMBER(s3c2410_nand_data_w );
+ uint32_t s3c2410_gpio_port_r(offs_t offset);
+ void s3c2410_gpio_port_w(offs_t offset, uint32_t data);
+ uint32_t s3c2410_core_pin_r(offs_t offset);
+ void s3c2410_nand_command_w(uint8_t data);
+ void s3c2410_nand_address_w(uint8_t data);
+ uint8_t s3c2410_nand_data_r();
+ void s3c2410_nand_data_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(s3c2410_i2c_scl_w );
DECLARE_READ_LINE_MEMBER(s3c2410_i2c_sda_r );
DECLARE_WRITE_LINE_MEMBER(s3c2410_i2c_sda_w );
@@ -168,15 +168,15 @@ NAND Flash Controller (4KB internal buffer)
24-ch external interrupts Controller (Wake-up source 16-ch)
*/
-WRITE8_MEMBER( ghosteo_state::qs1000_p1_w )
+void ghosteo_state::qs1000_p1_w(uint8_t data)
{
}
-WRITE8_MEMBER( ghosteo_state::qs1000_p2_w )
+void ghosteo_state::qs1000_p2_w(uint8_t data)
{
}
-WRITE8_MEMBER( ghosteo_state::qs1000_p3_w )
+void ghosteo_state::qs1000_p3_w(uint8_t data)
{
// .... .xxx - Data ROM bank (64kB)
// ...x .... - ?
@@ -193,7 +193,7 @@ WRITE8_MEMBER( ghosteo_state::qs1000_p3_w )
static const uint8_t security_data[] = { 0x01, 0xC4, 0xFF, 0x22, 0xFF, 0xFF, 0xFF, 0xFF };
-READ32_MEMBER(ghosteo_state::s3c2410_gpio_port_r)
+uint32_t ghosteo_state::s3c2410_gpio_port_r(offs_t offset)
{
uint32_t data = m_bballoon_port[offset];
switch (offset)
@@ -213,7 +213,7 @@ READ32_MEMBER(ghosteo_state::s3c2410_gpio_port_r)
return data;
}
-WRITE32_MEMBER(ghosteo_state::s3c2410_gpio_port_w)
+void ghosteo_state::s3c2410_gpio_port_w(offs_t offset, uint32_t data)
{
uint32_t old_value = m_bballoon_port[offset];
m_bballoon_port[offset] = data;
@@ -258,7 +258,7 @@ NCON : NAND flash memory address step selection
*/
-READ32_MEMBER(ghosteo_state::s3c2410_core_pin_r)
+uint32_t ghosteo_state::s3c2410_core_pin_r(offs_t offset)
{
int data = 0;
switch (offset)
@@ -272,7 +272,7 @@ READ32_MEMBER(ghosteo_state::s3c2410_core_pin_r)
// NAND
-WRITE8_MEMBER(ghosteo_state::s3c2410_nand_command_w )
+void ghosteo_state::s3c2410_nand_command_w(uint8_t data)
{
struct nand_t &nand = m_nand;
#if NAND_LOG
@@ -296,7 +296,7 @@ WRITE8_MEMBER(ghosteo_state::s3c2410_nand_command_w )
}
}
-WRITE8_MEMBER(ghosteo_state::s3c2410_nand_address_w )
+void ghosteo_state::s3c2410_nand_address_w(uint8_t data)
{
struct nand_t &nand = m_nand;
#if NAND_LOG
@@ -330,7 +330,7 @@ WRITE8_MEMBER(ghosteo_state::s3c2410_nand_address_w )
}
}
-READ8_MEMBER(ghosteo_state::s3c2410_nand_data_r )
+uint8_t ghosteo_state::s3c2410_nand_data_r()
{
struct nand_t &nand = m_nand;
uint8_t data = 0;
@@ -376,7 +376,7 @@ READ8_MEMBER(ghosteo_state::s3c2410_nand_data_r )
return data;
}
-WRITE8_MEMBER(ghosteo_state::s3c2410_nand_data_w )
+void ghosteo_state::s3c2410_nand_data_w(uint8_t data)
{
#if NAND_LOG
logerror( "s3c2410_nand_data_w %02X\n", data);
diff --git a/src/mame/drivers/gmaster.cpp b/src/mame/drivers/gmaster.cpp
index 578c4373e6d..76e5f116817 100644
--- a/src/mame/drivers/gmaster.cpp
+++ b/src/mame/drivers/gmaster.cpp
@@ -34,17 +34,17 @@ public:
private:
void gmaster_palette(palette_device &palette) const;
- DECLARE_READ8_MEMBER(gmaster_io_r);
- DECLARE_WRITE8_MEMBER(gmaster_io_w);
- DECLARE_READ8_MEMBER(gmaster_portb_r);
- DECLARE_READ8_MEMBER(gmaster_portc_r);
- DECLARE_READ8_MEMBER(gmaster_portd_r);
- DECLARE_READ8_MEMBER(gmaster_portf_r);
- DECLARE_WRITE8_MEMBER(gmaster_porta_w);
- DECLARE_WRITE8_MEMBER(gmaster_portb_w);
- DECLARE_WRITE8_MEMBER(gmaster_portc_w);
- DECLARE_WRITE8_MEMBER(gmaster_portd_w);
- DECLARE_WRITE8_MEMBER(gmaster_portf_w);
+ uint8_t gmaster_io_r(offs_t offset);
+ void gmaster_io_w(offs_t offset, uint8_t data);
+ uint8_t gmaster_portb_r();
+ uint8_t gmaster_portc_r();
+ uint8_t gmaster_portd_r();
+ uint8_t gmaster_portf_r();
+ void gmaster_porta_w(uint8_t data);
+ void gmaster_portb_w(uint8_t data);
+ void gmaster_portc_w(uint8_t data);
+ void gmaster_portd_w(uint8_t data);
+ void gmaster_portf_w(uint8_t data);
uint32_t screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void gmaster_mem(address_map &map);
@@ -68,7 +68,7 @@ private:
};
-READ8_MEMBER(gmaster_state::gmaster_io_r)
+uint8_t gmaster_state::gmaster_io_r(offs_t offset)
{
uint8_t data = 0;
@@ -101,7 +101,7 @@ READ8_MEMBER(gmaster_state::gmaster_io_r)
#define BLITTER_Y ((m_ports[2]&4)|(m_video.data[0]&3))
-WRITE8_MEMBER(gmaster_state::gmaster_io_w)
+void gmaster_state::gmaster_io_w(offs_t offset, uint8_t data)
{
if (m_ports[2] & 1)
{
@@ -164,7 +164,7 @@ WRITE8_MEMBER(gmaster_state::gmaster_io_w)
}
-READ8_MEMBER(gmaster_state::gmaster_portb_r)
+uint8_t gmaster_state::gmaster_portb_r()
{
// uint8_t data = m_ports[1];
uint8_t data = 0xff;
@@ -174,7 +174,7 @@ READ8_MEMBER(gmaster_state::gmaster_portb_r)
return data;
}
-READ8_MEMBER(gmaster_state::gmaster_portc_r)
+uint8_t gmaster_state::gmaster_portc_r()
{
// uint8_t data = m_ports[2];
uint8_t data = 0xff;
@@ -184,7 +184,7 @@ READ8_MEMBER(gmaster_state::gmaster_portc_r)
return data;
}
-READ8_MEMBER(gmaster_state::gmaster_portd_r)
+uint8_t gmaster_state::gmaster_portd_r()
{
// uint8_t data = m_ports[3];
uint8_t data = 0xff;
@@ -194,7 +194,7 @@ READ8_MEMBER(gmaster_state::gmaster_portd_r)
return data;
}
-READ8_MEMBER(gmaster_state::gmaster_portf_r)
+uint8_t gmaster_state::gmaster_portf_r()
{
// uint8_t data = m_ports[4];
uint8_t data = 0xff;
@@ -205,19 +205,19 @@ READ8_MEMBER(gmaster_state::gmaster_portf_r)
}
-WRITE8_MEMBER(gmaster_state::gmaster_porta_w)
+void gmaster_state::gmaster_porta_w(uint8_t data)
{
m_ports[0] = data;
logerror("%.4x port A written %.2x\n", m_maincpu->pc(), data);
}
-WRITE8_MEMBER(gmaster_state::gmaster_portb_w)
+void gmaster_state::gmaster_portb_w(uint8_t data)
{
m_ports[1] = data;
logerror("%.4x port B written %.2x\n", m_maincpu->pc(), data);
}
-WRITE8_MEMBER(gmaster_state::gmaster_portc_w)
+void gmaster_state::gmaster_portc_w(uint8_t data)
{
m_ports[2] = data;
logerror("%.4x port C written %.2x\n", m_maincpu->pc(), data);
@@ -226,13 +226,13 @@ WRITE8_MEMBER(gmaster_state::gmaster_portc_w)
m_speaker->level_w(BIT(data, 4));
}
-WRITE8_MEMBER(gmaster_state::gmaster_portd_w)
+void gmaster_state::gmaster_portd_w(uint8_t data)
{
m_ports[3] = data;
logerror("%.4x port D written %.2x\n", m_maincpu->pc(), data);
}
-WRITE8_MEMBER(gmaster_state::gmaster_portf_w)
+void gmaster_state::gmaster_portf_w(uint8_t data)
{
m_ports[4] = data;
logerror("%.4x port F written %.2x\n", m_maincpu->pc(), data);
diff --git a/src/mame/drivers/goldart.cpp b/src/mame/drivers/goldart.cpp
index cd2387a53f0..b7d4601ee19 100644
--- a/src/mame/drivers/goldart.cpp
+++ b/src/mame/drivers/goldart.cpp
@@ -70,8 +70,8 @@ private:
required_device m_palette;
required_region_ptr m_data;
- DECLARE_WRITE8_MEMBER(mcu_port1_w);
- DECLARE_READ8_MEMBER(mcu_port1_r);
+ void mcu_port1_w(uint8_t data);
+ uint8_t mcu_port1_r();
uint32_t screen_update_goldart(screen_device& screen, bitmap_ind16& bitmap, const rectangle& cliprect);
@@ -87,13 +87,13 @@ private:
DECLARE_WRITE8_MEMBER(hostmem_w);
};
-WRITE8_MEMBER(goldart_state::mcu_port1_w)
+void goldart_state::mcu_port1_w(uint8_t data)
{
logerror("%s: mcu_port1_w %02x\n", machine().describe_context(), data);
m_port1 = data;
}
-READ8_MEMBER(goldart_state::mcu_port1_r)
+uint8_t goldart_state::mcu_port1_r()
{
uint8_t ret = m_port1;
logerror("%s: mcu_port1_r %02x\n", machine().describe_context(), ret);
diff --git a/src/mame/drivers/goldstar.cpp b/src/mame/drivers/goldstar.cpp
index 50a9ffe1de9..300d8b799f0 100644
--- a/src/mame/drivers/goldstar.cpp
+++ b/src/mame/drivers/goldstar.cpp
@@ -1106,7 +1106,7 @@ WRITE8_MEMBER(wingco_state::magodds_outb860_w)
// popmessage("magodds_outb860_w %02x\n", data);
}
-WRITE8_MEMBER(wingco_state::fl7w4_outc802_w)
+void wingco_state::fl7w4_outc802_w(uint8_t data)
{
m_fl7w4_id->write((data >> 6) & 0x01);
}
@@ -8509,19 +8509,19 @@ static GFXDECODE_START( gfx_cm97 )
GFXDECODE_END
-WRITE8_MEMBER(wingco_state::system_outputa_w)
+void wingco_state::system_outputa_w(uint8_t data)
{
//popmessage("system_outputa_w %02x",data);
}
-WRITE8_MEMBER(wingco_state::system_outputb_w)
+void wingco_state::system_outputb_w(uint8_t data)
{
//popmessage("system_outputb_w %02x",data);
}
-WRITE8_MEMBER(wingco_state::system_outputc_w)
+void wingco_state::system_outputc_w(uint8_t data)
{
m_nmi_enable = data & 8;
m_vidreg = data & 2;
@@ -8531,12 +8531,12 @@ WRITE8_MEMBER(wingco_state::system_outputc_w)
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
-WRITE8_MEMBER(goldstar_state::ay8910_outputa_w)
+void goldstar_state::ay8910_outputa_w(uint8_t data)
{
//popmessage("ay8910_outputa_w %02x",data);
}
-WRITE8_MEMBER(goldstar_state::ay8910_outputb_w)
+void goldstar_state::ay8910_outputb_w(uint8_t data)
{
//popmessage("ay8910_outputb_w %02x",data);
}
@@ -16773,31 +16773,6 @@ ROM_END
ROM_START( cmtetrsa )
ROM_REGION( 0x20000, "maincpu", 0 )
ROM_LOAD( "cm89-tetri-9.u81", 0x10000, 0x10000, CRC(75e0c101) SHA1(6dc4f7c43f0f4e21d621f3c42cb1709d6b730c53) )
-/*
- Need checks and fixes
-
- 3800+ --> 5800+
- 9800+ --> 3800+
-
-*/
-// ROM_COPY( "maincpu", 0x1c000, 0x0000, 0x1000 ) /* src-dest-size ok */
-// ROM_COPY( "maincpu", 0x16000, 0x1000, 0x1000 ) /* src-dest-size ok */
-// ROM_COPY( "maincpu", 0x14000, 0x2000, 0x1000 ) /* src-dest-size ok */
-// ROM_COPY( "maincpu", 0x1a000, 0x3000, 0x1000 ) /* src-dest-size ok (some calls to high 5xxx appear here, maybe split in 0x800?) */
-// ROM_COPY( "maincpu", 0x15000, 0x4000, 0x1000 ) /* src-dest-size ok */
-// ROM_COPY( "maincpu", 0x11000, 0x6000, 0x1000 ) /* src-dest-size ok */
-// ROM_COPY( "maincpu", 0x13000, 0x8000, 0x1000 ) /* src-dest-size ok */
-
-// ROM_COPY( "maincpu", 0x17000, 0x5000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x10000, 0x7000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x18000, 0x9000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x19000, 0xa000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x12000, 0xb000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x1b000, 0xc000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x1d000, 0xd000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x1e000, 0xe000, 0x1000 ) /* src-dest-size */
-// ROM_COPY( "maincpu", 0x1f000, 0xf000, 0x1000 ) /* src-dest-size */
-
ROM_COPY( "maincpu", 0x1c000, 0x0000, 0x0800 ) /* src-dest-size */ // #01
ROM_COPY( "maincpu", 0x19800, 0x0800, 0x0800 ) /* src-dest-size */ // #02
ROM_COPY( "maincpu", 0x16000, 0x1000, 0x0800 ) /* src-dest-size */ // #03
@@ -16807,14 +16782,14 @@ ROM_START( cmtetrsa )
ROM_COPY( "maincpu", 0x1a000, 0x3000, 0x0800 ) /* src-dest-size */ // #07
ROM_COPY( "maincpu", 0x18800, 0x3800, 0x0800 ) /* src-dest-size */ // #08
ROM_COPY( "maincpu", 0x10000, 0x4000, 0x0800 ) /* src-dest-size */ // #09
- ROM_COPY( "maincpu", 0x15000, 0x4800, 0x0800 ) /* src-dest-size */ // #10
- ROM_COPY( "maincpu", 0x14800, 0x5000, 0x0800 ) /* src-dest-size */ // #11
+ ROM_COPY( "maincpu", 0x15800, 0x4800, 0x0800 ) /* src-dest-size */ // #10
+ ROM_COPY( "maincpu", 0x13000, 0x5000, 0x0800 ) /* src-dest-size */ // #11
ROM_COPY( "maincpu", 0x1a800, 0x5800, 0x0800 ) /* src-dest-size */ // #12
ROM_COPY( "maincpu", 0x11000, 0x6000, 0x0800 ) /* src-dest-size */ // #13
ROM_COPY( "maincpu", 0x11800, 0x6800, 0x0800 ) /* src-dest-size */ // #14
ROM_COPY( "maincpu", 0x1b000, 0x7000, 0x0800 ) /* src-dest-size */ // #15
- ROM_COPY( "maincpu", 0x1f000, 0x7800, 0x0800 ) /* src-dest-size */ // #16
- ROM_COPY( "maincpu", 0x1f800, 0x8000, 0x0800 ) /* src-dest-size */ // #17
+ ROM_COPY( "maincpu", 0x16800, 0x7800, 0x0800 ) /* src-dest-size */ // #16
+ ROM_COPY( "maincpu", 0x17000, 0x8000, 0x0800 ) /* src-dest-size */ // #17
ROM_COPY( "maincpu", 0x13800, 0x8800, 0x0800 ) /* src-dest-size */ // #18
ROM_COPY( "maincpu", 0x19000, 0x9000, 0x0800 ) /* src-dest-size */ // #19
ROM_COPY( "maincpu", 0x1b800, 0x9800, 0x0800 ) /* src-dest-size */ // #20
@@ -16822,7 +16797,8 @@ ROM_START( cmtetrsa )
ROM_COPY( "maincpu", 0x10800, 0xa800, 0x0800 ) /* src-dest-size */ // #22
ROM_COPY( "maincpu", 0x18000, 0xb000, 0x0800 ) /* src-dest-size */ // #23
ROM_COPY( "maincpu", 0x12800, 0xb800, 0x0800 ) /* src-dest-size */ // #24
- ROM_COPY( "maincpu", 0x13000, 0xc000, 0x0800 ) /* src-dest-size */ // #25
+ ROM_COPY( "maincpu", 0x15000, 0xc000, 0x0800 ) /* src-dest-size */ // #25
+ ROM_COPY( "maincpu", 0x14800, 0xc800, 0x0800 ) /* src-dest-size */ // #26
ROM_REGION( 0x18000, "gfx1", 0 )
ROM_LOAD( "cm89-tetri-7.u16", 0x00000, 0x8000, CRC(2f5c94bd) SHA1(d99bcaa788f8abf5c75b29572d53be109b20c4bb) )
@@ -16838,7 +16814,6 @@ ROM_START( cmtetrsa )
ROM_REGION( 0x10000, "user1", 0 )
ROM_LOAD( "cm89-tetri-8.u53", 0x0000, 0x10000, CRC(e92443d3) SHA1(4b6ca4521841610054165f085ae05510e77af191) )
- /* proms taken from cmv4, probably wrong */
ROM_REGION( 0x200, "proms", 0 )
ROM_LOAD( "82s129.u84", 0x0000, 0x0100, CRC(0489b760) SHA1(78f8632b17a76335183c5c204cdec856988368b0) )
ROM_LOAD( "82s129.u79", 0x0100, 0x0100, CRC(21eb5b19) SHA1(9b8425bdb97f11f4855c998c7792c3291fd07470) )
@@ -16847,7 +16822,6 @@ ROM_START( cmtetrsa )
ROM_LOAD( "82s129.u46", 0x0000, 0x0100, CRC(50ec383b) SHA1(ae95b92bd3946b40134bcdc22708d5c6b0f4c23e) )
ROM_END
-
/*
Tetris + Cherry Master (+K, Canada Version, encrypted)
stealth game...
@@ -19327,7 +19301,7 @@ GAME( 200?, ss2001, 0, ss2001, cmaster, cmaster_state, empty_init
GAMEL( 198?, cmpacman, 0, cm, cmpacman, cmaster_state, init_cm, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 1)", 0, layout_cmpacman ) // need to press K to switch between games...
GAMEL( 198?, cmpacmana, cmpacman, cm, cmpacman, cmaster_state, init_cm, ROT0, "", "Super Pacman (v1.2) + Cherry Master (Corsica, v8.31, set 2)", 0, layout_cmpacman ) // need to press K to switch between games...
GAMEL( 198?, cmtetris, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, set 1)", 0, layout_cmpacman ) // need to press K/L to switch between games...
-GAMEL( 198?, cmtetrsa, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, set 2)", MACHINE_NOT_WORKING, layout_cmpacman ) // seems banked...
+GAMEL( 198?, cmtetrsa, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (Corsica, v8.01, set 2)", 0, layout_cmpacman )
GAMEL( 198?, cmtetrsb, 0, cm, cmtetris, cmaster_state, init_cm, ROT0, "", "Tetris + Cherry Master (+K, Canada Version, encrypted)", MACHINE_NOT_WORKING, layout_cmpacman ) // different Tetris game. press insert to throttle and see the attract running.
GAMEL( 1997, crazybon, 0, crazybon, crazybon, goldstar_state, empty_init, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002 (Ver. 1, set 1)", MACHINE_IMPERFECT_COLORS, layout_crazybon ) // Windows ME desktop... but not found the way to switch it.
GAMEL( 1997, crazybona, crazybon, crazybon, crazybon, goldstar_state, empty_init, ROT0, "bootleg (Crazy Co.)", "Crazy Bonus 2002 (Ver. 1, set 2)", MACHINE_IMPERFECT_COLORS, layout_crazybon )
diff --git a/src/mame/drivers/gradius3.cpp b/src/mame/drivers/gradius3.cpp
index 06aacaae97e..33a3aef3e68 100644
--- a/src/mame/drivers/gradius3.cpp
+++ b/src/mame/drivers/gradius3.cpp
@@ -233,7 +233,7 @@ static INPUT_PORTS_START( gradius3 )
INPUT_PORTS_END
-WRITE8_MEMBER(gradius3_state::volume_callback)
+void gradius3_state::volume_callback(uint8_t data)
{
m_k007232->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11);
diff --git a/src/mame/drivers/gscpm.cpp b/src/mame/drivers/gscpm.cpp
index 73f27fad0bd..903254d5eb7 100644
--- a/src/mame/drivers/gscpm.cpp
+++ b/src/mame/drivers/gscpm.cpp
@@ -71,12 +71,12 @@ void gscpm_state::gscpm_io(address_map &map)
READ8_MEMBER( gscpm_state::cflash_r )
{
- return m_ide->read_cs0(offset, 0xff);
+ return m_ide->cs0_r(offset, 0xff);
}
WRITE8_MEMBER( gscpm_state::cflash_w )
{
- m_ide->write_cs0(offset, data, 0xff);
+ m_ide->cs0_w(offset, data, 0xff);
}
READ8_MEMBER( gscpm_state::sio_r )
diff --git a/src/mame/drivers/guab.cpp b/src/mame/drivers/guab.cpp
index 76cafe36e3d..20feb659669 100644
--- a/src/mame/drivers/guab.cpp
+++ b/src/mame/drivers/guab.cpp
@@ -98,17 +98,17 @@ private:
DECLARE_READ16_MEMBER(tms34061_r);
uint32_t screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE8_MEMBER(output1_w);
- DECLARE_WRITE8_MEMBER(output2_w);
- DECLARE_WRITE8_MEMBER(output3_w);
- DECLARE_WRITE8_MEMBER(output4_w);
- DECLARE_WRITE8_MEMBER(output5_w);
- DECLARE_WRITE8_MEMBER(output6_w);
- DECLARE_READ8_MEMBER(sn76489_ready_r);
- DECLARE_WRITE8_MEMBER(sn76489_buffer_w);
- DECLARE_WRITE8_MEMBER(system_w);
- DECLARE_READ8_MEMBER(watchdog_r);
- DECLARE_WRITE8_MEMBER(watchdog_w);
+ void output1_w(uint8_t data);
+ void output2_w(uint8_t data);
+ void output3_w(uint8_t data);
+ void output4_w(uint8_t data);
+ void output5_w(uint8_t data);
+ void output6_w(uint8_t data);
+ uint8_t sn76489_ready_r();
+ void sn76489_buffer_w(uint8_t data);
+ void system_w(uint8_t data);
+ uint8_t watchdog_r();
+ void watchdog_w(uint8_t data);
DECLARE_FLOPPY_FORMATS(floppy_formats);
@@ -313,20 +313,20 @@ void guab_state::machine_start()
m_fdc->set_floppy(m_floppy->get_device());
}
-READ8_MEMBER( guab_state::watchdog_r )
+uint8_t guab_state::watchdog_r()
{
// only read after writing the sequence below
return 0xff;
}
-WRITE8_MEMBER( guab_state::watchdog_w )
+void guab_state::watchdog_w(uint8_t data)
{
// watchdog?
// writes b 3 1 5 d a 2 0 4 0 8 b 3 1 5 d a 2 0 4 0 8
// then later toggles between 0 and f
}
-WRITE8_MEMBER( guab_state::system_w )
+void guab_state::system_w(uint8_t data)
{
// bit 0, sound latch
if (m_sound_latch != bool(BIT(data, 0)))
@@ -363,7 +363,7 @@ INPUT_CHANGED_MEMBER( guab_state::coin_inserted )
}
}
-WRITE8_MEMBER( guab_state::output1_w )
+void guab_state::output1_w(uint8_t data)
{
m_leds[0] = BIT(data, 0); // cash in (ten up: cash in)
m_leds[1] = BIT(data, 1); // cash out (ten up: cash out)
@@ -375,7 +375,7 @@ WRITE8_MEMBER( guab_state::output1_w )
m_leds[7] = BIT(data, 7);
}
-WRITE8_MEMBER( guab_state::output2_w )
+void guab_state::output2_w(uint8_t data)
{
m_leds[8] = BIT(data, 0);
m_leds[9] = BIT(data, 1);
@@ -387,7 +387,7 @@ WRITE8_MEMBER( guab_state::output2_w )
m_leds[15] = BIT(data, 7); // lamp b (ten up: pass)
}
-WRITE8_MEMBER( guab_state::output3_w )
+void guab_state::output3_w(uint8_t data)
{
m_leds[16] = BIT(data, 0); // select (ten up: collect)
m_leds[17] = BIT(data, 1); // (ten up: feature 14)
@@ -399,7 +399,7 @@ WRITE8_MEMBER( guab_state::output3_w )
m_leds[23] = BIT(data, 7);
}
-WRITE8_MEMBER( guab_state::output4_w )
+void guab_state::output4_w(uint8_t data)
{
m_leds[24] = BIT(data, 0); // feature 1 (ten up: feature 1)
m_leds[25] = BIT(data, 1); // feature 2 (ten up: feature 10)
@@ -411,7 +411,7 @@ WRITE8_MEMBER( guab_state::output4_w )
m_leds[31] = BIT(data, 7); // feature 8 (ten up: feature 5)
}
-WRITE8_MEMBER( guab_state::output5_w )
+void guab_state::output5_w(uint8_t data)
{
m_leds[32] = BIT(data, 0);
m_leds[33] = BIT(data, 1);
@@ -423,7 +423,7 @@ WRITE8_MEMBER( guab_state::output5_w )
m_leds[39] = BIT(data, 7); // mech lamp (ten up: mech lamp)
}
-WRITE8_MEMBER( guab_state::output6_w )
+void guab_state::output6_w(uint8_t data)
{
m_leds[40] = BIT(data, 0);
m_leds[41] = BIT(data, 1);
@@ -449,13 +449,13 @@ DEVICE_INPUT_DEFAULTS_END
// AUDIO
//**************************************************************************
-READ8_MEMBER( guab_state::sn76489_ready_r )
+uint8_t guab_state::sn76489_ready_r()
{
// bit 7 connected to sn76489 ready output (0 = ready)
return ~(m_sn->ready_r() << 7);
}
-WRITE8_MEMBER( guab_state::sn76489_buffer_w )
+void guab_state::sn76489_buffer_w(uint8_t data)
{
m_sound_buffer = data;
}
diff --git a/src/mame/drivers/gyruss.cpp b/src/mame/drivers/gyruss.cpp
index 198a7707af5..473281d7ed0 100644
--- a/src/mame/drivers/gyruss.cpp
+++ b/src/mame/drivers/gyruss.cpp
@@ -111,23 +111,23 @@ static const int gyruss_timer[10] =
0x00, 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x0a, 0x0d
};
-READ8_MEMBER(gyruss_state::gyruss_portA_r)
+uint8_t gyruss_state::gyruss_portA_r()
{
return gyruss_timer[(m_audiocpu->total_cycles() / 1024) % 10];
}
-WRITE8_MEMBER(gyruss_state::gyruss_dac_w)
+void gyruss_state::gyruss_dac_w(uint8_t data)
{
m_discrete->write(NODE(16), data);
}
-WRITE8_MEMBER(gyruss_state::gyruss_irq_clear_w)
+void gyruss_state::gyruss_irq_clear_w(uint8_t data)
{
m_audiocpu_2->set_input_line(0, CLEAR_LINE);
}
-void gyruss_state::filter_w(address_space &space, int chip, int data )
+void gyruss_state::filter_w(int chip, int data )
{
//printf("chip %d - %02x\n", chip, data);
for (int i = 0; i < 3; i++)
@@ -139,24 +139,24 @@ void gyruss_state::filter_w(address_space &space, int chip, int data )
}
}
-WRITE8_MEMBER(gyruss_state::gyruss_filter0_w)
+void gyruss_state::gyruss_filter0_w(uint8_t data)
{
- filter_w(space, 0, data);
+ filter_w(0, data);
}
-WRITE8_MEMBER(gyruss_state::gyruss_filter1_w)
+void gyruss_state::gyruss_filter1_w(uint8_t data)
{
- filter_w(space, 1, data);
+ filter_w(1, data);
}
-WRITE8_MEMBER(gyruss_state::gyruss_sh_irqtrigger_w)
+void gyruss_state::gyruss_sh_irqtrigger_w(uint8_t data)
{
/* writing to this register triggers IRQ on the sound CPU */
m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80
}
-WRITE8_MEMBER(gyruss_state::gyruss_i8039_irq_w)
+void gyruss_state::gyruss_i8039_irq_w(uint8_t data)
{
m_audiocpu_2->set_input_line(0, ASSERT_LINE);
}
@@ -168,7 +168,7 @@ WRITE_LINE_MEMBER(gyruss_state::master_nmi_mask_w)
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
-WRITE8_MEMBER(gyruss_state::slave_irq_mask_w)
+void gyruss_state::slave_irq_mask_w(uint8_t data)
{
m_slave_irq_mask = data & 1;
if (!m_slave_irq_mask)
diff --git a/src/mame/drivers/h8.cpp b/src/mame/drivers/h8.cpp
index 3798c8fc3c4..61224c0f22d 100644
--- a/src/mame/drivers/h8.cpp
+++ b/src/mame/drivers/h8.cpp
@@ -78,7 +78,7 @@ private:
DECLARE_READ8_MEMBER(portf0_r);
DECLARE_WRITE8_MEMBER(portf0_w);
DECLARE_WRITE8_MEMBER(portf1_w);
- DECLARE_WRITE8_MEMBER(h8_status_callback);
+ void h8_status_callback(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(h8_inte_callback);
TIMER_DEVICE_CALLBACK_MEMBER(h8_irq_pulse);
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
@@ -258,7 +258,7 @@ WRITE_LINE_MEMBER( h8_state::h8_inte_callback )
m_irq_ctl &= 0x7f | ((state) ? 0 : 0x80);
}
-WRITE8_MEMBER( h8_state::h8_status_callback )
+void h8_state::h8_status_callback(uint8_t data)
{
/* This is rather messy, but basically there are 2 D flipflops, one drives the other,
the data is /INTE while the clock is /M1. If the system is in Single Instruction mode,
diff --git a/src/mame/drivers/hcastle.cpp b/src/mame/drivers/hcastle.cpp
index 65097d75925..a0f37eefb02 100644
--- a/src/mame/drivers/hcastle.cpp
+++ b/src/mame/drivers/hcastle.cpp
@@ -158,7 +158,7 @@ GFXDECODE_END
/*****************************************************************************/
-WRITE8_MEMBER(hcastle_state::volume_callback)
+void hcastle_state::volume_callback(uint8_t data)
{
m_k007232->set_volume(0, (data >> 4) * 0x11, 0);
m_k007232->set_volume(1, 0, (data & 0x0f) * 0x11);
diff --git a/src/mame/drivers/hexion.cpp b/src/mame/drivers/hexion.cpp
index fa5c8bc14cf..cc0d76738e6 100644
--- a/src/mame/drivers/hexion.cpp
+++ b/src/mame/drivers/hexion.cpp
@@ -115,7 +115,7 @@ WRITE_LINE_MEMBER(hexion_state::nmi_ack_w)
m_maincpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
-WRITE8_MEMBER(hexion_state::ccu_int_time_w)
+void hexion_state::ccu_int_time_w(uint8_t data)
{
logerror("ccu_int_time rewritten with value of %02x\n", data);
m_ccu_int_time = data;
diff --git a/src/mame/drivers/hh_amis2k.cpp b/src/mame/drivers/hh_amis2k.cpp
index 0030abd77c2..67778048e8a 100644
--- a/src/mame/drivers/hh_amis2k.cpp
+++ b/src/mame/drivers/hh_amis2k.cpp
@@ -146,8 +146,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(write_d);
- DECLARE_WRITE16_MEMBER(write_a);
+ void write_d(u8 data);
+ void write_a(u16 data);
DECLARE_WRITE_LINE_MEMBER(write_f);
void speaker_update();
@@ -190,14 +190,14 @@ void wildfire_state::update_display()
m_display->matrix(~m_a, m_d);
}
-WRITE8_MEMBER(wildfire_state::write_d)
+void wildfire_state::write_d(u8 data)
{
// D0-D7: led/7seg data
m_d = bitswap<8>(data,7,0,1,2,3,4,5,6);
update_display();
}
-WRITE16_MEMBER(wildfire_state::write_a)
+void wildfire_state::write_a(u16 data)
{
// A0-A2: digit select
// A3-A11: led select
diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp
index def4ce9a854..db020140c25 100644
--- a/src/mame/drivers/hh_hmcs40.cpp
+++ b/src/mame/drivers/hh_hmcs40.cpp
@@ -271,15 +271,15 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u8 input_r();
void bambball(machine_config &config);
};
// handlers
-WRITE8_MEMBER(bambball_state::plate_w)
+void bambball_state::plate_w(offs_t offset, u8 data)
{
// R1x-R3x(,D0-D3): vfd plate
int shift = (offset - 1) * 4;
@@ -290,7 +290,7 @@ WRITE8_MEMBER(bambball_state::plate_w)
m_display->matrix(m_grid, plate);
}
-WRITE16_MEMBER(bambball_state::grid_w)
+void bambball_state::grid_w(u16 data)
{
// D4: speaker out
m_speaker->level_w(data >> 4 & 1);
@@ -302,10 +302,10 @@ WRITE16_MEMBER(bambball_state::grid_w)
m_grid = data >> 7 & 0x1ff;
// D0-D3: more plates (update display there)
- plate_w(space, 3 + 1, data & 0xf);
+ plate_w(3 + 1, data & 0xf);
}
-READ8_MEMBER(bambball_state::input_r)
+u8 bambball_state::input_r()
{
// R0x: multiplexed inputs
return read_inputs(4);
@@ -396,9 +396,9 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u8 input_r();
void bmboxing(machine_config &config);
};
@@ -411,7 +411,7 @@ void bmboxing_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(bmboxing_state::plate_w)
+void bmboxing_state::plate_w(offs_t offset, u8 data)
{
// R1x-R3x: vfd plate
int shift = (offset - 1) * 4;
@@ -419,7 +419,7 @@ WRITE8_MEMBER(bmboxing_state::plate_w)
update_display();
}
-WRITE16_MEMBER(bmboxing_state::grid_w)
+void bmboxing_state::grid_w(u16 data)
{
// D13: speaker out
m_speaker->level_w(data >> 13 & 1);
@@ -432,7 +432,7 @@ WRITE16_MEMBER(bmboxing_state::grid_w)
update_display();
}
-READ8_MEMBER(bmboxing_state::input_r)
+u8 bmboxing_state::input_r()
{
// R0x: multiplexed inputs
return read_inputs(4);
@@ -543,8 +543,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int1();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); }
@@ -560,7 +560,7 @@ void bfriskyt_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(bfriskyt_state::plate_w)
+void bfriskyt_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x: vfd plate
int shift = offset * 4;
@@ -568,7 +568,7 @@ WRITE8_MEMBER(bfriskyt_state::plate_w)
update_display();
}
-WRITE16_MEMBER(bfriskyt_state::grid_w)
+void bfriskyt_state::grid_w(u16 data)
{
// D6: speaker out
m_speaker->level_w(data >> 6 & 1);
@@ -677,15 +677,15 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ16_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u16 input_r();
void packmon(machine_config &config);
};
// handlers
-WRITE8_MEMBER(packmon_state::plate_w)
+void packmon_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D0-D3): vfd plate
int shift = offset * 4;
@@ -697,7 +697,7 @@ WRITE8_MEMBER(packmon_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(packmon_state::grid_w)
+void packmon_state::grid_w(u16 data)
{
// D4: speaker out
m_speaker->level_w(data >> 4 & 1);
@@ -709,10 +709,10 @@ WRITE16_MEMBER(packmon_state::grid_w)
m_grid = data >> 6 & 0x3ff;
// D0-D3: plate 9-12 (update display there)
- plate_w(space, 4, data & 0xf);
+ plate_w(4, data & 0xf);
}
-READ16_MEMBER(packmon_state::input_r)
+u16 packmon_state::input_r()
{
// D5: multiplexed inputs
return read_inputs(5) & 0x20;
@@ -794,8 +794,8 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int1();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); }
@@ -804,7 +804,7 @@ public:
// handlers
-WRITE8_MEMBER(bzaxxon_state::plate_w)
+void bzaxxon_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D0-D2): vfd plate
int shift = offset * 4;
@@ -816,7 +816,7 @@ WRITE8_MEMBER(bzaxxon_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(bzaxxon_state::grid_w)
+void bzaxxon_state::grid_w(u16 data)
{
// D4: speaker out
m_speaker->level_w(data >> 4 & 1);
@@ -833,7 +833,7 @@ WRITE16_MEMBER(bzaxxon_state::grid_w)
m_grid = data >> 5 & 0x7ff;
// D0-D2: plate 7-9 (update display there)
- plate_w(space, 4, data & 7);
+ plate_w(4, data & 7);
}
void bzaxxon_state::update_int1()
@@ -919,8 +919,8 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int0();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
@@ -929,7 +929,7 @@ public:
// handlers
-WRITE8_MEMBER(zackman_state::plate_w)
+void zackman_state::plate_w(offs_t offset, u8 data)
{
// R0x-R6x(,D0,D1): vfd plate
int shift = offset * 4;
@@ -941,7 +941,7 @@ WRITE8_MEMBER(zackman_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(zackman_state::grid_w)
+void zackman_state::grid_w(u16 data)
{
// D2: speaker out
m_speaker->level_w(data >> 2 & 1);
@@ -958,7 +958,7 @@ WRITE16_MEMBER(zackman_state::grid_w)
m_grid = data >> 8 & 0xff;
// D0,D1: plate 12,13 (update display there)
- plate_w(space, 7, data & 3);
+ plate_w(7, data & 3);
}
void zackman_state::update_int0()
@@ -1044,8 +1044,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int0();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
@@ -1061,7 +1061,7 @@ void bpengo_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(bpengo_state::plate_w)
+void bpengo_state::plate_w(offs_t offset, u8 data)
{
// R0x-R6x: vfd plate
int shift = offset * 4;
@@ -1069,7 +1069,7 @@ WRITE8_MEMBER(bpengo_state::plate_w)
update_display();
}
-WRITE16_MEMBER(bpengo_state::grid_w)
+void bpengo_state::grid_w(u16 data)
{
// D10: speaker out
m_speaker->level_w(data >> 10 & 1);
@@ -1177,8 +1177,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int0();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
@@ -1194,7 +1194,7 @@ void bbtime_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(bbtime_state::plate_w)
+void bbtime_state::plate_w(offs_t offset, u8 data)
{
// R0x-R6x: vfd plate
int shift = offset * 4;
@@ -1202,7 +1202,7 @@ WRITE8_MEMBER(bbtime_state::plate_w)
update_display();
}
-WRITE16_MEMBER(bbtime_state::grid_w)
+void bbtime_state::grid_w(u16 data)
{
// D3: speaker out
m_speaker->level_w(data >> 3 & 1);
@@ -1305,14 +1305,14 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void bdoramon(machine_config &config);
};
// handlers
-WRITE8_MEMBER(bdoramon_state::plate_w)
+void bdoramon_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D0-D3): vfd plate
int shift = offset * 4;
@@ -1324,7 +1324,7 @@ WRITE8_MEMBER(bdoramon_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(bdoramon_state::grid_w)
+void bdoramon_state::grid_w(u16 data)
{
// D7: speaker out
m_speaker->level_w(data >> 7 & 1);
@@ -1333,7 +1333,7 @@ WRITE16_MEMBER(bdoramon_state::grid_w)
m_grid = data >> 8 & 0xff;
// D0-D3: plate 15-18 (update display there)
- plate_w(space, 4, data & 0xf);
+ plate_w(4, data & 0xf);
}
// config
@@ -1414,14 +1414,14 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void bultrman(machine_config &config);
};
// handlers
-WRITE8_MEMBER(bultrman_state::plate_w)
+void bultrman_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D0-D2): vfd plate
int shift = offset * 4;
@@ -1433,7 +1433,7 @@ WRITE8_MEMBER(bultrman_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(bultrman_state::grid_w)
+void bultrman_state::grid_w(u16 data)
{
// D7: speaker out
m_speaker->level_w(data >> 7 & 1);
@@ -1442,7 +1442,7 @@ WRITE16_MEMBER(bultrman_state::grid_w)
m_grid = data >> 8 & 0xff;
// D0-D2: plate 15-17 (update display there)
- plate_w(space, 4, data & 7);
+ plate_w(4, data & 7);
}
// config
@@ -1516,8 +1516,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void machiman(machine_config &config);
};
@@ -1529,7 +1529,7 @@ void machiman_state::update_display()
m_display->matrix(m_grid, plate);
}
-WRITE8_MEMBER(machiman_state::plate_w)
+void machiman_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x,R6012: vfd plate
int shift = (offset == 6) ? 16 : offset * 4;
@@ -1537,7 +1537,7 @@ WRITE8_MEMBER(machiman_state::plate_w)
update_display();
}
-WRITE16_MEMBER(machiman_state::grid_w)
+void machiman_state::grid_w(u16 data)
{
// D13: speaker out
m_speaker->level_w(data >> 13 & 1);
@@ -1626,13 +1626,13 @@ public:
required_device_array m_soundlatch;
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u8 input_r();
- DECLARE_WRITE8_MEMBER(sound_w);
- DECLARE_WRITE8_MEMBER(sound2_w);
- DECLARE_WRITE16_MEMBER(speaker_w);
+ void sound_w(u8 data);
+ void sound2_w(u8 data);
+ void speaker_w(u16 data);
void pairmtch(machine_config &config);
};
@@ -1643,7 +1643,7 @@ void pairmtch_state::update_display()
m_display->matrix(m_grid, m_plate);
}
-WRITE8_MEMBER(pairmtch_state::plate_w)
+void pairmtch_state::plate_w(offs_t offset, u8 data)
{
// R2x,R3x,R6x: vfd plate
int shift = (offset == 6) ? 8 : (offset-2) * 4;
@@ -1651,7 +1651,7 @@ WRITE8_MEMBER(pairmtch_state::plate_w)
update_display();
}
-WRITE16_MEMBER(pairmtch_state::grid_w)
+void pairmtch_state::grid_w(u16 data)
{
// D7: sound reset (to audiocpu reset line)
m_audiocpu->set_input_line(INPUT_LINE_RESET, (data & 0x80) ? ASSERT_LINE : CLEAR_LINE);
@@ -1667,13 +1667,13 @@ WRITE16_MEMBER(pairmtch_state::grid_w)
update_display();
}
-READ8_MEMBER(pairmtch_state::input_r)
+u8 pairmtch_state::input_r()
{
// R4x: multiplexed inputs
return read_inputs(2);
}
-WRITE8_MEMBER(pairmtch_state::sound_w)
+void pairmtch_state::sound_w(u8 data)
{
// R5x: soundlatch (to audiocpu R2x)
m_soundlatch[0]->write(bitswap<8>(data,7,6,5,4,0,1,2,3));
@@ -1681,13 +1681,13 @@ WRITE8_MEMBER(pairmtch_state::sound_w)
// handlers: audiocpu side
-WRITE8_MEMBER(pairmtch_state::sound2_w)
+void pairmtch_state::sound2_w(u8 data)
{
// R2x: soundlatch (to maincpu R5x)
m_soundlatch[1]->write(bitswap<8>(data,7,6,5,4,0,1,2,3));
}
-WRITE16_MEMBER(pairmtch_state::speaker_w)
+void pairmtch_state::speaker_w(u16 data)
{
// D0: speaker out
m_speaker->level_w(data & 1);
@@ -1793,15 +1793,15 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ16_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u16 input_r();
void alnattck(machine_config &config);
};
// handlers
-WRITE8_MEMBER(alnattck_state::plate_w)
+void alnattck_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D0-D3): vfd plate
int shift = offset * 4;
@@ -1812,7 +1812,7 @@ WRITE8_MEMBER(alnattck_state::plate_w)
m_display->matrix(m_grid, plate);
}
-WRITE16_MEMBER(alnattck_state::grid_w)
+void alnattck_state::grid_w(u16 data)
{
// D4: speaker out
m_speaker->level_w(data >> 4 & 1);
@@ -1824,10 +1824,10 @@ WRITE16_MEMBER(alnattck_state::grid_w)
m_grid = data >> 6 & 0x3ff;
// D0-D3: plate 16-19 (update display there)
- plate_w(space, 4, data & 0xf);
+ plate_w(4, data & 0xf);
}
-READ16_MEMBER(alnattck_state::input_r)
+u16 alnattck_state::input_r()
{
// D5: multiplexed inputs
return read_inputs(7) & 0x20;
@@ -1917,8 +1917,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void speaker_update();
TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim);
@@ -1962,7 +1962,7 @@ void cdkong_state::update_display()
m_display->matrix(m_grid, plate);
}
-WRITE8_MEMBER(cdkong_state::plate_w)
+void cdkong_state::plate_w(offs_t offset, u8 data)
{
// R13: speaker on
m_r[offset] = data;
@@ -1974,7 +1974,7 @@ WRITE8_MEMBER(cdkong_state::plate_w)
update_display();
}
-WRITE16_MEMBER(cdkong_state::grid_w)
+void cdkong_state::grid_w(u16 data)
{
// D3: speaker out
m_d = data;
@@ -2073,9 +2073,9 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(grid_w);
- DECLARE_WRITE16_MEMBER(plate_w);
- DECLARE_READ8_MEMBER(input_r);
+ void grid_w(offs_t offset, u8 data);
+ void plate_w(u16 data);
+ u8 input_r();
DECLARE_INPUT_CHANGED_MEMBER(player_switch);
void cgalaxn(machine_config &config);
@@ -2097,7 +2097,7 @@ INPUT_CHANGED_MEMBER(cgalaxn_state::player_switch)
update_display();
}
-WRITE8_MEMBER(cgalaxn_state::grid_w)
+void cgalaxn_state::grid_w(offs_t offset, u8 data)
{
// R10,R11: input mux
if (offset == 1)
@@ -2109,7 +2109,7 @@ WRITE8_MEMBER(cgalaxn_state::grid_w)
update_display();
}
-WRITE16_MEMBER(cgalaxn_state::plate_w)
+void cgalaxn_state::plate_w(u16 data)
{
// D0: speaker out
m_speaker->level_w(data & 1);
@@ -2121,7 +2121,7 @@ WRITE16_MEMBER(cgalaxn_state::plate_w)
update_display();
}
-READ8_MEMBER(cgalaxn_state::input_r)
+u8 cgalaxn_state::input_r()
{
// R0x: multiplexed inputs
return read_inputs(2);
@@ -2215,15 +2215,15 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u8 input_r();
void cpacman(machine_config &config);
};
// handlers
-WRITE8_MEMBER(cpacman_state::plate_w)
+void cpacman_state::plate_w(offs_t offset, u8 data)
{
// R1x-R6x(,D1,D2): vfd plate
int shift = (offset - 1) * 4;
@@ -2235,7 +2235,7 @@ WRITE8_MEMBER(cpacman_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(cpacman_state::grid_w)
+void cpacman_state::grid_w(u16 data)
{
// D0: speaker out
m_speaker->level_w(data & 1);
@@ -2247,10 +2247,10 @@ WRITE16_MEMBER(cpacman_state::grid_w)
m_grid = data >> 5 & 0x7ff;
// D1,D2: plate 8,14 (update display there)
- plate_w(space, 6 + 1, data >> 1 & 3);
+ plate_w(6 + 1, data >> 1 & 3);
}
-READ8_MEMBER(cpacman_state::input_r)
+u8 cpacman_state::input_r()
{
// R0x: multiplexed inputs
return read_inputs(3);
@@ -2351,15 +2351,15 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u8 input_r();
void cmspacmn(machine_config &config);
};
// handlers
-WRITE8_MEMBER(cmspacmn_state::plate_w)
+void cmspacmn_state::plate_w(offs_t offset, u8 data)
{
// R1x-R6x(,D0,D1): vfd plate
int shift = (offset - 1) * 4;
@@ -2371,7 +2371,7 @@ WRITE8_MEMBER(cmspacmn_state::plate_w)
m_display->matrix(grid, u64(BIT(m_plate,15)) << 32 | plate);
}
-WRITE16_MEMBER(cmspacmn_state::grid_w)
+void cmspacmn_state::grid_w(u16 data)
{
// D2: speaker out
m_speaker->level_w(data >> 2 & 1);
@@ -2383,10 +2383,10 @@ WRITE16_MEMBER(cmspacmn_state::grid_w)
m_grid = data >> 5 & 0x7ff;
// D0,D1: more plates (update display there)
- plate_w(space, 6 + 1, data & 3);
+ plate_w(6 + 1, data & 3);
}
-READ8_MEMBER(cmspacmn_state::input_r)
+u8 cmspacmn_state::input_r()
{
// R0x: multiplexed inputs
return read_inputs(3);
@@ -2476,9 +2476,9 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u8 input_r();
void egalaxn2(machine_config &config);
};
@@ -2491,7 +2491,7 @@ void egalaxn2_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(egalaxn2_state::grid_w)
+void egalaxn2_state::grid_w(u16 data)
{
// D0: speaker out
m_speaker->level_w(data & 1);
@@ -2504,7 +2504,7 @@ WRITE16_MEMBER(egalaxn2_state::grid_w)
update_display();
}
-WRITE8_MEMBER(egalaxn2_state::plate_w)
+void egalaxn2_state::plate_w(offs_t offset, u8 data)
{
// R1x-R6x: vfd plate
int shift = (offset - 1) * 4;
@@ -2512,7 +2512,7 @@ WRITE8_MEMBER(egalaxn2_state::plate_w)
update_display();
}
-READ8_MEMBER(egalaxn2_state::input_r)
+u8 egalaxn2_state::input_r()
{
// R0x: multiplexed inputs
return read_inputs(4);
@@ -2702,9 +2702,9 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ16_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u16 input_r();
void einvader2(machine_config &config);
};
@@ -2715,7 +2715,7 @@ void einvader2_state::update_display()
m_display->matrix(m_grid, m_plate);
}
-WRITE8_MEMBER(einvader2_state::plate_w)
+void einvader2_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x: vfd plate
int shift = offset * 4;
@@ -2723,7 +2723,7 @@ WRITE8_MEMBER(einvader2_state::plate_w)
update_display();
}
-WRITE16_MEMBER(einvader2_state::grid_w)
+void einvader2_state::grid_w(u16 data)
{
// D0: speaker out
m_speaker->level_w(data & 1);
@@ -2736,7 +2736,7 @@ WRITE16_MEMBER(einvader2_state::grid_w)
update_display();
}
-READ16_MEMBER(einvader2_state::input_r)
+u16 einvader2_state::input_r()
{
// D13-D15: multiplexed inputs
return read_inputs(3) << 13;
@@ -2827,14 +2827,14 @@ public:
required_device m_audiocpu;
virtual void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
u8 m_cop_irq;
DECLARE_WRITE_LINE_MEMBER(speaker_w);
- DECLARE_WRITE8_MEMBER(cop_irq_w);
- DECLARE_READ8_MEMBER(cop_latch_r);
- DECLARE_READ8_MEMBER(cop_ack_r);
+ void cop_irq_w(u8 data);
+ u8 cop_latch_r();
+ u8 cop_ack_r();
void update_int();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int(); }
@@ -2861,7 +2861,7 @@ void eturtles_state::update_display()
m_display->matrix(grid, plate | (grid >> 5 & 8)); // grid 8 also forces plate 3 high
}
-WRITE8_MEMBER(eturtles_state::plate_w)
+void eturtles_state::plate_w(offs_t offset, u8 data)
{
m_r[offset] = data;
@@ -2871,7 +2871,7 @@ WRITE8_MEMBER(eturtles_state::plate_w)
update_display();
}
-WRITE16_MEMBER(eturtles_state::grid_w)
+void eturtles_state::grid_w(u16 data)
{
m_d = data;
@@ -2904,20 +2904,20 @@ WRITE_LINE_MEMBER(eturtles_state::speaker_w)
m_speaker->level_w(!state);
}
-WRITE8_MEMBER(eturtles_state::cop_irq_w)
+void eturtles_state::cop_irq_w(u8 data)
{
// D0: maincpu INT0 (active low)
m_cop_irq = ~data & 1;
update_int();
}
-READ8_MEMBER(eturtles_state::cop_latch_r)
+u8 eturtles_state::cop_latch_r()
{
// L0-L3: soundlatch from maincpu R0x
return m_r[0];
}
-READ8_MEMBER(eturtles_state::cop_ack_r)
+u8 eturtles_state::cop_ack_r()
{
// G0: ack from maincpu D0
return m_d & 1;
@@ -3026,7 +3026,7 @@ public:
{ }
virtual void update_display() override;
- DECLARE_READ8_MEMBER(cop_data_r);
+ u8 cop_data_r();
void estargte(machine_config &config);
};
@@ -3039,7 +3039,7 @@ void estargte_state::update_display()
m_display->matrix(grid, plate);
}
-READ8_MEMBER(estargte_state::cop_data_r)
+u8 estargte_state::cop_data_r()
{
// L0-L3: soundlatch from maincpu R0x
// L7: ack from maincpu D0
@@ -3149,15 +3149,15 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_READ16_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ u16 input_r();
void ghalien(machine_config &config);
};
// handlers
-WRITE8_MEMBER(ghalien_state::plate_w)
+void ghalien_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D10-D13): vfd plate
int shift = offset * 4;
@@ -3169,7 +3169,7 @@ WRITE8_MEMBER(ghalien_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(ghalien_state::grid_w)
+void ghalien_state::grid_w(u16 data)
{
// D14: speaker out
m_speaker->level_w(data >> 14 & 1);
@@ -3181,10 +3181,10 @@ WRITE16_MEMBER(ghalien_state::grid_w)
m_grid = data & 0x3ff;
// D10-D13: more plates (update display there)
- plate_w(space, 4, data >> 10 & 0xf);
+ plate_w(4, data >> 10 & 0xf);
}
-READ16_MEMBER(ghalien_state::input_r)
+u16 ghalien_state::input_r()
{
// D15: multiplexed inputs
return read_inputs(7) & 0x8000;
@@ -3276,8 +3276,8 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int1();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); }
@@ -3286,7 +3286,7 @@ public:
// handlers
-WRITE8_MEMBER(gckong_state::plate_w)
+void gckong_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x(,D0,D1): vfd plate
int shift = offset * 4;
@@ -3298,7 +3298,7 @@ WRITE8_MEMBER(gckong_state::plate_w)
m_display->matrix(grid, plate);
}
-WRITE16_MEMBER(gckong_state::grid_w)
+void gckong_state::grid_w(u16 data)
{
// D2: speaker out
m_speaker->level_w(data >> 2 & 1);
@@ -3315,7 +3315,7 @@ WRITE16_MEMBER(gckong_state::grid_w)
m_grid = data >> 5 & 0x7ff;
// D0,D1: more plates (update display there)
- plate_w(space, 4, data & 3);
+ plate_w(4, data & 3);
}
void gckong_state::update_int1()
@@ -3405,8 +3405,8 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int1();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); }
@@ -3415,7 +3415,7 @@ public:
// handlers
-WRITE8_MEMBER(gdigdug_state::plate_w)
+void gdigdug_state::plate_w(offs_t offset, u8 data)
{
// R0x-R6x(,D0-D3): vfd plate
int shift = offset * 4;
@@ -3426,7 +3426,7 @@ WRITE8_MEMBER(gdigdug_state::plate_w)
m_display->matrix(m_grid, plate);
}
-WRITE16_MEMBER(gdigdug_state::grid_w)
+void gdigdug_state::grid_w(u16 data)
{
// D6: speaker out
m_speaker->level_w(data >> 6 & 1);
@@ -3443,7 +3443,7 @@ WRITE16_MEMBER(gdigdug_state::grid_w)
m_grid = data >> 7 & 0x1ff;
// D0-D3: more plates (update display there)
- plate_w(space, 7, data & 0xf);
+ plate_w(7, data & 0xf);
}
void gdigdug_state::update_int1()
@@ -3536,10 +3536,10 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
- DECLARE_WRITE8_MEMBER(speaker_w);
- DECLARE_READ8_MEMBER(input_r);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
+ void speaker_w(u8 data);
+ u8 input_r();
void mwcbaseb(machine_config &config);
};
@@ -3551,7 +3551,7 @@ void mwcbaseb_state::update_display()
m_display->matrix(grid, m_plate);
}
-WRITE8_MEMBER(mwcbaseb_state::plate_w)
+void mwcbaseb_state::plate_w(offs_t offset, u8 data)
{
// R1x-R3x,R6x: vfd plate
int shift = (offset == 6) ? 12 : (offset - 1) * 4;
@@ -3559,7 +3559,7 @@ WRITE8_MEMBER(mwcbaseb_state::plate_w)
update_display();
}
-WRITE16_MEMBER(mwcbaseb_state::grid_w)
+void mwcbaseb_state::grid_w(u16 data)
{
// D9-D15: input mux
m_inp_mux = data >> 9 & 0x7f;
@@ -3569,13 +3569,13 @@ WRITE16_MEMBER(mwcbaseb_state::grid_w)
update_display();
}
-WRITE8_MEMBER(mwcbaseb_state::speaker_w)
+void mwcbaseb_state::speaker_w(u8 data)
{
// R50,R51+R52(tied together): speaker out
m_speaker->level_w(data & 7);
}
-READ8_MEMBER(mwcbaseb_state::input_r)
+u8 mwcbaseb_state::input_r()
{
// R4x: multiplexed inputs
return read_inputs(7);
@@ -3710,8 +3710,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int0();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
@@ -3727,7 +3727,7 @@ void msthawk_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(msthawk_state::plate_w)
+void msthawk_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x: vfd plate
int shift = offset * 4;
@@ -3735,7 +3735,7 @@ WRITE8_MEMBER(msthawk_state::plate_w)
update_display();
}
-WRITE16_MEMBER(msthawk_state::grid_w)
+void msthawk_state::grid_w(u16 data)
{
// D5: speaker out
m_speaker->level_w(data >> 5 & 1);
@@ -3842,14 +3842,14 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void pbqbert(machine_config &config);
};
// handlers
-WRITE8_MEMBER(pbqbert_state::plate_w)
+void pbqbert_state::plate_w(offs_t offset, u8 data)
{
// R0x-R6x(,D8): vfd plate
int shift = offset * 4;
@@ -3860,7 +3860,7 @@ WRITE8_MEMBER(pbqbert_state::plate_w)
m_display->matrix(m_grid, plate);
}
-WRITE16_MEMBER(pbqbert_state::grid_w)
+void pbqbert_state::grid_w(u16 data)
{
// D14: speaker out
m_speaker->level_w(data >> 14 & 1);
@@ -3869,7 +3869,7 @@ WRITE16_MEMBER(pbqbert_state::grid_w)
m_grid = data & 0xff;
// D8: plate 25 (update display there)
- plate_w(space, 7, data >> 8 & 1);
+ plate_w(7, data >> 8 & 1);
}
// config
@@ -3942,8 +3942,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int1();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int1(); }
@@ -3959,7 +3959,7 @@ void tmtron_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(tmtron_state::plate_w)
+void tmtron_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x: vfd plate
int shift = offset * 4;
@@ -3967,7 +3967,7 @@ WRITE8_MEMBER(tmtron_state::plate_w)
update_display();
}
-WRITE16_MEMBER(tmtron_state::grid_w)
+void tmtron_state::grid_w(u16 data)
{
// D4: speaker out
m_speaker->level_w(data >> 4 & 1);
@@ -4068,8 +4068,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void update_int0();
DECLARE_INPUT_CHANGED_MEMBER(input_changed) { update_int0(); }
@@ -4085,7 +4085,7 @@ void kingman_state::update_display()
m_display->matrix(grid, plate);
}
-WRITE8_MEMBER(kingman_state::plate_w)
+void kingman_state::plate_w(offs_t offset, u8 data)
{
// R0x-R3x: vfd plate
int shift = offset * 4;
@@ -4093,7 +4093,7 @@ WRITE8_MEMBER(kingman_state::plate_w)
update_display();
}
-WRITE16_MEMBER(kingman_state::grid_w)
+void kingman_state::grid_w(u16 data)
{
// D6: speaker out
m_speaker->level_w(data >> 6 & 1);
@@ -4197,14 +4197,14 @@ public:
hh_hmcs40_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(plate_w);
- DECLARE_WRITE16_MEMBER(grid_w);
+ void plate_w(offs_t offset, u8 data);
+ void grid_w(u16 data);
void vinvader(machine_config &config);
};
// handlers
-WRITE8_MEMBER(vinvader_state::plate_w)
+void vinvader_state::plate_w(offs_t offset, u8 data)
{
// R1x-R3x(,D4-D6): vfd plate
int shift = (offset - 1) * 4;
@@ -4215,7 +4215,7 @@ WRITE8_MEMBER(vinvader_state::plate_w)
m_display->matrix(m_grid, plate);
}
-WRITE16_MEMBER(vinvader_state::grid_w)
+void vinvader_state::grid_w(u16 data)
{
// D0: speaker out
m_speaker->level_w(data & 1);
@@ -4224,7 +4224,7 @@ WRITE16_MEMBER(vinvader_state::grid_w)
m_grid = data >> 7 & 0x1ff;
// D4-D6: more plates (update display there)
- plate_w(space, 3 + 1, data >> 4 & 7);
+ plate_w(3 + 1, data >> 4 & 7);
}
// config
diff --git a/src/mame/drivers/hh_pic16.cpp b/src/mame/drivers/hh_pic16.cpp
index a1c763be43f..8fb36a746c4 100644
--- a/src/mame/drivers/hh_pic16.cpp
+++ b/src/mame/drivers/hh_pic16.cpp
@@ -204,9 +204,9 @@ public:
void update_display();
void update_speaker();
- DECLARE_READ8_MEMBER(read_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ u8 read_a();
+ void write_b(u8 data);
+ void write_c(u8 data);
void touchme(machine_config &config);
};
@@ -222,13 +222,13 @@ void touchme_state::update_speaker()
m_speaker->level_w((m_b >> 7 & 1) | (m_c >> 6 & 2));
}
-READ8_MEMBER(touchme_state::read_a)
+u8 touchme_state::read_a()
{
// A: multiplexed inputs
return read_inputs(3, 0xf);
}
-WRITE8_MEMBER(touchme_state::write_b)
+void touchme_state::write_b(u8 data)
{
// B0-B2: input mux
m_inp_mux = data & 7;
@@ -242,7 +242,7 @@ WRITE8_MEMBER(touchme_state::write_b)
update_speaker();
}
-WRITE8_MEMBER(touchme_state::write_c)
+void touchme_state::write_c(u8 data)
{
// C0-C6: digit segments
m_c = data;
@@ -327,8 +327,8 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ void write_b(u8 data);
+ void write_c(u8 data);
void pabball(machine_config &config);
};
@@ -345,14 +345,14 @@ void pabball_state::update_display()
m_display->matrix(sel, m_b);
}
-WRITE8_MEMBER(pabball_state::write_b)
+void pabball_state::write_b(u8 data)
{
// B: led data
m_b = ~data;
update_display();
}
-WRITE8_MEMBER(pabball_state::write_c)
+void pabball_state::write_c(u8 data)
{
// C2: RTCC pin
m_maincpu->set_input_line(PIC16C5x_RTCC, data >> 2 & 1);
@@ -433,27 +433,27 @@ public:
hh_pic16_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_READ8_MEMBER(read_c);
- DECLARE_WRITE8_MEMBER(write_c);
+ void write_b(u8 data);
+ u8 read_c();
+ void write_c(u8 data);
void melodym(machine_config &config);
};
// handlers
-WRITE8_MEMBER(melodym_state::write_b)
+void melodym_state::write_b(u8 data)
{
// B2-B6: input mux
m_inp_mux = data >> 2 & 0x1f;
}
-READ8_MEMBER(melodym_state::read_c)
+u8 melodym_state::read_c()
{
// C0-C4: multiplexed inputs
return read_inputs(5, 0x1f) | 0xe0;
}
-WRITE8_MEMBER(melodym_state::write_c)
+void melodym_state::write_c(u8 data)
{
// C6: both lamps
m_display->matrix(1, ~data >> 6 & 1);
@@ -561,8 +561,8 @@ public:
void update_display();
void update_speaker();
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ void write_b(u8 data);
+ void write_c(u8 data);
void maniac(machine_config &config);
};
@@ -580,7 +580,7 @@ void maniac_state::update_speaker()
m_speaker->level_w((m_b >> 7 & 1) | (m_c >> 6 & 2));
}
-WRITE8_MEMBER(maniac_state::write_b)
+void maniac_state::write_b(u8 data)
{
// B0-B6: left 7seg
m_b = data;
@@ -590,7 +590,7 @@ WRITE8_MEMBER(maniac_state::write_b)
update_speaker();
}
-WRITE8_MEMBER(maniac_state::write_c)
+void maniac_state::write_c(u8 data)
{
// C0-C6: right 7seg
m_c = data;
@@ -674,9 +674,9 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_READ8_MEMBER(read_c);
- DECLARE_WRITE8_MEMBER(write_c);
+ void write_b(u8 data);
+ u8 read_c();
+ void write_c(u8 data);
void speaker_decay_reset();
TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim);
@@ -720,7 +720,7 @@ void flash_state::update_display()
m_display->matrix(~m_b >> 4 & 3, (~m_c >> 1 & 0x7f) | (~m_b << 7 & 0x780));
}
-WRITE8_MEMBER(flash_state::write_b)
+void flash_state::write_b(u8 data)
{
// B0-B3: led data
// B4,B5: led select
@@ -733,13 +733,13 @@ WRITE8_MEMBER(flash_state::write_b)
m_speaker->level_w(data >> 7 & 1);
}
-READ8_MEMBER(flash_state::read_c)
+u8 flash_state::read_c()
{
// C1-C7: buttons
return (m_c & 1) ? 0xff : m_inputs[1]->read();
}
-WRITE8_MEMBER(flash_state::write_c)
+void flash_state::write_c(u8 data)
{
// C0: enable buttons
// C1-C7: digit segments
@@ -822,9 +822,9 @@ public:
hh_pic16_state(mconfig, type, tag)
{ }
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
- DECLARE_READ8_MEMBER(read_c);
+ void write_b(u8 data);
+ void write_c(u8 data);
+ u8 read_c();
void set_clock();
DECLARE_INPUT_CHANGED_MEMBER(speed_switch) { set_clock(); }
@@ -849,13 +849,13 @@ void matchme_state::set_clock()
m_maincpu->set_unscaled_clock((m_inputs[4]->read() & 1) ? 1300000 : 1200000);
}
-WRITE8_MEMBER(matchme_state::write_b)
+void matchme_state::write_b(u8 data)
{
// B0-B7: lamps
m_display->matrix(1, data);
}
-READ8_MEMBER(matchme_state::read_c)
+u8 matchme_state::read_c()
{
// C0-C3: multiplexed inputs from C4-C6
m_inp_mux = m_c >> 4 & 7;
@@ -868,7 +868,7 @@ READ8_MEMBER(matchme_state::read_c)
return lo | hi << 4 | 0x80;
}
-WRITE8_MEMBER(matchme_state::write_c)
+void matchme_state::write_c(u8 data)
{
// C0-C6: input mux
m_c = data;
@@ -980,9 +980,9 @@ public:
hh_pic16_state(mconfig, type, tag)
{ }
- DECLARE_READ8_MEMBER(read_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ u8 read_a();
+ void write_b(u8 data);
+ void write_c(u8 data);
void speaker_decay_reset();
TIMER_DEVICE_CALLBACK_MEMBER(speaker_decay_sim);
@@ -1019,19 +1019,19 @@ TIMER_DEVICE_CALLBACK_MEMBER(leboom_state::speaker_decay_sim)
m_speaker_volume /= 1.015;
}
-READ8_MEMBER(leboom_state::read_a)
+u8 leboom_state::read_a()
{
// A: multiplexed inputs
return read_inputs(6, 0xf);
}
-WRITE8_MEMBER(leboom_state::write_b)
+void leboom_state::write_b(u8 data)
{
// B0-B5: input mux
m_inp_mux = data & 0x3f;
}
-WRITE8_MEMBER(leboom_state::write_c)
+void leboom_state::write_c(u8 data)
{
// C4: single led
m_display->matrix(1, data >> 4 & 1);
@@ -1133,9 +1133,9 @@ public:
{ }
void update_display();
- DECLARE_READ8_MEMBER(read_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ u8 read_a();
+ void write_b(u8 data);
+ void write_c(u8 data);
void tbaskb(machine_config &config);
};
@@ -1146,13 +1146,13 @@ void tbaskb_state::update_display()
m_display->matrix(m_b, m_c);
}
-READ8_MEMBER(tbaskb_state::read_a)
+u8 tbaskb_state::read_a()
{
// A2: skill switch, A3: multiplexed inputs
return m_inputs[5]->read() | read_inputs(5, 8) | 3;
}
-WRITE8_MEMBER(tbaskb_state::write_b)
+void tbaskb_state::write_b(u8 data)
{
// B0: RTCC pin
m_maincpu->set_input_line(PIC16C5x_RTCC, data & 1);
@@ -1166,7 +1166,7 @@ WRITE8_MEMBER(tbaskb_state::write_b)
update_display();
}
-WRITE8_MEMBER(tbaskb_state::write_c)
+void tbaskb_state::write_c(u8 data)
{
// C7: speaker out
m_speaker->level_w(data >> 7 & 1);
@@ -1253,10 +1253,10 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(write_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
- DECLARE_WRITE8_MEMBER(write_d);
+ void write_a(u8 data);
+ void write_b(u8 data);
+ void write_c(u8 data);
+ void write_d(u8 data);
void rockpin(machine_config &config);
};
@@ -1271,7 +1271,7 @@ void rockpin_state::update_display()
m_display->matrix_partial(3, 6, m_d, m_c);
}
-WRITE8_MEMBER(rockpin_state::write_a)
+void rockpin_state::write_a(u8 data)
{
// A3,A4: speaker out
m_speaker->level_w(data >> 3 & 3);
@@ -1281,21 +1281,21 @@ WRITE8_MEMBER(rockpin_state::write_a)
update_display();
}
-WRITE8_MEMBER(rockpin_state::write_b)
+void rockpin_state::write_b(u8 data)
{
// B0-B6: digit segments
m_b = data & 0x7f;
update_display();
}
-WRITE8_MEMBER(rockpin_state::write_c)
+void rockpin_state::write_c(u8 data)
{
// C0-C7: led data
m_c = ~data;
update_display();
}
-WRITE8_MEMBER(rockpin_state::write_d)
+void rockpin_state::write_d(u8 data)
{
// D0-D5: led select
m_d = ~data;
@@ -1372,9 +1372,9 @@ public:
{ }
void update_display();
- DECLARE_READ8_MEMBER(read_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ u8 read_a();
+ void write_b(u8 data);
+ void write_c(u8 data);
void hccbaskb(machine_config &config);
};
@@ -1385,13 +1385,13 @@ void hccbaskb_state::update_display()
m_display->matrix(m_b, m_c);
}
-READ8_MEMBER(hccbaskb_state::read_a)
+u8 hccbaskb_state::read_a()
{
// A2: skill switch, A3: multiplexed inputs
return m_inputs[5]->read() | read_inputs(5, 8) | 3;
}
-WRITE8_MEMBER(hccbaskb_state::write_b)
+void hccbaskb_state::write_b(u8 data)
{
// B0: RTCC pin
m_maincpu->set_input_line(PIC16C5x_RTCC, data & 1);
@@ -1408,7 +1408,7 @@ WRITE8_MEMBER(hccbaskb_state::write_b)
update_display();
}
-WRITE8_MEMBER(hccbaskb_state::write_c)
+void hccbaskb_state::write_c(u8 data)
{
// C0-C6: led data
m_c = ~data;
@@ -1496,9 +1496,9 @@ public:
{ }
void update_display();
- DECLARE_READ8_MEMBER(read_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
+ u8 read_a();
+ void write_b(u8 data);
+ void write_c(u8 data);
void ttfball(machine_config &config);
};
@@ -1515,13 +1515,13 @@ void ttfball_state::update_display()
m_display->matrix(m_b | (m_c << 1 & 0x100), led_data);
}
-READ8_MEMBER(ttfball_state::read_a)
+u8 ttfball_state::read_a()
{
// A3: multiplexed inputs, A0-A2: other inputs
return m_inputs[5]->read() | read_inputs(5, 8);
}
-WRITE8_MEMBER(ttfball_state::write_b)
+void ttfball_state::write_b(u8 data)
{
// B0: RTCC pin
m_maincpu->set_input_line(PIC16C5x_RTCC, data & 1);
@@ -1534,7 +1534,7 @@ WRITE8_MEMBER(ttfball_state::write_b)
update_display();
}
-WRITE8_MEMBER(ttfball_state::write_c)
+void ttfball_state::write_c(u8 data)
{
// C6: speaker out
m_speaker->level_w(data >> 6 & 1);
@@ -1657,10 +1657,10 @@ public:
{ }
void update_display();
- DECLARE_WRITE8_MEMBER(write_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
- DECLARE_WRITE8_MEMBER(write_d);
+ void write_a(u8 data);
+ void write_b(u8 data);
+ void write_c(u8 data);
+ void write_d(u8 data);
void uspbball(machine_config &config);
};
@@ -1671,27 +1671,27 @@ void uspbball_state::update_display()
m_display->matrix(m_d, m_c << 8 | m_b);
}
-WRITE8_MEMBER(uspbball_state::write_a)
+void uspbball_state::write_a(u8 data)
{
// A0: speaker out
m_speaker->level_w(data & 1);
}
-WRITE8_MEMBER(uspbball_state::write_b)
+void uspbball_state::write_b(u8 data)
{
// B: digit segment data
m_b = bitswap<8>(data,0,1,2,3,4,5,6,7);
update_display();
}
-WRITE8_MEMBER(uspbball_state::write_c)
+void uspbball_state::write_c(u8 data)
{
// C: led data
m_c = ~data;
update_display();
}
-WRITE8_MEMBER(uspbball_state::write_d)
+void uspbball_state::write_d(u8 data)
{
// D0-D2: digit select
// D3-D5: led select
@@ -1775,11 +1775,11 @@ public:
{ }
void update_display();
- DECLARE_READ8_MEMBER(read_a);
- DECLARE_WRITE8_MEMBER(write_a);
- DECLARE_WRITE8_MEMBER(write_b);
- DECLARE_WRITE8_MEMBER(write_c);
- DECLARE_WRITE8_MEMBER(write_d);
+ u8 read_a();
+ void write_a(u8 data);
+ void write_b(u8 data);
+ void write_c(u8 data);
+ void write_d(u8 data);
void us2pfball(machine_config &config);
};
@@ -1790,26 +1790,26 @@ void us2pfball_state::update_display()
m_display->matrix(m_d | (m_a << 6 & 0x300), m_c);
}
-READ8_MEMBER(us2pfball_state::read_a)
+u8 us2pfball_state::read_a()
{
// A0,A1: multiplexed inputs, A4-A7: other inputs
return read_inputs(4, 3) | (m_inputs[4]->read() & 0xf0) | 0x0c;
}
-WRITE8_MEMBER(us2pfball_state::write_a)
+void us2pfball_state::write_a(u8 data)
{
// A2,A3: leds
m_a = data;
update_display();
}
-WRITE8_MEMBER(us2pfball_state::write_b)
+void us2pfball_state::write_b(u8 data)
{
// B0-B3: input mux
m_inp_mux = data & 0xf;
}
-WRITE8_MEMBER(us2pfball_state::write_c)
+void us2pfball_state::write_c(u8 data)
{
// C7: speaker out
m_speaker->level_w(data >> 7 & 1);
@@ -1819,7 +1819,7 @@ WRITE8_MEMBER(us2pfball_state::write_c)
update_display();
}
-WRITE8_MEMBER(us2pfball_state::write_d)
+void us2pfball_state::write_d(u8 data)
{
// D0-D7: digit select
m_d = ~data;
diff --git a/src/mame/drivers/himesiki.cpp b/src/mame/drivers/himesiki.cpp
index d785957e74f..31b837451fd 100644
--- a/src/mame/drivers/himesiki.cpp
+++ b/src/mame/drivers/himesiki.cpp
@@ -104,7 +104,7 @@ A 12.000MHz
#define MCLK XTAL(12'000'000) // this is on the video board
#define CLK2 XTAL(8'000'000) // near the CPUs
-WRITE8_MEMBER(himesiki_state::himesiki_rombank_w)
+void himesiki_state::himesiki_rombank_w(uint8_t data)
{
membank("bank1")->set_entry(((data & 0x0c) >> 2));
@@ -115,7 +115,7 @@ WRITE8_MEMBER(himesiki_state::himesiki_rombank_w)
logerror("p06_w %02x\n", data);
}
-WRITE8_MEMBER(himesiki_state::himesiki_sound_w)
+void himesiki_state::himesiki_sound_w(uint8_t data)
{
m_soundlatch->write(data);
m_subcpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
diff --git a/src/mame/drivers/hotblock.cpp b/src/mame/drivers/hotblock.cpp
index 56cab2e41fa..40f73692962 100644
--- a/src/mame/drivers/hotblock.cpp
+++ b/src/mame/drivers/hotblock.cpp
@@ -1,46 +1,61 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
/*
+
HotBlock board
Tetris with naughty bits
- ||||||||||||||||
-+-------++++++++++++++++-------+
-| |
-| YM2149 TESTSW |
-| |
-| 62256 62256 6116 6116 |
-| |
-| 24mhz TPC1020AFN 24c04a |
-| |
-| PAL |
-| P8088-1 IC4 IC5 62256 62256 |
-| |
-+------------------------------+
+ _________________________________________________________________
+ | ___________ ___________ ___________ ___________ |
+ | |_74LS273N_| |MCM2018AN45 |SN74LS245N| |SN74LS245N| |
+ | ___________|
+ __| ___________ |SN74LS245N||
+ |__ |_74LS273N_| ___________ ____ ___________ _______________|
+ |__ |MCM2018AN45 24C02 |_GAL16V8B_| |D43256AC-85L ||
+ |__ ______ ________ |NEC___________||
+ |__ 74HC32P 74LS132N _______________|
+ |__ __________ |D43256AC-85L ||
+ |__ |_74F374N_| _____________ |NEC___________||
+ |__ __________ |IC30 | ________________|
+ |__ TEST SW |_74F374N_| |ACTEL | |IC5 - ROM2 ||
+ |__ ______ _______________ |A1020A | |_______________||
+ |__ |IC17 | |D43256AC-85L | |PL84C 9244 | ________________|
+ |__ Microchip |NEC___________| | | |IC4 - ROM1 ||
+ |__ AY38910A/P _______________ |____________| |_______________||
+ |__ | | |D43256AC-85L | |
+ |__ | | |NEC___________| |
+ |__ | | __________ __________ __________|
+ |__ | | |74LS245N_| ______ |74LS373N_| |74LS245N_||
+ |__ |_____| __________ XTAL __________ __________|
+ | |74LS245N_| 24.000 MHz |74LS373N_| |74LS373N_||
+ | ______ __________ _________________ |
+ | TDA2003 |74LS74AN_| |NEC 070108C V20 | |
+ | |________________| |
+ |________________________________________________________________|
+
+IC30 can be also a TPC1020AFN-084
330ohm resistor packs for colours
-
--
-there are a variety of test modes which can be obtained
-by resetting while holding down player 2 buttons
+There are a variety of test modes which can be obtained
+by resetting while holding down player 2 buttons.
-most sources say this is a game by Nics but I believe Nics
+Most sources say this is a game by Nics but I believe Nics
to be a company from Korea, this game is quite clearly a
Spanish game, we know for a fact that NIX are from Spain
-so it could be by them instead
+so it could be by them instead.
For some reason the game isn't saving scores to the EEPROM. Settings and
statistics are saved however. The option "AUTO SAVE SCORES" doesn't seem
to be honored - the game writes the value to RAM but never reads it.
-
*/
#include "emu.h"
-#include "cpu/i86/i86.h"
+#include "cpu/nec/nec.h"
#include "machine/bankdev.h"
#include "machine/i2cmem.h"
#include "sound/ay8910.h"
@@ -48,7 +63,6 @@ to be honored - the game writes the value to RAM but never reads it.
#include "screen.h"
#include "speaker.h"
-
class hotblock_state : public driver_device
{
public:
@@ -64,16 +78,16 @@ public:
void hotblock(machine_config &config);
private:
- /* devices */
+ // Devices
required_device m_maincpu;
required_device m_palette;
required_device m_video_bank;
required_device