.!.STANDARD 72 .ps 58,70 .AUTOPARAGRAPH .ap .nofill .fill .indent 45 PN-154 .title HOST program for File Transfer .figure 3 .center;HOST PROGRAM FOR SOURCE FILE TRANSFER BETWEEN VAX AND .center;OTHER COMPUTERS .skip 2 .center;R.J. Dosen and V. White .center;November 16, 1981 .figure 10 The HOST program allows communication and ASCII file transfer between the VAX where the program HOST is running and other computers. The program will allow you to connect to a remote computer at 300 or 1200 baud through the VAX and will transfer files. This program does not support any type of error detection or correction during a file transfer. Long distance calls may be made directly. You will be charged for long distance phone bills since we keep a log of HOST usage. Do NOT use UWATS. Objectionable tones are generated on UWATS lines which may disconnect you at any time. Two users at a time may run the HOST program since we have two dialout modems. .page .hl 1 DEFINING HOST To define the HOST command, you should put the line .skip 1 .literal $ HOST :== $SYS$SYSTEM:HOST.EXE .end literal .skip 1 in your LOGIN.COM command procedure file. The host program normally selects any available dial-out modem (currently TTA3, TTA4). You may, however in case of trouble specify one e.g. .literal $ DEFINE HOST_MODEM TTA4 .end literal .hl 1 RUNNING HOST To run the HOST program, type the following command at your terminal. .break .nofill .skip 1 HOST .fill When HOST is run, it will ask you several self-explanatory questions, the answers to which are explained in the following section. After answering them, your terminal will be connected to the dial-out modem. Type a control-E and carriage return to get the modem intelligence's attention it will respond with HELLO I'M READY * You may now type in single letter commands (terminated by return) to the dial-out modem. See HELP HOST MODEM for complete information on commands. You can get-by with the following command D (return) selects Keyboard Dial Mode (what you type will NOT be displayed) you will be prompted NUMBER? Type the number as it would be dialed (you may include dashes for readability or 'K' for a 5 second delay) it will NOT echo as you type. The number will then display for your approval. You must type a return to tell it to actually dial the number. it will then display DIALING: and dial the far computer. When connection is made, the modem will print ON LINE and turn off its intelligence, allowing you to talk directly to the far computer. ( you may need to press return one or more times to get the attention of the far computer). You will are now connected to the remote system. When you have established the connection to your remote system all subsequent terminal input, with only one exception, is sent directly to the remote system. Login on the remote system and do what you like. The exception is when a NUL (ASCII code 0) character is typed (this is a control-space-bar on a VT-100 or ADM-3 and also a control-@ on an ADM-3 or Z-19 terminal ). This character is intercepted by HOST and allows you to enter commands to HOST to transfer files or perform various other functions. Type HELP HOST COMMANDS for a list of the HOST commands. Occasionally you may find that you have a connection to a remote computer already established. (The automatic disconnect of the previous HOST user has failed). You should Exit from the HOST program, wait 30 secs and try again. If you get the message .skip .literal ERROR ON ALLOC MODEM .end literal .skip then someone else is using the HOST program. When you have established the connection to your remote system all subsequent terminal input, with only one exception, is sent directly to the remote system. Login on the remote system and do what you like. The exception is when a NUL (ASCII code 0) character is typed (this is a control-space-bar on a VT-52 or VT-100 or ADM-3 and also a control-@ on an ADM-3 terminal and on Z-19 CTRL-SHIFT-2 ). This character is intercepted by HOST and allows you to enter commands to HOST to transfer files or perform various other functions. .hl 1 QUESTIONS and ANSWERS Some parameters need to be set up before the connection to the remote system can be made. HOST must know through which port the modem connection is to be made, which type of remote system you wish to communicate with, at which baud rate, etc. Some of these parameters can be predefined, system wide, and some can be predefined locally by you. For all questions, default answers are provided. These default values will be used whenever a RETURN key is pressed in answer to a question. Normally, the first question you will be asked by HOST is to enter the Baud Rate. The Baud rate may be selected to be either 1200 or 300. You will be asked which type of remote system you wish to connect to. Three types of remote system are supported. By this is meant that suitable values for the line DUPLEX and PARITY are provided, and when file transfer to or from the remote system is requested, all the commands necessary to set up suitable terminal characteristics on the remote system and make the file transfer, are issued automatically. The remote system type should be entered as a character string. The supported types of system are: .BREAK .NOFILL .skip VAX CYBER PDP11 .FILL For any other system, or if the user wishes to issue all the file transfer commands to the remote system himself, the system type .BREAK .NOFILL .skip OTHER .FILL must be used. .hl 1 PRE-DEFINED PARAMETERS The ports through which HOST will establish a connection should be predefined on each system, using the System Logical Name HOST__MODEM. If for some reason the system manager or you have not set up this logical name then HOST will ask you to enter the port name. Current assignments are: .skip .literal TTA3 and TTA4 dial-out modems .end literal .skip 1 In addition, the default values for Baud Rate, Remote System, line duplex and parity may be set up using the logical names .skip .literal HOST_BAUD_RATE HOST_SYSTEM HOST_PARITY HOST_DUPLEX .end literal .skip If these names have been defined then they are used as the parameters for the HOST program, without prompting the user for the information .skip 1 For example: if you nearly always use the HOST program to communicate with the CYBER at 1200 baud then you might like to put in your login command file .break .skip 1 .literal DEFINE HOST_BAUD_RATE "1200" DEFINE HOST_SYSTEM "CYBER" .end literal .skip This will avoid all prompts for parameters and go directly to port selector connection. Of course, if you then wish to communicate with another system you will have to use the HOST command CHANGE, to change SYSTEM. .skip 1 .fill .hl 1 MODEM COMMANDS This section remains to be completed. Complain to LIBRARY. ctrl-E return get attention of modem intelligence D return dial dial from keyboard S return store store number M return memory display stored numbers 1 return dial first stored number . . . . . . 9 return dial ninth stored number R return redial dial number repeatedly P return print display menu of these commands (i.e. HELP) I return idle turns off modem intelligence .skip 1 .fill .hl 1 HOST COMMANDS Host normally sends all terminal input directly to the remote system. However, if you input a NUL character (control-@ for ADM-3 or control-space for VT-100 and VT-52 or CTRL-SHIFT-2 on Z-19) the NUL character is not sent to the remote system. Instead HOST prompts you for a command. The legal commands are: .break .ls .le;HELP - This command displays help on the modem commands. .le;EXIT - This command causes the HOST program to exit, returning you to VAX command level. This command does not log you off the remote system. The connection will be broken, it takes about 30 secs. You should logoff the remote system before EXITing HOST. .le;VAX - This command causes the HOST program to exit, returning you to VAX command level. In this case, the connection to the remote system is not broken. Use of this command is not recommended, because the modem line to the port selector is still owned by you, thus preventing anyone else from using the HOST program. .le;DELAY - The SEND command normally sends characters to the remote computer as fast as possible. Occasionally it may be necessary to send characters to the remote computer at a slower rate. The DELAY command allows you to set this delay interval between characters. You will be prompted for the delay time. The delay applies to all SEND commands until you EXIT HOST or issue a new DELAY command. For supported machines it is not necessary to set this parameter. .le;CHANGE - This command allows you to change individual characteristics of the line without exiting and rerunning HOST. If you change SYSTEM then only HOST's internal information about which remote system you are connected to will change. To disconnect from one remote system and re-connect to another you must EXIT from HOST to force disconnect. .le;SEND and RECEIVE - These commands allow file transfer to and from the remote system. See separate section below .els .hl 1 FILE TRANSFER TO AND FROM REMOTE SYSTEMS. ASCII files may be SENT from the VAX to a remote system, or RECEIVED by the VAX from a remote system. This file transfer is achieved by typing the file out to the terminal on the sending system and using this as terminal input on the receiving system, which must be running a program to create a file from terminal input. For all the supported systems both ends of this procedure are handled automatically, for both SENDS and RECEIVES. .skip 1 If the source file to be transferred contains lowercase characters then you must be sure that the terminal characteristics on both the host VAX and the remote system are correctly set. The following should be set .skip 1 .nofill SET TERM/LOWER on the VAX (normally already set) SET /LOWER=TI: on the PDP ASCII on the CYBER .skip 1 .fill If a source file is to be SENT to the CYBER, with records longer than 72 characters, you must set up the page width on the CYBER to a suitable value before starting the file transfer .break .nofill escape PW=n where n is the page width in characters .skip 1 .fill .hl 2 RECEIVE This command allows a file transfer to the VAX from the remote system. You must be logged in on the remote system. For all ^&supported systems\& you will be prompted for a destination file name on the local VAX and the source file name on the remote machine. The file will be typed out at the terminal as it is being transferred. Typing any character on the terminal during the transfer will terminate the transfer prematurely. When the file has been typed out completely you should then press the RETURN key, or any other key, and this will terminate the transfer and close the received file. To receive a file from some other ^&unsupported system\& you will be prompted for the destination file name on the local VAX. You must then issue commands to the remote system to type the source file out on the terminal. The file will be transferred to the VAX as it is typed out on the terminal. To terminate the transfer prematurely, type whatever you normally type on the remote system to stop typeout and return to command level. .hl 2 SEND This command will transfer a file from the VAX to a remote system. You must be logged in on the remote system. For ^&supported systems\& you will be prompted for the source file name on the local VAX and the destination file name on the remote system. Optionally, the file may be typed out on the terminal as it is being transferred. The file transfer will terminate automatically at end of file and the file on the remote system will be closed. For ^&unsupported systems\& you will be prompted for the source file name on the local VAX. However you must then issue a command to the remote system to copy terminal input to a file. This must be a single command which terminates with the first carriage return, at which time HOST will begin sending the file. You must then issue a command to the remote system to close the file (if necessary). The HOST program sends each record of a file, followed by a carriage return. The next record is sent when the remote system has responded with a line feed. If this synchronization is not appropriate for the remote system and data is sent too quickly, use of the DELAY command might help. (See section on HOST COMMANDS) To terminate the file transfer prematurely, type whatever you normally type on the remote system to stop accepting terminal input and return to command level. .hl 1 INSTALLATION OF THE HOST PROGRAM .hl 2 Building and Installing There is a command file which will build the HOST program and give installation information. HOST should be installed in the system with the following privileges .skip 1 .literal CMKRNL,CMEXEC,PHY_IO .end literal .hl 2 Modem Line Characteristics The port to be used for the modem connection to the port selector should be set up with the following permanent terminal characteristics: .skip 1 .literal /NOBROADCAST/NOECHO/NOINTERACTIVE/NOTYPE_AHEAD .end literal .skip 1 This helps eliminate dialogues between the far computer and the LOGIN process on the VAX. .hl 2 Logical Names The port to be used for the modem connection should be defined as a four character equivalence name string for the logical name .skip1 .literal HOST_MODEM in the system logical name table e.g. TTA3 (note no : on end) but DEFINE HOST_MODEM " " will allow the program to choose. .end literal .skip 1 .hl 1 WARNINGS .hl 2 Integrity As mentioned above, there is no error checking performed on files transferred between systems. If you transfer a file you might wish to sometimes transfer it twice and compare the two resultant files. Utilities for file comparison exist on PDP, VAX and CYBER .skip .literal DIFFER on VAX (for help type HELP DIFFER) CMP on PDP (for help type HELP COMPARE) .end literal .skip Since the program is used to transfer data using a modem and an external telephone line to a remote system great caution should be exercised, and probably the program is totally inadequate since it does NO error checking. .hl 2 Tabs Tabs on the VAX are transmitted to the remote system using the ASCII HT character. On the FERMILAB CYBER there are two procedures available in PROCLIB, to process the tab characters. These procedures are VAXTABS, which assumes tabs set every 8 columns starting at column 8; and FTNTABS, which assumes tabs set every 3 columns starting at column 7. .hl 2 Speed The speed of transmission is rather slow. Firstly 1200 baud is quite slow for file transfer of large files and secondly the HOST program sends or receives each character to/from the remote system with a separate I/O request .hl 2 Non Source Files The file transfer is for ASCII source files only. Non-ASCII characters may be interpreted as control information or errors. NUL characters may not be transferred. .hl 2 Carriage Returns and Blank lines If for any reason, your file contains embedded Carriage return characters, as the first character of a record, they will be removed in the process of receiving the file from a remote computer onto the VAX. From some remote systems received files may contain an extra blank line at the end. .hl 1 ACKNOWLEDGEMENTS The HOST program was orignally written by W.Tanenbaum,Harvard University High Energy Physics Laboratory. It has been modified at FNAL to provide better support for the FNAL computers. It was re-modified by J.James Belonis II for the UWPhysics VAX.