mirror of
https://github.com/AppleWin/AppleWin.git
synced 2025-01-22 17:31:28 +00:00
MB/SSI263 - alt logging via LOG_SSI263B
This commit is contained in:
parent
2508d3b875
commit
58df8ea1e6
@ -92,6 +92,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||||||
#include "SSI263Phonemes.h"
|
#include "SSI263Phonemes.h"
|
||||||
|
|
||||||
#define LOG_SSI263 0
|
#define LOG_SSI263 0
|
||||||
|
#define LOG_SSI263B 0 // Alternate SSI263 logging (use in conjunction with CPU.cpp's LOG_IRQ_TAKEN_AND_RTI)
|
||||||
|
|
||||||
|
|
||||||
#define SY6522_DEVICE_A 0
|
#define SY6522_DEVICE_A 0
|
||||||
@ -590,6 +591,23 @@ const BYTE CONTROL_MASK = 0x80;
|
|||||||
const BYTE ARTICULATION_MASK = 0x70;
|
const BYTE ARTICULATION_MASK = 0x70;
|
||||||
const BYTE AMPLITUDE_MASK = 0x0F;
|
const BYTE AMPLITUDE_MASK = 0x0F;
|
||||||
|
|
||||||
|
#if LOG_SSI263B
|
||||||
|
static int ssiRegs[5]={-1,-1,-1,-1,-1};
|
||||||
|
|
||||||
|
void SSI_Output(void)
|
||||||
|
{
|
||||||
|
LogOutput("SSI: ");
|
||||||
|
for (int i=0; i<=4; i++)
|
||||||
|
{
|
||||||
|
char r[3]="--";
|
||||||
|
if (ssiRegs[i]>=0) sprintf(r,"%02X",ssiRegs[i]);
|
||||||
|
LogOutput("%s ", r);
|
||||||
|
ssiRegs[i] = -1;
|
||||||
|
}
|
||||||
|
LogOutput("\n");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static BYTE SSI263_Read(BYTE nDevice, ULONG nExecutedCycles)
|
static BYTE SSI263_Read(BYTE nDevice, ULONG nExecutedCycles)
|
||||||
{
|
{
|
||||||
SY6522_AY8910* pMB = &g_MB[nDevice];
|
SY6522_AY8910* pMB = &g_MB[nDevice];
|
||||||
@ -604,6 +622,13 @@ static void SSI263_Write(BYTE nDevice, BYTE nReg, BYTE nValue)
|
|||||||
{
|
{
|
||||||
SY6522_AY8910* pMB = &g_MB[nDevice];
|
SY6522_AY8910* pMB = &g_MB[nDevice];
|
||||||
|
|
||||||
|
#if LOG_SSI263B
|
||||||
|
_ASSERT(nReg < 5);
|
||||||
|
if (nReg>4) nReg=4;
|
||||||
|
if (ssiRegs[nReg]>=0) SSI_Output(); // overwriting a reg
|
||||||
|
ssiRegs[nReg] = nValue;
|
||||||
|
#endif
|
||||||
|
|
||||||
switch(nReg)
|
switch(nReg)
|
||||||
{
|
{
|
||||||
case SSI_DURPHON:
|
case SSI_DURPHON:
|
||||||
@ -611,6 +636,9 @@ static void SSI263_Write(BYTE nDevice, BYTE nReg, BYTE nValue)
|
|||||||
if(g_fh) fprintf(g_fh, "DUR = 0x%02X, PHON = 0x%02X\n\n", nValue>>6, nValue&PHONEME_MASK);
|
if(g_fh) fprintf(g_fh, "DUR = 0x%02X, PHON = 0x%02X\n\n", nValue>>6, nValue&PHONEME_MASK);
|
||||||
LogOutput("DUR = %d, PHON = 0x%02X\n", nValue>>6, nValue&PHONEME_MASK);
|
LogOutput("DUR = %d, PHON = 0x%02X\n", nValue>>6, nValue&PHONEME_MASK);
|
||||||
#endif
|
#endif
|
||||||
|
#if LOG_SSI263B
|
||||||
|
SSI_Output();
|
||||||
|
#endif
|
||||||
|
|
||||||
// Notes:
|
// Notes:
|
||||||
// . Phasor's text-to-speech playback has no CTL H->L
|
// . Phasor's text-to-speech playback has no CTL H->L
|
||||||
@ -658,6 +686,10 @@ static void SSI263_Write(BYTE nDevice, BYTE nReg, BYTE nValue)
|
|||||||
sprintf_s(newMode, sizeof(newMode), "(new mode=%d)", pMB->SpeechChip.DurationPhoneme>>6);
|
sprintf_s(newMode, sizeof(newMode), "(new mode=%d)", pMB->SpeechChip.DurationPhoneme>>6);
|
||||||
LogOutput("CTRL = %d->%d, ART = 0x%02X, AMP=0x%02X %s\n", pMB->SpeechChip.CtrlArtAmp>>7, nValue>>7, (nValue&ARTICULATION_MASK)>>4, nValue&LITUDE_MASK, H2L?newMode:"");
|
LogOutput("CTRL = %d->%d, ART = 0x%02X, AMP=0x%02X %s\n", pMB->SpeechChip.CtrlArtAmp>>7, nValue>>7, (nValue&ARTICULATION_MASK)>>4, nValue&LITUDE_MASK, H2L?newMode:"");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
#if LOG_SSI263B
|
||||||
|
if ( ((pMB->SpeechChip.CtrlArtAmp & CONTROL_MASK) && !(nValue & CONTROL_MASK)) || ((nValue&0xF) == 0x0) ) // H->L or amp=0
|
||||||
|
SSI_Output();
|
||||||
#endif
|
#endif
|
||||||
if((pMB->SpeechChip.CtrlArtAmp & CONTROL_MASK) && !(nValue & CONTROL_MASK)) // H->L
|
if((pMB->SpeechChip.CtrlArtAmp & CONTROL_MASK) && !(nValue & CONTROL_MASK)) // H->L
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user