.TITLE OUTPUT_TABLE FOR SIMPLE INDEX .ENABLE DEBUG .SUBTITLE STORAGE AREA .PSECT IMPURE_DATA,RD,WRT,NOSHR,NOEXE,GBL,CON,LONG OUTPUT_LINE: .BLKB 132 OUTPUT_STRING: .WORD 0,0 .LONG 0 DESCRIPTER: .LONG 0,0 NUMBER: .LONG 0 CHAR_COUNT: .LONG 0 LINE_COUNT: .LONG 0 NEST_LEVEL: ;V3.00 .LONG 0 ;V3.00 TAG2_AG_2: ;V2.08 .ASCID /$Argument_0000/ ;V2.08 .ADDRESS OUTPUT_LINE ERROR_NUMBER: ;V3.02 .LONG 0 ;V3.02 .PSECT PURE_DATA,RD,NOWRT,SHR,NOEXE,GBL,CON 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 SIZE_TABLE: .LONG 9,99,999,9999,99999,999999,9999999,99999999,999999999 ENTRY_SUPER_ERROR: .ASCID /INDEX-F-Error Writeing to Entry Super Index Scratch File/ SUPER_ERROR: .ASCID /INDEX-F-Error Writeing to Super Index Scratch File/ ENTRY_ERROR: .ASCID /INDEX-F-Error Writeing to Entry Index Scratch File/ TAG2_CN:.ASCID /$Common_Name/ ;V2.03 TAG2_SF:.ASCID /$Statement_Function/ ;V2.03 TAG2_EP:.ASCID /$Entry_Point/ ;V2.03 TAG2_PA:.ASCID /$Parameter/ ;V2.03 TAG2_BC:.ASCID /$Blank_Common/ ;V2.03 TAG2_AG:.ASCID /$Argument/ ;V2.03 TAG2_LO:.ASCID /$Local/ ;V2.03 TAG2_ST:.ASCID /$Structure/ ;V3.00 TAG2_SE:.ASCID /$Structure_Element/ ;V3.00 FILL: .ASCII /+.../ ;V3.00 .PAGE .SUBTITLE INITIALIZATION CODE .PSECT CODE,RD,NOWRT,SHR,EXE,GBL,CON .ENTRY DUMP_INDEX,^M ; ;V1.4 ; ACCUMULATE TIME STATS FOR PARSE/BUILD TABLE ;V1.4 ; ;V1.4 PUSHAL TIME_PARSE ;V1.4 PUSHAL CODE_1 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_PARSE+8 ;V1.4 PUSHAL CODE_2 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_PARSE+12 ;V1.4 PUSHAL CODE_3 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_PARSE+16 ;V1.4 PUSHAL CODE_4 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_PARSE+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 CLRL LINES_ON_PAGE ;FORCE A NEW PAGE MOVL #INDEX_OUTPUT,STATUS_WORD ;SAY WHAT HEADER TO USE MOVAL SYMBOL_TABLE_QUEUE,R11 ;GET ADDR OF SYMBOL TABLE MOVL R11,R10 ;WORK ON COPY OF POINTER MOVL #132,LINE_COUNT BITL #NARROW_FLAG,FLAG_WORD BEQL 1$ MOVL #80,LINE_COUNT 1$: .PAGE .SUBTITLE GO CLIMB A TREE PUSHL #-1 ;V1.10 PUSHAL DUMP_SYMBOL ;V1.10 PUSHAL SYMBOL_TABLE_QUEUE ;V1.10 CALLS #3,G^LIB$TRAVERSE_TREE ;V1.10 ;SEE IF DOING GET E.P. ;V1.10 BITL #GET_ENTRY_FLAG,FLAG_WORD BNEQ 5001$ ;YES ;V1.21 JMP 5000$ ;NO ;V1.21 5001$: ;V1.21 ; WE ARE DOING GET E.P. TSTL PROGRAM_FLAG ;WAS THIS MODULES NAME DECLARED ?? BEQL 5002$ ;NO ;V1.21 JMP 5000$ ;YES ;V1.21 5002$: ;V1.21 ; NO-HAVE TO DO PASS THAT INFO ON AT THIS POINT LOCC #0,#31,MODULE_NAME ;FIND LENGTH OF MODULE NAME SUBL2 #MODULE_NAME,R1 CVTLB R1,ENTRY_BUFFER+32 ;LOAD LENGTH MOVC3 #31,MODULE_NAME,ENTRY_BUFFER+33 ;LOAD MODULE NAME MOVC3 #32,ENTRY_BUFFER+32,ENTRY_BUFFER MOVC3 #32,IN_FILE_NAME,ENTRY_BUFFER+64;LOAD FILE NAME ;V1.25 INCL SAVE_ENTRY ;V1.4 $PUT RAB=ENTRY_INDEX_RAB ;WRITE THE RECORD BLBS R0,5000$ MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL ENTRY_INDEX_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL ENTRY_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 5000$: JMP DUMP_STRUCTURE ;V3.00 .PAGE ;V1.10 .SUBTITLE DUMP SYMBOL ACTION ROUTINE ;V1.10 .ENTRY DUMP_SYMBOL,^M MOVL 4(AP),R10 ;V1.10 ; DUMP SYMBOL FOUND 4(AP) ;V1.10 BITL #GET_ENTRY_FLAG,FLAG_WORD ;IS THIS FOR E.P. XREF BNEQ 1030$ BRW 30$ ;NO ; YES OUTPUT AS APPROPRIATE TO SUPER AND ENTRY FILES 1030$: BITL #SYMBOL_FLAG_ENTRY_POINT,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.15 ;IS IT AN ENTRY POINT?? ;V1.15 BNEQ 1031$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;NO-SKIP IT ; LOAD SUPER INDEX WITH SYMBOL NAME & THIS MODULE NAME 1031$: MOVC3 #32,SYMBOL_TABLE_B_SIZE(R10),SUPER_BUFFER ;V1.10 LOCC #0,#31,MODULE_NAME ;FIND LENGTH OF MODULE NAME SUBL2 #MODULE_NAME,R1 CVTLB R1,SUPER_BUFFER+32 ;LOAD LENGTH MOVC3 #31,MODULE_NAME,SUPER_BUFFER+33 ;LOAD MODULE NAME MOVC3 #32,TAG_STRING,SUPER_BUFFER+64 ;LOAD TAG FIELD ;V1.16 BITL #SYMBOL_FLAG_DEFINED_ENTRY_POINT,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;WAS IT DEFINED HERE BNEQ 40$ ;YES ONLY OUTPUT ENTRY NAME INCL SAVE_SUPER ;V1.4 $PUT RAB=SUPER_INDEX_RAB ;WRITE THE RECORD BLBS R0,40$ MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL SUPER_INDEX_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL ENTRY_SUPER_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 40$: MOVC3 #64,SUPER_BUFFER,ENTRY_BUFFER ;COPY FOR ENTRY POINT BUFFER BITL #SYMBOL_FLAG_DEFINED_ENTRY_POINT,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;WAS IT DEFINED HERE BNEQ 41$ ;YES MOVC5 #0,NULL,#0,#32,ENTRY_BUFFER+32 ;NO-CANCELL MODULE NAME 41$: MOVC3 #32,IN_FILE_NAME,ENTRY_BUFFER+64;LOAD FILE NAME ;V1.25 INCL SAVE_ENTRY ;V1.4 $PUT RAB=ENTRY_INDEX_RAB ;WRITE THE RECORD ;V1.4 BLBS R0,42$ ;**-1 MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL ENTRY_INDEX_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL ENTRY_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 42$: MOVL #LIB$_NORMAL,R0 ;V1.10 RET ; CHECK TO SEE IF WE WANT TO OUTPUT THIS SYMBOL 30$: ;LOAD DEFAULT TYPE IF NOT SET YET ;V3.17 TSTL SYMBOL_TABLE_L_TYPE_PTR(R10) ;V3.17 BNEQ 2030$ ;V3.17 MOVZBL SYMBOL_TABLE_S_NAME(R10),R9 ;GET FIRST LETTER OF NAME ;V3.17 SUBL2 #^A/A/,R9 ;CALCULATE OFFSET INTO TABLE ;V3.17 BGEQ 3030$ ; SEE IF NUMBER ;V3.17 MOVAL TYPE_LBL,SYMBOL_TABLE_L_TYPE_PTR(R10) ;V3.17 BRB 2030$ ;V3.17 3030$: ;V3.17 MOVL DEFAULT_TYPES[R9],SYMBOL_TABLE_L_TYPE_PTR(R10);LOAD POINTER ;V3.17 2030$: BITL #GLOBAL_FLAG,FLAG_WORD ;DO WE CHECK FOR GLOBALS ? ;V3.17 BEQL 10$ BITL #SYMBOL_FLAG_GLOBAL,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;YES-IS IT GLOBAL?? ;V1.10 BNEQ 11$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;NO-TRY NEXT SYMBOL 10$: BITL #LOCAL_FLAG,FLAG_WORD ;DO WE WANT LOCALS BEQL 11$ BITL #SYMBOL_FLAG_GLOBAL,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BEQL 11$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET 11$: BITL #USED_FLAG,FLAG_WORD ;IS IT A USED VARIABLE BEQL 12$ BITL #SYMBOL_FLAG_USED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BNEQ 13$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET 12$: BITL #UNUSED_FLAG,FLAG_WORD ;UNUSED VARIABLE BEQL 13$ BITL #SYMBOL_FLAG_USED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BEQL 13$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET 13$: BITL #UNCHANGED_FLAG,FLAG_WORD ;VALUE NOT CHANGED BEQL 14$ BITL #SYMBOL_FLAG_CHANGED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BEQL 14$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET 14$: BITL #CHANGED_FLAG,FLAG_WORD ;VALUE MODFIED BEQL 15$ BITL #SYMBOL_FLAG_CHANGED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BNEQ 15$ MOVL #LIB$_NORMAL,R0 ;V1.10 RET 15$: BITL #IMPORT_FLAG,FLAG_WORD ;V1.3 BEQL 16$ ;V1.3 ; CONDITIONS FOR AN IMPORTED VALUE ;V1.3 ; GLOBAL AND USED ;V1.3 ; CALLED BY ARG AND USED ;V1.3 ; FUNCTION VALUE RETURN ;V1.3 ; CALLING ARGUMENT USED ;V1.3 ; NOT A LABEL ;V1.29 BITL #SYMBOL_FLAG_LABEL,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.02 BNEQ 17$ ;V1.29 BITL #SYMBOL_FLAG_USED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;ALL CASES ARE USED ;V1.10 BEQL 17$ ;V1.3 BITL #SYMBOL_FLAG_CHANGED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;IF IT IS CHANGED-IT ;V1.10 ;IS AN EXPORT EVEN IF ;V1.3 ;IT IS ALSO USED BEFORE ;V1.3 ;CHANGE ;V1.3 BNEQ 17$ ;V1.3 BITL #SYMBOL_FLAG_GLOBAL,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;GLOBAL AND USED ;V1.10 BNEQ 16$ ;V1.3 BITL #SYMBOL_FLAG_CALLED_BY_ARG,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;CALLED BY AND USED ;V1.10 BNEQ 16$ ;V1.3 BITL #SYMBOL_FLAG_CALLING_ARG,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;A USED CALLING ARG ;V1.10 BNEQ 16$ ;V1.3 BITL #SYMBOL_FLAG_ENTRY_POINT,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 ;IS IT AN ENTRY POINT NAME ;V1.10 BEQL 17$ ;V1.3 BITL - ;V1.3 #,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BEQL 16$ ;V1.3 17$: MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;V1.3 16$: BITL #EXPORT_FLAG,FLAG_WORD ;V1.3 BEQL 18$ ;V1.3 ; CONDITIONS FOR AN EXPORTED VALUE ;V1.3 ; GLOBAL AND CHANGED ;V1.3 ; CALLED BY ARG AND CHANGED ;V1.3 ; CALLING ARG AND CHANGED ;V1.3 ; DEFINED ENTRY POINT AND CHANGED ;V1.3 ; NOT A LABEL ;V1.29 BITL #SYMBOL_FLAG_LABEL,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.02 BNEQ 19$ ;V1.29 BITL #SYMBOL_FLAG_CHANGED,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BEQL 19$ ;V1.3 BITL #SYMBOL_FLAG_GLOBAL,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BNEQ 18$ ;V1.3 BITL #SYMBOL_FLAG_CALLED_BY_ARG,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BNEQ 18$ ;V1.3 BITL #SYMBOL_FLAG_CALLING_ARG,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BNEQ 18$ ;V1.3 BITL #SYMBOL_FLAG_DEFINED_ENTRY_POINT,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.10 BNEQ 18$ ;V1.3 19$: MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;V1.3 18$: ;V1.3 ; CHECK FOR COMMON BLOCK FLAG ;V1.11 BITL #COMMON_FLAG,FLAG_WORD ;V1.11 BEQL 60$ ;V1.11 BITL #SYMBOL_FLAG_COMMON_NAME,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V1.11 BNEQ 60$ ;V1.11 61$: MOVL #LIB$_NORMAL,R0 ;V1.11 RET ;V1.11 60$: ;V1.11 ;HAVE PASSED ALL TESTS-OUTPUT THE SYMBOL ;V1.3 ; IS IT TIME TO ACCUMULATE SYMBOL FOR SUPER INDEX?? 2060$: BITL #GET_SUPER_FLAG,FLAG_WORD BNEQ 1060$ ;V2.03 BRW 20$ ;V2.03 1060$: ;V2.03 ; NUMBERS(LABELS) NOT WANTED CMPC3 #1,#^A/(/,SYMBOL_TABLE_S_NAME(R10) ;V1.17 ;MUST NOT MISS "(BLANK_COMMON)" ;V1.17 BEQL 62$ ;V1.17 CMPC5 #1,#^A/A/,#0,#31,SYMBOL_TABLE_S_NAME(R10) ;V1.10 BLEQ 62$ ;V2.03 BRW 20$ ;V2.03 ; FOR THOSE ITEMS NOT ALREADY SO LOADED-LOAD DEFAULT VAR TYPE ;V3.05 62$:; COPY THE INFORMATION TO SUPER INDEX BUFFER ;V3.06 25062$: ;FIRST PUT IN THE TYPE NAME STRING ;V3.05 BITL #SYMBOL_FLAG_RECORD,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.06 BNEQ 27062$ ;ITS A STRUCRURE-HANDLE ELSEWARE;V3.05 BITL #SYMBOL_FLAG_STRUCTURE,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.06 BEQL 2862$ ;V3.06 MOVAL TYPE_STR,R0 ;V3.06 BRB 2962$ ;V3.06 2862$: BITL #SYMBOL_FLAG_COMMON_NAME,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.08 BEQL 3362$ ;V3.08 MOVAL TYPE_CMN,R0 ;V3.08 BRB 2962$ ;V3.08 ; MOVE TYPE NAME STRING ;V3.05 3362$: MOVL SYMBOL_TABLE_L_TYPE_PTR(R10),R0 ;V3.08 2962$: MOVZBL (R0),R1 ;GET LENGTH ;V3.06 MOVB R1,SUPER_BUFFER+165 ;V3.05 MOVC5 R1,@4(R0),#0,#31,SUPER_BUFFER+166 ;V3.05 BRB 26062$ ;V3.05 27062$: MOVL SYMBOL_TABLE_L_STRUCTURE_PTR(R10),R0 ;V3.05 MOVC3 #32,SYMBOL_TABLE_B_SIZE(R0),SUPER_BUFFER+165 ;V3.05 ; IF THIS IS AN ARRAY-APPEND STRING "ARRAY" TO TYPE ;V3.24 26062$: BITL #SYMBOL_FLAG_ARRAY,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.24 BEQL 28062$ ;V3.24 MOVZBL SUPER_BUFFER+165,R0 ;GET LENGTH OF CURRENT STRING ;V3.24 MOVZBL TYPE_ARRAY,R1 ;GET LENGTH OF "ARRAY"STRING ;V3.24 ADDL3 R0,R1,R2 ;GET TOTAL LENGTH ;V3.24 CMPL #31,R2 ;MAX STRING LENGTH IS 31 CHRS ;V3.24 BGEQ 29062$ ;V3.24 MOVL #31,R2 ;V3.24 29062$: MOVB R2,SUPER_BUFFER+165 ;UPDATE WITH NEW STRING LENGTH ;V3.24 ADDL2 #,R0 ;GET START LOC FOR STRING DEST ;V3.24 MOVL ,R1 ;GET ADDR OF START OF SOURCE STRING ;V3.24 MOVC3 R2,(R1),(R0) ;LOAD STRING ;V3.24 28062$: MOVC3 #32,SYMBOL_TABLE_B_SIZE(R10),SUPER_BUFFER ;V3.24 ;COPY THE SYMBOL LENGTH AND ;V1.10 ;NAME TO THE BUFFER LOCC #0,#31,MODULE_NAME ;FIND LENGTH OF MODULE NAME SUBL2 #MODULE_NAME,R1 CVTLB R1,SUPER_BUFFER+32 ;LOAD LENGTH MOVC3 #31,MODULE_NAME,SUPER_BUFFER+33 ;LOAD MODULE NAME MOVC3 #32,TAG_STRING,SUPER_BUFFER+64 ;LOAD TAG STRING ;V1.16 INCL SAVE_SUPER ;V1.4 MOVC5 #0,NULL,#0,#32,SUPER_BUFFER+96 ;V2.19 10062$: BITL #SYMBOL_FLAG_COMMON_NAME,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.06 BEQL 2062$ ;V2.03 MOVAL TAG2_CN,R6 ;V2.03 BRW 3062$ ;V2.03 2062$: BITL #SYMBOL_FLAG_STATEMENT_FN,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 4062$ ;V2.03 MOVAL TAG2_SF,R6 ;V2.03 BRW 3062$ ;V2.08 4062$: BITL #,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 5062$ ;V2.03 MOVAL TAG2_EP,R6 ;V2.03 BRW 3062$ ;V2.08 5062$: BITL #SYMBOL_FLAG_PARAMETER,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 6062$ ;V2.03 MOVAL TAG2_PA,R6 ;V2.03 BRW 3062$ ;V2.08 6062$: BITL #SYMBOL_FLAG_IN_BLANK_COMMON,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 7062$ ;V2.03 MOVAL TAG2_BC,R6 ;V2.03 BRW 3062$ ;V2.08 7062$: BITL #SYMBOL_FLAG_CALLED_BY_ARG,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 8062$ ;V2.03 TSTL SYMBOL_TABLE_L_ARGUMENT(R10) ;V2.08 BEQL 17062$ ;V2.08 MOVL #4,DESCRIPTER ;V2.08 ADDL3 #10,TAG2_AG_2+4,DESCRIPTER+4 ;V2.08 PUSHL #0 ;V2.08 PUSHL #4 ;V2.08 PUSHL #4 ;V2.08 PUSHAL DESCRIPTER ;V2.08 PUSHAL SYMBOL_TABLE_L_ARGUMENT(R10) ;V2.08 CALLS #5,G^OTS$CVT_L_TI ;V2.08 MOVAL TAG2_AG_2,R6 ;V2.08 BRW 3062$ ;V2.08 17062$: MOVAL TAG2_AG,R6 ;V2.08 BRW 3062$ ;V2.08 8062$: BITL #SYMBOL_FLAG_IN_NAMED_COMMON,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BNEQ 9062$ ;V2.03 MOVAL TAG2_LO,R6 ;V2.03 BRW 3062$ ;V2.08 9062$: MOVL SYMBOL_TABLE_L_COMMON_POINTER(R10),R9 ;V2.03 CVTBL SYMBOL_TABLE_B_SIZE(R9),R7 ;V2.03 MOVAL SYMBOL_TABLE_S_NAME(R9),R8 ;V2.03 MOVB R7,SUPER_BUFFER+96 ;V2.03 BRB 20062$ ;V2.03 3062$: CVTBL (R6),R7 ;V2.03 MOVB R7,SUPER_BUFFER+96 ;V2.03 MOVL 4(R6),R8 ;V2.03 20062$: MOVC3 R7,(R8),SUPER_BUFFER+97 ;V2.03 1062$: MOVC5 #0,NULL,#0,#37,SUPER_BUFFER+128 ;V2.09 11062$: CLRL R6 ;FOUND ARG TAG FLAG ;V2.09 PUSHR #^M ;V2.09 MOVAL SYMBOL_TABLE_Q_HOW_USED_QUEUE(R10),R9 ;V2.09 MOVL R9,R8 ;V2.09 13062$: MOVL (R8),R8 ;V2.09 CMPL R8,R9 ;V2.09 BNEQ 14062$ ;V2.09 BRW 15062$ ;V2.09 14062$: TSTL SYMBOL_HOW_USED_L_ENTRY_POINTER(R8) ;V2.09 BEQL 13062$ ;V2.09 MOVL #1,R6 ;V2.09 MOVL SYMBOL_HOW_USED_L_ENTRY_POINTER(R8),R11 ;V2.09 MOVC3 #32,SYMBOL_TABLE_B_SIZE(R11),SUPER_BUFFER+128 ;V2.09 CVTBL SUPER_BUFFER+128,R7 ;V2.09 ADDB2 #5,SUPER_BUFFER+128 ;V2.09 MOVB #^A/_/,SUPER_BUFFER+129[R7] ;V2.09 INCL R7 ;V2.09 MOVL #4,DESCRIPTER ;V2.09 MOVAB SUPER_BUFFER+129[R7],DESCRIPTER+4 ;V2.09 PUSHL #0 ;V2.09 PUSHL #4 ;V2.09 PUSHL #4 ;V2.09 PUSHAL DESCRIPTER ;V2.09 PUSHAL SYMBOL_HOW_USED_L_ARGUMENT(R8) ;V2.09 CALLS #5,G^OTS$CVT_L_TI ;V2.09 $PUT RAB=SUPER_INDEX_RAB ;WRITE THE RECORD ;V2.09 BLBC R0,16062$ ;V2.09 BRW 13062$ ;V2.09 15062$: POPR #^M ;V2.09 TSTL R6 ;V2.09 BEQL 12062$ ;V2.09 BRW 20$ ;V2.09 12062$: $PUT RAB=SUPER_INDEX_RAB ;WRITE THE RECORD ;V2.09 BLBS R0,20$ 16062$: MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL SUPER_INDEX_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL SUPER_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 20$: MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR THE OUTPUT STRING CLRL OUTPUT_STRING ;AND INIT ITS DESCRIPTER MOVAL OUTPUT_LINE,OUTPUT_STRING+4 CVTBL SYMBOL_TABLE_B_SIZE(R10),NUMBER ;V1.10 MOVC5 NUMBER,SYMBOL_TABLE_S_NAME(R10),#^A/./,#31,OUTPUT_LINE ;V1.10 ;LOAD THE SYMBOL NAME MOVW #31,OUTPUT_STRING SUBL3 #31,LINE_COUNT,CHAR_COUNT MOVAL SYMBOL_TABLE_Q_HOW_USED_QUEUE(R10),R9 ;POINT TO HOW USED ;V1.10 MOVL R9,R8 ;QUEUE HEADER FOR THIS ;SYMBOL BITL #STORAGE_FLAG,FLAG_WORD+4 ;V3.06 BNEQ 1050$ ;V2.03 BRW 50$ ;V2.03 1050$: PUSHR #^M ;V2.03 BITL #SYMBOL_FLAG_STRUCTURE,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.00 BEQL 11050$ ;V3.00 MOVAL TAG2_ST,R6 ;V3.00 BRW 32$ ;V3.00 11050$: BITL #SYMBOL_FLAG_STRUCTURE_ELEMENT,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.00 BEQL 21050$ ;V3.00 MOVAL TAG2_SE,R6 ;V3.00 BRW 32$ ;V3.00 21050$: BITL #SYMBOL_FLAG_COMMON_NAME,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 1040$ ;V2.03 MOVAL TAG2_CN,R6 ;V2.03 BRW 32$ ;V2.08 1040$: BITL #SYMBOL_FLAG_STATEMENT_FN,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 1041$ ;V2.03 MOVAL TAG2_SF,R6 ;V2.03 BRW 32$ ;V2.08 1041$: BITL #,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 1042$ ;V2.03 MOVAL TAG2_EP,R6 ;V2.03 BRW 32$ ;V2.08 1042$: BITL #SYMBOL_FLAG_PARAMETER,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 43$ ;V2.03 MOVAL TAG2_PA,R6 ;V2.03 BRW 32$ ;V2.08 43$: BITL #SYMBOL_FLAG_IN_BLANK_COMMON,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 44$ ;V2.03 MOVAL TAG2_BC,R6 ;V2.03 BRW 32$ ;V2.08 44$: BITL #SYMBOL_FLAG_CALLED_BY_ARG,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BEQL 45$ ;V2.03 TSTL SYMBOL_TABLE_L_ARGUMENT(R10) ;V2.08 BEQL 1044$ ;V2.08 MOVL #4,DESCRIPTER ;V2.08 ADDL3 #10,TAG2_AG_2+4,DESCRIPTER+4 ;V2.08 PUSHL #0 ;V2.08 PUSHL #4 ;V2.08 PUSHL #4 ;V2.08 PUSHAL DESCRIPTER ;V2.08 PUSHAL SYMBOL_TABLE_L_ARGUMENT(R10) ;V2.08 CALLS #5,G^OTS$CVT_L_TI ;V2.08 MOVAL TAG2_AG_2,R6 ;V2.08 BRW 32$ ;V2.08 1044$: MOVAL TAG2_AG,R6 ;V2.03 BRW 32$ ;V2.08 45$: BITL #SYMBOL_FLAG_IN_NAMED_COMMON,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V2.03 BNEQ 46$ ;V2.03 MOVAL TAG2_LO,R6 ;V2.03 BRB 32$ ;V2.03 46$: MOVL SYMBOL_TABLE_L_COMMON_POINTER(R10),R9 ;V2.03 CVTBL SYMBOL_TABLE_B_SIZE(R9),R7 ;V2.03 MOVAL SYMBOL_TABLE_S_NAME(R9),R8 ;V2.03 BRB 31$ ;V2.03 32$: CVTBL (R6),R7 ;V2.03 MOVL 4(R6),R8 ;V2.03 31$: ADDL2 #5,OUTPUT_STRING ;V2.03 ADDL2 R7,OUTPUT_STRING ;V2.03 SUBL2 #5,CHAR_COUNT ;V2.03 SUBL2 R7,CHAR_COUNT ;V2.03 MOVC5 #0,NULL,#^A/ /,#3,OUTPUT_LINE+31 ;V2.03 MOVB #^A/[/,OUTPUT_LINE+34 ;V2.03 MOVC3 R7,(R8),OUTPUT_LINE+35 ;V2.03 MOVB #^A/]/,OUTPUT_LINE+35[R7] ;V2.03 POPR #^M ;V2.03 50$: ;V2.03 BITL #TYPE_FLAG,FLAG_WORD+4 ;V3.06 BNEQ 2050$ ;V3.06 BRW 70$ ;V3.06 2050$: PUSHR #^M ;V3.06 PUSHR #^M ;V3.24 BITL #SYMBOL_FLAG_RECORD,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.06 BNEQ 51$ ;ITS A STRUCRURE-HANDLE ELSEWARE;V3.06 BITL #SYMBOL_FLAG_STRUCTURE,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.06 BEQL 4050$ ;V3.06 MOVAL TYPE_STR,R0 ;V3.06 BRB 4150$ ;V3.06 ; MOVE TYPE NAME STRING ;V3.06 4050$: MOVL SYMBOL_TABLE_L_TYPE_PTR(R10),R0 ;V3.06 4150$: MOVZBL (R0),R11 ;GET LENGTH ;V3.06 MOVAL @4(R0),R10 ;GET ADDR ;V3.06 BRB 52$ ;V3.06 51$: MOVL SYMBOL_TABLE_L_STRUCTURE_PTR(R10),R0 ;V3.06 MOVZBL SYMBOL_TABLE_B_SIZE(R0),R11 ;GET LENGTH ;V3.06 MOVAL SYMBOL_TABLE_S_NAME(R0),R10 ;GET ADDR ;V3.06 52$: BITL #STORAGE_FLAG,FLAG_WORD+4 ;SEE IF STORAGE ALREADY PUT IN ;V3.06 BNEQ 53$ ;YES ;V3.06 ;INIT OUTPUT LINE ;V3.06 ADDL2 #2,OUTPUT_STRING ;V3.06 SUBL2 #2,CHAR_COUNT ;V3.06 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE+31 ;V3.06 53$: MOVZBL OUTPUT_STRING,R9 ;V3.06 MOVB #^A/ ;V3.24 PUSHR #^M ;V3.24 BITL #SYMBOL_FLAG_ARRAY,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.24 BEQL 1053$ ;V3.24 MOVZBL TYPE_ARRAY,R2 ;GET LENGTH OF "ARRAY"STRING ;V3.24 MOVL ,R1 ;GET ADDR OF START OF SOURCE STRING ;V3.24 PUSHR #^M ;V3.24 MOVC3 R2,(R1),L^OUTPUT_LINE(R9);LOAD STRING ;V3.24 POPR #^M ;V3.24 ADDL2 R2,R9 ;V3.24 SUBL R2,CHAR_COUNT ;V3.24 1053$: ;V3.24 MOVB #^A/>/,L^OUTPUT_LINE(R9) ;V3.06 INCL R9 ;V3.06 MOVL R9,OUTPUT_STRING ;V3.06 SUBL2 #2,CHAR_COUNT ;V3.06 SUBL2 R11,CHAR_COUNT ;V3.06 POPR #^M ;V3.24 POPR #^M ;V3.06 70$: ;V3.06 .PAGE .SUBTITLE HOW USED LOOP HOW_USED_LOOP: MOVL SYMBOL_HOW_USED_Q_QUEUE(R8),R8 ;GET NEXT HOW USED ;V1.10 CMPL R8,R9 ;SEE IF DONE WITH THESE BNEQ 1$ BRW HOW_USED_DONE 1$: MOVAL SIZE_TABLE-4,R0 ;SET UP TO COMPARE MOVL #1,R6 2$: CMPL (R0)[R6],SYMBOL_HOW_USED_L_LINE_NUMBER(R8) ;V1.10 BGEQU 3$ AOBLEQ #9,R6,2$ 3$: ;R6 CONTAINS NUMBER OF DIGITS NEEDED TO HOLD LINE NUMBER SUBL3 #5000,SYMBOL_HOW_USED_L_TOKEN(R8),R0 ;GET HOW USED TOKEN ;V1.10 MOVAQ MNEMONIC_POINTER_TABLE[R0],R7;GET POINTER TO HOWUSED ;STRING DESCRIPTER CVTWL (R7),R5 ;GET NUMBER OF CHRS ADDL2 R6,R5 ;ADD IN SIZE OF NUMBER ADDL2 #4,R5 ;ACCOUNT FOR LEADING SPACES AND ;DASH BETWEEN NUMBER AND MNEMONIC BITL #ARGUMENT_FLAG,FLAG_WORD ;V2.09 BEQL 1003$ ;V2.09 CMPL #TOKEN_EVAL_CALLING_ARG,SYMBOL_HOW_USED_L_TOKEN(R8) ;V2.09 BNEQ 1003$ ;V2.09 ADDL2 #6,R5 ;ACCOUNT FOR UNDER SCORES AND ARG NUMBER ;V2.09 MOVL SYMBOL_HOW_USED_L_ENTRY_POINTER(R8),R0 ;V2.09 CVTBL SYMBOL_TABLE_B_SIZE(R0),R1 ;V2.09 ADDL2 R1,R5 ;V2.09 1003$: CMPL R5,CHAR_COUNT ;SEE IF ENOUGH ROOM LEFT TO PUT IN ;V2.09 BLEQ 4$ ;YES ; NOT ENOUGH ROOM-OUTPUT CURRENT LINE AND REINIT PUSHAL OUTPUT_STRING CALLS #1,PRINT_LINE ;PRINT THE FULL LINE MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR THE OUTPUT STRING MOVC5 #0,NULL,#^A/ /,#31,OUTPUT_LINE ;BLANK OUT SYMBOL NAME ON ;CONTINUATION LINE SUBL3 #31,LINE_COUNT,CHAR_COUNT MOVL #31,OUTPUT_STRING 4$: ;ACCOUNT FOR POSSABLE OVERFLOW OF NARROW DISPLAY ;V2.09 CMPL R5,CHAR_COUNT ;V2.09 BLEQ 1004$ ;V2.09 SUBL3 CHAR_COUNT,R5,R0 ;V2.09 INCL R0 ;V2.09 ADDL2 R0,CHAR_COUNT ;V2.09 SUBL2 R0,OUTPUT_STRING ;V2.09 1004$: ADDL3 #3,R6,DESCRIPTER ;LOAD DESCRIPTER ;V2.09 CVTWL OUTPUT_STRING,R0 ;GET STARTING ADDR MOVAB OUTPUT_LINE[R0],DESCRIPTER+4 ;OF NUMBER PUSHAL DESCRIPTER PUSHAL 8(R8) CALLS #2,G^OTS$CVT_L_TI ;CONVERT NUMBER WITH LEADING BLANK ADDW2 R6,OUTPUT_STRING ADDL2 #3,OUTPUT_STRING SUBL2 R6,CHAR_COUNT SUBL2 #3,CHAR_COUNT ; NUMBER IS IN-NEXT PUT IN DASH CVTWL OUTPUT_STRING,R6 MOVB #^A/-/,OUTPUT_LINE[R6] INCW OUTPUT_STRING DECL CHAR_COUNT INCL R6 ; COPY IN THE HOW USED MNEMONIC CVTWL (R7),NUMBER MOVC3 NUMBER,@4(R7),OUTPUT_LINE[R6] ;COPY THE STRING MNEMONIC ADDW2 NUMBER,OUTPUT_STRING SUBL2 NUMBER,CHAR_COUNT BITL #ARGUMENT_FLAG,FLAG_WORD ;V2.09 BNEQ 3004$ ;V2.09 BRW 5$ ;V2.09 3004$: CMPL #TOKEN_EVAL_CALLING_ARG,SYMBOL_HOW_USED_L_TOKEN(R8) ;V2.09 BEQL 2004$ ;V2.09 BRW 5$ ;V2.09 2004$: PUSHR #^M ;V2.09 CVTWL OUTPUT_STRING,R6 ;V2.09 MOVB #^A/_/,OUTPUT_LINE[R6] ;V2.09 INCW OUTPUT_STRING ;V2.09 DECL CHAR_COUNT ;V2.09 INCL R6 ;V2.09 MOVL SYMBOL_HOW_USED_L_ENTRY_POINTER(R8),R11 ;V2.09 CVTBL SYMBOL_TABLE_B_SIZE(R11),R10 ;V2.09 MOVC3 R10,SYMBOL_TABLE_S_NAME(R11),OUTPUT_LINE[R6] ;V2.09 ADDL2 R10,R6 ;V2.09 ADDL2 R10,OUTPUT_STRING ;V2.09 SUBL2 R10,CHAR_COUNT ;V2.09 MOVB #^A/_/,OUTPUT_LINE[R6] ;V2.09 INCW OUTPUT_STRING ;V2.09 DECL CHAR_COUNT ;V2.09 INCL R6 ;V2.09 MOVL #4,DESCRIPTER ;V2.09 MOVAB OUTPUT_LINE[R6],DESCRIPTER+4 ;V2.09 PUSHL #0 ;V2.09 PUSHL #4 ;V2.09 PUSHL #4 ;V2.09 PUSHAL DESCRIPTER ;V2.09 PUSHAL SYMBOL_HOW_USED_L_ARGUMENT(R8) ;V2.09 ADDL2 #4,OUTPUT_STRING ;V2.09 SUBL2 #4,CHAR_COUNT ;V2.09 CALLS #5,G^OTS$CVT_L_TI ;V2.09 POPR #^M ;V2.09 5$: BRW HOW_USED_LOOP .PAGE .SUBTITLE INNER(HOW USED) AND OUTER (SYMBOL) LOOP TERMINATION HOW_USED_DONE: ; HOW USED FOR THIS SYMBOL IS COMLETE-OUTPUT CURRENT LINE ; AND TRY NEXT SYMBOL PUSHAL OUTPUT_STRING CALLS #1,PRINT_LINE ;PRINT THE FULL LINE MOVL #LIB$_NORMAL,R0 ;V1.10 RET .PAGE ;V3.00 .SUBTITLE SET UP STRUCTURE DUMP ;V3.00 DUMP_STRUCTURE: ;V3.00 ;SEE IF DOING GET E.P. ;V3.00 BITL #GET_ENTRY_FLAG,FLAG_WORD ;V3.00 BNEQ 5000$ ;V3.00 CLRL LINES_ON_PAGE ;FORCE A NEW PAGE ;V3.00 MOVL #STRUCTURE_OUTPUT,STATUS_WORD ;SAY WHAT HEADER TO USE ;V3.00 MOVAL SYMBOL_TABLE_QUEUE,R11 ;GET ADDR OF SYMBOL TABLE ;V3.00 MOVL R11,R10 ;WORK ON COPY OF POINTER ;V3.00 PUSHL #-1 ;V3.00 PUSHAL DUMP_STRUCTURE_SYMBOL ;V3.00 PUSHAL SYMBOL_TABLE_QUEUE ;V3.00 CALLS #3,G^LIB$TRAVERSE_TREE ;V3.00 5000$: JMP DUMP_COMPLETE ;V3.00 .PAGE ;V3.00 .SUBTITLE CHECK IF SYMBOL IS STRUCTURE DEF ;V3.00 .ENTRY DUMP_STRUCTURE_SYMBOL,^M ;V3.00 MOVL 4(AP),R10 ;GET ADDR OF SYMBOL ;V3.00 BITL #SYMBOL_FLAG_STRUCTURE,SYMBOL_TABLE_L_FLAG_WORD(R10) ;V3.00 BNEQ 1$ ;FOUND A STRUCTURE DEFINITION ;V3.00 MOVL #SS$_NORMAL,R0 ;V3.00 RET ;V3.00 1$: CLRL NEST_LEVEL ;SET UP PRINT OUT OF THE STRUCTURE ;V3.00 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT STRING ;V3.00 CLRL OUTPUT_STRING ;AND INIT ITS DESCRIPTER ;V3.00 MOVAL OUTPUT_LINE,OUTPUT_STRING+4 ;V3.00 CVTBL SYMBOL_TABLE_B_SIZE(R10),NUMBER ;V3.00 MOVC3 NUMBER,SYMBOL_TABLE_S_NAME(R10),OUTPUT_LINE ;V3.00 MOVW NUMBER,OUTPUT_STRING ;V3.00 PUSHAL OUTPUT_STRING ;V3.00 CALLS #1,PRINT_LINE ;V3.00 INCL NEST_LEVEL ;V3.00 PUSHL SYMBOL_TABLE_L_STRUCTURE_PTR(R10) ;V3.00 CALLS #1,DUMP_NESTED_STRUCTURE ;V3.00 CLRL NEST_LEVEL ;V3.00 MOVL #SS$_NORMAL,R0 ;V3.00 RET ;V3.00 .PAGE ;V3.00 .SUBTITLE DUMP NESTED STRUCTURE NAMES ;V3.00 .ENTRY DUMP_NESTED_STRUCTURE,^M ;V3.00 MOVL 4(AP),R9 ;GET ADDR OF STRUCTURE ELEMENT ;V3.00 BNEQ 2$ ;V3.00 RET ;V3.00 2$: CVTBL STRUCTURE_B_SIZE(R9),R0 ;GET SIZE OF ELEMENT NAME ;V3.00 MULL3 #4,NEST_LEVEL,R1 ;ACCOUNT FOR INDENTATION ;V3.00 ADDL2 R0,R1 ;V3.00 SUBL3 R1,LINE_COUNT,R1 ;CHECK FOR OVERFLOW ;V3.00 BLSS 50$ ;TILT-OVERFLOW ;V3.00 ; OUTPUT NESTED FORM OF STRUCTURE ;V3.00 MOVL R0,NUMBER ;V3.00 CLRL R11 ;V3.00 MOVAL OUTPUT_LINE,R10 ;V3.00 CLRL OUTPUT_STRING ;V3.00 MOVAL OUTPUT_LINE,OUTPUT_STRING+4 ;V3.00 ; FIRST SET UP THE NESTING PATTERN ;V3.00 1$: MOVC3 #4,FILL,(R10) ;V3.00 ADDW2 #4,OUTPUT_STRING ;V3.00 ADDL2 #4,R10 ;V3.00 INCL R11 ;V3.00 CMPL R11,NEST_LEVEL ;V3.00 BLSS 1$ ;V3.00 ; NOW PUT IN THE ELEMENT NAME ;V3.00 ADDW2 NUMBER,OUTPUT_STRING ;V3.00 MOVC3 NUMBER,STRUCTURE_S_NAME(R9),(R10) ;V3.00 BRB 70$ ;V3.00 50$: MOVL LINE_COUNT,OUTPUT_STRING ;V3.00 MOVAL OUTPUT_LINE,OUTPUT_STRING ;V3.00 MOVC5 #0,NULL,#^A/./,LINE_COUNT,OUTPUT_LINE ;V3.00 SUBL3 R0,LINE_COUNT,R10 ;V3.00 ADDL2 #,R10 ;V3.00 MOVL R0,NUMBER ;V3.00 MOVC3 NUMBER,STRUCTURE_S_NAME(R9),(R10) ;V3.00 ADDL2 NUMBER,R10 ;V3.00 MOVB #^A/*/,(R10) ;LOAD OVERFLOW FLAG ;V3.00 70$: PUSHAL OUTPUT_STRING ;V3.00 CALLS #1,PRINT_LINE ;V3.00 INCL NEST_LEVEL ;CHECK NEXT LEVEL DOWN ;V3.00 PUSHL STRUCTURE_L_NEXT_LEVEL(R9) ;V3.00 CALLS #1,DUMP_NESTED_STRUCTURE ;V3.00 DECL NEST_LEVEL ;V3.00 PUSHL STRUCTURE_L_NEXT_ELEMENT(R9) ;V3.00 CALLS #1,DUMP_NESTED_STRUCTURE ;V3.00 RET ;V3.00 .PAGE ;V3.00 .SUBTITLE OUTPUT DONE-DO CLEANUP ;V3.00 DUMP_COMPLETE: CLRL LINES_ON_PAGE ;FORCE A NEW PAGE MOVL #PARSE_LINES,STATUS_WORD ;SAY WHAT HEADER TO USE ; ;V1.4 ; ACCUMULATE STATS FOR OUTPUT ;V1.4 ; ;V1.4 PUSHAL TIME_OUTPUT ;V1.4 PUSHAL CODE_1 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_OUTPUT+8 ;V1.4 PUSHAL CODE_2 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_OUTPUT+12 ;V1.4 PUSHAL CODE_3 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_OUTPUT+16 ;V1.4 PUSHAL CODE_4 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 PUSHAL TIME_OUTPUT+20 ;V1.4 PUSHAL CODE_5 ;V1.4 CALLS #2,G^LIB$STAT_TIMER ;V1.4 CALLG NULL,G^LIB$INIT_TIMER ;V1.4 RET .END