That helps. I figured out that the Atom code was not using the SPI hardware of the uP (on the PIC, anyway), the BASIC interpreter is bit-banging the interface.
I just finished writing my own bit-banging code in C for a PIC processor. I haven't tried it yet (I'll put a 'scope on it tonight), but the reference you supplied (thanks!) seems to verify what I worked out for myself. Next week I should be able to try it with a Lynx DoubleShock!
If the interface is bit-banged as opposed to using a uP hardware interface (SPI), then the speed is set by how fast the code can run. The hardware implementations I've used always require the user to set up a clock for the SPI, as well as several other parameters. I might have to widen the clock pulse width. Good to do anyway; makes it easier to see on a 'scope!
This may help.http://sophiateam.undrgnd.free.fr/psx/index.html
I'm not sure about the clock rate, and I don't have much information beyond what's in the Atom programs for the robots.
Jim Frye, the Robot Guy