Intel's sample code does only a short/near jump to clear the prefetch queue (lines 175-182).Octocontrabass wrote:No reason. Neither one follows the Intel requirements (you must put the far JMP or far CALL immediately after the instruction that changes CR0.PE, with no other instructions between) so there is no guarantee that either will work.awik wrote:I am wondering why ...
Anyway, if there is anything I've confirmed and learned repeatedly during these efforts, it's that RETF is just fine, and I'm going to stay with it.
That (the metal part) decides it. As a matter of fact, I prefer this behaviour, because it means that you can call DOS with "big" segment limits and have them stay in effect. As for the documentation, Intel could have emphasised this a bit more. Many parts of their manuals seem to imply that real mode segments always have a 0xFFFF limit.This is true of bare metal as well, and the Intel manual says as much in the section about returning to real mode.awik wrote:Apparently the attributes of a protected mode segment in VMware are "sticky": they won't go away even after a return to real-mode and reloading the segment register with a real mode value.
-Albert.