[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