--- nono/vm/bus.h 2026/04/29 17:05:29 1.1.1.7 +++ nono/vm/bus.h 2026/04/29 17:05:33 1.1.1.8 @@ -58,6 +58,7 @@ enum class BusAddr : uint64 Write = D | W, SRead = S | Read, SWrite = S | Write, + FCMask = 0x0000'000f'0000'0000ULL, Size1 = 0x0001'0000'0000'0000ULL, Size2 = 0x0002'0000'0000'0000ULL, @@ -153,6 +154,10 @@ class busaddr value &= ~(uint64)BusAddr::S; } } + void ChangeFC(uint32 fc_) noexcept { + value &= ~(uint64)BusAddr::FCMask; + value |= (uint64)busaddr::FC(fc_); + } void ChangeData(bool data_) noexcept { value &= ~(uint64)(BusAddr::I | BusAddr::D); if (data_) {