aboutsummaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-05-25 17:48:58 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-05-25 17:48:58 -0700
commitbb519a95c0da9871fd99b068d00e96fd78cc8cc1 (patch)
treeea26286be0797667cf46dde652330e628629553e /core
parent942aadea9468884dfbc2a7c8428f52bbb5ecf360 (diff)
downloadsyslinux.git-bb519a95c0da9871fd99b068d00e96fd78cc8cc1.tar.gz
syslinux.git-bb519a95c0da9871fd99b068d00e96fd78cc8cc1.tar.xz
syslinux.git-bb519a95c0da9871fd99b068d00e96fd78cc8cc1.zip
isohybrid: revert to a stack format compatible with previous versionsyslinux-3.81-pre14
Revert the isohybrid handover protocol so that it has a stack format compatible with the previous versions; that way we can also revert the magic number to a compatible one. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core')
-rw-r--r--core/isolinux.asm29
1 files changed, 13 insertions, 16 deletions
diff --git a/core/isolinux.asm b/core/isolinux.asm
index b85ecd36..104de14a 100644
--- a/core/isolinux.asm
+++ b/core/isolinux.asm
@@ -224,35 +224,32 @@ bi_end:
; Custom entry point for the hybrid-mode disk.
; The following values will have been pushed onto the
; entry stack:
+ ; - partition offset (qword)
; - ES
; - DI
; - DX (including drive number)
- ; - partition offset (qword)
- ; - EBIOS flag
- ; - CBIOS Sectors
; - CBIOS Heads
+ ; - CBIOS Sectors
+ ; - EBIOS flag
; (top of stack)
;
%ifndef DEBUG_MESSAGES
_hybrid_signature:
- dd 0x0defe3f7
+ dd 0x7078c0fb ; An arbitrary number...
+
_start_hybrid:
- pop word [cs:bsHeads]
+ pop cx ; EBIOS flag
pop word [cs:bsSecPerTrack]
-
- pop ax
- mov si,bios_cbios
- and ax,ax
- jz .cbios
- mov si,bios_ebios
-.cbios:
-
- pop dword [cs:bsHidden]
- pop dword [cs:bsHidden+4]
-
+ pop word [cs:bsHeads]
pop dx
pop di
pop es
+ pop dword [cs:bsHidden]
+ pop dword [cs:bsHidden+4]
+
+ mov si,bios_cbios
+ jcxz _start_common
+ mov si,bios_ebios
jmp _start_common
%endif