512
ROM rows
9-bit index
Bits [31:23]. The whole catalog fits in a socketed EEPROM.
Inside ISA · the ROM and the costumes Vol. 32
Instruction set
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.
| File | Role |
|---|---|
| tomato.v1.csv | Source of truth — burn opcodes and unused NOP slots |
| opcode-map.csv | Mnemonic cheat sheet · 32-bit encoding |
| lut.csv | ALU primitive catalog · hardware reference |
| profiles.csv | External-ISA maps onto Tomato, at assembly level |
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
Bits [31:23]. The whole catalog fits in a socketed EEPROM.
51
status = burn
Do not invent hundreds of growth phantoms. Empty is honest.
66
ISA profiles
RV32, MIPS, x86, Z80, and others — maps, not machines.