Konami CPU - standardize functions/names

This commit is contained in:
iq_132 2014-09-15 00:05:15 +00:00
parent 35543868e3
commit dd5ff363f0
16 changed files with 70 additions and 72 deletions

View File

@ -726,7 +726,7 @@ static INT32 DrvFrame()
}
}
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -765,7 +765,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
M6809Scan(nAction);
ZetScan(nAction);

View File

@ -539,7 +539,7 @@ static INT32 DrvFrame()
}
}
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K051960_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -576,7 +576,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -466,7 +466,7 @@ static INT32 DrvFrame()
}
if (K052109_irq_enabled && (nDrvKonamiBank[0] & 0x03) == 0)
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -502,7 +502,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -645,7 +645,7 @@ static INT32 DrvFrame()
}
}
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -682,7 +682,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -541,7 +541,7 @@ static INT32 DrvFrame()
}
}
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -578,7 +578,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -767,7 +767,7 @@ static INT32 DrvFrame()
konamiOpen(0);
konamiRun(nCyclesTotal[0]);
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
BurnTimerEndFrameYM3812(nCyclesTotal[1]);
@ -803,7 +803,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM3812Scan(nAction, pnMin);

View File

@ -621,7 +621,7 @@ static INT32 DrvFrame()
}
}
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -658,7 +658,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -525,7 +525,7 @@ static INT32 DrvFrame()
BurnTimerUpdateYM3812(i * (nCyclesTotal[1] / nInterleave));
}
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
BurnTimerEndFrameYM3812(nCyclesTotal[1]);
@ -560,7 +560,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM3812Scan(nAction, pnMin);

View File

@ -686,7 +686,7 @@ static INT32 DrvFrame()
nCyclesDone[0] += nCyclesSegment;
if (i == 1 && K053246Irq && simpsons_firq_enabled) {
konamiSetIrqLine(KONAMI_FIRQ_LINE, KONAMI_HOLD_LINE);
konamiSetIrqLine(KONAMI_FIRQ_LINE, KONAMI_IRQSTATUS_AUTO);
}
K053246Irq = K053246_is_IRQ_enabled();
@ -706,7 +706,7 @@ static INT32 DrvFrame()
}
if (K053246Irq) simpsons_objdma();
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -743,7 +743,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -524,7 +524,7 @@ static INT32 DrvFrame()
}
}
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -559,7 +559,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -313,7 +313,7 @@ static void thunderx_1f98_w(UINT8 data)
konamiRun(10);
konamiSetIrqLine(KONAMI_FIRQ_LINE, KONAMI_HOLD_LINE); // must be delayed
konamiSetIrqLine(KONAMI_FIRQ_LINE, KONAMI_IRQSTATUS_AUTO); // must be delayed
}
thunderx_1f98_data = data;
@ -808,7 +808,7 @@ static INT32 DrvFrame()
}
}
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (K052109_irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -845,7 +845,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -893,7 +893,7 @@ static INT32 DrvFrame()
}
}
if (irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_HOLD_LINE);
if (irq_enabled) konamiSetIrqLine(KONAMI_IRQ_LINE, KONAMI_IRQSTATUS_AUTO);
if (pBurnSoundOut) {
INT32 nSegmentLength = nBurnSoundLen - nSoundBufferPos;
@ -930,7 +930,7 @@ static INT32 DrvScan(INT32 nAction,INT32 *pnMin)
ba.szName = "All Ram";
BurnAcb(&ba);
konamiCpuScan(nAction, pnMin);
konamiCpuScan(nAction);
ZetScan(nAction);
BurnYM2151Scan(nAction);

View File

@ -116,10 +116,10 @@ static PAIR ea; /* effective address */
static int nCyclesToDo = 0;
#define CHECK_IRQ_LINES \
if( konami.irq_state[KONAMI_IRQ_LINE] != KONAMI_CLEAR_LINE || \
konami.irq_state[KONAMI_FIRQ_LINE] != KONAMI_CLEAR_LINE ) \
if( konami.irq_state[KONAMI_IRQ_LINE] != KONAMI_IRQSTATUS_NONE || \
konami.irq_state[KONAMI_FIRQ_LINE] != KONAMI_IRQSTATUS_NONE ) \
konami.int_state &= ~KONAMI_SYNC; /* clear SYNC flag */ \
if( konami.irq_state[KONAMI_FIRQ_LINE]!=KONAMI_CLEAR_LINE && !(CC & CC_IF) ) \
if( konami.irq_state[KONAMI_FIRQ_LINE]!=KONAMI_IRQSTATUS_NONE && !(CC & CC_IF) ) \
{ \
/* fast IRQ */ \
/* state already saved by CWAI? */ \
@ -141,7 +141,7 @@ static int nCyclesToDo = 0;
(void)(*konami.irq_callback)(KONAMI_FIRQ_LINE); \
} \
else \
if( konami.irq_state[KONAMI_IRQ_LINE]!=KONAMI_CLEAR_LINE && !(CC & CC_II) )\
if( konami.irq_state[KONAMI_IRQ_LINE]!=KONAMI_IRQSTATUS_NONE && !(CC & CC_II) )\
{ \
/* standard IRQ */ \
/* state already saved by CWAI? */ \
@ -412,9 +412,9 @@ void konamiReset()
konami.nTotalCycles = 0;
konami.int_state = 0;
konami.nmi_state = KONAMI_CLEAR_LINE;
konami.irq_state[0] = KONAMI_CLEAR_LINE;
konami.irq_state[1] = KONAMI_CLEAR_LINE;
konami.nmi_state = KONAMI_IRQSTATUS_NONE;
konami.irq_state[0] = KONAMI_IRQSTATUS_NONE;
konami.irq_state[1] = KONAMI_IRQSTATUS_NONE;
DPD = 0; /* Reset direct page register */
@ -446,7 +446,7 @@ void konami_set_irq_line(int irqline, int state)
if (konami.nmi_state == state) return;
konami.nmi_state = state;
// LOG(("KONAMI#%d set_nmi_line %d\n", cpu_getactivecpu(), state));
if( state == KONAMI_CLEAR_LINE ) return;
if( state == KONAMI_IRQSTATUS_NONE ) return;
/* if the stack was not yet initialized */
if( !(konami.int_state & KONAMI_LDS) ) return;
@ -479,7 +479,7 @@ void konami_set_irq_line(int irqline, int state)
{
// LOG(("KONAMI#%d set_irq_line %d, %d\n", cpu_getactivecpu(), irqline, state));
konami.irq_state[irqline] = state;
if (state == KONAMI_CLEAR_LINE) return;
if (state == KONAMI_IRQSTATUS_NONE) return;
CHECK_IRQ_LINES;
}
}
@ -528,7 +528,7 @@ int konamiRun(int cycles)
return cycles - konami_ICount;
}
int konamiCpuScan(int nAction,int *)
int konamiCpuScan(int nAction)
{
#if defined FBA_DEBUG
if (!DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("konamiCpuScan called without init\n"));

View File

@ -16,26 +16,26 @@ enum
/****************************************************************************/
/* Read a byte from given memory location */
/****************************************************************************/
#define KONAMI_RDMEM(Addr) konami_read(Addr)
#define KONAMI_RDMEM(Addr) konamiRead(Addr)
/****************************************************************************/
/* Write a byte to given memory location */
/****************************************************************************/
#define KONAMI_WRMEM(Addr,Value) konami_write(Addr,Value)
#define KONAMI_WRMEM(Addr,Value) konamiWrite(Addr,Value)
/****************************************************************************/
/* Z80_RDOP() is identical to Z80_RDMEM() except it is used for reading */
/* opcodes. In case of system with memory mapped I/O, this function can be */
/* used to greatly speed up emulation */
/****************************************************************************/
#define KONAMI_RDOP(Addr) konami_fetch(Addr)
#define KONAMI_RDOP(Addr) konamiFetch(Addr)
/****************************************************************************/
/* Z80_RDOP_ARG() is identical to Z80_RDOP() except it is used for reading */
/* opcode arguments. This difference can be used to support systems that */
/* use different encoding mechanisms for opcodes and opcode arguments */
/****************************************************************************/
#define KONAMI_RDOP_ARG(Addr) konami_fetch(Addr)
#define KONAMI_RDOP_ARG(Addr) konamiFetch(Addr)
#ifndef FALSE
# define FALSE 0

View File

@ -16,10 +16,13 @@ static INT32 nKonamiCpuActive = -1;
static UINT8 *mem[3][PAGE_COUNT];
static UINT8 (*konamiRead)(UINT16 address);
static void (*konamiWrite)(UINT16 address, UINT8 data);
static UINT8 (*konamiReadFunction)(UINT16 address);
static void (*konamiWriteFunction)(UINT16 address, UINT8 data);
static INT32 (*irqcallback)(INT32);
extern void konami_set_irq_line(INT32 irqline, INT32 state);
extern void konami_init(INT32 (*irqcallback)(INT32));
void konamiMapMemory(UINT8 *src, UINT16 start, UINT16 finish, INT32 type)
{
#if defined FBA_DEBUG
@ -57,7 +60,7 @@ void konamiSetWriteHandler(void (*write)(UINT16, UINT8))
if (!DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("konamiSetWriteHandler called without init\n"));
#endif
konamiWrite = write;
konamiWriteFunction = write;
}
void konamiSetReadHandler(UINT8 (*read)(UINT16))
@ -66,10 +69,10 @@ void konamiSetReadHandler(UINT8 (*read)(UINT16))
if (!DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("konamiSetReadHandler called without init\n"));
#endif
konamiRead = read;
konamiReadFunction = read;
}
void konami_write_rom(UINT32 address, UINT8 data)
static void konami_write_rom(UINT32 address, UINT8 data)
{
#if defined FBA_DEBUG
if (!DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("konami_write_rom called without init\n"));
@ -90,11 +93,11 @@ void konami_write_rom(UINT32 address, UINT8 data)
}
if (konamiWrite != NULL) {
konamiWrite(address, data);
konamiWriteFunction(address, data);
}
}
void konami_write(UINT16 address, UINT8 data)
void konamiWrite(UINT16 address, UINT8 data)
{
if (mem[WRITE][address >> PAGE_SHIFT] != NULL) {
mem[WRITE][address >> PAGE_SHIFT][address & PAGE_MASK] = data;
@ -102,34 +105,34 @@ void konami_write(UINT16 address, UINT8 data)
}
if (konamiWrite != NULL) {
konamiWrite(address, data);
konamiWriteFunction(address, data);
return;
}
return;
}
UINT8 konami_read(UINT16 address)
UINT8 konamiRead(UINT16 address)
{
if (mem[ READ][address >> PAGE_SHIFT] != NULL) {
return mem[ READ][address >> PAGE_SHIFT][address & PAGE_MASK];
}
if (konamiRead != NULL) {
return konamiRead(address);
return konamiReadFunction(address);
}
return 0;
}
UINT8 konami_fetch(UINT16 address)
UINT8 konamiFetch(UINT16 address)
{
if (mem[FETCH][address >> PAGE_SHIFT] != NULL) {
return mem[FETCH][address >> PAGE_SHIFT][address & PAGE_MASK];
}
if (konamiRead != NULL) {
return konamiRead(address);
return konamiReadFunction(address);
}
return 0;
@ -141,10 +144,10 @@ void konamiSetIrqLine(INT32 line, INT32 state)
if (!DebugCPU_KonamiInitted) bprintf(PRINT_ERROR, _T("konamiSetIrqLine called without init\n"));
#endif
if (state == KONAMI_HOLD_LINE) {
konami_set_irq_line(line, KONAMI_HOLD_LINE);
if (state == KONAMI_IRQSTATUS_AUTO) {
konami_set_irq_line(line, KONAMI_IRQSTATUS_ACK);
konamiRun(0);
konami_set_irq_line(line, KONAMI_CLEAR_LINE);
konami_set_irq_line(line, KONAMI_IRQSTATUS_NONE);
konamiRun(0);
} else {
konami_set_irq_line(line, state);
@ -158,7 +161,7 @@ void konamiRunEnd()
static UINT8 konami_cheat_read(UINT32 a)
{
return konami_read(a);
return konamiRead(a);
}
static cpu_core_config konamiCheatCpuConfig =
@ -200,8 +203,8 @@ void konamiExit()
#endif
nKonamiCpuCount = 0;
konamiWrite = NULL;
konamiRead = NULL;
konamiWriteFunction = NULL;
konamiReadFunction = NULL;
DebugCPU_KonamiInitted = 0;
}

View File

@ -1,8 +1,8 @@
// konami.cpp
void konami_set_irq_line(INT32 irqline, INT32 state);
void konami_init(INT32 (*irqcallback)(INT32));
// konami_intf.cpp
void konamiWrite(UINT16 address, UINT8 data);
UINT8 konamiRead(UINT16 address);
UINT8 konamiFetch(UINT16 address);
#define KON_READ 1
#define KON_WRITE 2
#define KON_FETCH 4
@ -18,10 +18,6 @@ void konamiSetlinesCallback(void (*setlines_callback)(INT32 lines));
void konamiSetWriteHandler(void (*write)(UINT16, UINT8));
void konamiSetReadHandler(UINT8 (*read)(UINT16));
void konami_write(UINT16 address, UINT8 data);
UINT8 konami_read(UINT16 address);
UINT8 konami_fetch(UINT16 address);
void konamiInit(INT32 );
void konamiOpen(INT32 );
void konamiReset();
@ -33,18 +29,17 @@ extern INT32 nKonamiCpuCount;
#define KONAMI_IRQ_LINE 0
#define KONAMI_FIRQ_LINE 1
#define KONAMI_INPUT_LINE_NMI 0x20
#define KONAMI_CLEAR_LINE 0
#define KONAMI_HOLD_LINE 1
#define KONAMI_INPUT_LINE_NMI 2
#define KONAMI_IRQSTATUS_NONE 0
#define KONAMI_IRQSTATUS_ACK 1
#define KONAMI_IRQSTATUS_AUTO 2
void konamiSetIrqLine(INT32 line, INT32 state);
INT32 konamiCpuScan(INT32 nAction, INT32 *);
INT32 konamiCpuScan(INT32 nAction);
INT32 konamiTotalCycles();
void konamiNewFrame();
INT32 konamiGetActive();
void konami_write_rom(UINT16 address, UINT8 data);