mirror of https://github.com/FDOS/kernel.git
fix 2nd parameter of "DOS=" statement in config.sys does not take effect in some cases:
* preceding space(s): e.g. "DOS=UMB, HIGH" * after unknown keyword: e.g. "DOS=NOUMB,HIGH"
This commit is contained in:
parent
34c452a29e
commit
571cf11111
|
@ -1294,14 +1294,17 @@ STATIC VOID Dosmem(BYTE * pLine)
|
||||||
BYTE *pTmp;
|
BYTE *pTmp;
|
||||||
BYTE UMBwanted = FALSE;
|
BYTE UMBwanted = FALSE;
|
||||||
|
|
||||||
pLine = GetStringArg(pLine, szBuf);
|
GetStringArg(pLine, szBuf);
|
||||||
|
strcpy(szBuf, pLine);
|
||||||
strupr(szBuf);
|
strupr(szBuf);
|
||||||
|
|
||||||
/* printf("DOS called with %s\n", szBuf); */
|
/* printf("DOS called with %s\n", szBuf); */
|
||||||
|
|
||||||
for (pTmp = szBuf;;)
|
for (pTmp = szBuf;;)
|
||||||
{
|
{
|
||||||
|
while (*pTmp == ' ' || *pTmp == '\t')
|
||||||
|
pTmp++;
|
||||||
|
|
||||||
if (memcmp(pTmp, "UMB", 3) == 0)
|
if (memcmp(pTmp, "UMB", 3) == 0)
|
||||||
{
|
{
|
||||||
UMBwanted = TRUE;
|
UMBwanted = TRUE;
|
||||||
|
@ -1312,11 +1315,26 @@ STATIC VOID Dosmem(BYTE * pLine)
|
||||||
HMAState = HMA_REQ;
|
HMAState = HMA_REQ;
|
||||||
pTmp += 4;
|
pTmp += 4;
|
||||||
}
|
}
|
||||||
|
if (memcmp(pTmp, "LOW", 3) == 0)
|
||||||
|
{
|
||||||
|
HMAState = HMA_LOW;
|
||||||
|
pTmp += 3;
|
||||||
|
}
|
||||||
|
if (memcmp(pTmp, "NOUMB", 5) == 0)
|
||||||
|
{
|
||||||
|
UMBwanted = FALSE;
|
||||||
|
pTmp += 5;
|
||||||
|
}
|
||||||
/* if (memcmp(pTmp, "CLAIMINIT",9) == 0) { INITDataSegmentClaimed = 0; pTmp += 9; }*/
|
/* if (memcmp(pTmp, "CLAIMINIT",9) == 0) { INITDataSegmentClaimed = 0; pTmp += 9; }*/
|
||||||
pTmp = skipwh(pTmp);
|
pTmp = skipwh(pTmp);
|
||||||
|
|
||||||
if (*pTmp != ',')
|
if (*pTmp == '\0')
|
||||||
break;
|
break;
|
||||||
|
if (*pTmp != ',')
|
||||||
|
{
|
||||||
|
CfgFailure(pLine + (pTmp - szBuf));
|
||||||
|
break;
|
||||||
|
}
|
||||||
pTmp++;
|
pTmp++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue