1 // license:BSD-3-Clause 2 // copyright-holders:Mathis Rosenhauer 3 /************************************************************************* 4 5 Centuri Aztarac hardware 6 7 *************************************************************************/ 8 9 #include "cpu/m68000/m68000.h" 10 #include "machine/gen_latch.h" 11 #include "machine/x2212.h" 12 #include "video/vector.h" 13 #include "screen.h" 14 15 class aztarac_state : public driver_device 16 { 17 public: aztarac_state(const machine_config & mconfig,device_type type,const char * tag)18 aztarac_state(const machine_config &mconfig, device_type type, const char *tag) 19 : driver_device(mconfig, type, tag), 20 m_maincpu(*this, "maincpu"), 21 m_audiocpu(*this, "audiocpu"), 22 m_nvram(*this, "nvram"), 23 m_vector(*this, "vector"), 24 m_screen(*this, "screen"), 25 m_soundlatch(*this, "soundlatch"), 26 m_vectorram(*this, "vectorram") { } 27 28 required_device<cpu_device> m_maincpu; 29 required_device<cpu_device> m_audiocpu; 30 required_device<x2212_device> m_nvram; 31 required_device<vector_device> m_vector; 32 required_device<screen_device> m_screen; 33 required_device<generic_latch_8_device> m_soundlatch; 34 35 required_shared_ptr<uint16_t> m_vectorram; 36 37 int m_sound_status; 38 int m_xcenter; 39 int m_ycenter; 40 41 void nvram_store_w(uint16_t data); 42 uint16_t joystick_r(); 43 void ubr_w(uint8_t data); 44 uint16_t sound_r(); 45 void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0); 46 uint8_t snd_command_r(); 47 uint8_t snd_status_r(); 48 void snd_status_w(uint8_t data); 49 50 virtual void machine_start() override; 51 virtual void machine_reset() override; 52 virtual void video_start() override; 53 54 DECLARE_WRITE_LINE_MEMBER(video_interrupt); 55 INTERRUPT_GEN_MEMBER(snd_timed_irq); 56 57 inline void read_vectorram(uint16_t *vectorram, int addr, int *x, int *y, int *c); 58 void aztarac(machine_config &config); 59 void main_map(address_map &map); 60 void sound_map(address_map &map); 61 }; 62