diff --git a/kernel/initdisk.c b/kernel/initdisk.c index 3cc8010..b9b5b3b 100644 --- a/kernel/initdisk.c +++ b/kernel/initdisk.c @@ -603,12 +603,15 @@ void DosDefinePartition(struct DriveParamS *driveParam, pddt->ddt_defbpb.bpb_mdesc = 0xf8; pddt->ddt_defbpb.bpb_nheads = driveParam->chs.Head; pddt->ddt_defbpb.bpb_nsecs = driveParam->chs.Sector; - pddt->ddt_defbpb.bpb_nsize = 0; pddt->ddt_defbpb.bpb_hidden = pEntry->RelSect; - if (pEntry->NumSect > 0xffff) - pddt->ddt_defbpb.bpb_huge = pEntry->NumSect; - else + + pddt->ddt_defbpb.bpb_nsize = 0; + pddt->ddt_defbpb.bpb_huge = pEntry->NumSect; + if (pEntry->NumSect <= 0xffff) + { pddt->ddt_defbpb.bpb_nsize = (UWORD) (pEntry->NumSect); + pddt->ddt_defbpb.bpb_huge = 0; /* may still be set on Win95 */ + } /* sectors per cluster, sectors per FAT etc. */ CalculateFATData(pddt, pEntry->NumSect, pEntry->FileSystem);