ephraim@wang.UUCP (pri=8 Ephraim Vishniac x76659 ms1459) (06/05/86)
When I boot my MacPlus from an external SCSI drive running System 3.1.1, Finder 5.2, and Preliminary SCSI Helper, I can't seem to initialize 800K floppies. They don't just fail init, the Mac bombs. If I boot off a floppy running the same software, there's no problem. Sound familiar, anyone? On another topic, all the discussion I've seen of the SCSI manager routines suggested to me that they simply poll the NCR chip. But: last night I was tracing out the level one interrupt dispatcher (I was just curious, OK?) and noticed that it started with a RAM patch: movem.l D0-D3/A0-A3,-(SP) bra SomewhereInROM "SomewhereInROM" was the rest of the level one interrupt stuff for the VIA. Just before it was the pre-patch entry into the interrupt routine, which did the same register saving, then went poking around address $580000 where the NCR SCSI chip is located before doing the VIA service. Does the SCSI manager use interrupts? Could it? Will it? For real do-it-yourself junkies, it's much easier to make your own startup ROMs for non-standard storage devices if you've got the 128K ROMs. The old ROM had a "hook" which checked location $F80000 for another ROM and vectored into it if it had the right signature. This hook was so early during startup that it was difficult to make use of it. The new ROMs have at least three hooks: the original hook, another later on that uses $F80080, and a third that checks $F80088. The last one is just before the "boot loop" where the Mac cycles through all drives searching for a bootable volume. So, all your ROM has to do is install/open your disk driver and create a Drive Queue Entry (DQE). Thanks to Steve Jasik and MacNosy for helping me discover this. Ephraim Vishniac decvax!wanginst!wang!ephraim