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)