To the programmer, the Alto's instruction set is the same as the 16-bit Data General Nova minicomputer, with the addition of a few crazy instructions such as "copy character bitmap from font file to screen".
The Alto's CPU is built from a whole pile of TTL chips on three boards. The Alto's arithmetic-logic unit, like many computers of that era, uses 74181 ALU chips. The CPU runs a crazy multitasking microcode, with one of the tasks emulating the Nova's instruction set. The hardware manual refers to the "microprocessor", meaning the microcode processor, not a microprocessor chip since microprocessors as such were in their infancy at the time.
There's a picture of the Alto's ALU board in one of my earlier articles [1]. You can see the individual CPU registers, as they are made out of multiple latch chips. For all the details of the Alto's CPU, see the hardware manual [2].
Just an addition, microcoded processors are conceptually very simple. One can start with considering the 74181 which has four lines to control which operation is performed with the two 4 bit inputs. So each microcode word has four bits to control the ALU. A few bits to select which words out of register file is presented to the inputs of the ALU, etc.
So conceptually a machine like that Alto is actually something you can grasp without a lot of pain. Very much unlike the early 8 bit processors like the 8080, Z80, 6502 where they used lots of ticks to keep the transistor count down.
> So conceptually a machine like that Alto is actually something you can grasp without a lot of pain.
Have you actually looked at the Alto's microcode? It's brain-explodingly bizarre. The first thing is it has 16 tasks (yes, in the microcode) and what an instruction does depends on what task is running. Second, every micro-instruction includes a computed goto, where the hardware can OR bits into the address. And because this is task-dependent, you can't figure out the control flow - maybe this instruction will proceed linearly, or maybe it will branch 4 ways depending on the status of the Ethernet board. Next, the circuitry uses PROMs in various places. You say the microcode has four bits tied to the 74181, but no, the four bits go into a mystery PROM which generates entirely different bits that go to the 74181. And then there's the constant PROM holding all the constant values used by the microcode. And the processor bus has the property that multiple sources can write the bus at the same time, with the values ANDed together. Not to mention the ALU shifter output is modified by a microcode function literally called MAGIC. And I'm just getting started here...
My point is that even by microcode standards, Alto microcode is bizarre and painful. And if you disagree, I have some microcode that needs explaining - MADTEST (Microcode Alto Diagnostic Test) fails on our Alto and nobody understands what it is doing.
This took place way before that technology existed. The CPU (ALU + Control Unit) was built from individual chips.
The Alto dates from 1973, and Intel's 4004 microprocessor dates from a year or two before (and was used to run a calculator, not a personal networked workstation)