Path: 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 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.