MODULE PRTTAB .=.+2004 ;SKIP OVER OTHER DATA .NLIST BEX ; ; STRINGS USED BY FOLSTP, FOLCTP FOR SYMBOL TABLE DUMP. DATA STRLOC .ASCII / LOCAL/ DATA STRTAB .ASCII / TABLES/ DATA SPACES .ASCII / / DATA STRTYP .ASCII /TYPE/ DATA STRKON .ASCII /CONSTANT / DATA STRVAR .ASCII /VARIABLE / DATA STRACT .ASCII /ACTUAL/ DATA STRFML .ASCII /FORMAL/ DATA STRSTD .ASCII /STANDARD/ DATA STRDEC .ASCII /DECLARED/ DATA STRFLD .ASCII /FIELD/ DATA STRPRC .ASCII /PROCEDURE / DATA STRFWD .ASCII /FOR / DATA STREXT .ASCII /EXT/ DATA STRSCL .ASCII /SCALAR / DATA STRSUB .ASCII /SUBRANGE/ DATA STRPNT .ASCII /POINTER/ DATA STRSET .ASCII /SET/ DATA STRARY .ASCII /ARRAY/ DATA STRREC .ASCII /RECORD/ DATA STRFIL .ASCII /FILE/ DATA STRTAG .ASCII /TAGFIELD/ DATA STRVRT .ASCII /VARIANT/ DATA NEWLINES .BYTE NL,NL,NL,NL .PAGE ; ; CONSTANTS FF=14 NOT=176 L0=0 L1=1 L2=2 ; ; CONSTANT VALUES FOR TYPES DEKLKIND, IDKIND NOT FORMALLY USED. ; USED AS BIT VALUES, TESTED, SET BY BIT INSTRUCTIONS. ; STANDARD=0 ; DECLARED=1 ; ACTUAL=0 ; FORMAL=1 .PAGE .SBTTL SYSTEM MACROS ; .MACRO OUTC C LOADI C WRITEC LST,L0 .ENDM ; ; MACRO TO PRINT OUT SPACES .MACRO SPACES L POINT SPACES,L0 LOADI L WRITES LST,L0 .ENDM ; .MACRO MRKCTP P,L,D MARKS 0 LOAD P,L LOADP D CALL MRKCTP,L2 .ENDM ; .MACRO MRKSTP P,L,D MARKS 0 LOAD P,L LOADP D CALL MRKSTP,L2 .ENDM ; .MACRO FOLCTP P,L,D MARKS 0 LOAD P,L LOADP D CALL FOLCTP,L2 .ENDM ; .MACRO FOLSTP P,L,D MARKS 0 LOAD P,L LOADP D CALL FOLSTP,L2 .ENDM ; .MACRO ENTRID P,L MARKS 0 LOAD P,L CALL ENTRID,L1 .ENDM ; .MACRO INSPV .GLOBL P$SIN $XR 2 JSR %7,P$SIN $FR 0 .ENDM .PAGE PROC PRTTAB,L1,* ; ROUTINE TO DUMP SYMBOL TABLE. WORD I ; DISPRANGE WORD LIM ; DISPRANGE WORD I1 ; INTEGER BEGIN OUTC NL MARKS 0 CALL ENDOFLINE,1 POINT NEWLINES,0 LOADI 3 WRITES LST,L0 CMPIM 1,TOP,0 IF EQ ZEROM LIM ELSE MOVE TOP,L0,LIM POINT STRLOC,L0 LOADI 6 WRITES LST,L0 ENDIF POINT STRTAB,L0 LOADI 7 WRITES LST,L0 OUTC NL MOVE TOP,L0,I LOOP MARKS 0 LOAD I DUP ASHS L,1 ADDSS LOADX DISPLAY+D.FN,L0 CALL MRKCTP,L2 LOAD I CMPSM LIM WHILE GT DECM I ENDLOOP MOVE TOP,L0,I LOOP MARKS 0 LOAD I DUP ASHS L,1 ADDSS LOADX DISPLAY+D.FN,L0 CALL FOLCTP,L2 LOAD I CMPSM LIM WHILE GT DECM I ENDLOOP POINT NEWLINES,0 LOADI 4 WRITES LST,L0 ENDPROC ; PRTTAB .PAGE PROC MRKCTP,L2 ; FOLLOW LEFT, RIGHT LINKS, MARKING TYPE STRUCTURES REFERENCED. PARM FP ; CTP; PTR TO IDENTIFIER TO BE PROCESSED. BEGIN CMPIM NIL,FP IF NE MRKCTP FP,,I.L MRKCTP FP,,I.R MRKSTP FP,,I.T ENDIF ENDPROC ; MRKCTP .PAGE PROC MRKSTP,L2 ; MARK POINTED-AT DATA STRUCTURE. PARM FP ; STP BEGIN CMPIM NIL,FP IF NE LOAD FP BISP S.MK LOAD FP EXTP S.FM CASE 9. CENTRY ; NO ACTION CENTRY SUBRANGE MRKSTP FP,,S.RT CENTRY POWER MRKSTP FP,,S.ES CENTRY ARRAYT MRKSTP FP,,S.AT MRKSTP FP,,S.IT CENTRY RECORDS MRKCTP FP,,S.FF MRKSTP FP,,S.RV CENTRY FILET MRKSTP FP,,S.FT CENTRY TAGFIELD MRKSTP FP,,S.FV CENTRY VARIANT MRKSTP FP,,S.NV MRKSTP FP,,S.SV ENDCASE ENDIF ENDPROC ; MRKSTP .PAGE PROC FOLCTP,L2 ; PRINT OUT VALUES FROM IDENTIFIER RECORD POINTED TO. PARM FP ; CTP WORD TSP ; CTP WORD TCSP ; CSP WORD I ; INTEGER WORD J ; INTEGER BEGIN CMPIM NIL,FP IF NE,* FOLCTP FP,,I.L LOAD FP WRITEO LST,L0 SPACES 4 LOADR FP,,I.N ADDIS 1 LOADR FP,,I.N LOADP 0,B STON I WRITES LST,L0 LOADI 19. SUBMS I STOD I IF GT POINT SPACES,L0 LOAD I WRITES LST,L0 ENDIF LOADR FP,,I.L WRITEO LST,L0 SPACES 4 LOADR FP,,I.R WRITEO LST,L0 SPACES 4 LOADR FP,,I.T WRITEO LST,L0 SPACES 4 LOADR FP,,I.NX WRITEO LST,L0 SPACES 4 LOAD FP EXTP I.K CASE 6 CENTRY TYPES,* POINT STRTYP,L0 LOADI 4. WRITES LST,L0 .PAGE CENTRY KONST,* POINT STRKON,L0 LOADI 10. WRITES LST,L0 LOADR FP,,I.T CMPSI NIL IF NE LOADR FP,,I.C.C,B CASE 4 CENTRY LOADR FP,,I.C.I WRITEJ LST,L0 CENTRY ;NOT YET IMPLEMENTED CENTRY LOADR FP,,I.C.P STOD TSP OUTC 133 ;'[' LOADR FP,,I.T LOADP S.SZ TSTS IF NE ;NOT AN EMPTY SET STOI 0,I STOI 0,J LOOP CMPIM 255.,I WHILE GE LOAD I LOAD TSP INSPV IF TRUE CMPIM 0,J IF NE OUTC 54 ;',' ENDIF LOAD I WRITEJ LST,L0 INCM J ENDIF INCM I ENDLOOP ENDIF OUTC 135 ;']' CENTRY LOADR FP,,I.C.S,B LOADI 4. WRITEI LST,L0 LOADR FP,,I.C.A LOADI 8. WRITEI LST,L0 ENDCASE ENDIF .PAGE CENTRY VARS,* POINT STRVAR,L0 LOADI 9. WRITES LST,L0 LOAD FP BITP I.VK IF EQ POINT STRACT,L0 LOADI 6. WRITES LST,L0 ELSE POINT STRFML,L0 LOADI 6. WRITES LST,L0 ENDIF LOAD FP EXTP I.VL LOADI 4. WRITEI LST,L0 LOADR FP,,I.VA LOADI 8. WRITEI LST,L0 LOADR FP,,I.VS LOADI 8. WRITEI LST,L0 CENTRY FIELD,* POINT STRFLD,L0 LOADI 5. WRITES LST,L0 LOADR FP,,I.F LOADI 8. WRITEI LST,L0 LOADR FP,,I.FS LOADI 8. WRITEI LST,L0 .PAGE CENTRY PROC,* POINT STRPRC,L0 LOADI 10. WRITES LST,L0 LOAD FP BITP I.PF IF EQ POINT STRSTD,L0 LOADI 8. WRITES LST,L0 LOADR FP,,I.KE,B LOADI 4. WRITEI LST,L0 ELSE * POINT STRDEC,L0 LOADI 8. WRITES LST,L0 LOAD FP EXTP I.PL LOADI 4. WRITEI LST,L0 LOADR FP,,I.PA LOADI 4. WRITEI LST,L0 SPACES 2 LOAD FP BITP I.FD IF NE OUTC BLANK ELSE OUTC NOT ENDIF POINT STRFWD,L0 LOADI 5 WRITES LST,L0 LOAD FP BITP I.EX IF NE OUTC BLANK ELSE OUTC NOT ENDIF POINT STREXT,L0 LOADI 3 WRITES LST,L0 ENDIF ENDCASE OUTC NL FOLSTP FP,,I.T FOLCTP FP,,I.R ENDIF ENDPROC ; FOLCTP .PAGE PROC FOLSTP,L2 ; PRINT VALUES FROM STRUCTURE RECORD. PARM FP ; STP BEGIN CMPIM NIL,FP IF NE,* LOAD FP BITP S.MK IF NE,* LOAD FP BICP S.MK SPACES 4 LOAD FP WRITEO LST,L0 LOADR FP,,S.SZ LOADI 8. WRITEI LST,L0 SPACES 2 LOAD FP EXTP S.FM CASE 9. CENTRY SCALAR,* POINT STRSCL,L0 LOADI 7. WRITES LST,L0 LOAD FP BITP S.SK IF EQ ; STANDARD POINT STRSTD,L0 LOADI 8. WRITES LST,L0 ELSE ; DECLARED POINT STRDEC,L0 LOADI 8. WRITES LST,L0 SPACES 4 LOADR FP,,S.FC WRITEO LST,L0 ENDIF OUTC NL .PAGE CENTRY SUBRANGE,* POINT STRSUB,L0 LOADI 8. WRITES LST,L0 SPACES 4 LOADR FP,,S.RT WRITEO LST,L0 LOADR FP,,S.M.V LOADI 8. WRITEI LST,L0 LOADR FP,,S.X.V LOADI 8. WRITEI LST,L0 OUTC NL FOLSTP FP,,S.RT CENTRY POINTER,* POINT STRPNT,L0 LOADI 7. WRITES LST,L0 SPACES 5 LOADR FP,,S.ET WRITEO LST,L0 OUTC NL CENTRY POWER,* POINT STRSET,L0 LOADI 3. WRITES LST,L0 SPACES 9. LOADR FP,,S.ES WRITEO LST,L0 OUTC NL FOLSTP FP,,S.ES .PAGE CENTRY ARRAYT,* POINT STRARY,L0 LOADI 5. WRITES LST,L0 SPACES 7 LOADR FP,,S.AT WRITEO LST,L0 SPACES 4 LOADR FP,,S.IT WRITEO LST,L0 LOADR FP,,S.SF LOADI 8. WRITEI LST,L0 OUTC NL FOLSTP FP,,S.IT FOLSTP FP,,S.AT CENTRY RECORDS,* POINT STRREC,L0 LOADI 6. WRITES LST,L0 SPACES 6 LOADR FP,,S.FF WRITEO LST,L0 SPACES 4 LOADR FP,,S.RV WRITEO LST,L0 OUTC NL FOLCTP FP,,S.FF FOLSTP FP,,S.RV CENTRY FILET,* POINT STRFIL,L0 LOADI 4. WRITES LST,L0 SPACES 8. LOADR FP,,S.FT WRITEO LST,L0 OUTC NL FOLSTP FP,,S.FT .PAGE CENTRY TAGFIELD,* POINT STRTAG,L0 LOADI 8. WRITES LST,L0 SPACES 4 LOADR FP,,S.TF WRITEO LST,L0 SPACES 4 LOADR FP,,S.FV WRITEO LST,L0 OUTC NL FOLSTP FP,,S.FV CENTRY VARIANT,* POINT STRVRT,L0 LOADI 7. WRITES LST,L0 SPACES 5 LOADR FP,,S.NV WRITEO LST,L0 SPACES 4 LOADR FP,,S.SV WRITEO LST,L0 LOADR FP,,S.V.V LOADI 8. WRITEI LST,L0 OUTC NL FOLSTP FP,,S.SV FOLSTP FP,,S.NV ENDCASE ENDIF ENDIF ENDPROC ; FOLSTP .END