Everyone check out Ben Eater's channel on YouTube and his playlist of building an 8 bit computer on a breadboard (or more like a dozen breadboards).
It brilliantly demonstrates how computers are not elven magic, but the results of logical result of assembling the atomic components of transisters, capacitors and resistors.
Also, his wires are a work of art. That thing needs displaying in the Louvre.
Here's my issue though and it happened right at the end when he introduced conditional logic in the last video.
This was done by using the flags to inform the microcode selection. The flags, a carry flag for when the adder overflowed, and a zero flag for when the adder was zero, are used as bits in the address on the ROM chips programmed with the micro-instructions for the computer. This means that for the other instructions that aren't conditional, they are duplicated four times.
If the computer gets more sophisticated and you have more flags, this will ridiculous. If you have a 32 bit flags register, your ROM with the microcode will need to be 4 billion times bigger than it needs to be.
How is this conditional logic done really?