He says that's for microcode ROMs though? As opposed to a user program written in machine code that you would use the CPU to execute. I don't believe ancient CPUs had microcode. Everything was implemented in hardware.

What you believe doesn't really matter.

Plenty of 'ancient' CPUs had microcode.

68K, System 360, Sperry 1100, and even the 'ACE' to name the great grand daddy of them all had microcode.

Technically the 6502 and the 6800/09 did not, they used a dedicated decoder that was closer to a statemachine than microcode, even though both were implemented in hardware.

None of the smaller CPUs had 'loadable' microcode, but plenty of the larger ones did.

CPU's microcode can be surprisingly simple: The CPU has bunch of internal signals, which activates certain parts of the CPU and the logic when to turn each signal on comes from reading bunch of input signals. The microcode can be just a memory where the input signals are the memory address and the output is the control signals.

It's just that at some point when it's all physically wired up in hardware as opposed to being stored in some form of memory I have difficulty thinking of it as code or a program. By the time you're rearranging wires to enter a "program" aren't you actually refactoring the CPU itself?

Anyway I feel like the answer to the chicken and egg problem originally posed is to point out that things used to be different. Tools such as text editors and compilers are merely modern syntactic sugar.

Even Babbage's Analytical Engine had microcode.

Would you care to elaborate? That sounds both unlikely (but I assume I'm just naive) and also interesting.

Part of the machinery is a cylinder that orchestrates various very low level operations this means that the Jacquard cards can specify a higher level operation. Exactly how sophisticated it is, or is supposed to be, I'm not sure.

And now that you've challenged me I can't remember where I saw this piece of information. Time for a quick web search.

Found something, I don't think this is where i saw it first but it will do:

"Later drawings (1858) depict a regularised grid layout.[18][19] Like the central processing unit (CPU) in a modern computer, the mill would rely upon its own internal procedures, roughly equivalent to microcode in modern CPUs, to be stored in the form of pegs inserted into rotating drums called "barrels", to carry out some of the more complex instructions the user's program might specify.[7]"

https://en.wikipedia.org/wiki/Analytical_engine