This is a simple way to test Z80 processors (and others). It tests that the processor is clocking the address lines based on the NOP code ‘hard coded’ onto the data bus.
NOP stands for No-operation and it exactly that. Its the machine language code that process no data, alters no registers (other than the program counter) or anything else. Its usually used to add in very specific delays.
The resistors (R5 to R12) pull the data bus down to ground and hence the data bus will only ever have ‘0’ on it, so then the fetch instruction occurs, instead of fetching an operation (opcode) from memory or ROM, NOP is always read and decoded.
The effect of this is that the processor will loop though the 16 bit memory address on the memory bus and do nothing…. but it allows us to see that the address lines are incrementing and hence the processor it probably working just fine.
LED 3 is tied to the M1 pin, which goes LOW when an operand is being fetched, so we expect to see this pulse before any other operation takes place.
If the data bus was not loaded with NOP, the behaviour would become erratic as it tries to process a random opcode based on the floating data bus.