[Coco] A hint for NitrOS-9, MPI, and "hard drive" PAK

Robert Gault robert.gault at att.net
Thu Dec 19 10:10:21 EST 2013


Many years ago I wrote a Basic09 utility to graphically display a floppy drive's 
RPM. Just recently I was booting NitrOS-9 using Roger Taylor's Drive Pak and my 
rpm program crashed NitrOS-9. This is the same code that works when booting 
NitrOS-9 from my scsi hard drive.
Let's make it very clear that the problem was NOT Roger's Drive PAK. Well this 
bug drove me crazy for about a week. Finally I found out what was wrong and I 
expect that any user of a "drive" PAK regardless of make is likely to run into 
the same bug.

My Coco system is a Coco3, MPI, two scsi Hard drives, DistoSCII in slot4, hard 
drive interface in slot3, RS-232 PAK in slot2, and a Drive Pak in slot1. 
Recently I've had the slot selector set to #1 and have been booting NitrOS-9 
from the Drive PAK.
Well when I booted from the hard drive, the MPI selector was set to slot4 which 
made the floppy controller active. When booting from the Drive PAK with the 
selector in slot1, the floppies had not yet been used.
Hmmm, my program POKEs the floppy controller but if that has not been 
initialized either by hardware or software ....

Well adding a single line to the Basic09 program let the program work correctly 
regardless of where the MPI selector was set during the boot process:
  SHELL "iniz /d0"

This is not something you would expect to be required, and I never needed it 
when booting from the scsi hard drives even though both kernel and OS9Boot were 
on the hard drive and not a floppy. I still don't understand why the above line 
is needed as OS-9 does not mess with the MPI unless a driver requires it.
Still with the recent interest in ROM and Drive PAKs, if you have unexpected 
crashes with previously working programs, keep the above in mind.

Robert



More information about the Coco mailing list