Himem.sys Cannot Address More Than 64 MB of Memory (116256)

The information in this article applies to:
    Microsoft MS-DOS operating system 4.0
    Microsoft MS-DOS operating system 4.01
    Microsoft MS-DOS operating system 5.0
    Microsoft MS-DOS operating system 5.0a
    Microsoft MS-DOS operating system 6.0
    Microsoft MS-DOS operating system 6.2
    Microsoft MS-DOS operating system 6.21
    Microsoft MS-DOS operating system 6.22
    Microsoft Windows 3.1
    Microsoft Windows 3.11
    Microsoft Windows 95

This article was previously published under Q116256


Himem.sys does not report or use more than 64 megabytes (MB) of installed memory on computers with an Industry Standard Architecture (ISA) or Micro Channel Architecture (MCA) bus.


ISA Buses

ISA buses lack a standard BIOS interrupt routine for reporting more than 64 MB of memory. Himem.sys depends on the INT 15 function 88 service to determine installed memory, and this function is limited to 65,535 kilobytes (64 MB).

MCA Buses

MCA-based computers add the INT 15 function C7 service to report installed memory. Although this function can report more than 64 MB of memory, Himem.sys has no code to support it. As a result, Himem.sys uses the standard INT 15 function 88 call, which is limited to 64 MB of memory.


This limitation does not apply to computers with an Extended Industry Standard Architecture (EISA) bus. On EISA-based computers, Himem.sys scans each slot for device information, which means that it can report up to 4 gigabytes (GB).

NOTE: You may need to use the /EISA switch on the Himem.sys line in your Config.sys file.

Note that although Himem.sys addresses only the first 64 MB of memory, the Windows 95 virtual memory manager (Vmm32.vxd) takes over memory management tasks from Himem.sys. Vmm32.vxd can address more than 64 MB of memory.

Modification Type: Major Last Reviewed: 5/6/2003
Keywords: kbHardware KB116256