I did not start a computer build by first building the VGA adapter.
So the Z80 is a 5V version - that part is already built.
I explained why I want to do TTL, so no FPGA (for now).
Last evening I've tried to code a counter in CUPL. Tried and failed.
Some CUPL examples used a syntax that WinCUPL did not like -even though they said it would be compatible-.
Seems like the version I've got has an issue with nested $Repeat loops (like this
https://stackoverflow.com/questions/28385578/how-to-create-a-n-bit-counter-using-gal-programming-in-wincupl)
Also examples from the WinCUPL reference/manual itself did not work!?

I run my WinCUPL on a WinXP (SP3) machine because it crashed on Win10...?
I am trying to figure out how the logic works for each bit of the counter.
So what is the principle behind this code? -is it even correct?
(Append => OR, Qn.D is setting a D-FF input)
Append Q0.D = !Q0;
Append Q1.D = !Q1 & Q0;
Append Q1.D = Q0 & !Q1;
$Repeat P = [2..7]
$Repeat R = [{P - 1}..0]
Append Q{P}.D = Q{P} & !Q{R};
$RepEnd
Append Q{P}.D = !Q{P} & !([Q{P-1}..0]:#);
$RepEnd
Q0 I get: just flip the bit on each clock and you have bit 0 of the counter.
Q1 has two of the same equations - the operands are just swapped around.
If I roll out the macro for Q2 it would be something like:
Append Q2.D = Q2 & !Q1;
Append Q2.D = Q2 & !Q0;
Append Q2.D = !Q2 & !([Q1..0]:#);
I was unfamiliar with that last syntax and I cannot find it in the CUPL reference but I think it expands to something like:
Append Q2.D = Q2 & !Q1;
Append Q2.D = Q2 & !Q0;
Append Q2.D = !Q2 & !(Q1 # Q0);
This is where I get lost ...
I cannot see the technique used here to count...