|
|
1.1 root 1: //
2: // nono
1.1.1.2 root 3: // Copyright (C) 2020 nono project
4: // Licensed under nono-license.txt
1.1 root 5: //
6:
7: #pragma once
8:
1.1.1.5 root 9: #include "romemu_luna.h"
1.1 root 10:
1.1.1.8 root 11: class m88kcpu;
12:
1.1.1.5 root 13: class Luna88kPROMEmuDevice : public LunaPROMEmuDevice
1.1 root 14: {
1.1.1.5 root 15: using inherited = LunaPROMEmuDevice;
1.1 root 16:
1.1.1.7 root 17: // プロンプト種別
18: enum {
19: PROMPT_DEFAULT = 0,
20: PROMPT_NVRAM_UPDATE,
21: PROMPT_NVRAM_NEW,
22: PROMPT_NVRAM_INIT,
23: };
24:
1.1 root 25: public:
26: Luna88kPROMEmuDevice();
1.1.1.4 root 27: virtual ~Luna88kPROMEmuDevice() override;
1.1 root 28:
1.1.1.2 root 29: bool Init() override;
1.1.1.6 root 30: void ResetHard() override;
1.1 root 31:
1.1.1.8 root 32: // DOS call エミュレーション
33: bool FLineCallback(m88kcpu *cpu);
34:
1.1 root 35: private:
1.1.1.5 root 36: uint32 ROM_Init() override;
37: uint32 ROM_Entry() override;
1.1.1.7 root 38: void GetChar(char asciicode) override;
1.1.1.5 root 39: void Command() override;
1.1.1.7 root 40:
41: void CommandH(const std::vector<std::string>& arg);
1.1.1.5 root 42: void CommandB(const std::vector<std::string>& arg);
43: void CommandBH();
44: void CommandNvram(const std::vector<std::string>& arg);
1.1.1.7 root 45: void CommandNvramShowAll();
46: void CommandNvramShow(const std::vector<std::string>& arg);
47: void CommandNvramUpdate(const std::vector<std::string>& arg);
48: void CommandNvramUpdate2(char);
49: void CommandNvramNew2(char);
50: void CommandNvramDelete(const std::vector<std::string>& arg);
51: void CommandNvramInit();
52: void CommandNvramInit2(char);
1.1.1.5 root 53:
54: // NVRAM
1.1.1.7 root 55: uint32 FindNVRAM(const std::string& key) const;
1.1.1.5 root 56: bool InitNVRAM();
57: void GetNVRAM(bootinfo_t&);
1.1.1.2 root 58:
1.1.1.5 root 59: uint32 b_entrypoint {};
1.1.1.7 root 60:
61: // nvram コマンドの遷移で覚えておくもの
62: int nvram_offset {};
63: std::string nvram_key {};
64: std::string nvram_val {};
65:
66: // プロンプトの状態。
67: // 0 (PROMPT_DEFAULT) が通常の行入力プロンプト。
68: // PROMPT_NVRAM_* は nvram コマンドでの確認プロンプト。
69: int prompt_idx {};
1.1 root 70: };
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.