--- nono/vm/fdc.h 2026/04/29 17:05:25 1.1.1.10 +++ nono/vm/fdc.h 2026/04/29 17:05:34 1.1.1.12 @@ -13,7 +13,6 @@ #include "device.h" #include "event.h" #include "fixedqueue.h" -#include "monitor.h" #include class DMACDevice; @@ -85,7 +84,7 @@ struct FDCCmdBuf }; }; - int len; + uint len; void Clear() { len = 0; @@ -144,11 +143,11 @@ struct FDCResBuf class FDCDevice : public IODevice { using inherited = IODevice; - static const int baseaddr = 0xe94000; + static const uint32 baseaddr = 0xe94000; public: // サポートしているドライブ数上限 - static const int MAX_DRIVE = 4; + static const uint MAX_DRIVE = 4; private: // コマンド定義 @@ -297,9 +296,10 @@ class FDCDevice : public IODevice protected: // BusIO インタフェース static const uint32 NPORT = 4; - busdata Read(uint32 offset); - busdata Write(uint32 offset, uint32 data); - busdata Peek(uint32 offset); + busdata ReadPort(uint32 offset); + busdata WritePort(uint32 offset, uint32 data); + busdata PeekPort(uint32 offset); + bool PokePort(uint32 offset, uint32 data); private: uint32 ReadData(); @@ -309,7 +309,7 @@ class FDCDevice : public IODevice uint32 GetDriveStatus() const; void PushDreg(uint8); - int PopDreg(); + uint32 PopDreg(); void RequestDataByte(); uint8 GetMSR() const; @@ -432,7 +432,7 @@ class FDCDevice : public IODevice uint sect_remain {}; int index_detected {}; - int seek_srt {}; // SEEK ステップレートタイマカウンタ + uint seek_srt {}; // SEEK ステップレートタイマカウンタ MSR msr {}; ST0 st0 {}; @@ -453,7 +453,7 @@ class FDCDevice : public IODevice Event poll_event { this }; // ポーリング用 Event motor_event { this }; // モータ停止用 - Monitor monitor { this }; + Monitor *monitor {}; }; static inline FDCDevice *GetFDCDevice() {