This page has been obsoleted by SpinRite v6.1
SpinRite 6.1 uses direct hardware rather than BIOS for its bulk data transfer operations. It is therefore now immune to “Bad BIOS” defects. This page has been left in place until SpinRite 6.1's documentation is ready. All SpinRite 6.0 owners should
take advantage of their free upgrade to v6.1.
Summary:
A subtle but potentially devastating defect exists in the BIOS code of a very few motherboards — both old and new. This defect has remained largely unnoticed by the PC industry because modern operating systems only use a motherboard's BIOS to get themselves booted up and running. After that they take over all input and output data transfer functions using their own drivers.
But all current and past versions of SpinRite, being a DOS-hosted program, uses the BIOS to perform its "bulk" data transfers. So this rare but devastating bug in the BIOS's data transfer logic, if present, prevents SpinRite from operating safely.
Significantly, when this rare trouble has been safely detected by SpinRite, and SpinRite's user has been notified, a subsequent update of the buggy motherboard BIOS has often — but not always — cured the trouble. So either the motherboard BIOS makers are also discovering this anomaly, or updating other things in the BIOS cures this bug as a side effect.
The "Roger Anomaly":
First encountered during the extensive development of SpinRite 6.0 by a SpinRite alpha tester named "Roger", the problem was dubbed the "Roger Anomaly" after its discoverer. The nature of the anomaly is that all data written during a maximum size multi-sector transfer, which immediately follows a maximum size multi-sector read, is "shifted down" or "skewed" by exactly 32-bits, or four bytes. 32-bits of zeroes are written at the beginning of the transfer and the last 32-bits of each sector are shifted into the first 32-bits of the following sector. The final 32-bits of the last sector fall off the end and are lost forever.
This appears to be caused by some sort of data transfer initialization error. But whatever the cause, it is obviously a bad thing and cannot be allowed to occur.
What to do:
Today, all we can do is detect the presence of this rare motherboard BIOS defect, warn users about what's happening, and refuse to proceed with any bulk data transfers on the afflicted motherboard.
Any user who receives this SpinRite Critical Error describing the motherboard's BIOS defect and error should either see whether the latest version of the BIOS for their motherboard might have cured this trouble, or temporarily relocate the drive(s) to be tested to any other motherboard where SpinRite will almost certainly agree to operate without trouble.
Otherwise:
Since the trouble is with the motherboard's BIOS and not with SpinRite, there's nothing SpinRite can currently do to circumvent this trouble on a bad motherboard. A future release of SpinRite will stop using the motherboard's BIOS for its bulk data transfers, but that's part of SpinRite's planned development arc and does not help users today.