snipe3687 wrote on 2024-05-24, 20:03:
It’s weird when I run the test And I checked the version sometimes I’ll get 1.02 and sometimes I get 2.01 so something funky either with the test or the DSP chip itself
If you sometimes get the wrong version number, the interface between the ISA bus and the DSP is obviously not working reliably, or (of course) the DSP itself might be bad. Reading the DSP version is an operation that reads the major version first and the minor version after that, so the DSP is going to send a 2, wait for it to be read by the computer and then the DSP will send a 1. There is no way the 1 and 2 can be mixed up on the card by "swapping bytes", as the bytes are produced sequentially by the fixed DSP program. If you get 1.02, it seems like you get a spurious extra 1. This can happen if the CPU sees a false "data ready" indication before the major version byte 02 has been sent, reading the 01 from the previous version request again, and only picking up the major version byte when it tries to read the minor version byte. The management of the data ready flag is performed by U22 (keeps the data ready flags for the CPU and the DSP), U27 (decides when to send a ready flag to the CPU) and U21 (actually forwards the ready flag to the ISA bus driver). U2 is involved in passing the output of U27 to the ISA bus, but if U2 had an issue, you will get worse symptoms than just DSP communication issues, as all components on the cards are accessed through U2.
The Snark Barker uses positive logic to indicate "data ready" (i.e. "high" = "there is data"), furthermore, LS-chips tend to interpret "no one drives the input pin" as high. Failure to output any ready signal may generate a false ready signal.That's why I would suggest to start troubleshooting by checking for bad solder joints (or bent pins if inserted in a socket) at U22, U27 and U21.