WinXP serial port question

[This is a second attempt at this question – the first was apparently devoured by a software glitch.]

I bought a Sony GR370 laptop. It has a nice screen, reasonable performance, decent price, Windows XP. Like most newer models, it came without a 9-pin serial port connector. The salesman dealt with my questions by saying “This is a legacy-free computer.” (Translation: we’d like you to view this as an advanced feature, not as the omission of a useful accessory.)

Since I have a number of old, dumb devices (e.g. a Garmin GPS)with serial ports, I bought a Port Replictor, which provides a 9-pin connector. Windows software seems to make proper use of this, but not DOS. If I boot to DOS and run serial comm software, I find that short exchanges work fine, but long ones fail (the software in question keeps re-starting, but the failure is always there).

What is the explanation for this? Why shouldn’t booting to DOS on this machine make it work just as my old laptop did? Is there any cure?

What com port (the I/O address) and IRQ did the port replicator get assigned?

Most DOS communication programs were limited to three or four standard ports. Usually, you could have any one of four different ports, called Com 1, Com 2, Com 3, and Com 4. The only difference between these was the I/O address used. The “standard” was that Com 1, 2, 3, and 4 used addresses x’03f8’, x’02f8’, x’03e8’, and x’02e8’ respectively.

In addition, each serial port needs a hardware interrupt. Again the standard, such as it was, let Com 1 and Com 3 both use IRQ 4, and Com 2 and Com 4 use IRQ 3. Notice that with this setup, you could not use Com 1 and 3 simultaneously, or Com 2 and Com 4.

Windows, on the other hand, can assign all kinds of addresses and IRQs to a serial port, and call that port Com 1, even though it doesn’t use the address and/or IRQ that DOS thinks of as Com 1.

So what may be happening is that windows has given your port replicator an address that your DOS program can find, but the IRQ is funny. Short transfers may work, or X-ON/X-OFF handshaking may work, but when the port tries to signal the processor via the IRQ, the DOS program doesn’t read it correctly and the connection fails.

Also, the device you added may not actually be a fully functional serial port. Windows may be emulating a serial port. So if you boot to DOS this emulation is not active, and the device no longer responds as a true hardware serial port does.

So, check the documentation that came with the serial port and see if it specifically says that it works with DOS, or if it has a DOS device driver that needs to be loaded when booting to DOS. And keep in mind that a DOS driver may use or support different configurations that the windows drivers.

If it is supposed to work with DOS, then go into the Device Manager in Windows and see what resources the device is configured to use. Then check your DOS communication program and make sure it is set to use the same address and IRQ as the device is using. If it is using an address or IRQ that your DOS comm program can’t be set for (like IRQ 11, for example), you’ll need to try to change the settings in the Device Manager to ones that your DOS program can use. If you can’t change them, you may be out of luck.

If the device needs a DOS device driver to load, make sure that gets loaded, and check the configuration it uses, and then make sure your DOS comm program is set for those settings.

If neither of those is true, you may not be able to use that device from DOS. In that case, you’d need to return it and get a different one that is “legacy” compatible.

Good luck.

Ugly

Thanks, RJK. I’ll try what you suggest.

I was taking the fact that short comms seem reliable as evidence that the port address and IRQ were okay.