COMMTSR for Falcon/MiG/Hornet Version 1.01 By: Ken "Stinger" Richardson UID: [70761,301] The COMMTSR.COM file is a TSR that will install itself in your computers memory waiting for you to run one of Spectrum Holobytes's simulators. Using this TSR you will see your connection times improve greatly. During testing, this patch completed a 2400bps direct connection in just over 2 minutes, a 57600bps V.42bis connection in just under 30 seconds. The improvement is depended upon your computers CPU speed and hard drive speed. Slower computers with slower hard drives will not link as fast as quicker computers. Another problem slower computers might suffer would be UART Overrun errors. COMMTSR will recover from the occasional Overrun error but if you experience problems connecting at high speed, try a lower baud rate. You will see a line extending from the bottom of the screen to the top during the Satellite downlink. If the Bar is on the left side of the screen, it is the RECEIVE PROGRESS indicator. If the Bar is on the right side of the screen, it is the SEND PROGRESS indicator. At the top of the Receive indicator (and just a bit right) is the OVERRUN ERROR Indicator. If you see a small square at the top of the Receive bar, the UART was overrun on the last byte received. If you have your modem connected to COM3 or COM4, you can tell COMMTSR to force a connect on either of these ports by placing a /3 or /4 after typing COMMTSR. If you do use the "re-map" feature, when you enter the COMMs screen COM1 will be COM3 or COM2 will be COM4. For example: COMMTSR /3 ; This causes COM3 to be used when COM1 is selected on the COMMS screen. After you finish playing you can remove COMMTSR from memory simply by running it a second time. COMMTSR will work for all versions of Falcon 3.0 after version 3.02, all versions of MiG-29 after version 1.01, and all versions of Hornet from Spectrum Holobyte. V.42bis modems: V.42bis is a CCITT standard for data compression and error correction. It can give a modem up to 4:1 compression with 100% reliability. A 9600bps V.42bis modem can achieve throughput of up to 38,400bps and a 14.4kbps V.42bis modem can go up to 57,600bps throughput. This is done by the modem by compressing the data it receives from the computer before it sends it across the phone line on it's 9600 or 14.4k bps carrier. The receiving modem decompresses the data before sending it to it's host computer. All data can not be compressed the same amount. For example, text files can be compressed a great amout while ZIP file can't because they are already compressed. Therefore the effective speed of a V.42bis modem can vary from it's carrier speed (9600 or 14.4k bps) all the way up to 4 times it's carrier speed (38.4 or 57.6k bps). The way the data flow is regulated by the modem is with FLOW CONTROL, or more specific harware flow control (CTS/RTS). The CTS (clear to send) line will tell the computer when the modem is ready for data. Your comm port might be set to 57,600bps while the modem is sending data at 15,000cps, obviously the computer must wait for the modem. So as you can see, flow control is absolutely needed when a V.42bis connection is made between two computers with the comm ports set to a bps rate higher than the modem's carrier. Important Things to Know: 1. COMMTSR does perform error checking and will recover if an error occurs. 2. COMMTSR will support modem data compression (V.42bis and MNP-5). You must have hardware flow control turned on (RTS/CTS). Check you modem's manual for the proper commands although AT&F with generally work for most modems. 3. When using COMMTSR you will NOT be able to connect with someone who is not using COMMTSR. Both computers must run the same version of the TSR. What to Expect from COMMTSR: 1. You will see less "jittering" in your opponents plane. 2. There will be a 30% increase in cps rate while playing. 3. The Satellite Downlink will be considerably faster if your UART can handle a high speed connection. (See UART consideration) UART (Universal Asycronosis Receiver/Trasmitter) Consideration: A UART is the "brains" of your COMM port. It receives and sends data to and from the modem, monitors line errors, and monitors modem status. It will interrupt the CPU whenever data is ready so the CPU can read every incoming byte without disrupting program execution. What I have found while testing the original V42PATCH, is some UARTs are not fast enough to achieve a reliable connection at speeds over 9600 baud. For speeds over 9600 baud you may find that you will need either a 16450 or probally a 16550 UART. These chips are direct replacements for the old 8250 UART and are much faster. If you have an internal modem, you can be sure that your UART is fast enough as it is built into the modem. External modems might have a problem. The UART is not contained in your modem, it is part of your computer, so you may have a 14.4k bps modem and have a weak link betweeen the modem and computer caused by the slow UART. If COMMTSR encounters an Overrun Error, you will see a small (usually Red) square appear next to the receive progress bar in the upper left corner of the screen. Tips on Connecting with Falcon using COMMTSR.COM: When connecting with a patched version of Falcon, you will want to have V.42bis turned on, also you need hardware flow control enabled. Use your comm program to configure your modem for the correct setup and then save your modems configuration in "Stored Profile 0" in your modem's non-volitile memory. I found it is also a good idea to make sure the "Extended V.42 Response Codes" are turned off. After the proper configuration is stored in your modem's memory, your are ready to connect. Go to the comms screen and select 57,600bps and modem connection. Select call or answer, whichever you and your opponent decided on. Use modem defaults when Falcon asks, this is important. If you use defaults, Falcon will use "Stored Profile 0" to make a connection as a result of the ATZ command Falcon will send. This is the configuration you just saved. You should get a connect message and everything else should work fine. Here is an example of how to setup your modem: From TERMINAL mode in your comm program type: AT &F ;Return to factory configuration AT &Q5 ;Enable V.42bis connection AT &K3 ;Enable hardware flow control (CTS/RTS) AT W0 ;Disable extended V.42 response codes AT &W0 ;Store in Profile 0, very important. AT &V ;Display profile. Use this command to double check your setup. Note: Your modem may have different commands than I have listed here, check your modem's manual before you type these commands, especially &Q5 and W0. Some modems use &M5 instead of &Q5. You may even have to change some S-registers. Whateven you must do, make sure the last thing you type is AT &W0 to store it in your modem's memory. If you type an illegal command, your modem should respond with ERROR, otherwise it will respond with OK. I should mention that all 9600 V.42bis modems will not go to 57,600bps, some have a limit of 38,400bps which is fine. Using a 9600bps carrier and V.42bis compression (4 to 1), the maximum throughput will be 9600 * 4 = 38,400bps. So 57,600bps has no advantage when using a 9600bps modem/carrier. When using a 14,400bps V.42bis modem, you should select 57,600bps as all 14.4kbps modems will accept 57,600bps connections. If you have a 14.4kbps modem and your opponent has a 9600bps modem, you will have to connect using a 9600bps carrier. The modems should do this automatically. You can select 57,600bps (although it offers no advantage over 38,400bps over a 9600bps carrier) when in Falcon and your 9600bps opponent can select 38,400bps and you will still have a good connection. Remember, with V.42bis turned on, your computer is connected to your modem, not directly to your opponent's computer. When you select the baud rate in Falcon, what you are doing is telling Falcon how fast you can talk to your modem. The "Flow Control" with regulate the actual data transfer rate between computers. I suggest selecting 38,400 baud when using a 9600bps carrier and 57,600 baud with a 14.4kbps carrier. Future Versions of COMMTSR: I intend to continually support COMMTSR, upgrading it as future versions of Falcon/MiG/Hornet are released. I may also add more features as the need arises. Note: This patch is not supported by Spectrum Holobyte. If you experience problems, contact me in the ModemGames Forum. Ken "Stinger" Richardson [70761,301] P.S. Have fun!!!