Program: — Status: — Steps: 0 Drum: 0 ms

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

LetterNameSemantics
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 Print 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.

Listing click gutter to toggle breakpoint
Registers
idle
Drum
Memory fetch read write current sector