1 // license:BSD-3-Clause 2 // copyright-holders:Al Kossow 3 #ifndef MAME_INCLUDES_M79AMB_H 4 #define MAME_INCLUDES_M79AMB_H 5 6 #pragma once 7 8 #include "sound/discrete.h" 9 10 class m79amb_state : public driver_device 11 { 12 public: m79amb_state(const machine_config & mconfig,device_type type,const char * tag)13 m79amb_state(const machine_config &mconfig, device_type type, const char *tag) 14 : driver_device(mconfig, type, tag), 15 m_videoram(*this, "videoram"), 16 m_mask(*this, "mask"), 17 m_discrete(*this, "discrete"), 18 m_maincpu(*this, "maincpu"), 19 m_self_test(*this, "SELF_TEST") 20 { } 21 22 void m79amb(machine_config &config); 23 24 void init_m79amb(); 25 26 private: 27 void ramtek_videoram_w(offs_t offset, uint8_t data); 28 uint8_t gray5bit_controller0_r(); 29 uint8_t gray5bit_controller1_r(); 30 void m79amb_8000_w(uint8_t data); 31 void m79amb_8002_w(uint8_t data); 32 void m79amb_8003_w(uint8_t data); 33 34 INTERRUPT_GEN_MEMBER(m79amb_interrupt); 35 36 void machine_start() override; 37 38 uint32_t screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); 39 void main_map(address_map &map); 40 41 /* memory pointers */ 42 required_shared_ptr<uint8_t> m_videoram; 43 required_shared_ptr<uint8_t> m_mask; 44 required_device<discrete_device> m_discrete; 45 required_device<cpu_device> m_maincpu; 46 47 output_finder<> m_self_test; 48 49 /* misc */ 50 uint8_t m_lut_gun1[0x100]; 51 uint8_t m_lut_gun2[0x100]; 52 }; 53 54 /*----------- defined in audio/m79amb.c -----------*/ 55 56 DISCRETE_SOUND_EXTERN( m79amb_discrete ); 57 58 #endif // MAME_INCLUDES_M79AMB_H 59