To view parent comment, click here.
To read all comments associated with this story, please click here.
And history replayed itself with long mode.
But long mode isn't nearly as bad as 80286 protected mode, and it wasn't invented by Intel. You can still run legacy code on 64-bit processors just fine. It's just more painful than it was. But it's 2013 and if you need to run 16-bit real mode programs, you neither need a modern processor nor a modern OS.
It's possible to switch from long mode, it isn't even hard (just setup the new environment with interrupts disabled and then clear the long mode bit).
In comparison the only way to return to real mode in the 80286 was to setup some data in the realtime clock module and then do a hardware reset. When the processor have initialized it jumps to the reset vector in the BIOS and pretty early the BIOS code checks the RTC memory and if enabled it jumps to a specified code location.
moondevil,
"You got it wrong. Let me explain as I was already a long time computer user on those days."
I actually agree with everything (else) in your post, but was anything factually wrong in mine? It's definitely possible but your response didn't make it clear what is wrong.
I find it very strange how intel failed to anticipate the need for a mode switch, but mainboard manufacturers did by implementing the external 286 reset logic. Was there an early generation of 286 mainboards which didn't support a cpu reset?
Your comment:
This was only required if you needed to start a MS-DOS program from inside Windows. Otherwise it was running in full 16 bit protected mode with all required features.
I am not sure, but that could have been the case with Xenix systems, which did not require MS-DOS compatibility.
"You got it wrong. Let me explain as I was already a long time computer user on those days."
I actually agree with everything (else) in your post, but was anything factually wrong in mine? It's definitely possible but your response didn't make it clear what is wrong.
I find it very strange how intel failed to anticipate the need for a mode switch, but mainboard manufacturers did by implementing the external 286 reset logic. Was there an early generation of 286 mainboards which didn't support a cpu reset?
No. There could perhaps be mainboards that doesn't support the reset protocol needed but that's unlikely.
Doing the reset itself can be done in software without extra hardware by triggering a triple fault, just load the interrupt description table pointer with something faulty and then do a software interrupt.





Member since:
2005-07-08
It predates my experience, but my understanding is that the 286 included a very buggy form of protected mode, and lacked VM86 real mode virtualization. The silly engineers at intel failed to include a way to switch the processor out of protected mode, so the chipset makers actually incorporated external logic to do a hard reset on the processor every time one needed to switch between real mode programs.
So this is how windows multitasked on the 286, by continually rebooting the cpu - a feature MS continued to include a couple generations later. I kid
You got it wrong. Let me explain as I was already a long time computer user on those days.
The 80286 already had everything a CPU needs for modern operating systems, at least 16 bit ones.
What happened was that Intel thought everyone would be so amazed with the possibilities of protected mode, that no one would care for real mode any longer, hence the no inclusion of programming instructions to switch back to real mode.
But MS-DOS users were reluctant to go 100% to Windows 3.0, specially given the hardware restrictions, lack of software and the novelty of the GUI for many of them.
So Microsoft needed a way to keep MS-DOS applications running inside Windows 3.0, that is how the continuous reset on Windows came to be.