1 // license:BSD-3-Clause 2 // copyright-holders:Ernesto Corvi, Roberto Fresca 3 4 #ifndef MAME_INCLUDES_TRUCO_H 5 #define MAME_INCLUDES_TRUCO_H 6 7 #pragma once 8 9 #include "machine/watchdog.h" 10 #include "sound/dac.h" 11 #include "emupal.h" 12 13 class truco_state : public driver_device 14 { 15 public: truco_state(const machine_config & mconfig,device_type type,const char * tag)16 truco_state(const machine_config &mconfig, device_type type, const char *tag) : 17 driver_device(mconfig, type, tag), 18 m_maincpu(*this, "maincpu"), 19 m_watchdog(*this, "watchdog"), 20 m_palette(*this, "palette"), 21 m_dac(*this, "dac"), 22 m_videoram(*this, "videoram"), 23 m_battery_ram(*this, "battery_ram") 24 { } 25 26 void truco(machine_config &config); 27 28 protected: 29 virtual void machine_start() override; 30 virtual void machine_reset() override; 31 32 private: 33 required_device<cpu_device> m_maincpu; 34 required_device<watchdog_timer_device> m_watchdog; 35 required_device<palette_device> m_palette; 36 required_device<dac_bit_interface> m_dac; 37 38 required_shared_ptr<uint8_t> m_videoram; 39 required_shared_ptr<uint8_t> m_battery_ram; 40 41 int m_trigger; 42 43 void porta_w(uint8_t data); 44 DECLARE_WRITE_LINE_MEMBER(pia_ca2_w); 45 void portb_w(uint8_t data); 46 DECLARE_WRITE_LINE_MEMBER(pia_irqa_w); 47 DECLARE_WRITE_LINE_MEMBER(pia_irqb_w); 48 49 void truco_palette(palette_device &palette) const; 50 51 uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); 52 53 INTERRUPT_GEN_MEMBER(interrupt); 54 void main_map(address_map &map); 55 }; 56 57 #endif // MAME_INCLUDES_TRUCO_H 58