🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.sys.intel
Article #1868

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

#1868
From: Charles Marslett
Date: Thu, 16 Feb 1989 13:49
38 lines
2239 bytes
In article <529@h-three.UUCP>, tony@h-three.UUCP (me) writes:
> I need to write a routine for a 386 in "real" mode (actually a firm-
> ware application) that can read/write data above 1M.  At first glance,
> the instruction and address prefixes (0x66, 0x67) would seem to be
> the way to do this; but I can't get them to work, and even have a 
> suspicion they won't work.
> 
> Here is the current test routine (assembler is right to left w operands).
> The routine takes a physical address and a 32 bit value to put there.
> Technique is to zero 'es' and stick the address into 'esi'.  Theory is
> that will yield:    effective address == (0 << 4) + esi
> 
> This routine fails with General Prot Fault (13).

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

> -- 
> --tony	 ...!uunet!h-three!tony	 (919) 549-8334	 h-three  Systems  Corporation
> 	 h-three!tony@uunet.uu.net		 POB 12557; RTP, NC 27709; USA
> 						 t. e. bennett

===========================================================================
Charles Marslett
STB Systems, Inc.  <== Apply all standard disclaimers
Wordmark Systems   <== No disclaimers required -- that's just me
chasm@killer.dallas.tx.us
Technical Details
Message-ID: <7187@killer.DALLAS.TX.US>
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!killer!chasm
References: <529@h-three.UUCP>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!bloom-beacon!mit-eddie!killer!chasm
From: chasm@killer.DALLAS.TX.US (Charles Marslett)
Newsgroups: comp.sys.intel
Subject: Re: 386 "real" mode access beyond 1M using data_32 instruction prefix
Summary: Another Intel goof!!
Keywords: 80386,real mode
Message-ID: <7187@killer.DALLAS.TX.US>
Date: 16 Feb 89 13:49:01 GMT
References: <529@h-three.UUCP>
Organization: The Unix(R) Connection, Dallas, Texas
Lines: 38