mirror of
https://github.com/FDOS/kernel.git
synced 2025-07-24 06:14:29 +02:00
Fix int21/3302 (the swap was wrong, Lucho & Bart)
Made int21/3301,2e,54 consistent with MSDOS behaviour (Lucho) Fix int21/5e02+ (mentioned by Arkady) git-svn-id: https://svn.code.sf.net/p/freedos/svn/kernel/trunk@962 6ac86273-5f31-0410-b378-82cca8765d1b
This commit is contained in:
parent
c90e1e3c11
commit
e71f6448ab
@ -85,14 +85,14 @@ VOID ASMCFUNC int21_syscall(iregs FAR * irp)
|
|||||||
|
|
||||||
/* Set Ctrl-C flag */
|
/* Set Ctrl-C flag */
|
||||||
case 0x01:
|
case 0x01:
|
||||||
break_ena = irp->DL != 0;
|
break_ena = irp->DL & 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0x02: /* andrew schulman: get/set extended control break */
|
case 0x02: /* andrew schulman: get/set extended control break */
|
||||||
{
|
{
|
||||||
UBYTE tmp = break_ena;
|
UBYTE tmp = break_ena;
|
||||||
irp->DL = break_ena;
|
break_ena = irp->DL & 1;
|
||||||
break_ena = tmp != 0;
|
irp->DL = tmp;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -162,7 +162,6 @@ VOID ASMCFUNC int21_syscall(iregs FAR * irp)
|
|||||||
/* UNDOCUMENTED: return current psp */
|
/* UNDOCUMENTED: return current psp */
|
||||||
case 0x62:
|
case 0x62:
|
||||||
irp->BX = cu_psp;
|
irp->BX = cu_psp;
|
||||||
break;
|
|
||||||
|
|
||||||
/* Normal DOS function - DO NOT ARRIVE HERE */
|
/* Normal DOS function - DO NOT ARRIVE HERE */
|
||||||
/* default: */
|
/* default: */
|
||||||
@ -693,7 +692,7 @@ dispatch:
|
|||||||
|
|
||||||
/* Set verify flag */
|
/* Set verify flag */
|
||||||
case 0x2e:
|
case 0x2e:
|
||||||
verify_ena = (lr.AL ? TRUE : FALSE);
|
verify_ena = lr.AL & 1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Get DTA */
|
/* Get DTA */
|
||||||
@ -1084,7 +1083,7 @@ dispatch:
|
|||||||
|
|
||||||
/* Get verify state */
|
/* Get verify state */
|
||||||
case 0x54:
|
case 0x54:
|
||||||
lr.AL = (verify_ena ? TRUE : FALSE);
|
lr.AL = verify_ena;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* ************UNDOCUMENTED************************************* */
|
/* ************UNDOCUMENTED************************************* */
|
||||||
@ -1234,10 +1233,7 @@ dispatch:
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
rc = (int)network_redirector_mx(REM_PRINTSET, &lr, (void *)Int21AX);
|
rc = (int)network_redirector_mx(REM_PRINTSET, &lr, (void *)Int21AX);
|
||||||
if (rc != SUCCESS)
|
goto short_check;
|
||||||
goto error_exit;
|
|
||||||
lr.AX = SUCCESS;
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -1507,7 +1503,7 @@ exit_dispatch:
|
|||||||
fmemcpy(r, &lr, sizeof(lregs) - 4);
|
fmemcpy(r, &lr, sizeof(lregs) - 4);
|
||||||
r->DS = lr.DS;
|
r->DS = lr.DS;
|
||||||
r->ES = lr.ES;
|
r->ES = lr.ES;
|
||||||
real_exit:
|
real_exit:;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (bDumpRegs)
|
if (bDumpRegs)
|
||||||
@ -1517,7 +1513,6 @@ real_exit:
|
|||||||
dump();
|
dump();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user