Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dosbox-staging/dosbox-staging.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorripsaw8080 <ripsaw8080@users.sourceforge.net>2022-06-24 05:35:59 +0300
committerkcgen <kcgen@users.noreply.github.com>2022-06-24 05:37:30 +0300
commit7ac2354944ea2aaf1b9e351345619141355fec62 (patch)
tree6f8f9982ba463be3c77a264afef039eaf3be0bb7
parent3755a112152088ecbf675640995451c9d75a8384 (diff)
parent20345b5f1ed8a93369d1485ebc2432e6dcd8ebde (diff)
Merge 'svn/trunk' r4480kc/merge-r4480
-rw-r--r--src/dos/dos.cpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/dos/dos.cpp b/src/dos/dos.cpp
index e43b6233c..092d6f16d 100644
--- a/src/dos/dos.cpp
+++ b/src/dos/dos.cpp
@@ -998,6 +998,7 @@ static Bitu DOS_21Handler(void) {
case 0x4d: /* Get Return code */
reg_al=dos.return_code;/* Officially read from SDA and clear when read */
reg_ah=dos.return_mode;
+ CALLBACK_SCF(false);
break;
case 0x4e: /* FINDFIRST Find first matching file */
MEM_StrCopy(SegPhys(ds)+reg_dx,name1,DOSNAMEBUF);
@@ -1073,13 +1074,14 @@ static Bitu DOS_21Handler(void) {
CALLBACK_SCF(true);
}
} else {
- LOG(LOG_DOSMISC,LOG_ERROR)("DOS:57:Unsupported subtion %X",reg_al);
+ LOG(LOG_DOSMISC,LOG_ERROR)("DOS:57:Unsupported subfunction %X",reg_al);
}
break;
case 0x58: /* Get/Set Memory allocation strategy */
switch (reg_al) {
case 0: /* Get Strategy */
reg_ax=DOS_GetMemAllocStrategy();
+ CALLBACK_SCF(false);
break;
case 1: /* Set Strategy */
if (DOS_SetMemAllocStrategy(reg_bx)) CALLBACK_SCF(false);
@@ -1114,6 +1116,7 @@ static Bitu DOS_21Handler(void) {
}
reg_bl=1; //Retry retry retry
reg_ch = 0; // Unknown error locus
+ CALLBACK_SCF(false); //undocumented
break;
case 0x5a: /* Create temporary file */
{
@@ -1160,7 +1163,10 @@ static Bitu DOS_21Handler(void) {
reg_si = DOS_SDA_OFS;
reg_cx = 0x80; // swap if in dos
reg_dx = 0x1a; // swap always
+ CALLBACK_SCF(false);
LOG(LOG_DOSMISC,LOG_ERROR)("Get SDA, Let's hope for the best!");
+ } else {
+ LOG(LOG_DOSMISC,LOG_ERROR)("DOS:5D:Unsupported subfunction %X",reg_al);
}
break;
case 0x5e: /* Network and printer functions */
@@ -1185,13 +1191,13 @@ static Bitu DOS_21Handler(void) {
case 0x60: /* Canonicalize filename or path */
MEM_StrCopy(SegPhys(ds)+reg_si,name1,DOSNAMEBUF);
if (DOS_Canonicalize(name1,name2)) {
- MEM_BlockWrite(SegPhys(es)+reg_di,name2,(Bitu)(safe_strlen(name2)+1));
- CALLBACK_SCF(false);
- } else {
- reg_ax=dos.errorcode;
- CALLBACK_SCF(true);
- }
- break;
+ MEM_BlockWrite(SegPhys(es)+reg_di,name2,(Bitu)(strlen(name2)+1));
+ CALLBACK_SCF(false);
+ } else {
+ reg_ax=dos.errorcode;
+ CALLBACK_SCF(true);
+ }
+ break;
case 0x62: /* Get Current PSP Address */
reg_bx=dos.psp();
break;
@@ -1302,8 +1308,10 @@ static Bitu DOS_21Handler(void) {
CALLBACK_SCF(false);
break;
};
- case 0x68: /* FFLUSH Commit file */
+ case 0x6a: /* Same as commit file */
+ case 0x68: /* FFLUSH Commit file */
if(DOS_FlushFile(reg_bl)) {
+ reg_ah = 0x68;
CALLBACK_SCF(false);
} else {
reg_ax = dos.errorcode;