Modems and Win95


The Detection and Installation Process

Roughly, when Win95 tries to detect what type of modem is in the computer, it sends some commands (usually ATI commands) to the modem and then uses the replies to determine what model and speed of modem has been installed. Once it has it's best guess, it wants to install the driver associated with that modem. It should also give the owner a choice to use a driver from a manufacturer's driver disk.

When Win95 sets up the modem, it adds a few registry settings pointing to an .INF file in the Windows/Inf directory. This file is a text file containing settings for modems from a certain manufacturer and/or model. The registry should also specify which of the modem types in that file should be used. In that file is the default initialization string used and the commands used for the other options (error control, flow control, data compression, etc.)

The INF file also includes a translation table for converting the modems connect messages into something Windows 95 can use. For example, when a US Robotics modem connects, it report the following back to the computer:

28800/ARQ/V34/MNP/V42BIS
which tells the connect speed and the protocols used in the connection. Windows 95 itself wouldn't understand this. So, in the INF file is a table of the the connection codes the modem sends and a translation into what Win95 will understand. So with the proper Sportster modem INF file installed, it can see the what the modem is reporting and then translate that into Windows 95's language for a 28.8 connection.


Echoing the Modem

The quick way to echo the modem is through the Modem control panel:
  1. Open the Modem control panel.
  2. Click on the Diagnostics tab.
  3. Highlight the com port the modem is on.
  4. Click on More Info.
  5. In the window that comes up is a white box at the bottom. In that box are the responses for the ATI commands (except just ATI).
The above method usually gives the proper results. However, sometimes (especially with US Robotics modem) the only thing reported is "OK". What's happening is that Windows is not seeing the result but the line underneath which always says "OK" after accepting a command.

A way to directly echo the modem as well as try dialing out is to use HyperTerminal. It should be under Start--Programs--Accessories. If it isn't then it hasn't been installed. It can be added under the Add/Remove Programs control panel in the same location where you find Dial-Up Networking.

In the HyperTerminal windows, double click on Hyperterm.exe. You then need to set up a connection; set it up with StarNet's name and number. It then brings up a window wanting to dial. Click on Dial (even if you just want to echo the modem--you need to trick HyperTerm into thinking you're connected before it'll let you type in commands). If you want to just echo the modem, click on Cancel before it dials. You should then be able to send commands directly.


Specifying an Init String

The most common way of changing the init string is through the Modem control panel. In there you click on Properties, go to the Connection tab, and click on Advanced. The string goes in the Extra Settings box (without the "AT").

If the point is to specify an exact string, the Error Control and Flow Control boxes must be checked. Remember the text INF file Windows 95 reads for dealing with the modem? Some of the sections in there are for the modems commands to send for error correction, flow control, and compressed data. If those boxes are checked, Win95 reads the INF file and sents the associated commands to the modem. Having Win95 send additional, unknown commands to the modem defeats the purpose of specifying an exact init string. It can also cause problems in that the commands being sent may not work for the modem being used.


UARTs and Port Settings

Windows 95 allows advanced control of the modem UARTs' FIFO buffers which can affect connections. More info on this can be found on the UART page.


Back to the Modem page