--- nono/vm/dmac.h 2026/04/29 17:05:29 1.1.1.14 +++ nono/vm/dmac.h 2026/04/29 17:05:51 1.1.1.17 @@ -12,15 +12,14 @@ #include "device.h" #include "bus.h" -#include "event.h" #include "fixedqueue.h" -#include "monitor.h" #include class ADPCMDevice; class FDCDevice; class InterruptDevice; class MainbusDevice; +class Syncer; struct DMAC { @@ -302,6 +301,9 @@ class DMACDevice : public IODevice void WriteCCR(DMACChan *chan, uint32 data, uint8 up); void WriteGCR(uint8 data); + // ACT ビットの状態を変更 + void ChangeACT(DMACChan *, bool); + // 割り込み信号線の状態を変更 void ChangeInterrupt(); @@ -311,8 +313,8 @@ class DMACDevice : public IODevice DMACChan *SelectChannel(); // 転送イベントコールバック - void StartCallback(Event& ev); - void TransferCallback(Event& ev); + void StartCallback(Event *); + void TransferCallback(Event *); // ログ出力 void TransferLog(DMACChan *, uint op, busaddr addr, busdata r, uint64 data); @@ -337,10 +339,11 @@ class DMACDevice : public IODevice FDCDevice *fdc {}; InterruptDevice *interrupt {}; MainbusDevice *mainbus {}; + Syncer *syncer {}; - Event event { this }; + Event *event {}; - Monitor monitor { this }; + Monitor *monitor {}; static const char * const errnames[]; static const char * const regname1[0x40];