[NTVDM]: Fix the callback prototypes.

svn path=/branches/ntvdm/; revision=60769
This commit is contained in:
Hermès Bélusca-Maïto 2013-10-27 12:17:06 +00:00
parent 2c8e8ba5d3
commit 4d28af9bb5

View file

@ -26,9 +26,9 @@ static BOOLEAN A20Line = FALSE;
/* PRIVATE FUNCTIONS **********************************************************/ /* PRIVATE FUNCTIONS **********************************************************/
static VOID WINAPI EmulatorReadMemory(PVOID Context, UINT Address, LPBYTE Buffer, INT Size) static VOID WINAPI EmulatorReadMemory(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
{ {
UNREFERENCED_PARAMETER(Context); UNREFERENCED_PARAMETER(State);
/* If the A20 line is disabled, mask bit 20 */ /* If the A20 line is disabled, mask bit 20 */
if (!A20Line) Address &= ~(1 << 20); if (!A20Line) Address &= ~(1 << 20);
@ -44,16 +44,16 @@ static VOID WINAPI EmulatorReadMemory(PVOID Context, UINT Address, LPBYTE Buffer
&& (Address < VgaGetVideoLimitAddress())) && (Address < VgaGetVideoLimitAddress()))
{ {
DWORD VgaAddress = max(Address, VgaGetVideoBaseAddress()); DWORD VgaAddress = max(Address, VgaGetVideoBaseAddress());
LPBYTE VgaBuffer = &Buffer[VgaAddress - Address]; LPBYTE VgaBuffer = (LPBYTE)((ULONG_PTR)Buffer + VgaAddress - Address);
/* Read from the VGA memory */ /* Read from the VGA memory */
VgaReadMemory(VgaAddress, VgaBuffer, Size); VgaReadMemory(VgaAddress, VgaBuffer, Size);
} }
} }
static VOID WINAPI EmulatorWriteMemory(PVOID Context, UINT Address, LPBYTE Buffer, INT Size) static VOID WINAPI EmulatorWriteMemory(PFAST486_STATE State, ULONG Address, PVOID Buffer, ULONG Size)
{ {
UNREFERENCED_PARAMETER(Context); UNREFERENCED_PARAMETER(State);
/* If the A20 line is disabled, mask bit 20 */ /* If the A20 line is disabled, mask bit 20 */
if (!A20Line) Address &= ~(1 << 20); if (!A20Line) Address &= ~(1 << 20);
@ -72,31 +72,33 @@ static VOID WINAPI EmulatorWriteMemory(PVOID Context, UINT Address, LPBYTE Buffe
&& (Address < VgaGetVideoLimitAddress())) && (Address < VgaGetVideoLimitAddress()))
{ {
DWORD VgaAddress = max(Address, VgaGetVideoBaseAddress()); DWORD VgaAddress = max(Address, VgaGetVideoBaseAddress());
LPBYTE VgaBuffer = &Buffer[VgaAddress - Address]; LPBYTE VgaBuffer = (LPBYTE)((ULONG_PTR)Buffer + VgaAddress - Address);
/* Write to the VGA memory */ /* Write to the VGA memory */
VgaWriteMemory(VgaAddress, VgaBuffer, Size); VgaWriteMemory(VgaAddress, VgaBuffer, Size);
} }
} }
static VOID WINAPI EmulatorReadIo(PVOID Context, UINT Address, LPBYTE Buffer, INT Size) static VOID WINAPI EmulatorReadIo(PFAST486_STATE State, ULONG Port, PVOID Buffer, ULONG Size)
{ {
UNREFERENCED_PARAMETER(Context); LPBYTE Address = (LPBYTE)Buffer;
UNREFERENCED_PARAMETER(State);
UNREFERENCED_PARAMETER(Size); UNREFERENCED_PARAMETER(Size);
switch (Address) switch (Port)
{ {
case PIC_MASTER_CMD: case PIC_MASTER_CMD:
case PIC_SLAVE_CMD: case PIC_SLAVE_CMD:
{ {
*Buffer = PicReadCommand(Address); *Address = PicReadCommand(Port);
break; break;
} }
case PIC_MASTER_DATA: case PIC_MASTER_DATA:
case PIC_SLAVE_DATA: case PIC_SLAVE_DATA:
{ {
*Buffer = PicReadData(Address); *Address = PicReadData(Port);
break; break;
} }
@ -104,19 +106,19 @@ static VOID WINAPI EmulatorReadIo(PVOID Context, UINT Address, LPBYTE Buffer, IN
case PIT_DATA_PORT(1): case PIT_DATA_PORT(1):
case PIT_DATA_PORT(2): case PIT_DATA_PORT(2):
{ {
*Buffer = PitReadData(Address - PIT_DATA_PORT(0)); *Address = PitReadData(Port - PIT_DATA_PORT(0));
break; break;
} }
case PS2_CONTROL_PORT: case PS2_CONTROL_PORT:
{ {
*Buffer = KeyboardReadStatus(); *Address = KeyboardReadStatus();
break; break;
} }
case PS2_DATA_PORT: case PS2_DATA_PORT:
{ {
*Buffer = KeyboardReadData(); *Address = KeyboardReadData();
break; break;
} }
@ -136,25 +138,25 @@ static VOID WINAPI EmulatorReadIo(PVOID Context, UINT Address, LPBYTE Buffer, IN
case VGA_STAT_MONO: case VGA_STAT_MONO:
case VGA_STAT_COLOR: case VGA_STAT_COLOR:
{ {
*Buffer = VgaReadPort(Address); *Address = VgaReadPort(Port);
break; break;
} }
default: default:
{ {
DPRINT1("Read from unknown port: 0x%X\n", Address); DPRINT1("Read from unknown port: 0x%X\n", Port);
} }
} }
} }
static VOID WINAPI EmulatorWriteIo(PVOID Context, UINT Address, LPBYTE Buffer, INT Size) static VOID WINAPI EmulatorWriteIo(PFAST486_STATE State, ULONG Port, PVOID Buffer, ULONG Size)
{ {
BYTE Byte = *Buffer; BYTE Byte = *(LPBYTE)Buffer;
UNREFERENCED_PARAMETER(Context); UNREFERENCED_PARAMETER(State);
UNREFERENCED_PARAMETER(Size); UNREFERENCED_PARAMETER(Size);
switch (Address) switch (Port)
{ {
case PIT_COMMAND_PORT: case PIT_COMMAND_PORT:
{ {
@ -166,21 +168,21 @@ static VOID WINAPI EmulatorWriteIo(PVOID Context, UINT Address, LPBYTE Buffer, I
case PIT_DATA_PORT(1): case PIT_DATA_PORT(1):
case PIT_DATA_PORT(2): case PIT_DATA_PORT(2):
{ {
PitWriteData(Address - PIT_DATA_PORT(0), Byte); PitWriteData(Port - PIT_DATA_PORT(0), Byte);
break; break;
} }
case PIC_MASTER_CMD: case PIC_MASTER_CMD:
case PIC_SLAVE_CMD: case PIC_SLAVE_CMD:
{ {
PicWriteCommand(Address, Byte); PicWriteCommand(Port, Byte);
break; break;
} }
case PIC_MASTER_DATA: case PIC_MASTER_DATA:
case PIC_SLAVE_DATA: case PIC_SLAVE_DATA:
{ {
PicWriteData(Address, Byte); PicWriteData(Port, Byte);
break; break;
} }
@ -212,18 +214,18 @@ static VOID WINAPI EmulatorWriteIo(PVOID Context, UINT Address, LPBYTE Buffer, I
case VGA_STAT_MONO: case VGA_STAT_MONO:
case VGA_STAT_COLOR: case VGA_STAT_COLOR:
{ {
VgaWritePort(Address, Byte); VgaWritePort(Port, Byte);
break; break;
} }
default: default:
{ {
DPRINT1("Write to unknown port: 0x%X\n", Address); DPRINT1("Write to unknown port: 0x%X\n", Port);
} }
} }
} }
static VOID WINAPI EmulatorBiosOperation(PFAST486_STATE State, WORD Code) static VOID WINAPI EmulatorBiosOperation(PFAST486_STATE State, USHORT BopCode)
{ {
WORD StackSegment, StackPointer, CodeSegment, InstructionPointer; WORD StackSegment, StackPointer, CodeSegment, InstructionPointer;
BYTE IntNum; BYTE IntNum;
@ -236,7 +238,7 @@ static VOID WINAPI EmulatorBiosOperation(PFAST486_STATE State, WORD Code)
/* Get the stack */ /* Get the stack */
Stack = (LPWORD)((ULONG_PTR)BaseAddress + TO_LINEAR(StackSegment, StackPointer)); Stack = (LPWORD)((ULONG_PTR)BaseAddress + TO_LINEAR(StackSegment, StackPointer));
if (Code == EMULATOR_INT_BOP) if (BopCode == EMULATOR_INT_BOP)
{ {
/* Get the interrupt number */ /* Get the interrupt number */
IntNum = LOBYTE(Stack[STACK_INT_NUM]); IntNum = LOBYTE(Stack[STACK_INT_NUM]);
@ -329,7 +331,7 @@ static VOID WINAPI EmulatorBiosOperation(PFAST486_STATE State, WORD Code)
} }
} }
static BYTE WINAPI EmulatorIntAcknowledge(PFAST486_STATE State) static UCHAR WINAPI EmulatorIntAcknowledge(PFAST486_STATE State)
{ {
UNREFERENCED_PARAMETER(State); UNREFERENCED_PARAMETER(State);
@ -346,12 +348,12 @@ BOOLEAN EmulatorInitialize()
if (BaseAddress == NULL) return FALSE; if (BaseAddress == NULL) return FALSE;
/* Set the callbacks */ /* Set the callbacks */
EmulatorContext.MemReadCallback = (FAST486_MEM_READ_PROC)EmulatorReadMemory; EmulatorContext.MemReadCallback = EmulatorReadMemory;
EmulatorContext.MemWriteCallback = (FAST486_MEM_WRITE_PROC)EmulatorWriteMemory; EmulatorContext.MemWriteCallback = EmulatorWriteMemory;
EmulatorContext.IoReadCallback = (FAST486_IO_READ_PROC)EmulatorReadIo; EmulatorContext.IoReadCallback = EmulatorReadIo;
EmulatorContext.IoWriteCallback = (FAST486_IO_WRITE_PROC)EmulatorWriteIo; EmulatorContext.IoWriteCallback = EmulatorWriteIo;
EmulatorContext.BopCallback = EmulatorBiosOperation; EmulatorContext.BopCallback = EmulatorBiosOperation;
EmulatorContext.IntAckCallback = EmulatorIntAcknowledge; EmulatorContext.IntAckCallback = EmulatorIntAcknowledge;
/* Reset the CPU */ /* Reset the CPU */
Fast486Reset(&EmulatorContext); Fast486Reset(&EmulatorContext);