Eudimorphodon
Veteran Member
Now I'm thinking that the SSC is so devilishly simple already, there's probably not going to be a workaround that's any easier than just making it a full clone with the switches and all. Could leave out the jumper block but that might be about it.
for a low parts-count version, you can modify the firmware and be slightly incompatible - ooorrrrr I think one could put the switch settings in a couple unused bytes in the EEPROM, and there might be just enough free pins on the GAL to put in the select logic for it. (you also have to make sure to merge the CTS bit into the SW2 byte)
Just took a quick look at the schematics for the card; it looks like you have two unused outputs and one input on the GAL, so it seems like adding the switches should be pretty trivial. You could either do it like the original did, with two separate hex buffers (this would let you eliminate the CTS->D0 logic from the GAL) or... was pondering if you could be clever/evil and implement it *without* the buffers in front of the switches. Here's my harebrained idea:
You already have the '245 buffering the slot, so if we can control the switch banks another way we don't need another buffer. So... to provide "enable-able" switch banks:
1: Put weak pull-up resistors on D0-7
2. Arrange your two banks of six switches (*only 5 on one bank actually connect to the data lines) so each switch can connect between the apropos data line and a "common" for each switch bank.
3: Connect those two "commons" to the unused GAL outputs. These are now the "enable" lines for the switches.
4: It looks like you'll need to connect A0 to the GAL's last unused input as well, so you can distinguish between the two switch banks.
5: Program the GAL so the switch enable lines change between tri-state when unselected and "0" when the switch address is selected. This will cause the GAL to pull down the data lines for any switch in the closed position when active.
6: You leave the CTS wiring as-is.
The only thing I don't really like about this is you will be asking the GAL to pull down potentially up to six data lines at once. I think it should be fine if you use light enough pull-ups, but if you were worried you could put an open-collector inverter like a 74LS05 between the GAL and the switches to give it the extra oomph...
(Hrm. Looking at the old GAL22v10 datasheet, if I'm reading it correctly it's rated to pull down as much as 16ma, which should equal a pull-up of 312 ohm at 5v? That should be fine, then; 10K pull-ups will probably work and the the load against the GAL will be trivial.)
FWIW, this idea is kind of stolen from how the keyboard scanning works in some old home computers, like the TRS-80 or PET.