Ok, so buffering is not quite as straight forward as I had initially anticipated. The problem I have is that the 8 bit SCSI data bus is bi-directional, and is open collector. Referring back to this schematic for the original host adaptor design:
https://www.domesday86.com/wp-content/u ... dapter.gif
With my BeebSCSI implementation, there are 8 pins on the CPLD assigned to the SCSI drive data bus, and logic within the CPLD reads input, writes output (open collector), and drives the bus open collector when idle. I can't find any simple way to buffer this externally.
1. Writing data from CPLD -> SCSI Drive
The original host adaptor uses a pair of 74xx38N open collector NAND gate ICs to both drive and isolate the databus. One input to the NAND gate is one of the eight data bits from 1MHz bus (via some latches), and the other input (common to all 8 data bits) is the SCSI drive I/O status and is used to isolate the bus (or enable it to be driven).
I need to do something similar with my BeebSCSI implementation. Unfortunately, this part seems to be obsolete, but I have found a newer SN74HCS03 that looks to be compatible. The trouble is this part isn't available from JLCPCB, so I'd need to solder the thing on myself. I'm trying to avoid that as much as I can. I guess the alternative would be to to use a more conventional NAND gate (74xx00), and open drain buffer (74xx07), but that's adding extra components that I would rather avoid.
2. Writing data from SCSI Drive -> CPLD
I think this is more straight forward. Here, all I need to do is add a 74xx244 (or 245), and put this in parallel with the devices above. The OE would be driven again by the SCSI drive I/O status (inverse of above). In this case, the individual bits wouldn't need to be open-drain as they're just feeding into the CPLD
One other option I was considering was to separate out the SCSI inputs and SCSI outputs at the CPLD I/O. If I do that, I don't need the NAND gates for part 1 above. That would be done in the CPLD. All I would need is a more simple open drain buffer which is available from JLCPCB.
This all seems to be a bit complicated, so I just want to check that I'm not over thinking things here.