--- nono/vm/romemu_luna88k.h 2026/04/29 17:04:59 1.1.1.8 +++ nono/vm/romemu_luna88k.h 2026/04/29 17:05:50 1.1.1.13 @@ -4,11 +4,15 @@ // Licensed under nono-license.txt // +// +// LUNA-88K の ROM エミュレーション +// + #pragma once #include "romemu_luna.h" -class m88kcpu; +class MPU88xx0Device; class Luna88kPROMEmuDevice : public LunaPROMEmuDevice { @@ -24,23 +28,22 @@ class Luna88kPROMEmuDevice : public Luna public: Luna88kPROMEmuDevice(); - virtual ~Luna88kPROMEmuDevice() override; + ~Luna88kPROMEmuDevice() override; bool Init() override; - void ResetHard() override; // DOS call エミュレーション - bool FLineCallback(m88kcpu *cpu); + bool FLineCallback(MPU88xx0Device *cpu); private: - uint32 ROM_Init() override; - uint32 ROM_Entry() override; - void GetChar(char asciicode) override; + void ROM_InitMD() override; + void ROM_Close() override; + void ProcessChar(char asciicode) override; + uint32 LoadFile(const std::string& fname) override; void Command() override; void CommandH(const std::vector& arg); void CommandB(const std::vector& arg); - void CommandBH(); void CommandNvram(const std::vector& arg); void CommandNvramShowAll(); void CommandNvramShow(const std::vector& arg); @@ -53,10 +56,8 @@ class Luna88kPROMEmuDevice : public Luna // NVRAM uint32 FindNVRAM(const std::string& key) const; - bool InitNVRAM(); - void GetNVRAM(bootinfo_t&); - - uint32 b_entrypoint {}; + bool InitNVRAM() override; + void GetNVRAM(bootinfo_t&) override; // nvram コマンドの遷移で覚えておくもの int nvram_offset {}; @@ -67,9 +68,4 @@ class Luna88kPROMEmuDevice : public Luna // 0 (PROMPT_DEFAULT) が通常の行入力プロンプト。 // PROMPT_NVRAM_* は nvram コマンドでの確認プロンプト。 int prompt_idx {}; - - // デフォルトプロンプト。 - // 本物は "O>" というプロンプトで、何の O か分からんけど(OMRON?)、 - // こっちは nono の頭文字ということにしておく。 - const std::string default_prompt = "N>"; };