So I had this brilliant idea of using SCSI drives with old 286/386/486 boards which have old BIOSes that can’t handle IDE drives bigger than 500-ish megabytes. The SCSI HBA is the first one I happened to grab, an Adaptec 1542C (good because it has a floppy controller onboard); I got the HBA some time ago for free but sans microcode and BIOS chips, and eventually plugged in EPROMs that I burned myself.
To make it more fun, at the other end of the SCSI cable is an Acard IDE-to-SCSI adapter which has a CF-to-IDE adapter attached to it, and plugged into that is a CF card (or a microdrive). Yes, that actually works… up to a point.
Smaller CF cards are a bit problematic because the Adaptec HBA uses a different geometry than IDE. Remember that SCSI drives have no “physical” geometry and everything is strictly LBA, but the BIOS has to present a logical geometry. For drives smaller than 1 GB, the Adaptec HBA uses 64 heads and 32 sectors per track, which has the nice property that 1 cylinder = 1 MB. But IDE drives essentially never use such logical geometry. For larger drives, the Adaptec HBA uses 255 heads and 63 sectors per track, which happens to match typical IDE large-drive logical geometry. What that means is that larger CF cards should have the same logical geometry when they’re plugged straight into IDE or go via SCSI, and should be accessible and bootable without trouble. Well, I was half right about that.
I first tried this in a 386 board which booted off IDE (CF-to-IDE) and the SCSI (CF-to-IDE-to-SCSI) drive was the second BIOS fixed disk (81h). No problem there, DOS partitions were accessible without problem.
But when I tried booting from any of my bootable CF cards (with PC DOS 2000) attached to SCSI, all I got was
Non-System disk or disk error Replace and press any key when ready
Now, this message comes from the DOS boot sector (or possibly IBMBIO.COM), and not from the MBR. If the boot gets past the MBR, that usually means there is no geometry issue, and I was able to access the disk from booted DOS which corroborates that.
Okay, so I tried smaller (less than 1 GB) and bigger (32 GB) CF cards. No go. Tried FDISK, FORMAT, SYS. None of that made a whit difference, the machine still wouldn’t boot.
In desperation, I completely zapped a random CF card, attached a floppy drive, booted the PC DOS installation disks, and ran the installer. I fully expected that the system still wouldn’t boot from the SCSI-attached drive, but voilà, it booted to DOS just fine! That was a surprise.
And the machine kept happily booting from the SCSI drive until… I removed the floppy drive! At that point, it was back to “Non-System disk or disk error”. What the heck?!
After some experimentation, I found out that the system does not need a floppy drive to be physically attached or even configured in the BIOS in order to boot. But as soon as the floppy controller is completely disabled on the Adaptec 1542C, poof, no more booting.
This admittedly does not make much sense. DOS does not require a floppy drive to be present in order to boot from hard disk. But either the system BIOS or the Adaptec BIOS does not cooperate with the PC DOS 2000 boot sector when there’s no floppy drive. I don’t know why, but I would like to find out.
Pros and Cons
What are the advantages and disadvantages of the CF-to-IDE-to-SCSI solution? Other than the booting difficulty (which is easy to fix with a DIP switch once you know about it), it’s mostly good.
The advantages are:
- Ability to use big drives (up to 8 GB no problem with DOS, much bigger drives with better operating systems such as OS/2)
- Ability to move the CF card to a modern system and easily move data
- SCSI transfer speeds are noticeably faster
- It’s really cool
The transfer speed is worth expanding on. Old systems have no support for IDE DMA or even faster PIO speeds, and ISA IDE adapters don’t handle such fancy features anyway. So the IDE transfer speed will probably not get much past 1 MB/s—which is a lot better than an ancient IDE disk but much worse than what CF cards are capable of.
In my test system (classic 40 MHz Am386) , the CF-to-IDE-to-SCSI solution transfers 2.5 MB/s without any tuning (i.e. using the default 5 MB/s maximum transfer rate of the HBA). The same CF card attached via IDE only transfers 1 MB/s. A 150% speed improvement is nothing to scoff at!
The disadvantages are:
- System takes longer to boot (approx. 7 seconds)
- HBA BIOS takes up potential UMB space
- Default 330h I/O base conflicts with MPU-401
On a 286, UMBs are not much of an issue. On a 386 with a memory manager it is an issue, but fortunately such old systems generally have small ROMs so the extra 16 KB of adapter ROM isn’t a big deal, and it’s well worth the ease of getting past 500 MB drive size. The boot speed can be tuned a bit by not scanning the entire SCSI bus for devices, but if you really want to reboot a lot, IDE is better. The I/O conflict is easy to fix by flipping a DIP switch.
All in all, it actually works pretty well.