So I started to look at the SCSI passthru on Basilisk

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.

SCSI disk files

SCSI disk files

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.

Atari System V UNIX Saga – Part III – SCSI Disk Replacement

(note this is a guest post by Tenox)

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!

Maxtor LXT340SY

Maxtor LXT340SY


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.

acard front

acard front


Did it work? As you can guess – of course it didn’t! The initial boot loader errors out unable to read disk capacity.

Atari SYS V failed to boot

Atari SYS V failed to boot


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!

Atari Unix System V – Boot Sequence from Antoni Sawicki on Vimeo.

Going back to the hardware, there are some gotchas with SCSI2SD. First of all it’s not really SD card but rather a micro-SD. Which is not a big problem, but requires magnifying glass and tweezers to operate. Secondly even though the board looks like standard 3.5″ width, it in fact it is not! So a warning: it doesn’t fit 3.5″ hard disk slot!

photo 1

photo 1


When one side is placed on 3.5″ HDD holes the other leaves a gaping hole. Just doesn’t fit. Apparently you need a special 3D printed bracket to fit it together. Or a double sided tape, I recommend 3M VHB Tape. The upcoming version will feature 2.5″ sized holes, so look for this one.

Other than that SCSI2SD is flawless and it works fantastic. One feature that Mac users will appreciate:

--apple Set the vendor, product ID and revision fields to simulate an
        apple-suppled disk. Provides support for the Apple Drive Setup

In the next article I will write about my first steps in the system post boot and then bringing it to a more or less usable state. Stay tuned!

Using IDE hard disks on VMWare ESXi 5.5

I’m sure this applies to other versions as well.

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:

/vmfs/volumes/datastore1/UnixWare 7.1.1/

First, edit the .vmdk file.  You are looking for the line:

ddb.adapterType = “buslogic”

And you change the buslogic to ide like this:

# Extent description

RW 16777216 VMFS “UnixWare 7.1.1-flat.vmdk”

# The Disk Data Base

ddb.adapterType = “ide”
ddb.geometry.cylinders = “1044”
ddb.geometry.heads = “255”
ddb.geometry.sectors = “63”
ddb.longContentID = “8f535bb60df8d73a86c24853fffffff

The next thing is to alter the vmx file.  By default the hard disk will be on scsi0 and you’ll see something like this:

scsi0.present = “TRUE”
scsi0:0.deviceType = “scsi-hardDisk”
scsi0:0.fileName = “UnixWare 7.1.1.vmdk”
scsi0:0.present = “TRUE”

And what we do is rename the scsi0:0 to ide0:0

ide0:0.present = “TRUE”
ide0:0.deviceType = “disk”
ide0:0.fileName = “UnixWare 7.1.1.vmdk”
scsi0:0.present = “TRUE”

And you should be good to go.  The other (much easier) alternative is to try to use the legacy OS/2 profile as it’ll install an IDE disk by default.

IDE hard disk on VMWare ESX

IDE hard disk on VMWare ESX


You should check out sanbarrow’s guide to more options you can configure in your VMX file.

SCSI CD-ROM support for OS/2 1.3

I was passed this in email, that using the BusLogic SCSI adapter, that OS/2 1.3 can use it’s CD-ROM interface for those of you who want to be able to directly mount ISO images!

The driver is here.

So apparently all you need to do is just add in the BusLogic controller, and copy the BOOTBID.BID to C:\ (don’t rename it).

And there we go!


Apparently, it can even boot from SCSI hard disks. So it’d be a great way to give that SQL 1.0 install access to a bunch of storage.

Installing Windows NT 4.0 on Qemu 0.14.0 with SCSI

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 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:


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:

qemu-img.exe create -f qcow2 scsi0.qcow2 4G
Formatting ‘scsi0.qcow2’, fmt=qcow2 size=4294967296 encryption=off cluster_size=0

qemu-img.exe create -f raw scsi1.qcow2 256M
Formatting ‘scsi1.qcow2’, fmt=raw size=268435456

qemu-img.exe create -f qcow2 scsi2.qcow2 2G
Formatting ‘scsi2.qcow2’, fmt=qcow2 size=2147483648 encryption=off cluster_size=0

qemu-img.exe create -f qcow2 scsi3.qcow2 8G
Formatting ‘scsi3.qcow2’, fmt=qcow2 size=8589934592 encryption=off cluster_size=0

qemu-img.exe create -f raw scsi4.qcow2 128M
Formatting ‘scsi4.qcow2’, fmt=raw size=134217728

Since the swap & log disk are constantly being written to, it’s best to leave them in the ‘raw’ disk format.

Ok now to install. I know it’s a massive command line but this is how I’m going to kick off the install:

qemu.exe -cpu pentium -m 256 -L pc-bios -net nic,model=pcnet
-net user -drive file=scsi0.qcow2,if=scsi,bus=0,unit=0 -drive file=scsi1.qcow2,
if=scsi,bus=0,unit=1 -drive file=scsi2.qcow2,if=scsi,bus=0,unit=2 -drive file=sc
si3.qcow2,if=scsi,bus=0,unit=3 -drive file=scsi4.qcow2,if=scsi,bus=0,unit=4 -opt
ion-rom 8xx_64.rom -fda lsi.vfd -cdrom nt4server.iso -boot d

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…

qemu 0.14.0 scsi bios

qemu 0.14.0 scsi bios

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.

qemu 0.14.0 nt 40 scsi hit f5/f6

qemu 0.14.0 nt 40 scsi hit f5/f6

And as I did above, I’ll first select the ‘standard pc’ HAL.

qemu 0.14.0 nt 40 scsi load Symbios driver

qemu 0.14.0 nt 40 scsi load Symbios driver

Select the  Symbios driver

Select the Symbios driver

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.

Make it a DC

Make it a DC

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:

Windows NT 4.0 with 256 colours

Windows NT 4.0 with 256 colours

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.

qemu 0.14.0 nt 40 partition disks

qemu 0.14.0 nt 40 partition disks

Then into the system tool to move the swap to the ‘s’ drive.

qemu 0.14.0 nt 40 scsi setup swap

qemu 0.14.0 nt 40 scsi setup swap

I don’t know if the actual setup of Exchange is all that … interesting so I’ll just leave it to your imagination.