Repository navigation
feat: High to low memory scanning in DOS Memory Manager and DOS UMB support - #2395
Open
maximilien-noal wants to merge 7 commits into
Open
maximilien-noal wants to merge 7 commits into
maximilien-noal wants to merge 7 commits into
Conversation
maximilien-noal
marked this pull request as draft
October 9, 2026 06:32
maximilien-noal
force-pushed
the
fix/alone_in_the_dark
branch
from
October 9, 2026 06:34
86b46e1 to
642a9e8
Compare
maximilien-noal
marked this pull request as ready for review
October 10, 2026 04:20
maximilien-noal
force-pushed
the
fix/alone_in_the_dark
branch
from
October 10, 2026 04:35
4cb66ee to
6e8e353
Compare
maximilien-noal
force-pushed
the
fix/alone_in_the_dark
branch
2 times, most recently
from
October 10, 2026 04:53
9b5eded to
c3dc521
Compare
maximilien-noal
marked this pull request as draft
October 10, 2026 06:00
feat: Add support for DOS Upper Memory Blocks (UMBs) in memory management Refactor UMB handling and enhance memory allocation strategies - Changed the `Umb` property in `Configuration` from init-only to settable. - Updated `DosInt21Handler` to use a new method for finding the largest free size for allocation. - Enhanced `ExtendedMemoryManager` to manage UMB requests and releases more effectively. - Refactored `DosMemoryManager` to support new allocation strategies and improved memory block management. - Introduced new methods for validating and setting memory allocation strategies. - Updated `DosMemoryAllocationStrategy` enum to clarify UMB handling. - Added integration tests for UMB functionality, including allocation strategies and error handling. - Created assembly test resources to validate UMB behavior in various scenarios. fix: Improve upper memory block release logic and enhance memory chain handling fix: Update UMB release logic and add FreeUpperMemoryBlock method for better memory management refactor: ExtendedMemoryManager to enforce non-nullable DosMemoryManager and update related constructors
maximilien-noal
force-pushed
the
fix/alone_in_the_dark
branch
from
October 11, 2026 06:44
825d02e to
9564a25
Compare
maximilien-noal
requested review from
kevinferrare
and
a balanced review from Copilot
October 11, 2026 06:49
maximilien-noal
marked this pull request as ready for review
October 11, 2026 06:49
… high-memory bits
Update DOS memory initialization to set `DosSysVars.FirstMCB` and `MemAllocScanStart` from the actual conventional-memory chain head, remove the hardcoded `FirstMcbSegment` default, and adjust docs and UMB integration tests to follow the sysvars chain head.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of Changes
Adds DOS Upper Memory Block (UMB) support and extends DOS memory allocation to honor the configured allocation strategy across conventional and upper memory.
Detail
--Umboption, enabled by default. UMBs are available when the option is enabled and XMS is present.Rationale behind Changes
Hopefully the new memory scan strategy will fix games such as Alone in the Dark and others that complain about not enough memory.
DOS UMB support also makes more MCBs available to DOS applications.
Testing