--- nono/vm/fdc.h 2026/04/29 17:04:41 1.1.1.3 +++ nono/vm/fdc.h 2026/04/29 17:04:55 1.1.1.6 @@ -72,7 +72,7 @@ struct FDC { static const int STAT_RQM = 0x80; // Request For Master static const int STAT_DIO = 0x40; // Data Input/Output static const int STAT_NDM = 0x20; // Non-DMA Mode - static const int STAT_CB = 0x10; // FDC Busy + static const int STAT_CB = 0x10; // FDC Busy static const int STAT_D3B = 0x08; // FD3 Busy static const int STAT_D2B = 0x04; // FD2 Busy static const int STAT_D1B = 0x02; // FD1 Busy @@ -100,8 +100,7 @@ struct FDC { static const int ST3_US_MASK = 0x03; // Unit Select }; -class FDCDevice - : public IODevice +class FDCDevice : public IODevice { using inherited = IODevice; private: @@ -109,16 +108,16 @@ class FDCDevice public: FDCDevice(); - ~FDCDevice() override; + virtual ~FDCDevice() override; void ResetHard() override; protected: // BusIO インタフェース static const uint32 NPORT = 4; - uint64 Read(uint32 addr); - uint64 Write(uint32 addr, uint32 data); - uint64 Peek(uint32 addr); + uint64 Read(uint32 offset); + uint64 Write(uint32 offset, uint32 data); + uint64 Peek(uint32 offset); private: uint32 ReadStatus(); @@ -137,7 +136,7 @@ class FDCDevice void Interrupt(); - Event event {}; + Event event { this }; // コマンドを名前に変換 static const char *cmd2name(uint32); @@ -145,3 +144,5 @@ class FDCDevice // コマンド名一覧 static const char *cmdnames_str[]; }; + +extern std::unique_ptr gFDC;