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)