--- nono/vm/romemu_luna1.h 2026/04/29 17:04:50 1.1 +++ nono/vm/romemu_luna1.h 2026/04/29 17:05:25 1.1.1.5 @@ -4,6 +4,10 @@ // Licensed under nono-license.txt // +// +// LUNA-I の ROM エミュレーション +// + #pragma once #include "romemu_luna.h" @@ -14,41 +18,27 @@ class Luna1PROMEmuDevice : public LunaPR public: Luna1PROMEmuDevice(); - virtual ~Luna1PROMEmuDevice() override; + ~Luna1PROMEmuDevice() override; bool Init() override; - void ResetHard() override; private: - uint32 ROM_Init() override; - uint32 ROM_Entry() override; + void ROM_InitMD() override; void ROM_Close() override; + uint32 LoadFile(const std::string& fname) override; void Command() override; void CommandG(const std::vector& arg); - void CommandGH(); void CommandK(const std::vector& arg); bool CommandKInput(const std::string& val); void CommandX(); // NVRAM - uint8 CalcNVRAMCsum(); - void WriteNVRAMCsum(); - bool VerifyNVRAM(); - bool InitNVRAM(); - void GetNVRAM(bootinfo_t&); - - // 'x' コマンドなら true。 - bool x_executed {}; - - // 'g' コマンドで読み込んだプログラムのエントリポイント。 - // なければ 0。'x' コマンドで使う。 - uint32 x_entrypoint {}; + bool InitNVRAM() override; + void GetNVRAM(bootinfo_t&) override; // プロンプトの状態。 // 0 が通常プロンプト。 // 1 以降は k コマンドのプロンプトを示す int prompt_idx {}; - // デフォルトプロンプト - const std::string default_prompt = ">"; };