home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / old / misc / prime / prime814.hlp < prev    next >
Text File  |  2020-01-01  |  23KB  |  379 lines

  1.  
  2.    From : John Horne, Computing Service, Polytechnic South West.
  3.    Email : C20211 @ UK.AC.PSW.PA
  4.  
  5.       Kermit - Version 8.00, for PRIMOS revisions 21 and 22.
  6.  
  7.    This new version of Kermit (8.00) replaces the previous version (7.57).
  8.  
  9.    Initially I was asked to investigate some problems our users were having
  10.    with large (>100k) files. However, the code seemed to be getting a bit
  11.    old and messy. So it seemed somewhat easier to look at all of the code.
  12.    This version should work exactly as the old version, but there is more
  13.    functionality in it and the use of packets should be more efficient.
  14.    The error handling has been much improved, and I think that this will
  15.    cure most problems that users use to have. All the previous known bugs
  16.    have been sorted out in the code.
  17.  
  18.    Where possible version 6 of the Kermit Protocol Manual has been followed.
  19.  
  20.    The documentation included will show users the new commands available.
  21.    Below are some of the main changes, but for more details it will be
  22.    necessary to look at the code. Options on the command line and to parameter
  23.    settings may be abbreviated to some extent; i.e. YES may be given as Y, OK,
  24.    or just Carriage Return; FILE_TYPE may be abbreviated to FT, and so on.
  25.  
  26.    The following changes are in the new version of Kermit :
  27.  
  28.    1)                                                               17/01/90 :
  29.       Many commonly used constants have been put into COMMON, these include
  30.       character constants, CTRL-A in 7-bit and 8-bit ASCII, etc.
  31.  
  32.    2)                                                               17/01/90 :
  33.       All of the code has been looked at, and "cosmetically" tidied up.
  34.  
  35.    3)                                                               17/01/90 :
  36.       Unused subroutines/functions have been removed; others have been replaced
  37.       as in-line code; and yet others re-written to make more use of COMMON
  38.       variables.
  39.  
  40.    4)                                                               17/01/90 :
  41.       "Transparent" mode has been made available. This is basically when NO
  42.       parity is used; 8-bit parity checks are done. The code was there before
  43.       but not available to the user (why?). This also means that parity can
  44.       be SET or given on the command line itself.
  45.  
  46.    5)                                                               17/01/90 :
  47.       Most of the previous code did not check for ANY error messages from the
  48.       PRIMOS subroutines used - I think this is where most of the bugs came
  49.       from. Nearly all of the subroutines are now checked for errors and
  50.       appropriate action is taken. Meaningful messages will be displayed to the
  51.       user, or a number given. A number means real big trouble! Some of the old
  52.       subroutines have been replaced by new ones, and some old code replaced by
  53.       PRIMOS subroutines. Only inconsequential subroutines have been left
  54.       un-checked, e.g. file-units not closed, but since file-units are
  55.       dynamically allocated it doesn't matter whether they are closed or not.
  56.  
  57.    6)                                                               17/01/90 :
  58.       The use of pathnames has been extensively adopted. This will allow more
  59.       flexibility for the user; they don't have to continuously change
  60.       directories now. The code is also more robust, since the subroutines will
  61.       easily handle pathnames, rather than the code having to attach all over
  62.       the place and then to attach back (this is asking for trouble).
  63.  
  64.    7)                                                               17/01/90 :
  65.       The LOG file is now checked to see if it is already in use. The CLOSE
  66.       command has been added, so that the user may close it now if they wish.
  67.  
  68.    8)                                                               17/01/90 :
  69.       The type of file system object being SENT is now checked. It is only
  70.       possible to send SAM, DAM, or CAM files. An error message is displayed
  71.       if the user tries to send a directory of any sort.
  72.  
  73.    9)                                                               17/01/90 :
  74.       There are more command line options available; -HELP will show you them.
  75.       The help message has been tidied up, and -USAGE added just to show the
  76.       syntax. The options may also be used before entering interactive mode.
  77.       The options -SEND, -RECEIVE, and -SERVER are checked for compatability;
  78.       and if none of them are present then interactive mode is entered. The
  79.       values of any command line options are also checked for syntax; the code
  80.       is now more robust.
  81.  
  82.   10)                                                               17/01/90 :
  83.       Some subroutines/functions have had their arguments changed or removed;
  84.       whilst others have become functions and vice-versa.
  85.  
  86.   11)                                                               17/01/90 :
  87.       The INCOMPLETE variable may now be SET. This will/will not keep files
  88.       that arrive incomplete depending on the setting.
  89.  
  90.   12)                                                               17/01/90 :
  91.       The POUND variable may also be SET. This will convert pound signs
  92.       correctly for files sent to and from DOS machines. If it causes problems,
  93.       then SET it to OFF.
  94.  
  95.   13)                                                               17/01/90 :
  96.       The CONVERT command has been made available. This will "convert" a file
  97.       to PRIME format. Basically it sets the 8th-bit throughout the file, and
  98.       sets the end of line correctly to line-feed. The code was there before,
  99.       but not shown in HELP at all.
  100.  
  101.   14)                                                               17/01/90 :
  102.       File attributes may be used now by Kermit - this is SETtable. For files
  103.       sent, the file size is sent in bytes and Kbytes; and the files date/time
  104.       of creation (DTC) is sent. For files received the file size is checked
  105.       against the available disk space quota; the DTC is set if present and the
  106.       user has O or P rights in the directory, and the file type is used to
  107.       determine the method of storage. Note that according to the Protocol the
  108.       DTC should be used, NOT the date/time last modified which was previously
  109.       coded. Any files which are too big to be sent or received result in a
  110.       warning message. If wildcards are used then it will continue with smaller
  111.       files. This keeps in line with the Protocol. The last part is also useful
  112.       when transfering large files; previously the whole thing would just bomb
  113.       out, and the user would have to start again.
  114.  
  115.   15)                                                               17/01/90 :
  116.       The TAKE command may now be nested to 25 levels. Previously the user
  117.       would simply tread on the previous file with no warning or anything!
  118.       POP is available to exit the current TAKE file, and return to the
  119.       previous file - if any. Also STOP has been coded to exit ALL of the users
  120.       TAKE files.
  121.  
  122.   16)                                                               17/01/90 :
  123.       More generic commands are available; Disk USAGE (or SPACE), RENAME, COPY,
  124.       WHO (although this isn't too good), and SEND (or MESSAGE).
  125.  
  126.   17)                                                               17/01/90 :
  127.       Some of the messages displayed have been "cosmetically" changed.
  128.  
  129.   18)                                                               17/01/90 :
  130.       Sending files with DOS wildcards from the PRIME is a dubious area since
  131.       it requires knowing what the user MEANS! The special case "*.*" is taken
  132.       to mean send ALL files, not just ones of 2 components. Other cases are
  133.       translated as "*" to "@", and "?" to "+".
  134.  
  135.   19)                                                               17/01/90 :
  136.       The received timeout is now used, rather than just using 2 minutes as a
  137.       fixed time. If necessary it may be possible to reset the timeout on the
  138.       local Kermit.
  139.  
  140.   20)                                                               17/01/90 :
  141.       The PUSH command has been added to enable the user to jump to PRIMOS.
  142.       Kermit is re-entered either by using the S (START) command, or REN
  143.       (for Re-ENter). REN is a bit more reliable; it depends on what the user
  144.       does at PRIMOS level. Kermit itself may be invoked again, and PUSHed from
  145.       again. The limit to this is set per-user by the sites' PRIME system
  146.       administrator. (Here at PSW users can do it about 10 times.)
  147.  
  148.   21)                                                               17/01/90 :
  149.       The code is more robust in the checking of values given for the quoting
  150.       and 8-bit quoting characters, and for the parity being used. Previously
  151.       it would have violated the Protocol by allowing the characters to be the
  152.       same.
  153.  
  154.   22)                                                               17/01/90 :
  155.       It is now possible to avoid received file name collisions. This is a
  156.       SETtable option. The new file name is sent with the F packet
  157.       acknowledgement, so this may be printed out by the local Kermit. The new
  158.       file name tries to append four digits to the files' prefix, or if
  159.       necessary it will overwrite the last characters of the prefix.
  160.  
  161.   23) *>SOURCE>(XFER_MODE, CONVERT_FILE).PLP,
  162.       *>INSERT>COMMON.INS.PLP                                       26/01/90 :
  163.       The subroutine XFER_MODE had some octal characters in it which prevented
  164.       sites from receiving the file correctly from Lancaster (U.K.). Extra
  165.       variables in COMMON are now used to hold these values, which are
  166.       calculated when Kermit is invoked.
  167.       The CONVERT command was not working correctly (if at all). The code has
  168.       been changed to handle end-of-file conditions better. The subroutine used
  169.       to write out the file has been changed, as have some of the error
  170.       messages produced by the CONVERT command.
  171.  
  172.   24) *>SOURCE>@@, *>INSERT>@@                                      02/02/90 :
  173.       To enable the source code to be transmitted over various networks
  174.       successfully some of the code lines have been reduced in length. All of
  175.       the source code lines are now 80 characters or less in length. This may
  176.       make the code a little bit less readable, but does not affect its
  177.       functionality in any way.
  178.  
  179.   25) *>KERMIT.BUILD.CPL, *>INSERT>(KERMIT, PRIMOS).INS.PLP,
  180.       *>SOURCE>(UTILITIES, SETUP_TRANS_CHAR).PLP                    09/02/90 :
  181.       The build program will now allow the -BINARY option to be passed to
  182.       the PLP compiler. This allows the redirection of the binary file, or
  183.       the prevention of any binary file being produced by using the relevant
  184.       PLP -BINARY options. The default is still to the sub-directory *>OBJ.
  185.       The above 5 files have had their initial comment lines changed so that
  186.       all of the build and source files received from a distribution site
  187.       may be more easily identified. Each file is seperated by a line of
  188.       hyphens. This is then followed by a blank line, and then a single
  189.       comment line. This begins with the characters "/* ". The upper case
  190.       characters following it are the subroutine name, and end with the
  191.       character sequence " -- ". It is intended that an editor is used to
  192.       seperate out the files. The build file and insert files will need to be
  193.       seperated individually. I hope this is of some help.
  194.  
  195.   26) *>SOURCE>(SEND_PACKET, COMND).PLP                             12/02/90 :
  196.       Minor changes to some of the conditional statements logic in the
  197.       subroutine SEND_PACKET.
  198.       In the subroutine COMND a window size of 0 will now display a message
  199.       stating that no windowing will be performed. An invalid window size
  200.       will now show the correct message; previously it gave garbage at the
  201.       end of the message.
  202.  
  203.   27) *>INSERT>(COMMON, CONSTANTS).INS.PLP,
  204.       *>SOURCE>(KERMIT_INIT, OPEN_INPUT, READ_INPUT, SET_PARAMS, GET_DTC,
  205.                 PRS_SEND_INIT, LOG_PACKET, CHANGE_DIR, COMND, GENERIC_CMD,
  206.                 WRITE_OUTPUT, CONVERT_FILE, REC_SWITCH).PLP         15/02/90 :
  207.       Peter Mason's (SHEFFIELD UNIVERSITY, U.K.) code has been incorporated to
  208.       allow ASCII files containing long lines to be transmitted. This worked
  209.       fine for binary files, but ASCII/Text files would previously be truncated
  210.       to 1022 characters.
  211.       Some more commonly used constants have been replaced by variables or
  212.       %REPLACE identifiers.
  213.  
  214.   28) *>SOURCE>(CLOSE_OUTPUT, GET_DTC).PLP                          16/02/90 :
  215.       If file attributes are in use then the files' Date/Time last modified
  216.       (DTM) attribute is set as well as the Date/Time of creation (DTC).
  217.       Whilst the Kermit Protocol states that the DTC should be used, this is
  218.       historical and the DTM is of more use to users. The DTM is also sent
  219.       instead of the DTC in the attribute packet.
  220.       This is now version 8.01 (unreleased).
  221.  
  222.   29) *>SOURCE>(UTILITIES, WRITE_IBUF, WRITE_OUTPUT, OPEN_OUTPUT,
  223.                 KERMIT_INIT).PLP,
  224.       *>INSERT>COMMON.INS.PLP                                       07/03/90 :
  225.       Lines ending in just a LF are handled correctly now. This will allow
  226.       POSTSCRIPT files to be transferred. A NUL character is appended to the
  227.       LF, if necessary, to maintain the word alignment.
  228.       When receiving a file the file type (text or binary) cannot change once
  229.       the file has started to be written to disk. Previously it was possible
  230.       for certain files to change type when the last part of the file was
  231.       received. The logic of some conditional tests has also been changed.
  232.  
  233.   30) *>SOURCE>(READ_INPUT, KERMIT_INIT, WRITE_IBUF, OPEN_OUTPUT).PLP,
  234.       *>INSERT>COMMON.INS.PLP                                       21/03/90 :
  235.       Corrected the handling of repeat characters. Sometimes the packet would
  236.       become too large when two characters were repeated, since these two are
  237.       actually written out individually and NOT packed together. This has also
  238.       enabled us to simplify some other parts of the code.
  239.  
  240.   31) *>SOURCE>GENERIC_CMD.PLP, *>INSERT>PRIMOS.INS.PLP             29/03/90 :
  241.       The generic command COPY now uses different subroutines to perform the
  242.       copy. This makes it faster, and also allows the copying of binary files.
  243.       Previously these files would become corrupted. The declared entry for
  244.       the Primos subroutine RDLIN$ has been removed since it is not used.
  245.  
  246.   32) *>SOURCE>PRS_SEND_INIT.PLP                                    06/04/90 :
  247.       Removed a redundant WHEN statement.
  248.  
  249.   33) *>SOURCE>(SEND_SWITCH, KERMIT_INIT, READ_INPUT).PLP,
  250.       *>INSERT>COMMON.INS.PLP                                       10/04/90 :
  251.       The bug fix 30 above caused the packet length to drop to about 86
  252.       characters for most packets. This seemed to be getting too low a value.
  253.       The character handling code in READ_INPUT has been re-written so as to
  254.       get the packet as full as possible before sending it. Most packets are
  255.       now filled to about 93 characters.
  256.  
  257.   34) *>SOURCE>(NEXT_FILE, OPEN_LOG, KERMIT, GET_ERROR_MSG, COMND,
  258.                 LOG_PACKET, CHANGE_DIR, REC_SWITCH, GENERIC_CMD,
  259.                 SET_PATH).PLP                                       11/04/90 :
  260.       Minor changes to some logical character comparisons where null strings
  261.       are involved.
  262.  
  263.   35) *>SOURCE>@@, *>INSERT>@@, *>KERMIT.BUILD.CPL                  18/04/90 :
  264.       Version 8.10 (unreleased) received from Matthew Sutter in U.S.A.
  265.       New functionality with the CONNECT command for connecting the Prime to
  266.       other Computers, rather than just to micro-computers. Also allows the
  267.       SETting of the AMLC line number and baud rate for the CONNECT command.
  268.       Code included to SET the ESCAPE character for the CONNECT command, and
  269.       also recognition of some escape sequences as sub-commands to CONNECT.
  270.       Added code for BYE, FINISH, GET, INPUT, OUTPUT, PAUSE, and CLEAR
  271.       commands. Help screens updated for the new commands.
  272.  
  273.   36) *>SOURCE>@@, *>INSERT>@@                                      20/04/90 :
  274.       Version 8.11 (unreleased) received from Matthew Sutter in U.S.A. Some bug
  275.       fixes and code improvements to version 8.10. The MORE subroutine added
  276.       for the help screens.
  277.  
  278.   37) *>SOURCE>@@, *>INSERT>@@                                      23/04/90 :
  279.       Version 8.12. Further bug fixes and some code improvements. Code added
  280.       for the "0" sub-command to CONNECT, and allow the PAUSE command to accept
  281.       a 24-hour clock time.
  282.  
  283.   38) *>SOURCE>COMND.PLP                                            01/05/90 :
  284.       Test for the remote server being present in the BYE and FINISH commands.
  285.       Made the SET FILE_TYPE command identical to the FILE_TYPE command line
  286.       option. It now recognizes "FT" or any sub-string of "FILE_TYPE". The SHOW
  287.       command has similarly changed. Minor text message changes.
  288.  
  289.   39) *>SOURCE>(ASSIGN, XFER_MODE).PLP                              27/06/90 :
  290.       Changed the half-duplex settings so as NOT to echo LF after a CR.
  291.       Requested by Ted Flory (BRIDGEWATER COLLEGE, U.S.A).
  292.  
  293.   40) *>SOURCE>(ASSIGN, COMND, KERMIT_INIT, BK_HNDLR, REC_PACKET, REC_AMLC,
  294.                 PRS_SEND_INIT).PLP,
  295.       *>INSERT>CONSTANTS.INS.PLP                                    06/07/90 :
  296.       The receive timeout has been changed from minutes to seconds, previously
  297.       the timeout would be rounded up to the nearest minute, but this is not
  298.       necessary. Also the timer is turned off as soon as a valid start-of-packet
  299.       character has been received, and NOT after the packet has been processed.
  300.       Some minor code changes in parameter passing now prevent Primos
  301.       POINTER_FAULT$ errors occuring when receiving data using an AMLC line.
  302.       The AMLC baud rates of 9600, 2400, 4800, 19200 have now been replaced
  303.       by CLOCK, JUMPER_1, JUMPER_2, and JUMPER_3. This now allows for the fact
  304.       that these values are machine/configuration dependant. The default values
  305.       are shown, but the actual values will have to be obtained from the system
  306.       administrator. The other baud rates of 110, 134.5, 300, and 1200 are fixed
  307.       within Primos, so the Kermit default baud rate has now also changed to
  308.       1200, the Prime default baud rate.
  309.  
  310.   41) *>SOURCE>(KERMIT, KERMIT_INIT, OPEN_LOG, COMND).PLP,
  311.       *>INSERT>(COMMON, CONSTANTS).INS.PLP                          17/07/90 :
  312.       The log file pathname is now shown with the "SHOW ALL" or "SHOW LOG"
  313.       commands. The send and receive packet maximum retry count is now settable,
  314.       and will also be shown with the "SHOW" or "SHOW RETRIES" commands. The
  315.       send and receive packet timeout may also be shown with the "SHOW" or
  316.       "SHOW TIMEOUT" commands. The send packet timeout is also settable.
  317.  
  318.   42) *>SOURCE>OPEN_INPUT.PLP                                       23/07/90 :
  319.       The internal subroutine to perform automatic file type checking was
  320.       actually doing a bit more than it ought to, and likewise for specific file
  321.       types some internal buffers were not being initialised. This gave rise to
  322.       the problem that interrupted file transfers would corrupt the next file
  323.       sent if a specific file type was previously set.
  324.  
  325.   43) *>SOURCE>(REC_SWITCH, SEND_SWITCH, KERMIT_INIT, SET_PARAMS, COMND).PLP,
  326.       *>INSERT>COMMON.INS.PLP                                       07/08/90 :
  327.       The sliding windows code has been corrected. The default window value is
  328.       6, but it is, of course, settable. A value of 0 is now illegal, non-
  329.       windowing is actually performed by the windowing code but with a window
  330.       size of 1. All of the previous non-windowing code has been removed.
  331.  
  332.   44) *>SOURCE>SERVER.PLP                                           08/08/90 :
  333.       Timeouts by the server are not now NAKed since this only seems to cause
  334.       problems for the local kermit. The Prime will still log that timeouts
  335.       have occured though.
  336.  
  337.   45) *>SOURCE>@@, *>INSERT>@@                                      09/08/90 :
  338.       Version 8.12 received from Matt Sutter (U.S.A). New code for seperate
  339.       packet and/or session logging. Bug fixes to the repeat character
  340.       processing, and AMLC line handling.
  341.  
  342.   46) *>SOURCE>@@, *>INSERT>@@                                      10/08/90 :
  343.       Version 8.13 (unreleased). Merged version 8.12 (U.S.A) with all known
  344.       previous bug fixes.
  345.  
  346.   47) *>KERMIT.BUILD.CPL, *>INSERT>@@,
  347.       *>SOURCE>(ASSIGN, COMND, CONNECT, DISCARD_OUTPUT, GENERIC_CMD, GET_LEN,
  348.                 INPUT, KERMIT_INIT, MATCH_FILE, OPEN_INPUT, OPEN_LOG,
  349.                 OPEN_OUTPUT, REN_HNDLR, SEND_PACKET, SERVER, SET_PATH,
  350.                 XFER_MODE).PLP                                      25/10/90 :
  351.       Version 8.14. Corrected the setting of the terminal to/from
  352.       half/full-duplex mode, the initial setting is now correctly restored.
  353.       The REMOTE SPACE command will now also show the disk space available,
  354.       since it is useful for those users without quota restrictions.
  355.       The asynchronous line baud rate is now only checked for a valid rate when
  356.       set. Valid rates are determined by PRIME. When the line is assigned to
  357.       set the baud rate, checking will be done by PRIMOS as to whether the
  358.       hardware actually supports the requested rate.
  359.       The CLOSE command with no option will now close any one open log file,
  360.       but not if both are open.
  361.       Unimplemented server commands are now reported as such.
  362.       Files which are at the MFD level are now handled correctly, previously
  363.       their pathname would become corrupted.
  364.       GET_USER_INFO is a new subroutine to determine some of the users PRIMOS
  365.       environment variables. It is called when Kermit is invoked, and when the
  366.       user re-enters Kermit after a PUSH command since they may have changed
  367.       their environment whilst at PRIMOS level.
  368.       For ASCII files the exact file length in bytes is now sent. Previously
  369.       the length did not take account of space compression characters, so the
  370.       file length sent was usually less than its true length.
  371.  
  372.   48) *>INSERT>(CONSTANTS, COMMON).INS.PLP,
  373.       *>SOURCE>(KERMIT, KERMIT_INIT, COMND).PLP                     11/02/91 :
  374.       Added the -INIT option to the command line. By default an initialization
  375.       file, called PRIME_KERMIT.INIT, will be run if it exists in the current
  376.       directory. An alternate pathname may be used if it is specified on the
  377.       command line.
  378.  
  379.