diff options
Diffstat (limited to 'src/mame/machine/dc-ctrl.h')
-rw-r--r-- | src/mame/machine/dc-ctrl.h | 82 |
1 files changed, 42 insertions, 40 deletions
diff --git a/src/mame/machine/dc-ctrl.h b/src/mame/machine/dc-ctrl.h index 6d994289b70..3db218e3afc 100644 --- a/src/mame/machine/dc-ctrl.h +++ b/src/mame/machine/dc-ctrl.h @@ -9,29 +9,29 @@ #define MCFG_DC_CONTROLLER_ADD(_tag, _host_tag, _host_port, d0, d1, a0, a1, a2, a3, a4, a5) \ MCFG_MAPLE_DEVICE_ADD(_tag, DC_CONTROLLER, 0, _host_tag, _host_port) \ - downcast<dc_controller_device &>(*device).set_port_tag(0, d0); \ - downcast<dc_controller_device &>(*device).set_port_tag(1, d1); \ - downcast<dc_controller_device &>(*device).set_port_tag(2, a0); \ - downcast<dc_controller_device &>(*device).set_port_tag(3, a1); \ - downcast<dc_controller_device &>(*device).set_port_tag(4, a2); \ - downcast<dc_controller_device &>(*device).set_port_tag(5, a3); \ - downcast<dc_controller_device &>(*device).set_port_tag(6, a4); \ - downcast<dc_controller_device &>(*device).set_port_tag(7, a5); + downcast<dc_common_device &>(*device).set_port_tag(0, d0); \ + downcast<dc_common_device &>(*device).set_port_tag(1, d1); \ + downcast<dc_common_device &>(*device).set_port_tag(2, a0); \ + downcast<dc_common_device &>(*device).set_port_tag(3, a1); \ + downcast<dc_common_device &>(*device).set_port_tag(4, a2); \ + downcast<dc_common_device &>(*device).set_port_tag(5, a3); \ + downcast<dc_common_device &>(*device).set_port_tag(6, a4); \ + downcast<dc_common_device &>(*device).set_port_tag(7, a5); #define MCFG_DC_CONTROLLER_SET_ID(id) \ - downcast<dc_controller_device &>(*device).set_id(id); + downcast<dc_common_device &>(*device).set_id(id); #define MCFG_DC_CONTROLLER_SET_LICENSE(license) \ - downcast<dc_controller_device &>(*device).set_license(license); + downcast<dc_common_device &>(*device).set_license(license); #define MCFG_DC_CONTROLLER_SET_VERSIONS(versions) \ - ddowncast<dc_controller_device &>(*device).set_versions(versions); + ddowncast<dc_common_device &>(*device).set_versions(versions); -class dc_controller_device : public maple_device +class dc_common_device : public maple_device { public: // construction/destruction - dc_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + dc_common_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); void set_port_tag(int port, const char *tag) { port_tag[port] = tag; } void set_id(const char *new_id) { id = new_id; } @@ -44,50 +44,52 @@ protected: // device-level overrides virtual void device_start() override; -private: - void fixed_status(uint32_t *dest); - void free_status(uint32_t *dest); - void read(uint32_t *dest); - const char *port_tag[8]; const char *id, *license, *versions; ioport_port *port[8]; + + virtual void fixed_status(uint32_t *dest) = 0; + virtual void free_status(uint32_t *dest) = 0; + virtual void read(uint32_t *dest) = 0; +}; + +class dc_controller_device : public dc_common_device +{ +public: + // construction/destruction + dc_controller_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + +private: + void fixed_status(uint32_t *dest) override; + void free_status(uint32_t *dest) override; + void read(uint32_t *dest) override; }; #define MCFG_DC_KEYBOARD_ADD(_tag, _host_tag, _host_port, d0, d1, a0, a1, a2, a3, a4, a5) \ MCFG_MAPLE_DEVICE_ADD(_tag, DC_KEYBOARD, 0, _host_tag, _host_port) \ - downcast<dc_controller_device &>(*device).set_port_tag(0, d0); \ - downcast<dc_controller_device &>(*device).set_port_tag(1, d1); \ - downcast<dc_controller_device &>(*device).set_port_tag(2, a0); \ - downcast<dc_controller_device &>(*device).set_port_tag(3, a1); \ - downcast<dc_controller_device &>(*device).set_port_tag(4, a2); \ - downcast<dc_controller_device &>(*device).set_port_tag(5, a3); \ - downcast<dc_controller_device &>(*device).set_port_tag(6, a4); \ - downcast<dc_controller_device &>(*device).set_port_tag(7, a5); + downcast<dc_common_device &>(*device).set_port_tag(0, d0); \ + downcast<dc_common_device &>(*device).set_port_tag(1, d1); \ + downcast<dc_common_device &>(*device).set_port_tag(2, a0); \ + downcast<dc_common_device &>(*device).set_port_tag(3, a1); \ + downcast<dc_common_device &>(*device).set_port_tag(4, a2); \ + downcast<dc_common_device &>(*device).set_port_tag(5, a3); \ + downcast<dc_common_device &>(*device).set_port_tag(6, a4); \ + downcast<dc_common_device &>(*device).set_port_tag(7, a5); -class dc_keyboard_device : public maple_device +class dc_keyboard_device : public dc_common_device { public: // construction/destruction dc_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - void maple_w(const uint32_t *data, uint32_t in_size) override; -protected: - // device-level overrides - virtual void device_start() override; +//protected: private: - void fixed_status(uint32_t *dest); - void free_status(uint32_t *dest); - void read(uint32_t *dest); - - const char *port_tag[8]; - const char *id, *license, *versions; - - ioport_port *port[8]; + void fixed_status(uint32_t *dest) override; + void free_status(uint32_t *dest) override; + void read(uint32_t *dest) override; }; DECLARE_DEVICE_TYPE(DC_CONTROLLER, dc_controller_device) |