Blinkenlights

Well, I finally got my blinkenlights working to the tune of the teletype machine. Oscar Vermeulen pointed me to the correct value to change in the simh code. The SERIAL_OUT_WAIT value in simh_defs.h needed to be increased from the default of 100 to  20000. Now the accumulator LEDs seem to blink correctly.

UPDATE: After doing some research on SERIAL_OUT_WAIT, I found that it is also used in the lp, pt, and ttx drivers. That means that, for instance, punching a simulated paper tape will also be at 110 baud. Clearly, that is not what we want. So, I changed the SERIAL_OUT_WAIT back to 100 and added a new constant – TTO_WAIT –  to pdp8_defs.h, and set it to 20000. Then in pdp8_tt.c, changed the SERIAL_OUT_WAIT in the tto_unit structure to TTO_WAIT. Now, only the console runs at 110 baud.

I also found out that this value does not guarantee a fixed wait time – just a minimum. It assigns this wait time to the tto_unit when it is added to the simh processing queue to output one character. Anything in the queue ahead of it will get processed first. This is very noticeable in my “Blinkenlights1” video during the init message, and also at the end of the directory listing.
This mod brings with it an unforeseen benefit. I can now actually stop the directory listing with a Control-C. Before, the whole directory listing would get buffered up, and had to be printed out before the Control-C was even recognized.
Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: