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.
In previous posts from ASV series I have explained why I got hooked on Atari System V UNIX and what I had to do to get a decent resolution out of Atari TT. Having built the VGA monitor adapter, the next challenge was to replace the internal SCSI hard disk with a flash storage of some sort. I really don’t like spinning hard disks and especial the old ones.
I have mentioned that there are two surviving ASV disk images. The better one was made out of a rather large old, loud and obnoxious Maxtor. I’m definitely not having this monstrosity inside of my beloved Atari!
So how can you replace an old SCSI hard disk with a modern flash device? There actually are several different ways.
If you have the money you can go industrial route, which is a SCSI disk replacement for various machinery and embedded systems produced by ReactiveData. You can buy one of these for a little over $1000 USD. The good part is that they substitute a specific real hard disk model and are exceptionally good in quality of emulation. However, spending a lot of money on my TT and TenoxVGA already, this really wasn’t an option without getting a divorce.
Another approach is to use SCSI to IDE bridge combined with IDE to CF adapter or possibly SCSI to SATA bridge and SATA SSD disk. These are widely used by Atari / Amiga / Mac 68k community. The most popular bridge come from a company called Acard. I actually had one of these at hand, AEC-7220U which I used for TOS/GEM work.
Did it work? As you can guess – of course it didn’t! The initial boot loader errors out unable to read disk capacity.
Atari ST/TT, somewhat similarly to 68k Macs require a hard disk driver, present on the hard disk itself. There are several 3rd party implementations, some of them, like HDDRIVER maintained up to present date. Unfortunately these drivers are TOS specific and obviously don’t work with Atari Unix. The system comes with it’s own hard disk driver which seems to be obsolete and with limited hardware support.
The next step was to research and try out some other SCSI to IDE bridges in hope one would just work. And surprisingly there are several to choose from.
The second on the line was I-O Data R-IDSC21-E/R. No longer produced and supported, however still fairly popular. Usually regarded as the ultimate bridge with most fancy options bells and whistles. It has most jumpers and modes of all tested devices. For instance ATA PIO and DMA modes. Unfortunately this didn’t help at all and same error was observed.
Another device tried was Yamaha v769970. This bridge was conceived to allow use IDE CDROM and Hard Disks with Yamaha samplers. No longer produced and obsolete, it’s somewhat most easy to set up, robust and stable. It’s actually my favorite bridge for day to day use, except for ASV where it just doesn’t work.
More recent kid on the block is an integrated SCSI2IDE + IDE2CF in one device called Aztec Monster. Recently designed and currently produced in Japan (you can buy one on eBay) is a fairly decent choice, which I recommend to every one. I had a lot of luck with these, except for ASV of course…
I also looked in to SCSI to SATA bridges, like this one, but they have additional issues, like need to convert LVD to SE on one end and SATA to IDE to CF on the other. Little bit too complex for what I wanted.
Being out of luck I started researching if it would be possible to build an open source version, which can be easily diagnosed and fixed. Doing so I found out that there in fact is one open source SCSI adapter called SCSI2SD.
I was bit skeptical in the beginning but then I though that being open source it can be debugged and fixed if it needs to be. So I immediately ordered one.
Once it arrived, I plugged it in, applied the image to the card and BAM! It worked! The system booted fully and worked flawlessly!
VMWare stores the configs, and files on the UNIX file system, which you have to edit by hand. You can’t do this in the UI, as VMWare tries to be SCSI only. But if you manually edit the files, you too can enjoy a virtual IDE disk.
You need to enable SSH access to the ESX server, or do this change on the console. Configs live in:
/vmfs/volumes/<storage group name>/<virtual machine>/
So for example, mine is:
First, edit the .vmdk file. You are looking for the line:
So for a test I needed an email server, so I thought I’d setup an Exchange server quickly. Exchange 5.5 runs best on NT 4.0 so I’m going to install it on Qemu 0.14.0. Along the way I ran into a few little gotcha’s so I thought I’d update on how to do this.
qemu.exe -L pc-bios -cpu pentium -hda nt4-server.qcow2 -net nic,model=pcnet -net user -cdrom nt4server.iso -boot d
As you can see on NT 4.0 you now have to set the CPU level. This needs to be done going forward with NT 4.0 as again it’s too old to detect newer CPU’s and gets confused. Also I’d recommend selecting the ‘standard pc’ HAL. Oh sure it may look all nice with a MPS/Uniprocessor, but I’ve found it noticeably slower.
The default cirrus logic driver works at 16bit depths at 800×600 well enough (The hardware mouse pointer doesn’t work so you’ll need to turn on a custom pointer). Another thing is my choice of the AMD PCNet NIC, is that it’s the same that VMWare uses, so you can always run these disks under VMWare if need be (as long as VMWare has IDE disk support, and you convert the disk first!!).
Ok that basically covers an IDE install, but let’s get onto SCSI. Qemu now (it’s been in there for a while..) emulates a SCSI controller, the PCI 53c895a adapter. And I’ve found that you can get it to work with Windows NT 4.0! First you’ll need a driver diskette & BIOS both found at LSI’s webpage. The NT driver is nt896.zip if you’ve gotten the correct one.
Now that I’m going to install exchange, the best practice I’ve found for NT is something like this:
OS DISK 4GB
SWAP DISK 256MB
MAIL STORE 8GB
So that’s a bunch of SCSI disks, right? I guess I could build a stripped set but that’d be kind of crazy… so here is how I’m going to do it:
And if it’s done right, you’ll notice that now the SCSI bios will be initializing as seen below with a bunch of disks…
Once your NT CD starts to boot up, you’ll see a blue screen like this. It’s important that you hit both F5 and F6 over and over to tell the setup program that you want a custom HAL, along with an install time SCSI driver.
And as I did above, I’ll first select the ‘standard pc’ HAL.
Then You can tell it to load the LSI / Symbios scsi driver, and install will roll through as normal. Since this is going to be an Exchange server, I’m also going to make it a PDC on it’s own domain, since Exchange requires DC functionality.
And from there it is a somewhat normal NT install. I did leave out the messaging stuff, because it’s that ancient “Microsoft Mail” stuff, and it’s somewhat crippled at that.
For the fun of it, if you load 256 colors, you’ll wind up with this:
And all the icons will be blank squares. Not terribly useful. Maybe for low displays the regular VGA would be best…. But again with 16bit and custom pointers (much like an old MIPS issue) it will work enough. 1024x768x16million colors at 43Hz (interlaced) works pretty good too!
Next I fired up the disktool, (diskman) and slapped down a bunch of partitions… I let the swap formatted FAT as I don’t care about it’s crash to crash integrity, but the rest can be NTFS. Also from a boot limitation the first disk is only 1GB out of it’s 4… I don’t know if that matters.
Then into the system tool to move the swap to the ‘s’ drive.
I don’t know if the actual setup of Exchange is all that … interesting so I’ll just leave it to your imagination.