FTP Reference ManualTable of Contents1.Introduction1301.1Concepts and terminology1302.Calling the FTP subsystem1312.1Global switches1312.2FTP user log1322.3Using a Trident disk1322.4Server options1322.5The FTP display1323.Keyboard command syntax1333.1Directing keyboard input to the User and Telnet windows1333.2Keyboard commands1334.Command line syntax1374.1Command line errors1374.2Command line commands1384.3Command line examples1405.File property defaulting1415.1File types1425.2Byte-size1425.3End-of-line conventions1425.4File dates1426.Abort and error messages1437.Telnet143c Xerox Corporation 1979^p"Wqi QMrs2r Cs O2Cs LVr2r tr Cs J2C H2usC F2C E*2 C C_2usC @3r2Cs >h27Cs <2sCs 9qr2Cs 72C 52sCs 42sC 0r2Cs /2s Cs -N2sCs +2sCs )2s C &r2Cs #`r2CsD #;?==",OpqXD",aFTP REFERENCE MANUAL1301. IntroductionFTP is a Pup-based File Transfer Program for moving files to and from an Alto file system. Theprogram has three main parts:1.An FTP Server, which listens for file transfer requests from other hosts,2.An FTP User, which initiates file transfers under control of either the keyboard or thecommand line, and3.A User Telnet for logging into a remote host using the Pup Telnet protocol.1.1 Concepts and terminologyTranferring a file from one machine (or host) to another over a network requires the activecooperation of programs on both machines. In a typical scenario for file transfer, a human user (ora program acting on his behalf) invokes a program called an FTP User and directs it to establishcontact with an FTP Server program on another machine. Once contact has been established, theFTP User initiates requests and supplies parameters for the actual transfer of files, which the Userand Server proceed to carry out cooperatively. The FTP User and FTP Server roles differ in that theFTP User interacts with the human user (usually through some sort of keyboard interpreter) andtakes the initiative in user/server interactions, whereas the FTP Server plays a comparatively passiverole.The question of which machine is the FTP User and which is the FTP Server is entirely independentof the direction of file transfer. The two basic file transfer operations are called Retrieve and Store;the Retrieve operation causes a file to move from Server to User, whereas Store causes a file tomove from User to Server.The Alto FTP subsystem contains both an FTP User and an FTP Server, running as independentprocesses. Therefore, to transfer files between a pair of Altos, one should start up the FTPsubsystem on both machines, then issue commands to the FTP User process on one machinedirecting it to establish contact with the FTP Server process in the other machine. Subsequent filetransfers are controlled entirely from the FTP User end, with no human intervention required at theServer machine.Transferring files to or from a Maxc system or an IFS involves establishing contact with FTP Serverprocesses that run all the time on those machines. Hence, one may simply invoke the Alto FTPsubsystem and direct its FTP User process to connect to the machine.In the descriptions that follow, the terms local and remote are relative to the machine on which theFTP User program is active. That is, we speak of typing commands to our local FTP User programand directing it to establish contact with an FTP Server on some remote machine. A Retrievecommand then copies a file from the remote file system to the local file system, whereas a Storecommand copies a file from the local file system to the remote file system.Furthermore, we refer to local and remote filenames. These must conform to the conventions usedby the local and remote host computers, which may be dissimilar (for example, Alto versus Maxc).The Alto FTP knows nothing about Maxc filename conventions or vice versa.The Alto FTP subsystem also includes a third process, called a User Telnet, which simulates aterminal in a manner exactly analogous to the Chat subsystem (though lacking some of its finerfeatures). By this means, you may log in to a file server machine to perform operations not directlyavailable via the basic file transfer mechanisms.#fsuFsusu s ^q [susM ZWusCUnusMSQK Lv Is(vs/ H M F;vwvs Evwvs( C~usE A5us us @tusJ >#us% =j :>$usus 8?vsvs 74'9 5 2 us us us 07$u /ys/us -*us6 ,o,us5 * '1us%us &9:!u $sus( ! vsvs) us @us ~ "us+ M tK Hvsvs ` > us=  usv s B  Z 1  <>ZFTP REFERENCE MANUAL1312. Calling the FTP subsystemA number of options are available when running FTP. The program decides which parts of itself toenable and where user commands will come from by inspecting the command line. The generalform of the command line to invoke FTP looks like:>Ftp/global-switches host-name command-list CRAll parts of the command line except the subsystem name FTP are optional and may be omitted.2.1 Global switchesGlobal switches, explained below, select some global program options such as using the Trident diskinstead of the Diablo. The first token after the global-switches, if present, is assumed to be a host-name (a discussion of which appears later in the description of the Open command). The User FTPwill attempt to connect to the FTP Server on that host. After connecting to the server, if acommand-list is present, an interpreter is started which feeds these commands to the User FTP.When the command list is exhausted, FTP returns to the Alto Executive. If no command list ispresent, an interactive keyboard command interpreter is started.Each global switch has a default value which is used if the switch is not explicitly set. To set aswitch to false precede it with a minus sign (thus FTP/S means "no Server"), to set a switch totrue just mention the switch.SwitchDefaultAction/Strue[Server] starts the FTP Server. The Server is not started if the User isenabled and is being controlled from the command line./Utrue[User] starts the FTP User. As explained above, the interactive commandinterpreter or the command line interpreter will be started depending onthe contents of the command line./Ctrue[Chat] starts the Telnet. The Telnet is not started if the User is enabledand is being controlled from the command line, or if the system disk is aTrident./Tfalse[Trident] sets the system disk to be a Trident drive. The default is 0, butcan be changed by following the /T with a unit number between 0 and 7(thus FTP/T5 means use Trident unit 5). User and Server commandsapply to files on this disk but command line input is still taken fromCom.cm on the Diablo drive./Lfalse[Log] causes all output to the User FTP window to also go to the fileFTP.log on DP0, overwriting the previous contents. Log is true if theUser is enabled and is being controlled from the command line./Afalse[AppendLog] enables the log but appends to FTP.log rather thanoverwriting it./Etrue[Error] causes FTP to ask you if you want to continue when a non-fatalerror happens during execution of a command line. FTP/E will causeFTP to recover automatically from non-fatal errors without consultingyou.!RfsuFsusuEus ^qrq [s0us ZG X$us VCVwVVwVvsVwVvs#VwVv +zVwVu Us9us! P0v Ms!B K2vs!v Is%5u Husus4 Fv s2us Ek%us C@ @T ?5 vs$)>?5*>`?5u,1>?5s! =vs :v 7Xsus*v56 2usv1" :v/! ,q;v*Cv)g &;3v$4v#11"#1"`#1u x"G#1s +v!Fv ' %usvvus7 v> *+ usv@ us-v;8<8`u=8s v : v  H >>ZFTP REFERENCE MANUAL132/Rtrue[Ram] allows FTP to use some microcode which speeds things up slightly.If your Alto has no ram, this switch is ignored./Bfalse[Boot] creates FTP.Boot for distribution to boot servers./Dfalse[Debug] starts FTP in debug mode.The rest of the global switches are explained below under "Server Options".2.2 FTP user logFTP can keep a log (typescript) file for the FTP User window. The file name is FTP.log. It isalways enabled when FTP is being controlled from the command line; otherwise it is controlled bythe /L and /A global switches. Some keyboard commands do not treat the user window as asimple teletype, so the typescript for these commands will not be exactly what you saw, alas. 2.3 Using a Trident diskStarting FTP with the /T global switch causes FTP to access local files on a Trident disk (assumingone is connected) rather than on the standard Diablo disk. Accessing a file on a Trident requiresmore code and more free storage than accessing a file on the Diablo. Since FTP is very short onspace, only a User or a Server FTP is started when the /T switch is set. The default is to start aUser FTP, but specifying no user (FTP/TU) or specifying a server (FTP/TS) will start a Server FTPinstead.2.4 Server optionsServer options are controlled by global switches and by subcommands of the Server keyboardcommand. There are currently four options:SwitchDefaultActionnoneIf no server option is specified, retrieve requests (disk to net) are allowed.Store requests (net to disk) are allowed unless the store would overwritean already existing file. Delete and Rename are not permitted./Pfalse[Protected] Retrieve requests are allowed. Store, Delete, and Rename arenot permitted./Ofalse[Overwrite] Retrieve requests are allowed. Store requests may overwritefiles. Delete and Rename are permitted./Kfalse[Kill] FTP will return to the Alto Exec when the server connection isclosed. A simple form of remote job entry can be performed if the userFTP stores some Executive commands into Rem.cm.2.5 The FTP displayThe top inch or so of the display contains a title line and an error window. The title line displaysthe release date of that version of FTP, the current date and time, the machine's internetworkaddress, and the number of free pages on the disk. The error window displays certain error#fsuFsusu sJ_ us#]0JZeus'JW9us T K O:vwv Lsus"us!us J usI I N GW Bv ?s us us2 =Q  P J$+(JsPus# =ius, vwv js*; us7 `A " =]oFTP REFERENCE MANUAL133messages if they arrive from the network (errors are discussed in more detail below). A window iscreated below the title line for each part of FTP that is enabled during a session (server, user, andtelnet).If the FTP Server is enabled, it opens a window and identifies itself. If a User FTP subsequentlyconnects to this Server, the User's network address will be displayed. The Server will log thecommands it carries out on behalf of the remote User in this window. The Server is not enabledwhen FTP is being controlled from the command line.The FTP User opens the next window down and identifies itself. The command herald is anasterisk.The User Telnet opens the bottommost window, identifies itself, and waits for a host name to beentered. The Telnet is not enabled when FTP is being controlled from the command line.3. Keyboard command syntaxFTP's interactive command interpreter presents a user interface somewhat similar to that of the AltoExecutive. The standard editing characters, command recognition features, and help facility (via"?") are available. When FTP is waiting for keyboard input, a blinking cursor will appear at thenext character position.3.1 Directing keyboard input to the User and Telnet windowsThe bottom two unmarked keys control which window gets characters from the keyboard. Strikingthe unmarked key to the right of the right-hand SHIFT key directs keyboard input to the Telnetwindow. Striking the unmarked key to the right of the RETURN key directs keyboard input to theFTP User window. A blinking cursor will appear in the window that owns the keyboard if thewindow is awaiting typein.3.2 Keyboard commands*Open host-nameCROpens a connection to the FTP Server in the specified host. FTP permits only one user FTPconnection at a time. In most cases the word "Open" may be omitted: i.e., a well formed host-name is a legal command and implies a request to Open a connection. FTP will try for one minuteto connect to the specified host. If you made a mistake typing host-name and wish to abort theconnection attempt, hit the middle unmarked key (to the right of RETURN).Ordinarily, host-name should be the name of the machine you wish to connect to (e.g., Maxc).Most Altos and Novas have names which have been registered in Name Lookup Servers. So longas a name lookup server is available, FTP is able to obtain the information necessary to translate aknown host name to an inter-network address.If the name of the server machine is not known, you may specify an inter-network address in placeof the host-name. The general form of an inter-network address is:network # host # socketwhere each of the three fields is an octal number. The network number designates the network towhich the Server host is connected (which may be different from the one to which the User host isconnected); this (along with the "#" that follows it) may be omitted if the Server and User are!RfsuFsusuEus _M ]% us4 \  Xus= us W[#< UP TQus+ Q%us1 O Lt,3 J#us+ D.q AsusK ?}I =usD ]hlFTP REFERENCE MANUAL134known to be connected to the same network. The host number designates the Server host's addresson that network. The socket number designates the actual Server process on that host; ordinarily itshould be omitted, since the default is the regular FTP server socket. Hence, to connect to the FTPserver running in Alto host number 123 on the directly-connected Ethernet, you should say Open123#CR (the trailing "#" is required).*CloseCRCloses the currently open User FTP connection.*Login user-name passwordCRSupplies any login parameters required by the remote server before it will permit file transfers. FTPwill use the user name and password in the Operating System, if they are there, and logging intoFTP will pass them back to the OS in the same manner as the Alto Executive's Login command.When you issue the Login command, FTP will first display the existing user name known to the OS.If you now type a space, FTP will prompt you for a password, whereas if you want to provide adifferent user name, you should first type that name (which will obliterate the previous one)followed by a space. The command may be terminated by carriage return after entering the username to omit entering the password.The parameters are not checked immediately for legality, but rather are sent to the server forchecking when the first file transfer command is issued. If a file transfer command is refused bythe server because the name or password is incorrect, FTP will prompt you as if you had issued theLogin command and then retry the transfer request. Striking DEL in this context will abort thetransfer command.A user name and password must be supplied when transferring files to and from a Maxc system oran IFS. The Alto FTP Server requires a user-password to be supplied if the server machine's disk ispassword-protected and if the password in the server machine's OS does not match the password onthe disk. Thus if the OS was booted and FTP invoked because a Request-for-Connection wasreceived (which bypasses password checking), FTP will refuse access to files unless a password issupplied. However if the OS was booted normally, FTP assumes that the disk owner (who knew thepassword) will control access by using the server option switches. The user-name is ignored.*Connect directory-name passwordCRRequests the FTP server to connect you to the specified directory on the remote system, i.e., to giveyou owner-like access to it. The password may be omitted by typing RETURN after the directoryname. As with Login, these parameters are not verified until the next transfer command is issued.At present, the Connect command is meaningful only when transferring files to or from a Maxcsystem or an IFS; the Alto FTP server currently ignores connect requests. If the multiple directoryfeature of the Alto Operating System ever comes into widespread use, this may be changed.*Directory directory-nameCRCauses directory-name to be used as the default remote directory in data transfer commands(essentially it causes directory-name to be attached to all remote filenames that do not explicitlymention a directory). Specifying a default directory in no way modifies your access privileges,whereas connecting gives you owner access (and usually requires a password). Explicitly mentioninga directory in a file name overrides the default directory, which overrides the connected directory,which overrides the login directory. Punctuation separating directory-name from other parts of aremote filename should not be included. For example you might type Directory Alto not Directory.#fsuFsusu s _0vs, ]vs/ \ us+u ZsN FuZ0Z XepXAXeXus T Te`TTeTu Rdsus Nd N RNdN NdN NdvN NdsN 3Ndv#N Ndu L sJu Js[ Ius= E#us$ DQus 5 B;" AGF ?# <*4 ;K 97us 8,us 6 3V^ 1ususO 0LC .*us -B,us1 +us* *8Q &8 %&8r%&8r%&8v %&8s%3&8v"O%&8u #s us vsC "[,us \ QJ  us us, G O G G#G#Gv Gu sv s3 jv s( K `Q A# V%v s 48] z D z   L$ >].FTP REFERENCE MANUAL135*Retrieve remote-filenameCRInitiates transfer of the specified remote file to the local host. The syntax of remote-filename mustconform to the remote host's file system name conventions. Before transferring a file, FTP willsuggest a local-filename (generally the same as the remote-filename without directory or version), andwill tell you whether or not the file already exists on your local disk. At this point you may makeone of three choices:1.Type RETURN to cause the data to be transferred to local-filename.2.Type DEL to indicate that the file is not to be transferred.3.Type any desired local-filename followed by RETURN. The previous local-filename willdisappear, the new filename will replace it, and FTP will tell you whether a file existswith that name. This filename must conform to Alto conventions. You now have thesame three choices.If remote-filename designates multiple files (the remote host permits "*" or some equivalent in filenames), each file will be transferred separately and FTP will ask you to make one of the above threechoices for each file. At present, only Maxc and IFS support this capability. That is, you maysupply "*"s in the remote-filename when retrieving files from a Maxc or IFS, but not whenretrieving files from another Alto.*Store local-filenameCRInitiates transfer of the specified local file to the remote host. Alto filename conventions apply tothe local-filename; "*" expansion is not supported. FTP will suggest a remote-filename, to whichyou should respond in a manner similar to that described for Retrieve except that if you supply adifferent filename, it must conform to the remote file system's conventions. The default remote-filename is one with the same name and extension as the local file; the remote server defaults otherfields as necessary. If the remote host is a Maxc system or an IFS, then the directory is that mostrecently supplied in Login, Connect, or Directory commands and the version is the next higher.*Dump remote-filenameCRBundles together a group of files from the local file system into a dump-format file (see the AltoExecutive documentation for the dump-file format and more on dump-files in general) and storesthe result as remote-filename. FTP will ask you for the names of local files to include in the dump-file. Terminate the dump by typing just RETURN when FTP asks for another filename. Byconvention, files in dump-format have extension .dm.*Load remote-filenameCRPerforms the inverse operation of Dump, unbundling a dump-format file from the remote filesystem and storing the constituent files in the local file system. For each file in the dump-file, FTPwill suggest a local file name and tell you whether a file by that name exists on your disk. Youshould respond in the manner described for Retrieve.*List remote-file-designatorCRLists all files in the remote file system which correspond to remote-file-designator. The remote-file-designator must conform to file naming conventions on the remote host, and may designate multiplefiles if "*" expansion or some equivalent is supported there.If the remote-file-designator is terminated by a comma rather than RETURN, FTP prints a prompt of"**" at the left margin and prepares to accept one or more subcommands. These subcommandsrequest printout of additional information about each file. To terminate subcommand input, typeRETURN in response to the subcommand prompt. The subcommands are:!RfsuFsusuEus ^ M^U^I^U^I^U Q^v^U^u \TsBvs Z!8us YJ v svs# W[ V@SFus(v sQFus4O8Fv s usv s6M2us 6L.+'6J G}vsR E6us# Ds1us+ Bvsus Ai# =i M=4=ie==ie=$=iv ==iu ;sc 9v s%usvs 8 W 6?v 4sM 3x8us! 1'7 - M--!--!- Q-vr--u +sDv s  *4* ( vsus$ ' (usus %4 ! M!0G!Z!0!Z!0 Q!v!0!u /s N Lu %sQ 4  MIJ II v)Iu Hs,vsv  s@ >= vs&usus aJ [ Wus< =]%FTP REFERENCE MANUAL136TypePrint file type and byte size.LengthPrint length of file in bytes.CreationPrint date of creation.WritePrint date of last write.ReadPrint date of last read.TimesPrint times as well as dates.AuthorPrint author (creator) of file.VerboseSame as Type Write Read Author.EverythingPrint all information about the file.This information is only as reliable as the Server that provides it, and not all Servers provide all ofthese file properties. Altos derive much of this information from hints, so do not be alarmed if it issometimes wrong.*Delete remote-filenameCRDeletes remote-filename from the remote file system. The syntax of the remote-filename mustconform to the remote host's file system name conventions. After determining that the remote fileexists, FTP asks you to confirm your intention to delete it. If the remote-filename designatesmultiple files (the remote host permits "*" or some equivalent in file names), FTP asks you toconfirm the deletion of each file.*Rename old-filename new-filenameCRRenames old-filename in the remote file system to be new-filename. The syntax of the twofilenames must conform to the remote host's file system name conventions, and each filename mustspecify exactly one file.*QuitCRReturns control to the Alto Executive, closing all open connections.*Type data-typeCRForces the data to be interpreted according to the specified data-type, which may be Text or Binary.Initially the type is Unspecified, meaning that the source process should, if possible, decide on theappropriate type based on local information.*Byte-size decimal-numberCRApplicable only to files of type Binary, Byte-size specifies the logical byte size of the data to betransferred. The default is 8.*EOL conventionCRApplicable only to files of type Text, this command specifies the End-of-line convention to be usedfor transferring text files. The values for convention are CR, CRLF, and Transparent. The default isCR.*User ...Allows you to toggle switches which control operation of the FTP User. There is currently only one,Debug, which controls display of protocol interactions. Warning: this printout (and thecorresponding one in the Server command below) sometimes includes passwords.#fsuFsusu s_Z]Z\ ZZZYZW}ZUZTsZR Z% PL OO M I I5I`I5I`I5 QIvI5Iu G4svs1vs E] D*us9vs B3us A " = <s= g<= g<'= v <= s<= v #1<= u :sv s!v s 9CM 7 3 3g3+3g3u 1fsD -f --f--f-X-fv--fu +s2 vs )^ (, $ #$#$# E$v #$u !s(< ' ' 'b'b;'v 'u s[ J! v susus" us  nLn m<us$ ')(/ cL >ZFTP REFERENCE MANUAL137*Server ...Allows you to toggle switches that control operation of the FTP Server. The switches are Protected,Overwrite, Kill, and Debug, corresponding to the global switches /P, /O, /K, and /D.*Telnet ...Allows you to toggle switches that control operation of the Telnet. There is currently only one,Close, which closes the Telnet connection if one is open, and clears the Telnet window.4. Command line syntaxThe User FTP can also be controlled from the command line. As explained previously, the firsttoken after the subsystem name and global-switches must be a legal host-name; if the User FTP can'tconnect to the FTP Server on that host it will abort and return control to the Alto Executive. If acommand-list follows the host name, the command line interpreter is invoked instead of theinteractive keyboard interpreter. This permits the full capabilities of the Alto Executive (filenamerecognition, "*" expansion, command files, etc.) to be used in constructing commands for FTP.Each command is of the form:keyword/switch-list argument ... argumentTo get a special character (any one of *#';) past the Alto Executive, you must precede it by asingle quote. To get a "/" into an FTP argument, the "/" must be proceeded by two single quotes(the second one tells FTP to treat the "/" as an ordinary character in the argument, and the first onegets the second one past the Alto Executive).Unambiguous abbreviations of commands are legal. However, when constructing command files,you should always spell commands in full, since the uniqueness of abbreviations in the presentversion of FTP is not guaranteed in future versions.A command is distinguished from arguments to the previous command by having a switch on it, soevery command must have at least one switch. The switch /C has no special meaning and shouldbe used on commands where no other switches are needed or desired.4.1 Command line errorsCommand line errors fall into three groups: syntax errors, file errors, and connection errors. FTPcan recover from some of these, though it leaves the decision about whether to try up to you.Syntax errors such as unrecognized commands or the wrong number of arguments to a commandcause FTP's command interpreter to get out of sync with the command file. FTP can recover fromsyntax errors by simply ignoring text until it encounters another command (i.e., another token witha switch).File errors such as trying to retrieve a file that does not exist are relatively harmless. FTP recoversfrom file errors by skipping the offending file.Connection errors such as executing a store command when there is no open connection couldcause FTP to crash. FTP can't recover from connection errors.!RfsuFsusuEus _ M^k_^_ \4us% [9T W9 MVW9VW9 T\ S\W Lq Ios us; G#vsvsus Feus5 Dv s(& C[[ A;us >Lu Ds;! C4 ?4 <. 8vsv 6s-vs 2v 0,sus> .; * v sv (Os-vs $O v !sus&v s r!<   v s'  vsv =svs5 us2 3> >Y#FTP REFERENCE MANUAL139If the remote host allows "*" (or some equivalent) in a filename, a single remote-filename may resultin the retrieval of several files. (Note that one must quote the "*" to get it past the AltoExecutive's command scanner.) As noted previously, this capability is implemented only by theMaxc and IFS FTP Servers at present.Retrieve/S remote-filename local-filenameRetrieves remote-filename and names it local-filename in the local file system. This version ofRetrieve must have exactly two arguments. FTP will overwrite an existing file unless the /N (Nooverwrite) switch is also appended to the Retrieve command keyword. The remote-filename shouldnot cause the server to send multiple files.Retrieve/U remote-filename ... remote-filenameRetrieves remote-filename if its creation date is later than the creation date of the correspondinglocal file. A file will be retrieved only if a file with the same name already exists on the local disk.This option may be combined with Retrieve/S to rename the file as it is transferred.Retrieve/V remote-filename ... remote-filenameRequests confirmation from the keyboard before writing a local file. This option is useful incombination with the Update option since creation date is not a fool-proof criterion for updating afile.Store/C local-filename ... local-filenameStores each local-filename on the remote host, constructing a remote filename from the name bodyof the local-filename. A local-filename may contain "*", since it will be expanded by the AltoExecutive into the actual list of filenames before the FTP subsystem is invoked.Store/S local-filename remote-filenameStores local-filename on the remote host as remote-filename. The remote-filename must conform tothe file name conventions of the remote host. This version of Store must have exactly twoarguments.Dump/C remote-filename local-filename ... local-filenameSee the description in "Keyboard Commands".Load/C remote-filenameSee the description in "Keyboard commands". If the /V switch is appended to the Load commandkeyword, FTP will request confimation before writing each file. Type RETURN to write the file, DELto skip it. FTP will overwrite an existing file unless the /N (No overwrite) switch is appended tothe Load command keyword.Delete/C remote-filename ... remote-filenameSee the description in "Keyboard commands". If the /V switch is appended to the Deletecommand keyword, FTP will request confirmation before deleting each file. Type RETURN to deletethe file, and DEL if you don't want to delete it.!RfsuFsusuEus _A vs ]] \ @ Z usus V v S[s vs v s Qus2 PQCvs N, J vsv Hts vsC F-< EjT Aj vsv ?sQ ="A < 8v sv 5s v sA 4+v sv s7 28us .v sv ,Nsv s vsvs *N )D %Dvsv sv "s+ v s=  us:us u s us+(  vsv sI (usY5FTP REFERENCE MANUAL140Compare/C remote-filename ... remote-filenameCompares the contents of each remote-filename with the file by the same name in the local filesystem. It tells you how long the files are if they are identical or the byte position of the firstmismatch if they are not. (No corresponding command is available in the Keyboard commandinterpreter for implementation reasons: there is not enough room for it in Alto memory.)Compare/S remote-filename local-filenameCompares remote-filename with local-filename. The remote-filename must conform to the file nameconventions of the remote host. This version of Compare must have exactly two arguments.Rename/C old-filename new-filenameSee the description in "Keyboard commands".Type/C data-typeSee the description in "Keyboard commands".Byte-size/C decimal-numberSee the description in "Keyboard commands".EOL/C conventionSee the description in "Keyboard commands".Debug/CSee the description of the Debug subcommand of the User command in "Keyboard commands".4.3 Command line examplesTo transfer files FTP.run and FTP.syms from the Alto called Michelson to the Alto called Morley,one might start up FTP on Michelson (to act as an FTP Server), then walk over to Morley and type:>Ftp Michelson Retrieve/c Ftp.run Ftp.symsCRAlternatively, one could start an FTP server on Morley (invoking it by FTP/O to permit files to beoverwritten on Morley's disk), then issue the following command to Michelson:>Ftp Morley Store/c Ftp.run Ftp.symsCRThe latter approach is recommended for transferring large groups of files such as *.run (sinceexpansion of the "*" will be performed by the Alto Executive).To retrieve User.cm from the FTP server running on Alto serial number 123 (name unknown, but itis on the local Ethernet):>Ftp 123'# Retrieve User.cmCRNote that the "#" must be preceded by a single quote when included in a command line, sinceotherwise the Alto Executive does funny things with it. (Quotes are not necessary when typing toFTP's interactive keyboard interpreter).To start FTP, have the FTP User connect to Ivy, and then accept further commands from thekeyboard:#fsuFsusu s _ vsv \svs1 [9(< Y; X/1( T/ v Qsvsv svs PR-, LRv Is+ Ev Cs+ ? v =Js+ 9Jv 6s+ 2 0B +v (sus us7 'usus,%Kw$[%K).$%Ku #s!us"8#)#9#)`#u:#)#s !M 0w 0#+ 0u esK > us8 /dw d%; du sB @! us% c us us/ R =[sMFTP REFERENCE MANUAL141>Ftp IvyCRTo retrieve Pup-Network.txt from Maxc and store it on the Alto as PupDirectory.bravo,and store PupRTP.bcpl, Pup1b.bcpl, and PupBSPStreams.bcpl on with their namesunchanged:>Ftp Maxc Connect/c drb mypassword Retrieve/s Pup-Network.txtPupDirectory.bravo Store/c PupRTP.bcpl Pup1b.bcpl PupBSPStreams.bcplCRTo retrieve the latest copy of all .Run files from the directory on Maxc, overwriting copieson the local disk (the single quote is necessary to prevent the Alto Executive from expanding the"*"):>Ftp Maxc Ret/c '*.RunCRTo update the local disk with new copies of all files whose names are contained in fileUpdateFiles.cm, requesting confirmation before each retrieval:>Ftp Maxc Dir/c Alto Ret/u/v @UpdateFiles.cm@CRTo store all files with extension .Bcpl from the local disk to your login directory on Iris (the AltoExecutive will expand *.bcpl before invoking FTP):>Ftp Iris St/c *.BcplCRTo retrieve Host-name/descriptor-file.txt;43 (two single quotes are necessary to get the "/"past the Alto Executive and the FTP command scanner, and one quote is necessary to get the ";"past the Alto Executive):>Ftp Maxc Ret/c Host-name''/descriptor-file.txt';43CR5. File Property DefaultingWithout explicit information from the file system, it is often difficult to determine whether a file isBinary or Text, if Binary, what its byte-size is, and if Text, what End-of-line convention is used.The User and Server FTPs use some simple heuristics to determine the correct manner in which totransfer a file. The heuristics generally do the right thing in the face of incomplete information,and can be overridden by explicit commands from a human user who knows better.The FTP protocol specifies a standard representation for a file while in transit over a network. Ifthe file is of type Binary, each logical byte is packed right-justified in an integral number of 8-bitbytes. The byte-size is sent as a property along with the file. If the file is of type Text, eachcharacter is sent right-justified in an 8-bit byte. An EOL convention may be sent as a file property.The default is that RETURN marks the end of a line.5.1 File typesFTP determines the type of a local file by reading it and looking for bytes with the high-order biton. If any byte in the file has a high-order bit on, the file is assumed to be Type Binary, otherwiseit is assumed to be Type Text. FTP will generate a warning, but allow you to send what it thinks tobe a text file as type Binary, since no information is lost. It will refuse to send a binary file as typetext.Moral: Don't specify a Type unless you know what you are doing. The heuristic will notlose information.!RfsuFsusuEus^C^U^B^U^u [sA YS Xv VCVT,VXDT,TD<TTu Qs\ P/D NLCLHL#LLu Is Q H.>FcCF !FFc,1F Fcu C7se A.us?C? 9?|??u % *us? )jI 'N $usJ #4V !+8 *8us  us v susQ !51 usA O  :vs3  n>[zFTP REFERENCE MANUAL1425.2 Byte-sizeIf a file is type Binary, the byte-size is assumed to be 8 unless otherwise specified. The FTP Userand Server will both accept binary files of any byte-size and write them as 8 bit bytes on the disk.No transformation is done on the data as it is written to the disk: it is stored in network defaultformat. Since there is no place to save the byte-size property, it is lost.Similarly, requests for Binary files will be honored with any byte size, and whatever is on the diskwill be sent to the net without transformation. Since Alto files have no byte-size information, thebyte-size property will be defaulted to 8 unless otherwise specified, in which case whatever wasotherwise specified will be returned as the byte-size.Moral: Don't specify a Byte-size unless you know what you are doing. Alto-Alto transferscan't go wrong. Alto-Maxc transfers with weird byte-sizes will not work unless the byte-sizespecified in the Alto to Maxc direction is the same as the byte-size in which the file wasstored on the Alto. If it isn't, the Alto will not give any error indication, but the result willbe garbage.5.3 End-of-line conventionsFTPs are expected to be able to convert text files between their own internal EOL convention andthe network standard. Conveniently enough, the Alto file system's internal representation of a textfile is the same as the network standard. The Alto FTP does not do any transformations on textfiles. It will refuse to store a text file coming in from the net whose EOL convention is CRLF.As an escape to bypass conversion and checking, EOL convention Transparent tells both ends not toconvert to network standard, but rather send a file as-is. This is included for Lisp files whichcontain internal character pointers that are messed up by removing LFs.Moral: Don't specify an EOL convention unless you know what you are doing. If your textfile is a Lisp source file, specify EOL convention Transparent.5.4 File datesThe Alto file system keeps three dates with each file: Creation, Read, and Write. FTP treats theread and write dates as properties describing the local copy of a file: when the file was last read andwritten in the local file system. FTP treats the creation date as a property of the file contents:when the file contents were originally created, not when the local copy was created. Thus whenFTP makes a file on the local disk, the creation date is set to the creation date supplied by theremote FTP, the write date is set to "now" and the read date is set to "never read".#fsuFsusu s _v [s*3us Ze Z X(; W[L T/B" R6. Q%$< O6MHvsJ K$9J>BHHG4 Bav ?5sus)"us =B" <+5us :2usus 7z% us(vs 5L 4pCus2vsus0$us +v (sLus 'G %$us. $3, "usV usJ  >GVFTP REFERENCE MANUAL1436. Abort and error messagesError and Abort packets are displayed in the system window. Abort packets are fatal; Error packetsare not necessarily so.The most common Abort message is "Timeout. Good bye", generated when a server process has notreceived any commands for a long time (typically 5 minutes).The most common Error message is "Port input queue overflowed" indicating a momentaryshortage of input buffers at the remote host. Receiving an Error Pup does not imply that the file intransit has been damaged. Loss of or damage to a file will be indicated by an explicit message inthe User FTP window. The next iteration of Pup will probably rename Error Pups to beInformation Pups.7. TelnetFTP provides a simple User Telnet as a convenience for logging into a remote host (e.g., Maxc) topoke around without having to leave the FTP subsystem and start Chat. It lacks most of thecreature comforts Chat provides, such as automatic attaching to detached jobs, automatic logging in,etc. The Telnet is not enabled when the User FTP is being controlled from the command line.When the Telnet does not have an open connection, it waits for you to type a host name with thesyntax explained above for the Open command, and then attempts to connect to the specified host.If you wish to abort the connection attempt, hit the bottom unmarked key (opposite the right-handSHIFT key). You can get a larger Telnet window by not starting a server (type FTP/S to theExecutive).!RfsuFsusuEus ^q [sc Z V@ Um< RA5 Pe O7b M usF L- Elq B@sus3+ @)us ?6(< =/us" <,%: :>" 9"#> 7usKus 6  5>29 TIMESROMAN HELVETICA TIMESROMAN  TIMESROMAN  TIMESROMAN  TIMESROMAN TIMESROMAN TIMESROMAN  TIMESROMANMATH  TIMESROMAN   +# . 8?GNU\dlXpUser=GZZ9Z%i= B!PihEg Debug-b9bJ%Xi Killable9QZ%Ki  Overwrite9lZ%>i  Protected9\Z%-i=W PPi$EQ Debug-L9J%Fi= PPiEg Close=bZ%^i\ !WPiET AuthorPZ%JiJ Creation9eZ%=i=  Everything69RZ%)i) Length9GZ%i Rj/sq] ftp.press Swinehart14-Dec-79 13:02:29 PSTq