Forget the original ULA. You need an (Field Programmable Gate Array). The cheapest and most documented for this task is the ICE40UP5K or the Xilinx XC9572XL for a CPLD, but for a full ULA+Z80, use an EP4CE10 (Cyclone IV) or an Lattice iCE40 HX8K .
It handled pixel and attribute (color) data from memory to generate a PAL video signal. Forget the original ULA
: It documents known design bugs like "The Snow Effect" and subtle hardware quirks that were previously undocumented for decades. but for a full ULA+Z80
: It reads pixel and attribute data from "lower RAM" to generate a PAL signal (256x192 resolution). Forget the original ULA
To build a functional clone or inspired design today, you have three primary paths: 1. Discrete Logic (The "Harlequin" Method)