Unreal Mode: Difference between revisions

Added a note about the issues with unreal mode.
[unchecked revision][unchecked revision]
(I'm the first one to test the code on a real 386?)
(Added a note about the issues with unreal mode.)
Line 1:
'''Unreal mode''' consist of breaking the '64Kb' limit of real mode segments, but still keeping 16 bits instruction and <tt>segment*16+offset</tt> address formation by tweaking the [[Descriptor Cache|descriptor caches]].
 
'''NOTE''' This is an evil hack that abuses what was once undefined behavior. Its only 'safe' use is to provide a 4GB limit in FS/GS for copying to high memory, and hope that the BIOS doesn't use these registers (not DS/ES/..., as these registers are very likely to be reloaded by the BIOS). When a segment register is reloaded (even to the same value), the descriptor cache will be cleared. Enabling IRQs and/or calling BIOS functions while in unreal mode may cause it to break (and return to normal real mode).
 
==Usage==
Anonymous user