.TITLE INDEX-FORTRAN CROSS REFERENCE AND FLOW CHART FOR VAX/VMS ;V2.06 .IDENT /V03.25/ ;V3.25 .ENABLE DEBUG ;**-1 ; GENERAL HISTORY ; ; The original INDEX-FORTRAN Cross Referencer was written ; in FORTRAN in 1966 by Harry M. Murphy Jr of the ; Air Force Weapons Laboratory ; Kirkland Air Force Base ; New Mexico ; ; This Fortran version was ported to run on the ; Naval Weapons Center, China lake, Ca ; UNIVAC 1100 series computer. ; ; In 1974, Michael N. LeVine of N.W.C. attemped ; to port the UNIVAC version to a PDP-11/20 running ; RT-11 but was unsucessfull. Useing as a target, the ; capabilities of the original, an assembly langauge ; version was written to run under RT-11. Between 1974 and ; 1983, the PDP-11 version was enhanced to a superset ; of the features of the original FORTRAN program. ; The final version (6.4) running under RT/RSX/IAS ; with many user selectable features such as looking ; for variables fitting selected conditions, and ; a full entry point cross reference in tabular ; and graphical format. See DECUS 11-229 in DECUS ; program Library ; ; This VAX/VMS version is a complete rewrite in ; VAX assembly language of the PDP-11 V6.4 INDEX. ; ; Michael N. LeVine ; Code 3514 ;V2.02 ; Naval Weapons Center ; China Lake ; Ca ; 93555 ; ; (619)939-3970 ;V3.25 ; AVN 437-3970 ;V3.25 ; ; ; History ; Version 1.0 ; Started May 1983, completed July 15,1983 ; ; Possable future enhacements ; Upgrade the input and parseing of command lines ; to be more in line with the format of the ; FORTRAN compiler. ; ; Change the messages to SYS$OUTPUT from the ; current method to useing the system message ; facility. ; ; Fix problem with INCLUDE files where comments ;V1.30 ; the INCLUDE. The line numbers for the lines in ;V1.30 ; the include file start with the line number ;V1.30 ; that follows the last consecutive comment line ;V1.30 ; that follows the INCLUDE statement. The only ;V1.30 ; way to make the line numbers correct is have ;V1.30 ; a new source line imediately follow the INCLUDE ;V1.30 ; forceing the processing of the INCLUDE file. ;V1.30 ; ; Expand flow chart represrentation for I/O ;V2.02 ; statements, add one each for input and output, ;V2.02 ; aux statements remain same symbol ;V2.02 ; ENCODE/DECODE treated as true I/O ;V2.02 ; ; Expand size of flow chart pixels to put in more ;V2.02 ; text inside ;V2.02 ; ; REVISION HISTORY ; 26-JULY-83 MNL ; FOUND THAT CONSTRUCTS OF THE FORM ; IF(A.EQ.B)IFREEP=ABC ; WERE NOT PROPERLY HANDLED. THE CONDITIONAL PART OF THE ; IF WAS FIRST GUESSED AS AN IF, BUT WHEN FOUND NOT TO ; FIT THE FORMAT- RETRYED AS AN ARITHMETIC. ERROR CAME IN ; AS THE CONDITIONAL PART DID NOT START AT THE BEGINNING ; OF THE LINE. THE RESET STARTED THE RETRY AT THE ; START OF THE LINE EVEN THOUGH IN THIS CASE THAT ; WAS NOT RIGHT. CHANGED "LINETYPE.MAR" ; ; 3-AUGUST-83 MNL ; LOGIC TO SAY THAT VARIABLES IN DATA STATEMNTS HAVE ; BEEN CHANGED (SET) IN VALUE INVERTED. CAUSED ; WRONG FLAGGING OF DATA,PARAMETER,EQUIVALENCE AND ; SAVE. CHANGED "EVAL.MAR" ; 15-AUGUST-83 MNL ;V1.3 ; ADDED SWITCHES AND SUPPORTING CODE -/COMMENT, ;V1.3 ; /EXPORT,/IMPORT. ;V1.3 ; /COMMENT=" " ALLOWS THE USER TO INSERT A COMMENT ;V1.3 ; INTO THE HEADER OF EACH PAGE. ;V1.3 ; /IMPORT GETS IMPORTED VARIABLES INTO ROUTINE ;V1.3 ; /EXPORT GETS EXPORTED VARIABLES FROM ROUTINE ;V1.3 ; CHANGED "OPENCLOSE,EVAL,OUTPUT,STORE" ;V1.3 ; 22-AUGUST-83 MNL ;V1.4 ; ADDED HOOKS FOR FLOW CHART GENERATION ;V1.4 ; PUT IN CODE TO IMPLIMENT STATISTICS OUTPUT ;V1.4 ; CHANGED "INDEX,OPENCLOSE,STORE,IOLINE,HEAP,OUTPUT ;V1.4 ; TABLE,SUPER,FLOW", ADDED ;V1.4 ; MODULE "STATS". ALSO CHANGED ;V1.4 ; COMMAND FILES "INDEX,INDEXCOPY,LINK" AND ;V1.4 ; "INDEX.RNO" ;V1.4 ; 26-AUGUST-83 MNL ;V1.5 ; FORGOT TO SET FLAG IN EVALUATEING INLINE FUNCTION ;V1.5 ; CALLS STATEING THAT THE ARGUMENTS ARE USED. ;V1.5 ; CANGED "INDEX,EVAL,IOLINE" ;V1.5 ; 12-SEPTEMBER-83 MNL ;V1.6 ; ADDITIONS TO MAKE SPOOLING OPTION WORK ;V1.6 ; ALSO ADDED /DELETE SWITCH ;V1.6 ; CHANGED "INDEX,IOLINE,OPENCLOSE" ;V1.6 ; 21-SEPTEMBER-83 MNL ;V1.7 ; ENCODE/DECODE ERROR-THE I/O STRING SPECIFICATION ;V1.7 ; DID NOT ALLOW FOR ARRAY OR CHR SUBSTRING SPECIFIATION ;V1.7 ; CHANGED MODULES "LINETYPE,INDEX,IOLINE" ;V1.7 ; 3-OCTOBER-83 MNL ;V1.8 ; ERROR IN HANDLEING "TYPE * STATEMENTS, CAUSED THE ;V1.8 ; PROGRAM TO BOMB IN "OUTPUT" DUE TO INVALID MENEMONIC ;V1.8 ; NUMBER LOADED INTO SYMBOL TABLE HOW USED ELEMENT. ;V1.8 ; CHANGED MODULES "EVAL,IOLINE,INDEX" ;V1.8 ; 17-OCTOBER-83 MNL ;V1.9 ; FOUND THAT THE NAME BLOCK AND ASSOCIATED STRINGS ;V1.9 ; HAVE TO BE RE INITIALIZE BEFORE REUSE.CAUSED THE ;V1.9 ; OUTPUT TO GO ALWAYS TO THE FIRST OUPUT SPECIFIED ;V1.9 ; EITHER IMPLICITLY OR EXPLICITLY ON SUBSEQUENT FILES ;V1.9 ; BEING CROSS REFENENCED ;V1.9 ; CHANGED MODULES "OPENCLOSE,IOLINE,INDEX" ;V1.9 ; VERSION 1.9 SUBMITTED TO FALL 83 (LAS VEGAS) VAX SIG TAPE ;V1.9A ; 7-NOVEMBER -83 MNL ;V1.10 ; MODIFY THE SYMBOL TABLE QUEUES AND ;V1.10 ; SUPER INDEX QUEUE TO USE THE SYSTEM SUPPLIED BALLANCED ;V1.10 ; TREE ROUTINES AND TO USE SYMBOLIC OFFSETS INSTEAD OF ;V1.10 ; THE HARD CODED IN ONES. ENTRY POINT XREF NOT MODIFIED ;V1.10 ; AS IT WOULD NOT HANDLE THAT MANY SYMBOLS AND THE ;V1.10 ; MODIFICATIONS WOULD BE MORE COMPLEX THAN ANY POSSABLE ;V1.10 ; GAINS IN SPEED TO MAKE IT WORTH IT. ;V1.10 ; CHANGED MODULES INDEX,IOLINE,STORE,OUTPUT,SUPER,FLOW, ;V1.10 ; TABLE ;V1.10 ; 8-NOVEMBER-83 MNL ;V1.11 ; ADD NEW SWITCH /COMMON, TO ALLOW THE USER TO SEE WHAT ;V1.11 ; COMMON BLOCKS ARE USED IN WHAT MODULES, AND WHICH ONES ;V1.11 ; ARE UNUSED. EXTENDED FLAG WORD FROM 4 TO 8 BYTES ;V1.11 ; CHANGED MODULES INDEX,OUTPUT,IOLINE,TABLE,OPENCLOSE ;V1.11 ; STORE,EVAL ;V1.11 ; 10-NOVEMBER-83 MNL ;V1.12 ; ADDED SWITCHES FOR ENTRY POINT DISPLAY ;V1.12 ; /SYMBOL= /DEPTH= /SAVE_ENTRY /NOENTRY_TABLE ;V1.12 ; CHANGED MODULES OPENCLOSE,TABLE,FLOW,INDEX,IOLINE ;V1.12 ; 14-NOVEMBER-83 MNL ;V1.13 ; ADDED WARNING MESSAGE WHEN ENTRY POINT NAME IS DEFINED ;V1.13 ; MORE THAN ONCE, AND SWITCH /TRANSFER_ENTRY THAT CAUSES ;V1.13 ; REFERENCES TO ENTRY POINTS DEFINED BY "ENTRY" STATEMENTS;V1.13 ; TO BE TRANSFERED TO THE MAIN MODULE NAME ;V1.13 ; CHANGED MODULES INDEX,OPENCLOSE,IOLINE,FLOW ;V1.13 ; 16-NOVEMBER-83 MNL ;V1.14 ; ENDLESS LOOP CONDITION FOUND AND FIXED. ALSO EXTENDED ;V1.14 ; THE /LOG SWITCH SO THAT THE COMMAND LINE IS SENT TO ;V1.14 ; SYS$OUTPUT WHEN IT IS READ. SUPER INDEX MODULE WAS ;V1.14 ; DOUBLE REMOVEING ELEMENTS ON CLEANUP AND AS A RESULT ;V1.14 ; GARBAGEING UP THE 64 BYTE HEAP QUEUE.CHANGED MODULES ;V1.14 ; INDEX,IOLINE,OPENCLOSE,HEAP,SUPER ;V1.14 ; 18-NOVEMBER-83 MNL ;V1.15 ; ADDED /PRINT SWITCH, SYNONYM FOR /SPOOL.CHANGED TEST ;V1.15 ; ON THE /EXPORT AND /IMPORT SWITCHES MAKEING THEIR ;V1.15 ; USE ON THE SAME COMMAND LINE AND ERROR. ;V1.15 ; MODIFIED HANDLEING OF EQUIVALENCED VARIABLES. BETWEEN ;V1.15 ; EQUIVALENCED VAR'S THE FOLLOWING FLAGS ARE SHARED- ;V1.15 ; GLOBAL,IN_BLANK_COMMON,IN_NAMED_COMMON,POINTER TO ;V1.15 ; COMMON NAME. ALSO PROPIGATE TO COMMON NAME THE STATUS ;V1.15 ; USED AND CHANGED ;V1.15 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE,HEAP,STORE,EVAL ;V1.15 ; OUTPUT ;V1.15 ; 22-NOVEMBER-83 MNL ;V1.16 ; FURTHER MODIFICATION TO HANDLEING OF EQUIVALENCED ;V1.16 ; VARIABLES-NOW ALSOW SHARE THE PROPERTIES CALLED_BY_ARG ;V1.16 ; CALLING_ARG AND FN_CALLING_ARG. CHANGED THE STATS SO ;V1.16 ; THAT THE TOTAL ASSIGN COUNTS FOR THE HEAP ARE NOT RESET ;V1.16 ; FOR EACH INDIVIDUAL RUN BUT ARE ACCUMULATED FOR THE ;V1.16 ; ENTIRE INDEX RUN SINCE INVOCATION.CLEANED UP THE RUN ;V1.16 ; LIBRARY ROUTINES TABLE.ADDED /TAG SWITCH TO APPEND A ;V1.16 ; TAG TO ALL SYMBOLS IN A GIVEN MODULE SAVED FOR SUPER ;V1.16 ; FOR OUTPUT DURING SUPER INDEX ;V1.16 ; CHANGED MODULES INDEX,IOLINE,STORE,STAT,TABLE,OPENCLOSE ;V1.16 ; OUTPUT,SUPER ;V1.16 ; 29-NOVEMBER-83 MNL ;V1.17 ; FOUND THAT THE HANDLEING OF BLANK COMMON NAME WAS NOT ;V1.17 ; PROPER IN THE CONDITIONAL TESTS. BROUGHT IN LINE WITH ;V1.17 ; THE HANDLEING OF NAMED COMMON NAME'S. ;V1.17 ; CHANGED MODULES INDEX,IOLINE,EVAL,OUTPUT ;V1.17 ; 30-NOVEMBER-83 MNL ;V1.18 ; ADDED NEW SWITCH "/REVERSE". APPLIES ONLY TO SUPER ;V1.18 ; INDEX OUTPUT. CAUSES MAJOR LISTING TO BE THE MODULE ;V1.18 ; NAME'S AND THE TABULAR LISTING PER MAJOR ITEM TO BE ;V1.18 ; THE VARIABLE/COMMON NAME (TAG POSITION STILL APPENDED ;V1.18 ; TO TABULAR ITEMS ;V1.18 ; CHANGED MODULES INDEX,IOLINE,SUPER,OPENCLOSE. ;V1.18 ; 1-DECEMBER-83 MNL ;V1.19 ; ADDED NEW SWITCH "/REORDER". APPLIES ONLY TO SUPER ;V1.19 ; INDEX OUTPUT. A MORE GENERAL FORM OF THE /REVERSE ;V1.19 ; SWITCH. LETS THE USER HAVE TOTAL CONTROL OF THE ORDER ;V1.19 ; OF PRESENTATION OF THE 3 ITEMS IN THE SUPER INDEX LIST ;V1.19 ; NAME,MODULE,TAG. CHANGED MODULES INDEX,IOLINE,TABLE ;V1.19 ; OPENCLOSE,SUPER. ;V1.19 ; 2-DECEMBER-83 MNL ;V1.20 ; ADDED NEW SWITCH "/NOINDEX" TO SUPPRESS PRINTING OF ;V1.20 ; INDEX OUTPUT. DATA STILL SAVED FOR SUPER INDEX. ;V1.20 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE ;V1.20 ; 9-JANUARY-1984 MNL ;V1.21 ; HAD PROBLEM WITH LARGE PROGRAM HAVEING MANY SOURCE ;V1.21 ; MODULES PER FILE AND NO EASY WAY OF BACK TRACKING ;V1.21 ; FROM SUBROUTINE/FUNCTION NAME TO THE FILE. ADDED TO ;V1.21 ; ENTRY POINT CROSS REFERENCE SWITCH "/FILE_NAME" THAT ;V1.21 ; CAUSES THE OUTPUT OF THE FILE NAME DURING THE SIMPLE ;V1.21 ; CALLS/CALLED BY TABULAR LISTING. CHANGED MODULES ;V1.21 ; OPENCLOSE,OUTPUT,INDEX,IOLINE,FLOW. ;V1.21 ; 11-JANUARY-1984 MNL ;V1.22 ; TWO PROBLEMS-PROBLEM WITH LINETYPE-SCANNING LABEL AND ;V1.22 ; FINDING A 'H','R','D','E','Q' FOLLOWING-THINKS ITS A ;V1.22 ; NUMBER OR HOLLARITH OR RAD50 NOT A LABEL. ;V1.22 ; PROBLEM WITH HEAP-CASE DOES NOT WORK AS ADVERTISED ;V1.22 ; SWITCH /APPEND IS SYNONYM FOR /MERGE ;V1.22 ; ALSO A LITTLE CLEAN UP ON ENTRY POINT PRINT OUT ;V1.22 ; AND MORE INFO IN STATISTICS ;V1.22 ; CHANGED INDEX,IOLINE,FLOW,HEAP,STAT,OPENCLOSE,TABLE ;V1.22 ; 17-JANUARY-1984 MNL ;V1.23 ; FOUND MISINTERPRITATION OF HOW CASE STATEMMENT WORKED ;V1.23 ; AND FIXED MISS USE'S EVEN THOUGH NO CURRENTS PROBLEMS ;V1.23 ; HAVE BEEN FOUND. CHANGED MODULES INDEX,IOLINE,EVAL ;V1.23 ; 8-FEBRUARY-1984 MNL ;V1.24 ; FOUND FURTHER PROBLEM THOUGHT FIXED WITH V1.22. ;V1.24 ; IN CHARACTER*N FORM WHERE FIRST CHR OF IDENT IS WRONG ;V1.24 ; CHARACTER, GET AN ERROR MESSAGE ;V1.24 ; CHANGED MODULES IOLINE,INDEX,LINETYPE ;V1.24 ; 27-FEBRUARY-1984 MNL ;V1.25 ; BUG FIX-ON THE ENTRY POINT CROSS REF WITH/FILE ;V1.25 ; SWITCH AND MULTIPLE FILES SPECIFIED ON SAME LINE ;V1.25 ; THE FILE BELOGS TO WAS THE NEXT FILE SPECIFIED FOR ;V1.25 ; THE LAST MODULE IN A GIVEN FILE.ALSO CHANGES STATISTICS ;V1.25 ; SO THAT THEY ARE ALWAYS ACCUMULATED BUT ARE NOT PRINTED ;V1.25 ; OUT UNLESS THE /STAT SWITCH IS USED. CHANGED ;V1.25 ; FILES INDEX,IOLINE,STAT,TABLE,OUTPUT. ;V1.25 ; 27-FEBRUARY-1984 MNL ;V1.26 ; CHANGED DEFAULT MODULE NAME FORM "MAIN" TO "$$MAIN$$" ;V1.26 ; ALSO CHANGED SECOND LINE OF PAGE HEADER TO INCLUDE ;V1.26 ; CURRENT MODULE NAME AND CURRENT FILE NAME ;V1.26 ; CHANGED MODULES INDEX,IOLINE,TABLE,EVAL ;V1.26 ; 29-FEBRUARY-1984 MNL ;V1.27 ; ADDED TO STATISTICS PER MODULE AND ACCUMULATED ;V1.27 ; LINES INPUT/OUTPUT AND PAGES OUTPUT. ;V1.27 ; ADJUSTED STAT FORMAT TO LOOK BETTER ;V1.27 ; CHANGED MODULES INDEX,IOLINE,STAT,TABLE ;V1.27 ; 21-MAR-1984 MNL ;V1.28 ; ERROR COUNTING CONTINUATION LINES USING TAB CONVENTION ;V1.28 ; CHANGED MODULES INDEX,IOLINE ;V1.28 ; 18-APR-84 MNL ;V1.29 ; ERROR IN IMPORT EXPORT LOGIC, LABELS CANNOT BE EITHER ;V1.29 ; AND SOME VARS ARE SHOWN AS BOTH ;V1.29 ; CHANGED MODULES INDEX,IOLINE,OUTPUT,STORE ;V1.29 ; 18-APR-84 MNL ;V1.30 ; REMOVED SWITCHES /NOSPOOL,/OPTIONS,/FLOWCHART ;V1.30 ; AS THEY ARE UNUSED AND ARE NOT LIKELY TO BE IN THE ;V1.30 ; NEAR FUTURE. CHANGED MODULES IOLINE,INDEX,OPENCLOSE ;V1.30 ; 30-APR-84 MNL ;V1.31 ; EXPANDED STATISTICS TO INCLUDE COUNT OF ALL LINE TYPES ;V1.31 ; USED IN MODULE AND ACCUMULATED. CHANGED MODULES ;V1.31 ; INDEX,TABLE,STAT,IOLINE,EVAL,OPENCLOSE. ;V1.31 ; 4-MAY-1984 MNL ;V1.32 ; ADDED SWITCH /SAVE_SUPER TO PREVENT THE ERASEURE ;V1.32 ; OF THE SUPER INDEX SCRATCH FILE SO THE DATA CAN BE ;V1.32 ; REUSED. CHANGED MODULES INDEX,IOLINE,OPENCLOSE,SUPER, ;V1.32 ; TABLE. ;V1.32 ; 25-JULY-1984 MNL ;V2.00 ; ADDED FLOW CHART CAPABILITY-SWITCHES /CHART AND ;V2.00 ; /FLOW_CHART. MOVED CODE FOR LOGGING COMPLETION OF ;V2.00 ; SOURCE MODULE IN A FILE FROM EVAL TO INDEX. ;V2.00 ; ADDED MODULE CHART.MAR AND CHANGED ;V2.00 ; MODULES EVAL.MAR,IOLINE.MAR,INDEX.MAR,OPENCLOSE.MAR, ;V2.00 ; STAT.MAR,TABLE.MAR ;V2.00 ; 31-JUL-1984 MNL ;V2.01 ; ADDED TO LOGICAL IF, IFTHEN, ELSIF THEN THE T/F NOTATION;V2.01 ; EXTENDED CHART BUFFER TO 128 BYTES TO ALLOW FOR TEXT ;V2.01 ; STORAGE FOR ADDING TO BARE SYMBOLS NOW IN USE. ;V2.01 ; EXTENDED PROGRAM ELEMENT FLAG WORD TO 8 BYTES. ;V2.01 ; ADDED NEW FLAGS TO PROGRAM ELEMENT FLAG WORD ;V2.01 ; EXTENDED HEAP ALLOCATION FOR 128 BYTE ELEMENTS ;V2.01 ; ADDED NEW ELEEMNTS TO BE PRINTED OUT INSIDE OF A ;V2.01 ; CONNECTOR PIXEL TO CLARIFY CONTROL FLOW ;V2.01 ; SIMPLE GOTO HAS LABEL OF DEST PRINTED INSEID ;V2.01 ; ADDED FLOW CHART STATISTICS ;V2.01 ; FIXED BUG PHASE_2_ACTION_2 HANDLE ERR= IN I/O ;V2.01 ; FIXED BUG PHASE_2 ACTION_10 ERROR IN NESTED DO LOOPS ;V2.01 ; FIXED BUG CHART_IF INCORECT HANDLEING OF MULTIPLE NESTED;V2.01 ; PARRENS IN LOGICAL EQUATION PART OF IF IS SEARCH FOR ;V2.01 ; ACTION PART. ;V2.01 ; FIXED BUG IN CHART_ACTION_LOGICAL_FUNCTION, DID NOT ;V2.01 ; PROPERY HANDLE MULTIPLE TOKENS BEFORE ENTRY POINT NAME ;V2.01 ; TO GET THE NAME FOR STORAGE AND LATER PRINT OUT ;V2.01 ; ADDED TO SYMBOLS PRINTED OUT-TEXT ;V2.01 ; ALL IF'S THE FIRST FEW CHARS OF LOGICAL EQUATION ;V2.01 ; SIMPLE GOTO THE LABEL GOING TO ;V2.01 ; DO'S THE LABEL OF LOOP AND LOOP CONTROL EQUATION ;V2.01 ; CONTINUE,PAUSE,RETURN,STOP,END THE TYPE NAME AND ANY ;V2.01 ; TEXT THAT MIGHT HAVE OCCOURED FOLLOWING ;V2.01 ; CHANGED MODULES CHART,IOLINE,TABLE,INDEX,STAT ;V2.01 ; 27-AUG-1984 MNL ;V2.02 ; ADDED COMMENTS SHOWING PROGRAM ELEMENT OFFSET SUMMARY ;V2.02 ; AND CHART CHART_ELEMENT OFFSET SUMMARY ;V2.02 ; BUG FIX-LABELS ON VERT. LINES REVERSED ;V2.02 ; PUT IN ROUTINE TO TRY AND DO A COMPRESS ON PIXEL ARRAY ;V2.02 ; CHANGED FLOW CHART OUTPUT FRIM LEFT TO RIGHT RASTER ;V2.02 ; SCAN TO UP TO DOWN RASTER SCAN. AS PER REQUEST BY ;V2.02 ; DUANE FOJT CODE 3514 NWC. ;V2.02 ; LOCATES BLOCKS OF CODE WITH ONLY ENTERNCE BEING VIA A ;V2.02 ; LABEL AND ONLY ONE JUMP TO THAT LABEL FROM OUTSIDE ;V2.02 ; THE BLOCK. MOVED THE BLOCK OF CODE TO JUST BELOW AND TO ;V2.02 ; THE RIGHT OF THE ONLY SOURCE ;V2.02 ; ERROR IN SELECTING IMPORT/EXPORT-USED WRONG REGISTER ;V2.02 ; IN TESTING SYMBOL FLAGS. ;V2.02 ; CHANGED ELEMENTS CHART,INDEX,IOLINE,OUTPUT ;V2.02 ; 28-AUG-1984 MNL ;V2.03 ; ADD SECOND TAG FIELD GIVEING THE STROAGE LOCATION OF THE;V2.03 ; VARIABLE. DATA WOULD BE SAVED AT ACCUMULATE DATA TIME ;V2.03 ; BY SWITCH /STORAGE AND WOULD ALSO DISPLAY AT THAT TIME ;V2.03 ; STORAGE INFO. UPDATE OPTIONS IN /ORDER TO INCLUDE NEW ;V2.03 ; TAG FIELDS. ;V2.03 ; ALSO CHANGED ENTRY POINT XREF GRAPHICAL OUTPUT TO ;V2.03 ; MARK NESTING LEVELS ;V2.03 ; CHANGED MODULES, IOLINE,INDEX,OPENCLOSE,OUTPUT,SUPER, ;V2.03 ; TABLE,FLOW ;V2.03 ; 7-SEP-1984 MNL ;V2.04 ; ADD TO PHASE_2_E A NEW SUBROUTINE ;V2.04 ; ADD_SPLIT_COLUMN_TO_MIDDLE TO ALLOW A COLUMN TO BE ADDED;V2.04 ; JUST AFTER STATED COL BETWEEN SATED ROWS IN TABLEAU. ;V2.04 ; AND ATTEMPT TO PUT REST OF NEW BLANK COL ON R.H.S. ;V2.04 ; CHANGED MODULES INDEX,IOLINE,CHART ;V2.04 ; 10-SEP-1984 MNL ;V2.05 ; CHANGED PHASE 3 TO USE ADD_SPLIT_COLUMN_TO_MIDDLE RATHER;V2.05 ; THAT ADD_COLUMN_TO_MIDDLE. ;V2.05 ; CHANGED INDEX,IOLINE,CHART. ;V2.05 ; 13-SEP-1984 MNL ;V2.06 ; ADDED TO FLOW CHART, IF FLOW LINE FROM SOURCE TO LABEL ;V2.06 ; NEEDS TO PASS OVER MORE THAN 3 PAGES (VALUE OF VAR ;V2.06 ; "MAX_DIRECT_PAGE") THEN A CONNECTOR SYMBOL IS USED ;V2.06 ; IN ITS PLACE. ;V2.06 ; ALSO ADDED TO THE /FLOW SWITCH THE CAPABILTY TO CONTROL ;V2.06 ; THE FORMAT OF THE FLOW CHART. /FLOW[=[NOMOVE][:][NOCONN];V2.06 ; WHICH SELECTIVELY DISABLE PHASE_2_E (MOVEING PORTIONS OF;V2.06 ; CODE AROUND)[NOMOVE] AND/OR USEING CONNECTORS [NOCONN] ;V2.06 ; MODIFIED MODULES INDEX,IOLINE,OPENCLOSE,CHART ;V2.06 ; 17-SEP-1984 MNL ;V2.07 ; STUDY OF CAUSE OF EXCESSIVE PAGE FAULTING AND RUN TIME ;V2.07 ; VS CLOCK TIME PROBLEM IN FLOW CHART DURING PHASE 3 IS ;V2.07 ; DUE TO THE CALLS TO ENTER_PROGRAM_ELEMENTS_X_Y. ;V2.07 ; WORK ON REDUCEING THE NUMBER OF CALLS REQUIRED. ;V2.07 ; RESULT WAS FOR TEST CASE USED -PAGE FAULT RATE DROPPED ;V2.07 ; BY A FACTOR OF APROXIMATELY 4 DURING THE FLOW CHARTBUILD;V2.07 ; SECTION FROM ABOUT 183000 TO 44600 THOUSAND FAULTS ;V2.07 ; CHANGED MODULES INDEX,IOLINE,CHART. ;V2.07 ; 18-SEP-1984 MNL ;V2.08 ; STORAGE INFORAMTION TAG FOR CALLED BY ARGUMENTS-ADD ;V2.08 ; DATA ON WHICH ARGUMENT NUMBER IT IS ;V2.08 ; CHANGED MODULES INDEX,IOLINE,STORE,OUTPUT,EVAL ;V2.08 ; 21-SEP-1984 MNL ;V2.09 ; ADD ARGUMENT INFORMATION FOR CALLING ARGUMENTS ;V2.09 ; SAVEING ARGUMENT NUMBER AND ENTRY POINT NAME ;V2.09 ; NEW SWITCH IMPLIMENTS FEATURE /ARGUMENT, ALSO SAVES ;V2.09 ; FOR SUPER INDEX-ADDED 3RD TAG FIELD FOR ARG INFO. ;V2.09 ; EXPANDED /REORDER FOR 4 ARGS -NEW ONE IS ARGUMENT ;V2.09 ; CHANGED MODULES INDEX,IOLINE,STORE,OUTPUT,EVAL ;V2.09 ; OPENCLOSE,TABLE,SUPER ;V2.09 ; 03-OCTOBER-1984 MNL ;V2.10 ; ADD TO COMMAND LINE PARSEING-ERROR PRINTOUT SHOWING ;V2.10 ; AREA OF ERROR OCCOURANCE. ;V2.10 ; ADDED SWITCH /D_LINES-SAME AS /DEBUG ADDED FOR FORTRAN ;V2.10 ; COMPILER COMPATABILITY. ALSO SWITCH /INDENT=X FOR FORMAT;V2.10 ; CONTROL OF SUPER INDEX OUTPUT AND INDENTATION CODE. ;V2.10 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE,TABLE,SUPER ;V2.10 ; 05-OCTOBER-1984 MNL ;V2.11 ; BUG FIX IN /ORDER ARGUMENT HANDELING AND INDENTATION ;V2.11 ; LEVEL 1 SPACEING. ;V2.11 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE,SUPER. ;V2.11 ; VERSION 2.11 SUBMITED TO DECUS LIBRARY 05-OCTOBER-1984 ;V2.11A ; 09-OCTOBER-1984 MNL ;V2.12 ; FOR /[RE]ORDER SWITCH SYNONIMS FOR ARGUMENT 'NAME' ;V2.12 ; ARE EITHER 'VARIABLE' OR 'COMMON' ;V2.12 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE. ;V2.12 ; 10-OCTOBER-1984 MNL ;V2.13 ; ADDED /SAVE_INDEX CAPABILITY ;V2.13 ; CHANGED MODULES INDEX,IOLINE,TABLE,OPENCLOSE,STORE. ;V2.13 ; 11-OCTOBER-1984 MNL ;V2.14 ; IMPROVED COMMAND LINE INPUT AND PARSEING. CAN NOW ;V2.14 ; HAVE CONTINUATION LINES AS LONG AS SWITCH/FILE SPEC ;V2.14 ; IS NOT SPLIT. ALSO ALLOW INTERCHANGEABLE USE OF ;V2.14 ; '=' AND ':' IN SWITCH VALUES/ARGUMENTS. ;V2.14 ; CHANGED FILES INDEX,IOLINE,OPENCLOSE ;V2.14 ; 17-OCTOBER-1984 MNL ;V2.15 ; ADDED TO STATISTICS ACCOUNTING FOR ALL TYPES OF TOKENS ;V2.15 ; CORRECTED LIBRARY_POINTER_TABLE IN TABLE.MAC, AS SOME ;V2.15 ; ENTRIES WERE NOT IN LEXICOGRAPHIC ORDER USEING THE ;V2.15 ; ASCII COALLATING SEQUENCE. ;V2.15 ; BUG IN 2ND TITLE LINE-FOLLOWING /SAVE_INDEX IN /DO_SUPER;V2.15 ; LEFT IN MODULE NAME ;V2.15 ; CHANGED FILES INDEX,IOLINE,TABLE,STAT,LINETYPE,STORE, ;V2.15 ; OPENCLOSE ;V2.15 ; 13-NOVEMBER-1984 MNL ;V2.16 ; BUG IN FLOW CHART-CAUSED ACCESS ERROR. ;V2.16 ; DID NOT PRPERLY UPDATE POINTERS IN PHASE_2_ACTION_6 ;V2.16 ; WHEN MOVEING UP ELSE(IF) SECTION ALONG SIDE PRECEEDING ;V2.16 ; SECTION AND HAVEING TO FILL OUT TO RIGHT JAGGED EDGE OF ;V2.16 ; SECTION TO LEFT. ;V2.16 ; ADDED CHECK FOR NO LOOP AROUND ON LOGICAL IF FOR ;V2.16 ; RETURN AND STOP ;V2.16 ; ALSO ADDED CHECK CODE TO DEBUG ROUTINE CHECK_TABLEAU ;V2.16 ; CHANGED MODULES INDEX,IOLINE,CHART ;V2.16 ; 26-NOVEMBER-1984 MNL ;V2.17 ; ACCOUNT FOR LONGER DCL COMMAND BUFFER AND FILE NAMES ;V2.17 ; IN V4.0. NEEDED TO ENLARGE HEAP MANAGEMENT TO HANDLE ;V2.17 ; 320 BYTE BLOCKS AS A REGULAR ITEM. ;V2.17 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE,HEAP,TABLE,STAT ;V2.17 ; VERSION 2.17 SUBMITTED TO DECUS LIBRARY AS UPDATE 26-NOVEMBER 1984 ;V2.17A ; VERSION 2.17 SUBMITTED TO FALL 84 DECUS (ANAHEIM) VAX SIG TAPE ;V2.17B ; 17-JANUARY-1985 MNL ;V2.18 ; EXPANDED HANDLEING OF EQUIVALENCED VARIABLES. ;V2.18 ; THE SYMBOL PROPERTIES USED AND CHANGED ARE NOW PROPIGAED;V2.18 ; AROUND ALL THE EQUIVALENCED VARIABLES. ;V2.18 ; FIXED BUG IN PARSEING /(RE)ORDER ARG VALUES ;V2.18 ; FIXED BUG IN CHECKING IF /REORDER USED ;V2.18 ; CHANGED MODULES INDEX,IOLINE,STORE,OPENCLOSE,SUPER ;V2.18 ; 01-FEBRUARY-1985 MNL ;V2.19 ; FIXED BUG IN OUTPUT. ADDED FEATURE TO ALLOW THE DATA ;V2.19 ; FOR THE SUPER INDEX TO BE SAVED IN A PERMINANT ISAM ;V2.19 ; FILE FOR THE USER TO MANIPULATE. ;V2.19 ; ADDED SWITCH /TYPE-SAME AS /LIST=TT: ;V2.19 ; ADDED SWITCH /NULL-SAME AS /LIST=NL: ;V2.19 ; CHANGED MODULES INDEX,IOLINE,OUTPUT,SUPER,OPENCLOSE ;V2.19 ; TABLE ;V2.19 ; 05-FEBRUARY-1985 MNL ;V2.20 ; ADDED SWITCHES /ADD_PRESERVE= /RESTORE= TO ADD DATA ;V2.20 ; TO PREVIOUSLY PRESERVED DATA AND /RESTORE TO RESTORE ;V2.20 ; PREVIOUSLY PRESERVED DATA. ;V2.20 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE,SUPER ;V2.20 ; 04-APRIL-1985 MNL ;V3.00 ; UPGRADE TO MATCH ENHACEMENTS OF NEW VERSION OF FORTRAN ;V3.00 ; RELEASED WITH VMS 4.0. ;V3.00 ; CHANGES DONE IN INCREMENTS-LOGGED HERE AS WORKED ON ;V3.00 ; OPTIONAL EXTENT OF LINE TO 132 CHARS-BOTH AS SWITCH AND ;V3.00 ; AS "OPTION" ;V3.00 ; CHANGED MODULES INDEX,IOLINE,OPENCLOSE,LINETYPE,EVAL ;V3.00 ; EVAL. ;V3.00 ; ADDED %FILL INTRINSIC FUNCTION ;V3.00 ; CHANGED MODULES LINETYPE,TABLE,STAT ;V3.00 ; ADDED NEW KEY WORDS BUT TEMP TREAT AS NOOPS ;V3.00 ; DICTIONARY ;V3.00 ; ENDMAP ;V3.00 ; ENDSTRUCTURE ;V3.00 ; ENDUNION ;V3.00 ; MAP ;V3.00 ; RECORD ;V3.00 ; STRUCTURE ;V3.00 ; UNION ;V3.00 ; VOLITILE ;V3.00 ; TOTAL OF 9 NEW KEY WORDS.CHANGED MODULES:TABLE,LINETYPE ;V3.00 ; EVAL,STAT,CHART. ;V3.00 ; UPDATED SYMBOL STORAGE ELEMENT TEMPLATE ;V3.00 ; CHANGED MODULES STORE,OUTPUT ;V3.00 ; ADDED STORAGE ANF CODE FOR UP TO 255 LEVELS OF STRUCTURE;V3.00 ; DEFINITION NESTING ;V3.00 ; CHANGED MODULES TABLE,LINETYPE,INDEX ;V3.00 ; ADDED PARSE OF STRUCTURE AND RECORD STATEMENTS ;V3.00 ; MODIFIED MODULE EVAL ;V3.00 ; AMMEND SYMBOL TABLE STRUCTURE TO ACCOUNT FOR STRUCRURED;V3.00 ; VARIABLES. THE STRUCTURE NAME POINTS TO MULTI LEVEL ;V3.00 ; OUTLINE OF STRUCTURE. ADD ROUTINES TO OUTPUT AND DELETE ;V3.00 ; ELEMENTS FROM SYMBOL TABLE. MODIFIED STORE,TABLE,IOLINE ;V3.00 ; AND OUTPUT ;V3.00 ; SET UP STORE SYMBOL TO KEEP TRACK OF THE LAST DEFINED ;V3.00 ; STRUCTURE NAME AND WHEN A STRUCTURE LEVEL ABOVE 1 IS ;V3.00 ; ENTERED, PUT IT IN THE RIGHT LEVEL OF THE STRUCTURE DEF ;V3.00 ; MODIFIED STORE,TABLE,STAT. ;V3.00 ; PUT IN CODE TO SCAN OVER ELEMENTS OF STRUCTURED VARS ;V3.00 ; MODIFIED EVAL.MAR ;V3.00 ; THE SPECIAL TOKEN %FILL APPEARS WHERE AN IDENTIFYER IS ;V3.00 ; EXPECTED. WHEN IT IS FOUND, THE ELEMENT ENTERED IN THE ;V3.00 ; LINE_TOKEN_QUEUE IS THAT OF AN IDENTIFIER WITH SYMBOL ID;V3.00 ; LENGTH OF 0 CHARCTERS ;V3.00 ; MODIFIED LINETYPE,STORE ;V3.00 ; MISSED THAT RECORD STATEMENT CAN BE IMBEDDED IN A ;V3.00 ; SUB STRUCTURE DECLARATION ALSO THAT SUB STRUCTURE CAN ;V3.00 ; DECLARE NAME LIST NOT JUST ONE NAME FOR SUB STRUCTURE ;V3.00 ; OF DECLARATION. MODIFIED STORE AND EVAL ;V3.00 ; ALOCATED BLOCKS FORM THE HEAP ARE ZEROED BEFORE DELIVERY;V3.00 ; CHANGED MODULES STORE,HEAP,CHART ;V3.00 ; 8-APRIL-1985 MNL ;V3.00 ; BUG FOUND IN GETTING LINE AND CHECKING FOR COMMENT WHEN ;V3.01 ; '!' IS LEADING CHAR NOT IN COL 1. MOD INDEX, IOLINE ;V3.01 ; 15-APRIL-1985 MNL ;V3.02 ; IMPROVED ERROR MESSAGE OUTPUTS-ADDED TO LIST FILE WHERE ;V3.02 ; AND ADDED USE OF SYSTEM $PUTMSG UTILITY WHERE NEEDED ;V3.02 ; MODIFIED FLOW,INDEX,IOLINE,OPENCLOSE,SUPER,CHART,OUTPUT ;V3.02 ; FIXED MINOR BUGS IN OPENCLOSE AND TABLE. ;V3.02 ; 18-APRIL-1985 MNL ;V3.03 ; HANDLEING OF THE STRUCTURE STATEMENT NOT CORRECT. DID ;V3.03 ; NOT HANDLE CASE OF NESTED STRUCTURE THAT ALSO DEFINED ;V3.03 ; A STRUCTURE. MODIFIED EVAL,STORE,INDEX,IOLINE ;V3.03 ; 16-MAY-1985 MNL VERSION V3.03 SUBMITTED AS UPDATE TO DECUS ;V3.03A ; 06-JUNE-1985 MNL ;V3.04 ; ADDED NEW SWITCH AND MODULE TO INDEX. NEW SWITCH IS ;V3.04 ; /CALL_ARGUMENTS AND MODULE IS ARGUMENTS.MAR. THIS IS A ;V3.04 ; SPECIAL CASE OF THE SUPER INDEX THAT GOES THROUGH ALL ;V3.04 ; DATA GATHERED FOR A SUPER INDEX AND OUTPUTS FOR EACH ;V3.04 ; MODULE THE NAME OF EACH ARGUMENT IN THE MODULE,AND FOR ;V3.04 ; EACH CALLING MODULE, THE NAME OF THE VARIABLE PASSED AS ;V3.04 ; EACH ARGUMENT. ;V3.04 ; ADDED MODULE ARGUMENT.MAR,CHANGED MODULES INDEX, ;V3.04 ; OPENCLOSE,IOLINE,TABLE. ;V3.04 ; 10-JUNE-1985 MNL ;V3.05 ; ADDED CAPABILITY TO THE ARGUMENT LISTING TO INCLUDE ;V3.05 ; VARIABLE TYPE. HAD TO ADD TO REST OF PROGRAM CAPABILITY ;V3.05 ; TO COLLECT AND STORE THAT INFORMATION. ;V3.05 ; MODIFIED MODULES EVAL,INDEX,IOLINE,LINETYPE,OPENCLOSE ;V3.05 ; ARGUMENT,OUTPUT,TABLE,STORE,SUPER ;V3.05 ; 13-JUNE-1985 MNL ;V3.06 ; MADE COLLECTION OF ARGUMENT,STORE FOR SUPER INDEX ;V3.06 ; AUTOMATIC. ADDED SWITCH /VARIABLE_TYPE TO OUTPUT ON ;V3.06 ; REGULAR LISTING THE VAR TYPE. MADE /[RE]ORDER SO THAT ;V3.06 ; ONLY THE SELECTED ITEMS ARE TO BE OUTPUT. ADDED ITEM ;V3.06 ; TO REGULAR SUPER INDEX "TYPE" ;V3.06 ; MODIFIED MODULES INDEX,IOLINE,OPENCLOSE,OUTPUT,SUPER ;V3.06 ; TABLE ;V3.06 ; 23-JULY-1985 MNL ;V3.07 ; CHANGED CASE IN MESSAGES IN ENTRY POINT XREF ;V3.07 ; CHANGED MODULE FLOW,INDEX,IOLINE ;V3.07 ; CALL FROM BERNADETTE TUSIM ;V3.07 ; RCA ;V3.07 ; CAMDEN, N.J. ;V3.07 ; HAD PROBLEMS WITH INDEX UNDER V4.X VMS ;V3.07 ; V4.0 VMS PROBLEMS FIXES ;V3.07 ; 2 CALLS TO LIB$xx ROUTINES NOT PIC, ADDED G^ ;V3.07 ; INDEX ;V3.07 ; PARAMETER STATEMENT OK WITHIN STRUCTURE DEF. ;V3.07 ; LINETYPE,STORE ;V3.07 ; OTHER BUG THAT SHOWED UP DURING DEBUG OF LAST PROBLEM ;V3.07 ; STORE ;V3.07 ; REDO OF DOCUMENT BUILD V3.X METHOD NO LONGER GOOD ;V3.07 ; 26-JULY-1985 MNL ;V3.08 ; BUG HANDLEING (BLANK COMMON) NAME WITH TYPES ;V3.08 ; CHANGED MOUDLES INDEX,IOLINE,TABLE,OUTPUT ;V3.08 ; 13-AUGUST-1985 MNL ;V3.09 ; BUG IN NAMEING TOKENS-SOME STD FORTRAN LIBRARY ROUTINES ;V3.09 ; HAD SAME NAME AS FORTRAN KEY WORDS (REAL,ASSIGN,NOT, ;V3.09 ; CLOSE) AND REDEFINED TOKEN NUMBERS. CAUSED PROBLEMS ;V3.09 ; WHEN REAL WAS USED IN IMPLICIT STATEMENT. ;V3.09 ; CHANGED MODULES INDEX,IOLINE,TABLE ;V3.09 ; 15-AUGUST-1985 SUBMITTED AS UPDATE TO DECUS PROGRAM LIBRARY ;V3.09A ; 15-AUGUST-1985 MNL ;V3.10 ; CALL FROM TUSIM JUST AFTER I GOT BACK FROM POST OFFICE. ;V3.10 ; BUG IN HANDLEING "ENTRY". ENTRY CAN APPEAR ANYWHERE ;V3.10 ; AFTER THE FUNCTION/SUBROUTINE STATEMENT NOT JUST AFTER ;V3.10 ; ALL THE TYPE DECLARATION STATEMENTS ;V3.10 ; CHANGED MODULES INDEX,IOLINE,LINETYPE ;V3.10 ; 22-AUGUST-1985 MNL ;V3.11 ; BUG IN FLOW CHART WHERE IF() ACTION IS NESTED IN ;V3.11 ; IF()THEN... AND IS LAST ITEM AND AT BOTTOM OF THAT ;V3.11 ; CONDITION LINE HAS TWO OUTPUT LINES GOING OUT WHEN ONLY ;V3.11 ; ONE SHOULD BE ;V3.11 ; ALL OUTPUT LINES HAVE TRAILING BLANKS AND NULLS DELETED ;V3.11 ; FLOW CHART FOR DO LOOPS ENDING IN ENDDO AND CONTINUE ;V3.11 ; CLEANED UP TO TAKE UP LESS ROOM AND BE CLEARER ;V3.11 ; MANY BUGS IN MOVEING BLOCKS OF CHART WHERE ONLY ONE ;V3.11 ; ENDIF WITH NOTHING ABOVE IT HAD EXTRAINIOUS LINE COMEING;V3.11 ; IN FROM ABOVE FROM NOWHERE ;V3.11 ; ENTRANCE VIA JUMP (PHASE_2_E) FIXED (FINALLY) ;V3.11 ; MODIFIED INDEX,IOLINE,CHART ;V3.11 ; 12-SEPTEMBER-1985 MNL ;V3.12 ; INCREASED BUCKET SIZE FOR ISAM SAVED DATA FROM SUPER ;V3.12 ; INDEX. ;V3.12 ; MODIDIED INDEX,IOLINE,OPENCLOSE ;V3.12 ; BUG REPORT FORM CAPT DONALD E. JONES OF KIRTLAND A.F.B. ;V3.12 ; WITH SAMPLE PROGRAM OF ERROR. IN LOOKING FOR ERROR ;V3.12 ; ANOTHER PROBLEM SHOWED UP-ERROR IN FLOW CHART WHEN ;V3.12 ; DEST LABEL OF SIMPLE GOTO DOES NOT EXIST. ;V3.12 ; CHANGED CHART.MAR ;V3.12 ; REPORTED PROBLEM WAS THAT LINES OF SOURCE CODE GOT LOST ;V3.12 ; FOUND PROBLEM IN IOLINE, INPUT_BUFFER_FLAG WAS ;V3.12 ; INCREMENTED WHERE IT SHOULD HAVE BEEN SET TO 1 ONLY. ;V3.12 ; THIS CAUSED PROBLEMS WHEN INCLUDES RESTORED FLAG FROM ;V3.12 ; BYTE TO LONG. MODIFIED IOLINE,INDEX. ;V3.12 ; 17-SEPTEMBER-1985 MNL ;V3.13 ; MODS TO FLOW CHART TO DO COMPACTION WHERE POSSABLE. ;V3.13 ; SLIDE UP SINGLE ELEMENTS WHERE POSSABLE ;V3.13 ; SLIDE UP GOTO FLOW CONNECTOR WHERE POSSABLE ;V3.13 ; MODIFIED INDEX,IOLINE,CHART ;V3.13 ; 2-OCTOBER-1985 MNL ;V3.14 ; FLOW CHART ROUTINES GOT MIXED UP AS TO WHEN TO USE ;V3.14 ; FLOW CONNECTORS OR LINES,SOMETIMES GOT ONE OR OTHER OR ;V3.14 ; BOTH-AND IN WRONG OFFSETS ;V3.14 ; MODIFIED INDEX,IOLINE,CHART ;V3.14 ; 2-DECEMBER-1985 PREPARED FOR SUBMISSION TO FALL-85 DECUS ;V3.14A ; SYMPOSIUM TAPE AND DECUS LIBRARY UPDATE ;V3.14A ; 2-APRIL-1986 MNL ;V3.15 ; ENHANCED /STATS SWITCH TO MAKE VARIOUS PARTS ;V3.15 ; OF STATS SELECTABLE. CHANGED MODULES:INDEX,OPENCLOSE ;V3.15 ; IOLINE,STATS. ;V3.15 ; 17-APRIL-1986 MNL ;V3.16 ; BUG IN STRUCTURE OUTPUT WITH /NOINDEX FOUND ALSO ;V3.16 ; IN FLOW CHART WHEN ERROR EXISTS IN STRUCTURED ;V3.16 ; NESTING. CHANGED MODULES INDEX,IOLINE,CHART,STORE ;V3.16 ; 21-APRIL-1986 MNL ;V3.17 ; BUG IN VARIABLE TYPE DEC'S USED WITH IMPICIT AND ;V3.17 ; SAVED FOR REUSE BUT NOT INITALLY SET TO TYPE. ;V3.17 ; DEFAULT TYPE TABLE WAS THEN RESET TO INITAL VALUES ;V3.17 ; FROM IMPLICT SETTINGS. ;V3.17 ; ALSO PROBLEM WRONG WAY BRANCH ON G_FLOATING FLAG ;V3.17 ; CHANGED MODULES INDEX,IOLINE,EVAL,TABLE,OUTPUT ;V3.17 ; 19-MAY-1986 MNL ;V3.18 ; TWO BUGS IN CHECK_RECORD. FIRST DID NOT CHECK TO SEE IF ;V3.18 ; POINTER TO SYMBOL TABLE ENTRY WAS ZERO AND DID A WRONG ;V3.18 ; BRANCH WHILE CHECKING INSIDE OF PARRENS AND A NON- ;V3.18 ; IDENTIFIER WAS FOUND.CHANGED MODULES INDEX,IOLINE,EVAL. ;V3.18 ; 4-AUGUST-1986 MNL ;V3.19 ; PROBLEM REPORTED BY PHILIP D. KUTZENCO OF AMERICAN ;V3.19 ; CYANAMID COMPANY OF STAMFORD,CT. FLOW CHART BOMBED WITH ;V3.19 ; ACCESS ERROR. FOUND THAT PROBLEM OCCOURED WHEN MOVEING ;V3.19 ; BLOCKS OF SYMBOLS AROUND AND ONE OF THE PIXELS IS A ;V3.19 ; GOTO TO A LABEL NOW AT THE SAME ROW AS THE DEST, CODE ;V3.19 ; DID NOT ACCOUNT FOR THIS PROBLEM. IN SOLVEING THIS ;V3.19 ; PROBLEM FOUND ANOTHER WHERE TWO LABELS EXISTED ON THE ;V3.19 ; SAME ROW CAUSED THE RIGHT ONE TO BE DROPPED ONE ROW ;V3.19 ; BUT THE CONNECTORS WERE NOT PROPERLY HANDLED. ;V3.19 ; CHANGED MODULES INDEX,IOLINE,CHART. ;V3.19 ; 6-AUGUST-1986 MNL ;V3.20 ; FORTAN COMPILER ACCEPTS "!" IN COLLUM 6 AS VALID ;V3.20 ; CONTINUATION LINE NOT IN LINE COMMENT ;V3.20 ; CHANGE MODULES INDEX,IOLINE ;V3.20 ; 19-SEP-1986 MNL ;V3.21 ; ERROR IN HANDLEING SOME OF THE SWITCHES OF THE OPTIONS ;V3.21 ; STATEMENT. CHANGED MODULES EVAL,LINETYPE,IOLINE,INDEX ;V3.21 ; 23-SEP-1986 MNL ;V3.21A ; PREPARED FOR SUBMISSION TO FALL 86 DECUS SIG TAPE ;V3.21A ; 27-OCT-1986 MNL ;V3.22 ; BUG FOUND IN HANDLEING IMPLICIT STATEMENT WHERE MULTIPLE;V3.22 ; TYPES SPECIFIED-TOOK WRONG WAY BRANCH ON SEPERATEING ;V3.22 ; COMMA. MODIFIED MODULES INDEX,IOLINE,EVAL. ;V3.22 ; 13-JAN-1987 ;V3.22A ; UPDATE SUBMITTED TO DECUS LIBRARY ;V3.22A ; 6-FEB-1987 ;V3.23 ; MODIFIED FLOW CHART GENERATION TO OUTPUT MINI FORM OF ;V3.23 ; FLOW CHART.MODIFER TO /FLOW=SMALL OR =MINI. ;V3.23 ; MODIFIED INDEX,OPENCLOSE,IOLINE,CHART. ;V3.23 ; 10-MAR-1987 ;V3.24 ; MODIFIED PRINTOUT OF VARIABLE TYPE TO INCLUDE IF IT ;V3.24 ; IS AN ARRAY. MODIFIED OUTPUT,INDEX,IOLINE,TABLE. ;V3.24 ; 6-AUG-1987 MNL ;V3.25 ; BUG IN BUILDING TABLE OF STRUCTURED VARIABLE FORM. ;V3.25 ; WHERE "RECORD" IS USED IN STRUCTURE DEF, PUT NAME OF ;V3.25 ; STRUCTURE AND LEADING FIELD BACKWARD.DID NOT PUT IN ;V3.25 ; POINTER TO APPENDED STRUCTURE.MODIFIED EVAL,INDEX, ;V3.25 ; IOLINE,STORE. ;V3.25 ; ; .PSECT PURE_DATA,NOEXE,CON,NOWRT,SHR,GBL,RD ; ; LOCAL PURE DATA ; NO_END: .ASCID /INDEX-E-Missing End Statement/ CODE_1: .LONG 1 ;V1.4 CODE_2: .LONG 2 ;V1.4 CODE_3: .LONG 3 ;V1.4 CODE_4: .LONG 4 ;V1.4 CODE_5: .LONG 5 ;V1.4 .PSECT IMPURE_DATA,NOEXE,CON,WRT,NOSHR,GBL,RD,LONG ; ; LOCAL IMPURE DATA ; SCRATCH:.BLKL 2 ARG: .LONG 2 .ADDRESS ARG1,ARG2 ARG1: .LONG 0 ARG2: .LONG 0 DESCRIPTER: ;V2.00 .LONG 0,0 ;V2.00 .PSECT CODE,EXE,CON,NOWRT,SHR,GBL,NOVEC .ENTRY INDEX,^M ; ; ONE TIME ONLY CODE INITIALLIZATION ; ; FLAGS CLEARED CLRL ENTRY_SAVED_FLAG ;V1.12 CLRL SUPER_SAVED_FLAG ;V1.32 CLRL INDEX_SAVED_FLAG ;V2.13 ; LINES PER PAGE ON LINE PRINTER CALLG NULL,G^LIB$LP_LINES ;V3.07 MOVL R0,LINES_PER_PAGE ; ; OPEN SCRATCH FILES CALLG NULL,OPEN_SCRATCH CALLG NULL,OPEN_CHART_SCRATCH ;V2.00 ; INIT SYMBOL TABLE AREA CLRQ SYMBOL_TABLE_QUEUE ;V1.10 CLRL SYMBOL_TABLE_QUEUE+8 ;V1.10 MOVAL LINE_TOKEN_QUEUE,LINE_TOKEN_QUEUE MOVAL LINE_TOKEN_QUEUE,LINE_TOKEN_QUEUE+4 MOVAL LABEL_QUEUE,LABEL_QUEUE ;V2.00 MOVAL LABEL_QUEUE,LABEL_QUEUE+4 ;V2.00 MOVAL VARIABLE_QUEUE,VARIABLE_QUEUE ;V2.00 MOVAL VARIABLE_QUEUE,VARIABLE_QUEUE+4 ;V2.00 ; INIT THE STATISTICS BUFFERS ;V1.4 MOVC5 #0,NULL,#0,#,TIME_INPUT ;V1.31 MOVC5 #0,NULL,#0,#,- ;V2.15 START_ACC_TOKEN_STAT ;V2.15 MOVC5 #0,NULL,#0,#,START_TOKEN_STAT ;V2.15 ; INIT THE HEAP CALLG NULL,INIT_HEAP ; ; NEW FILE INITIALIZATION CODE LOOP ENTRY POINT ; ; INIT TIMER FOR STATISTICS ;V1.4 ; ;V1.4 CALLG NULL,G^LIB$INIT_TIMER ;V1.4 NEW_FILE: ;V1.4 ; ;V1.4 ; ;**-1 ; GET COMMAND FROM OPERATOR, PARSE IT AND OPEN FILES ; CALLG NULL,OPEN ; GET DAY-TIME FOR LIST HEADER PUSHAL DAY_TIME CALLS #1,G^LIB$DATE_TIME ;V3.07 ; CLEAR END OF FILE FLAG AND INPUT BUFFER IN USE FLAG CLRL END_OF_FILE CLRL DEFFERED_END_OF_FILE CLRL INPUT_BUFFER_FLAG ; ; COMMAND TIME STATISTICS SAVE ;V1.4 ; ;V1.4 PUSHAL TIME_COMMAND ;V1.4 PUSHAL CODE_1 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_COMMAND+8 ;V1.4 PUSHAL CODE_2 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_COMMAND+12 ;V1.4 PUSHAL CODE_3 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_COMMAND+16 ;V1.4 PUSHAL CODE_4 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_COMMAND+20 ;V1.4 PUSHAL CODE_5 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 CALLG NULL,G^LIB$INIT_TIMER ;V1.4 ;V1.4 ; ;V1.4 ; NEW SORCE MODULE INITIALIZATION CODE ; NEW_MODULE: ; ; MODULE PARSE LOOP ; SET STATUS WORD MOVL #PARSE_LINES,STATUS_WORD CLRL LINES_ON_PAGE ; INITIALIZE STATISTICS ACCUMULATION ; INI NEW SOURCE DATA INCL LINE NUMBER,PAGE NUMBER CLRL LINE_NUMBER CLRL PAGE_NUMBER CLRL INCLUDE_LEVEL CLRL PROGRAM_LEVEL CLRL BLOCK_DATA_FLAG CLRL END_FLAG CLRL PROGRAM_FLAG CLRB STRUCTURE_LEVEL ;V3.00 CLRB STRUCTURE_COUNT ;V3.00 BITL #EXTEND_SOURCE_FLAG,FLAG_WORD+4 ;V3.05 BNEQ 5$ ;V3.05 BICL #OPTION_EXTEND_SOURCE_FLAG,FLAG_WORD+4 ;V3.00 BRB 6$ ;V3.05 5$: BISL #OPTION_EXTEND_SOURCE_FLAG,FLAG_WORD+4 ;V3.05 6$: BITL #NOI4_FLAG,FLAG_WORD+4 ;V3.05 BNEQ 7$ ;V3.05 BICL #OPTION_NOI4_FLAG,FLAG_WORD+4 ;V3.05 BRB 8$ ;V3.05 7$: BISL #OPTION_NOI4_FLAG,FLAG_WORD+4 ;V3.05 8$: BITL #G_FLOATING_FLAG,FLAG_WORD+4 ;V3.05 BNEQ 9$ ;V3.05 BICL #OPTION_G_FLOATING_FLAG,FLAG_WORD+4 ;V3.05 BRB 10$ ;V3.05 9$: BISL #OPTION_G_FLOATING_FLAG,FLAG_WORD+4 ;V3.05 10$: CALLG NULL,SET_DEFAULT_VAR_TYPE ;V3.05 TSTL INDEX_SAVED_FLAG ;V3.05 BEQL 1$ ;V2.13 BRW 4$ ;V2.13 1$: ;V2.13 MOVC3 #31,DEFAULT_NAME,MODULE_NAME MOVC5 #0,NULL,#^A/ /,#32,CURRENT_MODULE_NAME ; BLANK OUT TITLE NAME ;V1.26 4$: ;V2.13 MOVL ,R6 ;GET ADDRESS OF INPUT FILE NAME ;V1.25 MOVL ,R7 ;GET SIZE OF INPUT FILE NAME ;V1.25 MOVC5 #0,NULL,#0,#32,IN_FILE_NAME ;INPUT FILE NAME STRING ;V1.25 LOCC #^A/]/,R7,(R6) ;FIND ']' PRECEEDING FILE NAME ;V1.25 BNEQ 2$ ;FOUND IT ;V1.25 SUBL3 #1,R6,R1 ;NOT USED-DEF IS BEGING OF STR ;V1.25 2$: ADDL3 #1,R1,R8 ;PASS OVER "]" ;V1.25 SUBL3 R6,R8,R0 ;GET NUMBER OF CHRS PASSED OVER ;V1.25 SUBL2 R0,R7 ;NUMBER OF CHRS LEFT ;V1.25 LOCC #^A/./,R7,(R8) ;FIND TERMINATEING '.' ;V1.25 SUBL3 R8,R1,R7 ;FIND LENGTH OF FILE NAME STRING;V1.25 CMPL #31.,R7 ;MAKE SURE NOT TO LONG ;V1.25 BGEQ 3$ ;OK ;V1.25 MOVL #31.,R7 ;-TOO LONG-TRUNCATE TO 31 CHRS ;V1.25 3$: MOVB R7,IN_FILE_NAME ;LOAD LENGTH ;V1.25 MOVC3 R7,(R8),IN_FILE_NAME+1 ;LOAD FILE NAME ;V1.25 ; ; GET A LINE TO PARSE (INCLUDEING COMMENTS) ; CALLG NULL,GET_LINE NEW_LINE: ; ; IF E.O.F. AND NOT IN INCLUDE FILE GO TO CLOSE PROCESSING ; IF E.O.F. AND IN INCLUDE FILE-POP UP ONE LEVEL IN PROCESSING ; AND GET NEW LINE TSTL END_OF_FILE ;END OF FILE CHECK BNEQ 3$ ;V1.4 BRW 1$ ;V1.4 3$: TSTL LINE_NUMBER ;CHECK FOR REQUIRED END PROCESSING ;V1.4 BNEQ 1003$ ;V1.4 BRW 2$ ;V1.4 1003$: PUSHAL NO_END ;V1.4 CALLS #1,G^LIB$PUT_OUTPUT ;V1.4 PUSHAL NO_END ;V3.02 CALLS #1,ERROR_LINE ;V3.02 CALLG NULL,PARSE_BAD_END ;V1.4 ; RESET SYMBOL TABLE AREA ;V1.4 CALLG NULL,CLEAR_SYMBOL_TABLE ;V1.4 PUSHAL TIME_CLEANUP ;V1.4 PUSHAL CODE_1 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+8 ;V1.4 PUSHAL CODE_2 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+12 ;V1.4 PUSHAL CODE_3 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+16 ;V1.4 PUSHAL CODE_4 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+20 ;V1.4 PUSHAL CODE_5 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 CALLG NULL,G^LIB$INIT_TIMER ;V1.4 CALLG NULL,DUMP_STATS ;V1.4 BITL #LOG_FLAG,FLAG_WORD ;LOG COMPLETEION OF MODULE ;V2.00 BEQL 2$ ;V2.00 LOCC #0,#31,MODULE_NAME ;V2.00 SUBL3 R0,#31,DESCRIPTER ;V2.00 ADDL2 #,DESCRIPTER ;V2.00 MOVAL MODULE_MESSAGE,DESCRIPTER+4 ;V2.00 PUSHAL DESCRIPTER ;V2.00 CALLS #1,G^LIB$PUT_OUTPUT ;V2.00 2$: JMP CLOSE_DOWN ;**-6 1$: ; USE LIB$FREE_VM TO RELEASE MEMORY IN USE IN LINE TOKEN QUEUE 4$: REMQUE @LINE_TOKEN_QUEUE,R11 ;REMOVE ELEMENT FROM QUEUE BVS 5$ ;IF QUEUE EMPTY-DONE CVTWL 14(R11),ARG1 ;GET SIZE IN BYTES MOVL R11,ARG2 ;BASE ADDRESS CALLG ARG,FREE ;RELEASE MEMORY TO HEAP BRB 4$ 5$: ; ; DETERMINE LINE TYPE AND DOUBLE CHECK IT ; CALLG NULL,GET_LINE_TYPE ; ; PARSE THE LINE AND SAVE RESULTS ; CALLG NULL,EVAL ; ;V2.00 ; IF FLOW CHART WANTED-CALL DATA GATHER ROUTINE ;V2.00 ; ;V2.00 BITL #CHART_FLAG,FLAG_WORD ;V2.00 BEQL 7$ ;V2.00 BITL #GET_ENTRY_FLAG,FLAG_WORD ;V2.00 BNEQ 7$ ;V2.00 CALLG NULL,ACCUMULATE_CHART ;V2.00 7$: ;V2.00 ; ; IF END- DO OUTPUT OF ACCUMULATED DATA AND STATISTICS ; AND GO TO NEW MODULE LOOP ; TSTL END_FLAG BNEQ 1005$ ;V1.4 BRW 6$ ;V1.4 ; RESET SYMBOL TABLE AREA ;V1.4 1005$: CALLG NULL,CLEAR_SYMBOL_TABLE ;V1.4 PUSHAL TIME_CLEANUP ;V1.4 PUSHAL CODE_1 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+8 ;V1.4 PUSHAL CODE_2 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+12 ;V1.4 PUSHAL CODE_3 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+16 ;V1.4 PUSHAL CODE_4 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_CLEANUP+20 ;V1.4 PUSHAL CODE_5 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 CALLG NULL,G^LIB$INIT_TIMER ;V1.4 ; ;V2.00 ; CONSTRUCT AND OUTPUT FLOW CHART ;V2.00 ; ;V2.00 BITL #CHART_FLAG,FLAG_WORD ;V2.00 BEQL 8$ ;V2.00 BITL #GET_ENTRY_FLAG,FLAG_WORD ;V2.00 BNEQ 8$ ;V2.00 CALLG NULL,DO_CHART ;V2.00 8$: ;V2.00 CALLG NULL,DUMP_STATS ;V1.4 BITL #LOG_FLAG,FLAG_WORD ;LOG COMPLETEION OF MODULE ;V2.00 BEQL 1008$ ;V2.00 LOCC #0,#31,MODULE_NAME ;V2.00 SUBL3 R0,#31,DESCRIPTER ;V2.00 ADDL2 #,DESCRIPTER ;V2.00 MOVAL MODULE_MESSAGE,DESCRIPTER+4 ;V2.00 PUSHAL DESCRIPTER ;V2.00 CALLS #1,G^LIB$PUT_OUTPUT ;V2.00 1008$: ;V2.00 JMP NEW_MODULE ;**-1 6$: ; ; GET NEW LINE ; CALLG NULL,GET_LINE JMP NEW_LINE CLOSE_DOWN: ; ; DO CLOSE PROCESSING ; CALLG NULL,CLOSE ;**-2 ; ; GO GET NEW COMMAND ; JMP NEW_FILE .END INDEX