THIS ALGOL COMPILER CONSISTS OF TWO PARTS. THE COMPILER ITSELF, AND THE INTERPRETER UNDER WHICH IT AND ITS OUTPUT RUNS. TWO (2) VERSIONS OF THE INTERPRETER ARE INCLUDED. ONE WHICH SUPPORTS EIS (MUL, DIV, SOB, XOR, ASH, ASHC) AND ONE WHICH WILL RUN ON ANY THING. THE EIS VERSION IS ALGRT2.OBJ. FIRST COPY THE NECESSARY FILES ONTO THE SYSTEM DEVICE. IE. MOUNT TAPE #1 ON DRIVE #0. .R PIP --------- **.*/X=DT0:*.OBJ,*.ALG,*.ERR ------------------------------- SECOND. LINK THE INTERPRETER. SINCE THE INTERPRETER UTILIZES ITS OWN STACK SPACE, THE SPACE BELOW 1000 AND ABOVE THE LAST SET OF INTERRUPT VECTORS MAY BE USED AS PROGRAM SPACE. IF THIS IS DONE, THEN IT MAY BE WISE TO SPECIFY THE INITIAL STACK ADDRESS TO BE 'TMPSTK' AS IN THE FOLLOWING EXAMPLE. .R LINK ---------- *ALGOL,ALGOL=ALGRT1/B:400/M ----------------------------- STACK ADDRESS = TMPSTK ---------- *^C -- TO LINK THE EIS VERSION SUBSTITUTE THE FILE ALGRT2 IN PLACE OF ALGRT1 ON THE RIGHT OF THE '='. THE FOLLOWING FILES MUST BE PRESENT FOR THE INTERPRETER AND COMPILER TO RUN AND PRODUCE ERROR MESSAGES: ALGOL.ALG ALGOL .ERR ALGOL.SAV ALGRTS.ERR SWAP .ALG TO CREATE THE SWAP FILE (SWAP.ALG) DO THE FOLLOWING: .R PIP *SWAP.ALG[64]=/T ------------------- 64 BLOCKS WILL USUALLY SUFFICE EVEN THE LARGEST OF PROGRAMS. AN E-O-F ON THE SWAP FILE, THOUGH, INDICATES THAT IT SHOULD BE MADE LARGER. THE COMMAND STRING TO THE INTERPRETER HAS BEEN CHANGED FROM WHAT IS SPECIFIED IN THE THESIS. NOTE ALSO THAT THERE ARE OPTION WORDS NO LONGER AND THAT THE CODE FILE AND SWAP FILE FIBS ARE NO LONGER IN FIXED LOCATIONS AS SPECIFIED IN THE THESIS. THEY HAVE BEEN MOVED INTO THE PROGRAM AREA. THE COMMAND STRING HAS THE FOLLOWING SYNTAX: ITEMS IN BRACKETS ARE OPTIONAL. CODE FILE: [FILENAME[.EXT]][/S:STACKSIZE] THE DEFAULT EXTENSION IS '.ALG'. THE DEFAULT FILE NAME IS 'ALGOL.ALG' THE DEFAULT STACK SIZE IS 1600 (OCTAL) WORDS. THIS IS SUFFICIENT TO RUN MOST PROGRAMS. TO SPECIFY A RUN TIME STACK OF A DIFFERENT SIZE SPECIFY THE NUMBER OF WORDS (IN OCTAL) TO ALLOCATE FOR THE RUN TIME STACK AFTER THE '/S:'. EG: CODE FILE: FOO/S:400 ------------- WILL RUN THE PROGRAM FOO.ALG WITH A RUN TIME STACK OF 400 (OCTAL) WORDS. THE INTERPRETER MAKES ONE REFERENCE TO THE SWITCH REGISTER (TO DISPLAY THE # OF LINES READ IN). IF THIS IS UNDESIREABLE (DUE TO RUNNING MAPPED IE. UNDER RSTS, OR BECAUSE A SWITCH REGISTER DOES NOT EXIST) THEN DO THE FOLLOWING. LOOK AT THE LINK MAP FOR ALGOL (IE ALGOL.MAP). DETERMINE THE ADDRESS OF THE COMMUN MODULE. IT WILL BE THE # RIGHT NEXT TO THE NAME 'COMMUN' WHICH CAN BE FOUND IN THE LEFT HAND COLUMN. I WILL REFER TO THAT # AS 'XXXXXX' IN THE FOLLOWING PATCH, AND IT SHOULD BE INSERTED IN PLACE OF THE 'XXXXXX'. FOR THE EIS VERSION: .R PATCH ----------- PATCH VXX-YY FILE NAME-- *ALGOL --------- *XXXXXX;1R --------- *1,454/ 16737 402 ------ ------- *E - FOR THE NON-EIS VERSION, THE LINE *1,454/ 16737 402 ------ ------- BECOMES: *1,456/ 16737 402 ------ ------- A LISTING OF THE COMPILER IS INCLUDED IN THIS KIT AS PARTIAL DOCUMENTA- TION. ANY SUGGESTIONS, COMMENTS, AND QUESTIONS WILL BE APPRECIATED AND ANSWERED. PLEASE SEND ALL BUGS TO ME. INCLUDE LINK MAP, PROGRAM LISTING (IF SMALL) OR PAPER TAPE (IF LARGE), TERMINAL OUTPUT, AND MACHINE CONFIGURATION. A 'BUG' IS DEFINED TO BE ANY MONITOR MESSAGE (?M-TRAP TO 4, ETC.) OR ANY THING YOU CONSIDER TO NOT WORK PROPERLY. MAIL ADDRESS: DIGITAL EQUIPMENT CORP. 146 MAIN STREEET MAYNARD MA. 01754 ATT: GREG HOSLER ML5-5/E40 PHONE NUMBERS: WORK: 1-617-897-5511 (X6026) (X3654) IF I'M NOT THERE LEAVE A MESSAGE. GOOD LUCK. LET ME KNOW IF YOU DEVELOP ANY INTERESTING PROGRAMS AS IM COLLECTING A LIBRARY OF ALGOL PROGRAMS. I'M ALSO WORKING ON A VERSION WITH REAL NUMBERS IMPLEMENTED AS WELL AS SOME DEBUGGING AIDS. LET ME KNOW IF YOU HAVE ANY THOUGHTS ABOUT EITHER OF THESE.