--- nono/vm/tvram.h 2026/04/29 17:05:10 1.1.1.8 +++ nono/vm/tvram.h 2026/04/29 17:05:17 1.1.1.9 @@ -12,6 +12,8 @@ #include "planevram.h" +class Renderer; + class TVRAMDevice : public PlaneVRAMDevice { using inherited = PlaneVRAMDevice; @@ -41,6 +43,9 @@ class TVRAMDevice : public PlaneVRAMDevi uint64 Write8(uint32 addr, uint32 data) override; uint64 Write16(uint32 addr, uint32 data) override; uint64 Peek8(uint32 addr) override; + uint64 Poke8(uint32 addr, uint32 data) override; + + void UpdateInfo(TextScreen&, int x, int y) const override; void SetAccessPlane(uint16 data); void SetAccessMask(uint16 data); @@ -54,7 +59,14 @@ class TVRAMDevice : public PlaneVRAMDevi inline void SetDirty(uint32 offset); + // X 方向にはみ出したときに対応する仮想画面の Y 座標を返す。 + int GetWrapY(int y) const override; + struct tvram tvram {}; + + Renderer *renderer {}; }; -#define gTVRAM (dynamic_cast(gPlaneVRAM)) +static inline TVRAMDevice *GetTVRAMDevice() { + return Object::GetObject(OBJ_PLANEVRAM); +}