Quick help
Syntax
One instruction or directive per line, addresses in decimal TTSS
(track+sector, 00–63 each):
; a full-line or trailing comment 1000 b 2000 ; <location> <opcode-letter> <address> 1005 dw 5 ; <location> dw <signed-decimal> start 1000 ; declares the entry point
Opcodes
| Letter | Name | Semantics |
|---|---|---|
| z | Stop | Halts computation. |
| b | Bring | acc = mem[addr] |
| y | Store address | Replaces mem[addr]'s address-field bits with the accumulator's. |
| r | Return address | Stores (this instruction's address)+2 into mem[addr]'s address field — call/return idiom. |
| i | Input | Shifts one 4-bit code per step into the accumulator, until 8 characters or a stop code. |
| d | Divide | acc = acc / mem[addr], rounded. Overflows outside a magnitude of 1. |
| n | N Multiply | acc = low 31 bits of acc * mem[addr] (magnitudes). Left-shifting idiom. |
| m | M Multiply | acc = top 30 bits of acc * mem[addr] (magnitudes) + XOR sign. Fractional idiom. |
| p | addr's track field (6 bits) is the literal output code — not a memory address. | |
| e | Extract | acc = acc & mem[addr] (bitwise AND mask). |
| u | Unconditional transfer | counter = addr. |
| t | Test | Branches to addr if the accumulator is negative. |
| h | Hold and Store | mem[addr] = acc; acc unaffected. |
| c | Clear and Store | mem[addr] = acc, then acc = 0. |
| a | Add | acc = acc + mem[addr] (signed). Overflows outside [-2^30, 2^30-1]. |
| s | Subtract | acc = acc - mem[addr] (signed). Overflows outside [-2^30, 2^30-1]. |
Drum timing
3700 RPM = 17ms/revolution, 64 sectors/revolution, 265,625 ns/sector. Every memory access (fetch or operand) pays a rotational wait for the drum to bring the right sector under the head; register-only operations are free. This is the one piece of the real machine's behavior the emulator keeps faithful — see the Drum readout above.
Elsewhere on the site
Tips
Keyboard: S step, R run, Esc stop. Click a line in the Listing to toggle a breakpoint. The Speed selector can be changed while a program is running — try Real time to feel the drum at its true pace.
Memory pane: outlines show what the last step fetched, read and wrote; the faint stripe is the current sector, which all 64 read heads sit over at once. The Drum pane's blue band shows how far the drum had to turn while the last instruction waited for its words.
Words are shown in LGP-30 hex, the machine's own digits: f g j k q w stand for 10–15 (why). The switch in the Memory header changes to standard hex everywhere, calculator included.