diff options
Diffstat (limited to 'src/mess/drivers/elecbowl.c')
-rw-r--r-- | src/mess/drivers/elecbowl.c | 53 |
1 files changed, 11 insertions, 42 deletions
diff --git a/src/mess/drivers/elecbowl.c b/src/mess/drivers/elecbowl.c index 0ae06e2b3a8..c4be40e64e2 100644 --- a/src/mess/drivers/elecbowl.c +++ b/src/mess/drivers/elecbowl.c @@ -15,60 +15,32 @@ ***************************************************************************/ -#include "emu.h" -#include "cpu/tms0980/tms0980.h" -#include "sound/speaker.h" - -// internal artwork +#include "includes/hh_tms1k.h" #include "elecbowl.lh" -class elecbowl_state : public driver_device +class elecbowl_state : public hh_tms1k_state { public: elecbowl_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_inp_matrix(*this, "IN"), - m_speaker(*this, "speaker") + : hh_tms1k_state(mconfig, type, tag) { } - // devices - required_device<cpu_device> m_maincpu; - required_ioport_array<4> m_inp_matrix; - required_device<speaker_sound_device> m_speaker; - - UINT16 m_r; - UINT16 m_o; - UINT16 m_inp_mux; - - DECLARE_READ8_MEMBER(read_k); DECLARE_WRITE16_MEMBER(write_r); DECLARE_WRITE16_MEMBER(write_o); + DECLARE_READ8_MEMBER(read_k); +protected: virtual void machine_start(); }; - /*************************************************************************** I/O ***************************************************************************/ -READ8_MEMBER(elecbowl_state::read_k) -{ - UINT8 k = 0; - - // read selected input rows - for (int i = 0; i < 4; i++) - if (m_inp_mux >> i & 1) - k |= m_inp_matrix[i]->read(); - - return k; -} - WRITE16_MEMBER(elecbowl_state::write_r) { // R4-R7: input mux @@ -86,6 +58,11 @@ WRITE16_MEMBER(elecbowl_state::write_o) // ? } +READ8_MEMBER(elecbowl_state::read_k) +{ + return read_inputs(4); +} + /*************************************************************************** @@ -130,15 +107,7 @@ INPUT_PORTS_END void elecbowl_state::machine_start() { - // zerofill - m_o = 0; - m_r = 0; - m_inp_mux = 0; - - // register for savestates - save_item(NAME(m_o)); - save_item(NAME(m_r)); - save_item(NAME(m_inp_mux)); + hh_tms1k_state::machine_start(); } |