--- nono/vm/cmmu.h 2026/04/29 17:05:11 1.1.1.4 +++ nono/vm/cmmu.h 2026/04/29 17:05:18 1.1.1.5 @@ -11,7 +11,9 @@ #pragma once #include "device.h" -#include "m88200.h" +#include + +class m88200; class CMMUDevice : public IODevice { @@ -52,18 +54,21 @@ class CMMUDevice : public IODevice // アドレスデコーダ static uint32 Decoder(uint32 addr); + // Peek8() の下請け + uint32 Peek32(uint32 addr) const; + // 指定された ID の CMMU(m88200) を返す。なければ NULL を返す。 m88200 *GetCMMU(uint id) const { - if (id >= countof(cmmus) || cmmus[id] == NULL) { + if (id >= cmmus.size()) { return NULL; } return cmmus[id]; } - // CMMU へのリンク (最大 4 MPU) - m88200 *cmmus[8] {}; - // Peek8() の下請け - uint32 Peek32(uint32 addr) const; + // CMMU へのリンク (最大 4 MPU) + std::array cmmus {}; }; -extern CMMUDevice *gCMMU; +static inline CMMUDevice *GetCMMUDevice() { + return Object::GetObject(OBJ_CMMUIO); +}