diff options
Diffstat (limited to 'src/mame/includes/svision.h')
-rw-r--r-- | src/mame/includes/svision.h | 76 |
1 files changed, 49 insertions, 27 deletions
diff --git a/src/mame/includes/svision.h b/src/mame/includes/svision.h index 147dd4cc63e..386ac2ff71d 100644 --- a/src/mame/includes/svision.h +++ b/src/mame/includes/svision.h @@ -39,40 +39,30 @@ class svision_state : public driver_device { public: svision_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag), - m_maincpu(*this, "maincpu"), - m_sound(*this, "custom"), - m_cart(*this, "cartslot"), - m_reg(*this, "reg"), - m_videoram(*this, "videoram"), - m_joy(*this, "JOY"), - m_joy2(*this, "JOY2"), - m_palette(*this, "palette") { } - - int *m_dma_finished; - svision_t m_svision; - svision_pet_t m_pet; - tvlink_t m_tvlink; + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "maincpu") + , m_sound(*this, "custom") + , m_cart(*this, "cartslot") + , m_reg(*this, "reg") + , m_videoram(*this, "videoram") + , m_screen(*this, "screen") + , m_joy(*this, "JOY") + , m_joy2(*this, "JOY2") + , m_palette(*this, "palette") + , m_bank1(*this, "bank1") + , m_bank2(*this, "bank2") + { } + DECLARE_WRITE_LINE_MEMBER(sound_irq_w); DECLARE_READ8_MEMBER(svision_r); DECLARE_WRITE8_MEMBER(svision_w); DECLARE_READ8_MEMBER(tvlink_r); DECLARE_WRITE8_MEMBER(tvlink_w); void init_svisions(); void init_svision(); - virtual void machine_start() override; - virtual void machine_reset() override; - DECLARE_PALETTE_INIT(svision); - DECLARE_PALETTE_INIT(svisionp); - DECLARE_PALETTE_INIT(svisionn); - DECLARE_MACHINE_RESET(tvlink); uint32_t screen_update_svision(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); uint32_t screen_update_tvlink(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(svision_frame_int); - TIMER_CALLBACK_MEMBER(svision_pet_timer); - TIMER_CALLBACK_MEMBER(svision_timer); - TIMER_DEVICE_CALLBACK_MEMBER(svision_pet_timer_dev); - void svision_irq(); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(svision_cart); void svisionp(machine_config &config); @@ -80,21 +70,53 @@ public: void tvlinkp(machine_config &config); void svision(machine_config &config); void svisionn(machine_config &config); + void svision_base(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + DECLARE_PALETTE_INIT(svision); + DECLARE_PALETTE_INIT(svisionp); + DECLARE_PALETTE_INIT(svisionn); + DECLARE_MACHINE_RESET(tvlink); + + enum + { + XSIZE = 0x00, + XPOS = 0x02, + YPOS = 0x03, + BANK = 0x26, + }; + + void check_irq(); + + TIMER_CALLBACK_MEMBER(svision_pet_timer); + TIMER_CALLBACK_MEMBER(svision_timer); + TIMER_DEVICE_CALLBACK_MEMBER(svision_pet_timer_dev); + void svision_mem(address_map &map); void tvlink_mem(address_map &map); -protected: + required_device<cpu_device> m_maincpu; required_device<svision_sound_device> m_sound; required_device<generic_slot_device> m_cart; required_shared_ptr<uint8_t> m_reg; required_shared_ptr<uint8_t> m_videoram; + required_device<screen_device> m_screen; required_ioport m_joy; optional_ioport m_joy2; required_device<palette_device> m_palette; + required_memory_bank m_bank1; + required_memory_bank m_bank2; + memory_region *m_cart_rom; - memory_bank *m_bank1; - memory_bank *m_bank2; + + svision_t m_svision; + svision_pet_t m_pet; + tvlink_t m_tvlink; + bool m_dma_finished; }; #endif // MAME_INCLUDES_SVISION_H |