.TITLE OUTPUT .MCALL ..V2..,.REGDEF ..V2.. .REGDEF .GLOBL OTBFPT,USED,SRCSYM,LINCTR,NOLINE,GETLIN .GLOBL VAR,PRSTAT,ENTCTR,NAMCTR,PAGE,HIGPT,LOWPT .GLOBL OUTPUT,VRSTPT,RAD50U,PRTLIN,DECOUT,HIGHAV .GLOBL LOWAV,HIGPTR,LOWPTR,EVL12,DUMP,LINENO,CHRWD .GLOBL ENDLIN,BLNK,SNGCOM,SAVSUP,SUPER .CSECT OUT .PAGE OUTPUT: INC SRCSYM CLR LINCTR MOV #NOLINE,R0 JSR PC,PRTLIN ;INT HEADER MOV #VRSTPT-4,R4 ;SET UP FOR OUTPUT VARLB: MOV 4(R4),R4 ;GET NEXT VAR NAM ELEMNT BEQ OUTDNE ;IF ZERO DONE MOV 6(R4),R5 ;GET 1ST USE ELEMENT TST SNGCOM ;DO I CHECK FOR ONLY ONE USE OF VAR NAME BEQ 1$ ;IN COMMON BLOCK DECLARARTION TST (R5) ;IF IT IS USE MORE THAN ONECE,OUTPUT IT BNE 1$ CMP #"CM,-2(R5) ;IS ITS 1 USE IN COMMON BLOCK BEQ VARLB ;IF YES SKIP TO NEXT VARIABLE 1$: TST SUPER ;SUPER INDEX THIS FILE BEQ 2$ ;NO JSR PC,SAVSUP ;YES-SAVE VARIABLE 2$: MOV #VAR,R0 ;SET UP TO CONVERT RAD 50 VAR NM RO ASCII MOV R4,R1 JSR PC,RAD50U ADD #2,R1 JSR PC,RAD50U MOV #VAR,R0 ;PRINT OUT VAR NAME JSR PC,PRTLIN BR OUTUSED USELB: MOV #BLNK,R0 ;FOR CASES WHERE HOWUSEDS DONT FIT ON ;ONE OUTPUT LINE-FILL IN WHERE VAR NAME WOULD GO ;WITH BLANK JSR PC,PRTLIN OUTUSED: MOV CHRWD,-(SP) ;SET COUNTER ;FOR THE NUMBER OF HOW USED TO PUT ON LINE ;7 FOR TTY OR 13 FOR LP-SET BY SWITCH IN OPEN USELB2: MOV -4(R5),R0 ;GET LINE NUMBER FROM USE ELEMENT MOV R4,-(SP) JSR PC,DECOUT ;PRINT IT OUT MOV (SP)+,R4 MOV -2(R5),USED ;GET HOW USED NEMONIC MOV #USED,R0 JSR PC,PRTLIN ;PRINT OUT NEMONIC OF HOW USED MOV (R5),R5 ;GET NEXT ELEMENT BEQ DNEVAR ;IF ZERO-ALL ELEMNTS FOR VARNAME OUTPUTED DEC (SP) ;DEC CTR BNE USELB2;IF NOT 0 GET ANOTHER ELEMENT CLR (SP)+ MOV #ENDLIN,R0 JSR PC,PRTLIN ; BR USELB DNEVAR: MOV #ENDLIN,R0 JSR PC,PRTLIN ; CLR (SP)+ BR VARLB ;START ON NEW VARIABLE OUTDNE: MOV HIGPTR,HIGPT MOV LOWPTR,LOWPT MOV HIGHAV,HIGPTR ;RESET POINTERS FOR EMPTY TABLE MOV LOWAV,LOWPTR CLR VRSTPT CLR SRCSYM CLR LINCTR RTS PC BLNK: .ASCII / / .BYTE 200 .EVEN ENDLIN: .WORD 0 .PAGE EVL12: JSR PC,OUTPUT CLR LINENO ;RESET LINE NUMBER IN CASE MANY SOURCES ;COCATONATED IN ONE FILE TST PRSTAT ;PRINT STATISTICS??? BEQ EXIT CLR LINCTR MOV #-1,SRCSYM MOV #NOLINE,R0 JSR PC,PRTLIN MOV #SIZ,R0 JSR PC,PRTLIN MOV HIGHAV,R0 SUB LOWAV,R0 ASR R0 BIC #100000,R0 JSR PC,DECOUT MOV #UNUSD,R0 JSR PC,PRTLIN MOV HIGPT,R0 SUB LOWPT,R0 ASR R0 BIC #100000,R0 JSR PC,DECOUT MOV #UNM,R0 JSR PC,PRTLIN MOV NAMCTR,R0 JSR PC,DECOUT MOV #NOTIM,R0 JSR PC,PRTLIN MOV ENTCTR,R0 JSR PC,DECOUT MOV #ENDLIN,R0 JSR PC,PRTLIN CLR LINCTR EXIT: CLR SRCSYM CLR ENTCTR CLR PAGE CLR NAMCTR JSR PC,GETLIN RTS PC SIZ: .BYTE 15,12,12 .ASCII / BUFFER SIZE / .BYTE 200 .EVEN UNUSD: .ASCII / WORDS/ .BYTE 15,12 .ASCII / UNUSED BUFFER SPACE / .BYTE 200 .EVEN UNM: .ASCII / WORDS/ .BYTE 15,12 .ASCII ? VARIABLES/LABELS DEFINED ? .BYTE 200 .EVEN NOTIM: .BYTE 15,12 .ASCII / HOW USED ENTRIES / .BYTE 200 .EVEN .PAGE DUMP: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) MOV R5,-(SP) INC SRCSYM MOV #MSGOVL,R0 ;STORE REGISTERS SO OPS IN ACTION ;USEING REGISTERS ARE NOT DITERBED JSR PC,PRTLIN ;INFORM USER OF OVERFLOW JSR PC,OUTPUT MOV #NOLINE,R0 JSR PC,PRTLIN MOV (SP)+,R5 MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 RTS PC MSGOVL: .BYTE 15,12 .ASCII / INDEX SYMBOL TABLE FULL-/ .ASCII /PARTIAL CROSS REFERENCE LISTING/ .BYTE 15,12,200 .EVEN .END