
% Roger Horne. 29 August 1990.
% 7 New Square
% Lincoln's Inn
% London WC2A 3QS
% Tel: 071 405 1266
% email rhorne@compulink.co.uk
%
% The following macros are extracted from my normal macro files
% Probably large numbers of them are not needed.
% The file is at present set at 10 point on a 11pt base
%
% NOTE that the manmac convention of | as meaning \ttverbatim,
% ie *all* characters printed in \tt, is used
%
\font\sansit=cmssi10
%\font\tenu=cmu10
%
% These are not the "official" versions of the logos
%
\def\at{{\sansit Arch\i\-\kern-.1em\TeX\/}\maybespace}
\def\am{{\it ArMa\kern-.1em TuReS\/}\maybespace}
\def\atmf{{\sansit Arc-}\MF\maybespace}
%
%
\hyphenation{adop-ted edu-c-a-t-ional scale-able}
%
\catcode`\@=11
%\def\quid{{\it\$}}
% The poundsign and size-changing macros
%
%
% Other macros that may (or may not) be used
%
\def\bo{\def\on{\unskip\/\ {\rm on }}\begingroup\sl\frenchspacing}
\def\ok{\unskip\/\endgroup\maybespace}
\def\maybespace{%
\futurelet\next\testforother}
\def\testforother{% \noexpand is required to avoid \ref being expanded
\if\noexpand\next[\let\next=\space % if [  add space
\else\if\noexpand\next(\let\next=\space % if (  add space
\else\ifcat\noexpand\next.\let\next=\empty % if . no space
%\else\ifcat\noexpand\next\noexpand\\next=\empty  % if \ no space
% Don't use. It could cause problems if \space followed \ok or \se
% It is not required for \ref
\else\let\next=\space
%\fi % relates to \ifcat\\
\fi\fi\fi\next}% Note that \ref still generates a space-then eats it
\def\ref{\unskip\footnote} % Remove space from \se if necessary
\def\uc-{\discretionary{\raise.25ex\hbox{-}}{}{\raise.25ex\hbox{-}}}
%

\catcode`\@=12 
%
% End of macros
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\centerline{\bf \TeX\ and the Archimedes}
\smallskip
\noindent The Acorn Archimedes is a 32-bit RISC Computer and as a result is
fairly fast. Like a number of other machines produced by comparatively small
manufacturers it suffered for a time from a lack of software, but things are
changing and there are now two complete versions of \TeX\ available for it.
The first of these is \at, produced by TooLs GmbH of Bonn. The second is \am
produced by Graham Toal of London.  While the former product is a commercial
program the latter is public domain and so at first sight it might seem that
there was no contest; no-one likes spending money unless it is absolutely
essential.

The choice is not, however, quite so simple since the two products vary in
many ways. The first difference is one that results from the Archimedes'
filing system, RISC~OS, which does not recognise file extensions and also
uses the full stop character as a directory separator. This is not normally a
limitation since the Archimedes uses the concept of file types to enable it
to load files into the appropriate program, if necessary first loading the
program itself; for example a {\tt dvi} file has the file type {\tt CE4} and
the Archimedes can be set up to recognise a file of this type as being one
that is loaded into a previewer. However it obviously gives rise to problems
in connection with \TeX.

\at solves the problem in the same way that Acorn does in relation to the
C language, that is to say that it automatically turns the file-name
round. In the case of C the file {\tt stdio.c} is actually stored as the
file {\tt stdio} in the directory {\tt c}, or as {\tt c.stdio}. Similarly \at
stores the file {\tt paper.tex} as {\tt tex.paper}, {\tt paper.dvi} as {\tt
dvi.paper} and so on. In other words all {\tt tex} files are stored in the
directory {\tt tex}, all {\tt dvi} files are stored in the directory {\tt
dvi} and so on. The conversion is automatic and invisible to normal macro
packages.

This system has one disadvantage in relation to \TeX\ and that is that many
macro packages produce large numbers of auxiliary files and \at will not
create a new directory if the appropriate one does not exist. This is no
problem if one tends to use a macro package which writes out three or four
auxiliary files using the same extension each time but problems can arise in
connection with packages such as John Lavagnino and Dominik Wujastyk's {\tt
EDMAC} macros for producing critical editions which can, if pressed, write
out an unlimited number of auxiliary files.

The alternative solution which is adopted by \am is to store each file in its
own directory so that {\tt paper.tex} and {\tt paper.dvi} are actually the
files {\tt tex} and {\tt dvi} in the directory {\tt paper}. This system gets
round the problem of auxiliary files (although RISC OS does impose a limit of
80 objects to a directory) but it has its own disadvantage in that
directories take up a certain amount of space. It is also more difficult to
``clean up'' since instead of simply deleting the contents of the {\tt dvi}
directory it is necessary to delete the {\tt dvi} file from each of a number
of separate directories. 

So far as \TeX\ itself is concerned, there is not a lot of difference between
the two programs at present. Each of them is a C version of \TeX\ and
they both run at roughly the same speed, that is to say, fast.  It is
interesting to note, however, that the way in which \TeX\ is run can make a
difference to its speed on the Archimedes. RISC OS permits a program such as
\TeX\ to be run in three different ways. The first is from the command line
prompt (which for \TeX ies is somewhat confusingly an asterix). The second is
as a single-tasking task from the Archimedes Desktop (the
Archimedes' WIMP system). The third is as a multi-tasking program from the
Desktop. 

To \TeX\ |tex.tex|, that is to say, \bo \TeX\ the Program\ok,  takes roughly
18 minutes when \TeX\ is called from the command line, about 24 minutes when
single tasking under the Desktop and about 27  minutes when it is
multi-tasking with one other small program -- a digital clock -- running at the
same time.  (These figures are for the \am version. Using \at from the
command line produces a similar result and its single tasking version is
likely to produce a comparable time; there is not as yet a multi-tasking
version of \at although that will no doubt arrive shortly.) A Company called
{\it Aleph1\/} produces a go faster board for the Archimedes based on Acorn's
ARM3 chip; although I have not tried it, Graham tells me that it speeds up
\TeX\ by a factor of two.

% MALCOLM --- I am not a mathematician. Is the last sentence correct?

% ie it takes half as long with an arm3.

There is one difference between the two versions of \TeX\ and that is that
while \at claims to have passed the {\tt TRIP} test, \am has not as yet taken
it (which is why it does not have \TeX\ in its name). However the output of
the two programs appears to me to be identical. 

There is likely to be a more significant difference between the two versions
of \TeX\ in the near future. \at is about to be released using Version~3 of
\TeX. Graham has said that he is no hurry to produce Version~3 for \am unless
he is pushed hard, claiming that he is not convinced of the merits of this
new Version.

\at can be used on the Archimedes 310 with only one megabyte of memory and
can, I understand, be run without a hard disc (although I have not tried to
do this). As a result some compromises have had to be made with \TeX's
parameters. For example, the main memory in Ini\TeX\ is only 20 kilobytes
and so it may not be possible to produce format files from large macro
packages. TooLs GmbH have, however, told me that they are happy to produce
larger versions of \TeX\ for their customers on request for a nominal
handling charge. \am is intended to run on a machine with more than one
megabyte of memory and so these compromises have not had to be made
(although I believe that it can be run on a smaller machine). Since the
source code is provided a user who has access to Acorn's C compiler can
modify \TeX's parameters in whatever way he wishes.


Both \at and \am come with a screen previewer. These are, however, very
\hbox{different}. The former is a `traditional' \TeX\ previewer, that is to say,
it uses a low-resolution version of the Computer Modern fonts to produce its
output. The resolution supplied with the program is 95\,dpi although the
previewer can use any resolution if this is required provided that the
appropriate fonts are available in the chosen resolution. (The choice of
95\,dpi was made because it permits the full width of an A4 page to be
displayed across the screen.) If a font cannot be found because, for
example, it is not available in the correct resolution, the previewer will
try to use  the same font at a different resolution; if it cannot find even
this it will politely refuse to continue.

Computer Modern fonts do seem to suffer when reproduced at low-resolution and
I sometimes find on the \at previewer that the spacing between words looks
wrong. I assume that this is caused by an unlucky combination of
approximations. Slanted and italic letters also suffer badly from the low
resolution although they remain perfectly readable.

The \am previewer uses fonts that are based on the Computer Modern fonts but
have been converted to Archimedes outline fonts. These are scaleable fonts and
use anti-aliasing in order to improve their appearance on the screen. The
result is astonishingly good, especially in the $640 \times 512$ multi-sync
modes. The initial size chosen produces a width approximately equal to a
sheet of A4 paper on the screen. However it is possible to magnify this by
anything from |\magstephalf| to |\magstep5|. (These magnifications are in
addition to any already used in the text). It is apparently intended that a
future release will also permit a reduction in size so as to show a full page
on a normal screen. (The \at previewer already does this.)

There are disadvantages. The previewer is substantially slower than the \at
version, although both are many times faster than anything I have seen on an
IBM machine. (Its speed increases after a period of use since it stores fonts
that it has already used in memory.) It can also use a considerable amount of
memory, especially when displaying magnified fonts. I have managed to run
out of memory on a four megabyte machine (although I did have to try quite
hard to do it). But even a comparatively small file can use a couple of
megabytes if it is displayed at |\magstep5|. 

Another disadvantage which the \at previewer does not suffer from is that at
present the \am previewer is restricted to the standard Computer Modern,
\AmSTeX\ and \LaTeX\ fonts; it is not possible to display any new fonts that
have been produced using \MF\ (although I understand that this may change in
a future release). 

If it cannot find a font the \am previewer will try to find the {\tt tfm}
file for the missing font and will then leave an appropriate space. If even
the {\tt tfm} file is missing it will crash; since the latter file would have
been required by \TeX\ itself this is unlikely to happen often. Since it uses
scaleable fonts it is not necessary for it to find a font at any particular
size. If, for example, |paper.tex| uses |cmr10 at 13pt| the previewer will
generate the font at that size itself.

A feature added to the \am previewer comparatively recently is the ability to
save a page as a {\tt !Draw} file or as a  {\tt Sprite} which can then be
read into the Archimedes' drawing and painting programs. This enables the
text to be manipulated in various ways. However it may be that the most
useful function of this is to permit the testing of |cmr| fonts at different
magnifications without creating them using \MF. The files can be printed
without the use of a |dvi| driver, although this is far from quick.


The final stage in the \TeX\ process is printing the file. Again there is a
difference between the two systems. The \at printer drivers are part of the
previewer; it is not necessary to run a separate program to print your file
after previewing it. Drivers are provided for most common matrix printers,
such as those produced by Epson, NEC, Prism, Oki and Microline,  and for the
HP LaserJet. \am on the other hand uses an adaption of the Beebe drivers and
at present is only available for the Apple Laser Writer and the HP LaserJet
(although it is claimed that to adapt the implementation for use with any
other printer supported by the Beebe programs would be very easy:   the 
LaserJet version was not even tested on a LaserJet before being despatched to
the first user of it).

% Preview  % Back/forward  % More options % Memory size etc

There are further differences between the two systems in the way that the
drivers work. While the \at version sends its output direct to the printer,
the \am version sends it to a file which is subsequently printed using an
Acorn multi-tasking utility. As usual, both systems have advantages and
disadvantages. With a short file it is nice to be able to print it
immediately without having to go through the two-stage operation involved
with \am. 

The method of printing used by the \at version however suffers from the
problem that it is apparently difficult to download CM fonts to a LaserJet
and it is accordingly necessary, at least on a machine with a small amount of
memory, to  process the file in several passes in order to print direct to
the printer; if not enough passes are used the program crashes and it is
necessary to start again. The appropriate setting of the parameters is,
however, soon discovered and can be stored in a file which is loaded every
time the program is run.  
Processing the file in this way does, 
however, take a long time and although 
the program is multi-tasking, 
it gets frustrating waiting for a long file to be printed. 
The \am driver will process the same file at a rate of
more than a page a second and 
then print it comparatively quickly as a background task. 

Neither \at nor \am is supplied with a great deal of documentation, although
not surprisingly the amount which comes with the former is substantially
more that which is supplied with the latter. It would be essential for the
user of either system to acquire \bo the \TeX book\ok.


% conclusions

If you have a one-megabyte Archimedes and want to run \TeX, or you have never
used \TeX\ before, or you are not quite sure how your Archimedes works, or
you need \TeX~3 soon, or you use non-standard fonts, splash out on the \at
version. You will not be disappointed; I have used it to produce all my
written work for the last nine months (although I have normally used Personal
\TeX's PTI~HP on an IBM Compatible to print it on a LaserJet since I do not
have my own printer).  

If, however, you want to be able to compile an unusual sized version of \TeX\
quickly (and know what you are doing), or you want the best previewer going,
or you are skinny broke, get hold of \am. Alternatively, if you have plenty
of disc space, do as I have done and have your cake and eat it; get them
both.

% Addresses

\at is available from:
{\obeylines
TooLs GmbH
Kessincher Str.~108
D\uc-5300 Bonn 1
Federal Republic of Germany

email: {\tt tex@tools.uucp}
\par}

\noindent
It costs \quid99 (`educational users' pay \quid69) plus \quid6
p.~\&~p.\ and VAT at the unusual rate of 14\%. \LaTeX\ and \BibTeX\ together
cost a further \quid39 (\quid29 for educational users). A set of fonts
for the screen previewer and one printer driver is included in the cost;
fonts for other drivers are available at a nominal price. Alternatively
generate your own using \atmf, which costs the same as \at (and is a very
nice implementation of the program). 

\am is available from:

{\obeylines
Graham Toal
76 Clare Court
Judd Street
London WC1H 9QW

email {\tt gtoal@ed.ac.uk}
\par}

\noindent
Graham does not charge for his current release of \am but you must send him
25 {\it formatted\/} discs together with the return postage and be prepared
to wait for him to have the time to copy them; he does this in his spare
time and each set takes several hours to do. The distribution may soon be
available from Aston. Since it is 15 megabytes this will
 be an expensive way of
acquiring it if you are commercial user of {\sc janet} and have
to pay for the connection. 
The distribution includes the source code for \TeX\ and the
Beebe drivers and a full set of 300\,dpi fonts. \LaTeX\ and \BiBTeX\ are also
included. Letters to Graham take some time to be answered; email produces a
quicker result.
\author{Roger Horne}
\endinput

