Here are the glowing pickle instructions (via Making Light). This had us doubled over in laughter and nearly “bladder impaired” in one of the labs in Newton. Another great reason not to give software engineers access to soldering irons and wall current.
Come to think of it, the divide between hardware guys and software guys is an interesting topic.
I was writing drivers for a new consumer computer system once, and the fellow doing the hard disk interface was absolutely incapable of (A) writing documentation, or (B) explaining in consistent terms what registers were and what bits did what, and when.
“Let’s get this straight. You start the I/O by writing the transfer count minus one to the CNT register.”
“And you get an interrupt when the transfer is done, or you check the DONE bit of STAT if you’re polling.”
“And if there’s an error?”
“Well, ERR is set in STAT, and you check the number of bytes transferred in CNT.”
“Number of bytes minus one?”
“No, the number of bytes.”
“Um, what if no bytes were read?”
“It’s the number of bytes remaining.”
“Not minus one?”
(digs through schematics for a while). “Um, wait, you write the number of bytes.”
“To CNT. Not minus one.”
“No, to OUTCNT. But first you have to clear DONE.”
“I thought that was a read-only register?”
(flip flip flip). “You’re right. Well, look, just use my sample code here.”
“Er, that code is in FORTH.” [and it was]
“What are you writing your driver in?”
“C, like the rest of the system.”
“Why aren’t you guys using FORTH?”
(Young and all fired-up, I leave the room, find a good spot between studs and nearly make a hole all the way through the plaster board. It sucks when you hit a stud, by the way).
Software engineers are from Mars. Hardware engineers are from Planet Gonzo.
“To save fifty gates, we made your life as a driver writer a living hell.”