My goal is to make a computer you can extend with some peripherals devices. Of course, the modern ones, no vintage cassette tape or light pen. But there is a problem: a lot of them has a SPI or I2C interface.
Of course you can simulate SPI and / or I2C by bit banging on 8255, but it is pretty slow.
Of course you can use a few 74's to make a shift register and a glue logic to send and receive data on the full speed.
You can use a buffer and a driver to bit-banged-but-faster solution.
You can use a coprocessor.
In my case the second processor is an ATMega88. Yes, it has more power than the whole OMEN Alpha, but never mind.
I have used the ATMega as an peripheral. It is connect to the system bus as a regular peripheral device. Chip select makes ATMega interrupt, read data from data bus and let the firmware work. The firmware decide if it's data or controll byte, and make all necessary operations for SPI or TWI bus.
Because there are no synchronization, I have to use simple "halt" mechanism by a simple R-S FF (1/2 of a 7400). Chip select set R-S to HALT (and drive the 8085's READY signal to low). ATMega can take its own time to read data from bus or write them back (regarding the /RD and /WR signals).
When ready, ATmega sets R-S back to READY (and drive READY high). The 8085 CPU now can work...
I will see if it works... It should...