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

Bad sector remapping in USB MSC mode #3

Open
ChrisPVille opened this issue Apr 22, 2015 · 2 comments
Open

Bad sector remapping in USB MSC mode #3

ChrisPVille opened this issue Apr 22, 2015 · 2 comments
Assignees

Comments

@ChrisPVille
Copy link
Owner

Modern OSes get unhappy when they have to deal with IO errors from disks. The RL02 disk packs pretty much all had bad sectors somewhere. These can be identified and stored in a factory provided table on the last track of the disk, but it was up to each OS to decide how to handle them. Some skip sectors while others remap them.

In USB Mass Storage mode, save a track of the RL02 for sector remapping and use the DEC written bad sector table. With these, modern filesystems can be written to the disk around the inevitable bad sectors, although this will break SIMH and block level disk backup support for vintage disks.

@smaresca
Copy link

@ChrisPVille I'm curious: have you revisited this item by any chance?

@ChrisPVille
Copy link
Owner Author

Nope. I haven't worked on the hard drive project in a while. It was becoming a major headache to constantly repair the age-related problems that kept popping up in the drive as I was trying to build this. I did pick up a few more RL-02s in the interim, and I will get back to working on this... eventually.

As far as the bad sector map, I don't think it needs to be in the DEC format. I suspect any drive being used in MSC mode is not ever going to be fully compatible with the PDP-11 emulators. Because the emulated software (RT-11, etc.) handles bad sectors internally, it would be an ugly process of decoding the DEC bad sector format on the disk, managing that from the microcontroller, communicating that through a side-channel to a modified SimH which would feed that through to the guest OS where any failing writes to bad sectors would get communicated back to the uC for inclusion on that table.

It makes more sense to have MSC mode (LBA) available for modern filesystems which can handle their own bad blocks and provide a special SimH driver exposing the underlying Cylinder Head Sector format a virtual RL11 controller would have. The microcontroller never has to worry about marking or relocating bad blocks as higher level pieces of software will do that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants