The PLASYD compiler produces a full listing of the program's source text during the compilation unless the user inhibits it by inserting the NOLIST or SHORTLIST directive at the head of the program or segment being compiled. Each source line appears on the left hand side cf the output listing. To the right of the source line can appear:
Only the first 72 characters of each PLASYD source line will be recognised and printed by the compiler. Care should be taken to ensure that no source text appears in higher character positions as it will be ignored and will appear not to exist from the listing.
If the directive:
SWITCH(0)
has been added at the head of the segment being compiled, then each line of text will be followed by the machine code instructions generated. The possible fields printed are:
P T F X M N S O 66 PR 117 0 3 1 LP 04770001
where:
P = position in decimal of this instruction relative to start of segment T = type of instruction generated. PR indicates an instruction in the program while LT defines a literal to be stored F = function code of instruction X = integer accumulator M = modifier N = address field S = type of address in the instruction. The type PR indicates a program address relative to start of segment, LT indicates a literal and LP a lower preset address O = octal form of instruction generated.
Normally the instructions will be printed in ascending numerical order of PR. However, in the more complex statements, such as IF and FOR, it is possible for the skeleton instruction to be generated without the address and later reprinted when the address came available.
At the right hand side of each program line will be indicated any errors that have occurred in the line. If more than one error has occurred, these will be printed one after the other on separate lines. For example:
INTEGER P(4000), Q(4000); COMMENT 11
The types of diagnostics printed are:
In the SHORTLIST form of listing, only those lines having errors will be printed together with the error messages.
At the end of the listing, the message:
ERRORS IN COMPILATION
will be printed if any errors have occurred.
If the full listing of the source has been generated, then a storage map will also be generated while the other two modes do not generate the map. By setting SWITCH(21), the reverse of the standard option associated with the listing can be defined.
The storage map consists of the following sections:
segmentname link n WORDSIf the segment is a master segment, details are:
MASTER SEGMENT OF programname n WORDS
procedurename link entry Wwhere W indicates the word of the segment at which the procedure starts
nameofitem link
nameofitem valueofitemThe value is written as 8 octal digits preceded by #
numberofliteral value r charvalueThe literals are listed in order of definition. The value of the literal is first specified as 8 octal digits and then as four characters. The field r defines the appropriate two character relativiser if it is needed.
m glabelnamewhere m is the word of the segment at which the GLABEL occurs. The GLABELS are listed in ascending order.
m (t) symbolicnamewhere m is the position of the item, t is the type of the item (I = integer LI = long integer, R = real, LR = long real)
m (t) synonymnamewhere m is the absolute location and t is the type as in (j)
accumulatorname synonymname
The absence of any items from (b) onwards is indicated by NONE following the name of the item.