I've started a new thread as to not clutter up the existing one about multitasking.
hyjinx wrote to Wall E. Weasel <=-
Still useful, when I try and figure out why I have such issues with anything above 19200bps....
Above 9600bps or above 19200bps?
Can you describe what's happening in a little more detail?
Specifically, are you getting dropped characters or are unexpected characters showing up?
As far as I recall mainly corrupt chars (so that probably means both),
but for example when you are expecting some ANSI, you get a lot of corruption. Some of the ANSI might display, but much of it will show
the ANSI escape chars. Obviously once I reduce the errors (i.e. the
baud), the ANSI displays fine.
Do you have the ability to solder or know someone who does? For most of the conclusive testing you'll need what's called a loopback plug. One can be made for next to nothing using a solder-type DB-25F or DE-9F (whichever is appropriate) and a small amount of scrap wire. Around here these cost about $1.00 US at electronics suppliers. Look on the Internet for the wiring diagrams for Norton style loopback plugs or I can just tell you the pins to connect.
Not surprisingly, you'll also need Norton diagnostics from the last DOS Norton Utilities package, version 8. Look on Winworld for this. I can also package up and send the diagnostics portion if you don't want to deal with installing anything.
Things that can be going wrong on the PC side:
1. Genuine data corruption. A bad pin, goofy line receiver, skewed reference clock, or bad UART can cause this. On Norton diags, run the System->Serial Port x test with the loopback plug installed. If the test passes, run it 50 or 100 times with the Burnin report function. Unselect everything except that serial port test and tell it how many iterations to run.
This test also will tell you the health of the serial port's reference clock. Each test speed will show the actual bps rate used. A percent off one way or the other isn't any reason for concern. But if you're pushing 45,000 or 30,000 bps at 38400 there is something amiss. The test will pass but communication with other devices will be unreliable.
2. No 16550A actually installed. You know your hardware better than I do so you'd know for sure. But just in case, get the file "FAST550.ZIP" and run the comsw.exe and is16550.com utilities.
3. Your software isn't enabling the FIFO. Most software has a "shell to DOS" function along with a "FIFO on in shell" option. Load up your software, set the FIFO shell option, and shell to DOS. Run the 16550.exe utility in query mode with: "16550.exe <port #> ?" and make sure it's on.
4. You've got a bugged 16550Ax UART. There are plenty around. I have one in an all-in-1 I/O IC in my ancient 486 laptop. :( The bugged UARTs continue to indicate data is available in the receive FIFO even after it's empty. The system reads another byte and gets garbage data. This is what I meant when I asked about unexpected characters showing up.
5. The FIFO is being used but you're still getting data overruns.
4 and 5 can both be tested with the FIFO test in Norton diags. Make a clean boot (no device drivers or TSRs) and run the Comprehensive->16550 x test for your port. It will set the FIFO trigger level to each of the 4 settings and test how many receive buffer bytes actually get used for a burst of data. Ideally the number of bytes used will equal the trigger setting. If it's consistently more, the system is not keeping up. If this test passes, boot with your normal config and try again. Run it several times in each config.
A bugged FIFO will also show up in this test.
You can do a less conclusive test using Terminate. Grab an early copy, version 1.41 or 1.51, that isn't (quite so) bloated like the later versions. Under async setup for your port you can manually select the FIFO trigger level. Set it to 4 and try the modem. Set it to 1 if you're still getting corruption.
Also, I've been unable to make contact with your mailer to send the later version of pktmux.
--- SBBSecho 3.00-Win32
* Origin: The Basement Theory - Sciotoville, Ohio USA (21:2/121)