From 8c86a9768ed19208c6817b025c7dd36c8b9c1837 Mon Sep 17 00:00:00 2001 From: Ulf Wohlers Date: Thu, 11 Sep 2003 13:52:31 +0000 Subject: [PATCH] int 21 31 does not set the carry flag anymore Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1245 --- src/dos/dos.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/dos/dos.cpp b/src/dos/dos.cpp index a00d86b3..f1035b4e 100644 --- a/src/dos/dos.cpp +++ b/src/dos/dos.cpp @@ -327,16 +327,12 @@ static Bitu DOS_21Handler(void) { reg_ah=dos.version.minor; break; case 0x31: /* Terminate and stay resident */ -//TODO First get normal files executing + //TODO First get normal files executing + // Important: This service does not set the carry flag! DOS_ResizeMemory(dos.psp,®_dx); - if (DOS_Terminate(true)) { - dos.return_code=reg_al; - dos.return_mode=RETURN_TSR; - CALLBACK_SCF(false); - } else { - reg_ax=dos.errorcode; - CALLBACK_SCF(true); - } + DOS_Terminate(true); + dos.return_code=reg_al; + dos.return_mode=RETURN_TSR; break; case 0x33: /* Extended Break Checking */ switch (reg_al) {