@@ -46,7 +46,9 @@ Public Class BootSectorForm
4646 & vbCrLf & "360K Floppy" & vbTab & "2" _
4747 & vbCrLf & "720K Floppy" & vbTab & "2" _
4848 & vbCrLf & "1.2M Floppy" & vbTab & "1" _
49- & vbCrLf & "1.44M Floppy" & vbTab & "1"
49+ & vbCrLf & "1.44M Floppy" & vbTab & "1" _
50+ & vbCrLf & "2.88M Floppy" & vbTab & "2" _
51+ & vbCrLf & "DMF Floppy" & vbTab & "2 or 4"
5052 SetHelpString(Msg, LblSectorsPerCluster, CboSectorsPerCluster)
5153
5254 Msg = "Number of reserved sectors in the reserved region of the volume starting at the first sector of the volume" _
@@ -68,7 +70,9 @@ Public Class BootSectorForm
6870 & vbCrLf & "360K Floppy" & vbTab & "112" _
6971 & vbCrLf & "720K Floppy" & vbTab & "112" _
7072 & vbCrLf & "1.2M Floppy" & vbTab & "224" _
71- & vbCrLf & "1.44M Floppy" & vbTab & "224"
73+ & vbCrLf & "1.44M Floppy" & vbTab & "224" _
74+ & vbCrLf & "2.88M Floppy" & vbTab & "240" _
75+ & vbCrLf & "DMF Floppy" & vbTab & "16"
7276 SetHelpString(Msg, LblRootDirectoryEntries, TxtRootDirectoryEntries)
7377
7478 Msg = "Total number of sectors in the volume" _
@@ -79,12 +83,14 @@ Public Class BootSectorForm
7983 & vbCrLf & "360K Floppy" & vbTab & "720" _
8084 & vbCrLf & "720K Floppy" & vbTab & "1440" _
8185 & vbCrLf & "1.2M Floppy" & vbTab & "2400" _
82- & vbCrLf & "1.44M Floppy" & vbTab & "2880"
86+ & vbCrLf & "1.44M Floppy" & vbTab & "2880" _
87+ & vbCrLf & "2.88M Floppy" & vbTab & "5760" _
88+ & vbCrLf & "DMF Floppy" & vbTab & "3360"
8389 SetHelpString(Msg, LblSectorCountSmall, TxtSectorCountSmall)
8490
8591 Msg = "Media Descriptor" _
8692 & vbCrLf & vbCrLf & "Allowed Values:" _
87- & vbCrLf & "F0" & vbTab & "1.44M & 2.88M Floppy" _
93+ & vbCrLf & "F0" & vbTab & "1.44M, 2.88M, DMF Floppy" _
8894 & vbCrLf & "F8" & vbTab & "Fixed Disk" _
8995 & vbCrLf & "F9" & vbTab & "720K & 1.2M Floppy" _
9096 & vbCrLf & "FA" & vbTab & "Unused" _
@@ -103,7 +109,9 @@ Public Class BootSectorForm
103109 & vbCrLf & "360K Floppy" & vbTab & "2" _
104110 & vbCrLf & "720K Floppy" & vbTab & "3" _
105111 & vbCrLf & "1.2M Floppy" & vbTab & "7" _
106- & vbCrLf & "1.44M Floppy" & vbTab & "9"
112+ & vbCrLf & "1.44M Floppy" & vbTab & "9" _
113+ & vbCrLf & "2.88M Floppy" & vbTab & "9" _
114+ & vbCrLf & "DMF Floppy" & vbTab & "3 or 5"
107115 SetHelpString(Msg, LblSectorsPerFAT, TxtSectorsPerFAT)
108116
109117 Msg = "Number of sectors per track on the disk" _
@@ -114,7 +122,9 @@ Public Class BootSectorForm
114122 & vbCrLf & "360K Floppy" & vbTab & "9" _
115123 & vbCrLf & "720K Floppy" & vbTab & "9" _
116124 & vbCrLf & "1.2M Floppy" & vbTab & "15" _
117- & vbCrLf & "1.44M Floppy" & vbTab & "18"
125+ & vbCrLf & "1.44M Floppy" & vbTab & "18" _
126+ & vbCrLf & "2.88M Floppy" & vbTab & "36" _
127+ & vbCrLf & "DMF Floppy" & vbTab & "21"
118128 SetHelpString(Msg, LblSectorsPerTrack, TxtSectorsPerTrack)
119129
120130 Msg = "Number of physical heads (sides) on the disk" _
@@ -125,7 +135,9 @@ Public Class BootSectorForm
125135 & vbCrLf & "360K Floppy" & vbTab & "2" _
126136 & vbCrLf & "720K Floppy" & vbTab & "2" _
127137 & vbCrLf & "1.2M Floppy" & vbTab & "2" _
128- & vbCrLf & "1.44M Floppy" & vbTab & "2"
138+ & vbCrLf & "1.44M Floppy" & vbTab & "2" _
139+ & vbCrLf & "2.88M Floppy" & vbTab & "2" _
140+ & vbCrLf & "DMF Floppy" & vbTab & "2"
129141 SetHelpString(Msg, LblNumberOfHeads, TxtNumberOfHeads)
130142
131143 Msg = "Number of sectors preceeding the first sector of a partitioned volume" _
@@ -173,7 +185,6 @@ Public Class BootSectorForm
173185 Dim Result As Boolean = True
174186
175187 For Each value In b
176- Debug.Print(value)
177188 If value <> 0 Then
178189 Result = False
179190 Exit For
@@ -249,7 +260,7 @@ Public Class BootSectorForm
249260 SetValue(TxtSectorCountSmall, BootSector.SectorCountSmall)
250261 SetValue(HexMediaDescriptor, BootSector.MediaDescriptor.ToString( "X2" ), Array.ConvertAll(BootSector.ValidMediaDescriptor, Function (x) x.ToString( "X2" )))
251262 SetValue(TxtSectorsPerFAT, BootSector.SectorsPerFAT)
252- SetValue(TxtSectorsPerTrack, BootSector.SectorsPerTrack, { "8" , "9" , "15" , "18" })
263+ SetValue(TxtSectorsPerTrack, BootSector.SectorsPerTrack, { "8" , "9" , "15" , "18" , "21" , "36" })
253264 SetValue(TxtNumberOfHeads, BootSector.NumberOfHeads, { "1" , "2" })
254265 SetValue(TxtHiddenSectors, BootSector.HiddenSectors)
255266 End Sub
@@ -294,14 +305,17 @@ Public Class BootSectorForm
294305
295306 Private Sub PopulateDiskTypes()
296307 CboDiskType.Items.Clear()
297- CboDiskType.Items.Add( New BootSectorDiskType( "160K Floppy" , 163840 ))
298- CboDiskType.Items.Add( New BootSectorDiskType( "180K Floppy" , 184320 ))
299- CboDiskType.Items.Add( New BootSectorDiskType( "320K Floppy" , 327680 ))
300- CboDiskType.Items.Add( New BootSectorDiskType( "360K Floppy" , 368640 ))
301- CboDiskType.Items.Add( New BootSectorDiskType( "720K Floppy" , 737280 ))
302- CboDiskType.Items.Add( New BootSectorDiskType( "1.2M Floppy" , 1228800 ))
303- CboDiskType.Items.Add( New BootSectorDiskType( "1.44M Floppy" , 1474560 ))
304- CboDiskType.Items.Add( New BootSectorDiskType( "Custom" , 0 ))
308+ CboDiskType.Items.Add( New BootSectorDiskType( "160K" , FloppyDiskType.Floppy160))
309+ CboDiskType.Items.Add( New BootSectorDiskType( "180K" , FloppyDiskType.Floppy180))
310+ CboDiskType.Items.Add( New BootSectorDiskType( "320K" , FloppyDiskType.Floppy320))
311+ CboDiskType.Items.Add( New BootSectorDiskType( "360K" , FloppyDiskType.Floppy360))
312+ CboDiskType.Items.Add( New BootSectorDiskType( "720K" , FloppyDiskType.Floppy720))
313+ CboDiskType.Items.Add( New BootSectorDiskType( "1.2M" , FloppyDiskType.Floppy1200))
314+ CboDiskType.Items.Add( New BootSectorDiskType( "1.44M" , FloppyDiskType.Floppy1440))
315+ CboDiskType.Items.Add( New BootSectorDiskType( "2.88M" , FloppyDiskType.Floppy2880))
316+ CboDiskType.Items.Add( New BootSectorDiskType( "DMF (1024)" , FloppyDiskType.FloppyDMF1024))
317+ CboDiskType.Items.Add( New BootSectorDiskType( "DMF (2048)" , FloppyDiskType.FloppyDMF2048))
318+ CboDiskType.Items.Add( New BootSectorDiskType( "Custom" , FloppyDiskType.FloppyUnknown))
305319
306320 CboDiskType.SelectedIndex = CboDiskType.Items.Count - 1
307321 End Sub
@@ -381,8 +395,8 @@ Public Class BootSectorForm
381395 Dim SelectedItem As BootSectorDiskType = Nothing
382396
383397 For Each DiskType As BootSectorDiskType In CboDiskType.Items
384- If DiskType.Size > 0 Then
385- Dim BootSector = BuildBootSectorFromFileSize (DiskType.Size )
398+ If DiskType.Type <> FloppyDiskType.FloppyUnknown Then
399+ Dim BootSector = BuildBootSectorFromType (DiskType.Type )
386400 If BootSector.MediaDescriptor = HexMediaDescriptor.GetHex( 0 ) _
387401 And BootSector.NumberOfHeads = TxtNumberOfHeads.Text _
388402 And BootSector.RootEntryCount = TxtRootDirectoryEntries.Text _
@@ -691,8 +705,8 @@ Public Class BootSectorForm
691705
692706 _SuppressEvent = True
693707 Dim DiskType As BootSectorDiskType = CboDiskType.SelectedItem
694- If DiskType.Size > 0 Then
695- Dim BootSector = BuildBootSectorFromFileSize (DiskType.Size )
708+ If DiskType.Type <> FloppyDiskType.FloppyUnknown Then
709+ Dim BootSector = BuildBootSectorFromType (DiskType.Type )
696710 PopulateBootRecord(BootSector)
697711 End If
698712 _SuppressEvent = False
@@ -714,7 +728,7 @@ Public Class BootSectorForm
714728 Private Sub CboDiskType_LostFocus(sender As Object , e As EventArgs) Handles CboDiskType.LostFocus
715729 _SuppressEvent = True
716730 Dim DiskType As BootSectorDiskType = CboDiskType.SelectedItem
717- If DiskType.Size = 0 Then
731+ If DiskType.Type = FloppyDiskType.FloppyUnknown Then
718732 SetCurrentDiskType()
719733 End If
720734 _SuppressEvent = False
@@ -758,13 +772,13 @@ Public Class BootSectorForm
758772 End Class
759773
760774 Private Class BootSectorDiskType
761- Public Sub New (Name As String , Size As Integer )
775+ Public Sub New (Name As String , Type As FloppyDiskType )
762776 _Name = Name
763- _Size = Size
777+ _Type = Type
764778 End Sub
765779
766780 Public Property Name As String
767- Public Property Size As Integer
781+ Public Property Type As FloppyDiskType
768782
769783 Public Overrides Function ToString() As String
770784 Return _Name
0 commit comments