Hi!

- bugfix for INT21/3301: MS-DOS clears high buts of DL.

--- Begin Message ---
diff -ruNp old/kernel/inthndlr.c new/kernel/inthndlr.c
--- old/kernel/inthndlr.c       2004-05-28 12:08:32.000000000 +0000
+++ new/kernel/inthndlr.c       2004-05-31 07:29:14.000000000 +0000
@@ -78,14 +78,14 @@ VOID ASMCFUNC int21_syscall(iregs FAR * 
     case 0x33:
       switch (irp->AL)
       {
-          /* Get Ctrl-C flag                                      */
-        case 0x00:
-          irp->DL = break_ena;
-          break;
-
           /* Set Ctrl-C flag                                      */
         case 0x01:
           break_ena = irp->DL & 1;
+          /* fall through */
+
+          /* Get Ctrl-C flag                                      */
+        case 0x00:
+          irp->DL = break_ena;
           break;
 
         case 0x02:             /* andrew schulman: get/set extended control break  */
@@ -1049,7 +1049,7 @@ dispatch:
       /* dta for this call is set on entry.  This     */
       /* needs to be changed for new versions.        */
       rc = DosFindFirst(lr.CX, FP_DS_DX);
-      lr.AX = 0;
+      lr.AX = 0; /* ??? - avb */
       goto short_check;
 
       /* Dos Find Next                                                */
@@ -1057,7 +1057,7 @@ dispatch:
       /* dta for this call is set on entry.  This     */
       /* needs to be changed for new versions.        */
       rc = DosFindNext();
-      lr.AX = 0;
+      lr.AX = 0; /* ??? - avb */
       goto short_check;
 /*
     case 0x50:  

--- End Message ---

Reply via email to