summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShao Miller <shao.miller@yrdsb.edu.on.ca>2010-06-14 18:50:56 -0400
committerShao Miller <shao.miller@yrdsb.edu.on.ca>2010-06-15 00:48:34 -0400
commit62ac3a7710b846c66a190156a11b7170015e7afb (patch)
tree67c722a96f4e28742b7a7fe4b69930d237a87356
parentf23e586f898704626b4db5287a1c70cdfb11af5d (diff)
downloadsyslinux-62ac3a7710b846c66a190156a11b7170015e7afb.tar.gz
eltorito: Include drive 0xFF in scan
Although drive 0xFF could yield a false positive as the El Torito booted-from drive number, some users of GRUB4DOS actually use this drive number, so we should include it in our scan. Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
-rw-r--r--dosutil/eltorito.asm15
1 files changed, 8 insertions, 7 deletions
diff --git a/dosutil/eltorito.asm b/dosutil/eltorito.asm
index 96cfd9ba..d6b6b50e 100644
--- a/dosutil/eltorito.asm
+++ b/dosutil/eltorito.asm
@@ -1029,9 +1029,11 @@ SpecGo: mov si,SpecPkt
ScanDrives: push ax ; at df3 in 1.4
push si
- 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
+ mov dl, 7fh ;Start at Drive 0x80
+NextDrv: inc dl
+ clc
+ mov ax,4B01h ;Get Bootable CD-ROM Status
+ mov BYTE [SpecPkt],0 ;Clear 1st byte of SpecPkt
call SpecGo
; Carry is not cleared in buggy Dell BIOSes,
; so I'm checking packet size byte
@@ -1044,10 +1046,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: inc dl ;Next drive
- cmp dl, 0ffh
- jb SendFail ; Check from 80h..ffh
- jmp short NextDrv
+FindFail: cmp dl, 0ffh
+ je SendFail ; Check from 80h..ffh
+ jmp short NextDrv ;Next drive
SendFail: xor dl,dl
stc
jmp short ThingDone