Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Contents1. Introduction2. Basic symbols and comments3. Identifiers, accumulators and cells4. Types and values5. Addresses and storage allocation6. Simple cell designation7. Assignment statements8. Integer accumulator assignments9. Real accumulator assignments10. Long accumulator assignments11. Cell assignments12. Block structure13. Procedures and labels14. Conditional and control statements15. Functions16. Cell declarations17. Synonym declarations18. Storage allocation19. Subcompilation and global storage20. Define statements, conditional compilation and include statements21. Compiler directives22. FORTRAN/PLASYD mixed programming23. ALGOL/PLASYD mixed programming24. Useful library routines25. Use of TASK macro to compile PLASYD programs26. SMO cell designation27. Compiler output28. PLAN instructions not provided for in PLASYD □ Appendices □ 1: Errors and comments2: 1900 character set3: Syntax definitions in alphabetical order4: Use of program XMED5: 1900 order code6: Code genereated for typical PLASYD statements7: A sample PLASYD program8: Less commonly used directivesReferences
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsPLASYD
ACLLiteratureICL 1906A manualsPLASYD
ACL ACD C&A INF CCD CISD Archives
Further reading

Contents1. Introduction2. Basic symbols and comments3. Identifiers, accumulators and cells4. Types and values5. Addresses and storage allocation6. Simple cell designation7. Assignment statements8. Integer accumulator assignments9. Real accumulator assignments10. Long accumulator assignments11. Cell assignments12. Block structure13. Procedures and labels14. Conditional and control statements15. Functions16. Cell declarations17. Synonym declarations18. Storage allocation19. Subcompilation and global storage20. Define statements, conditional compilation and include statements21. Compiler directives22. FORTRAN/PLASYD mixed programming23. ALGOL/PLASYD mixed programming24. Useful library routines25. Use of TASK macro to compile PLASYD programs26. SMO cell designation27. Compiler output28. PLAN instructions not provided for in PLASYD
Appendices
1: Errors and comments2: 1900 character set3: Syntax definitions in alphabetical order4: Use of program XMED5: 1900 order code6: Code genereated for typical PLASYD statements7: A sample PLASYD program8: Less commonly used directivesReferences

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