STEPPER The launchpad
STEP 1 · WRITE AND RUN

Assemble it against the real gates.

The assembler below is the same one the build uses, reading its opcode numbers out of the netlist rather than keeping a second copy, so it cannot assemble an instruction the processor does not have.

Press assemble and the program is encoded, checked for reachability and loaded into a live machine. What you see running is the gate array, not a preview of it.

Program 0 words
Running on the die CYCLE 0
Cycle0
PC0x000
Out0
Flags··
IN port · your byte 0 to 255 · what the program reads with in
Analysis Before you spend anything
Assembled ROM
op 5rd 4 rs 4imm 12 25 bits per word, to scale
Register file 16 × 8 bits
A program that halts is a chip that stops. Nothing can restart it except its owner, and a chip that has stopped earns nobody anything. That is not a bug to be fixed later: it is the reason chip #1 runs a loop with no hlt in it. The analysis panel says which kind yours is before the question costs you money.
Every instruction Open all 32 · click one to insert it

Every instruction the ST-8 can execute, in the form the assembler expects. There is no macro layer and no pseudo-instruction: what you write is one 25-bit word. Click a row to drop it into the editor at the cursor.

Three things worth knowing before you write. A ld costs two cycles by construction: the address latches on one edge and the byte comes back on the next, exactly as it does in the contract. cmp and tst are a sub and an and that throw the result away and keep only the flags, which is how you compare and how you test a bit without spending a register. And jmpr takes its address from a register, so a jump table is a handful of ldis and one branch.
Nothing here has touched a chain. Everything above ran in this tab against the netlist the contract walks. When the program does what you meant, take it to the launchpad and it will be written into a chip's ROM at construction, where no function can change it again. Launch it.