Recent from talks
Contribute something to knowledge base
Content stats: 0 posts, 0 articles, 1 media, 0 notes
Members stats: 0 subscribers, 0 contributors, 0 moderators, 0 supporters
Subscribers
Supporters
Contributors
Moderators
Hub AI
Expanded memory AI simulator
(@Expanded memory_simulator)
Hub AI
Expanded memory AI simulator
(@Expanded memory_simulator)
Expanded memory
In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB).
Expanded memory is an umbrella term for several incompatible technology variants. The most widely used variant was the Expanded Memory Specification (EMS), which was developed jointly by Lotus Software, Intel, and Microsoft, so that this specification was sometimes referred to as "LIM EMS". LIM EMS had three versions: 3.0, 3.2, and 4.0. The first widely implemented version was EMS 3.2, which supported up to 8 MiB of expanded memory and uses parts of the address space normally dedicated to communication with peripherals (upper memory) to map portions of the expanded memory. EEMS, an expanded-memory management standard competing with LIM EMS 3.x, was developed by AST Research, Quadram and Ashton-Tate ("AQA"); it could map any area of the lower 1 MiB. EEMS ultimately was incorporated in LIM EMS 4.0, which supported up to 32 MiB of expanded memory and provided some support for DOS multitasking as well. IBM, however, created its own expanded-memory standard called XMA.
The use of expanded memory became common with games and business programs such as Lotus 1-2-3 in the late 1980s through the mid-1990s, but its use declined as users switched from DOS to protected-mode operating systems such as Linux, IBM OS/2, and Microsoft Windows.
The 8088 processor of the IBM PC and IBM PC/XT can address one megabyte (MiB, or 220 bytes) of memory. It inherited this limit from the 20-bit external address bus (and overall memory addressing architecture) of the Intel 8086. The designers of the PC allocated the lower 640 KiB (655360 bytes) of address space for read-write program memory (RAM), called conventional memory, and the remaining 384 KiB of memory space is reserved for uses such as the system BIOS, video memory, and memory on expansion peripheral boards.
Even though the IBM PC AT, introduced in 1984, uses the 80286 chip that can address up to 16 MiB of RAM as extended memory, it can only do so in protected mode. The scarcity of software compatible with protected mode (no standard DOS applications can run in it) meant that the market was still open for another solution.
To make more memory accessible, a bank switching scheme was devised, where only selected parts of the additional memory is accessible at any given time. Originally, a single 64 KiB (216 bytes) window of memory, called a page frame, was used; later this was made more flexible. Programs are written in a specific way to access expanded memory. The window between conventional memory and expanded memory can be adjusted to access different locations within the expanded memory.
A first attempt to use a bank switching technique was made by Tall Tree Systems with its JRAM boards, but these did not catch on. (Tall Tree Systems later made EMS-based boards using the same JRAM brand.)
Lotus Development, Intel, and Microsoft cooperated to develop the EMS standard (aka LIM EMS). The first publicly available version of EMS, version 3.0 allows access of up to 4 MiB of expanded memory.[citation needed] This was increased to 8 MiB with version 3.2 of the specification. The final version of EMS, version 4.0 increased the maximum amount of expanded memory to 32 MiB and supports additional functionality.
Expanded memory
In DOS memory management, expanded memory is a system of bank switching that provided additional memory to DOS programs beyond the limit of conventional memory (640 KiB).
Expanded memory is an umbrella term for several incompatible technology variants. The most widely used variant was the Expanded Memory Specification (EMS), which was developed jointly by Lotus Software, Intel, and Microsoft, so that this specification was sometimes referred to as "LIM EMS". LIM EMS had three versions: 3.0, 3.2, and 4.0. The first widely implemented version was EMS 3.2, which supported up to 8 MiB of expanded memory and uses parts of the address space normally dedicated to communication with peripherals (upper memory) to map portions of the expanded memory. EEMS, an expanded-memory management standard competing with LIM EMS 3.x, was developed by AST Research, Quadram and Ashton-Tate ("AQA"); it could map any area of the lower 1 MiB. EEMS ultimately was incorporated in LIM EMS 4.0, which supported up to 32 MiB of expanded memory and provided some support for DOS multitasking as well. IBM, however, created its own expanded-memory standard called XMA.
The use of expanded memory became common with games and business programs such as Lotus 1-2-3 in the late 1980s through the mid-1990s, but its use declined as users switched from DOS to protected-mode operating systems such as Linux, IBM OS/2, and Microsoft Windows.
The 8088 processor of the IBM PC and IBM PC/XT can address one megabyte (MiB, or 220 bytes) of memory. It inherited this limit from the 20-bit external address bus (and overall memory addressing architecture) of the Intel 8086. The designers of the PC allocated the lower 640 KiB (655360 bytes) of address space for read-write program memory (RAM), called conventional memory, and the remaining 384 KiB of memory space is reserved for uses such as the system BIOS, video memory, and memory on expansion peripheral boards.
Even though the IBM PC AT, introduced in 1984, uses the 80286 chip that can address up to 16 MiB of RAM as extended memory, it can only do so in protected mode. The scarcity of software compatible with protected mode (no standard DOS applications can run in it) meant that the market was still open for another solution.
To make more memory accessible, a bank switching scheme was devised, where only selected parts of the additional memory is accessible at any given time. Originally, a single 64 KiB (216 bytes) window of memory, called a page frame, was used; later this was made more flexible. Programs are written in a specific way to access expanded memory. The window between conventional memory and expanded memory can be adjusted to access different locations within the expanded memory.
A first attempt to use a bank switching technique was made by Tall Tree Systems with its JRAM boards, but these did not catch on. (Tall Tree Systems later made EMS-based boards using the same JRAM brand.)
Lotus Development, Intel, and Microsoft cooperated to develop the EMS standard (aka LIM EMS). The first publicly available version of EMS, version 3.0 allows access of up to 4 MiB of expanded memory.[citation needed] This was increased to 8 MiB with version 3.2 of the specification. The final version of EMS, version 4.0 increased the maximum amount of expanded memory to 32 MiB and supports additional functionality.