Only check number of tasks after first message.
Use a 16-bit module for creating the initial task.
diff --git a/miscemu/main.c b/miscemu/main.c
index 5ee83ee..afbef47 100644
--- a/miscemu/main.c
+++ b/miscemu/main.c
@@ -107,11 +107,12 @@
/* Start message loop for desktop window */
- while ( GetNumTasks16() > 1 && Callout.GetMessageA( &msg, 0, 0, 0 ) )
+ do
{
+ if (!Callout.GetMessageA( &msg, 0, 0, 0 )) break;
Callout.TranslateMessage( &msg );
Callout.DispatchMessageA( &msg );
- }
+ } while (GetNumTasks16() > 1);
ExitProcess( 0 );
}
@@ -156,7 +157,7 @@
if (!LoadLibraryA( "KERNEL32" )) return 1;
/* Create initial task */
- if ( !(pModule = NE_GetPtr( GetModuleHandle16( "KERNEL32" ) )) ) return 1;
+ if ( !(pModule = NE_GetPtr( GetModuleHandle16( "KERNEL" ) )) ) return 1;
if ( !TASK_Create( THREAD_Current(), pModule, 0, 0, FALSE ) ) return 1;
/* Initialize CALL32 routines */