Fix Phasor's AY order - fix for mb-audit v1.2

This commit is contained in:
tomcw 2023-01-22 11:40:04 +00:00
parent 9d3b7027ff
commit 7d11c24a70
2 changed files with 6 additions and 6 deletions

View File

@ -274,12 +274,14 @@ void MockingboardCard::WriteToORB(BYTE device)
#else
if (m_phasorEnable)
{
int nAY_CS = (m_phasorMode == PH_Phasor) ? (~(value >> 3) & 3) : 1;
const int kAY0 = 2; // bit4=0 (active low) selects the 1st AY8913, ie. the only AY8913 in Mockingboard mode (confirmed on real Phasor h/w)
const int kAY1 = 1; // bit3=0 (active low) selects the 2nd AY8913 attached to this 6522 (unavailable in Mockingboard mode)
int nAY_CS = (m_phasorMode == PH_Phasor) ? (~(value >> 3) & 3) : kAY0;
if (nAY_CS & 1)
if (nAY_CS & kAY0)
AY8910_Write(device, value, 0);
if (nAY_CS & 2)
if (nAY_CS & kAY1)
AY8910_Write(device, value, 1);
}
else
@ -508,7 +510,6 @@ BYTE __stdcall MockingboardCard::IORead(WORD PC, WORD nAddr, BYTE bWrite, BYTE n
BYTE MockingboardCard::IOReadInternal(WORD PC, WORD nAddr, BYTE bWrite, BYTE nValue, ULONG nExecutedCycles)
{
//UpdateCycles(nExecutedCycles);
GetCardMgr().GetMockingboardCardMgr().UpdateCycles(nExecutedCycles);
#ifdef _DEBUG
@ -582,7 +583,6 @@ BYTE __stdcall MockingboardCard::IOWrite(WORD PC, WORD nAddr, BYTE bWrite, BYTE
BYTE MockingboardCard::IOWriteInternal(WORD PC, WORD nAddr, BYTE bWrite, BYTE nValue, ULONG nExecutedCycles)
{
//UpdateCycles(nExecutedCycles);
GetCardMgr().GetMockingboardCardMgr().UpdateCycles(nExecutedCycles);
#ifdef _DEBUG

View File

@ -50,7 +50,7 @@ private:
static const UINT NUM_SY6522 = 2;
static const UINT NUM_AY8913 = 4; // Phasor has 4, MB has 2
// static const UINT NUM_SSI263 = 2;
static const UINT NUM_DEVS_PER_MB = NUM_SY6522;
static const UINT NUM_DEVS_PER_MB = NUM_SY6522; // Number of MB_SUBUNIT per Mockingboard card
static const UINT NUM_VOICES_PER_AY8913 = 3;
static const UINT NUM_VOICES = (NUM_AY8913 * NUM_VOICES_PER_AY8913);