[comp.os.msdos.programmer] 386 Paging

ephram@violet.berkeley.edu (Ephram Cohen) (04/27/91)

From: ephram@violet.berkeley.edu (Ephram Cohen)
Newsgroups: comp.sys.ibm.pc.programmer
Subject: 386  CR0 register
References: 
Sender: 
Followup-To: 
Distribution: world
Organization: University of California, Berkeley
Keywords: 

Hi, I am in need of ensuring that data I put at a particular
linear address is actually at that physical address.  This means
that the 386 paging must be turned off.  I would like to test this
by a  MOV EAX,CR0 instruction.  However I need to switch the processor
into 386 mode.  This leads to

1) will the BIOS (I have Phoenix V10.10A) switch me into 286 mode
  or 386 mode?  (int 15 func 89)  ?

2) How do I switch back?  I do not know what privelege level I am
  going to be at when the switch is made.

3) will the registers be preserved when I switch back?  can I ROR EAX,10H
  and expect that after the switch back AX will have the high 16 bits of
the EAX register?

4) Does anyone have some tech doc on the BIOS mentioned above?  I have
  called Phoenix but they are slow getting back to me.

The reason for all this is simple.  I have a DMA capable board and I
want to know what physical address I am placing data at.  The DMA needs
the _Physical_ address and if the linear address is re-mapped I am
USCWOAP.  I suspect that the paginf feature of the 386 _is_ used by
this BIOS.  How can I turn it off (I promise never, never to use 
relocated BIOS features...)?  Any help would be appreciated.

-- 
We must prevent those commies from compromising the integrity of our 
precious bodily fluids.      -Gen. Jack D. Ripper
Ephram Cohen                              ephram@violet.berkeley.edu
466 44th St.  #1                          3210 Tolman Hall