mirror of
https://github.com/reactos/reactos.git
synced 2024-10-20 16:06:27 +00:00
[NTVDM]
Start to implement EmulatorSimulate / EmulatorUnsimulate (used by VDDSimulate16 and VDDUnsimualte16). This piece of code can be better written, but it works for what I'm going to commit next. svn path=/branches/ntvdm/; revision=62282
This commit is contained in:
parent
0b434e7c6c
commit
5a3cc5df3c
|
@ -127,7 +127,6 @@ VOID ClockUpdate(VOID)
|
||||||
VgaHorizontalRetrace();
|
VgaHorizontalRetrace();
|
||||||
|
|
||||||
/* Continue CPU emulation */
|
/* Continue CPU emulation */
|
||||||
// EmulatorSimulate();
|
|
||||||
for (i = 0; (i < STEPS_PER_CYCLE) && VdmRunning; i++)
|
for (i = 0; (i < STEPS_PER_CYCLE) && VdmRunning; i++)
|
||||||
{
|
{
|
||||||
EmulatorStep();
|
EmulatorStep();
|
||||||
|
|
|
@ -177,12 +177,18 @@ VOID EmulatorStep(VOID)
|
||||||
|
|
||||||
VOID EmulatorSimulate(VOID)
|
VOID EmulatorSimulate(VOID)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
// FIXME: Do not mix VdmRunning (i.e. ntvdm running) and CpuSimulate!!
|
||||||
|
while (VdmRunning) ClockUpdate();
|
||||||
|
|
||||||
|
/* This takes into account for reentrance */
|
||||||
|
VdmRunning = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID EmulatorUnsimulate(VOID)
|
VOID EmulatorUnsimulate(VOID)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
/* Stop simulation */
|
||||||
|
// FIXME: Do not mix VdmRunning (i.e. ntvdm running) and CpuSimulate!!
|
||||||
|
VdmRunning = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
VOID EmulatorInterrupt(BYTE Number)
|
VOID EmulatorInterrupt(BYTE Number)
|
||||||
|
|
|
@ -118,6 +118,8 @@ VOID EmulatorExecute(WORD Segment, WORD Offset);
|
||||||
VOID EmulatorInterrupt(BYTE Number);
|
VOID EmulatorInterrupt(BYTE Number);
|
||||||
VOID EmulatorInterruptSignal(VOID);
|
VOID EmulatorInterruptSignal(VOID);
|
||||||
VOID EmulatorStep(VOID);
|
VOID EmulatorStep(VOID);
|
||||||
|
VOID EmulatorSimulate(VOID);
|
||||||
|
VOID EmulatorUnsimulate(VOID);
|
||||||
VOID EmulatorCleanup(VOID);
|
VOID EmulatorCleanup(VOID);
|
||||||
VOID EmulatorSetA20(BOOLEAN Enabled);
|
VOID EmulatorSetA20(BOOLEAN Enabled);
|
||||||
|
|
||||||
|
|
|
@ -420,8 +420,8 @@ INT wmain(INT argc, WCHAR *argv[])
|
||||||
goto Cleanup;
|
goto Cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Main loop */
|
/* Start simulation */
|
||||||
while (VdmRunning) ClockUpdate();
|
EmulatorSimulate();
|
||||||
|
|
||||||
/* Perform another screen refresh */
|
/* Perform another screen refresh */
|
||||||
VgaRefreshDisplay();
|
VgaRefreshDisplay();
|
||||||
|
|
Loading…
Reference in a new issue