From 01b755704a7ebc235d4e4413e631e97ee1b997e2 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 23 Aug 2007 20:50:24 +0100 Subject: [PATCH] Auto-assign drive number only if set to 0xff; almost all applications require that we use drive 0x80, so it should probably be the default. --- src/arch/i386/interface/pcbios/int13.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/arch/i386/interface/pcbios/int13.c b/src/arch/i386/interface/pcbios/int13.c index 53817c7a..a26dcff4 100644 --- a/src/arch/i386/interface/pcbios/int13.c +++ b/src/arch/i386/interface/pcbios/int13.c @@ -543,8 +543,9 @@ void register_int13_drive ( struct int13_drive *drive ) { /* Assign drive number if none specified, update BIOS drive count */ get_real ( num_drives, BDA_SEG, BDA_NUM_DRIVES ); - if ( ! drive->drive ) - drive->drive = ( num_drives | 0x80 ); + if ( ( drive->drive & 0xff ) == 0xff ) + drive->drive = num_drives; + drive->drive |= 0x80; num_drives++; if ( num_drives <= ( drive->drive & 0x7f ) ) num_drives = ( ( drive->drive & 0x7f ) + 1 );