--- nono/vm/fdd.cpp 2026/04/29 17:05:18 1.1.1.2 +++ nono/vm/fdd.cpp 2026/04/29 17:05:25 1.1.1.3 @@ -13,6 +13,9 @@ // トラックは 8~ 個のセクタで構成される。 // セクタは 128~ バイトで構成される。 +// 割り込み状態はこちらでは保持しておらず PEDEC 側で持っている。 +// PEDEC への割り込みは AssertInt() するだけで使っている。 + #include "fdd.h" #include "config.h" #include "fdc.h" @@ -119,9 +122,9 @@ FDDDevice::Init() // UI からの通知を受け取るイベントを用意 scheduler->ConnectMessage(MessageID::FDD_LOAD(unit), this, - ToMessageCallback(&FDDDevice::LoadCallback)); + ToMessageCallback(&FDDDevice::LoadMessage)); scheduler->ConnectMessage(MessageID::FDD_UNLOAD(unit), this, - ToMessageCallback(&FDDDevice::UnloadCallback)); + ToMessageCallback(&FDDDevice::UnloadMessage)); // オープン前に writeignore をチェック。 // この後パス名を処理するとすぐに UI に通知を出すため、それより前で @@ -131,14 +134,7 @@ FDDDevice::Init() // 設定時点でファイルが指定されていればオープン if (filename.empty() == false) { - std::string path; - if (filename[0] == '/') { - path = filename; - } else { - // 相対パスなら VM ディレクトリから - path = gMainApp.GetVMDir() + filename; - } - + std::string path = gMainApp.NormalizePath(filename); if (LoadDisk(path) == false) { return false; } @@ -818,7 +814,7 @@ FDDDevice::UnloadDiskUI(bool force) // メディア挿入メッセージコールバック void -FDDDevice::LoadCallback(MessageID msgid, uint32 arg) +FDDDevice::LoadMessage(MessageID msgid, uint32 arg) { if (LoadDisk(new_pathname) == false) { // 失敗したら UI に通知 @@ -828,7 +824,7 @@ FDDDevice::LoadCallback(MessageID msgid, // メディア排出メッセージコールバック void -FDDDevice::UnloadCallback(MessageID msgid, uint32 arg) +FDDDevice::UnloadMessage(MessageID msgid, uint32 arg) { bool force = arg; UnloadDisk(force);