TMS0800 // Calculator on a Chip

A reverse-engineered walkthrough of the 1974 single-chip calculator circuit — press keys and watch the machine work, digit by digit.

IDLE
run demo
speed 1.0×
TI-2500 style · 1974
TMS0800

or type on your real keyboard · STEP steps the microcode

circuit · reverse-engineered from die photos + patent US3934233
TMS0800 — single-chip calculator · metal-gate PMOS 8 µm · ~5000 transistors · digit-serial BCD CLOCK / OSC RC oscillator ~200 kHz TIMING / CONTROL ÷4 digit clock · ÷10 scan DIGIT SCAN REGISTER 10-stage ring · S1…S9, S0 KEY MATRIX · 10 × 3 scan lines double as display strobes K1 funcs K2 = · C K3 dp PROGRAM ROM 320 × 11-bit words ADDR · 9-bit PC 0x000 INSTRUCTION DECODER 11-bit word: 2b class · 5b op · 4b mask 16 masks · 16 consts single condition bit COND 1 bit 0 SEQUENCER scan · debounce · keys operand & op state KEY ENCODER matrix columns + scan position → 4-bit key code AKCN: scan position = digit REGISTERS · RAM A accumulator B operand 1 · dp marker C scratch · 11 BCD digits AF / BF · 11-bit flags minus = digit 14 dp = digit 2 in B ALU BCD add / sub digit-serial · one digit per digit-clock (~30 kHz) × = repeated addition ÷ = repeated subtraction carry ripples digit → digit 9-SEG DECODER BCD → segments a–g + dp + minus zero suppression latch + shift regs DIGIT DRIVERS 8 digits multiplexed by scan LED segments sink DISPLAY · 8 digits 7-segment LED digit-scan strobes S1…S0 4-bit key code 11-bit instruction control digits · carry carry / borrow / zero display digit segment lines digit strobes ×8 digit clock — signal · ▸ flow · amber = active
registers · RAM (11 BCD digits each)
A acc
B op1
C scr
carry cond minus
AF
BF
instruction · 11-bit word
PC0x005
word10 00001 0001
ALU · AKCN · const 1
microcode trace · executed by the chip
reverse-engineering notes
  • This is an educational reconstruction of the TI TMS0800 family (1973–74), reverse-engineered from die photographs and patent US3934233 by Ken Shirriff / Visual 6502. Addresses, word values and timings are simplified and representative.
  • The whole calculator is one chip: 320 × 11-bit ROM, RAM = 3 × 11-digit BCD registers + two 11-bit flag registers, a digit-serial BCD adder, key scanning and display drivers — ~5000 transistors in 8 µm PMOS.
  • Digit-serial ALU: digits are processed one at a time — the carry ripples from digit to digit each digit-clock (~30 kHz). Watch it happen in the register strips during a demo.
  • No multiply or divide hardware: × is a repeated-addition loop, ÷ a repeated-subtraction loop — why 1970s calculators were slow at them.
  • Instructions are single 11-bit words: 2-bit class, 5-bit opcode, 4-bit digit mask (which digits the operation touches) + folded-in constant. One condition bit carries carry/borrow/equal/zero/key-down.
  • Display conventions: zero suppression (leading zeros off); minus sign = digit value 14 in A; decimal-point position marked by digit value 2 in B.

sources: righto.com (Shirriff) · patent US3934233 · datamath.org · siliconpr0n die