summaryrefslogtreecommitdiff
path: root/bootsect.inc
diff options
context:
space:
mode:
authorhpa <hpa>2005-01-12 00:34:54 +0000
committerhpa <hpa>2005-01-12 00:34:54 +0000
commit25ac97ff571bf6b5891921f6e5f1b6f45806314a (patch)
treebd4dc3873d43dfd03e0312d229c61a5256f12c12 /bootsect.inc
parenta740cb88107937fe0758aa6e520fb4cc552157fc (diff)
downloadsyslinux-25ac97ff571bf6b5891921f6e5f1b6f45806314a.tar.gz
3.07: Fix chainloading
Diffstat (limited to 'bootsect.inc')
-rw-r--r--bootsect.inc12
1 files changed, 7 insertions, 5 deletions
diff --git a/bootsect.inc b/bootsect.inc
index 67ce6762..f22e845a 100644
--- a/bootsect.inc
+++ b/bootsect.inc
@@ -66,7 +66,7 @@ load_bootsec:
xor edx,edx
xor esi,esi
-%if IS_SYSLINUX || IS_MDSLINUX
+%if IS_SYSLINUX || IS_MDSLINUX || IS_EXTLINUX
; Restore original FDC table
mov eax,[OrigFDCTabPtr]
mov [fdctab],eax
@@ -111,7 +111,9 @@ replace_bootstrap:
call vgaclearmode
;
- ; Set up initial stack frame (not used by PXE if keeppxe is set)
+ ; Set up initial stack frame (not used by PXE if keeppxe is
+ ; set - we use the PXE stack then.)
+ ; AFTER THIS POINT ONLY .earlybss IS AVAILABLE, NOT .bss
;
xor ax,ax
mov ds,ax
@@ -135,12 +137,12 @@ replace_bootstrap:
mov [es:di+12],esi
mov [es:di+6],bx
- pop cx ; Copy list count
+ pop ax ; Copy list count
pop bx ; Copy from...
cli
- mov ax,es
- mov ss,ax
+ mov cx,es
+ mov ss,cx
movzx esp,di
jmp shuffle_and_boot