home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
old
/
misc
/
prime
/
prime814.hlp
< prev
next >
Wrap
Text File
|
2020-01-01
|
23KB
|
379 lines
From : John Horne, Computing Service, Polytechnic South West.
Email : C20211 @ UK.AC.PSW.PA
Kermit - Version 8.00, for PRIMOS revisions 21 and 22.
This new version of Kermit (8.00) replaces the previous version (7.57).
Initially I was asked to investigate some problems our users were having
with large (>100k) files. However, the code seemed to be getting a bit
old and messy. So it seemed somewhat easier to look at all of the code.
This version should work exactly as the old version, but there is more
functionality in it and the use of packets should be more efficient.
The error handling has been much improved, and I think that this will
cure most problems that users use to have. All the previous known bugs
have been sorted out in the code.
Where possible version 6 of the Kermit Protocol Manual has been followed.
The documentation included will show users the new commands available.
Below are some of the main changes, but for more details it will be
necessary to look at the code. Options on the command line and to parameter
settings may be abbreviated to some extent; i.e. YES may be given as Y, OK,
or just Carriage Return; FILE_TYPE may be abbreviated to FT, and so on.
The following changes are in the new version of Kermit :
1) 17/01/90 :
Many commonly used constants have been put into COMMON, these include
character constants, CTRL-A in 7-bit and 8-bit ASCII, etc.
2) 17/01/90 :
All of the code has been looked at, and "cosmetically" tidied up.
3) 17/01/90 :
Unused subroutines/functions have been removed; others have been replaced
as in-line code; and yet others re-written to make more use of COMMON
variables.
4) 17/01/90 :
"Transparent" mode has been made available. This is basically when NO
parity is used; 8-bit parity checks are done. The code was there before
but not available to the user (why?). This also means that parity can
be SET or given on the command line itself.
5) 17/01/90 :
Most of the previous code did not check for ANY error messages from the
PRIMOS subroutines used - I think this is where most of the bugs came
from. Nearly all of the subroutines are now checked for errors and
appropriate action is taken. Meaningful messages will be displayed to the
user, or a number given. A number means real big trouble! Some of the old
subroutines have been replaced by new ones, and some old code replaced by
PRIMOS subroutines. Only inconsequential subroutines have been left
un-checked, e.g. file-units not closed, but since file-units are
dynamically allocated it doesn't matter whether they are closed or not.
6) 17/01/90 :
The use of pathnames has been extensively adopted. This will allow more
flexibility for the user; they don't have to continuously change
directories now. The code is also more robust, since the subroutines will
easily handle pathnames, rather than the code having to attach all over
the place and then to attach back (this is asking for trouble).
7) 17/01/90 :
The LOG file is now checked to see if it is already in use. The CLOSE
command has been added, so that the user may close it now if they wish.
8) 17/01/90 :
The type of file system object being SENT is now checked. It is only
possible to send SAM, DAM, or CAM files. An error message is displayed
if the user tries to send a directory of any sort.
9) 17/01/90 :
There are more command line options available; -HELP will show you them.
The help message has been tidied up, and -USAGE added just to show the
syntax. The options may also be used before entering interactive mode.
The options -SEND, -RECEIVE, and -SERVER are checked for compatability;
and if none of them are present then interactive mode is entered. The
values of any command line options are also checked for syntax; the code
is now more robust.
10) 17/01/90 :
Some subroutines/functions have had their arguments changed or removed;
whilst others have become functions and vice-versa.
11) 17/01/90 :
The INCOMPLETE variable may now be SET. This will/will not keep files
that arrive incomplete depending on the setting.
12) 17/01/90 :
The POUND variable may also be SET. This will convert pound signs
correctly for files sent to and from DOS machines. If it causes problems,
then SET it to OFF.
13) 17/01/90 :
The CONVERT command has been made available. This will "convert" a file
to PRIME format. Basically it sets the 8th-bit throughout the file, and
sets the end of line correctly to line-feed. The code was there before,
but not shown in HELP at all.
14) 17/01/90 :
File attributes may be used now by Kermit - this is SETtable. For files
sent, the file size is sent in bytes and Kbytes; and the files date/time
of creation (DTC) is sent. For files received the file size is checked
against the available disk space quota; the DTC is set if present and the
user has O or P rights in the directory, and the file type is used to
determine the method of storage. Note that according to the Protocol the
DTC should be used, NOT the date/time last modified which was previously
coded. Any files which are too big to be sent or received result in a
warning message. If wildcards are used then it will continue with smaller
files. This keeps in line with the Protocol. The last part is also useful
when transfering large files; previously the whole thing would just bomb
out, and the user would have to start again.
15) 17/01/90 :
The TAKE command may now be nested to 25 levels. Previously the user
would simply tread on the previous file with no warning or anything!
POP is available to exit the current TAKE file, and return to the
previous file - if any. Also STOP has been coded to exit ALL of the users
TAKE files.
16) 17/01/90 :
More generic commands are available; Disk USAGE (or SPACE), RENAME, COPY,
WHO (although this isn't too good), and SEND (or MESSAGE).
17) 17/01/90 :
Some of the messages displayed have been "cosmetically" changed.
18) 17/01/90 :
Sending files with DOS wildcards from the PRIME is a dubious area since
it requires knowing what the user MEANS! The special case "*.*" is taken
to mean send ALL files, not just ones of 2 components. Other cases are
translated as "*" to "@", and "?" to "+".
19) 17/01/90 :
The received timeout is now used, rather than just using 2 minutes as a
fixed time. If necessary it may be possible to reset the timeout on the
local Kermit.
20) 17/01/90 :
The PUSH command has been added to enable the user to jump to PRIMOS.
Kermit is re-entered either by using the S (START) command, or REN
(for Re-ENter). REN is a bit more reliable; it depends on what the user
does at PRIMOS level. Kermit itself may be invoked again, and PUSHed from
again. The limit to this is set per-user by the sites' PRIME system
administrator. (Here at PSW users can do it about 10 times.)
21) 17/01/90 :
The code is more robust in the checking of values given for the quoting
and 8-bit quoting characters, and for the parity being used. Previously
it would have violated the Protocol by allowing the characters to be the
same.
22) 17/01/90 :
It is now possible to avoid received file name collisions. This is a
SETtable option. The new file name is sent with the F packet
acknowledgement, so this may be printed out by the local Kermit. The new
file name tries to append four digits to the files' prefix, or if
necessary it will overwrite the last characters of the prefix.
23) *>SOURCE>(XFER_MODE, CONVERT_FILE).PLP,
*>INSERT>COMMON.INS.PLP 26/01/90 :
The subroutine XFER_MODE had some octal characters in it which prevented
sites from receiving the file correctly from Lancaster (U.K.). Extra
variables in COMMON are now used to hold these values, which are
calculated when Kermit is invoked.
The CONVERT command was not working correctly (if at all). The code has
been changed to handle end-of-file conditions better. The subroutine used
to write out the file has been changed, as have some of the error
messages produced by the CONVERT command.
24) *>SOURCE>@@, *>INSERT>@@ 02/02/90 :
To enable the source code to be transmitted over various networks
successfully some of the code lines have been reduced in length. All of
the source code lines are now 80 characters or less in length. This may
make the code a little bit less readable, but does not affect its
functionality in any way.
25) *>KERMIT.BUILD.CPL, *>INSERT>(KERMIT, PRIMOS).INS.PLP,
*>SOURCE>(UTILITIES, SETUP_TRANS_CHAR).PLP 09/02/90 :
The build program will now allow the -BINARY option to be passed to
the PLP compiler. This allows the redirection of the binary file, or
the prevention of any binary file being produced by using the relevant
PLP -BINARY options. The default is still to the sub-directory *>OBJ.
The above 5 files have had their initial comment lines changed so that
all of the build and source files received from a distribution site
may be more easily identified. Each file is seperated by a line of
hyphens. This is then followed by a blank line, and then a single
comment line. This begins with the characters "/* ". The upper case
characters following it are the subroutine name, and end with the
character sequence " -- ". It is intended that an editor is used to
seperate out the files. The build file and insert files will need to be
seperated individually. I hope this is of some help.
26) *>SOURCE>(SEND_PACKET, COMND).PLP 12/02/90 :
Minor changes to some of the conditional statements logic in the
subroutine SEND_PACKET.
In the subroutine COMND a window size of 0 will now display a message
stating that no windowing will be performed. An invalid window size
will now show the correct message; previously it gave garbage at the
end of the message.
27) *>INSERT>(COMMON, CONSTANTS).INS.PLP,
*>SOURCE>(KERMIT_INIT, OPEN_INPUT, READ_INPUT, SET_PARAMS, GET_DTC,
PRS_SEND_INIT, LOG_PACKET, CHANGE_DIR, COMND, GENERIC_CMD,
WRITE_OUTPUT, CONVERT_FILE, REC_SWITCH).PLP 15/02/90 :
Peter Mason's (SHEFFIELD UNIVERSITY, U.K.) code has been incorporated to
allow ASCII files containing long lines to be transmitted. This worked
fine for binary files, but ASCII/Text files would previously be truncated
to 1022 characters.
Some more commonly used constants have been replaced by variables or
%REPLACE identifiers.
28) *>SOURCE>(CLOSE_OUTPUT, GET_DTC).PLP 16/02/90 :
If file attributes are in use then the files' Date/Time last modified
(DTM) attribute is set as well as the Date/Time of creation (DTC).
Whilst the Kermit Protocol states that the DTC should be used, this is
historical and the DTM is of more use to users. The DTM is also sent
instead of the DTC in the attribute packet.
This is now version 8.01 (unreleased).
29) *>SOURCE>(UTILITIES, WRITE_IBUF, WRITE_OUTPUT, OPEN_OUTPUT,
KERMIT_INIT).PLP,
*>INSERT>COMMON.INS.PLP 07/03/90 :
Lines ending in just a LF are handled correctly now. This will allow
POSTSCRIPT files to be transferred. A NUL character is appended to the
LF, if necessary, to maintain the word alignment.
When receiving a file the file type (text or binary) cannot change once
the file has started to be written to disk. Previously it was possible
for certain files to change type when the last part of the file was
received. The logic of some conditional tests has also been changed.
30) *>SOURCE>(READ_INPUT, KERMIT_INIT, WRITE_IBUF, OPEN_OUTPUT).PLP,
*>INSERT>COMMON.INS.PLP 21/03/90 :
Corrected the handling of repeat characters. Sometimes the packet would
become too large when two characters were repeated, since these two are
actually written out individually and NOT packed together. This has also
enabled us to simplify some other parts of the code.
31) *>SOURCE>GENERIC_CMD.PLP, *>INSERT>PRIMOS.INS.PLP 29/03/90 :
The generic command COPY now uses different subroutines to perform the
copy. This makes it faster, and also allows the copying of binary files.
Previously these files would become corrupted. The declared entry for
the Primos subroutine RDLIN$ has been removed since it is not used.
32) *>SOURCE>PRS_SEND_INIT.PLP 06/04/90 :
Removed a redundant WHEN statement.
33) *>SOURCE>(SEND_SWITCH, KERMIT_INIT, READ_INPUT).PLP,
*>INSERT>COMMON.INS.PLP 10/04/90 :
The bug fix 30 above caused the packet length to drop to about 86
characters for most packets. This seemed to be getting too low a value.
The character handling code in READ_INPUT has been re-written so as to
get the packet as full as possible before sending it. Most packets are
now filled to about 93 characters.
34) *>SOURCE>(NEXT_FILE, OPEN_LOG, KERMIT, GET_ERROR_MSG, COMND,
LOG_PACKET, CHANGE_DIR, REC_SWITCH, GENERIC_CMD,
SET_PATH).PLP 11/04/90 :
Minor changes to some logical character comparisons where null strings
are involved.
35) *>SOURCE>@@, *>INSERT>@@, *>KERMIT.BUILD.CPL 18/04/90 :
Version 8.10 (unreleased) received from Matthew Sutter in U.S.A.
New functionality with the CONNECT command for connecting the Prime to
other Computers, rather than just to micro-computers. Also allows the
SETting of the AMLC line number and baud rate for the CONNECT command.
Code included to SET the ESCAPE character for the CONNECT command, and
also recognition of some escape sequences as sub-commands to CONNECT.
Added code for BYE, FINISH, GET, INPUT, OUTPUT, PAUSE, and CLEAR
commands. Help screens updated for the new commands.
36) *>SOURCE>@@, *>INSERT>@@ 20/04/90 :
Version 8.11 (unreleased) received from Matthew Sutter in U.S.A. Some bug
fixes and code improvements to version 8.10. The MORE subroutine added
for the help screens.
37) *>SOURCE>@@, *>INSERT>@@ 23/04/90 :
Version 8.12. Further bug fixes and some code improvements. Code added
for the "0" sub-command to CONNECT, and allow the PAUSE command to accept
a 24-hour clock time.
38) *>SOURCE>COMND.PLP 01/05/90 :
Test for the remote server being present in the BYE and FINISH commands.
Made the SET FILE_TYPE command identical to the FILE_TYPE command line
option. It now recognizes "FT" or any sub-string of "FILE_TYPE". The SHOW
command has similarly changed. Minor text message changes.
39) *>SOURCE>(ASSIGN, XFER_MODE).PLP 27/06/90 :
Changed the half-duplex settings so as NOT to echo LF after a CR.
Requested by Ted Flory (BRIDGEWATER COLLEGE, U.S.A).
40) *>SOURCE>(ASSIGN, COMND, KERMIT_INIT, BK_HNDLR, REC_PACKET, REC_AMLC,
PRS_SEND_INIT).PLP,
*>INSERT>CONSTANTS.INS.PLP 06/07/90 :
The receive timeout has been changed from minutes to seconds, previously
the timeout would be rounded up to the nearest minute, but this is not
necessary. Also the timer is turned off as soon as a valid start-of-packet
character has been received, and NOT after the packet has been processed.
Some minor code changes in parameter passing now prevent Primos
POINTER_FAULT$ errors occuring when receiving data using an AMLC line.
The AMLC baud rates of 9600, 2400, 4800, 19200 have now been replaced
by CLOCK, JUMPER_1, JUMPER_2, and JUMPER_3. This now allows for the fact
that these values are machine/configuration dependant. The default values
are shown, but the actual values will have to be obtained from the system
administrator. The other baud rates of 110, 134.5, 300, and 1200 are fixed
within Primos, so the Kermit default baud rate has now also changed to
1200, the Prime default baud rate.
41) *>SOURCE>(KERMIT, KERMIT_INIT, OPEN_LOG, COMND).PLP,
*>INSERT>(COMMON, CONSTANTS).INS.PLP 17/07/90 :
The log file pathname is now shown with the "SHOW ALL" or "SHOW LOG"
commands. The send and receive packet maximum retry count is now settable,
and will also be shown with the "SHOW" or "SHOW RETRIES" commands. The
send and receive packet timeout may also be shown with the "SHOW" or
"SHOW TIMEOUT" commands. The send packet timeout is also settable.
42) *>SOURCE>OPEN_INPUT.PLP 23/07/90 :
The internal subroutine to perform automatic file type checking was
actually doing a bit more than it ought to, and likewise for specific file
types some internal buffers were not being initialised. This gave rise to
the problem that interrupted file transfers would corrupt the next file
sent if a specific file type was previously set.
43) *>SOURCE>(REC_SWITCH, SEND_SWITCH, KERMIT_INIT, SET_PARAMS, COMND).PLP,
*>INSERT>COMMON.INS.PLP 07/08/90 :
The sliding windows code has been corrected. The default window value is
6, but it is, of course, settable. A value of 0 is now illegal, non-
windowing is actually performed by the windowing code but with a window
size of 1. All of the previous non-windowing code has been removed.
44) *>SOURCE>SERVER.PLP 08/08/90 :
Timeouts by the server are not now NAKed since this only seems to cause
problems for the local kermit. The Prime will still log that timeouts
have occured though.
45) *>SOURCE>@@, *>INSERT>@@ 09/08/90 :
Version 8.12 received from Matt Sutter (U.S.A). New code for seperate
packet and/or session logging. Bug fixes to the repeat character
processing, and AMLC line handling.
46) *>SOURCE>@@, *>INSERT>@@ 10/08/90 :
Version 8.13 (unreleased). Merged version 8.12 (U.S.A) with all known
previous bug fixes.
47) *>KERMIT.BUILD.CPL, *>INSERT>@@,
*>SOURCE>(ASSIGN, COMND, CONNECT, DISCARD_OUTPUT, GENERIC_CMD, GET_LEN,
INPUT, KERMIT_INIT, MATCH_FILE, OPEN_INPUT, OPEN_LOG,
OPEN_OUTPUT, REN_HNDLR, SEND_PACKET, SERVER, SET_PATH,
XFER_MODE).PLP 25/10/90 :
Version 8.14. Corrected the setting of the terminal to/from
half/full-duplex mode, the initial setting is now correctly restored.
The REMOTE SPACE command will now also show the disk space available,
since it is useful for those users without quota restrictions.
The asynchronous line baud rate is now only checked for a valid rate when
set. Valid rates are determined by PRIME. When the line is assigned to
set the baud rate, checking will be done by PRIMOS as to whether the
hardware actually supports the requested rate.
The CLOSE command with no option will now close any one open log file,
but not if both are open.
Unimplemented server commands are now reported as such.
Files which are at the MFD level are now handled correctly, previously
their pathname would become corrupted.
GET_USER_INFO is a new subroutine to determine some of the users PRIMOS
environment variables. It is called when Kermit is invoked, and when the
user re-enters Kermit after a PUSH command since they may have changed
their environment whilst at PRIMOS level.
For ASCII files the exact file length in bytes is now sent. Previously
the length did not take account of space compression characters, so the
file length sent was usually less than its true length.
48) *>INSERT>(CONSTANTS, COMMON).INS.PLP,
*>SOURCE>(KERMIT, KERMIT_INIT, COMND).PLP 11/02/91 :
Added the -INIT option to the command line. By default an initialization
file, called PRIME_KERMIT.INIT, will be run if it exists in the current
directory. An alternate pathname may be used if it is specified on the
command line.