1 // license:BSD-3-Clause 2 // copyright-holders:Nicola Salmoria 3 #ifndef MAME_INCLUDES_TAXIDRIV_H 4 #define MAME_INCLUDES_TAXIDRIV_H 5 6 #pragma once 7 8 #include "emupal.h" 9 10 class taxidriv_state : public driver_device 11 { 12 public: taxidriv_state(const machine_config & mconfig,device_type type,const char * tag)13 taxidriv_state(const machine_config &mconfig, device_type type, const char *tag) : 14 driver_device(mconfig, type, tag), 15 m_maincpu(*this, "maincpu"), 16 m_gfxdecode(*this, "gfxdecode"), 17 m_palette(*this, "palette"), 18 m_vram0(*this, "vram0"), 19 m_vram1(*this, "vram1"), 20 m_vram2(*this, "vram2"), 21 m_vram3(*this, "vram3"), 22 m_vram4(*this, "vram4"), 23 m_vram5(*this, "vram5"), 24 m_vram6(*this, "vram6"), 25 m_vram7(*this, "vram7"), 26 m_scroll(*this, "scroll") 27 { } 28 29 void taxidriv(machine_config &config); 30 31 protected: 32 virtual void machine_start() override; 33 34 private: 35 required_device<cpu_device> m_maincpu; 36 required_device<gfxdecode_device> m_gfxdecode; 37 required_device<palette_device> m_palette; 38 39 required_shared_ptr<uint8_t> m_vram0; 40 required_shared_ptr<uint8_t> m_vram1; 41 required_shared_ptr<uint8_t> m_vram2; 42 required_shared_ptr<uint8_t> m_vram3; 43 required_shared_ptr<uint8_t> m_vram4; 44 required_shared_ptr<uint8_t> m_vram5; 45 required_shared_ptr<uint8_t> m_vram6; 46 required_shared_ptr<uint8_t> m_vram7; 47 required_shared_ptr<uint8_t> m_scroll; 48 49 int m_s1; 50 int m_s2; 51 int m_s3; 52 int m_s4; 53 int m_latchA; 54 int m_latchB; 55 int m_bghide; 56 int m_spritectrl[9]; 57 58 void p2a_w(uint8_t data); 59 void p2b_w(uint8_t data); 60 void p2c_w(uint8_t data); 61 void p3a_w(uint8_t data); 62 void p3b_w(uint8_t data); 63 void p3c_w(uint8_t data); 64 void p4a_w(uint8_t data); 65 void p4b_w(uint8_t data); 66 void p4c_w(uint8_t data); 67 uint8_t p0a_r(); 68 uint8_t p0c_r(); 69 void p0b_w(uint8_t data); 70 void p0c_w(uint8_t data); 71 uint8_t p1b_r(); 72 uint8_t p1c_r(); 73 void p1a_w(uint8_t data); 74 void p1c_w(uint8_t data); 75 uint8_t p8910_0a_r(); 76 uint8_t p8910_1a_r(); 77 void p8910_0b_w(uint8_t data); 78 void spritectrl_w(offs_t offset, uint8_t data); 79 80 void taxidriv_palette(palette_device &palette) const; 81 82 uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 83 void cpu2_map(address_map &map); 84 void cpu3_map(address_map &map); 85 void cpu3_port_map(address_map &map); 86 void main_map(address_map &map); 87 }; 88 89 #endif // MAME_INCLUDES_TAXIDRIV_H 90