Add totalcycles and newframe function for i8039 (dkong commit prep)

This commit is contained in:
iq_132 2012-03-12 22:51:45 +00:00
parent aa648e928e
commit 2c3c3a04a6
2 changed files with 16 additions and 1 deletions

View File

@ -107,10 +107,12 @@ typedef struct
int (*irq_callback)(int irqline);
int inst_cycles;
UINT8 Old_T1;
double total_cycles;
} I8039_Regs;
static I8039_Regs R;
static int i8039_ICount;
static int i8039_ICount_cycles;
static UINT8 *RAM;
@ -846,6 +848,7 @@ int I8039Run(int cycles)
unsigned opcode, T1, timerInt;
int count;
i8039_ICount_cycles = cycles;
i8039_ICount = (cycles - R.irq_extra_cycles);
R.irq_extra_cycles = 0;
@ -899,11 +902,22 @@ int I8039Run(int cycles)
} while (i8039_ICount>0);
i8039_ICount -= R.irq_extra_cycles;
R.total_cycles += cycles - i8039_ICount;
R.irq_extra_cycles = 0;
return cycles - i8039_ICount;
}
INT32 I8039TotalCycles()
{
return R.total_cycles + (i8039_ICount_cycles - i8039_ICount);
}
void I8039NewFrame()
{
R.total_cycles = 0;
}
int N7751Run(int cycles)
{
return I8039Run(cycles);

View File

@ -70,7 +70,8 @@ extern void N7751Reset (void);
extern void N7751SetIrqState(int state);
extern int N7751Scan(int nAction,int *pnMin);
extern INT32 I8039TotalCycles();
extern void I8039NewFrame();
/*
* Input a UINT8 from given I/O port