\documentstyle[a4,12pt]{article} \begin{document} \author{APM Manual pages} \title{Communications on the APM} \maketitle \parskip .1 in \setcounter{secnumdepth}{10} \parindent 0in \section{Preamble} (Help information in course of preparation) \section{The Ethernet and Filestores} \subsection{General Principles} The APMs have no local disc storage - all APM files reside on one of a small number of dedicated file stores which are accessed through the 2MHz departmental Ethernet. APMs "Connect" to the filestores then access files as required, either by explicit reference to the file name by the user or by implicit reference by the system dictionaries. Files may be "remembered" i.e. cached in store if necessary. Some files may require user-specific access permissions before they can be read or altered. This is achieved by the user Logging on to a filestore directory (at which point he may claim total control over its files) and maybe quoting the password of another directory in order to claim control over its files. A user therefore accesses the file stores on three levels.. In the simplest case.. 1) His APM establishes a connection to the required filestore. 2) Within this connection (it may last for days) he may log off and on to \\ {\hspace*{0.2 in}} various directories. 3) Within each logged-on session he may move files around. A connection is completely described by the Ethernet Station (DTE) addresses and ports (LSAPs) of the two ends. The DTE addresses are permanently assigned to the stations and the LSAPs are negotiated during the connection setup procedure. The APM needs to establish a connection in order to bootstrap itself so the DTE address of a preferred filestore is held in the ROM of each APM. This connection is referred to as the default connection. The LSAP at the filestore end is sometimes referred to as the "Context". A Logged-on session is completely described by the connection and a filestore user number (UNO). The user issues a filestore Login primitive down the connection, quoting his username and password and receives back the UNO. If he is not logged on he may use UNO 0, permanently assigned to the mythical user ANON for those activities which do not require accrediting. A file access is described by the UNO and a file access transaction number or XNO. The user quotes the UNO in a filestore Open primitive and receives back the XNO. He then quotes the XNO while reading or writing to \& from the file. \subsection{Access to Ether/Filestore driving primitives} Declarations for most of the IMP routines to do with communications live in I:fs.inc. \subsection{Further Documentation} A more detailed description of these mechanisms and the mechanisms which underly them may be found in the documents.. {\hspace*{0.2 in}} "The Filestore" {\hspace{0.4 in}} (H.Dewar,V.Eachus,K.Humphry,P.McLellan) [1977] \\ {\hspace*{0.2 in}} "The new filestores" (G.Ross) {\hspace{2.1 in}} [1984] \\ {\hspace*{0.2 in}} "A Programmer's Guide to the EUCSD Ethernet" (R. Thonnes) \subsection{EFTP : Inter-filestore file transfer utility} The EFTP program is used for inter-filestore transfer of files residing on the various filestores, including the departmental Vax, connected to the Ethernet. \subsubsection{Additional information} All commands may be abbreviated. Where a command takes several parameters, these are separated by spaces. File names conform to the following rules: If a name begins with `::`, then the part immediately following, up to but excluding the next `:`, which is discarded, denotes the NODE, i.e. the file server on which the file resides. The following node names are accepted (and may be abbreviated). Node names not found in the list are interpreted (in hex) directly as ethernet addresses. The remainder of the filename is subject to system-dependent interpretation. It may or may not contain a (directory) pathname part. Wildcards are allowed in filenames, but not in pathnames or nodenames. {\hspace*{0.2 in}} Examples: {\hspace*{0.2 in}} ::vax:dra1:[bloggs.project]test.pas \\ {\hspace*{0.2 in}} (Node=vax, directory=dra1:[bloggs.project], file=test.pas) \\ {\hspace*{0.2 in}} ::70:fmacs:frame \\ {\hspace*{0.2 in}} \{Node=70, directory=fmacs, file=frame) \subsubsection{Filestore Names} The names (as known by EFTP and L) of the filestores are.. {\hspace*{0.3 in}} New Name {\hspace{0.2 in}} Ether Address {\hspace*{0.3 in}} Vax {\hspace{0.5 in}} 72 {\hspace{0.3 in}} (ECSVAX) \\ {\hspace*{0.3 in}} Alpha {\hspace{0.4 in}} 14 {\hspace{0.3 in}} (Originally known as "WEE". 160Mb) \\ {\hspace*{0.3 in}} Bravo {\hspace{0.4 in}} 15 {\hspace{0.3 in}} (Originally known as "BIG". 320Mb) \\ {\hspace*{0.3 in}} Charlie {\hspace{0.3 in}} 1B {\hspace{0.3 in}} (320Mb) \\ {\hspace*{0.3 in}} Demo {\hspace{0.5 in}} 35 \\ {\hspace*{0.3 in}} Met \\ {\hspace*{0.3 in}} Portable {\hspace{0.2 in}} 3F {\hspace{0.3 in}} (the mini-filestore) The names may be abbreviated to just one letter, e.g. B is the same as Bravo, V is the same as Vax, etc. \\ {\hspace*{4.9 in}} JHB Filestores "A" and "D" have the new filestore software supporting hierarchic directories. \subsubsection{EFTP: {\hspace{0.5 in}} LOGIN} The Login command takes a single parameter, namely the username, which will usually be prefixed by a nodename. The password, if not supplied as an optional second parameter, is requested separately on the next line. It is only necessary to log in where public authority is insufficient to access the files you want. Examples: Login ::vax:cs4test Login ::70:pub lic \subsubsection{EFTP: {\hspace{0.5 in}} TRANSFER} The Transfer command takes two parameters, being the source and destination filenames. If a filename contains a node prefix but omits the directory part, the default directory will be determined by the file server on the basis of the username, if any, under which you have previously logged on, if at all, to that server. If the filename part is omitted in the destination, the same name as in the source is assumed. If the name part is omitted in the source, `*` is assumed. Examples: Transfer ::vax:opsys.asm ::old Transfer ::wee:guest:xyz* ::vax:[xyz.test]* \subsubsection{EFTP: {\hspace{0.5 in}} COMPARE} The Compare command takes two parameters, being the names of two files to be compared. Default rules are as for Transfer. No details of differences are reported. Use this only to yield yes/no results. \subsubsection{EFTP: {\hspace{0.5 in}} BACKUP} The Backup command is like the Transfer command (qv), but takes an additional parameter, which is a date (form: DD/MM/YY HH.MM). It transfers only those source files younger than the specified date to the destination. Wildcards are mandatory. \subsubsection{EFTP: {\hspace{0.5 in}} EXIT} The Exit command terminates the EFTP session, after logging you off and disconnecting you from all machines involved during the session, except the machine to which you were connected and logged on before running EFTP. \subsubsection{EFTP: {\hspace{0.5 in}} FILES} The Files command takes a wildcard file name parameter, and prints a list of all file names which match the parameter. \subsubsection{EFTP: {\hspace{0.5 in}} SOURCE, DESTINATION} The Source and Destination commands each take one parameter, which is used to fill in defaults for the Node, Directory, and File fields of filenames typed to all the other commands. \section{Asynchronous Character I/O} The detailed behaviour of the APMs while transmitting or receiving characters asynchronously is described in the note "APM Asynchronous Character I/O from the local terminal" (J.Butler) [1984] You are also referred to the Visual 200 Reference Manual (DEC) \section{HELP COMMS file history} Authors: {\hspace{0.4 in}} J. Butler \\ {\hspace*{0.9 in}} R. Thonnes (EFTP) Last Updated: 31/8/84 \vspace{.75in} view:comms printed on 17/02/89 at 13.14 \newpage \tableofcontents \end{document}