home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Columbia Kermit
/
kermit.zip
/
archives
/
ucsdterak.tar.gz
/
ucsdterak.tar
/
ucterakdoc.txt
< prev
next >
Wrap
Text File
|
1984-04-11
|
7KB
|
156 lines
KERMIT UCSD is a version of KERMIT which runs under the UCSD psystem. Due to
the limitations of UCSD Pascal, there are several routines which must be
written in assembly language. This version was implemented on a Terak 8510A,
which is a PDP 11/2. Detailed below are the functions of the routines, as
well as information needed for linking.
The command parser is a separate compilation unit, which has the filename
PARSER.
KERMIT uses assembly routines for host computer and keyboard
receiving. The file RCVHANDLR.TEXT contains all the routines for handling
the characters received from the host, KBDHANDLR.TEXT contains all the
routines for handling characters received from the keyboard, and SENDB contains
the routine for sending a continuous break to an IBM mainframe.
To build KERMIT, first assemble PARSER, RCVHANDLR, KBDHANDLR & SENDB.
PARSER must then be linked into a library called PARSELIB. Then compile
KERMIT then finally enter the following linker sequence:
Host file? KERMIT
Lib file? PARSELIB
Lib file? SENDB
Lib file? RCVHANDLR
Lib file? KBDHANDLR
Lib file? <cr>
Map name? <cr>
Output file? KERMIT.CODE
The order in which the library files are typed in makes a difference (for some
unknown reason), as does the '.CODE' extension on the output file name.
The following declarations are needed for KBDHANDLR and RCVHANDLR
CONST RCVQSIZE = <maximum number of queued characters>
TYPE QUEUE = RECORD (* These are order-dependent !!! *)
QSIZE: INTEGER
INP: INTEGER
OUTP: INTEGER
MAXCHAR: INTEGER
DATA: PACKED ARRAY [0..RCVQSIZE] OF CHAR
END
VAR RCVQ: QUEUE (* must be declared in outermost block *)
The routines RCVINIT and KBDINIT must be called at the beginning of the
program in order to set up interrupt vectors and handlers. They are
declared as
PROCEDURE RCVINIT (VAR Q: QUEUE; SIZE:INTEGER) EXTERNAL
PROCEDURE KBDINIT (VAR Q: QUEUE; SIZE:INTEGER) EXTERNAL
and should be called appropriately. RCVINIT takes care of setting other
system interrupt priorities so that keyboard and remote input override them.
KBDINIT only deals with the keyboard interupts, since others will be taken
care of by RCVINIT.
The routines RCVFINIT and KBDFINIT should be Mcalled at the end of the
program in order to restore interrupt vectors, handlers and priorities. They
are declared as
PROCEDURE RCVFINIT; EXTERNAL;
PROCEDURE KBDFINIT; EXTERNAL;
and are called with no parameters.
The queue handlers run continuously as interrupt-driven tasks at high
priority. As characters come in, they advance the queue INP pointer and
keep track of the maximum number of characters in the queues in the MAXCHAR
variables. Queue overflow is indicated by MAXCHAR > QSIZE.
To send a break the routine SENDBRK is used, which sends a continuous
break and should be declared as
PROCEDURE SENDBRK; EXTERNAL;
KERMIT-UCSD is a version of KERMIT written primarily in UCSD Pascal
Version II.0. There are four assembly language routines which manage special
keyboard and remote input interrupt handlers, and one more which sends a
continuous break signal. The program was developed on a TERAK 8510A
microcomputer, which is a PDP-11/2. With the rewriting of the above five
routines, plus two interrupt handlers, the program should be easily movable
to any UCSD psystem.
KERMIT-UCSD has the following limitations:
1) No wild card designations of file names.
2) No eight-bit file quoting.
3) No character repeat counts.
4) No '?' and <esc> at the end of a command line.
5) No server communications.
6) Sending and receiving cannot be done for anything but .TEXT files
(which contain a two-block header and space compression codes).
7) Instead of using a clock to time out when waiting for a packet,
KERMIT-UCSD has a limit on the number of times it will look for
a response before giving up.
The commands recognized by KERMIT-UCSD are listed below.
CONNECT To make a "virtual terminal" connection to a remote
system. To break the connection and "escape" back to the
micro, type the escape sequence (CTRL-] C, that is Control
rightbracket followed immediately by the letter C.)
EXIT To return to main psystem command level.
HELP To get a list of KERMIT commands. HELP can be followed by
any command, in which case the help will refer only to that
command.
RECEIVE To accept a file from the remote system.
SEND To send a file or group of files to the remote system.
Takes a filename as a parameter.
SET To establish system-dependent parameters. The SET options
are as follows:
DEBUG To set debug mode ON or OFF (default is OFF).
END-OF-LINE To change the character used at the end of
packets to something other than the default
of CR. It must be a digit between 0 and 31.
ESCAPE To change the escape sequence that lets you
return to the PC Kermit from the remote host.
The default is CTRL-] c.
FILE-WARNING ON/OFF, default is OFF. If ON, Kermit will
rename an incoming file so as not to
write over a file that currently exists with the
same name.
IBM ON/OFF, default is OFF. This flaMg should be
ON only when transfering files between the PC
and an IBM VM/CMS system. It also causes the
parity to be set appropriately and activates
local echoing.
LOCAL-ECHO ON/OFF, default is OFF. This sets the duplex.
It should be ON when using the IBM and OFF for
the DEC-20.
PARITY EVEN, ODD, MARK, SPACE, or NONE. NONE is the
default but if the IBM flag is set, parity is
set to MARK. This flag selects the parity for
outgoing and incoming characters during CONNECT
and file transfer to match the requirements of
SHOW To see the values of parameters that can be modified
via the SET command. SHOW ALL shows all parameters; SHOW
followed by a parameter listed under SET will show the value
of only that parameter.
This version of KERMIT does not have a SET BAUD command because the baud rate
is set by hardware on the TERAK.