GARTHWILSON wrote:
The article is mostly related to what information is transferred. But for the hardware, remember we have our 65SIB (6502.org Serial Interface Bus), which is intended to be used as an external bus like GPIB but accommodating SPI, Microwire, dumb shift registers, and similar interfaces, very flexible, hobbyist-friendly, allowing (but not requiring) plenty of intelligence and autoconfiguration if desired. Samuel Falvo was going to do a similar thing for fewer wires, which would require more address decoding logic or intelligence; but I don't think he ever did it. Note that the 65SIB has an /IRQ line, so that a protocol could specify using that to alert the host that there is some device that has a critical error.
Also note that some SPI devices report error conditions by the value returns on a host byte out cycle, such as giving a function token or a segment address, where a 0 back on all bits is all clear, and a 1 back on any bit is an error condition. Typically that is an error state, so if the error happens before sending bit 5, the MISO byte is %00000111, but in any event, if the SPI_TRX return accepts the MOSI byte in A and returns the MISO byte in A, and loading the MISO byte is the last action before RTS, then the Z flag returning from those actions will indicate whether there has been an error return, and if the Z flag is considered too easily over-written, returning an error state in the C flag would only add 4-5 clocks to SPI_TRX.