Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Contents □ 1. Introduction □ 2. Basic symbols and comments □ 3. Identifiers, accumulators and cells □ 4. Types and values □ 5. Addresses and storage allocation □ 6. Simple cell designation □ 7. Assignment statements □ 8. Integer accumulator assignments □ 9. Real accumulator assignments □ 10. Long accumulator assignments □ 11. Cell assignments □ 12. Block structure □ 13. Procedures and labels □ 14. Conditional and control statements □ 15. Functions □ 16. Cell declarations □ 17. Synonym declarations □ 18. Storage allocation □ 19. Subcompilation and global storage □ 20. Define statements, conditional compilation and include statements □ 21. Compiler directives □ 22. FORTRAN/PLASYD mixed programming □ 23. ALGOL/PLASYD mixed programming □ 24. Useful library routines □ 25. Use of TASK macro to compile PLASYD programs □ 26. SMO cell designation □ 27. Compiler output □ 28. PLAN instructions not provided for in PLASYD □ Appendices □ 1: Errors and comments □ 2: 1900 character set □ 3: Syntax definitions in alphabetical order □ 4: Use of program XMED □ 5: 1900 order code □ 6: Code genereated for typical PLASYD statements □ 7: A sample PLASYD program □ 8: Less commonly used directives □ References
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
⟶ ACL ⟶ Literature ⟶ ICL 1906A manuals ⟶ PLASYD
⟶ ACL ⟶ Literature ⟶ ICL 1906A manuals ⟶ PLASYD
ACL ACD C&A INF CCD CISD Archives
Further reading ⇓

□ Contents □ 1. Introduction □ 2. Basic symbols and comments □ 3. Identifiers, accumulators and cells □ 4. Types and values □ 5. Addresses and storage allocation □ 6. Simple cell designation □ 7. Assignment statements □ 8. Integer accumulator assignments □ 9. Real accumulator assignments □ 10. Long accumulator assignments □ 11. Cell assignments □ 12. Block structure □ 13. Procedures and labels □ 14. Conditional and control statements □ 15. Functions □ 16. Cell declarations □ 17. Synonym declarations □ 18. Storage allocation □ 19. Subcompilation and global storage □ 20. Define statements, conditional compilation and include statements □ 21. Compiler directives □ 22. FORTRAN/PLASYD mixed programming □ 23. ALGOL/PLASYD mixed programming □ 24. Useful library routines □ 25. Use of TASK macro to compile PLASYD programs □ 26. SMO cell designation □ 27. Compiler output □ 28. PLAN instructions not provided for in PLASYD
Appendices
□ 1: Errors and comments □ 2: 1900 character set □ 3: Syntax definitions in alphabetical order □ 4: Use of program XMED □ 5: 1900 order code □ 6: Code genereated for typical PLASYD statements □ 7: A sample PLASYD program □ 8: Less commonly used directives □ References

27. COMPILER OUTPUT

27.1 Source Listing

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:

  1. the instructions generated
  2. any errors found

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.

27.2 Error Diagnostics

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:

  1. ERROR, the error will cause compilation to fail. It will be patched up so that compilation can continue to the end of the program in order that other errors may also be recognised. The complete set of errors are listed in Appendix 1 together with any assumptions made in order to patch up the program.
  2. COMMENT, although not an error this message will point out an unusual situation of which the user should be aware.

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.

27.3 Symbol Table Listing

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:

  1. SEGMENT If the segment is a procedure, details are given in the form:
    segmentname       link       n WORDS
    
    If the segment is a master segment, details are:
    MASTER SEGMENT OF programname  n WORDS
    
  2. GLABEL PROCEDURES Details are given in the form:
    procedurename     link       entry W
    
    where W indicates the word of the segment at which the procedure starts
  3. INTERNAL PROCEDURES Details are similar to (b)
  4. EXTERNAL Details are given in form:
    nameofitem     link
    
  5. NONPLASYD Details are similar to (d)
  6. DEFINEES Details are given in the form:
    nameofitem     valueofitem
    
    The value is written as 8 octal digits preceded by #
  7. LITERALS n WORDS The first line is followed by n lines of form:
    numberofliteral     value     r     charvalue
    
    The 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.
  8. GLABELS Details are given in the form:
    m glabelname
    
    where m is the word of the segment at which the GLABEL occurs. The GLABELS are listed in ascending order.
  9. LABELS Details as for (h)
  10. LOWER PRESET n WORDS Details are given in the form:
    m  (t)  symbolicname
    
    where m is the position of the item, t is the type of the item (I = integer LI = long integer, R = real, LR = long real)
  11. PURE LOWER PRESET n WORDS Details as for (j)
  12. UPPER PRESET n WORDS Details as for (j)
  13. PURE UPPER PRESET n WORDS Details as for (j)
  14. LOWER GLOBAL blockname n WORDS Details as for (j). This format is repeated for each lower global block
  15. not used
  16. PURE LOWER GLOBAL blockname n WORDS Details as for (n)
  17. UPPER GLOBAL blockname n WORDS Details as for (n)
  18. PURE UPPER GLOBAL blockname n WORDS Details as for (n)
  19. SYNONYMS OF ABSOLUTE ADDRESSES Details are given in the form:
    m  (t)  synonymname
    
    where m is the absolute location and t is the type as in (j)
  20. ACCUMULATOR SYNONYMS Details are given in the form:
    accumulatorname  synonymname
    

The absence of any items from (b) onwards is indicated by NONE following the name of the item.

⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site