.TITLE SUPER_INDEX GENERATION .SUBTITLE DATA STORAGE AREA .ENABLE DEBUG .PSECT IMPURE_DATA,RD,WRT,NOSHR,NOEXE,LONG,CON,GBL ARG1: .LONG 0 ARG2: .LONG 0 OUTPUT_LINE: .BLKB 132 OUTPUT_STRING: .LONG 0,0 NUMBER: .LONG 0 LINE_COUNT: .LONG 0 CHAR_COUNT: .LONG 0 NEW_NODE: ;V1.10 .LONG 0 ;V1.10 DESCRIPTER: ;V1.10 .LONG 0,0 ;V1.10 INSERT_USED_ARG: ;V1.10 .LONG 7 ;V1.10 .LONG 0 ;V1.10 .ADDRESS DESCRIPTER,CODE_0,USED_COMPARE,USED_ALLOCATE,NEW_NODE ;V2.09 .LONG -1 ;V1.10 REVERSE_SCRATCH: ;V1.18 .BLKB 256 ;V2.09 REVERSE_SCRATCH_2: ;V2.10 .BLKB 256 ;V2.10 REVERSE_SCRATCH_3: ;V2.10 .BLKB 256 ;V2.10 REVERSE_SCRATCH_4: ;V2.10 .BLKB 256 ;V2.10 REVERSE_SCRATCH_5: ;V3.06 .BLKB 256 ;V3.06 ERROR_NUMBER: ;V3.02 .LONG 0 ;V3.02 .PSECT PURE_DATA,RD,NOWRT,SHR,NOEXE,CON,GBL INSERT_SUPER_ARG: ;V1.10 .LONG 7 ;V1.10 .ADDRESS SYMBOL_TABLE_QUEUE,DESCRIPTER,NULL,SUPER_COMPARE ;V1.10 .ADDRESS SUPER_ALLOCATE,NEW_NODE ;V1.10 .LONG -1 ;V1.10 CODE_0: .LONG 0 ;V2.09 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 VM_ARG: .LONG 2 .ADDRESS ARG1,ARG2 REWIND_ERROR: .ASCID /INDEX-F-Error Rewinding Super Index Scratch File/ READ_ERROR: .ASCID /INDEX-F-Error Reading Super Index Scratch File/ PRESERVE_ERROR: ;V2.19 .ASCID /INDEX-E-Error writeing Preserve data file-file terminated/ ;V2.19 READ_PRESERVE_ERROR: ;V2.20 .ASCID /INDEX-F-Error reading Preserve data file/ ;V2.20 .PAGE .SUBTITLE INITIALIZATION CODE .PSECT CODE,RD,NOWRT,SHR,EXE,CON,GBL .ENTRY DUMP_SUPER_INDEX,^M 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 $REWIND RAB=SUPER_INDEX_RAB ;REWIND THE SCRATCH FILE BLBS R0,1$ MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL SUPER_INDEX_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL REWIND_ERROR ;V3.02 CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 1$:; SYMBOL TABLE IS IN AN EMPTY CONDITION ; OPEN PRESERVE FILE IF REQUIRED ;V2.19 BITL #PRESERVE_FLAG!ADD_PRESERVE_FLAG!RESTORE_FLAG,FLAG_WORD+4 ;V2.20 BEQL 2001$ ;V2.19 CALLS #0,OPEN_PRESERVE ;V2.19 2001$: ;V2.19 PUSHAL DAY_TIME CALLS #1,G^LIB$DATE_TIME ;GET CURRENT TIME FOR HEADER CLRL LINES_ON_PAGE MOVL #132,LINE_COUNT ;V1.16 BITL #NARROW_FLAG,FLAG_WORD ;V1.16 BEQL 3011$ ;V1.16 MOVL #80,LINE_COUNT ;V1.16 3011$: MOVL #SUPER_OUTPUT,STATUS_WORD ;V1.16 ; ; DATA STORAGE ELEMENT IN THE SUPER INDEX QUEUE LIST ; IS AS FOLLOWS ; ; SYMBOL_TABLE_QUEUE POINTS TO SYMBOL ELEMENTS ; ; ---------------------------------- ; !POINTER TO LEFT SYMBOL ! 0 ;V1.10 ; ---------------------------------- ; !POINTER TO RIGHT SYMBOL ! 4 ;V1.10 ; ---------------------------------- ; ! !BALANCE ! 8 ;V1.10 ; ---------------------------------- ;V1.10 ; !POINTER TO USED IN ELEMENTS ! 12 ;V1.10 ; ---------------------------------- ;V1.10 ; ! ! 16 ;V1.10 ; ---------------------------------- ;V1.10 ; ! !BALANCE ! 20 ;V1.10 ; ---------------------------------- ;V1.10 ; !SYMBOL (NULL PADDED) !LENGTH !<= ONE BYTE 24-25 ;V1.10 ; ---------------------------------- ; !36 BYTES LONG ! ;V2.09 ; ; ! ! ; ---------------------------------- ; LENGTH=61 BYTES ;V1.10 SUPER_TABLE_Q_QUEUE=0 ;V1.10 SUPER_TABLE_Q_HOW_USED_QUEUE=12 ;V1.10 SUPER_TABLE_B_SIZE=24 ;V1.10 SUPER_TABLE_S_NAME=25 ;V1.10 SUPER_TABLE_LENGTH=61 ;V1.10 ; ; USED IN ELEMENTS ; ---------------------------------- ; !POINTER TO LEFT USED IN ! 0 ;V1.10 ; ---------------------------------- ; !POINTER TO RIGHT USED IN ! 4 ;V1.10 ; ---------------------------------- ;V1.10 ; ! !BALANCE ! 8 ;V1.10 ; ---------------------------------- ; !SUB TREE HEADER ! 12 ;V2.10 ; __________________________________ ;V2.10 ; ! ! 16 ;V2.10 ; __________________________________ ;V2.10 ; ! ! 20 ;V2.10 ; __________________________________ ;V2.10 ; !MODULE NAME(NULL PADDED !LENGTH! 24-25<= ONE BYTE ;V2.10 ; ---------------------------------- ; !PLUS APPENDED TAG IN PARRENS ! ;V1.16 ; PLUS STORAGE LOC IN SQUARE ;V2.03 ; BRACKETS. ;V2.03 ; PLUS ARGUMENT LOC IN CURLY ;V2.09 ; BRACKETS ;V2.09 ; PLUS TYPE IN ANGLE BRACKETS ;V3.06 ; !31+33+33+38+33 BYTES MAX ! ;V3.06 ; ---------------------------------- ; LENGTH=159 BYTES ;V2.10 SUPER_HOW_USED_Q_QUEUE=0 ;V1.10 SUPER_HOW_USED_Q_TREE_HEAD=12 ;V2.10 SUPER_HOW_USED_B_SIZE=24 ;V2.10 SUPER_HOW_USED_S_NAME=25 ;V2.10 SUPER_HOW_USED_LENGTH=192 ;V3.06 .PAGE .SUBTITLE BUILD SUPER INDEX SYMBOL TABLE TSTL REORDER_COUNT ;V3.06 BNEQ 1001$ ;V3.06 MOVL #REORDER_NAME,REORDER_SEQUENCE ;V2.09 MOVL #REORDER_MODULE,REORDER_SEQUENCE+4 ;V2.09 MOVL #^X10000000,REORDER_SEQUENCE+8 ;V3.06 MOVL #^X10000000,REORDER_SEQUENCE+12 ;V3.06 MOVL #^X10000000,REORDER_SEQUENCE+16 ;V3.06 MOVL #^X10000000,REORDER_SEQUENCE+20 ;V3.06 ; CHECK TO SEE IF REVERSE SWITCH WAS ISSUED ;V2.09 1001$: BITL #REVERSE_FLAG,FLAG_WORD+4 ;V2.09 BEQL 4$ ;NOT ISSUED ;V2.09 MOVL REORDER_SEQUENCE,R0 ;V2.09 MOVL REORDER_SEQUENCE+4,REORDER_SEQUENCE ;V2.09 MOVL R0,REORDER_SEQUENCE+4 ;V2.09 4$: ;V2.09 BUILD_LOOP: BITL #RESTORE_FLAG,FLAG_WORD+4 ;V2.20 BEQL 6$ ;V2.20 $GET RAB=PRESERVE_RAB ;V2.20 BLBS R0,8$ ;V2.20 CMPL #RMS$_EOF,R0 ;RAN OUT OF DATA-GO OUTPUT IT ;V2.20 BNEQ 9$ ;V2.20 JMP OUTPUT_SUPER ;V2.20 9$: MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL PRESERVE_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL READ_PRESERVE_ERROR ;V2.20 CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 8$: MOVC3 #197,L^PRESERVE_BUFFER,L^SUPER_BUFFER ;V3.06 BRB 1$ ;V2.20 6$: ;V2.20 $GET RAB=SUPER_INDEX_RAB BLBS R0,1$ CMPL #RMS$_EOF,R0 ;RAN OUT OF DATA-GO OUTPUT IT BNEQ 2$ JMP OUTPUT_SUPER 2$: MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL SUPER_INDEX_RAB+RAB$L_STV ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL READ_ERROR CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 $EXIT_S ;V3.02 1$: MOVC5 #0,NULL,#0,#256,REVERSE_SCRATCH ;V2.10 MOVC5 #0,NULL,#0,#256,REVERSE_SCRATCH_2 ;V2.10 MOVC5 #0,NULL,#0,#256,REVERSE_SCRATCH_3 ;V2.10 MOVC5 #0,NULL,#0,#256,REVERSE_SCRATCH_4 ;V2.10 MOVC5 #0,NULL,#0,#256,REVERSE_SCRATCH_5 ;V3.06 ; SEE IF PRESERVE OF DATA REQUIRED ;V2.19 BITL #PRESERVE_FLAG!ADD_PRESERVE_FLAG,FLAG_WORD+4 ;V2.20 BNEQ 1001$ ;V2.19 BRW 5$ ;V2.19 1001$: ;GET NAME ;V2.19 CVTBL L^SUPER_BUFFER,R6 ;GET COUNT ;V3.06 INCL R6 ;GET LENGTH INCL COUNT ;V2.19 MOVC5 R6,L^SUPER_BUFFER,#^A/ /,#32,L^PRESERVE_BUFFER ;V3.06 ;GET MODULE ;V2.19 CVTBL L^SUPER_BUFFER+32,R6 ;GET COUNT ;V3.06 INCL R6 ;GET LENGTH INCL COUNT ;V2.19 MOVC5 R6,L^SUPER_BUFFER+32,#^A/ /,#32,L^PRESERVE_BUFFER+32 ;V3.06 ;GET TAG ;V2.19 CVTBL L^SUPER_BUFFER+64,R6 ;GET COUNT ;V3.06 INCL R6 ;GET LENGTH INCL COUNT ;V2.19 MOVC5 R6,L^SUPER_BUFFER+64,#^A/ /,#64,L^PRESERVE_BUFFER+64 ;V3.06 ;GET STORAGE ;V2.19 CVTBL L^SUPER_BUFFER+96,R6 ;GET COUNT ;V3.06 INCL R6 ;GET LENGTH INCL COUNT ;V2.19 MOVC5 R6,L^SUPER_BUFFER+96,#^A/ /,#96,L^PRESERVE_BUFFER+96 ;V3.06 ;GET ARGUMENT ;V2.19 CVTBL L^SUPER_BUFFER+128,R6 ;GET COUNT ;V3.06 INCL R6 ;GET LENGTH INCL COUNT ;V2.19 MOVC5 R6,L^SUPER_BUFFER+128,#^A/ /,#37,L^PRESERVE_BUFFER+128 ;V3.06 CVTBL L^SUPER_BUFFER+165,R6 ;GET COUNT ;V3.06 INCL R6 ;V3.05 MOVC5 R6,L^SUPER_BUFFER+165,#^A/ /,#32,L^PRESERVE_BUFFER+165 ;V3.06 ;WRITE DATA TO FILE ;V2.19 $PUT RAB=PRESERVE_RAB ;V2.19 BLBS R0,5$ ;V3.02 ; ERROR-OUTPUT MESSAGE AND CANCEL PRESERVE ;V2.19 PUSHAL PRESERVE_RAB+RAB$L_STV ;V3.02 MOVL R0,ERROR_NUMBER ;V3.02 PUSHAL ERROR_NUMBER ;V3.02 PUSHAL PRESERVE_ERROR ;V3.02 CALLS #3,SYSTEM_ERROR_MESSAGE ;V3.02 BICL #PRESERVE_FLAG!ADD_PRESERVE_FLAG,FLAG_WORD+4 ;V2.20 CALLS #0,CLOSE_PRESERVE ;V2.19 5$:; DEPENDING ON THE INDENT LEVEL-PUT THE MODULE NAME AND TAGS IN PROPER ;V2.10 ; TEMP STORAGE AREAS (REVERSE_SCRATCH_n) ;V2.10 ; FIRST ITEM (MODULE NAME) ALWAYS GOES INTO REVERSE_SCRATCH ;V2.10 MOVL REORDER_SEQUENCE+4,R6 ;V2.09 CVTBL L^SUPER_BUFFER(R6),R7 ;V3.06 MOVB R7,L^REVERSE_SCRATCH ;V2.09 MOVC3 R7,L^SUPER_BUFFER+1(R6),L^REVERSE_SCRATCH+1 ;V3.06 ; SECOND ITEM IS THE TAG, CAN GO INTO EITHER REVERSE_SCRATCH OR ;V2.10 ; REVERSE_SCRATCH_2 ;V2.10 BITL #^X10000000,REORDER_SEQUENCE+8 ;V3.06 BNEQ 13$ ;V3.06 MOVL REORDER_SEQUENCE+8,R6 ;V2.09 TSTB L^SUPER_BUFFER(R6);SEE IF ANY TAG ;V3.06 BEQL 13$ ;V3.06 CASEL INDENT_LEVEL,#0,#1 ;V3.06 10$: .WORD 11$-10$ ;V3.06 .WORD 12$-10$ ;V3.06 12$: ;INDENT LEVEL 1 OR GREATER-PUT IN REVERSE_SCRATCH_2 ;V3.06 CVTBL L^SUPER_BUFFER(R6),R7 ;V3.06 MOVB R7,L^REVERSE_SCRATCH_2 ;V3.06 MOVC3 R7,L^SUPER_BUFFER+1(R6),L^REVERSE_SCRATCH_2+1 ;V3.06 BRB 13$ ;V3.06 11$: ;APPENDED TO REVERSE_SCRATCH ;V2.10 INCB L^REVERSE_SCRATCH ;ACCOUNT FOR LEFT PARREN ;V2.09 MOVZBL L^REVERSE_SCRATCH,R7 ;V3.06 MOVB #^A/(/,L^REVERSE_SCRATCH(R7) ;V2.09 CVTBL L^SUPER_BUFFER(R6),R8 ;V3.06 MOVC3 R8,L^SUPER_BUFFER+1(R6),L^REVERSE_SCRATCH+1(R7) ;V2.09 ADDL2 R8,R7 ;V2.09 ADDB2 R8,L^REVERSE_SCRATCH ;V2.09 INCB L^REVERSE_SCRATCH ;ACCOUNT FOR RIGHT PARREN ;V2.09 INCB R7 ;V2.09 MOVB #^A/)/,L^REVERSE_SCRATCH(R7) ;V2.09 13$: ;V3.06 ; THIRD ITEM IS STORAGE LOCATION TAG ;V2.10 BITL #^X10000000,REORDER_SEQUENCE+12 ;V3.06 BEQL 1013$ ;V3.06 BRW 14$ ;V3.06 1013$: MOVL REORDER_SEQUENCE+12,R6 ;V3.06 TSTB L^SUPER_BUFFER(R6);SEE IF ANY TAG ;V3.06 BEQL 14$ ;V2.09 CASEL INDENT_LEVEL,#0,#2 ;V3.06 15$: .WORD 16$-15$ ;V3.06 .WORD 17$-15$ ;V3.06 .WORD 18$-15$ ;V3.06 ; INDENT LEVEL 2 + PUT IN REVERSE SCRATCH 3 ;V3.06 18$: CVTBL L^SUPER_BUFFER(R6),R7 ;V3.06 MOVB R7,L^REVERSE_SCRATCH_3 ;V3.06 MOVC3 R7,L^SUPER_BUFFER+1(R6),L^REVERSE_SCRATCH_3+1 ;V3.06 BRB 14$ ;V3.06 17$: MOVL #^A/()/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH_2,R10 ;V3.06 BRB 19$ ;V3.06 16$: MOVL #^A/[]/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH,R10 ;V3.06 19$: MOVZBL (R10),R9 ;V3.06 ADDL2 R10,R9 ;V3.06 MOVB R11,1(R9) ;V3.06 INCL R9 ;V3.06 ADDB2 #2,(R10) ;V3.06 MOVZBL L^SUPER_BUFFER(R6),R8 ;V3.06 MOVC3 R8,L^SUPER_BUFFER+1(R6),1(R9) ;V3.06 ADDB2 R8,(R10) ;V3.06 ADDL2 R8,R9 ;V3.06 ASHL #-8,R11,R11 ;V3.06 MOVB R11,1(R9) ;V3.06 14$: ;ITEM 4 ARGUEMNT ;V3.06 BITL #^X10000000,REORDER_SEQUENCE+16 ;V3.06 BEQL 2014$ ;V3.06 BRW 20$ ;V3.06 2014$: MOVL REORDER_SEQUENCE+16,R6 ;V3.06 TSTB L^SUPER_BUFFER(R6);SEE IF ANY TAG ;V3.06 BNEQ 1014$ ;V3.06 BRW 20$ ;V3.06 1014$: CASEL INDENT_LEVEL,#0,#3 ;V3.06 21$: .WORD 22$-21$ ;V3.06 .WORD 23$-21$ ;V3.06 .WORD 24$-21$ ;V3.06 .WORD 25$-21$ ;V3.06 ; INDENT LEVEL 3 + PUT IN REVERSE SCRATCH 4 ;V3.06 25$: CVTBL L^SUPER_BUFFER(R6),R7 ;V3.06 MOVB R7,L^REVERSE_SCRATCH_4 ;V3.06 MOVC3 R7,L^SUPER_BUFFER+1(R6),L^REVERSE_SCRATCH_4+1 ;V3.06 BRB 20$ ;V3.06 24$: MOVL #^A/()/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH_3,R10 ;V3.06 BRB 26$ ;V3.06 23$: MOVL #^A/[]/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH_2,R10 ;V3.06 BRB 26$ ;V3.06 22$: MOVL #^A/{}/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH,R10 ;V3.06 26$: MOVZBL (R10),R9 ;V3.06 ADDL2 R10,R9 ;V3.06 MOVB R11,1(R9) ;V3.06 INCL R9 ;V3.06 ADDB2 #2,(R10) ;V3.06 MOVZBL L^SUPER_BUFFER(R6),R8 ;V3.06 MOVC3 R8,L^SUPER_BUFFER+1(R6),1(R9) ;V3.06 ADDB2 R8,(R10) ;V3.06 ADDL2 R8,R9 ;V3.06 ASHL #-8,R11,R11 ;V3.06 MOVB R11,1(R9) ;V3.06 20$: ;ITEM 5 TYPE ;V3.06 BITL #^X10000000,REORDER_SEQUENCE+20 ;V3.06 BEQL 2020$ ;V3.06 BRW 30$ ;V3.06 2020$: MOVL REORDER_SEQUENCE+20,R6 ;V3.06 TSTB L^SUPER_BUFFER(R6);SEE IF ANY TAG ;V3.06 BNEQ 1020$ ;V3.06 BRW 30$ ;V3.06 1020$: CASEL INDENT_LEVEL,#0,#4 ;V3.06 31$: .WORD 32$-31$ ;V3.06 .WORD 33$-31$ ;V3.06 .WORD 34$-31$ ;V3.06 .WORD 35$-31$ ;V3.06 .WORD 36$-31$ ;V3.06 ; INDENT LEVEL 4 + PUT IN REVERSE SCRATCH 5 ;V3.06 36$: CVTBL L^SUPER_BUFFER(R6),R7 ;V3.06 MOVB R7,L^REVERSE_SCRATCH_5 ;V3.06 MOVC3 R7,L^SUPER_BUFFER+1(R6),L^REVERSE_SCRATCH_5+1 ;V3.06 BRB 30$ ;V3.06 35$: MOVL #^A/()/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH_4,R10 ;V3.06 BRB 37$ ;V3.06 34$: MOVL #^A/[]/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH_3,R10 ;V3.06 BRB 37$ ;V3.06 33$: MOVL #^A/{}/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH_2,R10 ;V3.06 BRB 37$ ;V3.06 32$: MOVL #^A/<>/,R11 ;V3.06 MOVAL L^REVERSE_SCRATCH,R10 ;V3.06 37$: MOVZBL (R10),R9 ;V3.06 ADDL2 R10,R9 ;V3.06 MOVB R11,1(R9) ;V3.06 INCL R9 ;V3.06 ADDB2 #2,(R10) ;V3.06 MOVZBL L^SUPER_BUFFER(R6),R8 ;V3.06 MOVC3 R8,L^SUPER_BUFFER+1(R6),1(R9) ;V3.06 ADDB2 R8,(R10) ;V3.06 ADDL2 R8,R9 ;V3.06 ASHL #-8,R11,R11 ;V3.06 MOVB R11,1(R9) ;V3.06 30$: MOVL REORDER_SEQUENCE,R6 ;V3.06 CVTBL L^SUPER_BUFFER(R6),DESCRIPTER ;V3.06 MOVAL L^SUPER_BUFFER+1(R6),DESCRIPTER+4 ;V3.06 CALLG INSERT_SUPER_ARG,G^LIB$INSERT_TREE ;V2.09 CVTBL L^REVERSE_SCRATCH,DESCRIPTER ;V2.09 MOVAL L^REVERSE_SCRATCH+1,DESCRIPTER+4 ;V2.09 ADDL3 #SUPER_TABLE_Q_HOW_USED_QUEUE,NEW_NODE,INSERT_USED_ARG+4 ;V1.10 CALLG INSERT_USED_ARG,G^LIB$INSERT_TREE ;V1.10 CMPL #1,INDENT_LEVEL ;V2.10 BLEQ 16005$ ;V2.10 BRW 6005$ ;V2.10 16005$: CVTBL L^REVERSE_SCRATCH_2,DESCRIPTER ;V2.10 MOVAL L^REVERSE_SCRATCH_2+1,DESCRIPTER+4 ;V2.10 ADDL3 #SUPER_HOW_USED_Q_TREE_HEAD,NEW_NODE,INSERT_USED_ARG+4 ;V2.10 CALLG INSERT_USED_ARG,G^LIB$INSERT_TREE ;V2.10 CMPL #2,INDENT_LEVEL ;V2.10 BLEQ 26005$ ;V3.06 BRW 6005$ ;V3.06 26005$: CVTBL L^REVERSE_SCRATCH_3,DESCRIPTER ;V2.10 MOVAL L^REVERSE_SCRATCH_3+1,DESCRIPTER+4 ;V2.10 ADDL3 #SUPER_HOW_USED_Q_TREE_HEAD,NEW_NODE,INSERT_USED_ARG+4 ;V2.10 CALLG INSERT_USED_ARG,G^LIB$INSERT_TREE ;V2.10 CMPL #3,INDENT_LEVEL ;V2.10 BGTR 6005$ ;V2.10 CVTBL L^REVERSE_SCRATCH_4,DESCRIPTER ;V2.10 MOVAL L^REVERSE_SCRATCH_4+1,DESCRIPTER+4 ;V2.10 ADDL3 #SUPER_HOW_USED_Q_TREE_HEAD,NEW_NODE,INSERT_USED_ARG+4 ;V2.10 CALLG INSERT_USED_ARG,G^LIB$INSERT_TREE ;V2.10 CMPL #4,INDENT_LEVEL ;V3.06 BGTR 6005$ ;V3.06 CVTBL L^REVERSE_SCRATCH_5,DESCRIPTER ;V3.06 MOVAL L^REVERSE_SCRATCH_5+1,DESCRIPTER+4 ;V3.06 ADDL3 #SUPER_HOW_USED_Q_TREE_HEAD,NEW_NODE,INSERT_USED_ARG+4 ;V3.06 CALLG INSERT_USED_ARG,G^LIB$INSERT_TREE ;V3.06 6005$: BRW BUILD_LOOP ;V2.10 .PAGE ;V1.10 .SUBTITLE INSERT SUPER/HOW USED UTILITES ;V1.10 .ENTRY SUPER_COMPARE,^M ;V1.10 ; ;V1.10 ; RET_VALUE=SUPER_COMPARE(SYMBOL DESCRIPTER,TREE ELEMENT) ;V1.10 ; RETURNS -1 IF SYMBOL < CURRENT TREE ELEMENT ;V1.10 ; 0 = ;V1.10 ; 1 > ;V1.10 ; ;V1.10 MOVL 4(AP),R2 ;GET ADDRESS OF SYMBOL DESCRIPTER ;V1.10 MOVL 8(AP),R3 ;GET ADDRESS OF TREE ELEMENT ;V1.10 CVTBL (R2),R0 ;V1.10 CVTBL SUPER_TABLE_B_SIZE(R3),R1 ;V1.10 CMPC5 R0,@4(R2),#0,R1,SUPER_TABLE_S_NAME(R3) ;V1.10 BLSS 1$ ;V1.10 BEQL 2$ ;V1.10 MOVL #1,R0 ;V1.10 RET ;V1.10 1$: MOVL #-1,R0 ;V1.10 RET ;V1.10 2$: CLRL R0 ;V1.10 RET ;V1.10 .ENTRY USED_COMPARE,^M ;V1.10 ; ;V1.10 ; RET_VALUE=SUPER_COMPARE(SYMBOL DESCRIPTER,TREE ELEMENT) ;V1.10 ; RETURNS -1 IF SYMBOL < CURRENT TREE ELEMENT ;V1.10 ; 0 = ;V1.10 ; 1 > ;V1.10 ; ;V1.10 MOVL 4(AP),R2 ;GET ADDRESS OF SYMBOL DESCRIPTER ;V1.10 MOVL 8(AP),R3 ;GET ADDRESS OF TREE ELEMENT ;V1.10 CVTBL (R2),R0 ;V1.10 CVTBL SUPER_HOW_USED_B_SIZE(R3),R1 ;V1.10 CMPC5 R0,@4(R2),#0,R1,SUPER_HOW_USED_S_NAME(R3) ;V1.10 BLSS 1$ ;V1.10 BEQL 2$ ;V1.10 MOVL #1,R0 ;V1.10 RET ;V1.10 1$: MOVL #-1,R0 ;V1.10 RET ;V1.10 2$: CLRL R0 ;V1.10 RET ;V1.10 .ENTRY SUPER_ALLOCATE,^M ;V2.09 ; ;V1.10 ; IRET=SUPER_ALLOCATE(SYMBOL,NEW_NODE,) ;V1.10 ; ;V1.10 MOVL #SUPER_TABLE_LENGTH,ARG1 ;V1.10 CALLG VM_ARG,ALLOCATE ;V1.10 INCL SYMBOLS_PROCESSED ;V1.10 MOVL R0,@8(AP) ;V1.10 CLRQ SUPER_TABLE_Q_QUEUE(R0) ;V1.10 CLRL SUPER_TABLE_Q_QUEUE+8(R0) ;V1.10 CLRQ SUPER_TABLE_Q_HOW_USED_QUEUE(R0) ;V1.10 CLRL SUPER_TABLE_Q_HOW_USED_QUEUE+8(R0) ;V1.10 MOVL REORDER_SEQUENCE,R6 ;V2.09 MOVC3 #37,L^SUPER_BUFFER(R6),SUPER_TABLE_B_SIZE(R0) ;V3.06 MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;V1.10 .ENTRY USED_ALLOCATE,^M ;V1.10 ; ;V1.10 ; IRET=USED_ALLOCATE(SYMBOL,NEW_NODE,) ;V1.10 ; ;V1.10 MOVL #SUPER_HOW_USED_LENGTH,ARG1 ;V1.10 CALLG VM_ARG,ALLOCATE ;V1.10 INCL HOW_USED_PROCESSED ;V1.10 MOVL R0,@8(AP) ;V1.10 CLRQ SUPER_HOW_USED_Q_QUEUE(R0) ;V1.10 CLRL SUPER_HOW_USED_Q_QUEUE+8(R0) ;V1.10 CLRQ SUPER_HOW_USED_Q_TREE_HEAD(R0) ;V2.10 CLRL SUPER_HOW_USED_Q_TREE_HEAD+8(R0) ;V2.10 MOVL 4(AP),R1 ;GET ADDR OF DESCRIPTER ;V2.10 CVTBL (R1),R2 ;V2.10 MOVB R2,SUPER_HOW_USED_B_SIZE(R0) ;V2.10 MOVL 4(R1),R1 ;GET ADDRESS OF STRING ;V2.10 MOVC3 R2,(R1),SUPER_HOW_USED_S_NAME(R0) ;V2.10 MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;V1.10 .PAGE .SUBTITLE OUTPUT SUPER INDEX SYMBOL TABLE OUTPUT_SUPER: BITL #PRESERVE_FLAG!ADD_PRESERVE_FLAG!RESTORE_FLAG,FLAG_WORD+4 ;V2.20 BEQL 2$ ;V2.19 CALLS #0,CLOSE_PRESERVE ;V2.19 2$: ;V2.19 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 MOVL #132,LINE_COUNT MOVAL OUTPUT_LINE,OUTPUT_STRING+4 BITL #NARROW_FLAG,FLAG_WORD BEQL 1$ MOVL #80,LINE_COUNT 1$: TSTL SYMBOL_TABLE_QUEUE ;V1.10 BEQL 1001$ ;V1.10 PUSHL #-1 ;V1.10 PUSHAL DUMP_SUPER_SYMBOL ;V1.10 PUSHAL SYMBOL_TABLE_QUEUE ;V1.10 CALLS #3,G^LIB$TRAVERSE_TREE ;V1.10 1001$: 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 MOVL ELEMENT_64+4,ELEMENT_64+12 ;V1.4 MOVL ELEMENT_128+4,ELEMENT_128+12 ;V1.4 MOVL ELEMENT_192+4,ELEMENT_192+12 ;V1.4 MOVL ELEMENT_256+4,ELEMENT_256+12 ;V1.4 MOVL ELEMENT_LARGE+4,ELEMENT_LARGE+12 ;V1.4 JMP CLEANUP_SUPER ;**-1 .PAGE ;V1.10 .SUBTITLE DUMP A SUPER SYMBOL ;V1.10 .ENTRY DUMP_SUPER_SYMBOL,^M ;V1.10 MOVL 4(AP),R10 ;V1.10 1$: CVTBL SUPER_TABLE_B_SIZE(R10),R7 ;V1.10 MOVC5 R7,SUPER_TABLE_S_NAME(R10),#^A/./,#36,OUTPUT_LINE ;V2.09 SUBL3 #36,LINE_COUNT,CHAR_COUNT ;V2.09 MOVL #36,OUTPUT_STRING ;V2.09 PUSHL #-1 ;V1.10 PUSHAL DUMP_USED ;V1.10 PUSHAL SUPER_TABLE_Q_HOW_USED_QUEUE(R10) ;V1.10 CALLS #3,G^LIB$TRAVERSE_TREE ;V1.10 TSTL OUTPUT_STRING ;V2.10 BLEQ 2$ ;V2.10 PUSHAL OUTPUT_STRING ;V1.10 CALLS #1,PRINT_LINE ;V1.10 2$: ;V2.10 MOVL #LIB$_NORMAL,R0 ;V1.10 RET ;V1.10 .PAGE ;V2.10 .SUBTITLE DUMP HOW USED INDENT LEVEL 0 ;V2.10 .ENTRY DUMP_USED,^M ;V1.10 TSTL OUTPUT_STRING ;V2.11 BGTR 1000$ ;V2.11 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.11 MOVC5 #0,NULL,#^A/ /,#36,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.11 ;PUT BLANKS IN SYMBOL ;V2.11 ;LOCATION ;V2.11 MOVL #36,OUTPUT_STRING ;V2.11 SUBL3 #36,LINE_COUNT,CHAR_COUNT ;V2.11 1000$: ;V2.11 MOVL 4(AP),R8 ;V1.10 CVTBL SUPER_HOW_USED_B_SIZE(R8),R7 ;GET LENGTH ;V1.10 ADDL3 #3,R7,R6 ;ACCOUNT FOR 3 LEADING SPACES CMPL R6,CHAR_COUNT BGTR 7001$ ;V2.03 BRW 1$ ;NO OVERFLOW YET ;V2.03 7001$: ;V2.03 ; NEW ENTRY DES NOT FIT-OUTPUT OLD LINE AND REINIT FOR CONTINUATION LINE PUSHAL OUTPUT_STRING CALLS #1,PRINT_LINE MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE MOVC5 #0,NULL,#^A/ /,#36,OUTPUT_LINE ;FOR CONTINUATION LINE ;PUT BLANKS IN SYMBOL ;LOCATION SUBL3 #36,LINE_COUNT,CHAR_COUNT MOVL #36,OUTPUT_STRING ; CHECK FOR EXTRA LONG MODULE NAME AND TAG STILL CAUSEING OVERFLOW ;V1.16 CMPL R6,CHAR_COUNT ;V1.16 BGTR 4001$ ;V2.03 BRW 1$ ;NO OVERFLOW ;V2.03 4001$: ;V2.03 ; STILL OVERFLOW-SLOP OVER INTO 4 LINES AS NEEDED ;V2.09 ; LINE 1 ;V2.09 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE+31 ;PUT IN 3 SPACES ;V2.03 ADDL2 #3,OUTPUT_STRING ;V2.03 SUBL2 #3,CHAR_COUNT ;V2.03 SUBL2 #3,R6 ;V2.03 MOVAL SUPER_HOW_USED_S_NAME(R8),R7 ;V2.03 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.03 SUBL2 CHAR_COUNT,R6 ;V2.03 3001$: ADDL2 CHAR_COUNT,OUTPUT_STRING ;V2.09 ADDL2 CHAR_COUNT,R7 ;V2.03 PUSHAL OUTPUT_STRING ;V2.03 CALLS #1,PRINT_LINE ;V2.03 ; LINE 2 3 4 ;V2.09 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.03 MOVC5 #0,NULL,#^A/ /,#39,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.09 ;PUT BLANKS IN SYMBOL ;V2.03 ;LOCATION ;V2.03 MOVL #39,OUTPUT_STRING ;V2.03 SUBL3 #39,LINE_COUNT,CHAR_COUNT ;V2.03 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.03 SUBL3 CHAR_COUNT,R6,R0 ;V2.03 BGTR 2001$ ;V2.03 ADDL2 R6,OUTPUT_STRING ;V2.03 SUBL2 R6,CHAR_COUNT ;V2.03 BRW 1001$ ;V2.03 2001$: MOVL R0,R6 ;V2.02 BRW 3001$ ;V2.09 1$: SUBL2 R6,CHAR_COUNT CVTWL OUTPUT_STRING,R6 ;GET NO OF CHRS IN LINE MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE(R6) ;LOAD 3 BLANKS ;V1.21 ADDL2 #3,R6 ADDW2 #3,OUTPUT_STRING ADDW2 R7,OUTPUT_STRING MOVC3 R7,SUPER_HOW_USED_S_NAME(R8),L^OUTPUT_LINE(R6) ;V1.21 1001$: ;V2.10 CMPL #1,INDENT_LEVEL ;V2.10 BLEQ 22001$ ;V2.10 BRW 12001$ ;V2.10 22001$: PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#40,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #40,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #40,OUTPUT_STRING ;V2.10 PUSHL #-1 ;V2.10 PUSHAL DUMP_USED_2 ;V2.10 PUSHAL SUPER_HOW_USED_Q_TREE_HEAD(R8) ;V2.10 CALLS #3,G^LIB$TRAVERSE_TREE ;V2.10 CMPW #40,OUTPUT_STRING ;V2.10 BEQL 13001$ ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 13001$: CLRL OUTPUT_STRING ;V2.10 12001$: ;V2.10 MOVL #LIB$_NORMAL,R0 ;V2.03 RET ;V1.10 .PAGE ;V2.10 .SUBTITLE DUMP HOW USED INDENT LEVEL 1 ;V2.10 .ENTRY DUMP_USED_2,^M ;V2.10 MOVL 4(AP),R8 ;V2.10 CVTBL SUPER_HOW_USED_B_SIZE(R8),R7 ;GET LENGTH ;V2.10 ADDL3 #3,R7,R6 ;ACCOUNT FOR 3 LEADING SPACES ;V2.10 CMPL R6,CHAR_COUNT ;V2.10 BGTR 7001$ ;V2.10 BRW 1$ ;NO OVERFLOW YET ;V2.10 7001$: ;V2.10 ; NEW ENTRY DES NOT FIT-OUTPUT OLD LINE AND REINIT FOR CONTINUATION LINE ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#40,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #40,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #40,OUTPUT_STRING ;V2.10 ; CHECK FOR EXTRA LONG MODULE NAME AND TAG STILL CAUSEING OVERFLOW ;V2.10 CMPL R6,CHAR_COUNT ;V2.10 BGTR 4001$ ;V2.10 BRW 1$ ;NO OVERFLOW ;V2.10 4001$: ;V2.10 ; STILL OVERFLOW-SLOP OVER INTO 4 LINES AS NEEDED ;V2.10 ; LINE 1 ;V2.10 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE+31 ;PUT IN 3 SPACES ;V2.10 ADDL2 #3,OUTPUT_STRING ;V2.10 SUBL2 #3,CHAR_COUNT ;V2.10 SUBL2 #3,R6 ;V2.10 MOVAL SUPER_HOW_USED_S_NAME(R8),R7 ;V2.10 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.10 SUBL2 CHAR_COUNT,R6 ;V2.10 3001$: ADDL2 CHAR_COUNT,OUTPUT_STRING ;V2.10 ADDL2 CHAR_COUNT,R7 ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 ; LINE 2 3 4 ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#43,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 MOVL #43,OUTPUT_STRING ;V2.10 SUBL3 #43,LINE_COUNT,CHAR_COUNT ;V2.10 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.10 SUBL3 CHAR_COUNT,R6,R0 ;V2.10 BGTR 2001$ ;V2.10 ADDL2 R6,OUTPUT_STRING ;V2.10 SUBL2 R6,CHAR_COUNT ;V2.10 BRW 1001$ ;V2.10 2001$: MOVL R0,R6 ;V2.10 BRW 3001$ ;V2.10 1$: SUBL2 R6,CHAR_COUNT ;V2.10 CVTWL OUTPUT_STRING,R6 ;GET NO OF CHRS IN LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE(R6) ;LOAD 3 BLANKS ;V2.10 ADDL2 #3,R6 ;V2.10 ADDW2 #3,OUTPUT_STRING ;V2.10 ADDW2 R7,OUTPUT_STRING ;V2.10 MOVC3 R7,SUPER_HOW_USED_S_NAME(R8),L^OUTPUT_LINE(R6) ;V2.10 1001$: ;V2.10 CMPL #2,INDENT_LEVEL ;V2.10 BLEQ 22001$ ;V2.10 BRW 12001$ ;V2.10 22001$: PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#44,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #44,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #44,OUTPUT_STRING ;V2.10 PUSHL #-1 ;V2.10 PUSHAL DUMP_USED_3 ;V2.10 PUSHAL SUPER_HOW_USED_Q_TREE_HEAD(R8) ;V2.10 CALLS #3,G^LIB$TRAVERSE_TREE ;V2.10 CMPW #44,OUTPUT_STRING ;V2.10 BEQL 13001$ ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 13001$: MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#40,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #40,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #40,OUTPUT_STRING ;V2.10 12001$: ;V2.10 MOVL #LIB$_NORMAL,R0 ;V2.10 RET ;V2.10 .PAGE ;V3.06 .SUBTITLE DUMP HOW USED INDENT LEVEL 2 ;V2.10 .ENTRY DUMP_USED_3,^M ;V2.10 MOVL 4(AP),R8 ;V2.10 CVTBL SUPER_HOW_USED_B_SIZE(R8),R7 ;GET LENGTH ;V2.10 ADDL3 #3,R7,R6 ;ACCOUNT FOR 3 LEADING SPACES ;V2.10 CMPL R6,CHAR_COUNT ;V2.10 BGTR 7001$ ;V2.10 BRW 1$ ;NO OVERFLOW YET ;V2.10 7001$: ;V2.10 ; NEW ENTRY DES NOT FIT-OUTPUT OLD LINE AND REINIT FOR CONTINUATION LINE ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#44,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #44,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #44,OUTPUT_STRING ;V2.10 ; CHECK FOR EXTRA LONG MODULE NAME AND TAG STILL CAUSEING OVERFLOW ;V2.10 CMPL R6,CHAR_COUNT ;V2.10 BGTR 4001$ ;V2.10 BRW 1$ ;NO OVERFLOW ;V2.10 4001$: ;V2.10 ; STILL OVERFLOW-SLOP OVER INTO 4 LINES AS NEEDED ;V2.10 ; LINE 1 ;V2.10 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE+31 ;PUT IN 3 SPACES ;V2.10 ADDL2 #3,OUTPUT_STRING ;V2.10 SUBL2 #3,CHAR_COUNT ;V2.10 SUBL2 #3,R6 ;V2.10 MOVAL SUPER_HOW_USED_S_NAME(R8),R7 ;V2.10 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.10 SUBL2 CHAR_COUNT,R6 ;V2.10 3001$: ADDL2 CHAR_COUNT,OUTPUT_STRING ;V2.10 ADDL2 CHAR_COUNT,R7 ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 ; LINE 2 3 4 ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#47,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 MOVL #47,OUTPUT_STRING ;V2.10 SUBL3 #47,LINE_COUNT,CHAR_COUNT ;V2.10 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.10 SUBL3 CHAR_COUNT,R6,R0 ;V2.10 BGTR 2001$ ;V2.10 ADDL2 R6,OUTPUT_STRING ;V2.10 SUBL2 R6,CHAR_COUNT ;V2.10 BRW 1001$ ;V2.10 2001$: MOVL R0,R6 ;V2.10 BRW 3001$ ;V2.10 1$: SUBL2 R6,CHAR_COUNT ;V2.10 CVTWL OUTPUT_STRING,R6 ;GET NO OF CHRS IN LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE(R6) ;LOAD 3 BLANKS ;V2.10 ADDL2 #3,R6 ;V2.10 ADDW2 #3,OUTPUT_STRING ;V2.10 ADDW2 R7,OUTPUT_STRING ;V2.10 MOVC3 R7,SUPER_HOW_USED_S_NAME(R8),L^OUTPUT_LINE(R6) ;V2.10 1001$: ;V2.10 CMPL #3,INDENT_LEVEL ;V2.10 BLEQ 22001$ ;V2.10 BRW 12001$ ;V2.10 22001$: PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#48,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #48,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #48,OUTPUT_STRING ;V2.10 PUSHL #-1 ;V2.10 PUSHAL DUMP_USED_4 ;V2.10 PUSHAL SUPER_HOW_USED_Q_TREE_HEAD(R8) ;V2.10 CALLS #3,G^LIB$TRAVERSE_TREE ;V2.10 CMPW #48,OUTPUT_STRING ;V2.10 BEQL 13001$ ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 13001$: MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#44,OUTPUT_LINE ;FOR CONTINUATION LINE ;V2.10 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #44,LINE_COUNT,CHAR_COUNT ;V2.10 MOVL #44,OUTPUT_STRING ;V2.10 12001$: ;V2.10 MOVL #LIB$_NORMAL,R0 ;V2.10 RET ;V2.10 .PAGE ;V3.06 .SUBTITLE DUMP HOW USED INDENT LEVEL 3 ;V3.06 .ENTRY DUMP_USED_4,^M ;V3.06 MOVL 4(AP),R8 ;V3.06 CVTBL SUPER_HOW_USED_B_SIZE(R8),R7 ;GET LENGTH ;V3.06 ADDL3 #3,R7,R6 ;ACCOUNT FOR 3 LEADING SPACES ;V3.06 CMPL R6,CHAR_COUNT ;V3.06 BGTR 7001$ ;V3.06 BRW 1$ ;NO OVERFLOW YET ;V3.06 7001$: ;V3.06 ; NEW ENTRY DES NOT FIT-OUTPUT OLD LINE AND REINIT FOR CONTINUATION LINE ;V3.06 PUSHAL OUTPUT_STRING ;V3.06 CALLS #1,PRINT_LINE ;V3.06 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V3.06 MOVC5 #0,NULL,#^A/ /,#48,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V3.06 ;LOCATION ;V3.06 SUBL3 #48,LINE_COUNT,CHAR_COUNT ;V3.06 MOVL #48,OUTPUT_STRING ;V3.06 ; CHECK FOR EXTRA LONG MODULE NAME AND TAG STILL CAUSEING OVERFLOW ;V3.06 CMPL R6,CHAR_COUNT ;V3.06 BGTR 4001$ ;V3.06 BRW 1$ ;NO OVERFLOW ;V3.06 4001$: ;V3.06 ; STILL OVERFLOW-SLOP OVER INTO 4 LINES AS NEEDED ;V3.06 ; LINE 1 ;V3.06 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE+31 ;PUT IN 3 SPACES ;V3.06 ADDL2 #3,OUTPUT_STRING ;V3.06 SUBL2 #3,CHAR_COUNT ;V3.06 SUBL2 #3,R6 ;V3.06 MOVAL SUPER_HOW_USED_S_NAME(R8),R7 ;V3.06 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V3.06 SUBL2 CHAR_COUNT,R6 ;V3.06 3001$: ADDL2 CHAR_COUNT,OUTPUT_STRING ;V3.06 ADDL2 CHAR_COUNT,R7 ;V3.06 PUSHAL OUTPUT_STRING ;V3.06 CALLS #1,PRINT_LINE ;V3.06 ; LINE 2 3 4 ;V3.06 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V3.06 MOVC5 #0,NULL,#^A/ /,#51,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V3.06 ;LOCATION ;V3.06 MOVL #51,OUTPUT_STRING ;V3.06 SUBL3 #51,LINE_COUNT,CHAR_COUNT ;V3.06 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V3.06 SUBL3 CHAR_COUNT,R6,R0 ;V3.06 BGTR 2001$ ;V3.06 ADDL2 R6,OUTPUT_STRING ;V3.06 SUBL2 R6,CHAR_COUNT ;V3.06 BRW 1001$ ;V3.06 2001$: MOVL R0,R6 ;V3.06 BRW 3001$ ;V3.06 1$: SUBL2 R6,CHAR_COUNT ;V3.06 CVTWL OUTPUT_STRING,R6 ;GET NO OF CHRS IN LINE ;V3.06 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE(R6) ;LOAD 3 BLANKS ;V3.06 ADDL2 #3,R6 ;V3.06 ADDW2 #3,OUTPUT_STRING ;V3.06 ADDW2 R7,OUTPUT_STRING ;V3.06 MOVC3 R7,SUPER_HOW_USED_S_NAME(R8),L^OUTPUT_LINE(R6) ;V3.06 1001$: ;V3.06 CMPL #4,INDENT_LEVEL ;V3.06 BLEQ 22001$ ;V3.06 BRW 12001$ ;V3.06 22001$: PUSHAL OUTPUT_STRING ;V3.06 CALLS #1,PRINT_LINE ;V3.06 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V3.06 MOVC5 #0,NULL,#^A/ /,#52,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V3.06 ;LOCATION ;V3.06 SUBL3 #52,LINE_COUNT,CHAR_COUNT ;V3.06 MOVL #52,OUTPUT_STRING ;V3.06 PUSHL #-1 ;V3.06 PUSHAL DUMP_USED_5 ;V3.06 PUSHAL SUPER_HOW_USED_Q_TREE_HEAD(R8) ;V3.06 CALLS #3,G^LIB$TRAVERSE_TREE ;V3.06 CMPW #52,OUTPUT_STRING ;V3.06 BEQL 13001$ ;V3.06 PUSHAL OUTPUT_STRING ;V3.06 CALLS #1,PRINT_LINE ;V3.06 13001$: MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V3.06 MOVC5 #0,NULL,#^A/ /,#48,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V3.06 ;LOCATION ;V3.06 SUBL3 #48,LINE_COUNT,CHAR_COUNT ;V3.06 MOVL #48,OUTPUT_STRING ;V3.06 12001$: ;V3.06 MOVL #LIB$_NORMAL,R0 ;V3.06 RET ;V3.06 .PAGE ;V3.06 .SUBTITLE DUMP HOW USED INDENT LEVEL 4/5 ;V3.06 .ENTRY DUMP_USED_5,^M ;V3.06 MOVL 4(AP),R8 ;V2.10 CVTBL SUPER_HOW_USED_B_SIZE(R8),R7 ;GET LENGTH ;V2.10 ADDL3 #3,R7,R6 ;ACCOUNT FOR 3 LEADING SPACES ;V2.10 CMPL R6,CHAR_COUNT ;V2.10 BGTR 7001$ ;V2.10 BRW 1$ ;NO OVERFLOW YET ;V2.10 7001$: ;V2.10 ; NEW ENTRY DES NOT FIT-OUTPUT OLD LINE AND REINIT FOR CONTINUATION LINE ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#52,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #52,LINE_COUNT,CHAR_COUNT ;V3.06 MOVL #52,OUTPUT_STRING ;V3.06 ; CHECK FOR EXTRA LONG MODULE NAME AND TAG STILL CAUSEING OVERFLOW ;V2.10 CMPL R6,CHAR_COUNT ;V2.10 BGTR 4001$ ;V2.10 BRW 1$ ;NO OVERFLOW ;V2.10 4001$: ;V2.10 ; STILL OVERFLOW-SLOP OVER INTO 4 LINES AS NEEDED ;V2.10 ; LINE 1 ;V2.10 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE+31 ;PUT IN 3 SPACES ;V2.10 ADDL2 #3,OUTPUT_STRING ;V2.10 SUBL2 #3,CHAR_COUNT ;V2.10 SUBL2 #3,R6 ;V2.10 MOVAL SUPER_HOW_USED_S_NAME(R8),R7 ;V2.10 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.10 SUBL2 CHAR_COUNT,R6 ;V2.10 3001$: ADDL2 CHAR_COUNT,OUTPUT_STRING ;V2.10 ADDL2 CHAR_COUNT,R7 ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 ; LINE 2 3 4 ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#55,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 MOVL #55,OUTPUT_STRING ;V3.06 SUBL3 #55,LINE_COUNT,CHAR_COUNT ;V3.06 MOVC5 CHAR_COUNT,(R7),#^A/ /,R6,L^OUTPUT_LINE+34 ;V2.10 SUBL3 CHAR_COUNT,R6,R0 ;V2.10 BGTR 2001$ ;V2.10 ADDL2 R6,OUTPUT_STRING ;V2.10 SUBL2 R6,CHAR_COUNT ;V2.10 BRW 1001$ ;V2.10 2001$: MOVL R0,R6 ;V2.10 BRW 3001$ ;V2.10 1$: SUBL2 R6,CHAR_COUNT ;V2.10 CVTWL OUTPUT_STRING,R6 ;GET NO OF CHRS IN LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#3,L^OUTPUT_LINE(R6) ;LOAD 3 BLANKS ;V2.10 ADDL2 #3,R6 ;V2.10 ADDW2 #3,OUTPUT_STRING ;V2.10 ADDW2 R7,OUTPUT_STRING ;V2.10 MOVC3 R7,SUPER_HOW_USED_S_NAME(R8),L^OUTPUT_LINE(R6) ;V2.10 1001$: ;V2.10 CMPL #5,INDENT_LEVEL ;V3.06 BGTR 12001$ ;V2.10 PUSHAL OUTPUT_STRING ;V2.10 CALLS #1,PRINT_LINE ;V2.10 MOVC5 #0,NULL,#0,#132,OUTPUT_LINE ;CLEAR OUTPUT LINE ;V2.10 MOVC5 #0,NULL,#^A/ /,#52,OUTPUT_LINE ;FOR CONTINUATION LINE ;V3.06 ;PUT BLANKS IN SYMBOL ;V2.10 ;LOCATION ;V2.10 SUBL3 #52,LINE_COUNT,CHAR_COUNT ;V3.06 MOVL #52,OUTPUT_STRING ;V3.06 12001$: ;V2.10 MOVL #LIB$_NORMAL,R0 ;V2.10 RET ;V2.10 .PAGE .SUBTITLE CLEAN UP SYMBOL TABLE CLEANUP_SUPER: ;V1.10 ; REMOVE ALL ENTRYS IN SYMBOL TABLE AND RETURN THEM TO HEAP ;V1.10 MOVAL SYMBOL_TABLE_QUEUE,R11 ;GET ADDR OF QUEUE HEADER ;V1.10 MOVL (R11),R10 ;GET QUEUE ELEMENT ;V2.10 BEQL 2$ ;V2.10 CALLG NULL,CLEAN_TAIL ;REMOVE ALL ATTACHED ITEMS ;V1.10 MOVL #SUPER_TABLE_LENGTH,ARG1 ;V1.10 MOVL R10,ARG2 ;V1.10 CALLG VM_ARG,FREE ;V1.10 2$: MOVL 4(R11),R10 ;GET QUEUE ELEMENT ;V2.10 BEQL 3$ ;V2.10 CALLG NULL,CLEAN_TAIL ;REMOVE ALL ATTACHED ITEMS ;V2.10 MOVL #SUPER_TABLE_LENGTH,ARG1 ;V2.10 MOVL R10,ARG2 ;V2.10 CALLG VM_ARG,FREE ;V2.10 3$: CLRQ SYMBOL_TABLE_QUEUE ;CLEAN UP QUEUE ;V2.10 CLRW SYMBOL_TABLE_QUEUE+8 ;V2.10 BRW SUPER_COMPLETE ;V2.10 .ENTRY CLEAN_TAIL,^M ;V1.10 ; ;V1.10 ; DOES IT HAVE A LEFT LINK ;V1.10 TSTL SUPER_TABLE_Q_QUEUE(R10) ;V1.10 BEQL 1$ ;NO-SEE ABOUT HIGHER ;V1.10 ; HAS LOWER SYMBOL TO REMOVE ;V1.10 PUSHR #^M ;SAVE CURRENT ;V1.10 MOVL SUPER_TABLE_Q_QUEUE(R10),R10;GET LEFT ELEMENT ;V1.10 CALLG NULL,CLEAN_TAIL ;V1.10 MOVL #SUPER_TABLE_LENGTH,ARG1 ;V1.10 MOVL R10,ARG2 ;V1.10 CALLG VM_ARG,FREE ;FREE BLOCK ;V1.10 POPR #^M ;V1.10 1$: TSTL SUPER_TABLE_Q_QUEUE+4(R10) ;ANY RIGHT ;V1.10 BEQL 2$ ;NO ;V1.10 ; HAS HIGHER SYMBOLS TO REMOVE ;V1.10 PUSHR #^M ;SAVE REGESTERS ;V1.10 MOVL SUPER_TABLE_Q_QUEUE+4(R10),R10 ;V1.10 CALLG NULL,CLEAN_TAIL ;V1.10 MOVL #SUPER_TABLE_LENGTH,ARG1 ;V1.10 MOVL R10,ARG2 ;V1.10 CALLG VM_ARG,FREE ;V1.10 POPR #^M ;V1.10 2$:; REMOVE ALL HOW USED FROM ELEMENT ;V1.10 MOVL SUPER_TABLE_Q_HOW_USED_QUEUE(R10),R9 ;V1.10 BEQL 8$ ;V2.10 ;GET ADDR OF HOW USED QUEUE HEADER ;V1.10 MOVL SUPER_HOW_USED_Q_QUEUE(R9),R8 ;GET LEFT ;V1.10 BEQL 3$ ;NO LEFT ;V1.10 CALLG NULL,CLEAN_USED_TAIL ;V1.10 3$: MOVL SUPER_HOW_USED_Q_QUEUE+4(R9),R8 ;GET RIGHT ;V1.10 BEQL 4$ ;V1.10 CALLG NULL,CLEAN_USED_TAIL ;V1.10 4$: MOVL SUPER_HOW_USED_Q_TREE_HEAD(R9),R8 ;V2.10 BEQL 1004$ ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 1004$: MOVL SUPER_HOW_USED_Q_TREE_HEAD+4(R9),R8 ;V2.10 BEQL 2004$ ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 2004$: ;V2.10 MOVL R9,ARG2 ;V1.10 MOVL #SUPER_HOW_USED_LENGTH,ARG1 ;V1.10 CALLG VM_ARG,FREE ;V1.10 8$: MOVL SUPER_TABLE_Q_HOW_USED_QUEUE+4(R10),R9 ;V2.10 BEQL 7$ ;V2.10 ;GET ADDR OF HOW USED QUEUE HEADER ;V2.10 MOVL SUPER_HOW_USED_Q_QUEUE(R9),R8 ;GET LEFT ;V2.10 BEQL 5$ ;NO LEFT ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 5$: MOVL SUPER_HOW_USED_Q_QUEUE+4(R9),R8 ;GET RIGHT ;V2.10 BEQL 6$ ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 6$: MOVL SUPER_HOW_USED_Q_TREE_HEAD(R9),R8 ;V2.10 BEQL 1006$ ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 1006$: MOVL SUPER_HOW_USED_Q_TREE_HEAD+4(R9),R8 ;V2.10 BEQL 2006$ ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 2006$: ;V2.10 MOVL R9,ARG2 ;V2.10 MOVL #SUPER_HOW_USED_LENGTH,ARG1 ;V2.10 CALLG VM_ARG,FREE ;V2.10 7$: RET ;V1.10 .ENTRY CLEAN_USED_TAIL,^M ;V1.10 TSTL SUPER_HOW_USED_Q_QUEUE(R8) ;V1.10 BEQL 1$ ;V1.10 PUSHR #^M ;V1.10 MOVL SUPER_HOW_USED_Q_QUEUE(R8),R8 ;V1.10 CALLG NULL,CLEAN_USED_TAIL ;V1.10 POPR #^M ;V1.10 1$: TSTL SUPER_HOW_USED_Q_QUEUE+4(R8) ;V1.10 BEQL 2$ ;V1.10 PUSHR #^M ;V1.10 MOVL SUPER_HOW_USED_Q_QUEUE+4(R8),R8 ;V1.10 CALLG NULL,CLEAN_USED_TAIL ;V1.10 POPR #^M ;V1.10 2$: TSTL SUPER_HOW_USED_Q_TREE_HEAD(R8) ;V2.10 BEQL 3$ ;V2.10 PUSHR #^M ;V2.10 MOVL SUPER_HOW_USED_Q_TREE_HEAD(R8),R8 ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 POPR #^M ;V2.10 3$: TSTL SUPER_HOW_USED_Q_TREE_HEAD+4(R8) ;V2.10 BEQL 4$ ;V2.10 PUSHR #^M ;V2.10 MOVL SUPER_HOW_USED_Q_TREE_HEAD+4(R8),R8 ;V2.10 CALLG NULL,CLEAN_USED_TAIL ;V2.10 POPR #^M ;V2.10 4$: MOVL R8,ARG2 ;V2.10 MOVL #SUPER_HOW_USED_LENGTH,ARG1 ;V2.10 CALLG VM_ARG,FREE ;V2.10 RET ;V1.10 SUPER_COMPLETE: 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 CLRL LINES_ON_PAGE MOVL #PARSE_LINES,STATUS_WORD MOVL #1,SUPER_SAVED_FLAG ;V1.32 BITL #SUPER_SAVE_FLAG,FLAG_WORD ;V1.32 BNEQ 1$ ;V1.32 CLRL SUPER_SAVED_FLAG ;V1.32 CALLG NULL,CLOSE_SCRATCH CALLG NULL,OPEN_SCRATCH 1$: RET .END