M29COMM for MiG-29 version 1.00 By: Ken "Stinger" Richardson UID: [70761,301] The M29COMM.COM file is a TSR that will install itself in your computers memory waiting for you to run MiG-29. Once you execute MiG-29, the TSR becomes active replacing some of MiG-29's communications code. Using this patch 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. M29COMM will recover from the occasional Overrun error but if you experience problems connecting at high speed, try a lower baud rate. If you have your modem connected to COM3 or COM4, you can tell M29COMM to force MiG-29 to use either of these ports by placing a /3 or /4 after typing M29COMM. If you do use the "re-map" feature, when you enter MiG-29's COMMs screen COM1 will be COM3 or COM2 will be COM4. For example: M29COMM /3 ; This causes MiG-29 use COM3 when you tell it to use COM1 from the COMMS screen. After you finish playing MiG-29, you can remove the M29COMM TSR from memory simply by running it a second time. 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. M29COMM does perform error checking and will recover if an error occurs. 2. M29COMM 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. You will NOT see any satellite downlink "progress" indicators (the spinning wheel and dots). This was skipped so I could gain as much speed as possible by dedicating the CPU to the serial port. 4. When using M29COMM you will NOT be able to connect with someone who is not using M29COMM. Both computers must run the TSR. What to Expect from M29COMM: 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 you are unsure if your UART can handle a high-speed connection, try connecting with your opponent via a communication program using same modem defaults that you intend to use in MiG-29. Configure your comm port to the same baud rate you will use in MiG-29 (38,400 or 57,600). Then try uploading/downloading files to/from each other. If you experience errors, either your UART or your opponent's is to slow. Most comm programs have an option in their setup to enable CTS/RTS (hardware) flow control, this must be on. Tips on Connecting with MiG-29 using V42PATCH.EXE: When connecting with a patched version of MiG-29, 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 MiG-29 asks, this is important. If you use defaults, MiG-29 will use "Stored Profile 0" to make a connection as a result of the ATZ command MiG-29 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 MiG-29 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 MiG-29, what you are doing is telling MiG-29 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 M29COMM: I intend to continually support M29COMM, upgrading it as future versions of MiG-29 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!!!