[syslinux:pathbased] eltorito: Scan upwards instead of downwards

syslinux-bot for Shao Miller shao.miller at yrdsb.edu.on.ca
Thu Jun 17 11:45:26 PDT 2010


Commit-ID:  aa1050f66db73be1f61eea0c2df8169430d32d8e
Gitweb:     http://syslinux.zytor.com/commit/aa1050f66db73be1f61eea0c2df8169430d32d8e
Author:     Shao Miller <shao.miller at yrdsb.edu.on.ca>
AuthorDate: Fri, 11 Jun 2010 04:15:19 +0000
Committer:  H. Peter Anvin <hpa at linux.intel.com>
CommitDate: Thu, 17 Jun 2010 11:44:37 -0700

eltorito: Scan upwards instead of downwards

A developer for GRUB4DOS called tinybit has reported that some
BIOSes crash when the DOS ElTorito.Sys driver scans drive number
0xFF.  According to the El Torito specification, drive 0x7F
means "terminate all," so a plausible explanation suggested
by H. Peter Anvin is that the drive 0xFF is a shadow of drive
0x7F, thus contributing to a failure on these BIOSes.

Now we scan from 0x80 through 0xFF, instead.

[ hpa: dropped checkin of eltorito.sys ]

Signed-off-by: Shao Miller <shao.miller at yrdsb.edu.on.ca>
Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>


---
 dosutil/eltorito.asm |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dosutil/eltorito.asm b/dosutil/eltorito.asm
index eabda12..96cfd9b 100644
--- a/dosutil/eltorito.asm
+++ b/dosutil/eltorito.asm
@@ -1029,7 +1029,7 @@ SpecGo:		mov	si,SpecPkt
 
 ScanDrives:	push	ax		; at df3 in 1.4
 		push	si
-		mov dl, 0ffh		;Start at Drive 0xff
+		mov dl, 80h		;Start at Drive 0x80
 NextDrv:	mov	ax,4B01h		;Get Bootable CD-ROM Status
 		mov	BYTE [SpecPkt],0		;Clear 1st byte of SpecPkt
 		call	SpecGo
@@ -1044,9 +1044,9 @@ NextDrv:	mov	ax,4B01h		;Get Bootable CD-ROM Status
 		ja	FindFail	; in 1.4 at e16
 		jmp	short SendFound	; in 1.4 at e26
 
-FindFail:	dec	dl			;Next drive
-		cmp	dl, 80h
-		jb	SendFail		; Check from ffh..80h
+FindFail:	inc	dl			;Next drive
+		cmp	dl, 0ffh
+		jb	SendFail		; Check from 80h..ffh
 		jmp	short NextDrv
 SendFail:	xor	dl,dl
 		stc



More information about the Syslinux-commits mailing list