diff options
Diffstat (limited to 'src/mame/drivers/babbage.cpp')
-rw-r--r-- | src/mame/drivers/babbage.cpp | 55 |
1 files changed, 19 insertions, 36 deletions
diff --git a/src/mame/drivers/babbage.cpp b/src/mame/drivers/babbage.cpp index 0a95392ff13..8f1295d9b7d 100644 --- a/src/mame/drivers/babbage.cpp +++ b/src/mame/drivers/babbage.cpp @@ -35,52 +35,38 @@ class babbage_state : public driver_device { public: babbage_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_pio_1(*this, "z80pio_1"), - m_pio_2(*this, "z80pio_2"), - m_ctc(*this, "z80ctc") - { } + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_pio_1(*this, "z80pio_1") + , m_pio_2(*this, "z80pio_2") + , m_ctc(*this, "z80ctc") + , m_keyboard(*this, "X%u", 0) + { } - required_device<cpu_device> m_maincpu; - required_device<z80pio_device> m_pio_1; - required_device<z80pio_device> m_pio_2; - required_device<z80ctc_device> m_ctc; DECLARE_READ8_MEMBER(pio2_a_r); DECLARE_WRITE8_MEMBER(pio1_b_w); DECLARE_WRITE8_MEMBER(pio2_b_w); DECLARE_WRITE_LINE_MEMBER(ctc_z0_w); DECLARE_WRITE_LINE_MEMBER(ctc_z1_w); DECLARE_WRITE_LINE_MEMBER(ctc_z2_w); + TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback); + +private: uint8_t m_segment; uint8_t m_key; uint8_t m_prev_key; bool m_step; - virtual void machine_reset() override; - virtual void machine_start() override; - TIMER_DEVICE_CALLBACK_MEMBER(keyboard_callback); + required_device<cpu_device> m_maincpu; + required_device<z80pio_device> m_pio_1; + required_device<z80pio_device> m_pio_2; + required_device<z80ctc_device> m_ctc; + required_ioport_array<4> m_keyboard; }; /*************************************************************************** - Machine - -***************************************************************************/ - -void babbage_state::machine_start() -{ -} - -void babbage_state::machine_reset() -{ -} - - - -/*************************************************************************** - Address Map ***************************************************************************/ @@ -195,16 +181,13 @@ static const z80_daisy_config babbage_daisy_chain[] = TIMER_DEVICE_CALLBACK_MEMBER(babbage_state::keyboard_callback) { - uint8_t i, j, inp; - char kbdrow[6]; - uint8_t data = 0xff; + u8 inp, data = 0xff; - for (i = 0; i < 4; i++) + for (u8 i = 0; i < 4; i++) { - sprintf(kbdrow,"X%X",i); - inp = ioport(kbdrow)->read(); + inp = m_keyboard[i]->read(); - for (j = 0; j < 5; j++) + for (u8 j = 0; j < 5; j++) if (BIT(inp, j)) data = (j << 2) | i; } |