david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

Move stack to below 0x7c00; leaving it at the default location

(0x7ef4) tends to really screw up anything that loads at 0x7c00...
This commit is contained in:
Michael Brown 2007-06-28 21:15:47 +01:00
parent dffdc285b3
commit 03ca71c38d
1 changed files with 5 additions and 3 deletions

View File

@ -31,6 +31,10 @@
jmp $BOOTSEG, $go /* reload cs:ip to match relocation addr */
go:
xorw %ax,%ax /* put stack at 0000:7c00 */
movw %ax,%ss
movw $0x7c00,%sp
movw $0x2000-12, %di /* 0x2000 is arbitrary value >= length */
/* of bootsect + room for stack + 12 for */
/* saved disk parm block */
@ -38,8 +42,6 @@ go:
movw $BOOTSEG, %ax
movw %ax,%ds
movw %ax,%es
movw %ax,%ss /* put stack at BOOTSEG:0x4000-12. */
movw %di,%sp
/* Many BIOS's default disk parameter tables will not recognize multi-sector
* reads beyond the maximum sector number specified in the default diskette
@ -50,7 +52,7 @@ go:
* will set the maximum sector count to 36 - the most we will encounter on an
* ED 2.88. High doesn't hurt. Low does.
*
* Segments are as follows: ds=es=ss=cs - BOOTSEG
* Segments are as follows: ds=es=cs - BOOTSEG
*/
xorw %cx,%cx