Moving discrete logic into one chip reduces cost and footprint.
// Video timing counters & sync generation... // Memory contention logic... // Keyboard scan on IOREQ & A0 low... endmodule Moving discrete logic into one chip reduces cost
Early prototypes suffered from visual "snow" on the screen because the ULA and the processor were fighting over the memory at the same time. Altwasser solved this by "contention"—making the processor wait its turn while the ULA drew the screen. The Crisis: The Ferranti Deadline // Keyboard scan on IOREQ & A0 low
Centralize all timing-critical functions into one programmable logic block. This reduces board complexity and component count. because the ULA was so integrated
Sinclair purchased "grade C" wafers (cheapest). Up to 40% of dies failed final test. However, because the ULA was so integrated, a single failed gate could brick the machine. Sinclair’s solution? Underclocking. A ULA that couldn't manage 3.5MHz might run at 3.4MHz. A ULA with a dead keyboard column might have that column disabled in the ROM.