home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / MISSING / WWA1-422.ZIP / WWDOC422.ZIP / WWIVMODM.DOC < prev    next >
Text File  |  1991-11-30  |  25KB  |  531 lines

  1.                    WWIV v4 Modem Documentation
  2.               Copyright (c) 1988-1991 by Wayne Bell
  3.  
  4.  
  5.  
  6. Because so many people have problems with their modems, and having the
  7. BBS use them, I am writing a separate .DOC file to attempt to better
  8. describe modems, and how they need to be configured in order to run
  9. optimally with WWIV.  Additionally, this describes how WWIV v4.20 and
  10. later handles the modem, and how to add support for additional modem
  11. types.
  12.  
  13. The first thing you need to be aware of is that just about every modem
  14. manufactured for the IBM claims to be "100% Hayes compatible."  This
  15. doesn't actually mean that it is 100% compatible, but only that it is
  16. relatively close (would you buy a modem that is advertised as 99%
  17. compatible?).  With 9600 and faster modems, Hayes compatibility means
  18. very little.  Each modem handles high speed differently, and special
  19. support may be needed for each brand modem.
  20.  
  21. For external modems, one important feature is your modem cable. In order
  22. to work correctly with WWIV, the following pins need to be connected
  23. from the modem to the computer (all are pin numbers on the DB-25
  24. connected to the modem): 2,3,7,8,20.  If any of these are not connected,
  25. the modem probably won't work correctly, so you'll need a new modem
  26. cable. Fortunately, just about all straight serial cables manufactured
  27. correctly connect these pins.  If your modem cable has sealed connectors
  28. on the ends, don't tear it apart; it is probably fine.  However, If you
  29. made up your own cable (or had someone else make you up one), you might
  30. want to check it out.
  31.  
  32. For both external and internal modems, the first important setting you
  33. need to have on your modem is the carrier detect.  Most modems have two
  34. settings for carrier detect (or CD).  Either CD is ALWAYS ON, or CD
  35. tracks the state of the carrier.  Using the second setting, WWIV is
  36. correctly able to tell if a remote caller is connected by checking the
  37. CD lead.  But, for some damned fool reason, most modem manufacturers set
  38. it to default to the always on state.
  39.  
  40. On some modems, there will be a physical switch that you will need to
  41. check (and probably change).  On some modems (such as Hayes external),
  42. you'll need to pop off the face-plate and use a pencil or something to
  43. flip the DIP switch.  Other external modems may have the DIP switches
  44. located on the back panel.  So, pull out your modem manual, and check
  45. which switch affects the CD or DCD lead, and have it set so that it
  46. ISN'T ALWAYS ON.  Internal modems that have DIP switches place the
  47. switches on the modem card.
  48.  
  49. With some modems, there are "logical" (changed via the keyboard)
  50. switches that determine the CD status.  The keyboard command for the
  51. Prometheus 2400G, for example, is &C1.  The WWIV modem configurations
  52. default to &C1 for all 2400 or faster modems.
  53.  
  54. The second important setting is the data terminal ready line (DTR),
  55. which is like the CD lead.  The DTR lead is what WWIV uses to send a
  56. 'hang up' command to the modem.  Usually, the DTR lead is ON until WWIV
  57. turns the DTR lead OFF, at which time the modem should hang up.  Most
  58. modems can be set so that the modem will completely ignore the DTR
  59. status.  Also, by some quirk in the Universe, it is also usually set by
  60. the manufacturer to ignore DTR status instead of correctly looking at
  61. it.
  62.  
  63. So, if you have physical switches on your modem, whip out your manual
  64. again, and find which switch you need to check so that the modem will
  65. hang up when DTR is dropped.
  66.  
  67. For the modems without physical switches, you need to find the command
  68. for that setting.  For the 2400G, the correct command is &D2, which is
  69. described as, "Modem goes on-hook, assumes command state and disable
  70. auto-answer with ON-to-OFF transition."  Fortunately, (again), the WWIV
  71. modem configurations default to setting &D2 for all 2400 or faster
  72. modems.
  73.  
  74. Contained in the WWIV software ZIP file is a file named MODEMS.MDM.
  75. This file contains setups (or configurations) for most modems.  The .MDM
  76. file is what INIT reads to create a modem data file, which is what the
  77. BBS uses.  If none of the standard configurations in the MODEMS.MDM seem
  78. to work for your speed/ make/type modem, you have several options:
  79.  
  80. 1.  You can 'tweak' an existing configuration in the MODEMS.MDM file
  81.  
  82. 2.  You can build your own configuration and add it to the end of the
  83.     MODEMS.MDM file
  84.  
  85. 3.  You can create your own .MDM file (file name can be named any legal DOS
  86.     file name, but MUST have the .MDM extension
  87.  
  88. 4.  Write me for help
  89.  
  90. Modem configurations are placed in the BBS data directory, and the data
  91. itself is stored in text format (for easy editing with any ASCII
  92. editor). Only the file MODEMS.MDM can contain more than one
  93. configuration.  Any other *.MDM file can contain only one configuration,
  94. and does not require a "FILE:" line, as the file name (before the .MDM)
  95. is the name.  Don't worry, that will be explained later. Also, the
  96. MODEMS.MDM file is the only file that can contain auto-selection lines.
  97.  
  98. Described below are examples of the above options.  Additional
  99. information can be also be found in the WWIVINIT.DOC file.
  100.  
  101. WWIV defaults to the optimal setup for most non-MNP 300, 1200 and 2400
  102. baud modems.  These are the "H0300", "H1200" and "H2400" configurations,
  103. which are described below.  Some modems are a bit slow to respond after
  104. they send the RING result code, and do not properly answer the phone
  105. when it rings (despite WWIV saying that it has answered the phone).  If
  106. the BBS does not answer the phone when it should, try one of the "S"
  107. configurations - "H1200S" or"H2400S". This should take care of the
  108. problem.  The only difference between the "S" configurations and the
  109. normal ones is that the "S" configurations have a different ANSR:
  110. string, which as a "~" (tilde) at the beginning.  The tilde causes about
  111. an 0.5 second delay, giving the modem some time before the "ATA" is
  112. sent.  If this still doesn't work, try editing the appropriate
  113. configuration file, and adding an additional tilde on the beginning.
  114.  
  115. If one of the 300, 1200 or 2400 configurations does not work for your
  116. modem, you have two choices: 1) read about the WWIV modem configuration
  117. file, located below, and modify (tweak) the appropriate section to get
  118. it to work, or 2) contact me via one of the methods in the 'READ.ME'
  119. file, and see if I can get it to work for you (or if I already have an
  120. updated configuration file that supports your modem).  If you have a
  121. good understanding of how modems work, I'd suggest trying to figure it
  122. out on your own first.
  123.  
  124. In any case, if you have to modify a part of the default configuration
  125. file to get your modem to work, please send the updated configuration
  126. section (be sure to update the modem name and description also) to me,
  127. so that I may include that configuration in future releases of WWIV.
  128. This will help other sysops who purchase the same model modem.
  129.  
  130. Some MNP and 9600+ modems require special configuration.  Fortunately,
  131. most of the high-speed modems on BBS's (that I know of) are USRobotics
  132. modems, and WWIV already knows how to handle the USRobotics high-speed
  133. modems.
  134.  
  135. If WWIV does not currently support the type of high-speed modem that you
  136. have, you can try building your own configuration section for it.
  137. However, unless you are VERY familiar with how the modem works, I'd
  138. suggest not trying that.  Even if you are able to use your high-speed
  139. modem perfectly with your terminal program, the same configuration will
  140. NOT work for the BBS.  The reason is, in the terminal program, you (the
  141. user) are sitting there, and are able to interpret the result codes and
  142. fix things if problems occur.  There is nobody around to help a BBS if
  143. it gets confused.  Also, the BBS needs very specific information on the
  144. modem (including flow control, buffering, baud rates, result codes,
  145. etc.) in order to work properly for the variety of callers and modems
  146. that connect with it.
  147.  
  148. If you are unable to get your own configuration to work (or don't want
  149. to try), you'll pretty much have to contact me directly.  Unless you are
  150. trying this during the first few weeks after the release of v4.20, there
  151. is a good chance I will already have the configuration file for your
  152. modem, and can forward it (e-mail) it to you.  When contacting me, BE
  153. SURE to include as much information about your modem as possible.
  154. Telling me only that it's supposed to be a Hayes compatible modem just
  155. won't do it.  I need manufacturer, model number, maximum speed and what
  156. the modem returns when you enter 'AT'<enter> and 'AT0'<enter> when in a
  157. terminal program.
  158.  
  159. If I find I DON'T already have a configuration file for it, then I will
  160. need a fair amount of information on the modem to get it to work.  In
  161. all likelihood, if you call up technical support for your modem
  162. manufacturer, and ask them to send me (a developer) a copy of the
  163. manual, they probably won't mind.  With a manual, I can probably work it
  164. out from there (at no cost to you).  If you send me YOUR copy of the
  165. manual, don't expect me to mail it back.  I just don't have the time to
  166. be running to the post office every few days.
  167.  
  168. If you have a modem type that is not currently supported, I REALLY WOULD
  169. like to get a configuration setup for that modem and support it in WWIV.
  170. Please do not think that I am unwilling to support all types of modems.
  171. I do want to support them, and will put in the time necessary to get
  172. your modem working. But remember: I will need quite a bit of info on
  173. your modem type.
  174.  
  175.  
  176. /****************************************************************************/
  177.  
  178. Now, more about the WWIV modem configuration file.
  179.  
  180.  
  181. Creating a new section of the modem configuration file does not require
  182. any programming knowledge; it only requires in-depth, intimate knowledge
  183. of how the modem works.  I would not suggest that anyone try to set up
  184. their own modem configuration section from scratch; rather, take one of
  185. the existing configurations, and tweak it as necessary.
  186.  
  187. Modem configurations are stored in text format (for easy editing with
  188. any ASCII editor), in *.mdm files in the data directory.  The file
  189. 'modems.mdm' contains the default configurations (multiple
  190. configurations).  Any other *.mdm file can contain only one
  191. configuration, and does not require a "FILE:" line, as the file name
  192. (before the .mdm) is the name.  Don't worry, that'll be explained later.
  193. Also, the 'modems.mdm' file is the only file that can contain
  194. auto-selection lines.
  195.  
  196. Let's start out with a sample configuration (for a 2400 baud modem), and
  197. explain the various parts of it (this configuration is from the
  198. MODEMS.MDM file).
  199.  
  200.  
  201. ##############################################################################
  202. #
  203. # Hayes compatible 2400 baud modems.
  204. #
  205.  
  206. FILE: "H2400"
  207. NAME: "Hayes compatible 2400"
  208. NOTE: "If the BBS doesnt answer the phone, try the H2400S configuration."
  209. SETU: "AT&C1&D2Q0V1{"
  210. INIT: "ATC1E0F1H0M0Q0V1X4S0=0S2=1{"
  211. ANSR: "ATA{"
  212. PICK: "ATH1{"
  213. HANG: "ATH0{"
  214. DIAL: "ATDT"
  215. SEPR: ""
  216. DEFL: MS=2400 CS=2400 EC=N DC=N AS=N FC=N
  217. RESL: "OK"              "Normal"        NORM
  218. RESL: "RING"            "Ring"          RING
  219. RESL: "NO CARRIER"      "No Carrier"    DIS
  220. RESL: "ERROR"           "Error"         ERR
  221. RESL: "NO DIAL TONE"    "No Dial Tone"  NDT
  222. RESL: "NO DIALTONE"     "No Dial Tone"  NDT
  223. RESL: "BUSY"            "Busy"          DIS
  224. RESL: "NO ANSWER"       "No Answer"     DIS
  225. RESL: "RINGING"         "Ringing"       RINGING
  226. RESL: "VOICE"           "Voice"         DIS
  227. RESL: "CONNECT"         "300"           MS=300   CS=300   CON
  228. RESL: "CONNECT 1200"    "1200"          MS=1200  CS=1200  CON
  229. RESL: "CONNECT 2400"    "2400"          MS=2400  CS=2400  CON
  230.  
  231.  
  232. As you can see, the modem configuration is made-up of three groups:
  233. The STRING lines (FILE, NAME, NOTE, SETU, INIT, ANSR, PICK, HANG, DIAL,
  234. SEPR), the DEFAULT SETTINGS (DEFL), and the RESULT CODE lines (RESL).
  235.  
  236. The "FILE" line gives the "file name" of the configuration.  If you took
  237. the configuration above (minus the FILE: line), copied it from the
  238. modems.mdm file, and put it in a "H2400.MDM" file in the data directory,
  239. everything would work exactly the same.  The "FILE" entry just allows
  240. you to put multiple configurations into the 'modems.mdm' file, and not
  241. clutter up your data directory with lots of *.mdm files that you don't
  242. need.
  243.  
  244. Each of the strings allows control characters and delays to be
  245. specified.  A "{" is converted to a carriage-return.  A "~" is converted
  246. into an 0.5 second delay.  Any string such as "^J" is converted into the
  247. specified control character (here, control-J, or a linefeed).  Any
  248. string such as "\^" or "\~" quotes the character after it, allowing you
  249. to put a ^ or a ~ into the string.  Also, each string is terminated by
  250. either a single or double quote.  If you need to actually have a ' or "
  251. in the string, you will need to 'quote' the quote, as in \' or \".
  252.  
  253. "NAME:" gives a textual name/description of the modem, which is
  254. displayed in INIT section 5, along with the file name, which is used to
  255. help select the correct configuration.
  256.  
  257. "NOTE:" A note that is printed out for the user when the specific modem
  258. configuration is selected, giving any caveats for the configuration.
  259. Multiple NOTE: lines may be specified, however you will need to end each
  260. line with "^M^J" (carriage-return/line-feed), so it looks nice for the
  261. user.
  262.  
  263. "SETU:" gives the setup string for the modem.  This string is sent out
  264. once each time the BBS is loaded and run.
  265.  
  266. "INIT:" gives the initialization string for the modem.  This is sent out
  267. to the modem when the BBS is first run (but after the SETUp string), and
  268. after each caller hangs up.
  269.  
  270. "ANSR:" gives the string sent to the modem to tell it to answer the
  271. phone (such as after the RING result code is received).
  272.  
  273. "PICK:" gives the string to pick up the modem (take the phone off-hook),
  274. to prevent users from calling and getting a ring (thus thinking the BBS
  275. is down).
  276.  
  277. "HANG:" gives the string t hang up the phone (after the PICK string is
  278. sent).
  279.  
  280. I believe every modem in the world will probably use the same strings
  281. for ANSR, PICK, and HANG.  (Except, some modems (as noted earlier) are
  282. slow, and need the answer string to be "~ATA{" (pause 1/2 second before
  283. sending the answer string).
  284.  
  285. "DIAL:" gives the dial prefix.  If your phone line does not support
  286. tones, then changing it to "ATDP" will use pulse dialing.  Putting
  287. "ATB1DT" will cause a USR Dual Standard to dial out with the HST
  288. protocol (instead of V.32, since "B0" is in the init string).
  289.  
  290. "SEPR:" gives separation characters for the result codes.  This will be
  291. discussed later, under the high-speed modem section.
  292.  
  293. "DEFL:" gives the default modem setup.  It gives, essentially, modem
  294. result configuration info.
  295.  
  296. "RESL:" gives modem result code info.  There are two strings, then the
  297. result configuration info.
  298.  
  299. The first string is the actual "result code" received from the modem.
  300. Here, verbose result codes are used.  (All result codes are converted to
  301. uppercase).
  302.  
  303. The second string is the description of the result code, presented to
  304. the user.
  305.  
  306. The result configuration info gives information describing the modem
  307. result code.  The possible strings in this area are:
  308.  
  309. NORM          normal state of modem
  310. RING          phone is ringing
  311. RINGING       remote phone is ringing
  312. ERR           error encountered
  313. DIS           disconnected (No connection)
  314. NDT           no dial tone (same as DIS)
  315. CON           connection established
  316. MS=           modem speed
  317. CS=           com port speed
  318. AS=           asymmetrical baud rates (Y/N)
  319. EC=           error correcting (Y/N)
  320. DC=           data compression (Y/N)
  321. FC=           flow control (Y/N)
  322.  
  323. For 2400 or slower modems, you'll pretty much just have "MS=2400 CS=2400
  324. CON" (or whatever the baud rate is).  The other flags are used for
  325. high-speed modems.
  326.  
  327. So, how do you modify this information?  You pretty much take it as-is,
  328. and modify it.  Say your modem had a result code indicating connection
  329. at 600 baud.  You'd then just add a line saying:
  330.  
  331. RESL: "CONNECT 600"     "600"           MS=600   CS=600   CON
  332.  
  333. And that would be it.  If you needed additional initialization strings
  334. sent to the modem, then you'd just add that into either the setup or
  335. init strings (depending on if you needed it sent only once, or for each
  336. caller).  Beware, though: Most modems only have a 40 character buffer,
  337. so if you make the strings too long, it might not work.
  338.  
  339.  
  340. Thus, modifying a 2400 or lower modem configuration should be fairly
  341. simple (if you know what you need it to do).  9600's, however, are much
  342. more complicated.
  343.  
  344. If/when you need to modify a modem configuration, you should first take
  345. the configuration you are starting with, and copy it out of the
  346. 'modems.mdm' file into a separate file.  If, say, you need to tweak the
  347. H2400 configuration for your Prometheus modem, you'd copy the H2400
  348. configuration (minus the FILE: "H2400") into a file, say, "PROMETH.MDM"
  349. in your data directory.  Then you'd modify the NAME: and NOTE: lines for
  350. the new modem type.  Then, when you're done, you can easily distribute
  351. the new configuration (as the file PROMETH.MDM) to other people who
  352. might need it (and also send a copy back to me, so I can include it in
  353. future versions of the modems.mdm file).
  354.  
  355. /****************************************************************************/
  356.  
  357. The configuration for the latest USRobotics high-speed modems is:
  358.  
  359.  
  360. ##############################################################################
  361. #
  362. # Newest version of USR HST/V.32bis/DS modems
  363. #
  364. # This really returns the optimal information.
  365. #
  366.  
  367. FILE: "USRC31"
  368. NAME: "USR Courier (Newest, With rectangular LEDs/V.32bis)"
  369. CONF: "ATZ{~~~~~~~AT{~~AT&W{"
  370. SETU: "ATC1E0F1H0M0Q0V1X6&A3&B2&C1&D2{~~AT&H1&I0&K2&N0&R2&S0S0=0S2=1{"
  371. INIT: "ATB0H0M0{"
  372. ANSR: "ATA{"
  373. PICK: "ATH1{"
  374. HANG: "ATH0{"
  375. DIAL: "ATB1DT"
  376. SEPR: "/"
  377. DEFL: MS=38400 CS=38400 EC=N DC=N AS=N FC=Y
  378. RESL: "OK"              "Normal"        NORM
  379. RESL: "RING"            "Ring"          RING
  380. RESL: "NO CARRIER"      "No Carrier"    DIS
  381. RESL: "ERROR"           "Error"         ERR
  382. RESL: "NO DIAL TONE"    "No Dial Tone"  NDT
  383. RESL: "BUSY"            "Busy"          DIS
  384. RESL: "NO ANSWER"       "No Answer"     DIS
  385. RESL: "RINGING"         "Ringing"       RINGING
  386. RESL: "VOICE"           "Voice"         DIS
  387. RESL: "CONNECT"         "300"           MS=300   CS=300   CON
  388. RESL: "CONNECT 1200"    "1200"          MS=1200  CS=1200  CON
  389. RESL: "CONNECT 2400"    "2400"          MS=2400  CS=2400  CON
  390. RESL: "CONNECT 4800"    "4800"          MS=4800  CS=4800  CON
  391. RESL: "CONNECT 7200"    "7200"          MS=7200  CS=7200  CON
  392. RESL: "CONNECT 9600"    "9600"          MS=9600  CS=9600  CON
  393. RESL: "CONNECT 12000"   "12000"         MS=12000 CS=12000 CON
  394. RESL: "CONNECT 14400"   "14400"         MS=14400 CS=14400 CON
  395. RESL: "ARQ"                             EC=Y     CS=38400
  396. RESL: "HST"             '/HST'          AS=Y
  397. RESL: "V32"             '/V.32'         AS=N
  398. RESL: "MNP"             '/MNP'          EC=Y
  399. RESL: "LAPM"            '/LAPM'         EC=Y
  400. RESL: "MNP5"            '/MNP5'         DC=Y
  401. RESL: "V42BIS"          '/V.42bis'      DC=Y
  402. RESL: "NONE"                            EC=N
  403. RESL: "SYNC"
  404.  
  405. As you can see, much of it is the same.
  406.  
  407. One of the differences is that the setup string is divided into two
  408. portions, to get around the (stupid) 40 character buffer in the modem.
  409.  
  410. Another major difference is the "CONF:" line.  This configuration line
  411. is sent out from the INIT program, when the specific modem configuration
  412. is selected.  It is sent out at the maximum baud rate the modem runs at.
  413. For the USRobotics here, it sets the baud rate in the NRAM to 38400
  414. baud.  This is important, as this stored baud rate is used by the modem
  415. when an error-correcting connection is made.  Modems such as the
  416. Compucom (which does not have any NRAM) will not need a CONF: line.
  417.  
  418. A subtle, but important, change is that the SEPR: is now set to "/". The
  419. USRobotics result codes are sent out in strings such as "CONNECT
  420. 9600/ARQ/V32/LAPM/V42BIS".  The SEPR: "/" tells the BBS to split up that
  421. big result code into several "partial result codes", at the separator
  422. character.  Thus, the above result code will be split into "CONNECT
  423. 9600", "ARQ", "V32", "LAPM, "V42BIS", which is much easier for the BBS
  424. to handle.  Each one of the partial result codes is then processed
  425. independently, in order.  All of the partial result codes are processed
  426. before any connected/disconnected decision is made by the BBS.
  427.  
  428. Now, the "DEFL:" line here says that, by default, the state of the modem
  429. is (in order) running at 38400 bps, non-error-correcting, no data
  430. compression, not asymmetrical, and flow control IS needed.  When a
  431. result code is received, all the modem settings are assumed to be at the
  432. DEFL state.  The result configuration info for each partial result code
  433. modifies each field independently, starting from the DEFL state.
  434.  
  435. Each of the "CONNECT" partial result codes simply sets both the modem
  436. speed (MS=) and the com port speed (CS=) to the baud rate specified,
  437. same as for 2400 baud modems.
  438.  
  439. Suppose we got the result code "CONNECT 14400/ARQ/HST/HST/V42BIS".
  440.  
  441. We start out at the default:
  442.  
  443. Partial result code             modem settings after processing
  444.  
  445. At beginning, DEFL              MS=38400 CS=38400 EC=N DC=N AS=N FC=Y
  446. "CONNECT 14400"                 MS=14400 CS=14400 EC=N DC=N AS=N FC=Y
  447. "ARQ"                           MS=14400 CS=38400 EC=Y DC=N AS=N FC=Y
  448. "HST"                           MS=14400 CS=38400 EC=Y DC=N AS=Y FC=Y
  449. "HST"                           MS=14400 CS=38400 EC=Y DC=N AS=Y FC=Y
  450. "V42BIS"                        MS=14400 CS=38400 EC=Y DC=Y AS=Y FC=Y
  451.  
  452. Which means:
  453.  
  454. MS=14400        The user's throughput is 14400 bps
  455. CS=38400        The BBS should talk to the modem at 38400 bps.
  456.                 (Due to the &B2 setting)
  457. EC=Y            Error correction is active (LAPM/MNP2-4)
  458. DC=Y            Data compression is active (V.42bis/MNP5)
  459. AS=Y            Asymmetrical baud rates.  This is because, with the HST
  460.                 connection, it is only 14400 bps in one direction.  The
  461.                 other direction is only 450 bps.
  462. FC=Y            Flow control is still active.
  463.  
  464. The "CON" at the end of each of the "CONNECT" lines means that the user
  465. is connected.  Even though the "CON" is processed in the first partial
  466. result code, the remaining partial result codes are still processed
  467.  
  468. Note that, for the HST, V32, etc, partial result codes, the description
  469. of the partial result code is in single-quotes (vs double-quotes for the
  470. CONNECT descriptions).  If the description is in double-quotes, then any
  471. previous descriptions is OVERWRITTEN.  If the description is in
  472. single-quotes, then the description is APPENDED to any previous partial
  473. description.  For the result code above, the description would end up
  474. being "14400/HST/HST/V.42bis"
  475.  
  476. For the ARQ partial result code, there is no description, and so the
  477. description (so far) is unmodified by the "ARQ".
  478.  
  479. How do you make your own modem configuration file?  A lot of it will
  480. probably be the same as other configurations (ANSR, PICK, HANG, DIAL,
  481. the first few RESL), however you will certainly have to completely
  482. re-write the SETU and INIT strings.  You will also almost certainly have
  483. to modify the DEFL line, and the RESL lines for the connecting result
  484. codes.
  485.  
  486. There are also length limits on the strings:
  487.  
  488. file: 8 chars
  489. name: 80 chars
  490. note: 4096 chars TOTAL (for however many NOTE: lines you have)
  491. conf: 160 chars
  492. setu: 160 chars
  493. init: 160 chars
  494. ansr: 80 chars
  495. pick: 80 chars
  496. hang: 80 chars
  497. dial: 80 chars
  498. sepr: 9 chars
  499. result code from modem: 40 chars
  500. result code description: 30 chars
  501.  
  502. Also: the sepr: string may contain multiple chars.  It is not really a
  503. "string" as a "list of chars".  If you know C, this string is passed to
  504. strtok().
  505.  
  506. /****************************************************************************/
  507.  
  508. Auto-selection: WWIV maintains a database for automatic modem type
  509. detection in the MODEMS.MDM file.  The data comprise a sort of "state
  510. machine".  When trying to detect a certain type of high-speed modem, it
  511. starts out in state 1.  If/when it gets to state 0, then it has detected
  512. the modem type.  If it passes through the entire list without passing
  513. any of the rules, then it determines that it cannot determine the modem
  514. type.
  515.  
  516. The first column is the "start" state.  The second is the "end" state.
  517. If the current state is equal to the "start" state, then the string in
  518. the fourth column is sent to the modem.  If the response is equal to the
  519. string in the fifth column, then the state transition is made, and the
  520. current state is set to the "end" state, and the currently detected
  521. modem type is set to the string in the third column.
  522.  
  523. Note that the auto-selection data is used ONLY if the modem responds at
  524. 9600 baud or higher.
  525.  
  526. Also note that it is not important for you to put in auto-selection data
  527. to detect your modem type.  The auto-selection stuff is only a nicety,
  528. and you can always go into init section 5 and pick whichever modem data
  529. you want.
  530.  
  531.