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

APPENDIX 7: A SAMPLE PLASYD PROGRAM

The following pages are an example of the output produced by the PLASYD compiler. The program in question is used to edit such listings so that source code and error messages are printed, but the store map (which the compiler gives after every segment) is ignored. The use of card reader and lineprinter PERIs may be seen and also the use of PLAN instructions such as SUSBY, SUSWT and MOVE.

If the source code of this program were in a file called TDYP, it could be compiled, and a binary produced, by issuing the command:

TASK PLAS,*CR TDYP,SAVE,NORUN
COMPILED BY YAPQ/2  ON  07/09/73 AT  14/42/22
SENDTO(A. SUBROUTINES)
NAME(TDYP)
PROGRAM MODE(15AM,DBM)
LOCAL SEGMENTS
            LOCAL ALL;
            PROCEDURE MAIN(X0)
            BEGIN
              LOWER
                LOGICAL CONCHAR,BUFFER(30),
                CRCA(4) = (3CNT,0,120,@BUFFER)
                LPCA(4) = (2CNT,0,121,CHAR 3 OF @CONCHAR);
              LOWEND;
              SKIP: !PERI(0,CRCA); X4:= CRCA(1);
              IF X4 < 0 THEN !SUSBY(0,3);
              X4:= BUFFER(3); X5:= BUFFER(4);
              IF X4 = 'COMP' AND X5 = 'ILED' THEN GOTO RESTART;
              X4:=BUFFER; X5:=BUFFER(1);
              IF X4 = 'PLAN' AND X5 = '(CR)' THEN GOTO RESTART;
              IF X4 = 'ENDP' AND X5 = 'ROG ' THEN GOTO CLOSE;
              GOTO SKIP;
              
              RESTART: X4:= #51; CONCHAR:= X4;
              
              COPY: !PERI(0,LPCA); X4:= LPCA(1);
              IF X4 < 0 THEN !SUSBY(0,2);
              
              ENTRY 0: X4:='    '; BUFFER(20):=X4; X4:= @BUFFER(20);
              X5:= X4 + 1; !MOVE(4,9); !PERI(0,CRCA); X4:= CRCA(1);
              IF X4 < 0 THEN !SUSBY(0,3);
              X4:= BUFFER; X5:= BUFFER(1);
              IF X4 = 'SEGM' AND X5 = 'ENT ' THEN GOTO SKIP;
              IF X4 = '*   ' AND X5 = '   0' THEN GOTO SKIP;
              IF X4 = 'MAST' AND X5 = 'ER S' THEN GOTO SKIP;
              IF X4 = 'SUBF' AND X5 = 'ILE ' THEN GOTO CLOSE;
              X4 := #41; CONCHAR:= X4; GOTO COPY;
              
              CLOSE; !PERI(0,LPCA); X4:= LPCA(1);
              IF X4 < 0 THEN !SUSBY(0,2);
              !SUSWT('OK');
            END;
SEGMENT     MAIN         LINK X0          64 WORDS
GLABEL PROCEDURES       MAIN      LINK X0        ENTRY
INTERNAL PROCEDURES     'NONE'
EXTERNAL    'NONE'
NONPLASYD   'NONE'
DEFINEES    'NONE'
LITERALS         15 WORDS
      0   #43575560          COMP
      1   #51544544          ILED
      2   #60544156          PLAN
      3   #30436231          (CR)
      4   #45564460          ENDP
      5   #62574720          ROG 
      6   #20202020              
      7   #63454755          SEGM
      8   #45566420          ENT 
      9   #32202020          *   
     10   #20202000             0
     11   #55416364          MAST
     12   #45622063          ER S
     13   #63654246          SUBF
     14   #51544520          ILE 
GLABELS    'NONE'
LABELS
      0 SKIP
     21 RESTART
     23 COPY
     58 CLOSE
LOWER PRESET             39 WORDS
      0 (I)     CONCHAR
      1 (I)     BUFFER
     31 (I)     CRCA
     35 (I)     LPCA
     
PURE LOWER PRESET         'NONE'
UPPER PRESET     'NONE'
PURE UPPER PRESET         'NONE'
LOWER GLOBAL              'NONE'
PURE LOWER GLOBAL         'NONE'
UPPER GLOBAL              'NONE'
PURE UPPER GLOBAL         'NONE'
SYNONYMS OF ABSOLUTE ADDRESSES         'NONE'
ACCUMULATOR SYNONYMS      'NONE'
           COMPILED BY YAPQ/2  ON  07/09/73 AT  14/42/24
****
SUBFILE SUBROUTINES OCCUPIES      5 BUCKETS IN AAAB00015501
**************************************
###### COMPILATION OK
**************************************
COMSOLIDATED BY XPCH  18 DATE    07/09/73   TIME  14/42/53
 DENSE PROGRAM #TDYP (15AM/DBM/NON-SHARABLE)
============================================
LOWER DATA
LENGTH      99 WORDS
     LW             *55       45
     LV             *55       45
     LP             *55       45
     LR            *124       84
     LT            *124       84
PURE PART
LENGTH      64 WORDS
     RR            *143       99
     SEG           *143       99  %%%P (     0 WORDS)
     SEG           *143       99  MAIN (    64 WORDS)
     
IMPURE PART
NOT USED
SIZE      192     WORDS =     1    PAGES
****************************************
###### CONSOLIDATION OK
****************************************
****************************************
###### ENDTASK ON NORUN
⇑ 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