diff --git a/src/iec_bus.h b/src/iec_bus.h index 2249db3..f723c6f 100644 --- a/src/iec_bus.h +++ b/src/iec_bus.h @@ -310,6 +310,12 @@ public: RPI_GpioBase->GPPUDCLK0 = 0; } + static inline void LetSRQBePulledHigh() + { + SRQSetToOut = IEC_Bus::invertIECInputs; + RefreshOuts1581(); + } + static inline void UpdateButton(int index, unsigned gplev0) { bool inputcurrent = (gplev0 & ButtonPinFlags[index]) == 0; diff --git a/src/main.cpp b/src/main.cpp index 3d0e130..ab72a57 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -660,6 +660,8 @@ EXIT_TYPE Emulate1541(FileBrowser* fileBrowser) IEC_Bus::port = pi1541.VIA[0].GetPortB(); pi1541.Reset(); // will call IEC_Bus::Reset(); + IEC_Bus::LetSRQBePulledHigh(); + ctBefore = read32(ARM_SYSTIMER_CLO); //resetWhileEmulating = false; @@ -1002,6 +1004,9 @@ void emulator() IEC_Bus::port = 0; IEC_Bus::Reset(); + + IEC_Bus::LetSRQBePulledHigh(); + // workaround for occasional oled curruption if (screenLCD) screenLCD->ClearInit(0);