1 // license:BSD-3-Clause 2 // copyright-holders:R. Belmont 3 #ifndef MAME_BUS_NUBUS_LASERVIEW_H 4 #define MAME_BUS_NUBUS_LASERVIEW_H 5 6 #pragma once 7 8 #include "nubus.h" 9 10 //************************************************************************** 11 // TYPE DEFINITIONS 12 //************************************************************************** 13 14 // ======================> nubus_laserview_device 15 16 class nubus_laserview_device : 17 public device_t, 18 public device_nubus_card_interface 19 { 20 public: 21 // construction/destruction 22 nubus_laserview_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 23 24 protected: 25 nubus_laserview_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); 26 27 // device-level overrides 28 virtual void device_start() override; 29 virtual void device_reset() override; 30 31 // optional information overrides 32 virtual void device_add_mconfig(machine_config &config) override; 33 virtual const tiny_rom_entry *device_rom_region() const override; 34 35 private: 36 uint32_t regs_r(offs_t offset, uint32_t mem_mask = ~0); 37 void regs_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0); 38 39 uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); 40 41 std::vector<uint8_t> m_vram; 42 uint32_t m_vbl_disable, m_palette[2]; 43 int m_prot_state; 44 int m_toggle; 45 }; 46 47 // device type definition 48 DECLARE_DEVICE_TYPE(NUBUS_LASERVIEW, nubus_laserview_device) 49 50 #endif // MAME_BUS_NUBUS_LASERVIEW_H 51