@@ -101,7 +101,15 @@ HardDrive::init(const GeometryDescriptor &geometry)
101101
102102 // Create the drive description
103103 this ->geometry = geometry;
104- ptable.push_back (PartitionDescriptor (geometry));
104+
105+ // Add a default partition spanning the entire disk
106+ auto partition = PartitionDescriptor (geometry);
107+
108+ // Make the partition bootable
109+ partition.flags |= 1 ;
110+
111+ // Add the descriptor to the partition table
112+ ptable.push_back (partition);
105113
106114 // Create the new drive
107115 data.resize (geometry.numBytes ());
@@ -161,12 +169,10 @@ HardDrive::init(const HDFFile &hdf)
161169 if (auto value = hdf.getControllerRevision (); value) controllerRevision = *value;
162170
163171 // Copy geometry
164- assert (hdf.geometry == hdf.getGeometryDescriptor ());
165- geometry = hdf.getGeometryDescriptor (); // TODO: Replace by " = hdf.geometry" (?!)
172+ geometry = hdf.geometry ;
166173
167174 // Copy partition table
168- ptable = hdf.getPartitionDescriptors (); // TODO: Replace by " = hdf.ptable" (?!)
169- assert (ptable.size () == hdf.getPartitionDescriptors ().size ());
175+ ptable = hdf.ptable ;
170176
171177 // Copy over all needed file system drivers
172178 for (const auto &driver : hdf.drivers ) {
@@ -399,8 +405,6 @@ HardDrive::_dump(Category category, std::ostream& os) const
399405 os << HardDriveStateEnum::key (state) << std::endl;
400406 os << tab (" Flags" );
401407 os << DiskFlagsEnum::mask (flags) << std::endl;
402- os << tab (" Boot block" );
403- os << bol (hasBootBlock ()) << std::endl;
404408 os << tab (" Capacity" );
405409 os << dec (cap1) << " ." << dec (cap2) << " MB" << std::endl;
406410 geometry.dump (os);
@@ -499,17 +503,6 @@ HardDrive::setProtectionFlag(bool value)
499503 if (hasDisk ()) setFlag (DiskFlags::PROTECTED, value);
500504}
501505
502- bool
503- HardDrive::hasBootBlock () const
504- {
505- if (data.size > 512 ) {
506- for (isize i = 12 ; i < 512 ; i++) {
507- if (data[i]) return true ;
508- }
509- }
510- return false ;
511- }
512-
513506string
514507HardDrive::defaultName (isize partition) const
515508{
0 commit comments