home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
- PMP -- Poor Man's Packet
-
- Version 1.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- A software TNC for the IBM PC.
-
-
-
- by
-
- Andrew C. Payne, N8KEI
- April, 1990
-
- (last revised July, 1991)
-
- Disclaimer:
-
- No guarantees or warranties of any kind are expressed
- or implied. This program is supplied "AS IS" without
- any warranty of any kind, either expressed or implied,
- including, but not limited to, the implied warranties
- of merchantability and fitness for a particular
- purpose. Neither the author nor anyone else who as
- been involved in the creation, production, or delivery
- of this program shall be liable for any direct,
- indirect, or consequential or incidental damages
- arising out of the use or inability to use this
- program.
-
-
- Copyright (c) 1990, 1991 Andrew C. Payne
- All rights reserved.
-
-
-
-
-
- TABLE OF CONTENTS
- =================
-
-
- Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
-
- Getting Started . . . . . . . . . . . . . . . . . . . . . . 5
- Hardware Requirements . . . . . . . . . . . . . . . . . 5
- Installing, Configuring, and Running PMP . . . . . . . 5
- Configuration Commands . . . . . . . . . . . . . . . . 5
-
- Using PMP . . . . . . . . . . . . . . . . . . . . . . . . . 10
- Keyboard Commands . . . . . . . . . . . . . . . . . . . 10
-
- Modem Interface . . . . . . . . . . . . . . . . . . . . . . 12
-
- PMPTEST . . . . . . . . . . . . . . . . . . . . . . . . . . 13
- Commands . . . . . . . . . . . . . . . . . . . . . . . 13
- Getting your modem to work with PMP . . . . . . . . . . 14
-
-
-
-
-
-
- Introduction
- ============
-
-
- What is PMP?
-
- PMP is a packet radio program that uses the software
- approach. In a nutshell, this means that the things that
- are normally done with hardware in a conventional TNC
- (Terminal Node Controller) are instead done with software in
- your computer. The advantage of this method is that most of
- the hardware of a normal TNC is no longer required. In
- simplifying the hardware, you lose some of the flexibility
- of a TNC.
-
-
- Who is PMP intended for?
-
- PMP is intended for anyone with an IBM PC type computer who
- wants to get into packet very inexpensively. PMP is perfect
- for someone who wants to get his/her feet wet before sinking
- a lot of money into equipment. PMP is also ideal for the
- scanner listener who wants to monitor packet but doesn't
- want to spend another scanner's worth of money. Because of
- the minimal hardware required, PMP is also good for portable
- setups. Modems can be constructed to actually fit inside
- VHF/UHF radios, eliminating the need for a separate TNC or
- modem box.
-
-
- What do I need to run PMP?
-
- PMP requires an IBM PC/AT/386/486 or compatible with at
- least 256K of memory and a parallel printer port (many video
- cards have a parallel port built in). You also need a Bell
- 202 type modem, VHF/UHF radio, and cables to connect
- everything up. Finally, you need the PMP software.
-
-
- What are the advantages of PMP over a "regular" TNC?
-
- The advantages of PMP are basically those outlined above:
- minimal hardware and low price. The only hardware required
- is a 1200 baud Bell 202 modem and cables to connect to the
- computer and radio. We have a single-chip design that fits
- on a 2 inch square board and costs less than $40. Also,
- this crystal controlled modem is a much better modem than
- those in many of the TNCs.
-
-
- What do I lose by using PMP instead of a TNC?
-
- PMP doesn't have all of the flexibility of a TNC. It runs
- on PCs ONLY. Also, since PMP is a program on your PC, you
-
-
-
-
-
- can't leave PMP on (to act as a digipeater, for example)
- without tying up your entire computer. Also, all of the
- packet software for the PC designed to work with TNCs (such
- as YAPP, the W0RLI BBS, and KA9Q's TCP/IP software) will not
- work with PMP.
-
-
- How was PMP developed?
-
- DIGICOM>64 for the Commodore 64 (which uses the same
- software approach) has been around for a while. With the
- popularity of DIGICOM>64 and the growing popularity of
- inexpensive IBM PC clones, we asked ourselves: "Has anyone
- done a DIGICOM>64-like program for the PC?" Some queries
- about such a program resulted in answers like: "Nope, never
- heard of such a thing. Sure would be a good idea though."
- At that point, we decided to start the PMP project. Kevin,
- WB2EMS, concentrated on the hardware design and Andy, N8KEI,
- developed the software. Within a few weeks, the first
- prototype modem was built, and two weeks after that PMP
- sending and receiving its first packets.
-
-
- I have some more questions. How can I get in touch with you?
-
- For software and general questions, problems, suggestions,
- or comments, write to:
-
- Andrew C. Payne, N8KEI
- Route 3, Box 78-Q
- Berkeley Springs, WV 25411
-
- Or, if you have access to Internet e-mail, write to:
-
- payne@tcgould.tn.cornell.edu
-
-
- For hardware questions, problems, suggestions, or comments
- write to:
-
- Kevin Feeney, WB2EMS
- 468 Hines Road
- Ithaca, NY 14850
-
- Also, write to Kevin for kit availability. Currently (July,
- 1991) we have TCM3105 modem chips, PC boards, and the
- miscellaneous parts needed to make a complete modem.
-
-
-
-
-
- Getting Started
- ===============
-
- Hardware Requirements
- ---------------------
-
- The following hardware is required to run PMP:
-
- - an IBM PC/XT/AT/386/486 or compatible with at least 256K RAM
- and a parallel printer port
-
- - a Bell 202 type 1200 baud modem
-
- - A VHF/UHF radio
-
- - cables to connect the printer port to the modem and the
- modem to the radio
-
-
- Installing, Configuring, and Running PMP
- ----------------------------------------
-
- Installing PMP is very straightforward: only two files are
- required, one is optional:
-
- PMP.EXE The PMP program
- PMP.CFG The Configuration file
- PMPTEST.EXE (optional) An alignment/test program
-
- To install PMP on your system, copy these files to a floppy
- disk or a subdirectory on your hard disk. To start, just type
- 'PMP' from the DOS prompt and you should see the opening title
- screen in a few seconds.
-
- The configuration file, PMP.CFG, contains options and
- parameters specific to your packet station: your callsign,
- timing parameters, and other items described in detail below.
-
- The PMP.CFG file is a an ASCII text file which can be
- modified with any standard text editor (such EDLIN supplied with
- DOS). Lines that begin with a pound sign (#) are comments and
- are ignored. All other lines are configuration commands for PMP,
- listed below:
-
- Configuration Commands
- ----------------------
-
- mycall <callsign>
- Sets your callsign in the form of N8KEI-XX, where XX is the
- SubStation Id (SSID). The SSID is used to differentiate
- between multiple stations with the same callsign (e.g.
- N8KEI, N8KEI-1, N8KEI-2, etc). The SSID ranges from 0 to
- 15, and 'N8KEI' and 'N8KEI-0' are equivalent. Your callsign
- MUST be correct before transmitting.
-
-
-
-
-
-
- txdelay <milliseconds>
- Sets the transmitter delay. This is the time PMP waits
- after keying the transmitter and before sending data. Slow
- transmitters (synthesized rigs, rigs with relays in the
- transmit path, etc) will require longer to stabilize after
- the transmit line is keyed. These slow rigs need a larger
- 'txdelay'.
-
- retry <#>
- Number of retries attempted before dropping a connection.
- If you are on a busy channel, you may want to increase this
- value from its default value (10) to prevent losing
- connections.
-
- frack <#>
- Number of seconds used to compute the round trip time before
- resending packet. If you are on a busy channel, you may
- want to increase this value.
-
- pthresh <#>
- Sets I-packet size threshold. This is an optimization that
- speeds up the AX.25 protocol for small packets. I-packets
- with data fields of smaller than 'pthresh' are resent (with
- no polling) when no ACK is received in the timeout period.
- Longer packets are polled a la standard AX.25 Level 2.
-
- check <#>
- Specifies the time-out value (in seconds) for the link keep-
- alive timer. After this many seconds of inactivity, PMP
- will poll the remote node.
-
- maxframe <#>
- Specifies the maximum number of frames allowed to be
- outstanding (e.g. un-acknowledged). This parameter must be
- between 1 and 7. On busy channels, a lower value is better.
-
- paclen <#>
- Specifies the maximum packet length in bytes. This
- parameter must be between 1 and 256.
-
-
-
-
-
-
- normal <#>
- bright <#>
- inverse <#>
- status <#>
- message <#>
- These commands set the attributes (colors) for normal text,
- bright text, inverse text, and the status line. If not
- specified, the attributes default to the attributes for a
- monochrome video system. An attribute consists of a code
- for a background color and a code for a foreground color:
-
- Color Foreground Background
-
- Black 0 0
- Blue 1 16
- Green 2 32
- Cyan 3 48
- Red 4 64
- Magenta 5 80
- Brown 6 96
- Lightgray 7 112
- Darkgray 8 -
- Lightblue 9 -
- Lightgreen 10 -
- Lightcyan 11 -
- Lightred 12 -
- Lightmagenta 13 -
- Yellow 14 -
- White 15 -
-
- To form the color attribute, just add the code for the
- foreground color to the code for the background color. Note that
- not all colors can be backgrounds. For example, for a white on
- red status line (attribute 15+64=79), use the configuration
- command:
-
- status 79
-
-
- sound <#>
- Enables or disables sound. If <#> is non-zero, sound is
- enabled. If <#> is zero, sound is disabled.
-
- ctext <string>
- Specifies the welcome message to be sent when other stations
- connect to you. If no CTEXT is specified in the .CFG file,
- no welcome message is sent during incoming connects.
- Multiple CTEXT lines can be specified: all will be sent
- during incoming connects in the order they appear in the
- .CFG file.
-
- capture <#>
- Specifies the size (in bytes) of the capture memory buffer.
- Capture data is held in this buffer, then flushed to disk
-
-
-
-
-
- when the buffer fills. Smaller capture buffers will require
- more disk writes. On a floppy based systems, a large value
- is recommended to minimizes disk writes. This value should
- always be a multiple of 512 (the MS-DOS sector size).
-
- define <key> <definition>
- Defines a string associated with a function key. <key> is
- one of the function keys F1 through F8 (F9 and F10 are
- currently used for debug functions). <definition> is any
- string. Control characters may be imbedded in the
- <definition> string with the '^' character (e.g. '^M' is
- interpreted as a carriage return). ALT key sequences may be
- imbedded with the '~' character (e.g. '~c' is interpreted as
- ALT-C, the connect command).
-
- beacon <#>
- Specifies the beaconing interval, in seconds. Beacons (see
- 'btext', below) will be sent at the specified interval. A
- '0' value disables beaconing.
-
- btext <string>
- Specifies the text sent during beacons.
-
- baddr <string>
- Specifies the address (and path) to which beacons are sent.
- Digipeaters are allowed (e.g. "QST VIA W2CXM-1").
-
- autowrap <#>
- Specifies the column number at which autowrap is active.
- Autowrap is a feature similar to most word processors where
- it is not necessary for the user to hit return after typing
- beyond a certain column; the line is automatically wrapped.
- A '0' value disables autowrap.
-
- pttport <port#> <bit> <level>
- txport <port#> <bit>
- cdport <port#> <bit> <level>
- rxport <port#> <bit>
- init <port#> <value>
- These configuration commands specify the ports and bits that
- PMP uses for the modem interface. The standard
- configuration file assumes values appropriate for the first
- parallel port, LPT1. You should not have to change these
- commands unless you are using PMP with LPT2 or are
- experimenting with a different modem interface. To
- reconfigure PMP for LPT2:, use these configuration commands:
-
- pttport 0x278 2 0
- txport 0x278 1
- cdport 0x279 0x80 0
- rxport 0x279 8
-
- <port#> specifies the port number in the PC's I/O space.
- <bit> is a bit mask to specify the particular bit of the
-
-
-
-
-
- port (e.g. 1 for bit 0, 2 for bit 1, 4 for bit 2, etc).
- <level> specifies the active level for the signal: 1 for
- active high, 0 for active low. 'pttport' (output) defines
- the port PMP uses to make the radio transmit. 'cdport'
- (input) defines the carrier detect line. 'txdata' (output)
- and 'rxdata' (input) define the output and input data lines.
- Note that no active levels are specified for these signals:
- the data lines are edge-sensitive, not level-sensitive.
-
- The 'init' command specifies any port initializations (e.g.
- to enable mini-modems powered from spare output bits). At
- start up, PMP writes the specified <value> to the specified
- <port#>.
-
-
- Sample PMP.CFG file:
-
- #
- # This is a sample PMP.CFG file
- #
- mycall N8KEI-2
- txdelay 300
- retry 12
- frack 3
- pthresh 15
- sound 1
-
- ctext Hello from Andy in Berkeley Springs, WV.
- ctext If I'm not around, please leave a message.
-
- btext N8KEI, QTH Berkeley Springs, WV
- baddr QST VIA W2CXM-1
- beacon 300
-
- define f1 ~cwb2ems-1^m
-
- #
- # End of sample file
- #
-
- All options in PMP.CFG default to reasonable values if they
- are not specified in the file. However, a MYCALL parameter must
- always be present to set your callsign correctly.
-
-
-
-
-
- Using PMP
- =========
-
- After starting PMP (by typing 'PMP' at the DOS prompt), you
- should see an opening title screen (with current version number).
- Press any key to advance from this screen to the main screen.
-
- The main screen is divided into three areas. Most of the
- upper part of the screen is the incoming data area; incoming
- data and packets are displayed here. The second to last line on
- the screen is the data entry line; everything you type for
- transmission is entered here. The bottom line of the screen is
- the highlighted status line, which has the following items (from
- left to right):
-
- - The version number
-
- - Your callsign (make sure this is correct before
- transmitting)
-
- - The current connect path (blank if currently not connected)
-
- - Outstanding packet bar, there will be an asterisk (*) on
- this bar for each outstanding packet (a packet that has been
- sent but not acknowledged by the other station) This bar
- will be blank if currently not connected.
-
- - TX/RX status lights. This status indicators will light when
- PMP is transmitting or receiving packets.
-
-
- Keyboard Commands
- -----------------
-
- Most commands in PMP are ALT key combinations (formed by
- holding down the ALT key and some other key), listed below:
-
- ALT-C Connect to another station. You will be prompted for
- the connect station and path in the form:
-
- WB2EMS VIA W2CXM-1,WB2TVB
-
- Press ESC to abort the connect attempt.
-
-
- ALT-D Starts a disconnection. If the remote node is not
- responding to the disconnect request, press ALT-D again
- to force a disconnect.
-
- ALT-B Sends a beacon packet (with the text specified in the
- 'btext' parameter in the configuration file).
-
- ALT-H Shows a help screen, listing all keyboard commands.
-
-
-
-
-
-
- ALT-J Screen snapshot. Writes the current screen to a text
- file.
-
- ALT-N Nodes recently heard. Nodes are listed starting with
- the most recently heard. Information listed for each
- node includes the callsign of the node, the time last
- heard, the number of packets heard, and the protocol
- types used by the node.
-
- ALT-P Pause (hold) the screen. After pausing, press any key
- to resume.
-
- ALT-S Shows the status of PMP: the number of packets sent
- and received, error counts, number of bytes free, etc.
-
- ALT-X Exits to DOS.
-
- ALT-U Text file upload. You will be prompted for the name of
- an ASCII file to send across a currently connected
- link.
-
- ALT-L Toggle text file capture/download. You will be
- prompted for a file to log all received data. "Cap"
- will appear on the status line, indicating that a
- capture is in progress. Press ALT-L again to stop
- capturing and close the file.
-
- UP & DOWN The [Up] and [Down] arrows can be used to move forward
- and backward to review data that has scrolled off the
- top of the screen. [PgUp] and [PgDn] will page through
- the scrollback buffer a screenfull at a time.
-
- F1-F4 User defined function keys. Sends the string defined
- for the key (see 'define' in the configuration
- commands).
-
-
-
-
-
- Modem Interface
- ===============
-
- PMP interfaces to the external modem (and radio) through the
- PC's parallel port. PMP uses two output pins and two input pins
- which are connected as follows:
-
- Parallel
- Port
- Pin Signal Dir. Description
- -----------------------------------------
- 2 TXD Out Transmitted data.
-
- 3 PTT Out Push-to-talk, active-high. Keys the
- radio to transmit.
-
- 11 CD In Carrier detect, active-high. Goes
- active when a packet signal is detected.
-
- 15 RXD In Receive data.
-
- 25 Gnd Gnd Signal ground.
-
-
- The PMPTEST utility is very useful for testing the parallel
- port and modem interface (see next section for more information).
-
- On most PCs, the parallel port is a female DB-25 type
- connector and uses standard TTL levels.
-
- We have developed a small, inexpensive, two-chip modem that
- works well with PMP. For details, see the August, 1991 issue of
- 73 Magazine (pages 8-14).
-
-
-
-
-
- PMPTEST Utility
- ===============
-
- PMPTEST is a utility program that aids in testing the
- parallel port and modem interface (see MODEM INTERFACE). PMPTEST
- is started by typing 'PMPTEST' from the DOS prompt. At present
- PMPTEST works only with modems interfaced to LPT1:.
-
- Across the bottom of PMPTEST's screen are four indicators:
-
- Carrier Detect (CD) Indicates the current input level of the
- Carrier Detect line.
-
- Receive Data (RXD) Indicates the current input level of the
- Receive Data line.
-
- Transmit Data (TXD) Indicates the current output level of
- the Transmit Data line.
-
- Push To Talk (PTT) Indicates the current output level of
- the Push To Talk line.
-
-
- Commands
- --------
-
- PMPTEST has several commands:
-
- [ESC] Exits program.
-
- [SPACE] Toggles transmit (PTT) line. The current transmit
- status will be indicated with the PTT indicator.
-
- [F2] On-air modem alignment mode. (see below)
-
- [F3] Toggle transmit data level. The current transmit level
- is indicated with the TXD indicator.
-
- [F5] Transmits a 600hz test signal. PTT will be set high,
- and the transmit data will be toggled at 600hz. Any
- key will cancel the test.
-
- [F6] Loopback alignment (currently not implemented).
-
-
-
-
-
-
- Getting your modem to work with PMP
- -----------------------------------
-
- This section describes some simple tests using PMPTEST.
-
- Carrier Detect
-
- Adjust your radio and modem so that the Carrier Detect
- accurately reflects channel activity. The CD status light
- should indicate channel activity.
-
- Receive Data
-
- The RD indicator should flicker (on and off) when data is
- being received.
-
- PTT
-
- Use the [SPACE] bar to toggle the transmit on and off. Your
- radio should start transmitting when PTT goes high and stop
- transmitting when PTT goes low.
-
- Transmit Data
-
- Use the [SPACE] bar to toggle your radio into transmit mode
- and use the [F2] key to toggle the transmit data. Your
- radio should transmit a high or low tone, depending on the
- transmit data level.
-
- Receive Alignment
-
- Many modems (including our design) have a receive section
- that must be properly aligned. Tune your radio to a busy
- packet channel, and make sure that the Carrier Detect and
- Receive Data lines are functioning (as described above).
- Use [F1] to enter the alignment mode. As each packet is
- received, it's timing will be analyzed and two error
- percentages will be displayed on the screen. Adjust your
- modem so that these two numbers are as close to zero as
- possible: between -5% and +5% is ideal. Use long packets
- to make your adjustments; short packets or noise bursts will
- give inaccurate error readings.
-