1 // license:BSD-3-Clause 2 // copyright-holders:Nathan Woods 3 /***************************************************************************** 4 * 5 * includes/aquarius.h 6 * 7 ****************************************************************************/ 8 #ifndef MAME_INCLUDES_AQUARIUS_H 9 #define MAME_INCLUDES_AQUARIUS_H 10 11 #pragma once 12 13 #include "cpu/z80/z80.h" 14 #include "imagedev/cassette.h" 15 #include "machine/ram.h" 16 #include "sound/ay8910.h" 17 #include "sound/spkrdev.h" 18 #include "video/tea1002.h" 19 20 #include "bus/generic/slot.h" 21 #include "bus/generic/carts.h" 22 23 #include "formats/aquarius_caq.h" 24 25 #include "emupal.h" 26 #include "screen.h" 27 #include "tilemap.h" 28 29 30 class aquarius_state : public driver_device 31 { 32 public: aquarius_state(const machine_config & mconfig,device_type type,const char * tag)33 aquarius_state(const machine_config &mconfig, device_type type, const char *tag) 34 : driver_device(mconfig, type, tag) 35 , m_maincpu(*this, "maincpu") 36 , m_cassette(*this, "cassette") 37 , m_speaker(*this, "speaker") 38 , m_cart(*this, "cartslot") 39 , m_ram(*this, RAM_TAG) 40 , m_videoram(*this, "videoram") 41 , m_colorram(*this, "colorram") 42 , m_y0(*this, "Y0") 43 , m_y1(*this, "Y1") 44 , m_y2(*this, "Y2") 45 , m_y3(*this, "Y3") 46 , m_y4(*this, "Y4") 47 , m_y5(*this, "Y5") 48 , m_y6(*this, "Y6") 49 , m_y7(*this, "Y7") 50 , m_gfxdecode(*this, "gfxdecode") 51 , m_screen(*this, "screen") 52 , m_tea1002(*this, "encoder") 53 , m_palette(*this, "palette") 54 { } 55 56 void init_aquarius(); 57 58 DECLARE_INPUT_CHANGED_MEMBER(aquarius_reset); 59 60 void aquarius(machine_config &config); 61 62 protected: 63 virtual void video_start() override; 64 65 private: 66 required_device<cpu_device> m_maincpu; 67 required_device<cassette_image_device> m_cassette; 68 required_device<speaker_sound_device> m_speaker; 69 required_device<generic_slot_device> m_cart; 70 required_device<ram_device> m_ram; 71 required_shared_ptr<uint8_t> m_videoram; 72 required_shared_ptr<uint8_t> m_colorram; 73 required_ioport m_y0; 74 required_ioport m_y1; 75 required_ioport m_y2; 76 required_ioport m_y3; 77 required_ioport m_y4; 78 required_ioport m_y5; 79 required_ioport m_y6; 80 required_ioport m_y7; 81 required_device<gfxdecode_device> m_gfxdecode; 82 required_device<screen_device> m_screen; 83 required_device<tea1002_device> m_tea1002; 84 required_device<palette_device> m_palette; 85 86 uint8_t m_scrambler; 87 tilemap_t *m_tilemap; 88 89 void aquarius_videoram_w(offs_t offset, uint8_t data); 90 void aquarius_colorram_w(offs_t offset, uint8_t data); 91 uint8_t cassette_r(); 92 void cassette_w(uint8_t data); 93 uint8_t vsync_r(); 94 void mapper_w(uint8_t data); 95 uint8_t printer_r(); 96 void printer_w(uint8_t data); 97 uint8_t keyboard_r(offs_t offset); 98 void scrambler_w(uint8_t data); 99 uint8_t cartridge_r(offs_t offset); 100 TILE_GET_INFO_MEMBER(aquarius_gettileinfo); 101 void aquarius_palette(palette_device &palette) const; 102 uint32_t screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); 103 void aquarius_io(address_map &map); 104 void aquarius_mem(address_map &map); 105 }; 106 107 #endif // MAME_INCLUDES_AQUARIUS_H 108