diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-05-31 20:19:33 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-05-31 20:19:33 -0700 |
commit | 6b7aa8e5d8490aa0002e462c86dd9c6866a7b299 (patch) | |
tree | 7c2c8eac151237539c76ac6aae727d888edaaea4 /core/isolinux.asm | |
parent | 76201e85da73d1ccb736cbd6980585e8b8e366e0 (diff) | |
download | syslinux-6b7aa8e5d8490aa0002e462c86dd9c6866a7b299.tar.gz |
isolinux: bsHidden can't be in data; it is set before checksumming
We cannot put bsHidden in initializated data, as it is set before we
run the global checksumming.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/isolinux.asm')
-rw-r--r-- | core/isolinux.asm | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/core/isolinux.asm b/core/isolinux.asm index fd18bd33..38d3d715 100644 --- a/core/isolinux.asm +++ b/core/isolinux.asm @@ -108,20 +108,23 @@ GetlinsecPtr resw 1 ; The sector-read pointer BIOSName resw 1 ; Display string for BIOS type %define HAVE_BIOSNAME 1 BIOSType resw 1 -bsSecPerTrack resw 1 ; Used in hybrid mode -bsHeads resw 1 ; Used in hybrid mode DiskError resb 1 ; Error code for disk I/O DriveNumber resb 1 ; CD-ROM BIOS drive number ISOFlags resb 1 ; Flags for ISO directory search RetryCount resb 1 ; Used for disk access retries -_spec_start equ $ + alignb 8 +bsHidden resq 1 ; Used in hybrid mode +bsSecPerTrack resw 1 ; Used in hybrid mode +bsHeads resw 1 ; Used in hybrid mode + ; ; El Torito spec packet ; alignb 8 +_spec_start equ $ spec_packet: resb 1 ; Size of packet sp_media: resb 1 ; Media type sp_drive: resb 1 ; Drive number @@ -245,11 +248,15 @@ _start_hybrid: pop dx pop di pop es + xor eax,eax + xor edx,edx cmp sp,7C00h jae .nooffset - pop dword [cs:bsHidden] - pop dword [cs:bsHidden+4] + pop eax + pop edx .nooffset: + mov [cs:bsHidden],eax + mov [cs:bsHidden+4],edx mov si,bios_cbios jcxz _start_common @@ -1066,9 +1073,7 @@ bios_cbios_str db 'CHDD', 0 bios_ebios_str db 'EHDD' ,0 %endif - alignz 8 -bsHidden dq 0 ; Used in hybrid mode - + alignz 4 bios_cdrom: dw getlinsec_cdrom, bios_cdrom_str %ifndef DEBUG_MESSAGES bios_cbios: dw getlinsec_cbios, bios_cbios_str |