Change in UMB allocation for DEVICEHIGH drivers when exceeding available upper memory in MS-DOS 6.22
25.5K reputation · 02 Apr 2022, 01:30 UTC
Goal: Identify the rule that MS‑DOS 6.22 uses to decide which DEVICEHIGH‑loaded device drivers remain in upper memory blocks when the total requested UMB space exceeds the amount available from EMM386.
Constraints/uncertainty: The placement varies with the order of DEVICEHIGH lines in CONFIG.SYS, the presence of LOADHIGH programs, the dynamic fragmentation of UMBs caused by hardware such as video BIOS or network adapters, and is not documented in the official MS‑DOS manuals. This makes the outcome appear intermittent across reboots or different machines.
Questions: What specific factors determine which drivers stay high versus fall back to conventional memory? Does the selection depend solely on the order of DEVICEHIGH directives, or are LOADHIGH allocations and hardware‑based UMB layout also involved? Can a predictable guideline be derived from CONFIG.SYS ordering and MEM /C output to guarantee consistent driver placement across boots?