HIRAM.EXE HIRAM.EXE v1.9 is an older (1993) freeware Upper Memory Extender for 80x86 CPUs: 80286, 80386 and 80486, intended for users who really want to free the last byte of low memory, similar to UMBPCI.SYS. Download: HIRAM.EXE v1.9 [74 KB, German release]. HIRAM.EXE v1.9 [83 KB, English release]. The functions of UMBPCI are splitted here into two programs: one enables the memory and the other makes it visible to DOS. The latter is called HIRAM.EXE, and doesn't use ANY memory. HIRAM.EXE works fine with MS-DOS 5.00 - 7.xx [MS Windows 95/98] and the memory enabled by UMBPCI, at least on Intel 430xX (Pentium/Pentium Pro) and 440xX (Pentium II/III) chipsets. It may also work with other chipsets (but I haven't tested it), because it is CPU/chipset independent. NOTE: HIRAM.EXE does NOT work with Windows Millennium Edition (ME) [a.k.a. MS-DOS 8.00] because HIMEM.SYS loads automatically in conventional memory from IO.SYS at boot time BEFORE the CONFIG.SYS file is processed. :( To make this work, you need these CONFIG.SYS commands in this EXACT ORDER (example): [all lines preceded by a semicolon (;) are comments] ; To load DOS high and to enable the Upper Memory Blocks: DOS=HIGH,UMB ; To enable the Upper Memory Area: DEVICE=C:\UMBPCI\UMBPCI.SYS ; To make the UMA visible to DOS through a small XMS 2.0 handler: DEVICE=C:\UMBPCI\HIRAM.EXE ; Yes, now you can load HIMEM.SYS "high": DEVICEHIGH=C:\WINDOWS\HIMEM.SYS /TESTMEM:OFF /Q TIP: Take a look at my "MS-DOS 7.xx MEMory Specs" for an example using HIRAM.EXE with an Intel 440BX Pentium II/III chipset. The trick is that HIRAM implements the function "Request XMS-UMB" without HIMEM.SYS, while UMBPCI does it the "official" way, by extending HIMEM.SYS with this function. When HIMEM.SYS loads, DOS takes all XMS UMBs from HIRAM.EXE, and HIRAM deactivates its XMS function to allow HIMEM.SYS to load. Without "DOS=HIGH,UMB" HIMEM.SYS would stop with an error message like: "Another XMS driver is already installed" because HIRAM has no reason to deactivate its small XMS handler. Therefore by using HIRAM.EXE you can save 1 KB of low memory in comparison to loading UMBPCI.SYS by itself. Moreover, the CONFIG.SYS lines "combo" above allow saving 160-240 Bytes (depending on which UMBPCI.SYS version is used) of conventional RAM by forcing UMBPCI.SYS to use NO memory. You can verify this by running the command below from any DOS prompt (valid for MS-DOS 6.xx/7.xx): MEM/M UMBPCI Guess what... "UMBPCI is not currently in memory." Wow! ;-) Similar DOS memory tools (freeware): URAM [29 KB]. RDOSUMB [55 KB].