ID:QR QRAM Quarterdeck Technical Note #216 By: Michael Bolton QRAM ==== What is QRAM? Does QRAM turn exTENded memory into exPANded memory? What do I need to run QRAM? What can QRAM do for my system? What is QRAM? ============= QRAM is a suite of memory management utilities which add power to 80286, 8086, and 8088 PCs and compatibles in some of the same ways that QEMM-386 adds power to 386 PCs, allowing you to liberate more of the precious memory below 640K. QRAM, on machines with appropriate memory management hardware -- Chips and Technologies Shadow RAM, or EMS 4.0 hardware AND software, creates High RAM -- RAM placed at unused addresses between 640K and 1MB. This allows you to load Terminate-and-Stay- Resident programs (TSRs), device drivers, network drivers, DOS resources (such as BUFFERS, FILES, FCBS, and drive specifiers) and the like into High RAM -- RAM placed at unused addresses between 640K and 1MB. The VIDRAM program which comes as part of the QRAM package allows you to "steal" a portion of memory from your EGA or VGA video card and assign that memory to DOS, further increasing the amount of conventional memory available to you when you are running a program that does not need EGA or VGA graphics. QEXT.SYS, an XMS driver, provides access to extended memory, and to the HMA -- 64K of extra DOS memory for applications that know how to use this specification. The BUFFERS and FILES programs allow you to allocate additional DOS buffers and file handles on the fly, after your machine has booted -- and to load them into High RAM. Other utilities for managing memory are included. Finally, every copy of QRAM also comes with Manifest, the award-winning memory analysis and reporting tool. Most people are interested in QRAM for its abilities to load small DOS programs, drivers, and resources into High RAM. However, the bewildering array of memory management standards associated with the 8088 and 80286 architectures contributes to several common misconceptions about what High RAM really is and how it is allocated. This note will describe the hardware and software requirements for QRAM, and will explain what you can expect QRAM to do for your system. Does QRAM turn exTENded memory into exPANded memory? ======================================================= No. QRAM DOES NOT turn exTENded memory into exPANded memory. In fact, QRAM needs to find either an appropriate Shadow RAM chipset, or some form of EMS 4.0 exPANded memory hardware with its own EMS 4.0 driver already present, if QRAM is to load programs high. (What constitutes appropriate is described below.) The 286 chip on its own does not have the memory management features needed to make memory appear at addresses where there is none. The 386 chip has these (and other extremely sophisticated memory management) features built-in, but the 286 needs assistance from extra hardware to do this. Several programs, (often called "LIMulators") provide the ability to store data in exTENded memory in such a way that, to software, the exTENded memory looks like exPANded memory. QRAM IS NOT A PROGRAM OF THIS TYPE. Such programs (which are widely available, and free on many bulletin board systems) have two important disadvantages. First, they cannot create exPANded memory in which programs can be run, so they cannot be used to load TSRs, device drivers, and network software outside of conventional memory; nor are such expanded memory emulators useful to DESQview for multitasking. Second, in order to provide the EMS page frame, necessary for the emulation of EMS, they actually cost 64K (for the EMS page frame), plus the overhead for their own code, all in conventional memory -- which is an enormous penalty, presuming that your goal is to liberate as much conventional memory as possible. What do I need to run QRAM? What can QRAM do for my system? ============================================================ QRAM's features depend on several aspects of the configuration of your machine, including its memory management hardware and software, and its video hardware. It is crucially important to understand that, on a 286 without memory managment hardware, there is NO MEMORY between 640K and 1 MB -- even on systems with one megabyte or more of memory installed. (Machines with Shadow RAM constitute an exception to this; Shadow RAM is described below.) The extended memory on your system is addressed not only above 640K, but above the 1MB line -- and is therefore outside of DOS's address space. Extended memory is not useful to QRAM, nor is it useful to any regular DOS program except as a place to store data. Only DOS programs which have been specifically written to access extended memory will be able to take advantage of it. Machines with Shadow RAM ========================= Shadow RAM is a way to increase the system's speed. System and video BIOS (Basic Input/Output Services) ROMs are addressed 8 bits at a time, and therefore are typically slower than 16- or 32-bit RAM. ROM shadowing is accomplished by setting up a 384K region of memory somewhere on the system, giving it addresses from 640K to 1MB, and copying the code from system and video ROMs into this region. So far as the processor is concerned, the ROMs are still at their usual addresses, but since the ROM code is in faster RAM, performance is improved. Typical systems use 32K of ROM for video, and 64K or less of ROM for the system BIOS. Thus, most of this 384K region of memory, set aside for ROM shadowing, is unused. QRAM's LOADHI Features ====================== In order for QRAM to activate its LOADHI capabilites, it must find at least one of the following things on your machine: 1) The Chips & Technologies NEAT, SCAT, PEAK, LEAP, or 386 Shadow RAM chipsets; as described above, these chipsets have the ability to make actual memory appear at addresses between 640K and 1MB when Shadow RAM is enabled. Machines that are equipped with these chipsets may display the words "NEAT", "SCAT", "PEAK" or "LEAP" at some time during the boot process. Note that since Shadow RAM is implemented in hardware on these types of systems, you do not need to have any sort of software driver installed for QRAM to take advantage of your system's Shadow RAM. It may be necessary for you to activate the ShadowRAM in the CMOS setup, however; QRAM cannot do this. 2) An EEMS (two "E"s) or EMS 4.0 board with a software driver that provides mappable EMS pages between 640K and 1MB in addition to the EMS page frame. The software driver is installed in CONFIG.SYS, and typically has the letters "EMM" somewhere in its filename. The EMS driver must not only be able to provide exPANded memory; it must also be capable of creating more than four mappable pages between 640K and 1MB, as the first four mappable pages are reserved for the EMS Page Frame. A very few computers come with this sort of memory management hardware already installed. 3) A 286 memory management unit, such as the All ChargeCard or the SOTA Pop Card. Though not a complete implementation of the 386 architecture, these add-on devices provide memory management most similar to that offered by the 386 architecture. Note that items 2 and 3 involve some sort of add-on hardware, and that software alone WILL NOT provide the hardware assist that the 286 or lesser processors need for QRAM to create High RAM. Manifest's Expanded / Pages screen will tell you if your hardware and driver is currently providing mappable pages, as can the QTEST program described below. Manifest's exPANded pages screen will look something like this: 0n00 UUUU 1n00 UUUU 2n00 UUUU 3n00 UUUU 4n00 UUUU 5n00 UUUU 6n00 UUUU 7n00 UUUU 8n00 UUUU 9n00 UUUU An00 UUUU <- Bn00 ++UU <- Plus signs (+) anywhere in this Cn00 UUFF <- range mean that QRAM can create Dn00 FF++ <- High RAM -- 16K for each + En00 ++++ <- Fn00 UUUU Note that this map tells you what is being currently provided. Your hardware and software may be capable of creating more mappable pages; consult the documentation for your board. Some switch or jumper settings, or some command-line parameters on your board's device driver may be able to provide you with more mappable pages. If you have an EMS board that provides only four mappable pages, pages that are reserved for the Page Frame, and designated above by the letter "F", you may choose to disable your use of exPANded memory in exchange for the 64K of High RAM that QRAM may be able to provide. This will liberate more memory below 640K, but will curtail your access to exPANded memory. A further complication results from the fact that when IBM introduced the PC-AT, the addresses from E000-EFFF were reserved for an expansion of the system ROM. However, the system ROM was not expanded until the advent of the PS/2. Unfortunately, the address space from E000-EFFF remained unusable for any other purpose, and to retain 100% compatibility with IBM, almost all clone makers followed the PC-AT's example. There were very few manufacturers who were confident enough to break this convention, and therefore the E000-EFFF range may not be available on your machine. Since many computers render the E region unusable for High RAM or EMS, many expanded memory boards also refrain from allowing High RAM to be mapped into the E region. Your hardware may permit you to do this. VIDRAM ====== If you use a VGA or EGA...
Amiga7878