diff options
Diffstat (limited to 'src/emu/bus/isa/sc499.h')
-rw-r--r-- | src/emu/bus/isa/sc499.h | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/emu/bus/isa/sc499.h b/src/emu/bus/isa/sc499.h index 84497db97e8..825706f43a4 100644 --- a/src/emu/bus/isa/sc499.h +++ b/src/emu/bus/isa/sc499.h @@ -21,6 +21,42 @@ // TYPE DEFINITIONS //************************************************************************** +// ======================> sc499_ctape_image_device + +class sc499_ctape_image_device : public device_t, public device_image_interface +{ +public: + // construction/destruction + sc499_ctape_image_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // image-level overrides + virtual bool call_load(); +// virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { return load_software(swlist, swname, start_entry); } + virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) { printf("%s\n", swname); return load_software(swlist, swname, start_entry); } + virtual void call_unload(); + virtual iodevice_t image_type() const { return IO_MAGTAPE; } + + virtual bool is_readable() const { return 1; } + virtual bool is_writeable() const { return 1; } + virtual bool is_creatable() const { return 1; } + virtual bool must_be_loaded() const { return 0; } + virtual bool is_reset_on_load() const { return 0; } + virtual const char *image_interface() const { return "sc499_cass"; } + virtual const char *file_extensions() const { return "act,ct"; } + virtual const option_guide *create_option_guide() const { return NULL; } + + UINT8 *read_block(int block_num); + void write_block(int block_num, UINT8 *ptr); + UINT64 tapelen() { return m_ctape_data.bytes(); } + +protected: + // device-level overrides + virtual void device_config_complete(); + virtual void device_start() { }; + + dynamic_buffer m_ctape_data; +}; + // ======================> sc499_device class sc499_device: public device_t, public device_isa8_card_interface @@ -105,8 +141,7 @@ private: UINT64 m_image_length; dynamic_buffer m_ctape_block_buffer; - - device_image_interface *m_image; + required_device<sc499_ctape_image_device> m_image; enum line_state irq_state; enum line_state dma_drq_state; @@ -119,6 +154,7 @@ private: bool m_installed; }; + // device type definition extern const device_type ISA8_SC499; |