Inside ISA · the ROM and the costumes Vol. 32

Instruction set

One machine. Many dialects. Fifty-one burns.

The hardware stays Tomato. RV32, MIPS, x86, Z80 and the rest are assembly-level maps onto native opcodes — not separate ISAs in copper.

A 512-row opcode ROM is enough for native ALU ops, load and store, branches, shifts, and mul/div without empty decode fanout. v1 is not a twenty-opcode lean map. Unused rows are nops. They are not growth phantoms waiting to be invented in a spreadsheet.

Solidified burns stay. New burns are added when a program needs them. The LUT catalog still knows more functions than the instruction ROM exposes. That was always the plan.

FileRole
tomato.v1.csvSource of truth — burn opcodes and unused NOP slots
opcode-map.csvMnemonic cheat sheet · 32-bit encoding
lut.csvALU primitive catalog · hardware reference
profiles.csvExternal-ISA maps onto Tomato, at assembly level

What the word will not do

No tile VPU. Display is CPU-painted tile RAM with independent VGA scanout. Games stay software. A future rect blitter is optional — not a sprite engine hiding in the opcode space.

Profiles are costumes. They do not add rows to the ROM. They rename native operations so a foreign assembly listing can sit on this datapath.

512

ROM rows


9-bit index

Bits [31:23]. The whole catalog fits in a socketed EEPROM.

51

status = burn


The rest are nop

Do not invent hundreds of growth phantoms. Empty is honest.

66

ISA profiles


Costumes

RV32, MIPS, x86, Z80, and others — maps, not machines.