Global Information Lookup Global Information

High memory area information


The high memory area is highlighted.

In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible computer.

In real mode, the segmentation architecture of the Intel 8086 and subsequent processors identifies memory locations with a 16-bit segment and a 16-bit offset, which is resolved into a physical address via (segment) × 16 + (offset). Although intended to address only 1 Megabyte (MB) (220 bytes) of memory, segment:offset addresses at FFFF:0010 and beyond reference memory beyond 1 MB (FFFF0 + 0010 = 100000). So, on an 80286 and subsequent processors, this mode can actually address the first 65520 bytes of extended memory as part of the 64 KB range starting 16 bytes before the 1 MB mark—FFFF:0000 (0xFFFF0) to FFFF:FFFF (0x10FFEF). The Intel 8086 and 8088 processors, with only 1 MB of memory and only 20 address lines, wrapped around at the 20th bit, so that address FFFF:0010 was equivalent to 0000:0000.[1]

To allow running existing DOS programs which relied on this feature to access low memory on their newer IBM PC AT computers, IBM added special circuitry on the motherboard to simulate the wrapping around. This circuit was a simple logic gate which could disconnect the microprocessor's 21st addressing line, A20, from the rest of the motherboard. This gate could be controlled, initially through the keyboard controller, to allow running programs which wanted to access the entire RAM.[1]

So-called A20 handlers could control the addressing mode dynamically,[1] thereby allowing programs to load themselves into the 1024–1088 KB region and run in real mode.[1]

Code suitable to be executed in the HMA must either be coded to be position-independent (using only relative references),[2][1] be compiled to work at the specific addresses in the HMA (typically allowing only one or at most two pieces of code to share the HMA), or it must be designed to be paragraph boundary or even offset relocatable (with all addresses being fixed up during load).[2][1]

Before code (or data) in the HMA can be addressed by the CPU, the corresponding driver must ensure that the HMA is mapped in. This requires that any such requests are tunneled through a stub remaining in memory outside the HMA, which would invoke the A20 handler in order to (temporarily) enable the A20 gate.[2][1] If the driver does not exhibit any public data structures and only uses interrupts or calls already controlled by the underlying operating system, it might be possible to register the driver with the system in a way so that the system will take care of A20 itself thereby eliminating the need for a separate stub.[1][nb 1]

The first user of the HMA among Microsoft products was Windows/286 2.1 in 1988, which introduced the HIMEM.SYS device driver. Starting in 1990 with Digital Research's DR DOS 5.0[3] (via HIDOS.SYS /BDOS=FFFF[4] and CONFIG.SYS HIDOS=ON) and since 1991 with MS-DOS 5.0[3] (via DOS=HIGH), parts of the operating system's BIOS and kernel could be loaded into the HMA as well,[3][5] freeing up to 46 KB of conventional memory.[1] Other components, such as device drivers and terminate-and-stay-resident programs (TSRs), could at least be loaded into the upper memory area (UMA), but not into the HMA. Under DOS 5.0 and higher, with DOS=HIGH, the system additionally attempted to move the disk buffers into the HMA.[5] Under DR DOS 6.0 (1991) and higher, the disk buffers (via HIBUFFERS, and later also BUFFERSHIGH), parts of the command processor COMMAND.COM as well as several special self-relocating drivers like KEYB, NLSFUNC and SHARE could load into the HMA as well (using their /MH option), thereby freeing up even more conventional memory and upper memory for conventional DOS software to work with.[1] TASKMAX seems to have relocated parts of itself into the HMA as well.[6][7] Novell's NLCACHE from NetWare Lite and early versions of NWCACHE from Personal NetWare and Novell DOS 7 could utilize the HMA as well.[8][9][7] Under MS-DOS/PC DOS, a ca. 2 KB shared portion of COMMAND.COM can be relocated into the HMA,[10] as well as DISPLAY.SYS bitmaps for prepared codepages.[10][11] Under MS-DOS 6.2 (1993) and higher, a ca. 5 KB portion of DBLSPACE.BIN/DRVSPACE.BIN can coexist with DOS in the HMA (unless DBLSPACE/DRVSPACE /NOHMA is invoked).[5][12] Under PC DOS 7.0 (1995) and 2000, DOSKEY loads into the HMA (if available),[13] and SHARE can be loaded into the HMA as well (unless its /NOHMA option is given).[13] Under MS-DOS 7.0 (1995) to 8.0 (2000), parts of the HMA are also used as a scratchpad to hold a growing data structure recording various properties of the loaded real-mode drivers.[7][14][15]

  1. ^ a b c d e f g h i j Cite error: The named reference Paul_2002_HMA was invoked but never defined (see the help page).
  2. ^ a b c Cite error: The named reference Ingenoso_1998 was invoked but never defined (see the help page).
  3. ^ a b c Cite error: The named reference Dryfoos_1991_DOS5 was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference Novell_1994_DR6 was invoked but never defined (see the help page).
  5. ^ a b c Cite error: The named reference Schulman_1994_Undocumented-DOS was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference RBIL_2000_HMA was invoked but never defined (see the help page).
  7. ^ a b c Cite error: The named reference Paul_2002_MSDOS7 was invoked but never defined (see the help page).
  8. ^ Cite error: The named reference Paul_1997_NWDOSTIP was invoked but never defined (see the help page).
  9. ^ Cite error: The named reference Paul_2001_NWDOSTIP was invoked but never defined (see the help page).
  10. ^ a b Cite error: The named reference Chappell_1994_Internals was invoked but never defined (see the help page).
  11. ^ Cite error: The named reference Paul_2002_DISPLAY was invoked but never defined (see the help page).
  12. ^ Cite error: The named reference Cooper_2002_MS-DOS was invoked but never defined (see the help page).
  13. ^ a b Cite error: The named reference Brooks_2014_HMA was invoked but never defined (see the help page).
  14. ^ Cite error: The named reference Sweger_2002 was invoked but never defined (see the help page).
  15. ^ Cite error: The named reference Paul_2002_HMA7 was invoked but never defined (see the help page).


Cite error: There are <ref group=nb> tags on this page, but the references will not show without a {{reflist|group=nb}} template (see the help page).

and 23 Related for: High memory area information

Request time (Page generated in 1.9796 seconds.)

High memory area

Last Update:

In DOS memory management, the high memory area (HMA) is the RAM area consisting of the first 65520 bytes above the one megabyte in an IBM AT or compatible...

Word Count : 2736

High Bandwidth Memory

Last Update:

High Bandwidth Memory (HBM) is a computer memory interface for 3D-stacked synchronous dynamic random-access memory (SDRAM) initially from Samsung, AMD...

Word Count : 3496

Upper memory area

Last Update:

In DOS memory management, the upper memory area (UMA) is the memory between the addresses of 640 KB and 1024 KB (0xA0000–0xFFFFF) in an IBM PC or compatible...

Word Count : 1415

Extended memory

Last Update:

manage them itself. DOS memory management Conventional memory Expanded memory (EMS) High memory area (HMA) Upper memory area (UMA) Global EMM Import Specification...

Word Count : 810

High memory

Last Update:

system kernel. The phrase is also sometimes used as shorthand for the High Memory Area, which is a different concept entirely. Some operating system kernels...

Word Count : 306

Conventional memory

Last Update:

memory segment (64 KB) of the conventional memory area is named lower memory or low memory area. The remaining 384 KB beyond the conventional memory area...

Word Count : 3329

DOS memory management

Last Update:

physical memory in a machine could be organised as a combination of base or conventional memory (including lower memory), upper memory, high memory (not the...

Word Count : 2202

Method stub

Last Update:

conventional memory by self-relocating resident drivers which move most of themselves into upper memory, the high memory area, expanded or extended memory as well...

Word Count : 330

Expanded memory

Last Update:

Extended memory (XMS) High memory area (HMA) Overlay (programming) Upper memory area (UMA) Global EMM Import Specification (GEMMIS) x86 memory segmentation...

Word Count : 2204

List of computing and IT abbreviations

Last Update:

Depth HLASM—High Level ASseMbler HLS—HTTP Live Streaming HMA—High Memory Area HP—Hewlett-Packard HPC—High-Performance Computing HPFS—High Performance...

Word Count : 6615

Memory segmentation

Last Update:

Memory segmentation is an operating system memory management technique of dividing a computer's primary memory into segments or sections. In a computer...

Word Count : 2134

Computer memory

Last Update:

main memory or primary storage. Archaic synonyms for main memory include core (for magnetic core memory) and store. Main memory operates at a high speed...

Word Count : 3270

Memory

Last Update:

to areas of the brain that are associated with memory storage, such as the hippocampus. Finally, the retrieval of information from long-term memory can...

Word Count : 16049

Flash memory

Last Update:

Flash memory is an electronic non-volatile computer memory storage medium that can be electrically erased and reprogrammed. The two main types of flash...

Word Count : 16827

HMA

Last Update:

horses and/or wild burros, managed by the Bureau of Land Management High memory area, in DOS computers HMA (VPN), a VPN provider Honda Manufacturing of...

Word Count : 141

Microsoft Windows

Last Update:

Intel 80286 processors. It runs in real mode but can make use of the high memory area. In addition to full Windows packages, there were runtime-only versions...

Word Count : 8794

A20 line

Last Update:

" The A20 handler is IBM PC memory manager software that controls access to the high memory area (HMA). Extended-memory managers usually provide this...

Word Count : 4913

Memory architecture

Last Update:

Expanded memory Extended memory Flat memory model Harvard architecture High memory area (HMA) Lernmatrix Memory hierarchy Memory level parallelism Memory model...

Word Count : 477

Memory management

Last Update:

Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically...

Word Count : 2676

Handler

Last Update:

service process in DNIX A20 handler, the IBM PC memory manager software controlling access to the High Memory Area Event handler, a routine for processing a...

Word Count : 389

Spatial memory

Last Update:

that there are specific areas of the brain associated with spatial memory. Many methods are used for measuring spatial memory in children, adults, and...

Word Count : 11597

DDR4 SDRAM

Last Update:

Synchronous Dynamic Random-Access Memory (DDR4 SDRAM) is a type of synchronous dynamic random-access memory with a high bandwidth ("double data rate") interface...

Word Count : 4482

Shared memory

Last Update:

In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them...

Word Count : 1301

PDF Search Engine © AllGlobal.net