summaryrefslogtreecommitdiff
path: root/bootsect.inc
diff options
context:
space:
mode:
authorhpa <hpa>2002-04-28 00:50:20 +0000
committerhpa <hpa>2002-04-28 00:50:20 +0000
commitb085cb9ecd24969421d10b8d5f37af5fb22c581f (patch)
tree5509a72490638e51d723431d57856c8412c8b70e /bootsect.inc
parent3e012b34a2eac374cd3db4c74657fb059d357536 (diff)
downloadsyslinux-b085cb9ecd24969421d10b8d5f37af5fb22c581f.tar.gz
Make the setup of the bootup entry state saner.
Diffstat (limited to 'bootsect.inc')
-rw-r--r--bootsect.inc24
1 files changed, 16 insertions, 8 deletions
diff --git a/bootsect.inc b/bootsect.inc
index 4546eda2..4d2274f8 100644
--- a/bootsect.inc
+++ b/bootsect.inc
@@ -73,25 +73,33 @@ load_bootsec:
push di
mov cx,8 ; 16 bytes
rep movsw
- pop ax ; DS:SI points to partition info
+ pop si ; DS:SI points to partition info
%elif IS_ISOLINUX
mov dl,[DriveNo]
%endif
- mov esi,7C00h
- mov edi,100000h
- pop ecx ; Byte count
+ pop ecx ; Byte count to copy
cli
- xor ebx,ebx
- mov ds,bx
%if IS_PXELINUX
lss sp,[Stack] ; Reset stack to PXE original
- les bx,[InitESBX] ; ES:BX -> PXENV+
+ pop es
%else
+ xor ebx,ebx
+ mov ds,bx
mov es,bx
- mov esp,esi
+ mov esp,7C00h
+ pushad
+ pushfd
+ push bx ; ds
+ push bx ; es
+ push bx ; fs
+ push bx ; gs
%endif
+
+ mov esi,100000h ; Copy from...
+ mov edi,7C00h ; Copy to...
+
jmp bcopy_over_self
%if IS_SYSLINUX = 0