The major difference between the version by Edmund Mergl and my own is
that now is a complete stand-alone package, relying totally
on self-contained source files and utilities. (See section
.)
From the beginning I did all my programming on the Amiga with the development system. The latest version 6.3 of this fine compiler
is fully
compatible, so it detected a list of omissions in style
and speech when recompiling the source code. A major cleanup of the extra
files for
, i.e., the introduction of prototypes and the correction
of casting problems, was necessary.
As soon as version 2.7 was running, it was compared with the famous Amiga
port by Stefan Becker from Fish Library Disk 486 and proved to be much
slower, so some improvements seemed to be necessary to compete with this
system as well. The tightest sections of the ``inner loop'' of were recoded in assembly lanugage for 68020 Motorola processors. This
resulted in an overall speedup of about twenty to thirty percent compared
to the non-optimized version and of about five to eight percent compared
with the optimized version by Stefan Becker.
Running the test proved the correctness of the implementation,
so the major part was done very fast. The test routine by Donald Knuth was
very convenient to find the last nasty bug in my own part (had something to
do with a variable `
be_careful
'). But visual tests both with my own
and with Stefan Becker's port showed problems with the online
display. Neither the implementation by Stefan Becker nor by Edmund Mergl
worked in accordance with the `
book' [4]. Especially
the test routine 6test.mf provided for the Computer Modern font
family caused some rethinking. (An example of this test can be found on
page 192 of [4].) Finally a revised version of amiga.c
was up and running, using some advanced functions for drawing on screen.
The online display requires version 2 of the Amiga operating system.
Adapting some ideas by David Crooke implemented in his Amiga port of
TEX 3.141, I introduced a revised path search algorithm and the
possibility to use runtime-definable memory sizes with . (See
section
for details about the memory configuration.) You
don't have to be afraid of the fatal error message METAFONT capacity
exceeded, sorry...you can ask a wizard to enlarge me! Now you can apply
some wizardry yourself! (See section
.)
In September 1993 the first step to version 2.71 was done with the errata sheets provided by Addison-Wesley Publishing Company. All changes concerning the new version were implemented in the change file.
Finally in October 1993 I got hold of the official version 2.71, which
replaced the old system completely. It included a new plain.mf base
program and a whole new test. The last change made to this
implementation was the introduction of a really
version of
(and of TEX 3.1415 by the way) by increasing max_quarterword to 32,767 (32 Kilo quarterwords) and max_halfword
to 1,073,741,823 (1 Giga memwords), so now noone will ever exceed the maximum
setting for the main memory (you would have to have 8 Giga bytes of free
memory!). Everyone seems to think that `262,142' is the maximum value
for memmax, although this value holds for 36 bit words only. This
implementation works on the basis of ``64 bit words,'' i.e., a
halfword is defined as long int, so the very much higher value
may be used.