Add totalcycles and newframe function for i8039 (dkong commit prep)
This commit is contained in:
parent
aa648e928e
commit
2c3c3a04a6
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue