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 ---
