//
MachVtbl.DiskGetBootPath = DiskGetBootPath;
MachVtbl.DiskGetBootDevice = DiskGetBootDevice;
- MachVtbl.DiskBootingFromFloppy = DiskBootingFromFloppy;
MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
MachVtbl.DiskGetPartitionEntry = DiskGetPartitionEntry;
MachVtbl.GetMemoryMap = PcMemGetMemoryMap;
MachVtbl.DiskGetBootPath = DiskGetBootPath;
MachVtbl.DiskGetBootDevice = DiskGetBootDevice;
- MachVtbl.DiskBootingFromFloppy = DiskBootingFromFloppy;
MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
MachVtbl.DiskReadLogicalSectors = PcDiskReadLogicalSectors;
MachVtbl.DiskGetPartitionEntry = DiskGetPartitionEntry;
MachVtbl.GetMemoryMap = XboxMemGetMemoryMap;
MachVtbl.DiskGetBootPath = DiskGetBootPath;
MachVtbl.DiskGetBootDevice = DiskGetBootDevice;
- MachVtbl.DiskBootingFromFloppy = DiskBootingFromFloppy;
MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
MachVtbl.DiskReadLogicalSectors = XboxDiskReadLogicalSectors;
MachVtbl.DiskGetPartitionEntry = XboxDiskGetPartitionEntry;
BootDevice[0] = BootDevice[1] = 0;
}
-BOOLEAN PpcDiskBootingFromFloppy(VOID) {
- return FALSE;
-}
-
BOOLEAN PpcDiskReadLogicalSectors( ULONG DriveNumber, ULONGLONG SectorNumber,
ULONG SectorCount, PVOID Buffer ) {
int rlen = 0;
MachVtbl.DiskNormalizeSystemPath = PpcDiskNormalizeSystemPath;
MachVtbl.DiskGetBootPath = PpcDiskGetBootPath;
MachVtbl.DiskGetBootDevice = PpcDiskGetBootDevice;
- MachVtbl.DiskBootingFromFloppy = PpcDiskBootingFromFloppy;
MachVtbl.DiskReadLogicalSectors = PpcDiskReadLogicalSectors;
MachVtbl.DiskGetPartitionEntry = PpcDiskGetPartitionEntry;
MachVtbl.DiskGetDriveGeometry = PpcDiskGetDriveGeometry;
((char *)BootDevice)[1] = (char)BootPartition;
}
-BOOLEAN
-DiskBootingFromFloppy(VOID)
-{
- return BootDrive < 0x80;
-}
-
#define IsRecognizedPartition(P) \
((P) == PARTITION_FAT_12 || \
(P) == PARTITION_FAT_16 || \
return FALSE;
}
strcpy(BootPath, Path);
- strcat(BootPath, MachDiskBootingFromFloppy() ? "fdisk" : "cdrom");
+ strcat(BootPath, BootDrive < 0x80 ? "fdisk" : "cdrom");
strcat(strcat(strcat(BootPath, "("), Device), ")");
if (strcmp(BootPath, "multi(0)disk(0)cdrom(128)") == 0)
PULONG Device);
BOOLEAN DiskGetBootPath(char *BootPath, unsigned Size);
VOID DiskGetBootDevice(PULONG BootDevice);
-BOOLEAN DiskBootingFromFloppy(VOID);
BOOLEAN DiskNormalizeSystemPath(char *SystemPath, unsigned Size);
BOOLEAN (*DiskGetBootPath)(char *BootPath, unsigned Size);
VOID (*DiskGetBootDevice)(PULONG BootDevice);
- BOOLEAN (*DiskBootingFromFloppy)(VOID);
BOOLEAN (*DiskNormalizeSystemPath)(char *SystemPath, unsigned Size);
BOOLEAN (*DiskReadLogicalSectors)(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer);
BOOLEAN (*DiskGetPartitionEntry)(ULONG DriveNumber, ULONG PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
MEMORY_DESCRIPTOR* ArcGetMemoryDescriptor(MEMORY_DESCRIPTOR* Current);
BOOLEAN MachDiskGetBootPath(char *BootPath, unsigned Size);
VOID MachDiskGetBootDevice(PULONG BootDevice);
-BOOLEAN MachDiskBootingFromFloppy();
BOOLEAN MachDiskNormalizeSystemPath(char *SystemPath, unsigned Size);
BOOLEAN MachDiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer);
BOOLEAN MachDiskGetPartitionEntry(ULONG DriveNumber, ULONG PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
#define MachPrepareForReactOS(a) MachVtbl.PrepareForReactOS(a)
#define MachDiskGetBootPath(Path, Size) MachVtbl.DiskGetBootPath((Path), (Size))
#define MachDiskGetBootDevice(BootDevice) MachVtbl.DiskGetBootDevice(BootDevice)
-#define MachDiskBootingFromFloppy() MachVtbl.DiskBootingFromFloppy()
#define MachDiskNormalizeSystemPath(Path, Size) MachVtbl.DiskNormalizeSystemPath((Path), (Size))
#define MachDiskReadLogicalSectors(Drive, Start, Count, Buf) MachVtbl.DiskReadLogicalSectors((Drive), (Start), (Count), (Buf))
#define MachDiskGetPartitionEntry(Drive, Part, Entry) MachVtbl.DiskGetPartitionEntry((Drive), (Part), (Entry))
#undef MachPrepareForReactOS
#undef MachDiskGetBootPath
#undef MachDiskGetBootDevice
-#undef MachDiskBootingFromFloppy
#undef MachDiskNormalizeSystemPath
#undef MachDiskReadLogicalSectors
#undef MachDiskGetPartitionEntry
MachVtbl.DiskGetBootDevice(BootDevice);
}
-BOOLEAN
-MachDiskBootingFromFloppy()
-{
- return MachVtbl.DiskBootingFromFloppy();
-}
-
BOOLEAN
MachDiskNormalizeSystemPath(char *SystemPath, unsigned Size)
{
ULONG i;
LPCSTR SourcePath;
LPCSTR LoadOptions, DbgLoadOptions = "";
+ BOOLEAN BootFromFloppy;
LPCSTR sourcePaths[] = {
"", /* Only for floppy boot */
#if defined(_M_IX86)
LoaderBlock.ArchExtra = (ULONG_PTR)MachHwDetect();
UiDrawStatusText("");
- /* set boot device */
- MachDiskGetBootDevice(&LoaderBlock.BootDevice);
+ /* Check if we booted from floppy */
+ MachDiskGetBootPath(reactos_kernel_cmdline, sizeof(reactos_kernel_cmdline));
+ BootFromFloppy = strstr(reactos_kernel_cmdline, "fdisk");
UiDrawStatusText("Loading txtsetup.sif...");
/* Open 'txtsetup.sif' */
- for (i = MachDiskBootingFromFloppy() ? 0 : 1; ; i++)
+ for (i = BootFromFloppy ? 0 : 1; ; i++)
{
SourcePath = sourcePaths[i];
if (!SourcePath)
LoaderBlock.KernelBase = KernelBase;
/* Insert boot disk 2 */
- if (MachDiskBootingFromFloppy())
+ if (BootFromFloppy)
{
UiMessageBox("Please insert \"ReactOS Boot Disk 2\" and press ENTER");
CHAR FileName[512];
CHAR BootPath[512];
LPCSTR LoadOptions, BootOptions;
+ BOOLEAN BootFromFloppy;
#if DBG
LPCSTR DbgOptions;
#endif
NULL
};
- /* Open 'txtsetup.sif' from any of source paths */
+ /* Get boot path */
MachDiskGetBootPath(SystemPath, sizeof(SystemPath));
- for (i = MachDiskBootingFromFloppy() ? 0 : 1; ; i++)
+
+ /* And check if we booted from floppy */
+ BootFromFloppy = strstr(SystemPath, "fdisk");
+
+ /* Open 'txtsetup.sif' from any of source paths */
+ for (i = BootFromFloppy ? 0 : 1; ; i++)
{
SourcePath = SourcePaths[i];
if (!SourcePath)