diff options
Diffstat (limited to 'src/devices/bus/ti99/peb/hfdc.h')
-rw-r--r-- | src/devices/bus/ti99/peb/hfdc.h | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/src/devices/bus/ti99/peb/hfdc.h b/src/devices/bus/ti99/peb/hfdc.h index d10cf3a9eae..a600412849a 100644 --- a/src/devices/bus/ti99/peb/hfdc.h +++ b/src/devices/bus/ti99/peb/hfdc.h @@ -37,27 +37,26 @@ class myarc_hfdc_device : public device_t, public device_ti99_peribox_card_inter public: myarc_hfdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - void readz(offs_t offset, uint8_t *value) override; - void write(offs_t offset, uint8_t data) override; - void setaddress_dbin(offs_t offset, int state) override; - void crureadz(offs_t offset, uint8_t *value) override; - void cruwrite(offs_t offset, uint8_t data) override; + virtual void readz(offs_t offset, uint8_t *value) override; + virtual void write(offs_t offset, uint8_t data) override; + virtual void setaddress_dbin(offs_t offset, int state) override; + virtual void crureadz(offs_t offset, uint8_t *value) override; + virtual void cruwrite(offs_t offset, uint8_t data) override; protected: - void device_config_complete() override; + virtual void device_start() override; + virtual void device_reset() override; -private: - void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; - void device_start() override; - void device_reset() override; - - const tiny_rom_entry *device_rom_region() const override; + virtual const tiny_rom_entry *device_rom_region() const override; virtual void device_add_mconfig(machine_config &config) override; - ioport_constructor device_input_ports() const override; + virtual ioport_constructor device_input_ports() const override; + + TIMER_CALLBACK_MEMBER(motor_off); - DECLARE_WRITE_LINE_MEMBER( dmarq_w ); - DECLARE_WRITE_LINE_MEMBER( intrq_w ); - DECLARE_WRITE_LINE_MEMBER( dip_w ); +private: + void dmarq_w(int state); + void intrq_w(int state); + void dip_w(int state); void auxbus_out(offs_t offset, uint8_t data); uint8_t read_buffer(); void write_buffer(uint8_t data); @@ -100,10 +99,10 @@ private: required_device<mm58274c_device> m_clock; // Link to the attached floppy drives - floppy_image_device* m_floppy_unit[4]; + required_device_array<floppy_connector, 4> m_floppy; // Link to the attached hard disks - mfm_harddisk_device* m_harddisk_unit[3]; + required_device_array<mfm_harddisk_connector, 3> m_harddisk; // Currently selected floppy drive floppy_image_device* m_current_floppy; @@ -111,6 +110,12 @@ private: // Currently selected hard drive mfm_harddisk_device* m_current_harddisk; + // Currently selected floppy disk index + int m_current_floppy_index; + + // Currently selected hard disk index + int m_current_hd_index; + // True: Access to DIP switch settings, false: access to line states bool m_see_switches; |