eXtended Memory Manager (XMM) that can manage memory beyond the 4 GB barrier, up to 1 terabyte.
Baron-von-Riedesel/HimemSX
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
master
Could not load branches
Nothing to show
Could not load tags
Nothing to show
{{ refName }}
default
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code
-
Clone
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more.
- Open with GitHub Desktop
- Download ZIP
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
1. About HimemSX is a fork of HimemX. Its main feature is that it's able to manage more than 4 GB of memory. The memory beyond the 4 GB limit is called "super-extended" in this document. 2. Technical Details To access extended memory below the 4 GB barrier HimemSX uses the so-called "unreal" mode, like most other XMMs. Memory beyond the 4 GB barrier can only be accessed thru special paging mechanisms. HimemSX uses the PSE-36 variant. PSE stands for Page Size Extension, the 36 refers to the original 36 bit address extension (64 GB), which was later extended to 40 bit (1 TB). The XMS API has to be extended. See XMS35.txt for details. In v86 mode, the XMM needs support from the v86-monitor program to access extended memory, since it cannot run the privileged code required for the memory access. Currently only Jemm386 provides this support. 3. Restrictions - The maximum amount of memory that the XMS API can handle is 4 TB (42 physical address lines). However, since HimemSX currently uses 32-bit paging with PSE-36 inside its block-move function, the effective limit is 1 TB (40 address lines). - The 'move extended memory' function 0Bh understands 32-bit offsets only. So if a memory block is larger than 4 GB, you can't use this function to copy memory beyond a 4 GB offset. Since version 3.53, there's an additional block move function available, that overcomes this limitation. See XMS35.txt for details. - if no super-extended memory is found, or the CPU doesn't support PSE-36 paging, HimemSX will still load and behave like a v3 XMM. However, it searches for extended memory via Int 15h, ax=e820h only, without trying to fall back to older detection strategies if this call fails. 4. License Since HimemSX is a fork of HimemX and HimemX is derived from FD Himem, the FD Himem copyrights do apply. FD Himem is copyright Till Gerken and Tom Ehlert, with GPL and/or Artistic license. Japheth
About
eXtended Memory Manager (XMM) that can manage memory beyond the 4 GB barrier, up to 1 terabyte.
Resources
Stars
Watchers
Forks
Packages 0
No packages published