--- nono/vm/device.h 2026/04/29 17:04:28 1.1.1.1 +++ nono/vm/device.h 2026/04/29 17:04:32 1.1.1.3 @@ -28,21 +28,17 @@ class Device : public Object // 初期化は以下の手順で行う。 // 1. コンストラクタ // メンバ変数の初期値代入などを行う。失敗するケースは考慮していない。 - // この時点からすでに gConfig で設定ファイルにはアクセスできるが、 - // 設定に左右される事象は極力コンストラクタでは扱わないこと。 + // gConfig の設定内容の参照は可能。 // // 2. Create() ... 動的コンストラクション // 必要なら設定ファイルによって可変なオブジェクトのコンストラクトを行う。 // 例えば SCSI ドライブなどが該当する。 - // この時点から gVM->GetType() による VM 判定は使える - // (正確にはコンストラクタの時点でもう使えるが使う必要はないはず)。 // // 3. parse_logopt() ... -L オプションの処理 // この時点で Object 由来のオブジェクトはすべて出揃っている必要がある。 // // 4. Init() ... 初期化 - // 設定ファイルのうち起動時のみ適用するパラメータの設定、ROM などの - // ファイルの読み込み、またスレッドの起動などを行う。 + // ここでは ROM などのファイルの読み込み、またスレッドの起動などを行う。 // Object 由来のオブジェクトはすべて揃っているため、相互にアクセス可能。 // ただしその際の依存関係については、vm.cpp (や xiospace.cpp) 内の // コンストラクタの順序で調整すること (循環参照不可)。 @@ -61,11 +57,11 @@ class Device : public Object // 初期化。 // 起動時設定の適用、ファイルの読み込み、スレッド作成を行う。 - // Object 由来のオブジェクトはすべて揃っており、設定ファイルは読めるが - // putlog() は使えない。 + // Object 由来のオブジェクトはすべて揃っており、設定ファイルは読める。 + // putlog() も使える。 // 成功すれば true を返すこと。 - // 失敗なら warn()/warnx()、あるいは gConfig->Err() 系 (実態は warnx) で - // エラーメッセージを表示して false を返すこと。 + // 失敗なら warn()/warnx()、あるいは ConfigItem::Err() 系 (実態は warnx) + // でエラーメッセージを表示して false を返すこと。 virtual bool Init(); // 現在の設定を VM に反映させる。 @@ -161,18 +157,20 @@ class NullDevice : public IODevice }; // 前方参照 -class CRTC2Device; class BitmapDevice; +class CRTC2Device; +class DMACDevice; +class FuseROMDevice; class Human68k; class IODevice; class LanceDevice; -class MaskROMDevice; class MK48T02Device; class MPUDevice; class PIO0Device; class PIO1Device; class PROMDevice; class RAMDevice; +class SCSIDevice; class SCSIHD; class SCSIHostDevice; class SCSITarget;