--- nono/vm/romimg_x68k.cpp 2026/04/29 17:04:59 1.1.1.7 +++ nono/vm/romimg_x68k.cpp 2026/04/29 17:05:11 1.1.1.8 @@ -4,8 +4,10 @@ // Licensed under nono-license.txt // +// // X680x0 の各種 ROM // + // IODevice // | // +-- ROMDevice (LoadROM()、ウェイト、マスク等を持つ) @@ -38,15 +40,16 @@ #include "romimg_x68k.h" #include "cgrom.h" #include "mainapp.h" -#include "pluto.h" -#include "scheduler.h" -std::unique_ptr gCGROM; -std::unique_ptr gIPLROM0; -std::unique_ptr gIPLROM1; -std::unique_ptr gIPLROM2; +// グローバル参照用 +CGROMDevice *gCGROM; +IPLROM0Device *gIPLROM0; +IPLROM1Device *gIPLROM1; +IPLROM2Device *gIPLROM2; // +// IPLROM0 +// // IPLROM0 は IPLROM(1) のブートページ担当。 // これ自身はメモリ領域を持たず IPLROM1 へのプロキシとして動作する。 // @@ -55,26 +58,30 @@ std::unique_ptr gIPLROM2; // ROM へアクセスがあればブートページを RAM に切り替える。 // そのため、RAM 側も ROM 側もこいつが応対する必要がある。 +// コンストラクタ IPLROM0Device::IPLROM0Device() - : inherited("IPLROM(0)") + : inherited("IPLROM(BOOT)") { ClearAlias(); - AddAlias("IPLROM0"); + AddAlias("IPLROMBOOT"); } +// デストラクタ IPLROM0Device::~IPLROM0Device() { + gIPLROM0 = NULL; } bool IPLROM0Device::Init() { - iplrom1 = gIPLROM1.get(); + iplrom1 = gIPLROM1; return true; } +// リセット void -IPLROM0Device::ResetHard() +IPLROM0Device::ResetHard(bool poweron) { gVM->SwitchBootPageToROM(this); } @@ -128,6 +135,7 @@ IPLROM0Device::Peek8(uint32 addr) // IPLROM(1) // +// コンストラクタ IPLROM1Device::IPLROM1Device() : inherited("IPLROM(1)") { @@ -142,8 +150,10 @@ IPLROM1Device::IPLROM1Device() write_op = -1; } +// デストラクタ IPLROM1Device::~IPLROM1Device() { + gIPLROM1 = NULL; } bool @@ -168,6 +178,7 @@ IPLROM1Device::Init() // IPLROM(2) // +// コンストラクタ IPLROM2Device::IPLROM2Device() : inherited("IPLROM(2)") { @@ -182,8 +193,10 @@ IPLROM2Device::IPLROM2Device() write_op = -1; } +// デストラクタ IPLROM2Device::~IPLROM2Device() { + gIPLROM2 = NULL; } bool @@ -204,6 +217,7 @@ IPLROM2Device::Init() // CGROM // +// コンストラクタ CGROMDevice::CGROMDevice() : inherited("CGROM") { @@ -215,8 +229,10 @@ CGROMDevice::CGROMDevice() write_op = -1; } +// デストラクタ CGROMDevice::~CGROMDevice() { + gCGROM = NULL; } bool