1 // license:BSD-3-Clause 2 // copyright-holders:Howie Cohen, Yochizo 3 // thanks-to:Richard Bush 4 #ifndef MAME_INCLUDES_TAITO_X_H 5 #define MAME_INCLUDES_TAITO_X_H 6 7 #pragma once 8 9 #include "includes/seta.h" 10 #include "machine/taitocchip.h" 11 #include "machine/timer.h" 12 13 class taitox_state : public seta_state 14 { 15 public: taitox_state(const machine_config & mconfig,device_type type,const char * tag)16 taitox_state(const machine_config &mconfig, device_type type, const char *tag) : 17 seta_state(mconfig, type, tag), 18 m_cchip(*this, "cchip"), 19 m_cchip_irq_clear(*this, "cchip_irq_clear"), 20 m_z80bank(*this, "z80bank"), 21 m_dswa_io(*this, "DSWA"), 22 m_dswb_io(*this, "DSWB"), 23 m_in_io(*this, "IN%u", 0U) 24 { } 25 26 void superman(machine_config &config); 27 void ballbros(machine_config &config); 28 void kyustrkr(machine_config &config); 29 void gigandes(machine_config &config); 30 void daisenpu(machine_config &config); 31 32 private: 33 u16 superman_dsw_input_r(offs_t offset); 34 void superman_counters_w(u8 data); 35 u16 daisenpu_input_r(offs_t offset); 36 void daisenpu_input_w(offs_t offset, u16 data); 37 void kyustrkr_input_w(offs_t offset, u16 data); 38 void sound_bankswitch_w(u8 data); 39 DECLARE_MACHINE_START(taitox); 40 41 INTERRUPT_GEN_MEMBER(interrupt); 42 TIMER_DEVICE_CALLBACK_MEMBER(cchip_irq_clear_cb); 43 44 void ballbros_map(address_map &map); 45 void daisenpu_map(address_map &map); 46 void daisenpu_sound_map(address_map &map); 47 void gigandes_map(address_map &map); 48 void kyustrkr_map(address_map &map); 49 void sound_map(address_map &map); 50 void superman_map(address_map &map); 51 void taito_x_base_map(address_map &map); 52 53 optional_device<taito_cchip_device> m_cchip; 54 optional_device<timer_device> m_cchip_irq_clear; 55 required_memory_bank m_z80bank; 56 optional_ioport m_dswa_io; 57 optional_ioport m_dswb_io; 58 optional_ioport_array<3> m_in_io; 59 }; 60 61 #endif // MAME_INCLUDES_TAITO_X_H 62