1 // license:BSD-3-Clause 2 // copyright-holders:Angelo Salese, Pierpaolo Prazzoli 3 #ifndef MAME_INCLUDES_SPEEDATK_H 4 #define MAME_INCLUDES_SPEEDATK_H 5 6 #pragma once 7 8 #include "video/mc6845.h" 9 #include "emupal.h" 10 11 class speedatk_state : public driver_device 12 { 13 public: speedatk_state(const machine_config & mconfig,device_type type,const char * tag)14 speedatk_state(const machine_config &mconfig, device_type type, const char *tag) : 15 driver_device(mconfig, type, tag), 16 m_maincpu(*this, "maincpu"), 17 m_crtc(*this, "crtc"), 18 m_gfxdecode(*this, "gfxdecode"), 19 m_palette(*this, "palette"), 20 m_videoram(*this, "videoram"), 21 m_colorram(*this, "colorram") 22 { } 23 24 void speedatk(machine_config &config); 25 26 private: 27 required_device<cpu_device> m_maincpu; 28 required_device<mc6845_device> m_crtc; 29 required_device<gfxdecode_device> m_gfxdecode; 30 required_device<palette_device> m_palette; 31 32 required_shared_ptr<uint8_t> m_videoram; 33 required_shared_ptr<uint8_t> m_colorram; 34 35 uint8_t m_crtc_vreg[0x100]; 36 uint8_t m_crtc_index; 37 uint8_t m_flip_scr; 38 uint8_t m_mux_data; 39 uint8_t m_km_status; 40 uint8_t m_coin_settings; 41 uint8_t m_coin_impulse; 42 43 uint8_t key_matrix_r(); 44 void key_matrix_w(uint8_t data); 45 uint8_t key_matrix_status_r(); 46 void key_matrix_status_w(uint8_t data); 47 void m6845_w(offs_t offset, uint8_t data); 48 void output_w(uint8_t data); 49 50 virtual void machine_start() override; 51 virtual void video_start() override; 52 void speedatk_palette(palette_device &palette) const; 53 54 uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); 55 56 uint8_t iox_key_matrix_calc(uint8_t p_side); 57 58 void speedatk_io(address_map &map); 59 void speedatk_mem(address_map &map); 60 }; 61 62 #endif // MAME_INCLUDES_SPEEDATK_H 63