February 1st Progress Report
MUCH has transpired since my previous, January 3rd, announcement that work on SpinRite v6.1 had commenced.
To plan for what SpinRite v6.1 would, and would not, be, I needed to know how I was going to solve SpinRite's imperative need to boot on UEFI systems that no longer offer a traditional BIOS fall-back. So, while beginning to work on SpinRite, I also searched for any means to add BIOS support to a system that doesn't currently have any. The firmware which boots a system is intimately tied to its hardware. That's why systems need firmware in the first place. This means that it's not possible to simply run any BIOS on whatever hardware happens to be present. So I was hoping that someone somewhere might have created a UEFI-to-BIOS translation layer which would allow for BIOS calls to be translated into their UEFI equivalent. That would allow SpinRite to load such a translation layer, boot BIOS-dependent DOS, and then reuse everything that SpinRite already is on any UEFI system. But, unfortunately, nothing like that exists and no one has ever created such a thing because the need for something like that only exists due to SpinRite's unique and continuing dependence upon the legacy of 16-bit DOS.
This provided some needed clarity. The only way to move SpinRite forward would be to finally, after 35 years, end its dependence upon the BIOS and DOS. So, I began looking around for the optimal environment to host SpinRite's future.
I'll spare you the blow-by-blow. But, for what it's worth, everything was looked at. In the end I have settled upon an extremely lightweight real time operating system for embedded applications called “
On Time RTOS32.” It is a minimal OS that allows executable code to be written, tested and debugged under Windows (my preferred development environment) then packaged for operation under its own loader and environment. And, of course, it boots from either a BIOS or UEFI firmware.
Among other things, it means that SpinRite will finally need to be ported from DOS's 16-bit “segmented Real Mode” memory model environment to a 32-bit flat memory model. But this is the only way for SpinRite to grow. As a result of this research and planning, SpinRite v6.1 will be the last 16-bit BIOS/DOS-only SpinRite.
Once v6.1 is launched, I will immediately begin the process of converting SpinRite from its 16-bit segmented-memory real mode form into a flat 32-bit memory model. This will create the first 32/64-bit SpinRite v7.0 capable of booting under either UEFI or BIOS firmware. And for the sake of speed, I plan to initially leave SpinRite's old and creaky user interface as is. v7.0 will offer the same advanced support as v6.1 but with UEFI. So it will run ATA/IDE and AHCI controllers at their maximum possible speed. But since there's no BIOS to fall back on, v7.0 will not initially be able to operate upon USB or NVMe devices at all. So v6.1 will remain the only solution for those until v7.1 and v7.2. After v7.0 is released, my plan would be to immediately add support for USB, creating v7.1 (and, of course, no charge for those who have upgraded to v7.0). And once v7.1 is released I would then immediately work to add NVMe support, creating v7.2.
At this point we'll have text-mode old-looking single-tasking SpinRite v7.2 running ALL current mass storage controller interfaces at their maximum possible performance. And all of that code will be reusable by SpinRite v8.x.
The plan for v8 is just a rough sketch at this point. But it will be a move to a mouse and GUI interface, the ability to simultaneously run on any or all of a system's drives, eventual file system awareness, structure-driven data recovery, and file-based recovery and who knows what else.
As always, this is all subject to revision and refinement. But it's where we are as we start into February and it feels
very right to me. It places the most functionality into SpinRite user's hands as quickly as possible, supports SpinRite's quickest migration from BIOS/DOS/16-bits -to- UEFI/BIOS 32/64 bits, while providing a clear and seamless path forward into SpinRite's future.