diff options
Diffstat (limited to 'src/devices/bus/qbus/pc11.h')
-rw-r--r-- | src/devices/bus/qbus/pc11.h | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/src/devices/bus/qbus/pc11.h b/src/devices/bus/qbus/pc11.h index 163e661c9c9..2247fb54f72 100644 --- a/src/devices/bus/qbus/pc11.h +++ b/src/devices/bus/qbus/pc11.h @@ -13,8 +13,8 @@ #include "qbus.h" +#include "imagedev/papertape.h" #include "machine/pdp11.h" -#include "softlist_dev.h" #define PTRCSR_IMP (CSR_ERR + CSR_BUSY + CSR_DONE + CSR_IE) @@ -29,43 +29,35 @@ // ======================> pc11_device -class pc11_device : public device_t, - public device_image_interface, +class pc11_device : public paper_tape_reader_device, public device_qbus_card_interface { public: // construction/destruction pc11_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // image-level overrides - virtual iodevice_t image_type() const noexcept override { return IO_PUNCHTAPE; } - - virtual bool is_readable() const noexcept override { return true; } - virtual bool is_writeable() const noexcept override { return false; } - virtual bool is_creatable() const noexcept override { return false; } - virtual bool must_be_loaded() const noexcept override { return false; } - virtual bool is_reset_on_load() const noexcept override { return false; } + // device_image_interface implementation virtual const char *image_interface() const noexcept override { return "pdp11_ptap"; } virtual const char *file_extensions() const noexcept override { return "bin,bim,lda"; } - virtual image_init_result call_load() override; + virtual std::pair<std::error_condition, std::string> call_load() override; virtual void call_unload() override; - virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); } uint16_t read(offs_t offset); void write(offs_t offset, uint16_t data); protected: - // device-level overrides + // device_t implementation virtual void device_start() override; virtual void device_reset() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - // device_z80daisy_interface overrides + // device_z80daisy_interface implementation virtual int z80daisy_irq_state() override; virtual int z80daisy_irq_ack() override; virtual void z80daisy_irq_reti() override; + TIMER_CALLBACK_MEMBER(read_tick); + private: int m_rxvec; int m_txvec; @@ -80,6 +72,8 @@ private: uint16_t m_tcsr; uint16_t m_tbuf; + emu_timer *m_read_timer; + const char *pc11_regnames[4]; }; @@ -87,4 +81,4 @@ private: // device type definition DECLARE_DEVICE_TYPE(DEC_PC11, pc11_device) -#endif +#endif // MAME_BUS_QBUS_PC11_H |