mirror of
https://github.com/ipxe/ipxe
synced 2025-12-26 09:32:33 +03:00
[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>
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user