--- nono/vm/scsidev.cpp 2026/04/29 17:05:43 1.1.1.20 +++ nono/vm/scsidev.cpp 2026/04/29 17:05:46 1.1.1.21 @@ -605,6 +605,9 @@ SCSIDisk::Init() // 行わないといけない。うーん。 write_ignore = gConfig->Find(wikey).AsInt(); + // writeignore が決まったので状態を初期化。 + Clear(); + // 設定時点でファイルが指定されていればオープン if (filename.empty() == false) { std::string path = gMainApp.NormalizePath(filename); @@ -814,7 +817,16 @@ SCSIDisk::Clear() medium_loaded = false; image.Close(); pathname.clear(); - write_mode = RW::Writeable; + + if (IsWriteableDevice()) { + if (write_ignore) { + write_mode = RW::WriteIgnore; + } else { + write_mode = RW::Writeable; + } + } else { + write_mode = RW::ReadOnly; + } } // メディア状態変更を UI に通知する