Talk:Real Mode

From OSDev Wiki
Jump to navigation Jump to search

Real mode can only address 1 MB?

I don't think that this statement is entirely accurate. Thanks to a BIOS function (int 15/ah=87), it's possible for real mode OS's to use memory past the 1 MB mark - all the way up to 4 GB, actually. I can't speak to how effective it is to utilize this function, but it does exist for use... it's a standard BIOS call. --Lithorien 20:17, 14 September 2010 (UTC)

It isn't entirely accurate, on systems where more than 1MB exists, you can address the remaining physical memory by setting up page tables, tweaking the descriptor limits, among others (you're sure to find them if you search the wiki and read the Systems Developer Guides). AMD64 systems even include a mechanism so you can address the entire 64-bit address space from real mode (although I'm not sure how to do that on Intel64 systems). --54616e6e6572 22:56, 14 September 2010 (UTC)
You guys seem to be confused. In real mode, the CPU can only address 1 MiB + (64 KiB - 16 bytes). The BIOS function you're talking about doesn't move blocks from real mode, it switches operating modes back and forth transparently. You also seem to be confused about the existence of page tables in real mode - the 8086 did not support paging. Descriptor caches (responsible for the features you are describing - usually known as unreal mode) are an undocumented implementation decision which became de facto; you won't find anything about this in the manuals, you should read them sometime. When you do, also keep your last statement in mind. ;) --Love4boobies 00:12, 17 September 2010 (UTC)

There is a modern compiler which targets real mode

And that is OpenWatcom. It includes a 16bit compiler which is actively maintained.--Badsector 14:24, 5 February 2011 (UTC)