Skip to contentSkip to conversation

MSM DPMI error

DISCUSSION Stas Sergeev 2 participants 2 messages Sep 19, 2002

lore
Share & tools
lore
#0 lore raw

Hello.

Quoted 1 line · Grigory Batalov

I have full logs (-D9+M) if someone is interesting:

OK, AFAICS it have nothing to do with 1.1.3.4 - this bug was always there and I wonder why nobody noticed it before (oh, about a year ago Bart forwarded me something similar from djgpp-devel, IIRC). Try this patch. Without the ability to test, I can't guarantee, but I think it must be a fix.

dosext/dpmi/dpmi.c +5 -1
@@ -2202,7 +2202,11 @@
 		  case 0x1c:	/* ROM BIOS timer tick interrupt */
 		  case 0x23:	/* DOS Ctrl+C interrupt */
 		  case 0x24:	/* DOS critical error interrupt */
-			run_pm_int(VM86_ARG(retval));
+			if (SEGOFF2LINEAR(BIOSSEG, INT_OFF(VM86_ARG(retval))) !=
+ 			    SEGOFF2LINEAR(_CS, _IP) -2)
+			  run_pm_int(VM86_ARG(retval));
+			else
+			  do_int(VM86_ARG(retval));
 			break;
 		  default:
 #ifdef USE_MHPDBG
#1 lore raw
Quoted 8 lines · On Thu, 19 Sep 2002 16:51:52 +0400 Stas Sergeev <[email protected]> wrote:
Quoted 1 line

I have full logs (-D9+M) if someone is interesting:

OK, AFAICS it have nothing to do with 1.1.3.4 - this bug was always there and I wonder why nobody noticed it before (oh, about a year ago Bart forwarded me something similar from djgpp-devel, IIRC). Try this patch. Without the ability to test, I can't guarantee, but I think it must be a fix.

Yes, it works now. Thank you, you saved my life! =))

Stas, can you give some common hints to improve performance
of such DPMI programs as MSM? It works quite slow (taking all CPU power).

Signature · 1 line
 Grigory Batalov.