Commit 4d58ee6a authored by Liam Middlebrook's avatar Liam Middlebrook Committed by Alexandre Julliard

krnl386.exe: Start DOSVM timer on GET_SYSTEM_TIME.

Start the DOSVM tick timer when the GET_SYSTEM_TIME interrupt (int 1a ah 00) is fired. This fixes a bug when running Sid Meier's CIVILIZATION for Windows 3.1 where the game would appear to hang at the launch screen (although sound would play as expected). This was due to the BIOSDATA.Ticks field never being updated. Signed-off-by: 's avatarLiam Middlebrook <liammiddlebrook@gmail.com>
parent aaad7959
...@@ -549,6 +549,8 @@ static void WINAPI DOSVM_Int1aHandler( CONTEXT *context ) ...@@ -549,6 +549,8 @@ static void WINAPI DOSVM_Int1aHandler( CONTEXT *context )
case 0x00: /* GET SYSTEM TIME */ case 0x00: /* GET SYSTEM TIME */
{ {
BIOSDATA *data = DOSVM_BiosData(); BIOSDATA *data = DOSVM_BiosData();
DOSVM_start_bios_timer();
SET_CX( context, HIWORD(data->Ticks) ); SET_CX( context, HIWORD(data->Ticks) );
SET_DX( context, LOWORD(data->Ticks) ); SET_DX( context, LOWORD(data->Ticks) );
SET_AL( context, 0 ); /* FIXME: midnight flag is unsupported */ SET_AL( context, 0 ); /* FIXME: midnight flag is unsupported */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment