First post, by mkarcher
The Adaptec 274x and 284x SCSI controller cards never got a BIOS update to support (booting from) drives bigger than 8GB. This is in contrast to the 1542CF (an ISA card!), which did receive a BIOS update implementing the Phoenix Enhanced Disk Drive (EDD) Specification (which is endorsed/supported by Microsoft). If the SCSI controller supports the EDD specification, the Windows editions that support FAT32 and LBA addressing can make use of the whole drive (i.e. some late Windows 95 versions, Windows 98 and later).
I set out to fix this problem and developed a patch to implement at least basic support for the Phoenix EDD on Adaptec controllers based on the AIC-7770 SCSI controller. It turns out that the BIOS contains sufficient amounts of dead code (in case of the 2742W, Version 2.11) or unused space (in case of the 2842VL) to add the extra functionality. The BIOSes are so similar to each other, that a common patch is possible, you just need to adjust a couple of offsets.
Furthermore, the ASPI driver contains a (faster) Int 13 implementation. In case of the EISA/VL controllers, you use ASPI7DOS.SYS, which also is too old to support the EDD specification. In case of the ASPI driver, a happy accident allowed to easily add the EDD implementation: Instead of space for 8 data structures about BIOS supported HDD drives, Adpatec reserved space of 88 data structures. This causes a hole of 880 Bytes in the driver for free use.
I patched the latest BIOS of the 2742W (Version 2.11, contained in a OTP chip on Disruptor's controller) and the 2842VL (Version 1.01, came with the card, also available for download at Microsemi). Furthermore I patched ASPI7DOS.SYS. Preliminary tests (basically booting the command prompt of Windows 98, and runnig a disk test in speedsys) show that implementations work. I offer my patches under the very permissive BSD license on GitHub, see https://github.com/karcherm/scsi_edd. I do not have patched binaries on that page, as distributing modified versions (derived works) of proprietary software is something I don't want to get into - especially as Adaptec's successor Microsemi is still an active company today. Instead, the releases on that repository contain ".OBJ" files, which can be applied as patches using my project omfpatch, see https://github.com/karcherm/omfpatch.
I did something similar to the mainboard SDMS BIOS some time ago, see https://github.com/karcherm/sdms_8g, which I am likely going to merge into the scsi_edd repository some day.