mirror of
https://github.com/AppleWin/AppleWin.git
synced 2026-04-20 00:17:16 +00:00
Fix so that MockingboardCardMgr asserts IRQ based on the wired-OR sum of all MB card's 6522s. (Fixes #1173)
This commit is contained in:
@@ -32,6 +32,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#include "MockingboardCardManager.h"
|
||||
#include "Core.h"
|
||||
#include "CardManager.h"
|
||||
#include "CPU.h"
|
||||
#include "Mockingboard.h"
|
||||
#include "MockingboardDefs.h"
|
||||
#include "Riff.h"
|
||||
@@ -108,6 +109,21 @@ void MockingboardCardManager::UpdateCycles(ULONG executedCycles)
|
||||
}
|
||||
}
|
||||
|
||||
void MockingboardCardManager::UpdateIRQ(void)
|
||||
{
|
||||
bool irq = false;
|
||||
for (UINT i = SLOT0; i < NUM_SLOTS; i++)
|
||||
{
|
||||
if (IsMockingboard(i))
|
||||
irq |= dynamic_cast<MockingboardCard&>(GetCardMgr().GetRef(i)).Is6522IRQ();
|
||||
}
|
||||
|
||||
if (irq)
|
||||
CpuIrqAssert(IS_6522);
|
||||
else
|
||||
CpuIrqDeassert(IS_6522);
|
||||
}
|
||||
|
||||
bool MockingboardCardManager::IsActive(void)
|
||||
{
|
||||
if (!m_mockingboardVoice.bActive)
|
||||
|
||||
Reference in New Issue
Block a user