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
compliant, 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 language 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
to the optimized version by Stefan Becker.
Running the test proved the correctness of the implementation,
and this 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, thus requiring 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.)
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.714, 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 nobody will ever exceed the maximum
setting for the main memory (you would have to have 8 Giga bytes of free
memory!). Everybody 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.