--- nono/vm/sprite.h 2026/04/29 17:04:28 1.1 +++ nono/vm/sprite.h 2026/04/29 17:05:42 1.1.1.11 @@ -1,18 +1,22 @@ // // nono -// Copyright (C) 2017 isaki@NetBSD.org +// Copyright (C) 2020 nono project +// Licensed under nono-license.txt +// + +// +// スプライトコントローラ // #pragma once #include "device.h" -class SpriteDevice - : public IODevice +class SpriteDevice : public IODevice { - typedef IODevice inherited; - private: - static const int baseaddr = 0xeb0000; + using inherited = IODevice; + + static const uint32 baseaddr = 0xeb0000; struct sprite_scroll { uint16 xpos; @@ -38,15 +42,18 @@ class SpriteDevice public: SpriteDevice(); - virtual ~SpriteDevice(); + ~SpriteDevice() override; + + bool Init() override; - virtual uint64 Read8(uint32 addr); - virtual uint64 Read16(uint32 addr); - virtual uint64 Write8(uint32 addr, uint32 data); - virtual uint64 Write16(uint32 addr, uint32 data); - virtual uint64 Peek8(uint32 addr); + busdata Read(busaddr addr) override; + busdata Write(busaddr addr, uint32 data) override; + busdata Peek1(uint32 addr) override; private: + busdata Get16(uint32 addr) const; + busdata Set16(uint32 addr, uint32 data); + struct sprite_ctrl reg {}; - uint8 *mem = NULL; + std::unique_ptr mem {}; };