This is a very good point!
TL;DNR: yes the problem persists but I rhink we can fix it.
The long version:
We still have a problem here, and if this was a bone, it would be a multiple fracture :-)
To start with, it's not actually easy to tell SIMH to execute just one instruction per second. You can telll it to execute 330000 instructions per second with
set throttle 330k,
but both
set throttle 1
and
set throttle 0.001k
are rudely rejected by SIMH as a syntax error. 1000 instructions per second is the minimum via this syntax.
So what people do (also via the --throttle=human and --throttle=trace options to configure) is use the "fraction" syntax fro throttle:
set throttle 1/1000
tells SIMH to execute 1000 times the minimum delay period (happens to be 1ms) after every instzruction => roughly 1 instruction per second.
The first problem is that the "fraction" syntax will cause the ILS mode to be disabled and fall back to NLS-like mode. This is documented:
"If you use the ratio form here (e.g. --throttle=123/456) the
configuration script disables the ILS feature because of the way
SIMH handles this type of timing. The ratio form of CPU throttling
tells SIMH to run some number of instructions and then sleep for
some number of milliseconds. (The above 123/456 example means "run
123 instructions, then sleep for 456 ms.") This batched instruction
execution scheme interferes with the high-speed LED panel update
rate, so we must disable the ILS when running with such a throttle
value set."
(it's not just the configuration script thos, even you change the throttle setting to this on-the-fly with CTRL-E, the code will disable the ILS effect(
The second problem is that in general, if the instructions per second gets below the panel refresh rate, you see the effect you mentioned. This could be seen as a bug.
So two problems here: a) the glow effect is disabled which is not nice and b) the lights go out when they should not
The extreme case of "low instruction rate per second" is when the CPU halts altogether => 0 instructions per second. The code then has some special logic to prevent the lights from going out altogether, but it still feels compelled to disable the ILS "glow". Which is sad: e.g. you would want to have realistic ILS effects when you single step thru a program!!! This never worked with the old or new ILS code but it should.
All of this can be fixed, but because the logic that handles the sim throttling / halting /single stepping affects several places in the code it's not entirely trivial to get it all right.
But if not now, when? I'll see what I can do.
Thanks fro the reminder
Cheers
HB