<< 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
