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:
bde 1996-12-18 15:38:23 +00:00
parent 30f3aec18a
commit 7e1b929fbe

View File

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