diff options
Diffstat (limited to 'src/devices/bus/vcs_ctrl/keypad.h')
-rw-r--r-- | src/devices/bus/vcs_ctrl/keypad.h | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/src/devices/bus/vcs_ctrl/keypad.h b/src/devices/bus/vcs_ctrl/keypad.h index 37733cc135c..83a1f1a904f 100644 --- a/src/devices/bus/vcs_ctrl/keypad.h +++ b/src/devices/bus/vcs_ctrl/keypad.h @@ -28,26 +28,28 @@ public: // construction/destruction vcs_keypad_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // optional information overrides - virtual ioport_constructor device_input_ports() const override; - -protected: - // device-level overrides - virtual void device_start() override; - // device_vcs_control_port_interface overrides - virtual uint8_t vcs_joy_r() override; - virtual void vcs_joy_w( uint8_t data ) override; - virtual uint8_t vcs_pot_x_r() override; - virtual uint8_t vcs_pot_y_r() override; + virtual uint8_t vcs_joy_r() override { return ~read_keys(2); } + virtual uint8_t vcs_pot_x_r() override { return read_keys(0); } + virtual uint8_t vcs_pot_y_r() override { return read_keys(1); } + virtual void vcs_joy_w(uint8_t data) override; virtual bool has_pot_x() override { return true; } virtual bool has_pot_y() override { return true; } +protected: + // device-level overrides + virtual void device_start() override ATTR_COLD; + + // optional information overrides + virtual ioport_constructor device_input_ports() const override ATTR_COLD; + private: + uint8_t read_keys(uint8_t column); + required_ioport m_keypad; - uint8_t m_column; + uint8_t m_row; }; |