Hi!

- fix: INT21/3301 now returns in DL low bit of input value (as in MS-DOS).

--- Begin Message ---
diff -ruNp old/kernel/inthndlr.c new/kernel/inthndlr.c
--- old/kernel/inthndlr.c       2004-07-14 23:47:40.000000000 +0000
+++ new/kernel/inthndlr.c       2004-07-15 00:42:06.000000000 +0000
@@ -74,21 +74,18 @@ VOID ASMCFUNC int21_syscall(iregs FAR * 
       setvec(irp->AL, (intvec)MK_FP(irp->DS, irp->DX));
       break;
 
-      /* DosVars - get/set dos variables                              */
-    case 0x33:
+    case 0x33:         /* DosVars - get/set dos variables      */
       switch (irp->AL)
       {
-          /* Get Ctrl-C flag                                      */
-        case 0x00:
-          irp->DL = break_ena;
-          break;
-
-          /* Set Ctrl-C flag                                      */
-        case 0x01:
+        case 0x01:     /* Set Ctrl-C flag                      */
           break_ena = irp->DL & 1;
+          /* fall through */
+
+        case 0x00:     /* Get Ctrl-C flag                      */
+          irp->DL = break_ena;
           break;
 
-        case 0x02:             /* andrew schulman: get/set extended control break  */
+        case 0x02:     /* andrew schulman: get/set extended control break */
           {
             UBYTE tmp = break_ena;
             break_ena = irp->DL & 1;

--- End Message ---

Reply via email to