1 // license:BSD-3-Clause 2 // copyright-holders:Zsolt Vasvari 3 4 #include "cpu/z80/z80.h" 5 #include "machine/gen_latch.h" 6 7 class zodiack_state : public driver_device 8 { 9 public: zodiack_state(const machine_config & mconfig,device_type type,const char * tag)10 zodiack_state(const machine_config &mconfig, device_type type, const char *tag) 11 : driver_device(mconfig, type, tag), 12 m_maincpu(*this, "maincpu"), 13 m_audiocpu(*this, "audiocpu"), 14 m_soundlatch(*this, "soundlatch") 15 { } 16 17 void zodiack(machine_config &config); 18 void percuss(machine_config &config); 19 20 protected: 21 virtual void machine_start() override; 22 virtual void machine_reset() override; 23 24 private: 25 void nmi_mask_w(uint8_t data); 26 void sound_nmi_enable_w(uint8_t data); 27 void master_soundlatch_w(uint8_t data); 28 void control_w(uint8_t data); 29 30 // devices 31 required_device<z80_device> m_maincpu; 32 required_device<z80_device> m_audiocpu; 33 required_device<generic_latch_8_device> m_soundlatch; 34 35 // state 36 uint8_t m_main_nmi_enabled; 37 uint8_t m_sound_nmi_enabled; 38 39 INTERRUPT_GEN_MEMBER(zodiack_sound_nmi_gen); 40 DECLARE_WRITE_LINE_MEMBER(vblank_main_nmi_w); 41 42 void io_map(address_map &map); 43 void main_map(address_map &map); 44 void sound_map(address_map &map); 45 }; 46