--- nono/vm/fdc.cpp 2026/04/29 17:04:41 1.1.1.5 +++ nono/vm/fdc.cpp 2026/04/29 17:04:44 1.1.1.6 @@ -5,9 +5,11 @@ // #include "fdc.h" -#include "ioctlr.h" +#include "pedec.h" #include "scheduler.h" +std::unique_ptr gFDC; + // コンストラクタ FDCDevice::FDCDevice() { @@ -258,6 +260,11 @@ FDCDevice::exec_phase() case FDC::CMD_SENSE_INTERRUPT_STATUS: { putlog(1, "Exec フェーズ: SENSE INTERRUPT STATUS"); + // XXX とりあえずここで割り込みを下げる。 + // 実際には割り込み状態をラッチして信号線に出すというコマンドで + // 割り込み要因がオフになっていればそれによってネゲートされる + // ということのようだ。 + gPEDEC->NegateINT(this); // XXX まだフロッピー挿入はない uint8 st0 = 0; st0 |= FDC::ST0_IC_NT; @@ -325,7 +332,7 @@ FDCDevice::Callback(Event& ev) void FDCDevice::Interrupt() { - gIOCtlr->IntFDC(); + gPEDEC->AssertINT(this); } // コマンド名