Skip to contentSkip to conversation

Windows 98 dos box patch

PATCH Ingo Brueckl 1 participant 1 message May 29, 2009

lore
Share & tools
lore
#0 lore raw

I don't know whether this is of any interest to anybody besides me, but my dos editor has some extra features when running in a Windows 98 dos box, so I made him think dosemu is what he expects by the following patch:

src/base/async/int.c +2 -2
diff -Nur dosemu-1.4.0.orig/src/base/async/int.c dosemu-1.4.0/src/base/async/int.c
@@ -1789,10 +1789,10 @@
     }
     switch (LO(ax)) {
       case 0x00:		/* WINDOWS ENHANCED MODE INSTALLATION CHECK */
-    if (in_dpmi && in_win31) {
+    if (win98 || (in_dpmi && in_win31)) {
       D_printf("WIN: WINDOWS ENHANCED MODE INSTALLATION CHECK: %i\n", in_win31);
       if (win31_mode == 3)
-        LWORD(eax) = 0x0a03;
+        LWORD(eax) = (win98 ? 0x0a04 : 0x0a03);   /* fake running Win98 */
       else
         LWORD(eax) = 0;
       return 1;
src/base/init/config.c +4 -1
diff -Nur dosemu-1.4.0.orig/src/base/init/config.c dosemu-1.4.0/src/base/init/config.c
@@ -62,7 +62,7 @@
  * they are eaten by secure_option_preparse().
  */
 static const char * const getopt_string =
-       "23456ABCcD:dE:e:F:f:H:h:I:i::kL:M:mNOo:P:Sstu:Vv:wXx:U:"
+       "23456ABCcD:dE:e:F:f:H:h:I:i::kL:M:mNOo:P:Sstu:Vv:wWXx:U:"
        "gK"/*NOPs kept for compat (not documented in usage())*/;
 
 
@@ -1028,6 +1028,9 @@
 	case 'w':
             config.X_fullscreen = !config.X_fullscreen;
 	    break;
+	case 'W':
+            win98 = 1;
+	    break;
 	case 'M':{
 		int             max_mem = config.vga ? 640 : MAX_MEM_SIZE;
 		config.mem_size = atoi(optarg);
src/include/emu.h +1 -0
diff -Nur dosemu-1.4.0.orig/src/include/emu.h dosemu-1.4.0/src/include/emu.h
@@ -333,6 +333,7 @@
 
 config_t;
 
+EXTERN int win98 INIT(0);
 
 #define SPKR_OFF	0
 #define SPKR_NATIVE	1