Notes on the VE3SYB version of the Poor Man's Packet Software
Last updated: January 15, 1994
Files added to the zip file:
readme.syb
config.pmp
schema.pmp
parallel.cfg
serial.cfg
Files deleted from the zip file:
pmp.tl
o The starting point for version 1.1SYB of PMP was version 1.0 as created
by Andrew Payne. After I had made all of my changes and improvements
to the source code I found the version 1.1 source code for PMP on a
local BBS. Comparing the source code files for version 1.0 and 1.1
revealed very few differences. Most files had a copyright/disclaimer
notice at the start of the file which was new to version 1.1 files
which I have incorporated into my version of PMP. The only other
differences noted were removal of the ability to create a demo version,
one minor bug fix, and the ability to use 6 function keys instead of
four as was the case with the 1.0 version). Also used the documentation
file from the 1.1 version of PMP.
o The Polytron Version Control System was used to track all modifications
that were made to the source files.
o I used Borland 3.0 C/C++ to build the executables found in this
.zip file
PMP version 1.1SYB was originally based on version 1.0 of the Poor Man's
Packet software and was called 1.0SYB. More recently it has been very
slightly modified to reflect differences between the original 1.0 and 1.1
versions of PMP. PMP1.1SYB has many bug fixes, minor changes, and many
enhancements over the versions distributed by the original author.
This file details the changes that have been made to the program.
Bug fixes
o The test program (PMPTEST.EXE) now restores the transmit data line to its
previous state after using the F3 key to send the 600Hz test tone.
o Improved accuracy of running time. Previously when PMP was trying to decode
packets and a buffer overflow was detected, the clock adjust routine would
not be called and the RX indicator would not get cleared until the next time
a packet is received. The clock is still not 100% accurate.
Enhancements
o The test program (PMPTEST.EXE) will attempt to read the PMP.CFG configure
file on startup (just as PMP.EXE does) in order to determine the proper
port addresses to use. Type 'pmptest ?' to display the help information.
o Added option of opening an already existing file in append or overwrite
mode. If overwrite mode is chosen, an additional prompt will be presented
with a warning that all data in the file will be lost if they proceed.
Opening an existing file for append will preserve any existing contents.
o The screen snapshot function now works even when viewing the scrollback
buffer. If you read a message that you decide you would like to keep,
simply go back into the scrollback buffer until the text of the message
you wish to save is on screen and use Alt-J to save the screen image. If
the message is more than one screen long, go to the next page of the
scrollback buffer and use Alt-J to write the screen containing the second
part of the message to the same file as before and specify Append when
asked.
o Each Control-G character in an incoming packet is sounded as a 1000Hz
tone for 0.25 seconds. Previous versions of PMP would ignore control-G's.
o The status screen now displays the time connected with the current remote
station and the duration of the previous connect with a remote station.
NOTE: These times may not be very accurate due to the disabling of all
interrupts during reception of incoming packets.
o Ctrl-X cancels a filename being entered, a line of text being entered for
transmission, or any text being entered in response to a prompt that ends
in '-->'.
o Ctrl-Z characters that are received or transmitted are no longer written
to disk files. This prevents unexpected and unwanted truncation of files.
Miscellaneous changes
o PMP.EXE and PMPTEST.EXE will work with either a PMP modem connected to the
parallel port or with a PMP modem that has been modified to work via a
serial port. Examples of configure files for both parallel and serial
port use are provided.
o Paging through the scrollback buffer (and jumping to the beginning of it)
is now virtually instantaneous. Previous versions of PMP would update the
screen quickly enough when paging forward and backward but would have to
scroll through the entire scrollback buffer to get to the top (which took
a lot of time if the scrollback buffer was large).
o The routines responsible for handling the scrollback buffer have been
completely rewritten. On startup, a large block of memory (~256K) is
allocated for the scrollback buffer. This area of memory is then used
to hold all data that is received. This should help to eliminate a
number of potential bugs relating to the handling of the scrollback
buffer that existed in versions of PMP earlier the 1.2 version.
o Increased the number of 'ctext' lines that can be defined to 10 as was
noted in the 'PMP.CFG' file. It was previously limited to 5 lines.
o Increased the number of function keys that can be defined to 10 as was
noted in the 'PMP.CFG' file. It was previously limited to 4 function keys.
o Improve parsing of filenames entered by user. This involves ignoring any
non-printable characters that were entered in the filename.
o Debugging code has been excluded and the logging of incoming packets has
been disabled which freed up the F9 and F10 function keys.
o In building version 1.0SYB of PMP, the source was compiled using the compact
(instead of large) data model, all debugging information was turned off, and
the symbol tables have been stripped. This has resulted in the size of the
executable files being reduced by almost 50% for the PMP.EXE file when
compared to the size of PMP.EXE version 1.0. The size of the PMPTEST.EXE
file is larger due to its ability to parse the PMP.CFG file.
o Some areas of the code have been cleaned up and simplified which resulted
in further decreases in the size of the executable files prior to the
addition of the numerous enhancements.
o PMP.EXE and PMPTEST.EXE now allow a different configuration file to be
used (rather than the default of PMP.CFG) by specifying '-p<filename>
or '-p <filename>', where <filename> is the name of the file containing
the configuration information needed by these programs.
Known (or possible) bugs
o The running time display occasionally shows negative numbers. This seems to
be an indication that the StartTime variable is getting stepped on. Memory
being overwritten would explain some of the other mysterious bugs.
o Connection with remote station is occasionally dropped in the middle of
receiving packets. Don't know if this is a software bug or due to a high
error rate. Could occur if the data out line gets flipped the wrong way.
Think it may be due in part to the memory overwrite bug or a bug in the
packet handling routines where a packet received is never acknowledged.
o Software seems to hang on occasion when receiver unsquelches due to noise
or intermod being received.
NOTE: This bug has not been confirmed.
o PMP gets into a loop occasionally when sending Beacons.
NOTE: This was reported as happening in PMP 1.1 but has not been confirmed.
If a beacon time is specified in the configuration file, beacons will be
sent continuously with specified delay between beacon transmissions.
o Upon receipt of a fatal frame reject error, the link is reset. The packet
that was being received at that time is lost and is not requested again.
o Cursor gets turned off when entering text to be transmitted. It is not
always turned off at the same point. It should not be turned off at all.
o malloc() for capture buffer may fail if size request is greater then 32767.
o Alt-W won't work if no text has scrolled off the screen.
Future enhancements (that may be done some day)
o Attempting to open a file on a diskette that is write protected causes DOS
to display the standard 'Abort, Retry, Fail' error message which can mess
up the screen. This should be trapped and handled within the context of PMP.
o Allow the information on the status screen to be continuously updated while
it is being viewed.
o Use interrupt driven routines to receive packets when using the serial port.
o Improve the accuracy of the clock when PMP is running.
(Would be possible if previous feature is implemented.)
o Add support for the YAPP file transfer protocol.
o Add ability to change the program parameters from within PMP.
o Add support for screens with more than 25 lines (ie. 43 and 50 line screens).
o Speed up the screen update when coming out of the status screen, help
screen, or view of scrollback buffer when a lot of packets have been
received.
o Update the PMP.DOC file to reflect the changes detailed in this file.
o Ability to review the contents of the scrollback buffer and mark a block
of text within this buffer for saving to a file. This could then be
written to a file or to a printer.
o Ability to search the scrollback buffer for specific text.
o Ability to issue DOS commands from within PMP (or at least get a listing
of current files, etc.).
o Add display of current time on the status line.
73 de Kevin, VE3SYB (VE3SYB @ VA3BBS.#SCON.ON.CAN.NA)