Fixed bug with SRQ line preventing the cassette from working.

This commit is contained in:
Stephen White 2018-10-21 22:01:59 +11:00
parent bc559f4291
commit db692407c3
2 changed files with 11 additions and 0 deletions

View file

@ -310,6 +310,12 @@ public:
RPI_GpioBase->GPPUDCLK0 = 0; RPI_GpioBase->GPPUDCLK0 = 0;
} }
static inline void LetSRQBePulledHigh()
{
SRQSetToOut = IEC_Bus::invertIECInputs;
RefreshOuts1581();
}
static inline void UpdateButton(int index, unsigned gplev0) static inline void UpdateButton(int index, unsigned gplev0)
{ {
bool inputcurrent = (gplev0 & ButtonPinFlags[index]) == 0; bool inputcurrent = (gplev0 & ButtonPinFlags[index]) == 0;

View file

@ -660,6 +660,8 @@ EXIT_TYPE Emulate1541(FileBrowser* fileBrowser)
IEC_Bus::port = pi1541.VIA[0].GetPortB(); IEC_Bus::port = pi1541.VIA[0].GetPortB();
pi1541.Reset(); // will call IEC_Bus::Reset(); pi1541.Reset(); // will call IEC_Bus::Reset();
IEC_Bus::LetSRQBePulledHigh();
ctBefore = read32(ARM_SYSTIMER_CLO); ctBefore = read32(ARM_SYSTIMER_CLO);
//resetWhileEmulating = false; //resetWhileEmulating = false;
@ -1002,6 +1004,9 @@ void emulator()
IEC_Bus::port = 0; IEC_Bus::port = 0;
IEC_Bus::Reset(); IEC_Bus::Reset();
IEC_Bus::LetSRQBePulledHigh();
// workaround for occasional oled curruption // workaround for occasional oled curruption
if (screenLCD) if (screenLCD)
screenLCD->ClearInit(0); screenLCD->ClearInit(0);