% Generated from ADFS::jtb.$.Daves.Projects.NCServer.Man2 at 11:53 on 18/3/98 by TechWriter Professional 4.00 (30-Oct-97)
\def\frs{\raise.5ex\hbox{$\scriptstyle\numer$}\!/\!_\denom}\def
\frss{\raise.2ex\hbox{$\scriptscriptstyle\numer$}\!/\!_\denom
}\def\frac#1#2{{\def\numer{#1}\def\denom{#2}\mathchoice{\frs
}{\frs}{\frss}{\frss}}}\def\onequarter{\frac14}\def\onehalf
{\frac12}\def\threequarters{\frac34}\def\onesuperior{{{}^1}}\def
\twosuperior{{{}^2}}\def\threesuperior{{{}^3}}\def\registered
{{\ooalign{\hfil\raise.05ex\hbox{\sevenrm R}\hfil\crcr\mathhexbox
20D}}}\def\trademark{{{}^{\rm TM}}}\def\therefore{\mathord{\dot
{\ldotp\ldotp}}}\def\cents{\hbox{\rm\rlap/c}}\def\ordfeminine
{{{}^{\underline {\rm a}}}}\def\ordmasculine{{{}^{\underline
{\rm o}}}}\def\missing#1{}\def\limit#1#2#3{\mathord{\mathop
{\hbox{}#1}\limits#2{#3}}}\tolerance=3000\def\twtabskip{4pt
plus 72pt}\def\secskip{.1\vsize}\newskip\footmargin\def\textindent
#1{\ifdim\leftskip=0pt\leftskip=\footmargin\fi\indent\llap{\hbox
to\leftskip{#1\hss}}\ignorespaces}\def\documenttitle{}\def\tableft
{\advance\dimen1by\dimen0\dimen0=\wd0\hbox to-\dimen1{\hss}\unhbox
0}\def\tabcentre{\advance\dimen1by\dimen0\dimen0=\wd0\divide
\dimen0by2\advance\dimen1by\dimen0\hbox to-\dimen1{\hss}\unhbox
0}\def\tabright{\advance\dimen1by\dimen0\dimen0=\wd0\advance
\dimen1by\dimen0\dimen0=0pt\hbox to-\dimen1{\hss}\unhbox0}\def
\tabnone{\dimen0=\wd0\unhbox0}\def\textstrike#1{$\setbox0=\hbox
{#1}\dp0=-.4\ht0\mathsurround=0pt\underline{\box0}$}\def\textsuper
#1{{\setbox0=\hbox{#1\vphantom I}\raise.5\ht0\box0}}\def\textsub
#1{{\setbox0=\hbox{#1\vphantom I}\lower.5\ht0\box0}}\newdimen
\linedif\def\advprev{\advance\linedif by\prevdepth\prevdepth
=\linedif}\def\baselines#1{\linedif=#1\advance\linedif by-\ht
\strutbox\setbox\strutbox=\hbox{\vrule height\ht\strutbox depth\linedif
width0pt}\ifvmode\advance\baselineskip by-#1\linedif=-\baselineskip
\ifdim0pt<\linedif\advprev\else\vskip-\linedif\fi\else\strut
\fi\baselineskip=#1}\def\normalspacing{\baselines\normalbaselineskip
}\def\mathspacing{\normalspacing\ifvmode\linedif=\normalbaselineskip
\advprev\fi}\newdimen\headerdepth\def\makeheadline{\vbox to
0pt{\vskip-\headerdepth\vskip-\parskip\the\headline\vss}\nointerlineskip
}\def\makefootline{\vbox{\the\footline}}\newfam\bifam
\font\fontaaa=cmr10 at 24pt
\font\fontaab=cmtt10 at 24pt
\font\fontaac=cmr10 at 12pt
\font\fontaad=cmr7 at 8pt
\font\fontaae=cmr5 at 6pt
\font\fontaaf=cmti10 at 12pt
\font\fontaag=cmmi10 at 12pt
\font\fontaah=cmmi10 at 8pt
\font\fontaai=cmmi10 at 6pt
\font\fontaaj=cmsy10 at 12pt
\font\fontaba=cmsy10 at 8pt
\font\fontabb=cmsy10 at 6pt
\font\fontabc=cmtt10 at 12pt
\font\fontabd=cmbx10 at 12pt
\font\fontabe=cmbx7 at 8pt
\font\fontabf=cmbx5 at 6pt
\font\fontabg=cmti10 at 12pt
\font\fontabh=cmti10 at 8pt
\font\fontabi=cmti10 at 6pt
\font\fontabj=cmr10 at 14pt
\font\fontaca=cmtt10 at 14pt
\font\fontacb=cmbx10 at 14pt
\font\fontacc=cmti10 at 14pt
\let\fontacd=\tenrm
\let\fontace=\tentt
\def\fontsetaa{\let\rm=\fontaaa\let\tt=\fontaab\setbox\strutbox
=\hbox{\vrule height20.05pt depth6.45pt width0pt}\normalbaselineskip
=26.5pt\normallineskip=2.5pt\normallineskiplimit=2.5pt\normalspacing
\rm}
\def\fontsetab{\def\rm{\fam0\fontaac}\textfont0=\fontaac\scriptfont
0=\fontaad\scriptscriptfont0=\fontaae\def\it{\fam\itfam\fontaaf
}\textfont\itfam=\fontaaf\textfont1=\fontaag\scriptfont1=\fontaah
\scriptscriptfont1=\fontaai\textfont2=\fontaaj\scriptfont2=\fontaba
\scriptscriptfont2=\fontabb\def\tt{\fam\ttfam\fontabc}\textfont
\ttfam=\fontabc\def\bf{\fam\bffam\fontabd}\textfont\bffam=\fontabd
\scriptfont\bffam=\fontabe\scriptscriptfont\bffam=\fontabf\def
\bi{\fam\bifam\fontabg}\textfont\bifam=\fontabg\scriptfont\bifam
=\fontabh\scriptscriptfont\bifam=\fontabi\setbox\strutbox=\hbox
{\vrule height10.05pt depth3.25pt width0pt}\normalbaselineskip
=13.3pt\normallineskip=1.3pt\normallineskiplimit=1.3pt\normalspacing
\rm}
\def\fontsetac{\let\rm=\fontabj\let\tt=\fontaca\let\bf=\fontacb
\let\bi=\fontacc\setbox\strutbox=\hbox{\vrule height11.65pt
depth3.85pt width0pt}\normalbaselineskip=15.5pt\normallineskip
=1.5pt\normallineskiplimit=1.5pt\normalspacing\rm}
\def\fontsetad{\let\rm=\fontaac\let\it=\fontaaf\let\tt=\fontabc
\let\bf=\fontabd\let\bi=\fontabg\setbox\strutbox=\hbox{\vrule
height9.25pt depth1.85pt width0pt}\normalbaselineskip=11.1pt
\normallineskip=-0.9pt\normallineskiplimit=-0.9pt\normalspacing
\rm}
\def\fontsetae{\let\rm=\fontacd\let\tt=\fontace\setbox\strutbox
=\hbox{\vrule height7.7pt depth1.5pt width0pt}\normalbaselineskip
=9.2pt\normallineskip=-0.8pt\normallineskiplimit=-0.8pt\normalspacing
\rm}
\def\fontsetaf{\let\rm=\fontaac\let\it=\fontaaf\let\tt=\fontabc
\let\bi=\fontabg\setbox\strutbox=\hbox{\vrule height10.3pt depth
3.7pt width0pt}\normalbaselineskip=14pt\normallineskip=2pt\normallineskiplimit
=2pt\normalspacing\rm}
\headerdepth=0pt\hoffset=0pt\voffset=0pt\hsize=463.1pt\vsize
=698pt\headline={\hfil}\footline={\hfil}\def\footnoterule{}\footmargin
=10pt\parskip=2pt plus1pt minus.5pt\advance\belowdisplayshortskip
by-\parskip\advance\belowdisplayskip by-\parskip\raggedbottom
\def\secskip{0pt}\fontsetaa\parindent=0pt\leftskip=2pt plus1fil\parfillskip
=0pt\rightskip=2pt plus1fil\spaceskip=0.3333em\xspaceskip=0.5em
\relax Acorn NC Server Documentation

\fontsetab\vskip 28.7pt\leftskip=0pt plus1fil\rightskip=0pt
plus1fil\spaceskip=0.3333em\xspaceskip=0.5em
{\bf UNIX }S{\bf ERVER BASELINE PACK}

{\it Document Version 0.02 ***DRAFT***}

\vskip 15.4pt\leftskip=0pt\parfillskip=0pt plus1fil
\noindent\setbox0=\hbox{ \ \ \ \ \ {\bi Pack Name:}}\tabnone
\setbox0=\hbox{}\dimen1=-85.36pt\tableft\setbox0=\hbox{}\dimen
1=-42.61pt\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox
0=\hbox{base 0.11 Beta}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{ \ \ \ \ \ {\bi Pack Description:}}\tabnone
\setbox0=\hbox{}\dimen1=-128pt\tableft\setbox0=\hbox{}\dimen
1=-42.65pt\tableft\setbox0=\hbox{Baseline NC OS 1.06 boot structure}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi1.0 Pack Dependencies:}}\tabnone
\setbox0=\hbox{}\dimen1=-128pt\tableft\setbox0=\hbox{}\dimen
1=-42.66pt\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi2.0 Unix Dependencies:}}\tabnone
\setbox0=\hbox{}\dimen1=-128pt\tableft\setbox0=\hbox{}\dimen
1=-42.68pt\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft

{\bi3.0 Installation:}

\noindent\setbox0=\hbox{{\bi3.1}}\tabnone\setbox0=\hbox{{\bi
Installing the Unconfigured NC Boot Structure}}\dimen1=-42.67pt
\tableft

\noindent\setbox0=\hbox{{\bi3.2}}\tabnone\setbox0=\hbox{{\bi
Determining the NC{\tt\char13}s Hardware Address}}\dimen1=-42.67pt
\tableft

\noindent\setbox0=\hbox{{\bi3.3}}\tabnone\setbox0=\hbox{{\bi
Unix Configuration}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi3.3.1}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi IP Addresses}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.3.2}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi NFS Export}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.3.3}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi PCNFS Authentication}}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi3.3.4}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi bootp}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.3.5}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi ntp}}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi3.4}}\tabnone\setbox0=\hbox{{\bi
Overview of NC Boot Procedure}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi3.5}}\tabnone\setbox0=\hbox{{\bi
Basic NC Boot Hierarchy Configuration}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi3.5.1}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Debug Mode}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.5.2}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Networking and Routing}}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi3.5.3}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Printing}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.5.4}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Proxying}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.5.5}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Secure Socket Layer}}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi3.6}}\tabnone\setbox0=\hbox{{\bi
User Security and Login Methods}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi3.6.1}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Challenge - Response}}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi3.6.2}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Smartcard}}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{{\bi3.6.3}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Hardwire}}\dimen1=-42.7pt
\tableft

{\bi4.0 NC Applications and User Filespace Management:}

\noindent\setbox0=\hbox{{\bi4.1}}\tabnone\setbox0=\hbox{{\bi
User Home Directory Structures}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi4.2}}\tabnone\setbox0=\hbox{{\bi
Public versus Private Applications}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi4.2.1}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Adding Public NC Applications}}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi4.2.2}}\tabnone\setbox0=\hbox{}\dimen
1=-42.67pt\tableft\setbox0=\hbox{{\bi Adding Private NC Applications}}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bi4.3 Launching NC Applications from
HTML}}\tabnone\setbox0=\hbox{}\dimen1=-256pt\tableft

\vskip 15.1pt
{\bi5.0 Setting Configuration Options in NC NVRAM:}

\noindent\setbox0=\hbox{{\bi5.1}}\tabnone\setbox0=\hbox{{\bi
Static Addressing}}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{{\bi5.2}}\tabnone\setbox0=\hbox{{\bi
The Administration Application}}\dimen1=-42.67pt\tableft

{\bi Bibliography:}

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft

\noindent\setbox0=\hbox{{\bi Appendix A: Dictionary of NC Environment
Variables}}\tabnone\setbox0=\hbox{}\dimen1=-298.7pt\tableft

\noindent\setbox0=\hbox{{\bi Appendix B: List of Common NC OS
Filetypes}}\tabnone\setbox0=\hbox{}\dimen1=-256pt\tableft

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\fontsetac
\parindent=0pt\leftskip=18pt\parfillskip=0pt plus1fil\rightskip
=0pt plus1fil\spaceskip=0.3333em\xspaceskip=0.5em
\item{}{\bf0.0 Document History}\par\nobreak

\fontsetab\vskip 15.4pt\leftskip=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\noindent\setbox0=\hbox{17/02/98}\tabnone\setbox0=\hbox{DW}\dimen
1=-85.37pt\tableft\setbox0=\hbox{First Draft for internal comment}\dimen
1=-42.61pt\tableft

\noindent\setbox0=\hbox{12/03/98}\tabnone\setbox0=\hbox{DW}\dimen
1=-85.37pt\tableft\setbox0=\hbox{Second Draft incorporating
typesetting conventions, Appendix B}\dimen1=-42.61pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{done, Appendix A started, deletion of outdated references and}\dimen
1=-42.6pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{general tidying-up.}\dimen1=-42.6pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{Outstanding Issues added.}\dimen1=-42.6pt\tableft

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=18pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf0.1 Document Conventions}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax This document contains details of file contents and file
catalogues as seen from Unix, file contents and file catalogues
as seen from NC OS, and commands which should be typed by the
Unix super-user at their shell prompt.

\vskip 15.4pt
\relax The typesetting conventions used throughout this document
are as follows:

\vskip 15.4pt
\noindent\setbox0=\hbox{Acorn Trinity (similar to Times Roman)
}\tabnone\setbox0=\hbox{}\dimen1=-213.4pt\tableft\setbox0=\hbox
{body text}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{Acorn Corpus }\tabnone\setbox0=\hbox
{}\dimen1=-128pt\tableft\setbox0=\hbox{}\dimen1=-42.66pt\tableft
\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox{Unix config
files and Unix filenames }\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{}\dimen1=-42.6pt\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft
\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox{and catalogues}\dimen
1=-42.7pt\tableft

\noindent\setbox0=\hbox{{\bf Acorn Corpus Bold}}\tabnone\setbox
0=\hbox{}\dimen1=-128pt\tableft\setbox0=\hbox{}\dimen1=-42.66pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{text to be typed by the sysadmin at a}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{}\dimen1=-42.6pt\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft
\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox{Unix shell
prompt}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{Acorn Homerton }\tabnone\setbox0=\hbox
{}\dimen1=-128pt\tableft\setbox0=\hbox{}\dimen1=-42.65pt\tableft
\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox{NC OS
config files and NC OS }\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{}\dimen1=-42.6pt\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft
\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox{filenames
and catalogues}\dimen1=-42.7pt\tableft

\vskip 15.4pt
\relax Where appropriate, text which should be substituted with
command arguments is set in italics between angle brackets {\tt
<}{\tt>}, and lists of additional optional parameters are enclosed
within square brackets []. HTML tags enclosed within angle brackets
are {\it not\/} italicised.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
38.8pt\fontsetac\parindent=18pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf0.2 Outstanding Issues}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax A troubleshooting section would be useful.

Details of browser mods to add extra MIME types and mappings
should be included.

Should consider adding a dictionary of the commands which can
be embedded within obeyfiles.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
29.4pt\fontsetac\parindent=0pt\leftskip=18pt\parfillskip=0pt
plus1fil\rightskip=0pt plus1fil\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf1.0 Pack Dependencies}\par\nobreak

\fontsetab\vskip 15.4pt\leftskip=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax The NC base pack is not dependent on any other NC packs
being installed.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=0pt\leftskip=18pt\parfillskip=0pt
plus1fil\rightskip=0pt plus1fil\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf2.0 Unix Dependencies}\par\nobreak

\fontsetab\vskip 15.4pt\leftskip=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax The NC 0.11 Beta base pack must be installed on a Unix
host running the following:

\vskip 15.4pt
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{nfsd}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{pcnfsd}\dimen
1=-42.67pt\tableft\setbox0=\hbox{}\dimen1=-42.71pt\tableft\setbox
0=\hbox{for user authentication. If this is not installed (see
man pcnfsd),}\dimen1=-42.59pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{ consult your Unix vendor.}\dimen1=-42.6pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{bootpd}\dimen
1=-42.67pt\tableft\setbox0=\hbox{}\dimen1=-42.66pt\tableft\setbox
0=\hbox{BSD-style; see installation. Solaris 2.6 dhcp will also
work. }\dimen1=-42.64pt\tableft

\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
\ \ \ \ \ \ \ \ \ \ \ \ \ bootpd is not required if static IP
addrs are to be configured into

\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
\ \ \ \ \ \ \ \ \ \ \ \ \ each NC; see later.

\vskip 15.4pt
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{timed}\dimen
1=-42.67pt\tableft\setbox0=\hbox{}\dimen1=-42.66pt\tableft\setbox
0=\hbox{An NC must be able to take details of real time from
a timeserver}\dimen1=-42.64pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{visible on the network it is connected to. This does not have
to be the}\dimen1=-42.6pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{NC boot server.}\dimen1=-42.6pt\tableft

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=0pt\leftskip=18pt\parfillskip=0pt
plus1fil\rightskip=0pt plus1fil\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf3.0 Installation}\par\nobreak

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\parindent=18pt
\item{}{\bf3.1 Installing the Unconfigured NC Boot Structure}\par
\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax Login as or su to root, cd to the directory where you
want the {\tt"}NC boot{\tt"} directory to reside (this is conventionally
/exports/home/ncd/) and cp the base distribution (base.tar.gz)
to it.

\vskip 15.4pt
\relax Uncompress the distribution...

\vskip 15.4pt
\# {\bf gunzip base.tar.gz}

\# \ {\bf tar xvf base.tar}

\vskip 15.4pt
\relax Recursively set the UID:GID tuple for the files in the
boot hierarchy to 32767:9999; eg

\vskip 15.4pt
\# {\bf chown -R 32767:9999 boot}

Alternatively, if this hierarchy is top be exported with read-write
enabled, set the tuple to the UserID:GID of an appropriate administrator
user (preferably not root) and

\vskip 15.4pt
\# {\bf chmod -R o-w boot}

\# {\bf chmod -R o+r boot}

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=18pt\spaceskip=0.3333em\xspaceskip=0.5em
\item{}{\bf3.2 Determining the NC{\tt\char13}s Hardware Address}\par
\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax The MAC (Ethernet) address of each NC client is usually
found on the outside of the box, or in a packing slip. Alternatively
plug the NC into a suitable monitor (eg an AKF60 or SVGA) and
the power supply; the MAC address (in the form xx:xx:xx:xx:xx:xx)
is the first item displayed on screen.

\vskip 15.4pt
\relax If you are using a Domain Name Server, the arp command
will show entries similar to below:

\fontsetad\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\noindent\setbox0=\hbox{\# Device \ IP Address}\tabnone\setbox
0=\hbox{}\dimen1=-172.8pt\tableft\setbox0=\hbox{Mask}\dimen
1=-28.8pt\tableft\setbox0=\hbox{ \ \ \ }\dimen1=-57.6pt\tableft
\setbox0=\hbox{Phys Addr}\dimen1=-57.6pt\tableft

\vskip 13.2pt
\noindent\setbox0=\hbox{le0}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{ \ base-address}\dimen1=-28.8pt\tableft
\setbox0=\hbox{xxx.xxx.xxx.xxx}\dimen1=-115.2pt\tableft\setbox
0=\hbox{01:01:01:01:01:01}\dimen1=-115.2pt\tableft

\vskip 13.2pt
\noindent\setbox0=\hbox{le0}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{ \ hostname}\dimen1=-28.8pt\tableft\setbox
0=\hbox{}\dimen1=-86.4pt\tableft\setbox0=\hbox{xxx.xxx.xxx.xxx
02:02:02:02:02:02}\dimen1=-28.8pt\tableft

\vskip 13.2pt
\noindent\setbox0=\hbox{le0}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{ \ 0.255.255.255}\dimen1=-28.8pt\tableft
\setbox0=\hbox{xxx.xxx.xxx.xxx}\dimen1=-115.2pt\tableft\setbox
0=\hbox{00:40:b8:00:00:01}\dimen1=-115.2pt\tableft

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax Find the devices which do not have hostnames, or which
have IP addresses not within your domain range. These devices
need to be assigned an IP address, which should be added as
an entry to the bootptab file along with the listed Physical
Address (see later). All Acorn-sourced NC OS 1.06 devices have
a MAC address of the form 00:00:a4:11:xx:xx.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
21.4pt\fontsetac\parindent=18pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf3.3 Unix Configuration}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax In order to set up the infrastructure required to boot
Ethernet NCs, it is necessary to be the super-user.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf3.3.1 IP Addresses}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax The host name and IP address to be assigned to each NC
should be added to the /etc/hosts file and/or NIS (Network Information
Service, formerly YP) map. If NIS is used, it is important to
force (or wait for) a push of the maps. The NC{\tt\char13}s
hostnames and IP addresses should also be added to the site
DNS; this is particularly important if the NCs are intended
to run X servers.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
21.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.3.2 NFS Export}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax In order that the Network Computer can read files in
the NC directory structure now set up (eg. /export/home/ncd),
it must be shared using NFS. Note that the /export/home/ncd/boot
directory can be exported as a read-only filesystem, whereas
the individual user directories should be exported read-write
with the appropriate owners and permissions to maintain access
control.

\vskip 15.4pt
\relax In BSD systems, this is achieved by amending the /etc/exports
file (see {\bf man exports} for details). After making the changes
to the NFS exports database, it will be necessary to prompt
the controlling nfsd daemon to re-read the file in order for
the changes to take effect. You should be aware that some flavours
of Unix require any exported hierarchy to be a complete filesystem
and not just a directory within a filesystem; unless you have
/export (or whatever) stored as a separate partition (which
gets mounted according to /etc/fstab at system boot time) you
may need to specify all of / in /etc/exports. Exporting / should
be avoided if at all possible by judicious disc partitioning.
Some Unix variants may also require the -alldirs suffix added
to the export option; see {\bf man exports} to determine whether
this is the case on your server.

\vskip 15.4pt
\relax For SVR4 systems, use the share command to add new nfs
shares (see {\bf man share}), e.g. 

\fontsetad\spaceskip=0.3333em\xspaceskip=0.5em
\relax share -F nfs -o ro /export/home/ncd/boot

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax On Solaris 2.x systems, the share command should be appended
to /etc/dfs/dfstab

\vskip 15.4pt
\relax You may wish to check for error messages after re-starting
NFS (e.g. typing errors in the exports file). Typically, error
messages are recorded in the system log (see {\bf man syslog}),
and the last few error messages can be viewed by typing: 

\# {\bf tail /var/log/messages}

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.3.3 PCNFS Authentication}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax For the NC to connect an authenticated user once its
bootstrap has finished executing, it is necessary to have pcnfsd
running on the server. pcnfsd requires no configuration of its
own; it can be run either from an rc file or via inetd (see
{\bf man pcnfsd} for details on your own server{\tt\char13}s
options). pcnfsd will authenticate users who have entries either
in the server{\tt\char13}s local /etc/passwd or (if YP / NIS
/ NIS+ is configured and running) on the appropriate master
passwd server.

\vskip 15.4pt
\relax Several freeware sources exist, as well as commercial
implementations (eg http://www.sun.com/solstice/Networking-products/PC-NFS51.html);
as the NC uses pcnfsd{\tt\char13}s RPC support rather than attempting
to open a UDP socket, 4.4BSD{\tt\char13}s rpc.pcnfsd can be
used with appropriate systems.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.3.4 bootp}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax bootp must be installed on the system to enable the NC
to get its configuration information from the server, unless
the NCs are to be configured to use static IP addressing from
their own NVRAM. The bootp server (bootpd) can normally be found
in /usr/etc or /usr/sbin (for further details see {\bf man bootpd}).
If the software is not installed it will be possible to obtain
it from your vendor. Alternatively there are various publicly
available versions (see ftp://sunsite.doc.ic.ac.uk/computing/operating-systems/unix/FreeBSD/FreeBSD-stable/src/libexec/bootpd).
Some bootp implementations (on eg IRIX 5.3) are intended specifically
for use in booting discless Unix workstations, and hence the
methods for configuring them may not match the setup below;
if you have been supplied with such an implementation,you should
obtain and compile one of the freeware bootpd implementations
above, or use the bootp implementation from the NC Server pack
if appropriate.

\vskip 15.4pt
2. The file /etc/services (see {\bf man services}) should contain
the following lines:

\fontsetad\vskip 13.2pt\spaceskip=0.3333em\xspaceskip=0.5em
\noindent\setbox0=\hbox{bootps}\tabnone\setbox0=\hbox{67/udp}\dimen
1=-57.6pt\tableft\setbox0=\hbox{\#Bootstrap Protocol Server}\dimen
1=-57.6pt\tableft

\noindent\setbox0=\hbox{bootps}\tabnone\setbox0=\hbox{67/tcp}\dimen
1=-57.6pt\tableft

\noindent\setbox0=\hbox{bootpc}\tabnone\setbox0=\hbox{68/udp}\dimen
1=-57.6pt\tableft\setbox0=\hbox{\#Bootstrap Protocol Client}\dimen
1=-57.6pt\tableft

\noindent\setbox0=\hbox{bootpc}\tabnone\setbox0=\hbox{68/tcp}\dimen
1=-57.6pt\tableft

\fontsetab\vskip 13.2pt\spaceskip=0.3333em\xspaceskip=0.5em
3. The file /etc/bootptab needs to be modified to contain an
entry for the NC:

\fontsetad\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{.ncdefault:{\tt
\char92}}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:ht=ether:{\tt
\char92}}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:bf=/export/home/ncd/boot:{\tt
\char92}}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:ds=xxx.xxx.xxx.xxx:{\tt
\char92}}\dimen1=-28.8pt\tableft\setbox0=\hbox{}\dimen1=-172.8pt
\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:gw=xxx.xxx.xxx.xxx:{\tt
\char92}}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:hn:{\tt\char
92}}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:sm=xxx.xxx.xxx.xxx:{\tt
\char92}}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{:vm=rfc1048}\dimen
1=-28.8pt\tableft

\vskip 13.2pt
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{ncxxx:tc=.ncdefault:ha=xxxxxxxxxxxx:ip=xxx.xxx.xxx.xxx}\dimen
1=-28.8pt\tableft

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax The header section (from {\tt"}.ncdefault{\tt"} to {\tt
"}rfc1048{\tt"}) represents the various boot configurations.
The header defines:

\vskip 15.4pt
\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{ht -
host hardware type}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{bf -
bootfile (The NC uses this field to pass the NFS mount path
which holds }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{ \ \ \ \ \ 
\ the !nfsboot application).}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{ds -
Domain Name Server address list}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{gw -
gateway}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{sm -
subnet mask}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{vm -
vendor magic cookie selector (vendor specific options)}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{Each entry comprises
a name for the NC, followed by the following definitions:}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{tc -
table continuation (points to similar ``template'' host entry)}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{ha -
host hardware (Ethernet MAC) address}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{$\cdot$}\tabnone\setbox0=\hbox{ip -
host IP address}\dimen1=-42.67pt\tableft

\vskip 15.4pt
\relax Note that the following values should be added to bootptab
(numbers refer to the annotations in Figure 2):

\vskip 15.4pt
\noindent\setbox0=\hbox{:ds=xxx.xxx.xxx.xxx:{\tt\char92}}\tabnone
\setbox0=\hbox{Replace xxx with DNS IP address}\dimen1=-170.7pt
\tableft

\noindent\setbox0=\hbox{:gw=xxx.xxx.xxx.xxx:{\tt\char92}}\tabnone
\setbox0=\hbox{Replace xxx with router IP address}\dimen1=-170.7pt
\tableft

\noindent\setbox0=\hbox{:sm=xxx.xxx.xxx.xxx:{\tt\char92}}\tabnone
\setbox0=\hbox{Replace xxx with subnet mask}\dimen1=-170.7pt
\tableft

\noindent\setbox0=\hbox{ncxxx:}\tabnone\setbox0=\hbox{ \ \ 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ Replace xxx
with name for a given NC (Acorn}\dimen1=-85.34pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{}\dimen1=-42.6pt\tableft\setbox0=\hbox{suggests the use of
{\tt"}nc{\tt"} followed by an ascending}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{}\dimen1=-42.6pt\tableft\setbox0=\hbox{numeric)}\dimen1=-42.7pt
\tableft

\noindent\setbox0=\hbox{ha=xxxxxxxxxxxx:}\tabnone\setbox0=\hbox
{ \ \ \ \ \ \ \ \ \ \ \ \ \ Replace xxx with hardware (MAC)
address of the}\dimen1=-128pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{}\dimen1=-42.7pt\tableft\setbox0=\hbox
{}\dimen1=-42.6pt\tableft\setbox0=\hbox{NC (omitting field-separating
colons)}\dimen1=-42.7pt\tableft

\noindent\setbox0=\hbox{ip=xxx.xxx.xxx.xxx}\tabnone\setbox0=\hbox
{NC IP address}\dimen1=-170.7pt\tableft

\vskip 15.4pt
\relax NB. Some bootp daemons (e.g. SCO Unix 3.2v4.2) use only
slightly different bootptab file formats, and it is possible
that the suggested configuration will cause the daemon to crash.
If this occurs remove the leading full-stop ({\tt"}.{\tt"})
from the .default header and entry, \ then re-run bootpd. In
addition, some bootptab files may already contain a .default
entry which breaks the above model; if so, remove the pre-existing
entry. Alternatively consult your Unix system manual.

\vskip 15.4pt
4. The file /etc/inetd.conf (BSD) or /etc/inet/inetd.conf (some
SVR4) should include:

\fontsetae\spaceskip=0.3333em\xspaceskip=0.5em
\noindent\setbox0=\hbox{\# {\tt<}service{\tt>} {\tt<}tli{\tt
>} {\tt<}proto{\tt>} {\tt<}flags{\tt>} {\tt<}user{\tt>}{\tt
<}server\_pathname{\tt>}}\tabnone\setbox0=\hbox{{\tt<}args{\tt
>}}\dimen1=-360pt\tableft

\noindent\setbox0=\hbox{ \ \ \ bootp \ \ dgram \ \ udp \ \ 
\ \ wait \ \ root}\tabnone\setbox0=\hbox{/usr/sbin/bootpd}\dimen
1=-240pt\tableft\setbox0=\hbox{bootpd}\dimen1=-120pt\tableft

\fontsetab\vskip 13.2pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax or similar as applicable.

\vskip 15.4pt
\relax inetd is the internet {\tt"}superserver{\tt"} which should
be run at boot time by /etc/rc.local (or similar). Its purpose
is to listen for connections on certain internet sockets, decide
what service the socket corresponds to, and invoke a program
to service the incoming request.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.3.5 ntp}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax An NC has no real-time clock of its own; instead, it
determines its concept of real time at boot time from a timeserver.
If you do not have a network timeserver already visible via
your network which serves network time over the ntp protocol,
you should install timed on one of your Unix hosts (see {\bf
man timed} for details).

\ 

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=18pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.4 Overview of NC Boot Procedure}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax When the Ethernet NC is switched on, it goes through
the following boot sequence provided static addressing has not
been configured into the NC:

\vskip 15.4pt
\noindent\setbox0=\hbox{1.}\tabnone\setbox0=\hbox{NC broadcasts
its physical (MAC) address in a bootp message}\dimen1=-42.67pt
\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{2.}\tabnone\setbox0=\hbox{NC server{\tt
\char13}s bootpd process recognises this message, and does a
lookup in its}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{bootptab to
see if the hardware address is listed. If this is the case,
it sends a }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{bootp reply
to the NC comprising the NC{\tt\char13}s IP address, resolved
name, DNS }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{host, gateway,
netmask and location of exported boot partition. The NC reads
its }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{IP address,
resolved name and bootfile location from this reply, and the
remaining }\dimen1=-42.67pt\tableft

\ \ \ \ \ \ \ \ \ \ \ \ \ \ information is discarded. 

\vskip 15.4pt
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{NB. The server
which responds to the bootp request must also be the server
which}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{ is exporting
the NC boot structure; bootp forwarding is not supported.}\dimen
1=-42.67pt\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{3.}\tabnone\setbox0=\hbox{The NC mounts
the server at the point defined by the ``bf'' field of the bootp
reply;}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{pcnfs is not
used at this point as the NC mounts as user ``nobody'' (UID:
32767,}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{GID: 9999),
ie user authentication is not required and pcnfsd is bypassed.
The }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{NC labels this
mount point NFSBoot.}\dimen1=-42.67pt\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{4.}\tabnone\setbox0=\hbox{The NC starts
the !nfsboot application, by executing the !nfsboot/!run,feb
}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{obey file. 
\ \ \ \ \ \ \ }\dimen1=-42.67pt\tableft

\ \ \ \ \ \ \ \ \ \ \ \ \ \ In the unextended baseline distribution,
this detects whether the NC is running NC

\ \ \ \ \ \ \ \ \ \ \ \ \ \ OS version 1.06 and that the NC
network hardware is Ethernet, and switches 

\ \ \ \ \ \ \ \ \ \ \ \ \ \ control to the !nfsboot/106/runether
file. An error is reported in the case

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{of the NC running
a different OS version or attempting to connect via a non-}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{Ethernet transport
layer.}\dimen1=-42.67pt\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{5.}\tabnone\setbox0=\hbox{The !nfsboot/106/runether
file sets up numerous NC -side environment}\dimen1=-42.67pt
\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{variables and
installs assorted softloadable modules on the NC; it is not
intended}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{for modification
by the sysadmin. It repeatedly examines the contents of the
}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{ncconfig/106
directory, which contains the sysadmin-configurable options
}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{for all the
NCs booting from the given server. The files in this directory
are}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{executed (*obeyed,
in NC parlance) by the NC in the following order:}\dimen1=-42.67pt
\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-42.67pt
\tableft\setbox0=\hbox{debug}\dimen1=-42.7pt\tableft

\fontsetad\spaceskip=0.3333em\xspaceskip=0.5em
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{}\dimen1=-28.8pt\tableft\setbox0=\hbox
{servername}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{}\dimen1=-28.8pt\tableft\setbox0=\hbox
{setupnet}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{}\dimen1=-28.8pt\tableft\setbox0=\hbox
{setupssl}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{}\dimen1=-28.8pt\tableft\setbox0=\hbox
{setupprint}\dimen1=-28.8pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{}\dimen1=-28.8pt
\tableft\setbox0=\hbox{}\dimen1=-28.8pt\tableft\setbox0=\hbox
{setupproxy}\dimen1=-28.8pt\tableft

\fontsetab\vskip 13.2pt\spaceskip=0.3333em\xspaceskip=0.5em
\noindent\setbox0=\hbox{5.}\tabnone\setbox0=\hbox{At the end
of this process, the ncconfig/pernc/all106ncs directory is}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{accessed to
determine per-server or per-site customisation options; all
NCs will }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{*obey the ncconfig/pernc/all106ncs/run
file. }\dimen1=-42.67pt\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{6.}\tabnone\setbox0=\hbox{If a directory
exists within the ncconfig/pernc hierarchy which has a name}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{corresponding
to the resolved name of any NC booting from the given server,
that}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{NC and only
that NC will proceed to *obey the run file therein for the purpose
}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{of \ per-NC
customisation.}\dimen1=-42.67pt\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{7.}\tabnone\setbox0=\hbox{If a softloadable
copy of the NC browser (!NCFresco) is present in the}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{ncfresco directory,
the NC will softload it and use it subsequently. If not, the}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{NC will use
the default version of !NCFresco supplied in its ROM.}\dimen
1=-42.67pt\tableft

\vskip 15.4pt
\noindent\setbox0=\hbox{8.}\tabnone\setbox0=\hbox{At either
step 5 or step 6, the NC environment variable security\$status
will be set }\dimen1=-42.67pt\tableft\setbox0=\hbox{}\dimen
1=-402.5pt\tableft\setbox0=\hbox{}\dimen1=--0.04pt\tableft\setbox
0=\hbox{}\dimen1=-0pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{to one of three
values; {\tt"}login{\tt"}, {\tt"}smartcard{\tt"} or {\tt"}hardwire{\tt
"}. The !nfsboot/106/}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{desktop,fea
file contains a three-way switch which launches the appropriate
}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{authentication
and user home directory mounting system (details on all three
}\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{metrics later).}\dimen
1=-42.67pt\tableft

\vskip 15.4pt
\relax IT IS IMPORTANT TO NOTE THAT any environment variable
which is set in any of these configuration files can be reset
or unset in any file which is executed later than it (or indeed
later on in the same file); this allows a degree of control
identical to the {\tt"}deny from all{\tt"} followed by {\tt
"}allow from a.b.c.d{\tt"} system in the Apache WWW server.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=18pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf3.5 Basic NC Boot Hierarchy Configuration}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax All commands in all files in the ncconfig hierarchy may
be commented out by prepending a pipe ({\tt|}) to the start
of the appropriate line in the file. Commands, variable names
and filenames in NC OS are case insensitive.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf3.5.1 Debug Mode}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax The NC boot hierarchy has a simple debug mode which prints
verbose output to the NC{\tt\char13}s screen relating to the
progress of the boot sequence as booting takes place. Initially,
the NC is in a bare command-line only environment; as NC OS
scrolls its debug information down the screen, CTRL and SHIFT
on the NC{\tt\char13}s keyboard will, when pressed, suspend
progress so the information can be read. Releasing SHIFT will
cause progress to be resumed, but more slowly.

\vskip 15.4pt
\relax When the NC reaches the point in its boot sequence where
its window manager starts, clickable error boxes will be displayed
indicating the part of the boot process which is about to start.
During recognition and execution of installed public and per-NC
private applications (see later), a window is opened displaying
the path to each application; press the spacebar on the NC{\tt
\char13}s keyboard to progress from processing one application
to the next (this feature was implemented in order to ease the
process of isolating boot sequence failure owing to application
problems to the application at fault).

\vskip 15.4pt
\relax Full debug mode is enabled by changing ncconfig/106/debug
to read:

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax Seteval Debug 1

Seteval Netinfo 1

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax To enable an NC to display just its networking details
rather than full debug, Debug can be set to 0 and Netinfo left
set to 1. Setting both to 0 disables all debugging information.

\vskip 15.4pt
\relax NOTE THAT for the name of your server to be correctly
displayed by the NC when Netinfo is turned on, the server{\tt
\char13}s name should be assigned to the Server\$Name NC environment
variable; this is done in ncconfig/106/servername .

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.5.2 Networking and Routing}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax As stated previously, the NC does not make use of all
the information supplied to it by the bootp server; in particular,
network routing and resolving must be set up explicitly within
the NC boot structure. Fortunately, the parameters which are
not registered by the NC{\tt\char13}s bootp client are those
which are very likely to be invariant across all NCs booting
from a given server.

\vskip 15.4pt
\relax The following parameters are set up in the ncconfig/106/setupnet
file

\vskip 15.4pt
\relax Routing:

syntax: route -e add net default {\tt<}{\it IP addr of gateway\/}{\tt
>} {\tt<}{\it number of hops to gateway\/}{\tt>}

The route command is found within the area of the boot structure
pointed to by bin\$path; this is set up within !nfsboot. Thus
a route command must be prefixed bin:

\vskip 15.4pt
\relax Address of the DNS:

syntax: set inet\$resolvers {\tt<}{\it DNS host IP addr\/}{\tt
>}

\vskip 15.4pt
\relax Resolved name of the local domain:

syntax: set inet\$localdomain {\tt<}{\it resolved domain name\/}{\tt
>}

\vskip 15.4pt
\relax The {\tt"}resolverconfig{\tt"} line immediately following
the setting of inet\$localdomain must be left as is; both inet\$resolvers
and inet\$localdomain MUST BE SET before the resolverconfig
call is made or the NCs will behave unpredictably.

\vskip 15.4pt
\relax Netmask:

syntax:fixnetmask {\it{\tt<}Netmask value in hex, preceded by
0x\/}{\tt>}

\vskip 15.4pt
\relax As with the route command, bin: should be prepended to
the fixnetmask command.

\vskip 15.4pt
\relax For an explanation of the allocation and behaviour of
netmasks, see Acorn Support Group Application Note 283, available
via anonymous ftp from ftp.acorn.co.uk in /pub/documents/appnotes
.

\vskip 15.4pt
\relax Time synchronisation:

syntax: set inet\$timeserver {\tt<}{\it ntp host IP addr\/}{\tt
>}

\vskip 15.4pt
\relax An NC has no real-time clock, and must thus take its
concept of real time from a network-based ntp time feed. As
with Unix, the start of the NC epoch is at midnight on January
1st 1970.

\vskip 15.4pt
\relax Hosts, Networks, Protocols and Services:

The NC{\tt\char13}s own equivalents of \ BSD{\tt\char13}s /etc/hosts,
/etc/services and /etc/protocols are contained in the etc directory
as found in the same boot directory containing !nfsboot (ie
NOT in the server{\tt\char13}s own /etc).

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.5.3 Printing}\par\nobreak

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\item{}\par\nobreak

\fontsetab\parindent=0pt\leftskip=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax NCs can be made to print either via their local parallel
port or over the network to a suitably configured Unix print
server. All network printing options at the NC{\tt\char13}s
end are configured in the ncconfig/106/setupprint file.

\vskip 15.4pt
\relax The printer type is configured by the printer\$ environment
variable; other variables point to the appointed print server
by using the following syntax:

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax NFS\#Printer::{\tt<}{\it resolved print server name\/}{\tt
>}.{\tt<}{\it printer name\/}{\tt>}.{\tt<}{\it UserID\/}{\tt
>}[{\tt<}{\it password\/}{\tt>}]

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax A default of printing as user {\tt"}nobody{\tt"} is supplied;
per-NC or per-user customisation can be achieved by adding appropriate
lines to an ncconfig/106/pernc/{\tt<}{\it resolved NC name\/}{\tt
>}/run file or a user{\tt\char13}s !run,feb file (see later).
If this is done you should be aware that some pcnfsd implementations
do not use RPC correctly when authenticating print jobs; this
can result in authentication errors when spooling. If this happens,
consult your Unix vendor or build the pcnfsd implementation
supplied as part of the Unix server utils pack accompanying
this distribution.

\vskip 15.4pt
\relax The server must be configured as an NFS print server,
ie it must be running lpd and / or lpq and have the job spooling
directory NFS-exported. Consult {\bf man lpd} or {\bf man lpq}
and {\bf man printcap} for details, or refer to your Unix vendor.

\vskip 15.4pt
\relax By default, an NC ships with drivers for a number of
printers contained in its ROM. The base hierarchy accompanying
this document reconfigures the NC at boot time to point to a
set of printer drivers contained on the server, thus making
the list of supported printers extensible.

\vskip 15.4pt
\relax A number of additional printer drivers are supplied in
the ncconfig/106/Printers/Printers directory; the file ncconfig/106/Printers/Supported
contains the list of printer drivers and appropriate strings
presented on the printer configuration menu (part of the Admin
application; see later) and their position in this menu. Appending
names of printer definition files and description strings in
acordance with the format of the existing entries will enable
such printers to be selected either as part of the Admin application
or within ncconfig/106/setupprint .

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.5.4 Proxying}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax The NC is capable of interacting with a local or remote
http proxy, and is configurable both for proxy IP address and
port number. Proxying is configured in the ncconfig/106/setupproxy
file; all proxying options are turned off by default, but may
be turned on by removing the prepending {\tt|} characters.

\vskip 15.4pt
\relax Enabling proxying:

syntax: Set NCFresco\$ConfigProxyHttpEnable Yes

\vskip 15.4pt
\relax This is the master switch to turn proxying on; other
proxy-related variables may be set, but if this variable is
not set proxying will not take place. If this variable is set,
other proxy-related variables must be set also.

\vskip 15.4pt
\relax Nominating an http proxy:

syntax: Set NCFresco\$ConfigProxyHttp {\tt<}{\it IP addr of
proxy\/}{\tt>}:{\tt<}{\it port number on which proxy expects
URL requests\/}{\tt>}

\vskip 15.4pt
\relax Note that responses (served pages) from the proxy to
the NC will be expected to be received on port 80.

\vskip 15.4pt
\relax Setting proxy-ignored domains:

syntax: Set NCFresco\$ConfigProxyHttpIgnore {\tt<}{\it domain
name\/}{\tt>} [{\tt<}{\it domain name\/}{\tt>} {\tt<}{\it domain
name\/}{\tt>} ...]

\vskip 15.4pt
\relax If pages from any specific domains are to always be fetched
directly rather than via an in-use proxy server (eg pages which
are dynamically generated), the NC can be forced to fetch all
pages from specific domains directly rather than via the proxy
by supplying a space-separated list of domains in this environment
variable.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.5.5 Secure Socket Layer}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax Loading of the SSL module is controlled by the ncconfig/106/setupssl
file; SSL is disabled by default ,ie both lines in this file
must be commented out by prepending them with a pipe ({\tt|}),
and the SSL module is {\bi not} included as standard in the
base distribution in order to comply with UK export restrictions.

\vskip 15.4pt
\relax In accordance with international export restrictions,
the NC SSL implementation uses RSA encryption with a maximum
key length of 48 bits. The code was left softloadable rather
than being incorporated into the NC ROM so that locales which
have tighter restrictions than the UK on the use of strong cryptography
are not forced to import the code; if the code is not loaded,
the NC browser will present an error box when pointed at a page
exported via https.

\vskip 15.4pt
\relax The SSL module forms a part of the optional NC security
pack, which can be obtained from Acorn by arrangement (and,
for non-UK customers, appropriate export licence).

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
54.2pt\fontsetac\parindent=18pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.6 User Security and Login Methods}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax The NC and its boot structure is designed to integrate
with existing Unix user home directories and user management
practices; three methods of logging on to an NC and the network
as an authenticated user are supported.

\vskip 15.4pt
\relax It is worth noting at this point that users{\tt\char
13} NFS home directories are often cluttered, and the addition
of NC-related files to a home directory which is already in
use from a desktop system will only make the situation worse.
Acorn has adopted a system, as can be seen in the etc/passwd
file in the supplied boot structure (where the NC{\tt\char13}s
etc directory is at the same level in the exported hierarchy
as the !nfsboot directory), where all NC-related files are stored
in an {\tt"}nchome{\tt"} directory within the actual home directory
of the user. The existence of a consistent toplevel NC home
directory name for all users is also expected to be useful as
a point of reference for NC administration tools in the future.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf3.6.1 Challenge - Response}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax This method mirrors the standard Unix UserID - Passwd
challenge-response method of user authentication, and is invoked
by setting the NC{\tt\char13}s login\$status environment variable
to {\tt"}login{\tt"}; in the supplied boot structure this variable
is set in ncconfig/106/pernc/all106ncs/run .

\vskip 15.4pt
\relax Once previous stages of booting have been completed,
the NC starts its browser and loads the page ncconfig/106/login/passwd/Logon,faf
over NFS; this page may be customised by the sysadmin to present
graphics appropriate to their organisation, but it should be
noted that the line

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt<}META NAME={\tt"}browsermode{\tt"} CONTENT={\tt"}desktop{\tt
"}{\tt>}

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax must be preserved in the HTML head in order to deny the
user access to the NC browser{\tt\char13}s toolbar until after
authentication has taken place.

\vskip 15.4pt
\relax Once username and password have been entered, a script
inside !nfsboot is called which examines an etc/passwd file
which can be found in the same boot directory as !nfsboot (ie
it is NOT the master /etc/passwd file!). This file has one or
more lines of the format:

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt<}{\it username as accepted by the NC\/}{\tt>} {\tt<}{\it
resolved name of the Unix host which their home directory is
located on\/}{\tt>} {\tt<}{\it Path on that Unix host of their
home directory\/}{\tt>} {\tt<}{\it username as accepted by login
on the Unix host containing their home directory\/}{\tt>}

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax The user{\tt\char13}s password as typed into the Logon,faf
page is submitted to the Unix server hosting the user{\tt\char
13}s home directory for checking against the contents of that
Unix server{\tt\char13}s /etc/passwd ; if that server is appropriately
configured, it can pass the query to NIS / NIS+ as it does with
Unix logon attempts.

\vskip 15.4pt
\relax NOTE THAT the Unix server hosting the user{\tt\char13}s
home directory must be running pcnfsd.

\vskip 15.4pt
\relax If the login attempt fails, the page ncconfig/106/login/passwd/Fail,faf
is displayed. This page may also be customised by the sysadmin,
but again the 

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt<}META NAME={\tt"}browsermode{\tt"} CONTENT={\tt"}desktop{\tt
"}{\tt>}

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax must be preserved.

\vskip 15.4pt
\relax If the login attempt succeeds (ie the UserID - Passwd
pair is verified by the server hosting the user{\tt\char13}s
home directory), the home directory as specified in the NC{\tt
\char13}s etc/passwd file is NFS mounted and labelled NCDHome
by the NC. An obeyfile (effectively an NC equivalent of a piece
of shellscript) is then run so that, if the sysadmin wishes,
a user can boot applications unique to them which are contained
within their own filespace (more on this later); if the sysadmin
does not wish the user to have this capability the file may
simply be zeroed, chowned to an admin or dummy user, its write
bits unset and its public read bit set.

\vskip 15.4pt
\relax The HTML page NCDHome:Home (Home,faf when viewed from
Unix) is then loaded over NFS into the NC browser. As the user
is at this point authenticated, pages or application files within
the user{\tt\char13}s home directory which are owned by that
user do not need to have their public read bits set. All \ HTML
pages referenced from this page and subsequent pages can have
the more normal .html file extension.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.6.2 Smartcard}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax This method requires the user to have an appropriately-programmed
smartcard, and is invoked by setting the NC{\tt\char13}s login\$status
environment variable to {\tt"}smartcard{\tt"}; in the supplied
boot structure this variable is set in in ncconfig/106/pernc/all106ncs/run
.

\vskip 15.4pt
\relax Once previous stages of booting have been completed,
the NC starts the Sennen application (inside !nfsboot); this
displays a non-syadmin-customisable ``insert smartcard'' screen.

\vskip 15.4pt
\relax Once a smartcard is inserted, the user is prompted to
enter a four-digit PIN 

which (if correct) unlocks the NFS mount details on the smartcard.
The following information is retrieved from the smartcard:

\vskip 15.4pt
\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{$\cdot$File
server IP address }\dimen1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{$\cdot$Username}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{$\cdot$Password}\dimen
1=-42.67pt\tableft

\noindent\setbox0=\hbox{}\tabnone\setbox0=\hbox{$\cdot$URL of
home page}\dimen1=-42.67pt\tableft

\vskip 15.4pt
\relax The mount request for the user{\tt\char13}s home directory
is made using the information retrieved from the smartcard;
the directory is then NFS mounted and labelled as NCDHome by
the NC. 

\vskip 15.4pt
\relax NOTE THAT the server hosting the user{\tt\char13}s home
directory must be running pcnfsd.

\vskip 15.4pt
\relax NOTE ALSO THAT this login process will not (currently)
cause the obeyfile within the user{\tt\char13}s home directory
to be executed.

\vskip 15.4pt
\relax The NC browser then requests the user{\tt\char13}s home
page (Home,faf).

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf3.6.3 Hardwire}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax For the purposes of software development, most developers
will not need to utilise the user identification and authentication
services offered by the Smartcard interface, and for a {\tt
"}test bench{\tt"} setup the rigour of a challenge-response
login arrangement is generally not required either. Also it
is envisaged that NCs may be used in an environment where it
is desirable for them to auto-boot from power on to complete
usability without any need for user input regarding network
authentication.

\vskip 15.4pt
\relax It is therefore possible to configure the NC{\tt\char
13}s login\$status environment variable to {\tt"}hardwire{\tt
"}; this will cause the NC to execute the ncconfig/106/login/hardwire/run
file rather than run the applications associated with challenge-response
or smartcard logins.

\vskip 15.4pt
\relax The file has the following structure:

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt|}{\tt|} Bootstrap hardwired for NC Admin home dir (dumping
ground for the new HTML)

Comment

\vskip 16pt
\relax nfs

\fontsetab\spaceskip=0.3333em\xspaceskip=0.5em
\relax Selects the NC{\tt\char13}s NFS client as the selected
filing system

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax logon {\tt<}{\it UserID\/}{\tt>} {\tt<}{\it Passwd\/}{\tt
>}

\fontsetab\spaceskip=0.3333em\xspaceskip=0.5em
\relax Logs on to the boot server 

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax mount NCDHome /export/home/{\tt<}{\it UserID\/}{\tt>}

\fontsetab\spaceskip=0.3333em\xspaceskip=0.5em
\relax NFS-mounts the hardwired user{\tt\char13}s home directory
with label NCDHome

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax resourcefs

\fontsetab\spaceskip=0.3333em\xspaceskip=0.5em
\relax Selects the NC{\tt\char13}s resource filing system (used
to access significant applications in ROM)

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax obey ncfresco:!Run

\fontsetab\spaceskip=0.3333em\xspaceskip=0.5em
\relax Start the NC{\tt\char13}s browser

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=18pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf4.0 Applications and User Filespace Management}\par
\nobreak

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\item{}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax As users{\tt\char13} existing home directories are used
for NC-based material, these directories remain controlled by
whatever measures (eg quotad) which are already in place.

\vskip 15.4pt
\relax The best way to install applications on an NC server
is from a RISC OS box running an NFS client in order to preserve
filetype information (see Appendix B); if this is not feasible,
and if the applications are supplied as Spark archives (Spark
is an archiving method unique to Acorn systems, and is similar
to arc; Spark archives can usually be recognised either by having
a filename terminating in arc or having a filetype of ddc),
they can be dearchived and the filetypes associated with their
contents preserved using the nspark utility supplied with this
distribution as part of the Unix server utilities pack:

\fontsetad\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\# {\bf nspark -uvT {\tt<}}{\bi archive name}{\bf{\tt>}}

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax Applications fall into two distinct categories from the
point of view of configuration; those which need to be able
to act upon user-supplied data files specific to them (eg wordprocessors
and games which have saved-game files) and those which do not
(eg terminal emulators).

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf4.1 User Home Directory Structures}\par\nobreak

\fontsetab\parindent=0pt\leftskip=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax Acorn suggests that, in the case of pre-existing NFS-exported
user home directories, NC-specific material is retained within
an {\tt"}nchome{\tt"} subdirectory in each user{\tt\char13}s
home directory.

\vskip 15.4pt
\relax An example user{\tt\char13}s nchome directory (the eguser
hierarchy) is incorporated within the supplied structure; it
must contain:

\vskip 19.4pt\parindent=54pt\leftskip=12pt\rightskip=18pt plus1fil
\item{$\bullet$}an HTML home page (Home,faf)

\item{$\bullet$}a Files directory for user-generated application
data files (eg wordprocessor documents)

\item{$\bullet$}a Choices directory for application-generated
user choices / configuration files (eg browser hotlists).

\item{$\bullet$}a !run,feb file (if the challenge-response login
method is to be used)

\vskip 17.4pt\parindent=0pt\leftskip=36pt\rightskip=0pt plus1fil
\relax Other HTML pages may be stored in the same directory
as Home,faf and linked to it using relative anchors within the
HTML of the home page; these other pages can have the conventional
.html filetype.

\vskip 15.4pt
\relax By convention, the Files directory should contain subdirectories
with names identical to the characters following the ! at the
start of the name of the application which uses files of the
type contained within the subdirectory; for example files created
in the !Publisher application would be contained within the
Files/Publisher directory and so on.

\vskip 15.4pt
\relax If a user is to be able to create new files when opening
a given application, that application{\tt\char13}s subdirectory
within Files should contain a file named \_\_,{\tt<}{\it RISC
OS hex filetype\/}{\tt>} (eg \_\_,feb for Publisher files) which
is When a user enters a filename in the {\tt"}Create new file{\tt
"} dialogue, this \_\_ file is copied to a new file with the
filename specified by the user, with the filetype appended as
a three-hexit field following a separating comma. 

\vskip 15.4pt
\relax As the user has already been authenticated at the point
where these files become accessible, the files should be owned
by the user who owns the appropriate user home directory. Similarly,
public read bits on these files do not need to be set.

\vskip 15.4pt
\relax Thc Choices directory contains per-user configurable
application details; in this base pack, it is only used by the
browser (to store cookies, hotlists, details of plugins and
authenticated sites) and the ROM-based wordprocessor.

\vskip 15.4pt
\relax The !run,feb file is an obeyfile which is executed immediately
following successful user authentication by the challenge-response
method; this obeyfile can be used to alter environment variables
for per-user customisation, and it can also be used to initialise
private applications (more of which below...)

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf4.2 Public versus Private Applications}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax Applications may be placed within the NC boot hierarchy
in such a manner that all NCs auto-recognise them at boot time
and will subsequently recognise the filetypes of user-created
files connected with them, or they may be located within any
user{\tt\char13}s home directories such that only that user
may use those applications, or they may be located within any
individual NC{\tt\char13}s directory (within the ncconfig/pernc
hierarchy) such that only a given NC may use those applications.

\vskip 15.4pt
\relax The first of these three classes of applications are
referred to as {\tt"}public applications{\tt"}, whereas the
latter two types are {\tt"}private applications{\tt"}.

\vskip 15.4pt
\relax It should be noted that, with very few exceptions, an
NC application comprises a top-level directory which starts
with a ! ; the remainder of the name of this directory is the
application{\tt\char13}s name. Inside this directory you will
normally find a !Boot,feb file and a !Run,feb file, among others.
Many flavours of Unix treat a string beginning with the ! character
as being an event handle; for it to be recognised as a component
within a filename, the ! may need to be prepended with a {\tt
\char92} \ .

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=54pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf4.2.1 Adding Public NC Applications}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=54pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax The work required to add a public application is as follows:

\vskip 4pt\parindent=72pt\leftskip=12pt\rightskip=18pt plus1fil
\item{$\bullet$}Determine whether the application is specific
to a particular version of NC OS which is in use at your site,
or whether it may be used on any version of NC OS.

\item{$\bullet$}Determine whether the application is to be recognised
at NC boot time (ie whether only the !Boot,feb file is to be
executed, which normally only sets an environment variable of
its own choosing to point to that application directory and
allows data files to be recognised) or executed at NC boot time
(which fully starts up the application).

\item{$\bullet$}Ensure that !Boot,feb and !Run,feb files exist
within the top-level application directory; if no !Boot,feb
file is visible you will need to create an empty one, whereas
if no !Run,feb file exists this will tell you that the !Boot,feb
file will cause the application to be executed rather than merely
recognised. If this is the case, read the text below and Do
The Sensible Thing...

\item{$\bullet$}Recursively set public read on the top-level
application directory ({\bf chmod -R o+r {\tt\char92}!{\tt<}}{\bi
appname}{\bf{\tt>}} ).

\item{$\bullet$}Recursively copy the top-level directory into:

\vskip 4pt\parindent=90pt\rightskip=36pt plus1fil
\item{$\bullet$}apps/106/boot for applications specific to NC
OS 1.06 which are to be recognised at NC boot time

\item{$\bullet$}apps/106/run for applications which are specific
to NC OS 1.06 which are to be executed at NC boot time

\item{$\bullet$}apps/shared/boot for applications generic across
NC OS versions which are to be recognised at NC OS boot time

\item{$\bullet$}apps/shared/run for applications generic across
NC OS versions which are to be executed at NC OS boot time

\vskip 2pt\parindent=72pt\rightskip=18pt plus1fil
\item{$\bullet$}If the application needs to be able to act upon
user-loaded data files...

\vskip 4pt\parindent=90pt\rightskip=36pt plus1fil
\item{$\bullet$}If no suitable \_\_ file is supplied, run the
application on a Risc PC or other suitable Acorn computer and
save an empty application-generated document as \_\_

\item{$\bullet$}Create directories {\tt\char126}{\tt<}{\it user\/}{\tt
>}/nchome/Files/{\tt<}{\it appname\/}{\tt>} and copy \_\_,{\tt
<}{\it filetype\/}{\tt>} into them

\vskip 2pt\parindent=72pt\rightskip=18pt plus1fil
\item{$\bullet$}Add a link to an appropriate HTML page accessible
to all users to start the application (see later).

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
25.4pt\fontsetac\parindent=54pt\leftskip=18pt\rightskip=0pt
plus1fil\spaceskip=0.3333em\xspaceskip=0.5em
\item{}{\bf4.2.2 Adding Private NC Applications}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=54pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax Adding private applications involves jumping through
most of the hoops required in adding public applications...

\vskip 4pt\parindent=72pt\leftskip=12pt\rightskip=18pt plus1fil
\item{$\bullet$}Determine whether the application is specific
to a particular version of NC OS which is in use at your site,
or whether it may be used on any version of NC OS.

\item{$\bullet$}Determine whether the application is to be recognised
at NC boot time (ie whether only the !Boot,feb file is to be
executed, which normally only sets an environment variable of
its own choosing to point to that application directory and
allows data files to be recognised) or executed at NC boot time
(which fully starts up the application).

\item{$\bullet$}Ensure that !Boot,feb and !Run,feb files exist
within the top-level application directory; if no !Boot,feb
file is visible you will need to create an empty one, whereas
if no !Run,feb file exists this will tell you that the !Boot,feb
file will cause the application to be executed rather than merely
recognised. If this is the case, read the text below and then
Do The Sensible Thing...

\item{$\bullet$}If the application is to be run on a per-NC
rather than per-user basis:

\vskip 4pt\parindent=90pt\rightskip=36pt plus1fil
\item{$\bullet$}Recursively change the ownership of the application
to the 32767:9999 UserID:GID tuple ({\bf chown -R 32767:9999
{\tt\char92}!{\tt<}}{\bi appname}{\bf{\tt>}} )

\item{$\bullet$}Recursively disable public and group read, write
and execute on the application, and disable owner write and
execute ({\bf chmod -R 400 {\tt\char92}!}{\bi{\tt<}appname}{\bf
{\tt>}} )

\item{$\bullet$}If they do not already exist, create directories
with names matching the resolved names of the NCs which are
to be able to run the application within the ncconfig/106/pernc
directory, and create blank run files within them

\item{$\bullet$}Add the line {\tt"}saferun\_register {\tt<}obey\$dir{\tt
>}{\tt"} \ to the run file, if it not already contained therein

\item{$\bullet$}Set the ownership of these directories and run
files to 32767:9999

\item{$\bullet$}Copy the application into the directory for
each NC on which the application is to be runnable

\item{$\bullet$}If the application is to be recognised at NC
boot time rather than executed, add the line {\tt"}run private:!{\tt
<}{\it appname\/}{\tt>}.!Boot{\tt"} to the run file inside the
directory matching the resolved name of the NC

\item{$\bullet$}If the application is to be executed at NC boot
time, add the line {\tt"}run private:!{\it{\tt<}appname\/}{\tt
>}.!Run{\tt"} to the run file inside the directory matching
the resolved name of the NC

\vskip 2pt\parindent=72pt\rightskip=18pt plus1fil
\item{$\bullet$}If the application is to be run on a per-authenticated-user
basis:

\vskip 4pt\parindent=90pt\rightskip=36pt plus1fil
\item{$\bullet$}Copy the application into the nchome directory
of each user who is to be permitted to use the software

\item{$\bullet$}Recursively change the ownership of the application
to the \ user{\tt\char13}s UserID:GID tuple

\item{$\bullet$}Recursively disable public and group read, write
and execute on the application ({\bf chmod -R 700 {\tt\char
92}!{\tt<}}{\bi appname}{\bf{\tt>}} )

\item{$\bullet$}If it is not already there, add the line {\tt
"}saferun\_register nfs::ncdhome.\${\tt"} to the !run,feb file
inside the user{\tt\char13}s home directory

\vskip 4pt\parindent=108pt\rightskip=54pt plus1fil
\item{$\bullet$}If the application is to be recognised at NC
boot time rather than executed, add the line {\tt"}run nfs::ncdhome.\$.!{\tt
<}{\it appname\/}{\tt>}.!Boot{\tt"} to the !run,feb file inside
the user{\tt\char13}s home directory

\item{$\bullet$}If the application is to be executed at NC boot
time, add the line {\tt"}run nfs::ncdhome.\$.!{\tt<}{\it appname\/}{\tt
>}.!Run{\tt"} to the !run,feb file inside the user{\tt\char
13}s home directory

\vskip 2pt\parindent=90pt\rightskip=36pt plus1fil
\item{$\bullet$}If the application needs to be able to act upon
user-loaded data files...

\vskip 4pt\parindent=108pt\rightskip=54pt plus1fil
\item{$\bullet$}If no suitable \_\_ file is supplied, run the
application on a Risc PC or other suitable Acorn computer and
save an empty application-generated document as \_\_

\item{$\bullet$}Create directories {\tt\char126}{\tt<}{\it user\/}{\tt
>}/nchome/Files/{\tt<}{\it appname\/}{\tt>} and copy \_\_,{\tt
<}{\it filetype\/}{\tt>} into them

\vskip 2pt\parindent=90pt\rightskip=36pt plus1fil
\item{$\bullet$}Add a link to an appropriate HTML page accessible
to all users to start the application (see later).

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
25.4pt\fontsetac\parindent=36pt\leftskip=18pt\rightskip=0pt
plus1fil\spaceskip=0.3333em\xspaceskip=0.5em
\item{}{\bf4.3 Launching NC Applications From HTML}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax Launching applications from HTML is done in two ways;
those applications which need to be able to act upon user-supplied
data files must have access to a selector containing the user{\tt
\char13}s files such that a file may be chosen or created to
be acted upon. This is done by invoking a call to the NCFiler
module within the HTML anchor; eg:

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt<}h3{\tt>}{\tt<}img align=absbottom src={\tt"}file:/Images:icons/orangeball.gif{\tt
"} width=14

height=14{\tt>}{\tt<}a href={\tt"}NCFiler\_Filer:?context=FirstPage\&directory=NFS::NCDHome.\$.Files.Publisher{\tt
"}{\tt>}

Impression Publisher {\tt<}/a{\tt>}{\tt<}/h3{\tt>}

\fontsetab\vskip 16pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax The NCFiler\_Filer:?context=FirstPage\&directory=NFS::NCDHome.\$.Files.Publisher
rune invokes the NCFiler module such that it displays a directory
listing of the NFS::NCDHome.\$.Files.Publisher directory (which
is the NC OS equivalent of the {\tt\char126}{\tt<}{\it user\/}{\tt
>}/nchome/Files/Publisher directory under Unix) as the next
rendered page when the link is followed. When a file on this
page is clicked on, its filetype, if recognised by the NC (ie
if belonging to the ROM-based wordprocessor or an application
which has been recognised or executed), will cause it to be
loaded into the appropriate application. If necessary, the NC
will load the appropriate recognised application first.

\vskip 15.4pt
\relax For those applications which do not need to act upon
any user-supplied files, launching is achieved by making a call
to the saferun module; eg:

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt<}h3{\tt>}{\tt<}img align=absbottom src={\tt"}file:/Images:icons/orangeball.gif{\tt
"} width=14

height=14{\tt>}{\tt<}a href={\tt"}saferun:106appboot:!ANTTerm.!Run{\tt
"}{\tt>}VT220 Terminal

Emulator{\tt<}/a{\tt>}{\tt<}/h3{\tt>}

\fontsetab\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax Here the saferun:106appboot:!ANTTerm.!Run rune invokes
the saferun module, which first checks to see whether executable
code is authorised to be run from the directory referred to
by the 106appboot: path environment variable (this is why it
is necessary to call saferun\_register when adding applications
to user home directories or NC custom configuration directories);
if it is, the !ANTTerm.!Run (!ANTTerm/!Run,feb when seen from
Unix) file is executed to start the terminal emulator.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\fontsetac\parindent=0pt\leftskip=18pt plus1fil\parfillskip
=0pt\rightskip=0pt plus1fil\spaceskip=0.3333em\xspaceskip=0.5em
\item{}\par\nobreak

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\parindent
=18pt\leftskip=18pt\parfillskip=0pt plus1fil
\item{}{\bf5.0 Setting Configuration Options in NC NVRAM}\par
\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax A number of configuration options can be permanently
stored in the 1K of NVRAM inside each NC, in the manner of an
EEPROM. This includes sufficient information to enable an NC
to boot from a server on its local network without recourse
to bootp (ie the NC enters directly into the NFS phase), and
also useful local information about screen resolutions and colour
depths (although this can be circumvented; this is to be documented
in a later issue of these docs) and territory / localisation.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
15.4pt\fontsetac\parindent=36pt\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf5.1 Static addressing}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax To configure an NC for static IP addressing, power it
up with both ALT keys on its keyboard held down. The simple
query-response system allows the NC to have the details of its
own IP address, the IP addresses of its boot server, DNS and
gateway / router, its netmask and the exported mount point of
its boot hierarchy on the boot server configured. It should
be noted that, as routing is not explicitly set up, the boot
server MUST be on the NC{\tt\char13}s side of the local gateway,
and in order to obtain the NC{\tt\char13}s resolved name (which
is needed prior to routing being set up) the local DNS must
be on the NC{\tt\char13}s side of the gateway also.

\vskip 15.4pt
\relax If static addressing is configured, the NC{\tt\char13}s
concept of its DNS-resolved name defaults to {\tt"}ARM\_NoName{\tt
"}.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
21.4pt\fontsetac\parindent=36pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf5.2 The Administration Application}\par\nobreak

\fontsetab\vskip 15.4pt\parindent=0pt\leftskip=36pt\spaceskip
=0.3333em\xspaceskip=0.5em
\relax This application is supplied in the ROM of every NC OS
1.06 system, and is launched from an HTML page with the rune

\fontsetaf\vskip 15.4pt\spaceskip=0.3333em\xspaceskip=0.5em
{\tt<}h3{\tt>}{\tt<}a href={\tt"}NCConfig\_Configure:?context=FirstPage{\tt
"}{\tt>} {\tt<}img align=absmiddle

border=0 src={\tt"}icontype:nc\_?vers{\tt"}{\tt>} Administration
{\tt<}/a{\tt>}{\tt<}/h3{\tt>}

\fontsetab\vskip 16pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax This rune is supplied as part of the home page for the
eguser hierarchy in the baseline distribution accompanying this
document; once an appropriate territory and monitor has been
configured for a given NC, it does not need to be run again
and its launching rune can be removed fom user home pages.

\vskip 15.4pt
\relax It should be noted that attempting to configure the printer
using this application will reset the printing method to using
the NC{\tt\char13}s parallel port until the next time the NC
is rebooted.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
38.8pt\fontsetac\parindent=18pt\leftskip=18pt\spaceskip=0.3333em
\xspaceskip=0.5em
\item{}{\bf Bibliography}\par\nobreak

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
6pt\item{}\par\nobreak

\fontsetab\parindent=0pt\spaceskip=0.3333em\xspaceskip=0.5em
\relax Introductory:

Washburn \& Evans, ``TCP/IP, Running a Successful Network'',
Addison-Wesley

Hegering \& L\"apple, ``Ethernet - Building a Communications
Infrastructure'', Addison-Wesley

\vskip 15.4pt
\relax Intermediate/Advanced:

Stevens, W.Richard, ``TCP/IP Illustrated Volume 3'', Addison-Wesley

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=0pt\leftskip=18pt\parfillskip=0pt
plus1fil\rightskip=0pt plus1fil\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf Appendix A: Dictionary of NC Environment Variables}\par
\nobreak

\fontsetaf\vskip 15.4pt\leftskip=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
106appboot\$dir 

\fontsetab\spaceskip=0.3333em\xspaceskip=0.5em
\relax Set to {\tt"}NFS::NFSBoot.\$.!NFSBoot.{\tt\char94}.apps.106.boot{\tt
"}. This is the directory in which NC OS 1.06 applications which
are to be recognised (ie have their !Boot files executed at
NC boot time), are kept.

\strut\hfil\break106appboot\$path 

Set to {\tt"}NFS::NFSBoot.\$.!NFSBoot.{\tt\char94}.apps.106.boot.{\tt
"}. Note the extra full-stop at the end means that this variable
can be more easily substituted in pathnames; thus an application
residing in the directory in which NC OS 1.06 applications which
are to be recognised at NC boot time can be executed by calling
a href={\tt"}saferun:106appboot:!{\tt<}{\it appname\/}{\tt>}.!Run{\tt
"}

\strut\hfil\break106runapps\$dir \ 

Set to {\tt"}NFS::NFSBoot.\$.!NFSBoot.{\tt\char94}.apps.106.run{\tt
"}. This is the directory in which NC OS 1.06 applications which
are to be executed (ie have their !Run files executed at NC
boot time), are kept.

\strut\hfil\break106runapps\$path 

Set to {\tt"}NFS::NFSBoot.\$.!NFSBoot.{\tt\char94}.apps.106.run.{\tt
"}. Note the extra full-stop at the end means that this variable
can be more easily substituted in pathnames (see 106appboot\$path
above).

\strut\hfil\break Alias\$. : Cat 

*cat \ is NC OS{\tt\char13} Supervisor (non-windowmanager) environment
command for producing a catalogue of files in the currently
selected directory. The above command merely aliases it to 

{\tt"} \ *. \ \ \ \ {\tt"}

\strut\hfil\break\ : LoadFontCache 

\strut\hfil\break Alias\$@LoadType\_FF7 : Print \%0 

\strut\hfil\break Alias\$@LoadType\_FF9 : SLoad \%0 

\strut\hfil\break Alias\$@LoadType\_FFA : RMLoad \%*0

\strut\hfil\break Alias\$@LoadType\_FFB : Basic -load {\tt|}{\tt
"}\%0{\tt|}{\tt"} \%*1

\strut\hfil\break Alias\$@PrintType\_AE6 : Run Resources:\$.Apps.!NCWriter.!Run
-p 

\strut\hfil\break Alias\$@PrintType\_CFF : Error You cannot
print a dictionary file{\tt|}M{\tt|}{\tt|}

\strut\hfil\break Alias\$@PrintType\_D00 : Error You cannot
print a stationery pad{\tt|}M{\tt|}{\tt|}

\strut\hfil\break Alias\$@PrintType\_D01 : Run Resources:\$.Apps.!NCWriter.!Run
-p 

\strut\hfil\break Alias\$@RunType\_AE6 : Run Resources:\$.Apps.!NCWriter.!Run
\%*0

\strut\hfil\break Alias\$@RunType\_BD6(Macro) : /{\tt<}SoundPlay\$Dir{\tt
>} \%*0

\strut\hfil\break Alias\$@RunType\_D00 : Run Resources:\$.Apps.!NCWriter.!Run
\%*0

\strut\hfil\break Alias\$@RunType\_D01 : Run Resources:\$.Apps.!NCWriter.!Run
\%*0

\strut\hfil\break Alias\$@RunType\_D3C(Macro) : /{\tt<}SoundPlay\$Dir{\tt
>} \%*0

\strut\hfil\break Alias\$@RunType\_f94 : registry\_scload \%*0

\strut\hfil\break Alias\$@RunType\_F96(Macro) : /{\tt<}SoundPlay\$Dir{\tt
>} \%*0

\strut\hfil\break Alias\$@RunType\_FB1(Macro) : /{\tt<}SoundPlay\$Dir{\tt
>} \%*0

\strut\hfil\break Alias\$@RunType\_FC2(Macro) : /{\tt<}SoundPlay\$Dir{\tt
>} \%*0

\strut\hfil\break Alias\$@RunType\_FCF : LoadFontCache 

\strut\hfil\break Alias\$@RunType\_FEA : Desktop -file \%*0

\strut\hfil\break Alias\$@RunType\_FEB : Obey \%0 

\strut\hfil\break Alias\$@RunType\_FED : WimpPalette \%0 

\strut\hfil\break Alias\$@RunType\_FF7 : Print \%0 

\strut\hfil\break Alias\$@RunType\_FF9 : ScreenLoad \%0 

\strut\hfil\break Alias\$@RunType\_FFA : RMRun \%*0

\strut\hfil\break Alias\$@RunType\_FFB : Basic -quit {\tt|}{\tt
"}\%0{\tt|}{\tt"} \%*1

\strut\hfil\break Alias\$@RunType\_FFE : Exec \%0 

\strut\hfil\break Alias\$@RunType\_FFF : Type \%0 

\strut\hfil\break Alias\$Debug : If Debug Then Echo --{\tt>}

\strut\hfil\break Alias\$Filer\_Boot : IfThere \%0.!Boot Then
Run \%0.!Boot

\strut\hfil\break Alias\$NCFrescoRun : Desktop\_NCFresco 2{\tt
>} null: -t \ wwwroot:logon

\strut\hfil\break Alias\$Netinfo : If Netinfo Then Echo :

\strut\hfil\break Alias\$SoundPlayStop(Macro) : /{\tt<}SoundPlay\$Dir{\tt
>} -stop

\strut\hfil\break Alias\$URLOpenCLI\_NCConfig\_Configure : NCConfig\_Configure
\%*0

\strut\hfil\break Alias\$URLOpenCLI\_NCFiler\_Filer : NCFiler\_Filer
\%*0

\strut\hfil\break Alias\$URLOpenCLI\_SafeRun : SafeRun\_StartTask
\%*0

\strut\hfil\break Alias\$URLOpen\_exec : System:Utils.exec \%*0

\strut\hfil\break Alias\$URLOpen\_FILE : /NCFresco:!Run -URL
\%*0

\strut\hfil\break Alias\$URLOpen\_FTP : /NCFresco:!Run -URL
\%*0

\strut\hfil\break Alias\$URLOpen\_GOPHER : /NCFresco:!Run -URL
\%*0

\strut\hfil\break Alias\$URLOpen\_HTTP : /NCFresco:!Run -URL
\%*0

\strut\hfil\break Alias\$URLOpen\_logon : bin:logonpw \%*0

\strut\hfil\break Alias\$URLOpen\_SoundPlayStop : SoundPlayStop

\strut\hfil\break base\$version : 0.11

\strut\hfil\break bin\$dir : NFS::NFSBoot.\$.!NFSBoot.106.bin

\strut\hfil\break bin\$path : NFS::NFSBoot.\$.!NFSBoot.106.bin.

\strut\hfil\break Boot\$Dir : NFS::NFSBoot.\$.!NFSBoot.106

\strut\hfil\break Boot\$Path : NFS::NFSBoot.\$.!NFSBoot.106.

\vskip 15.4pt
\relax CLI\$Protect

\vskip 15.4pt
\relax Debug(Number) : 0

\strut\hfil\break Desktop\$File : boot:deskboot

\strut\hfil\break DeviceFS\$FastParallel\$Options : 

\strut\hfil\break DeviceFS\$Parallel\$Options : 

\strut\hfil\break DeviceFS\$serial1\$Options : 

\strut\hfil\break DeviceFS\$serial2\$Options : 

\strut\hfil\break FastParallel\$Path(Macro) : devices\#{\tt
<}FileSwitch\$SpecialField{\tt>}:\$.FastParallel.

\strut\hfil\break File\$Path : 

\strut\hfil\break File\$Type\_695 : GIF

\strut\hfil\break File\$Type\_AE6 : MSWord

\strut\hfil\break File\$Type\_AFF : DrawFile

\strut\hfil\break File\$Type\_B28 : URL

\strut\hfil\break File\$Type\_B60 : PNG

\strut\hfil\break File\$Type\_B61 : XBitMap

\strut\hfil\break File\$Type\_B62 : Gopher

\strut\hfil\break File\$Type\_BBC : BBC ROM

\strut\hfil\break File\$Type\_BD6 : AudioWrk

\strut\hfil\break File\$Type\_C85 : JPEG

\strut\hfil\break File\$Type\_CFF : EasiDict

\strut\hfil\break File\$Type\_D00 : EasiPad

\strut\hfil\break File\$Type\_D01 : EasiDoc

\strut\hfil\break File\$Type\_D3C : ArmSamp

\strut\hfil\break File\$Type\_F96 : GenSound

\strut\hfil\break File\$Type\_FAE : Resource

\strut\hfil\break File\$Type\_FAF : HTML

\strut\hfil\break File\$Type\_FB1 : WaveForm

\strut\hfil\break File\$Type\_FC2 : AIFF

\strut\hfil\break File\$Type\_FCC : Device

\strut\hfil\break File\$Type\_FCF : Cache

\strut\hfil\break File\$Type\_FEA : Desktop

\strut\hfil\break File\$Type\_FEB : Obey

\strut\hfil\break File\$Type\_FEC : Template

\strut\hfil\break File\$Type\_FED : Palette

\strut\hfil\break File\$Type\_FF2 : Config

\strut\hfil\break File\$Type\_FF4 : Printout

\strut\hfil\break File\$Type\_FF5 : PoScript

\strut\hfil\break File\$Type\_FF6 : Font

\strut\hfil\break File\$Type\_FF7 : BBC font

\strut\hfil\break File\$Type\_FF8 : Absolute

\strut\hfil\break File\$Type\_FF9 : Sprite

\strut\hfil\break File\$Type\_FFA : Module

\strut\hfil\break File\$Type\_FFB : BASIC

\strut\hfil\break File\$Type\_FFC : Utility

\strut\hfil\break File\$Type\_FFD : Data

\strut\hfil\break File\$Type\_FFE : Command

\strut\hfil\break File\$Type\_FFF : Text

\strut\hfil\break FileSwitch\$CurrentFilingSystem : NFS

\strut\hfil\break FileSwitch\$NFS\$CSD : :ncdhome.\$

\strut\hfil\break FileSwitch\$SpecialField : 

\strut\hfil\break FileSwitch\$TemporaryFilingSystem : NFS

\strut\hfil\break Font\$Path(Macro) : root:apps.shared.boot.!fonts.,{\tt
<}Font\$Prefix{\tt>}.,Resources:\$.Fonts.

\strut\hfil\break Font\$Prefix : \ 

\strut\hfil\break HTTP\$SSLVersion : 2

\strut\hfil\break\ Images\$Path : Root:images.

\strut\hfil\break Inet\$BootFile : /ref/home/nc/distrib/beta/base/boot/

\strut\hfil\break Inet\$BootServer : 136.170.129.211

\strut\hfil\break Inet\$EnCount(Number) : 1

\strut\hfil\break Inet\$Error : 

\strut\hfil\break Inet\$EtherIPMask : 255.255.248.0

\strut\hfil\break Inet\$EtherType : en0

\strut\hfil\break Inet\$Gateway : 136.170.129.77

\strut\hfil\break Inet\$HostName : dwalker1

\strut\hfil\break Inet\$LocalAddr : 1781aa88

\strut\hfil\break inet\$localdomain : acorn.co.uk

\strut\hfil\break Inet\$MimeMappings(Macro) : {\tt<}NCFresco\$Dir{\tt
>}.MimeMap

\strut\hfil\break Inet\$MountPath : /ref/home/nc/distrib/licensed/base/boot/

\strut\hfil\break Inet\$Resolvers : 136.170.131.2

\strut\hfil\break inet\$timeserver : 136.170.135.27

\strut\hfil\break inetdbase\$path : root:etc.

\strut\hfil\break\ login\$status : login

\strut\hfil\break\ ncconfig\$dir : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.ncconfig.106

\strut\hfil\break ncconfig\$path : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.ncconfig.106.

\strut\hfil\break NCFresco\$Config : User:Choices.NCFresco.Config

\strut\hfil\break NCFresco\$Cookies : User:Choices.NCFresco.Cookies

\strut\hfil\break NCFresco\$Dir : Resources:\$.Resources.NCFresco

\strut\hfil\break NCFresco\$Errors : 2{\tt>} null:

\strut\hfil\break NCFresco\$Help : NCHelp:NCFresco.index/html

\strut\hfil\break ncfresco\$home : user:Home/html

\strut\hfil\break NCFresco\$Hotlist : User:Choices.NCFresco.Hotlist

\strut\hfil\break NCFresco\$Path : @.,Resources:\$.Resources.NCFresco.

\strut\hfil\break NCFresco\$Plugins : User:Choices.NCFresco.Plugins

\strut\hfil\break NCFresco\$ScrapTemp(Number) : -1

\strut\hfil\break NCFresco\$TBOptions : -t

\strut\hfil\break NCFresco\$Temp : 99

\strut\hfil\break NCFresco\$Users : User:Choices.NCFresco.Users

\strut\hfil\break NCFresco\$UseTB(Number) : 1

\strut\hfil\break ncfresco\$welcome : wwwroot:logon

\strut\hfil\break NCHelp\$Path : Resources:\$.!Boot.HTML.Help.

\strut\hfil\break NCWriter\$SavePath : User:Files.Word.

\strut\hfil\break Netinfo(Number) : 0

$ $\hfil\break\ Obey\$Dir : NFS::NFSBoot.\$.!NFSBoot.106.bin

\strut\hfil\break OS\$Version : 106

\strut\hfil\break\ Parallel\$Path(Macro) : devices\#{\tt<}FileSwitch\$SpecialField{\tt
>}:\$.Parallel.

\strut\hfil\break PDumperLJ\$Extra : {\tt|}{\tt|}[\&l1H{\tt
|}{\tt|}[\&l26A

\strut\hfil\break Printer\$ : postscript

\strut\hfil\break Printer\$Path : NFS\#Printer::valhalla.lime.nobody

\strut\hfil\break Printers\$Dir : Resources:\$.Resources.STBPrint

\strut\hfil\break Printers\$Path : ncconfig:Printers.,Resources:\$.Resources.STBPrint.,Resources:\$.Resources.NCConfig.Printers.

\strut\hfil\break PrinterType\$0 : null:

\strut\hfil\break PrinterType\$1 : NFS\#Printer::valhalla.lime.nobody

\strut\hfil\break printertype\$4 : NFS\#Printer::valhalla.lime.nobody

\strut\hfil\break\ ReplaySupport\$SoundDir : Resources:\$.Resources.Sound16

\strut\hfil\break RISC\_OSLibrary\$Path : Resources:\$.Resources.RISC\_OSLib.

\strut\hfil\break root\$dir : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}

\strut\hfil\break root\$path : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.

\strut\hfil\break Run\$Path : ,\%.

\strut\hfil\break serial1\$Path(Macro) : devices\#{\tt<}FileSwitch\$SpecialField{\tt
>}:\$.serial1.

\strut\hfil\break serial2\$Path(Macro) : devices\#{\tt<}FileSwitch\$SpecialField{\tt
>}:\$.serial2.

\strut\hfil\break Server\$Name : jadis

\strut\hfil\break sharedappboot\$dir : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.apps.shared.boot

\strut\hfil\break sharedappboot\$path : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.apps.shared.boot.

\strut\hfil\break sharedapprun\$dir : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.apps.shared.run

\strut\hfil\break sharedapprun\$path : NFS::NFSBoot.\$.!NFSBoot.{\tt
\char94}.apps.shared.run.

\strut\hfil\break SharedCLibrary\$Path : Resources:\$.Resources.CLib.

\strut\hfil\break SoundPlay\$Dir : Resources:\$.Apps.!soundplay

\strut\hfil\break Sys\$Date : Thu,26 Feb

\strut\hfil\break Sys\$DateFormat : \%24:\%mi:\%se \%dy-\%m3-\%ce\%yr

\strut\hfil\break Sys\$RCLimit : 256

\strut\hfil\break Sys\$ReturnCode : 0

\strut\hfil\break Sys\$Time : 13:42:42

\strut\hfil\break Sys\$Year : 1998

\strut\hfil\break System\$Dir : NFS::NFSBoot.\$.!NFSBoot.106.System

\strut\hfil\break System\$Path : NFS::NFSBoot.\$.!NFSBoot.106.System.

\vskip 15.4pt
\relax Territories\$Path : Resources:\$.Resources.NCConfig.Territory.

\strut\hfil\break TerritoryManager\$Path : Resources:\$.Resources.TerrMgr.

\strut\hfil\break Textease\$SavePath : User:Files.Textease.

\strut\hfil\break TV\$Type : VGA

\strut\hfil\break UK\$Path : Resources:\$.Resources.UK.

\strut\hfil\break USA\$Path : Resources:\$.Resources.USA.

\strut\hfil\break User\$Path : NFS::NCDHome.\$.

\vskip 15.4pt
\relax Wimp\$Font : {\tt\char92}FHomerton.Medium{\tt\char92}ELatin1

\strut\hfil\break Wimp\$FontSize : 224

\strut\hfil\break Wimp\$Scrap(Macro) : {\tt<}Wimp\$ScrapDir{\tt
>}.ScrapFile

\strut\hfil\break Wimp\$ScrapDir(Macro) : Cache:\$.ScrapDir

\strut\hfil\break Wimp\$State : commands

\strut\hfil\break WindowManager\$Path : Resources:\$.Resources.Wimp.

\strut\hfil\break Wipe\$Options : C {\tt\char126}F {\tt\char
126}R V

\strut\hfil\break WWW\$Path : Resources:\$.Apps.

\strut\hfil\break WWWRoot\$Path : ncconfig:login.passwd.

\vskip0pt plus\secskip\penalty-250\vskip0pt plus-\secskip\vskip
23.4pt\fontsetac\parindent=0pt\leftskip=18pt\parfillskip=0pt
plus1fil\rightskip=0pt plus1fil\spaceskip=0.3333em\xspaceskip
=0.5em
\item{}{\bf Appendix B: List of Common NC OS Filetypes}\par
\nobreak

\fontsetab\vskip 15.4pt\leftskip=0pt\spaceskip=0.3333em\xspaceskip
=0.5em
\relax Filles exported to NC OS have a representation when viewed
from Unix which includes NC OS filetype information. NC OS inherits
the RISC OS model of storing file type information; files are
not conventionally stored in a {\tt<}name{\tt>}.{\tt<}type{\tt
>} form, instead the filetype information is encoded as a separate
three hex-digit field in the disc map.

\vskip 15.4pt
\relax On discs mapped in ways other than the RISC OS sense,
filetypes are prefixed with a comma and appended to filenames;
hence the NC OS file !Run of type Obey \ becomes !Run,feb under
Unix. The exception to this rule is the text filetype; although
filename,fff is valid, the absence of a filetype and comma (ie
filename) will cause the file to be treated as plain ASCII also.

\vskip 15.4pt
\relax Filetype \ Description \ \ \ \ \ \ \ \ \ \ \ \ \ \ Hex
Filetype \ \ \ \ Owner \ \ \ Text alias \ \ \ \ \ \ \ \ \ \ 
\ Comments

\fontsetad\spaceskip=0.3333em\xspaceskip=0.5em
\relax Text \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType 
\ FFF, Acorn \ \ \ \ \ \ \ \ \ \ \ \ \ \ ; ASCII text file

Command \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FFE, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Command (Exec) file

Data \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FFD, Acorn

Utility \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FFC, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Transient program

BASIC \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FFB, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Tokenised BASIC program

Module \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FFA, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Relocatable module

Sprite \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF9, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Sprite or saved screen

Application \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF8, Acorn, {\tt
"}Absolute{\tt"} \ \ ; Absolute app. loaded at \&8000

BBCFont \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF7, Acorn
\ {\tt"}BBC Font{\tt"} \ \ ; BBC font file sequence of VDU

Font \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF6, Acorn,
\ \ \ \ \ \ \ \ \ \ \ \ \ ; Fancy font (4bpp bitmap only)

PostScript \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF5, Acorn,
{\tt"}PoScript{\tt"} \ \ ; A PostScript program

DMData \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF4, Acorn,
{\tt"}DM data{\tt"} \ \ \ ; Dot Matrix data file

LaserJet \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FF3, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; HP LaserJet data file

TaggedImageFileFormat \ \ FileType \ FF0, Acorn, {\tt"}TIFF{\tt
"} \ \ \ \ \ \ ;

Template \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FEC, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Used by Arthur 1.20

Obey \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FEB, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Sequence of OS\_CLIs

Desktop \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FEA, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; 

UNIXExecutable \ \ \ \ \ \ \ \ \ FileType \ FE6, Acorn, {\tt
"}UNIX Ex{\tt"}

MSDOS \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FE4, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; For DOSFS

Atari \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FE3, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; MultiFS

Amiga \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FE2, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; MultiFS

Make \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FE1, Acorn

VTScript \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FDF, Acorn

VTSetup \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FDE, Acorn

MasterUtl \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FDD, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Master utilities,

SoftLink \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FDC, Acorn

MSDOSbat \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FDA, Acorn

MSDOSexe \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD9, Acorn

MSDOScom \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD8, Acorn

TaskObey \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD7, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Obey file in a task window

TaskExec \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD6, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Exec file in a task window

Pict \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD5, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; MSDOS Pict

MIDI \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD4, Acorn
\ \ \ \ \ \ \ \ \ ; Int. MIDI assn. MIDIFiles standard

DebImage \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD3, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; DDE Debugable image

PCEmConf \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FD0, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; PC emulator configuration

Squash \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FCA, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; Single compressed file

SunRaster \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FC9, Acorn,
\ {\tt"}SunRastr{\tt"} \ ; A Sun (computer) Raster image

MSDOSDisc \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FC8, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ \ \ ; MS-DOS MultiFS disc images

AppleMacintoshType1 \ \ \ \ FileType \ FC7, Acorn, \ {\tt"}MacType1{\tt
"} \ ; Mac Format Type 1 font

PrinterDefinition \ \ \ \ \ \ FileType \ FC6, Acorn, \ {\tt
"}PrintDfn{\tt"} \ ; Printer defn file

PatchDefinition \ \ \ \ \ \ \ \ FileType \ FC3, Acorn, \ \ {\tt
"}Patch{\tt"} \ \ \ ; !Patch patch defn file

AudioInterchangeFileFormat FileType FC2, Acorn, {\tt"}AIFF{\tt
"}

PocketBookCards \ \ \ \ \ \ \ \ FileType \ FBE, Acorn, \ \ {\tt
"}PBCards{\tt"} \ \ \ \ \ \ 

PocketBookWrite \ \ \ \ \ \ \ \ FileType \ FBD, Acorn, \ \ {\tt
"}PBWrite{\tt"} \ \ \ \ \ \ 

PocketBookAbacus \ \ \ \ \ \ \ FileType \ FBC, Acorn, \ \ {\tt
"}PBAbacus{\tt"} \ \ \ \ \ 

PocketBookLotusWK1 \ \ \ \ \ FileType \ FBB, Acorn, \ \ {\tt
"}LotusWK1{\tt"} \ \ \ \ \ 

PSPrinterDescription \ \ \ FileType \ FBA, Acorn, \ \ {\tt"}PPD{\tt
"} \ \ \ \ \ \ \ \ \ \ 

Schedule \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FB8, Acorn,
\ \ {\tt"}Schedule{\tt"} \ \ \ \ \ 

Plotter \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FB7, Acorn,
\ \ {\tt"}Plotter{\tt"} \ \ \ \ \ \ 

Agenda \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FB6, Acorn,
\ \ {\tt"}Agenda{\tt"} \ \ \ \ \ \ \ 

AVI \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FB2,
Acorn, \ \ {\tt"}AVI{\tt"} \ \ \ \ \ \ \ \ \ \ 

WaveForm \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FB1, Acorn,
\ \ {\tt"}WaveForm{\tt"} \ \ \ \ \ 

Allocate \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FB0, Acorn,
\ \ {\tt"}Allocate{\tt"} \ \ \ \ \ 

HTML \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ FAF, Acorn,
\ \ {\tt"}HTML{\tt"} \ \ \ \ \ \ \ \ \ 

TabSeparatedVariables \ \ FileType \ F0D, Acorn, \ \ {\tt"}TSV{\tt
"} \ \ \ \ \ \ \ \ \ 

CommaSeparatedVariables FileType \ DFE, Acorn, \ \ {\tt"}CSV{\tt
"}

DataExchangeFormat \ \ \ \ \ FileType \ DEA, Acorn, \ \ {\tt
"}DXF{\tt"}

TeX \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ CE5,
Unknown \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
\ \ \ \ \ \ 

DVI \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ CE4,
Unknown \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ 
\ \ \ \ \ \ \ 

HPGLPlot \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ CAE, Acorn

JPEG \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ C85

RichText \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ C32

AdvanceWordProcessor \ \ \ FileType \ C28, Acorn, \ \ {\tt"}AWord{\tt
"}

AdvanceDataBase \ \ \ \ \ \ \ \ FileType \ C27, Acorn, \ \ {\tt
"}ADBase{\tt"} \ \ \ \ \ \ \ 

AdvanceSpreadSheet \ \ \ \ \ FileType \ C26, Acorn, \ \ {\tt
"}ASheet{\tt"} \ \ \ \ \ \ \ 

AdvanceGraph \ \ \ \ \ \ \ \ \ \ \ FileType \ C25, Acorn, \ 
\ {\tt"}AGraph{\tt"} \ \ \ \ \ \ \ 

MPEGMovie \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ BF8 \ \ \ 
\ \ \ \ \ \ \ {\tt"}MPEG{\tt"} \ \ \ \ \ \ \ \ \ 

FLIPlay \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ B9F \ \ 
\ \ \ \ \ \ \ \ {\tt"}FLI{\tt"} \ \ \ \ \ \ \ \ \ \ 

Draw \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ AFF, Acorn,
\ \ {\tt"}DrawFile{\tt"} \ \ \ \ \ 

Alarms \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ FileType \ AE9, Acorn
\ \ \ \ \ \ \ \ \ \ \ \ 

AcornReplayMovie \ \ \ \ \ \ \ FileType \ AE7, Acorn, \ \ {\tt
"}ARMovie{\tt"} \ \ \ \ \ \ 

PortableDocumentFormat \ FileType \ ADF, Acorn, \ \ {\tt"}PDF{\tt
"}

\bye
