Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Move stack to below 0x7c00; leaving it at the default location
(0x7ef4) tends to really screw up anything that loads at 0x7c00...
  • Loading branch information
Michael Brown committed Jun 28, 2007
1 parent dffdc28 commit 03ca71c
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions src/arch/i386/prefix/dskprefix.S
Expand Up @@ -31,15 +31,17 @@

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 */

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
Expand All @@ -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
Expand Down

0 comments on commit 03ca71c

Please sign in to comment.