Introduction DFTP is a user-invoked file archiving program that, via the Arpanet, stores and retrieves local files on the Datacomputer, a dedicated data management system. This Introduction is intended to provide information sufficient for basic use of the program. A general description of it and information on its more esoteric features can be found in the DFTP User's Guide. DFTP command processing is similar to that in TENEX and TOPS-20. Both and delete a character, both and delete a line, and retypes a line. A or can be used to complete a command (for example, typing DI is equivalent to typing DIRECTORY). Since DFTP's primary function is file storage and retrieval, the most fundamental commands are those that store and retrieve files -- PUT and GET. Both take as an argument the name of the file of interest (in the standard format of name followed by optional extension), so that PUT MAIL.TXT causes the local file MAIL.TXT to be shipped over the network to the Datacomputer, and GET MAIL.TXT retrieves it. Groups of files may be moved with one command by using a '*' in either or both the name and extension parts of the file name. Thus PUT MAIL.* stores all files with the name MAIL, and GET *.TXT retrieves all files with the extension TXT. Files may be given different names when stored and retrieved. This is accomplished by inputting a or after the first file name, so that PUT MAIL.TXTMAIL.15-APRIL-1977 stores the local file MAIL.TXT as MAIL.15-APRIL-1977, and GET MAIL.15-APRIL-1977MAIL.OLD retrieves the stored file MAIL.15-APRIL-1977 as the local file MAIL.OLD. Different versions of the same file can be stored, with the Datacomputer assigning higher numbers to more recent files. Thus storing one day's messages as MAIL.TXT, and later storing the next day's messages as MAIL.TXT results in two files on the Datacomputer, MAIL.TXT;1 (the messages stored first) and - 1 - î MAIL.TXT;2 (the messages stored later). Version numbers are denoted as in TENEX, with the number following the file name and separated from it by a ';'. Version numbers may be used in retrieving files, so that GET MAIL.TXT;1 retrieves the first version of the file. If no version number is given, DFTP uses the largest as the default. A '*' may be used in the version number field, so that GET MAIL.TXT;* retrieves all versions. Nearly as fundamental as storing and retrieving files is finding out what files have been stored -- what files exist on the Datacomputer. The DIRECTORY command performs this function, taking as its argument a file name similar to that accepted by PUT and GET. Thus DIRECTORY *.TXT lists all stored files with the extension TXT. Note that DIRECTORY (DFTP echoes the as '*.*;*') causes all stored files to be listed. The command takes as a subargument the specification of the amount of information desired about the listed files. A , equivalent to TERSE, lists files and their sizes. The VERBOSE option additionally lists the date the file was originally created and the date it was stored on the Datacomputer. Another important facility is the ability to eliminate unwanted files on the Datacomputer. This is done via the DELETE and EXPUNGE commands. The DELETE command, taking as its argument a file name similar to that accepted by PUT and GET, marks files as deleted, but does not permanently remove them. Deleted status is only a conditional state. Deleted files may be listed by the DELETED option of the DIRECTORY command, and a file's deleted status may be rescinded by the UNDELETE command. The UNDELETE command takes as its argument a file name similar to DELETE. Thus DELETE MAIL.* marks all files with the name MAIL as deleted, and UNDELETE MAIL.15-APRIL-1977 rescinds the deleted status of the file MAIL.15-APRIL-1977. Note that, for files of which there are multiple versions, the default for DELETE is the (undeleted) file with the smallest version number, and for UNDELETE is the (deleted) file with the largest version number. The EXPUNGE command permanently removes all files then marked as deleted, recovering the space used by those files. It takes no arguments (as far as this Introduction is concerned), and is invoked by typing EXPUNGE - 2 - î (DFTP echoes the first as '<'). The QUIT command causes a graceful exit from DFTP. Introduction to Additional Commands The commands described in the followings paragraphs are useful, but are not necessary for ordinary use of DFTP. They introduce complexities discussed in the User's Guide. The information and explanations in this section are of limited scope in an attempt to keep the complexity at a minimum. The commands discussed here are motivated by one general concern -- the desire to divide a user's file space into parts. DFTP allows such separation via user-specified named groupings, called subdirectories. For example, one typically divides files into classes by type, such as MESSAGES, SOURCES, and GAMES. Subdirectories may be thought of as containing files and as being under -- subordinate to -- the user's Datacomputer identity -- the user's name. For example, the user HACKER at CCA has, on the datacomputer, under the user name HACKER, the subdirectories MESSAGES, SOURCES, and GAMES. One need not have separate subdirectories -- all one's files may be stored directly under one's user name. Alternatively, some files may be stored directly under one's user name and some in separate subdirectories, or all files may be stored in separate subdirectories. All the commands in the preceding section operate within only one subdirectory at a time. The CONNECT command is used to choose which subdirectory is of interest. Once a subdirectory is chosen, all PUT's, GET's, DIRECTORY's, DELETE's, UNDELETE's, and EXPUNGE's operate within that subdirectory until another is chosen. Thus CONNECT MESSAGES selects the MESSAGES subdirectory. CONNECT also creates new subdirectories. If in the above example, MESSAGES did not exist, DFTP would inform the user of that fact with the comment '[New Node]', and would ask for confirmation to proceed and make the new subdirectory. The files stored directly under one's user name are in a special subdirectory. At the beginning of a session this subdirectory is the default subdirectory that all PUT's etc. operate in (making possible use of DFTP by people who are unaware of subdirectories). If one has explicitly CONNECTed to some other subdirectory and wishes to go back and reference files directly under one's user name, - 3 - î CONNECT (DFTP echoes the as '<<') will perform the desired function. One may see one's existing subdirectories, when connected to the initial default subdirectory, via the LIST command, in the form LIST (DFTP echoes the as '**'). LIST takes a subargument similar to DIRECTORY. A , equivalent to TERSE, simply lists the subdirectories, while VERBOSE lists all available information about them, including megabits allocated (MX-U) and used (CHRG). The symbol indicates that some files actually exist in the associated subdirectory. One may delete subdirectories and their files, when connected to the initial default subdirectory, via the REMOVE command. The subdirectory name given the command as its argument should be terminated in a . Thus REMOVE MESSAGES (DFTP echoes the as '>**') eliminates the subdirectory MESSAGES and all files in it. - 4 - î