HOWTO making a non-bootable Future Domain TMC850MEX (or similar) bootable
-------------------------------------------------------------------------

Rationale:

Mass storage on an XT-class machine can be a pain. If they were equipped with a hard disk, it was inevitably an ST-506 MFM or RLL drive, most of which have long since died and/or been disposed of. Regular IDE/ATA is an extension of the 16b bus of an AT; an 8-bit version 'XTA' existed but was incompatible with IDE and exceedingly rare even in the day. Even rarer were actual 8b IDE controllers (using two cycles to fill the 16b bus). The homebrew community has recreated such things with the Vingage Computer's XTIDE and its many derivatives. But if you want to use original hardware, IDE is not an option.

That leaves SCSI. SCSI is gloriously backwards compatible, meaning newer drives can run on old 8-bit controllers, so long as they support SE (Single Ended) operation. And 8-bit SCSI adapters are if not common at least readily available.

Three challenges:
1) most 8-bit SCSI adapters are not bootable, and those few bootable cards tend to command a frightening price.
2) older SCSI adapters and BIOS rarely support large drives, and with 1980s vintage adapters, 'large' can mean anything over a couple of hundreds of MB.
3) most SCSI BIOS supporting larger disks are compiled for 386 and later and will not run on an XT.

This Howto explains how to take a relatively easily found non-bootable SCSI adapter, the Future Domain TMC850MEX and make it bootable and support large disks in an XT. Most of the latter is thanks to the Future Domain as their support for large hard disks overlapped with XT support - their SCSI BIOS 8.2 uniquely does both.

Note that I have detected 18GB drives with this setup but - due to OS limitations - can only personally vouch for 767MB (666MB formatted) drives working correctly. I have however not encountered any drives *not* working. I have read reports that at least 6.4GB works.

Similar principles can apply to other SCSI adapters, but exact parts needed will vary and the XT-capable, large-disk supporting BIOS used here is specific to adapters with Future Domain 950 SCSI controllers. But by all means take this as inspiration if you have other hardware.

-------------------------------------------------------------------------

Prerequisites:

Hardware
- a working Future Domain TMC-850MEX adapter
- one SMD SOIC-20 74LS244 or equivalent (such as 74ALS244AWM)
- one 2mm 1uF SMD ceramic multilayer capacitor
- a 28-pin DIL socket
- a 2764 8kx8 DIL EPROM or read compatible (such as the Atmel AT28C64B EEPROM I used)

Tools
- a good soldering iron & solder for SMD and through-hole
- a means of removing solder (i.e. solder sucker)
- a way to flash the E(E)PROM, such as a TL-866 flasher

Software
- Future Domain TMC-950 SCSI BIOS v8.2 -> Future_Domain_TMC-950_BIOS_8_2.BIN
- Future Domain PowerSCSI version 4.1 -> PWRSCSI4.EXE (self-extracting archive)
-- I personally prefer extracting the files from the archive using 7Zip or similar on a modern system and transfer the already extracted files to the vintage system.

-------------------------------------------------------------------------

Soldering:

- remove old solder from the 28 holes for the BIOS socket U2 (also labeled 2764)
- solder the 1uF SMD cap to position C2, immediately above the socket.
- solder the 74LS244 chip to position U4. Note the correct orientation as indicated on the card silkscreen, the notch should face left, away from the slot plate.
- solder the 28p DIL socket into position U2. Here too note orientation, this notch should also face left, away from the slot plate.

-------------------------------------------------------------------------

BIOS:

- flash the Future_Domain_TMC-950_BIOS_8_2.BIN file to the 8kx8 E(E)PROM.
- insert the flashed ROM into the socket, ensuring correct orientation with notch to left, away from slot plate

-------------------------------------------------------------------------

Testing:

Insert the card into a PC with ISA slot. Boot the PC. After system BIOS has run POST and befor your OS starts, you should get a message stating:

"
Future Domain 950 SCSI ROM BIOS v8.2
(C) 1993 FUTURE DOMAIN CORP
"

It should then start scanning for drives and reporting SCSI ID, LUN and device name of whatever it finds.

If there is a hard disk at ID0 with a bootable partition, and no other bootable disks in the system, it should try to boot off it. If there are other bootable disks, booting sequence/behaviour will depend on system BIOS settings. So to test this, disable/disconnect other bootable devices.

Assuming the BIOS initializes, finds drives present and boots off anything that should be bootable: congratulations, it works!

-------------------------------------------------------------------------

Software:

No additional software is needed if you use the SCSI BIOS to boot from hard drive, which is also the intended purpose of this Howto. Even if you decide to boot from a different drive, so long as the SCSI BIOS has run, the drives will be available.

If you want to do more SCSI stuff, the PowerSCSI software has everthing you need for DOS and Windows 3.x, with Windows 95 supporting the adapter out-of-the-box.

Windows 3.x is out of scope here (won't run on an XT), but the most relevant DOS drivers:

- if you don't want to use the BIOS chip, you need to first load drivers for the card into CONFIG.SYS, DCAM950.EXE. Syntax: base address of the card preceded by a slash, followed by IRQ without a slash. You then need to load the BIOS with FDBIOS.SYS without parameters, giving for example:

"
DEVICE=DCAM950.EXE /CA00 5
DEVICE=FDBIOS.SYS
"

This will trigger the same detection routine that the dedicated BIOS performs.

- if you want to use devices that require an ASPI interface, you need to load the ASPI driver, ASPIFCAM.SYS (no parameters needed), so:

"
DEVICE=ASPIFCAM.SYS
"

You then can load the driver depending on ASPI, such as ASPICD.SYS (not included in the software package).

- for CDRom support, Future Domain supplies a standalone driver that does not depend on ASPI, FDCD.SYS. It has the same syntax as generic IDE/ATAPI CDRom drivers, so only needs an arbitrary driver name (to be used by MSCDEX.EXE or similar in AUTOEXEC.BAT) preceded by /D:, so:

"
DEVICE=FDCD.SYS /D:BANANA01
"

And yes, this works on an XT as well.


Finally the DOSUTILS directory contains the diagnostic program Future Domain SCSI Device Analyzer, FDSDA.EXE. This lets you confirm the card is working correctly and exactly which devices it detects, regardless of any drivers you may have been trying to install.

See README.TXT and SETUP.TXT for official Future Domain info. I would recommend manual configuration rather than running SETUP.EXE as described above, particularly on older, more CPU and memory constrained systems.

-------------------------------------------------------------------------

Troubleshooting:

SCSI is very flexible and powerful but that means a lot can go wrong. There are whole guides on the topic and I can't do more than scratch the surface here. This is XT era and nothing to do with resource allocation is Plug & Play. However a few general pointers:

The card doesn't show up at boot, or system hangs with card present
- check that the card is firmly insterted into an ISA slot.
- check if EEPROM is installed and oriented correcly. Check solder around the 74LS244 chip - all pins should be firmly connected to PCB and no solder bridges may short-circuit adjacent pins.
- the card requires a free IRQ (3 or 5) and memory range. There may be a conflict.

The SCSI BIOS does initialize, but it does not find any devices
- check the cable isn't damaged and is securely connected to card and devices.
- the SCSI bus needs to be terminated at both ends. The adapter terminates its end, check that there is a terminator installed at the other end (or the last device has termination jumper set).
- there may be a SCSI ID conflict. The Future Domain controller is hard-coded to ID 7; other devices need to be configured to unique IDs between 0 and 6.
- devices that are connected to the SCSI bus but are not powered on may interfere with detection and operation. Ensure any devices connected are also powered.

SCSI BIOS initializes, disks are detected, but drives cannot be used (fully) or other problems occur
- ensure the drive actually works. If in doubt, install in more modern system and run diagnostics.
- old operating systems have very small partition size limits, as low as 16MB (DOS 2.x) or 32MB (DOS 3.3). If using significantly larger drives,  be sure to choose an OS that supports the drive size.
- drives partitioned on newer operating systems may not show up correctly on older ones, even if partitions are small enough to be supported. Ideally, partition the drive with the same OS as will be installed on it.
- freezes of multiple seconds to calculate free space (eg. after a DIR command) are normal on XT-class systems with large drives.

-------------------------------------------------------------------------

Author:

John Blake / dionb 2024

Contact via personal message on vogons.org (dionb) or gathering.tweakers.net (dion_b) forums

This work is licensed under CC BY-SA 4.0