Hi Kemp,
I have written some routines for determining RAM sizes. As you have experienced, not every way to do it is exact. Meaning some way work and others do not, but not on the same machine, as the one's that didn't work before work on another, but the one's that did don't. If that makes sense. I am off to bed now, so I will have to give you screen shot for now of where I am with the project (memory determination; research for my OS):
Code: Select all
GETMEM - 0.17.021E Attempt to see what memory is installed... -smiddy
BIOS:
15h:
E820: Base Address - Memory Length - Type
: 0000000000000000 - 000000000009FC00h - 01 << Available to OS >>
: 000000000009FC00 - 0000000000000400h - 02 << Reserved Memory >>
: 00000000000F0000 - 0000000000010000h - 02 << Reserved Memory >>
: 0000000000100000 - 0000000027EF0000h - 01 << Available to OS >>
: 0000000027FF0000 - 0000000000008000h - 03 << ACPI Reclaim Memory >>
: 0000000027FF8000 - 0000000000008000h - 04 << ACPI NVS Memory >>
: 00000000FEC00000 - 0000000000001000h - 02 << Reserved Memory >>
: 00000000FEE00000 - 0000000000001000h - 02 << Reserved Memory >>
: 00000000FFF80000 - 0000000000080000h - 02 << Reserved Memory >>
----------------------------------------------------------------
: Total Memory : 27F8FC00h - 670,628,864 bytes.
----------------------------------------------------------------
12h:
: Lower Memory : 0009FC00h - 654,336 bytes.
15h:
E801:
: Extended Memory : 27EF0000h - 669,974,528 bytes.
----------------------------------------------------------------
: Total Memory : 27F8FC00h - 670,628,864 bytes.
----------------------------------------------------------------
12h:
: Lower Memory : 0009FC00h - 654,336 bytes.
15h:
88 :
: Extended Memory : 03FFFC00h - 67,107,840 bytes.
----------------------------------------------------------------
: Total Memory : 0409F800h - 67,762,176 bytes.
----------------------------------------------------------------
CMOS:
: Lower Memory : 000A0000h - 655,360 bytes.
: Extended Memory : 03FFFC00h - 67,107,840 bytes.
----------------------------------------------------------------
: Total Memory : 0409FC00h - 67,763,200 bytes.
----------------------------------------------------------------
PROBE:
: Extended Memory : 27F00000h - 670,040,064 bytes.
----------------------------------------------------------------
: Total Memory : 27F9FC00h - 670,694,400 bytes.
----------------------------------------------------------------
PnP BIOS : Base Address - Memory Length - Type
: 00000000 - 0009FC00h - 13 << Available to OS >>
: 0009FC00 - 00000400h - 10 << Read Only Memory >>
: 000F0000 - 00010000h - 10 << Read Only Memory >>
: 00100000 - 27EF0000h - 13 << Available to OS >>
: 27FF0000 - 00008000h - 10 << Read Only Memory >>
: 27FF8000 - 00008000h - 10 << Read Only Memory >>
: FEC00000 - 00001000h - 10 << Read Only Memory >>
: FEE00000 - 00001000h - 10 << Read Only Memory >>
: FFF80000 - 00080000h - 10 << Read Only Memory >>
----------------------------------------------------------------
: Total Memory : 20h - 670,628,864 bytes.
This should make you salivate a bit. There is a posting on BOS where I uploaded the EXE which you can run in Windows, though it doesn't do all the BIOS stuff. It is best to run it in good old DOS:
http://bos.asmhackers.net/forum/viewtopic.php?id=64
Enjoy!