mirror of https://github.com/ipxe/ipxe.git
[int13] Catch INT 13,4b when no explicit drive number is present
This allows older versions of ELTORITO.SYS (such as the version found on the FreeDOS installation CD-ROM) to use iPXE's emulated CD-ROM drive. Reported-by: Robin Smidsrød <robin@smidsrod.no> Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/5/head
parent
57e65d2c4d
commit
62c9635166
|
@ -1187,12 +1187,17 @@ static __asmcall void int13 ( struct i386_all_regs *ix86 ) {
|
||||||
bios_drive, int13->drive );
|
bios_drive, int13->drive );
|
||||||
ix86->regs.dl = int13->drive;
|
ix86->regs.dl = int13->drive;
|
||||||
return;
|
return;
|
||||||
|
} else if ( ( ( bios_drive & 0x7f ) == 0x7f ) &&
|
||||||
|
( command == INT13_CDROM_STATUS_TERMINATE )
|
||||||
|
&& int13->is_cdrom ) {
|
||||||
|
/* Catch non-drive-specific CD-ROM calls */
|
||||||
|
} else {
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
DBGC2 ( int13, "INT13,%02x (%02x): ",
|
DBGC2 ( int13, "INT13,%02x (%02x): ",
|
||||||
ix86->regs.ah, int13->drive );
|
ix86->regs.ah, bios_drive );
|
||||||
|
|
||||||
switch ( command ) {
|
switch ( command ) {
|
||||||
case INT13_RESET:
|
case INT13_RESET:
|
||||||
|
|
Loading…
Reference in New Issue