.pl 66
.po 8
.ls 2	DOUBLE SPACED
.hy 14
.de hd	HEADER
.ev 1
.ul
'sp 2
.tl '1978 Thesis - M.Young''Page 6.%'
'sp 1
.tl ''Microprogram Translator / Emulator''
'sp 2
.ev
..
.de fo	FOOTER
'sp 3
..
.de pg	PARAGRAPH
.sp 2
.ti +5
..
.wh 0 hd
.wh -3 fo
.ul
The Translator and Preprocessor.
.pg
The translator reads input off a file or, if no file name is
specified, reads standard input. If a hex listing file is
specified, and no errors are detected, a listing of the
hexadecimal code for the emulator is produced.
The options control the listing produced on the terminal.
The '+a' option produces a full listing.
This contains a line
by line listing of the source file with messages about
any errors found and a binary listing of the code produced
by each line. The number of syntax errors found is then printed,
and a listing of label definition and use is printed. Finally,
the hex listing is printed on the terminal.
.br
The '-a' option prints only the translator header, error messages,
and the number of syntax errors detected.
.pg
Each section of the listing has its own flag, which can be set on or off
independently of the rest. Default is a listing of the source file.
The main improvements to the translator over the Fortran version
originally supplied have been to make the '$' on the end of
input lines optional unless a comment is to follow it, to allow
tabs as an alternative to blanks, and to make the label processing
much more useful.
.pg
The BNF definition has been changed to allow more than one label
on a line. As mentioned above, a listing of label use can be printed.
This listing gives the label name and the address in the source
listing at which it was used. This is useful for detecting
mis-spelt labels. The actual syntax of a label has also been changed.
Labels are now defined to be strings of alphanumeric characters, beginning
with an upper or lower case letter, and ending with a period ('.').
Labels can be any length, though only the first eight characters
are significant. Labels must not have the same name as
key words (see appendix H for a list of key words).
.pg
The preprocessor can be used on its own, or as a filter
for the input to the translator. If no text sequences are
in the file supplied to the preprocessor, it merely copies
its input file onto its output file.
