And personally I’ve never seen the appeal for such things, but apparently for the world of emulation accessing physical media is a big deal. Of course what I didn’t think about was rescuing old machines by re-installing the OS under emulation, or copy protection.
The first thing I looked for was a GPL project that has SCSI disk support and isn’t too complicated. The Previous project sure fits that bill, scsi.c is not even a thousand likes, and even better it works!
The only two major hurdles I ran into is that the Mac is sending a page request of 0x30 which as far as I can find is not listed anywhere else. I ended up just making one up as a reply to see if it mattered.
The other is that it’s scatter/gather based, so when it’s going to read or write several contiguous sectors, it’ll blast down up to 256kb worth of data to be read or written to. The ability to know that a large operation was in progress was already in Previous, it just wasn’t set to loop. I guess the NeXT isn’t as aggressive, or it’s SG operations are better contained in the SCSI controller.
The final hurdle was in the Apple partitioning software. I’ve been down this road a long while ago. But the disktools from A/UX 3.0.1 doesn’t care about vendors and will thankfully format anything.
So not as exciting as talking to a real SCSI disk, but it’s safer. I suspect that accessing a raw NT device name ought to work I can test that on VMWare, but the trick is finding something that can read HFS and prove it’s a good exercise.
Another ‘feature’ I put back in is the ability to disable the math coprocessor on the 68040. It feels more stable to rely on Apple’s old emulation code, but maybe that’s me.
As always files for this are on sourceforge.