@@ -19,7 +19,7 @@ Namespace DiskImage
1919 FloppyXDFMicro = 14
2020 FloppyTandy2000 = 15
2121 FloppyNoBPB = 16
22- FloppyJapanese = 17
22+ Floppy2HD = 17
2323 End Enum
2424
2525 Public Function BPBCompare(BPB As BiosParameterBlock, Params As FloppyDiskParams, CheckMediaDescriptor As Boolean ) As Boolean
@@ -102,7 +102,7 @@ Namespace DiskImage
102102 Return &HF9
103103 Case FloppyDiskFormat.FloppyTandy2000
104104 Return &HED
105- Case FloppyDiskFormat.FloppyJapanese
105+ Case FloppyDiskFormat.Floppy2HD
106106 Return &HFE
107107 Case Else
108108 Return &HF0
@@ -293,7 +293,7 @@ Namespace DiskImage
293293 Params.SectorsPerFAT = 2
294294 Params.SectorsPerTrack = 9
295295
296- Case FloppyDiskFormat.FloppyJapanese
296+ Case FloppyDiskFormat.Floppy2HD
297297 Params.BytesPerSector = 1024
298298 Params.MediaDescriptor = &HFE
299299 Params.NumberOfFATs = 2
@@ -305,7 +305,7 @@ Namespace DiskImage
305305 Params.SectorsPerFAT = 2
306306 Params.SectorsPerTrack = 8
307307
308- Case FloppyDiskFormat.FloppyNoBPB
308+ Case Else
309309 Params.BytesPerSector = 0
310310 Params.MediaDescriptor = 0
311311 Params.NumberOfFATs = 0
@@ -362,72 +362,78 @@ Namespace DiskImage
362362 End Function
363363
364364 Public Function GetFloppyDiskSize(DiskFormat As FloppyDiskFormat) As Integer
365+ Dim Size As Integer
366+
365367 Select Case DiskFormat
366368 Case FloppyDiskFormat.Floppy160
367- Return 163840
369+ Size = 160
368370 Case FloppyDiskFormat.Floppy180
369- Return 184320
371+ Size = 180
370372 Case FloppyDiskFormat.Floppy320
371- Return 327680
373+ Size = 320
372374 Case FloppyDiskFormat.Floppy360
373- Return 368640
375+ Size = 360
374376 Case FloppyDiskFormat.Floppy720
375- Return 737280
377+ Size = 720
376378 Case FloppyDiskFormat.Floppy1200
377- Return 1228800
379+ Size = 1200
378380 Case FloppyDiskFormat.Floppy1440
379- Return 1474560
381+ Size = 1440
380382 Case FloppyDiskFormat.FloppyDMF1024
381- Return 1720320
383+ Size = 1680
382384 Case FloppyDiskFormat.FloppyDMF2048
383- Return 1720320
385+ Size = 1680
384386 Case FloppyDiskFormat.FloppyProCopy
385- Return 1474560
387+ Size = 1440
386388 Case FloppyDiskFormat.FloppyXDF525
387- Return 1556480
389+ Size = 1520
388390 Case FloppyDiskFormat.FloppyXDF35
389- Return 1884160
391+ Size = 1840
390392 Case FloppyDiskFormat.FloppyXDFMicro
391- Return 4096
393+ Size = 4
392394 Case FloppyDiskFormat.Floppy2880
393- Return 2949120
395+ Size = 2880
394396 Case FloppyDiskFormat.FloppyTandy2000
395- Return 737280
396- Case FloppyDiskFormat.FloppyJapanese
397- Return 1261568
397+ Size = 720
398+ Case FloppyDiskFormat.Floppy2HD
399+ Size = 1232
398400 Case Else
399- Return 0
401+ Size = 0
400402 End Select
403+
404+ Return Size * 1024
401405 End Function
402406
403407 Public Function GetFloppyDiskFormat(Size As Integer ) As FloppyDiskFormat
408+ Size = Math.Round(Size / 2048 , 0 , MidpointRounding.AwayFromZero) * 2
409+
404410 Select Case Size
405- Case 163840
411+ Case 160
406412 Return FloppyDiskFormat.Floppy160
407- Case 184320
413+ Case 180
408414 Return FloppyDiskFormat.Floppy180
409- Case 327680
415+ Case 320
410416 Return FloppyDiskFormat.Floppy320
411- Case 368640
417+ Case 360
412418 Return FloppyDiskFormat.Floppy360
413- Case 737280
419+ Case 720
414420 Return FloppyDiskFormat.Floppy720
415- Case 1228800
421+ Case 1200
416422 Return FloppyDiskFormat.Floppy1200
417- Case 1474560
423+ Case 1440
418424 Return FloppyDiskFormat.Floppy1440
419- Case 1720320
425+ Case 1680
420426 Return FloppyDiskFormat.FloppyDMF2048
421- Case 1556480
427+ Case 1520
422428 Return FloppyDiskFormat.FloppyXDF525
423- Case 1884160
429+ Case 1840
424430 Return FloppyDiskFormat.FloppyXDF35
425- Case 4096
431+ Case 4
426432 Return FloppyDiskFormat.FloppyXDFMicro
427- Case 2949120
433+ Case 2880
428434 Return FloppyDiskFormat.Floppy2880
429- Case 1261568
430- Return FloppyDiskFormat.FloppyJapanese
435+ Case 1232
436+ Return FloppyDiskFormat.Floppy2HD
431437 Case Else
432438 Return FloppyDiskFormat.FloppyUnknown
433439 End Select
@@ -466,7 +472,7 @@ Namespace DiskImage
466472 Case "Tandy 2000"
467473 Return FloppyDiskFormat.FloppyTandy2000
468474 Case "2HD (1.23M)"
469- Return FloppyDiskFormat.FloppyJapanese
475+ Return FloppyDiskFormat.Floppy2HD
470476 Case "NO BPB"
471477 Return FloppyDiskFormat.FloppyNoBPB
472478 Case Else
@@ -514,7 +520,7 @@ Namespace DiskImage
514520 Return "XDF Micro"
515521 Case FloppyDiskFormat.FloppyTandy2000
516522 Return "Tandy 2000"
517- Case FloppyDiskFormat.FloppyJapanese
523+ Case FloppyDiskFormat.Floppy2HD
518524 Return "2HD (1.23M)"
519525 Case FloppyDiskFormat.FloppyNoBPB
520526 Return "No BPB"
@@ -553,7 +559,7 @@ Namespace DiskImage
553559 Return ".xdf"
554560 Case FloppyDiskFormat.FloppyXDFMicro
555561 Return ".xdf"
556- Case FloppyDiskFormat.FloppyJapanese
562+ Case FloppyDiskFormat.Floppy2HD
557563 Return ".hdm"
558564 Case Else
559565 Return ""
@@ -601,7 +607,6 @@ Namespace DiskImage
601607 Or DiskFormat = FloppyDiskFormat.FloppyProCopy _
602608 Or DiskFormat = FloppyDiskFormat.FloppyXDF35 _
603609 Or DiskFormat = FloppyDiskFormat.FloppyXDF525 _
604- Or DiskFormat = FloppyDiskFormat.FloppyJapanese _
605610 Or DiskFormat = FloppyDiskFormat.FloppyXDFMicro Then
606611 Return False
607612 End If
0 commit comments