The CADR microprocessor is a general purpose processor designed for convenient emulation of complex order codes, particularly those involving stacks and pointer manipulation. It is the central processor in the LISP machine project, where it interprets the bit-efficient 16-bit order code produced by the LISP machine compiler. (The terms “LISP machine” and “CADR machine” are sometimes confused. In this document, the CADR machine is a particular design of microprocessor, while the LISP machine is the CADR machine plus the microcode which interprets the LISP machine order code.)
I’ll admit I have no idea what anything in this long, technical description means, but I’m pretty sure this is right up many readers’ alleys.
I’d like to make in an FPGA a Lisp Machine and/or a Xerox Alto. Some day.
Now that emulators are available, and restored software, it could be doable “relatively” easily.
This is not a microprocessor as in a processor on a single chip. It’s a board that is provided with microcode and the user created the instruction set, usually intended to be LISP order code, whatever that is. It is a historical device and was the processor used in the early Lisp Machines. It’s like a half way house between a conventional microprocessor that ships with an instruction set and an FPGA where you have to specify the hardware before you get to write microcode. Not sure if there is anything like that out there today.
Downloadable microcode was not unusual at that time. It was done on IBM minis, on the DataGeneral Eclipse (from the book…), on the Xerox fabled workstations.
At that time, microcoded “CISC” meant really complex operations, such as a memcopy or convert to decimal. And different microcodes were used for different environments (Lisp, Smalltalk)
Makes sense. I actually wrote microcode on a Concurrent System 3260 back in the 80s. It was very powerful in that you could execute loops in a single (long) line of code, but also highly cumbersome. I think their idea was that the system could be configured to run other instruction sets. Challenge is that the programming model (register configurations) would need to be the same as well. The 3200 series all had 8 sets of 8 registers so maybe that helped.