The Apple II SCSI card from 1986 was one of the first interface cards to attach a Hard Disk Drive to the Apple II line of computers. A2SCSI is a clone of the last revision (rev.C) of the card with a few enhancements to improve compatibility with modern SCSI drives.
The schematics has been reverse engineered from our original Apple II SCSI card revision C. Some of the schematics documentation is still incomplete as our understanding of the hardware is not complete. We also started disassembling the on-board ROM to help the reverse engineering effort.
The card maps the 5380 registers in the first 8 bytes of the slot I/O range ($C0x0-$C0xF where x=slot#+9). The remaining 8 addresses are used for the card control.
|$C0x0||R||Current SCSI Data Register|
|$C0x0||R||Output Data Register|
|$C0x1||R/W||Initiator Command Register|
|$C0x2||R/W||Mode Select Register|
|$C0x3||R/W||Target Command Register|
|$C0x4||R||SCSI Bus Status|
|$C0x4||W||Select Enable Register|
|$C0x5||R||Bus and Status Register|
|$C0x6||R||Input Data Register|
|$C0x9||R||SCSI Device ID|
|$C0xA||W||Memory Bank Select Register|
|$C0xB||W||Reset 5380 SCSI Chip|
|$C0xD||W||PDMA Mode Enable|
|$C0xE||R||Read DRQ Status through bit 7|
The card is also equipped with 16K of ROM and 8K of RAM. These are mapped in the $C800-$CFFF card memory using a banking scheme. The $C0xA bank register selects the which bank of RAM and ROM are mapped. RAM is always at $C800-$CBFF and ROM is at $CC00-$CFFF. The boot code in the first 256 bytes of ROM bank 0 is also mapped in the IOSEL space ($Cn00-$CnFF).
Small modifications have been made to the original circuit. Termination power is provided to the SCSI bus through D1 and C13. A optional resistor (R14) is added to fix the controller address to 7. The active termination method has been changed from the A2SCSI-A00 to avoid the hard to find UC5606. Now it is implemented using a 2.85V LDO (U18) and two resistor arrays (RP3 and RP4).