Initialize the upper 16 bits of the memory sizes properly (to 0).
They were garbage that happened to be 0 in many cases. (real_to_prot() happens to leave the value of the real-mode %cr0 in %eax and the memory-size BIOS calls usually don't touch the upper bits of %eax. The upper 16 bits of %cr0 are usually 0 at boot time, at least on 486's. Should be in 2.2.
This commit is contained in:
parent
30f3aec18a
commit
7e1b929fbe
@ -24,7 +24,7 @@
|
||||
* the rights to redistribute these changes.
|
||||
*
|
||||
* from: Mach, Revision 2.2 92/04/04 11:34:26 rpd
|
||||
* $Id: bios.S,v 1.5 1995/09/03 05:36:13 julian Exp $
|
||||
* $Id: bios.S,v 1.6 1996/11/11 14:03:33 bde Exp $
|
||||
*/
|
||||
|
||||
/*
|
||||
@ -352,12 +352,13 @@ xext: movb $0x88, %ah
|
||||
cli
|
||||
|
||||
xdone:
|
||||
mov %eax, %ebx
|
||||
pushl $0 /* actually pushw $0 */
|
||||
pushl %eax /* actually pushw %ax */
|
||||
|
||||
data32
|
||||
call EXT(real_to_prot)
|
||||
|
||||
mov %ebx, %eax
|
||||
pop %eax
|
||||
pop %edi
|
||||
pop %esi
|
||||
pop %ebx
|
||||
|
Loading…
Reference in New Issue
Block a user