diff options
Diffstat (limited to 'src/devices/bus/oricext/oricext.h')
-rw-r--r-- | src/devices/bus/oricext/oricext.h | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/devices/bus/oricext/oricext.h b/src/devices/bus/oricext/oricext.h index 8cfb67aa8e5..3030888ec9d 100644 --- a/src/devices/bus/oricext/oricext.h +++ b/src/devices/bus/oricext/oricext.h @@ -17,50 +17,56 @@ class device_oricext_interface; class oricext_connector: public device_t, public device_single_card_slot_interface<device_oricext_interface> { + friend class device_oricext_interface; + public: template <typename T> - oricext_connector(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt, const char *cputag) + oricext_connector(const machine_config &mconfig, const char *tag, device_t *owner, T &&opts, const char *dflt) : oricext_connector(mconfig, tag, owner, (uint32_t)0) { option_reset(); opts(*this); set_default_option(dflt); set_fixed(false); - set_cputag(cputag); } oricext_connector(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); virtual ~oricext_connector(); - void set_cputag(const char *tag); auto irq_callback() { return irq_handler.bind(); } + auto reset_callback() { return reset_handler.bind(); } + void irq_w(int state); + void reset_w(int state); + + void set_view(memory_view &view); + void map_io(address_space_installer &space); + void map_rom(); protected: virtual void device_start() override; - virtual void device_config_complete() override; devcb_write_line irq_handler; - const char *cputag; + devcb_write_line reset_handler; }; class device_oricext_interface : public device_interface { public: - void set_cputag(const char *tag); - DECLARE_WRITE_LINE_MEMBER(irq_w); + void irq_w(int state); + void reset_w(int state); + + void set_view(memory_view &view); + virtual void map_io(address_space_installer &space) = 0; + virtual void map_rom() = 0; protected: device_oricext_interface(const machine_config &mconfig, device_t &device); virtual void interface_pre_start() override; - const char *cputag; - m6502_device *cpu; + memory_view *view; oricext_connector *connector; - memory_bank *bank_c000_r, *bank_e000_r, *bank_f800_r, *bank_c000_w, *bank_e000_w, *bank_f800_w; - uint8_t *rom, *ram; - uint8_t junk_read[8192], junk_write[8192]; }; DECLARE_DEVICE_TYPE(ORICEXT_CONNECTOR, oricext_connector) |