home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
kermit.columbia.edu
/
kermit.columbia.edu.tar
/
kermit.columbia.edu
/
cdccompass
/
cybker.gen
< prev
next >
Wrap
Text File
|
1988-08-15
|
8KB
|
203 lines
Overview of Cyber (NOS) Kermit.
Programmer A. V. Le Blanc
Language COMPASS 3.6-587
Documentation A. V. Le Blanc
Date March 1986
Operating System NOS 2.2 at PSR level 596
Field length 2,922 (decimal) words, including I/O buffers and
system text
Cyber Kermit capabilities at a glance:
Remote operation Yes
Local operation No
Transfer text files Yes
Transfer binary files Yes
Wildcard send No
File transfer interruption Yes
Filename collisions avoided Yes
Can time out No
8th bit prefixing Yes (required for binary transfers)
Repeat count prefixing Yes
Alternate block checks No
Long packets No
Terminal emulation No
Communication settings Yes (where practical)
Transaction logging Yes
Debug logging Yes
Packet logging Yes
Acts as a server Yes
Advanced server functions Some
Local file management No
Command/Init files Yes (coded format)
File attribute packets No
Command macros No
Note: The value of parity must be selected at compile time. Only
one-character checksums are supported. Because of the diffi-
culty of appropriate error recovery, Cyber Kermit does not
allow Remote Host commands; however, packets of this type are
accepted and used for remote status inquiry and for the remote
selection of file types. A further departure from Kermit's
'official' definition is that the error count is reset to zero
after each packet rather than after each file.
Files.
In addition to the present file, I am supplying three files:
(1) The source code (in COMPASS).
(2) A CCL procedure which creates the structured help file required
by the program.
(3) Our Manchester user manual in line printer format (column 1 con-
trol characters, but no underscores, italics, or bold print).
All files except the source code are ASCII 6/12 files; if you receive
the source in ASCII and convert it to 6-bit display code using
$FCOPY,P=asciisource,N=sixbitsource,PC=ASCII,NC=DIS,R.
the source will be ready to generate conditional code appropriate to
64-character or 63-character sites. Before compiling the program you
must select one of the available parities, the one which accords best
with the default parity selected at your site. At this time you may
alter the following assembly constants by editing the following EQU
statements which occur near the start of the source code:
PARIT EQU 2 parity: 0 = zero, 1 = odd, 2 = even
TBUFL EQU 301B buffer length for terminal files
WBUFL EQU 501B buffer length for mass storage files
LBUFL EQU 301B buffer length for log file
DEFPLEN EQU 94 default packet length to request
DEFESCA EQU 3 default (ASCII code) local escape char
DEFTIME EQU 20 default timeout to request in seconds
DEFRETR EQU 5 default retries allowed per packet
The mass storage buffer WBUFL may be increased slightly if you wish,
but the buffers are rather small to reduce the time needed to get the
program back into memory when it is swapped out. The constant called
ILLEGIT limits the values to which the local escape character and the
packet marker may be set; instructions for changing these values can
be found in the preceding comment.
If your site has access to the system OPL, attach it under the name
OPL and give the command
$COMPASS,I=sixbitsource,B=KERMBIN,L=KERLIST.
If your site does not have access to the system OPL, delete the six
XTEXT lines (two at the start and four at the end of the source), re-
place the first line with the line
IDENT KERMIT
and delete the line 'ABS'. Then you can compile a relocatable binary
with the command
$COMPASS,I=sixbitsource,B=KERMBIN,L=KERLIST,S=NOSTEXT,S=PSSTEXT.
and produce an absolute binary with LOAD command and the NOGO option.
On our system the binary (45 PRU's in length) is stored as KERMBIN in
the user name LIBRARY. If the source is named KERMITC, the following
procedure will extract its internal or external documentation:
.PROC,KERDOCS*I,
TYP[Type of documentation]=(INT,EXT),
FLN[File name]=(*F,*N=KERDOC).
$RETURN(FLN,ZZZDOC)
.IF,FILE(KERMITC,.NOT.LO),GETIT.
$GET(KERMITC)
.ENDIF,GETIT.
$DOCMENT(I=ZZZZPRD,S=KERMITC,L=ZZZDOC,T=TYP)
$REVERT(NOLIST)
.DATA,ZZZZPRD.
KERMIT -- FILE TRANSFER UTILITY
Cyber Kermit will not run unless there is a local file named ZZZKHLP.
This multi-record file contains long help messages. Since it is dif-
ficult to transfer structured files on non-CDC equipment, I have pre-
pared a simple-minded CCL procedure which contains the text of this
file and writes appropriate ends-of-record when executed. If needed,
changes should be made to this file before executing the procedure.
Changes will probably be unnecessary if no assembly constants except
parity are changed. Those help messages which can be sent to a micro
when Cyber Kermit is in server mode are 38 columns wide; others are
61 columns wide. In our system the help file is stored as KERHELP in
the user name LIBRARY. The help file contains the following informa-
tion specific to the Manchester implementation: default constants are
94 (packet length), CTRL-C (escape character), 20 (requested timeout
interval), and 5 (retries per packet); the Manchester commands DSAVE
and DEPLACE are mentioned; the escape character and the sync marker
may not be set to CONTROL with any of the following letters: H, J, M,
P, Q, S, T, or X.
The User Manual may be rather less useful since it contains much that
is peculiar to our system in Manchester. The manual does not mention
the possibility of saving SET options in a file. Simply SET whatever
variables you wish and stop execution with the PUSH command. ZZZKDAT
is the local file which contains (in coded form) the options you have
selected. Simply SAVE this (using another name if you wish) and then
GET it before starting the program.
Cyber Kermit writes a log file whenever it runs. Since this log file
is a structured 6-12 file, one can list all or part of it. In Man-
chester this is done by the Kermit CCL procedure on a system library.
This procedure appears as follows when various site-specific elements
are removed:
.PROC,KERMIT*I
,ACT[Action]=(ALL,LOG,*N=RUN,LOCAL,*S3(ABCDEFGHIJKLMNOPQRSTUVWXYZ)).
.HELP,,NOLIST
Procedure KERMIT is designed to help you run Kermit and view your
Kermit logfile. It will also print your Kermit logfile.
Format: KERMIT Run the Kermit file transfer program.
KERMIT,LOG List the last part of your Kermit logfile.
KERMIT,ALL List all of your Kermit logfile.
KERMIT,printer Print your Kermit logfile on the specified
printer; for example, type KERMIT,MBS to
print your logfile on the MBS printer.
.ENDHELP
.IF,$ACT$=$RUN$,WHATNOW.
.IF,FILE(ZZZZKER,PM).AND.FILE(ZZZKHLP,PM),ITSHERE.
.EX. ZZZZKER.
.ELSE,ITSHERE.
$ATTACH,ZZZZKER=KERMBIN,ZZZKHLP=KERHELP/UN=LIBRARY,PN=0.
$SETFS,ZZZZKER,ZZZKHLP/FS=NAD.
$REVERT,EX. ZZZZKER.
.ENDIF,ITSHERE.
.ELSE,WHATNOW.
.IF,FILE(ZZZKLOG,MS),WHATNOW.
.IF,$ACT$=$LOG$,WHATA.
$CSET,ASCII.
$SKIPEI,ZZZKLOG.
$BKSP,ZZZKLOG,1.
$COPYBR,ZZZKLOG.
.ELSE,WHATA.
.IF,$ACT$=$ALL$,WHATA.
$CSET,ASCII.
$REWIND,ZZZKLOG.
$COPYBF,ZZZKLOG.
.ELSE,WHATA.
$RETURN,ZZZZJOB.
$REWIND,ZZZKLOG.
$FCOPY,P=ZZZKLOG,N=ZZZZJOB,PC=ASCII,NC=ASCII8.
$ROUTE,ZZZKLOG,DC=PR,UN=ACT,EC=A9,UJN=ZZZKLOG.
.ENDIF,WHATA.
$REVERT(NOLIST)
.ELSE,WHATNOW.
$REVERT,ABORT. LOG FILE ZZZKLOG IS MISSING.
.ENDIF,WHATNOW.