0 $SET $                                                                  00000050           
1 $SET LEVEL 2                                                            00000060           
2 [                                                                       00000100           
3 $LOADINFO                                                               00000200           
4 ]                                                                       00000300           
5 $SET INTRINSICS LINEINFO LIBRARY                                        00000400           
6 PROCEDURE PASCALSETTAG4(X);                                             00000500           
7 REAL X;                                                                 00000510           
8 BEGIN                                                                   00000520           
9   X := * & SETTAG(4);                                                   00000530           
10 END;    %OF PASCALSETTAG4                                               00000540           
11                                                                         00000550           
12 PROCEDURE PASCALTIMING(SUBRID,FYLE,ARR);                                00001000           
13   VALUE SUBRID,ARR;                                                     00002000           
14   REAL SUBRID;FILE FYLE;ARRAY ARR[*];                                   00003000           
15 BEGIN                                                                   00004000           
16   ARRAY X0[11]; REAL X1,X2,X3,X4,X5,X6,X7,X8,X9,X10;                    00005000           
17   WORD WA:=X0 & 1 PBITF;                                                00006000           
18   ARRAY A = WA [*];                                                     00007000           
19   REAL XXX,I,SZ,FREQ,TM;                                                00008000           
20   POINTER P;                                                            00009000           
21   NAME WORD PASSFILE = FYLE;                                            00010000           
22   WORD STUFFEDFILE = FYLE;                                              00011000           
23                                                                         00012000           
24   PROCEDURE DG(P,NUM,TOT);                                              00013000           
25     VALUE NUM,TOT;                                                      00014000           
26     POINTER P; REAL NUM,TOT;                                            00015000           
27   BEGIN                                                                 00016000           
28     XXX:=(FIRSTONE(DECIMAL(NUM) & 1[0:1])+3).[8:7];                     00017000           
29     REPLACE P:P BY 8" " FOR TOT-XXX,                                    00018000           
30       NUM FOR XXX DIGITS;                                               00019000           
31   END;                                                                  00020000           
32                                                                         00021000           
33   X0:=WORD(0);                                                          00022000           
34   SZ:=ARR.LENGTHF DIV 2;                                                00023000           
35   IF (STUFFEDFILE.SIRWDELTAF IS 0) THEN BEGIN                           00024000           
36     % DIAGNOSTIC FILE                                                   00025000           
37     STUFFEDFILE:= STUFFEDFILE & 0 DISPF & (THEFILE) SIRWDELTAF;         00026000           
38     IF (M[STUFFEDFILE].SZF IS 7) THEN BEGIN                             00027000           
39       OPEN(PASSFILE,0);                                                 00028000           
40     END;                                                                00029000           
41     P:=POINTER(A,8);                                                    00029500           
42     IF (SUBRID IS 0) THEN BEGIN                                         00030000           
43       WRITE(FYLE[SKIP 1]);                                              00031000           
44       REPLACE P BY                                                      00031100           
45         8"PROFIL",8"E OF C",8"PU TIM",                                  00031110           
46         8"E USAG",8"E (1 M",8"ICROSE",                                  00031120           
47         8"C PREC",8"ISION)";                                            00031130           
48       WRITE(FYLE[SPACE 2],8,A);                                         00031140           
49       REPLACE P BY                                                      00032000           
50         8"PROCED",8"URE   ",8" CALLS",                                  00033000           
51         8"     T",8"OTAL T",8"IME   ",                                  00034000           
52         8"   TIM",8"E/CALL";                                            00035000           
53       WRITE(FYLE[SPACE 2],8,A);                                         00036000           
54       EXIT;                                                             00037000           
55     END;                                                                00038000           
56     WHILE (I<SZ) DO BEGIN                                               00039000           
57       FREQ:=ARR[I*2];                                                   00041000           
58       TM:=INTEGER(ARR[I*2+1]*2.4);                                      00042000           
59       IF (I=0) THEN BEGIN                                               00043000           
60         REPLACE P:P BY SUBRID FOR 6;                                    00044000           
61       END ELSE BEGIN                                                    00045000           
62         DG(P,I,6);                                                      00046000           
63       END;                                                              00047000           
64       IF (FREQ>0) OR (I=0) THEN BEGIN                                   00048000           
65         IF (TM<0) THEN BEGIN                                            00049000           
66           TM:=INTEGER(TIMEINTRINSIC(12)*2.4+TM);                        00050000           
67           REPLACE P:P BY 8"?";                                          00051000           
68         END ELSE BEGIN                                                  00052000           
69           REPLACE P:P BY 8" ";                                          00053000           
70         END;                                                            00054000           
71         DG(P,FREQ,11);                                                  00055000           
72         IF (FREQ=0) THEN BEGIN                                          00056000           
73           REPLACE P:P BY 8" " FOR 30;                                   00057000           
74         END ELSE BEGIN                                                  00058000           
75           THRU 2 DO BEGIN                                               00059000           
76             IF (TM<1000000) THEN BEGIN                                  00060000           
77               REPLACE P:P BY 8" " FOR 9;                                00061000           
78               DG(P,TM,6);                                               00062000           
79             END ELSE BEGIN                                              00063000           
80               DG(P,TM DIV 1000000,8);                                   00064000           
81               REPLACE P:P BY 8".", TM FOR 6 DIGITS;                     00065000           
82             END;                                                        00066000           
83             TM := INTEGER(TM/FREQ);                                     00067000           
84           END;   %OF THRU                                               00068000           
85         END;                                                            00069000           
86         WRITE(FYLE,8,A);                                                00070000           
87       END;   %OF IF                                                     00071000           
88       I:=I+1;                                                           00072000           
89     END;   %OF WHILE                                                    00073000           
90     EXIT;                                                               00074000           
91   END;                                                                  00074500           
92 END OF PASCAL TIMING STATISTIC ROUTINE.                                 00075000           
93                                                                         00076000           