Article View: comp.arch
Article #22037Re: LoadAll?
From: rob
Date: Wed, 10 Jan 1990 17:30
Date: Wed, 10 Jan 1990 17:30
35 lines
2197 bytes
2197 bytes
aland@infmx.UUCP writes:
>You *can* switch back to real mode on the 286 -- it's possible, though
>not trivial. The basic strategy is to save off the registers, etc.
>and then trigger a reset of the '286 via the keyboard controller (which
>makes the 286 start up in real mode). Then, restore the registers,
>etc. and away you go! (over-simplified, but this is the gist of it).
This is the method that's been aptly described as 'turning off the car
to change gears.' It, along with 64K segments, is something Intel may never
live down.
In fairness, the 286 was designed before the DOS invasion, and before
anyone realized that jumping between real and protected mode would be
important. The 286 manuals contain amusing (in retrospect) statements saying,
roughly, 'Real mode is used primarily to set the 80286 up for protected mode
operation.' I wonder which CPU will _really_ be the first to be used mostly
in protected mode.
>This is how protected-mode DOS extenders work, e.g. DOS/16M (which
>is used in Informix's DOS products and in Lotus 1-2-3 Release 3.0).
It's also used by OS/2 to run the DOS compatibility box on a 286, and
by 286 BIOSes. RAM disks and disk caches using extended memory often use
this method, though some use LOADALL.
>the 386 has instructions to switch between each of
>the four(?) modes: real, protected (286), native, and virtual 8086.
In a way, the 386 still has only two modes - real and protected. 386
protected mode has 'sub-modes', selectable on a task-by-task basis, that let
it handle 16 or 32 bit code, and, based on a bit in the flags register,
adjust its segment arithmetic to run real mode code ('Virtual 86'). And,
it can switch back to real mode fairly easily.
Technical Details
Message-ID:
<208300006@prism>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!snorkelwacker!bloom-beacon!bu.edu!bu-cs!mirror!prism!robReferences:
<597@unmvax.unm.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!tut.cis.ohio-state.edu!snorkelwacker!bloom-beacon!bu.edu!bu-cs!mirror!prism!rob From: rob@prism.TMC.COM Newsgroups: comp.arch Subject: Re: LoadAll? Message-ID: <208300006@prism> Date: 10 Jan 90 17:30:00 GMT References: <597@unmvax.unm.edu> Lines: 35 Nf-ID: #R:unmvax.unm.edu:-59700:prism:208300006:000:1735 Nf-From: prism.TMC.COM!rob Jan 10 12:30:00 1990