No feeback as usual. It really seems this was an implementation fail. I've changed things so red/black and shift/unshift work as they should ad fixed the bug around the processing of
them:
Expensive Typewriter uses red/black to identify control mode vs text entry mode, should now work as it was intended to work.
I also fixed several errors in the original code around multiple things, including socket management. In the old code, if you specify web client, the tyi/tyo./punch ports are grabbed wthe emulator starts even if you don't use the web browser. That means you can't use the desktop icons at all. Fixed that. The ports aren't opened until something actually requests them. So, open the brower, use its interface. Close the browser, use the desktop icons.
Another major refactoring also done to move the tyi//tyo/punch/reader iot code that was intertwined in the emulator to a much more realistic set of actual dynamic IOTs, same as I did for the display a while back. The old code is still in pdp1.c but not called. I'll eventually remove it.
Some final fiddling with the new t30dpy code to get rid of the last (I hope) pi/trixie/wayland/labwc annoyances. The t30doy code endured a severe load test for 24 hrs. Ignore the 0 frame count, that's a reporting bug since fixed. It should have been about 2.5 million, 30 fps.
Video driver is x11
439517782392 points drawn in 85715 total seconds, 5127664 points/sec.
0 total frames, 0 frames/sec.
7 frame late events, max delay 122 msecs.
20380258095 received points
237767 received points/sec
171294 maximum active points
0 points dropped because active-point pool exhausted.
That's a lot of points. over 4 trillion of them.
I'm pretty sure it's stable and working, tested under x11, wayland, pi5, pi4, and intel ubuntu.
I haven't posted to the repo yet, in the process of doing that. I'll update the release topic when ready. There were over 20 files touched, big update.
Bill