From Syslinux Wiki
Revision as of 17:55, 30 August 2010 by GeneC (talk | contribs) (INT 15h e820)

Jump to: navigation, search

Meminfo.c32 displays the output of the various memory size/range functions.


Here's an example from within bochs with 64 MiB of RAM.

boot: meminfo.c32
INT 15h = f000:f859  DOS RAM: 639K (0x9fc00)  INT 12h: 639K (0x9fc00)
INT 15 88: 0xfc00 (64512K)  INT 15 E801: 0x3c00 (15360K) 0x0300 (49152K)
       0 0000000000000000 000000000009f000 000000000009f000 1 [-] usable
       1 000000000009f000 0000000000001000 00000000000a0000 2 [-] reserved
       2 00000000000e8000 0000000000018000 0000000000100000 2 [-] reserved
       3 0000000000100000 0000000003ef0000 0000000003ff0000 1 [-] usable
       4 0000000003ff0000 0000000000010000 0000000004000000 3 [-] ACPI reclaim
       5 00000000fffc0000 0000000000040000 0000000100000000 2 [-] reserved


INT 15h e820

Results from INT 15h AX=e820h. This is, for the most part, the most important of all of the memory functions as it provides a map of available memory. This is the last lines of output (in this instance, 6) starting with

       0 0000000000000000 000000000009f000 000000000009f000 1 [-] usable

Line numbers are printed in hex as 8 characters wide with a space prefix. Each line represents the purpose/availability, address and length/size of a block of memory.

The first 64 bit hex quantity is the start address. The second is the length/size. The third is the end address (exclusive of the mentioned byte; calculated as start plus length). The next number is decimal for the type of memory. The next column is bracketed and either a single hyphen or a hex number representing the extended attributes. The last column is the string representation of the type.

INT 15h

This lists the segment and offset of the INT 15h handler, as read from the interrupt vector table.


It appears that this reads a value directly from memory.

INT 12h

The results from calling INT 12h. This lists the available low memory (under 640k)

INT 15h 88

Results from INT 15h, AH=88h. This returns the size of extended memory (total RAM in KiB as a 16 bit quantity).

INT 15h e801

Results from INT 15h AX=e801h. Extended memory size with a larger limit (superseding AH=88h). The first is the return (in CX) and size of memory between 1 MiB and 16 MiB. The second is the return (in DX) and size of memory above 16 MiB in 64 KiB pages.