                                   SER5.EXE
                           DOOM SERIAL DEVICE DRIVER

NEW FEATURES:
   - "Talk" feature is now SPLIT screen...no more overwriting each other :)
   - Dos Shell 
   - Directory Listing and File Flagging  
   - Displaying WadFile Map Directories.
   - Configure Option almost completly rewritten.
   - Autowarping for Pwads
   - Configuration file now called SER5.CFG (instead of modem.cfg)
      New Items to the CFG file:
      * DOOMEXE=  To specify the Doom EXE to run if not 'doom'. 
      * DOOMVER1_2= To tell SER5 not to use response files when calling doom.
      * DIRECTORY=  To set the default location of Pwad files.
      * WADNAME= If you play one Pwad all of the time, you can specify it here.
      * NODROPDTR=  To tell SER5 not to drop DTR when exiting SER5. 
      * ALTDEATH=  To enable the DeathMatch 2.0 (altdeath) feature.
      * ALTBAUD=  For a secondary Baud rate, selectable at runtime.
      * ALTBAUDINIT=  For a third init string, to be used with ALTBAUD.
   - ZMODEM File Transfers:  To send files while in SER5.
     ******PLEASE READ SER5.HLP, IT CONTAINS IMPORTANT NOTES******

FEATURES:  (As retained from SER4)
   - 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:
   - Change to your DOOM directory and unzip SER5.ZIP.
   - Make a subdirectory named "TRANSFER" directly below your DOOM directory.
   - Move DSZ0529X.ZIP to the TRANSFER directory and unzip it there.
   - Read SER5.HLP for information regarding the new .CFG file switches and for
        important information about the File Transfer option.
   - Edit SER5.CFG to change computer/port settings(see help at bottom of file)
   - Run "SER5" WITHOUT arguments.

NEW NOTES:
   - Any parameter can be passed on to Doom by using the DEVPARM string in
     either the SER5.CFG file or the Configure feature at runtime, whether it
     requires -devparm or not.  See the list of other parameters in the Doom
     FAQ which is included in the latest version of Doom, and on the ftp sites.
     The Doom FAQ is currently DMFAQ58.TXT by Hank Leukart
     <ap641@cleveland.freenet.edu>.
   - For the problem of saving a game, and then getting different player
     numbers (colors) when re-loading...  Use the PLAYER= line in SER5.CFG
     to force each player number to either 0 or 1.  Note that this number is
     zero-based, while the Doom startup screen is 1-based (1 or 2), and that
     this is inconsistent because of Id's original SERSETUP code.  We decided
     to keep it this way to avoid (further) confusion.  Also, note that Id's
     original suggestion of using player number 1 on the slower computer
     refers to the number in the SER5.CFG file, not the doom startup screen.
   - About 3- and 4-player games...  The answer is, yes, it is possible, but
     not with SER5, or any other code based off of SERSETUP.EXE.  There is a
     program called RMSSETUP on the ftp sites that's supposed to allow more
     than 2 players using serial com ports, and is based off of IPXSETUP.EXE,
     which is the network code.  It has to use the net code because data
     packets need to be sent to a particular player, rather than just the
     "other player" as in the serial code.  RMSSETUP is currently RMS255B.ZIP
     by Antony Suter <antony@werple.apana.org.au>, please ask him, not us :-) 

NOTES:  (As retained from SER4)
   - Yes, this means id's 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-configure 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.

TROUBLESHOOTING:
   - For modem connections:
    - Use the correct init strings!  Turn off compression and error correction.
      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.
    - You also might try using a separate communications program set to N81
      to make the original connection and to test the link, then exit
      without hanging up and start SER5 with "Connected already".
    - For a list of Modem Init Strings, please see the list that comes with
      the latest version of Doom, or the latest Doom FAQ.
     
   - For null modem connections:
    - Use a null modem cable (well, I had to say that).
    - Select "Connected already".

   - Try 9600 baud.  Slow computers may not be able to handle the higher rates.

   - 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.  Try
     changing to another port, or disabling/removing the sound card, mouse,
     etc. to check for a conflict.  Also try using a diagnostic program such
     as Microsoft's MSD.EXE which comes with the later versions of DOS.
      
   - 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 it doesn't get read 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.
     However, you should be able to play just fine with any combination of
     8250's and/or 16550's.

   - 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.

SOURCE CODE:
   - Full source code is available in SER5_SRC.ZIP (see below).
   - SER5, SER4 and Id's original SERSETUP were all compiled using Borland's
     C/C++ Compiler with a .PRJ project file (included in the source), which
     contains the compile and link settings used.  We've also included a .MAK
     makefile in case you'd like to use that instead.

WHERE TO GET IT:
   - SER5.ZIP and SER5_SRC.ZIP are available by anonymous FTP from the usual
     doom sites, including (as of Sep. 1, 1994):
     - wuarchive.wustl.edu  /pub/MSDOS_UPLOADS/games/doomstuff/...
     - infant2.sphs.indiana.edu  /pub/doom/...
     - and infant2's current  /pub/doom mirrors:
       ftp.cdrom.com  /pub/doom                                   California
       ftp.iglou.com  /doom                                       Kentucky
       ftp.orst.edu  /pub/gaming/doom     (weekly)                Oregon
       nctuccca.edu.tw  /PC/games/DOOM                            Taiwan
       ftp.luth.se  /pub/msdos/games/doom                         Sweden
       ftp.uni-erlangen.de  /pub/pc/msdos/games/ID/doom-stuff     Germany
     (Check the 'incoming' directories also in case it hasn't been moved yet.)
   - We're also posting SER5.ZIP to alt.binaries.doom, but only once.  Please
     try the FTP BY MAIL option below if you miss it and don't have ftp access.

FTP BY MAIL:
   - If you don't have FTP access, try the FTP mail server.  Send mail to:
     ftpmail@decwrl.dec.com   with the following as the msg:
          reply <your.mail.address>
          connect <ftp.site.name>
          binary
          chdir <directory>
          uuencode
          chunksize 49000   (Use this if on CompuServe. Default is 64000 bytes)
          get <filename>

     The file will then be uuencoded and mailed to you in chunks.  Put the mail
     msgs in order into one file and uudecode it to create the requested file.
     To get a directory listing, use the command "dir <directory>".
     To have a full help file mailed to you, use the command "help".

THANKS:
   - Many Thanks to Id Software for releasing the original SERSETUP source,
        and making an incredible game.  (Without Doom, we'd have no reason to
        spend weeks working on this code)
   - To the progrmamers of DEU.....whose nicely documented source code
        helped me track down some discrepencies in Borland C++'s documentation.
   - To Jeff Baker:  A good friend who helped me catch my errors and for 
        letting me use his computers with a NULL modem.
   - To Brian Plumb <r3bmp@dax.cc.uakron.edu>:  Helped me with Beta Testing
        and gave me a few ideas.
   - This program uses a lot of ideas from the following sources:
     - Many late nights of trying to be creative.
     - Several people from "alt.games.doom" on the internet.
     - Other SERSETUP-hack programs.

HISTORY:
   - 03/19/94 - SER4 released by Russell Gilbert.
   - 09/09/94 - SER5 released. The new user interface was programmed by
                  Paul Hermann and debugged by Paul Hermann and 
                  Russell Gilbert. 

COPYRIGHT INFORMATION:
   - Doom and Doom ][ are copyrighted by Id Software.
   - Pkzip is copyrighted by PKWARE Inc.
   - DSZ is copyrighted by Omen Technologies Inc.  The DSZ archive 
        distributed with SER5 MUST be distributed in its original form.
   - SER5 is based on the SERSETUP source code provided by Id Software.
        SER5 is Freeware and may be distributed any way that you wish, 
        provided that the archive is distributed in its original form.
   Note: Although SER5 is freeware, donations will be freely accepted.  
        Feel free to contact us through our E-mail address if you are
        interested in making a donation.

DISCLAIMERS:
   - Id Software will not provide support for SER5, so don't ask them.
   - Although it should never happen... the authors of SER5 will not be held
     liable for any loss of data or damage to hardware that may be caused by
     using SER5.

Good luck, we hope it works for you...

Paul Hermann       (hermann@vision.poly-eng.uakron.edu)
Russell Gilbert    (NEW ADDRESS---> b804683@csc1.ftw.bnr.com)

