Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

All DOSes: Formatting/unformatting cylinders needs revision #49

Open
tomas-nestorovic opened this issue Feb 12, 2020 · 0 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@tomas-nestorovic
Copy link
Owner

tomas-nestorovic commented Feb 12, 2020

The following problems have been found:

  • Some DOSes in their CDos::ValidateFormatChangeAndReportProblem implementation may want to not only validate the new format but also adjust somehow the boot sector or FAT length (e.g. BS-DOS). However, the problem is that checking whether cylinders to reformat or remove are empty comes after the CDos::ValidateFormatChangeAndReportProblem method is called - this may put the disk into an inconsistent state. The correct behavior should first check whether cylinders are empty, and afterwards call the CDos::ValidateFormatChangeAndReportProblem method.
  • The CDos::ValidateFormatChangeAndReportProblem method is sometimes called with incorrect parameter describing whether the disk is being formatted from scratch or just partly adjusted (cylinders reformatted or removed).
  • There is no need to compile a list of tracks to format or remove. Tracks are not formatted randomly - instead, they are formatted in consecutive blocks (e.g. Cylinders 3 to 5, all heads).
  • Different DOSes use different values to mark standard sectors from removed tracks "unavailable". For instance, MDOS marks them Unavailable, whereas BS-DOS marks them Unknown. When removing tracks, it should be specified with which value to reset corresponding part of the FAT.
  • On failure, sometimes the reported error is ERROR_SUCCESS which makes no sense (probably a missing call to ::SetLastError).
@tomas-nestorovic tomas-nestorovic added the bug Something isn't working label Feb 12, 2020
@tomas-nestorovic tomas-nestorovic self-assigned this Feb 12, 2020
tomas-nestorovic added a commit that referenced this issue Feb 12, 2020
tomas-nestorovic added a commit that referenced this issue Feb 18, 2020
…rt 2: Refactored standard cylinders unformatting)
tomas-nestorovic added a commit that referenced this issue Jul 21, 2020
…rt 3: Fixed determination of sector length code)
tomas-nestorovic added a commit that referenced this issue Jul 24, 2020
…rt 4: Optional validation in context of boot and FAT)
tomas-nestorovic added a commit that referenced this issue Jul 29, 2020
…rt 5: Improvements of the "Format cylinders" dialog)
tomas-nestorovic added a commit that referenced this issue Jul 30, 2020
…rt 6: Fixed new format when unformatting cylinders)
tomas-nestorovic added a commit that referenced this issue Aug 29, 2020
…rt 7: Formatting is a time-critical operation)
tomas-nestorovic added a commit that referenced this issue Oct 26, 2020
…rt 8: Clearly separating image reset from image settings)
tomas-nestorovic added a commit that referenced this issue Jan 7, 2021
… create images that are by design read-only, e.g. IPF images)
tomas-nestorovic added a commit that referenced this issue Mar 13, 2021
…oved determination of Gap3 from already formatted track during dump)
tomas-nestorovic added a commit that referenced this issue Mar 7, 2022
… Head 0 can destroy a cylinder in CImageRaw)
tomas-nestorovic added a commit that referenced this issue May 29, 2022
…oved transparency of formatting process by listing actions being done with the disk)
tomas-nestorovic added a commit that referenced this issue Jun 23, 2022
tomas-nestorovic added a commit that referenced this issue Jun 25, 2022
…here is no existing disk yet, the CImage::GetActive method must return the image being currently formatted to avoid app crash)
tomas-nestorovic added a commit that referenced this issue Jun 25, 2022
…d registering of bad sectors in FAT when formatting cylinders)
tomas-nestorovic added a commit that referenced this issue Jul 9, 2022
tomas-nestorovic added a commit that referenced this issue Jul 9, 2022
tomas-nestorovic added a commit that referenced this issue Nov 18, 2023
…r formatting is done, showing DOS recognition progress)
tomas-nestorovic added a commit that referenced this issue Nov 23, 2023
…st consider all tracks with boot sector to determine disk encoding)
tomas-nestorovic added a commit that referenced this issue Dec 16, 2023
…xed immediate creation of toolbars, now postponed until call of CDockableToolBar::Show() method)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant