1

LISP LIBRARY PACKAGES MANUAL
1

LISP LIBRARY PACKAGES MANUAL
KERMIT AND MODEM
1

COMMUNICATIONS/NETWORK
1




KERMIT AND MODEM
6

Kermit and Modem are utilities meant primarily for transferring files between computers using ordinary RS232 and modem connections.  The file KERMIT.DCOM contains both the Kermit and Modem protocols.  Once loaded, it provides a means of transferring files between an Interlisp-D workstation and any other computer that supports either Kermit or Modem, and to which Interlisp-D is able to open a Chat connection.
Of these two file transfer protocols, Kermit is preferred.  Modem is much less flexible than Kermit, and cannot be used on RS232 connections requiring parity or flow control.  Modem was developed primarily to support file transfers to and from microcomputers running the CP/M operating system.  Modem implementations are available for Tops-20, VAX/Unix, and VAX/VMS.  Kermit, on the other hand, was designed for file transfers between computers of many types, and there exist implementations of the Kermit protocol on machines ranging in size from eight-bit microcomputers to large IBM mainframes.
2

Using Kermit and Modem
1

The first step in using Kermit or Modem is to establish a Chat connection with  a desired host.  You may use any sort of Chat connection (e.g., NS-based, TCP-based, PUP-based, or RS232-based).  If you are using an RS232 connection, and plan to transfer files with the Modem protocol, you must not establish a connection that requires parity to be used; you must establish the connection with eight bits per character and no parity (see the Lisp Library documentation for RS232).  In addition, you should disable flow control (XOn/XOff) when using Modem.
When you have established a Chat connection to a remote host, log in (if necessary), and start the remote host's Kermit or Modem program.  The details of how to run these programs differ slightly between implementations; you should obtain documentation specific to your version of Kermit or Modem.
Using Kermit
1

Most mainframe implementations of Kermit have a ©©server mode.¹¹  This mode causes the remote Kermit to listen for either send or receive requests without your having to type additional commands to the remote Kermit.  If the version of Kermit you are using does support server mode, give the server mode command to place the program in this mode.  In most implementations of Kermit, server mode is entered by your typing ©©server <cr>¹¹ to the Kermit prompt:
Kermit> server
If the remote Kermit does not support Kermit mode, you must issue individual send and receive requests for each file you transfer.  To send a file to a remote Kermit, issue the receive command to the remote Kermit.  To receive a file from a remote Kermit, issue the send command to the remote Kermit.  In most cases, these commands are followed by the name of the file to be sent or received.  For example:
Kermit> receive file.txt
or
Kermit> send file.txt
If you are transferring files between two Interlisp-D workstations connected by an RS232 connection, you should call (CHAT 'RS232) on each machine to establish the connection.  Currently, Interlisp-D Kermit does not support a server mode, so you must issue a receive request on one machine, followed by a send request on the other (see below).
After you have started the remote Kermit program, you need to start the local Interlisp-D Kermit program.  Interlisp-D provides both functional and interactive interfaces for Kermit (and Modem).  We describe here the functional interface; the interactive interface will be described later in this document.
To start the local side of the Kermit file transfer, use the KERMIT.SEND or KERMIT.RECEIVE functions:
(KERMIT.SEND LOCALFILE REMOTEFILE
                              WINDOW TYPE)	[Function]
LOCALFILE is the name of the file being sent to the remote Kermit.  REMOTEFILE is the name under which the file should be stored remotely; in most implementations of Kermit, this name overrides any name you specified in the remote receive command.  WINDOW is a pointer to the Chat window over which the transfer will take place; if WINDOW is NIL, the value of CHATWINDOW (the first Chat window to be opened) will be used in its place.  TYPE is the type of the file; it should be set to either TEXT or BINARY.
(KERMIT.RECEIVE LOCALFILE REMOTEFILE
                                     WINDOW TYPE)	[Function]
LOCALFILE is the local name of the file to be received from the remote Kermit.  REMOTEFILE is the name of the file on the remote machine.   WINDOW is a pointer to the Chat window over which the transfer will take place; if WINDOW is NIL, the value of CHATWINDOW (the first Chat window to be opened) will be used in its place.  TYPE is the type of the file; it should be set to either TEXT or BINARY.
While the file transfer is in progress, the associated Chat window will be blank, and cumulative packet counts and other messages will be displayed in a one-line prompt window above the Chat window.  
Using Modem
1

To transfer files with the Modem protocol, you must run the Modem program on the remote machine.  Modem does not support a server mode; typically, you run the program once per file transferred, with instructions in the command line to indicate whether the file is being sent or received.  There are a number of versions of the Modem protocol.  On some systems, you run the program called Modem; on other systems, the program is called UModem or XModem.  
On Unix, for instance, to send a text file to an Interlisp-D workstation, you would type:
% xmodem -st file.txt
On Tops-20, you would type:
@modem sa file.txt
You should transfer files between two Interlisp-D machines using the Kermit protocol.
As with Kermit, after you have started the remote side of the file transfer, you must start the local (Interlisp-D) side.   To do this, use either of the functions MODEM.SEND or MODEM.RECEIVE:
(MODEM.SEND LOCALFILE WINDOW TYPE
                                EOLCONVENTION)	[Function]
LOCALFILE is the name of the file to send to the remote Modem program.  WINDOW is the Chat window over which the transfer will take place.  TYPE is the file type, either TEXT or BINARY.  EOLCONVENTION is the end-of-line convention used by the operating system on which the remote Modem program is running.   EOLCONVENTION should be one of CR, LF, or CRLF.  Typically, Unix and VMS require LF, Tops-20 requires CRLF, and other Interlisp-D machines require CR.
(MODEM.RECEIVE  LOCALFILE WINDOW TYPE 
                                        EOLCONVENTION)	[Function]
LOCALFILE is the name of the file to receive from the remote Modem program.  WINDOW is the Chat window over which the transfer will take place.  TYPE is the file type, either TEXT or BINARY.  EOLCONVENTION is the end-of-line convention used by the operating system on which the remote Modem program is running (see above).
2

Interactive File Transfers With Kermit or Modem
1

A more convenient user interface for Kermit and Modem is available via the package KERMITMENU.DCOM.  KERMITMENU loads FREEMENU, and provides a menu-oriented interface for issuing Kermit or Modem commands.  To obtain the menu interface, depress the middle mouse button in a live Chat window.  The standard middle-button Chat menu will contain an entry labeled ©©Kermit¹¹ near its top.  If you select this entry, a menu will appear at the top of the associated Chat window:
�����~�L�ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüð����������������������������������������������<ð������������0����`����0�����������������������<ð���������À�6���`�Àà0`����������������������<ð�����������6�����À�`����������������������<ð���������zö�8ÎmœÀ
¿`����������������������<ð���������›m¶�m›m¶Àí¶`����������������������<ð���������ßm¶�}Ÿg>À6`����������������������<ð����������Øm°�a˜g0�
¶�����������������������<ð���������nö�<ÏbÀí³`����������������������<ð������������������À���`����������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð��������������������ÿÿÿÀ���������������������<ð�������������À���`��ÿÿ÷À��������������������<ð���������À�€���`��]ÿÿ÷À0������������������<ð���������€�€���`��[ÿÿÿ@0������������������<ð���������•ç¯ÎQþuç0�WÎ"v�Q‡ì����������������<ð���������œfÙ›q¶Ûm°�O¶í·@RI$’����������������<ð���������™æÝŸa¶Ûo€�W†í·@RI<’����������������<ð���������›f͘a¶Ûl��[¾í·@’I ’����������������<ð���������™æُa¶uç°�]Æí·�‘‡’����������������<ð������������������0�ÿÿÿÀ���������������������<ð��������������������ÿÿÿÀ���������������������<ð��������������������ÿÿÿÀ���������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð������������0Û���@�	���@�����������������<ð�����������1›����É��À"@�����������������<ð�����������1ƒ���ˆ��0 @���������������<ð���������o3Û9€�ˆ™"	3ž‘ŒzFS€��������������<ð���������6Ã1›m€¡A0	BH’P"IQ���������������<ð���������6Ï1›|��ˆ™‚	2H“Ì"O!���������������<ð���������6Û1›`��ˆ…B	
H’0"HQ���������������<ð���������œo1›=€�"�É3ˆ‘ÌÀ"G#Q€��������������<ð��������������€�€��������� ����������������<ð�����������������@��������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð��������������Ø����������������������������<ð���������€���Ø����������������������������<ð���������À��À���€@�����������������������<ð���������ΝçÙÌ�‘Ôà�����������������������<ð���������›m¶ÍŒÛl�’@”@�����������������������<ð���������ßm¶ÏŒÛà�“Àˆ@�����������������������<ð���������Øm¶ÌÛ��’�”@�����������������������<ð���������OmœgŒÙì�‘ÈÔ`�����������������������<ð��������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������������������������������������������<ð����������6������������0Ø�������������������<ð���������¶����à���à�`Ø�€�����q��������<ð����������À���€�€���`À�����À��I��������<ð���������6qí¼s�†)À�^ðÛÇóg=ìç˜I��������<ð���������¶ØͶÛ�‰(€�í¶`ÛmŒ6Ûm¶Í¶Øq��������<ð���������6øÏ6ø�€�
¶ÛfÛoŒ6Ù϶ͶÀI��������<ð���������6ÀÇ6À�ˆ(€�
¶ÛfÛl6ÙÌ6ͶÀI��������<ð���������6xf<{�‡(À�íÞ`Ûg‡œØ‡¶læØEè��������<ð������������0������������������������������<ð������������0��������������������������������<ð����������������������������������������������<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿü
The Kermit menu
The entries on the top line of the menu are action commands:
·	Send!  Starts sending a file to the remote Kermit or Modem program.  The remote program must be prepared to receive the file.
·	 Receive!  Starts receiving a file from the remote Kermit or Modem program.  The remote program must already be attempting to send the file.
·	 Exit!  Closes the window containing the menu.
The remaining menu entries control Kermit or Modem file transfers:
·	Transfer Mode:  This entry controls whether files are transferred using Kermit or Modem.  You may set the state of this entry by buttoning either of the Kermit or Modem labels with the mouse.  The current transfer mode choice is displayed inverted in the menu.
·	Local File:  This entry holds the name of the local file being sent or received.  You may set the contents of this field by buttoning the ©©Local File¹¹ label and typing the desired name.
·	Remote File:  This entry holds the name of the remote file being stored or retrieved.  You may set the contents of this field by buttoning the ©©Remote File¹¹ label and typing the desired name.  The Modem protocol does not use the contents of this field.
·	File Type:  This field controls whether files are sent in binary or text (ASCII) mode.  To set this field, button over the ©©File Type¹¹ label and choose an entry from the menu that appears.
·	End-of-Line Convention: This field sets the end-of-line convention being used by the remote Modem program (it is not used when files are transferred in Binary mode or with the Kermit protocol).  The contents of this field must match the conventions of the operating system on which the remote Modem program is running.  To set this field, button over the ©©End-of-Line Convention¹¹ label, and choose an entry from the menu that appears.
�����(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC  ) STARTINGPAGE# 201) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC  )) (270 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 618) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (54 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (270 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL)))))�������1�Ì�Ìø��������Þ�È�������������������������.�x�xø�������È�������������������������.�T�Tø�������È�������������������������/�Ì�Ìø��������ø�������������������T�����/�Ì�Ìø�������ø�������������������T�����/����ø�2������È�������������������T�����.�Ì�Ìø�������È�������������������������/����ø��������È�������������������T�����/����ø�������È�������������������T�����.�Ì�Ìø�������ø�������������������������.�Ì�Ìø�������È�������������������������)����ø������������������������T�����)����ø�2�����������������������T�����(�Ì�Ìø������������������������������(�Ì�Ìø������������������������������)�Ì�Ìø�������������������������T�����)�Ì�Ìø�������������������������T�����)����ø�������������������������T�����B����ø��������ø�������PAGEHEADING�	VERSOHEAD���������������B����ø��������ø�������PAGEHEADING�	RECTOHEAD���������������A����ø������ø�������PAGEHEADING�FOOTINGV���������������A����ø������ø�������PAGEHEADING�FOOTINGR���������������(��������������������������������������������MODERN����������MODERN����������MODERN�
���������MODERN����������MODERN�
�������������������HRULE.GETFN��MODERN�
���������������������������������������HRULE.GETFN��MODERN�
����������������������������������������������������HRULE.GETFN��MODERN�
���������������������������������������HRULE.GETFN��MODERN�
�����������������������������������������������������������������HRULE.GETFN��MODERN�����������������������œ������������V����������
�����HRULE.GETFN��MODERN���������������������������������������HRULE.GETFN��MODERN�����������������������*������������*�������������
���������������HRULE.GETFN��MODERN�����������������������Ë��������������������������“����������������������������2����������������������������‰���������������������������������������������������X������������3�������������f�������������
��������������������)�������
����������
���	�������;�������
�������«��������������M��������������b��������������E���������������������������������0�������
����������
���	�������G�������
�������2��������������M��������������b��������������E����������
���É����������	������������������HRULE.GETFN��MODERN�����������������������Ç�������������Z����������������������������������������������������V�������������Á���������������������������������-�������
����������
���	�������?��������������>��������������+�������
�������l�������
�������Š���������������������������������5�������
����������
���	�������D��������������>��������������+�������
�������v���������������HRULE.GETFN��MODERN������������������������0���������������HRULE.GETFN��MODERN�����������������������������������L��BMOBJ.GETFN3��MODERN�
�������������������������������������=�������������€��������������������������1�������������C�������������������������¾�������������������������Á������������·������������2d�Èzº