--- nono/vm/lance.h 2026/04/29 17:04:28 1.1.1.1 +++ nono/vm/lance.h 2026/04/29 17:04:32 1.1.1.2 @@ -157,14 +157,6 @@ class LanceDevice virtual bool Init(); virtual void ResetHard(); - virtual uint64 Read8(uint32 addr); - virtual uint64 Read16(uint32 addr); - virtual uint64 Read32(uint32 addr); - virtual uint64 Write8(uint32 addr, uint32 data); - virtual uint64 Write16(uint32 addr, uint32 data); - virtual uint64 Write32(uint32 addr, uint32 data); - virtual uint64 Peek8(uint32 addr); - virtual bool MonitorUpdate(); // ワーカスレッド (エントリポイントから呼ばれる) @@ -173,7 +165,20 @@ class LanceDevice // パケットを受信した (ホストネットワークスレッドから呼ばれる) virtual bool RecvPacket(qvector& buf); + protected: + // BusIO インタフェース + static const uint32 NPORT = 2; + uint64 Read(uint32 addr); + uint64 Write(uint32 addr, uint32 data); + uint64 Peek(uint32 addr); + private: + pthread_t thread; + bool thread_created = false; // スレッドが作成されたら true + + // スレッドの終了を指示 + void Terminate(); + void MonitorReg(int x, int y, uint32 data, const char * const * names); uint32 ReadData(); void WriteData(uint32 data); @@ -240,5 +245,3 @@ class LanceDevice // 前回の TMD 状態文字列 (デバッグ表示用) std::string last_tmdstr {}; }; - -extern LanceDevice *gLance;