home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / packet / pmp10 / pmp.doc < prev    next >
Text File  |  1991-03-22  |  25KB  |  655 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.                                                    PMP -- Poor Man's Packet
  9.  
  10.                                                         Version 0.93 (beta)
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.                                              A software TNC for the IBM PC.
  32.  
  33.  
  34.  
  35.                                                                          by
  36.  
  37.                                                      Andrew C. Payne, N8KEI
  38.                                                                 April, 1990
  39.  
  40.  
  41.  
  42.           Disclaimer:
  43.  
  44.                No guarantees  or warranties  of any kind are expressed
  45.                or implied.  This program is  supplied "AS  IS" without
  46.                any warranty  of any kind, either expressed or implied,
  47.                including, but not limited  to, the  implied warranties
  48.                of  merchantability   and  fitness   for  a  particular
  49.                purpose.  Neither the author  nor  anyone  else  who as
  50.                been involved  in the creation, production, or delivery
  51.                of  this  program  shall  be  liable  for  any  direct,
  52.                indirect,   or   consequential  or  incidental  damages
  53.                arising  out  of  the  use  or  inability  to  use this
  54.                program.
  55.  
  56.  
  57.                          Copyright (c) 1990 Andrew C. Payne
  58.                                 All rights reserved.
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                                   TABLE OF CONTENTS
  65.                                   =================
  66.  
  67.  
  68.           Introduction . . . . . . . . . . . . . . . . . . . . . . . .    3
  69.  
  70.           Getting Started  . . . . . . . . . . . . . . . . . . . . . .    5
  71.                Hardware Requirements . . . . . . . . . . . . . . . . .    5
  72.                Installing, Configuring, and Running PMP  . . . . . . .    5
  73.                Configuration Commands  . . . . . . . . . . . . . . . .    5
  74.  
  75.           Using PMP  . . . . . . . . . . . . . . . . . . . . . . . . .    9
  76.                Keyboard Commands . . . . . . . . . . . . . . . . . . .    9
  77.  
  78.           Modem Interface  . . . . . . . . . . . . . . . . . . . . . .   11
  79.  
  80.           PMPTEST  . . . . . . . . . . . . . . . . . . . . . . . . . .   12
  81.                Commands  . . . . . . . . . . . . . . . . . . . . . . .   12
  82.                Getting your modem to work with PMP . . . . . . . . . .   13
  83.  
  84.           Beta Test Notes  . . . . . . . . . . . . . . . . . . . . . .   14
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.                                     Introduction
  92.                                     ============
  93.  
  94.  
  95.           What is PMP?
  96.  
  97.                PMP  is  a  packet  radio  program  that  uses  the software
  98.                approach.  In a  nutshell, this  means that  the things that
  99.                are  normally  done  with  hardware  in  a  conventional TNC
  100.                (Terminal Node Controller) are instead done with software in
  101.                your computer.  The advantage of this method is that most of
  102.                the hardware of a normal TNC  is  no  longer  required.   In
  103.                simplifying the  hardware, you  lose some of the flexibility
  104.                of a TNC.
  105.  
  106.  
  107.           Who is PMP intended for?
  108.  
  109.                PMP is intended for anyone with an IBM PC type  computer who
  110.                wants to get into packet very inexpensively.  PMP is perfect
  111.                for someone who wants to get his/her feet wet before sinking
  112.                a lot  of money  into equipment.   PMP is also ideal for the
  113.                scanner listener who wants  to  monitor  packet  but doesn't
  114.                want to  spend another scanner's worth of money.  Because of
  115.                the minimal hardware required, PMP is also good for portable
  116.                setups.   Modems can  be constructed  to actually fit inside
  117.                VHF/UHF radios, eliminating the need for  a separate  TNC or
  118.                modem box.
  119.  
  120.  
  121.           What do I need to run PMP?
  122.  
  123.                PMP  requires  an  IBM  PC/AT/386/486  or compatible with at
  124.                least 256K of memory and a parallel printer port (many video
  125.                cards have  a parallel port built in).  You also need a Bell
  126.                202  type  modem,  VHF/UHF  radio,  and  cables  to  connect
  127.                everything up.  Finally, you need the PMP software.
  128.  
  129.  
  130.           What are the advantages of PMP over a "regular" TNC?
  131.  
  132.                The advantages  of PMP  are basically  those outlined above:
  133.                minimal hardware and low price.  The only  hardware required
  134.                is a  1200 baud  Bell 202 modem and cables to connect to the
  135.                computer and radio.  We have a single-chip  design that fits
  136.                on a  2 inch  square board  and costs  less than $40.  Also,
  137.                this crystal controlled modem  is a  much better  modem than
  138.                those in many of the TNCs.
  139.  
  140.  
  141.           What do I lose by using PMP instead of a TNC?
  142.  
  143.                PMP doesn't  have all  of the flexibility of a TNC.  It runs
  144.                on PCs ONLY.  Also, since PMP is a program  on your  PC, you
  145.  
  146.  
  147.  
  148.  
  149.  
  150.                can't leave  PMP on  (to act  as a  digipeater, for example)
  151.                without tying  up your  entire computer.   Also,  all of the
  152.                packet software  for the PC designed to work with TNCs (such
  153.                as YAPP, the W0RLI BBS, and KA9Q's TCP/IP software) will not
  154.                work with PMP.
  155.  
  156.  
  157.           How was PMP developed?
  158.  
  159.                DIGICOM>64  for  the  Commodore  64  (which  uses  the  same
  160.                software approach) has been  around for  a while.   With the
  161.                popularity  of  DIGICOM>64  and  the  growing  popularity of
  162.                inexpensive IBM PC clones, we asked ourselves:   "Has anyone
  163.                done a  DIGICOM>64-like program  for the  PC?"  Some queries
  164.                about such a program resulted in answers like:  "Nope, never
  165.                heard of  such a  thing.  Sure would be a good idea though."
  166.                At that point, we decided to start the PMP project.   Kevin,
  167.                WB2EMS, concentrated on the hardware design and Andy, N8KEI,
  168.                developed the software.    Within  a  few  weeks,  the first
  169.                prototype  modem  was  built,  and  two weeks after that PMP
  170.                sending and receiving its first packets.
  171.  
  172.  
  173.           I have some more questions.  How can I get in touch with you?
  174.  
  175.                For software  and general  questions, problems, suggestions,
  176.           or comments, write to:
  177.  
  178.                     Andrew C. Payne, N8KEI
  179.                     Route 3, Box 78-Q
  180.                     Berkeley Springs, WV  25411
  181.  
  182.                Or, if you have access to Internet e-mail, write to:
  183.  
  184.                     payne@tcgould.tn.cornell.edu
  185.  
  186.  
  187.                For hardware  questions, problems, suggestions, or comments,
  188.           write to:
  189.  
  190.                     Kevin Feeney, WB2EMS
  191.                     468 Hines Road
  192.                     Ithaca, NY  14850
  193.  
  194.  
  195.  
  196.  
  197.  
  198.                                    Getting Started
  199.                                    ===============
  200.  
  201.           Hardware Requirements
  202.           ---------------------
  203.  
  204.                The following hardware is required to run PMP:
  205.  
  206.              - an IBM PC/XT/AT/386/486 or compatible with at least 256K RAM
  207.                and a parallel printer port
  208.  
  209.              - a Bell 202 type 1200 baud modem
  210.  
  211.              - A VHF/UHF radio
  212.  
  213.              - cables  to  connect  the  printer  port to the modem and the
  214.                modem to the radio
  215.  
  216.  
  217.           Installing, Configuring, and Running PMP
  218.           ----------------------------------------
  219.  
  220.                Installing PMP is very  straightforward: only  two files are
  221.           required, one is optional:
  222.  
  223.                PMP.EXE        The PMP program
  224.                PMP.CFG        The Configuration file
  225.                PMPTEST.EXE    (optional)  An alignment/test program
  226.  
  227.                To install  PMP on your system, copy these files to a floppy
  228.           disk or a subdirectory on your  hard disk.   To  start, just type
  229.           'PMP' from  the DOS  prompt and  you should see the opening title
  230.           screen in a few seconds.
  231.  
  232.                The  configuration  file,  PMP.CFG,   contains  options  and
  233.           parameters  specific  to  your  packet  station:   your callsign,
  234.           timing parameters, and other items described in detail below.
  235.  
  236.                The PMP.CFG file is  a  an  ASCII  text  file  which  can be
  237.           modified with  any standard text editor (such EDLIN supplied with
  238.           DOS).  Lines that begin with  a pound  sign (#)  are comments and
  239.           are ignored.  All other lines are configuration commands for PMP,
  240.           listed below:
  241.  
  242.           Configuration Commands
  243.           ----------------------
  244.  
  245.           mycall <callsign>
  246.                Sets your callsign in the form of N8KEI-XX, where XX  is the
  247.                SubStation  Id  (SSID).    The SSID is used to differentiate
  248.                between  multiple  stations  with  the  same  callsign (e.g.
  249.                N8KEI, N8KEI-1,  N8KEI-2, etc).   The  SSID ranges from 0 to
  250.                15, and 'N8KEI' and 'N8KEI-0' are equivalent.  Your callsign
  251.                MUST be correct before transmitting.
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.           txdelay <milliseconds>
  259.                Sets  the  transmitter  delay.    This is the time PMP waits
  260.                after keying the transmitter and before sending data.   Slow
  261.                transmitters  (synthesized  rigs,  rigs  with  relays in the
  262.                transmit path, etc) will  require longer  to stabilize after
  263.                the transmit  line is  keyed.  These slow rigs need a larger
  264.                'txdelay'.
  265.  
  266.           retry <#>
  267.                Number of retries attempted  before  dropping  a connection.
  268.                If you  are on a busy channel, you may want to increase this
  269.                value  from  its  default  value  (10)   to  prevent  losing
  270.                connections.
  271.  
  272.           frack <#>
  273.                Number of seconds used to compute the round trip time before
  274.                resending packet.  If  you are  on a  busy channel,  you may
  275.                want to increase this value.
  276.  
  277.           pthresh <#>
  278.                Sets I-packet  size threshold.  This is an optimization that
  279.                speeds up the AX.25 protocol for  small packets.   I-packets
  280.                with data  fields of smaller than 'pthresh' are resent (with
  281.                no polling) when no ACK is  received in  the timeout period.
  282.                Longer packets are polled ala standard AX.25 Level 2.
  283.  
  284.           check <#>
  285.                Specifies the time-out value (in seconds) for the link keep-
  286.                alive timer.  After this  many  seconds  of  inactivity, PMP
  287.                will poll the remote node.
  288.  
  289.           maxframe <#>
  290.                Specifies  the  maximum  number  of  frames  allowed  to  be
  291.                outstanding (e.g. un-acknowledged).  This parameter  must be
  292.                between 1 and 7.  On busy channels, a lower value is better.
  293.  
  294.           paclen <#>
  295.                Specifies  the   maximum  packet  length  in  bytes.    This
  296.                parameter must be between 1 and 256.
  297.  
  298.           normal  <#>
  299.           bright  <#>
  300.           inverse <#>
  301.           status  <#>
  302.           message <#>
  303.                These commands set the attributes (colors)  for normal text,
  304.                bright  text,  inverse  text,  and  the status line.  If not
  305.                specified, the  attributes default  to the  attributes for a
  306.                monochrome video system.
  307.  
  308.           sound <#>
  309.                Enables or  disables sound.   If  <#> is  non-zero, sound is
  310.                enabled.  If <#> is zero, sound is disabled.
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.           ctext <string>
  318.                Specifies the welcome message to be sent when other stations
  319.                connect to  you.  If no CTEXT is specified in the .CFG file,
  320.                no  welcome  message  is  sent  during   incoming  connects.
  321.                Multiple CTEXT  lines can  be specified:   all  will be sent
  322.                during incoming connects in the  order  they  appear  in the
  323.                .CFG file.
  324.  
  325.           capture <#>
  326.                Specifies the  size (in bytes) of the capture memory buffer.
  327.                Capture data is held  in this  buffer, then  flushed to disk
  328.                when the buffer fills.  Smaller capture buffers will require
  329.                more disk writes.  On a floppy based systems, a  large value
  330.                is recommended  to minimizes disk writes.  This value should
  331.                always be a multiple of 512 (the MS-DOS sector size). 
  332.  
  333.           define <key> <definition>
  334.                Defines a string associated with a  function key.   <key> is
  335.                one of  the function  keys F1 through F4 (F5 through F10 are
  336.                currently used  for debug  functions).   <definition> is any
  337.                string.   Control   characters   may   be  imbedded  in  the
  338.                <definition> string with the  '^'  character  (e.g.  '^M' is
  339.                interpreted as a carriage return).
  340.  
  341.           beacon <#>
  342.                Specifies the  beaconing interval, in seconds.  Beacons (see
  343.                'btext', below) will be sent at  the specified  interval.  A
  344.                '0' value disables beaconing.
  345.  
  346.           btext <string>
  347.                Specifies the text sent during beacons.
  348.  
  349.           baddr <string>
  350.                Specifies the  address (and path) to which beacons are sent.
  351.                Digipeaters are allowed (e.g. "QST VIA W2CXM-1").
  352.  
  353.           autowrap <#>
  354.                Specifies the column number  at  which  autowrap  is active.
  355.                Autowrap is  a feature similar to most word processors where
  356.                it is not necessary for the user to hit return  after typing
  357.                beyond a  certain column; the line is automatically wrapped.
  358.                A '0' value disables autowrap.
  359.  
  360.           pttport
  361.           txport
  362.           cdport
  363.           rxport
  364.           init
  365.                These commands implement functions  that  are  currently not
  366.                documented.
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.                Sample PMP.CFG file:
  376.  
  377.           #
  378.           #    This is a sample PMP.CFG file
  379.           #
  380.           mycall    N8KEI-2
  381.           txdelay   300
  382.           retry     12
  383.           frack     3
  384.           pthresh   15
  385.           sound     1
  386.  
  387.           ctext     Hello from Andy in Berkeley Springs, WV.
  388.           ctext     If I'm not around, please leave a message.
  389.  
  390.           btext     N8KEI, QTH Berkeley Springs, WV
  391.           baddr     QST VIA W2CXM-1
  392.           beacon    300
  393.  
  394.           #
  395.           #    End of sample file
  396.           #
  397.  
  398.                All options  in PMP.CFG default to reasonable values if they
  399.           are not specified in the file.  However, a MYCALL  parameter must
  400.           always be present to set your callsign correctly.
  401.  
  402.  
  403.  
  404.  
  405.  
  406.                                       Using PMP
  407.                                       =========
  408.  
  409.                After starting  PMP (by typing 'PMP' at the DOS prompt), you
  410.           should see an opening title screen (with current version number).
  411.           Press any key to advance from this screen to the main screen.
  412.  
  413.                The main  screen is  divided into  three areas.  Most of the
  414.           upper part of the  screen is  the incoming  data area;   incoming
  415.           data and packets are displayed here.   The second to last line on
  416.           the screen is  the  data  entry  line;  everything  you  type for
  417.           transmission is  entered here.   The bottom line of the screen is
  418.           the highlighted status line, which has the following  items (from
  419.           left to right):
  420.  
  421.           -    The version number
  422.  
  423.           -    Your   callsign   (make   sure   this   is   correct  before
  424.                transmitting)
  425.  
  426.           -    The current connect path (blank if currently not connected)
  427.  
  428.           -    Outstanding packet bar, there will  be  an  asterisk  (*) on
  429.                this bar for each outstanding packet (a packet that has been
  430.                sent but not acknowledged  by the  other station)   This bar
  431.                will be blank if currently not connected.
  432.  
  433.           -    TX/RX status lights.  This status indicators will light when
  434.                PMP is transmitting or receiving packets.
  435.  
  436.  
  437.           Keyboard Commands
  438.           -----------------
  439.  
  440.                Most commands in PMP are  ALT  key  combinations  (formed by
  441.           holding down the ALT key and some other key), listed below:
  442.  
  443.           ALT-C     Connect to  another station.   You will be prompted for
  444.                     the connect station and path in the form:
  445.  
  446.                          WB2EMS VIA W2CXM-1,WB2TVB
  447.  
  448.                     Press ESC to abort the connect attempt.
  449.  
  450.  
  451.           ALT-D     Starts a disconnection.   If  the  remote  node  is not
  452.                     responding to the disconnect request, press ALT-D again
  453.                     to force a disconnect.
  454.  
  455.           ALT-B     Sends a beacon packet (with the  text specified  in the
  456.                     'btext' parameter in the configuration file).
  457.  
  458.           ALT-H     Shows a help screen, listing all keyboard commands.
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.           ALT-J     Screen snapshot.   Writes  the current screen to a text
  466.                     file.
  467.  
  468.           ALT-N     Nodes recently heard.   Nodes are  listed starting with
  469.                     the most  recently heard.   Information listed for each
  470.                     node includes the callsign of the  node, the  time last
  471.                     heard, the  number of  packets heard,  and the protocol
  472.                     types used by the node.
  473.  
  474.           ALT-P     Pause (hold) the screen.  After pausing, press  any key
  475.                     to resume.
  476.  
  477.           ALT-S     Shows the  status of  PMP:   the number of packets sent
  478.                     and received, error counts, number of bytes free, etc.
  479.  
  480.           ALT-X     Exits to DOS.
  481.  
  482.           ALT-U     Text file upload.  You will be prompted for the name of
  483.                     an  ASCII  file  to  send  across a currently connected
  484.                     link.
  485.  
  486.           ALT-L     Toggle  text  file  capture/download.    You   will  be
  487.                     prompted for  a file  to log  all received data.  "Cap"
  488.                     will appear  on  the  status  line,  indicating  that a
  489.                     capture  is  in  progress.    Press ALT-L again to stop
  490.                     capturing and close the file.
  491.  
  492.           UP & DOWN The [Up] and [Down] arrows can be used  to move forward
  493.                     and backward  to review  data that has scrolled off the
  494.                     top of the screen.  [PgUp] and [PgDn] will page through
  495.                     the scrollback buffer a screenfull at a time.
  496.  
  497.           F1-F4     User defined  function keys.   Sends the string defined
  498.                     for  the  key  (see   'define'  in   the  configuration
  499.                     commands).
  500.  
  501.  
  502.  
  503.  
  504.  
  505.                                    Modem Interface
  506.                                    ===============
  507.  
  508.                PMP interfaces to the external modem (and radio) through the
  509.           PC's parallel port.  PMP uses two output pins and  two input pins
  510.           which are connected as follows:
  511.  
  512.           Parallel
  513.             Port
  514.             Pin     Signal    Dir. Description
  515.           -----------------------------------------
  516.              2       TXD      Out  Transmitted data.
  517.  
  518.              3       PTT      Out  Push-to-talk,  active-high.    Keys  the
  519.                                    radio to transmit.
  520.  
  521.              11      CD       In   Carrier  detect,   active-high.     Goes
  522.                                    active when a packet signal is detected.
  523.  
  524.              15      RXD      In   Receive data.
  525.  
  526.              25      Gnd      Gnd  Signal ground.
  527.  
  528.  
  529.                The PMPTEST  utility is very useful for testing the parallel
  530.           port and modem interface (see next section for more information).
  531.  
  532.                On most PCs,  the  parallel  port  is  a  female  DB-25 type
  533.           connector and uses standard TTL levels.
  534.  
  535.                We have  developed a small, inexpensive, two-chip modem that
  536.           works well with PMP.  It is based on the DIGICOM>64 modem that 
  537.           appeared in the February, 1989 issue of 73 (pp. 42-43).
  538.  
  539.  
  540.  
  541.  
  542.  
  543.                                    PMPTEST Utility
  544.                                    ===============
  545.  
  546.                PMPTEST is  a  utility  program  that  aids  in  testing the
  547.           parallel port and modem interface (see MODEM INTERFACE).  PMPTEST
  548.           is started by typing 'PMPTEST' from the DOS prompt.
  549.  
  550.                Across the bottom of PMPTEST's screen are four indicators:
  551.  
  552.           Carrier Detect (CD)      Indicates the current input level of the
  553.                                    Carrier Detect line.
  554.  
  555.           Receive Data (RXD)       Indicates the current input level of the
  556.                                    Receive Data line.
  557.  
  558.           Transmit Data (TXD)      Indicates the  current  output  level of
  559.                                    the Transmit Data line.
  560.  
  561.           Push To Talk (PTT)       Indicates  the  current  output level of
  562.                                    the Push To Talk line.
  563.  
  564.  
  565.           Commands
  566.           --------
  567.  
  568.                PMPTEST has several commands:
  569.  
  570.           [ESC]     Exits program.
  571.  
  572.           [SPACE]   Toggles transmit  (PTT)  line.    The  current transmit
  573.                     status will be indicated with the PTT indicator.
  574.  
  575.           [F2]      On-air modem alignment mode.  (see below)
  576.  
  577.           [F3]      Toggle transmit data level.  The current transmit level
  578.                     is indicated with the TXD indicator.
  579.  
  580.           [F5]      Transmits a 600hz test signal.   PTT will  be set high,
  581.                     and the  transmit data  will be  toggled at 600hz.  Any
  582.                     key will cancel the test.
  583.  
  584.           [F6]      Loopback alignment (currently not implemented).
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.           Getting your modem to work with PMP
  592.           -----------------------------------
  593.  
  594.                This section describes some simple tests using PMPTEST.
  595.  
  596.           Carrier Detect
  597.  
  598.                Adjust your radio  and  modem  so  that  the  Carrier Detect
  599.                accurately reflects  channel activity.   The CD status light
  600.                should indicate channel activity.
  601.  
  602.           Receive Data
  603.  
  604.                The RD indicator should  flicker (on  and off)  when data is
  605.                being received.
  606.  
  607.           PTT
  608.  
  609.                Use the [SPACE] bar to toggle the transmit on and off.  Your
  610.                radio should start transmitting when PTT goes high  and stop
  611.                transmitting when PTT goes low.
  612.  
  613.           Transmit Data
  614.  
  615.                Use the  [SPACE] bar to toggle your radio into transmit mode
  616.                and use the [F2] key to  toggle  the  transmit  data.   Your
  617.                radio should  transmit a  high or low tone, depending on the
  618.                transmit data level.
  619.  
  620.           Receive Alignment
  621.  
  622.                Many modems  (including our  design) have  a receive section
  623.                that must  be properly  aligned.   Tune your radio to a busy
  624.                packet channel, and make  sure that  the Carrier  Detect and
  625.                Receive  Data  lines  are  functioning (as described above).
  626.                Use [F1] to enter  the alignment  mode.   As each  packet is
  627.                received,  it's  timing  will  be  analyzed  and  two  error
  628.                percentages will be displayed  on the  screen.   Adjust your
  629.                modem  so  that  these  two  numbers are as close to zero as
  630.                possible:  between -5% and +5% is ideal.   Use  long packets
  631.                to make your adjustments; short packets or noise bursts will
  632.                give inaccurate error readings.
  633.  
  634.  
  635.  
  636.  
  637.  
  638.                                    Beta Test Notes
  639.                                    ===============
  640.  
  641.                This version  is  a  beta  test  version  of  PMP.   Several
  642.           debugging  features  are  implemented  (using  function  keys  F5
  643.           through F10) to aid in tracking problems. 
  644.  
  645.                At present, the only key useful for most testers is  the F10
  646.           key which  toggles the log mode on and off.  With the log mode on
  647.           (as indicated by a small square in the extreme lower  left of the
  648.           screen), all  packets send and received are logged in memory.  On
  649.           exit, the user is prompted for a log  file to  write the  log to.
  650.           If any  problems are  encountered with  PMP, the  log file are of
  651.           great use for debugging.
  652.  
  653.                The function keys F5-F9 currently implement various features
  654.           that will change from version to version.
  655.