Talk:Extended memory

Merge
Agree with page merged proposal. Timharwoodx 21:38, 26 October 2006 (UTC)

Access
"Extended memory is available in real mode only through EMS, UMB, XMS, or HMA"

First of all, UMBs have nothing to do with extended memory. Second, it isn't really explained how these acronyms allow extended memory to exist in real mode, even though, well, extended memory doesn't exist in real mode. - Josh (talk | contribs) 05:36, 28 February 2008 (UTC)


 * No one bothered to explain, what this was for, or how it worked, which only points to how little actual usage translates into working knowledge:
 * 1. UMBs are blocks of memory above 640k for 8088 and 8086 processors, up to 1MB, using DOS 5.0 and above


 * 2. UMBs are blocks of memory above 640k for 80286 and 80386 processors, up to 1MB, using DOS 5.0 and above.
 * including the tiny area of 64k-16bytes bytes, at the end of the 1MB address space, that normally would be mapped into extended memory, but due to a bug in the 286 processor, that had to be implemented into the real mode of the 80386 processor, would map a tiny portion of extended memory into real mode memory, that could be used for programs, that had a XMS Driver ( protected mode switcher for memory access ) to either provide a DOS application with more than 1MB of memory ( 1Mb + 63bytes ), or... allow a Real mode DOS application running in real mode, to use UMBs, to change extended mode memory into expanded mode memory. ( Yes, your head should hurt, because everyone's head hurt ).


 * 3. Extended memory is not real mode memory, except for the first 63k bytes.
 * Extended memory is memory on a 286 or 386 processor, that is above 1MB, that normally could not be used by DOS in real ( 8086 mode ) mode unless a driver and what was an obscure processor bug of the 286 processor, was present, and exploited by software to map the first 63k bytes of extended memory into real mode. The 386 processor was designed to have the bug present in 286 protected modem for software compatibility.


 * 4. EMS is both expanded memory, ( memory on an expansion card, ) that could be swapped into upper memory blocks, unused by expansion cards, in real mode to increase the amount of memory available to programs that needed more than the real mode memory left after the operating system ( DOS ) and the application ( Usually Lotus 1-2-3 Rel 2, then Dbase III+ and AutoCAD ) were loaded: Thus increasing the available memory from as little as 260k to as much as 260k/real and 2000k/Expanded. ( BYTE magazine, PC Tech ref, and computer world all covered this extensively ).


 * 5. XMS is the Expanded memory spec, and the driver, that allowed Real Mode DOS programs, and EMS to use Extended memory as expanded memory, in protected mode on a 286 in 286 protected mode, and on a 386, use 386 32-bit protected mode to both emulate the 286 protected mode, and the 6 3 byte wrap around memory block, Windows 2.0/286 used XMS, and Windows 2.0/386 were examples of this: There was just one caveat, If there was no swap file, then a 386 processor would run DOS in a real mode window, if there was a swap file, then a 386 processor would run DOS in a virtual mode windows, ( i.e. it would crash the whole machine a whole lot less... )( confused? yes, Both dos prompts looked the same, but the memory command gave radically different results, and this an application program would behave differently. )


 * On a 386, with the swap file turned on, DOS would run, as the host for windows, and windows could host multiple Virtual DOS sessions. ( confused? It was so confusing, that PC Tech Magazine had to write a utility to tell you what mode DOS was running under. VIRT386.EXE )


 * 6. HMA is the area above 1MB on a IBM PC/AT or PS/2 50 that is 65k-16 bytes:


 * https://en.wikipedia.org/wiki/High_memory_area


 * Now all the terms have been explained, I can now quality the statement:


 * "Extended memory is available in real mode only through EMS, UMB, XMS, or HMA"


 * No, Extended memory is available in real mode DOS, only through DOS 5.0 and later, iff the config.sys has the DOS=HIGH, and you are running on a 286 or 386 processor.


 * UMBs are part of real memory, NOT Extended or Expanded memory, unless EMM386 made some upper memory blocks into an expanded memory window, then the UMBs became part of the expanded memory system, where expanded memory could be swapped into real memory.


 * There are two exceptions, that are extremely esoteric:


 * 1. DOS 4.0M which could access the HMA, in a unique way, that only DOSSHELL from DOS 4.0M could use. No one even IBMs TopView which could possibly take advantage of this, use it, but all DOS software could use the extra memory that was available.


 * 2. A driver for DOS 3.21 on a SPERRY/UNISYS 286, could provide dos with ... this will break your mind: with HMA, XMS, EMS and Virtual memory.
 * Wait: It gets better, the memory command would report more memory than was installed. A 1MB machine would report 1MB+63K, and with what ever virtual memory was created.


 * 170.75.140.124 (talk) 20:18, 26 August 2020 (UTC)