SER4.EXE DOOM SERIAL DEVICE DRIVER FEATURES: - Baud rates: 9600, 14400, 19200, 38400, 57600, 115200. - Uses 'extratics=1' (whatever it is) which removes delays on some machines. - All 'mod' operations removed which fixes slowdowns after 2 minutes. - Many functions optimized to speed up communication. - Compiled with several speed optimizations plus 80386 instructions instead of 8088/8086. - 'Talk' feature -- type msgs to your partner to debug com port setup, or to decide on game features. - 'Configure' option allows game settings to be modified after connecting. - Port stays connected after game ends, allowing settings to be re-configured and a new game started. - Extensive statistics available at end of each game. - Episode AND map settings to allow warping to another level. - Lots of msgs printed during startup to help with debugging. - 'Phonebook' list of names and numbers in modem.cfg, allowing dial-by-name. - Two modem init strings in modem.cfg. - Modem init strings sent slower - some modems had problems if sent too fast. - All command-line arguments moved to modem.cfg file. INSTALLATION: - Make a backup copy of your modem.cfg file. - Copy ser4.exe and modem.cfg to your doom directory. - Edit the modem.cfg file to change computer/port settings (see help at bottom of file). - Run "ser4.exe" WITHOUT arguments. NOTES: - Yes, this means setup.exe won't work with ser4. But that's ok, because ser4 has far surpassed setup, so you don't need it anyway. I tried making it use the modem.cfg file, plus command-line args, plus being able to re-confure at run-time, and the amount of code was becoming enormous. I decided that a 63K executable was pushing it already, and the extra prompting in ser4 probably removes the need for setup anyway. Settings for the computer/port should only need to be done occasionally, so they're in the modem.cfg file. Game settings are configurable on the fly. - I removed the code that reset the port back to 9600 at shutdown, in case you want to check it with a 'portinfo' type of program afterwards. - A couple of people suggested a way of having one side send the game settings to the other computer. Because of code space, I decided to leave that complicated feature out. The 'Talk' and 'Configure' features should take care of it. CREDITS: - This program uses a lot of ideas from the following sources: - My head. - Several people on the net. - Other sersetup-hack programs. - And a little bit from Id software :-) :-) I am in no-way claiming this to be an original work. Many people contributed to ser4. (and my mailbox, which has been over a hundred messages lately :-) If you'd like to modify/fix/add something, have at it! The source has been uploaded to: - wuarchive.wustl.edu in /pub/MSDOS_UPLOADS/games/doomstuff/ser4_src.zip - ocf.unt.edu in /pub/incoming/ser4_src.zip Many thanks to the following people for their help, suggestions, and contributions: (In no particular order) - Dave Thomson - Michael Corrigan - Steve Simpson - Brian "Paco" Hope - Z_VANDERBIJC@CCSVAX.SFASU.EDU - Ron Zika - William Lewis - Steve Snyder <76447.3264@CompuServe.COM> - DucK Whitney - Srinivas Thakkilapati - Vesselin Bontchev - John Van Essen - BRYENTON T And tons of others that I probably left out... TROUBLESHOOTING: - For modem connections: - Use the correct init strings! Turn off compression, error correction, and flow control. Also fix the baud rate at the desired speed. There have been several cases of modems working at 9600, but not at 14400. If this happens to you, check the init string again. - Be aware that some modems won't process anything after ATZ -- use the second init string for other commands, or better yet, use AT&F instead. - 8250 UARTs do not support 115200 baud. - I tried 4800 baud with two 66's, and it was unplayable, so I left it out. - The only two init strings I know for sure are: - Gateway Telepath I (8250 UART): AT &F S37=9 &K0 &Q0 %C0 N0 \G0 &D2 S46=0 (S37=11 for 14400 baud) - Gateway Telepath II (16550 UART): AT &F &K0 &M0 &N6 (&N8 for 14400 baud) - For null modem connections: - Use a null modem (well, I had to say that). - Select "Connected already", and then use the "Talk" feature to send characters back and forth to check the line. If they're not coming across clearly, something's wrong -- check IRQs and base addresses for conflicts with other ports or devices. - On 8250 UARTs, expect overrun errors, especially with higher baud rates. The 8250 (=16450) UARTs only have a one byte send/receive buffer, so it will occasionally overwrite a byte if Doom doesn't read it fast enough. If this happens, you'll probably notice it as a slight delay while playing, and it'll be reported as a UART Overrun Error in the stats. - With a 66 Mhz machine using a 16550 UART, I've seen "Read Bytes Per Interrupt" around 3 to 3.5, and "Write Bytes Per Interrupt" around 7 to 8. With a 66 Mhz machine using an 8250 UART, both numbers are usually 0.9. - Still won't work??? Well, I've run out of suggestions. If you *do* get it working, post your success story to the net to help someone else. Good luck, I hope it works for you... Russell Gilbert (gilbert@esd.dl.nec.com)