home *** CD-ROM | disk | FTP | other *** search
/ Ultimate DOOM Companion / PowersourceMultimedia-UltimateDOOMCompanion.iso / patches / bnudm01.zip / SERSETUP.TXT < prev   
Text File  |  1994-03-03  |  14KB  |  334 lines

  1.   |
  2.  || BNU DOOM Serial driver version 1.2.1
  3. ||| DOOM Network interface is copyright 1994 by Id Software Inc.
  4.  || BNU SIO Driver is copyright 1994 by David L Nugent
  5.   |                                   & Unique Computing P/L
  6.  
  7. BNU for DOOM is a drop-in replacement for Id Software's
  8. SERSETUP.EXE provided with DOOM 1.2. This version, however,
  9. provides a full and complete interrupt driven serial driver
  10. implementation and therefore does not suffer many of the
  11. shortcomings in Id's original driver which was much too
  12. simplistic to provide the services necessary for running on
  13. today's typical modem configurations or at faster speeds
  14. then 9600 baud.
  15.  
  16. This work is a derivative and blending of Id's published
  17. source for SERSETUP and my own BNU FOSSIL driver. This
  18. driver provides full support for the 8250 family of UARTs,
  19. including the 8250, 16450, 16550 (original, used in older
  20. PS/2's), 16550A(FN), 16551-4 (CMOS and packaged versions of
  21. the 16550) Intel 82510 and the TYPE3. It provides hardware
  22. flow control, the ability to run at *any* baud rate
  23. supported by the UART, configurable inbound/outbound buffer
  24. sizes.
  25.  
  26. Before you ask, BNU is an acronym for Basic Networking
  27. Utility, referring to its use in the FidoNet community as
  28. the base level of communications. FOSSIL in this context
  29. means "Fido Opus SEAdog Standard Interface Layer", which is
  30. a phrase used to describe the set of common interrupt
  31. functions developed as a common layer for many FidoNet
  32. applications. SIO (which you'll see in SERSETUP's banner)
  33. means "serial input/output".
  34.  
  35. This driver does not use FOSSIL services. However, I will
  36. soon be publishing one for OS/2 users who can install Ray
  37. Gwinn's SIO and VX00.SYS which, in theory, should provide
  38. superior performance under OS/2 since they bypass UART
  39. emulation/virtualisation used in OS/2 VDM sessions. I also
  40. hope to be publishing a version of SERSETUP with a
  41. communications interrupt handler that runs under DPMI which
  42. should enhance performance significantly.
  43.  
  44.  
  45. INSTALLATION
  46.  
  47. This driver is almost a drop-in replacement for Id's
  48. original. First, rename Id's version to "SERSETUP.OLD" and
  49. copy in SERSETUP.EXE from this archive into your DOOM
  50. directory.
  51.  
  52. If you use your modem to call other DOOM players, then all
  53. the rules have just changed - you will almost certainly have
  54. to change your initialisation string from the one you used
  55. with Id's SERSETUP.
  56.  
  57. Specifically, you'll need to:
  58.  
  59.    - Enable V42bis (if available)
  60.    - Enable error correction
  61.    - ENABLE HARDWARE FLOW CONTROL (ALSO REFERRED TO AS CTS HANDLING)
  62.  
  63. The latter is the most important, the others optional. Error
  64. correction and compression are transparent to the data
  65. stream. BNU automatically provides CTS/RTS signal handling
  66. to take care of the "spurts" of data it receives as a result
  67. of the protocol used between the modems. If you only have
  68. MNP5 compression, try it since it may work fine - disable it
  69. if play becomes too jerky.
  70.  
  71.    - You need 9600 baud or greater!
  72.  
  73. Don't consider attempting to run DOOM at any lesser speed -
  74. it just doesn't work. You'll get a connect, but movement is
  75. so slow that it is entirely unplayable. At 4800 baud it's
  76. like molasses at 50 fathoms! At 2400, it's like attempting
  77. to play DOOM inside a Jupiter Mining Corps' stasis booth -
  78. i.e. pretty much a waste of time. Try it on a direct connect
  79. if you like, it is amusing, but don't donate money to your
  80. PTT provider trying it out if you only have 2400 baud modems
  81. or less. At 7200 you might get a slow moving game going, but
  82. 9600 is really where it becomes playable.
  83.  
  84.    - If you use error correction and/or compression, use a baud
  85.      rate greater than the actual connect speed.
  86.  
  87. For V32 modems, use 19200 (more probably won't be an
  88. advantage and makes your system work harder - probably
  89. causing jerky play). V32b modems should use 38400 or 19200.
  90. This driver *may* work with the HST protocols (but probably
  91. not brilliantly) and will certainly do just fine with ZYXEL
  92. 16.8K and 19.2K. VFC and V34 modems will probably need the
  93. port set at 38400 or 57600.
  94.  
  95. If you are the "answering" system, you'll need to add ATS0=0
  96. to your initialisation string in MODEM.CFG. This disables
  97. auto-answer. SERSETUP answers the phone for you by issuing
  98. ATA when it sees RING, and if the modem has been set to
  99. answer automatically, this may confuse it and cause it to
  100. hang up.
  101.  
  102. MODEM.CFG has some additional (optional) lines which you can use:
  103.  
  104.   Line 1: Modem init string (+)
  105.   Line 2: Modem hang up string (+)
  106.   Line 3: Default baud rate (if not specified, 9600 is used)
  107.   Line 4: Receive buffer size (defaults to 2048 bytes)
  108.   Line 5: Transmit buffer size (defaults to receive buffer size)
  109.  
  110.   + Also present in Id's SERSETUP
  111.  
  112. Anything after the fifth line is ignored.
  113.  
  114. In addition, SERSETUP contains additional parameters you can
  115. specify on its command line.
  116.  
  117.   -com1, -com2, -com3, -com4:
  118.           Selects the communications port in a standard
  119.           configuration applicable to your machine. (+)
  120.  
  121.   -port 0x????:
  122.           Overrides the port address. This must be in the
  123.           format "0x????" where ???? is the port address in
  124.           hexadecimal. For example, the standard COM1 and
  125.           COM2 port addresses are 0x3F8 and 0x2F8
  126.           respectively. (+, but had a bug)
  127.  
  128.   -irq n:
  129.           Sets the IRQ number - this is the CPU interrupt
  130.           request line. Refer to your serial cards
  131.           documentation if you have an unusual port
  132.           configuration. Very often cards provide jumpers
  133.           which you can use to select the IRQ generated by
  134.           ports on the card. (+)
  135.   -answer:
  136.           Sets up SERSETUP in 'answer' mode. This
  137.           initialises the modem and waits for a call. (+)
  138.  
  139.   -dial n:
  140.           Causes SETSETUP to init the connected modem and
  141.           dial out to the other player. 'n' is the phone
  142.           number to dial (+).
  143.  
  144.   -baud n, -speed n:
  145.           These are both the same thing. Sets the DTE
  146.           communications rate (the baud rate used between
  147.           your computer and the modem or your computer and
  148.           another computer to which it is connected). This
  149.           is NOT NECESSARILY THE SAME SPEED AS THE
  150.           CONNECTION SPEED BETWEEN YOUR MODEM AND YOUR
  151.           FELLOW DOOMER's MODEM!
  152.  
  153.   -rx n
  154.           Sets the receive buffer size.
  155.   -tx n
  156.           Sets the transmit buffer size. The default I/O
  157.           buffer size is around 2K (2048 bytes) in both
  158.           directions. This is adequate at 9600. You may need
  159.           to increase this at higher connection speeds and
  160.           allow for smoother play, particularly if error
  161.           correction or compression are in use.
  162.  
  163.   -rt n:
  164.           Sets 16550/16550A/82510/TYPE3 receive trigger to
  165.           'n'. Valid values for the 16550x and TYPE3 are 1,
  166.           2, 4, 8 and 15. The 82510 supports 1 through 4. A
  167.           zero value sets the receive trigger to 1 unless
  168.           -rf 0 is used, in which case the FIFOs are
  169.           disabled (but why would anyone want to do that??!?
  170.           :-))
  171.  
  172.           NOTE: the switch is RT (for Receive Trigger), not RF.
  173.  
  174.   -tf n:
  175.           Sets the transmitter FIFO usage
  176.           16550/16550A/82510/TYPE3. This should almost
  177.           always be 15 or 16, irrespective of the -rt
  178.           setting. If you have a Western Digital or Silicon
  179.           Logic 16550A then use "-tf 15". Setting both this
  180.           parameter and -rt to 0 will disable the UART's
  181.           built-in FIFO. This value can be set to any value
  182.           from 0 through 16 on 16550A or TYPE 3, 0 to 8 on a
  183.           16550, 0 to 4 on an Intel 82510.
  184.  
  185.           NOTE: the switch is TF (for Transmit FIFO).
  186.  
  187.   -debug:
  188.           Trivia - makes the game unplayable, :-) but is
  189.           useful if you can't seem to raise a connection at
  190.           all between two systems. It echoes all outbound
  191.           transmissions and inbound packets received to the
  192.           screen to give an indication of what's going on.
  193.           Also useful to satisfy the curious.
  194.  
  195. All other parameters are passed on to DOOM unmodified.
  196.  
  197.  
  198. RUNNING DOOM
  199.  
  200. The BNU version of SERSETUP is command line compatible with
  201. the original SERSETUP command line, this one can also be run
  202. from DOOM's setup program. This is probably both easiest and
  203. best unless you need to fine tune things a little by
  204. overriding FIFO settings. Since the default speed and buffer
  205. sizes can be more permanently configured in MODEM.CFG, you
  206. can simply insert these in there and use SETUP.
  207.  
  208.  
  209. PLAYING SPEED
  210.  
  211. Baud rates used on remote (modem) connections is adequately
  212. covered above. Game speed will be affected mostly by the
  213. ability of the modems being used to transfer and pump data
  214. sufficiently fast. Some of the following, however, may
  215. apply to modem connections, but remember that on modem
  216. connects, the limitation is the modem devices and the effective
  217. transfer rate between them, not the 'baud rate' is a direct
  218. machine-to-machine null modem connection.
  219.  
  220. WITH DIRECT CONNECTS - FASTER ISN'T NECESSSARILY BETTER.
  221. 19200 is fairly good, 38400 equally as good as DOOM across
  222. IPX using 8-bit ethernet, but above that you may have to
  223. contend with performance problems due to overhead in
  224. servicing interrupts. Since DOOM runs under DPMI, it has
  225. to context switch (switch into V86 mode from native 386
  226. protected mode) every time the serial port triggers an
  227. interrupt, and faster speeds usually means that
  228. interruptions come more frequently and closer together (I
  229. hope to address at least some of this with a DPMI mode
  230. serial interrupt handler in a future release of SERSETUP).
  231.  
  232. If your baud rate is set to 38400 or greater and you are
  233. using 16550AFN uarts (these speed would probably not be
  234. useable without them!), the BNU SIO driver automatically
  235. adjusts usage of the UART FIFO's to accomodate to 8x8
  236. instead of the default at lower speeds of 16x14. If you know
  237. what this means and you wish to try using more of the UART
  238. FIFOs at the risk of some overhead which may slow play down,
  239. use -tf 16 -rt 14 on the command line to override the FIFO
  240. size. You'd probably have to be using a 486DX260 or
  241. thereabouts to see an improvement though - more than likely
  242. the effect will be the opposite.
  243.  
  244. The best results in the author's opinion for direct
  245. connections are running at 57600 baud using the default 8x8
  246. FIFO. This is very smooth, at least on a DOS 386DX40
  247. connected to an OS/2 system with a 486DX33 and provides even
  248. better playability than using the IPX driver (hmm.. maybe I
  249. should look the IPX driver over.. :-)).
  250.  
  251. I/O buffer speeds also have an effect on playing smoothness
  252. at high speeds (ie. above 9600). The size of the serial I/O
  253. buffers will effect how often communicated data is "thrown
  254. away" and replaced with fresh data either before being sent
  255. or after being received (if the receiving system is getting
  256. behind the data stream). Smaller buffers will cause data to
  257. be thrown away more frequently - this may actually improve
  258. play, whereas large buffers may slow things down a lot. In
  259. general, the slower the machine, the smaller the receive
  260. buffers you should use. Conversely, the slower the OTHER
  261. machine is, the smaller transmit buffer you should use.
  262. The actual size is relative to the baud rate (direct
  263. connections) or modem speeds (remote connections) being used.
  264.  
  265. WARNING: DON'T MAKE BUFFER SIZES LESS THAN 512 bytes! The driver
  266. will accept this and use them, but due to the 'throw away
  267. packet' algorthm used by Id's networking code to improve
  268. update speed, this will prevent all but the smallest packets
  269. from being accepted (the buffer must be able to accept at
  270. least 1 complete packet - the maximum packet size is 512
  271. bytes). At some point, where buffers are large enough a
  272. machine can cope with incoming packets and can send outgoing
  273. packets with no data being discarded at all. This provides
  274. the maximum detail to the remote system - and if both
  275. systems can handle it all will be well.
  276.  
  277.  
  278. PROBLEMS?
  279.  
  280. If you experience any problems whatsoever in using this
  281. driver, feedback to the author is certainly appreciated!
  282. While I can't hope to solve all your problems, provided that
  283. it can be diagnosed (which depends on the information you
  284. supply) many of them can be easily be fixed either by
  285. changing setup or by using alternative configuration
  286. parameters.
  287.  
  288. If you do have a problem report, please complete the form in
  289. SERSETUP.FRM and send this back with your report. This
  290. information contains the minimal set of data I usually need
  291. to resolve problems without having to ask you lots more
  292. questions about basics. Using the form will save us both
  293. time.
  294.  
  295. If you have any comments or suggestions, words or praise or
  296. feature requests, you can direct them to any of the Email
  297. addresses below - we'll be appreciative of the feedback and
  298. happy to look at anything which you may suggest.
  299.  
  300.  
  301. DOES THIS COST ANYTHING?
  302.  
  303. That's entirely up to you. This is not shareware, but
  304. DONATEware - if you find it useful then you are more than
  305. welcome to send a nominal sum of US$10 or equivalent to the
  306. address below. Furthermore, if you haven't already done so,
  307. REGISTER DOOM WITH ID! They deserve it for this awesome
  308. creation; registering will encourage the development of this
  309. type of game in the future, both from Id and others.
  310.  
  311. We also welcome any commercial enquiries regarding use and
  312. licensing of the BNU SIO driver.
  313.  
  314. Postal address (aka: where to send the moola :-)):
  315.  
  316.   PO Box 352
  317.   Doveton,
  318.   Victoria,  3177
  319.   Australia
  320.  
  321.  
  322. CONTACTING THE AUTHOR
  323.  
  324.   InterNet: davidn@csource.pronet.com
  325.             davidn@csource.oz.au
  326.             nugentex@brt.deakin.edu.au
  327.    FidoNet: david nugent 3:632/348 (3:50/0, 3:3/20)
  328.   Data/BBS: +61-3-793-2728 (PEP)
  329.             +61-3-794-7949 (V32b)
  330.      Voice: +61-3-793-2728
  331.  
  332. BNU is proud to be an all-Australian product!
  333.  
  334.