home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format 54 / af054sub.adf / nm_2_14.lha / NullModem.doc < prev   
Text File  |  1993-09-26  |  9KB  |  224 lines

  1.  
  2.                          nullmodem.device  v2.14
  3.  
  4.                           (c) 1993 Iain Hibbert
  5.  
  6.            nullmodem.device is a software device, that imitates
  7.            two modems and a phone line, on one machine. I wrote
  8.            it whilst looking at the WPL scripting language,  so
  9.            that I could play around without having to spend any
  10.            money on expensive  phone calls,  but it can be used
  11.            for testing various other programs.
  12.  
  13. 1. Installation
  14. ---------------
  15.  
  16.      This archive should contain two files:
  17.  
  18.         nullmodem.device
  19.         NullModem.doc
  20.  
  21.      Copy nullmodem.device to devs:nullmodem.device, and Read NullModem.doc
  22.  
  23.     NOTE: nullmodem.device now requires at least v36 dos.library
  24.  
  25. 2. Usage
  26. --------
  27.  
  28.      There are 10 units available, connected in pairs (you will  not  likely
  29.  need more than one pair, but it was as easy to provide 5)
  30.  
  31.                     Unit 0 <=> Unit 1
  32.                     Unit 2 <=> Unit 3
  33.                     Unit 4 <=> Unit 5
  34.                     Unit 6 <=> Unit 7
  35.                     Unit 8 <=> Unit 9
  36.  
  37.      Set up your Terminal/Mailer/BBS's to use one side each of  the  device,
  38.  you should be able to  select  a  replacement  for  the  serial.device  and
  39.  alternative unit numbers easily enough in the software or config files.  In
  40.  use, it emulates a simple hayes modem, with a limited AT command set:
  41.  
  42.     D           Dial
  43.  
  44.         this command causes the other side to RING for the number of
  45.         seconds specified in S1 (Dial Timeout) and returns NO CARRIER
  46.         if there was no answer. Anything after the D is discarded
  47.  
  48.     A           Answer
  49.  
  50.         attempts to answer the phone, returning the CONNECT message or
  51.         NO CARRIER if nobody was ringing us. Anything after the A is
  52.         discarded
  53.  
  54.     S<r>=<v>    set S register
  55.  
  56.         <r> is the register number, up to 077 (octal)
  57.         <v> is the value to set it to, values 0-0377 (octal)
  58.  
  59.         NOTE: both numbers need to be given in Octal
  60.  
  61.         The S registers you can play with are:
  62.  
  63.         #           Description                             Default
  64.  
  65.         0       AutoAnswer after # of rings                   000
  66.         1       Debugging Level (see section 4 below)         000
  67.         2       Dial Timeout                                  020
  68.         3       Answer Delay                                  002
  69.         4       which Speed to report (section 3 below)       012
  70.         5       Backspace character value                     010
  71.         7       which Protocol to report (section 3 below)    011
  72.        12       Toggle local echo on/off                      001
  73.  
  74.     L       List modem version information, and S Register values
  75.  
  76.     F       sets the S-Registers to their default values
  77.  
  78.     W       writes the S registers to a global environment variable,
  79.             called NullModem/Unit_X, where X is the unit number
  80.             NB: you need to create the directory yourself
  81.  
  82.     Z       tries to load the ENV: variable for the unit, otherwise
  83.             will reset to the default settings
  84.  
  85.     Examples:
  86.  
  87.         ATZS1=1S4=5S7=7D123456  ; enable debugging, set connect message to
  88.                                 ; CONNECT 2400/REL-LAPM-COMP (v42bis), and
  89.                                 ; dial the other unit
  90.  
  91.         ATA                     ; attempt to answer
  92.  
  93. NOTE: The device now loads its defaults from the environment variable
  94.     when it is opened. If you want it to always load the same values,
  95.     just copy the ENV:NullModem/Unit_#? files to ENVARC:NullModem/
  96.  
  97. 3. Connect Speeds
  98. -----------------
  99.  
  100.      The Nullmodem device doesn't have connect speeds as such, because it is
  101.  not connected to any hardware.. but the CONNECT  message  is  configurable,
  102.  via a couple of S registers.
  103.  
  104.            Value          Speed (S4)          Protocol (S7)
  105.  
  106.             00              none                none
  107.             01              103                 /NONE
  108.             02              V21                 /SYNC
  109.             03              300                 /REL
  110.             04              1200                /REL-MNP
  111.             05              2400                /REL-MNP-COMP
  112.             06              4800                /REL-LAPM
  113.             07              7200                /REL-LAPM-COMP
  114.             10              9600                /V32
  115.             11              12000               /ARQ
  116.             12              14400               /ARQ/HST
  117.             13              16800               /ARQ/HST/HST/V42BIS
  118.             14              19200               /ARQ/HST/HST/MNP5
  119.             15                                  /ARQ/V32
  120.             16                                  /ARQ/V32/LAPM/V42BIS
  121.             17                                  /ARQ/V32/LAPM/MNP
  122.             20                                  /ARQ/V32/LAPM/MNP5
  123.             21                                  /ARQ/LAPM/V42BIS
  124.             22                                  /V42BIS
  125.  
  126.     The connect messages may be different for each side of the device
  127.  
  128. 4. Debug Levels
  129. ---------------
  130.  
  131.      Debugging info is sent to the internal serial port at 9600 baud, or you
  132.  can use Sushi to print it in a console window, debugging  levels  are  0-2,
  133.  from 0 = No debugging info to 2 = loads of useless junk. 1 is probably  the
  134.  most useful. If you have a modem on the internal serial port that you  want
  135.  to use while testing, do not enable debugging unless you run Sushi..
  136.  
  137. 5. Technical Details
  138. --------------------
  139.  
  140.      The following device commands are not fully implemented:
  141.  
  142.         CMD_RESET       ;   there is nothing to reset, I don't think
  143.  
  144.         CMD_START       ;   these translate to XON/XOFF flow control,
  145.         CMD_STOP        ;   so you can't use that either.
  146.  
  147.         SDCMD_BREAK     ;   if anybody needs this, let me know what you
  148.                         ;   need it to do..
  149.  
  150.         SDCMD_SETPARAMS ;   there are no relevant parameters to set
  151.  
  152.         SDCMD_QUERY     ;   not fully implemented, it returns the number of
  153.                         ;   characters in the buffer, and Carrier Detect,
  154.                         ;   but nothing else
  155.  
  156.  
  157.      I have partly implemented the ASDG extension command (io_Command = 16),
  158.  
  159.         ASDG_SET_CONTROL_LINES  ;   provides user control for RTS and DTR
  160.                                 ;   currently you can only lower DTR which
  161.                                 ;   causes the modem to hang up.
  162.  
  163.      Note that the modem does not handle +++ATH type hangups, you  must  use
  164.  either the Commodore suggested method of closing the serial  device  for  a
  165.  moment, or the above ASDG extension.
  166.  
  167. 6. Copyright
  168. ------------
  169.  
  170.      nullmodem.device is (C) 1993 Iain Hibbert and it's freely distributable
  171.  as long as all of its files are included in  their  original  form  without
  172.  additions, deletions, or modifications of any kind, and only a nominal  fee
  173.  is charged for its distribution.
  174.  
  175.      This software is provided "AS IS" without warranty of any kind,  either
  176.  expressed or implied. Reading Legal mush can turn your brain to  guacamole.
  177.  By using nullmodem.device you accept either the whole risk or  the  quality
  178.  and performance of the program.
  179.  
  180. 7. The Author
  181. -------------
  182.  
  183.       Iain Hibbert           UUCP:      plunky@closet.wizdom.royle.org
  184.                              FidoNet:   2:255/171.33
  185.                              AmigaNet:  39:136/1.33
  186.  
  187.      You should probably be able to reach me at one of the above  addresses,
  188.  if you are using Comms software regularly. Please contact me  if  you  have
  189.  any  problems  or  suggestions.  I  do  not  guarantee  to  implement   any
  190.  suggestions or fix any bugs, but it can't hurt to try.
  191.  
  192. 8. History
  193. ----------
  194.  
  195.     1.0     first public release, not widely distributed
  196.  
  197.     2.0     Enhanced the modem emulation loads:
  198.  
  199.             - Multiple RING's (# configurable)
  200.             - Configurable CONNECT messages
  201.             - RunTime configurable debug level
  202.             - Auto Answer
  203.  
  204.              A side effect of Multiple RING's is that the modem  now
  205.              delays  before sending any CONNECT/BUSY message, so those
  206.              programs that flush  the  buffer or otherwise ignore
  207.              characters immediately after a dial/answer command will
  208.              now work correctly.
  209.  
  210.     2.1     Added /V42BIS protocol
  211.  
  212.     2.2     made sure it wouldn't crash if bad values were input for
  213.             the protocol & connect speed
  214.  
  215.     2.3     Added Local echo ON/OFF register
  216.  
  217.     2.13    Requires V36 dos.library from this point on!
  218.  
  219.             Added saving to memory (ENV: variable), and automatic
  220.             initialisation, so that programs which can't be configured
  221.             to send init strings will work.
  222.  
  223.     2.14    changed the ENV: variable to be a directory of variables
  224.