$CONTROL MAP,CODE,USLINIT                                               00010000
<<LISTLG2>>                                                             00012000
<< HP32002C MPE SOURCE C.00.00 >>                                       00014000
$COPYRIGHT     "(C) COPYRIGHT HEWLETT-PACKARD CO. 1980. ",            & 00016000
$     "THIS PROGRAM MAY BE USED WITH ONE COMPUTER SYSTEM AT A ",      & 00018000
$     "TIME AND SHALL NOT OTHERWISE BE RECORDED, TRANSMITTED OR ",    & 00020000
$     "STORED IN A RETRIEVAL SYSTEM.  COPYING OR OTHER REPRODUCTION ",& 00022000
$     "OF THIS PROGRAM EXCEPT FOR ARCHIVAL PURPOSES IS PROHIBITED ",  & 00024000
$     "WITHOUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY."   00026000
$CONTROL MAIN=LISTLOG                                                   00028000
* * * *  L O G   F I L E   L I S T I N G   P R O G R A M  * * *         00030000
BEGIN                                                                   00032000
$PAGE   "  ****   FIX  INFORMATION   **** "                    <<04206>>00034000
<<**********************************************************>> <<04206>>00036000
<<                                                          >> <<04206>>00038000
<<               FIX    INFORMATION                         >> <<04206>>00040000
<<                                                          >> <<04206>>00042000
<<  For each fix submitted, please                          >> <<04206>>00044000
<<  describe the fix and date below.                        >> <<04206>>00046000
<<**********************************************************>> <<04206>>00048000
                                                               <<04206>>00050000
<<**********************************************************>> <<04206>>00052000
<< Modified Log record type 8 to print SUBTYPE and Logical  >> <<04206>>00054000
<< Pages/Physcial page and number of Physcical Pages.       >> <<04206>>00056000
<< February 10,1982                                         >> <<04206>>00058000
<<**********************************************************>> <<04206>>00060000
                                                               <<04206>>00062000
$PAGE                                                          <<04206>>00064000
$INCLUDE INCLVUF                                               <<04225>>00066000
      BYTE ARRAY VERSION(0:6) := OFFICIAL'VUUFF;               <<04225>>00068000
   DEFINE                                                      <<01.01>>00070000
  PTITLE = ("LISTLOG2         (C) HEWLETT PACKARD CO., 1982")#;<<04225>>00072000
<<                                                             <<sp.01>>00074000
<< no'log'types is the number of different log types           <<sp.01>>00076000
<<      (counting from zero)                                   <<sp.01>>00078000
      EQUATE VUUFF'COL = 9;  << INDEX INTO PTITLE >>           <<04225>>00080000
EQUATE NO'LOG'TYPES = 21;                                      <<04854>>00082000
       BYTE ARRAY INPUT(0:73);                                <<01.01>> 00084000
      ARRAY WINPUT (*) = INPUT;                                <<01.01>>00086000
      ARRAY OUTP(0:71);                                                 00088000
      BYTE POINTER OUTM:=@OUTP;                                         00090000
      BYTE ARRAY PT(0:20):=" TIME     TYPE  JOB#";                      00092000
      BYTE ARRAY LLIST(0:8 ):="LOGLIST ";                               00094000
      BYTE ARRAY LP(0:2):="LP ";                                        00096000
      EQUATE BUFSIZE = 102;  << SIZE OF LOG REC. BUFFER >>     <<01182>>00098000
      EQUATE EOT = 23;     <<END OF TAPE FILE ERROR>>          <<04226>>00100000
      ARRAY WBUFIN(0:BUFSIZE-1);                               <<01182>>00102000
      INTEGER ARRAY ibufin(*)=wbufin;                          <<SP.01>>00104000
      BYTE ARRAY  BUFIN(*)=WBUFIN;                                      00106000
      BYTE ARRAY BUFOUT(0:131);                                <<01182>>00108000
      ARRAY WBUFOUT(*)=BUFOUT;                                          00110000
      ARRAY WB(*)=WBUFOUT;                                              00112000
       LOGICAL FIRST'LOG'NUM;                                  <<MS.00>>00114000
      LOGICAL FIRST,LAST,COUNT,CNT,FILENUM,PRESENTLOGFILE,FIRSTIME,TEMP;00116000
      LOGICAL MODE,PURGEFLAG:=FALSE;                     <<00.06>>      00118000
      LOGICAL VALID'TYPES;                                     <<03643>>00120000
      DEFINE GOOD'TYPE =                                       <<03643>>00122000
          IF(TEMP >= 17 LAND TEMP <= 45) OR                    <<03643>>00124000
          TEMP >= 48 THEN FALSE ELSE TRUE#;                    <<03643>>00126000
      LOGICAL NEED'NEW'PAGE := FALSE;                          <<04218>>00128000
      LOGICAL EVENT'PRINTED := FALSE;                          <<04218>>00130000
      LOGICAL RECOVERABLERROR := FALSE;                        <<04226>>00132000
       DEFINE DUPLICATIVE=MODE.(14:1)#,                       <<01.01>> 00134000
              JOB        =MODE.(12:1)#;                       <<01.01>> 00136000
      INTEGER FOUT,FIN, NC ,RPP,RECTYPE,FC;                             00138000
      INTEGER                                                  <<03643>>00140000
         LOGGEDATA'COUNT, <<TOTAL LINES LOGGED DATA OUTPUT>>   <<03643>>00142000
         TOTAL'LOGGED,  <<TOTAL # BYTES LOGGED DATA >>         <<03643>>00144000
         BYTE'COUNTER,  <<COMPARE TO TOTAL'LOGGED   >>         <<03643>>00146000
         BYTE'INDEX,    <<INDEX FOR WBUFIN ARRAY    >>         <<03643>>00148000
         OUT'INDEX,     <<WHERE TO PLACE IN OUTPUT ARRAY >>    <<03643>>00150000
         PRINT'COUNTER, <<# OF OCTAL BYTES PRINTED  >>         <<03643>>00152000
         WORDS'LOGGED;                                         <<03643>>00154000
      BYTE ARRAY DAYS(0:21):="SUNMONTUEWEDTHUFRISAT";                   00156000
       INTEGER  I, LINEINDEX;                                  <<01352>>00158000
      INTEGER X=X;                                                      00160000
      INTEGER CYD;                                                      00162000
      INTEGER Y,D;                                                      00164000
      INTEGER Q2=Q-2;                                                   00166000
      INTEGER Q1=Q-1;                                                   00168000
      INTEGER S0=S-0;                                                   00170000
      INTEGER ARRAY RPPCOUNT(0:14) :=                          <<03643>>00172000
           3,3,4,4,4,4,6,6,6,6,9,9,9,9,9;                      <<03643>>00174000
  << RPPCOUNT IS FOR DETERMINING HOW MUCH TO ADD TO THE RPP >> <<03643>>00176000
  << RECORDS PER PAGE COUNT IN ORDER TO HAVE ONLY COMPLETE  >> <<03643>>00178000
  << RECORDS ON A PAGE.  THIS ARRAY IS USED BECAUSE LOG TYPE>> <<03643>>00180000
  << 46 CAN HAVE A VARYING NUMBER OF LINES TO PRINT OUT.    >> <<03643>>00182000
      INTEGER ARRAY DAYSPERMONTH(0:11):=                                00184000
         0,31,60,91,121,152,182,213,244,274,305,335;                    00186000
      INTEGER ARRAY EVENT'LIST(0:NO'LOG'TYPES-1) :=            <<03643>>00188000
         0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,46,47; <<04854>>00190000
      BYTE ARRAY MONTHS(0:35):="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";  00192000
    DOUBLE ARRAY RTT(0:47) :=                                           00194000
                     "ERR "," UP ","JOB "," OFF","PROC","FILE","DOWN",  00196000
                     "POWF","SPOO","DIS ","CLSE","I/O ",       <<TL.02>>00198000
                     "VMOU","VSMO","TAPL","CONL","PRGM",       <<03643>>00200000
                     "CALL"," DCE","    ","    ","    ",       <<04854>>00202000
                     "    ","    ","    ","    ","    ",       <<03643>>00204000
                     "    ","    ","    ","    ","    ",       <<03643>>00206000
                     "    ","    ","    ","    ","    ",       <<03643>>00208000
                     "    ","    ","    ","    ","    ",       <<03643>>00210000
                     "    ","    ","    ","  45","MRL ",       <<03643>>00212000
                     "DCU ";                                   <<03643>>00214000
      ARRAY WRTT(*)=RTT;                                                00216000
      DOUBLE ARRAY DBUFIN(*)=BUFIN;                                     00218000
      DOUBLE POINTER DBF1:=@WBUFIN(7);                                  00220000
      DOUBLE POINTER DBF2:=@WBUFIN(9);                                  00222000
      DOUBLE POINTER DBF3:=@WBUFIN(11);                                 00224000
      BYTE ARRAY T0(0:33):=                                             00226000
         "MISSING :TOT REC  *  JI  *  JT  *";                           00228000
                                                                        00230000
      BYTE ARRAY T1(0:50):=                                             00232000
         "UPD# * FIX# * CORE * CST * DST * PCB * IOQ * TRL *";          00234000
      BYTE ARRAY T1'(0:27):=                                            00236000
      " ICS * JOBS: MAX RUNNING *";                            <<01182>>00238000
                                                                        00240000
      BYTE ARRAY T2(0:50):=                                             00242000
         "  USER   *  ACCOUNT *   JOB    *  LOGON G * LDEV ";  <<01182>>00244000
      BYTE ARRAY T2'(0:60):=                                   <<01.01>>00246000
         "IN  OUT  * RESERVED * CPU LIMIT * INP * OUTP *",     <<01182>>00248000
         " LOGON Q *";                                         <<00836>>00250000
                                                               <<01.01>>00252000
                                                                        00254000
      BYTE ARRAY T3(0:45):=                                             00256000
         "MAX PRI * CREAT * CPU TIME(S) * ELAPSED (M) *";               00258000
                                                                        00260000
      BYTE ARRAY T4(0:50):=                                             00262000
         "PROG SEG * SL SEG * MAX STACK * MAX DS * VIRT ST *";          00264000
                                                                        00266000
      BYTE ARRAY T5(0:50):=                                             00268000
         "        FILE NAME          * DISP * DOM *  SECTORS";          00270000
      BYTE ARRAY T5'(0:39):=                                            00272000
         "   * DEV T/# *  RECORDS  *   BLOCKS   *";                     00274000
                                                                        00276000
      BYTE ARRAY T6(0:27):=                                             00278000
         "JOBS  * SESSION *";                                  <<01182>>00280000
                                                                        00282000
      BYTE ARRAY T7(0:19):="AUTO RESTART FLAG ";                        00284000
                                                                        00286000
      BYTE ARRAY T8(0:51):=                                    <<04206>>00288000
        "  USER  *  ACCT  *  JOBN  *  FILE  *  J/S  *I/O*DEVI";<<04206>>00290000
      BYTE ARRAY T8'(0:17):=                                   <<04206>>00292000
         "D*DEV*SP#*COP*PRI*";                                 <<04206>>00294000
                                                               <<04206>>00296000
      BYTE ARRAY T8A(0:51):=                                   <<04206>>00298000
" RECORDS *  SECTORS *FUNC*  PAGES   *LP/PP*SUBTYPE*";         <<04206>>00300000
                                                                        00302000
      BYTE ARRAY TIT(0:45):=                                            00304000
         "DATE:    ,    ,   ,19       LOGFILE:         ";               00306000
                                                                        00308000
      BYTE ARRAY T9(0:69):=                                             00310000
"LDEV-*-DURATION/-*-# OF OUTPUT/-*-# OF INPUT/-*-#OF REC/-*-#OF UNREC/";00312000
      BYTE ARRAY T9'(0:68):=                                            00314000
"      OF CONNECT    TRANSFERS      TRANSFERS     ERRORS",     <<01182>>00316000
"      ERRORS  ";                                              <<01182>>00318000
      BYTE ARRAY T9A(0:62):=                                            00320000
"PHONE NUMBER OF/   -*-LOCAL ID/         -*-REMOTE ID/        ";        00322000
      BYTE ARRAY T9A'(0:62):=                                           00324000
"    REMOTE            SEQUENCE             SEQUENCE";         <<01182>>00326000
      BYTE ARRAY T10(0:30):=                                            00328000
      "LDEV-*-TIME OF OPEN-*-DVR NAME ";                       <<01182>>00330000
BYTE ARRAY T11(0:61):=                                         <<01352>>00332000
"DRT UNIT LDEV         TYPE SUBTYPE FUNCT XFER COUNT ",        <<01352>>00334000
"IOQ(QMISC)";                                                  <<01352>>00336000
BYTE ARRAY T11B(0:63):=                                        <<01352>>00338000
"IOQ(QFLAG)  DST#    ADDRESS  PCB/STAT  PAR1     PAR2       "; <<01352>>00340000
      BYTE ARRAY t12(0:50):=                                   <<sp.01>>00342000
"RECOGNITION  DETECTION  VOLUME      VTAB  LOGICAL  ";         <<sp.01>>00344000
      BYTE ARRAY t12'(0:34):=                                  <<sp.01>>00346000
"---------VOLUME INFORMATION--------";                         <<sp.01>>00348000
      BYTE ARRAY t12''(0:50):=                                 <<sp.01>>00350000
"   TYPE        TYPE      TYPE      INDEX  DEVICE   ";         <<sp.01>>00352000
      BYTE ARRAY t12'''(0:34):=                                <<sp.01>>00354000
"--NAME-- -ACCOUNT --GROUP- -SETNAME";                         <<sp.01>>00356000
      BYTE ARRAY t13(0:59):=                                   <<sp.01>>00358000
"             TYPE      PIN  USERS  -----------USER----------";<<sp.01>>00360000
      BYTE ARRAY t13'(0:27):=                                  <<sp.01>>00362000
"-  -------VOLUME SET--------";                                <<sp.01>>00364000
      BYTE ARRAY t13'''(0:53):=                                <<sp.01>>00366000
"--USER-- --GROUP- -ACCOUNT  --NAME-- --GROUP- -ACCOUNT";      <<sp.01>>00368000
                                                                        00370000
      BYTE ARRAY T14A(0:43) :=                                 <<01182>>00372000
      "LDEV# FILE# FILE SEQ# SEQ TY TYPE PIN# VOL# ";          <<01182>>00374000
                                                               <<01182>>00376000
      BYTE ARRAY T14A'(0:50) :=                                <<01182>>00378000
"EXP DATE FILENAME          LOCKWORD VOLSET ID VOL ID";        <<01182>>00380000
                                                               <<01182>>00382000
      BYTE ARRAY T16(0:58):=                                   <<01763>>00384000
"        EVENT TYPE         *         PROGRAM FILE         *"; <<01763>>00386000
      BYTE ARRAY T16'(0:29):=                                  <<01763>>00388000
"    STATUS    *    DELTAP    *";                              <<01763>>00390000
      BYTE ARRAY T17(0:11) := "LDEV * MSG #";                  <<04854>>00392000
      BYTE ARRAY T18(0:22) := "LDEV * MSG #   *   INFO";       <<04854>>00394000
     BYTE ARRAY T46(0:56) :=                                   <<03643>>00396000
"LDEV  TYPE/    MAINT.    PARM   RECORD  # BYTES   # BYTES";   <<03643>>00398000
     BYTE ARRAY T46'(0:50) :=                                  <<03643>>00400000
"SUBTYPE  REQ. TYPE        SEQ. #  TO LOG    IN REC.";         <<03643>>00402000
     BYTE ARRAY T46''(0:10) :=  "LOGGED DATA";                 <<03643>>00404000
     BYTE ARRAY T47(0:25) :=                                   <<03643>>00406000
"RECORD   # BYTES   # BYTES";                                  <<03643>>00408000
     BYTE ARRAY T47'(0:25) :=                                  <<03643>>00410000
"NUMBER   TO LOG    IN REC.";                                  <<03643>>00412000
      ARRAY E1(0:13):="TYPE NO.    EVENT          ";           <<01.01>>00414000
      ARRAY E1A(0:13):="   0  LOG FAILURE          ";          <<01.01>>00416000
      ARRAY E1B(0:13):="   1  SYSTEM UP            ";          <<01.01>>00418000
      ARRAY E2(0:13):="   2  JOB INITIATION       ";           <<01.01>>00420000
      ARRAY E3(0:13):="   3  JOB TERMINATION      ";           <<01.01>>00422000
      ARRAY E4(0:13):="   4  PROCESS TERMINATION  ";           <<01.01>>00424000
      ARRAY E5(0:13):="   5  FILE CLOSE           ";           <<01.01>>00426000
      ARRAY E6(0:13):="   6  SYSTEM SHUTDOWN      ";           <<01.01>>00428000
      ARRAY E7(0:13):="   7  POWER FAILURE        ";           <<01.01>>00430000
      ARRAY E8(0:13):="   8  SPOOLING LOG RECORD  ";           <<01.01>>00432000
      ARRAY E9(0:13):="   9  LINE DISCONNECTION   ";           <<01.01>>00434000
      ARRAY E10(0:13):="  10  LINE CLOSE           ";          <<01.01>>00436000
      ARRAY E11(0:13):="  11  I/O ERRORS           ";          <<01.01>>00438000
      ARRAY E12(0:13):="  12  VOLUME MOUNT/DISMOUNT";          <<sp.01>>00440000
      ARRAY E13(0:13):="  13  VOLUME SET MOUNT/DIS.";          <<sp.01>>00442000
      ARRAY E14(0:13):="  14  TAPE LABELS          ";          <<sp.01>>00444000
      ARRAY e15(0:13):="  15  CONSOLE LOG          ";          <<sp.01>>00446000
      ARRAY E16(0:13) := "  16  PROGRAM FILE EVENT  ";         <<03643>>00448000
      ARRAY E17(0:13):="  17  CALL PROGRESS SIGNALS";          <<04854>>00450000
      ARRAY E18(0:13):="  18  DCE PROVIDED INFO    ";          <<04854>>00452000
      ARRAY E46(0:13) := "  46  MAINTENANCE LOGGING ";         <<03643>>00454000
      ARRAY E47(0:14) := "  47  DIAGNOSTIC CONTROL UNIT";      <<03643>>00456000
       BYTE ARRAY EVENTS(0:73);                               <<01.01>> 00458000
      ARRAY WEVENTS (*) = EVENTS;                              <<01.01>>00460000
      ARRAY EVENTTABLE(0:NO'LOG'TYPES+1);                      <<01167>>00462000
                                                               <<01167>>00464000
      DOUBLE CAPD;  << CAPABILITIES FROM WHO INTRINSIC >>      <<01167>>00466000
      LOGICAL CAP=CAPD;                                        <<01167>>00468000
      DEFINE SYSMGR = CAP.(0:1)#;                              <<01167>>00470000
                                                               <<01167>>00472000
INTRINSIC FOPEN,FREAD,FWRITE,QUIT,ASCII,DASCII,TERMINATE;               00474000
INTRINSIC FGETINFO,FCHECK,WHO;                        <<00.06>>         00476000
INTRINSIC FCLOSE,PRINT;                                       <<01.01>> 00478000
INTRINSIC BINARY,XCONTRAP,RESETCONTROL;                        <<01.01>>00480000
                                                                        00482000
                                                                        00484000
<<EXTERNAL PROCEDURES>>                                       <<01.01>> 00486000
INTEGER PROCEDURE READX(BFR,LEN);                             <<01.01>> 00488000
VALUE LEN;ARRAY BFR;INTEGER LEN;                              <<01.01>> 00490000
OPTION EXTERNAL;                                              <<01.01>> 00492000
                                                                        00494000
<<PROCEDURE FORWARD DECLARATIONS>>                                      00496000
                                                                        00498000
INTEGER PROCEDURE READ(BUF,XPL);                              <<01.01>> 00500000
VALUE XPL;ARRAY BUF;INTEGER XPL;                              <<01.01>> 00502000
OPTION FORWARD;                                               <<01.01>> 00504000
      PROCEDURE ERROR(J);                                               00506000
      VALUE J;INTEGER J;                                                00508000
      OPTION FORWARD;                                                   00510000
      PROCEDURE READNEXT;OPTION FORWARD;                                00512000
      PROCEDURE PRINTLOG;OPTION FORWARD;                                00514000
      PROCEDURE RIGHTRECTYPE(TYPE);                                     00516000
      VALUE TYPE;LOGICAL TYPE;                                          00518000
      OPTION FORWARD;                                                   00520000
      PROCEDURE CONDENSEEVENT;OPTION FORWARD;                           00522000
      LOGICAL PROCEDURE EFCHECK(FILENUM);                               00524000
      VALUE FILENUM;INTEGER FILENUM;                                    00526000
      OPTION FORWARD;                                                   00528000
PROCEDURE CLEARBUF;                                                     00530000
COMMENT :FILL THE OUTPUT BUFFER WITH BLANKS;                            00532000
BEGIN                                                                   00534000
      WB:= "  ";                                                        00536000
      MOVE WB(1) := WB,(65);                                   <<01182>>00538000
      NC:=0;                                                            00540000
END;  <<C L E A R B U F >>                                              00542000
  PROCEDURE CY;                                <<00.04>>                00544000
      BEGIN                                    <<00.04>>                00546000
      LOGICAL N=Q+1;                           <<00.04>>                00548000
      MOVE OUTM:="< CONTROL Y >";              <<00.04>>                00550000
      PRINT(OUTP,-13,0);                       <<00.04>>                00552000
      TERMINATE;                               <<00.04>>                00554000
      RESETCONTROL;                            <<00.04>>                00556000
      TOS:=%31400 LOR(N LAND%377);             <<00.04>>                00558000
      ASSEMBLE(XEQ 0);                         <<00.04>>                00560000
  END;                                         <<00.04>>                00562000
                                                                        00564000
                                                                        00566000
                                                                        00568000
                                                                        00570000
PROCEDURE DATE;                                                         00572000
BEGIN                                                                   00574000
      Y:=WBUFIN(2).(0:7);  D:=WBUFIN(X).(7:9);                          00576000
      IF Y=0 OR D=0 THEN RETURN;<<BAD DATE>>       <<00.02>>            00578000
      TOS:=@BUFOUT(56);                                                 00580000
      X:=((Y-1)&ASR(2)+D+Y) MOD 7*3;                                    00582000
      MOVE     *     :=DAYS(X),(3);                                     00584000
      IF Y.(14:2)<>0 AND D>=60 THEN D:=D+1;                             00586000
      TOS:=@BUFOUT(61);                                                 00588000
      X:=12; DO X:=X-1 UNTIL DAYSPERMONTH(X)<D;                         00590000
      D:=D-DAYSPERMONTH(X); MOVE * :=MONTHS(X*3),(3);                   00592000
      ASCII(D,-10,BUFOUT(67)); ASCII(Y,10,BUFOUT(71));         <<01182>>00594000
END;  << D A T E >>                                                     00596000
                                                                        00598000
                                                                        00600000
                                                                        00602000
PROCEDURE SEND(NC);VALUE NC;INTEGER NC;                                 00604000
BEGIN                                                                   00606000
<< THIS PROCEDURE WRITES OUT THE INFORMATION OR TITLES TO>>    <<03643>>00608000
<< THE OUTPUT DEVICE.  NC IS THE NUMBER OF CHARACTERS.   >>    <<03643>>00610000
      FWRITE(FOUT,WBUFOUT,-NC,0);                                       00612000
      IF <> THEN                                                        00614000
         BEGIN                                                          00616000
         ERROR(17);                                                     00618000
         EFCHECK(FOUT);<<PRINT ERROR #>>                                00620000
         IF NOT RECOVERABLERROR THEN                           <<04226>>00622000
            ERROR(0)          << VALID FWRITE ERROR, QUIT >>   <<04226>>00624000
         ELSE                                                  <<04226>>00626000
            BEGIN            <<EOT FWRITE ERROR >>             <<04226>>00628000
            FCLOSE(FOUT,1,0);  <<CLOSE OUTPUT FILE>>           <<04226>>00630000
            FOUT := FOPEN(LLIST,%0406,1,132,LP); <<NEW OUTPUT>><<04226>>00632000
            IF <> THEN                                         <<04226>>00634000
               BEGIN                                           <<04226>>00636000
               ERROR(10);     <<DEVICE FOPEN FAILED >>         <<04226>>00638000
               ERROR(0);      <<  QUIT              >>         <<04226>>00640000
               END;                                            <<04226>>00642000
            RECOVERABLERROR := FALSE;   <<RESET FLAG>>         <<04226>>00644000
            END;                                               <<04226>>00646000
         END;                                                           00650000
END;  << S E N D >>                                                     00652000
                                                                        00654000
                                                                        00656000
                                                                        00658000
PROCEDURE SEPAR;                                                        00660000
BEGIN                                                                   00662000
      CLEARBUF;                                                         00664000
      WBUFOUT(12):="* "; WBUFOUT(X:=X+1):="- ";                         00666000
      MOVE WBUFOUT(14) := WBUFOUT(13),(52);                    <<01182>>00668000
      SEND(132);                                               <<01182>>00670000
END;                                                                    00672000
                                                                        00674000
                                                                        00676000
                                                                        00678000
PROCEDURE PAGETITLE;                                                    00680000
BEGIN                                                                   00682000
      CLEARBUF;                                                         00684000
      MOVE BUFOUT(2):=PT,(20);                                          00686000
      MOVE BUFOUT(30) := VERSION,(7);                          <<04225>>00688000
      MOVE BUFOUT(50):=TIT,(45);                                        00690000
      DATE;                                                             00692000
      ASCII(PRESENTLOGFILE,10,BUFOUT(87));                              00694000
                                                               <<01182>>00696000
          << PAGE EJECT >>                                     <<01182>>00698000
          FWRITE(FOUT,T11B,0,%61);                             <<01352>>00700000
          IF <> THEN                                           <<01166>>00702000
            BEGIN                                              <<01166>>00704000
            ERROR(17);                                         <<01166>>00706000
            EFCHECK(FOUT); << PRINT ERROR # >>                 <<01166>>00708000
            ERROR(0);                                          <<01181>>00710000
            END;                                               <<01166>>00712000
      SEND(100);                                                        00714000
      SEND(0);                                                          00716000
      SEPAR;                                                            00718000
      RPP:=1;                                                           00720000
      CYD:=WBUFIN(2);                                                   00722000
END;  << P A G E T I T L E >>                                           00724000
                                                                        00726000
                                                                        00728000
                                                                        00730000
PROCEDURE TITLE0;                                                       00732000
BEGIN                                                                   00734000
      MOVE BUFOUT(27):=T0,(33);                                         00736000
      SEND(61);                                                         00738000
END;                                                                    00740000
                                                                        00742000
                                                                        00744000
                                                                        00746000
PROCEDURE TITLE1;                                                       00748000
BEGIN                                                                   00750000
      MOVE BUFOUT(27):=T1,(50);                                         00752000
      MOVE BUFOUT(77) := T1',(26);                             <<01182>>00754000
      SEND(105);                                               <<MS.00>>00756000
END;                                                                    00758000
                                                                        00760000
                                                                        00762000
                                                                        00764000
PROCEDURE TITLE2;                                                       00766000
BEGIN                                                                   00768000
      MOVE BUFOUT(27) := T2,(49);                              <<01182>>00770000
      MOVE BUFOUT(76) := T2',(56);                             <<01182>>00772000
      SEND(132);                                               <<01182>>00774000
END;                                                                    00776000
                                                                        00778000
                                                                        00780000
                                                                        00782000
PROCEDURE TITLE3;                                                       00784000
BEGIN                                                                   00786000
      MOVE BUFOUT(27):=T3,(45);                                         00788000
      SEND( 73);                                                        00790000
END;                                                                    00792000
                                                                        00794000
                                                                        00796000
                                                                        00798000
PROCEDURE TITLE4;                                                       00800000
BEGIN                                                                   00802000
      MOVE BUFOUT(27):=T4,(50);                                         00804000
      SEND( 78);                                                        00806000
END;                                                                    00808000
                                                                        00810000
                                                                        00812000
                                                                        00814000
PROCEDURE TITLE5;                                                       00816000
BEGIN                                                                   00818000
      MOVE BUFOUT(27):=T5,(50);                                         00820000
      MOVE BUFOUT(77):=T5',(39);                                        00822000
      SEND( 117);                                                       00824000
END;                                                                    00826000
                                                                        00828000
                                                                        00830000
                                                                        00832000
PROCEDURE TITLE6;                                                       00834000
BEGIN                                                                   00836000
      MOVE BUFOUT(27) := T6,(17);                              <<01182>>00838000
      SEND( 55);                                                        00840000
END;                                                                    00842000
                                                                        00844000
                                                                        00846000
                                                                        00848000
PROCEDURE TITLE7;                                                       00850000
BEGIN                                                                   00852000
      MOVE BUFOUT(27) := T7,(18);                              <<01182>>00854000
      SEND(47);                                                <<MS.00>>00856000
END;                                                                    00858000
                                                                        00860000
                                                                        00862000
                                                                        00864000
PROCEDURE TITLE8;                                                       00866000
BEGIN                                                                   00868000
      MOVE BUFOUT(27) := T8,(52);                              <<04206>>00870000
      MOVE BUFOUT(79) := T8',(18);                             <<04206>>00872000
      SEND(110);                                               <<04206>>00874000
END;                                                                    00876000
                                                               <<04206>>00878000
PROCEDURE TITLE8';                                             <<04206>>00880000
  BEGIN                                                        <<04206>>00882000
    MOVE BUFOUT(27):=T8A,(50);                                 <<04206>>00884000
    SEND(100);                                                 <<04206>>00886000
  END;                                                         <<04206>>00888000
                                                               <<04206>>00890000
      PROCEDURE TITLE9;                                                 00892000
      BEGIN                                                             00894000
      MOVE BUFOUT(27):=T9,(69);                                         00896000
      SEND(97);                                                <<MS.00>>00898000
      CLEARBUF;                                                <<01182>>00900000
      MOVE BUFOUT(27):=T9',(69);                                        00902000
      SEND(97);                                                <<MS.00>>00904000
      END;                                                              00906000
      PROCEDURE TITLE9';                                                00908000
      BEGIN                                                             00910000
      MOVE BUFOUT(27):=T9A,(61);                                        00912000
      SEND(89);                                                <<MS.00>>00914000
      CLEARBUF;                                                <<01182>>00916000
      MOVE BUFOUT(27) := T9A',(51);                            <<01182>>00918000
      SEND(88);                                                <<MS.00>>00920000
      END;                                                              00922000
      PROCEDURE TITLE10;                                                00924000
      BEGIN                                                             00926000
     MOVE BUFOUT(27):=T10,(30);                                         00928000
      SEND(58);                                                <<MS.00>>00930000
      END;                                                              00932000
                                                                        00934000
PROCEDURE TITLE11;                                                      00936000
BEGIN                                                                   00938000
      MOVE BUFOUT(27) := T11,(62);                             <<01352>>00940000
      SEND(91);                                                <<MS.00>>00942000
                                                                        00944000
      END;<<TITLE11>>                                                   00946000
                                                                        00948000
      PROCEDURE TITLE11';                                               00950000
      BEGIN                                                             00952000
                                                                        00954000
                                                                        00956000
                                                                        00958000
                                                                        00960000
      MOVE BUFOUT(27) := T11B,(64);                            <<01352>>00962000
      SEND(85);                                                <<01410>>00964000
                                                                        00966000
      END;<<TITLE11'>>                                                  00968000
                                                                        00970000
                                                                        00972000
                                                                        00974000
   PROCEDURE TITLE12;                                          <<SP.01>>00976000
   BEGIN                                                       <<SP.01>>00978000
      MOVE bufout(27):=t12,(51);                               <<SP.01>>00980000
      MOVE BUFOUT(78) := T12',(35);                            <<01182>>00982000
      SEND(115);                                               <<MS.00>>00984000
      CLEARBUF;                                                <<01182>>00986000
      MOVE bufout(27):=t12'',(51);                             <<SP.01>>00988000
      MOVE BUFOUT(78) := T12''',(35);                          <<01182>>00990000
      SEND(115);                                               <<MS.00>>00992000
   END;                                                        <<SP.01>>00994000
                                                               <<TL.02>>00996000
   PROCEDURE TITLE13;                                          <<sp.01>>00998000
   BEGIN                                                       <<sp.01>>01000000
      MOVE bufout(27):=t13,(60);                               <<sp.01>>01002000
      MOVE BUFOUT(87) := T13',(28);                            <<01182>>01004000
      SEND(117);                                               <<MS.00>>01006000
      CLEARBUF;                                                <<sp.01>>01008000
      MOVE bufout(62):=t13''',(54);                            <<sp.01>>01010000
      SEND(117);                                               <<MS.00>>01012000
   END;                                                        <<sp.01>>01014000
                                                               <<TL.02>>01016000
PROCEDURE TITLE14;                                             <<TL.02>>01018000
  BEGIN                                                        <<TL.02>>01020000
    MOVE BUFOUT(26) := T14A,(44);                              <<01182>>01022000
    MOVE BUFOUT(70) := T14A',(52);                             <<01182>>01024000
    SEND(123);                                                 <<TL.02>>01026000
  END; <<TITLE14>>                                             <<TL.02>>01028000
                                                                        01030000
   PROCEDURE TITLE15;                                          <<sp.01>>01032000
   BEGIN                                                       <<sp.01>>01034000
      <<THERE IS PURPOSELY NO TITLE FOR LOG TYPE 15>>          <<sp.01>>01036000
   END;                                                        <<sp.01>>01038000
                                                                        01040000
procedure TITLE16;                                             <<01763>>01042000
begin                                                          <<01763>>01044000
move BUFOUT(27):=T16,(59);                                     <<01763>>01046000
move BUFOUT(86):=T16',(30);                                    <<01763>>01048000
SEND(116);                                                     <<01763>>01050000
END;                                                                    01052000
PROCEDURE TITLE17;                                             <<04854>>01054000
BEGIN                                                          <<04854>>01056000
MOVE BUFOUT(27) := T17, (12);                                  <<04854>>01058000
SEND(39);                                                      <<04854>>01060000
END;  << TITLE17 >>                                            <<04854>>01062000
                                                               <<04854>>01064000
PROCEDURE TITLE18;                                             <<04854>>01066000
BEGIN                                                          <<04854>>01068000
MOVE BUFOUT(27) := T18, (23);                                  <<04854>>01070000
SEND(50);                                                      <<04854>>01072000
END;  << TITLE18 >>                                            <<04854>>01074000
                                                                        01076000
                                                               <<03643>>01078000
PROCEDURE TITLE46;                                             <<03643>>01080000
BEGIN                                                          <<03643>>01082000
   MOVE BUFOUT(27) := T46,(57);    <<FIRST TITLE LINE>>        <<03643>>01084000
   SEND(86);                                                   <<03643>>01086000
   CLEARBUF;                                                   <<03643>>01088000
   MOVE BUFOUT(33) := T46',(51);   <<SECOND TITLE LINE>>       <<03643>>01090000
   SEND(84);                                                   <<03643>>01092000
END;                                                           <<03643>>01094000
                                                               <<03643>>01096000
PROCEDURE TITLE46';                                            <<03643>>01098000
BEGIN                                                          <<03643>>01100000
   MOVE BUFOUT(27) := T46'',(11);  <<PRINT "LOGGED DATA">>     <<03643>>01102000
   SEND(39);                                                   <<03643>>01104000
END;                                                           <<03643>>01106000
                                                               <<03643>>01108000
PROCEDURE TITLE47;                                             <<03643>>01110000
BEGIN                                                          <<03643>>01112000
   MOVE BUFOUT(27) := T47,(26);     <<FIRST TITLE LINE>>       <<03643>>01114000
   SEND(54);                                                   <<03643>>01116000
   CLEARBUF;                                                   <<03643>>01118000
   MOVE BUFOUT(27) := T47',(26);    <<SECOND TITLE LINE>>      <<03643>>01120000
   SEND(54);                                                   <<03643>>01122000
END;                                                           <<03643>>01124000
                                                               <<03643>>01126000
PROCEDURE TITLE47';                                            <<03643>>01128000
BEGIN                                                          <<03643>>01130000
   MOVE BUFOUT(27) := T46'',(11);                              <<03643>>01132000
   SEND(39);                       <<PRINT "LOGGED DATA">>     <<03643>>01134000
END;                                                           <<03643>>01136000
PROCEDURE COMINFO;                                                      01138000
BEGIN                                                                   01140000
<< PRINT INFORMATION THAT IS COMMON TO ALL LOG RECORD    >>    <<03643>>01142000
<< TYPES I.E. RECORD TYPE, TIME STAMP, JOBTYPE/NUMBER.   >>    <<03643>>01144000
<<*******************************************************>>    <<03643>>01146000
                                                               <<03643>>01148000
      ASCII(WBUFIN(3).(0:8),10,BUFOUT(0));                              01150000
      BUFOUT(2):=":";                                                   01152000
      ASCII(WBUFIN(3).(8:8),10,BUFOUT(3));                              01154000
      BUFOUT(5):=":";                                                   01156000
      ASCII(WBUFIN(4).(0:8),10,BUFOUT(6));                              01158000
      BUFOUT(8):=":";                                                   01160000
      ASCII(WBUFIN(4).(8:8),10,BUFOUT(9));                              01162000
      WBUFOUT(6):= WRTT(RECTYPE*2);                                     01164000
      WBUFOUT(7):=WRTT(RECTYPE*2+1);                                    01166000
      TOS:= WBUFIN(5);                                                  01168000
      IF = THEN BEGIN DEL;MOVE BUFOUT(18):="SYS";RETURN;END;            01170000
      BUFOUT(18):=IF TOS.(0:2)=1 THEN "S" ELSE "J";                     01172000
      ASCII(WBUFIN(5).(2:14),10,BUFOUT(20));                            01174000
END;                                                                    01176000
                                                                        01178000
                                                                        01180000
                                                                        01182000
PROCEDURE INFO0;                                                        01184000
BEGIN                                                                   01186000
      DASCII(DBUFIN(3),10,BUFOUT(30));                                  01188000
      ASCII(WBUFIN(8),10,BUFOUT(47));                                   01190000
      ASCII(WBUFIN(9),10,BUFOUT(55));                                   01192000
      SEND(64);                                                         01194000
END;                                                                    01196000
                                                                        01198000
                                                                        01200000
                                                                        01202000
PROCEDURE INFO1;                                                        01204000
BEGIN                                                                   01206000
      WBUFOUT(14):=WBUFIN(6);                                           01208000
      WBUFOUT(17):=WBUFIN(7);                                           01210000
      ASCII(WBUFIN(8),10,BUFOUT(41));                                   01212000
      ASCII(WBUFIN(9),10,BUFOUT(48));                                   01214000
      ASCII(WBUFIN(10),10,BUFOUT(54));                                  01216000
      ASCII(WBUFIN(11),10,BUFOUT(60));                                  01218000
      ASCII(WBUFIN(12),10,BUFOUT(66));                                  01220000
      ASCII(WBUFIN(13),10,BUFOUT(72));                                  01222000
      ASCII(WBUFIN(14),10,BUFOUT(78));                                  01224000
      ASCII(WBUFIN(16),10,BUFOUT(94));                         <<01182>>01226000
      SEND(110);                                                        01228000
END;                                                                    01230000
                                                                        01232000
                                                                        01234000
                                                                        01236000
PROCEDURE INFO2;                                                        01238000
BEGIN                                                                   01240000
      MOVE BUFOUT(27):=BUFIN(12),(8);                                   01242000
      MOVE BUFOUT(38):=BUFIN(20),(8);                                   01244000
      MOVE BUFOUT(49):=BUFIN(28),(8);                                   01246000
      MOVE BUFOUT(60):=BUFIN(36),(8);                                   01248000
      ASCII(WBUFIN(22),10,BUFOUT(76));                         <<01182>>01250000
      ASCII(WBUFIN(23),10,BUFOUT(80));                         <<01182>>01252000
      ASCII(WBUFIN(24),10,BUFOUT(87));                         <<01182>>01254000
      DASCII(DBUFIN(13),10,BUFOUT(98));                        <<01182>>01256000
      ASCII(WBUFIN(28).(0:8),10,BUFOUT(110));                  <<01182>>01258000
      ASCII(WBUFIN(28).(8:8),10,BUFOUT(117));                  <<01182>>01260000
      BUFOUT(126) := BUFIN(51);                                <<01182>>01262000
      SEND(128);                                               <<01182>>01264000
END;                                                                    01266000
                                                                        01268000
                                                                        01270000
                                                                        01272000
PROCEDURE INFO3;                                                        01274000
BEGIN                                                                   01276000
      ASCII(WBUFIN(6),10,BUFOUT(29));                                   01278000
      ASCII(WBUFIN(7),10,BUFOUT(37));                                   01280000
      DASCII(DBUFIN(4),10,BUFOUT(45));                                  01282000
      DASCII(DBUFIN(5),10,BUFOUT(59));                                  01284000
      SEND(80);                                                         01286000
END;                                                                    01288000
                                                                        01290000
                                                                        01292000
                                                                        01294000
PROCEDURE INFO4;                                                        01296000
BEGIN                                                                   01298000
      ASCII(WBUFIN(6),10,BUFOUT(29));                                   01300000
      ASCII(WBUFIN(7),10,BUFOUT(39));                                   01302000
      ASCII(WBUFIN(8),10,BUFOUT(48));                                   01304000
      ASCII(WBUFIN(9),10,BUFOUT(59));                                   01306000
      ASCII(WBUFIN(10),10,BUFOUT(68));                                  01308000
      SEND(90);                                                         01310000
END;                                                                    01312000
                                                                        01314000
                                                                        01316000
                                                               <<01352>>01318000
PROCEDURE INFO5;                                                        01320000
BEGIN                                                                   01322000
      MOVE BUFOUT(27) := BUFIN(12),(26);                       <<01182>>01324000
      ASCII(WBUFIN(20).(0:8),10,BUFOUT(57));                            01326000
      ASCII(WBUFIN(20).(8:8),10,BUFOUT(63));                            01328000
      TOS := 0;  << RESERVE WORD FOR DASCII RETURN >>          <<01182>>01330000
      TOS:= WBUFIN(21);                                                 01332000
      TOS:= WBUFIN(22);                                                 01334000
      DASCII(*,10,BUFOUT(69));                                          01336000
      ASCII(WBUFIN(23).(0:8),10,BUFOUT(82));                            01338000
      BUFOUT(85):="/";                                                  01340000
      ASCII(WBUFIN(23).(8:8),10,BUFOUT(86));                            01342000
      DASCII(DBUFIN(12),10,BUFOUT(92));                                 01344000
      DASCII(DBUFIN(13),10,BUFOUT(105));                                01346000
      SEND(120);                                                        01348000
END;                                                                    01350000
                                                                        01352000
                                                                        01354000
                                                                        01356000
PROCEDURE INFO6;                                                        01358000
BEGIN                                                                   01360000
      ASCII(WBUFIN(6),10,BUFOUT(27));                                   01362000
      ASCII(WBUFIN(7),10,BUFOUT(36));                                   01364000
      SEND(60);                                                         01366000
END;                                                                    01368000
                                                                        01370000
                                                                        01372000
                                                                        01374000
PROCEDURE INFO7;                                                        01376000
BEGIN                                                                   01378000
ASCII(WBUFIN(6),10,BUFOUT(27));                                         01380000
SEND(35);                                                               01382000
END;                                                                    01384000
$PAGE                                                          <<04206>>01386000
                                                                        01388000
                                                                        01390000
                                                                        01392000
PROCEDURE INFO8;                                                        01394000
BEGIN                                                                   01396000
      LOGICAL TYPE,JOBN,DEVF'ID;                               <<04206>>01398000
                                                               <<04206>>01400000
      DEFINE                                                   <<04206>>01402000
         DTYPEF    =      (0:1) #,    <<Device File Type   >>  <<04206>>01404000
         DFILEF    =      (1:15)#,    <<Device File Field  >>  <<04206>>01406000
         JTYPEF    =      (0:2) #,    <<Job Number Type    >>  <<04206>>01408000
         JFILEF    =      (2:14)#;    <<Job Number Field   >>  <<04206>>01410000
                                                               <<04206>>01412000
      EQUATE                                                   <<04206>>01414000
         OUT'TYPE  =           1;     <<Top bit on for OUT >>  <<04206>>01416000
                                                               <<04206>>01418000
      MOVE BUFOUT(27):=BUFIN(12),(8);                                   01420000
      MOVE BUFOUT(36):=BUFIN(20),(8);                                   01422000
      MOVE BUFOUT(45):=BUFIN(28),(8);                                   01424000
      MOVE BUFOUT(54):=BUFIN(36),(8);                                   01426000
      IF ( JOBN := WBUFIN(22).JFILEF ) = 0                     <<04206>>01428000
         THEN MOVE BUFOUT(64):="SYS"                           <<04206>>01430000
         ELSE                                                  <<04206>>01432000
            BEGIN                                              <<04206>>01434000
              CASE (TYPE := WBUFIN(22).JTYPEF)  OF             <<04206>>01436000
                 BEGIN                                         <<04206>>01438000
                   MOVE BUFOUT(63) := "S'";                    <<04206>>01440000
                   BUFOUT(63)      := "S";                     <<04206>>01442000
                   BUFOUT(63)      := "J";                     <<04206>>01444000
                   MOVE BUFOUT(63) := "J'";                    <<04206>>01446000
                 END;                                          <<04206>>01448000
              IF TYPE = 0 OR TYPE = 3                          <<04206>>01450000
                 THEN ASCII(JOBN,10,BUFOUT(65))                <<04206>>01452000
                 ELSE ASCII(JOBN,10,BUFOUT(64));               <<04206>>01454000
            END;                                               <<04206>>01456000
                                                               <<04206>>01458000
      DEVF'ID := WBUFIN(23);                                   <<04206>>01460000
      IF DEVF'ID.DTYPEF = OUT'TYPE                             <<04206>>01462000
         THEN MOVE BUFOUT(71) := "OUT"                         <<04206>>01464000
         ELSE MOVE BUFOUT(71) := "IN" ;                        <<04206>>01466000
      ASCII(DEVF'ID.DFILEF,10,BUFOUT(75));                     <<04206>>01468000
                                                               <<04206>>01470000
      ASCII(WBUFIN(24).(0:8),10,BUFOUT(81));                   <<04206>>01472000
      ASCII(WBUFIN(24).(8:8),10,BUFOUT(85));                   <<04206>>01474000
      ASCII(WBUFIN(25).(0:8),10,BUFOUT(90));                   <<04206>>01476000
      ASCII(WBUFIN(25).(8:8),10,BUFOUT(94));                   <<04206>>01478000
      SEND(125);                                                        01482000
END;                                                                    01484000
$PAGE                                                          <<04206>>01486000
                                                               <<04206>>01488000
PROCEDURE INFO8';                                              <<04206>>01490000
  BEGIN                                                        <<04206>>01492000
    DOUBLE PAGES; INTEGER LOGPAGES;                            <<04206>>01494000
                                                               <<04206>>01496000
    DASCII(DBUFIN(13),10,BUFOUT(27));                          <<04206>>01498000
    DASCII(DBUFIN(14),10,BUFOUT(38));                          <<04206>>01500000
    ASCII(WBUFIN(30).(12:4),10,BUFOUT(50));                    <<04206>>01502000
    PAGES := DBUFIN(16);                                       <<04206>>01504000
    IF PAGES <> 0D                                             <<04206>>01506000
       THEN DASCII(PAGES,10,BUFOUT(54));                       <<04206>>01508000
    LOGPAGES := WBUFIN(31).(10:6);                             <<04206>>01510000
    IF LOGPAGES <> 0                                           <<04206>>01512000
       THEN ASCII(LOGPAGES,10,BUFOUT(66));                     <<04206>>01514000
    ASCII(WBUFIN(30).(0:8),10,BUFOUT(73));                     <<04206>>01516000
    SEND(80);                                                  <<04206>>01518000
  END;                                                         <<04206>>01520000
                                                               <<04206>>01522000
$PAGE                                                          <<04206>>01524000
                                                                        01526000
                                                                        01528000
      PROCEDURE INFO9;                                                  01530000
      BEGIN                                                             01532000
      ASCII(WBUFIN(6),10,BUFOUT(27));                                   01534000
      DASCII(DBF1,10,BUFOUT(34));                                       01536000
      DASCII(DBF2,10,BUFOUT(47));                                       01538000
      DASCII(DBF3,10,BUFOUT(62));                                       01540000
      ASCII(WBUFIN(13),10,BUFOUT(76));                                  01542000
      ASCII(WBUFIN(14),10,BUFOUT(87));                                  01544000
      SEND(95);                                                         01546000
      END;                                                              01548000
      PROCEDURE INFO10;                                                 01550000
      BEGIN                                                             01552000
      ASCII(WBUFIN(6),10,BUFOUT(27));                                   01554000
      ASCII(WBUFIN(8).(0:8),10,BUFOUT(34));                             01556000
      BUFOUT(36):=":";                                                  01558000
      ASCII(WBUFIN(8).(8:8),10,BUFOUT(37));                             01560000
      BUFOUT(39):=":";                                                  01562000
      ASCII(WBUFIN(9).(0:8),10,BUFOUT(40));                             01564000
      BUFOUT(42):=":";                                                  01566000
      ASCII(WBUFIN(9).(8:8),10,BUFOUT(43));                             01568000
      MOVE BUFOUT(49):=BUFIN(20),(8);                                   01570000
      SEND(57);                                                         01572000
      END;                                                              01574000
      PROCEDURE INFO9';                                                 01576000
      BEGIN                                                             01578000
      MOVE BUFOUT(27):=BUFIN(66),(20);                                  01580000
      MOVE BUFOUT(49) := BUFIN(31),(16);                       <<01182>>01582000
      MOVE BUFOUT(70) := BUFIN(49),(16);                       <<01182>>01584000
      SEND(88);                                                         01586000
      END;                                                              01588000
     PROCEDURE INFO11;                                                  01590000
      BEGIN                                                             01592000
      <<FIRST LINE>>                                                    01594000
                                                                        01596000
        ASCII(WBUFIN(%22).(8:8),10,BUFOUT(27));<<DRT>>         <<01352>>01598000
        ASCII(WBUFIN(%22).(0:8),10,BUFOUT(30));<<UNIT>>        <<01352>>01600000
        ASCII((WBUFIN(%10).(8:8)),10,BUFOUT(36)); <<LDEV>>     <<04217>>01602000
                                                               <<01352>>01604000
        ASCII(WBUFIN(%21).(8:8),10,BUFOUT(49));<<TYPE>>        <<01352>>01606000
        ASCII(WBUFIN(%21).(4:4),10,BUFOUT(54));<<SUBTYPE>>     <<01352>>01608000
        ASCII((WBUFIN(%14).(8:8)),10,BUFOUT(62)); <<DRVR FUNC. <<04217>>01610000
        ASCII(WBUFIN(%15),10,BUFOUT(69));<<COUNT>>             <<01352>>01612000
        ASCII(WBUFIN(%11),8 ,BUFOUT(81));    <<IOQ(QMISC)>>    <<01352>>01614000
      SEND(132);<<PRINT LINE>>                                          01616000
      END;<<INFO11>>                                                    01618000
                                                                        01620000
     PROCEDURE INFO11';                                                 01622000
      BEGIN                                                             01624000
      <<SECOND LINE>>                                                   01626000
                                                                        01628000
        ASCII(WBUFIN(%7),8,BUFOUT(27));      <<IOQ(QFLAG)>>    <<01352>>01630000
        ASCII(WBUFIN(%12),8,BUFOUT(39));      <<DST#>>         <<01352>>01632000
        ASCII(WBUFIN(%13),8,BUFOUT(47));      <<ADDRESS>>      <<01352>>01634000
        ASCII(WBUFIN(%20),8,BUFOUT(56));      <<PCB/STAT>>     <<01352>>01636000
                                                               <<01352>>01638000
        ASCII(WBUFIN(%16),8,BUFOUT(66));      <<PAR1>>         <<01352>>01640000
        ASCII(WBUFIN(%17),8,BUFOUT(75));      <<PAR2>>         <<01352>>01642000
        SEND(132);<<PRINT LINE>>                               <<01352>>01644000
        CLEARBUF;                                              <<01352>>01646000
        MOVE BUFOUT:= "     DEVICE STATUS WORDS -            ";<<01352>>01648000
        ASCII (WBUFIN(6).(0:8),10,BUFOUT(1));                  <<01352>>01650000
        SEND (38);                                             <<01352>>01652000
        LINEINDEX:= 0;                                         <<01352>>01654000
        CLEARBUF;                                              <<01352>>01656000
        FOR I:=0 UNTIL INTEGER(WBUFIN(6).(0:8))-1  DO          <<01352>>01658000
           BEGIN                                               <<01352>>01660000
           ASCII (WBUFIN(I+19),8,BUFOUT(LINEINDEX*9));         <<01352>>01662000
           LINEINDEX:= LINEINDEX +1;                           <<01352>>01664000
           IF LINEINDEX >= 8                                   <<01352>>01666000
           THEN BEGIN                                          <<01352>>01668000
                SEND (73);                                     <<01352>>01670000
                LINEINDEX:= 0;                                 <<01352>>01672000
                CLEARBUF;                                      <<01352>>01674000
                END;                                           <<01352>>01676000
           END;                                                <<01352>>01678000
        IF LINEINDEX<>0  THEN  SEND (73);                      <<01352>>01680000
      END;<<INFO11'>>                                                   01682000
   PROCEDURE INFO12;                                           <<sp.01>>01684000
   BEGIN                                                       <<sp.01>>01686000
      BYTE ARRAY rtype(0:23)=PB:=" MOUNT  ","DISMOUNT",        <<sp.01>>01688000
                 " VINIT  ";                                            01690000
      BYTE ARRAY dtype(0:11)=PB:=" AUTO ","PSEUDO";            <<sp.01>>01692000
      BYTE ARRAY VTYPE(0:83)=PB:="  PRIVATE   ","  SCRATCH   ",<<01182>>01694000
                                 "   SYSTEM   ","UNFORMATTED ",<<sp.01>>01696000
                                 "UNRECOGNIZED","SERIAL DISC ",<<01182>>01698000
                                 "  FOREIGN   ";               <<01182>>01700000
      MOVE bufout(28):=rtype(ibufin(6).(14:2)*8),(8);          <<sp.01>>01702000
      MOVE bufout(41):=dtype(ibufin(6).(13:1)*6),(6);          <<sp.01>>01704000
      MOVE bufout(48):=vtype(ibufin(6).(8:4)*12),(12);         <<sp.01>>01706000
      ascii(ibufin(6).(0:8),8,bufout(61));                     <<sp.01>>01708000
      ascii(ibufin(7).(8:8),8,bufout(69));                     <<sp.01>>01710000
      IF ibufin(6).(14:2)<>1 THEN                              <<sp.01>>01712000
      BEGIN                                                    <<sp.01>>01714000
         MOVE bufout(78):=bufin(16),(8);                       <<sp.01>>01716000
         MOVE bufout(87):=bufin(24),(8);                       <<sp.01>>01718000
         MOVE bufout(96):=bufin(32),(8);                       <<sp.01>>01720000
         MOVE bufout(105):=bufin(40),(8);                      <<sp.01>>01722000
         SEND(114);                                            <<sp.01>>01724000
      END ELSE SEND(77);                                       <<sp.01>>01726000
   END;                                                        <<sp.01>>01728000
   PROCEDURE INFO13;                                           <<sp.01>>01730000
   BEGIN                                                       <<sp.01>>01732000
      BYTE POINTER out;                                        <<sp.01>>01734000
      INTEGER I,J,K:=-4;                                       <<01182>>01736000
      BYTE ARRAY mtype(0:15)=PB:=" MOUNT  ","DISMOUNT";        <<sp.01>>01738000
      BYTE ARRAY type(0:65)=PB:="W/ BINDING ","W/O BINDING",   <<sp.01>>01740000
                                "  SYSTEM   ","CONDITIONAL",   <<sp.01>>01742000
                                " OPERATOR  "," JOB TERM. ";   <<sp.01>>01744000
      MOVE bufout(27):=mtype(ibufin(6).(15:1)*8),(8);          <<sp.01>>01746000
      MOVE bufout(37):=type(ibufin(6).(12:3)*11),(11);         <<sp.01>>01748000
      ascii(ibufin(7).(8:8),8,bufout(49));                     <<sp.01>>01750000
      ASCII(IBUFIN(7).(0:8),-10,BUFOUT(58));                   <<01182>>01752000
      MOVE bufout(62):=bufin(16),(8);                          <<sp.01>>01754000
      MOVE bufout(71):=bufin(24),(8);                          <<sp.01>>01756000
      MOVE bufout(80):=bufin(32),(8);                          <<sp.01>>01758000
      MOVE bufout(90):=bufin(40),(8);                          <<sp.01>>01760000
      MOVE bufout(99):=bufin(48),(8);                          <<sp.01>>01762000
      MOVE bufout(108):=bufin(56),(8);                         <<sp.01>>01764000
      SEND(117);                                               <<sp.01>>01766000
      SEND(0);                                                 <<01182>>01768000
FOR J := 1 UNTIL 2 DO                                          <<01182>>01770000
  BEGIN                                                        <<01182>>01772000
  K := K + 4;                                                  <<01182>>01774000
  I := K;                                                      <<01182>>01776000
  IF I < IBUFIN(32) THEN                                       <<01182>>01778000
    BEGIN                                                      <<01182>>01780000
      CLEARBUF;                                                         01782000
      MOVE bufout(27):="VOLUME INFORMATION  ",2;               <<sp.01>>01784000
      WHILE (I:=I+1) <= IBUFIN(32) AND I<=K+4 DO               <<01182>>01786000
        MOVE * := "DEVICE/STYPE  ",2;                          <<01182>>01788000
      DEL;                                                     <<sp.01>>01790000
      SEND(47+(I-1-K)*14);                                     <<01182>>01792000
      CLEARBUF;                                                         01794000
      @out:=@bufout(47); <<have sent header of appropriate leng<<sp.01>>01796000
      I := K;                                                  <<01182>>01798000
      WHILE (I:=I+1) <= IBUFIN(32) AND I<=K+4 DO               <<01182>>01800000
      BEGIN                                                    <<sp.01>>01802000
         ascii(ibufin(i+32).(8:8),8,out);                      <<sp.01>>01804000
         ascii(ibufin(i+32).(0:8),8,out(7));                   <<sp.01>>01806000
         @out:=@out+14;                                        <<sp.01>>01808000
      END;                                                     <<sp.01>>01810000
      SEND(47+(I-1-K)*14);                                     <<01182>>01812000
    END;                                                       <<01182>>01814000
  END;                                                         <<01182>>01816000
   END;                                                        <<sp.01>>01818000
                                                                        01820000
                                                                        01822000
                                                                        01824000
PROCEDURE INF014;                                              <<TL.02>>01826000
  BEGIN                                                        <<TL.02>>01828000
    ASCII(WBUFIN(6).(8:8),10,BUFOUT(27)); <<LDEV>>             <<01182>>01830000
    ASCII(WBUFIN(8).(0:8),10,BUFOUT(32)); <<FILE #>>           <<01182>>01832000
    ASCII(WBUFIN(7).(2:14),10,BUFOUT(38)); <<FILE SEQ#>>       <<01182>>01834000
    ASCII(WBUFIN(8).(8:2),10,BUFOUT(48)); <<SEQ TYPE>>         <<sp.01>>01836000
    IF WBUFIN(8).(10:2)=2 THEN                                 <<sp.01>>01838000
    MOVE BUFOUT(55):="ANSI" ELSE                               <<TL.02>>01840000
    MOVE BUFOUT(55):="IBM";                                    <<TL.02>>01842000
    ASCII(WBUFIN(9).(0:8),10,BUFOUT(60)); << PIN#>>            <<sp.01>>01844000
    ASCII(WBUFIN(9).(8:8),10,BUFOUT(66)); <<VOL#>>             <<sp.01>>01846000
    ASCII(WBUFIN(10),8,BUFOUT(70)); <<EXP DATE>>               <<01182>>01848000
    MOVE BUFOUT(79):=BUFIN(22),(17); <<FILE NAME>>             <<sp.01>>01850000
    MOVE BUFOUT(97):=BUFIN(40),(8); <<LOCKWORD>>               <<sp.01>>01852000
    MOVE BUFOUT(106) := BUFIN(48),(6);  <<VOLSET ID>>          <<01182>>01854000
    MOVE BUFOUT(116) := BUFIN(54),(6);  <<VOL ID>>             <<01182>>01856000
    SEND(123);                                                 <<TL.02>>01858000
  END; <<INF014>>                                              <<TL.02>>01860000
   PROCEDURE INFO15;                                           <<sp.01>>01862000
   BEGIN                                                       <<sp.01>>01864000
      IF IBUFIN(6) < 0 THEN                                    <<SP.02>>01866000
      BEGIN                                                    <<SP.01>>01868000
         MOVE BUFOUT(27):="IN  ";                              <<SP.01>>01870000
         IBUFIN(6):=-IBUFIN(6)                                 <<SP.02>>01872000
      END ELSE MOVE BUFOUT(27):="OUT ";                        <<SP.01>>01874000
                                                               <<01182>>01876000
      TEMP := 14;                                              <<01182>>01878000
      IF IBUFIN(6) > 101 THEN                                  <<01182>>01880000
        BEGIN                                                  <<01182>>01882000
        MOVE BUFOUT(31) := BUFIN(14),(101);                    <<01182>>01884000
        SEND(132);                                             <<01182>>01886000
        CLEARBUF;                                              <<01182>>01888000
        << GET MAX. REMAINDER IN BUFFER >>                     <<01182>>01890000
        IF IBUFIN(1) > BUFSIZE THEN                            <<01182>>01892000
          TEMP := BUFSIZE*2 - 115                              <<01182>>01894000
        ELSE                                                   <<01182>>01896000
          TEMP := IBUFIN(1)*2 - 115;                           <<01182>>01898000
        IBUFIN(6) := IBUFIN(6) - 101;                          <<01182>>01900000
        IF WBUFIN(6) > TEMP THEN WBUFIN(6) := TEMP;            <<01182>>01902000
        TEMP := 115;                                           <<01182>>01904000
        END;                                                   <<01182>>01906000
      MOVE BUFOUT(31) := BUFIN(TEMP),(IBUFIN(6));              <<01182>>01908000
      SEND(31+IBUFIN(6));                                      <<01182>>01910000
   END;                                                        <<sp.01>>01912000
                                                                        01914000
procedure INFO16;                                              <<01763>>01916000
begin                                                          <<01763>>01918000
move BUFOUT(27):="STACK UNDERFLOW SIMULATION";                 <<01763>>01920000
MOVE BUFOUT(56):=BUFIN(18),(28);                               <<01763>>01922000
move BUFOUT(91):="N/A";                                        <<01763>>01924000
move BUFOUT(106):="N/A";                                       <<01763>>01926000
SEND(110);                                                     <<01763>>01928000
end;                                                           <<01763>>01930000
  << PROCEDURES INFO17 AND INFO18 FOLLOW PROCEDURES INFO46->>  <<04854>>01932000
  << INFO47' BECAUSE OF LINE NUMBER SPACE .                >>  <<04854>>01934000
                                                               <<03643>>01936000
PROCEDURE INFO46;                                              <<03643>>01938000
BEGIN                                                          <<03643>>01940000
   ASCII(WBUFIN(6),10,BUFOUT(27));   <<LDEV  >>                <<03643>>01942000
   ASCII(WBUFIN(7),10,BUFOUT(34));   << TYPE >>                <<03643>>01944000
   ASCII(WBUFIN(8),10,BUFOUT(38));   <<SUBTYPE >>              <<03643>>01946000
   ASCII(WBUFIN(9),10,BUFOUT(43));   << MAINTENANCE REQ. TYPE>><<03643>>01948000
   ASCII(WBUFIN(10),10,BUFOUT(52));  << PARAMETER >>           <<03643>>01950000
   ASCII(WBUFIN(11),10,BUFOUT(59));  <<REC. SEQ. # >>          <<03643>>01952000
   ASCII(WBUFIN(12),10,BUFOUT(67));  << TOTAL # BYTES TO LOG>> <<03643>>01954000
   ASCII(WBUFIN(13),10,BUFOUT(78));  <<BYTES LOGGED IN THIS REC<<03643>>01956000
   SEND(84);                                                   <<03643>>01958000
END;                                                           <<03643>>01960000
                                                               <<03643>>01962000
PROCEDURE INFO46';                                             <<03643>>01964000
BEGIN                                                          <<03643>>01966000
   BYTE'INDEX := 28; <<STARTING WORD OF LOGGED DATA >>         <<03643>>01968000
   LOGGEDATA'COUNT := 0;                                       <<03643>>01970000
   TOTAL'LOGGED := WBUFIN(13); <<TOTAL # BYTES LOGGED DATA >>  <<03643>>01972000
   BYTE'COUNTER := 0; <<INITIALIZE TO 0 >>                     <<03643>>01974000
   OUT'INDEX := 27; << POSITION FOR FIRST OCTAL BYTE >>        <<03643>>01976000
                    << IN OUTPUT STRING.             >>        <<03643>>01978000
   WHILE BYTE'COUNTER <= TOTAL'LOGGED DO                       <<03643>>01980000
   BEGIN                                                       <<03643>>01982000
      WHILE PRINT'COUNTER <= 7 AND                             <<04577>>01984000
            BYTE'COUNTER <= TOTAL'LOGGED - 1 DO                <<04577>>01986000
         BEGIN                                                 <<03643>>01988000
         ASCII(BUFIN(BYTE'INDEX),8,BUFOUT(OUT'INDEX));         <<03643>>01990000
         MOVE BUFOUT(OUT'INDEX) := "   ";<<BLANK TOP 3 ZEROS>> <<03643>>01992000
         BYTE'INDEX := BYTE'INDEX + 1;                         <<03643>>01994000
         OUT'INDEX := OUT'INDEX +7;                            <<03643>>01996000
         BYTE'COUNTER := BYTE'COUNTER +1;                      <<03643>>01998000
         PRINT'COUNTER := PRINT'COUNTER + 1;                   <<03643>>02000000
                                                               <<03643>>02002000
         END;   << INSIDE WHILE LOOP >>                        <<03643>>02004000
      SEND(82);     <<PRINT OUTPUT >>                          <<03643>>02006000
      LOGGEDATA'COUNT := LOGGEDATA'COUNT + 1;                  <<03643>>02008000
      CLEARBUF;     << CLEAR FOR NEXT LINE OF OUTPUT>>         <<03643>>02010000
      PRINT'COUNTER := 0; <<RESET FOR PRINTING ONE LINE >>     <<03643>>02012000
      OUT'INDEX := 27;    <<OF OCTAL VALUES.            >>     <<03643>>02014000
   END;  << OUTSIDE WHILE LOOP >>                              <<03643>>02016000
                                                               <<03643>>02018000
END;  <<INFO46'>>                                              <<03643>>02020000
                                                               <<03643>>02022000
PROCEDURE INFO47;                                              <<03643>>02024000
BEGIN                                                          <<03643>>02026000
   ASCII(WBUFIN(6),10,BUFOUT(27));  <<RECORD NUMBER >>         <<03643>>02028000
   ASCII(WBUFIN(7),10,BUFOUT(36));  <<TOTAL BYTES TO BE LOGGED><<03643>>02030000
   ASCII(WBUFIN(8),10,BUFOUT(46));  <<BYTES IN "LOGGED DATA">> <<03643>>02032000
   SEND(54);                                                   <<03643>>02034000
END;    <<INFO47 >>                                            <<03643>>02036000
                                                               <<03643>>02038000
PROCEDURE INFO47';                                             <<03643>>02040000
BEGIN                                                          <<03643>>02042000
<<PRINT THE ASCII DATA AT THE END OF THE RECORD WHICH IS >>    <<03643>>02044000
<<A MAXIMUM OF 72 BYTES.                                 >>    <<03643>>02046000
                                                               <<03643>>02048000
   WORDS'LOGGED := (WBUFIN(8) + 1)/2; << GET WORD COUNT>>      <<03643>>02050000
   MOVE WBUFOUT(27) := WBUFIN(9),(WORDS'LOGGED);               <<03643>>02052000
   SEND(100);                                                  <<03643>>02054000
END;  << INFO47' >>                                            <<03643>>02056000
                                                               <<01763>>02058000
                                                               <<04854>>02060000
PROCEDURE INFO17;                                              <<04854>>02062000
<< CALL PROGRESS SIGNALS >>                                    <<04854>>02064000
BEGIN                                                          <<04854>>02066000
ASCII(BUFIN(12), 10, BUFOUT(28));  << LDEV >>                  <<04854>>02068000
ASCII(BUFIN(13), 10, BUFOUT(35));  << MSG # >>                 <<04854>>02070000
SEND(38);                                                      <<04854>>02072000
END;  << INFO17 >>                                             <<04854>>02074000
                                                               <<04854>>02076000
PROCEDURE INFO18;                                              <<04854>>02078000
<< DCE PROVIDED INFORMATION >>                                 <<04854>>02080000
BEGIN                                                          <<04854>>02082000
                                                               <<04854>>02084000
INTEGER I;                                                     <<04854>>02086000
                                                               <<04854>>02088000
ASCII(BUFIN(12), 10, BUFOUT(28));  << LDEV >>                  <<04854>>02090000
IF BUFIN(13) <> 32 AND BUFIN(13) <> 33 THEN                    <<04854>>02092000
  ASCII(BUFIN(13), 10, BUFOUT(35));  << MSG # >>               <<04854>>02094000
IF BUFIN(13) = 1 THEN                                          <<04854>>02096000
  BEGIN  << MONITARY INFO >>                                   <<04854>>02098000
  TOS := 0;  << FOR VALUE RETURNED BY DASCII >>                <<04854>>02100000
  TOS := DBF1;                                                 <<04854>>02102000
  IF >= THEN  << INTEGER # >>                                  <<04854>>02104000
    I := DASCII(*, 10, BUFOUT(41)) + 41                        <<04854>>02106000
  ELSE                                                         <<04854>>02108000
    BEGIN  << HAS FRACTION >>                                  <<04854>>02110000
    ASSEMBLE(XCH);                                             <<04854>>02112000
    TOS.(0:8) := 0;                                            <<04854>>02114000
    ASSEMBLE(XCH);                                             <<04854>>02116000
    << FORMAT INTEGER PORTION >>                               <<04854>>02118000
    I := DASCII(*, 10, BUFOUT(41)) + 42;                       <<04854>>02120000
    BUFOUT(I-1) := ".";                                        <<04854>>02122000
    << FORMAT FRACTION PORTION >>                              <<04854>>02124000
    TOS := ASCII(BUFIN(14).(9:7), 10, BUFOUT(I));              <<04854>>02126000
    IF TOS = 1 THEN                                            <<04854>>02128000
      BEGIN  << FRACTION SHOULD BE IN HUNDRETHS  >>            <<04854>>02130000
      BUFOUT(I+1) := BUFOUT(I);                                <<04854>>02132000
      BUFOUT(I) := "0";                                        <<04854>>02134000
      END;                                                     <<04854>>02136000
    I := I + 2;                                                <<04854>>02138000
    END;                                                       <<04854>>02140000
  MOVE BUFOUT(I+2) := "(MONITARY)";                            <<04854>>02142000
  I := I + 12;                                                 <<04854>>02144000
  END                                                          <<04854>>02146000
ELSE                                                           <<04854>>02148000
  IF BUFIN(13) <> 2 AND BUFIN(13) <> 3 AND BUFIN(13) <> 10 THEN<<04854>>02150000
    BEGIN  << ERROR MESSAGE >>                                 <<04854>>02152000
    IF BUFIN(13) = 32 THEN                                     <<04854>>02154000
      BEGIN                                                    <<04854>>02156000
      MOVE BUFOUT(41) := "DRIV BUF OVERFLOW";                  <<04854>>02158000
      I := 58;                                                 <<04854>>02160000
      END                                                      <<04854>>02162000
    ELSE                                                       <<04854>>02164000
      IF BUFIN(13) = 33 THEN                                   <<04854>>02166000
        BEGIN                                                  <<04854>>02168000
        MOVE BUFOUT(41) := "PARITY ERROR";                     <<04854>>02170000
        I := 53;                                               <<04854>>02172000
        END                                                    <<04854>>02174000
      ELSE                                                     <<04854>>02176000
        BEGIN  << SHOULD BE MSG # 20 - LINE INFO ERROR >>      <<04854>>02178000
        BUFOUT(48) := "*";                                     <<04854>>02180000
        I := 49;                                               <<04854>>02182000
        END;                                                   <<04854>>02184000
    END                                                        <<04854>>02186000
  ELSE                                                         <<04854>>02188000
    BEGIN                                                      <<04854>>02190000
    TOS := 0;  << FOR VALUE RETURNED BY DASCII >>              <<04854>>02192000
    TOS := DBF1;                                               <<04854>>02194000
    << BIT 0 IS FLAG TO BE CHECKED LATER; CLEAR FOR NOW >>     <<04854>>02196000
    IF < THEN                                                  <<04854>>02198000
      ASSEMBLE(XCH; TRBC 0; XCH);                              <<04854>>02200000
    I := DASCII(*, 10, BUFOUT(41)) + 43;                       <<04854>>02202000
    IF BUFIN(13) = 2 THEN                                      <<04854>>02204000
      BEGIN  << CHARGE INFO IS TIME >>                         <<04854>>02206000
      MOVE BUFOUT(I) := "(SECONDS)";                           <<04854>>02208000
      I := I + 9;                                              <<04854>>02210000
      END                                                      <<04854>>02212000
    ELSE                                                       <<04854>>02214000
      IF BUFIN(13) = 3 THEN                                    <<04854>>02216000
        BEGIN  << CHARGE INFO IS UNITS >>                      <<04854>>02218000
        MOVE BUFOUT(I) := "(UNITS)";                           <<04854>>02220000
        I := I + 7;                                            <<04854>>02222000
        END                                                    <<04854>>02224000
      ELSE  << MSG # = 10 >>                                   <<04854>>02226000
        << INFO IS LINE IDENTIFICATION; NOW CHECK BIT 0 >>     <<04854>>02228000
        IF INTEGER(WBUFIN(7)) >= 0 THEN                        <<04854>>02230000
          BEGIN  << INTERNATIONAL DATA NUMBER >>               <<04854>>02232000
          MOVE BUFOUT(I) := "(IDN)";                           <<04854>>02234000
          I := I + 5;                                          <<04854>>02236000
          END                                                  <<04854>>02238000
        ELSE                                                   <<04854>>02240000
          BEGIN  << NATIONAL # OR NETWORK TERMINAL # >>        <<04854>>02242000
          MOVE BUFOUT(I) := "(NN/NTN)";                        <<04854>>02244000
          I := I + 8;                                          <<04854>>02246000
          END;                                                 <<04854>>02248000
    END;                                                       <<04854>>02250000
SEND(I);                                                       <<04854>>02252000
END;  << INFO18 >>                                             <<04854>>02254000
PROCEDURE RECTYPEP(TYPE);                                               02256000
     VALUE TYPE;INTEGER TYPE;                                           02258000
     BEGIN                                                              02260000
      CASE RECTYPE OF                                                   02262000
      BEGIN                                                             02264000
         TITLE0;                                                        02266000
         TITLE1;                                                        02268000
         TITLE2;                                                        02270000
         TITLE3;                                                        02272000
         TITLE4;                                                        02274000
         TITLE5;                                                        02276000
         TITLE6;                                                        02278000
         TITLE7;                                                        02280000
         IF FIRSTIME THEN TITLE8 ELSE TITLE8';                 <<04206>>02282000
         IF FIRSTIME THEN TITLE9 ELSE TITLE9';                          02284000
         TITLE10;                                                       02286000
         IF FIRSTIME THEN TITLE11 ELSE TITLE11';                        02288000
         TITLE12;                                              <<TL.02>>02290000
         TITLE13;                                              <<TL.02>>02292000
         TITLE14;                                              <<TL.02>>02294000
         TITLE15;                                              <<sp.01>>02296000
         TITLE16;                                              <<03643>>02298000
         TITLE17; <<17>>                                       <<04854>>02300000
         TITLE18; <<18>>                                       <<04854>>02302000
         ;        <<19>>                                       <<03643>>02304000
         ;        <<20>>                                       <<03643>>02306000
         ;        <<21>>                                       <<03643>>02308000
         ;        <<22>>                                       <<03643>>02310000
         ;        <<23>>                                       <<03643>>02312000
         ;        <<24>>                                       <<03643>>02314000
         ;        <<25>>                                       <<03643>>02316000
         ;        <<26>>                                       <<03643>>02318000
         ;        <<27>>                                       <<03643>>02320000
         ;        <<28>>                                       <<03643>>02322000
         ;        <<29>>                                       <<03643>>02324000
         ;        <<30>>                                       <<03643>>02326000
         ;        <<31>>                                       <<03643>>02328000
         ;        <<32>>                                       <<03643>>02330000
         ;        <<33>>                                       <<03643>>02332000
         ;        <<34>>                                       <<03643>>02334000
         ;        <<35>>                                       <<03643>>02336000
         ;        <<36>>                                       <<03643>>02338000
         ;        <<37>>                                       <<03643>>02340000
         ;        <<38>>                                       <<03643>>02342000
         ;        <<39>>                                       <<03643>>02344000
         ;        <<40>>                                       <<03643>>02346000
         ;        <<41>>                                       <<03643>>02348000
         ;        <<42>>                                       <<03643>>02350000
         ;        <<43>>                                       <<03643>>02352000
         ;        <<44>>                                       <<03643>>02354000
         ;        <<45>>                                       <<03643>>02356000
         IF FIRSTIME THEN TITLE46 ELSE TITLE46';               <<03643>>02358000
         IF FIRSTIME THEN TITLE47 ELSE TITLE47';  <<47>>       <<03643>>02360000
         QUIT(4);                                                       02362000
      END;                                                              02364000
      END;<<EVIL>>                                                      02366000
                                                                        02368000
                                                                        02370000
                                                                        02372000
PROCEDURE INFOP(TYPE);                                                  02374000
      VALUE TYPE;INTEGER TYPE;                                          02376000
      BEGIN                                                             02378000
      CASE RECTYPE OF                                                   02380000
      BEGIN                                                             02382000
         INFO0;                                                         02384000
         INFO1;                                                         02386000
         INFO2;                                                         02388000
         INFO3;                                                         02390000
         INFO4;                                                         02392000
         INFO5;                                                         02394000
         INFO6;                                                         02396000
         INFO7;                                                         02398000
         IF FIRSTIME THEN INFO8 ELSE INFO8';                   <<04206>>02400000
         IF FIRSTIME THEN INFO9 ELSE INFO9';                            02402000
         INFO10;                                                        02404000
         IF FIRSTIME THEN INFO11 ELSE INFO11';                          02406000
         INFO12;                                               <<TL.02>>02408000
         INFO13;                                               <<TL.02>>02410000
         INF014;                                               <<TL.02>>02412000
         INFO15;                                               <<sp.01>>02414000
         INFO16;  <<16>>                                       <<03643>>02416000
         INFO17;  <<17>>                                       <<04854>>02418000
         INFO18;  <<18>>                                       <<04854>>02420000
         ;        <<19>>                                       <<03643>>02422000
         ;        <<20>>                                       <<03643>>02424000
         ;        <<21>>                                       <<03643>>02426000
         ;        <<22>>                                       <<03643>>02428000
         ;        <<23>>                                       <<03643>>02430000
         ;        <<24>>                                       <<03643>>02432000
         ;        <<25>>                                       <<03643>>02434000
         ;        <<26>>                                       <<03643>>02436000
         ;        <<27>>                                       <<03643>>02438000
         ;        <<28>>                                       <<03643>>02440000
         ;        <<29>>                                       <<03643>>02442000
         ;        <<30>>                                       <<03643>>02444000
         ;        <<31>>                                       <<03643>>02446000
         ;        <<32>>                                       <<03643>>02448000
         ;        <<33>>                                       <<03643>>02450000
         ;        <<34>>                                       <<03643>>02452000
         ;        <<35>>                                       <<03643>>02454000
         ;        <<36>>                                       <<03643>>02456000
         ;        <<37>>                                       <<03643>>02458000
         ;        <<38>>                                       <<03643>>02460000
         ;        <<39>>                                       <<03643>>02462000
         ;        <<40>>                                       <<03643>>02464000
         ;        <<41>>                                       <<03643>>02466000
         ;        <<42>>                                       <<03643>>02468000
         ;        <<43>>                                       <<03643>>02470000
         ;        <<44>>                                       <<03643>>02472000
         ;        <<45>>                                       <<03643>>02474000
         IF FIRSTIME THEN INFO46 ELSE INFO46';                 <<03643>>02476000
         IF FIRSTIME THEN INFO47 ELSE INFO47';  <<47>>         <<03643>>02478000
      END;                                                              02480000
      END;                                                              02482000
                                                                        02484000
                                                                        02486000
      LOGICAL PROCEDURE EFCHECK(FILENUM);                               02488000
      VALUE FILENUM;INTEGER FILENUM;                                    02490000
      BEGIN                                                             02492000
      INTEGER ERR,TLOG,NUM;                                             02494000
      DOUBLE BLOCKN;                                                    02496000
                                                                        02498000
      FCHECK(FILENUM,ERR,TLOG,BLOCKN);                                  02500000
      IF <> THEN                                                        02502000
         BEGIN                                                          02504000
         ERROR(18);                                                     02506000
         ERROR(0);                                                      02508000
         END;                                                           02510000
      EFCHECK:=ERR;                                                     02512000
      IF FILENUM = FOUT THEN                                   <<04226>>02514000
         IF ERR = EOT THEN  <<EOT FOUND ON FWRITE>>            <<04226>>02516000
            RECOVERABLERROR := TRUE;                           <<04226>>02518000
      MOVE OUTM:="ERROR NUMBER        ";                                02520000
      ASCII(ERR,10,OUTM(13));                                           02522000
      PRINT(OUTP,-16,0);                                                02524000
                                                                        02526000
END;<<EFCHECK>>                                                         02528000
                                                                        02530000
                                                                        02532000
                                                                        02534000
                                                                        02536000
                                                                        02538000
                                                                        02540000
                                                                        02542000
                                                                        02544000
                                                                        02546000
                                                                        02548000
                                                                        02550000
PROCEDURE ERROR(J);                                                     02552000
      VALUE J;                                                          02554000
      INTEGER J;                                                        02556000
      BEGIN                                                             02558000
      CASE J OF                                                         02560000
      BEGIN                                                             02562000
<<J=0>> QUIT(99);                                                       02564000
<<J=1>>  BEGIN                                                          02566000
         MOVE OUTM:=" BINARY INTRINSIC ERROR ";                         02568000
         PRINT (OUTP,-24,0);                                            02570000
         END;                                                           02572000
                                                                        02574000
<<J=2>>  BEGIN                                                          02576000
         MOVE OUTM:=" FPOINT ERROR ON LOG FILE";                        02578000
         PRINT(OUTP,-25,%320);                                          02580000
         END;                                                           02582000
                                                                        02584000
<<J=3>>  BEGIN                                                          02586000
         MOVE OUTM:=" FREAD ERROR ON LOG FILE";                         02588000
         PRINT(OUTP,-24,%320);                                          02590000
         END;                                                           02592000
                                                                        02594000
                                                                        02596000
<<J=4 >>  BEGIN                                                         02598000
          MOVE OUTM:="FATAL FREAD ERROR ON LOG FILE";                   02600000
          PRINT(OUTP,-29,%320);                                         02602000
          END;                                                          02604000
                                                                        02606000
                                                                        02608000
<<J=5 >>  BEGIN                                                         02610000
          MOVE OUTM:="FATAL FPOINT ERROR";                              02612000
          PRINT(OUTP,-18,%320);                                         02614000
          END;                                                          02616000
                                                                        02618000
                                                                        02620000
                                                                        02622000
                                                                        02624000
<<J=6 >>  BEGIN                                                         02626000
          MOVE OUTM:="FATAL FGETINFO ERROR";                            02628000
          PRINT(OUTP,-20,0);                                            02630000
          END;                                                          02632000
                                                                        02634000
                                                                        02636000
                                                                        02638000
<<J=7 >>  BEGIN                                                         02640000
          MOVE OUTM:="CALL TO WHO FAILED";                              02642000
          PRINT(OUTP,-18,0);                                            02644000
          END;                                                          02646000
                                                                        02648000
<<J=8 >>  BEGIN                                                         02650000
          MOVE OUTM:="FATAL COMMAND ERROR";                             02652000
          PRINT(OUTP,-19,0);                                            02654000
          END;                                                          02656000
                                                                        02658000
                                                                        02660000
<<J=9>> BEGIN                                                           02662000
        MOVE OUTM:="FOPEN ERROR TO LOGFILE                            ";02664000
        ASCII(PRESENTLOGFILE,10,OUTM(24));<<LOG #>>                     02666000
        PRINT(OUTP,-32,%320);                                           02668000
        END;                                                            02670000
                                                                        02672000
                                                                        02674000
<<J=10>> BEGIN                                                          02676000
         MOVE OUTM:="FOPEN TO LINE PRINTER FAILED-FATAL ERROR  ";       02678000
         PRINT(OUTP,-42,%320);                                          02680000
         END;                                                           02682000
                                                                        02684000
                                                                        02686000
                                                                        02688000
<<J=11>> BEGIN                                                          02690000
         MOVE OUTM:="FREAD FAILED FROM LOG FILE          ";             02692000
         ASCII(PRESENTLOGFILE,10,OUTM(28));                             02694000
         PRINT(OUTP,-36,%320);                                          02696000
         END;                                                           02698000
                                                                        02700000
                                                                        02702000
<<J=12>> BEGIN                                                          02704000
         MOVE OUTM:="FCLOSE FAILED TO LOG FILE              ";          02706000
         ASCII(PRESENTLOGFILE,10,OUTM(26));                             02708000
         PRINT(OUTP,-34,%320);                                          02710000
         END;                                                           02712000
                                                                        02714000
                                                                        02716000
<<J=13>> BEGIN << THIS ERROR MESSAGE WAS CHANGED BY THIS FIX >><<01167>>02718000
         MOVE OUTM := "INVALID EVENT NUMBER -- TRY AGAIN";     <<01167>>02720000
         PRINT(OUTP,-33,0);                                    <<01167>>02722000
         END;                                                           02724000
                                                                        02726000
<<J=14>> BEGIN                                                          02728000
         MOVE OUTM:="NO EVENTS TO BE EVALUATED-FATAL ERROR";            02730000
         PRINT(OUTP,-37,0);                                             02732000
         END;                                                           02734000
                                                                        02736000
                                                                        02738000
<<J=15>> BEGIN                                                          02740000
         MOVE OUTM := "FCLOSE ERROR ON  LINE PRINTER  ";       <<01182>>02742000
         PRINT(OUTP,-31,%320);                                 <<01182>>02744000
         END;                                                           02746000
                                                                        02748000
<<J=16>> QUIT(99);                                             <<00542>>02750000
                                                                        02752000
<<J=17>> BEGIN                                                          02754000
         MOVE OUTM:="FWRITE FAILED TO LINE PRINTER  ";                  02756000
         PRINT(OUTP,-31,%320);                                          02758000
         END;                                                           02760000
                                                                        02762000
<<J=18>> BEGIN                                                          02764000
         MOVE OUTM:="FCHECK ERROR-FATAL ERROR";                         02766000
         PRINT(OUTP,-24,0);                                             02768000
         END;                                                           02770000
<<J=19>> BEGIN                                                <<01.01>> 02772000
           MOVE OUTM:="FATAL ERROR ON $STDINX";               <<01.01>> 02774000
           PRINT (OUTP,-22,0);                                <<01.01>> 02776000
         END;                                                 <<01.01>> 02778000
<<J=20>> BEGIN                                                <<01.01>> 02780000
           MOVE OUTM:="END OF FILE ON $STDINX";               <<01.01>> 02782000
           PRINT (OUTP,-22,0);                                <<01.01>> 02784000
         END;                                                 <<01.01>> 02786000
<<J=21>> BEGIN  <<NORMAL TERMINATION AT EOF>>                 <<01.01>> 02788000
           TERMINATE;                                         <<01.01>> 02790000
         END;                                                 <<01.01>> 02792000
<<J=22>> BEGIN                                                 <<01166>>02794000
         MOVE OUTM := "EMPTY LOGFILE - LOGFILE        ";       <<01182>>02796000
         ASCII(PRESENTLOGFILE,10,OUTM(25));                    <<01166>>02798000
         PRINT(OUTP,-31,0);                                    <<01182>>02800000
         END;                                                  <<01166>>02802000
<<J=23>> BEGIN                                                 <<01167>>02804000
         MOVE OUTM :=                                          <<01167>>02806000
           " ** PROGRAM REQUIRES SYS. MGR. CAPABILITY **";     <<01167>>02808000
         PRINT(OUTP,-44,0);                                    <<01167>>02810000
         END;                                                  <<01167>>02812000
<<J=24>> BEGIN                                                 <<01167>>02814000
         MOVE OUTM := "EVENT LIST TOO LARGE -- TRY AGAIN";     <<01167>>02816000
         PRINT(OUTP,-33,0);                                    <<01167>>02818000
         END;                                                  <<01167>>02820000
<<J=25>> BEGIN                                                 <<04218>>02822000
         MOVE OUTM :=                                          <<04218>>02824000
            "NO DESIRED EVENTS FOUND IN LOGFILE       ";       <<04218>>02826000
         ASCII(PRESENTLOGFILE,10,OUTM(36));                    <<04218>>02828000
         PRINT(OUTP,-42,0);                                    <<04218>>02830000
         END;                                                  <<04218>>02832000
      END;                                                              02834000
                                                                        02836000
      END; <<ERROR>>                                                    02838000
                                                                        02840000
                                                                        02842000
      PROCEDURE BLANKBUFX;                                              02844000
      BEGIN                                                             02846000
      WBUFIN(0):=0;                                                     02848000
      MOVE WBUFIN(1) := WBUFIN,(BUFSIZE-1);                    <<01182>>02850000
      END;<<BLANKBUFX>>                                                 02852000
                                                                        02854000
                                                                        02856000
                                                                        02858000
                                                                        02860000
                                                                        02862000
                                                                        02864000
                                                                        02866000
      PROCEDURE CONDENSEEVENT;                                          02868000
      BEGIN                                                             02870000
      INTEGER PTR1,CNTR,LENGTH,PTR2;                                    02872000
                                                                        02874000
      EVENTTABLE:=0;<<ZERO ENTRIES IN TABLE>>                           02876000
      CNTR:=0;                                                          02878000
      PTR1:=0;                                                          02880000
      PTR2:=1;                                                          02882000
                                                                        02884000
                                                                        02886000
<< IF ALL EVENTS IS SPCIFIED THEN THE EVENTSTABLE IS  >>       <<03643>>02888000
<< INITIALIZED TO INDICATE ALL EVENTS ELSE A SCAN IS  >>       <<03643>>02890000
<< DONE IN NEXT BLOCK OF CODE (WHILE LOOP) TO INITIAL->>       <<03643>>02892000
<< THE EVENTSTABLE TO THE SPECIFIED EVENTS.           >>       <<03643>>02894000
                                                                        02896000
                                                                        02898000
      IF TEMP=0 THEN<<ALL EVENTS >>                                     02900000
         BEGIN                                                          02902000
         EVENTTABLE:=no'log'types+1;                           <<sp.01>>02904000
         WHILE CNTR < no'log'types+1                           <<sp.01>>02906000
         DO                                                             02908000
           BEGIN                                                        02910000
           EVENTTABLE(PTR2) := EVENT'LIST(CNTR);               <<03643>>02912000
           CNTR:=CNTR+1;                                                02914000
           PTR2:=PTR2+1;                                                02916000
           END;                                                         02918000
         Q1.(6:2):=2;<<SET CCE>>                                        02920000
         RETURN;                                                        02922000
         END;                                                           02924000
                                                                        02926000
                                                                        02928000
        WHILE CNTR < NO'LOG'TYPES+1                            <<01167>>02930000
        DO                                                              02932000
        BEGIN                                                           02934000
                                                                        02936000
TEST1:  SCAN EVENTS(PTR1) UNTIL ";,",1;<<SCAN FOR COMMA>>               02938000
        IF CARRY THEN                                                   02940000
           BEGIN                                                        02942000
           IF EVENTTABLE=0 THEN                                         02944000
              BEGIN                                                     02946000
              ERROR(14); <<NO EVENTS TO BE CALCULATED,FATAL>>  <<03643>>02948000
              ERROR(0);                                                 02950000
              END;                                                      02952000
           Q1.(6:2):=2;<<CCE--END OF SCAN>>                             02954000
           RETURN;                                                      02956000
           END;                                                         02958000
                                                                        02960000
                                                                        02962000
                                                                        02964000
        LENGTH:=TOS-(@EVENTS+PTR1);<<LENGTH OF FIRST ENTRY>>            02966000
        TEMP := BINARY(EVENTS(PTR1),LENGTH);                   <<01167>>02968000
         IF <> THEN                                            <<03643>>02970000
         BEGIN                                                          02972000
           ERROR(13);                                          <<01167>>02974000
           Q1.(6:2) := 1; << SET CCL >>                        <<01167>>02976000
           RETURN;                                             <<01167>>02978000
         END;                                                           02980000
                                                                        02982000
<< CHECK TO SEE THAT THE NUMBER(S) SPECIFIED IS IN RANGE>>     <<03643>>02984000
         VALID'TYPES := GOOD'TYPE;                             <<03643>>02986000
         IF NOT VALID'TYPES THEN                               <<03643>>02988000
            BEGIN                                              <<03643>>02990000
            ERROR(13);  << INVALID EVENT NUMBER >>             <<03643>>02992000
            Q1.(6:2) := 1; << SET CCL >>                       <<03643>>02994000
            RETURN;                                            <<03643>>02996000
            END;                                               <<03643>>02998000
        EVENTTABLE(PTR2) := TEMP; << STORE VALUE AWAY >>       <<01167>>03000000
                                                                        03002000
        EVENTTABLE:=EVENTTABLE+1;<<INC # OF ENTRIES IN TABLE>>          03004000
        CNTR:=CNTR+1;<<INC COUNTER>>                                    03006000
        PTR1:=PTR1+LENGTH+1;                                            03008000
        PTR2:=PTR2+1;                                                   03010000
        END;   << END OF PARSING LOOP >>                       <<01167>>03012000
                                                               <<01167>>03014000
      IF EVENTS(PTR1) = ";" THEN                               <<01167>>03016000
        Q1.(6:2) := 2   << OK, END OF LIST >>                  <<01167>>03018000
      ELSE                                                     <<01167>>03020000
        BEGIN                                                  <<01167>>03022000
        ERROR(24);                                             <<01167>>03024000
        Q1.(6:2) := 1;  << CCL, TOO MANY EVENTS ON LIST >>     <<01167>>03026000
        END;                                                   <<01167>>03028000
                                                               <<01167>>03030000
      END;<<CONDENSEEVENT>>                                             03032000
                                                                        03034000
                                                                        03036000
                                                                        03038000
                                                                        03040000
                                                                        03042000
                                                                        03044000
                                                                        03046000
                                                                        03048000
PROCEDURE GETRANGE;                                                     03050000
      BEGIN                                                             03052000
      INTEGER L;                                                        03054000
                                                                        03056000
                                                                        03058000
START:MOVE OUTM:="ENTER FIRST AND LAST LOG FILE TO BE ANALYZED";        03060000
      PRINT(OUTP,-44,0);                                                03062000
      MOVE OUTM:="FIRST?";                                              03064000
      PRINT(OUTP,-6,%320);                                              03066000
      L := READ(WINPUT,-29);  <<READ LOG FILE>>                <<01.01>>03068000
      IF L =0 THEN GO TRYAGAIN;                                         03070000
      FIRST'LOG'NUM:=BINARY(INPUT,L);                          <<MS.00>>03072000
      IF <> THEN GO TRYAGAIN;                                  <<01167>>03074000
                                                               <<01167>>03076000
      MOVE OUTM:="LAST?";                                               03078000
      PRINT(OUTP,-5,%320);                                              03080000
      L := READ(WINPUT,-29);                                   <<01.01>>03082000
      IF L=0 THEN                                                       03084000
        BEGIN                                                           03086000
       LAST:=FIRST'LOG'NUM;                                    <<MS.00>>03088000
        RETURN;                                                         03090000
        END;                                                            03092000
      LAST:=BINARY(INPUT,L);                                            03094000
      IF <> THEN GO TRYAGAIN;                                  <<01167>>03096000
                                                               <<01167>>03098000
      RETURN;                                                           03100000
                                                                        03102000
                                                                        03104000
                                                                        03106000
TRYAGAIN:                                                               03108000
                                                                        03110000
      MOVE OUTM:="ERROR IN INPUT--TRY AGAIN";                           03112000
      PRINT(OUTP,-25,0);                                                03114000
GO START;                                                     <<01.01>> 03116000
END<<GETRANGE>>;                                              <<01.01>> 03118000
$PAGE                                                         <<01.01>> 03120000
INTEGER PROCEDURE READ(BUF,EXPLEN);                           <<01.01>> 03122000
   VALUE EXPLEN;                                              <<01.01>> 03124000
   ARRAY BUF;                                                 <<01.01>> 03126000
   INTEGER EXPLEN;                                            <<01.01>> 03128000
BEGIN                                                         <<01.01>> 03130000
                                                              <<01.01>> 03132000
                                                              <<01.01>> 03134000
BYTE POINTER BBUF;                                            <<01.01>> 03136000
INTEGER LEN=READ, X=X;                                        <<01.01>> 03138000
EQUATE CR=%15, BLANK=%40;                                     <<01.01>> 03140000
LEN := READX(BUF,EXPLEN);                                     <<01.01>> 03142000
IF < THEN                                                     <<01.01>> 03144000
BEGIN                                                         <<01.01>> 03146000
   ERROR(19);  <<FATAL ERROR ON $STDINX>>                     <<01.01>> 03148000
   ERROR(0);   <<CALL QUIT INTRINSIC>>                        <<01.01>> 03150000
END                                                           <<01.01>> 03152000
ELSE                                                          <<01.01>> 03154000
IF > THEN                                                     <<01.01>> 03156000
BEGIN                                                         <<01.01>> 03158000
   ERROR(20);  <<EOF ON $STDINX DETECTED>>                    <<01.01>> 03160000
   ERROR(21);  <<CALL TERMINATE INTRINSIC>>                   <<01.01>> 03162000
END;                                                          <<01.01>> 03164000
IF JOB AND NOT DUPLICATIVE THEN PRINT(BUF,-LEN,0);            <<01.01>> 03166000
IF LEN = 0 THEN RETURN;                                       <<01.01>> 03168000
@BBUF := @BUF&LSL(1);                                         <<01.01>> 03170000
BBUF(LEN) := CR;                                              <<01.01>> 03172000
IF BBUF = BLANK THEN                                          <<01.01>> 03174000
   BEGIN  << STRIP LEADING BLANKS >>                          <<01.01>> 03176000
   SCAN BBUF WHILE [8/CR,8/BLANK],1;                          <<01.01>> 03178000
   IF CARRY THEN                                              <<01.01>> 03180000
      BEGIN  << NO NON-BLANK CHARACTERS FOUND >>              <<01.01>> 03182000
      LEN := 0;                                               <<01.01>> 03184000
      RETURN;                                                 <<01.01>> 03186000
      END;                                                    <<01.01>> 03188000
   X := TOS - @BBUF;                                          <<01.01>> 03190000
   LEN := LEN - X;                                            <<01.01>> 03192000
   MOVE BBUF := BBUF(X),(LEN);                                <<01.01>> 03194000
   END;                                                       <<01.01>> 03196000
IF BBUF(LEN-1) = BLANK THEN                                   <<01.01>> 03198000
   BEGIN  << STRIP TRAILING BLANKS >>                         <<01.01>> 03200000
   IF BBUF(LEN-2) = BBUF(LEN-1),(1-LEN),2 THEN ;              <<01.01>> 03202000
   LEN := TOS - @BBUF + 1;                                    <<01.01>> 03204000
   END;                                                       <<01.01>> 03206000
END;                                                          <<01.01>> 03208000
                                                                        03210000
                                                                        03212000
      PROCEDURE GETEVENT;                                               03214000
      BEGIN                                                             03216000
      INTEGER LENGTH;                                                   03218000
                                                                        03220000
      <<GET EVENTS TO BE PRINTED>>                                      03222000
                                                                        03224000
                                                                        03226000
START:                                                                  03228000
      MOVE OUTM:="ENTER EVENTS TO BE PRINTED";                          03230000
      PRINT(OUTP,-26,0);                                                03232000
                                                                        03234000
      PRINT(E1,-27,0);                                                  03236000
      PRINT(E1A,-27,0);                                                 03238000
      PRINT(E1B,-27,0);                                                 03240000
      PRINT(E2,-27,0);                                                  03242000
      PRINT(E3,-27,0);                                                  03244000
      PRINT(E4,-27,0);                                                  03246000
      PRINT(E5,-27,0);                                                  03248000
      PRINT(E6,-27,0);                                                  03250000
      PRINT(E7,-27,0);                                                  03252000
      PRINT(E8,-27,0);                                                  03254000
      PRINT(E9,-27,0);                                                  03256000
      PRINT(E10,-27,0);                                                 03258000
      PRINT(E11,-27,0);                                                 03260000
      PRINT(E12,-27,0);                                        <<TL.02>>03262000
      PRINT(E13,-27,0);                                        <<TL.02>>03264000
      PRINT(E14,-27,0);                                        <<TL.02>>03266000
      PRINT(E15,-27,0);                                        <<00095>>03268000
      PRINT(E16,-26,0);                                        <<03643>>03270000
      PRINT(E17, -27, 0);                                      <<04854>>03272000
      PRINT(E18, -27, 0);                                      <<04854>>03274000
      PRINT(E46,-26,0);                                        <<03643>>03276000
      PRINT(E47,-29,0);                                        <<03643>>03278000
                                                                        03280000
                                                                        03282000
      MOVE OUTM:="ENTER EVENT NUMBERS SEPARATED BY COMMAS?";            03284000
      PRINT(OUTP,-40,0);                                       <<01182>>03286000
                                                                        03288000
     MOVE OUTM:=                                                        03290000
     "A CARRIAGE RETURN ASSUMES ALL EVENTS WILL BE EVALUATED ";         03292000
      PRINT(OUTP,-55,0);                                                03294000
                                                                        03296000
      LENGTH := READ(WEVENTS,-70); <<READ EVENTS>>             <<01.01>>03298000
      IF LENGTH=0 THEN                                                  03300000
         BEGIN                                                          03302000
         TEMP:=0;                                                       03304000
         RETURN;                                                        03306000
         END                                                            03308000
      ELSE TEMP:=-1;                                                    03310000
      MOVE EVENTS(LENGTH) := ",;";  << TERMINATING CHARACTER >><<01167>>03312000
                                                                        03314000
                                                                        03316000
      END;<<GETEVENT>>                                                  03318000
                                                                        03320000
                                                                        03322000
                                                                        03324000
                                                                        03326000
                                                                        03328000
                                                                        03330000
                                                                        03332000
      PROCEDURE OPENLOG(FNUM);                                          03334000
      VALUE FNUM;INTEGER FNUM;                                          03336000
      <<FOPEN THE LOG FILE>>                                            03338000
                                                                        03340000
      BEGIN                                                             03342000
      BYTE ARRAY LOGNUM(0:20);                                          03344000
                                                                        03346000
                                                                        03348000
      MOVE LOGNUM:="LOG0000           ";   <<00.03>>                    03350000
      ASCII(FNUM,-10,LOGNUM(6)); <<00.03>>                              03352000
      MOVE LOGNUM(7):=".PUB.SYS";<<00.03>>                              03354000
      FILENUM := FOPEN(LOGNUM,%2101,%100);                     <<01182>>03356000
                                                                        03358000
      IF <> THEN                                                        03360000
         BEGIN                                                          03362000
         ERROR(9);                                                      03364000
         EFCHECK(FILENUM);                                              03366000
         Q1.(6:2):=1;<<CCL BAD FOPEN>>                                  03368000
         RETURN;                                                        03370000
         END                                                            03372000
         ELSE Q1.(6:2):=2;<<GOOD FOPEN>>                                03374000
                                                                        03376000
                                                                        03378000
                                                                        03380000
      END;<<OPENLOG>>                                                   03382000
                                                                        03384000
                                                                        03386000
      PROCEDURE PRINTLOG;                                               03388000
      BEGIN                                                             03390000
                                                               <<00542>>03392000
                                                               <<00542>>03394000
      << READS THE LOG FILE AND PRINTS THE RESULTS>>           <<00542>>03396000
                                                               <<00542>>03398000
NEXTREC:                                                       <<MS.00>>03400000
                                                               <<00542>>03402000
      IF FIRST THEN                                            <<00542>>03404000
        BEGIN                                                  <<00542>>03406000
          FIRST:=FALSE;                                        <<00542>>03408000
          BLANKBUFX;                                           <<00542>>03410000
          READNEXT;<<READ FIRST RECORD OF THE LOG FILE>>       <<00542>>03412000
          IF <> THEN                                           <<01166>>03414000
            BEGIN                                              <<01166>>03416000
            IF > THEN ERROR(22);  << LOG FILE EMPTY >>         <<01166>>03418000
            GO NEXTLOG;                                        <<01166>>03420000
            END;                                               <<01166>>03422000
           NEED'NEW'PAGE :=TRUE;                               <<04218>>03424000
        END                                                    <<00542>>03426000
      ELSE                                                     <<00542>>03428000
        BEGIN                                                  <<00542>>03430000
          BLANKBUFX;<<ZERO BUFFER>>                            <<00542>>03432000
          READNEXT;<<READ NEXT RECORD OF THE LOG FILE>>        <<00542>>03434000
          IF <> THEN GO NEXTLOG;<<END OF LOG FILE>>            <<00542>>03436000
                                                               <<03643>>03438000
  << CHECK RPP, RECORDS PER PAGE COUNT  >>                     <<03643>>03440000
          IF RPP>=19 OR WBUFIN(2) <> LOGICAL(CYD)              <<01167>>03442000
             THEN NEED'NEW'PAGE := TRUE;                       <<04218>>03444000
        END;                                                   <<00542>>03446000
      RECTYPE:=WBUFIN(0);                                      <<00542>>03448000
      RIGHTRECTYPE(RECTYPE);<<PRINT EVENT???>>                 <<00542>>03450000
      IF <> THEN GO NEXTREC;                                   <<00542>>03452000
                                                               <<00542>>03454000
      FIRSTIME := TRUE;                                        <<01182>>03456000
      IF NEED'NEW'PAGE THEN                                    <<04218>>03458000
         BEGIN                                                 <<04218>>03460000
         PAGETITLE;                                            <<04218>>03462000
         NEED'NEW'PAGE := FALSE;                               <<04218>>03464000
         END;                                                  <<04218>>03466000
      EVENT'PRINTED := TRUE;                                   <<04218>>03468000
AGAIN:CLEARBUF;<<BLANK BUFFER>>                                         03470000
      RECTYPEP(RECTYPE);<<PRINT TITLE>>                                 03472000
                                                                        03474000
                                                                        03476000
      CLEARBUF;<<CLEAR BUFFER>>                                         03478000
      IF FIRSTIME THEN COMINFO;<<MOVE  INFO OF THE LOG                  03480000
                   RECORD>>                                             03482000
                                                                        03484000
                                                                        03486000
                                                                        03488000
       INFOP(RECTYPE);<<PRINT LOG RECORD INFO>>                         03490000
                                                                        03492000
      IF RECTYPE=9 OR RECTYPE=11 OR RECTYPE=8 OR               <<04206>>03494000
         RECTYPE = 46 OR RECTYPE= 47 THEN                      <<03643>>03496000
        BEGIN                                                           03498000
      IF FIRSTIME THEN                                                  03500000
         BEGIN                                                          03502000
         FIRSTIME:=FALSE;<<RESET FLAG>>                                 03504000
         GO AGAIN;                                                      03506000
         END;                                                           03508000
      END;                                                              03510000
                                                                        03512000
      SEPAR;<<PRINT SEPARATER>>                                         03514000
                                                                        03516000
  << ADJUST THE RECORDS PER PAGE COUNT TO TAKE INTO   >>       <<03643>>03518000
  << ACCOUNT THAT SOME RECORD TYPES PRINT MORE THAN   >>       <<03643>>03520000
  << ONE LINE PER RECORD.                             >>       <<03643>>03522000
      IF RECTYPE = 8 OR RECTYPE = 9 OR                         <<04206>>03524000
         RECTYPE = 11 OR RECTYPE = 47  THEN                    <<04206>>03526000
        RPP := RPP + 3                                         <<01182>>03528000
      ELSE IF RECTYPE=13 THEN                                  <<01182>>03530000
        RPP := RPP + 4                                         <<01182>>03532000
      ELSE IF RECTYPE = 46 THEN                                <<03643>>03534000
         RPP := RPP + RPPCOUNT(LOGGEDATA'COUNT)                <<03643>>03536000
      ELSE                                                     <<03643>>03538000
        RPP := RPP + 1;                                        <<01182>>03540000
                                                                        03542000
      GO NEXTREC;              <<LOOK AT NEXT LOG RECORD    >> <<04218>>03544000
NEXTLOG:                                                                03548000
                                                                        03550000
       IF NOT EVENT'PRINTED THEN                               <<04218>>03552000
           ERROR(25); << NOT DESIRED EVENTS FOUND IN LOGFILE>> <<04218>>03554000
       EVENT'PRINTED := FALSE;                                 <<04218>>03556000
                                                                        03560000
                                                                        03562000
                                                                        03564000
                                                                        03566000
                                                                        03568000
                                                                        03570000
      END;<<PRINRLOG>>                                                  03572000
                                                                        03574000
                                                                        03576000
                                                                        03578000
                                                                        03580000
                                                                        03582000
                                                                        03584000
                                                                        03586000
      PROCEDURE PURGEFILE;                                              03588000
      BEGIN                                                             03590000
      FCLOSE(FILENUM,(IF PURGEFLAG THEN 4 ELSE 0),0);          <<SP.01>>03592000
<< 4 DELETES FILE FROM SYS/ 0 CLOSES FILE W/ NO CHANGE  >>     <<03643>>03594000
         IF <> THEN                                                     03596000
           BEGIN                                                        03598000
           ERROR(12);<<FCLOSE ERROR>>                                   03600000
           EFCHECK(FILENUM);                                            03602000
           RETURN;                                                      03604000
           END;                                                         03606000
      END;<<PURGEFILE>>                                                 03608000
                                                                        03610000
                                                                        03612000
                                                                        03614000
                                                                        03616000
                                                                        03618000
      PROCEDURE READNEXT;                                               03620000
      BEGIN                                                             03622000
      << READS THE NEXT RECORD OF THE LOG FILE>>                        03624000
                                                                        03626000
      FC := FREAD(FILENUM,WBUFIN,BUFSIZE);                     <<01182>>03628000
      IF <> THEN                                                        03630000
         BEGIN                                                          03632000
         IF > THEN                                                      03634000
           BEGIN                                                        03636000
           Q1.(6:2):=0;<<SET CCG-END OF LOG FILE>>             <<MS.00>>03638000
           RETURN;                                                      03640000
           END;                                                         03642000
         ERROR(11);                                                     03644000
         EFCHECK(FILENUM);                                              03646000
         Q1.(6:2):=1;<<SET CCL>>                               <<MS.00>>03648000
         RETURN;                                                        03650000
         END;                                                           03652000
                                                                        03654000
      IF FC =0 THEN                                                     03656000
      Q1.(6:2):=0<<SET CCG  END OF LOG FILE>>                  <<MS.00>>03658000
      ELSE Q1.(6:2):=2;<<CCE  GOOD READ>>                               03660000
                                                                        03662000
                                                               <<MS.00>>03664000
      END;<<READNEXT>>                                                  03666000
                                                                        03668000
                                                                        03670000
                                                                        03672000
                                                                        03674000
      PROCEDURE RIGHTRECTYPE(TYPE);                                     03676000
      VALUE TYPE;LOGICAL TYPE;                                          03678000
      BEGIN                                                             03680000
      LOGICAL CTN;                                                      03682000
                                                                        03684000
      CTN:=1;                                                           03686000
                                                                        03688000
<< COMPARES THE REC TYPE READ IN FROM THE LOG RECORD    >>     <<03643>>03690000
<< WITH THE RECORD TYPES SPECIFIED IN THE EVENTABLE.    >>     <<03643>>03692000
                                                                        03694000
      WHILE CTN <= EVENTTABLE                                           03696000
        DO                                                              03698000
        BEGIN                                                           03700000
        IF EVENTTABLE(CTN)=TYPE THEN                                    03702000
           BEGIN                                                        03704000
           Q1.(6:2):=2;<<SET CCE--RIGHT ENTRY>>                         03706000
           RETURN;                                                      03708000
           END;                                                         03710000
                                                                        03712000
        CTN:=CTN+1;<<IN TABLE INDEX>>                                   03714000
        END;                                                            03716000
                                                                        03718000
      Q1.(6:2):=1;<<SET CCL-COULD NOT FIND ENTRY IN TABLE>>             03720000
                                                                        03722000
                                                                        03724000
      END;<<RIGHTRECTYPE>>                                              03726000
                                                                        03728000
                                                                        03730000
                                                                        03732000
                                                                        03734000
                                                                        03736000
                                                                        03738000
                                                                        03740000
                                                                        03742000
                                                                        03744000
                                                                        03746000
                                                                        03748000
                                                                        03750000
                                                                        03752000
                                                                        03754000
                                                                        03756000
<<MAIN>>                                                                03758000
                                                                        03760000
START:                                                                  03762000
       CYD := 0;                                               <<MS.00>>03764000
      FIRST:=TRUE;                                                      03766000
      MOVE OUTM:=PTITLE,2;                                     <<01.01>>03768000
      MOVE OUTM( VUUFF'COL ) := OFFICIAL'VUUFF;                <<04225>>03770000
      PRINT(OUTP,-(S0 := S0-@OUTM),0);                         <<01.01>>03772000
      MODE:=0;                                                <<01.01>> 03774000
      WHO(MODE,CAPD);                                          <<01167>>03776000
      IF MODE=0 THEN                                          <<01.01>> 03778000
      BEGIN                                                   <<01.01>> 03780000
         ERROR(7);                                            <<01.01>> 03782000
         ERROR(0);                                            <<01.01>> 03784000
      END;                                                    <<01.01>> 03786000
      IF NOT SYSMGR THEN                                       <<01167>>03788000
        BEGIN                                                  <<01167>>03790000
        ERROR(23);                                             <<01167>>03792000
        ERROR(0);                                              <<01167>>03794000
        END;                                                   <<01167>>03796000
      XCONTRAP (@CY,TEMP);  <<TURN ON CONTROL Y>>       <<00.04>>       03798000
      IF < THEN                                          <<00.06>>      03800000
         IF MODE.(12:2)=1 THEN QUIT(1);  <<ABORT IF SESSION>>  <<01.01>>03802000
                                                                        03804000
         FOUT := FOPEN(LLIST,%0404,1,-132,LP);                 <<01182>>03806000
         IF <> THEN                                                     03808000
            BEGIN                                                       03810000
            ERROR(10);                                                  03812000
            EFCHECK(FOUT);                                              03814000
            ERROR(0);                                                   03816000
            END;                                                        03818000
                                                                        03820000
                                                                        03822000
                                                                        03824000
                                                                        03826000
      GETRANGE;<<LOGFILES TO BE EVALUATED>>                             03828000
EVEN: GETEVENT;<<EVENTS TO BE PRINTED>>                                 03830000
      CONDENSEEVENT;  << INITIALIZE EVENTTABLE >>              <<01544>>03832000
      IF <> THEN GO EVEN;                                      <<01544>>03834000
                                                               <<01544>>03836000
PURGE:MOVE OUTM:="DO YOU WANT TO PURGE LOG FILES (Y/N)?";      <<01167>>03838000
      PRINT(OUTP,-37,%320);                                    <<01167>>03840000
      CNT := READ(WINPUT,-5);                                  <<01.01>>03842000
      IF CNT=0 THEN GO PURGE;                                           03844000
      IF INPUT = "Y" OR INPUT = "y"                            <<01544>>03846000
         THEN PURGEFLAG := TRUE                                <<01544>>03848000
      ELSE IF INPUT = "N" OR INPUT = "n"                       <<01544>>03850000
         THEN PURGEFLAG := FALSE                               <<01544>>03852000
      ELSE GO PURGE;                                           <<01544>>03854000
                                                                        03856000
                                                                        03858000
                                                                        03860000
      PRESENTLOGFILE:=FIRST'LOG'NUM;                           <<MS.00>>03862000
                                                               <<01544>>03864000
                                                               <<01544>>03866000
                                                                        03868000
      WHILE PRESENTLOGFILE <= LAST                                      03870000
         DO                                                             03872000
         BEGIN                                                          03874000
         OPENLOG(PRESENTLOGFILE);                                       03876000
         IF >= THEN                                            <<04218>>03878000
            BEGIN                                              <<04218>>03880000
            PRINTLOG;          <<PRINT CURRENT LOG FILE>>      <<04218>>03882000
            PURGEFILE;         <<FCLOSE/PURGE LOG FILE >>      <<04218>>03884000
            END;                                               <<04218>>03886000
                                                               <<04218>>03888000
         PRESENTLOGFILE := PRESENTLOGFILE + 1;  <<NEXT LOG FILE<<04218>>03890000
         FIRST := TRUE;        <<RESET FIRST TIME THRU LOG FILE<<04218>>03892000
         END;                  <<END TO WHILE LOOP             <<04218>>03894000
                                                                        03898000
                                                                        03900000
AGAIN:                                                                  03902000
                                                                        03904000
      MOVE OUTM:="DO YOU WISH TO RUN AGAIN(Y OR N)?";                   03906000
      PRINT(OUTP,-33,%320);                                             03908000
      CNT := READ(WINPUT,-5);                                  <<01.01>>03910000
      IF CNT=0 THEN GO AGAIN;                                           03912000
      IF INPUT = "Y" OR INPUT = "y" THEN                       <<01544>>03914000
         BEGIN                                                          03916000
         FCLOSE(FOUT,1,0);<<CLOSE LINE PRINTER FILE>>                   03918000
         IF  <> THEN                                                    03920000
            BEGIN                                                       03922000
            ERROR(15);                                                  03924000
            EFCHECK(FOUT);                                              03926000
            END;                                                        03928000
         PUSH(Q);SET(S);<<RESET STACK>>                                 03930000
         GO START;                                                      03932000
         END                                                            03934000
         ELSE                                                           03936000
         IF INPUT <> "N" AND INPUT <> "n"                      <<01544>>03938000
            THEN GO AGAIN;                                     <<01544>>03940000
                                                                        03942000
                                                                        03944000
                                                                        03946000
                                                                        03948000
                                                                        03950000
                                                                        03952000
                                                                        03954000
      FCLOSE(FOUT,1,0);                                                 03956000
      IF <> THEN                                               <<01182>>03958000
        BEGIN                                                  <<01182>>03960000
        ERROR(15);                                             <<01182>>03962000
        EFCHECK(FOUT);                                         <<01182>>03964000
        END;                                                   <<01182>>03966000
                                                                        03968000
                                                                        03970000
END.                                                                    03972000
