Talk:Detecting Memory (x86)

From OSDev.wiki
Revision as of 19:52, 20 January 2011 by osdev>Surgo (→‎e820: new section)

Latest comment: 13 years ago by Surgo in topic e820
Jump to navigation Jump to search

Deleting old code

Now that Brendan's manual probing code is here, I'd like to delete the old C manual probing code -- even though "information will be lost".
Bewing 01:26, 22 May 2008 (CDT)

I'd rather not for just that reason :) - Basically you'll be denying everybody that expects to find a sample in C that code. It's not too bad to have a version in both languages really. - Combuster 06:11, 22 May 2008 (CDT)

Updated the low memory snippet

The old low memory detection snippet using INT 0x12; AH = 0x00 assumed that AH would be set to 0x80 or 0x86 when something went wrong, I don't think this can be true as RBIL doesn't state this and as AX itself should contain the size. If somebody doesn't like my assembly style, then he/she's free to change it. If someone doesn't agree with me on the 0x80/0x86 part, then could he/she please explain why.

--Stephanvanschaik 20:32, 19 February 2010 (UTC)Reply

e820

I'm having a bit of a hard time understanding the workings of e820, and I've had problems finding an answer elsewhere on the internet which assumes you already understand this bit. It's pretty clear that e820 is a real-mode only call; however, you need to set register EDX with the appropriate magic number. Whereas all other registers can have their lower 16 bits set fine, the magic number is a 32-bit value, and EDX is not addressable with 16-bit code. How does one run real mode with 32-bit code and addressing? Surgo 19:52, 20 January 2011 (UTC)Reply