The reference model for this machine — its registers, its buses, its two instruction formats and its example program — comes from Princípio de Funcionamento de um Microprocessador, by Prof. Filippo Valiante Filho (prof.valiante.info), used with his permission. The text here is our own.
What we took
The shape of the machine, and the order in which it
is worth meeting. An 8-bit accumulator processor with a program
counter, an instruction register, an address latch and a data latch,
an accumulator and a temporary, an H/L pair holding a 16-bit address
in two 8-bit halves, a stack pointer that is declared and wired to
nothing, and a status register. One memory, with the program at
0000 and the data at 2000. One 16-line
address bus and one 8-line data bus.
The two instruction formats: opcode plus value in
two bytes, opcode plus high byte plus low byte in three. The three
instructions LOAD, ADD and
STORE, with the opcodes 86,
8B and B7 — deliberately invented numbers,
because the machine is generic in the literal sense. The example
program that adds 0A, 05 and
12 and stores the result at 2000. The list
of cycle phases, and the timing table that shows one program as one
page of instants.
What we added
Three instructions the deck does not have —
LOADM, JMP and JZ — because
with three instructions you cannot write a loop, and a machine that
cannot loop is a machine you can only watch. Their opcodes are as
arbitrary as the originals, and picked only so as not to collide.
And depth. The deck draws the ALU as two boxes and stops, because a slide does not open; here the same ALU opens into an adder, into one bit of it, into the XOR, into the NAND, into the transistors and the supply rail — nine levels from the system down. That is the part of the model that only exists because it runs.
What is ours, and why it matters
Every word of prose on this site. Permission to use a model is not permission to reuse a lecturer’s sentences: transcribing his text would be plagiarism with a licence attached. So the articles were written from scratch, and every technical claim in them stands on its own — traced to a primary source, or to the model in the lab, which you can run and disagree with.
The one place where his document is quoted as a document is the timing table, which we hold as an oracle: our machine is run against his table cell by cell, eleven rows, in a test that fails if we drift. Using someone else’s table that way is the strongest form of credit we know — it means his page, and not our opinion, decides when we are wrong.