My experiments with running DOS screen readers and trying to use /dev/synth as a COM port have given me one more suggestion for Speakup. There should be a way to fully reset the synthesizer. That is, initialize it as it is when Speakup first starts, then apply any changed settings in /proc/speakup. The reason for this is that DOS screen readers sometimes put the synth in a strange state and no amount of fiddling with /proc will get it back. I wish I could code this stuff, but I haven't messed with C in about 5 years, and I'm pretty rusty.