diff --git a/boot/freeldr/freeldr/arch/i386/pc98/pc98disk.c b/boot/freeldr/freeldr/arch/i386/pc98/pc98disk.c index 7d032fffba1..34173bbf124 100644 --- a/boot/freeldr/freeldr/arch/i386/pc98/pc98disk.c +++ b/boot/freeldr/freeldr/arch/i386/pc98/pc98disk.c @@ -397,6 +397,7 @@ InitScsiDrive( DiskDrive->Geometry.Heads = RegsOut.b.dh; DiskDrive->Geometry.SectorsPerTrack = RegsOut.b.dl; DiskDrive->Geometry.BytesPerSector = RegsOut.w.bx; + DiskDrive->Type = DRIVE_TYPE_HDD; } /* Other devices */ else if (ScsiParameters != 0) @@ -675,7 +676,7 @@ Pc98InitializeBootDevices(VOID) * that cannot boot from a CD-ROM and has LBA limitations. */ AtaInit(&IdeDetectedCount); - for (i = 0; i <= IdeDetectedCount; i++) + for (i = 0; i < IdeDetectedCount; i++) { DiskDrive = &Pc98DiskDrive[BiosHardDriveDriveNumber]; if (InitIdeDrive(DiskDrive, i)) diff --git a/boot/freeldr/freeldr/arch/i386/xbox/xboxdisk.c b/boot/freeldr/freeldr/arch/i386/xbox/xboxdisk.c index 8a71058545a..593a52fc56d 100644 --- a/boot/freeldr/freeldr/arch/i386/xbox/xboxdisk.c +++ b/boot/freeldr/freeldr/arch/i386/xbox/xboxdisk.c @@ -42,31 +42,28 @@ static VOID XboxDiskInit(VOID) { - UCHAR DetectedCount; - UCHAR UnitNumber; - PDEVICE_UNIT DeviceUnit = NULL; + UCHAR DetectedCount, UnitNumber; ASSERT(!AtaInitialized); - AtaInitialized = TRUE; /* Find first HDD and CD */ AtaInit(&DetectedCount); - for (UnitNumber = 0; UnitNumber <= DetectedCount; UnitNumber++) + for (UnitNumber = 0; UnitNumber < DetectedCount; UnitNumber++) { - DeviceUnit = AtaGetDevice(UnitNumber); - if (DeviceUnit) + PDEVICE_UNIT DeviceUnit = AtaGetDevice(UnitNumber); + if (!DeviceUnit) + continue; + + if (DeviceUnit->Flags & ATA_DEVICE_ATAPI) { - if (DeviceUnit->Flags & ATA_DEVICE_ATAPI) - { - if (!CdDrive) - CdDrive = DeviceUnit; - } - else - { - if (!HardDrive) - HardDrive = DeviceUnit; - } + if (!CdDrive) + CdDrive = DeviceUnit; + } + else + { + if (!HardDrive) + HardDrive = DeviceUnit; } } }