PSAMP 
          IDENT  PSAMP
          TITLE  PSAMP - P-SAMPLE ANALYZER. 
*COMMENT  PSAMP - P-SAMPLE ANALYZER.
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          LCC OVERLAY(PSAMP,0,0)
          ENTRY  SFF
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMCMAC 
          TITLE  SUBROUTINES. 
 SFF      SPACE  4,10 
**        SFF - SPACE FILL FIELD. 
* 
*         ENTRY  (A1) = PARAMETER BLOCK ADDRESS.
*                (X1) = FWA OF AREA TO SPACE FILL.
*                (((A1)+1)) = NUMBER OF WORDS TO SPACE FILL.
* 
*         EXIT   SPECIFIED AREA SPACE FILLED. 
* 
*         USES   A - 1, 5, 6. 
*                B - 1, 7.
*                X - 1, 5, 6. 
* 
*         CALLS  SFN. 
  
  
 SFF      SUBR               ENTRY/EXIT 
          SB1    1           SET PARAMETERS 
          SA5    X1-1 
          SA1    A1+1 
          SA1    X1 
          SB7    X1 
 SFF1     SA5    A5+B1       SPACE FILE AREA
          SB7    B7-B1
          NG     B7,SFFX     IF SPECIFIED WORDS SPACE FILLED
          BX1    X5          SPACE FILL NAME
          RJ     SFN
          SA6    A5 
          EQ     SFF1        LOOP 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMCSFN 
          SPACE  4,10 
          END 
          PROGRAM PSMPL(PSAMPL,OUTPUT,TAPE2=OUTPUT,TAPE1=PSAMPL)
  
  
***       PSAMP - P-REGISTER SAMPLE ANALYZER. 
*         G. R. MANSFIELD.  71/06/03. 
  
  
  
  
***              PSAMP ANALYZES THE P-SAMPLE DATA PRODUCED BY SMP.
  
  
  
  
***       CONTROL CARD CALL.
* 
* 
*         PSAMP.
  
  
  
  
1000      FORMAT ('1',9X,'P REGISTER SAMPLES FOR ',8A10,/,9X,2A10)
1001      FORMAT ('0',9X,'ELAPSED REAL TIME',F10.3,' SEC.',/, 
     1    10X,           'ELAPSED CPU TIME ',F10.3,' SEC.') 
1002      FORMAT ('0',9X,'SAMPLE RANGE - FROM ',O6,' TO ',O6) 
1003      FORMAT ('0',9X,'SAMPLES JOB NOT ACTIVE',I14,
     1    /,10X,         'SAMPLES JOB IN RECALL ',I14,
     2    /,10X,         'SAMPLES BELOW RANGE   ',I14,
     3    /,10X,         'SAMPLES IN RANGE      ',I14,
     3    /,10X,         'SAMPLES ABOVE RANGE   ',I14,
     3    /,10X,         'SAMPLES CPU AT SUB-CP ',I14,
     4    //,10X,        'TOTAL SAMPLES         ',I14)
1004      FORMAT ('Q',//,5X,'P-REG     COUNT   PCT',5X, 
     1    '0',9X,'1',9X,'2',9X,'3',9X,'4',9X,'5',9X,'6',9X,'7',9X,'8',
     2    9X,'9',9X,'0',//) 
1005      FORMAT (5X,'BELOW',I10,F6.1,5X,100R1) 
1006      FORMAT (4X,O6,I10,F6.1,5X,100R1)
1007      FORMAT (5X,'ABOVE',I10,F6.1,5X,100R1) 
1008      FORMAT (1H0,9X,I10,F6.1)
  
  
          COMMON /BLOCK/ CCD, DTE, TIM, RTS, RTF, CTS, CTF, FWA, LWA, 
     =    IAC, RCL, BLR, ABR, ASC, PSM
          INTEGER CCD(8), DTE, TIM, RTS, RTF, CTS, CTF, FWA, LWA, 
     =    IAC, RCL, BLR, ABR, ASC, PSM(128) 
          DIMENSION IBUF(100) 
  
*         READ P-SAMPLE FILE. 
  
          REWIND 1
1         BUFFER IN (1,0) (CCD(1), PSM(128))
          IF (UNIT(1)) 2, 11, 11
11        ENDFILE 2 
          STOP
  
*         PRINT STATISTICS. 
  
2         CALL SFF(CCD, 8)
          WRITE (2,1000) CCD, DTE, TIM
          RT = (AND(RTF,O"777777777777")-AND(RTS,O"777777777777"))*.001 
          CT = FLOAT(CTF - CTS) / 4000000000.0
          WRITE(2,1001) RT, CT
          WRITE(2,1002) FWA, LWA
  
*         CALCULATE SAMPLE COUNTS.
  
          IR = 0
          DO 21 I=1,128 
21        IR = IR+PSM(I)
          IS = IAC + RCL + BLR + ABR + ASC + IR 
          WRITE(2,1003) IAC, RCL, BLR, IR, ABR, ASC, IS 
  
*         LIST SAMPLING RESULTS.
  
          WRITE(2,1004) 
          INT = (LWA-FWA)/128 
          TCNT = BLR + IR + ABR 
          IPSM = BLR
          A = BLR 
          TPCT = 100*(A/TCNT) 
          K = TPCT+.5 
          DO 31 J=1,100 
31        IBUF(J) = R" "
          DO 32 J=1,K 
32        IBUF(J) = R"*"
          IF (K.GT.0) IBUF(K) = R"+"
          WRITE(2,1005) BLR, TPCT, IBUF 
  
          DO 45 I=1,128 
          DO 41 J=1,100 
41        IBUF(J) = R" "
          LOC = FWA+((I-1)*INT) 
          A = PSM(I)
          PCT = 100*(A/TCNT)
          N = PCT+.5
          DO 42 J=1,N 
42        IBUF(J) = R"*"
          K = K+N 
          IF (N.GT.0) IBUF(N) = R"+"
          TPCT = TPCT+PCT 
          IPSM = IPSM+PSM(I)
45        WRITE(2,1006) LOC, PSM(I), PCT, IBUF
  
          A = ABR 
          PCT = 100*(A/TCNT)
          N = PCT+.5
          DO 51 J=1,100 
51        IBUF(J) = R" "
          DO 52 J=1,N 
52        IBUF(J) = R"*"
          K = K+N 
          IF (N.GT.0) IBUF(N) = R"+"
          TPCT = TPCT+PCT 
          IPSM = IPSM+ABR 
          WRITE(2,1007) ABR, PCT, IBUF
  
          WRITE(2,1008) IPSM, TPCT
  
          GOTO 1
  
          END 
