NitrOS-9 boot module for IDE does not do DeBlocking?

Well after some playing with putting the boot track into ROM for the ide devices like the SuperIDE and Glenside IDE boards I found out something I wasn’t expecting. The version of the BOOT module for the IDE controllers does not support DeBlocking.

Now you may be asking what is deblocking? Well here is a good PDF of what DeBlocking is.

So what does this mean for booting off of a IDE hard drive or other IDE mass storage device that is seen as a hard drive. Well that means as it stands now that the Boot module IDE version will only work if booting NitrOS-9 from the RGBDOS/HDBDOS virtual drive space. That means you will not be able to store your OS9Boot file on the native NitrOS-9 volume.

So now we need a way to modify the boot_ide.asm source file to include options to do DeBlocking. Well after talking to William Astle and Brett Gordon about ways of doing easy divide by 2 in assembler. Some new code was born.

So now came the point for some testing. This was going to be tricky as I don’t have a working monitor for my CoCo3 to test this said code on it. So I did the next best thing. I decided to use VCC, which is a Color Computer 3 emulator for windows, and used the FD502 floppy module to load a external ROM image of my boot track rom. Now I then mounted a backup copy of my CompactFlash card, that is used on my SuperIDE, into the IDE.DLL module. I then did the hard reset option in VCC to boot via the ROM image I had mounted. Mostly worked. So after a few modifications to the boot_ide.asm source file and a few more tests on VCC had a working boot module that could boot off of the native NitrOS-9 volume on a IDE hard drive or like device on the IDE controller.

So now that part of the project is done and working 😀 Plus this change has been added into the NitrOS-9 repo as well. The only thing is to keep compatibility with the way HDBDOS works the source file had to be made so two versions of the boot module could be made. So that was done and the makefile’s were updated.