\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}
