Hi!
Could you define how/why 2nd stage doesn't boot on your side?
With my rewritten ARC names handling, your patch brokes absolutely nothing. I 
just successfully installed ReactOS.
Let me know if you want a patch to test your issue on your side.
Best regards,
P. Schweitzer

> Hi!
> 
> This patch fixes the disk geometry bug I mentioned in my previous mail. 
> It enables disk.sys and usetup.exe to use the same disk geometry that is 
> used by the BIOS.
> 
> Due to another bug or workaround in the 1st stage setup, the 2nd stage 
> setup will not boot at all.
> 
> 
> Regards,
> Eric
> Index: boot/freeldr/freeldr/arch/i386/hardware.c
> ===================================================================
> --- boot/freeldr/freeldr/arch/i386/hardware.c (revision 48722)
> +++ boot/freeldr/freeldr/arch/i386/hardware.c (working copy)
> @@ -327,7 +327,6 @@
>  {
>    PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
>    PCM_DISK_GEOMETRY_DEVICE_DATA DiskGeometry;
> -  EXTENDED_GEOMETRY ExtGeometry;
>    GEOMETRY Geometry;
>    ULONG Size;
>  
> @@ -362,16 +361,8 @@
>    DiskGeometry = (PVOID)(((ULONG_PTR)PartialResourceList) + 
> sizeof(CM_PARTIAL_RESOURCE_LIST));
>  
>    /* Get the disk geometry */
> -  ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
> -  if (DiskGetExtendedDriveParameters(DriveNumber, &ExtGeometry, 
> ExtGeometry.Size))
> +  if(MachDiskGetDriveGeometry(DriveNumber, &Geometry))
>      {
> -      DiskGeometry->BytesPerSector = ExtGeometry.BytesPerSector;
> -      DiskGeometry->NumberOfCylinders = ExtGeometry.Cylinders;
> -      DiskGeometry->SectorsPerTrack = ExtGeometry.SectorsPerTrack;
> -      DiskGeometry->NumberOfHeads = ExtGeometry.Heads;
> -    }
> -  else if(MachDiskGetDriveGeometry(DriveNumber, &Geometry))
> -    {
>        DiskGeometry->BytesPerSector = Geometry.BytesPerSector;
>        DiskGeometry->NumberOfCylinders = Geometry.Cylinders;
>        DiskGeometry->SectorsPerTrack = Geometry.Sectors;
> Index: boot/freeldr/freeldr/arch/i386/pcdisk.c
> ===================================================================
> --- boot/freeldr/freeldr/arch/i386/pcdisk.c   (revision 48722)
> +++ boot/freeldr/freeldr/arch/i386/pcdisk.c   (working copy)
> @@ -296,12 +296,25 @@
>  BOOLEAN
>  PcDiskGetDriveGeometry(ULONG DriveNumber, PGEOMETRY Geometry)
>  {
> +  EXTENDED_GEOMETRY ExtGeometry;
>    REGS RegsIn;
>    REGS RegsOut;
>    ULONG Cylinders;
>  
>    DPRINTM(DPRINT_DISK, "DiskGetDriveGeometry()\n");
>  
> +  /* Try to get the extended geometry first */
> +  ExtGeometry.Size = sizeof(EXTENDED_GEOMETRY);
> +  if (DiskGetExtendedDriveParameters(DriveNumber, &ExtGeometry, 
> ExtGeometry.Size))
> +  {
> +    Geometry->Cylinders = ExtGeometry.Cylinders;
> +    Geometry->Heads = ExtGeometry.Heads;
> +    Geometry->Sectors = ExtGeometry.SectorsPerTrack;
> +    Geometry->BytesPerSector = ExtGeometry.BytesPerSector;
> +
> +    return TRUE;
> +  }
> +
>    /* BIOS Int 13h, function 08h - Get drive parameters
>     * AH = 08h
>     * DL = drive (bit 7 set for hard disk)
> _______________________________________________
> Ros-dev mailing list
> [email protected]
> http://www.reactos.org/mailman/listinfo/ros-dev



_______________________________________________
Ros-dev mailing list
[email protected]
http://www.reactos.org/mailman/listinfo/ros-dev

Reply via email to