Signalworks is a free puzzle game in the tradition of Zachtronics titles like
TIS-100 and EXAPUNKS. Each level hands you a stream of numbers on an
IN port and a target sequence for the OUT port. You
write a short program in a single-accumulator assembly language to turn one into
the other, run it a cycle at a time, and then try to solve the same puzzle in
fewer cycles.
To play, pick a level, type your program in the editor, and press Run
to watch the signal travel across the board, or Step to advance one
instruction at a time. The registers panel shows ACC, the program
counter, the cycle count, and both ports as they change. When your output matches
the expected sequence the level passes and records your cycle count. Every best
score is saved in your browser, and the share button copies a link that challenges
a friend to beat it.
The instruction set is deliberately small: MOV copies a value,
ADD and SUB do arithmetic on the accumulator,
JMP, JEZ, and JNZ handle looping and
branching, and NOP does nothing. Labels mark jump targets. The
program counter wraps back to the top after the last instruction, so a one-line
loop keeps running until the input runs out.
localStorage. The share button builds a link that encodes the level
and score, so anyone who opens it sees the target to beat. No data leaves your
machine.