1 // license:BSD-3-Clause 2 // copyright-holders:Krzysztof Strzecha, Nathan Woods 3 /***************************************************************************** 4 * 5 * includes/dai.h 6 * 7 ****************************************************************************/ 8 9 #ifndef MAME_INCLUDES_DAI_H 10 #define MAME_INCLUDES_DAI_H 11 12 #include "cpu/i8085/i8085.h" 13 #include "audio/dai_snd.h" 14 #include "machine/i8255.h" 15 #include "machine/pit8253.h" 16 #include "machine/tms5501.h" 17 #include "imagedev/cassette.h" 18 #include "machine/timer.h" 19 #include "emupal.h" 20 21 22 class dai_state : public driver_device 23 { 24 public: dai_state(const machine_config & mconfig,device_type type,const char * tag)25 dai_state(const machine_config &mconfig, device_type type, const char *tag) 26 : driver_device(mconfig, type, tag) 27 , m_maincpu(*this, "maincpu") 28 , m_pit(*this, "pit") 29 , m_tms5501(*this, "tms5501") 30 , m_sound(*this, "custom") 31 , m_cassette(*this, "cassette") 32 , m_rom(*this, "maincpu") 33 , m_ram(*this, "mainram") 34 , m_palette(*this, "palette") 35 , m_io_keyboard(*this, "IN%u", 0U) 36 , m_tms_timer(*this, "tms_timer") 37 { } 38 39 void dai(machine_config &config); 40 41 private: 42 u8 m_paddle_select; 43 u8 m_paddle_enable; 44 u8 m_cassette_motor[2]; 45 u8 m_keyboard_scan_mask; 46 u8 m_4_colours_palette[4]; 47 void stack_interrupt_circuit_w(u8 data); 48 u8 io_discrete_devices_r(offs_t offset); 49 void io_discrete_devices_w(offs_t offset, u8 data); 50 u8 amd9511_r(); 51 void amd9511_w(offs_t offset, u8 data); 52 u8 pit_r(offs_t offset); 53 void pit_w(offs_t offset, u8 data); 54 u8 keyboard_r(); 55 void keyboard_w(u8 data); 56 void dai_palette(palette_device &palette) const; 57 u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 58 IRQ_CALLBACK_MEMBER(int_ack); 59 TIMER_DEVICE_CALLBACK_MEMBER(tms_timer); 60 61 void mem_map(address_map &map); 62 63 static const rgb_t s_palette[16]; 64 65 virtual void machine_start() override; 66 virtual void machine_reset() override; 67 68 memory_passthrough_handler *m_rom_shadow_tap; 69 required_device<cpu_device> m_maincpu; 70 required_device<pit8253_device> m_pit; 71 required_device<tms5501_device> m_tms5501; 72 required_device<dai_sound_device> m_sound; 73 required_device<cassette_image_device> m_cassette; 74 required_region_ptr<u8> m_rom; 75 required_shared_ptr<u8> m_ram; 76 required_device<palette_device> m_palette; 77 required_ioport_array<9> m_io_keyboard; 78 required_device<timer_device> m_tms_timer; 79 }; 80 81 82 #endif // MAME_INCLUDES_DAI_H 83