--- nono/vm/xiospace.cpp 2026/04/29 17:04:53 1.1.1.7 +++ nono/vm/xiospace.cpp 2026/04/29 17:04:59 1.1.1.9 @@ -35,8 +35,7 @@ // // 1つの 8KB ブロックを複数のデバイスで共有する場合 -class MuxDevice - : public IODevice +class MuxDevice : public IODevice { using inherited = IODevice; public: @@ -57,8 +56,8 @@ class MuxDevice }; MuxDevice::MuxDevice() + : inherited("MuxDevice") { - logname = "none"; } MuxDevice::~MuxDevice() @@ -72,7 +71,7 @@ MuxDevice::AddDevice(IODevice *dev) { if (dev->devlen == 0) { printf("MuxDevice::AddDevice: '%s' devlen not set!\n", - dev->devname.c_str()); + dev->GetName().c_str()); exit(1); } devlist.push_back(dev); @@ -144,10 +143,8 @@ std::unique_ptr gXIOSpac // コンストラクタ XIOSpaceDevice::XIOSpaceDevice() + : inherited("IOSpace") { - logname = "xiospace"; - devname = "IOSpace"; - #define ADD_DEVICE(varname, clsname) do { \ varname.reset(new clsname); \ AddDevice(varname.get()); \ @@ -202,13 +199,13 @@ XIOSpaceDevice::Init() // デバッグ表示 if (0) { - for (int i = 0; i < 512; i++) { - printf("[%3d] $%06x ", i, 0xc00000 + i * 8192); + for (int i = 1536; i < table.size(); i++) { + printf("[%3d] $%06x ", i, i * 8192); assert(table[i]); if (dynamic_cast(table[i])) { printf("MuxDevice\n"); } else { - printf("%s\n", table[i]->devname.c_str()); + printf("%s\n", table[i]->GetName().c_str()); } } } @@ -223,12 +220,12 @@ XIOSpaceDevice::AddDevice(IODevice *dev) { if (dev->devaddr == 0) { printf("XIOSpaceDevice:AddDevice: '%s' devaddr not set!\n", - dev->devname.c_str()); + dev->GetName().c_str()); exit(1); } if (dev->devlen == 0) { printf("XIOSpaceDevice:AddDevice: '%s' devlen not set!\n", - dev->devname.c_str()); + dev->GetName().c_str()); exit(1); } @@ -318,7 +315,7 @@ XIOSpaceDevice::SwitchBootPage(bool isro // 0x000000 からの 64KB ( 8エントリ)、 // 0xfe0000 からの 128KB (16エントリ) のどちらも IPLROM0 が担当する。 ram = gIPLROM0.get(); - rom = ram; + rom = gIPLROM0.get(); } else { // 0x000000 からの 64KB ( 8エントリ) に RAM を見せる。 // 0xfe0000 からの 128KB (16エントリ) に IPLROM1 を見せる。