eltorito: Include drive 0xFF in scan
authorShao Miller <shao.miller@yrdsb.edu.on.ca>
Mon, 14 Jun 2010 22:50:56 +0000 (18:50 -0400)
committerShao Miller <shao.miller@yrdsb.edu.on.ca>
Tue, 15 Jun 2010 04:48:34 +0000 (00:48 -0400)
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>
dosutil/eltorito.asm

index 96cfd9b..d6b6b50 100644 (file)
@@ -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