|
|
1.1 root 1: //
2: // nono
3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
5: //
6:
7: #pragma once
8:
9: #include "romemu_luna.h"
10:
11: class Luna1PROMEmuDevice : public LunaPROMEmuDevice
12: {
13: using inherited = LunaPROMEmuDevice;
14:
15: public:
16: Luna1PROMEmuDevice();
17: virtual ~Luna1PROMEmuDevice() override;
18:
19: bool Init() override;
20: void ResetHard() override;
21:
22: private:
23: uint32 ROM_Init() override;
24: uint32 ROM_Entry() override;
25: void ROM_Close() override;
26: void Command() override;
27:
28: void CommandG(const std::vector<std::string>& arg);
29: void CommandGH();
30: void CommandK(const std::vector<std::string>& arg);
31: bool CommandKInput(const std::string& val);
32: void CommandX();
33:
34: // NVRAM
35: bool InitNVRAM();
36: void GetNVRAM(bootinfo_t&);
37:
38: // 'x' コマンドなら true。
39: bool x_executed {};
40:
41: // 'g' コマンドで読み込んだプログラムのエントリポイント。
42: // なければ 0。'x' コマンドで使う。
43: uint32 x_entrypoint {};
44:
45: // プロンプトの状態。
46: // 0 が通常プロンプト。
47: // 1 以降は k コマンドのプロンプトを示す
48: int prompt_idx {};
49: // デフォルトプロンプト
50: const std::string default_prompt = ">";
51: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.