In This Article
What is High Memory Area (HMA)?
- High Memory Area is the initial designated space on the memory.
- The design of the HMA allows addressing it in the real mode and does not need swapping to protected mode.
- In this space, portions of the operating system, device drivers and TSRs can be loaded depending on the software used.
- This specific memory area typically ranges between 640 KB and 1024 KB.
- In hex, this particular region is denoted as A0000 through 100000.
Understanding High Memory Area (HMA)
High Memory Area is the specific region in the memory of a computer that usually ranges between 640 KB and 1024 KB. It is represented as A0000 through 100000 in hex.
The High Memory Area is typically used to move programs from traditional memory into it. This helps the computer to have more traditional memory available for its operational needs.
Codes can also be executed in the High Memory Area but there are a couple of specific requirements for it, such as:
- It should be independent of its position and use only relative references for compilation so that it can work at the particular addresses in the High Memory Area. This particular requirement will allow sharing only one or, at the most, two pieces of codes in the HMA.
- It should also be specifically designed so that it can offset relocatable paragraph boundaries where all of the addresses in the memory are fixed up while they are loaded.
However, before the data or the code in the High Memory Area is addressed by the Central Processing Unit (CPU), the driver relevant to each needs to confirm that the matching HMA is recorded in it.
This means that addressing HMA or any such requests made, will need to be channeled through a leftover stub outside the High Memory Area in the computer memory.
This will typically result in invoking the handler so that the gate is enabled temporarily.
Considering the Microsoft products, the High Memory Area feature was used for the first time in the Windows/286 2.1 in 1988. It introduced a specific device driver, called the HIMEM.SYS, to manage this area.
Over time, in the later versions, such as 5.0 of DR-DOS in 1990 and of MS-DOS in 1991, HMA also allowed loading a part of the operating system into it as well. This helped in freeing as much as up to 46 KB of space in the traditional memory.
If you use the right kind of software, you can also load different other things into this particular area, such as:
- Different device drivers
- Terminate and Stay Resident (TSR) programs
In this specific area, typically device driver buffer spaces are also allocated along with the shared system memory.
So, after going through this article, you are now well aware of what High Memory Area in the memory of your computer system actually means and what specific types of uses you can put it to.