Supports basic ALU operations: add, subtract, shift left or right 1, increment, decrement, negate, bitwise [and, or, xor, not].
Can use a stored value as first input or use a literal (current output stored on rising edge).
A literal as second input.
Reset button resets first input.
Clock that can be toggled or stepped.
4-bit output along with zero and carry out.
Shift right can be set to extend sign or not
The current operation can be set using the lectern, the pages are labeled.
Buttons and levers are labeled.
The sign extend lever is hidden in the far back of the ALU
The first input must be set either by the clock or the commit button, depending on if you're using the register or literal as input.
The second input is a literal at the right of the machine and does not need to be committed.
The step button will only work if the lamp below it is off to avoid stepping too quickly.