diff options
Diffstat (limited to 'src/devices/bus/nes/disksys.h')
-rw-r--r-- | src/devices/bus/nes/disksys.h | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/devices/bus/nes/disksys.h b/src/devices/bus/nes/disksys.h index 1e3e45afb1e..e8e06f8f326 100644 --- a/src/devices/bus/nes/disksys.h +++ b/src/devices/bus/nes/disksys.h @@ -7,6 +7,7 @@ #include "nxrom.h" #include "imagedev/flopdrv.h" +#include "sound/rp2c33_snd.h" // ======================> nes_disksys_device @@ -26,16 +27,15 @@ public: virtual void disk_flip_side() override; - virtual void hblank_irq(int scanline, int vblank, int blanked) override; + virtual void hblank_irq(int scanline, bool vblank, bool blanked) override; virtual void pcb_reset() override; protected: // device-level overrides - virtual void device_start() override; - virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override; + virtual void device_start() override ATTR_COLD; - virtual void device_add_mconfig(machine_config &config) override; - virtual const tiny_rom_entry *device_rom_region() const override; + virtual void device_add_mconfig(machine_config &config) override ATTR_COLD; + virtual const tiny_rom_entry *device_rom_region() const override ATTR_COLD; required_region_ptr<uint8_t> m_2c33_rom; @@ -43,17 +43,21 @@ private: static void load_proc(device_image_interface &image, bool is_created); static void unload_proc(device_image_interface &image); + TIMER_CALLBACK_MEMBER(irq_timer_tick); + std::unique_ptr<uint8_t[]> m_fds_data; // here, we store a copy of the disk required_device<legacy_floppy_image_device> m_disk; + required_device<rp2c33_sound_device> m_sound; - static const device_timer_id TIMER_IRQ = 0; emu_timer *irq_timer; void load_disk(device_image_interface &image); void unload_disk(device_image_interface &image); uint16_t m_irq_count, m_irq_count_latch; - int m_irq_enable, m_irq_transfer; + bool m_irq_enable, m_irq_repeat, m_irq_transfer; + bool m_disk_reg_enable; + bool m_sound_en; uint8_t m_fds_motor_on; uint8_t m_fds_door_closed; @@ -64,8 +68,8 @@ private: uint8_t m_drive_ready; uint8_t m_fds_sides; - int m_fds_last_side; - int m_fds_count; + int32_t m_fds_last_side; + int32_t m_fds_count; }; |