<< LINES .001/.009 ARE RESERVED FOR SYSTEMS INTEGRATION>>               00005000
$CONTROL MAP,CODE,USLINIT                                               00010000
<<LISTLG2>>                                                             00015000
<< HP32002C MPE SOURCE C.00.00 >>                                       00020000
$COPYRIGHT     "(C) COPYRIGHT HEWLETT-PACKARD CO. 1980. ",            & 00025000
$     "THIS PROGRAM MAY BE USED WITH ONE COMPUTER SYSTEM AT A ",      & 00030000
$     "TIME AND SHALL NOT OTHERWISE BE RECORDED, TRANSMITTED OR ",    & 00035000
$     "STORED IN A RETRIEVAL SYSTEM.  COPYING OR OTHER REPRODUCTION ",& 00040000
$     "OF THIS PROGRAM EXCEPT FOR ARCHIVAL PURPOSES IS PROHIBITED ",  & 00045000
$     "WITHOUT THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY."   00050000
$CONTROL MAIN=LISTLOG                                                   00055000
* * * *  L O G   F I L E   L I S T I N G   P R O G R A M  * * *         00060000
BEGIN                                                                   00065000
$PAGE   "  ****   FIX  INFORMATION   **** "                    <<04206>>00070000
<<**********************************************************>> <<04206>>00075000
<<                                                          >> <<04206>>00080000
<<               FIX    INFORMATION                         >> <<04206>>00085000
<<                                                          >> <<04206>>00090000
<<  For each fix submitted, please                          >> <<04206>>00095000
<<  describe the fix and date below.                        >> <<04206>>00100000
<<**********************************************************>> <<04206>>00105000
                                                               <<04206>>00110000
<<**********************************************************>> <<04206>>00115000
<< Modified Log record type 8 to print SUBTYPE and Logical  >> <<04206>>00120000
<< Pages/Physcial page and number of Physcical Pages.       >> <<04206>>00125000
<< February 10,1982                                         >> <<04206>>00130000
<<**********************************************************>> <<04206>>00135000
                                                               <<04206>>00140000
$PAGE                                                          <<04206>>00145000
$INCLUDE INCLVUF                                               <<04225>>00150000
      BYTE ARRAY VERSION(0:6) := OFFICIAL'VUUFF;               <<04225>>00155000
   DEFINE                                                      <<01.01>>00160000
  PTITLE = ("LISTLOG5         (C) HEWLETT PACKARD CO., 1982")#;<<07370>>00165000
      INTEGER MPELABEL;  << plabel of procedure "MPE" >>       <<07441>>00170000
<<                                                             <<sp.01>>00175000
<< no'log'types is the number of different log types           <<sp.01>>00180000
<<      (counting from zero)                                   <<sp.01>>00185000
      EQUATE VUUFF'COL = 9;  << INDEX INTO PTITLE >>           <<04225>>00190000
EQUATE NO'LOG'TYPES = 21;                                      <<04854>>00195000
       BYTE ARRAY INPUT(0:73);                                <<01.01>> 00200000
      ARRAY WINPUT (*) = INPUT;                                <<01.01>>00205000
      ARRAY OUTP(0:71);                                                 00210000
      BYTE POINTER OUTM:=@OUTP;                                         00215000
      BYTE ARRAY PT(0:20):=" TIME     TYPE  JOB#";                      00220000
      BYTE ARRAY LLIST(0:8 ):="LOGLIST ";                               00225000
      BYTE ARRAY LP(0:2):="LP ";                                        00230000
      EQUATE BUFSIZE = 102;  << SIZE OF LOG REC. BUFFER >>     <<01182>>00235000
      EQUATE EOT = 23;     <<END OF TAPE FILE ERROR>>          <<04226>>00240000
      ARRAY WBUFIN(0:BUFSIZE-1);                               <<01182>>00245000
      INTEGER ARRAY ibufin(*)=wbufin;                          <<SP.01>>00250000
      BYTE ARRAY  BUFIN(*)=WBUFIN;                                      00255000
      BYTE ARRAY BUFOUT(0:131);                                <<01182>>00260000
      ARRAY WBUFOUT(*)=BUFOUT;                                          00265000
      ARRAY WB(*)=WBUFOUT;                                              00270000
       LOGICAL FIRST'LOG'NUM;                                  <<MS.00>>00275000
      LOGICAL FIRST,LAST,COUNT,CNT,FILENUM,PRESENTLOGFILE,FIRSTIME,TEMP;00280000
      LOGICAL MODE,PURGEFLAG:=FALSE;                     <<00.06>>      00285000
      LOGICAL VALID'TYPES;                                     <<03643>>00290000
      DEFINE GOOD'TYPE =                                       <<03643>>00295000
          IF(TEMP >= 19 LAND TEMP <= 45) OR                    <<07236>>00300000
          TEMP >= 48 THEN FALSE ELSE TRUE#;                    <<03643>>00305000
      LOGICAL NEED'NEW'PAGE := FALSE;                          <<04218>>00310000
      LOGICAL EVENT'PRINTED := FALSE;                          <<04218>>00315000
      LOGICAL RECOVERABLERROR := FALSE;                        <<04226>>00320000
       DEFINE DUPLICATIVE=MODE.(14:1)#,                       <<01.01>> 00325000
              JOB        =MODE.(12:1)#;                       <<01.01>> 00330000
      INTEGER FOUT,FIN, NC ,RPP,RECTYPE,FC;                             00335000
      INTEGER                                                  <<03643>>00340000
         LOGGEDATA'COUNT, <<TOTAL LINES LOGGED DATA OUTPUT>>   <<03643>>00345000
         TOTAL'LOGGED,  <<TOTAL # BYTES LOGGED DATA >>         <<03643>>00350000
         BYTE'COUNTER,  <<COMPARE TO TOTAL'LOGGED   >>         <<03643>>00355000
         BYTE'INDEX,    <<INDEX FOR WBUFIN ARRAY    >>         <<03643>>00360000
         OUT'INDEX,     <<WHERE TO PLACE IN OUTPUT ARRAY >>    <<03643>>00365000
         PRINT'COUNTER, <<# OF OCTAL BYTES PRINTED  >>         <<03643>>00370000
         WORDS'LOGGED;                                         <<03643>>00375000
      BYTE ARRAY DAYS(0:21):="SUNMONTUEWEDTHUFRISAT";                   00380000
       INTEGER  I, LINEINDEX;                                  <<01352>>00385000
      INTEGER X=X;                                                      00390000
      INTEGER CYD;                                                      00395000
      INTEGER Y,D;                                                      00400000
      INTEGER Q2=Q-2;                                                   00405000
      INTEGER Q1=Q-1;                                                   00410000
      INTEGER S0=S-0;                                                   00415000
      INTEGER ARRAY RPPCOUNT(0:14) :=                          <<03643>>00420000
           3,3,4,4,4,4,6,6,6,6,9,9,9,9,9;                      <<03643>>00425000
  << RPPCOUNT IS FOR DETERMINING HOW MUCH TO ADD TO THE RPP >> <<03643>>00430000
  << RECORDS PER PAGE COUNT IN ORDER TO HAVE ONLY COMPLETE  >> <<03643>>00435000
  << RECORDS ON A PAGE.  THIS ARRAY IS USED BECAUSE LOG TYPE>> <<03643>>00440000
  << 46 CAN HAVE A VARYING NUMBER OF LINES TO PRINT OUT.    >> <<03643>>00445000
      INTEGER ARRAY DAYSPERMONTH(0:11):=                                00450000
         0,31,60,91,121,152,182,213,244,274,305,335;                    00455000
      INTEGER ARRAY EVENT'LIST(0:NO'LOG'TYPES-1) :=            <<03643>>00460000
         0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,46,47; <<04854>>00465000
      BYTE ARRAY MONTHS(0:35):="JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC";  00470000
    DOUBLE ARRAY RTT(0:47) :=                                           00475000
                     "ERR "," UP ","JOB "," OFF","PROC","FILE","DOWN",  00480000
                     "POWF","SPOO","DIS ","CLSE","I/O ",       <<TL.02>>00485000
                     "VMOU","VSMO","TAPL","CONL","PRGM",       <<03643>>00490000
                     "CALL"," DCE","    ","    ","    ",       <<04854>>00495000
                     "    ","    ","    ","    ","    ",       <<03643>>00500000
                     "    ","    ","    ","    ","    ",       <<03643>>00505000
                     "    ","    ","    ","    ","    ",       <<03643>>00510000
                     "    ","    ","    ","    ","    ",       <<03643>>00515000
                     "    ","    ","    ","  45","MRL ",       <<03643>>00520000
                     "DCU ";                                   <<03643>>00525000
      ARRAY WRTT(*)=RTT;                                                00530000
      DOUBLE ARRAY DBUFIN(*)=BUFIN;                                     00535000
      DOUBLE POINTER DBF1:=@WBUFIN(7);                                  00540000
      DOUBLE POINTER DBF2:=@WBUFIN(9);                                  00545000
      DOUBLE POINTER DBF3:=@WBUFIN(11);                                 00550000
      BYTE ARRAY T0(0:33):=                                             00555000
         "MISSING :TOT REC  *  JI  *  JT  *";                           00560000
                                                                        00565000
      BYTE ARRAY T1(0:50):=                                             00570000
         "UPD# * FIX# * CORE * CST * DST * PCB * IOQ * TRL *";          00575000
      BYTE ARRAY T1'(0:27):=                                            00580000
      " ICS * JOBS: MAX RUNNING *";                            <<01182>>00585000
                                                                        00590000
      BYTE ARRAY T2(0:50):=                                             00595000
         "  USER   *  ACCOUNT *   JOB    *  LOGON G * LDEV ";  <<01182>>00600000
      BYTE ARRAY T2'(0:60):=                                   <<01.01>>00605000
         "IN  OUT  * RESERVED * CPU LIMIT * INP * OUTP *",     <<01182>>00610000
         " LOGON Q *";                                         <<00836>>00615000
                                                               <<01.01>>00620000
                                                                        00625000
      BYTE ARRAY T3(0:45):=                                             00630000
         "MAX PRI * CREAT * CPU TIME(S) * ELAPSED (M) *";               00635000
                                                                        00640000
      BYTE ARRAY T4(0:70):=                                    <<07190>>00645000
         "PROG SEG * SL SEG * MAX STACK * MAX DS * VIRT ST *", <<07190>>00650000
         " PIN #  * CPU TIME *";                               <<07190>>00655000
                                                                        00660000
      BYTE ARRAY T5(0:50):=                                             00665000
         "        FILE NAME          * DISP * DOM *  SECTORS";          00670000
      BYTE ARRAY T5'(0:39):=                                            00675000
         "   * DEV T/# *  RECORDS  *   BLOCKS   *";                     00680000
                                                                        00685000
      BYTE ARRAY T6(0:27):=                                             00690000
         "JOBS  * SESSION *";                                  <<01182>>00695000
                                                                        00700000
      BYTE ARRAY T7(0:19):="AUTO RESTART FLAG ";                        00705000
                                                                        00710000
      BYTE ARRAY T8(0:51):=                                    <<04206>>00715000
        "  USER  *  ACCT  *  JOBN  *  FILE  *  J/S  *I/O*DEVI";<<04206>>00720000
      BYTE ARRAY T8'(0:17):=                                   <<04206>>00725000
         "D*DEV*SP#*COP*PRI*";                                 <<04206>>00730000
                                                               <<04206>>00735000
      BYTE ARRAY T8A(0:51):=                                   <<04206>>00740000
" RECORDS *  SECTORS *FUNC*  PAGES   *LP/PP*SUBTYPE*";         <<04206>>00745000
                                                                        00750000
      BYTE ARRAY TIT(0:45):=                                            00755000
         "DATE:    ,    ,   ,19       LOGFILE:         ";               00760000
                                                                        00765000
      BYTE ARRAY T9(0:69):=                                             00770000
"LDEV-*-DURATION/-*-# OF OUTPUT/-*-# OF INPUT/-*-#OF REC/-*-#OF UNREC/";00775000
      BYTE ARRAY T9'(0:68):=                                            00780000
"      OF CONNECT    TRANSFERS      TRANSFERS     ERRORS",     <<01182>>00785000
"      ERRORS  ";                                              <<01182>>00790000
      BYTE ARRAY T9A(0:62):=                                            00795000
"PHONE NUMBER OF/   -*-LOCAL ID/         -*-REMOTE ID/        ";        00800000
      BYTE ARRAY T9A'(0:62):=                                           00805000
"    REMOTE            SEQUENCE             SEQUENCE";         <<01182>>00810000
      BYTE ARRAY T10(0:30):=                                            00815000
      "LDEV-*-TIME OF OPEN-*-DVR NAME ";                       <<01182>>00820000
BYTE ARRAY T11(0:61):=                                         <<01352>>00825000
"DRT UNIT LDEV         TYPE SUBTYPE FUNCT XFER COUNT ",        <<01352>>00830000
"IOQ(QMISC)";                                                  <<01352>>00835000
BYTE ARRAY T11B(0:71):=                                        <<06986>>00840000
"IOQ(QFLAG)  DST#    ADDRESS  PCB#    STAT     ",              <<06986>>00845000
"PARM1    PARM2      ";                                        <<06986>>00850000
      BYTE ARRAY t12(0:50):=                                   <<sp.01>>00855000
"RECOGNITION  DETECTION  VOLUME      VTAB  LOGICAL  ";         <<sp.01>>00860000
      BYTE ARRAY t12'(0:34):=                                  <<sp.01>>00865000
"---------VOLUME INFORMATION--------";                         <<sp.01>>00870000
      BYTE ARRAY t12''(0:50):=                                 <<sp.01>>00875000
"   TYPE        TYPE      TYPE      INDEX  DEVICE   ";         <<sp.01>>00880000
      BYTE ARRAY t12'''(0:34):=                                <<sp.01>>00885000
"--NAME-- -ACCOUNT --GROUP- -SETNAME";                         <<sp.01>>00890000
      BYTE ARRAY t13(0:59):=                                   <<sp.01>>00895000
"             TYPE      PIN  USERS  -----------USER----------";<<sp.01>>00900000
      BYTE ARRAY t13'(0:27):=                                  <<sp.01>>00905000
"-  -------VOLUME SET--------";                                <<sp.01>>00910000
      BYTE ARRAY t13'''(0:53):=                                <<sp.01>>00915000
"--USER-- --GROUP- -ACCOUNT  --NAME-- --GROUP- -ACCOUNT";      <<sp.01>>00920000
                                                                        00925000
      BYTE ARRAY T14A(0:43) :=                                 <<01182>>00930000
      "LDEV# FILE# FILE SEQ# SEQ TY TYPE PIN# VOL# ";          <<01182>>00935000
                                                               <<01182>>00940000
      BYTE ARRAY T14A'(0:50) :=                                <<01182>>00945000
"EXP DATE FILENAME          LOCKWORD VOLSET ID VOL ID";        <<01182>>00950000
                                                               <<01182>>00955000
      BYTE ARRAY T16(0:58):=                                   <<01763>>00960000
"        EVENT TYPE         *         PROGRAM FILE         *"; <<01763>>00965000
      BYTE ARRAY T16'(0:29):=                                  <<01763>>00970000
"    STATUS    *    DELTAP    *";                              <<01763>>00975000
      BYTE ARRAY T17(0:11) := "LDEV * MSG #";                  <<04854>>00980000
      BYTE ARRAY T18(0:22) := "LDEV * MSG #   *   INFO";       <<04854>>00985000
     BYTE ARRAY T46(0:56) :=                                   <<03643>>00990000
"LDEV  TYPE/    MAINT.    PARM   RECORD  # BYTES   # BYTES";   <<03643>>00995000
     BYTE ARRAY T46'(0:50) :=                                  <<03643>>01000000
"SUBTYPE  REQ. TYPE        SEQ. #  TO LOG    IN REC.";         <<03643>>01005000
     BYTE ARRAY T46''(0:10) :=  "LOGGED DATA";                 <<03643>>01010000
     BYTE ARRAY T47(0:25) :=                                   <<03643>>01015000
"RECORD   # BYTES   # BYTES";                                  <<03643>>01020000
     BYTE ARRAY T47'(0:25) :=                                  <<03643>>01025000
"NUMBER   TO LOG    IN REC.";                                  <<03643>>01030000
      ARRAY E1(0:13):="TYPE NO.    EVENT          ";           <<01.01>>01035000
      ARRAY E1A(0:13):="   0  LOG FAILURE          ";          <<01.01>>01040000
      ARRAY E1B(0:13):="   1  SYSTEM UP            ";          <<01.01>>01045000
      ARRAY E2(0:13):="   2  JOB INITIATION       ";           <<01.01>>01050000
      ARRAY E3(0:13):="   3  JOB TERMINATION      ";           <<01.01>>01055000
      ARRAY E4(0:13):="   4  PROCESS TERMINATION  ";           <<01.01>>01060000
      ARRAY E5(0:13):="   5  FILE CLOSE           ";           <<01.01>>01065000
      ARRAY E6(0:13):="   6  SYSTEM SHUTDOWN      ";           <<01.01>>01070000
      ARRAY E7(0:13):="   7  POWER FAILURE        ";           <<01.01>>01075000
      ARRAY E8(0:13):="   8  SPOOLING LOG RECORD  ";           <<01.01>>01080000
      ARRAY E9(0:13):="   9  LINE DISCONNECTION   ";           <<01.01>>01085000
      ARRAY E10(0:13):="  10  LINE CLOSE           ";          <<01.01>>01090000
      ARRAY E11(0:13):="  11  I/O ERRORS           ";          <<01.01>>01095000
      ARRAY E12(0:13):="  12  VOLUME MOUNT/DISMOUNT";          <<sp.01>>01100000
      ARRAY E13(0:13):="  13  VOLUME SET MOUNT/DIS.";          <<sp.01>>01105000
      ARRAY E14(0:13):="  14  TAPE LABELS          ";          <<sp.01>>01110000
      ARRAY e15(0:13):="  15  CONSOLE LOG          ";          <<sp.01>>01115000
      ARRAY E16(0:13) := "  16  PROGRAM FILE EVENT  ";         <<03643>>01120000
      ARRAY E17(0:13):="  17  CALL PROGRESS SIGNALS";          <<04854>>01125000
      ARRAY E18(0:13):="  18  DCE PROVIDED INFO    ";          <<04854>>01130000
      ARRAY E46(0:13) := "  46  MAINTENANCE LOGGING ";         <<03643>>01135000
      ARRAY E47(0:14) := "  47  DIAGNOSTIC CONTROL UNIT";      <<03643>>01140000
       BYTE ARRAY EVENTS(0:73);                               <<01.01>> 01145000
      ARRAY WEVENTS (*) = EVENTS;                              <<01.01>>01150000
      ARRAY EVENTTABLE(0:NO'LOG'TYPES+1);                      <<01167>>01155000
                                                               <<01167>>01160000
      DOUBLE CAPD;  << CAPABILITIES FROM WHO INTRINSIC >>      <<01167>>01165000
      LOGICAL CAP=CAPD;                                        <<01167>>01170000
      DEFINE SYSMGR = CAP.(0:1)#;                              <<01167>>01175000
                                                               <<01167>>01180000
INTRINSIC FOPEN,FREAD,FWRITE,QUIT,ASCII,DASCII,TERMINATE;               01185000
INTRINSIC FGETINFO,FCHECK,WHO;                        <<00.06>>         01190000
INTRINSIC FCLOSE,PRINT,LOADPROC;                               <<07441>>01195000
INTRINSIC BINARY,XCONTRAP,RESETCONTROL;                        <<01.01>>01200000
                                                                        01205000
                                                                        01210000
<<EXTERNAL PROCEDURES>>                                       <<01.01>> 01215000
INTEGER PROCEDURE READX(BFR,LEN);                             <<01.01>> 01220000
VALUE LEN;ARRAY BFR;INTEGER LEN;                              <<01.01>> 01225000
OPTION EXTERNAL;                                              <<01.01>> 01230000
                                                                        01235000
<<PROCEDURE FORWARD DECLARATIONS>>                                      01240000
                                                                        01245000
INTEGER PROCEDURE READ(BUF,XPL);                              <<01.01>> 01250000
VALUE XPL;ARRAY BUF;INTEGER XPL;                              <<01.01>> 01255000
OPTION FORWARD;                                               <<01.01>> 01260000
      PROCEDURE ERROR(J);                                               01265000
      VALUE J;INTEGER J;                                                01270000
      OPTION FORWARD;                                                   01275000
      PROCEDURE READNEXT;OPTION FORWARD;                                01280000
      PROCEDURE PRINTLOG;OPTION FORWARD;                                01285000
      PROCEDURE RIGHTRECTYPE(TYPE);                                     01290000
      VALUE TYPE;LOGICAL TYPE;                                          01295000
      OPTION FORWARD;                                                   01300000
      PROCEDURE CONDENSEEVENT;OPTION FORWARD;                           01305000
      LOGICAL PROCEDURE EFCHECK(FILENUM);                               01310000
      VALUE FILENUM;INTEGER FILENUM;                                    01315000
      OPTION FORWARD;                                                   01320000
PROCEDURE CLEARBUF;                                                     01325000
COMMENT :FILL THE OUTPUT BUFFER WITH BLANKS;                            01330000
BEGIN                                                                   01335000
      WB:= "  ";                                                        01340000
      MOVE WB(1) := WB,(65);                                   <<01182>>01345000
      NC:=0;                                                            01350000
END;  <<C L E A R B U F >>                                              01355000
  PROCEDURE CY;                                <<00.04>>                01360000
      BEGIN                                    <<00.04>>                01365000
      LOGICAL N=Q+1;                           <<00.04>>                01370000
      MOVE OUTM:="< CONTROL Y >";              <<00.04>>                01375000
      PRINT(OUTP,-13,0);                       <<00.04>>                01380000
      TERMINATE;                               <<00.04>>                01385000
      RESETCONTROL;                            <<00.04>>                01390000
      TOS:=%31400 LOR(N LAND%377);             <<00.04>>                01395000
      ASSEMBLE(XEQ 0);                         <<00.04>>                01400000
  END;                                         <<00.04>>                01405000
                                                                        01410000
                                                                        01415000
                                                                        01420000
                                                                        01425000
PROCEDURE DATE;                                                         01430000
BEGIN                                                                   01435000
      Y:=WBUFIN(2).(0:7);  D:=WBUFIN(X).(7:9);                          01440000
      IF Y=0 OR D=0 THEN RETURN;<<BAD DATE>>       <<00.02>>            01445000
      TOS:=@BUFOUT(56);                                                 01450000
      X:=((Y-1)&ASR(2)+D+Y) MOD 7*3;                                    01455000
      MOVE     *     :=DAYS(X),(3);                                     01460000
      IF Y.(14:2)<>0 AND D>=60 THEN D:=D+1;                             01465000
      TOS:=@BUFOUT(61);                                                 01470000
      X:=12; DO X:=X-1 UNTIL DAYSPERMONTH(X)<D;                         01475000
      D:=D-DAYSPERMONTH(X); MOVE * :=MONTHS(X*3),(3);                   01480000
      ASCII(D,-10,BUFOUT(67)); ASCII(Y,10,BUFOUT(71));         <<01182>>01485000
END;  << D A T E >>                                                     01490000
                                                                        01495000
                                                                        01500000
                                                                        01505000
PROCEDURE SEND(NC);VALUE NC;INTEGER NC;                                 01510000
BEGIN                                                                   01515000
<< THIS PROCEDURE WRITES OUT THE INFORMATION OR TITLES TO>>    <<03643>>01520000
<< THE OUTPUT DEVICE.  NC IS THE NUMBER OF CHARACTERS.   >>    <<03643>>01525000
      FWRITE(FOUT,WBUFOUT,-NC,0);                                       01530000
      IF <> THEN                                                        01535000
         BEGIN                                                          01540000
         ERROR(17);                                                     01545000
         EFCHECK(FOUT);<<PRINT ERROR #>>                                01550000
         IF NOT RECOVERABLERROR THEN                           <<04226>>01555000
            ERROR(0)          << VALID FWRITE ERROR, QUIT >>   <<04226>>01560000
         ELSE                                                  <<04226>>01565000
            BEGIN            <<EOT FWRITE ERROR >>             <<04226>>01570000
            FCLOSE(FOUT,1,0);  <<CLOSE OUTPUT FILE>>           <<04226>>01575000
            FOUT := FOPEN(LLIST,%0406,1,132,LP); <<NEW OUTPUT>><<04226>>01580000
            IF <> THEN                                         <<04226>>01585000
               BEGIN                                           <<04226>>01590000
               ERROR(10);     <<DEVICE FOPEN FAILED >>         <<04226>>01595000
               ERROR(0);      <<  QUIT              >>         <<04226>>01600000
               END;                                            <<04226>>01605000
            RECOVERABLERROR := FALSE;   <<RESET FLAG>>         <<04226>>01610000
            END;                                               <<04226>>01615000
         END;                                                           01620000
END;  << S E N D >>                                                     01625000
                                                                        01630000
                                                                        01635000
                                                                        01640000
PROCEDURE SEPAR;                                                        01645000
BEGIN                                                                   01650000
      CLEARBUF;                                                         01655000
      WBUFOUT(12):="* "; WBUFOUT(X:=X+1):="- ";                         01660000
      MOVE WBUFOUT(14) := WBUFOUT(13),(52);                    <<01182>>01665000
      SEND(132);                                               <<01182>>01670000
END;                                                                    01675000
                                                                        01680000
                                                                        01685000
                                                                        01690000
PROCEDURE PAGETITLE;                                                    01695000
BEGIN                                                                   01700000
      CLEARBUF;                                                         01705000
      MOVE BUFOUT(2):=PT,(20);                                          01710000
      MOVE BUFOUT(30) := VERSION,(7);                          <<04225>>01715000
      MOVE BUFOUT(50):=TIT,(45);                                        01720000
      DATE;                                                             01725000
      ASCII(PRESENTLOGFILE,10,BUFOUT(87));                              01730000
                                                               <<01182>>01735000
          << PAGE EJECT >>                                     <<01182>>01740000
          FWRITE(FOUT,T11B,0,%61);                             <<01352>>01745000
          IF <> THEN                                           <<01166>>01750000
            BEGIN                                              <<01166>>01755000
            ERROR(17);                                         <<01166>>01760000
            EFCHECK(FOUT); << PRINT ERROR # >>                 <<01166>>01765000
            ERROR(0);                                          <<01181>>01770000
            END;                                               <<01166>>01775000
      SEND(100);                                                        01780000
      SEND(0);                                                          01785000
      SEPAR;                                                            01790000
      RPP:=1;                                                           01795000
      CYD:=WBUFIN(2);                                                   01800000
END;  << P A G E T I T L E >>                                           01805000
                                                                        01810000
                                                                        01815000
                                                                        01820000
PROCEDURE TITLE0;                                                       01825000
BEGIN                                                                   01830000
      MOVE BUFOUT(27):=T0,(33);                                         01835000
      SEND(61);                                                         01840000
END;                                                                    01845000
                                                                        01850000
                                                                        01855000
                                                                        01860000
PROCEDURE TITLE1;                                                       01865000
BEGIN                                                                   01870000
      MOVE BUFOUT(27):=T1,(50);                                         01875000
      MOVE BUFOUT(77) := T1',(26);                             <<01182>>01880000
      SEND(105);                                               <<MS.00>>01885000
END;                                                                    01890000
                                                                        01895000
                                                                        01900000
                                                                        01905000
PROCEDURE TITLE2;                                                       01910000
BEGIN                                                                   01915000
      MOVE BUFOUT(27) := T2,(49);                              <<01182>>01920000
      MOVE BUFOUT(76) := T2',(56);                             <<01182>>01925000
      SEND(132);                                               <<01182>>01930000
END;                                                                    01935000
                                                                        01940000
                                                                        01945000
                                                                        01950000
PROCEDURE TITLE3;                                                       01955000
BEGIN                                                                   01960000
      MOVE BUFOUT(27):=T3,(45);                                         01965000
      SEND( 73);                                                        01970000
END;                                                                    01975000
                                                                        01980000
                                                                        01985000
                                                                        01990000
PROCEDURE TITLE4;                                                       01995000
BEGIN                                                                   02000000
      MOVE BUFOUT(27):=T4,(70);                                <<07190>>02005000
      SEND( 98);                                               <<07190>>02010000
END;                                                                    02015000
                                                                        02020000
                                                                        02025000
                                                                        02030000
PROCEDURE TITLE5;                                                       02035000
BEGIN                                                                   02040000
      MOVE BUFOUT(27):=T5,(50);                                         02045000
      MOVE BUFOUT(77):=T5',(39);                                        02050000
      SEND( 117);                                                       02055000
END;                                                                    02060000
                                                                        02065000
                                                                        02070000
                                                                        02075000
PROCEDURE TITLE6;                                                       02080000
BEGIN                                                                   02085000
      MOVE BUFOUT(27) := T6,(17);                              <<01182>>02090000
      SEND( 55);                                                        02095000
END;                                                                    02100000
                                                                        02105000
                                                                        02110000
                                                                        02115000
PROCEDURE TITLE7;                                                       02120000
BEGIN                                                                   02125000
      MOVE BUFOUT(27) := T7,(18);                              <<01182>>02130000
      SEND(47);                                                <<MS.00>>02135000
END;                                                                    02140000
                                                                        02145000
                                                                        02150000
                                                                        02155000
PROCEDURE TITLE8;                                                       02160000
BEGIN                                                                   02165000
      MOVE BUFOUT(27) := T8,(52);                              <<04206>>02170000
      MOVE BUFOUT(79) := T8',(18);                             <<04206>>02175000
      SEND(110);                                               <<04206>>02180000
END;                                                                    02185000
                                                               <<04206>>02190000
PROCEDURE TITLE8';                                             <<04206>>02195000
  BEGIN                                                        <<04206>>02200000
    MOVE BUFOUT(27):=T8A,(50);                                 <<04206>>02205000
    SEND(100);                                                 <<04206>>02210000
  END;                                                         <<04206>>02215000
                                                               <<04206>>02220000
      PROCEDURE TITLE9;                                                 02225000
      BEGIN                                                             02230000
      MOVE BUFOUT(27):=T9,(69);                                         02235000
      SEND(97);                                                <<MS.00>>02240000
      CLEARBUF;                                                <<01182>>02245000
      MOVE BUFOUT(27):=T9',(69);                                        02250000
      SEND(97);                                                <<MS.00>>02255000
      END;                                                              02260000
      PROCEDURE TITLE9';                                                02265000
      BEGIN                                                             02270000
      MOVE BUFOUT(27):=T9A,(61);                                        02275000
      SEND(89);                                                <<MS.00>>02280000
      CLEARBUF;                                                <<01182>>02285000
      MOVE BUFOUT(27) := T9A',(51);                            <<01182>>02290000
      SEND(88);                                                <<MS.00>>02295000
      END;                                                              02300000
      PROCEDURE TITLE10;                                                02305000
      BEGIN                                                             02310000
     MOVE BUFOUT(27):=T10,(30);                                         02315000
      SEND(58);                                                <<MS.00>>02320000
      END;                                                              02325000
                                                                        02330000
PROCEDURE TITLE11;                                                      02335000
BEGIN                                                                   02340000
      MOVE BUFOUT(27) := T11,(62);                             <<01352>>02345000
      SEND(91);                                                <<MS.00>>02350000
                                                                        02355000
      END;<<TITLE11>>                                                   02360000
                                                                        02365000
      PROCEDURE TITLE11';                                               02370000
      BEGIN                                                             02375000
                                                                        02380000
                                                                        02385000
                                                                        02390000
                                                                        02395000
      MOVE BUFOUT(27) := T11B,(72);                            <<06986>>02400000
      SEND(92);                                                <<06986>>02405000
                                                                        02410000
      END;<<TITLE11'>>                                                  02415000
                                                                        02420000
                                                                        02425000
                                                                        02430000
   PROCEDURE TITLE12;                                          <<SP.01>>02435000
   BEGIN                                                       <<SP.01>>02440000
      MOVE bufout(27):=t12,(51);                               <<SP.01>>02445000
      MOVE BUFOUT(78) := T12',(35);                            <<01182>>02450000
      SEND(115);                                               <<MS.00>>02455000
      CLEARBUF;                                                <<01182>>02460000
      MOVE bufout(27):=t12'',(51);                             <<SP.01>>02465000
      MOVE BUFOUT(78) := T12''',(35);                          <<01182>>02470000
      SEND(115);                                               <<MS.00>>02475000
   END;                                                        <<SP.01>>02480000
                                                               <<TL.02>>02485000
   PROCEDURE TITLE13;                                          <<sp.01>>02490000
   BEGIN                                                       <<sp.01>>02495000
      MOVE bufout(27):=t13,(60);                               <<sp.01>>02500000
      MOVE BUFOUT(87) := T13',(28);                            <<01182>>02505000
      SEND(117);                                               <<MS.00>>02510000
      CLEARBUF;                                                <<sp.01>>02515000
      MOVE bufout(62):=t13''',(54);                            <<sp.01>>02520000
      SEND(117);                                               <<MS.00>>02525000
   END;                                                        <<sp.01>>02530000
                                                               <<TL.02>>02535000
PROCEDURE TITLE14;                                             <<TL.02>>02540000
  BEGIN                                                        <<TL.02>>02545000
    MOVE BUFOUT(26) := T14A,(44);                              <<01182>>02550000
    MOVE BUFOUT(70) := T14A',(52);                             <<01182>>02555000
    SEND(123);                                                 <<TL.02>>02560000
  END; <<TITLE14>>                                             <<TL.02>>02565000
                                                                        02570000
   PROCEDURE TITLE15;                                          <<sp.01>>02575000
   BEGIN                                                       <<sp.01>>02580000
      <<THERE IS PURPOSELY NO TITLE FOR LOG TYPE 15>>          <<sp.01>>02585000
   END;                                                        <<sp.01>>02590000
                                                                        02595000
procedure TITLE16;                                             <<01763>>02600000
begin                                                          <<01763>>02605000
move BUFOUT(27):=T16,(59);                                     <<01763>>02610000
move BUFOUT(86):=T16',(30);                                    <<01763>>02615000
SEND(116);                                                     <<01763>>02620000
END;                                                                    02625000
PROCEDURE TITLE17;                                             <<04854>>02630000
BEGIN                                                          <<04854>>02635000
MOVE BUFOUT(27) := T17, (12);                                  <<04854>>02640000
SEND(39);                                                      <<04854>>02645000
END;  << TITLE17 >>                                            <<04854>>02650000
                                                               <<04854>>02655000
PROCEDURE TITLE18;                                             <<04854>>02660000
BEGIN                                                          <<04854>>02665000
MOVE BUFOUT(27) := T18, (23);                                  <<04854>>02670000
SEND(50);                                                      <<04854>>02675000
END;  << TITLE18 >>                                            <<04854>>02680000
                                                                        02685000
                                                               <<03643>>02690000
PROCEDURE TITLE46;                                             <<03643>>02695000
BEGIN                                                          <<03643>>02700000
   MOVE BUFOUT(27) := T46,(57);    <<FIRST TITLE LINE>>        <<03643>>02705000
   SEND(86);                                                   <<03643>>02710000
   CLEARBUF;                                                   <<03643>>02715000
   MOVE BUFOUT(33) := T46',(51);   <<SECOND TITLE LINE>>       <<03643>>02720000
   SEND(84);                                                   <<03643>>02725000
END;                                                           <<03643>>02730000
                                                               <<03643>>02735000
PROCEDURE TITLE46';                                            <<03643>>02740000
BEGIN                                                          <<03643>>02745000
   MOVE BUFOUT(27) := T46'',(11);  <<PRINT "LOGGED DATA">>     <<03643>>02750000
   SEND(39);                                                   <<03643>>02755000
END;                                                           <<03643>>02760000
                                                               <<03643>>02765000
PROCEDURE TITLE47;                                             <<03643>>02770000
BEGIN                                                          <<03643>>02775000
   MOVE BUFOUT(27) := T47,(26);     <<FIRST TITLE LINE>>       <<03643>>02780000
   SEND(54);                                                   <<03643>>02785000
   CLEARBUF;                                                   <<03643>>02790000
   MOVE BUFOUT(27) := T47',(26);    <<SECOND TITLE LINE>>      <<03643>>02795000
   SEND(54);                                                   <<03643>>02800000
END;                                                           <<03643>>02805000
                                                               <<03643>>02810000
PROCEDURE TITLE47';                                            <<03643>>02815000
BEGIN                                                          <<03643>>02820000
   MOVE BUFOUT(27) := T46'',(11);                              <<03643>>02825000
   SEND(39);                       <<PRINT "LOGGED DATA">>     <<03643>>02830000
END;                                                           <<03643>>02835000
PROCEDURE COMINFO;                                                      02840000
BEGIN                                                                   02845000
<< PRINT INFORMATION THAT IS COMMON TO ALL LOG RECORD    >>    <<03643>>02850000
<< TYPES I.E. RECORD TYPE, TIME STAMP, JOBTYPE/NUMBER.   >>    <<03643>>02855000
<<*******************************************************>>    <<03643>>02860000
                                                               <<03643>>02865000
      ASCII(WBUFIN(3).(0:8),10,BUFOUT(0));                              02870000
      BUFOUT(2):=":";                                                   02875000
      ASCII(WBUFIN(3).(8:8),10,BUFOUT(3));                              02880000
      BUFOUT(5):=":";                                                   02885000
      ASCII(WBUFIN(4).(0:8),10,BUFOUT(6));                              02890000
      BUFOUT(8):=":";                                                   02895000
      ASCII(WBUFIN(4).(8:8),10,BUFOUT(9));                              02900000
      WBUFOUT(6):= WRTT(RECTYPE*2);                                     02905000
      WBUFOUT(7):=WRTT(RECTYPE*2+1);                                    02910000
      TOS:= WBUFIN(5);                                                  02915000
      IF = THEN BEGIN DEL;MOVE BUFOUT(18):="SYS";RETURN;END;            02920000
      BUFOUT(18):=IF TOS.(0:2)=1 THEN "S" ELSE "J";                     02925000
      ASCII(WBUFIN(5).(2:14),10,BUFOUT(20));                            02930000
END;                                                                    02935000
                                                                        02940000
                                                                        02945000
                                                                        02950000
PROCEDURE INFO0;                                                        02955000
BEGIN                                                                   02960000
      DASCII(DBUFIN(3),10,BUFOUT(30));                                  02965000
      ASCII(WBUFIN(8),10,BUFOUT(47));                                   02970000
      ASCII(WBUFIN(9),10,BUFOUT(55));                                   02975000
      SEND(64);                                                         02980000
END;                                                                    02985000
                                                                        02990000
                                                                        02995000
                                                                        03000000
PROCEDURE INFO1;                                                        03005000
BEGIN                                                                   03010000
      WBUFOUT(14):=WBUFIN(6);                                           03015000
      WBUFOUT(17):=WBUFIN(7);                                           03020000
      ASCII(WBUFIN(8),10,BUFOUT(41));                                   03025000
      ASCII(WBUFIN(9),10,BUFOUT(48));                                   03030000
      ASCII(WBUFIN(10),10,BUFOUT(54));                                  03035000
      ASCII(WBUFIN(11),10,BUFOUT(60));                                  03040000
      ASCII(WBUFIN(12),10,BUFOUT(66));                                  03045000
      ASCII(WBUFIN(13),10,BUFOUT(72));                                  03050000
      ASCII(WBUFIN(14),10,BUFOUT(78));                                  03055000
      ASCII(WBUFIN(16),10,BUFOUT(94));                         <<01182>>03060000
      SEND(110);                                                        03065000
END;                                                                    03070000
                                                                        03075000
                                                                        03080000
                                                                        03085000
PROCEDURE INFO2;                                                        03090000
BEGIN                                                                   03095000
      MOVE BUFOUT(27):=BUFIN(12),(8);                                   03100000
      MOVE BUFOUT(38):=BUFIN(20),(8);                                   03105000
      MOVE BUFOUT(49):=BUFIN(28),(8);                                   03110000
      MOVE BUFOUT(60):=BUFIN(36),(8);                                   03115000
      ASCII(WBUFIN(22),10,BUFOUT(76));                         <<01182>>03120000
      ASCII(WBUFIN(23),10,BUFOUT(80));                         <<01182>>03125000
      ASCII(WBUFIN(24),10,BUFOUT(87));                         <<01182>>03130000
      DASCII(DBUFIN(13),10,BUFOUT(98));                        <<01182>>03135000
      ASCII(WBUFIN(28).(0:8),10,BUFOUT(110));                  <<01182>>03140000
      ASCII(WBUFIN(28).(8:8),10,BUFOUT(117));                  <<01182>>03145000
      BUFOUT(126) := BUFIN(51);                                <<01182>>03150000
      SEND(128);                                               <<01182>>03155000
END;                                                                    03160000
                                                                        03165000
                                                                        03170000
                                                                        03175000
PROCEDURE INFO3;                                                        03180000
BEGIN                                                                   03185000
      ASCII(WBUFIN(6),10,BUFOUT(29)); << maximum priority>>    <<07190>>03190000
      ASCII(WBUFIN(7),10,BUFOUT(37)); << no. of creations >>   <<07190>>03195000
      DASCII(DBUFIN(4),10,BUFOUT(45));<< cpu time in seconds >><<07190>>03200000
      DASCII(DBUFIN(5),10,BUFOUT(59)); << elapsed time  >>     <<07190>>03205000
      SEND(80);                                                         03210000
END;                                                                    03215000
                                                                        03220000
                                                                        03225000
                                                                        03230000
PROCEDURE INFO4;                                                        03235000
BEGIN                                                                   03240000
      ASCII(WBUFIN(6),10,BUFOUT(29)); <<# of prog file segs>>  <<07190>>03245000
      ASCII(WBUFIN(7),10,BUFOUT(39)); <<# of sl segs <> mpe>>  <<07190>>03250000
      ASCII(WBUFIN(8),10,BUFOUT(48)); <<max stack size ever>>  <<07190>>03255000
      ASCII(WBUFIN(9),10,BUFOUT(59)); <<max data seg size >>   <<07190>>03260000
      ASCII(WBUFIN(10),10,BUFOUT(68));<<cumulative total >>    <<07190>>03265000
      ASCII(WBUFIN(11),10,BUFOUT(77)); << pin >>               <<07190>>03270000
      DASCII(DBUFIN(6),10,BUFOUT(87)); << cpu time >>          <<07190>>03275000
      SEND(110);                                               <<07190>>03280000
END;                                                                    03285000
                                                                        03290000
                                                                        03295000
                                                               <<01352>>03300000
PROCEDURE INFO5;                                                        03305000
BEGIN                                                                   03310000
      MOVE BUFOUT(27) := BUFIN(12),(26);                       <<01182>>03315000
      ASCII(WBUFIN(20).(0:8),10,BUFOUT(57)); <<disposition>>   <<06986>>03320000
      ASCII(WBUFIN(20).(8:8),10,BUFOUT(63)); << domain >>      <<06986>>03325000
      TOS := 0;  << RESERVE WORD FOR DASCII RETURN >>          <<01182>>03330000
      TOS:= WBUFIN(21);                                                 03335000
      TOS:= WBUFIN(22);                                                 03340000
      DASCII(*,10,BUFOUT(69)); << # sectors allocated >>       <<06986>>03345000
      ASCII(WBUFIN(23).(0:8),10,BUFOUT(82)); <<dev type>>      <<06986>>03350000
      BUFOUT(85):="/";                                                  03355000
      ASCII(WBUFIN(28),10,BUFOUT(86));  << ldev >>             <<06986>>03360000
      DASCII(DBUFIN(12),10,BUFOUT(92));                                 03365000
      DASCII(DBUFIN(13),10,BUFOUT(105));                                03370000
      SEND(120);                                                        03375000
END;                                                                    03380000
                                                                        03385000
                                                                        03390000
                                                                        03395000
PROCEDURE INFO6;                                                        03400000
BEGIN                                                                   03405000
      ASCII(WBUFIN(6),10,BUFOUT(27));                                   03410000
      ASCII(WBUFIN(7),10,BUFOUT(36));                                   03415000
      SEND(60);                                                         03420000
END;                                                                    03425000
                                                                        03430000
                                                                        03435000
                                                                        03440000
PROCEDURE INFO7;                                                        03445000
BEGIN                                                                   03450000
ASCII(WBUFIN(6),10,BUFOUT(27));                                         03455000
SEND(35);                                                               03460000
END;                                                                    03465000
$PAGE                                                          <<04206>>03470000
                                                                        03475000
                                                                        03480000
                                                                        03485000
PROCEDURE INFO8;                                                        03490000
BEGIN                                                                   03495000
      LOGICAL TYPE,JOBN,DEVF'ID;                               <<04206>>03500000
                                                               <<04206>>03505000
      DEFINE                                                   <<04206>>03510000
         DTYPEF    =      (0:1) #,    <<Device File Type   >>  <<04206>>03515000
         DFILEF    =      (1:15)#,    <<Device File Field  >>  <<04206>>03520000
         JTYPEF    =      (0:2) #,    <<Job Number Type    >>  <<04206>>03525000
         JFILEF    =      (2:14)#;    <<Job Number Field   >>  <<04206>>03530000
                                                               <<04206>>03535000
      EQUATE                                                   <<04206>>03540000
         OUT'TYPE  =           1;     <<Top bit on for OUT >>  <<04206>>03545000
                                                               <<04206>>03550000
      MOVE BUFOUT(27):=BUFIN(12),(8);                                   03555000
      MOVE BUFOUT(36):=BUFIN(20),(8);                                   03560000
      MOVE BUFOUT(45):=BUFIN(28),(8);                                   03565000
      MOVE BUFOUT(54):=BUFIN(36),(8);                                   03570000
      IF ( JOBN := WBUFIN(22).JFILEF ) = 0                     <<04206>>03575000
         THEN MOVE BUFOUT(64):="SYS"                           <<04206>>03580000
         ELSE                                                  <<04206>>03585000
            BEGIN                                              <<04206>>03590000
              CASE (TYPE := WBUFIN(22).JTYPEF)  OF             <<04206>>03595000
                 BEGIN                                         <<04206>>03600000
                   MOVE BUFOUT(63) := "S'";                    <<04206>>03605000
                   BUFOUT(63)      := "S";                     <<04206>>03610000
                   BUFOUT(63)      := "J";                     <<04206>>03615000
                   MOVE BUFOUT(63) := "J'";                    <<04206>>03620000
                 END;                                          <<04206>>03625000
              IF TYPE = 0 OR TYPE = 3                          <<04206>>03630000
                 THEN ASCII(JOBN,10,BUFOUT(65))                <<04206>>03635000
                 ELSE ASCII(JOBN,10,BUFOUT(64));               <<04206>>03640000
            END;                                               <<04206>>03645000
                                                               <<04206>>03650000
      DEVF'ID := WBUFIN(23);                                   <<04206>>03655000
      IF DEVF'ID.DTYPEF = OUT'TYPE                             <<04206>>03660000
         THEN MOVE BUFOUT(71) := "OUT"                         <<04206>>03665000
         ELSE MOVE BUFOUT(71) := "IN" ;                        <<04206>>03670000
      ASCII(DEVF'ID.DFILEF,10,BUFOUT(75));                     <<04206>>03675000
                                                               <<04206>>03680000
      ASCII(WBUFIN(24).(0:8),10,BUFOUT(81));                   <<04206>>03685000
      ASCII(WBUFIN(24).(8:8),10,BUFOUT(85));                   <<04206>>03690000
      ASCII(WBUFIN(25).(0:8),10,BUFOUT(90));                   <<04206>>03695000
      ASCII(WBUFIN(25).(8:8),10,BUFOUT(94));                   <<04206>>03700000
      SEND(125);                                                        03705000
END;                                                                    03710000
$PAGE                                                          <<04206>>03715000
                                                               <<04206>>03720000
PROCEDURE INFO8';                                              <<04206>>03725000
  BEGIN                                                        <<04206>>03730000
    DOUBLE PAGES; INTEGER LOGPAGES;                            <<04206>>03735000
                                                               <<04206>>03740000
    DASCII(DBUFIN(13),10,BUFOUT(27));                          <<04206>>03745000
    DASCII(DBUFIN(14),10,BUFOUT(38));                          <<04206>>03750000
    ASCII(WBUFIN(30).(12:4),10,BUFOUT(50));                    <<04206>>03755000
    PAGES := DBUFIN(16);                                       <<04206>>03760000
    IF PAGES <> 0D                                             <<04206>>03765000
       THEN DASCII(PAGES,10,BUFOUT(54));                       <<04206>>03770000
    LOGPAGES := WBUFIN(31).(10:6);                             <<04206>>03775000
    IF LOGPAGES <> 0                                           <<04206>>03780000
       THEN ASCII(LOGPAGES,10,BUFOUT(66));                     <<04206>>03785000
    ASCII(WBUFIN(30).(0:8),10,BUFOUT(73));                     <<04206>>03790000
    SEND(80);                                                  <<04206>>03795000
  END;                                                         <<04206>>03800000
                                                               <<04206>>03805000
$PAGE                                                          <<04206>>03810000
                                                                        03815000
                                                                        03820000
      PROCEDURE INFO9;                                                  03825000
      BEGIN                                                             03830000
      ASCII(WBUFIN(6),10,BUFOUT(27));                                   03835000
      DASCII(DBF1,10,BUFOUT(34));                                       03840000
      DASCII(DBF2,10,BUFOUT(47));                                       03845000
      DASCII(DBF3,10,BUFOUT(62));                                       03850000
      ASCII(WBUFIN(13),10,BUFOUT(76));                                  03855000
      ASCII(WBUFIN(14),10,BUFOUT(87));                                  03860000
      SEND(95);                                                         03865000
      END;                                                              03870000
      PROCEDURE INFO10;                                                 03875000
      BEGIN                                                             03880000
      ASCII(WBUFIN(6),10,BUFOUT(27));                                   03885000
      ASCII(WBUFIN(8).(0:8),10,BUFOUT(34));                             03890000
      BUFOUT(36):=":";                                                  03895000
      ASCII(WBUFIN(8).(8:8),10,BUFOUT(37));                             03900000
      BUFOUT(39):=":";                                                  03905000
      ASCII(WBUFIN(9).(0:8),10,BUFOUT(40));                             03910000
      BUFOUT(42):=":";                                                  03915000
      ASCII(WBUFIN(9).(8:8),10,BUFOUT(43));                             03920000
      MOVE BUFOUT(49):=BUFIN(20),(8);                                   03925000
      SEND(57);                                                         03930000
      END;                                                              03935000
      PROCEDURE INFO9';                                                 03940000
      BEGIN                                                             03945000
      MOVE BUFOUT(27):=BUFIN(66),(20);                                  03950000
      MOVE BUFOUT(49) := BUFIN(31),(16);                       <<01182>>03955000
      MOVE BUFOUT(70) := BUFIN(49),(16);                       <<01182>>03960000
      SEND(88);                                                         03965000
      END;                                                              03970000
     PROCEDURE INFO11;                                                  03975000
      BEGIN                                                             03980000
      <<FIRST LINE>>                                                    03985000
                                                                        03990000
        ASCII(WBUFIN(%24),10,BUFOUT(27)); << drt >>            <<07190>>03995000
        ASCII(WBUFIN(%23),10,BUFOUT(30)); << unit >>           <<07190>>04000000
        ASCII((WBUFIN(%10)),10,BUFOUT(36)); <<qldevn>>         <<06986>>04005000
                                                               <<01352>>04010000
        ASCII(WBUFIN(%22).(8:8),10,BUFOUT(49));<< type >>      <<06986>>04015000
        ASCII(WBUFIN(%22).(4:4),10,BUFOUT(54));<< subtype >>   <<06986>>04020000
        ASCII((WBUFIN(%14).(8:8)),10,BUFOUT(62)); <<DRVR FUNC. <<04217>>04025000
        ASCII(WBUFIN(%15),10,BUFOUT(69));<<COUNT>>             <<01352>>04030000
        ASCII(WBUFIN(%11),8 ,BUFOUT(81));    <<IOQ(QMISC)>>    <<01352>>04035000
      SEND(132);<<PRINT LINE>>                                          04040000
      END;<<INFO11>>                                                    04045000
                                                                        04050000
     PROCEDURE INFO11';                                                 04055000
      BEGIN                                                             04060000
      <<SECOND LINE>>                                                   04065000
                                                                        04070000
        ASCII(WBUFIN(%7),8,BUFOUT(27));      <<IOQ(QFLAG)>>    <<01352>>04075000
        ASCII(WBUFIN(%12),8,BUFOUT(39));      <<DST#>>         <<01352>>04080000
        ASCII(WBUFIN(%13),8,BUFOUT(47));      <<ADDRESS>>      <<01352>>04085000
        ASCII((WBUFIN(%20).(8:8)),8,BUFOUT(64));   <<stat>>    <<06986>>04090000
        ASCII(WBUFIN(%21),10,BUFOUT(56));   << pin >>          <<06986>>04095000
                                                               <<01352>>04100000
        ASCII(WBUFIN(%16),8,BUFOUT(73));      <<PAR1>>         <<06986>>04105000
        ASCII(WBUFIN(%17),8,BUFOUT(82));      <<PAR2>>         <<06986>>04110000
        SEND(132);<<PRINT LINE>>                               <<01352>>04115000
        CLEARBUF;                                              <<01352>>04120000
        MOVE BUFOUT:= "     DEVICE STATUS WORDS -            ";<<01352>>04125000
        ASCII (WBUFIN(6).(0:8),10,BUFOUT(1));                  <<01352>>04130000
        SEND (38);                                             <<01352>>04135000
        LINEINDEX:= 0;                                         <<01352>>04140000
        CLEARBUF;                                              <<01352>>04145000
        FOR I:=0 UNTIL INTEGER(WBUFIN(6).(0:8))-1  DO          <<01352>>04150000
           BEGIN                                               <<01352>>04155000
           ASCII (WBUFIN(I+21),8,BUFOUT(LINEINDEX*9));         <<06986>>04160000
           LINEINDEX:= LINEINDEX +1;                           <<01352>>04165000
           IF LINEINDEX >= 8                                   <<01352>>04170000
           THEN BEGIN                                          <<01352>>04175000
                SEND (73);                                     <<01352>>04180000
                LINEINDEX:= 0;                                 <<01352>>04185000
                CLEARBUF;                                      <<01352>>04190000
                END;                                           <<01352>>04195000
           END;                                                <<01352>>04200000
        IF LINEINDEX<>0  THEN  SEND (73);                      <<01352>>04205000
      END;<<INFO11'>>                                                   04210000
   PROCEDURE INFO12;                                           <<sp.01>>04215000
   BEGIN                                                       <<sp.01>>04220000
      BYTE ARRAY rtype(0:23)=PB:=" MOUNT  ","DISMOUNT",        <<sp.01>>04225000
                 " VINIT  ";                                            04230000
      BYTE ARRAY dtype(0:11)=PB:=" AUTO ","PSEUDO";            <<sp.01>>04235000
      BYTE ARRAY VTYPE(0:83)=PB:="  PRIVATE   ","  SCRATCH   ",<<01182>>04240000
                                 "   SYSTEM   ","UNFORMATTED ",<<sp.01>>04245000
                                 "UNRECOGNIZED","SERIAL DISC ",<<01182>>04250000
                                 "  FOREIGN   ";               <<01182>>04255000
      MOVE bufout(28):=rtype(ibufin(6).(14:2)*8),(8);          <<sp.01>>04260000
      MOVE bufout(41):=dtype(ibufin(6).(13:1)*6),(6);          <<sp.01>>04265000
      MOVE bufout(48):=vtype(ibufin(6).(8:4)*12),(12);         <<sp.01>>04270000
      ascii(ibufin(6).(0:8),8,bufout(61));                     <<sp.01>>04275000
      ascii(ibufin(7).(8:8),8,bufout(69));                     <<sp.01>>04280000
      IF ibufin(6).(14:2)<>1 THEN                              <<sp.01>>04285000
      BEGIN                                                    <<sp.01>>04290000
         MOVE bufout(78):=bufin(16),(8);                       <<sp.01>>04295000
         MOVE bufout(87):=bufin(24),(8);                       <<sp.01>>04300000
         MOVE bufout(96):=bufin(32),(8);                       <<sp.01>>04305000
         MOVE bufout(105):=bufin(40),(8);                      <<sp.01>>04310000
         SEND(114);                                            <<sp.01>>04315000
      END ELSE SEND(77);                                       <<sp.01>>04320000
   END;                                                        <<sp.01>>04325000
   PROCEDURE INFO13;                                           <<sp.01>>04330000
   BEGIN                                                       <<sp.01>>04335000
      BYTE POINTER out;                                        <<sp.01>>04340000
      INTEGER I,J,K:=-4;                                       <<01182>>04345000
      BYTE ARRAY mtype(0:15)=PB:=" MOUNT  ","DISMOUNT";        <<sp.01>>04350000
      BYTE ARRAY type(0:65)=PB:="W/ BINDING ","W/O BINDING",   <<sp.01>>04355000
                                "  SYSTEM   ","CONDITIONAL",   <<sp.01>>04360000
                                " OPERATOR  "," JOB TERM. ";   <<sp.01>>04365000
      MOVE bufout(27):=mtype(ibufin(6).(15:1)*8),(8);          <<sp.01>>04370000
      MOVE bufout(37):=type(ibufin(6).(12:3)*11),(11);         <<sp.01>>04375000
      ASCII(IBUFIN(7),8,BUFOUT(49));  << pin  >>               <<06986>>04380000
      ASCII((IBUFIN(6).(0:12)),-10,BUFOUT(58));<<# accessors>> <<06986>>04385000
      MOVE bufout(62):=bufin(16),(8);                          <<sp.01>>04390000
      MOVE bufout(71):=bufin(24),(8);                          <<sp.01>>04395000
      MOVE bufout(80):=bufin(32),(8);                          <<sp.01>>04400000
      MOVE bufout(90):=bufin(40),(8);                          <<sp.01>>04405000
      MOVE bufout(99):=bufin(48),(8);                          <<sp.01>>04410000
      MOVE bufout(108):=bufin(56),(8);                         <<sp.01>>04415000
      SEND(117);                                               <<sp.01>>04420000
      SEND(0);                                                 <<01182>>04425000
FOR J := 1 UNTIL 2 DO                                          <<01182>>04430000
  BEGIN                                                        <<01182>>04435000
  K := K + 4;                                                  <<01182>>04440000
  I := K;                                                      <<01182>>04445000
  IF I < IBUFIN(32) THEN                                       <<01182>>04450000
    BEGIN                                                      <<01182>>04455000
      CLEARBUF;                                                         04460000
      MOVE bufout(27):="VOLUME INFORMATION  ",2;               <<sp.01>>04465000
      WHILE (I:=I+1) <= IBUFIN(32) AND I<=K+4 DO               <<01182>>04470000
        MOVE * := "DEVICE/STYPE  ",2;                          <<01182>>04475000
      DEL;                                                     <<sp.01>>04480000
      SEND(47+(I-1-K)*14);                                     <<01182>>04485000
      CLEARBUF;                                                         04490000
      @out:=@bufout(47); <<have sent header of appropriate leng<<sp.01>>04495000
      I := K;                                                  <<01182>>04500000
      WHILE (I:=I+1) <= IBUFIN(32) AND I<=K+4 DO               <<01182>>04505000
      BEGIN                                                    <<sp.01>>04510000
         ascii(ibufin(i+32).(8:8),8,out);                      <<sp.01>>04515000
         ascii(ibufin(i+32).(0:8),8,out(7));                   <<sp.01>>04520000
         @out:=@out+14;                                        <<sp.01>>04525000
      END;                                                     <<sp.01>>04530000
      SEND(47+(I-1-K)*14);                                     <<01182>>04535000
    END;                                                       <<01182>>04540000
  END;                                                         <<01182>>04545000
   END;                                                        <<sp.01>>04550000
                                                                        04555000
                                                                        04560000
                                                                        04565000
PROCEDURE INF014;                                              <<TL.02>>04570000
  BEGIN                                                        <<TL.02>>04575000
    ASCII(WBUFIN(6),10,BUFOUT(27)); <<ldev >>                  <<06986>>04580000
    ASCII(WBUFIN(8).(0:8),10,BUFOUT(32)); <<FILE #>>           <<01182>>04585000
    ASCII(WBUFIN(7).(2:14),10,BUFOUT(38)); <<FILE SEQ#>>       <<01182>>04590000
    ASCII(WBUFIN(8).(8:2),10,BUFOUT(48)); <<SEQ TYPE>>         <<sp.01>>04595000
    IF WBUFIN(8).(10:2)=2 THEN                                 <<sp.01>>04600000
    MOVE BUFOUT(55):="ANSI" ELSE                               <<TL.02>>04605000
    MOVE BUFOUT(55):="IBM";                                    <<TL.02>>04610000
    ASCII(WBUFIN(30),10,BUFOUT(60)); << PIN#>>                 <<06986>>04615000
    ASCII(WBUFIN(9).(8:8),10,BUFOUT(66)); <<VOL#>>             <<sp.01>>04620000
    ASCII(WBUFIN(10),8,BUFOUT(70)); <<EXP DATE>>               <<01182>>04625000
    MOVE BUFOUT(79):=BUFIN(22),(17); <<FILE NAME>>             <<sp.01>>04630000
    MOVE BUFOUT(97):=BUFIN(40),(8); <<LOCKWORD>>               <<sp.01>>04635000
    MOVE BUFOUT(106) := BUFIN(48),(6);  <<VOLSET ID>>          <<01182>>04640000
    MOVE BUFOUT(116) := BUFIN(54),(6);  <<VOL ID>>             <<01182>>04645000
    SEND(123);                                                 <<TL.02>>04650000
  END; <<INF014>>                                              <<TL.02>>04655000
   PROCEDURE INFO15;                                           <<sp.01>>04660000
   BEGIN                                                       <<sp.01>>04665000
      IF IBUFIN(6) < 0 THEN                                    <<SP.02>>04670000
      BEGIN                                                    <<SP.01>>04675000
         MOVE BUFOUT(27):="IN  ";                              <<SP.01>>04680000
         IBUFIN(6):=-IBUFIN(6)                                 <<SP.02>>04685000
      END ELSE MOVE BUFOUT(27):="OUT ";                        <<SP.01>>04690000
                                                               <<01182>>04695000
      TEMP := 14;                                              <<01182>>04700000
      IF IBUFIN(6) > 101 THEN                                  <<01182>>04705000
        BEGIN                                                  <<01182>>04710000
        MOVE BUFOUT(31) := BUFIN(14),(101);                    <<01182>>04715000
        SEND(132);                                             <<01182>>04720000
        CLEARBUF;                                              <<01182>>04725000
        << GET MAX. REMAINDER IN BUFFER >>                     <<01182>>04730000
        IF IBUFIN(1) > BUFSIZE THEN                            <<01182>>04735000
          TEMP := BUFSIZE*2 - 115                              <<01182>>04740000
        ELSE                                                   <<01182>>04745000
          TEMP := IBUFIN(1)*2 - 115;                           <<01182>>04750000
        IBUFIN(6) := IBUFIN(6) - 101;                          <<01182>>04755000
        IF WBUFIN(6) > TEMP THEN WBUFIN(6) := TEMP;            <<01182>>04760000
        TEMP := 115;                                           <<01182>>04765000
        END;                                                   <<01182>>04770000
      MOVE BUFOUT(31) := BUFIN(TEMP),(IBUFIN(6));              <<01182>>04775000
      SEND(31+IBUFIN(6));                                      <<01182>>04780000
   END;                                                        <<sp.01>>04785000
                                                                        04790000
procedure INFO16;                                              <<01763>>04795000
begin                                                          <<01763>>04800000
move BUFOUT(27):="STACK UNDERFLOW SIMULATION";                 <<01763>>04805000
MOVE BUFOUT(56):=BUFIN(18),(28);                               <<01763>>04810000
move BUFOUT(91):="N/A";                                        <<01763>>04815000
move BUFOUT(106):="N/A";                                       <<01763>>04820000
SEND(110);                                                     <<01763>>04825000
end;                                                           <<01763>>04830000
  << PROCEDURES INFO17 AND INFO18 FOLLOW PROCEDURES INFO46->>  <<04854>>04835000
  << INFO47' BECAUSE OF LINE NUMBER SPACE .                >>  <<04854>>04840000
                                                               <<03643>>04845000
PROCEDURE INFO46;                                              <<03643>>04850000
BEGIN                                                          <<03643>>04855000
   ASCII(WBUFIN(6),10,BUFOUT(27));   <<LDEV  >>                <<03643>>04860000
   ASCII(WBUFIN(7),10,BUFOUT(34));   << TYPE >>                <<03643>>04865000
   ASCII(WBUFIN(8),10,BUFOUT(38));   <<SUBTYPE >>              <<03643>>04870000
   ASCII(WBUFIN(9),10,BUFOUT(43));   << MAINTENANCE REQ. TYPE>><<03643>>04875000
   ASCII(WBUFIN(10),10,BUFOUT(52));  << PARAMETER >>           <<03643>>04880000
   ASCII(WBUFIN(11),10,BUFOUT(59));  <<REC. SEQ. # >>          <<03643>>04885000
   ASCII(WBUFIN(12),10,BUFOUT(67));  << TOTAL # BYTES TO LOG>> <<03643>>04890000
   ASCII(WBUFIN(13),10,BUFOUT(78));  <<BYTES LOGGED IN THIS REC<<03643>>04895000
   SEND(84);                                                   <<03643>>04900000
END;                                                           <<03643>>04905000
                                                               <<03643>>04910000
PROCEDURE INFO46';                                             <<03643>>04915000
BEGIN                                                          <<03643>>04920000
   BYTE'INDEX := 28; <<STARTING WORD OF LOGGED DATA >>         <<03643>>04925000
   LOGGEDATA'COUNT := 0;                                       <<03643>>04930000
   TOTAL'LOGGED := WBUFIN(13); <<TOTAL # BYTES LOGGED DATA >>  <<03643>>04935000
   BYTE'COUNTER := 0; <<INITIALIZE TO 0 >>                     <<03643>>04940000
   OUT'INDEX := 27; << POSITION FOR FIRST OCTAL BYTE >>        <<03643>>04945000
                    << IN OUTPUT STRING.             >>        <<03643>>04950000
   WHILE BYTE'COUNTER <= TOTAL'LOGGED DO                       <<03643>>04955000
   BEGIN                                                       <<03643>>04960000
      WHILE PRINT'COUNTER <= 7 AND                             <<04577>>04965000
            BYTE'COUNTER <= TOTAL'LOGGED - 1 DO                <<04577>>04970000
         BEGIN                                                 <<03643>>04975000
         ASCII(BUFIN(BYTE'INDEX),8,BUFOUT(OUT'INDEX));         <<03643>>04980000
         MOVE BUFOUT(OUT'INDEX) := "   ";<<BLANK TOP 3 ZEROS>> <<03643>>04985000
         BYTE'INDEX := BYTE'INDEX + 1;                         <<03643>>04990000
         OUT'INDEX := OUT'INDEX +7;                            <<03643>>04995000
         BYTE'COUNTER := BYTE'COUNTER +1;                      <<03643>>05000000
         PRINT'COUNTER := PRINT'COUNTER + 1;                   <<03643>>05005000
                                                               <<03643>>05010000
         END;   << INSIDE WHILE LOOP >>                        <<03643>>05015000
      SEND(82);     <<PRINT OUTPUT >>                          <<03643>>05020000
      LOGGEDATA'COUNT := LOGGEDATA'COUNT + 1;                  <<03643>>05025000
      CLEARBUF;     << CLEAR FOR NEXT LINE OF OUTPUT>>         <<03643>>05030000
      PRINT'COUNTER := 0; <<RESET FOR PRINTING ONE LINE >>     <<03643>>05035000
      OUT'INDEX := 27;    <<OF OCTAL VALUES.            >>     <<03643>>05040000
   END;  << OUTSIDE WHILE LOOP >>                              <<03643>>05045000
                                                               <<03643>>05050000
END;  <<INFO46'>>                                              <<03643>>05055000
                                                               <<03643>>05060000
PROCEDURE INFO47;                                              <<03643>>05065000
BEGIN                                                          <<03643>>05070000
   ASCII(WBUFIN(6),10,BUFOUT(27));  <<RECORD NUMBER >>         <<03643>>05075000
   ASCII(WBUFIN(7),10,BUFOUT(36));  <<TOTAL BYTES TO BE LOGGED><<03643>>05080000
   ASCII(WBUFIN(8),10,BUFOUT(46));  <<BYTES IN "LOGGED DATA">> <<03643>>05085000
   SEND(54);                                                   <<03643>>05090000
END;    <<INFO47 >>                                            <<03643>>05095000
                                                               <<03643>>05100000
PROCEDURE INFO47';                                             <<03643>>05105000
BEGIN                                                          <<03643>>05110000
<<PRINT THE ASCII DATA AT THE END OF THE RECORD WHICH IS >>    <<03643>>05115000
<<A MAXIMUM OF 72 BYTES.                                 >>    <<03643>>05120000
                                                               <<03643>>05125000
   WORDS'LOGGED := (WBUFIN(8) + 1)/2; << GET WORD COUNT>>      <<03643>>05130000
   MOVE WBUFOUT(27) := WBUFIN(9),(WORDS'LOGGED);               <<03643>>05135000
   SEND(100);                                                  <<03643>>05140000
END;  << INFO47' >>                                            <<03643>>05145000
                                                               <<01763>>05150000
                                                               <<04854>>05155000
PROCEDURE INFO17;                                              <<04854>>05160000
<< CALL PROGRESS SIGNALS >>                                    <<04854>>05165000
BEGIN                                                          <<04854>>05170000
ASCII(WBUFIN(7), 10, BUFOUT(28));  << LDEV >>                  <<06986>>05175000
ASCII(WBUFIN(6), 10, BUFOUT(35));  << MSG # >>                 <<06986>>05180000
SEND(38);                                                      <<04854>>05185000
END;  << INFO17 >>                                             <<04854>>05190000
                                                               <<04854>>05195000
PROCEDURE INFO18;                                              <<04854>>05200000
<< DCE PROVIDED INFORMATION >>                                 <<04854>>05205000
BEGIN                                                          <<04854>>05210000
                                                               <<04854>>05215000
INTEGER I;                                                     <<04854>>05220000
                                                               <<04854>>05225000
ASCII(WBUFIN(7), 10, BUFOUT(28));  << LDEV >>                  <<06986>>05230000
IF WBUFIN(6) <> 32 AND WBUFIN(6) <> 33 THEN                    <<06986>>05235000
  ASCII(WBUFIN(6), 10, BUFOUT(35));  << MSG # >>               <<06986>>05240000
IF WBUFIN(6) = 1 THEN                                          <<06986>>05245000
  BEGIN  << MONITARY INFO >>                                   <<04854>>05250000
  TOS := 0;  << FOR VALUE RETURNED BY DASCII >>                <<04854>>05255000
  TOS := DBF1;                                                 <<04854>>05260000
  IF >= THEN  << INTEGER # >>                                  <<04854>>05265000
    I := DASCII(*, 10, BUFOUT(41)) + 41                        <<04854>>05270000
  ELSE                                                         <<04854>>05275000
    BEGIN  << HAS FRACTION >>                                  <<04854>>05280000
    ASSEMBLE(XCH);                                             <<04854>>05285000
    TOS.(0:8) := 0;                                            <<04854>>05290000
    ASSEMBLE(XCH);                                             <<04854>>05295000
    << FORMAT INTEGER PORTION >>                               <<04854>>05300000
    I := DASCII(*, 10, BUFOUT(41)) + 42;                       <<04854>>05305000
    BUFOUT(I-1) := ".";                                        <<04854>>05310000
    << FORMAT FRACTION PORTION >>                              <<04854>>05315000
    TOS := ASCII(BUFIN(14).(9:7), 10, BUFOUT(I));              <<04854>>05320000
    IF TOS = 1 THEN                                            <<04854>>05325000
      BEGIN  << FRACTION SHOULD BE IN HUNDRETHS  >>            <<04854>>05330000
      BUFOUT(I+1) := BUFOUT(I);                                <<04854>>05335000
      BUFOUT(I) := "0";                                        <<04854>>05340000
      END;                                                     <<04854>>05345000
    I := I + 2;                                                <<04854>>05350000
    END;                                                       <<04854>>05355000
  MOVE BUFOUT(I+2) := "(MONITARY)";                            <<04854>>05360000
  I := I + 12;                                                 <<04854>>05365000
  END                                                          <<04854>>05370000
ELSE                                                           <<04854>>05375000
  IF WBUFIN(6) <> 2 AND WBUFIN(6) <> 3 AND WBUFIN(6) <> 10 THEN<<06986>>05380000
    BEGIN  << ERROR MESSAGE >>                                 <<04854>>05385000
    IF WBUFIN(6) = 32 THEN                                     <<06986>>05390000
      BEGIN                                                    <<04854>>05395000
      MOVE BUFOUT(41) := "DRIV BUF OVERFLOW";                  <<04854>>05400000
      I := 58;                                                 <<04854>>05405000
      END                                                      <<04854>>05410000
    ELSE                                                       <<04854>>05415000
      IF WBUFIN(6) = 33 THEN                                   <<06986>>05420000
        BEGIN                                                  <<04854>>05425000
        MOVE BUFOUT(41) := "PARITY ERROR";                     <<04854>>05430000
        I := 53;                                               <<04854>>05435000
        END                                                    <<04854>>05440000
      ELSE                                                     <<04854>>05445000
        BEGIN  << SHOULD BE MSG # 20 - LINE INFO ERROR >>      <<04854>>05450000
        BUFOUT(48) := "*";                                     <<04854>>05455000
        I := 49;                                               <<04854>>05460000
        END;                                                   <<04854>>05465000
    END                                                        <<04854>>05470000
  ELSE                                                         <<04854>>05475000
    BEGIN                                                      <<04854>>05480000
    TOS := 0;  << FOR VALUE RETURNED BY DASCII >>              <<04854>>05485000
    TOS := DBF1;                                               <<04854>>05490000
    << BIT 0 IS FLAG TO BE CHECKED LATER; CLEAR FOR NOW >>     <<04854>>05495000
    IF < THEN                                                  <<04854>>05500000
      ASSEMBLE(XCH; TRBC 0; XCH);                              <<04854>>05505000
    I := DASCII(*, 10, BUFOUT(41)) + 43;                       <<04854>>05510000
    IF WBUFIN(6) = 2 THEN                                      <<06986>>05515000
      BEGIN  << CHARGE INFO IS TIME >>                         <<04854>>05520000
      MOVE BUFOUT(I) := "(SECONDS)";                           <<04854>>05525000
      I := I + 9;                                              <<04854>>05530000
      END                                                      <<04854>>05535000
    ELSE                                                       <<04854>>05540000
      IF WBUFIN(6) = 3 THEN                                    <<06986>>05545000
        BEGIN  << CHARGE INFO IS UNITS >>                      <<04854>>05550000
        MOVE BUFOUT(I) := "(UNITS)";                           <<04854>>05555000
        I := I + 7;                                            <<04854>>05560000
        END                                                    <<04854>>05565000
      ELSE  << MSG # = 10 >>                                   <<04854>>05570000
        << INFO IS LINE IDENTIFICATION; NOW CHECK BIT 0 >>     <<04854>>05575000
        IF INTEGER(WBUFIN(7)) >= 0 THEN                        <<04854>>05580000
          BEGIN  << INTERNATIONAL DATA NUMBER >>               <<04854>>05585000
          MOVE BUFOUT(I) := "(IDN)";                           <<04854>>05590000
          I := I + 5;                                          <<04854>>05595000
          END                                                  <<04854>>05600000
        ELSE                                                   <<04854>>05605000
          BEGIN  << NATIONAL # OR NETWORK TERMINAL # >>        <<04854>>05610000
          MOVE BUFOUT(I) := "(NN/NTN)";                        <<04854>>05615000
          I := I + 8;                                          <<04854>>05620000
          END;                                                 <<04854>>05625000
    END;                                                       <<04854>>05630000
SEND(I);                                                       <<04854>>05635000
END;  << INFO18 >>                                             <<04854>>05640000
PROCEDURE RECTYPEP(TYPE);                                               05645000
     VALUE TYPE;INTEGER TYPE;                                           05650000
     BEGIN                                                              05655000
      CASE RECTYPE OF                                                   05660000
      BEGIN                                                             05665000
         TITLE0;                                                        05670000
         TITLE1;                                                        05675000
         TITLE2;                                                        05680000
         TITLE3;                                                        05685000
         TITLE4;                                                        05690000
         TITLE5;                                                        05695000
         TITLE6;                                                        05700000
         TITLE7;                                                        05705000
         IF FIRSTIME THEN TITLE8 ELSE TITLE8';                 <<04206>>05710000
         IF FIRSTIME THEN TITLE9 ELSE TITLE9';                          05715000
         TITLE10;                                                       05720000
         IF FIRSTIME THEN TITLE11 ELSE TITLE11';                        05725000
         TITLE12;                                              <<TL.02>>05730000
         TITLE13;                                              <<TL.02>>05735000
         TITLE14;                                              <<TL.02>>05740000
         TITLE15;                                              <<sp.01>>05745000
         TITLE16;                                              <<03643>>05750000
         TITLE17; <<17>>                                       <<04854>>05755000
         TITLE18; <<18>>                                       <<04854>>05760000
         ;        <<19>>                                       <<03643>>05765000
         ;        <<20>>                                       <<03643>>05770000
         ;        <<21>>                                       <<03643>>05775000
         ;        <<22>>                                       <<03643>>05780000
         ;        <<23>>                                       <<03643>>05785000
         ;        <<24>>                                       <<03643>>05790000
         ;        <<25>>                                       <<03643>>05795000
         ;        <<26>>                                       <<03643>>05800000
         ;        <<27>>                                       <<03643>>05805000
         ;        <<28>>                                       <<03643>>05810000
         ;        <<29>>                                       <<03643>>05815000
         ;        <<30>>                                       <<03643>>05820000
         ;        <<31>>                                       <<03643>>05825000
         ;        <<32>>                                       <<03643>>05830000
         ;        <<33>>                                       <<03643>>05835000
         ;        <<34>>                                       <<03643>>05840000
         ;        <<35>>                                       <<03643>>05845000
         ;        <<36>>                                       <<03643>>05850000
         ;        <<37>>                                       <<03643>>05855000
         ;        <<38>>                                       <<03643>>05860000
         ;        <<39>>                                       <<03643>>05865000
         ;        <<40>>                                       <<03643>>05870000
         ;        <<41>>                                       <<03643>>05875000
         ;        <<42>>                                       <<03643>>05880000
         ;        <<43>>                                       <<03643>>05885000
         ;        <<44>>                                       <<03643>>05890000
         ;        <<45>>                                       <<03643>>05895000
         IF FIRSTIME THEN TITLE46 ELSE TITLE46';               <<03643>>05900000
         IF FIRSTIME THEN TITLE47 ELSE TITLE47';  <<47>>       <<03643>>05905000
         QUIT(4);                                                       05910000
      END;                                                              05915000
      END;<<EVIL>>                                                      05920000
                                                                        05925000
                                                                        05930000
                                                                        05935000
PROCEDURE INFOP(TYPE);                                                  05940000
      VALUE TYPE;INTEGER TYPE;                                          05945000
      BEGIN                                                             05950000
      CASE RECTYPE OF                                                   05955000
      BEGIN                                                             05960000
         INFO0;                                                         05965000
         INFO1;                                                         05970000
         INFO2;                                                         05975000
         INFO3;                                                         05980000
         INFO4;                                                         05985000
         INFO5;                                                         05990000
         INFO6;                                                         05995000
         INFO7;                                                         06000000
         IF FIRSTIME THEN INFO8 ELSE INFO8';                   <<04206>>06005000
         IF FIRSTIME THEN INFO9 ELSE INFO9';                            06010000
         INFO10;                                                        06015000
         IF FIRSTIME THEN INFO11 ELSE INFO11';                          06020000
         INFO12;                                               <<TL.02>>06025000
         INFO13;                                               <<TL.02>>06030000
         INF014;                                               <<TL.02>>06035000
         INFO15;                                               <<sp.01>>06040000
         INFO16;  <<16>>                                       <<03643>>06045000
         INFO17;  <<17>>                                       <<04854>>06050000
         INFO18;  <<18>>                                       <<04854>>06055000
         ;        <<19>>                                       <<03643>>06060000
         ;        <<20>>                                       <<03643>>06065000
         ;        <<21>>                                       <<03643>>06070000
         ;        <<22>>                                       <<03643>>06075000
         ;        <<23>>                                       <<03643>>06080000
         ;        <<24>>                                       <<03643>>06085000
         ;        <<25>>                                       <<03643>>06090000
         ;        <<26>>                                       <<03643>>06095000
         ;        <<27>>                                       <<03643>>06100000
         ;        <<28>>                                       <<03643>>06105000
         ;        <<29>>                                       <<03643>>06110000
         ;        <<30>>                                       <<03643>>06115000
         ;        <<31>>                                       <<03643>>06120000
         ;        <<32>>                                       <<03643>>06125000
         ;        <<33>>                                       <<03643>>06130000
         ;        <<34>>                                       <<03643>>06135000
         ;        <<35>>                                       <<03643>>06140000
         ;        <<36>>                                       <<03643>>06145000
         ;        <<37>>                                       <<03643>>06150000
         ;        <<38>>                                       <<03643>>06155000
         ;        <<39>>                                       <<03643>>06160000
         ;        <<40>>                                       <<03643>>06165000
         ;        <<41>>                                       <<03643>>06170000
         ;        <<42>>                                       <<03643>>06175000
         ;        <<43>>                                       <<03643>>06180000
         ;        <<44>>                                       <<03643>>06185000
         ;        <<45>>                                       <<03643>>06190000
         IF FIRSTIME THEN INFO46 ELSE INFO46';                 <<03643>>06195000
         IF FIRSTIME THEN INFO47 ELSE INFO47';  <<47>>         <<03643>>06200000
      END;                                                              06205000
      END;                                                              06210000
                                                                        06215000
                                                                        06220000
      LOGICAL PROCEDURE EFCHECK(FILENUM);                               06225000
      VALUE FILENUM;INTEGER FILENUM;                                    06230000
      BEGIN                                                             06235000
      INTEGER ERR,TLOG,NUM;                                             06240000
      DOUBLE BLOCKN;                                                    06245000
                                                                        06250000
      FCHECK(FILENUM,ERR,TLOG,BLOCKN);                                  06255000
      IF <> THEN                                                        06260000
         BEGIN                                                          06265000
         ERROR(18);                                                     06270000
         ERROR(0);                                                      06275000
         END;                                                           06280000
      EFCHECK:=ERR;                                                     06285000
      IF FILENUM = FOUT THEN                                   <<04226>>06290000
         IF ERR = EOT THEN  <<EOT FOUND ON FWRITE>>            <<04226>>06295000
            RECOVERABLERROR := TRUE;                           <<04226>>06300000
      MOVE OUTM:="ERROR NUMBER        ";                                06305000
      ASCII(ERR,10,OUTM(13));                                           06310000
      PRINT(OUTP,-16,0);                                                06315000
                                                                        06320000
END;<<EFCHECK>>                                                         06325000
                                                                        06330000
                                                                        06335000
                                                                        06340000
                                                                        06345000
                                                                        06350000
                                                                        06355000
                                                                        06360000
                                                                        06365000
                                                                        06370000
                                                                        06375000
                                                                        06380000
PROCEDURE ERROR(J);                                                     06385000
      VALUE J;                                                          06390000
      INTEGER J;                                                        06395000
      BEGIN                                                             06400000
      CASE J OF                                                         06405000
      BEGIN                                                             06410000
<<J=0>> QUIT(99);                                                       06415000
<<J=1>>  BEGIN                                                          06420000
         MOVE OUTM:=" BINARY INTRINSIC ERROR ";                         06425000
         PRINT (OUTP,-24,0);                                            06430000
         END;                                                           06435000
                                                                        06440000
<<J=2>>  BEGIN                                                          06445000
         MOVE OUTM:=" FPOINT ERROR ON LOG FILE";                        06450000
         PRINT(OUTP,-25,%320);                                          06455000
         END;                                                           06460000
                                                                        06465000
<<J=3>>  BEGIN                                                          06470000
         MOVE OUTM:=" FREAD ERROR ON LOG FILE";                         06475000
         PRINT(OUTP,-24,%320);                                          06480000
         END;                                                           06485000
                                                                        06490000
                                                                        06495000
<<J=4 >>  BEGIN                                                         06500000
          MOVE OUTM:="FATAL FREAD ERROR ON LOG FILE";                   06505000
          PRINT(OUTP,-29,%320);                                         06510000
          END;                                                          06515000
                                                                        06520000
                                                                        06525000
<<J=5 >>  BEGIN                                                         06530000
          MOVE OUTM:="FATAL FPOINT ERROR";                              06535000
          PRINT(OUTP,-18,%320);                                         06540000
          END;                                                          06545000
                                                                        06550000
                                                                        06555000
                                                                        06560000
                                                                        06565000
<<J=6 >>  BEGIN                                                         06570000
          MOVE OUTM:="FATAL FGETINFO ERROR";                            06575000
          PRINT(OUTP,-20,0);                                            06580000
          END;                                                          06585000
                                                                        06590000
                                                                        06595000
                                                                        06600000
<<J=7 >>  BEGIN                                                         06605000
          MOVE OUTM:="CALL TO WHO FAILED";                              06610000
          PRINT(OUTP,-18,0);                                            06615000
          END;                                                          06620000
                                                                        06625000
<<J=8 >>  BEGIN                                                         06630000
          MOVE OUTM:="FATAL COMMAND ERROR";                             06635000
          PRINT(OUTP,-19,0);                                            06640000
          END;                                                          06645000
                                                                        06650000
                                                                        06655000
<<J=9>> BEGIN                                                           06660000
        MOVE OUTM:="FOPEN ERROR TO LOGFILE                            ";06665000
        ASCII(PRESENTLOGFILE,10,OUTM(24));<<LOG #>>                     06670000
        PRINT(OUTP,-32,%320);                                           06675000
        END;                                                            06680000
                                                                        06685000
                                                                        06690000
<<J=10>> BEGIN                                                          06695000
         MOVE OUTM:="FOPEN TO LINE PRINTER FAILED-FATAL ERROR  ";       06700000
         PRINT(OUTP,-42,%320);                                          06705000
         END;                                                           06710000
                                                                        06715000
                                                                        06720000
                                                                        06725000
<<J=11>> BEGIN                                                          06730000
         MOVE OUTM:="FREAD FAILED FROM LOG FILE          ";             06735000
         ASCII(PRESENTLOGFILE,10,OUTM(28));                             06740000
         PRINT(OUTP,-36,%320);                                          06745000
         END;                                                           06750000
                                                                        06755000
                                                                        06760000
<<J=12>> BEGIN                                                          06765000
         MOVE OUTM:="FCLOSE FAILED TO LOG FILE              ";          06770000
         ASCII(PRESENTLOGFILE,10,OUTM(26));                             06775000
         PRINT(OUTP,-34,%320);                                          06780000
         END;                                                           06785000
                                                                        06790000
                                                                        06795000
<<J=13>> BEGIN << THIS ERROR MESSAGE WAS CHANGED BY THIS FIX >><<01167>>06800000
         MOVE OUTM := "INVALID EVENT NUMBER -- TRY AGAIN";     <<01167>>06805000
         PRINT(OUTP,-33,0);                                    <<01167>>06810000
         END;                                                           06815000
                                                                        06820000
<<J=14>> BEGIN                                                          06825000
         MOVE OUTM:="NO EVENTS TO BE EVALUATED-FATAL ERROR";            06830000
         PRINT(OUTP,-37,0);                                             06835000
         END;                                                           06840000
                                                                        06845000
                                                                        06850000
<<J=15>> BEGIN                                                          06855000
         MOVE OUTM := "FCLOSE ERROR ON  LINE PRINTER  ";       <<01182>>06860000
         PRINT(OUTP,-31,%320);                                 <<01182>>06865000
         END;                                                           06870000
                                                                        06875000
<<J=16>> QUIT(99);                                             <<00542>>06880000
                                                                        06885000
<<J=17>> BEGIN                                                          06890000
         MOVE OUTM:="FWRITE FAILED TO LINE PRINTER  ";                  06895000
         PRINT(OUTP,-31,%320);                                          06900000
         END;                                                           06905000
                                                                        06910000
<<J=18>> BEGIN                                                          06915000
         MOVE OUTM:="FCHECK ERROR-FATAL ERROR";                         06920000
         PRINT(OUTP,-24,0);                                             06925000
         END;                                                           06930000
<<J=19>> BEGIN                                                <<01.01>> 06935000
           MOVE OUTM:="FATAL ERROR ON $STDINX";               <<01.01>> 06940000
           PRINT (OUTP,-22,0);                                <<01.01>> 06945000
         END;                                                 <<01.01>> 06950000
<<J=20>> BEGIN                                                <<01.01>> 06955000
           MOVE OUTM:="END OF FILE ON $STDINX";               <<01.01>> 06960000
           PRINT (OUTP,-22,0);                                <<01.01>> 06965000
         END;                                                 <<01.01>> 06970000
<<J=21>> BEGIN  <<NORMAL TERMINATION AT EOF>>                 <<01.01>> 06975000
           TERMINATE;                                         <<01.01>> 06980000
         END;                                                 <<01.01>> 06985000
<<J=22>> BEGIN                                                 <<01166>>06990000
         MOVE OUTM := "EMPTY LOGFILE - LOGFILE        ";       <<01182>>06995000
         ASCII(PRESENTLOGFILE,10,OUTM(25));                    <<01166>>07000000
         PRINT(OUTP,-31,0);                                    <<01182>>07005000
         END;                                                  <<01166>>07010000
<<J=23>> BEGIN                                                 <<01167>>07015000
         MOVE OUTM :=                                          <<01167>>07020000
           " ** PROGRAM REQUIRES SYS. MGR. CAPABILITY **";     <<01167>>07025000
         PRINT(OUTP,-44,0);                                    <<01167>>07030000
         END;                                                  <<01167>>07035000
<<J=24>> BEGIN                                                 <<01167>>07040000
         MOVE OUTM := "EVENT LIST TOO LARGE -- TRY AGAIN";     <<01167>>07045000
         PRINT(OUTP,-33,0);                                    <<01167>>07050000
         END;                                                  <<01167>>07055000
<<J=25>> BEGIN                                                 <<04218>>07060000
         MOVE OUTM :=                                          <<04218>>07065000
            "NO DESIRED EVENTS FOUND IN LOGFILE       ";       <<04218>>07070000
         ASCII(PRESENTLOGFILE,10,OUTM(36));                    <<04218>>07075000
         PRINT(OUTP,-42,0);                                    <<04218>>07080000
         END;                                                  <<04218>>07085000
      END;                                                              07090000
                                                                        07095000
      END; <<ERROR>>                                                    07100000
                                                                        07105000
                                                                        07110000
      PROCEDURE BLANKBUFX;                                              07115000
      BEGIN                                                             07120000
      WBUFIN(0):=0;                                                     07125000
      MOVE WBUFIN(1) := WBUFIN,(BUFSIZE-1);                    <<01182>>07130000
      END;<<BLANKBUFX>>                                                 07135000
                                                                        07140000
                                                                        07145000
                                                                        07150000
                                                                        07155000
                                                                        07160000
                                                                        07165000
                                                                        07170000
      PROCEDURE CONDENSEEVENT;                                          07175000
      BEGIN                                                             07180000
      INTEGER PTR1,CNTR,LENGTH,PTR2;                                    07185000
                                                                        07190000
      EVENTTABLE:=0;<<ZERO ENTRIES IN TABLE>>                           07195000
      CNTR:=0;                                                          07200000
      PTR1:=0;                                                          07205000
      PTR2:=1;                                                          07210000
                                                                        07215000
                                                                        07220000
<< IF ALL EVENTS IS SPCIFIED THEN THE EVENTSTABLE IS  >>       <<03643>>07225000
<< INITIALIZED TO INDICATE ALL EVENTS ELSE A SCAN IS  >>       <<03643>>07230000
<< DONE IN NEXT BLOCK OF CODE (WHILE LOOP) TO INITIAL->>       <<03643>>07235000
<< THE EVENTSTABLE TO THE SPECIFIED EVENTS.           >>       <<03643>>07240000
                                                                        07245000
                                                                        07250000
      IF TEMP=0 THEN<<ALL EVENTS >>                                     07255000
         BEGIN                                                          07260000
         EVENTTABLE:=no'log'types+1;                           <<sp.01>>07265000
         WHILE CNTR < no'log'types+1                           <<sp.01>>07270000
         DO                                                             07275000
           BEGIN                                                        07280000
           EVENTTABLE(PTR2) := EVENT'LIST(CNTR);               <<03643>>07285000
           CNTR:=CNTR+1;                                                07290000
           PTR2:=PTR2+1;                                                07295000
           END;                                                         07300000
         Q1.(6:2):=2;<<SET CCE>>                                        07305000
         RETURN;                                                        07310000
         END;                                                           07315000
                                                                        07320000
                                                                        07325000
        WHILE CNTR < NO'LOG'TYPES+1                            <<01167>>07330000
        DO                                                              07335000
        BEGIN                                                           07340000
                                                                        07345000
TEST1:  SCAN EVENTS(PTR1) UNTIL ";,",1;<<SCAN FOR COMMA>>               07350000
        IF CARRY THEN                                                   07355000
           BEGIN                                                        07360000
           IF EVENTTABLE=0 THEN                                         07365000
              BEGIN                                                     07370000
              ERROR(14); <<NO EVENTS TO BE CALCULATED,FATAL>>  <<03643>>07375000
              ERROR(0);                                                 07380000
              END;                                                      07385000
           Q1.(6:2):=2;<<CCE--END OF SCAN>>                             07390000
           RETURN;                                                      07395000
           END;                                                         07400000
                                                                        07405000
                                                                        07410000
                                                                        07415000
        LENGTH:=TOS-(@EVENTS+PTR1);<<LENGTH OF FIRST ENTRY>>            07420000
        TEMP := BINARY(EVENTS(PTR1),LENGTH);                   <<01167>>07425000
         IF <> THEN                                            <<03643>>07430000
         BEGIN                                                          07435000
           ERROR(13);                                          <<01167>>07440000
           Q1.(6:2) := 1; << SET CCL >>                        <<01167>>07445000
           RETURN;                                             <<01167>>07450000
         END;                                                           07455000
                                                                        07460000
<< CHECK TO SEE THAT THE NUMBER(S) SPECIFIED IS IN RANGE>>     <<03643>>07465000
         VALID'TYPES := GOOD'TYPE;                             <<03643>>07470000
         IF NOT VALID'TYPES THEN                               <<03643>>07475000
            BEGIN                                              <<03643>>07480000
            ERROR(13);  << INVALID EVENT NUMBER >>             <<03643>>07485000
            Q1.(6:2) := 1; << SET CCL >>                       <<03643>>07490000
            RETURN;                                            <<03643>>07495000
            END;                                               <<03643>>07500000
        EVENTTABLE(PTR2) := TEMP; << STORE VALUE AWAY >>       <<01167>>07505000
                                                                        07510000
        EVENTTABLE:=EVENTTABLE+1;<<INC # OF ENTRIES IN TABLE>>          07515000
        CNTR:=CNTR+1;<<INC COUNTER>>                                    07520000
        PTR1:=PTR1+LENGTH+1;                                            07525000
        PTR2:=PTR2+1;                                                   07530000
        END;   << END OF PARSING LOOP >>                       <<01167>>07535000
                                                               <<01167>>07540000
      IF EVENTS(PTR1) = ";" THEN                               <<01167>>07545000
        Q1.(6:2) := 2   << OK, END OF LIST >>                  <<01167>>07550000
      ELSE                                                     <<01167>>07555000
        BEGIN                                                  <<01167>>07560000
        ERROR(24);                                             <<01167>>07565000
        Q1.(6:2) := 1;  << CCL, TOO MANY EVENTS ON LIST >>     <<01167>>07570000
        END;                                                   <<01167>>07575000
                                                               <<01167>>07580000
      END;<<CONDENSEEVENT>>                                             07585000
                                                                        07590000
                                                                        07595000
                                                                        07600000
                                                                        07605000
                                                                        07610000
                                                                        07615000
                                                                        07620000
                                                                        07625000
PROCEDURE GETRANGE;                                                     07630000
      BEGIN                                                             07635000
      INTEGER L;                                                        07640000
                                                                        07645000
                                                                        07650000
START:MOVE OUTM:="ENTER FIRST AND LAST LOG FILE TO BE ANALYZED";        07655000
      PRINT(OUTP,-44,0);                                                07660000
      MOVE OUTM:="FIRST?";                                              07665000
      PRINT(OUTP,-6,%320);                                              07670000
      L := READ(WINPUT,-29);  <<READ LOG FILE>>                <<01.01>>07675000
      IF L =0 THEN GO TRYAGAIN;                                         07680000
      FIRST'LOG'NUM:=BINARY(INPUT,L);                          <<MS.00>>07685000
      IF <> THEN GO TRYAGAIN;                                  <<01167>>07690000
                                                               <<01167>>07695000
      MOVE OUTM:="LAST?";                                               07700000
      PRINT(OUTP,-5,%320);                                              07705000
      L := READ(WINPUT,-29);                                   <<01.01>>07710000
      IF L=0 THEN                                                       07715000
        BEGIN                                                           07720000
       LAST:=FIRST'LOG'NUM;                                    <<MS.00>>07725000
        RETURN;                                                         07730000
        END;                                                            07735000
      LAST:=BINARY(INPUT,L);                                            07740000
      IF <> THEN GO TRYAGAIN;                                  <<01167>>07745000
                                                               <<01167>>07750000
      RETURN;                                                           07755000
                                                                        07760000
                                                                        07765000
                                                                        07770000
TRYAGAIN:                                                               07775000
                                                                        07780000
      MOVE OUTM:="ERROR IN INPUT--TRY AGAIN";                           07785000
      PRINT(OUTP,-25,0);                                                07790000
GO START;                                                     <<01.01>> 07795000
END<<GETRANGE>>;                                              <<01.01>> 07800000
$PAGE                                                         <<01.01>> 07805000
INTEGER PROCEDURE READ(BUF,EXPLEN);                           <<01.01>> 07810000
   VALUE EXPLEN;                                              <<01.01>> 07815000
   ARRAY BUF;                                                 <<01.01>> 07820000
   INTEGER EXPLEN;                                            <<01.01>> 07825000
BEGIN                                                         <<01.01>> 07830000
                                                              <<01.01>> 07835000
                                                              <<01.01>> 07840000
BYTE POINTER BBUF;                                            <<01.01>> 07845000
INTEGER LEN=READ, X=X;                                        <<01.01>> 07850000
EQUATE CR=%15, BLANK=%40;                                     <<01.01>> 07855000
LEN := READX(BUF,EXPLEN);                                     <<01.01>> 07860000
IF < THEN                                                     <<01.01>> 07865000
BEGIN                                                         <<01.01>> 07870000
   ERROR(19);  <<FATAL ERROR ON $STDINX>>                     <<01.01>> 07875000
   ERROR(0);   <<CALL QUIT INTRINSIC>>                        <<01.01>> 07880000
END                                                           <<01.01>> 07885000
ELSE                                                          <<01.01>> 07890000
IF > THEN                                                     <<01.01>> 07895000
BEGIN                                                         <<01.01>> 07900000
   ERROR(20);  <<EOF ON $STDINX DETECTED>>                    <<01.01>> 07905000
   ERROR(21);  <<CALL TERMINATE INTRINSIC>>                   <<01.01>> 07910000
END;                                                          <<01.01>> 07915000
IF JOB AND NOT DUPLICATIVE THEN PRINT(BUF,-LEN,0);            <<01.01>> 07920000
IF LEN = 0 THEN RETURN;                                       <<01.01>> 07925000
@BBUF := @BUF&LSL(1);                                         <<01.01>> 07930000
BBUF(LEN) := CR;                                              <<01.01>> 07935000
IF BBUF = BLANK THEN                                          <<01.01>> 07940000
   BEGIN  << STRIP LEADING BLANKS >>                          <<01.01>> 07945000
   SCAN BBUF WHILE [8/CR,8/BLANK],1;                          <<01.01>> 07950000
   IF CARRY THEN                                              <<01.01>> 07955000
      BEGIN  << NO NON-BLANK CHARACTERS FOUND >>              <<01.01>> 07960000
      LEN := 0;                                               <<01.01>> 07965000
      RETURN;                                                 <<01.01>> 07970000
      END;                                                    <<01.01>> 07975000
   X := TOS - @BBUF;                                          <<01.01>> 07980000
   LEN := LEN - X;                                            <<01.01>> 07985000
   MOVE BBUF := BBUF(X),(LEN);                                <<01.01>> 07990000
   END;                                                       <<01.01>> 07995000
IF BBUF(LEN-1) = BLANK THEN                                   <<01.01>> 08000000
   BEGIN  << STRIP TRAILING BLANKS >>                         <<01.01>> 08005000
   IF BBUF(LEN-2) = BBUF(LEN-1),(1-LEN),2 THEN ;              <<01.01>> 08010000
   LEN := TOS - @BBUF + 1;                                    <<01.01>> 08015000
   END;                                                       <<01.01>> 08020000
END;                                                          <<01.01>> 08025000
                                                                        08030000
                                                                        08035000
      PROCEDURE GETEVENT;                                               08040000
      BEGIN                                                             08045000
      INTEGER LENGTH;                                                   08050000
                                                                        08055000
      <<GET EVENTS TO BE PRINTED>>                                      08060000
                                                                        08065000
                                                                        08070000
START:                                                                  08075000
      MOVE OUTM:="ENTER EVENTS TO BE PRINTED";                          08080000
      PRINT(OUTP,-26,0);                                                08085000
                                                                        08090000
      PRINT(E1,-27,0);                                                  08095000
      PRINT(E1A,-27,0);                                                 08100000
      PRINT(E1B,-27,0);                                                 08105000
      PRINT(E2,-27,0);                                                  08110000
      PRINT(E3,-27,0);                                                  08115000
      PRINT(E4,-27,0);                                                  08120000
      PRINT(E5,-27,0);                                                  08125000
      PRINT(E6,-27,0);                                                  08130000
      PRINT(E7,-27,0);                                                  08135000
      PRINT(E8,-27,0);                                                  08140000
      PRINT(E9,-27,0);                                                  08145000
      PRINT(E10,-27,0);                                                 08150000
      PRINT(E11,-27,0);                                                 08155000
      PRINT(E12,-27,0);                                        <<TL.02>>08160000
      PRINT(E13,-27,0);                                        <<TL.02>>08165000
      PRINT(E14,-27,0);                                        <<TL.02>>08170000
      PRINT(E15,-27,0);                                        <<00095>>08175000
      PRINT(E16,-26,0);                                        <<03643>>08180000
      PRINT(E17, -27, 0);                                      <<04854>>08185000
      PRINT(E18, -27, 0);                                      <<04854>>08190000
      PRINT(E46,-26,0);                                        <<03643>>08195000
      PRINT(E47,-29,0);                                        <<03643>>08200000
                                                                        08205000
                                                                        08210000
      MOVE OUTM:="ENTER EVENT NUMBERS SEPARATED BY COMMAS?";            08215000
      PRINT(OUTP,-40,0);                                       <<01182>>08220000
                                                                        08225000
     MOVE OUTM:=                                                        08230000
     "A CARRIAGE RETURN ASSUMES ALL EVENTS WILL BE EVALUATED ";         08235000
      PRINT(OUTP,-55,0);                                                08240000
                                                                        08245000
      LENGTH := READ(WEVENTS,-70); <<READ EVENTS>>             <<01.01>>08250000
      IF LENGTH=0 THEN                                                  08255000
         BEGIN                                                          08260000
         TEMP:=0;                                                       08265000
         RETURN;                                                        08270000
         END                                                            08275000
      ELSE TEMP:=-1;                                                    08280000
      MOVE EVENTS(LENGTH) := ",;";  << TERMINATING CHARACTER >><<01167>>08285000
                                                                        08290000
                                                                        08295000
      END;<<GETEVENT>>                                                  08300000
                                                                        08305000
                                                                        08310000
                                                                        08315000
                                                                        08320000
                                                                        08325000
                                                                        08330000
                                                                        08335000
      PROCEDURE OPENLOG(FNUM);                                          08340000
      VALUE FNUM;INTEGER FNUM;                                          08345000
      <<FOPEN THE LOG FILE>>                                            08350000
                                                                        08355000
      BEGIN                                                             08360000
      BYTE ARRAY LOGNUM(0:20);                                          08365000
                                                                        08370000
                                                                        08375000
      MOVE LOGNUM:="LOG0000           ";   <<00.03>>                    08380000
      ASCII(FNUM,-10,LOGNUM(6)); <<00.03>>                              08385000
      MOVE LOGNUM(7):=".PUB.SYS";<<00.03>>                              08390000
      FILENUM := FOPEN(LOGNUM,%2101,%100);                     <<01182>>08395000
                                                                        08400000
      IF <> THEN                                                        08405000
         BEGIN                                                          08410000
         ERROR(9);                                                      08415000
         EFCHECK(FILENUM);                                              08420000
         Q1.(6:2):=1;<<CCL BAD FOPEN>>                                  08425000
         RETURN;                                                        08430000
         END                                                            08435000
         ELSE Q1.(6:2):=2;<<GOOD FOPEN>>                                08440000
                                                                        08445000
                                                                        08450000
                                                                        08455000
      END;<<OPENLOG>>                                                   08460000
                                                                        08465000
                                                                        08470000
      PROCEDURE PRINTLOG;                                               08475000
      BEGIN                                                             08480000
                                                               <<00542>>08485000
                                                               <<00542>>08490000
      << READS THE LOG FILE AND PRINTS THE RESULTS>>           <<00542>>08495000
                                                               <<00542>>08500000
NEXTREC:                                                       <<MS.00>>08505000
                                                               <<00542>>08510000
      IF FIRST THEN                                            <<00542>>08515000
        BEGIN                                                  <<00542>>08520000
          FIRST:=FALSE;                                        <<00542>>08525000
          BLANKBUFX;                                           <<00542>>08530000
          READNEXT;<<READ FIRST RECORD OF THE LOG FILE>>       <<00542>>08535000
          IF <> THEN                                           <<01166>>08540000
            BEGIN                                              <<01166>>08545000
            IF > THEN ERROR(22);  << LOG FILE EMPTY >>         <<01166>>08550000
            GO NEXTLOG;                                        <<01166>>08555000
            END;                                               <<01166>>08560000
           NEED'NEW'PAGE :=TRUE;                               <<04218>>08565000
        END                                                    <<00542>>08570000
      ELSE                                                     <<00542>>08575000
        BEGIN                                                  <<00542>>08580000
          BLANKBUFX;<<ZERO BUFFER>>                            <<00542>>08585000
          READNEXT;<<READ NEXT RECORD OF THE LOG FILE>>        <<00542>>08590000
          IF <> THEN GO NEXTLOG;<<END OF LOG FILE>>            <<00542>>08595000
                                                               <<03643>>08600000
  << CHECK RPP, RECORDS PER PAGE COUNT  >>                     <<03643>>08605000
          IF RPP>=19 OR WBUFIN(2) <> LOGICAL(CYD)              <<01167>>08610000
             THEN NEED'NEW'PAGE := TRUE;                       <<04218>>08615000
        END;                                                   <<00542>>08620000
      RECTYPE:=WBUFIN(0);                                      <<00542>>08625000
      RIGHTRECTYPE(RECTYPE);<<PRINT EVENT???>>                 <<00542>>08630000
      IF <> THEN GO NEXTREC;                                   <<00542>>08635000
                                                               <<00542>>08640000
      FIRSTIME := TRUE;                                        <<01182>>08645000
      IF NEED'NEW'PAGE THEN                                    <<04218>>08650000
         BEGIN                                                 <<04218>>08655000
         PAGETITLE;                                            <<04218>>08660000
         NEED'NEW'PAGE := FALSE;                               <<04218>>08665000
         END;                                                  <<04218>>08670000
      EVENT'PRINTED := TRUE;                                   <<04218>>08675000
AGAIN:CLEARBUF;<<BLANK BUFFER>>                                         08680000
      RECTYPEP(RECTYPE);<<PRINT TITLE>>                                 08685000
                                                                        08690000
                                                                        08695000
      CLEARBUF;<<CLEAR BUFFER>>                                         08700000
      IF FIRSTIME THEN COMINFO;<<MOVE  INFO OF THE LOG                  08705000
                   RECORD>>                                             08710000
                                                                        08715000
                                                                        08720000
                                                                        08725000
       INFOP(RECTYPE);<<PRINT LOG RECORD INFO>>                         08730000
                                                                        08735000
      IF RECTYPE=9 OR RECTYPE=11 OR RECTYPE=8 OR               <<04206>>08740000
         RECTYPE = 46 OR RECTYPE= 47 THEN                      <<03643>>08745000
        BEGIN                                                           08750000
      IF FIRSTIME THEN                                                  08755000
         BEGIN                                                          08760000
         FIRSTIME:=FALSE;<<RESET FLAG>>                                 08765000
         GO AGAIN;                                                      08770000
         END;                                                           08775000
      END;                                                              08780000
                                                                        08785000
      SEPAR;<<PRINT SEPARATER>>                                         08790000
                                                                        08795000
  << ADJUST THE RECORDS PER PAGE COUNT TO TAKE INTO   >>       <<03643>>08800000
  << ACCOUNT THAT SOME RECORD TYPES PRINT MORE THAN   >>       <<03643>>08805000
  << ONE LINE PER RECORD.                             >>       <<03643>>08810000
      IF RECTYPE = 8 OR RECTYPE = 9 OR                         <<04206>>08815000
         RECTYPE = 11 OR RECTYPE = 47  THEN                    <<04206>>08820000
        RPP := RPP + 3                                         <<01182>>08825000
      ELSE IF RECTYPE=13 THEN                                  <<01182>>08830000
        RPP := RPP + 4                                         <<01182>>08835000
      ELSE IF RECTYPE = 46 THEN                                <<03643>>08840000
         RPP := RPP + RPPCOUNT(LOGGEDATA'COUNT)                <<03643>>08845000
      ELSE                                                     <<03643>>08850000
        RPP := RPP + 1;                                        <<01182>>08855000
                                                                        08860000
      GO NEXTREC;              <<LOOK AT NEXT LOG RECORD    >> <<04218>>08865000
NEXTLOG:                                                                08870000
                                                                        08875000
       IF NOT EVENT'PRINTED THEN                               <<04218>>08880000
           ERROR(25); << NOT DESIRED EVENTS FOUND IN LOGFILE>> <<04218>>08885000
       EVENT'PRINTED := FALSE;                                 <<04218>>08890000
                                                                        08895000
                                                                        08900000
                                                                        08905000
                                                                        08910000
                                                                        08915000
                                                                        08920000
      END;<<PRINRLOG>>                                                  08925000
                                                                        08930000
                                                                        08935000
                                                                        08940000
                                                                        08945000
                                                                        08950000
                                                                        08955000
                                                                        08960000
      PROCEDURE PURGEFILE;                                              08965000
      BEGIN                                                             08970000
      FCLOSE(FILENUM,(IF PURGEFLAG THEN 4 ELSE 0),0);          <<SP.01>>08975000
<< 4 DELETES FILE FROM SYS/ 0 CLOSES FILE W/ NO CHANGE  >>     <<03643>>08980000
         IF <> THEN                                                     08985000
           BEGIN                                                        08990000
           ERROR(12);<<FCLOSE ERROR>>                                   08995000
           EFCHECK(FILENUM);                                            09000000
           RETURN;                                                      09005000
           END;                                                         09010000
      END;<<PURGEFILE>>                                                 09015000
                                                                        09020000
                                                                        09025000
                                                                        09030000
                                                                        09035000
                                                                        09040000
      PROCEDURE READNEXT;                                               09045000
      BEGIN                                                             09050000
      << READS THE NEXT RECORD OF THE LOG FILE>>                        09055000
                                                                        09060000
      FC := FREAD(FILENUM,WBUFIN,BUFSIZE);                     <<01182>>09065000
      IF <> THEN                                                        09070000
         BEGIN                                                          09075000
         IF > THEN                                                      09080000
           BEGIN                                                        09085000
           Q1.(6:2):=0;<<SET CCG-END OF LOG FILE>>             <<MS.00>>09090000
           RETURN;                                                      09095000
           END;                                                         09100000
         ERROR(11);                                                     09105000
         EFCHECK(FILENUM);                                              09110000
         Q1.(6:2):=1;<<SET CCL>>                               <<MS.00>>09115000
         RETURN;                                                        09120000
         END;                                                           09125000
                                                                        09130000
      IF FC =0 THEN                                                     09135000
      Q1.(6:2):=0<<SET CCG  END OF LOG FILE>>                  <<MS.00>>09140000
      ELSE Q1.(6:2):=2;<<CCE  GOOD READ>>                               09145000
                                                                        09150000
                                                               <<MS.00>>09155000
      END;<<READNEXT>>                                                  09160000
                                                                        09165000
                                                                        09170000
                                                                        09175000
                                                                        09180000
      PROCEDURE RIGHTRECTYPE(TYPE);                                     09185000
      VALUE TYPE;LOGICAL TYPE;                                          09190000
      BEGIN                                                             09195000
      LOGICAL CTN;                                                      09200000
                                                                        09205000
      CTN:=1;                                                           09210000
                                                                        09215000
<< COMPARES THE REC TYPE READ IN FROM THE LOG RECORD    >>     <<03643>>09220000
<< WITH THE RECORD TYPES SPECIFIED IN THE EVENTABLE.    >>     <<03643>>09225000
                                                                        09230000
      WHILE CTN <= EVENTTABLE                                           09235000
        DO                                                              09240000
        BEGIN                                                           09245000
        IF EVENTTABLE(CTN)=TYPE THEN                                    09250000
           BEGIN                                                        09255000
           Q1.(6:2):=2;<<SET CCE--RIGHT ENTRY>>                         09260000
           RETURN;                                                      09265000
           END;                                                         09270000
                                                                        09275000
        CTN:=CTN+1;<<IN TABLE INDEX>>                                   09280000
        END;                                                            09285000
                                                                        09290000
      Q1.(6:2):=1;<<SET CCL-COULD NOT FIND ENTRY IN TABLE>>             09295000
                                                                        09300000
                                                                        09305000
      END;<<RIGHTRECTYPE>>                                              09310000
                                                                        09315000
                                                                        09320000
                                                                        09325000
                                                                        09330000
                                                                        09335000
                                                                        09340000
                                                                        09345000
                                                                        09350000
                                                                        09355000
                                                                        09360000
                                                                        09365000
                                                                        09370000
                                                                        09375000
                                                                        09380000
                                                                        09385000
<<MAIN>>                                                                09390000
                                                               <<07236>>09395000
<< Note:  when adding any new log types the DEFINE >>          <<07236>>09400000
<<        GOOD'TYPE must be changed to reflect that>>          <<07236>>09405000
<<        change so those new log types will be in >>          <<07236>>09410000
<<        a valid range.                           >>          <<07236>>09415000
<<*************************************************>>          <<07236>>09420000
                                                               <<07236>>09425000
                                                                        09430000
START:                                                                  09435000
       CYD := 0;                                               <<MS.00>>09440000
      FIRST:=TRUE;                                                      09445000
      MOVE OUTM:=PTITLE,2;                                     <<01.01>>09450000
      MOVE OUTM( VUUFF'COL ) := OFFICIAL'VUUFF;                <<04225>>09455000
      PRINT(OUTP,-(S0 := S0-@OUTM),0);                         <<01.01>>09460000
      DEL;  << remove length from TOS >>                       <<07441>>09465000
                                                                        09470000
      << check to see if we are running on MPE-IV     >>       <<07441>>09475000
      << If we are, quit, since this is MPE-V         >>       <<07441>>09480000
                                                               <<07441>>09485000
      MOVE BUFOUT := "MPE ";  << The procedure MPE >>          <<07441>>09490000
      LOADPROC( BUFOUT, 0, MPELABEL );  << search system SL >> <<07441>>09495000
      IF =                                                     <<07441>>09500000
      THEN BEGIN                                               <<07441>>09505000
        TOS := 0;        << this will be the return value >>   <<07441>>09510000
        TOS := MPELABEL;                                       <<07441>>09515000
        ASSEMBLE( PCAL 0 );  << call "MPE" >>                  <<07441>>09520000
        if TOS = 5 THEN GOTO MPEV;                             <<07441>>09525000
      END;                                                     <<07441>>09530000
                                                               <<07441>>09535000
      << this isn't MPE-V, tell the user and terminate >>      <<07441>>09540000
      MPELABEL := MOVE BUFOUT :=                               <<07441>>09545000
        "This version will work only on MPE-V";                <<07441>>09550000
      PRINT (WBUFOUT,-MPELABEL,0);                             <<07441>>09555000
      TERMINATE;                                               <<07441>>09560000
                                                               <<07441>>09565000
MPEV:  << we get here only if we are on MPE-V >>               <<07441>>09570000
                                                               <<07441>>09575000
      WHO(MODE,CAPD);                                          <<01167>>09580000
      IF MODE=0 THEN                                          <<01.01>> 09585000
      BEGIN                                                   <<01.01>> 09590000
         ERROR(7);                                            <<01.01>> 09595000
         ERROR(0);                                            <<01.01>> 09600000
      END;                                                    <<01.01>> 09605000
      IF NOT SYSMGR THEN                                       <<01167>>09610000
        BEGIN                                                  <<01167>>09615000
        ERROR(23);                                             <<01167>>09620000
        ERROR(0);                                              <<01167>>09625000
        END;                                                   <<01167>>09630000
      XCONTRAP (@CY,TEMP);  <<TURN ON CONTROL Y>>       <<00.04>>       09635000
      IF < THEN                                          <<00.06>>      09640000
         IF MODE.(12:2)=1 THEN QUIT(1);  <<ABORT IF SESSION>>  <<01.01>>09645000
                                                                        09650000
         FOUT := FOPEN(LLIST,%0404,1,-132,LP);                 <<01182>>09655000
         IF <> THEN                                                     09660000
            BEGIN                                                       09665000
            ERROR(10);                                                  09670000
            EFCHECK(FOUT);                                              09675000
            ERROR(0);                                                   09680000
            END;                                                        09685000
                                                                        09690000
                                                                        09695000
                                                                        09700000
                                                                        09705000
      GETRANGE;<<LOGFILES TO BE EVALUATED>>                             09710000
EVEN: GETEVENT;<<EVENTS TO BE PRINTED>>                                 09715000
      CONDENSEEVENT;  << INITIALIZE EVENTTABLE >>              <<01544>>09720000
      IF <> THEN GO EVEN;                                      <<01544>>09725000
                                                               <<01544>>09730000
PURGE:MOVE OUTM:="DO YOU WANT TO PURGE LOG FILES (Y/N)?";      <<01167>>09735000
      PRINT(OUTP,-37,%320);                                    <<01167>>09740000
      CNT := READ(WINPUT,-5);                                  <<01.01>>09745000
      IF CNT=0 THEN GO PURGE;                                           09750000
      IF INPUT = "Y" OR INPUT = "y"                            <<01544>>09755000
         THEN PURGEFLAG := TRUE                                <<01544>>09760000
      ELSE IF INPUT = "N" OR INPUT = "n"                       <<01544>>09765000
         THEN PURGEFLAG := FALSE                               <<01544>>09770000
      ELSE GO PURGE;                                           <<01544>>09775000
                                                                        09780000
                                                                        09785000
                                                                        09790000
      PRESENTLOGFILE:=FIRST'LOG'NUM;                           <<MS.00>>09795000
                                                               <<01544>>09800000
                                                               <<01544>>09805000
                                                                        09810000
      WHILE PRESENTLOGFILE <= LAST                                      09815000
         DO                                                             09820000
         BEGIN                                                          09825000
         OPENLOG(PRESENTLOGFILE);                                       09830000
         IF >= THEN                                            <<04218>>09835000
            BEGIN                                              <<04218>>09840000
            PRINTLOG;          <<PRINT CURRENT LOG FILE>>      <<04218>>09845000
            PURGEFILE;         <<FCLOSE/PURGE LOG FILE >>      <<04218>>09850000
            END;                                               <<04218>>09855000
                                                               <<04218>>09860000
         PRESENTLOGFILE := PRESENTLOGFILE + 1;  <<NEXT LOG FILE<<04218>>09865000
         FIRST := TRUE;        <<RESET FIRST TIME THRU LOG FILE<<04218>>09870000
         END;                  <<END TO WHILE LOOP             <<04218>>09875000
                                                                        09880000
                                                                        09885000
AGAIN:                                                                  09890000
                                                                        09895000
      MOVE OUTM:="DO YOU WISH TO RUN AGAIN(Y OR N)?";                   09900000
      PRINT(OUTP,-33,%320);                                             09905000
      CNT := READ(WINPUT,-5);                                  <<01.01>>09910000
      IF CNT=0 THEN GO AGAIN;                                           09915000
      IF INPUT = "Y" OR INPUT = "y" THEN                       <<01544>>09920000
         BEGIN                                                          09925000
         FCLOSE(FOUT,1,0);<<CLOSE LINE PRINTER FILE>>                   09930000
         IF  <> THEN                                                    09935000
            BEGIN                                                       09940000
            ERROR(15);                                                  09945000
            EFCHECK(FOUT);                                              09950000
            END;                                                        09955000
         PUSH(Q);SET(S);<<RESET STACK>>                                 09960000
         GO START;                                                      09965000
         END                                                            09970000
         ELSE                                                           09975000
         IF INPUT <> "N" AND INPUT <> "n"                      <<01544>>09980000
            THEN GO AGAIN;                                     <<01544>>09985000
                                                                        09990000
                                                                        09995000
                                                                        10000000
                                                                        10005000
                                                                        10010000
                                                                        10015000
                                                                        10020000
      FCLOSE(FOUT,1,0);                                                 10025000
      IF <> THEN                                               <<01182>>10030000
        BEGIN                                                  <<01182>>10035000
        ERROR(15);                                             <<01182>>10040000
        EFCHECK(FOUT);                                         <<01182>>10045000
        END;                                                   <<01182>>10050000
                                                                        10055000
                                                                        10060000
END.                                                                    10065000
