🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.intel
Article #1869

Re: 386 "real" mode access beyond 1M using data_32 instruction prefix

#1869
From: bill beebe
Date: Sat, 18 Feb 1989 05:45
41 lines
2878 bytes
In article <7187@killer.DALLAS.TX.US> chasm@killer.DALLAS.TX.US (Charles Marslett) writes:

>It certainly does: Intel (for reasons known only to their architects, real
>world programmers would have never done it that way!) always verifies that
>the address generated in real mode is less than 00110000h (so the 386 cannot
>access any more real-mode memory than the 286.
>
>You would have thought they should have learned a lesson from the 286's
>one way mode switch . . . programmers like to be able to make mistakes!
>Idiot proofing an instruction set makes it an idiot's instruction set.
>
>> Is it even possible to access above 1M without going into full protected
>> mode?
>
>Nope....
>

The 80386 addresses the same amount of "real" address as the 80286 as does
the 8086. This is called backward compatibility and provides an easy path
from the original up to the 80386 and beyond. As far as addressing memory
above 1 meg, there are several ways the 80386 can do this. The first does
not require full protection, and allows special LIM emulation drivers and
Windows 386 to access the high (> 1 meg ) memory. The 80386 supports paging
where a logical address is translated into a physical address. You can
use this method to access code and data stored in the higher address.
In fact, when the original Intel 301 was introduced, they also sold software
from Phoenix Software called Control386. This software used paging to
backfill the 301's DOS memory from 512K up to 640K by paging memory
installed above 1 meg. This was 32-bit memory and when running had
absolutely no impact on real-mode DOS programs.

The second method, protected mode, can be switched into and out of under
software control by setting the Protection Enable bit of Control Register
0. This is a great oversimplification. If you want more information, you
should read chapters 10 and 14 of the 1986 80386 Programmer's Reference
Manual. In any event, once protected mode is entered and a _proper_
environment created, the 80386 can address any location in 4 Gbytes of
physical memory. The 80386 is also not limited to a 64K segment
limitation in protected mode. With the granularity bit clear in the
descriptor, segments can have a maximum limit of 1 meg. With the
granularity bit set, segments can have a maximum limit of 4 Gbytes.
Technical Details
Message-ID: <413@bilver.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!mtxinu!unisoft!hoptoad!peora!rtmvax!bilver!wbeebe
References: <529@h-three.UUCP> <7187@killer.DALLAS.TX.US>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!mtxinu!unisoft!hoptoad!peora!rtmvax!bilver!wbeebe
From: wbeebe@bilver.UUCP (bill beebe)
Newsgroups: comp.sys.intel
Subject: Re: 386 "real" mode access beyond 1M using data_32 instruction prefix
Keywords: 80386,real mode
Message-ID: <413@bilver.UUCP>
Date: 18 Feb 89 05:45:52 GMT
References: <529@h-three.UUCP> <7187@killer.DALLAS.TX.US>
Reply-To: wbeebe@bilver.UUCP (bill beebe)
Organization: W. J. Vermillion, Winter Park, FL
Lines: 41