Significant progress to getting pl1$pl1 to compile something, implemented many necess... master
authorNick Downing <nick@ndcode.org>
Sat, 2 Nov 2019 12:03:56 +0000 (23:03 +1100)
committerNick Downing <nick@ndcode.org>
Sat, 2 Nov 2019 12:03:56 +0000 (23:03 +1100)
15 files changed:
Makefile
access_mode_values.h [new file with mode: 0644]
dps8/dps8_append.c
dps8/dps8_cpu.c
dps8/dps8_cpu.h
dps8/dps8_ins.c
dump_entries.c
iox_modes.h [new file with mode: 0644]
multics_sim.c
pl1/access_mode_values.incl.pl1 [new file with mode: 0644]
pl1/fs_search.pl1 [new file with mode: 0644]
pl1/iox_.alm [new file with mode: 0644]
pl1/iox_init_.pl1 [new file with mode: 0644]
pl1/iox_modes.incl.pl1 [new file with mode: 0644]
pl1/v2pl1.list [new file with mode: 0644]

index 35dec3f..345bcd7 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-CFLAGS=-g -std=c99 -U__STRICT_ANSI__ -IdecNumber -Idps8 -D_GNU_SOURCE -DUSE_READER_THREAD -DUSE_INT64 -DTESTING -DEMULATOR_ONLY=1 -Wall -Wno-address -Wno-comment -Wno-unused-label -Wno-unused-result -Wno-unused-value -Wno-unused-variable -Wno-unused-function
+CFLAGS=-g -std=c99 -U__STRICT_ANSI__ -IdecNumber -Idps8 -D_GNU_SOURCE -DUSE_READER_THREAD -DUSE_INT64 -DTESTING -DEMULATOR_ONLY=1 -DUSE_ADDR64 -Wall -Wno-address -Wno-comment -Wno-unused-label -Wno-unused-result -Wno-unused-value -Wno-unused-variable -Wno-unused-function
 #-O3
 
 all: multics_sim dump_entries dump_segments
diff --git a/access_mode_values.h b/access_mode_values.h
new file mode 100644 (file)
index 0000000..2bcd4ff
--- /dev/null
@@ -0,0 +1,101 @@
+#ifndef _ACCESS_MODE_VALUES_H
+#define _ACCESS_MODE_VALUES_H
+
+// dcl (
+enum {
+  // N_ACCESS init ("000"b),
+  N_ACCESS = 0,
+
+  // R_ACCESS init ("100"b),
+  R_ACCESS = 4,
+
+  // E_ACCESS init ("010"b),
+  E_ACCESS = 2,
+
+  // W_ACCESS init ("001"b),
+  W_ACCESS = 1,
+
+  // RE_ACCESS init ("110"b),
+  RE_ACCESS = 6,
+
+  // REW_ACCESS init ("111"b),
+  REW_ACCESS = 7,
+
+  // RW_ACCESS init ("101"b),
+  RW_ACCESS = 5,
+
+  // S_ACCESS init ("100"b),
+  S_ACCESS = 4,
+  // M_ACCESS init ("010"b),
+  M_ACCESS = 2,
+  // A_ACCESS init ("001"b),
+  A_ACCESS = 1,
+
+  // SA_ACCESS init ("101"b),
+  SA_ACCESS = 5,
+
+  // SM_ACCESS init ("110"b),
+  SM_ACCESS = 6,
+
+  // SMA_ACCESS init ("111"b)
+  SMA_ACCESS = 7
+
+  // ) bit (3) internal static options (constant);
+};
+
+/* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or
+ 2) divide (bin_value, 2) to come up with an index into the array. */
+
+// dcl SEG_ACCESS_MODE_NAMES (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal
+  // static options (constant);
+
+// dcl DIR_ACCESS_MODE_NAMES (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal
+  // static options (constant);
+
+// dcl (
+enum {
+  // N_ACCESS_BIN init (00000b),
+  N_ACCESS_BIN = 0,
+
+  // R_ACCESS_BIN init (01000b),
+  R_ACCESS_BIN = 010,
+
+  // E_ACCESS_BIN init (00100b),
+  E_ACCESS_BIN = 4,
+
+  // W_ACCESS_BIN init (00010b),
+  W_ACCESS_BIN = 2,
+
+  // RW_ACCESS_BIN init (01010b),
+  RW_ACCESS_BIN = 012,
+
+  // RE_ACCESS_BIN init (01100b),
+  RE_ACCESS_BIN = 014,
+
+  // REW_ACCESS_BIN init (01110b),
+  REW_ACCESS_BIN = 016,
+
+  // S_ACCESS_BIN init (01000b),
+  S_ACCESS_BIN = 010,
+
+  // M_ACCESS_BIN init (00010b),
+  M_ACCESS_BIN = 2,
+
+  // A_ACCESS_BIN init (00001b),
+  A_ACCESS_BIN = 1,
+
+  // SA_ACCESS_BIN init (01001b),
+  SA_ACCESS_BIN = 011,
+
+  // SM_ACCESS_BIN init (01010b),
+  SM_ACCESS_BIN = 012,
+
+  // SMA_ACCESS_BIN init (01011b)
+  SMA_ACCESS_BIN = 013
+
+  // ) fixed bin (5) internal static options (constant);
+};
+
+#endif
index c68b4dc..f797c55 100644 (file)
@@ -102,992 +102,992 @@ void set_apu_status (apuStatusBits status)
   }
 #endif
 
-#ifdef WAM
-static char *str_sdw (char * buf, sdw_s *SDW);
-#endif
-
+//#ifdef WAM
+//static char *str_sdw (char * buf, sdw_s *SDW);
+//#endif
 //
-// 
-//  The Use of Bit 29 in the Instruction Word
-//  The reader is reminded that there is a preliminary step of loading TPR.CA
-//  with the ADDRESS field of the instruction word during instruction decode.
-//  If bit 29 of the instruction word is set to 1, modification by pointer
-//  register is invoked and the preliminary step is executed as follows:
-//  1. The ADDRESS field of the instruction word is interpreted as shown in
-//  Figure 6-7 below.
-//  2. C(PRn.SNR) -> C(TPR.TSR)
-//  3. maximum of ( C(PRn.RNR), C(TPR.TRR), C(PPR.PRR) ) -> C(TPR.TRR)
-//  4. C(PRn.WORDNO) + OFFSET -> C(TPR.CA) (NOTE: OFFSET is a signed binary
-//  number.)
-//  5. C(PRn.BITNO) -> TPR.BITNO
-//
-
-
-// Define this to do error detection on the PTWAM table.
-// Useful if PTWAM reports an error message, but it slows the emulator
-// down 50%
-
-#ifdef do_selftestPTWAM
-static void selftest_ptwaw (void)
-  {
-    int usages[N_WAM_ENTRIES];
-    for (int i = 0; i < N_WAM_ENTRIES; i ++)
-      usages[i] = -1;
-
-    for (int i = 0; i < N_WAM_ENTRIES; i ++)
-      {
-        ptw_s * p = cpu.PTWAM + i;
-        if (p->USE > N_WAM_ENTRIES - 1)
-          sim_printf ("PTWAM[%d].USE is %d; > %d!\n",
-                      i, p->USE, N_WAM_ENTRIES - 1);
-        if (usages[p->USE] != -1)
-          sim_printf ("PTWAM[%d].USE is equal to PTWAM[%d].USE; %d\n",
-                      i, usages[p->USE], p->USE);
-        usages[p->USE] = i;
-      }
-    for (int i = 0; i < N_WAM_ENTRIES; i ++)
-      {
-        if (usages[i] == -1)
-          sim_printf ("No PTWAM had a USE of %d\n", i);
-      }
-  }
-#endif
-
-/**
- * implement ldbr instruction
- */
-
-void do_ldbr (word36 * Ypair)
-  {
-    CPTUR (cptUseDSBR);
-#ifdef WAM
-    if (! cpu.switches.disable_wam) 
-      {
-        if (cpu.cu.SD_ON) 
-          {
-            // If SDWAM is enabled, then
-            //   0 -> C(SDWAM(i).FULL) for i = 0, 1, ..., 15
-            //   i -> C(SDWAM(i).USE) for i = 0, 1, ..., 15
-            for (uint i = 0; i < N_WAM_ENTRIES; i ++)
-              {
-                cpu.SDWAM[i].FE = 0;
-#ifdef L68
-                cpu.SDWAM[i].USE = (word4) i;
-#endif
-#ifdef DPS8M
-                cpu.SDWAM[i].USE = 0;
-#endif
-              }
-          }
-
-        if (cpu.cu.PT_ON) 
-          {
-            // If PTWAM is enabled, then
-            //   0 -> C(PTWAM(i).FULL) for i = 0, 1, ..., 15
-            //   i -> C(PTWAM(i).USE) for i = 0, 1, ..., 15
-            for (uint i = 0; i < N_WAM_ENTRIES; i ++)
-              {
-                cpu.PTWAM[i].FE = 0;
-#ifdef L68
-                cpu.PTWAM[i].USE = (word4) i;
-#endif
-#ifdef DPS8M
-                cpu.PTWAM[i].USE = 0;
-#endif
-              }
-#ifdef do_selftestPTWAM
-            selftest_ptwaw ();
-#endif
-          }
-      }
-#else
-    cpu.SDW0.FE = 0;
-    cpu.SDW0.USE = 0;
-    cpu.PTW0.FE = 0;
-    cpu.PTW0.USE = 0;
-#endif // WAM
-
-    // If cache is enabled, reset all cache column and level full flags
-    // XXX no cache
-
-    // C(Y-pair) 0,23 -> C(DSBR.ADDR)
-    cpu.DSBR.ADDR = (Ypair[0] >> (35 - 23)) & PAMASK;
-
-    // C(Y-pair) 37,50 -> C(DSBR.BOUND)
-    cpu.DSBR.BND = (Ypair[1] >> (71 - 50)) & 037777;
-
-    // C(Y-pair) 55 -> C(DSBR.U)
-    cpu.DSBR.U = (Ypair[1] >> (71 - 55)) & 01;
-
-    // C(Y-pair) 60,71 -> C(DSBR.STACK)
-    cpu.DSBR.STACK = (Ypair[1] >> (71 - 71)) & 07777;
-    DBGAPP ("ldbr 0 -> SDWAM/PTWAM[*].F, i -> SDWAM/PTWAM[i].USE, "
-            "DSBR.ADDR 0%o, DSBR.BND 0%o, DSBR.U 0%o, DSBR.STACK 0%o\n",
-            cpu.DSBR.ADDR, cpu.DSBR.BND, cpu.DSBR.U, cpu.DSBR.STACK); 
-  }
-
-
-    
-/**
- * fetch descriptor segment PTW ...
- */
-
-// CANFAULT
-
-static void fetch_dsptw (word15 segno)
-  {
-    DBGAPP ("%s segno 0%o\n", __func__, segno);
-    PNL (L68_ (cpu.apu.state |= apu_FDPT;))
-
-    if (2 * segno >= 16 * (cpu.DSBR.BND + 1))
-      {
-        DBGAPP ("%s ACV15\n", __func__);
-        // generate access violation, out of segment bounds fault
-        PNL (cpu.acvFaults |= ACV15;)
-        PNL (L68_ (cpu.apu.state |= apu_FLT;))
-        doFault (FAULT_ACV, fst_acv15,
-                 "acvFault: fetch_dsptw out of segment bounds fault");
-      }
-    set_apu_status (apuStatus_DSPTW);
-
-#ifndef SPEED
-    word24 y1 = (2u * segno) % 1024u;
-#endif
-    word24 x1 = (2u * segno) / 1024u; // floor
-
-    PNL (cpu.lastPTWOffset = segno;)
-    PNL (cpu.lastPTWIsDS = true;)
-
-    word36 PTWx1;
-    core_read ((cpu.DSBR.ADDR + x1) & PAMASK, & PTWx1, __func__);
-    
-    cpu.PTW0.ADDR = GETHI (PTWx1);
-    cpu.PTW0.U = TSTBIT (PTWx1, 9);
-    cpu.PTW0.M = TSTBIT (PTWx1, 6);
-    cpu.PTW0.DF = TSTBIT (PTWx1, 2);
-    cpu.PTW0.FC = PTWx1 & 3;
-    
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (APUH_FDSPTW);
-#endif
-
-    DBGAPP ("%s x1 0%o y1 0%o DSBR.ADDR 0%o PTWx1 0%012"PRIo64" "
-            "PTW0: ADDR 0%o U %o M %o F %o FC %o\n",
-            __func__, x1, y1, cpu.DSBR.ADDR, PTWx1, cpu.PTW0.ADDR, cpu.PTW0.U,
-            cpu.PTW0.M, cpu.PTW0.DF, cpu.PTW0.FC);
-  }
-
-
-/**
- * modify descriptor segment PTW (Set U=1) ...
- */
-
-// CANFAULT
-
-static void modify_dsptw (word15 segno)
-  {
-
-    PNL (L68_ (cpu.apu.state |= apu_MDPT;))
-
-    set_apu_status (apuStatus_MDSPTW); 
-
-    word24 x1 = (2u * segno) / 1024u; // floor
-    
-#ifdef TEST_OLIN
-          cmpxchg ();
-#endif
-#ifdef TEST_FENCE
-    fence ();
-#endif
-#ifdef THREADZ
-    bool lck = get_rmw_lock ();
-    if (! lck)
-      lock_rmw ();
-#endif
-
-    word36 PTWx1;
-#ifdef LOCKLESS
-    core_read_lock ((cpu.DSBR.ADDR + x1) & PAMASK, & PTWx1, __func__);
-    PTWx1 = SETBIT (PTWx1, 9);
-    core_write_unlock ((cpu.DSBR.ADDR + x1) & PAMASK, PTWx1, __func__);
-#else
-    core_read ((cpu.DSBR.ADDR + x1) & PAMASK, & PTWx1, __func__);
-    PTWx1 = SETBIT (PTWx1, 9);
-    core_write ((cpu.DSBR.ADDR + x1) & PAMASK, PTWx1, __func__);
-#endif
-    
-#ifdef TEST_FENCE
-    fence ();
-#endif
-#ifdef THREADZ
-    if (! lck)
-      unlock_rmw ();
-#endif
-
-    cpu.PTW0.U = 1;
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (APUH_MDSPTW);
-#endif
-  }
-
-
-#ifdef WAM
-#ifdef DPS8M
-static word6 calc_hit_am (word6 LRU, uint hit_level)
-  {
-    switch (hit_level)
-      {
-        case 0:  // hit level A
-          return (LRU | 070);
-        case 1:  // hit level B
-          return ((LRU & 037) | 06);
-        case 2:  // hit level C
-          return ((LRU & 053) | 01);
-        case 3:  // hit level D
-          return (LRU & 064);
-        default:
-          DBGAPP ("%s: invalid AM level\n", __func__);
-          return 0;
-     }
-  }
-#endif
-
-static sdw_s * fetch_sdw_from_sdwam (word15 segno)
-  {
-    DBGAPP ("%s(0):segno=%05o\n", __func__, segno);
-    
-    if (cpu.switches.disable_wam || ! cpu.cu.SD_ON)
-      {
-        DBGAPP ("%s(0): SDWAM disabled\n", __func__);
-        return NULL;
-      }
-
-#ifdef L68
-    int nwam = N_WAM_ENTRIES;
-    for (int _n = 0; _n < nwam; _n++)
-      {
-        // make certain we initialize SDWAM prior to use!!!
-        if (cpu.SDWAM[_n].FE && segno == cpu.SDWAM[_n].POINTER)
-          {
-            DBGAPP ("%s(1):found match for segno %05o "
-                    "at _n=%d\n",
-                     __func__, segno, _n);
-            
-            cpu.cu.SDWAMM = 1;
-            cpu.SDWAMR = (word4) _n;
-            cpu.SDW = & cpu.SDWAM[_n];
-            
-            // If the SDWAM match logic circuitry indicates a hit, all usage
-            // counts (SDWAM.USE) greater than the usage count of the register
-            // hit are decremented by one, the usage count of the register hit
-            // is set to 15, and the contents of the register hit are read out
-            // into the address preparation circuitry. 
-
-            for (int _h = 0; _h < nwam; _h++)
-              {
-                if (cpu.SDWAM[_h].USE > cpu.SDW->USE)
-                  cpu.SDWAM[_h].USE -= 1;
-              }
-            cpu.SDW->USE = N_WAM_ENTRIES - 1;
-            char buf[256];
-            DBGAPP ("%s(2):SDWAM[%d]=%s\n",
-                     __func__, _n, str_sdw (buf, cpu.SDW));
-
-            return cpu.SDW;
-          }
-      }
-#endif
-#ifdef DPS8M
-    uint setno = segno & 017;
-    uint toffset;
-    sdw_s *p;
-    for (toffset = 0; toffset < 64; toffset += 16)
-      {
-        p = & cpu.SDWAM[toffset + setno];
-        if (p->FE && segno == p->POINTER)
-          {
-            DBGAPP ("%s(1):found match for segno %05o "
-                    "at _n=%d\n",
-                    __func__, segno, toffset + setno);
-            
-            cpu.cu.SDWAMM = 1;
-            cpu.SDWAMR = (word6) (toffset + setno);
-            cpu.SDW = p; // export pointer for appending
-
-            word6 u = calc_hit_am (p->USE, toffset >> 4);
-            for (toffset = 0; toffset < 64; toffset += 16) // update LRU
-              {
-                p = & cpu.SDWAM[toffset + setno];
-                if (p->FE) 
-                  p->USE = u;
-              }
-
-            char buf[256];
-            DBGAPP ("%s(2):SDWAM[%d]=%s\n",
-                    __func__, toffset + setno, str_sdw (buf, cpu.SDW));
-            return cpu.SDW;
-          }
-      }
-#endif
-    DBGAPP ("%s(3):SDW for segment %05o not found in SDWAM\n",
-            __func__, segno);
-    cpu.cu.SDWAMM = 0;
-    return NULL;    // segment not referenced in SDWAM
-  }
-#endif // WAM
-
-/**
- * Fetches an SDW from a paged descriptor segment.
- */
-// CANFAULT
-
-static void fetch_psdw (word15 segno)
-  {
-    DBGAPP ("%s(0):segno=%05o\n",
-            __func__, segno);
-
-    PNL (L68_ (cpu.apu.state |= apu_FSDP;))
-
-    set_apu_status (apuStatus_SDWP);
-    word24 y1 = (2 * segno) % 1024;
-    
-    word36 SDWeven, SDWodd;
-    
-    core_read2 (((((word24) cpu.PTW0.ADDR & 0777760) << 6) + y1) & PAMASK, 
-                & SDWeven, & SDWodd, __func__);
-    
-    // even word
-    cpu.SDW0.ADDR = (SDWeven >> 12) & 077777777;
-    cpu.SDW0.R1 = (SDWeven >> 9) & 7;
-    cpu.SDW0.R2 = (SDWeven >> 6) & 7;
-    cpu.SDW0.R3 = (SDWeven >> 3) & 7;
-    cpu.SDW0.DF = TSTBIT (SDWeven, 2);
-    cpu.SDW0.FC = SDWeven & 3;
-    
-    // odd word
-    cpu.SDW0.BOUND = (SDWodd >> 21) & 037777;
-    cpu.SDW0.R = TSTBIT (SDWodd, 20);
-    cpu.SDW0.E = TSTBIT (SDWodd, 19);
-    cpu.SDW0.W = TSTBIT (SDWodd, 18);
-    cpu.SDW0.P = TSTBIT (SDWodd, 17);
-    cpu.SDW0.U = TSTBIT (SDWodd, 16);
-    cpu.SDW0.G = TSTBIT (SDWodd, 15);
-    cpu.SDW0.C = TSTBIT (SDWodd, 14);
-    cpu.SDW0.EB = SDWodd & 037777;
-    
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (APUH_FSDWP);
-#endif
-    DBGAPP ("%s y1 0%o p->ADDR 0%o SDW 0%012"PRIo64" 0%012"PRIo64" "
-            "ADDR %o R %o%o%o BOUND 0%o REWPUGC %o%o%o%o%o%o%o "
-            "F %o FC %o FE %o USE %o\n",
-            __func__, y1, cpu.PTW0.ADDR, SDWeven, SDWodd, cpu.SDW0.ADDR,
-            cpu.SDW0.R1, cpu.SDW0.R2, cpu.SDW0.R3, cpu.SDW0.BOUND,
-            cpu.SDW0.R, cpu.SDW0.E, cpu.SDW0.W, cpu.SDW0.P, cpu.SDW0.U,
-            cpu.SDW0.G, cpu.SDW0.C, cpu.SDW0.DF, cpu.SDW0.FC, cpu.SDW0.FE,
-            cpu.SDW0.USE);
-  }
-
-// Nonpaged SDW Fetch
-// Fetches an SDW from an unpaged descriptor segment.
-// CANFAULT
-
-static void fetch_nsdw (word15 segno)
-  {
-    DBGAPP ("%s (0):segno=%05o\n", __func__, segno);
-
-    PNL (L68_ (cpu.apu.state |= apu_FSDN;))
-
-    set_apu_status (apuStatus_SDWNP);
-
-    if (2 * segno >= 16 * (cpu.DSBR.BND + 1))
-      {
-        DBGAPP ("%s (1):Access Violation, out of segment bounds for "
-                "segno=%05o DSBR.BND=%d\n",
-                __func__, segno, cpu.DSBR.BND);
-        // generate access violation, out of segment bounds fault
-        PNL (cpu.acvFaults |= ACV15;)
-        PNL (L68_ (cpu.apu.state |= apu_FLT;))
-        doFault (FAULT_ACV, fst_acv15,
-                 "acvFault fetch_dsptw: out of segment bounds fault");
-      }
-    DBGAPP ("%s (2):fetching SDW from %05o\n",
-            __func__, cpu.DSBR.ADDR + 2u * segno);
-
-    word36 SDWeven, SDWodd;
-    core_read2 ((cpu.DSBR.ADDR + 2u * segno) & PAMASK,
-                & SDWeven, & SDWodd, __func__);
-    
-    // even word
-    cpu.SDW0.ADDR = (SDWeven >> 12) & 077777777;
-    cpu.SDW0.R1 = (SDWeven >> 9) & 7;
-    cpu.SDW0.R2 = (SDWeven >> 6) & 7;
-    cpu.SDW0.R3 = (SDWeven >> 3) & 7;
-    cpu.SDW0.DF = TSTBIT (SDWeven, 2);
-    cpu.SDW0.FC = SDWeven & 3;
-    
-    // odd word
-    cpu.SDW0.BOUND = (SDWodd >> 21) & 037777;
-    cpu.SDW0.R = TSTBIT (SDWodd, 20);
-    cpu.SDW0.E = TSTBIT (SDWodd, 19);
-    cpu.SDW0.W = TSTBIT (SDWodd, 18);
-    cpu.SDW0.P = TSTBIT (SDWodd, 17);
-    cpu.SDW0.U = TSTBIT (SDWodd, 16);
-    cpu.SDW0.G = TSTBIT (SDWodd, 15);
-    cpu.SDW0.C = TSTBIT (SDWodd, 14);
-    cpu.SDW0.EB = SDWodd & 037777;
-    
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (0 /* No fetch no paged bit */);
-#endif
-#ifndef SPEED
-    char buf[256];
-    DBGAPP ("%s (2):SDW0=%s\n", __func__, str_SDW0 (buf, & cpu.SDW0));
-#endif
-  }
-
-#ifdef WAM
-static char *str_sdw (char * buf, sdw_s *SDW)
-  {
-    if (! SDW->FE)
-      sprintf (buf, "*** SDW Uninitialized ***");
-    else
-      sprintf (buf,
-               "ADDR:%06o R1:%o R2:%o R3:%o BOUND:%o R:%o E:%o W:%o P:%o "
-               "U:%o G:%o C:%o CL:%o DF:%o FC:%o POINTER=%o USE=%d",
-               SDW->ADDR,
-               SDW->R1,
-               SDW->R2,
-               SDW->R3,
-               SDW->BOUND,
-               SDW->R,
-               SDW->E,
-               SDW->W,
-               SDW->P,
-               SDW->U,
-               SDW->G,
-               SDW->C,
-               SDW->EB,
-               SDW->DF,
-               SDW->FC,
-               SDW->POINTER,
-               SDW->USE);
-    return buf;
-  }
-#endif
-
-#ifdef WAM
-#ifdef L68
-
-/**
- * dump SDWAM...
- */
-
-t_stat dump_sdwam (void)
-  {
-    char buf[256];
-    for (int _n = 0; _n < N_WAM_ENTRIES; _n++)
-      {
-        sdw_s *p = & cpu.SDWAM[_n];
-        
-        if (p->FE)
-          sim_printf ("SDWAM n:%d %s\n", _n, str_sdw (buf, p));
-      }
-    return SCPE_OK;
-  }
-#endif
-
-#ifdef DPS8M
-static uint to_be_discarded_am (word6 LRU)
-  {
-#if 0
-    uint cA=0,cB=0,cC=0,cD=0;
-    if (LRU & 040) cB++; else cA++;
-    if (LRU & 020) cC++; else cA++;
-    if (LRU & 010) cD++; else cA++;
-    if (cA==3) return 0;
-    if (LRU & 04)  cC++; else cB++;
-    if (LRU & 02)  cD++; else cB++;
-    if (cB==3) return 1;
-    if (LRU & 01)  return 3; else return 2;
-#endif
-
-    if ((LRU & 070) == 070) return 0;
-    if ((LRU & 046) == 006) return 1;
-    if ((LRU & 025) == 001) return 2;
-    return 3;
-  }
-#endif
-#endif
-
-/**
- * load the current in-core SDW0 into the SDWAM ...
- */
-
-static void load_sdwam (word15 segno, UNUSED bool nomatch)
-  {
-#ifndef WAM
-    cpu.SDW0.POINTER = segno;
-    cpu.SDW0.USE = 0;
-            
-    cpu.SDW0.FE = true;     // in use by SDWAM
-            
-    cpu.SDW = & cpu.SDW0;
-            
-#else
-    if (nomatch || cpu.switches.disable_wam || ! cpu.cu.SD_ON)
-      {
-        DBGAPP ("%s: SDWAM disabled\n", __func__);
-        sdw_s * p = & cpu.SDW0;
-        p->POINTER = segno;
-        p->USE = 0;
-        p->FE = true;     // in use by SDWAM
-        cpu.SDW = p;
-        return;
-      }
-
-#ifdef L68    
-    // If the SDWAM match logic does not indicate a hit, the SDW is fetched
-    // from the descriptor segment in main memory and loaded into the SDWAM
-    // register with usage count 0 (the oldest), all usage counts are
-    // decremented by one with the newly loaded register rolling over from 0 to
-    // 15, and the newly loaded register is read out into the address
-    // preparation circuitry.
-
-    for (int _n = 0; _n < N_WAM_ENTRIES; _n++)
-      {
-        sdw_s * p = & cpu.SDWAM[_n];
-        if (! p->FE || p->USE == 0)
-          {
-            DBGAPP ("%s(1):SDWAM[%d] FE=0 || USE=0\n", __func__, _n);
-            
-            * p = cpu.SDW0;
-            p->POINTER = segno;
-            p->USE = 0;
-            p->FE = true;     // in use by SDWAM
-            
-            for (int _h = 0; _h < N_WAM_ENTRIES; _h++)
-              {
-                sdw_s * q = & cpu.SDWAM[_h];
-                q->USE -= 1;
-                q->USE &= N_WAM_MASK;
-              }
-            
-            cpu.SDW = p;
-            
-            char buf[256];
-            DBGAPP ("%s(2):SDWAM[%d]=%s\n",
-                    __func__, _n, str_sdw (buf, p));
-            
-            return;
-          }
-      }
-    // if we reach this, USE is scrambled
-    DBGAPP ("%s(3) no USE=0 found for segment=%d\n", __func__, segno);
-    
-    sim_printf ("%s(%05o): no USE=0 found!\n", __func__, segno);
-    dump_sdwam ();
-#endif
-
-#ifdef DPS8M
-    uint setno = segno & 017;
-    uint toffset;
-    sdw_s *p;
-    for (toffset = 0; toffset < 64; toffset += 16)
-      {
-        p = & cpu.SDWAM[toffset + setno];
-        if (!p->FE)
-          break;
-      }
-    if (toffset == 64) // all FE==1
-      {
-        toffset = to_be_discarded_am (p->USE) << 4;
-        p = & cpu.SDWAM[toffset + setno];
-      }
-    DBGAPP ("%s(1):SDWAM[%d] FE=0 || LRU\n",
-            __func__, toffset + setno);
-            
-    word6 u = calc_hit_am (p->USE, toffset >> 4); // before loading the SDWAM!
-    * p = cpu.SDW0; // load the SDW
-    p->POINTER = segno;
-    p->FE = true;  // in use
-    cpu.SDW = p; // export pointer for appending
-
-    for (uint toffset1 = 0; toffset1 < 64; toffset1 += 16) // update LRU
-      {
-        p = & cpu.SDWAM[toffset1 + setno];
-        if (p->FE) 
-          p->USE = u;
-      }
-            
-    char buf[256];
-    DBGAPP ("%s(2):SDWAM[%d]=%s\n",
-            __func__, toffset + setno, str_sdw (buf, cpu.SDW));
-#endif
-#endif // WAM
-  }
-
-#ifdef WAM
-static ptw_s * fetch_ptw_from_ptwam (word15 segno, word18 CA)
-  {
-    if (cpu.switches.disable_wam || ! cpu.cu.PT_ON)
-      {
-        DBGAPP ("%s: PTWAM disabled\n", __func__);
-        return NULL;
-      }
-    
-#ifdef L68
-    int nwam = N_WAM_ENTRIES;
-    for (int _n = 0; _n < nwam; _n++)
-      {
-        if (cpu.PTWAM[_n].FE && ((CA >> 6) & 07760) == cpu.PTWAM[_n].PAGENO &&
-            cpu.PTWAM[_n].POINTER == segno)   //_initialized)
-          {
-            DBGAPP ("%s: found match for segno=%o pageno=%o "
-                    "at _n=%d\n",
-                    __func__, segno, cpu.PTWAM[_n].PAGENO, _n);
-            cpu.cu.PTWAMM = 1;
-            cpu.PTWAMR = (word4) _n;
-            cpu.PTW = & cpu.PTWAM[_n];
-            
-            // If the PTWAM match logic circuitry indicates a hit, all usage
-            // counts (PTWAM.USE) greater than the usage count of the register
-            // hit are decremented by one, the usage count of the register hit
-            // is set to 15, and the contents of the register hit are read out
-            // into the address preparation circuitry.
-
-            for (int _h = 0; _h < nwam; _h++)
-              {
-                if (cpu.PTWAM[_h].USE > cpu.PTW->USE)
-                  cpu.PTWAM[_h].USE -= 1; //PTW->USE -= 1;
-              }
-            cpu.PTW->USE = N_WAM_ENTRIES - 1;
-#ifdef do_selftestPTWAM
-            selftest_ptwaw ();
-#endif
-            DBGAPP ("%s: ADDR 0%o U %o M %o F %o FC %o\n",
-                    __func__, cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M,
-                    cpu.PTW->DF, cpu.PTW->FC);
-            return cpu.PTW;
-          }
-      }
-#endif
-
-#ifdef DPS8M
-    uint setno = (CA >> 10) & 017;
-    uint toffset;
-    ptw_s *p;
-    for (toffset = 0; toffset < 64; toffset += 16)
-      {
-        p = & cpu.PTWAM[toffset + setno];
-
-        if (p->FE && ((CA >> 6) & 07760) == p->PAGENO && p->POINTER == segno)
-          {
-            DBGAPP ("%s: found match for segno=%o pageno=%o "
-                    "at _n=%d\n",
-                    __func__, segno, p->PAGENO, toffset + setno);
-            cpu.cu.PTWAMM = 1;
-            cpu.PTWAMR = (word6) (toffset + setno);
-            cpu.PTW = p; // export pointer for appending
-            
-            word6 u = calc_hit_am (p->USE, toffset >> 4);
-            for (toffset = 0; toffset < 64; toffset += 16) // update LRU
-              {
-                p = & cpu.PTWAM[toffset + setno];
-                if (p->FE) 
-                  p->USE = u;
-              }
-
-            DBGAPP ("%s: ADDR 0%o U %o M %o F %o FC %o\n",
-                    __func__, cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M, 
-                    cpu.PTW->DF, cpu.PTW->FC);
-            return cpu.PTW;
-          }
-      }
-#endif
-    cpu.cu.PTWAMM = 0;
-    return NULL;    // page not referenced in PTWAM
-  }
-#endif // WAM
-
-static void fetch_ptw (sdw_s *sdw, word18 offset)
-  {
-    // AL39 p.5-7
-    // Fetches a PTW from a page table other than a descriptor segment page
-    // table and sets the page accessed bit (PTW.U)
-    PNL (L68_ (cpu.apu.state |= apu_FPTW;))
-    set_apu_status (apuStatus_PTW);
-
-#ifndef SPEED
-    word24 y2 = offset % 1024;
-#endif
-    word24 x2 = (offset) / 1024; // floor
-    
-    word36 PTWx2;
-    
-    DBGAPP ("%s address %08o\n", __func__, sdw->ADDR + x2);
-
-    PNL (cpu.lastPTWOffset = offset;)
-    PNL (cpu.lastPTWIsDS = false;)
-
-#ifdef TEST_OLIN
-          cmpxchg ();
-#endif
-#ifdef TEST_FENCE
-    fence ();
-#endif
-#ifdef THREADZ
-    bool lck = get_rmw_lock ();
-    if (! lck)
-      lock_rmw ();
-#endif
-#ifdef LOCKLESS
-    core_read_lock ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
-#else
-    core_read ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
-#endif
-    
-    cpu.PTW0.ADDR = GETHI (PTWx2);
-    cpu.PTW0.U = TSTBIT (PTWx2, 9);
-    cpu.PTW0.M = TSTBIT (PTWx2, 6);
-    cpu.PTW0.DF = TSTBIT (PTWx2, 2);
-    cpu.PTW0.FC = PTWx2 & 3;
-
-    // ISOLTS-861 02
-#ifndef LOCKLESS
-    if (! cpu.PTW0.U)
-#endif
-      {
-        PTWx2 = SETBIT (PTWx2, 9);
-#ifdef LOCKLESS
-       core_write_unlock ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
-#else
-        core_write ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
-#endif
-        cpu.PTW0.U = 1;
-      }
-    
-#ifdef TEST_FENCE
-    fence ();
-#endif
-#ifdef THREADZ
-    if (! lck)
-      unlock_rmw ();
-#endif
-
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (APUH_FPTW);
-#endif
-
-    DBGAPP ("%s x2 0%o y2 0%o sdw->ADDR 0%o PTWx2 0%012"PRIo64" "
-            "PTW0: ADDR 0%o U %o M %o F %o FC %o\n",
-            __func__, x2, y2, sdw->ADDR, PTWx2, cpu.PTW0.ADDR, cpu.PTW0.U,
-            cpu.PTW0.M, cpu.PTW0.DF, cpu.PTW0.FC);
-  }
-
-static void loadPTWAM (word15 segno, word18 offset, UNUSED bool nomatch)
-  {
-#ifndef WAM
-    cpu.PTW0.PAGENO = (offset >> 6) & 07760;
-    cpu.PTW0.POINTER = segno;
-    cpu.PTW0.USE = 0;
-    cpu.PTW0.FE = true;
-            
-    cpu.PTW = & cpu.PTW0;
-#else
-    if (nomatch || cpu.switches.disable_wam || ! cpu.cu.PT_ON)
-      {
-        DBGAPP ("loadPTWAM: PTWAM disabled\n");
-        ptw_s * p = & cpu.PTW0;
-        p->PAGENO = (offset >> 6) & 07760;  // ISOLTS-861 02, AL39 p.3-22
-        p->POINTER = segno;
-        p->USE = 0;
-        p->FE = true;
-            
-        cpu.PTW = p;
-        return;
-      }
-
-#ifdef L68    
-    // If the PTWAM match logic does not indicate a hit, the PTW is fetched
-    // from main memory and loaded into the PTWAM register with usage count 0
-    // (the oldest), all usage counts are decremented by one with the newly
-    // loaded register rolling over from 0 to 15, and the newly loaded register
-    // is read out into the address preparation circuitry.
-
-    for (int _n = 0; _n < N_WAM_ENTRIES; _n++)
-      {
-        ptw_s * p = & cpu.PTWAM[_n];
-        if (! p->FE || p->USE == 0)
-          {
-            DBGAPP ("loadPTWAM(1):PTWAM[%d] FE=0 || USE=0\n", _n);
-            *p = cpu.PTW0;
-            p->PAGENO = (offset >> 6) & 07760;
-            p->POINTER = segno;
-            p->USE = 0;
-            p->FE = true;
-            
-            for (int _h = 0; _h < N_WAM_ENTRIES; _h++)
-              {
-                ptw_s * q = & cpu.PTWAM[_h];
-                q->USE -= 1;
-                q->USE &= N_WAM_MASK;
-              }
-            
-            cpu.PTW = p;
-            DBGAPP ("loadPTWAM(2): ADDR 0%o U %o M %o F %o FC %o "
-                    "POINTER=%o PAGENO=%o USE=%d\n",
-                    cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M, cpu.PTW->DF,
-                    cpu.PTW->FC, cpu.PTW->POINTER, cpu.PTW->PAGENO,
-                    cpu.PTW->USE);
-#ifdef do_selftestPTWAM
-            selftest_ptwaw ();
-#endif
-            return;
-          }
-      }
-    // if we reach this, USE is scrambled
-    sim_printf ("loadPTWAM(segno=%05o, offset=%012o): no USE=0 found!\n",
-                segno, offset);
-#endif
-
-#ifdef DPS8M
-    uint setno = (offset >> 10) & 017;
-    uint toffset;
-    ptw_s *p;
-    for (toffset = 0; toffset < 64; toffset += 16)
-      {
-        p = & cpu.PTWAM[toffset + setno];
-        if (! p->FE)
-          break;
-      }
-    if (toffset == 64) // all FE==1
-      {
-        toffset = to_be_discarded_am (p->USE) << 4;
-        p = & cpu.PTWAM[toffset + setno];
-      }
-
-    DBGAPP ("loadPTWAM(1):PTWAM[%d] FE=0 || LRU\n",
-            toffset + setno);
-
-    word6 u = calc_hit_am (p->USE, toffset >> 4); // before loading the PTWAM
-    * p = cpu.PTW0; // load the PTW
-    p->PAGENO = (offset >> 6) & 07760;
-    p->POINTER = segno;
-    p->FE = true;  // in use
-    cpu.PTW = p; // export pointer for appending
-
-    for (uint toffset1 = 0; toffset1 < 64; toffset1 += 16) // update LRU
-      {
-        p = & cpu.PTWAM[toffset1 + setno];
-        if (p->FE) 
-          p->USE = u;
-      }
-
-    DBGAPP ("loadPTWAM(2): ADDR 0%o U %o M %o F %o FC %o POINTER=%o "
-            "PAGENO=%o USE=%d\n",
-            cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M, cpu.PTW->DF, 
-            cpu.PTW->FC, cpu.PTW->POINTER, cpu.PTW->PAGENO, cpu.PTW->USE);
-#endif
-#endif // WAM
-  }
-
-/**
- * modify target segment PTW (Set M=1) ...
- */
-
-static void modify_ptw (sdw_s *sdw, word18 offset)
-  {
-    PNL (L68_ (cpu.apu.state |= apu_MPTW;))
-    //word24 y2 = offset % 1024;
-    word24 x2 = offset / 1024; // floor
-    
-    word36 PTWx2;
-    
-    set_apu_status (apuStatus_MPTW);
-
-#ifdef TEST_OLIN
-          cmpxchg ();
-#endif
-#ifdef TEST_FENCE
-    fence ();
-#endif
-#ifdef THREADZ
-    bool lck = get_rmw_lock ();
-    if (! lck)
-      lock_rmw ();
-#endif
-#ifdef LOCKLESS
-    core_read_lock ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
-    PTWx2 = SETBIT (PTWx2, 6);
-    core_write_unlock ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
-#else    
-    core_read ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
-    PTWx2 = SETBIT (PTWx2, 6);
-    core_write ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
-#endif
-#ifdef TEST_FENCE
-    fence ();
-#endif
-#ifdef THREADZ
-    if (! lck)
-      unlock_rmw ();
-#endif
-    cpu.PTW->M = 1;
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (APUH_MPTW);
-#endif
-  }
-
-static void do_ptw2 (sdw_s *sdw, word18 offset)
-  {
-    PNL (L68_ (cpu.apu.state |= apu_FPTW2;))
-    set_apu_status (apuStatus_PTW2);
-
-#ifndef SPEED
-    word24 y2 = offset % 1024;
-#endif
-    word24 x2 = (offset) / 1024; // floor
-    
-    word36 PTWx2n;
-    
-    DBGAPP ("%s address %08o\n", __func__, sdw->ADDR + x2 + 1);
-
-    core_read ((sdw->ADDR + x2 + 1) & PAMASK, & PTWx2n, __func__);
-
-    ptw_s PTW2; 
-    PTW2.ADDR = GETHI (PTWx2n);
-    PTW2.U = TSTBIT (PTWx2n, 9);
-    PTW2.M = TSTBIT (PTWx2n, 6);
-    PTW2.DF = TSTBIT (PTWx2n, 2);
-    PTW2.FC = PTWx2n & 3;
-    
-#ifdef L68
-    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
-      add_APU_history (APUH_FPTW2);
-#endif
-
-    DBGAPP ("%s x2 0%o y2 0%o sdw->ADDR 0%o PTW2 0%012"PRIo64" "
-            "PTW2: ADDR 0%o U %o M %o F %o FC %o\n",
-            __func__, x2, y2, sdw->ADDR, PTWx2n, PTW2.ADDR, PTW2.U, PTW2.M,
-            PTW2.DF, PTW2.FC);
-
-    // check that PTW2 is the next page of the same segment
-    // ISOLTS 875 02a
-    if ((PTW2.ADDR & 0777760) == (cpu.PTW->ADDR & 0777760) + 16)
-       //Is PTW2.F set ON?
-       if (! PTW2.DF)
-           // initiate a directed fault
-           doFault (FAULT_DF0 + PTW2.FC, fst_zero, "PTW2.F == 0");
-
-  }
+////
+//// 
+////  The Use of Bit 29 in the Instruction Word
+////  The reader is reminded that there is a preliminary step of loading TPR.CA
+////  with the ADDRESS field of the instruction word during instruction decode.
+////  If bit 29 of the instruction word is set to 1, modification by pointer
+////  register is invoked and the preliminary step is executed as follows:
+////  1. The ADDRESS field of the instruction word is interpreted as shown in
+////  Figure 6-7 below.
+////  2. C(PRn.SNR) -> C(TPR.TSR)
+////  3. maximum of ( C(PRn.RNR), C(TPR.TRR), C(PPR.PRR) ) -> C(TPR.TRR)
+////  4. C(PRn.WORDNO) + OFFSET -> C(TPR.CA) (NOTE: OFFSET is a signed binary
+////  number.)
+////  5. C(PRn.BITNO) -> TPR.BITNO
+////
+//
+//
+//// Define this to do error detection on the PTWAM table.
+//// Useful if PTWAM reports an error message, but it slows the emulator
+//// down 50%
+//
+//#ifdef do_selftestPTWAM
+//static void selftest_ptwaw (void)
+//  {
+//    int usages[N_WAM_ENTRIES];
+//    for (int i = 0; i < N_WAM_ENTRIES; i ++)
+//      usages[i] = -1;
+//
+//    for (int i = 0; i < N_WAM_ENTRIES; i ++)
+//      {
+//        ptw_s * p = cpu.PTWAM + i;
+//        if (p->USE > N_WAM_ENTRIES - 1)
+//          sim_printf ("PTWAM[%d].USE is %d; > %d!\n",
+//                      i, p->USE, N_WAM_ENTRIES - 1);
+//        if (usages[p->USE] != -1)
+//          sim_printf ("PTWAM[%d].USE is equal to PTWAM[%d].USE; %d\n",
+//                      i, usages[p->USE], p->USE);
+//        usages[p->USE] = i;
+//      }
+//    for (int i = 0; i < N_WAM_ENTRIES; i ++)
+//      {
+//        if (usages[i] == -1)
+//          sim_printf ("No PTWAM had a USE of %d\n", i);
+//      }
+//  }
+//#endif
+//
+///**
+// * implement ldbr instruction
+// */
+//
+//void do_ldbr (word36 * Ypair)
+//  {
+//    CPTUR (cptUseDSBR);
+//#ifdef WAM
+//    if (! cpu.switches.disable_wam) 
+//      {
+//        if (cpu.cu.SD_ON) 
+//          {
+//            // If SDWAM is enabled, then
+//            //   0 -> C(SDWAM(i).FULL) for i = 0, 1, ..., 15
+//            //   i -> C(SDWAM(i).USE) for i = 0, 1, ..., 15
+//            for (uint i = 0; i < N_WAM_ENTRIES; i ++)
+//              {
+//                cpu.SDWAM[i].FE = 0;
+//#ifdef L68
+//                cpu.SDWAM[i].USE = (word4) i;
+//#endif
+//#ifdef DPS8M
+//                cpu.SDWAM[i].USE = 0;
+//#endif
+//              }
+//          }
+//
+//        if (cpu.cu.PT_ON) 
+//          {
+//            // If PTWAM is enabled, then
+//            //   0 -> C(PTWAM(i).FULL) for i = 0, 1, ..., 15
+//            //   i -> C(PTWAM(i).USE) for i = 0, 1, ..., 15
+//            for (uint i = 0; i < N_WAM_ENTRIES; i ++)
+//              {
+//                cpu.PTWAM[i].FE = 0;
+//#ifdef L68
+//                cpu.PTWAM[i].USE = (word4) i;
+//#endif
+//#ifdef DPS8M
+//                cpu.PTWAM[i].USE = 0;
+//#endif
+//              }
+//#ifdef do_selftestPTWAM
+//            selftest_ptwaw ();
+//#endif
+//          }
+//      }
+//#else
+//    cpu.SDW0.FE = 0;
+//    cpu.SDW0.USE = 0;
+//    cpu.PTW0.FE = 0;
+//    cpu.PTW0.USE = 0;
+//#endif // WAM
+//
+//    // If cache is enabled, reset all cache column and level full flags
+//    // XXX no cache
+//
+//    // C(Y-pair) 0,23 -> C(DSBR.ADDR)
+//    cpu.DSBR.ADDR = (Ypair[0] >> (35 - 23)) & PAMASK;
+//
+//    // C(Y-pair) 37,50 -> C(DSBR.BOUND)
+//    cpu.DSBR.BND = (Ypair[1] >> (71 - 50)) & 037777;
+//
+//    // C(Y-pair) 55 -> C(DSBR.U)
+//    cpu.DSBR.U = (Ypair[1] >> (71 - 55)) & 01;
+//
+//    // C(Y-pair) 60,71 -> C(DSBR.STACK)
+//    cpu.DSBR.STACK = (Ypair[1] >> (71 - 71)) & 07777;
+//    DBGAPP ("ldbr 0 -> SDWAM/PTWAM[*].F, i -> SDWAM/PTWAM[i].USE, "
+//            "DSBR.ADDR 0%o, DSBR.BND 0%o, DSBR.U 0%o, DSBR.STACK 0%o\n",
+//            cpu.DSBR.ADDR, cpu.DSBR.BND, cpu.DSBR.U, cpu.DSBR.STACK); 
+//  }
+//
+//
+//    
+///**
+// * fetch descriptor segment PTW ...
+// */
+//
+//// CANFAULT
+//
+//static void fetch_dsptw (word15 segno)
+//  {
+//    DBGAPP ("%s segno 0%o\n", __func__, segno);
+//    PNL (L68_ (cpu.apu.state |= apu_FDPT;))
+//
+//    if (2 * segno >= 16 * (cpu.DSBR.BND + 1))
+//      {
+//        DBGAPP ("%s ACV15\n", __func__);
+//        // generate access violation, out of segment bounds fault
+//        PNL (cpu.acvFaults |= ACV15;)
+//        PNL (L68_ (cpu.apu.state |= apu_FLT;))
+//        doFault (FAULT_ACV, fst_acv15,
+//                 "acvFault: fetch_dsptw out of segment bounds fault");
+//      }
+//    set_apu_status (apuStatus_DSPTW);
+//
+//#ifndef SPEED
+//    word24 y1 = (2u * segno) % 1024u;
+//#endif
+//    word24 x1 = (2u * segno) / 1024u; // floor
+//
+//    PNL (cpu.lastPTWOffset = segno;)
+//    PNL (cpu.lastPTWIsDS = true;)
+//
+//    word36 PTWx1;
+//    core_read ((cpu.DSBR.ADDR + x1) & PAMASK, & PTWx1, __func__);
+//    
+//    cpu.PTW0.ADDR = GETHI (PTWx1);
+//    cpu.PTW0.U = TSTBIT (PTWx1, 9);
+//    cpu.PTW0.M = TSTBIT (PTWx1, 6);
+//    cpu.PTW0.DF = TSTBIT (PTWx1, 2);
+//    cpu.PTW0.FC = PTWx1 & 3;
+//    
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (APUH_FDSPTW);
+//#endif
+//
+//    DBGAPP ("%s x1 0%o y1 0%o DSBR.ADDR 0%o PTWx1 0%012"PRIo64" "
+//            "PTW0: ADDR 0%o U %o M %o F %o FC %o\n",
+//            __func__, x1, y1, cpu.DSBR.ADDR, PTWx1, cpu.PTW0.ADDR, cpu.PTW0.U,
+//            cpu.PTW0.M, cpu.PTW0.DF, cpu.PTW0.FC);
+//  }
+//
+//
+///**
+// * modify descriptor segment PTW (Set U=1) ...
+// */
+//
+//// CANFAULT
+//
+//static void modify_dsptw (word15 segno)
+//  {
+//
+//    PNL (L68_ (cpu.apu.state |= apu_MDPT;))
+//
+//    set_apu_status (apuStatus_MDSPTW); 
+//
+//    word24 x1 = (2u * segno) / 1024u; // floor
+//    
+//#ifdef TEST_OLIN
+//          cmpxchg ();
+//#endif
+//#ifdef TEST_FENCE
+//    fence ();
+//#endif
+//#ifdef THREADZ
+//    bool lck = get_rmw_lock ();
+//    if (! lck)
+//      lock_rmw ();
+//#endif
+//
+//    word36 PTWx1;
+//#ifdef LOCKLESS
+//    core_read_lock ((cpu.DSBR.ADDR + x1) & PAMASK, & PTWx1, __func__);
+//    PTWx1 = SETBIT (PTWx1, 9);
+//    core_write_unlock ((cpu.DSBR.ADDR + x1) & PAMASK, PTWx1, __func__);
+//#else
+//    core_read ((cpu.DSBR.ADDR + x1) & PAMASK, & PTWx1, __func__);
+//    PTWx1 = SETBIT (PTWx1, 9);
+//    core_write ((cpu.DSBR.ADDR + x1) & PAMASK, PTWx1, __func__);
+//#endif
+//    
+//#ifdef TEST_FENCE
+//    fence ();
+//#endif
+//#ifdef THREADZ
+//    if (! lck)
+//      unlock_rmw ();
+//#endif
+//
+//    cpu.PTW0.U = 1;
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (APUH_MDSPTW);
+//#endif
+//  }
+//
+//
+//#ifdef WAM
+//#ifdef DPS8M
+//static word6 calc_hit_am (word6 LRU, uint hit_level)
+//  {
+//    switch (hit_level)
+//      {
+//        case 0:  // hit level A
+//          return (LRU | 070);
+//        case 1:  // hit level B
+//          return ((LRU & 037) | 06);
+//        case 2:  // hit level C
+//          return ((LRU & 053) | 01);
+//        case 3:  // hit level D
+//          return (LRU & 064);
+//        default:
+//          DBGAPP ("%s: invalid AM level\n", __func__);
+//          return 0;
+//     }
+//  }
+//#endif
+//
+//static sdw_s * fetch_sdw_from_sdwam (word15 segno)
+//  {
+//    DBGAPP ("%s(0):segno=%05o\n", __func__, segno);
+//    
+//    if (cpu.switches.disable_wam || ! cpu.cu.SD_ON)
+//      {
+//        DBGAPP ("%s(0): SDWAM disabled\n", __func__);
+//        return NULL;
+//      }
+//
+//#ifdef L68
+//    int nwam = N_WAM_ENTRIES;
+//    for (int _n = 0; _n < nwam; _n++)
+//      {
+//        // make certain we initialize SDWAM prior to use!!!
+//        if (cpu.SDWAM[_n].FE && segno == cpu.SDWAM[_n].POINTER)
+//          {
+//            DBGAPP ("%s(1):found match for segno %05o "
+//                    "at _n=%d\n",
+//                     __func__, segno, _n);
+//            
+//            cpu.cu.SDWAMM = 1;
+//            cpu.SDWAMR = (word4) _n;
+//            cpu.SDW = & cpu.SDWAM[_n];
+//            
+//            // If the SDWAM match logic circuitry indicates a hit, all usage
+//            // counts (SDWAM.USE) greater than the usage count of the register
+//            // hit are decremented by one, the usage count of the register hit
+//            // is set to 15, and the contents of the register hit are read out
+//            // into the address preparation circuitry. 
+//
+//            for (int _h = 0; _h < nwam; _h++)
+//              {
+//                if (cpu.SDWAM[_h].USE > cpu.SDW->USE)
+//                  cpu.SDWAM[_h].USE -= 1;
+//              }
+//            cpu.SDW->USE = N_WAM_ENTRIES - 1;
+// 
+//            char buf[256];
+//            DBGAPP ("%s(2):SDWAM[%d]=%s\n",
+//                     __func__, _n, str_sdw (buf, cpu.SDW));
+//
+//            return cpu.SDW;
+//          }
+//      }
+//#endif
+//#ifdef DPS8M
+//    uint setno = segno & 017;
+//    uint toffset;
+//    sdw_s *p;
+//    for (toffset = 0; toffset < 64; toffset += 16)
+//      {
+//        p = & cpu.SDWAM[toffset + setno];
+//        if (p->FE && segno == p->POINTER)
+//          {
+//            DBGAPP ("%s(1):found match for segno %05o "
+//                    "at _n=%d\n",
+//                    __func__, segno, toffset + setno);
+//            
+//            cpu.cu.SDWAMM = 1;
+//            cpu.SDWAMR = (word6) (toffset + setno);
+//            cpu.SDW = p; // export pointer for appending
+//
+//            word6 u = calc_hit_am (p->USE, toffset >> 4);
+//            for (toffset = 0; toffset < 64; toffset += 16) // update LRU
+//              {
+//                p = & cpu.SDWAM[toffset + setno];
+//                if (p->FE) 
+//                  p->USE = u;
+//              }
+//
+//            char buf[256];
+//            DBGAPP ("%s(2):SDWAM[%d]=%s\n",
+//                    __func__, toffset + setno, str_sdw (buf, cpu.SDW));
+//            return cpu.SDW;
+//          }
+//      }
+//#endif
+//    DBGAPP ("%s(3):SDW for segment %05o not found in SDWAM\n",
+//            __func__, segno);
+//    cpu.cu.SDWAMM = 0;
+//    return NULL;    // segment not referenced in SDWAM
+//  }
+//#endif // WAM
+//
+///**
+// * Fetches an SDW from a paged descriptor segment.
+// */
+//// CANFAULT
+//
+//static void fetch_psdw (word15 segno)
+//  {
+//    DBGAPP ("%s(0):segno=%05o\n",
+//            __func__, segno);
+//
+//    PNL (L68_ (cpu.apu.state |= apu_FSDP;))
+//
+//    set_apu_status (apuStatus_SDWP);
+//    word24 y1 = (2 * segno) % 1024;
+//    
+//    word36 SDWeven, SDWodd;
+//    
+//    core_read2 (((((word24) cpu.PTW0.ADDR & 0777760) << 6) + y1) & PAMASK, 
+//                & SDWeven, & SDWodd, __func__);
+//    
+//    // even word
+//    cpu.SDW0.ADDR = (SDWeven >> 12) & 077777777;
+//    cpu.SDW0.R1 = (SDWeven >> 9) & 7;
+//    cpu.SDW0.R2 = (SDWeven >> 6) & 7;
+//    cpu.SDW0.R3 = (SDWeven >> 3) & 7;
+//    cpu.SDW0.DF = TSTBIT (SDWeven, 2);
+//    cpu.SDW0.FC = SDWeven & 3;
+//    
+//    // odd word
+//    cpu.SDW0.BOUND = (SDWodd >> 21) & 037777;
+//    cpu.SDW0.R = TSTBIT (SDWodd, 20);
+//    cpu.SDW0.E = TSTBIT (SDWodd, 19);
+//    cpu.SDW0.W = TSTBIT (SDWodd, 18);
+//    cpu.SDW0.P = TSTBIT (SDWodd, 17);
+//    cpu.SDW0.U = TSTBIT (SDWodd, 16);
+//    cpu.SDW0.G = TSTBIT (SDWodd, 15);
+//    cpu.SDW0.C = TSTBIT (SDWodd, 14);
+//    cpu.SDW0.EB = SDWodd & 037777;
+//    
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (APUH_FSDWP);
+//#endif
+//    DBGAPP ("%s y1 0%o p->ADDR 0%o SDW 0%012"PRIo64" 0%012"PRIo64" "
+//            "ADDR %o R %o%o%o BOUND 0%o REWPUGC %o%o%o%o%o%o%o "
+//            "F %o FC %o FE %o USE %o\n",
+//            __func__, y1, cpu.PTW0.ADDR, SDWeven, SDWodd, cpu.SDW0.ADDR,
+//            cpu.SDW0.R1, cpu.SDW0.R2, cpu.SDW0.R3, cpu.SDW0.BOUND,
+//            cpu.SDW0.R, cpu.SDW0.E, cpu.SDW0.W, cpu.SDW0.P, cpu.SDW0.U,
+//            cpu.SDW0.G, cpu.SDW0.C, cpu.SDW0.DF, cpu.SDW0.FC, cpu.SDW0.FE,
+//            cpu.SDW0.USE);
+//  }
+//
+//// Nonpaged SDW Fetch
+//// Fetches an SDW from an unpaged descriptor segment.
+//// CANFAULT
+//
+//static void fetch_nsdw (word15 segno)
+//  {
+//    DBGAPP ("%s (0):segno=%05o\n", __func__, segno);
+//
+//    PNL (L68_ (cpu.apu.state |= apu_FSDN;))
+//
+//    set_apu_status (apuStatus_SDWNP);
+//
+//    if (2 * segno >= 16 * (cpu.DSBR.BND + 1))
+//      {
+//        DBGAPP ("%s (1):Access Violation, out of segment bounds for "
+//                "segno=%05o DSBR.BND=%d\n",
+//                __func__, segno, cpu.DSBR.BND);
+//        // generate access violation, out of segment bounds fault
+//        PNL (cpu.acvFaults |= ACV15;)
+//        PNL (L68_ (cpu.apu.state |= apu_FLT;))
+//        doFault (FAULT_ACV, fst_acv15,
+//                 "acvFault fetch_dsptw: out of segment bounds fault");
+//      }
+//    DBGAPP ("%s (2):fetching SDW from %05o\n",
+//            __func__, cpu.DSBR.ADDR + 2u * segno);
+//
+//    word36 SDWeven, SDWodd;
+//    core_read2 ((cpu.DSBR.ADDR + 2u * segno) & PAMASK,
+//                & SDWeven, & SDWodd, __func__);
+//    
+//    // even word
+//    cpu.SDW0.ADDR = (SDWeven >> 12) & 077777777;
+//    cpu.SDW0.R1 = (SDWeven >> 9) & 7;
+//    cpu.SDW0.R2 = (SDWeven >> 6) & 7;
+//    cpu.SDW0.R3 = (SDWeven >> 3) & 7;
+//    cpu.SDW0.DF = TSTBIT (SDWeven, 2);
+//    cpu.SDW0.FC = SDWeven & 3;
+//    
+//    // odd word
+//    cpu.SDW0.BOUND = (SDWodd >> 21) & 037777;
+//    cpu.SDW0.R = TSTBIT (SDWodd, 20);
+//    cpu.SDW0.E = TSTBIT (SDWodd, 19);
+//    cpu.SDW0.W = TSTBIT (SDWodd, 18);
+//    cpu.SDW0.P = TSTBIT (SDWodd, 17);
+//    cpu.SDW0.U = TSTBIT (SDWodd, 16);
+//    cpu.SDW0.G = TSTBIT (SDWodd, 15);
+//    cpu.SDW0.C = TSTBIT (SDWodd, 14);
+//    cpu.SDW0.EB = SDWodd & 037777;
+//    
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (0 /* No fetch no paged bit */);
+//#endif
+//#ifndef SPEED
+//    char buf[256];
+//    DBGAPP ("%s (2):SDW0=%s\n", __func__, str_SDW0 (buf, & cpu.SDW0));
+//#endif
+//  }
+//
+//#ifdef WAM
+//static char *str_sdw (char * buf, sdw_s *SDW)
+//  {
+//    if (! SDW->FE)
+//      sprintf (buf, "*** SDW Uninitialized ***");
+//    else
+//      sprintf (buf,
+//               "ADDR:%06o R1:%o R2:%o R3:%o BOUND:%o R:%o E:%o W:%o P:%o "
+//               "U:%o G:%o C:%o CL:%o DF:%o FC:%o POINTER=%o USE=%d",
+//               SDW->ADDR,
+//               SDW->R1,
+//               SDW->R2,
+//               SDW->R3,
+//               SDW->BOUND,
+//               SDW->R,
+//               SDW->E,
+//               SDW->W,
+//               SDW->P,
+//               SDW->U,
+//               SDW->G,
+//               SDW->C,
+//               SDW->EB,
+//               SDW->DF,
+//               SDW->FC,
+//               SDW->POINTER,
+//               SDW->USE);
+//    return buf;
+//  }
+//#endif
+//
+//#ifdef WAM
+//#ifdef L68
+//
+///**
+// * dump SDWAM...
+// */
+//
+//t_stat dump_sdwam (void)
+//  {
+//    char buf[256];
+//    for (int _n = 0; _n < N_WAM_ENTRIES; _n++)
+//      {
+//        sdw_s *p = & cpu.SDWAM[_n];
+//        
+//        if (p->FE)
+//          sim_printf ("SDWAM n:%d %s\n", _n, str_sdw (buf, p));
+//      }
+//    return SCPE_OK;
+//  }
+//#endif
+//
+//#ifdef DPS8M
+//static uint to_be_discarded_am (word6 LRU)
+//  {
+//#if 0
+//    uint cA=0,cB=0,cC=0,cD=0;
+//    if (LRU & 040) cB++; else cA++;
+//    if (LRU & 020) cC++; else cA++;
+//    if (LRU & 010) cD++; else cA++;
+//    if (cA==3) return 0;
+//    if (LRU & 04)  cC++; else cB++;
+//    if (LRU & 02)  cD++; else cB++;
+//    if (cB==3) return 1;
+//    if (LRU & 01)  return 3; else return 2;
+//#endif
+//
+//    if ((LRU & 070) == 070) return 0;
+//    if ((LRU & 046) == 006) return 1;
+//    if ((LRU & 025) == 001) return 2;
+//    return 3;
+//  }
+//#endif
+//#endif
+//
+///**
+// * load the current in-core SDW0 into the SDWAM ...
+// */
+//
+//static void load_sdwam (word15 segno, UNUSED bool nomatch)
+//  {
+//#ifndef WAM
+//    cpu.SDW0.POINTER = segno;
+//    cpu.SDW0.USE = 0;
+//            
+//    cpu.SDW0.FE = true;     // in use by SDWAM
+//            
+//    cpu.SDW = & cpu.SDW0;
+//            
+//#else
+//    if (nomatch || cpu.switches.disable_wam || ! cpu.cu.SD_ON)
+//      {
+//        DBGAPP ("%s: SDWAM disabled\n", __func__);
+//        sdw_s * p = & cpu.SDW0;
+//        p->POINTER = segno;
+//        p->USE = 0;
+//        p->FE = true;     // in use by SDWAM
+//        cpu.SDW = p;
+//        return;
+//      }
+//
+//#ifdef L68    
+//    // If the SDWAM match logic does not indicate a hit, the SDW is fetched
+//    // from the descriptor segment in main memory and loaded into the SDWAM
+//    // register with usage count 0 (the oldest), all usage counts are
+//    // decremented by one with the newly loaded register rolling over from 0 to
+//    // 15, and the newly loaded register is read out into the address
+//    // preparation circuitry.
+//
+//    for (int _n = 0; _n < N_WAM_ENTRIES; _n++)
+//      {
+//        sdw_s * p = & cpu.SDWAM[_n];
+//        if (! p->FE || p->USE == 0)
+//          {
+//            DBGAPP ("%s(1):SDWAM[%d] FE=0 || USE=0\n", __func__, _n);
+//            
+//            * p = cpu.SDW0;
+//            p->POINTER = segno;
+//            p->USE = 0;
+//            p->FE = true;     // in use by SDWAM
+//            
+//            for (int _h = 0; _h < N_WAM_ENTRIES; _h++)
+//              {
+//                sdw_s * q = & cpu.SDWAM[_h];
+//                q->USE -= 1;
+//                q->USE &= N_WAM_MASK;
+//              }
+//            
+//            cpu.SDW = p;
+//            
+//            char buf[256];
+//            DBGAPP ("%s(2):SDWAM[%d]=%s\n",
+//                    __func__, _n, str_sdw (buf, p));
+//            
+//            return;
+//          }
+//      }
+//    // if we reach this, USE is scrambled
+//    DBGAPP ("%s(3) no USE=0 found for segment=%d\n", __func__, segno);
+//    
+//    sim_printf ("%s(%05o): no USE=0 found!\n", __func__, segno);
+//    dump_sdwam ();
+//#endif
+//
+//#ifdef DPS8M
+//    uint setno = segno & 017;
+//    uint toffset;
+//    sdw_s *p;
+//    for (toffset = 0; toffset < 64; toffset += 16)
+//      {
+//        p = & cpu.SDWAM[toffset + setno];
+//        if (!p->FE)
+//          break;
+//      }
+//    if (toffset == 64) // all FE==1
+//      {
+//        toffset = to_be_discarded_am (p->USE) << 4;
+//        p = & cpu.SDWAM[toffset + setno];
+//      }
+//    DBGAPP ("%s(1):SDWAM[%d] FE=0 || LRU\n",
+//            __func__, toffset + setno);
+//            
+//    word6 u = calc_hit_am (p->USE, toffset >> 4); // before loading the SDWAM!
+//    * p = cpu.SDW0; // load the SDW
+//    p->POINTER = segno;
+//    p->FE = true;  // in use
+//    cpu.SDW = p; // export pointer for appending
+//
+//    for (uint toffset1 = 0; toffset1 < 64; toffset1 += 16) // update LRU
+//      {
+//        p = & cpu.SDWAM[toffset1 + setno];
+//        if (p->FE) 
+//          p->USE = u;
+//      }
+//            
+//    char buf[256];
+//    DBGAPP ("%s(2):SDWAM[%d]=%s\n",
+//            __func__, toffset + setno, str_sdw (buf, cpu.SDW));
+//#endif
+//#endif // WAM
+//  }
+//
+//#ifdef WAM
+//static ptw_s * fetch_ptw_from_ptwam (word15 segno, word18 CA)
+//  {
+//    if (cpu.switches.disable_wam || ! cpu.cu.PT_ON)
+//      {
+//        DBGAPP ("%s: PTWAM disabled\n", __func__);
+//        return NULL;
+//      }
+//    
+//#ifdef L68
+//    int nwam = N_WAM_ENTRIES;
+//    for (int _n = 0; _n < nwam; _n++)
+//      {
+//        if (cpu.PTWAM[_n].FE && ((CA >> 6) & 07760) == cpu.PTWAM[_n].PAGENO &&
+//            cpu.PTWAM[_n].POINTER == segno)   //_initialized)
+//          {
+//            DBGAPP ("%s: found match for segno=%o pageno=%o "
+//                    "at _n=%d\n",
+//                    __func__, segno, cpu.PTWAM[_n].PAGENO, _n);
+//            cpu.cu.PTWAMM = 1;
+//            cpu.PTWAMR = (word4) _n;
+//            cpu.PTW = & cpu.PTWAM[_n];
+//            
+//            // If the PTWAM match logic circuitry indicates a hit, all usage
+//            // counts (PTWAM.USE) greater than the usage count of the register
+//            // hit are decremented by one, the usage count of the register hit
+//            // is set to 15, and the contents of the register hit are read out
+//            // into the address preparation circuitry.
+//
+//            for (int _h = 0; _h < nwam; _h++)
+//              {
+//                if (cpu.PTWAM[_h].USE > cpu.PTW->USE)
+//                  cpu.PTWAM[_h].USE -= 1; //PTW->USE -= 1;
+//              }
+//            cpu.PTW->USE = N_WAM_ENTRIES - 1;
+//#ifdef do_selftestPTWAM
+//            selftest_ptwaw ();
+//#endif
+//            DBGAPP ("%s: ADDR 0%o U %o M %o F %o FC %o\n",
+//                    __func__, cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M,
+//                    cpu.PTW->DF, cpu.PTW->FC);
+//            return cpu.PTW;
+//          }
+//      }
+//#endif
+//
+//#ifdef DPS8M
+//    uint setno = (CA >> 10) & 017;
+//    uint toffset;
+//    ptw_s *p;
+//    for (toffset = 0; toffset < 64; toffset += 16)
+//      {
+//        p = & cpu.PTWAM[toffset + setno];
+//
+//        if (p->FE && ((CA >> 6) & 07760) == p->PAGENO && p->POINTER == segno)
+//          {
+//            DBGAPP ("%s: found match for segno=%o pageno=%o "
+//                    "at _n=%d\n",
+//                    __func__, segno, p->PAGENO, toffset + setno);
+//            cpu.cu.PTWAMM = 1;
+//            cpu.PTWAMR = (word6) (toffset + setno);
+//            cpu.PTW = p; // export pointer for appending
+//            
+//            word6 u = calc_hit_am (p->USE, toffset >> 4);
+//            for (toffset = 0; toffset < 64; toffset += 16) // update LRU
+//              {
+//                p = & cpu.PTWAM[toffset + setno];
+//                if (p->FE) 
+//                  p->USE = u;
+//              }
+//
+//            DBGAPP ("%s: ADDR 0%o U %o M %o F %o FC %o\n",
+//                    __func__, cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M, 
+//                    cpu.PTW->DF, cpu.PTW->FC);
+//            return cpu.PTW;
+//          }
+//      }
+//#endif
+//    cpu.cu.PTWAMM = 0;
+//    return NULL;    // page not referenced in PTWAM
+//  }
+//#endif // WAM
+//
+//static void fetch_ptw (sdw_s *sdw, word18 offset)
+//  {
+//    // AL39 p.5-7
+//    // Fetches a PTW from a page table other than a descriptor segment page
+//    // table and sets the page accessed bit (PTW.U)
+//    PNL (L68_ (cpu.apu.state |= apu_FPTW;))
+//    set_apu_status (apuStatus_PTW);
+//
+//#ifndef SPEED
+//    word24 y2 = offset % 1024;
+//#endif
+//    word24 x2 = (offset) / 1024; // floor
+//    
+//    word36 PTWx2;
+//    
+//    DBGAPP ("%s address %08o\n", __func__, sdw->ADDR + x2);
+//
+//    PNL (cpu.lastPTWOffset = offset;)
+//    PNL (cpu.lastPTWIsDS = false;)
+//
+//#ifdef TEST_OLIN
+//          cmpxchg ();
+//#endif
+//#ifdef TEST_FENCE
+//    fence ();
+//#endif
+//#ifdef THREADZ
+//    bool lck = get_rmw_lock ();
+//    if (! lck)
+//      lock_rmw ();
+//#endif
+//#ifdef LOCKLESS
+//    core_read_lock ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
+//#else
+//    core_read ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
+//#endif
+//    
+//    cpu.PTW0.ADDR = GETHI (PTWx2);
+//    cpu.PTW0.U = TSTBIT (PTWx2, 9);
+//    cpu.PTW0.M = TSTBIT (PTWx2, 6);
+//    cpu.PTW0.DF = TSTBIT (PTWx2, 2);
+//    cpu.PTW0.FC = PTWx2 & 3;
+//
+//    // ISOLTS-861 02
+//#ifndef LOCKLESS
+//    if (! cpu.PTW0.U)
+//#endif
+//      {
+//        PTWx2 = SETBIT (PTWx2, 9);
+//#ifdef LOCKLESS
+//     core_write_unlock ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
+//#else
+//        core_write ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
+//#endif
+//        cpu.PTW0.U = 1;
+//      }
+//    
+//#ifdef TEST_FENCE
+//    fence ();
+//#endif
+//#ifdef THREADZ
+//    if (! lck)
+//      unlock_rmw ();
+//#endif
+//
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (APUH_FPTW);
+//#endif
+//
+//    DBGAPP ("%s x2 0%o y2 0%o sdw->ADDR 0%o PTWx2 0%012"PRIo64" "
+//            "PTW0: ADDR 0%o U %o M %o F %o FC %o\n",
+//            __func__, x2, y2, sdw->ADDR, PTWx2, cpu.PTW0.ADDR, cpu.PTW0.U,
+//            cpu.PTW0.M, cpu.PTW0.DF, cpu.PTW0.FC);
+//  }
+//
+//static void loadPTWAM (word15 segno, word18 offset, UNUSED bool nomatch)
+//  {
+//#ifndef WAM
+//    cpu.PTW0.PAGENO = (offset >> 6) & 07760;
+//    cpu.PTW0.POINTER = segno;
+//    cpu.PTW0.USE = 0;
+//    cpu.PTW0.FE = true;
+//            
+//    cpu.PTW = & cpu.PTW0;
+//#else
+//    if (nomatch || cpu.switches.disable_wam || ! cpu.cu.PT_ON)
+//      {
+//        DBGAPP ("loadPTWAM: PTWAM disabled\n");
+//        ptw_s * p = & cpu.PTW0;
+//        p->PAGENO = (offset >> 6) & 07760;  // ISOLTS-861 02, AL39 p.3-22
+//        p->POINTER = segno;
+//        p->USE = 0;
+//        p->FE = true;
+//            
+//        cpu.PTW = p;
+//        return;
+//      }
+//
+//#ifdef L68    
+//    // If the PTWAM match logic does not indicate a hit, the PTW is fetched
+//    // from main memory and loaded into the PTWAM register with usage count 0
+//    // (the oldest), all usage counts are decremented by one with the newly
+//    // loaded register rolling over from 0 to 15, and the newly loaded register
+//    // is read out into the address preparation circuitry.
+//
+//    for (int _n = 0; _n < N_WAM_ENTRIES; _n++)
+//      {
+//        ptw_s * p = & cpu.PTWAM[_n];
+//        if (! p->FE || p->USE == 0)
+//          {
+//            DBGAPP ("loadPTWAM(1):PTWAM[%d] FE=0 || USE=0\n", _n);
+//            *p = cpu.PTW0;
+//            p->PAGENO = (offset >> 6) & 07760;
+//            p->POINTER = segno;
+//            p->USE = 0;
+//            p->FE = true;
+//            
+//            for (int _h = 0; _h < N_WAM_ENTRIES; _h++)
+//              {
+//                ptw_s * q = & cpu.PTWAM[_h];
+//                q->USE -= 1;
+//                q->USE &= N_WAM_MASK;
+//              }
+//            
+//            cpu.PTW = p;
+//            DBGAPP ("loadPTWAM(2): ADDR 0%o U %o M %o F %o FC %o "
+//                    "POINTER=%o PAGENO=%o USE=%d\n",
+//                    cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M, cpu.PTW->DF,
+//                    cpu.PTW->FC, cpu.PTW->POINTER, cpu.PTW->PAGENO,
+//                    cpu.PTW->USE);
+//#ifdef do_selftestPTWAM
+//            selftest_ptwaw ();
+//#endif
+//            return;
+//          }
+//      }
+//    // if we reach this, USE is scrambled
+//    sim_printf ("loadPTWAM(segno=%05o, offset=%012o): no USE=0 found!\n",
+//                segno, offset);
+//#endif
+//
+//#ifdef DPS8M
+//    uint setno = (offset >> 10) & 017;
+//    uint toffset;
+//    ptw_s *p;
+//    for (toffset = 0; toffset < 64; toffset += 16)
+//      {
+//        p = & cpu.PTWAM[toffset + setno];
+//        if (! p->FE)
+//          break;
+//      }
+//    if (toffset == 64) // all FE==1
+//      {
+//        toffset = to_be_discarded_am (p->USE) << 4;
+//        p = & cpu.PTWAM[toffset + setno];
+//      }
+//
+//    DBGAPP ("loadPTWAM(1):PTWAM[%d] FE=0 || LRU\n",
+//            toffset + setno);
+//
+//    word6 u = calc_hit_am (p->USE, toffset >> 4); // before loading the PTWAM
+//    * p = cpu.PTW0; // load the PTW
+//    p->PAGENO = (offset >> 6) & 07760;
+//    p->POINTER = segno;
+//    p->FE = true;  // in use
+//    cpu.PTW = p; // export pointer for appending
+//
+//    for (uint toffset1 = 0; toffset1 < 64; toffset1 += 16) // update LRU
+//      {
+//        p = & cpu.PTWAM[toffset1 + setno];
+//        if (p->FE) 
+//          p->USE = u;
+//      }
+//
+//    DBGAPP ("loadPTWAM(2): ADDR 0%o U %o M %o F %o FC %o POINTER=%o "
+//            "PAGENO=%o USE=%d\n",
+//            cpu.PTW->ADDR, cpu.PTW->U, cpu.PTW->M, cpu.PTW->DF, 
+//            cpu.PTW->FC, cpu.PTW->POINTER, cpu.PTW->PAGENO, cpu.PTW->USE);
+//#endif
+//#endif // WAM
+//  }
+//
+///**
+// * modify target segment PTW (Set M=1) ...
+// */
+//
+//static void modify_ptw (sdw_s *sdw, word18 offset)
+//  {
+//    PNL (L68_ (cpu.apu.state |= apu_MPTW;))
+//    //word24 y2 = offset % 1024;
+//    word24 x2 = offset / 1024; // floor
+//    
+//    word36 PTWx2;
+//    
+//    set_apu_status (apuStatus_MPTW);
+//
+//#ifdef TEST_OLIN
+//          cmpxchg ();
+//#endif
+//#ifdef TEST_FENCE
+//    fence ();
+//#endif
+//#ifdef THREADZ
+//    bool lck = get_rmw_lock ();
+//    if (! lck)
+//      lock_rmw ();
+//#endif
+//#ifdef LOCKLESS
+//    core_read_lock ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
+//    PTWx2 = SETBIT (PTWx2, 6);
+//    core_write_unlock ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
+//#else    
+//    core_read ((sdw->ADDR + x2) & PAMASK, & PTWx2, __func__);
+//    PTWx2 = SETBIT (PTWx2, 6);
+//    core_write ((sdw->ADDR + x2) & PAMASK, PTWx2, __func__);
+//#endif
+//#ifdef TEST_FENCE
+//    fence ();
+//#endif
+//#ifdef THREADZ
+//    if (! lck)
+//      unlock_rmw ();
+//#endif
+//    cpu.PTW->M = 1;
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (APUH_MPTW);
+//#endif
+//  }
+//
+//static void do_ptw2 (sdw_s *sdw, word18 offset)
+//  {
+//    PNL (L68_ (cpu.apu.state |= apu_FPTW2;))
+//    set_apu_status (apuStatus_PTW2);
+//
+//#ifndef SPEED
+//    word24 y2 = offset % 1024;
+//#endif
+//    word24 x2 = (offset) / 1024; // floor
+//    
+//    word36 PTWx2n;
+//    
+//    DBGAPP ("%s address %08o\n", __func__, sdw->ADDR + x2 + 1);
+//
+//    core_read ((sdw->ADDR + x2 + 1) & PAMASK, & PTWx2n, __func__);
+//
+//    ptw_s PTW2; 
+//    PTW2.ADDR = GETHI (PTWx2n);
+//    PTW2.U = TSTBIT (PTWx2n, 9);
+//    PTW2.M = TSTBIT (PTWx2n, 6);
+//    PTW2.DF = TSTBIT (PTWx2n, 2);
+//    PTW2.FC = PTWx2n & 3;
+//    
+//#ifdef L68
+//    if (cpu.MR_cache.emr && cpu.MR_cache.ihr)
+//      add_APU_history (APUH_FPTW2);
+//#endif
+//
+//    DBGAPP ("%s x2 0%o y2 0%o sdw->ADDR 0%o PTW2 0%012"PRIo64" "
+//            "PTW2: ADDR 0%o U %o M %o F %o FC %o\n",
+//            __func__, x2, y2, sdw->ADDR, PTWx2n, PTW2.ADDR, PTW2.U, PTW2.M,
+//            PTW2.DF, PTW2.FC);
+//
+//    // check that PTW2 is the next page of the same segment
+//    // ISOLTS 875 02a
+//    if ((PTW2.ADDR & 0777760) == (cpu.PTW->ADDR & 0777760) + 16)
+//       //Is PTW2.F set ON?
+//       if (! PTW2.DF)
+//           // initiate a directed fault
+//           doFault (FAULT_DF0 + PTW2.FC, fst_zero, "PTW2.F == 0");
+//
+//  }
 
 
 /**
@@ -2200,12 +2200,12 @@ M: // Set P
     DBGAPP ("do_append_cycle(M)\n");
 
     // C(TPR.TRR) = 0?
-    if (cpu.TPR.TRR == 0)
-      {
-        // C(SDW.P) -> C(PPR.P) 
-        cpu.PPR.P = cpu.SDW->P;
-      }
-    else
+//    if (cpu.TPR.TRR == 0)
+//      {
+//        // C(SDW.P) -> C(PPR.P) 
+//        cpu.PPR.P = cpu.SDW->P;
+//      }
+//    else
       {
         // 0 C(PPR.P)
         cpu.PPR.P = 0;
index 456e702..3216699 100644 (file)
@@ -1322,6 +1322,7 @@ static t_stat cpu_dep (t_value val, t_addr addr, UNUSED UNIT * uptr,
     core_write (addr, w, __func__);
 #else
     M[(addr >> 18) & 077777][addr & 0777777] = val & DMASK;
+ fprintf(stderr, "wr %011llo %012llo\n", addr, M[(addr >> 18) & 077777][addr & 0777777]);
 #endif
     return SCPE_OK;
   }
@@ -3293,6 +3294,7 @@ int core_write (/*word24*/word36 addr, word36 data, const char * ctx)
 #else
     LOCK_MEM_WR;
     M[(addr >> 18) & 077777][addr & 0777777] = data & DMASK;
+ fprintf(stderr, "wr %011llo %012llo\n", addr, M[(addr >> 18) & 077777][addr & 0777777]);
     UNLOCK_MEM;
 #endif
 #ifndef SPEED
@@ -3416,6 +3418,7 @@ int core_write_zone (/*word24*/word36 addr, word36 data, const char * ctx)
 #endif
     LOCK_MEM_WR;
     M[(addr >> 18) & 077777][addr & 0777777] = (M[(addr >> 18) & 077777][addr & 0777777] & ~cpu.zone) | (data & cpu.zone);
+ fprintf(stderr, "wr %011llo %012llo\n", addr, M[(addr >> 18) & 077777][addr & 0777777]);
     UNLOCK_MEM;
 #endif
     cpu.useZone = false; // Safety
@@ -3673,6 +3676,7 @@ int core_write2 (/*word24*/word36 addr, word36 even, word36 odd, const char * ct
 #else
     LOCK_MEM_WR;
     M[(addr >> 18) & 077777][addr & 0777777] = even & DMASK;
+ fprintf(stderr, "wr %011llo %012llo\n", addr, M[(addr >> 18) & 077777][addr & 0777777]);
     addr++;
     UNLOCK_MEM;
 #endif
@@ -3698,6 +3702,7 @@ int core_write2 (/*word24*/word36 addr, word36 even, word36 odd, const char * ct
 #else
     LOCK_MEM_WR;
     M[(addr >> 18) & 077777][addr & 0777777] = odd & DMASK;
+ fprintf(stderr, "wr %011llo %012llo\n", addr, M[(addr >> 18) & 077777][addr & 0777777]);
     UNLOCK_MEM;
 #endif
 #endif
index ab1d9a7..7adf28d 100644 (file)
@@ -1582,7 +1582,7 @@ typedef struct
 #ifdef DPS8M
     word6 SDWAMR;
 #endif
-    sdw_s * SDW; // working SDW
+//    sdw_s * SDW; // working SDW
     sdw_s SDW0; // a SDW not in SDWAM
     sdw_s _s;
 #ifdef PANEL
index 205a48a..bd09945 100644 (file)
@@ -6503,9 +6503,9 @@ static t_stat doInstruction (void)
 
               // RNR from ITS pair
               word3 Crr = (GETLO (cpu.Ypair[0]) >> 15) & 07;
-              if (get_addr_mode () == APPEND_mode)
-                cpu.PR[n].RNR = max3 (Crr, cpu.SDW->R1, cpu.TPR.TRR);
-              else
+//              if (get_addr_mode () == APPEND_mode)
+//                cpu.PR[n].RNR = max3 (Crr, cpu.SDW->R1, cpu.TPR.TRR);
+//              else
                 cpu.PR[n].RNR = Crr;
               cpu.PR[n].SNR = (cpu.Ypair[0] >> 18) & MASK15;
               cpu.PR[n].WORDNO = GETHI (cpu.Ypair[1]);
@@ -7178,9 +7178,9 @@ static t_stat doInstruction (void)
             }
             break;
 
-        case x0 (0232):  // ldbr
-          do_ldbr (cpu.Ypair);
-          break;
+//        case x0 (0232):  // ldbr
+//          do_ldbr (cpu.Ypair);
+//          break;
 
         case x0 (0637):  // ldt
           CPTUR (cptUseTR);
@@ -9502,224 +9502,245 @@ elapsedtime ();
 static int emCall (void)
 {
     DCDstruct * i = & cpu.currentInstruction;
+ void emcall_exit_emulation(void);
+ void emcall_make_entry(void);
+ void emcall_make_ptr(void);
+ void emcall_make_seg(void);
+ void emcall_proc_info(void);
+ void emcall_set_ips_mask(void);
+ void emcall_reset_ips_mask(void);
+ void emcall_fs_search_get_wdir(void);
+ void emcall_initiate_count(void);
+ void emcall_fs_get_mode(void);
+ void emcall_high_low_seg_count(void);
+ void emcall_get_line(void);
+ void emcall_put_chars(void);
     switch (i->address) // address field
     {
-        case 1:     // putc9 - put 9-bit char in AL to stdout
-        {
-            if (cpu.rA > 0xff)  // don't want no 9-bit bytes here!
-                break;
-
-            char c = cpu.rA & 0x7f;
-            if (c)  // ignore NULL chars.
-                sim_printf ("%c", c);
-            break;
-        }
-        case 0100:     // putc9 - put 9-bit char in A(0) to stdout
-        {
-            char c = (cpu.rA >> 27) & 0x7f;
-            if (isascii (c))  // ignore NULL chars.
-                sim_printf ("%c", c);
-            else
-                sim_printf ("\\%03o", c);
-            break;
-        }
-        case 2:     // putc6 - put 6-bit char in A to stdout
-        {
-            int c = GEBcdToASCII[cpu.rA & 077];
-            if (c != -1)
-            {
-                if (isascii (c))  // ignore NULL chars.
-                    sim_printf ("%c", c);
-                else
-                    sim_printf ("\\%3o", c);
-            }
-            break;
-        }
-        case 3:     // putoct - put octal contents of A to stdout (split)
-        {
-            sim_printf ("%06o %06o", GETHI (cpu.rA), GETLO (cpu.rA));
-            break;
-        }
-        case 4:     // putoctZ - put octal contents of A to stdout
-                    // (zero-suppressed)
-        {
-            sim_printf ("%"PRIo64"", cpu.rA);
-            break;
-        }
-        case 5:     // putdec - put decimal contents of A to stdout
-        {
-            t_int64 tmp = SIGNEXT36_64 (cpu.rA);
-            sim_printf ("%"PRId64"", tmp);
-            break;
-        }
-        case 6:     // putEAQ - put float contents of C(EAQ) to stdout
-        {
-#ifndef __MINGW64__
-            long double eaq = EAQToIEEElongdouble ();
-            sim_printf ("%12.8Lg", eaq);
-#else
-            double eaq = EAQToIEEEdouble();
-            sim_printf("%12.8g", eaq);
-#endif
-            break;
-        }
-        case 7:   // dump index registers
-            for (int i = 0 ; i < 8 ; i += 4)
-                sim_printf ("r[%d]=%06o r[%d]=%06o r[%d]=%06o r[%d]=%06o\n",
-                           i+0, cpu.rX[i+0], i+1, cpu.rX[i+1], i+2, cpu.rX[i+2],
-                           i+3, cpu.rX[i+3]);
-            break;
-
-        case 17: // dump pointer registers
-            for (int n = 0 ; n < 8 ; n++)
-            {
-                sim_printf ("PR[%d]/%s: SNR=%05o RNR=%o WORDNO=%06o "
-                           "BITNO:%02o\n",
-                           n, PRalias[n], cpu.PR[n].SNR, cpu.PR[n].RNR,
-                           cpu.PR[n].WORDNO, GET_PR_BITNO (n));
-            }
-            break;
-        case 27:    // dump registers A & Q
-            sim_printf ("A: %012"PRIo64" Q:%012"PRIo64"\n", cpu.rA, cpu.rQ);
-            break;
-
-        case 8: // crlf to console
-            sim_printf ("\n");
-            break;
-
-        case 13:     // putoct - put octal contents of Q to stdout (split)
-        {
-            sim_printf ("%06o %06o", GETHI (cpu.rQ), GETLO (cpu.rQ));
-            break;
-        }
-        case 14:     // putoctZ - put octal contents of Q to stdout
-                     // (zero-suppressed)
-        {
-            sim_printf ("%"PRIo64"", cpu.rQ);
-            break;
-        }
-        case 15:     // putdec - put decimal contents of Q to stdout
-        {
-            t_int64 tmp = SIGNEXT36_64 (cpu.rQ);
-            sim_printf ("%"PRId64"", tmp);
-            break;
-        }
-
-        case 16:     // puts - A high points to by an aci string; print it.
-                     // The string includes C-sytle escapes: \0 for end
-                     // of string, \n for newline, \\ for a backslash
-        case 21: // puts: A contains a 24 bit address
-        {
-            const int maxlen = 256;
-            char buf[maxlen + 1];
-
-            word36 addr;
-            if (i->address == 16)
-              addr = cpu.rA >> 18;
-            else // 21
-              addr = cpu.rA; // >> 12;
-            word36 chunk = 0;
-            int i;
-            bool is_escape = false;
-            int cnt = 0;
-
-            for (i = 0; cnt < maxlen; i ++)
-            {
-                // fetch char
-                if (i % 4 == 0) {
-                    chunk = M[(addr >> 18) & 077777][addr & 0777777];
-                    addr++;
-                }
-                word36 wch = chunk >> (9 * 3);
-                chunk = (chunk << 9) & DMASK;
-                char ch = (char) (wch & 0x7f);
-
-                if (is_escape)
-                {
-                    if (ch == '0')
-                        ch = '\0';
-                    else if (ch == 'n')
-                        ch = '\n';
-                    else
-                    {
-                        /* ch = ch */;
-                    }
-                    is_escape = false;
-                    buf[cnt ++] = ch;
-                    if (ch == '\0')
-                      break;
-                }
-                else
-                {
-                    if (ch == '\\')
-                        is_escape = true;
-                    else
-                    {
-                        buf[cnt ++] = ch;
-                        if (ch == '\0')
-                            break;
-                    }
-                }
-            }
-            // Safety; if filled buffer before finding eos, put an eos
-            // in the extra space that was allocated
-            buf[maxlen] = '\0';
-            sim_printf ("%s", buf);
-            break;
-        }
-
-        // case 17 used above
-
-        case 18:     // halt
-            return STOP_STOP;
-
-        case 19:     // putdecaq - put decimal contents of AQ to stdout
-        {
-            int64_t t0 = SIGNEXT36_64 (cpu.rA);
-            __int128_t AQ = ((__int128_t) t0) << 36;
-            AQ |= (cpu.rQ & DMASK);
-            print_int128 (AQ, NULL);
-            break;
-        }
-
-        case 20:    // Report fault
-        {
-            emCallReportFault ();
-             break;
-        }
-
-        // case 21 defined above
-
- case 026:
-  {
-   void emcall_exit_emulation(void);
-   emcall_exit_emulation();
-  }
+ case 0:
+  emcall_exit_emulation();
   break;
- case 027:
-  {
-   void emcall_make_entry(void);
-   emcall_make_entry();
-  }
+ case 1:
+  emcall_make_entry();
   break;
- case 030:
-  {
-   void emcall_make_ptr(void);
-   emcall_make_ptr();
-  }
+ case 2:
+  emcall_make_ptr();
   break;
- case 031:
-  {
-   void emcall_make_seg(void);
-   emcall_make_seg();
-  }
+ case 3:
+  emcall_make_seg();
   break;
- case 032:
-  {
-   void emcall_proc_info(void);
-   emcall_proc_info();
-  }
+ case 4:
+  emcall_proc_info();
+  break;
+ case 5:
+  emcall_set_ips_mask();
   break;
+ case 6:
+  emcall_reset_ips_mask();
+  break;
+ case 7:
+  emcall_fs_search_get_wdir();
+  break;
+ case 010:
+  emcall_initiate_count();
+  break;
+ case 011:
+  emcall_fs_get_mode();
+  break;
+ case 012:
+  emcall_high_low_seg_count();
+  break;
+ case 013:
+  emcall_get_line();
+  break;
+ case 014:
+  emcall_put_chars();
+  break;
+//        case 1:     // putc9 - put 9-bit char in AL to stdout
+//        {
+//            if (cpu.rA > 0xff)  // don't want no 9-bit bytes here!
+//                break;
+//
+//            char c = cpu.rA & 0x7f;
+//            if (c)  // ignore NULL chars.
+//                sim_printf ("%c", c);
+//            break;
+//        }
+//        case 0100:     // putc9 - put 9-bit char in A(0) to stdout
+//        {
+//            char c = (cpu.rA >> 27) & 0x7f;
+//            if (isascii (c))  // ignore NULL chars.
+//                sim_printf ("%c", c);
+//            else
+//                sim_printf ("\\%03o", c);
+//            break;
+//        }
+//        case 2:     // putc6 - put 6-bit char in A to stdout
+//        {
+//            int c = GEBcdToASCII[cpu.rA & 077];
+//            if (c != -1)
+//            {
+//                if (isascii (c))  // ignore NULL chars.
+//                    sim_printf ("%c", c);
+//                else
+//                    sim_printf ("\\%3o", c);
+//            }
+//            break;
+//        }
+//        case 3:     // putoct - put octal contents of A to stdout (split)
+//        {
+//            sim_printf ("%06o %06o", GETHI (cpu.rA), GETLO (cpu.rA));
+//            break;
+//        }
+//        case 4:     // putoctZ - put octal contents of A to stdout
+//                    // (zero-suppressed)
+//        {
+//            sim_printf ("%"PRIo64"", cpu.rA);
+//            break;
+//        }
+//        case 5:     // putdec - put decimal contents of A to stdout
+//        {
+//            t_int64 tmp = SIGNEXT36_64 (cpu.rA);
+//            sim_printf ("%"PRId64"", tmp);
+//            break;
+//        }
+//        case 6:     // putEAQ - put float contents of C(EAQ) to stdout
+//        {
+//#ifndef __MINGW64__
+//            long double eaq = EAQToIEEElongdouble ();
+//            sim_printf ("%12.8Lg", eaq);
+//#else
+//            double eaq = EAQToIEEEdouble();
+//            sim_printf("%12.8g", eaq);
+//#endif
+//            break;
+//        }
+//        case 7:   // dump index registers
+//            for (int i = 0 ; i < 8 ; i += 4)
+//                sim_printf ("r[%d]=%06o r[%d]=%06o r[%d]=%06o r[%d]=%06o\n",
+//                           i+0, cpu.rX[i+0], i+1, cpu.rX[i+1], i+2, cpu.rX[i+2],
+//                           i+3, cpu.rX[i+3]);
+//            break;
+//
+//        case 17: // dump pointer registers
+//            for (int n = 0 ; n < 8 ; n++)
+//            {
+//                sim_printf ("PR[%d]/%s: SNR=%05o RNR=%o WORDNO=%06o "
+//                           "BITNO:%02o\n",
+//                           n, PRalias[n], cpu.PR[n].SNR, cpu.PR[n].RNR,
+//                           cpu.PR[n].WORDNO, GET_PR_BITNO (n));
+//            }
+//            break;
+//        case 27:    // dump registers A & Q
+//            sim_printf ("A: %012"PRIo64" Q:%012"PRIo64"\n", cpu.rA, cpu.rQ);
+//            break;
+//
+//        case 8: // crlf to console
+//            sim_printf ("\n");
+//            break;
+//
+//        case 13:     // putoct - put octal contents of Q to stdout (split)
+//        {
+//            sim_printf ("%06o %06o", GETHI (cpu.rQ), GETLO (cpu.rQ));
+//            break;
+//        }
+//        case 14:     // putoctZ - put octal contents of Q to stdout
+//                     // (zero-suppressed)
+//        {
+//            sim_printf ("%"PRIo64"", cpu.rQ);
+//            break;
+//        }
+//        case 15:     // putdec - put decimal contents of Q to stdout
+//        {
+//            t_int64 tmp = SIGNEXT36_64 (cpu.rQ);
+//            sim_printf ("%"PRId64"", tmp);
+//            break;
+//        }
+//
+//        case 16:     // puts - A high points to by an aci string; print it.
+//                     // The string includes C-sytle escapes: \0 for end
+//                     // of string, \n for newline, \\ for a backslash
+//        case 21: // puts: A contains a 24 bit address
+//        {
+//            const int maxlen = 256;
+//            char buf[maxlen + 1];
+//
+//            word36 addr;
+//            if (i->address == 16)
+//              addr = cpu.rA >> 18;
+//            else // 21
+//              addr = cpu.rA; // >> 12;
+//            word36 chunk = 0;
+//            int i;
+//            bool is_escape = false;
+//            int cnt = 0;
+//
+//            for (i = 0; cnt < maxlen; i ++)
+//            {
+//                // fetch char
+//                if (i % 4 == 0) {
+//                    chunk = M[(addr >> 18) & 077777][addr & 0777777];
+//                    addr++;
+//                }
+//                word36 wch = chunk >> (9 * 3);
+//                chunk = (chunk << 9) & DMASK;
+//                char ch = (char) (wch & 0x7f);
+//
+//                if (is_escape)
+//                {
+//                    if (ch == '0')
+//                        ch = '\0';
+//                    else if (ch == 'n')
+//                        ch = '\n';
+//                    else
+//                    {
+//                        /* ch = ch */;
+//                    }
+//                    is_escape = false;
+//                    buf[cnt ++] = ch;
+//                    if (ch == '\0')
+//                      break;
+//                }
+//                else
+//                {
+//                    if (ch == '\\')
+//                        is_escape = true;
+//                    else
+//                    {
+//                        buf[cnt ++] = ch;
+//                        if (ch == '\0')
+//                            break;
+//                    }
+//                }
+//            }
+//            // Safety; if filled buffer before finding eos, put an eos
+//            // in the extra space that was allocated
+//            buf[maxlen] = '\0';
+//            sim_printf ("%s", buf);
+//            break;
+//        }
+//
+//        // case 17 used above
+//
+//        case 18:     // halt
+//            return STOP_STOP;
+//
+//        case 19:     // putdecaq - put decimal contents of AQ to stdout
+//        {
+//            int64_t t0 = SIGNEXT36_64 (cpu.rA);
+//            __int128_t AQ = ((__int128_t) t0) << 36;
+//            AQ |= (cpu.rQ & DMASK);
+//            print_int128 (AQ, NULL);
+//            break;
+//        }
+//
+//        case 20:    // Report fault
+//        {
+//            emCallReportFault ();
+//             break;
+//        }
+//
+//        // case 21 defined above
 
     }
     return 0;
index d4d432e..5126cdd 100644 (file)
@@ -80,10 +80,10 @@ found_bitcount:
 }
 
 struct object_map *get_object_map(uint64_t *segment, int bitcount) {
-  if (bitcount % 36 != 0) {
-    fprintf(stderr, "bitcount %d not multiple of 36\n", bitcount);
-    exit(EXIT_FAILURE);
-  }
+  //if (bitcount % 36 != 0) {
+  //  fprintf(stderr, "bitcount %d not multiple of 36\n", bitcount);
+  //  exit(EXIT_FAILURE);
+  //}
 
   int wordcount = (bitcount / 36) & 0777777;
   if (wordcount < 1) {
diff --git a/iox_modes.h b/iox_modes.h
new file mode 100644 (file)
index 0000000..e7fe9db
--- /dev/null
@@ -0,0 +1,54 @@
+#ifndef _IOX_MODES_H
+#define _IOX_MODES_H
+
+// dcl iox_modes (13) char (24) int static options (constant) aligned initial
+//   ("stream_input", "stream_output", "stream_input_output",
+//   "sequential_input", "sequential_output", "sequential_input_output", "sequential_update",
+//   "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update",
+//   "direct_input", "direct_output", "direct_update");
+
+// dcl short_iox_modes (13) char (4) int static options (constant) aligned initial
+//   ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du");
+
+// dcl (Stream_input initial (1),
+enum {
+  STREAM_INPUT = 1,
+
+  // Stream_output initial (2),
+  STREAM_OUTPUT = 2,
+
+  // Stream_input_output initial (3),
+  STREAM_INPUT_OUTPUT = 3,
+
+  // Sequential_input initial (4),
+  SEQUENTIAL_INPUT = 4,
+
+  // Sequential_output initial (5),
+  SEQUENTIAL_OUTPUT = 5,
+
+  // Sequential_input_output initial (6),
+  SEQUENTIAL_INPUT_OUTPUT = 6,
+
+  // Sequential_update initial (7),
+  SEQUENTIAL_UPDATE = 7,
+
+  // Keyed_sequential_input initial (8),
+  KEYED_SEQUENTIAL_INPUT = 8,
+
+  // Keyed_sequential_output initial (9),
+  KEYED_SEQUENTIAL_OUTPUT = 9,
+
+  // Keyed_sequential_update initial (10),
+  KEYED_SEQUENTIAL_UPDATE = 10,
+
+  // Direct_input initial (11),
+  DIRECT_INPUT = 11,
+
+  // Direct_output initial (12),
+  DIRECT_OUTPUT = 12,
+
+  // Direct_update initial (13)) fixed bin int static options (constant);
+  DIRECT_UPDATE = 13
+};
+
+#endif
index 1d3892b..2203516 100644 (file)
@@ -8,12 +8,14 @@
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <unistd.h>
+#include "access_mode_values.h"
 #include "area_info.h"
 #include "definition_dcls.h"
 #include "dps8/dps8.h"
 #include "dps8/dps8_cpu.h"
 #include "dps8/dps8_simh.h"
 #include "dps8/dps8_sys.h"
+//#include "iox_modes.h"
 #include "linkdcl.h"
 #include "object_map.h"
 #include "pointer.h"
 #define LINE_LEN 0x100
 #define PATH_LEN 0x1000
 #define RESULT_LEN 0x400 // must be multiple of 4
+#define DNAME_LEN 168
 
 struct arg_list {
-  uint64_t pad0 : 18;
-  uint64_t desc_count : 18;
-  uint64_t dummy0 : 28;
-
   uint64_t code : 18;
   uint64_t arg_count : 18;
+  uint64_t dummy0 : 28;
+
+  uint64_t pad0 : 18;
+  uint64_t desc_count : 18;
   uint64_t dummy1 : 28;
 
   struct its_pointer args[];
@@ -56,16 +59,20 @@ struct based_entry {
   struct its_pointer env_ptr;
 };
 
-#define N_PATHS 7
-char *paths[N_PATHS] = {
-  "tape/word/library_dir_dir/system_library_1/execution/",
-  "tape/word/system_library_1/",
-  "tape/word/system_library_3rd_party/C_COMPILER/executable/",
-  "tape/word/system_library_obsolete/",
-  "tape/word/system_library_standard/",
-  "tape/word/system_library_tools/",
-  "tape/word/system_library_unbundled/"
+// make these configurable later
+const char *multics_root = "tape/word";
+const char *multics_home = ">sim_home";
+const char *multics_process = ">sim_process";
+const char *search_path[] = {
+  ">library_dir_dir>system_library_1>execution",
+  ">system_library_1",
+  ">system_library_3rd_party>C_COMPILER>executable",
+  ">system_library_obsolete",
+  ">system_library_standard",
+  ">system_library_tools",
+  ">system_library_unbundled"
 };
+#define N_SEARCH_PATH (sizeof(search_path) / sizeof(const char *))
 
 #define N_SYSTEM_LINK 0x100
 int n_system_link;
@@ -76,7 +83,7 @@ struct system_link {
   char name[NAME_LEN + 1];
 } system_link[N_SYSTEM_LINK];
 
-#define N_DEBUG_SYMBOL 0x1000
+#define N_DEBUG_SYMBOL 0x10000
 int n_debug_symbol;
 struct debug_symbol {
   int offset;
@@ -92,18 +99,30 @@ struct debug_symbol debug_symbol_pl1_operators[] = {
 #define N_KNOWN_SEGMENT 0x100
 int n_known_segment;
 struct known_segment {
-  const char *name;
+  const char *path;
   int segment;
   int bitcount;
   int linkage_offset;
   int n_debug_symbol;
   struct debug_symbol *debug_symbol;
   struct system_link *system_link_head;
+  int n_ref_name;
+  bool writeable;
 } known_segment[N_KNOWN_SEGMENT];
+struct known_segment *hcs;
+struct known_segment *iox;
+struct known_segment *sys_info;
 
 #define N_SEGMENT 0x200
-struct known_segment *known_segment_xref[N_SEGMENT];
-int next_segment;
+int n_segment;
+struct known_segment *segment_to_known_segment[N_SEGMENT];
+
+#define N_REF_NAME_TO_KNOWN_SEGMENT 0x400
+int n_ref_name_to_known_segment;
+struct ref_name_to_known_segment {
+  const char *ref_name;
+  struct known_segment *known_segment;
+} ref_name_to_known_segment[N_REF_NAME_TO_KNOWN_SEGMENT];
 
 int linkage_segment;
 int next_linkage_offset;
@@ -115,27 +134,38 @@ int stack_segment;
 int next_stack_offset;
 struct stack_header *stack_header;
 
+struct known_segment *iox;
+struct its_pointer *user_input;
+struct its_pointer *user_output;
+struct its_pointer *error_output;
+
+struct known_segment *error_table;
+uint64_t *end_of_info;
+uint64_t *long_record;
+uint64_t *segknown;
+uint64_t *short_record;
+
 jmp_buf exit_emulation;
 
 void get_acc_string(uint64_t *acc_string, char *buf, int buf_len) {
   int len = (acc_string[0] >> 27) & 0777;
   rassert(len < buf_len);
 
-  static int shifts[4] = {27, 18, 9, 0};
+  static const int shifts[4] = {27, 18, 9, 0};
   for (int i = 0, j = 1; i < len; ++i, ++j)
     buf[i] = (char)(acc_string[j >> 2] >> shifts[j & 3]);
   buf[len] = 0;
 }
 
 void get_string(char *buf, const uint64_t *string, int string_len) {
-  static int shifts[4] = {27, 18, 9, 0};
+  static const int shifts[4] = {27, 18, 9, 0};
   for (int i = 0; i < string_len; ++i)
     buf[i] = (char)(string[i >> 2] >> shifts[i & 3]);
   buf[string_len] = 0;
 }
 
 void get_string_rstrip(char *buf, const uint64_t *string, int string_len) {
-  static int shifts[4] = {27, 18, 9, 0};
+  static const int shifts[4] = {27, 18, 9, 0};
   for (int i = 0; i < string_len; ++i)
     buf[i] = (char)(string[i >> 2] >> shifts[i & 3]);
   while (string_len && buf[string_len - 1] == ' ')
@@ -144,8 +174,8 @@ void get_string_rstrip(char *buf, const uint64_t *string, int string_len) {
 }
 
 int allocate_segment(void) {
-  rassert(next_segment < N_SEGMENT);
-  return next_segment++;
+  rassert(n_segment < N_SEGMENT);
+  return n_segment++;
 }
 
 int scratch_segment(void) {
@@ -198,121 +228,163 @@ int allocate_stack(int length, int align) {
   return offset;
 }
 
-const char *xlate_segname(const char *name) {
-  // search for segment in path
-  int path_index;
-  for (path_index = 0; path_index < N_PATHS; ++path_index) {
-    char path[PATH_LEN];
-    rassert(strlen(paths[path_index]) + 6 < sizeof(path));
-    strcpy(path, paths[path_index]);
-    strcat(path, ".xlate");
+struct known_segment *make_known_segment(
+  const char *dir_name,
+  const char *entryname,
+  bool writeable
+) {
+  // construct path to directory, translating multics separators
+  int multics_root_len = strlen(multics_root);
+  int dir_name_len = strlen(dir_name);
+  char path[PATH_LEN];
+  rassert(multics_root_len + dir_name_len + 1 < PATH_LEN);
+  memcpy(path, multics_root, multics_root_len);
+  for (int i = 0; i < dir_name_len; ++i) {
+    int c = dir_name[i];
+    path[multics_root_len + i] = c == '>' ? '/' : c == '/' ? '_' : c;
+  }
+  path[multics_root_len + dir_name_len] = '/';
+
+  // try to open directly
+  int entryname_len = strlen(entryname);
+  rassert(multics_root_len + dir_name_len + entryname_len < PATH_LEN);
+  strcpy(path + multics_root_len + dir_name_len + 1, entryname);
+  int fd = open(path, writeable ? O_RDWR : O_RDONLY);
+  char line[LINE_LEN];
+  if (fd == -1) {
+    // try to open via an alias
+    rassert(multics_root_len + dir_name_len + 1 + 6 < PATH_LEN);
+    strcpy(path + multics_root_len + dir_name_len + 1, ".xlate");
 
     FILE *fp = fopen(path, "r");
-    if (fp == NULL) {
-      fprintf(stderr, "can't find index %s\n", path);
-      exit(EXIT_FAILURE);
-    }
-    static char line[LINE_LEN];
+    if (fp == NULL)
+      return NULL;
     while (fgets(line, sizeof(line), fp)) {
-      char *q = strchr(line, ' ');
-      if (q) {
-        *q++ = 0;
-        if (strcmp(line, name) == 0) {
-          fclose(fp);
-          char *r = strchr(q, '\n');
-          if (r)
-            *r = 0;
-          fprintf(stderr, "xlate segname %s to %s\n", name, q);
-          return q;
+      char *p = strchr(line, ' ');
+      if (p) {
+        *p++ = 0;
+        if (strcmp(line, entryname) == 0) {
+          char *q = strchr(p, '\n');
+          if (q)
+            *q = 0;
+          int p_len = strlen(p);
+          rassert(multics_root_len + dir_name_len + 1 + p_len < PATH_LEN);
+          strcpy(path + multics_root_len + dir_name_len + 1, p);
+          fd = open(path, writeable ? O_RDWR : O_RDONLY);
+          if (fd != -1) {
+            fclose(fp);
+            fprintf(stderr, "xlate entryname %s to %s\n", entryname, p);
+            entryname = p;
+            entryname_len = p_len;
+            goto found_alias;
+          }
         }
       }
     }
     fclose(fp);
+    return NULL;
+  found_alias:
+    ;
   }
 
-  fprintf(stderr, "can't xlate segname %s\n", name);
-  return name;
-}
-
-struct known_segment *make_known(const char *name) {
-  name = xlate_segname(name);
-
-  // see if already loaded
-  for (int i = 0; i < n_known_segment; ++i)
-    if (strcmp(known_segment[i].name, name) == 0)
-      return known_segment + i;
+  // see if already known under the found path (can be tricked)
+  for (int i = 0; i < n_known_segment; ++i) {
+    struct known_segment *p = known_segment + i;
+    if (strcmp(p->path, path) == 0) {
+      close(fd);
+      return p;
+    }
+  }
 
   // allocate table entries
   rassert(n_known_segment < N_KNOWN_SEGMENT);
   struct known_segment *p = known_segment + n_known_segment++;
-  p->name = strdup(name);
-  rassert(p->name);
-
+  p->path = strdup(path);
+  rassert(p->path);
   p->segment = allocate_segment();
-  fprintf(stderr, "load segname %s into segment %06o\n", name, p->segment);
-  known_segment_xref[p->segment] = p;
-
-  // search for segment in path
-  int path_index;
-  for (path_index = 0; path_index < N_PATHS; ++path_index) {
-    char path[PATH_LEN];
-    rassert(strlen(paths[path_index]) + strlen(name) < sizeof(path));
-    strcpy(path, paths[path_index]);
-    strcat(path, name);
-
-    int fd = open(path, O_RDONLY);
-    if (fd != -1) {
-      M[p->segment] = (word36 *)mmap(
-        NULL,
-        01000000 * sizeof(uint64_t),
-        PROT_READ | PROT_WRITE,
-        MAP_PRIVATE,
-        fd,
-        (off_t)0
-      );
-      rassert(M[p->segment] != (word36 *)-1);
+  fprintf(stderr, "load %s into segment %06o\n", path, p->segment);
+  segment_to_known_segment[p->segment] = p;
+  p->writeable = writeable;
 
-      close(fd);
-      goto found_segment;
-    }
-  }
-  fprintf(stderr, "can't find segname %s in paths list\n", name);
-  exit(EXIT_FAILURE);
+  // map into memory
+  M[p->segment] = (word36 *)mmap(
+    NULL,
+    01000000 * sizeof(uint64_t),
+    PROT_READ | PROT_WRITE,
+    writeable ? 0 : MAP_PRIVATE,
+    fd,
+    (off_t)0
+  );
+  rassert(M[p->segment] != (word36 *)-1);
+  close(fd);
 
-found_segment:
-  ;
-  char path[PATH_LEN];
-  rassert(strlen(paths[path_index]) + 4 < sizeof(path));
-  strcpy(path, paths[path_index]);
-  strcat(path, ".dir");
+  // see if we can find bitcount for segment
+  rassert(multics_root_len + dir_name_len + 1 + 4 < PATH_LEN);
+  strcpy(path + multics_root_len + dir_name_len + 1, ".dir");
 
   FILE *fp = fopen(path, "r");
-  if (fp == NULL) {
-    fprintf(stderr, "can't find index %s\n", path);
-    exit(EXIT_FAILURE);
-  }
-  char line[LINE_LEN];
-  while (fgets(line, sizeof(line), fp)) {
-    char *q = strchr(line, ' ');
-    if (q) {
-      *q++ = 0;
-      if (strcmp(line, name) == 0) {
-        fclose(fp);
-        p->bitcount = (int)strtol(q, NULL, 0);
-        goto found_bitcount;
+  if (fp) {
+    char line[LINE_LEN];
+    while (fgets(line, sizeof(line), fp)) {
+      char *q = strchr(line, ' ');
+      if (q) {
+        *q++ = 0;
+        if (strcmp(line, entryname) == 0) {
+          p->bitcount = (int)strtol(q, NULL, 0);
+          break;
+        }
       }
     }
+    fclose(fp);
   }
-  fclose(fp);
 
-  fprintf(stderr, "can't find segname %s in index %s\n", name, path);
-  exit(EXIT_FAILURE);
+  return p;
+}
+
+struct known_segment *initiate_segment(
+  const char *dir_name,
+  const char *entryname,
+  const char *ref_name,
+  bool writeable,
+  bool *already
+) {
+  // see if already known under this ref_name
+  for (int i = 0; i < n_ref_name_to_known_segment; ++i)
+    if (strcmp(ref_name_to_known_segment[i].ref_name, ref_name) == 0) {
+      if (already)
+        *already = true;
+      return ref_name_to_known_segment[i].known_segment;
+    }
+
+  // try either given dir_name or search path
+  struct known_segment *p;
+  if (dir_name) {
+    p = make_known_segment(dir_name, entryname, writeable);
+    if (p == NULL)
+      return NULL;
+  }
+  else {
+    for (int i = 0; i < N_SEARCH_PATH; ++i) {
+      p = make_known_segment(search_path[i], entryname, writeable);
+      if (p)
+        goto found_search_path;
+    }
+    return NULL;
+  found_search_path:
+    ;
+  }
 
-found_bitcount:
-  p->linkage_offset = 0;
-  p->n_debug_symbol = 0;
-  p->debug_symbol = NULL;
-  p->system_link_head = NULL;
+  // make known under this ref_name
+  rassert(n_ref_name_to_known_segment < N_REF_NAME_TO_KNOWN_SEGMENT);
+  struct ref_name_to_known_segment *q =
+    ref_name_to_known_segment + n_ref_name_to_known_segment++;
+  q->ref_name = strdup(ref_name);
+  rassert(q->ref_name);
+  q->known_segment = p;
+  ++(p->n_ref_name);
+
+  if (already)
+    *already = false;
   return p;
 }
 
@@ -343,23 +415,151 @@ int nesting;
 char *lookup_address(int segment, int offset) {
   if (segment >= N_SEGMENT)
     return NULL;
-  struct known_segment *p = known_segment_xref[segment];
+  struct known_segment *p = segment_to_known_segment[segment];
   if (p == NULL)
     return NULL;
 
   struct debug_symbol *q = find_debug_symbol(p, offset);
-  static char text[NAME_LEN * 2 + 0x20];
+  if (q == NULL)
+    return NULL;
+
+  static char text[DEBUG_NAME_LEN + 0x20];
   int i = nesting & 0xf;
   memset(text, ' ', i);
-  if (q == NULL)
-    sprintf(text + i, "<%s$%06o>", p->name, offset);
-  else
-    sprintf(text + i, "<%s$%s + %06o>", p->name, q->name, offset - q->offset);
+  sprintf(text + i, "<%s + %06o>", q->name, offset - q->offset);
   return text;
 }
 
-struct known_segment *link_segment(const char *name) {
-  struct known_segment *p = make_known(name);
+struct its_pointer find_definition(
+  struct known_segment *p,
+  const char *name,
+  int class,
+  bool entry
+) {
+  // redirect specific entry points to emcall stubs
+  if (p == hcs) {
+    if (strcmp(name, "make_entry") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset);
+    if (strcmp(name, "make_ptr") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 3);
+    if (strcmp(name, "make_seg") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 6);
+    if (strcmp(name, "proc_info") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 9);
+    if (strcmp(name, "set_ips_mask") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 12);
+    if (strcmp(name, "reset_ips_mask") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 15);
+    if (strcmp(name, "fs_search_get_wdir") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 18);
+    if (strcmp(name, "initiate_count") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 21);
+    if (strcmp(name, "fs_get_mode") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 24);
+    if (strcmp(name, "high_low_seg_count") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 27);
+    if (
+      strcmp(name, ".my_lp") &&
+        strcmp(name, "cpu_time_and_paging_") &&
+        strcmp(name, "get_authorization")
+    ) {
+      fprintf(stderr, "unsupported emcall hcs_$%s\n", name);
+      exit(EXIT_FAILURE);
+    }
+  }
+  else if (p == iox) {
+    if (strcmp(name, "get_line") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 30);
+    if (strcmp(name, "put_chars") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 33);
+    if (
+      strcmp(name, "user_input") &&
+        strcmp(name, "user_output") &&
+        strcmp(name, "error_output") &&
+        strcmp(name, "init_standard_iocbs") &&
+        strcmp(name, "syn_attach") &&
+        strcmp(name, "get_group_id_") &&
+        strcmp(name, "modes")
+    ) {
+      fprintf(stderr, "unsupported emcall iox_$%s\n", name);
+      exit(EXIT_FAILURE);
+    }
+  }
+  else if (p == sys_info) {
+    if (strcmp(name, "service_system") == 0)
+      return its_pointer(linkage_segment, emcall_stubs_offset + 36);
+  }
+
+  struct object_map *object_map = get_object_map(p);
+  struct definition_header *definition_header = (struct definition_header *)(
+    M[p->segment] + object_map->definition_offset
+  );
+
+  for (
+    struct definition *definition = (struct definition *)(
+      (uint64_t *)definition_header + definition_header->def_list_relp
+    );
+    *(uint64_t *)definition;
+    definition = (struct definition *)(
+      (uint64_t *)definition_header + definition->forward_relp
+    )
+  ) {
+    rassert(definition->class <= CLASS_HEAP);
+    if (
+      definition->class != CLASS_SEGNAME &&
+      !definition->flags_ignore &&
+      (class == -1 || definition->class == class) &&
+      (!entry || definition->flags_entry)
+    ) {
+      char definition_name[NAME_LEN + 1];
+      get_acc_string(
+        (uint64_t *)definition_header + definition->name_relp,
+        definition_name,
+        NAME_LEN
+      );
+
+      if (strcmp(definition_name, name) == 0)
+        switch (definition->class) {
+        case CLASS_TEXT:
+          return its_pointer(
+            p->segment,
+            (int)(object_map->text_offset + definition->thing_relp)
+          );
+        case CLASS_LINKAGE:
+          return its_pointer(
+            linkage_segment,
+            (int)(p->linkage_offset + definition->thing_relp)
+          );
+        default:
+          fprintf(
+            stderr,
+            "unimplemented class %s in segment %s definition %s\n",
+            class_names[definition->class],
+            p->path,
+            name
+          );
+          exit(EXIT_FAILURE);
+        }
+    }
+  }
+
+  fprintf(
+    stderr,
+    "can't find segment %s definition %s\n",
+    p->path,
+    name
+  );
+  exit(EXIT_FAILURE);
+}
+
+struct known_segment *link_segment(
+  const char *dir_name,
+  const char *entryname,
+  const char *ref_name
+) {
+  struct known_segment *p =
+    initiate_segment(dir_name, entryname, ref_name, false, NULL);
+  rassert(p);
 
   if (p->linkage_offset == 0) {
     struct object_map *object_map = get_object_map(p);
@@ -386,12 +586,28 @@ struct known_segment *link_segment(const char *name) {
       p->linkage_offset,
       p->linkage_offset + (int)object_map->linkage_length
     );
-    if (strcmp(p->name, "hcs_") == 0)
-      // patch in .my_lp
-      *(struct its_pointer *)(M[p->segment] + 0312) = its_pointer(
+    if (strcmp(ref_name, "hcs_") == 0) {
+      hcs = p;
+      struct its_pointer my_lp_pointer = find_definition(
+        p,
+        ".my_lp",
+        -1,
+        false
+      );
+      *(struct its_pointer *)(
+        M[my_lp_pointer.segment] + my_lp_pointer.offset
+      ) = its_pointer(
         linkage_segment,
         p->linkage_offset
       );
+    }
+    else if (
+      strcmp(ref_name, "iox_") == 0 ||
+        strcmp(ref_name, "get_group_id_") == 0
+    )
+      iox = p;
+    else if (strcmp(ref_name, "sys_info") == 0)
+      sys_info = p;
     struct linkage_header *linkage_header = (struct linkage_header *)(
       M[linkage_segment] + p->linkage_offset
     );
@@ -425,7 +641,7 @@ struct known_segment *link_segment(const char *name) {
     // update LOT, ISOT and LOT/ISOT high water
     lot[p->segment] = packed_pointer(linkage_segment, p->linkage_offset);
     isot[p->segment] = packed_pointer(linkage_segment, static_offset);
-    stack_header->cur_lot_size = next_segment;
+    stack_header->cur_lot_size = n_segment;
 
     // create debug symbol table (optional)
     struct definition_header *definition_header = (struct definition_header *)(
@@ -433,6 +649,8 @@ struct known_segment *link_segment(const char *name) {
     );
 
     int n_debug_symbol0 = n_debug_symbol;
+    char name_buf[DEBUG_NAME_LEN + 1];
+    int segname_len = 0;
     for (
       struct definition *definition = (struct definition *)(
         (uint64_t *)definition_header + definition_header->def_list_relp
@@ -442,16 +660,24 @@ struct known_segment *link_segment(const char *name) {
         (uint64_t *)definition_header + definition->forward_relp
       )
     )
-      if (definition->class == CLASS_TEXT) {
+      if (definition->class == CLASS_SEGNAME) {
+        get_acc_string(
+          (uint64_t *)definition_header + definition->name_relp,
+          name_buf,
+          DEBUG_NAME_LEN - 1
+        );
+        segname_len = strlen(name_buf);
+        name_buf[segname_len] = '$';
+      }
+      else if (definition->class == CLASS_TEXT) {
         rassert(n_debug_symbol < N_DEBUG_SYMBOL);
         struct debug_symbol *q = debug_symbol + n_debug_symbol++;
         q->offset = object_map->text_offset + definition->thing_relp;
 
-        char name_buf[DEBUG_NAME_LEN + 1];
         get_acc_string(
           (uint64_t *)definition_header + definition->name_relp,
-          name_buf,
-          DEBUG_NAME_LEN
+          name_buf + segname_len + 1,
+          DEBUG_NAME_LEN - segname_len - 1
         );
         q->name = strdup(name_buf);
         rassert(q->name);
@@ -466,101 +692,10 @@ struct known_segment *link_segment(const char *name) {
       sizeof(struct debug_symbol),
       compare_debug_symbol
     );
- //fprintf(stderr, "segname %s n_debug_symbol %d\n", p->name, p->n_debug_symbol);
- //for (int i = 0; i < p->n_debug_symbol; ++i)
- // fprintf(stderr, "%06o %s\n", p->debug_symbol[i].offset, p->debug_symbol[i].name);
   }
   return p;
 }
 
-struct its_pointer find_definition(
-  struct known_segment *p,
-  const char *name,
-  int class,
-  bool entry
-) {
-  // redirect specific entry points to emcall stubs
-  if (strcmp(p->name, "hcs_") == 0) {
-    if (strcmp(name, "make_entry") == 0)
-      return its_pointer(linkage_segment, emcall_stubs_offset);
-    if (strcmp(name, "make_ptr") == 0)
-      return its_pointer(linkage_segment, emcall_stubs_offset + 3);
-    if (strcmp(name, "make_seg") == 0)
-      return its_pointer(linkage_segment, emcall_stubs_offset + 6);
-    if (
-      strcmp(name, "proc_info") == 0 ||
-      strcmp(name, "set_ips_mask") == 0 ||
-      strcmp(name, "reset_ips_mask") == 0
-    )
-      return its_pointer(linkage_segment, emcall_stubs_offset + 9);
-  }
-  else if (strcmp(p->name, "sys_info") == 0) {
-    if (strcmp(name, "service_system") == 0)
-      return its_pointer(linkage_segment, emcall_stubs_offset + 12);
-  }
-
-  struct object_map *object_map = get_object_map(p);
-  struct definition_header *definition_header = (struct definition_header *)(
-    M[p->segment] + object_map->definition_offset
-  );
-
-  for (
-    struct definition *definition = (struct definition *)(
-      (uint64_t *)definition_header + definition_header->def_list_relp
-    );
-    *(uint64_t *)definition;
-    definition = (struct definition *)(
-      (uint64_t *)definition_header + definition->forward_relp
-    )
-  ) {
-    rassert(definition->class <= CLASS_HEAP);
-    if (
-      definition->class != CLASS_SEGNAME &&
-      !definition->flags_ignore &&
-      (class == -1 || definition->class == class) &&
-      (!entry || definition->flags_entry)
-    ) {
-      char definition_name[NAME_LEN + 1];
-      get_acc_string(
-        (uint64_t *)definition_header + definition->name_relp,
-        definition_name,
-        NAME_LEN
-      );
-
-      if (strcmp(definition_name, name) == 0)
-        switch (definition->class) {
-        case CLASS_TEXT:
-          return its_pointer(
-            p->segment,
-            (int)(object_map->text_offset + definition->thing_relp)
-          );
-        case CLASS_LINKAGE:
-          return its_pointer(
-            linkage_segment,
-            (int)(p->linkage_offset + definition->thing_relp)
-          );
-        default:
-          fprintf(
-            stderr,
-            "unimplemented class %s in definition %s$%s\n",
-            class_names[definition->class],
-            p->name,
-            name
-          );
-          exit(EXIT_FAILURE);
-        }
-    }
-  }
-
-  fprintf(
-    stderr,
-    "can't find definition %s$%s\n",
-    p->name,
-    name
-  );
-  exit(EXIT_FAILURE);
-}
-
 // callback from simulator when fault type 2 occurs
 void snap_link(void) {
   fprintf(
@@ -573,8 +708,8 @@ void snap_link(void) {
   );
 
   // find segment of faulting instruction (for validation purposes)
-  rassert(cpu.PPR.PSR < N_SEGMENT);
-  struct known_segment *p = known_segment_xref[cpu.PPR.PSR];
+  rassert(cpu.PPR.PSR < n_segment);
+  struct known_segment *p = segment_to_known_segment[cpu.PPR.PSR];
   rassert(p);
 
   // validate link address, using read-only linkage section (safer)
@@ -647,7 +782,7 @@ void snap_link(void) {
       NAME_LEN
     );
     *link = find_definition(
-      link_segment(segname),
+      link_segment(NULL, segname, segname),
       offsetname,
       -1,
       false
@@ -727,7 +862,7 @@ void emcall_exit_emulation(void) {
 
 void emcall_make_entry(void) {
   struct arg_list *arg_list = (struct arg_list *)(
-    M[stack_segment] + cpu.rX[1]
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
   );
 
   rassert(arg_list->arg_count == 10);
@@ -747,21 +882,50 @@ void emcall_make_entry(void) {
     M[arg_list->args[4].segment] + arg_list->args[4].offset
   );
 
+  rassert(arg_list->desc_count == 10);
+  struct arg_desc *entryname_desc = (struct arg_desc *)(
+    M[arg_list->args[6].segment] + arg_list->args[6].offset
+  );
+  struct arg_desc *entry_point_name_desc = (struct arg_desc *)(
+    M[arg_list->args[7].segment] + arg_list->args[7].offset
+  );
   char entryname_buf[NAME_LEN + 1];
-  get_string_rstrip(entryname_buf, entryname, NAME_LEN);
+  rassert(entryname_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    entryname_buf,
+    entryname,
+    entryname_desc->size
+  );
 
   char entry_point_name_buf[NAME_LEN + 1];
-  get_string_rstrip(entry_point_name_buf, entry_point_name, NAME_LEN);
+  rassert(entry_point_name_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    entry_point_name_buf,
+    entry_point_name,
+    entry_point_name_desc->size
+  );
 
   entry_point->code_ptr =
     entry_point_name_buf[0] ?
       find_definition(
-        link_segment(entryname_buf),
+        link_segment(
+          NULL,
+          entryname_buf,
+          entryname_buf
+        ),
         entry_point_name_buf,
         -1,
         false
       ) :
-      its_pointer(link_segment(entryname_buf)->segment, 0);
+      its_pointer(
+        link_segment(
+          NULL,
+          entryname_buf,
+          entryname_buf
+        )->segment,
+        0
+      );
   entry_point->env_ptr = its_pointer(-1, 1);
   *code = 0;
 
@@ -777,7 +941,7 @@ void emcall_make_entry(void) {
 
 void emcall_make_ptr(void) {
   struct arg_list *arg_list = (struct arg_list *)(
-    M[stack_segment] + cpu.rX[1]
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
   );
 
   rassert(arg_list->arg_count == 10);
@@ -797,21 +961,52 @@ void emcall_make_ptr(void) {
     M[arg_list->args[4].segment] + arg_list->args[4].offset
   );
 
+  rassert(arg_list->desc_count == 10);
+  struct arg_desc *entryname_desc = (struct arg_desc *)(
+    M[arg_list->args[6].segment] + arg_list->args[6].offset
+  );
+  struct arg_desc *entry_point_name_desc = (struct arg_desc *)(
+    M[arg_list->args[7].segment] + arg_list->args[7].offset
+  );
   char entryname_buf[NAME_LEN + 1];
-  get_string_rstrip(entryname_buf, entryname, NAME_LEN);
+  rassert(entryname_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    entryname_buf,
+    entryname,
+    entryname_desc->size
+  );
 
   char entry_point_name_buf[NAME_LEN + 1];
-  get_string_rstrip(entry_point_name_buf, entry_point_name, NAME_LEN);
+  rassert(entry_point_name_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    entry_point_name_buf,
+    entry_point_name,
+    entry_point_name_desc->size
+  );
 
   *entry_point_pointer =
     entry_point_name_buf[0] ?
       find_definition(
-        link_segment(entryname_buf),
+        link_segment(
+          NULL,
+          entryname_buf,
+          entryname_buf
+        ),
         entry_point_name_buf,
         -1,
         false
       ) :
-      its_pointer(make_known(entryname_buf)->segment, 0);
+      its_pointer(
+        initiate_segment(
+          NULL,
+          entryname_buf,
+          entryname_buf,
+          false,
+          NULL
+        )->segment,
+        0
+      );
   *code = 0;
 
   fprintf(
@@ -826,7 +1021,7 @@ void emcall_make_ptr(void) {
 
 void emcall_make_seg(void) {
   struct arg_list *arg_list = (struct arg_list *)(
-    M[stack_segment] + cpu.rX[1]
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
   );
 
   rassert(arg_list->arg_count == 12);
@@ -849,40 +1044,77 @@ void emcall_make_seg(void) {
     M[arg_list->args[5].segment] + arg_list->args[5].offset
   );
 
-  char dir_name_buf[NAME_LEN + 1];
-  get_string_rstrip(dir_name_buf, dir_name, NAME_LEN);
+  rassert(arg_list->desc_count == 12);
+  struct arg_desc *dir_name_desc = (struct arg_desc *)(
+    M[arg_list->args[6].segment] + arg_list->args[6].offset
+  );
+  struct arg_desc *entryname_desc = (struct arg_desc *)(
+    M[arg_list->args[7].segment] + arg_list->args[7].offset
+  );
+  struct arg_desc *ref_name_desc = (struct arg_desc *)(
+    M[arg_list->args[8].segment] + arg_list->args[8].offset
+  );
+
+  char dir_name_buf[PATH_LEN];
+  rassert(dir_name_desc->size < PATH_LEN);
+  get_string_rstrip(
+    dir_name_buf,
+    dir_name,
+    dir_name_desc->size
+  );
+  if (dir_name_buf[0] == 0) {
+    rassert(strlen(multics_process) < PATH_LEN);
+    strcpy(dir_name_buf, multics_process);
+  }
 
   char entryname_buf[NAME_LEN + 1];
-  get_string_rstrip(entryname_buf, entryname, NAME_LEN);
+  rassert(entryname_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    entryname_buf,
+    entryname,
+    entryname_desc->size
+  );
 
   char ref_name_buf[NAME_LEN + 1];
-  get_string_rstrip(ref_name_buf, ref_name, NAME_LEN);
+  rassert(ref_name_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    ref_name_buf,
+    ref_name,
+    ref_name_desc->size
+  );
 
-  // see if already loaded
+  // see if already known under this ref_name
   struct known_segment *p;
-  for (int i = 0; i < n_known_segment; ++i) {
-    p = known_segment + i;
-    if (strcmp(p->name, ref_name_buf) == 0) {
-      *code = 0123456; // change this to error_table_$segknown
+  for (int i = 0; i < n_ref_name_to_known_segment; ++i)
+    if (strcmp(ref_name_to_known_segment[i].ref_name, ref_name_buf) == 0) {
+      p = ref_name_to_known_segment[i].known_segment;
+      *code = *segknown;
       goto already_known;
     }
-  }
   *code = 0;
 
   // allocate table entries
   rassert(n_known_segment < N_KNOWN_SEGMENT);
   p = known_segment + n_known_segment++;
-  p->name = strdup(ref_name_buf);
-  rassert(p->name);
-
+  p->path = "";
   p->segment = scratch_segment();
   fprintf(
     stderr,
-    "make segname %s with segment %06o\n",
+    "make ref_name %s with segment %06o\n",
     ref_name_buf,
     p->segment
   );
-  known_segment_xref[p->segment] = p;
+  segment_to_known_segment[p->segment] = p;
+  p->writeable = true;
+
+  // make known under this ref_name
+  rassert(n_ref_name_to_known_segment < N_REF_NAME_TO_KNOWN_SEGMENT);
+  struct ref_name_to_known_segment *q =
+    ref_name_to_known_segment + n_ref_name_to_known_segment++;
+  q->ref_name = strdup(ref_name_buf);
+  rassert(q->ref_name);
+  q->known_segment = p;
+  ++(p->n_ref_name);
 
 already_known:
   *seg_ptr = its_pointer(p->segment, 0);
@@ -897,7 +1129,305 @@ already_known:
     seg_ptr->offset
   );
 }
+
 void emcall_proc_info(void) {
+  fprintf(stderr, "proc_info -> ignored\n");
+}
+
+void emcall_set_ips_mask(void) {
+  fprintf(stderr, "set_ips_mask -> ignored\n");
+}
+
+void emcall_reset_ips_mask(void) {
+  fprintf(stderr, "reset_ips_mask -> ignored\n");
+}
+
+void emcall_fs_search_get_wdir(void) {
+  struct arg_list *arg_list = (struct arg_list *)(
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
+  );
+
+  rassert(arg_list->arg_count == 4);
+  struct its_pointer *a_pathptr = (struct its_pointer *)(
+    M[arg_list->args[0].segment] + arg_list->args[0].offset
+  );
+  uint64_t *a_pathcnt = (uint64_t *)(
+    M[arg_list->args[1].segment] + arg_list->args[1].offset
+  );
+
+  char path_buf[DNAME_LEN + 1];
+  int path_len = strlen(multics_home);
+  rassert(path_len < DNAME_LEN + 1);
+  strcpy(path_buf, multics_home);
+
+  uint64_t *a_path = (uint64_t *)(
+    M[a_pathptr->segment] + a_pathptr->offset
+  );
+  static const int shifts[] = {27, 18, 9, 0};
+  int i;
+  for (i = 0; i < path_len; ++i) {
+    int j = i >> 2;
+    int k = i & 3;
+    a_path[j] =
+      (a_path[j] & ~((uint64_t)0777 << shifts[k])) |
+        ((uint64_t)path_buf[i] << shifts[k]);
+  }
+  for (; i < DNAME_LEN; ++i) {
+    int j = i >> 2;
+    int k = i & 3;
+    a_path[j] =
+      (a_path[j] & ~((uint64_t)0777 << shifts[k])) |
+        ((uint64_t)' ' << shifts[k]);
+  }
+  *a_pathcnt = path_len;
+
+  fprintf(stderr, "fs_search_get_wdir -> %s\n", path_buf);
+}
+
+void emcall_initiate_count(void) {
+  struct arg_list *arg_list = (struct arg_list *)(
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
+  );
+
+  rassert(arg_list->arg_count == 14);
+  uint64_t *dir_name = (uint64_t *)(
+    M[arg_list->args[0].segment] + arg_list->args[0].offset
+  );
+  uint64_t *entryname = (uint64_t *)(
+    M[arg_list->args[1].segment] + arg_list->args[1].offset
+  );
+  uint64_t *ref_name = (uint64_t *)(
+    M[arg_list->args[2].segment] + arg_list->args[2].offset
+  );
+  uint64_t *bit_count = (uint64_t *)(
+    M[arg_list->args[3].segment] + arg_list->args[3].offset
+  );
+  //uint64_t *copy_ctl_sw = (uint64_t *)(
+  //  M[arg_list->args[4].segment] + arg_list->args[4].offset
+  //);
+  struct its_pointer *seg_ptr = (struct its_pointer *)(
+    M[arg_list->args[5].segment] + arg_list->args[5].offset
+  );
+  uint64_t *code = (uint64_t *)(
+    M[arg_list->args[6].segment] + arg_list->args[6].offset
+  );
+
+  rassert(arg_list->desc_count == 14);
+  struct arg_desc *dir_name_desc = (struct arg_desc *)(
+    M[arg_list->args[7].segment] + arg_list->args[7].offset
+  );
+  struct arg_desc *entryname_desc = (struct arg_desc *)(
+    M[arg_list->args[8].segment] + arg_list->args[8].offset
+  );
+  struct arg_desc *ref_name_desc = (struct arg_desc *)(
+    M[arg_list->args[9].segment] + arg_list->args[9].offset
+  );
+
+  char dir_name_buf[PATH_LEN];
+  rassert(dir_name_desc->size < PATH_LEN);
+  get_string_rstrip(
+    dir_name_buf,
+    dir_name,
+    dir_name_desc->size
+  );
+
+  char entryname_buf[NAME_LEN + 1];
+  rassert(entryname_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    entryname_buf,
+    entryname,
+    entryname_desc->size
+  );
+
+  char ref_name_buf[NAME_LEN + 1];
+  rassert(ref_name_desc->size < NAME_LEN + 1);
+  get_string_rstrip(
+    ref_name_buf,
+    ref_name,
+    ref_name_desc->size
+  );
+
+  bool already;
+  struct known_segment *p = initiate_segment(
+    dir_name_buf,
+    entryname_buf,
+    ref_name_buf,
+    true,
+    &already
+  );
+  *bit_count = p->bitcount;
+  *seg_ptr = its_pointer(p->segment, 0);
+  *code = already ? *segknown : 0;
+
+  fprintf(
+    stderr,
+    "initiate_count %s>%s %s -> %06o:%06o\n",
+    dir_name_buf,
+    entryname_buf,
+    ref_name_buf,
+    seg_ptr->segment,
+    seg_ptr->offset
+  );
+}
+
+void emcall_fs_get_mode(void) {
+  struct arg_list *arg_list = (struct arg_list *)(
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
+  );
+
+  rassert(arg_list->arg_count == 6);
+  struct its_pointer *seg_ptr = (struct its_pointer *)(
+    M[arg_list->args[0].segment] + arg_list->args[0].offset
+  );
+  uint64_t *mode = (uint64_t *)(
+    M[arg_list->args[1].segment] + arg_list->args[1].offset
+  );
+  uint64_t *code = (uint64_t *)(
+    M[arg_list->args[2].segment] + arg_list->args[2].offset
+  );
+
+  rassert(seg_ptr->segment < n_segment);
+  struct known_segment *p = segment_to_known_segment[seg_ptr->segment];
+  rassert(p);
+
+  *mode = p->writeable ? RW_ACCESS_BIN : R_ACCESS_BIN;
+  *code = 0;
+
+  fprintf(
+    stderr,
+    "fs_get_mode %06o:%06o -> %lo\n",
+    seg_ptr->segment,
+    seg_ptr->offset,
+    *mode
+  );
+}
+
+void emcall_high_low_seg_count(void) {
+  struct arg_list *arg_list = (struct arg_list *)(
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
+  );
+
+  rassert(arg_list->arg_count == 4);
+  uint64_t *nonhardcore_seg_count = (uint64_t *)(
+    M[arg_list->args[0].segment] + arg_list->args[0].offset
+  );
+  uint64_t *lowest_nonhardcore_segno = (uint64_t *)(
+    M[arg_list->args[1].segment] + arg_list->args[1].offset
+  );
+
+  *nonhardcore_seg_count = n_segment;
+  *lowest_nonhardcore_segno = 1;
+
+  fprintf(
+    stderr,
+    "emcall_high_low_seg_count returns %012lo, %012lo\n",
+    *nonhardcore_seg_count,
+    *lowest_nonhardcore_segno
+  );
+}
+
+
+void emcall_get_line(void) {
+  struct arg_list *arg_list = (struct arg_list *)(
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
+  );
+
+  rassert(arg_list->arg_count == 10);
+  struct its_pointer *iocb_ptr = (struct its_pointer *)(
+    M[arg_list->args[0].segment] + arg_list->args[0].offset
+  );
+  struct its_pointer *buff_ptr = (struct its_pointer *)(
+    M[arg_list->args[1].segment] + arg_list->args[1].offset
+  );
+  uint64_t *buff_len = (uint64_t *)(
+    M[arg_list->args[2].segment] + arg_list->args[2].offset
+  );
+  uint64_t *n_read = (uint64_t *)(
+    M[arg_list->args[3].segment] + arg_list->args[3].offset
+  );
+  uint64_t *code = (uint64_t *)(
+    M[arg_list->args[4].segment] + arg_list->args[4].offset
+  );
+
+  FILE *fp;
+  if (
+    iocb_ptr->segment == user_input->segment &&
+      iocb_ptr->offset == user_input->offset
+  )
+    fp = stdin;
+  else
+    rassert(false);
+
+  fprintf(stderr, "emcall_get_line %ld\n", *buff_len);
+
+  *n_read = 0;
+  uint64_t *buff = (uint64_t *)(M[buff_ptr->segment] + buff_ptr->offset);
+  static const int shifts[] = {27, 18, 9, 0};
+  while (*n_read < *buff_len) {
+    int c = fgetc(fp);
+    if (c == EOF) {
+      *code = *n_read ? *short_record : *end_of_info;
+      fprintf(stderr, "emcall_get_line returns %ld, %012lo\n", *n_read, *code);
+      return;
+    }
+    size_t i = (size_t)(*n_read >> 2);
+    int j = (int)(*n_read & 3);
+    ++*n_read;
+    buff[i] =
+      (buff[i] & ~((uint64_t)0777 << shifts[j])) |
+        ((uint64_t)c << shifts[j]);
+    if (c == '\n') {
+      *code = 0;
+      fprintf(stderr, "emcall_get_line returns %ld, %012lo\n", *n_read, *code);
+      return;
+    }
+  }
+  *code = *long_record;
+  fprintf(stderr, "emcall_get_line returns %ld, %012lo\n", *n_read, *code);
+}
+
+void emcall_put_chars(void) {
+  struct arg_list *arg_list = (struct arg_list *)(
+    M[cpu.PR[0].SNR] + cpu.PR[0].WORDNO
+  );
+
+  rassert(arg_list->arg_count == 8);
+  struct its_pointer *iocb_ptr = (struct its_pointer *)(
+    M[arg_list->args[0].segment] + arg_list->args[0].offset
+  );
+  struct its_pointer *buff_ptr = (struct its_pointer *)(
+    M[arg_list->args[1].segment] + arg_list->args[1].offset
+  );
+  uint64_t *n = (uint64_t *)(
+    M[arg_list->args[2].segment] + arg_list->args[2].offset
+  );
+  uint64_t *code = (uint64_t *)(
+    M[arg_list->args[3].segment] + arg_list->args[3].offset
+  );
+
+  FILE *fp;
+  if (
+    iocb_ptr->segment == user_output->segment &&
+      iocb_ptr->offset == user_output->offset
+  )
+    fp = stdout;
+  else if (
+    iocb_ptr->segment == error_output->segment &&
+      iocb_ptr->offset == error_output->offset
+  )
+    fp = stderr;
+  else
+    rassert(false);
+
+  fprintf(stderr, "emcall_put_chars %ld\n", *n);
+  uint64_t *buff = (uint64_t *)(M[buff_ptr->segment] + buff_ptr->offset);
+  static const int shifts[] = {27, 18, 9, 0};
+  for (uint64_t i = 0; i < *n; ++i)
+    fputc((char)(buff[i >> 2] >> shifts[i & 3]), fp);
+ fflush(fp);
+
+  *code = 0;
 }
 
 int main(int argc, char **argv) {
@@ -972,7 +1502,7 @@ int main(int argc, char **argv) {
   rassert(null_segment != (uint64_t *)-1);
   for (int i = 0; i < 0100000; ++i)
     M[i] = (word36 *)null_segment;
-  next_segment = 1;
+  n_segment = 1;
 
   // create linkage segment
   linkage_segment = scratch_segment();
@@ -1001,25 +1531,26 @@ int main(int argc, char **argv) {
 
   // load pl1 operators
   stack_header->signal_ptr = find_definition(
-    link_segment("signal_"),
+    link_segment(NULL, "signal_", "signal_"),
     "signal_",
     -1,
     false
   );
   stack_header->unwinder_ptr = find_definition(
-    link_segment("unwinder_"),
+    link_segment(NULL, "unwinder_", "unwinder_"),
     "unwinder_",
     -1,
     false
   );
   stack_header->trans_op_tv_ptr = find_definition(
-    link_segment("operator_pointers_"),
+    link_segment(NULL, "operator_pointers_", "operator_pointers_"),
     "operator_pointers_",
     -1,
     false
   );
 
-  struct known_segment *p = link_segment("pl1_operators_");
+  struct known_segment *p =
+    link_segment(NULL, "pl1_operators_", "pl1_operators_");
   struct its_pointer operator_table_pointer = find_definition(
     p,
     "operator_table",
@@ -1082,6 +1613,77 @@ int main(int argc, char **argv) {
     compare_debug_symbol
   );
 
+  // initiate iox_ segment for emcall use
+  struct known_segment *iox =
+    link_segment(NULL, "iox_", "iox_");
+  struct its_pointer user_input_pointer = find_definition(
+    iox,
+    "user_input",
+    -1,
+    false
+  );
+  user_input = (struct its_pointer *)(
+    M[user_input_pointer.segment] + user_input_pointer.offset
+  );
+  struct its_pointer user_output_pointer = find_definition(
+    iox,
+    "user_output",
+    -1,
+    false
+  );
+  user_output = (struct its_pointer *)(
+    M[user_output_pointer.segment] + user_output_pointer.offset
+  );
+  struct its_pointer error_output_pointer = find_definition(
+    iox,
+    "error_output",
+    -1,
+    false
+  );
+  error_output = (struct its_pointer *)(
+    M[error_output_pointer.segment] + error_output_pointer.offset
+  );
+
+  // initiate error_table segment for emcall use
+  struct known_segment *error_table =
+    link_segment(NULL, "error_table_", "error_table_");
+  struct its_pointer end_of_info_pointer = find_definition(
+    error_table,
+    "end_of_info",
+    -1,
+    false
+  );
+  end_of_info = (uint64_t *)(
+    M[end_of_info_pointer.segment] + end_of_info_pointer.offset
+  );
+  struct its_pointer long_record_pointer = find_definition(
+    error_table,
+    "long_record",
+    -1,
+    false
+  );
+  long_record = (uint64_t *)(
+    M[long_record_pointer.segment] + long_record_pointer.offset
+  );
+  struct its_pointer segknown_pointer = find_definition(
+    error_table,
+    "segknown",
+    -1,
+    false
+  );
+  segknown = (uint64_t *)(
+    M[segknown_pointer.segment] + segknown_pointer.offset
+  );
+  struct its_pointer short_record_pointer = find_definition(
+    error_table,
+    "short_record",
+    -1,
+    false
+  );
+  short_record = (uint64_t *)(
+    M[short_record_pointer.segment] + short_record_pointer.offset
+  );
+
   // create first stack frame
   int stack_frame_offset = allocate_stack(
     sizeof(struct stack_frame) / sizeof(uint64_t),
@@ -1102,30 +1704,61 @@ int main(int argc, char **argv) {
     M[stack_segment] + arg_list_offset
   );
 
-
   // create emcall stubs
-  emcall_stubs_offset = allocate_linkage(13, 1);
+  emcall_stubs_offset = allocate_linkage(37, 1);
   uint64_t *emcall_stubs = (uint64_t *)(
     M[linkage_segment] + emcall_stubs_offset
   );
 
   emcall_stubs[0] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
-  emcall_stubs[1] = 0000027420400L; // emcall make_entry
+  emcall_stubs[1] = 0000001420400L; // emcall make_entry
   emcall_stubs[2] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
 
   emcall_stubs[3] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
-  emcall_stubs[4] = 0000030420400L; // emcall make_ptr
+  emcall_stubs[4] = 0000002420400L; // emcall make_ptr
   emcall_stubs[5] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
 
   emcall_stubs[6] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
-  emcall_stubs[7] = 0000031420400L; // emcall make_seg
+  emcall_stubs[7] = 0000003420400L; // emcall make_seg
   emcall_stubs[8] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
 
   emcall_stubs[9] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
-  emcall_stubs[10] = 0000032420400L; // emcall proc_info
+  emcall_stubs[10] = 0000004420400L; // emcall proc_info
   emcall_stubs[11] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
 
-  emcall_stubs[12] = 0400000000000L; // bit(1) indicating system is up
+  emcall_stubs[12] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[13] = 0000005420400L; // emcall set_ips_mask
+  emcall_stubs[14] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[15] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[16] = 0000006420400L; // emcall reset_ips_mask
+  emcall_stubs[17] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[18] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[19] = 0000007420400L; // emcall fs_search_get_wdir
+  emcall_stubs[20] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[21] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[22] = 0000010420400L; // emcall initiate_count
+  emcall_stubs[23] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[24] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[25] = 0000011420400L; // emcall fs_get_mode
+  emcall_stubs[26] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[27] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[28] = 0000012420400L; // emcall high_low_seg_count
+  emcall_stubs[29] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[30] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[31] = 0000013420400L; // emcall get_line
+  emcall_stubs[32] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[33] = 0700046272120L; // tsp2 pr7|46,n* alm_entry
+  emcall_stubs[34] = 0000014420400L; // emcall put_chars
+  emcall_stubs[35] = 0700044710120L; // tra pr7|44,n* alm_return_no_pop
+
+  emcall_stubs[36] = 0400000000000L; // bit(1) indicating system is up
 
   // create calling stub
   int calling_stub_offset = allocate_linkage(2, 1);
@@ -1137,16 +1770,13 @@ int main(int argc, char **argv) {
     0 // will be overwritten by call_ext_out
   );
   calling_stub[0] = 0000622700100L; // tsx0 pr0|402 call_ext_out_desc
-  calling_stub[1] = 0000026420400L; // emcall exit_emulation
+  calling_stub[1] = 0000000420400L; // emcall exit_emulation
 
   // initialize area allocator
   fprintf(stderr, "call bound_library_1_$define_area_\n");
 
   next_stack_offset = arg_list_offset;
-  allocate_stack(
-    sizeof(struct arg_list) / sizeof(uint64_t) + 4,
-    2
-  );
+  allocate_stack(sizeof(struct arg_list) / sizeof(uint64_t) + 4, 2);
 
   int area_info_pointer_offset = allocate_stack(2, 2);
   arg_list->args[0] = its_pointer(stack_segment, area_info_pointer_offset);
@@ -1195,7 +1825,7 @@ int main(int argc, char **argv) {
   cpu.PR[0].WORDNO = operator_table_pointer.offset;
 
   struct its_pointer define_area_pointer = find_definition(
-    link_segment("bound_library_1_"),
+    link_segment(NULL, "bound_library_1_", "bound_library_1_"),
     "define_area_",
     -1,
     false
@@ -1217,7 +1847,7 @@ int main(int argc, char **argv) {
 
   if (setjmp(exit_emulation) == 0) {
     sim_instr();
-    abort();
+    rassert(false);
   }
 
   rassert(M[stack_segment][code_offset] == 0);
@@ -1227,7 +1857,8 @@ int main(int argc, char **argv) {
   stack_header->assign_linkage_ptr = area_info->areap;
   stack_header->clr_ptr = area_info->areap;
 
-  // initialize standard IOCBs
+  // attach standard IOCBs
+  // (they will not work -- but try to avoid crashes if accessed)
   fprintf(stderr, "call iox_$init_standard_iocbs\n");
 
   next_stack_offset = arg_list_offset;
@@ -1246,7 +1877,7 @@ int main(int argc, char **argv) {
   cpu.PR[0].WORDNO = operator_table_pointer.offset;
 
   struct its_pointer init_standard_iocbs_pointer = find_definition(
-    link_segment("iox_"),
+    iox,
     "init_standard_iocbs",
     -1,
     false
@@ -1268,9 +1899,75 @@ int main(int argc, char **argv) {
  
   if (setjmp(exit_emulation) == 0) {
     sim_instr();
-    abort();
+    rassert(false);
   }
 
+#if 0 // opening does not work, gives a "not attached" error
+  // open standard IOCBs
+  fprintf(stderr, "call iox_$open\n");
+
+  next_stack_offset = arg_list_offset;
+  allocate_stack(sizeof(struct arg_list) / sizeof(uint64_t) + 8, 2);
+
+  arg_list->args[0] = find_definition(
+    iox,
+    "user_io",
+    -1,
+    false
+  );
+
+  int mode_offset = allocate_stack(1, 1);
+  arg_list->args[1] = its_pointer(stack_segment, mode_offset);
+  M[stack_segment][mode_offset] = STREAM_INPUT_OUTPUT;
+
+  int unused_offset = allocate_stack(1, 1);
+  arg_list->args[2] = its_pointer(stack_segment, unused_offset);
+  M[stack_segment][unused_offset] = 0;
+
+  /*int*/ code_offset = allocate_stack(1, 1);
+  arg_list->args[3] = its_pointer(stack_segment, code_offset);
+
+  stack_header->stack_end_ptr = its_pointer(
+    stack_segment,
+    allocate_stack(0, 0x10)
+  );
+
+  cpu.rA = 4 << 19;
+  cpu.rX[1] = arg_list_offset;
+
+  cpu.PR[0].RNR = 3;
+  cpu.PR[0].SNR = operator_table_pointer.segment;
+  cpu.PR[0].WORDNO = operator_table_pointer.offset;
+
+  struct its_pointer open_pointer = find_definition(
+    iox,
+    "open",
+    -1,
+    false
+  );
+  cpu.PR[2].RNR = 3;
+  cpu.PR[2].SNR = open_pointer.segment;
+  cpu.PR[2].WORDNO = open_pointer.offset;
+
+  cpu.PR[6].RNR = 3;
+  cpu.PR[6].SNR = stack_segment;
+  cpu.PR[6].WORDNO = stack_frame_offset;
+
+  cpu.PPR.PRR = 3;
+  cpu.PPR.PSR = linkage_segment;
+  cpu.PPR.P = 0; // privilege
+  cpu.PPR.IC = calling_stub_offset;
+
+  cpu.cycle = FETCH_cycle;
+  if (setjmp(exit_emulation) == 0) {
+    sim_instr();
+    rassert(false);
+  }
+
+  rassert(M[stack_segment][code_offset] == 0);
+#endif
+
   // call requested entry
   fprintf(stderr, "call %s$%s\n", entry_segname, entry_name);
 
@@ -1282,13 +1979,19 @@ int main(int argc, char **argv) {
   );
 
   for (int i = 0; i < n_args; ++i) {
-    int arg_offset = allocate_stack((strlen(args[i]) + 3) >> 2, 1);
+    int arg_len = strlen(args[i]);
+    int arg_offset = allocate_stack((arg_len + 3) >> 2, 1);
     arg_list->args[i] = its_pointer(stack_segment, arg_offset);
 
     uint64_t *arg = (uint64_t *)(M[stack_segment] + arg_offset);
     static int shifts[4] = {27, 18, 9, 0};
-    for (int j = 0; args[i][j]; ++j)
-      arg[j >> 2] |= (uint64_t)args[i][j] << shifts[j & 3];
+    for (int j = 0; j < arg_len; ++j) {
+      int k = j >> 2;
+      int l = j & 3;
+      arg[k] =
+        (arg[k] & ~((uint64_t)0777 << shifts[l])) |
+          ((uint64_t)args[i][j] << shifts[l]);
+    }
 
     int arg_desc_offset = allocate_stack(
       sizeof(struct arg_desc) / sizeof(uint64_t),
@@ -1342,7 +2045,7 @@ int main(int argc, char **argv) {
   cpu.PR[0].WORDNO = operator_table_pointer.offset;
 
   struct its_pointer entry_pointer = find_definition(
-    link_segment(entry_segname),
+    link_segment(NULL, entry_segname, entry_segname),
     entry_name,
     -1,
     true
@@ -1364,7 +2067,7 @@ int main(int argc, char **argv) {
  
   if (setjmp(exit_emulation) == 0) {
     sim_instr();
-    abort();
+    rassert(false);
   }
 
   if (af) {
diff --git a/pl1/access_mode_values.incl.pl1 b/pl1/access_mode_values.incl.pl1
new file mode 100644 (file)
index 0000000..6bd5bcb
--- /dev/null
@@ -0,0 +1,52 @@
+/* BEGIN INCLUDE FILE ... access_mode_values.incl.pl1
+
+   Values for the "access mode" argument so often used in hardcore
+   James R. Davis 26 Jan 81  MCR 4844
+   Added constants for SM access 4/28/82 Jay Pattin
+   Added text strings 03/19/85 Chris Jones
+*/
+
+
+/* format: style4,delnl,insnl,indattr,ifthen,dclind10 */
+dcl    (
+       N_ACCESS                   init ("000"b),
+       R_ACCESS                   init ("100"b),
+       E_ACCESS                   init ("010"b),
+       W_ACCESS                   init ("001"b),
+       RE_ACCESS                  init ("110"b),
+       REW_ACCESS         init ("111"b),
+       RW_ACCESS                  init ("101"b),
+       S_ACCESS                   init ("100"b),
+       M_ACCESS                   init ("010"b),
+       A_ACCESS                   init ("001"b),
+       SA_ACCESS                  init ("101"b),
+       SM_ACCESS                  init ("110"b),
+       SMA_ACCESS         init ("111"b)
+       )                  bit (3) internal static options (constant);
+
+/* The following arrays are meant to be accessed by doing either 1) bin (bit_value) or
+   2) divide (bin_value, 2) to come up with an index into the array. */
+
+dcl    SEG_ACCESS_MODE_NAMES  (0:7) init ("null", "W", "E", "EW", "R", "RW", "RE", "REW") char (4) internal
+                          static options (constant);
+
+dcl    DIR_ACCESS_MODE_NAMES  (0:7) init ("null", "A", "M", "MA", "S", "SA", "SM", "SMA") char (4) internal
+                          static options (constant);
+
+dcl    (
+       N_ACCESS_BIN       init (00000b),
+       R_ACCESS_BIN       init (01000b),
+       E_ACCESS_BIN       init (00100b),
+       W_ACCESS_BIN       init (00010b),
+       RW_ACCESS_BIN      init (01010b),
+       RE_ACCESS_BIN      init (01100b),
+       REW_ACCESS_BIN     init (01110b),
+       S_ACCESS_BIN       init (01000b),
+       M_ACCESS_BIN       init (00010b),
+       A_ACCESS_BIN       init (00001b),
+       SA_ACCESS_BIN      init (01001b),
+       SM_ACCESS_BIN      init (01010b),
+       SMA_ACCESS_BIN     init (01011b)
+       )                  fixed bin (5) internal static options (constant);
+
+/* END INCLUDE FILE ... access_mode_values.incl.pl1 */
diff --git a/pl1/fs_search.pl1 b/pl1/fs_search.pl1
new file mode 100644 (file)
index 0000000..3283079
--- /dev/null
@@ -0,0 +1,408 @@
+/****^  ***********************************************************
+        *                                                         *
+        * Copyright, (C) Honeywell Bull Inc., 1987                *
+        *                                                         *
+        * Copyright, (C) Honeywell Information Systems Inc., 1983 *
+        *                                                         *
+        * Copyright (c) 1972 by Massachusetts Institute of        *
+        * Technology and Honeywell Information Systems, Inc.      *
+        *                                                         *
+        *********************************************************** */
+
+
+
+
+/****^  HISTORY COMMENTS:
+  1) change(86-05-02,Elhard), approve(86-05-02,MCR7391),
+     audit(86-07-18,DGHowe), install(86-11-20,MR12.0-1222):
+     Modified to add extra indirection when applying the referencing_dir rule
+     if the referencing segment is an object MSF component, and to add the
+     same_directory entrypoint for object MSF link snapping.
+                                                   END HISTORY COMMENTS */
+
+
+/* format: style2,indcomtxt */
+
+fs_search:
+     procedure (a_refptr, a_refname, a_MSF_sw, a_segptr, a_code);
+
+/****
+      Modified 85-04-09 by Keith Loepere to remove extraneous error codes from set_wdir.
+      Modified 85-02-25 by Keith Loepere for name lookup error I missed last time.
+      Modified 84-10-15 by Keith Loepere for auditing.  Also to not beep
+      console on RNT damage.
+      Modified 84-06-25 by Keith Loepere to use the new dc_find.
+      Modified 83-12-08 BIM to protect against bad user ring pointers,
+      flush get_rel_segment, and clean up pigsties.
+      Modified 1/83 by Keith Loepere for object on unmounted logical volume.
+      Modified 2/79 W. Olin Sibert to make fs_search return correct error code for error_table_$moderr
+      Modified 3/77 by M. Weaver to use search rules in user ring and not zero lot entry
+      Modified 8/76 by M. Weaver to initialize LOT entry directly
+      Init search rules for ring 8/76 THVV
+      Modified June 1976 by R. Bratt to dereference old wdirs
+      Massively reorganized April 1975 by R. Bratt for new kst
+      8/7/75   by S. Webber to remove get_seg_count, get_seg_ptr, and get_segment entries and
+      to add fs_search entry
+
+*/
+
+/* Parameters */
+
+       dcl     a_code           fixed bin (35) parameter;
+                                               /* returned status code */
+       dcl     a_pathcnt                fixed bin (17) parameter;
+       dcl     a_pathptr                ptr parameter;
+       dcl     a_refname                char (*) parameter;/* segment referenced */
+       dcl     a_refptr                 ptr parameter; /* pointer to segment attempting to link */
+       dcl     a_segptr                 ptr parameter; /* returned pointer to segment referenced */
+       dcl     a_MSF_sw                 bit (1) aligned parameter;
+                                               /* on if refp refers to an MSF */
+       dcl     a_wdir           char (*) parameter;/* path name of new working directory */
+
+/* Variables */
+
+       dcl     bc               fixed bin (24);
+       dcl     code             fixed bin (35);
+       dcl     dirname          char (168);
+       dcl     i                        fixed bin;
+       dcl     old_ep           ptr;
+       dcl     pathname                 char (168) varying;
+       dcl     refname          char (32);
+       dcl     refptr           ptr;           /* temporary storage */
+       dcl     ring             fixed bin (3); /* variable for validation level */
+       dcl     segment_number   fixed bin;
+       dcl     segment_uid              bit (36) aligned;
+       dcl     segptr           ptr;           /* temporary storage */
+       dcl     srp              ptr;           /* pointer to search rules in current use */
+       dcl     test_stack_reference     bit (36) aligned;
+       dcl     type             fixed bin (2);
+       dcl     MSF_sw           bit (1) aligned;
+       dcl     wdir             char (168);
+       dcl     wdp              ptr;           /* working directory pointer */
+
+/* Based */
+
+       dcl     based_reference  bit (36) aligned based;
+       dcl     dname            char (168) based aligned;
+       dcl     1 sr             (22) based aligned,/* search rule declaration */
+               ( 2 base                 bit (18),      /* segment number */
+               2 off            bit (18),      /* offset or code */
+               2 uid            bit (36)
+               )                unaligned;     /* unique id */
+
+/* External */
+       dcl     error_table_$dirseg      ext fixed bin (35);
+       dcl     error_table_$inconsistent_rnt
+                                ext fixed bin (35);
+       dcl     error_table_$logical_volume_not_defined
+                                ext fixed bin (35);
+       dcl     error_table_$moderr      ext fixed bin (35);
+       dcl     error_table_$root        ext fixed bin (35);
+       dcl     error_table_$seg_not_found
+                                ext fixed bin (35);
+       dcl     error_table_$segknown    ext fixed bin (35);
+       dcl     pds$stacks               (0:7) ptr ext;
+       dcl     pds$process_group_id     char (32) ext static;
+       dcl     pds$wdir                 (0:7) ptr ext; /* pointers to working directories (per ring) */
+       dcl     pds$wdir_uid     (0:7) ext bit (36);
+
+/* Entries */
+
+       dcl     get_kstep                entry (fixed bin (17), ptr, fixed bin (35));
+       dcl     get_pathname_    entry (fixed bin (17), char (*) varying, fixed bin (35));
+       dcl     initiate$initiate_count
+                                entry (char (*), char (*), char (*), fixed bin (24), fixed bin (2), ptr,
+                                fixed bin (35));
+       dcl     initiate$initiate_seg_count
+                                entry (ptr, char (*), char (*), fixed bin (24), fixed bin (2), ptr,
+                                fixed bin (35));
+       dcl     level$get                entry returns (fixed bin);
+       dcl     lock$dir_unlock  entry (ptr);
+       dcl     ref_name_$get_segno      entry (char (32) varying, fixed bin (17), fixed bin (35));
+       dcl     segno_usage$decrement    entry (fixed bin (17), fixed bin (35));
+       dcl     status_$minf     entry (char (*), char (*), fixed bin (1), fixed bin (2), fixed bin (24),
+                                fixed bin (35));
+       dcl     syserr           entry options (variable);
+       dcl     terminate_proc   entry (fixed bin (35));
+
+/* Misc */
+
+       dcl     any_other                condition;
+
+       dcl     (addr, baseptr, hbound, length, null, ptr, rtrim, segno)
+                                builtin;
+%page;
+       refptr = a_refptr;                              /* copy arguments */
+       refname = a_refname;
+       MSF_sw = a_MSF_sw;
+       segptr = null;
+
+       code = 0;
+       ring = level$get ();
+       test_stack_reference = pds$stacks (ring) -> based_reference;
+                                               /* in a new ring this will fault on stack which
+                                                  will cause makestack to be invoked which
+                                                  will init rnt and search rules */
+       on any_other call USER_RING_DAMAGED ("stack_header.rnt_ptr", ring);
+                                               /* now, however, a fault is evidence of a real problem */
+       rntp = pds$stacks (ring) -> stack_header.rnt_ptr;
+       on any_other call USER_RING_DAMAGED ("rnt.srulep", ring);
+       srp = rnt.srulep;                               /* get pointer to search rules */
+       on any_other call USER_RING_DAMAGED ("the RNT", ring);
+
+/* start the search */
+
+       do i = 1 to hbound (srp -> sr, 1);
+
+            if srp -> sr (i).off
+            then do;                           /* special code */
+
+/* do this for special codes */
+
+                    if srp -> sr (i).off = INITIATED_RULE
+                    then do;                   /* search RNT */
+                            call ref_name_$get_segno ((refname), segment_number, code);
+                            if code = 0
+                            then do;
+                                    segptr = baseptr (segment_number);
+                                    addr (segptr) -> its_unsigned.ringno = 0;
+                                               /* writearound for compiler bug to force ring num = ring of exec (i.e., 0) */
+                                    go to return;
+                               end;
+                       end;
+
+                    else if srp -> sr (i).off = REFERENCING_DIR_RULE
+                    then do;                   /* search parent of referencing proceedure */
+                            if refptr ^= null
+                            then do;           /* must have pointer to referencing proceedure */
+                                    call get_kstep (segno (refptr), kstep, code);
+                                    if code = 0
+                                    then do;   /* see if we have to go up another level for an MSF */
+                                            if MSF_sw
+                                               then call get_kstep (segno (kste.entryp), kstep, code);
+                                            dp = ptr (kste.entryp, 0);
+                                            go to init_seg;
+                                       end;
+                               end;
+                       end;
+
+                    else if srp -> sr (i).off = WDIR_RULE
+                    then do;                   /* search the working directory */
+                            dp = pds$wdir (ring);      /* get the working directory for this ring */
+                            if dp ^= null
+                            then do;
+                                    call get_kstep (segno (dp), kstep, code);
+                                    if code = 0
+                                    then if pds$wdir_uid (ring) = kstep -> kste.uid
+                                               /* check uid to make sure */
+                                       then go to init_seg;
+                               end;
+                       end;
+
+                    else if srp -> sr (i).off = END_RULE
+                    then do;                   /* not found */
+                            code = error_table_$seg_not_found;
+                            goto return;
+                       end;
+
+                    else if srp -> sr (i).off = BAD_RULE
+                    then ;                     /* ignore bad rule */
+               end;
+
+/* come here for fixed directory search rules */
+
+            else do;
+                    dp = baseptr (srp -> sr (i).base); /* set up pointer to directory */
+                    call get_kstep (segno (dp), kstep, code);
+                    if code = 0
+                    then if srp -> sr (i).uid = kstep -> kste.uid
+                       then do;                        /* check uid to make sure */
+init_seg:
+                               call initiate$initiate_seg_count (dp, refname, refname, (0), 1b, segptr, code);
+                               if segptr ^= null
+                               then do;
+                                       if code = error_table_$segknown
+                                       then code = 0;
+                                               /* Clear residual code */
+                                       go to return;
+                                    end;
+                               else if code = error_table_$moderr
+                                    | code = error_table_$logical_volume_not_defined
+                               then go to return;
+                               else if code = error_table_$dirseg
+                               then do;
+                                       call dc_find$obj_existence_ptr (dp, ep, code);
+                                       if code = 0
+                                       then do;
+                                               call get_pathname_ (segno (dp), pathname, code);
+                                               call dc_find$finished (ep, DC_FIND_UNLOCK_DIR);
+                                            end;
+                                       if code = 0
+                                       then do;
+                                               dirname = pathname;
+                                               call status_$minf (dirname, refname, 1, type, bc, code);
+                                            end;
+                                       if code = 0 & bc > 0 & type = 2
+                                       then do;
+                                               dirname = rtrim (pathname) || ">" || refname;
+                                               call initiate$initiate_count (dirname, "0", refname,
+                                                    (0), 1, segptr, code);
+                                               if segptr ^= null
+                                               then do;
+                                                       if code = error_table_$segknown
+                                                       then code = 0;
+                                               /* Clear residual code */
+                                                       go to return;
+                                                    end;
+                                               else if code = error_table_$moderr
+                                                    | code = error_table_$logical_volume_not_defined
+                                               then go to return;
+                                            end;
+                                    end;
+                            end;
+               end;
+       end;
+
+       code = error_table_$seg_not_found;              /* If fall through, indicate not found */
+
+return:
+       a_segptr = segptr;                              /* return segptr to caller */
+       a_code = code;
+       return;                                 /* and return */
+%page;
+same_directory:
+     entry (a_refptr, a_refname, a_segptr, a_code);
+
+       refptr = a_refptr;
+       refname = a_refname;
+
+/* preset return values */
+
+       segptr = null;
+       code = 0;
+
+       if refptr ^= null
+       then do;
+               call get_kstep (segno (refptr), kstep, code);
+               if code = 0
+               then do;
+                       dp = ptr (kste.entryp, 0);
+                       call initiate$initiate_seg_count (dp, refname, "", 0, 1b, segptr, code);
+                       if code = error_table_$segknown
+                       then code = 0;
+                    end;
+            end;
+       else code = error_table_$seg_not_found;
+
+       a_segptr = segptr;
+       a_code = code;
+
+       return;
+%page;
+set_wdir:
+     entry (a_wdir, a_code);
+
+       wdir = a_wdir;                          /* copy args */
+
+       call dc_find$dir_initiate (wdir, dp, code);
+       if code = 0                             /* user has access to see object */
+       then do;
+               ring = level$get ();            /* which ring is this for */
+               segment_number = segno (pds$wdir (ring));
+               segment_uid = pds$wdir_uid (ring);
+
+               pds$wdir (ring) = dp;           /* save the pointer */
+               pds$wdir_uid (ring) = dp -> dir.uid;    /* and the uid */
+               call lock$dir_unlock (dp);
+
+               call get_kstep (segment_number, kstep, code);
+               if code = 0
+               then if segment_uid = kstep -> kste.uid
+                    then do;                   /* dereference old wdir */
+                            call dc_find$obj_terminate_ptr (baseptr (segment_number), old_ep, code);
+                                               /* audit termination */
+                            if code = 0
+                            then call lock$dir_unlock (ptr (old_ep, 0));
+                            if code = error_table_$root
+                            then code = 0;
+                            if code = 0
+                            then call segno_usage$decrement (segment_number, (0));
+                       end;
+               code = 0;
+            end;
+       a_code = code;
+       return;
+%page;
+get_wdir:
+     entry (a_pathptr, a_pathcnt);                     /* to return the path name of the working directory */
+
+       pathname = "";                          /* in case of error */
+       ring = level$get ();                    /* which ring is this for */
+       wdp = pds$wdir (ring);
+       call get_kstep (segno (wdp), kstep, code);
+       if code = 0
+       then if pds$wdir_uid (ring) = kstep -> kste.uid
+            then do;
+                    call dc_find$obj_existence_ptr (wdp, ep, code);
+                    if code = 0
+                    then do;
+                            call get_pathname_ (segno (wdp), pathname, code);
+                            call dc_find$finished (ep, DC_FIND_UNLOCK_DIR);
+                       end;
+                    else if code = error_table_$root
+                    then do;
+                            code = 0;
+                            pathname = ">";
+                       end;
+               end;
+       a_pathptr -> dname = pathname;
+       a_pathcnt = length (pathname);
+       return;
+%page;
+USER_RING_DAMAGED:
+     procedure (Damaged_thing, Ring);
+
+       dcl     Damaged_thing    char (*) parameter;
+       dcl     Ring             fixed bin (3) parameter;
+
+       call syserr (JUST_LOG, "fs_search: Fatal damage detected to ^a in ring ^d for ^a.", Damaged_thing, Ring,
+            pds$process_group_id);
+       call terminate_proc (error_table_$inconsistent_rnt);
+     end USER_RING_DAMAGED;
+%page;
+%include dc_find_dcls;
+%page;
+%include dir_entry;
+%page;
+%include dir_header;
+%page;
+%include its;
+%page;
+%include kst;
+%page;
+%include rnt;
+%page;
+%include search_rule_flags;
+%page;
+%include stack_header;
+%page;
+%include syserr_constants;
+%page;
+/* BEGIN MESSAGE DOCUMENTATION
+
+   Message:
+   fs_search: Fatal damage detected to WHAT in ring RING for USER.
+
+   S:  $log
+
+   T:  $run
+
+   M:  Some object crucial to the operation of the dynamic linker in ring
+   RING was detected damaged. Since the dynamic linker cannot operate
+   in the process, it is terminated.
+
+   A:  $ignore
+
+   END MESSAGE DOCUMENTATION */
+
+     end fs_search;
diff --git a/pl1/iox_.alm b/pl1/iox_.alm
new file mode 100644 (file)
index 0000000..f61721f
--- /dev/null
@@ -0,0 +1,292 @@
+" ******************************************************
+" *                                                    *
+" * Copyright, (C) Honeywell Bull Inc., 1987           *
+" *                                                    *
+" * Copyright (c) 1987 by Massachusetts Institute of   *
+" * Technology and Honeywell Information Systems, Inc. *
+" *                                                    *
+" * Copyright (c) 1972 by Massachusetts Institute of   *
+" * Technology and Honeywell Information Systems, Inc. *
+" *                                                    *
+" ******************************************************
+
+" Transfer vector and data segment for IOX.
+" This Program was found on a doorstep, its parenthood and birthdate unrecorded.
+" Largely recoded for hashing and new initialization April 1981 by Benson I. Margulies.
+" Sentinel checking June 1981 Benson I. Margulies
+" Hash table removed January 1982 by C. Hornig.
+" Modified 11/82 by S. Krupp to add new transfer vectors for open_file,
+"   close_file, detach, and attach_loud entries.  Changed version number
+"   to 2.
+
+       name    iox_
+       perprocess_static
+       maclist off
+
+       " Table of contents
+
+       " iox_ i/o operation transfer vectors entries
+
+       " IOCB version/sentinel constant
+
+       " iox_ utility operation transfer vectors
+
+       " iox_ error entrypoints
+
+       " IOCB hash table and hit meter
+
+       " iox_ standard attachment pointers
+       "      and switch names
+
+       " IOS writeround entries that map calls from IOX to IOS.
+\f
+
+
+" The I/O entrypoints are defined below with the following macros
+
+       macro   iocb_tv
+       maclist on,save
+       " Entry point "iox_$&1"
+       maclist off
+       segdef  &1
+&1:    getlp
+       maclist restore
+       ldx1    iocb.&1,du
+       tra     iocb_tv_join
+       &end
+
+" The error entrypoints are defined with this macro
+
+       macro   error   Error segdef.
+       maclist         on,save
+       " Entry point "iox_$err_&1"
+       maclist restore
+       segdef  err_&1
+err_&1:   getlp
+       maclist on
+       ldq     error_table_$&1
+       tra     error_join
+       maclist restore
+       &end
+
+" This macro defines a utility procedure known to be bound in
+" with this segment, and "callable" with tra.
+
+       macro   tv      
+       maclist on,save
+       " Utility entrypoint "iox_$&2"
+       maclist off
+       segdef  &2
+&2:    getlp
+       maclist restore
+       tra     &1$&2
+       &end
+\f
+       iocb_tv detach_iocb
+       iocb_tv open
+       iocb_tv close
+       iocb_tv get_line
+       iocb_tv get_chars
+       iocb_tv put_chars
+       iocb_tv modes
+       iocb_tv position
+       iocb_tv control
+       iocb_tv read_record
+       iocb_tv write_record
+       iocb_tv rewrite_record
+       iocb_tv delete_record
+       iocb_tv seek_key
+       iocb_tv read_key
+       iocb_tv read_length
+
+       error   no_iocb
+       error   no_operation
+       error   not_attached
+       error   not_closed
+       error   not_open
+       error   old_dim
+
+       tv      iox_attach_name,attach_name
+       tv      iox_attach_name,attach_ioname
+       tv      iox_attach_name,attach_ptr
+       tv      iox_attach_name,attach_iocb
+       tv      iox_attach_name,attach_loud
+       tv      iox_open_file,open_file
+       tv      iox_close_file,close_file
+       tv      iox_detach,detach
+       tv      iox_find_iocb,find_iocb
+       tv      iox_find_iocb,look_iocb
+       tv      iox_find_iocb,move_attach
+       tv      iox_find_iocb,destroy_iocb
+       tv      iox_find_iocb,find_iocb_n
+       tv      iox_propagate,propagate
+       tv      iox_init_,init_standard_iocbs
+
+       " Common code for the error entrypoints
+
+error_join: 
+       ldx7    ap|0            Get number of arguments called with.
+       tmoz    no_arguments
+       stq     ap|0,7*         Store error code as last argument.
+no_arguments:
+       short_return
+
+       " Common code for the io transfer vectors
+iocb_tv_join:
+       epp2    ap|2,*          Get pointer to pointer to IOCB
+       epp2    pr2|0,*         Get pointer to IOCB
+       epaq    pr2|0
+       ana     -1,du           The bottom half is and'd with 0
+          cmpa =o077777,du
+       tze     null_iocb_ptr
+       lda     pr2|iocb.version
+       cmpa    iocb_version_sentinel
+       tnz     not_a_valid_iocb        Sentinel missing
+       call6   pr2|0,x1*               Call the appropriate frob.
+
+not_a_valid_iocb:
+       ldq     error_table_$not_a_valid_iocb
+       tra     error_join
+
+null_iocb_ptr:
+       ldq     error_table_$no_iocb  " null pointer certainly isn't an iocb
+       tra     error_join        " join the return-last-arg code       
+
+       segdef  iocb_version_sentinel
+iocb_version_sentinel:
+       aci     ~IOX2~          " externally available
+
+\f
+       " Hash Table
+       segdef  hash_table
+       segdef  hash_table_ptr
+       segdef  hash_hit_count
+       segdef  hash_table_size
+
+" hash_index_ produces numbers from 0 through the
+" table size, though it divides by the specified
+" size. So we divide by 127, a prime, but the table
+" is 128 long. 
+
+       use     hash
+hash_table_size:
+       dec     1               " will be grown later if necessary
+hash_hit_count:
+       dec     0
+hash_table_ptr:
+       its     -1,1            " set by iox_init_, updated by find_iocb.
+hash_table:
+       its     -1,1            " initial hash table
+
+       join    /static/hash
+
+\f
+
+" standard attachment iocbs
+
+       segdef  n_standard_iocbs
+       segdef  standard_iocb_info
+       segdef  standard_iocb_ptrs      
+
+       macro   iocb            Define standard switch "&1"
+       use     text
+       set     n_iocbs,n_iocbs+1
+       use     iocb_names
+       segdef  &1      " name of the entrypoint
+       maclist on,save
+       aci     ~&2~,32 " name of the switch
+       aci     ~&3~,72     " attach description if constant
+       use     iocb_ptrs
+       even
+&1:    its     -1,1
+"              IOCB &2 attached as &3
+       maclist   restore
+       &end
+
+       set     n_iocbs,0
+
+" Standard IOCB definitions
+       
+       use     iocb_names
+standard_iocb_info:
+       use     iocb_ptrs
+standard_iocb_ptrs:
+
+       iocb    user_io,(user_i/o),()
+       iocb    user_input,user_input,(syn_ user_i/o -inhibit close put_chars)
+       iocb    user_output,user_output,(syn_ user_i/o -inhibit get_chars get_line close)
+       iocb    error_output,error_output,(syn_ user_i/o -inhibit get_line get_chars close)
+
+       use     text
+n_standard_iocbs:
+       vfd     36/n_iocbs
+
+       use     text
+       join    /text/iocb_names
+       join    /static/iocb_ptrs
+\f
+
+       " IOS writearound
+       segdef  ios_call
+       segdef  ios_call_attach
+
+" iox_$ios_call: proc(p,...other args...,status);
+"
+" dcl 1 ics aligned based(p),          IOS-call communication structure.
+"      2 sdbptr ptr,           Address of SDB for attachment.
+"      2 dimptr ptr,           Address of DIM's transfer vector.
+"      2 segdef_offset fixed.\b:        1=detach, 2=read, ..., 20=writesync.
+"
+" After clearing 'status' for the DIM, this routine re-maps its call into
+"
+"      lxl6 segdef_offset
+"      call dimptr(sdbptr,...other args...,status);
+"
+" by altering the first argument pointer of the caller's argument list and passing the
+" call on.  Note that all descriptors are correct and need not be changed or moved.
+" This routine is used by the new "iox_" write-arounds to call the segdef points of
+" old "ios_"-style DIMs.
+
+ios_call:      ldx6    ap|0            Get offset of 'status' argument pointer.
+       epp2    ap|0,6*         Get address of 'status' itself.
+       stz     pr2|0           Clear 'status' because some DIMs do not do it
+       stz     pr2|1           for themselves.
+       epp2    ap|2,*          Get address of pointer to 'ics'='ics.sdbptr'.
+       epp2    pr2|0,*         Get address of 'ics'='ics.sdbptr' itself.
+       spri2   ap|2            First argument is now 'sdbptr'.
+       lxl6    pr2|4           Get offset of desired DIM segdef.
+       tra     pr2|2,*         Go to transfer vector of DIM.
+"
+" End of segdef point ..... iox_$ios_call(p,...other args...,status) .....
+
+
+
+" iox_$ios_call_attach: proc(...four other args...,status,p);
+"
+" This routine re-maps its call into
+"
+"      lxl6 0,dl
+"      call dimptr(...other args...,status,sdbptr);
+"
+" by altering the last argument pointer of the caller's argument list and passing the
+" call on.  This routine is used to call the "attach" segdef point of an old-style DIM,
+" which has a different convention regarding the SDB pointer than the other entries.
+"
+ios_call_attach:
+       epp2    ap|10,*         Get address of 'status'.
+       stz     pr2|0           Clear 'status'.
+       stz     pr2|1           ..
+       epp2    ap|12,*         Get address of pointer to 'ics'='ics.sdbptr'.
+       epp2    pr2|0,*         Get address of 'ics'='ics.sdbptr' itself.
+       spri2   ap|12           Last argument is now 'sdbptr'.
+       lxl6    0,dl            Get offset of 'attach' segdef to DIM.
+
+       tra     pr2|2,*         Go to transfer vector of DIM.
+"
+" End of segdef point ..... iox_$ios_call_attach(...other args...,status,p) .....
+
+
+
+\f
+       include iocbx
+       end
diff --git a/pl1/iox_init_.pl1 b/pl1/iox_init_.pl1
new file mode 100644 (file)
index 0000000..42be113
--- /dev/null
@@ -0,0 +1,95 @@
+/****^  ***********************************************************
+        *                                                         *
+        * Copyright, (C) Honeywell Bull Inc., 1987                *
+        *                                                         *
+        * Copyright, (C) Honeywell Information Systems Inc., 1982 *
+        *                                                         *
+        * Copyright (c) 1972 by Massachusetts Institute of        *
+        * Technology and Honeywell Information Systems, Inc.      *
+        *                                                         *
+        *********************************************************** */
+
+
+/* procedure to initialize the user ring iox_ environment */
+/* The process is terminated in this program on failure so that stack history
+   will be useful. It this program returned a code it would be
+   lose the information of what attachment failed. Already_attached
+   switches are not considered to be errors so that calling this
+   program twice will not kill the process. */
+
+/* format: style2 */
+
+iox_init_:
+     procedure;
+       return;
+
+/*
+This procedure attached the switches specified in the constant
+data in iox_.alm for a standard user ring io system.
+*/
+
+       declare iox_$n_standard_iocbs    fixed bin (35) external static;
+       declare iox_$standard_iocb_ptrs
+                                bit (36) aligned external static;
+       declare iox_$standard_iocb_info
+                                bit (36) aligned external static;
+
+       declare iocb_ptrs_ptr    pointer;
+       declare iocb_info_ptr    pointer;
+       declare i                        fixed bin;
+
+       declare 1 iocb_info              (iox_$n_standard_iocbs) aligned based (iocb_info_ptr),
+               2 name           character (32) unaligned,
+               2 attach_description character (72) unaligned;
+
+       declare iocb_ptrs                (iox_$n_standard_iocbs) pointer aligned based (iocb_ptrs_ptr);
+
+       declare code             fixed bin (35);
+
+       declare error_table_$not_detached
+                                fixed bin (35) external static;
+
+       declare iox_$attach_name         entry (character (*), pointer, character (*), pointer, fixed bin (35));
+       declare iox_$find_iocb   entry (character (*), pointer, fixed bin (35));
+\f
+
+init_standard_iocbs:
+     entry;
+       iocb_ptrs_ptr = addr (iox_$standard_iocb_ptrs);
+       iocb_info_ptr = addr (iox_$standard_iocb_info);
+
+       do i = 1 to iox_$n_standard_iocbs;
+            code = 0;
+            if iocb_info.attach_description (i) ^= ""
+            then call iox_$attach_name (iocb_info.name (i), iocb_ptrs (i), rtrim (iocb_info.attach_description (i)),
+                    null (), code);            /* allow io modules in the home directory */
+            else call iox_$find_iocb (iocb_info.name (i), iocb_ptrs (i), code);
+            if code ^= 0 & code ^= error_table_$not_detached
+            then call failure (code, i, iocb_ptrs (i), iocb_info.name (i), rtrim (iocb_info.attach_description (i)));
+
+       end;
+       return;
+
+failure:
+     procedure (code, switchx, iocb_ptr, name, atd) options (non_quick);
+
+       /*** the stack frame of this procedure is very informative
+            in a saved dead process */
+
+       declare code             fixed bin (35);
+       declare switchx          fixed bin;
+       declare iocb_ptr                 pointer;
+       declare name             character (32);
+       declare atd              character (72);
+       declare terminate_process_       entry (char (*), ptr);
+
+       declare 1 terminate_info         aligned,
+               2 version                fixed bin,
+               2 s_code                 fixed bin (35);
+
+       terminate_info.version = 0;
+       terminate_info.s_code = code;
+
+       call terminate_process_ ("io_attach", addr (terminate_info));
+     end failure;
+     end iox_init_;
diff --git a/pl1/iox_modes.incl.pl1 b/pl1/iox_modes.incl.pl1
new file mode 100644 (file)
index 0000000..d4f93fc
--- /dev/null
@@ -0,0 +1,29 @@
+/* Begin include file ..... iox_modes.incl.pl1 */
+
+/* Written by C. D. Tavares, 03/17/75 */
+/* Updated 10/31/77 by CDT to include short iox mode strings */
+
+dcl  iox_modes (13) char (24) int static options (constant) aligned initial
+    ("stream_input", "stream_output", "stream_input_output",
+     "sequential_input", "sequential_output", "sequential_input_output", "sequential_update",
+     "keyed_sequential_input", "keyed_sequential_output", "keyed_sequential_update",
+     "direct_input", "direct_output", "direct_update");
+
+dcl  short_iox_modes (13) char (4) int static options (constant) aligned initial
+    ("si", "so", "sio", "sqi", "sqo", "sqio", "squ", "ksqi", "ksqo", "ksqu", "di", "do", "du");
+
+dcl (Stream_input initial (1),
+     Stream_output initial (2),
+     Stream_input_output initial (3),
+     Sequential_input initial (4),
+     Sequential_output initial (5),
+     Sequential_input_output initial (6),
+     Sequential_update initial (7),
+     Keyed_sequential_input initial (8),
+     Keyed_sequential_output initial (9),
+     Keyed_sequential_update initial (10),
+     Direct_input initial (11),
+     Direct_output initial (12),
+     Direct_update initial (13)) fixed bin int static options (constant);
+
+/* End include file ..... iox_modes.incl.pl1 */
diff --git a/pl1/v2pl1.list b/pl1/v2pl1.list
new file mode 100644 (file)
index 0000000..1a864d2
--- /dev/null
@@ -0,0 +1,10022 @@
+       COMPILATION LISTING OF SEGMENT v2pl1\r
+       Compiled by: Multics PL/I Compiler, Release 33f, of February 11, 2017\r
+       Compiled at: Installation and location       \r
+       Compiled on: 10/30/19  0320.0 pst Wed\r
+           Options: table list\r
+\r
+        1 /****^  ***********************************************************\r
+        2*        *                                                         *\r
+        3*        * Copyright, (C) BULL HN Information Systems Inc., 1989   *\r
+        4*        *                                                         *\r
+        5*        * Copyright, (C) Honeywell Bull Inc., 1987                *\r
+        6*        *                                                         *\r
+        7*        * Copyright, (C) Honeywell Information Systems Inc., 1982 *\r
+        8*        *                                                         *\r
+        9*        * Copyright (c) 1972 by Massachusetts Institute of        *\r
+       10*        * Technology and Honeywell Information Systems, Inc.      *\r
+       11*        *                                                         *\r
+       12*        *********************************************************** */\r
+       13 \r
+       14 \r
+       15 \r
+       16 /****^  HISTORY COMMENTS:\r
+       17*  1) change(87-03-05,Huen), approve(87-03-05,MCR7629), audit(87-04-15,RWaters),\r
+       18*     install(87-05-14,MR12.1-1030):\r
+       19*     Fix PL/1 errors 2141 -\r
+       20*     Print a warning message about the truncation of the listing segment name.\r
+       21*  2) change(88-08-23,RWaters), approve(88-08-23,MCR7914), audit(88-09-28,Huen),\r
+       22*     install(88-10-12,MR12.2-1163):\r
+       23*     Added the -no_prefix control argument.\r
+       24*  3) change(89-04-17,JRGray), approve(89-04-17,MCR8078), audit(89-04-18,Huen),\r
+       25*     install(89-06-09,MR12.3-1055):\r
+       26*     Modified to allow for archive component pathnames.\r
+       27*  4) change(89-08-01,RWaters), approve(89-08-01,MCR8069), audit(89-09-07,Vu),\r
+       28*     install(89-09-19,MR12.3-1068):\r
+       29*     Added the -version and -no_version control arguments.\r
+       30*                                                   END HISTORY COMMENTS */\r
+       31 \r
+       32 /*   PL/I COMMAND.\r
+       33*\r
+       34*     This command has been rewritten in PL/I and observes Standard\r
+       35*     Service System conventions.  Modelled after the Fortran S.S.S.\r
+       36*     command written by John Gintell.\r
+       37*\r
+       38*     Written by:     J.D.Mills\r
+       39*     On:             26 September 1969\r
+       40*     Modified on:    16 October 1969, by JDM.\r
+       41*     Modified on:    30 October 1969, by JDM for multiple tree segments.\r
+       42*     Modified on:    13 November 1969, by JDM to call hcs_ directly.\r
+       43*     Modified on:    1 December 1969, by JDM to treat pre-expanded source correctly.\r
+       44*     Modified on:    5 December 1969, by BLW to print compilation times\r
+       45*     Modified on:    20 December 1969, by JDM for greater speed.\r
+       46*     Modified on:    28 January 1970 by BLW to use cu_\r
+       47*     Modified on:    18 March 1970 by BLW to call optimizer\r
+       48*     Modified on:    15 April 1970 by BLW for table option\r
+       49*     Modified on:     8 July 1970 by BLW for new expand_\r
+       50*     Modified on:    16 July 1970 by BLW for epilogue\r
+       51*     Modified on:    22 July 1970 by BLW for token_list in tree_\r
+       52*     Modified on:    6 August 1970 by PAG to eliminate varying strings in calls to hcs_ and\r
+       53*                     to check length of entry name and the suffix\r
+       54*     Modified on:    26 August 1970 by PAG for Version II\r
+       55*     Modified on:    18 September 1970 by PAG to optionally call semantic_translator\r
+       56*     Modified on:    27 September 1970 by PG to compute percentages in $times entry\r
+       57*     Modified on:    11 January 1971 by BLW to remove intermediate seg creation\r
+       58*                     and change to pl1_stat_\r
+       59*     Modified on:    29 January 1971 by BLW to be full PL/2 command\r
+       60*     Modified on:    5 February l97l by PG for lexical stuff.\r
+       61*     Modified on:    13 April 1971 by BLW to get ptr to error messages\r
+       62*     Modified on:    7 August 1971 by PG to combine context_processor into parse\r
+       63*     Modified on:    21 August 1971 by PG to combine lex and create_token\r
+       64*     Modified on:    21 October 1971 by BLW to call code_gen_\r
+       65*     Modified on:    15 January 1972 by BLW for profile option\r
+       66*     Modified on:    28 March 1972 by BLW for storage use summary\r
+       67*     Modified on:    27 June 1972 by PG for tssi_, msf_manager_, prepare_symbol_table, and the link option\r
+       68*     Modified on:    21 August 1972 by PG for find_include_file_\r
+       69*     Modified on:    20 December 1972 by RAB for 2 segment tree\r
+       70*     Modified on:    23 June 1975 by EEW to recognize arg: -separate_static\r
+       71*     Modified on:    4 December 1975 by EEW to fix cleanup problems (bug 1434)\r
+       72*     Modified on:    14 April 1976 by RAB to use get_line_length_\r
+       73*     Modified on:    22 June 1976 by RHS to support the "new" area package, with full "retry"\r
+       74*     Modified on:    29 July 1976 by RAB to not allow control args of the form "- xxxxxx"\r
+       75*     Modified on:    1 Dec 1976 by RAB for -long_profile\r
+       76*     Modified on:    16 Feb 1977 by RAB for -check_ansi\r
+       77*     Modified on:    April 1977 by RHS to use standard areas\r
+       78*     Modified on:    770504 by PG for EIS lex\r
+       79*     Modified on:    14 June 1977 by RAB for pl1_stat_$defined_list\r
+       80*     Modified on:    770712 by PG for pl1_severity_\r
+       81*     Modified on:    17 October 1977 by RAB to fix bug 1681\r
+       82*     Modified on:    26 September 1978 by PCK to flag unaligned decimal for Release 25, not accept -source and\r
+       83*                     -symbol control arguments, require a dash to precede every control argument,\r
+       84*                     and print the Release number of the compiler.\r
+       85*     Modified on:    10 Feb 1978 by RAB to clean up printing out of tree and xeq_tree info.\r
+       86*     Modified on:    24 May 1979 by PCK to implement options(packed_decimal)\r
+       87*     Modified on:    26 May 1979 by D. Spector to add -single_symbol_list (-ssl) control arg.\r
+       88*     Modified on:    3 October 1979 by PCK to allow pl1_version to be\r
+       89*                     bound with bound_pl1_ and rename pl1_error_messages_\r
+       90*     Modified on:    20 November 1979 by PCK to initialize cg_static_$in_prologue and\r
+       91*                     cg_static_$in_thunk to "0"b (part of the fix to bug 1858)\r
+       92*     Modified on:    4 March 1980 by M. N. Davidoff to clean up, fix bugs 1874, 1876, 1904, 1907 and allow\r
+       93*                     -source, -symbols (suggestion 1892).\r
+       94*     Modified on:    20 March 1980 by PCK to implement by name assignment\r
+       95*                     and increase the default error message width\r
+       96*     Modified on:    17 April 1980 by M. N. Davidoff to use pl1_error_messages_ for installed compiler.\r
+       97*     Modified on:    23 September 1980 by M. N. Davidoff to print message when invoked as an active function\r
+       98*                     (suggestion 1957) and did some restructuring to make planned modifications easier.\r
+       99*     Modified on:    16 October 1980 by M. N. Davidoff to move call to tree_manager$init to after the command\r
+      100*                     argument parsing loop (2024), implement -long, -no_check, -no_check_ansi, -no_list,\r
+      101*                     -no_optimize, -no_profile, -no_separate_static, -no_table, -no_debug, -no_time (1943), and to\r
+      102*                     make -table the default unless -no_table, -brief_table or -optimize were specified (1946).\r
+      103*     Modified on:    24 October 1980 by M. N. Davidoff to implement -prefix (1947).\r
+      104*     Modified on:    19 November 1981 by C. Hornig to allow long_profile with separate_static.\r
+      105*     Modified on:    25 April 1983 by Rick Gray to call find_source_file_ which allows archive\r
+      106*                     component pathnames.\r
+      107*     Modified on:    28 August 1984 by JAFalksen to use date_time_$format ("date_time",...\r
+      108*          Modified on:        15 January 1987 by S. Huen to print a warning message about the truncation of the listing segment name.\r
+      109*          Modified on:       15 August 1988 by RWaters to accept the -no_prefix control argument.\r
+      110*     Modified on:    28 February 1989 by RWaters to accept -version and -no_version.\r
+      111**/\r
+      112 /* format: style3,idind30 */\r
+      113 pl1exl:\r
+      114 v2pl1:\r
+      115 pl1:\r
+      116      procedure options (variable);\r
+      117 \r
+      118 /* automatic */\r
+      119 \r
+      120 declare      argument_no             fixed bin;\r
+      121 declare      arg_count                       fixed bin;\r
+      122 declare      arg_length              fixed bin (21);\r
+      123 declare      arg_ptr                 ptr;\r
+      124 declare      bitcnt                  fixed bin (24);\r
+      125 declare      1 blast_ca,\r
+      126        2 off                 bit (1),\r
+      127        2 on                  bit (1),\r
+      128        2 set                 bit (1);\r
+      129 declare      blast_msg_len           fixed bin (21);\r
+      130 declare      blast_msg_ptr           ptr;\r
+      131 declare      1 ca                    aligned,\r
+      132        2 no_optimize         bit (1),\r
+      133        2 optimize            bit (1),\r
+      134        2 no_table            bit (1),\r
+      135        2 brief_table         bit (1),\r
+      136        2 table                       bit (1),\r
+      137        2 no_check            bit (1),\r
+      138        2 check                       bit (1),\r
+      139        2 no_list             bit (1),\r
+      140        2 source              bit (1),\r
+      141        2 symbols             bit (1),\r
+      142        2 map                 bit (1),\r
+      143        2 list                        bit (1),\r
+      144        2 single_symbol_list  bit (1),\r
+      145        2 brief                       bit (1),\r
+      146        2 long                        bit (1),\r
+      147        2 severity            bit (1),\r
+      148        2 no_profile          bit (1),\r
+      149        2 profile             bit (1),\r
+      150        2 long_profile                bit (1),\r
+      151        2 no_separate_static  bit (1),\r
+      152        2 separate_static             bit (1),\r
+      153        2 no_check_ansi               bit (1),\r
+      154        2 check_ansi          bit (1),\r
+      155        2 no_time             bit (1),\r
+      156        2 time                        bit (1),\r
+      157        2 no_debug            bit (1),\r
+      158        2 debug                       bit (1),\r
+      159        2 debug_semant                bit (1),\r
+      160        2 debug_cg            bit (1),\r
+      161        2 no_cpdcls           bit (1),\r
+      162        2 cpdcls              bit (1),\r
+      163        2 no_link             bit (1),\r
+      164        2 link                        bit (1),\r
+      165        2 prefix              bit (1),\r
+      166        2 no_version          bit (1);\r
+      167 \r
+      168 declare      called_cg                       bit (1) aligned;\r
+      169 declare      clock_time              fixed bin (71);\r
+      170 declare      code                    fixed bin (35);\r
+      171 declare      component                       fixed bin;\r
+      172 declare      fcb                     ptr;\r
+      173 declare      i                       fixed bin;\r
+      174 declare      in_cg                   bit (1) aligned;\r
+      175 declare      len                     fixed bin (21);\r
+      176 declare      list_hold                       ptr;\r
+      177 declare      list_size                       fixed bin (19);\r
+      178 declare      listname                        char (32);\r
+      179 declare      lname                   char (32) varying;\r
+      180 declare      object_hold             ptr;\r
+      181 declare      objectname              char (32);\r
+      182 declare      output_pt                       ptr;\r
+      183 declare      pathname                        char (256);\r
+      184 declare      pd_faults                       fixed bin;\r
+      185 declare      1 prefix                        aligned,\r
+      186        2 mask                        bit (12),\r
+      187        2 conditions          bit (12);\r
+      188 declare      prefix_string_length    fixed bin (21);\r
+      189 declare      prefix_string_ptr               ptr;\r
+      190 declare      produce_listing         bit (1) aligned;\r
+      191 declare      source_seg              ptr;\r
+      192 declare      sourcename              char (32);\r
+      193 declare      symbols_on              bit (1) aligned;\r
+      194 declare      translation_failed              bit (1) aligned;\r
+      195 declare      wdirname                        char (168);\r
+      196 \r
+      197 /* based */\r
+      198 \r
+      199 declare      arg_string              char (arg_length) based (arg_ptr);\r
+      200 declare      blast_msg                       char (blast_msg_len) based (blast_msg_ptr);\r
+      201 declare      digit_pic                       picture "9" based;\r
+      202 declare      prefix_string           char (prefix_string_length) based (prefix_string_ptr);\r
+      203 declare      source_string           char (len) based (source_seg);\r
+      204 \r
+      205 /* builtin */\r
+      206 \r
+      207 declare      (addrel, baseno, before, binary, char, clock, codeptr, convert, divide, index, hbound, lbound, length, ltrim,\r
+      208      mod, null, rtrim, search, string, substr, verify)\r
+      209                              builtin;\r
+      210 \r
+      211 /* condition */\r
+      212 \r
+      213 declare      cleanup                 condition;\r
+      214 declare      listing_overflow                condition;\r
+      215 \r
+      216 /* internal static */\r
+      217 \r
+      218 declare      HT_SP                   char (2) internal static options (constant) initial ("   ");\r
+      219 declare      HT_SP_COMMA             char (3) internal static options (constant) initial ("   ,");\r
+      220 declare      blast_time              fixed bin (71) internal static initial (0);\r
+      221 declare      comptime                        char (64) var internal static;\r
+      222 declare      error_messages          ptr internal static initial (null);\r
+      223 declare      my_name                 char (3) internal static options (constant) initial ("pl1");\r
+      224 declare      ncpu                    (0:7) fixed bin (71) internal static initial ((8) 0);\r
+      225 declare      npages                  (0:7) fixed bin internal static;\r
+      226 declare      number_free_segs                fixed bin internal static;\r
+      227 declare      objectbc                        fixed bin (24) internal static;\r
+      228 declare      phase_name              (7) char (9) internal static options (constant)\r
+      229                              initial ("setup", "parse", "semantics", "optimizer", "code gen", "listing",\r
+      230                              "cleanup");\r
+      231 declare      storage                 (0:7) char (10) internal static initial ((8) (1)"         0");\r
+      232 declare      version                 char (132) varying internal static;\r
+      233 declare      xeq_storage             (0:7) char (10) internal static initial ((8) (1)"         0");\r
+      234 \r
+      235 /* external static */\r
+      236 \r
+      237 declare      cg_static_$debug                bit (1) aligned external static;\r
+      238 declare      cg_static_$in_prologue  bit (1) aligned external static;\r
+      239 declare      cg_static_$in_thunk             bit (1) aligned external static;\r
+      240 declare      cg_static_$optimize             bit (1) aligned external static;\r
+      241 declare      cg_static_$separate_static      bit (1) aligned external static;\r
+      242 declare      cg_static_$stop_id              bit (27) external static;\r
+      243 declare      cg_static_$support              bit (1) aligned external static;\r
+      244 declare      error_table_$badopt             fixed bin (35) external static;\r
+      245 declare      error_table_$entlong    fixed bin (35) external static;\r
+      246 declare      error_table_$inconsistent       fixed bin (35) external static;\r
+      247 declare      error_table_$translation_failed\r
+      248                              fixed bin (35) external static;\r
+      249 declare      error_table_$zero_length_seg    fixed bin (35) external static;\r
+      250 declare      pl1_blast_$blast_message        char (64) varying external static;\r
+      251 declare      pl1_blast_$blast_on             bit (1) aligned external static;\r
+      252 declare      pl1_blast_$blast_time   fixed bin (71) external static;\r
+      253 declare      pl1_severity_           fixed bin (35) external static;\r
+      254 declare      pl1_stat_$abort_label   label external static;\r
+      255 declare      pl1_stat_$brief_error_mode      bit (1) aligned external static;\r
+      256 declare      pl1_stat_$by_name_free_list     ptr aligned external static;\r
+      257 declare      pl1_stat_$by_name_parts_free_list\r
+      258                              ptr aligned external static;\r
+      259 declare      pl1_stat_$by_name_parts_tree    ptr aligned external static;\r
+      260 declare      pl1_stat_$by_name_ref_list      ptr aligned external static;\r
+      261 declare      pl1_stat_$char_pos              fixed bin (21) external static;\r
+      262 declare      pl1_stat_$check_ansi    bit (1) aligned external static;\r
+      263 declare      pl1_stat_$compiler_invoked      bit (1) aligned external static;\r
+      264 declare      pl1_stat_$compiler_name char (8) varying external static;\r
+      265 declare      pl1_stat_$constant_list ptr external static;\r
+      266 declare      pl1_stat_$debug_semant  bit (1) aligned external static;\r
+      267 declare      pl1_stat_$defined_list  ptr external static;\r
+      268 declare      pl1_stat_$dummy_block   ptr external static;\r
+      269 declare      pl1_stat_$error_messages        ptr external static;\r
+      270 declare      pl1_stat_$error_width   fixed bin external static;\r
+      271 declare      pl1_stat_$generate_symtab       bit (1) aligned external static;\r
+      272 declare      pl1_stat_$greatest_severity     fixed bin external static;\r
+      273 declare      pl1_stat_$index         fixed bin external static;\r
+      274 declare      pl1_stat_$last_statement_id     bit (36) external static;\r
+      275 declare      pl1_stat_$line_count    fixed bin external static;\r
+      276 declare      pl1_stat_$list_ptr              ptr external static;\r
+      277 declare      pl1_stat_$listing_on    bit (1) aligned external static;\r
+      278 declare      pl1_stat_$max_list_size fixed bin (21) external static;\r
+      279 declare      pl1_stat_$max_node_type fixed bin external static;\r
+      280 declare      pl1_stat_$new_fortran_option    bit (1) aligned external static;\r
+      281 declare      pl1_stat_$node_name             (32) char (12) external static;\r
+      282 declare      pl1_stat_$node_size             (32) fixed bin external static;\r
+      283 declare      pl1_stat_$node_uses             (32) fixed bin external static;\r
+      284 declare      pl1_stat_$ok_list               ptr external static;\r
+      285 declare      pl1_stat_$optimize              bit (1) aligned external static;\r
+      286 declare      pl1_stat_$options               char (400) varying external static;\r
+      287 declare      pl1_stat_$options_packed_dec    bit (1) aligned external static;\r
+      288 declare      pl1_stat_$pathname              char (168) varying external static;\r
+      289 declare      pl1_stat_$phase         fixed bin external static;\r
+      290 declare      pl1_stat_$print_cp_dcl  bit (1) aligned external static;\r
+      291 declare      pl1_stat_$profile               bit (1) aligned external static;\r
+      292 declare      pl1_stat_$profile_length        fixed bin external static;\r
+      293 declare      pl1_stat_$root          ptr external static;\r
+      294 declare      pl1_stat_$seg_name              char (32) varying external static;\r
+      295 declare      pl1_stat_$severity_plateau      fixed bin external static;\r
+      296 declare      pl1_stat_$single_symbol_list    bit (1) aligned external static;\r
+      297 declare      pl1_stat_$stop_id               bit (27) external static;\r
+      298 declare      pl1_stat_$table         bit (1) aligned external static;\r
+      299 declare      pl1_stat_$temporary_list        ptr external static;\r
+      300 declare      pl1_stat_$tree_area_ptr ptr external static;\r
+      301 declare      pl1_stat_$unaligned_dec bit (1) aligned external static;\r
+      302 declare      pl1_stat_$use_old_area  bit (1) aligned external static;\r
+      303 declare      pl1_stat_$user_id               char (32) aligned external static;\r
+      304 declare      pl1_stat_$validate_proc ptr external static;\r
+      305 declare      pl1_stat_$version               fixed bin external static;\r
+      306 declare      pl1_stat_$xeq_tree_area_ptr     ptr external static;\r
+      307 declare      pl1_version$pl1_release char (3) varying external static;\r
+      308 declare      pl1_version$pl1_version char (256) varying external static;\r
+      309 \r
+      310 /* entry */\r
+      311 \r
+      312 /* Parts of the compiler */\r
+      313 \r
+      314 declare      code_gen_                       entry (char (32) varying, char (3) varying, char (132) varying, ptr, ptr, ptr,\r
+      315                              ptr, ptr, ptr, fixed bin (71), fixed bin, bit (1) aligned, bit (1) aligned,\r
+      316                              bit (1) aligned, bit (1) aligned, bit (1) aligned, bit (1) aligned,\r
+      317                              bit (1) aligned, entry, entry, fixed bin (24), fixed bin, fixed bin (71),\r
+      318                              bit (1) aligned, ptr, bit (1) aligned, fixed bin, fixed bin (71), bit (1) aligned)\r
+      319                              ;\r
+      320 declare      code_gen_$return_bit_count      entry (fixed bin (24), fixed bin, fixed bin (71), fixed bin, fixed bin (71));\r
+      321 declare      error_$finish           entry;\r
+      322 declare      lex$terminate_source    entry;\r
+      323 declare      optimizer                       entry (ptr);\r
+      324 declare      parse                   entry (ptr, char (*), 1 aligned, 2 bit (12), 2 bit (12));\r
+      325 declare      pl1_print$non_varying   entry (char (*) aligned, fixed bin);\r
+      326 declare      pl1_print$non_varying_nl        entry (char (*) aligned, fixed bin);\r
+      327 declare      pl1_print$varying_nl    entry (char (*) varying);\r
+      328 declare      pl1_signal_catcher              entry (ptr, char (*), ptr, ptr, bit (1) aligned);\r
+      329 declare      pl1_symbol_print                entry (ptr, bit (1) aligned, bit (1) aligned);\r
+      330 declare      prepare_symbol_table    entry (ptr);\r
+      331 declare      scan_token_table                entry;\r
+      332 declare      semantic_translator             entry;\r
+      333 declare      tree_manager$init               entry (label);\r
+      334 declare      tree_manager$truncate   entry;\r
+      335 \r
+      336 /* Others */\r
+      337 \r
+      338 declare      com_err_                        entry options (variable);\r
+      339 declare      com_err_$suppress_name  entry options (variable);\r
+      340 declare      condition_              entry (char (*), entry);\r
+      341 declare      cu_$arg_count           entry (fixed bin, fixed bin (35));\r
+      342 declare      cu_$arg_ptr             entry (fixed bin, ptr, fixed bin (21), fixed bin (35));\r
+      343 declare      cpu_time_and_paging_    entry (fixed bin, fixed bin (71), fixed bin);\r
+      344 declare      date_time_$format               entry (char (*), fixed bin (71), char (*), char (*)) returns (char (250) var);\r
+      345 declare      debug                   entry options (variable);\r
+      346 declare      find_source_file_               entry (char (*), char (*), char (*), ptr, fixed bin (24), fixed bin (35));\r
+      347 declare      get_line_length_$switch entry (ptr, fixed bin (35)) returns (fixed bin);\r
+      348 declare      get_group_id_           entry () returns (char (32));\r
+      349 declare      get_wdir_                       entry () returns (char (168));\r
+      350 declare      hcs_$get_max_length_seg entry (ptr, fixed bin (19), fixed bin (35));\r
+      351 declare      hcs_$make_ptr           entry (ptr, char (*), char (*), ptr, fixed bin (35));\r
+      352 declare      hcs_$terminate_noname   entry (ptr, fixed bin (35));\r
+      353 declare      hcs_$truncate_seg               entry (ptr, fixed bin (19), fixed bin (35));\r
+      354 declare      how_many_users          entry options (variable);\r
+      355 declare      ioa_                    entry options (variable);\r
+      356 declare      ioa_$nnl                        entry options (variable);\r
+      357 declare      msf_manager_$get_ptr    entry (ptr, fixed bin, bit (1), ptr, fixed bin (24), fixed bin (35));\r
+      358 declare      system_info_$installation_id    entry (char (*));\r
+      359 declare      tssi_$clean_up_file             entry (ptr, ptr);\r
+      360 declare      tssi_$clean_up_segment  entry (ptr);\r
+      361 declare      tssi_$finish_file               entry (ptr, fixed bin, fixed bin (24), bit (36) aligned, ptr, fixed bin (35));\r
+      362 declare      tssi_$finish_segment    entry (ptr, fixed bin (24), bit (36) aligned, ptr, fixed bin (35));\r
+      363 declare      tssi_$get_file          entry (char (*), char (*), ptr, ptr, ptr, fixed bin (35));\r
+      364 declare      tssi_$get_segment               entry (char (*), char (*), ptr, ptr, fixed bin (35));\r
+      365 \r
+      366 /* format: style3,inddcls */\r
+      367 \f\r
+  1     1 /* BEGIN INCLUDE FILE ... condition_name.incl.pl1 */\r
+  1     2 /* The long names and short names of the conditions are stored in the same\r
+  1     3*   array.  The indices of the long name and the short name differ by 10.  The\r
+  1     4*   size condition has the same long name and short name. */\r
+  1     5 /* format: style3,^delnl */\r
+  1     6 \r
+  1     7 declare      condition_name  (19) char (16) internal static options (constant) initial\r
+  1     8                      ("underflow", "overflow", "zerodivide", "fixedoverflow", "conversion",\r
+  1     9                      "size", "subscriptrange", "stringrange", "stringsize", "size",\r
+  1    10                      "ufl", "ofl", "zdiv", "fofl", "conv",\r
+  1    11                      "size", "subrg", "strg", "strz");\r
+  1    12 \r
+  1    13 /* END INCLUDE FILE ... condition_name.incl.pl1 */\r
+      368 \r
+  2     1 /* BEGIN INCLUDE FILE area_structures.incl.pl1  10/75 */\r
+  2     2 /* Modified September 1981 by J. Bongiovanni for allocation_p_clock */\r
+  2     3 \r
+  2     4 dcl  area_version_1 fixed bin static init (1);               /* version number for this area format */\r
+  2     5 \r
+  2     6 dcl  areap ptr;\r
+  2     7 \r
+  2     8 dcl 1 area_header aligned based (areap),\r
+  2     9     2 version fixed bin (35),                                /* 0 for buddy system, 1 for current areas */\r
+  2    10     2 last_usable bit (18),                          /* rel pointer to end of area */\r
+  2    11     2 next_virgin bit (18),                          /* rel pointer to next slot in virgin territory */\r
+  2    12     2 flags,\r
+  2    13       3 extend bit (1) unal,                         /* says area is extensible */\r
+  2    14       3 zero_on_alloc bit (1) unal,                  /* says to zero after allocation */\r
+  2    15       3 zero_on_free bit (1) unal,                   /* says to zero after freeing */\r
+  2    16       3 dont_free bit (1) unal,                      /* dont honor free request -- debugging tool */\r
+  2    17       3 defined_by_call bit (1) unal,                        /* says area seg got via define_area_ call */\r
+  2    18       3 system bit (1) unal,                         /* ayss area is managed by the system */\r
+  2    19       3 mbz bit (30) unal,\r
+  2    20     2 allocation_method fixed bin,                   /* 0 is standard, 1 is no_freeing method */\r
+  2    21     2 last_size bit (18),                            /* size of last allocated block before virgin territory */\r
+  2    22     2 last_block bit (18),                           /* rel pointer to last allocated block before virgin territory */\r
+  2    23     2 freep (3:16),                                  /* free list info */\r
+  2    24       3 relp bit (18) unal,                          /* pointer to first block on list */\r
+  2    25       3 max_block_size bit (18) unal,                        /* size of largest block on list, if known. else zero */\r
+  2    26     2 allocation_p_clock bit (36) aligned,           /* counter to prevent IPS race */\r
+  2    27     2 extend_info bit (18) unal,                     /* offset to extend info block */\r
+  2    28     2 recovery_info bit (18) unal,                   /* eventually will hold recovery info relp */\r
+  2    29     2 n_allocated fixed bin (17) unal,                       /* number of allocated blocks */\r
+  2    30     2 n_free fixed bin (17) unal;                    /* number of free blocks */\r
+  2    31 \r
+  2    32 dcl (STANDARD_ALLOCATION_METHOD init (0),\r
+  2    33      NO_FREEING_ALLOCATION_METHOD init (1)\r
+  2    34      ) fixed bin internal static;\r
+  2    35 \r
+  2    36 dcl  extend_blockp ptr;\r
+  2    37 \r
+  2    38 dcl 1 extend_block aligned based (extend_blockp),            /* contents of extend block for extensible areas */\r
+  2    39     2 first_area ptr unal,                           /* pointer to first area */\r
+  2    40     2 next_area ptr unal,                            /* pointer to next area in chain */\r
+  2    41     2 sequence_no fixed bin,                         /* sequence number for this component */\r
+  2    42     2 name char (32),                                /* owner of the area */\r
+  2    43     2 pad fixed;                                     /* brings it to an even, 12 word allocation */\r
+  2    44 \r
+  2    45 dcl alloc_blkhdrsz static internal init(2);\r
+  2    46 dcl 1 no_free_area_header aligned based(areap),              /* overlay for no_free areas */\r
+  2    47     2 pad(4) ptr,\r
+  2    48     2 current_component ptr;                         /* points to component from which we are allocating */\r
+  2    49 \r
+  2    50 dcl  blockp ptr;\r
+  2    51 \r
+  2    52 dcl 1 block aligned based (blockp),                  /* declaration for block header */\r
+  2    53     2 prev_size bit (18) unal,                       /* size of preceding block */\r
+  2    54     2 cur_size bit (18) unal,                                /* size of current block */\r
+  2    55     2 buddy_pad bit (8) unal,                                /* non_zero for buddy system area */\r
+  2    56     2 prev_busy bit (1) unal,                                /* previous-block-is-used flag */\r
+  2    57     2 marked bit (1) unal,\r
+  2    58     2 q_no bit (8) unal,                             /* stratum number when in free list */\r
+  2    59     2 header bit (18) unal,                          /* pointer to head of area */\r
+  2    60     2 fp bit (18) unal,                              /* forward free list thread */\r
+  2    61     2 bp bit (18) unal;                              /* backward free list thread */\r
+  2    62 \r
+  2    63 dcl  min_block_size fixed bin static init (8);               /* minimum allowed block size */\r
+  2    64 \r
+  2    65 /* END INCLUDE FILE area_structures.incl.pl1 */\r
+      369 \r
+  3     1 dcl  pl1_version     fixed bin int static init(5);\r
+      370 \r
+      371 \f\r
+      372 /* program */\r
+      373 \r
+      374      pl1_severity_ = 5;\r
+      375 \r
+      376      call cu_$arg_count (arg_count, code);\r
+      377      if code ^= 0\r
+      378      then do;\r
+      379              call com_err_ (code, my_name);\r
+      380              return;\r
+      381           end;\r
+      382 \r
+      383      if pl1_stat_$compiler_invoked\r
+      384      then do;\r
+      385              call com_err_ (0, my_name, "The compiler has been invoked with a previous invocation suspended.");\r
+      386              call com_err_ (error_table_$translation_failed, my_name,\r
+      387                   "Attempt to invoke pl1 recursively. Use release first.");\r
+      388              return;\r
+      389           end;\r
+      390 \r
+      391      call cpu_time_and_paging_ (npages (0), ncpu (0), pd_faults);\r
+      392 \r
+      393      do i = 1 to hbound (npages, 1);\r
+      394           npages (i) = -1;\r
+      395      end;\r
+      396 \r
+      397      number_free_segs = 0;\r
+      398 \r
+      399      if error_messages = null\r
+      400      then begin;\r
+      401              declare error_messages_name char (32);\r
+      402 \r
+      403              version = pl1_version$pl1_version;\r
+      404              pl1_stat_$user_id = get_group_id_ ();\r
+      405 \r
+      406              if pl1_version$pl1_release = "EXL"\r
+      407              then error_messages_name = "pl1exl_error_messages_";\r
+      408              else error_messages_name = "pl1_error_messages_";\r
+      409 \r
+      410              call hcs_$make_ptr (codeptr (v2pl1), error_messages_name, "", error_messages, code);\r
+      411              if code ^= 0\r
+      412              then do;\r
+      413                      call com_err_ (code, my_name, "^a", error_messages_name);\r
+      414                      return;\r
+      415                   end;\r
+      416           end;\r
+      417 \r
+      418      pl1_stat_$error_messages = error_messages;\r
+      419      pl1_stat_$greatest_severity = 5;\r
+      420      pl1_stat_$compiler_name = my_name;\r
+      421      pl1_stat_$use_old_area = "0"b;\r
+      422 \r
+      423      do i = 1 to pl1_stat_$max_node_type;\r
+      424           pl1_stat_$node_uses (i) = 0;\r
+      425      end;\r
+      426 \r
+      427      pl1_stat_$abort_label = abort_return;\r
+      428 \r
+      429      in_cg, called_cg, translation_failed, pl1_stat_$generate_symtab, pl1_stat_$last_statement_id,\r
+      430           pl1_stat_$new_fortran_option, pl1_stat_$unaligned_dec, pl1_stat_$options_packed_dec, cg_static_$support,\r
+      431           cg_static_$in_prologue, cg_static_$in_thunk = "0"b;\r
+      432 \r
+      433      pl1_stat_$error_width = get_line_length_$switch (null, code);\r
+      434 \r
+      435      pl1_stat_$validate_proc, pl1_stat_$constant_list, pl1_stat_$ok_list, pl1_stat_$dummy_block,\r
+      436           pl1_stat_$defined_list, pl1_stat_$by_name_free_list, pl1_stat_$by_name_parts_free_list,\r
+      437           pl1_stat_$by_name_parts_tree, pl1_stat_$by_name_ref_list, pl1_stat_$temporary_list = null;\r
+      438 \r
+      439      pl1_stat_$profile_length, pl1_stat_$index = 0;\r
+      440 \r
+      441      pl1_stat_$stop_id, cg_static_$stop_id = (27)"1"b;\r
+      442 \r
+      443      pl1_stat_$version = pl1_version;\r
+      444 \f\r
+      445 /* Parse the command line arguments. */\r
+      446 \r
+      447      ca = ""b;\r
+      448      argument_no = 0;\r
+      449      do i = 1 to arg_count;\r
+      450           call cu_$arg_ptr (i, arg_ptr, arg_length, code);\r
+      451           if code ^= 0\r
+      452           then do;\r
+      453                   call com_err_ (code, my_name, "Argument ^d.", i);\r
+      454                   return;\r
+      455              end;\r
+      456 \r
+      457           if index (arg_string, "-") = 1\r
+      458           then if arg_string = "-no_optimize" | arg_string = "-not"\r
+      459              then do;\r
+      460                      ca.no_optimize = "1"b;\r
+      461                      ca.optimize = "0"b;\r
+      462                   end;\r
+      463 \r
+      464              else if arg_string = "-optimize" | arg_string = "-ot"\r
+      465              then do;\r
+      466                      ca.no_optimize = "0"b;\r
+      467                      ca.optimize = "1"b;\r
+      468                   end;\r
+      469 \r
+      470              else if arg_string = "-no_table" | arg_string = "-ntb"\r
+      471              then do;\r
+      472                      ca.no_table = "1"b;\r
+      473                      ca.brief_table = "0"b;\r
+      474                      ca.table = "0"b;\r
+      475                   end;\r
+      476 \r
+      477              else if arg_string = "-brief_table " | arg_string = "-bftb"\r
+      478              then do;\r
+      479                      ca.no_table = "0"b;\r
+      480                      ca.brief_table = "1"b;\r
+      481                      ca.table = "0"b;\r
+      482                   end;\r
+      483 \r
+      484              else if arg_string = "-table" | arg_string = "-tb"\r
+      485              then do;\r
+      486                      ca.no_table = "0"b;\r
+      487                      ca.brief_table = "0"b;\r
+      488                      ca.table = "1"b;\r
+      489                   end;\r
+      490 \r
+      491              else if arg_string = "-no_check" | arg_string = "-nck"\r
+      492              then do;\r
+      493                      ca.no_check = "1"b;\r
+      494                      ca.check = "0"b;\r
+      495                   end;\r
+      496 \r
+      497              else if arg_string = "-check" | arg_string = "-ck"\r
+      498              then do;\r
+      499                      ca.no_check = "0"b;\r
+      500                      ca.check = "1"b;\r
+      501                   end;\r
+      502 \r
+      503              else if arg_string = "-no_list" | arg_string = "-nls"\r
+      504              then do;\r
+      505                      ca.no_list = "1"b;\r
+      506                      ca.source = "0"b;\r
+      507                      ca.symbols = "0"b;\r
+      508                      ca.map = "0"b;\r
+      509                      ca.list = "0"b;\r
+      510                      ca.single_symbol_list = "0"b;\r
+      511                   end;\r
+      512 \r
+      513              else if arg_string = "-source" | arg_string = "-sc"\r
+      514              then do;\r
+      515                      ca.no_list = "0"b;\r
+      516                      ca.source = "1"b;\r
+      517                   end;\r
+      518 \r
+      519              else if arg_string = "-symbols" | arg_string = "-sb"\r
+      520              then do;\r
+      521                      ca.no_list = "0"b;\r
+      522                      ca.symbols = "1"b;\r
+      523                   end;\r
+      524 \r
+      525              else if arg_string = "-map"\r
+      526              then do;\r
+      527                      ca.no_list = "0"b;\r
+      528                      ca.map = "1"b;\r
+      529                   end;\r
+      530 \r
+      531              else if arg_string = "-list" | arg_string = "-ls"\r
+      532              then do;\r
+      533                      ca.no_list = "0"b;\r
+      534                      ca.list = "1"b;\r
+      535                   end;\r
+      536 \r
+      537              else if arg_string = "-single_symbol_list" | arg_string = "-ssl"\r
+      538              then do;\r
+      539                      ca.no_list = "0"b;\r
+      540                      ca.single_symbol_list = "1"b;\r
+      541                   end;\r
+      542 \r
+      543              else if arg_string = "-brief" | arg_string = "-bf"\r
+      544              then do;\r
+      545                      ca.brief = "1"b;\r
+      546                      ca.long = "0"b;\r
+      547                   end;\r
+      548 \r
+      549              else if arg_string = "-long" | arg_string = "-lg"\r
+      550              then do;\r
+      551                      ca.brief = "0"b;\r
+      552                      ca.long = "1"b;\r
+      553                   end;\r
+      554 \r
+      555              else if index (arg_string, "-severity") = 1\r
+      556              then if ^parse_severity (arg_string, "-severity")\r
+      557                   then return;\r
+      558                   else ;\r
+      559 \r
+      560              else if index (arg_string, "-sv") = 1\r
+      561              then if ^parse_severity (arg_string, "-sv")\r
+      562                   then return;\r
+      563                   else ;\r
+      564 \r
+      565              else if arg_string = "-no_profile" | arg_string = "-npf"\r
+      566              then do;\r
+      567                      ca.no_profile = "1"b;\r
+      568                      ca.profile = "0"b;\r
+      569                      ca.long_profile = "0"b;\r
+      570                   end;\r
+      571 \r
+      572              else if arg_string = "-profile" | arg_string = "-pf"\r
+      573              then do;\r
+      574                      ca.no_profile = "0"b;\r
+      575                      ca.profile = "1"b;\r
+      576                      ca.long_profile = "0"b;\r
+      577                   end;\r
+      578 \r
+      579              else if arg_string = "-long_profile" | arg_string = "-lpf"\r
+      580              then do;\r
+      581                      ca.no_profile = "0"b;\r
+      582                      ca.profile = "0"b;\r
+      583                      ca.long_profile = "1"b;\r
+      584                   end;\r
+      585 \r
+      586              else if arg_string = "-no_separate_static" | arg_string = "-nss"\r
+      587              then do;\r
+      588                      ca.no_separate_static = "1"b;\r
+      589                      ca.separate_static = "0"b;\r
+      590                   end;\r
+      591 \r
+      592              else if arg_string = "-separate_static" | arg_string = "-ss"\r
+      593              then do;\r
+      594                      ca.no_separate_static = "0"b;\r
+      595                      ca.separate_static = "1"b;\r
+      596                   end;\r
+      597 \r
+      598              else if arg_string = "-no_check_ansi"\r
+      599              then do;\r
+      600                      ca.no_check_ansi = "1"b;\r
+      601                      ca.check_ansi = "0"b;\r
+      602                   end;\r
+      603 \r
+      604              else if arg_string = "-check_ansi"\r
+      605              then do;\r
+      606                      ca.no_check_ansi = "0"b;\r
+      607                      ca.check_ansi = "1"b;\r
+      608                   end;\r
+      609 \r
+      610              else if arg_string = "-no_time" | arg_string = "-ntm"\r
+      611              then do;\r
+      612                      ca.no_time = "1"b;\r
+      613                      ca.time = "0"b;\r
+      614                   end;\r
+      615 \r
+      616              else if arg_string = "-time" | arg_string = "-tm"\r
+      617              then do;\r
+      618                      ca.no_time = "0"b;\r
+      619                      ca.time = "1"b;\r
+      620                   end;\r
+      621 \r
+      622              else if arg_string = "-no_debug" | arg_string = "-ndb"\r
+      623              then do;\r
+      624                      ca.no_debug = "1"b;\r
+      625                      ca.debug = "0"b;\r
+      626                      ca.debug_semant = "0"b;\r
+      627                      ca.debug_cg = "0"b;\r
+      628                   end;\r
+      629 \r
+      630              else if arg_string = "-debug" | arg_string = "-db"\r
+      631              then do;\r
+      632                      ca.no_debug = "0"b;\r
+      633                      ca.debug = "1"b;\r
+      634                   end;\r
+      635 \r
+      636              else if arg_string = "-debug_semant" | arg_string = "-dbse"\r
+      637              then do;\r
+      638                      ca.no_debug = "0"b;\r
+      639                      ca.debug_semant = "1"b;\r
+      640                   end;\r
+      641 \r
+      642              else if arg_string = "-debug_cg" | arg_string = "-dbcg"\r
+      643              then do;\r
+      644                      ca.no_debug = "0"b;\r
+      645                      ca.debug_cg = "1"b;\r
+      646                   end;\r
+      647 \r
+      648              else if arg_string = "-no_cpdcls"\r
+      649              then do;\r
+      650                      ca.no_cpdcls = "1"b;\r
+      651                      ca.cpdcls = "0"b;\r
+      652                   end;\r
+      653 \r
+      654              else if arg_string = "-cpdcls"\r
+      655              then do;\r
+      656                      ca.no_cpdcls = "0"b;\r
+      657                      ca.cpdcls = "1"b;\r
+      658                   end;\r
+      659 \r
+      660              else if arg_string = "-no_link" | arg_string = "-nlk"\r
+      661              then do;\r
+      662                      ca.no_link = "1"b;\r
+      663                      ca.link = "0"b;\r
+      664                   end;\r
+      665 \r
+      666              else if arg_string = "-link" | arg_string = "-lk"\r
+      667              then do;\r
+      668                      ca.no_link = "0"b;\r
+      669                      ca.link = "1"b;\r
+      670                   end;\r
+      671 \r
+      672              else if arg_string = "-version"\r
+      673              then do;\r
+      674                      ca.no_version = "0"b;\r
+      675                   end;\r
+      676 \r
+      677              else if arg_string = "-no_version"\r
+      678              then do;\r
+      679                      ca.no_version = "1"b;\r
+      680                   end;\r
+      681              else if arg_string = "-no_prefix"\r
+      682              then do;\r
+      683                      ca.prefix = "0"b;\r
+      684                   end;\r
+      685 \r
+      686              else if arg_string = "-prefix"\r
+      687              then do;\r
+      688                      i = i + 1;\r
+      689                      if i > arg_count\r
+      690                      then do;\r
+      691                              call com_err_ (0, my_name, "Missing prefix string after -prefix.");\r
+      692                              return;\r
+      693                           end;\r
+      694 \r
+      695                      call cu_$arg_ptr (i, prefix_string_ptr, prefix_string_length, code);\r
+      696                      if code ^= 0\r
+      697                      then do;\r
+      698                              call com_err_ (code, my_name, "Argument ^d.", i);\r
+      699                              return;\r
+      700                           end;\r
+      701 \r
+      702                      ca.prefix = "1"b;\r
+      703                   end;\r
+      704 \r
+      705              else do;\r
+      706                      call com_err_ (error_table_$badopt, my_name, "^a", arg_string);\r
+      707                      return;\r
+      708                   end;\r
+      709 \r
+      710           else do;\r
+      711                   argument_no = argument_no + 1;\r
+      712                   if argument_no = 1         /* process pathname later */\r
+      713                   then pathname = arg_string;\r
+      714              end;\r
+      715      end;\r
+      716 \r
+      717      if argument_no ^= 1\r
+      718      then do;\r
+      719              if arg_count > 1 | ca.no_version\r
+      720              then call com_err_$suppress_name (0, my_name, "Usage: ^a path {-control_args}", my_name);\r
+      721              else do;                                /* identify version of compiler */\r
+      722                      if pl1_version$pl1_release = "EXL"\r
+      723                      then call ioa_ ("^a", pl1_version$pl1_version);\r
+      724                      else call ioa_ ("PL/1 ^a", pl1_version$pl1_release);\r
+      725                   end;\r
+      726              return;\r
+      727           end;\r
+      728 \r
+      729 /* Apply defaults. */\r
+      730 \r
+      731      if ^ca.no_table & ^ca.brief_table & ^ca.optimize\r
+      732      then ca.table = "1"b;\r
+      733 \r
+      734 /* We now know what options were specified. */\r
+      735 \r
+      736      pl1_stat_$options = "";\r
+      737 \r
+      738      pl1_stat_$optimize, cg_static_$optimize = ca.optimize;\r
+      739      if ca.optimize\r
+      740      then pl1_stat_$options = pl1_stat_$options || " optimize";\r
+      741 \r
+      742      if ca.brief_table\r
+      743      then pl1_stat_$options = pl1_stat_$options || " brief_table";\r
+      744 \r
+      745      pl1_stat_$table = ca.table;\r
+      746      if ca.table\r
+      747      then pl1_stat_$options = pl1_stat_$options || " table";\r
+      748 \r
+      749      if ca.check\r
+      750      then pl1_stat_$options = pl1_stat_$options || " check";\r
+      751 \r
+      752      if ca.source\r
+      753      then pl1_stat_$options = pl1_stat_$options || " source";\r
+      754 \r
+      755      if ca.symbols\r
+      756      then pl1_stat_$options = pl1_stat_$options || " symbols";\r
+      757 \r
+      758      if ca.map\r
+      759      then pl1_stat_$options = pl1_stat_$options || " map";\r
+      760 \r
+      761      if ca.list\r
+      762      then pl1_stat_$options = pl1_stat_$options || " list";\r
+      763 \r
+      764      pl1_stat_$single_symbol_list = ca.single_symbol_list;\r
+      765      if ca.single_symbol_list\r
+      766      then pl1_stat_$options = pl1_stat_$options || " single_symbol_list";\r
+      767 \r
+      768      symbols_on = ca.symbols | ca.map | ca.list | ca.single_symbol_list;\r
+      769      produce_listing, pl1_stat_$listing_on = ca.source | symbols_on;\r
+      770 \r
+      771      pl1_stat_$brief_error_mode = ca.brief;\r
+      772 \r
+      773      if ca.severity\r
+      774      then pl1_stat_$options = pl1_stat_$options || " severity" || convert (digit_pic, pl1_stat_$severity_plateau);\r
+      775      else pl1_stat_$severity_plateau = 1;\r
+      776 \r
+      777      if ca.profile\r
+      778      then pl1_stat_$options = pl1_stat_$options || " profile";\r
+      779 \r
+      780      if ca.long_profile\r
+      781      then pl1_stat_$options = pl1_stat_$options || " long_profile";\r
+      782 \r
+      783      pl1_stat_$profile = ca.profile | ca.long_profile;\r
+      784 \r
+      785      cg_static_$separate_static = ca.separate_static;\r
+      786      if ca.separate_static\r
+      787      then pl1_stat_$options = pl1_stat_$options || " separate_static";\r
+      788 \r
+      789      pl1_stat_$check_ansi = ca.check_ansi;\r
+      790 \r
+      791      pl1_stat_$print_cp_dcl = ca.cpdcls;\r
+      792      if ca.cpdcls\r
+      793      then pl1_stat_$options = pl1_stat_$options || " cpdcls";\r
+      794 \r
+      795      cg_static_$debug = ca.debug | ca.debug_semant | ca.debug_cg;\r
+      796      pl1_stat_$debug_semant = ca.debug_semant;\r
+      797 \r
+      798      if ca.link\r
+      799      then pl1_stat_$options = pl1_stat_$options || " link";\r
+      800 \r
+      801      if ca.no_version\r
+      802      then ;\r
+      803      else do;\r
+      804              if pl1_version$pl1_release = "EXL"\r
+      805              then call ioa_ ("^a", pl1_version$pl1_version);\r
+      806              else call ioa_ ("PL/1 ^a", pl1_version$pl1_release);\r
+      807           end;\r
+      808 \r
+      809      prefix = ""b;\r
+      810      if ca.prefix\r
+      811      then if ^parse_prefix (prefix_string)\r
+      812           then return;\r
+      813 \r
+      814      pl1_stat_$options = ltrim (pl1_stat_$options);\r
+      815 \r
+      816 /* Find the source file. */\r
+      817      call find_source_file_ (pathname, "pl1", sourcename, source_seg, bitcnt, code);\r
+      818      if source_seg = null\r
+      819      then do;\r
+      820              call com_err_ (code, my_name, "^a", pathname);\r
+      821              return;\r
+      822           end;\r
+      823 \r
+      824      if bitcnt = 0\r
+      825      then do;\r
+      826              call com_err_ (error_table_$zero_length_seg, my_name, "^a", pathname);\r
+      827              call hcs_$terminate_noname (source_seg, code);\r
+      828              return;\r
+      829           end;\r
+      830 \r
+      831      objectname = before (sourcename || " ", ".pl1 ");\r
+      832      objectname = before (objectname, ".ex ");\r
+      833      pl1_stat_$pathname = pathname;\r
+      834      pl1_stat_$seg_name = rtrim (objectname);\r
+      835 \r
+      836      len = divide (bitcnt + 8, 9, 21);\r
+      837 \r
+      838      if pl1_blast_$blast_on\r
+      839      then if pl1_blast_$blast_time > blast_time\r
+      840           then do;\r
+      841                   call ioa_ ("^a", pl1_blast_$blast_message);\r
+      842                   blast_time = clock ();\r
+      843              end;\r
+      844 \r
+      845      wdirname = get_wdir_ ();\r
+      846      clock_time = clock ();\r
+      847      comptime = date_time_$format ("date_time", clock_time, "", "");\r
+      848 \r
+      849      list_hold = null;\r
+      850      object_hold = null;\r
+      851 \r
+      852      on cleanup\r
+      853           begin;\r
+      854              if ^cg_static_$debug\r
+      855              then call truncate;\r
+      856 \r
+      857              pl1_stat_$compiler_invoked = "0"b;\r
+      858           end;\r
+      859 \f\r
+      860      if produce_listing\r
+      861      then begin;\r
+      862              declare installation_id char (32);\r
+      863 \r
+      864              component = 0;\r
+      865              lname = rtrim (objectname);\r
+      866              if length (lname) > 27\r
+      867              then call com_err_ (error_table_$entlong, my_name,\r
+      868                      "The name of the listing segment is truncated to ^a.lis", lname);\r
+      869 \r
+      870              listname = lname || ".list";\r
+      871 \r
+      872              call tssi_$get_file (wdirname, listname, pl1_stat_$list_ptr, list_hold, fcb, code);\r
+      873              if pl1_stat_$list_ptr = null\r
+      874              then do;\r
+      875                      call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", listname);\r
+      876                      call hcs_$terminate_noname (source_seg, code);\r
+      877                      return;\r
+      878                   end;\r
+      879 \r
+      880              call hcs_$get_max_length_seg (pl1_stat_$list_ptr, list_size, code);\r
+      881              if code ^= 0\r
+      882              then do;\r
+      883                      call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", listname);\r
+      884                      call hcs_$terminate_noname (source_seg, code);\r
+      885                      return;\r
+      886                   end;\r
+      887 \r
+      888              pl1_stat_$max_list_size = 4 * list_size;\r
+      889              pl1_stat_$char_pos = 1;\r
+      890 \r
+      891              call pl1_print$non_varying_nl ("        COMPILATION LISTING OF SEGMENT " || rtrim (objectname), 0);\r
+      892              call pl1_print$non_varying_nl ("        Compiled by: " || pl1_version$pl1_version, 0);\r
+      893 \r
+      894              call system_info_$installation_id (installation_id);\r
+      895              call pl1_print$non_varying_nl ("        Compiled at: " || installation_id, 0);\r
+      896              call pl1_print$non_varying_nl ("        Compiled on: " || comptime, 0);\r
+      897 \r
+      898              if length (pl1_stat_$options) > 0\r
+      899              then do;\r
+      900                      call pl1_print$non_varying ("       Options: ", 0);\r
+      901                      call pl1_print$varying_nl (pl1_stat_$options);\r
+      902                   end;\r
+      903 \r
+      904              call pl1_print$non_varying_nl ("", 0);\r
+      905           end;\r
+      906 \r
+      907      if produce_listing\r
+      908      then on listing_overflow\r
+      909              begin;\r
+      910                   declare   component_bit_count fixed binary (24);\r
+      911 \r
+      912                   component = component + 1;\r
+      913 \r
+      914                   call msf_manager_$get_ptr (fcb, component, "1"b /* create */, pl1_stat_$list_ptr,\r
+      915                      component_bit_count, code);\r
+      916 \r
+      917                   if pl1_stat_$list_ptr ^= null\r
+      918                   then call hcs_$get_max_length_seg (pl1_stat_$list_ptr, list_size, code);\r
+      919 \r
+      920                   if pl1_stat_$list_ptr = null | code ^= 0\r
+      921                   then do;\r
+      922                           call com_err_ (code, my_name, "Component ^d of ^a^[>^]^a", component, wdirname,\r
+      923                              wdirname ^= ">", listname);\r
+      924 \r
+      925                           if in_cg\r
+      926                           then call code_gen_$return_bit_count (objectbc, npages (5), ncpu (5), npages (6),\r
+      927                                   ncpu (6));\r
+      928 \r
+      929                           translation_failed = "1"b;\r
+      930                           goto close_list;\r
+      931                      end;\r
+      932 \r
+      933                   pl1_stat_$max_list_size = 4 * list_size;\r
+      934                   pl1_stat_$char_pos = 1;\r
+      935              end;\r
+      936 \f\r
+      937 /* Call the phases of pl1. */\r
+      938 \r
+      939      call tree_manager$init (pl1_stat_$abort_label);\r
+      940 \r
+      941      pl1_stat_$phase = 1;\r
+      942      pl1_severity_, pl1_stat_$greatest_severity = 0;\r
+      943      pl1_stat_$compiler_invoked = "1"b;\r
+      944 \r
+      945      call condition_ ("any_other", pl1_signal_catcher);\r
+      946 \r
+      947      call cpu_time_and_paging_ (npages (1), ncpu (1), pd_faults);\r
+      948 \r
+      949      call parse (pl1_stat_$root, source_string, prefix);\r
+      950 \r
+      951      call cpu_time_and_paging_ (npages (2), ncpu (2), pd_faults);\r
+      952      call set_storage_usage (storage (2), xeq_storage (2));\r
+      953 \r
+      954      if ca.debug_semant\r
+      955      then do;\r
+      956              call ioa_$nnl ("Beginning semantic translator.^/debug: ");\r
+      957              call debug;\r
+      958           end;\r
+      959 \r
+      960      pl1_stat_$phase = 2;\r
+      961      call semantic_translator;\r
+      962      call scan_token_table;\r
+      963 \r
+      964      call cpu_time_and_paging_ (npages (3), ncpu (3), pd_faults);\r
+      965      call set_storage_usage (storage (3), xeq_storage (3));\r
+      966 \r
+      967      if ^ca.check\r
+      968      then call generate_code (translation_failed);\r
+      969 \r
+      970 continue_from_abort:\r
+      971      if translation_failed\r
+      972      then call com_err_ (error_table_$translation_failed, my_name, "^a", sourcename);\r
+      973 \r
+      974      if ^called_cg\r
+      975      then do;\r
+      976              call cpu_time_and_paging_ (npages (5), ncpu (5), pd_faults);\r
+      977              npages (6) = npages (5);\r
+      978              ncpu (6) = ncpu (5);\r
+      979           end;\r
+      980 \r
+      981      if produce_listing\r
+      982      then do;\r
+      983              if ^called_cg\r
+      984              then do;\r
+      985                      if symbols_on\r
+      986                      then call pl1_symbol_print (pl1_stat_$root, pl1_stat_$print_cp_dcl,\r
+      987                              ca.check | translation_failed | pl1_stat_$greatest_severity >= 3);\r
+      988 \r
+      989                      call pl1_print$non_varying_nl ("", 0);\r
+      990 \r
+      991                      if pl1_stat_$greatest_severity > 0\r
+      992                      then call error_$finish;\r
+      993                   end;\r
+      994 \r
+      995 close_list:\r
+      996              call tssi_$finish_file (fcb, component, 9 * pl1_stat_$char_pos - 9, "101"b, list_hold, code);\r
+      997              if code ^= 0\r
+      998              then call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", listname);\r
+      999           end;\r
+     1000 \r
+     1001      if ^ca.check & ^translation_failed\r
+     1002      then do;\r
+     1003              call hcs_$truncate_seg (output_pt, divide (objectbc + 35, 36, 19), code);\r
+     1004              if code ^= 0\r
+     1005              then call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", objectname);\r
+     1006 \r
+     1007              call tssi_$finish_segment (output_pt, objectbc, "110"b, object_hold, code);\r
+     1008              if code ^= 0\r
+     1009              then call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", objectname);\r
+     1010           end;\r
+     1011 \r
+     1012      call cpu_time_and_paging_ (npages (7), ncpu (7), pd_faults);\r
+     1013      call set_storage_usage (storage (5), xeq_storage (5));\r
+     1014 \r
+     1015      storage (6), storage (7) = storage (5);\r
+     1016      xeq_storage (6), xeq_storage (7) = xeq_storage (5);\r
+     1017 \r
+     1018      if ^cg_static_$debug\r
+     1019      then call truncate;\r
+     1020 \r
+     1021      pl1_severity_ = pl1_stat_$greatest_severity;\r
+     1022 \r
+     1023      pl1_stat_$compiler_invoked = "0"b;\r
+     1024 \r
+     1025      if ca.time\r
+     1026      then call print_times;\r
+     1027 \r
+     1028      return;\r
+     1029 \r
+     1030 abort_return:\r
+     1031      call com_err_ (0, my_name, "An unrecoverable error has occurred.");\r
+     1032      translation_failed = "1"b;\r
+     1033      goto continue_from_abort;\r
+     1034 \f\r
+     1035 times:\r
+     1036      entry options (variable);\r
+     1037 \r
+     1038      call cu_$arg_count (arg_count, code);\r
+     1039      if code ^= 0\r
+     1040      then do;\r
+     1041              call com_err_ (code, my_name);\r
+     1042              return;\r
+     1043           end;\r
+     1044 \r
+     1045      if arg_count ^= 0\r
+     1046      then do;\r
+     1047              call com_err_$suppress_name (0, my_name, "Usage: ^a$times", my_name);\r
+     1048              return;\r
+     1049           end;\r
+     1050 \r
+     1051      call print_times;\r
+     1052 \r
+     1053      return;\r
+     1054 \r
+     1055 clean_up:\r
+     1056      entry options (variable);\r
+     1057 \r
+     1058      call cu_$arg_count (arg_count, code);\r
+     1059      if code ^= 0\r
+     1060      then do;\r
+     1061              call com_err_ (code, my_name);\r
+     1062              return;\r
+     1063           end;\r
+     1064 \r
+     1065      if arg_count ^= 0\r
+     1066      then do;\r
+     1067              call com_err_$suppress_name (0, my_name, "Usage: ^a$clean_up", my_name);\r
+     1068              return;\r
+     1069           end;\r
+     1070 \r
+     1071      object_hold = null;\r
+     1072      list_hold = null;\r
+     1073 \r
+     1074      call truncate;\r
+     1075      pl1_stat_$compiler_invoked = "0"b;\r
+     1076 \r
+     1077      return;\r
+     1078 \f\r
+     1079 blast:\r
+     1080      entry options (variable);\r
+     1081 \r
+     1082      call cu_$arg_count (arg_count, code);\r
+     1083      if code ^= 0\r
+     1084      then do;\r
+     1085              call com_err_ (code, my_name);\r
+     1086              return;\r
+     1087           end;\r
+     1088 \r
+     1089      string (blast_ca) = ""b;\r
+     1090      argument_no = 0;\r
+     1091      do i = 1 to arg_count;\r
+     1092           call cu_$arg_ptr (i, arg_ptr, arg_length, code);\r
+     1093           if code ^= 0\r
+     1094           then do;\r
+     1095                   call com_err_ (code, my_name, "Argument ^d.", i);\r
+     1096                   return;\r
+     1097              end;\r
+     1098 \r
+     1099           if arg_string = "-on"\r
+     1100           then do;\r
+     1101                   blast_ca.on = "1"b;\r
+     1102                   blast_ca.off = "0"b;\r
+     1103              end;\r
+     1104 \r
+     1105           else if arg_string = "-off"\r
+     1106           then do;\r
+     1107                   blast_ca.on = "0"b;\r
+     1108                   blast_ca.off = "1"b;\r
+     1109              end;\r
+     1110 \r
+     1111           else if arg_string = "-set"\r
+     1112           then do;\r
+     1113                   i = i + 1;\r
+     1114                   if i > arg_count\r
+     1115                   then do;\r
+     1116                           call com_err_ (0, my_name, "Missing blast message after -set.");\r
+     1117                           return;\r
+     1118                      end;\r
+     1119 \r
+     1120                   call cu_$arg_ptr (i, blast_msg_ptr, blast_msg_len, code);\r
+     1121                   if code ^= 0\r
+     1122                   then do;\r
+     1123                           call com_err_ (code, my_name, "Argument ^d.", i);\r
+     1124                           return;\r
+     1125                      end;\r
+     1126 \r
+     1127                   blast_ca.set = "1"b;\r
+     1128              end;\r
+     1129 \r
+     1130           else if index (arg_string, "-") = 1\r
+     1131           then do;\r
+     1132                   call com_err_ (error_table_$badopt, my_name, "^a", arg_string);\r
+     1133                   return;\r
+     1134              end;\r
+     1135 \r
+     1136           else argument_no = argument_no + 1;\r
+     1137      end;\r
+     1138 \r
+     1139      if argument_no ^= 0 | string (blast_ca) = ""b\r
+     1140      then do;\r
+     1141              call com_err_$suppress_name (0, my_name, "Usage: ^a$blast -control_args", my_name);\r
+     1142              return;\r
+     1143           end;\r
+     1144 \r
+     1145      if blast_ca.set & (blast_ca.on | blast_ca.off)\r
+     1146      then do;\r
+     1147              call com_err_ (error_table_$inconsistent, my_name, "-set and -^[on^;off^]", blast_ca.on);\r
+     1148              return;\r
+     1149           end;\r
+     1150 \r
+     1151      if blast_ca.on\r
+     1152      then pl1_blast_$blast_on = "1"b;\r
+     1153 \r
+     1154      else if blast_ca.off\r
+     1155      then pl1_blast_$blast_on = "0"b;\r
+     1156 \r
+     1157      else if blast_ca.set\r
+     1158      then do;\r
+     1159              pl1_blast_$blast_on = "0"b;\r
+     1160              pl1_blast_$blast_message = blast_msg;\r
+     1161              pl1_blast_$blast_time = clock ();\r
+     1162              pl1_blast_$blast_on = "1"b;\r
+     1163           end;\r
+     1164 \r
+     1165      call ioa_ ("Accepted.");\r
+     1166 \r
+     1167      return;\r
+     1168 \f\r
+     1169 parse_severity:\r
+     1170      procedure (arg_string, prefix) returns (bit (1) aligned);\r
+     1171 \r
+     1172      declare arg_string      char (*);\r
+     1173      declare prefix          char (*);\r
+     1174 \r
+     1175      declare severity                fixed bin;\r
+     1176 \r
+     1177      if length (rtrim (arg_string)) = length (prefix) + 1\r
+     1178      then severity = index ("1234", substr (arg_string, length (prefix) + 1, 1));\r
+     1179      else severity = 0;\r
+     1180 \r
+     1181      if severity = 0\r
+     1182      then do;\r
+     1183              call com_err_ (0, my_name, "Invalid severity level. ^a", arg_string);\r
+     1184              return ("0"b);\r
+     1185           end;\r
+     1186 \r
+     1187      ca.severity = "1"b;\r
+     1188      pl1_stat_$severity_plateau = severity;\r
+     1189 \r
+     1190      return ("1"b);\r
+     1191      end parse_severity;\r
+     1192 \f\r
+     1193 parse_prefix:\r
+     1194      procedure (prefix_string) returns (bit (1) aligned);\r
+     1195 \r
+     1196      declare prefix_string   char (*);\r
+     1197 \r
+     1198      declare scan_position   fixed bin (21);\r
+     1199 \r
+     1200      scan_position = verify (prefix_string, HT_SP);\r
+     1201      if scan_position = 0\r
+     1202      then return ("1"b);\r
+     1203 \r
+     1204      pl1_stat_$options = pl1_stat_$options || " prefix(";\r
+     1205 \r
+     1206      if ^parse_condition_name ()\r
+     1207      then return ("0"b);\r
+     1208      do while (scan_position <= length (prefix_string));\r
+     1209           if substr (prefix_string, scan_position, 1) ^= ","\r
+     1210           then do;\r
+     1211                   call com_err_ (0, my_name, "Missing comma between condition names. ^a", prefix_string);\r
+     1212                   return ("0"b);\r
+     1213              end;\r
+     1214 \r
+     1215           scan_position = scan_position + 1;\r
+     1216 \r
+     1217           if ^parse_condition_name ()\r
+     1218           then return ("0"b);\r
+     1219      end;\r
+     1220 \r
+     1221      pl1_stat_$options = pl1_stat_$options || ")";\r
+     1222 \r
+     1223      return ("1"b);\r
+     1224 \f\r
+     1225 parse_condition_name:\r
+     1226      procedure returns (bit (1) aligned);\r
+     1227 \r
+     1228      declare enabled         bit (1) aligned;\r
+     1229      declare i               fixed bin;\r
+     1230      declare token_length    fixed bin (21);\r
+     1231      declare token_start     fixed bin (21);\r
+     1232 \r
+     1233      call skip_white_space;\r
+     1234 \r
+     1235      token_length = search (substr (prefix_string, scan_position), HT_SP_COMMA) - 1;\r
+     1236      if token_length < 0\r
+     1237      then token_length = length (substr (prefix_string, scan_position));\r
+     1238 \r
+     1239      if token_length = 0\r
+     1240      then do;\r
+     1241              call com_err_ (0, my_name, "Missing condition name. ^a", prefix_string);\r
+     1242              return ("0"b);\r
+     1243           end;\r
+     1244 \r
+     1245      token_start = scan_position;\r
+     1246      scan_position = scan_position + token_length;\r
+     1247 \r
+     1248      enabled = index (substr (prefix_string, token_start, token_length), "no") ^= 1;\r
+     1249      if ^enabled\r
+     1250      then do;\r
+     1251              token_start = token_start + length ("no");\r
+     1252              token_length = token_length - length ("no");\r
+     1253           end;\r
+     1254 \r
+     1255      do i = lbound (condition_name, 1) to hbound (condition_name, 1)\r
+     1256           while (condition_name (i) ^= substr (prefix_string, token_start, token_length));\r
+     1257      end;\r
+     1258 \r
+     1259      if i > hbound (condition_name, 1)\r
+     1260      then do;\r
+     1261              call com_err_ (0, my_name, "Invalid condition name. ^[no^]^a", ^enabled,\r
+     1262                   substr (prefix_string, token_start, token_length));\r
+     1263              return ("0"b);\r
+     1264           end;\r
+     1265 \r
+     1266 /* The variable i never equals 10.  This takes advantage of the condition_name\r
+     1267*   array encoding.  This is the same algorithm that statement_type uses.  The\r
+     1268*   long names and short names of the conditions are stored in the same array.\r
+     1269*   The indices of the long name and the short name differ by 10.  The size\r
+     1270*   condition has the same long name and short name. */\r
+     1271 \r
+     1272      i = mod (i, 10);\r
+     1273 \r
+     1274      if substr (prefix.mask, i, 1)\r
+     1275      then if substr (prefix.conditions, i, 1) ^= enabled\r
+     1276           then do;\r
+     1277                   call com_err_ (0, my_name,\r
+     1278                      "A condition may not be enabled and disabled in the prefix string. ^a", condition_name (i));\r
+     1279                   return ("0"b);\r
+     1280              end;\r
+     1281           else ;\r
+     1282      else do;\r
+     1283              substr (prefix.mask, i, 1) = "1"b;\r
+     1284              substr (prefix.conditions, i, 1) = enabled;\r
+     1285 \r
+     1286              if substr (pl1_stat_$options, length (pl1_stat_$options)) ^= "("\r
+     1287              then pl1_stat_$options = pl1_stat_$options || ",";\r
+     1288 \r
+     1289              if ^enabled\r
+     1290              then pl1_stat_$options = pl1_stat_$options || "no";\r
+     1291 \r
+     1292              pl1_stat_$options = pl1_stat_$options || rtrim (condition_name (i));\r
+     1293           end;\r
+     1294 \r
+     1295      call skip_white_space;\r
+     1296 \r
+     1297      return ("1"b);\r
+     1298 \r
+     1299 skip_white_space:\r
+     1300      procedure;\r
+     1301 \r
+     1302      declare scan_length     fixed bin (21);\r
+     1303 \r
+     1304      scan_length = verify (substr (prefix_string, scan_position), HT_SP) - 1;\r
+     1305      if scan_length < 0\r
+     1306      then scan_length = length (substr (prefix_string, scan_position));\r
+     1307 \r
+     1308      scan_position = scan_position + scan_length;\r
+     1309      end skip_white_space;\r
+     1310 \r
+     1311      end parse_condition_name;\r
+     1312 \r
+     1313      end parse_prefix;\r
+     1314 \f\r
+     1315 generate_code:\r
+     1316      procedure (translation_failed);\r
+     1317 \r
+     1318      declare translation_failed      bit (1) aligned;\r
+     1319 \r
+     1320      translation_failed = "0"b;\r
+     1321 \r
+     1322      if pl1_stat_$greatest_severity >= 3\r
+     1323      then do;\r
+     1324              call com_err_ (0, my_name, "An error of severity ^d has occurred.", pl1_stat_$greatest_severity);\r
+     1325 \r
+     1326              if ca.debug_cg\r
+     1327              then do;\r
+     1328                      call ioa_$nnl ("debug for -debug_cg: ");\r
+     1329                      call debug;\r
+     1330                   end;\r
+     1331 \r
+     1332              translation_failed = "1"b;\r
+     1333              return;\r
+     1334           end;\r
+     1335 \r
+     1336      if pl1_stat_$table | pl1_stat_$generate_symtab\r
+     1337      then do;\r
+     1338              pl1_stat_$phase = 3;\r
+     1339              call prepare_symbol_table (pl1_stat_$root);\r
+     1340           end;\r
+     1341 \r
+     1342      if ca.optimize\r
+     1343      then do;\r
+     1344              pl1_stat_$phase = 4;\r
+     1345              call optimizer (pl1_stat_$root);\r
+     1346           end;\r
+     1347 \r
+     1348      call cpu_time_and_paging_ (npages (4), ncpu (4), pd_faults);\r
+     1349      call set_storage_usage (storage (4), xeq_storage (4));\r
+     1350 \r
+     1351      call tssi_$get_segment (wdirname, objectname, output_pt, object_hold, code);\r
+     1352      if output_pt = null\r
+     1353      then do;\r
+     1354              call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", objectname);\r
+     1355              translation_failed = "1"b;\r
+     1356              return;\r
+     1357           end;\r
+     1358 \r
+     1359      if baseno (output_pt) = baseno (source_seg)\r
+     1360      then do;\r
+     1361              call com_err_ (0, my_name,\r
+     1362                   "The source segment is the same as the object segment. It has been truncated. ^a", pathname);\r
+     1363              translation_failed = "1"b;\r
+     1364              return;\r
+     1365           end;\r
+     1366 \r
+     1367      if ^ca.profile & ^ca.long_profile\r
+     1368      then pl1_stat_$profile_length = 0;\r
+     1369 \r
+     1370      if ca.debug_cg\r
+     1371      then do;\r
+     1372              call ioa_$nnl ("Beginning code generator.^/debug: ");\r
+     1373              call debug;\r
+     1374           end;\r
+     1375 \r
+     1376      in_cg = "1"b;\r
+     1377      pl1_stat_$phase = 5;\r
+     1378 \r
+     1379      call code_gen_ (pl1_stat_$seg_name, (my_name), version, pl1_stat_$root, pl1_stat_$validate_proc,\r
+     1380           pl1_stat_$temporary_list, pl1_stat_$constant_list, pl1_stat_$ok_list, output_pt, clock_time,\r
+     1381           pl1_stat_$profile_length, produce_listing, symbols_on, pl1_stat_$print_cp_dcl, ca.map, ca.list,\r
+     1382           pl1_stat_$table, pl1_stat_$generate_symtab, pl1_symbol_print, error_$finish, objectbc, npages (5),\r
+     1383           ncpu (5), ca.link, pl1_stat_$dummy_block, ca.brief_table, npages (6), ncpu (6), ca.long_profile);\r
+     1384 \r
+     1385      in_cg = "0"b;\r
+     1386      called_cg = "1"b;\r
+     1387      end generate_code;\r
+     1388 \f\r
+     1389 print_times:\r
+     1390      procedure;\r
+     1391 \r
+     1392      declare need_nl         bit (1) aligned;\r
+     1393      declare tx              float bin;\r
+     1394      declare ty              float bin;\r
+     1395 \r
+     1396      ty = -1e0;\r
+     1397      do i = hbound (ncpu, 1) to 1 by -1 while (ty < 0e0);\r
+     1398           ty = ncpu (i) - ncpu (0);\r
+     1399      end;\r
+     1400 \r
+     1401      if ty <= 0e0\r
+     1402      then do;\r
+     1403              call com_err_ (0, my_name, "No times available.");\r
+     1404              return;\r
+     1405           end;\r
+     1406 \r
+     1407      call ioa_ ("^/Segment ^a (^d lines) was compiled by ^a on ^a", pl1_stat_$seg_name, pl1_stat_$line_count,\r
+     1408           my_name, comptime);\r
+     1409 \r
+     1410      call how_many_users;\r
+     1411 \r
+     1412      call ioa_ ("^/Phase          CPU    %   Pages      Tree     Xeq_tree");\r
+     1413 \r
+     1414      do i = 1 to hbound (npages, 1);\r
+     1415           if npages (i) < 0\r
+     1416           then do;\r
+     1417                   ncpu (i) = ncpu (i - 1);\r
+     1418                   npages (i) = npages (i - 1);\r
+     1419                   storage (i) = storage (i - 1);\r
+     1420                   xeq_storage (i) = xeq_storage (i - 1);\r
+     1421              end;\r
+     1422 \r
+     1423           tx = ncpu (i) - ncpu (i - 1);\r
+     1424           call ioa_ ("^9a^9.3f^6.1f^6d ^10a ^10a", phase_name (i), tx / 1.0e6, 1.0e2 * tx / ty,\r
+     1425              npages (i) - npages (i - 1), storage (i), xeq_storage (i));\r
+     1426      end;\r
+     1427 \r
+     1428      call ioa_ ("TOTAL    ^9.3f      ^6d", ty / 1.0e6, npages (7) - npages (0));\r
+     1429 \r
+     1430      call ioa_ ("^/Summary of node usage in ^d free segments^/", number_free_segs);\r
+     1431      call ioa_ ((2)"NODE TYPE   NUMBER  SIZE   TOTAL^8x");\r
+     1432 \r
+     1433      need_nl = "0"b;\r
+     1434      do i = 1 to pl1_stat_$max_node_type;\r
+     1435           if pl1_stat_$node_uses (i) ^= 0\r
+     1436           then do;\r
+     1437                   call ioa_$nnl ("^12a^6d^6d^8d^[^/^;^8x^]", pl1_stat_$node_name (i), pl1_stat_$node_uses (i),\r
+     1438                      pl1_stat_$node_size (i), pl1_stat_$node_uses (i) * pl1_stat_$node_size (i), need_nl);\r
+     1439                   need_nl = ^need_nl;\r
+     1440              end;\r
+     1441      end;\r
+     1442 \r
+     1443      call ioa_ ("^[^/^]", need_nl);\r
+     1444      end print_times;\r
+     1445 \f\r
+     1446 truncate:\r
+     1447      procedure;\r
+     1448 \r
+     1449      call lex$terminate_source;\r
+     1450      call tree_manager$truncate;\r
+     1451 \r
+     1452      if object_hold ^= null\r
+     1453      then call tssi_$clean_up_segment (object_hold);\r
+     1454 \r
+     1455      if list_hold ^= null\r
+     1456      then call tssi_$clean_up_file (fcb, list_hold);\r
+     1457      end truncate;\r
+     1458 \f\r
+     1459 set_storage_usage:\r
+     1460      procedure (tree_used, xeq_tree_used);\r
+     1461 \r
+     1462      declare tree_used               char (*);\r
+     1463      declare xeq_tree_used   char (*);\r
+     1464 \r
+     1465      declare n               fixed bin;\r
+     1466 \r
+     1467      tree_used = char (binary (pl1_stat_$tree_area_ptr -> area_header.next_virgin, 18), 10);\r
+     1468 \r
+     1469      number_free_segs = count_components (pl1_stat_$tree_area_ptr);\r
+     1470      if number_free_segs > 1\r
+     1471      then substr (tree_used, 1, 3) = "(" || convert (digit_pic, number_free_segs) || ")";\r
+     1472 \r
+     1473      xeq_tree_used = char (binary (pl1_stat_$xeq_tree_area_ptr -> area_header.next_virgin, 18), 10);\r
+     1474 \r
+     1475      n = count_components (pl1_stat_$xeq_tree_area_ptr);\r
+     1476      if n > 1\r
+     1477      then substr (xeq_tree_used, 1, 3) = "(" || convert (digit_pic, n) || ")";\r
+     1478 \r
+     1479      number_free_segs = number_free_segs + n;\r
+     1480 \r
+     1481      return;\r
+     1482 \r
+     1483 count_components:\r
+     1484      procedure (areap) returns (fixed bin);\r
+     1485 \r
+     1486      declare areap           ptr;\r
+     1487 \r
+     1488      declare p               ptr;\r
+     1489      declare i               fixed bin;\r
+     1490 \r
+     1491      i = 0;\r
+     1492      do p = areap repeat addrel (p, p -> area_header.extend_info) -> extend_block.next_area while (p ^= null);\r
+     1493           i = i + 1;\r
+     1494      end;\r
+     1495 \r
+     1496      return (i);\r
+     1497      end count_components;\r
+     1498 \r
+     1499      end set_storage_usage;\r
+     1500 \r
+     1501      end v2pl1;\r
+\f      SOURCE FILES USED IN THIS COMPILATION.\r
+\r
+LINE      NUMBER  DATE MODIFIED     NAME                       PATHNAME\r
+             0    10/30/19  0320.0  v2pl1.pl1                         >user_dir_dir>SysAdmin>Repair>v2pl1.pl1\r
+368          1    08/13/81  1943.5  condition_name.incl.pl1           >ldd>include>condition_name.incl.pl1\r
+369          2    09/14/81  1247.6  area_structures.incl.pl1          >ldd>include>area_structures.incl.pl1\r
+370          3    03/10/77  1245.4  pl1_version.incl.pl1              >ldd>include>pl1_version.incl.pl1\r
+\f      NAMES DECLARED IN THIS COMPILATION.\r
+\r
+IDENTIFIER          OFFSET    LOC STORAGE CLASS   DATA TYPE            ATTRIBUTES AND REFERENCES\r
+                                                               (* indicates a set context)\r
+\r
+NAMES DECLARED BY DECLARE STATEMENT.\r
+HT_SP                           000135 constant        char(2)                  initial packed unaligned dcl 218 ref 1200 1304\r
+HT_SP_COMMA                     000134 constant        char(3)                  initial packed unaligned dcl 219 ref 1235\r
+addrel                                                 builtin function         dcl 207 ref 1494\r
+area_header                            based           structure                level 1 dcl 2-8\r
+areap                           000446 automatic       pointer                  dcl 2-6 in procedure "pl1" ref 2-8 2-8 2-8 2-8 2-8\r
+                                                                                  2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8 2-8\r
+                                                                                  2-8 2-8 2-8 2-8 2-8 2-8\r
+areap                                  parameter       pointer                  dcl 1486 in procedure "count_components" ref 1483\r
+                                                                                  1492\r
+arg_count                       000101 automatic       fixed bin(17,0)          dcl 121 set ref 376* 449 689 719 1038* 1045 1058*\r
+                                                                                  1065 1082* 1091 1114\r
+arg_length                      000102 automatic       fixed bin(21,0)          dcl 122 set ref 199 450* 457 457 457 464 464 470 470\r
+                                                                                  477 477 484 484 491 491 497 497 503 503 513 513\r
+                                                                                  519 519 525 531 531 537 537 543 543 549 549 555\r
+                                                                                  555 555 560 560 560 565 565 572 572 579 579 586\r
+                                                                                  586 592 592 598 604 610 610 616 616 622 622 630\r
+                                                                                  630 636 636 642 642 648 654 660 660 666 666 672\r
+                                                                                  677 681 686 706 706 712 1092* 1099 1105 1111 1130\r
+                                                                                  1132 1132\r
+arg_ptr                         000104 automatic       pointer                  dcl 123 set ref 199 450* 457 457 457 464 464 470 470\r
+                                                                                  477 477 484 484 491 491 497 497 503 503 513 513\r
+                                                                                  519 519 525 531 531 537 537 543 543 549 549 555\r
+                                                                                  555 560 560 565 565 572 572 579 579 586 586 592\r
+                                                                                  592 598 604 610 610 616 616 622 622 630 630 636\r
+                                                                                  636 642 642 648 654 660 660 666 666 672 677 681\r
+                                                                                  686 706 712 1092* 1099 1105 1111 1130 1132\r
+arg_string                             parameter       char                     packed unaligned dcl 1172 in procedure\r
+                                                                                  "parse_severity" set ref 1169 1177 1177 1183*\r
+arg_string                             based           char                     packed unaligned dcl 199 in procedure "pl1" set ref\r
+                                                                                  457 457 457 464 464 470 470 477 477 484 484 491\r
+                                                                                  491 497 497 503 503 513 513 519 519 525 531 531\r
+                                                                                  537 537 543 543 549 549 555 555* 560 560* 565 565\r
+                                                                                  572 572 579 579 586 586 592 592 598 604 610 610\r
+                                                                                  616 616 622 622 630 630 636 636 642 642 648 654\r
+                                                                                  660 660 666 666 672 677 681 686 706* 712 1099 1105\r
+                                                                                  1111 1130 1132*\r
+argument_no                     000100 automatic       fixed bin(17,0)          dcl 120 set ref 448* 711* 711 712 717 1090* 1136*\r
+                                                                                  1136 1139\r
+baseno                                                 builtin function         dcl 207 ref 1359 1359\r
+before                                                 builtin function         dcl 207 ref 831 832\r
+binary                                                 builtin function         dcl 207 ref 1467 1473\r
+bitcnt                          000106 automatic       fixed bin(24,0)          dcl 124 set ref 817* 824 836\r
+blast_ca                        000107 automatic       structure                level 1 packed packed unaligned dcl 125 set ref\r
+                                                                                  1089* 1139\r
+blast_msg                              based           char                     packed unaligned dcl 200 ref 1160\r
+blast_msg_len                   000110 automatic       fixed bin(21,0)          dcl 129 set ref 200 1120* 1160\r
+blast_msg_ptr                   000112 automatic       pointer                  dcl 130 set ref 200 1120* 1160\r
+blast_time                      000010 internal static fixed bin(71,0)          initial dcl 220 set ref 838 842*\r
+brief                    15     000114 automatic       bit(1)                   level 2 dcl 131 set ref 545* 551* 771\r
+brief_table               3     000114 automatic       bit(1)                   level 2 dcl 131 set ref 473* 480* 487* 731 742 1379*\r
+ca                              000114 automatic       structure                level 1 dcl 131 set ref 447*\r
+called_cg                       000157 automatic       bit(1)                   dcl 168 set ref 429* 974 983 1386*\r
+cg_static_$debug                000212 external static bit(1)                   dcl 237 set ref 795* 854 1018\r
+cg_static_$in_prologue          000214 external static bit(1)                   dcl 238 set ref 429*\r
+cg_static_$in_thunk             000216 external static bit(1)                   dcl 239 set ref 429*\r
+cg_static_$optimize             000220 external static bit(1)                   dcl 240 set ref 738*\r
+cg_static_$separate_static      000222 external static bit(1)                   dcl 241 set ref 785*\r
+cg_static_$stop_id              000224 external static bit(27)                  packed unaligned dcl 242 set ref 441*\r
+cg_static_$support              000226 external static bit(1)                   dcl 243 set ref 429*\r
+char                                                   builtin function         dcl 207 ref 1467 1473\r
+check                     6     000114 automatic       bit(1)                   level 2 dcl 131 set ref 494* 500* 749 967 985 1001\r
+check_ansi               26     000114 automatic       bit(1)                   level 2 dcl 131 set ref 601* 607* 789\r
+cleanup                         000432 stack reference condition                dcl 213 ref 852\r
+clock                                                  builtin function         dcl 207 ref 842 846 1161\r
+clock_time                      000160 automatic       fixed bin(71,0)          dcl 169 set ref 846* 847* 1379*\r
+code                            000162 automatic       fixed bin(35,0)          dcl 170 set ref 376* 377 379* 410* 411 413* 433*\r
+                                                                                  450* 451 453* 695* 696 698* 817* 820* 827* 872*\r
+                                                                                  875* 876* 880* 881 883* 884* 914* 917* 920 922*\r
+                                                                                  995* 997 997* 1003* 1004 1004* 1007* 1008 1008*\r
+                                                                                  1038* 1039 1041* 1058* 1059 1061* 1082* 1083 1085*\r
+                                                                                  1092* 1093 1095* 1120* 1121 1123* 1351* 1354*\r
+code_gen_                       000426 constant        entry                    external dcl 314 ref 1379\r
+code_gen_$return_bit_count      000430 constant        entry                    external dcl 320 ref 925\r
+codeptr                                                builtin function         dcl 207 ref 410 410\r
+com_err_                        000466 constant        entry                    external dcl 338 ref 379 385 386 413 453 691 698 706\r
+                                                                                  820 826 866 875 883 922 970 997 1004 1008 1030\r
+                                                                                  1041 1061 1085 1095 1116 1123 1132 1147 1183 1211\r
+                                                                                  1241 1261 1277 1324 1354 1361 1403\r
+com_err_$suppress_name          000470 constant        entry                    external dcl 339 ref 719 1047 1067 1141\r
+component                       000163 automatic       fixed bin(17,0)          dcl 171 set ref 864* 912* 912 914* 922* 995*\r
+component_bit_count             000100 automatic       fixed bin(24,0)          dcl 910 set ref 914*\r
+comptime                        000012 internal static varying char(64)         dcl 221 set ref 847* 896 1407*\r
+condition_                      000472 constant        entry                    external dcl 340 ref 945\r
+condition_name                  000000 constant        char(16)                 initial array packed unaligned dcl 1-7 set ref 1255\r
+                                                                                  1255 1255 1259 1277* 1292\r
+conditions                1     000334 automatic       bit(12)                  level 2 dcl 185 set ref 1274 1284*\r
+convert                                                builtin function         dcl 207 ref 773 1470 1476\r
+cpdcls                   36     000114 automatic       bit(1)                   level 2 dcl 131 set ref 651* 657* 791 792\r
+cpu_time_and_paging_            000500 constant        entry                    external dcl 343 ref 391 947 951 964 976 1012 1348\r
+cu_$arg_count                   000474 constant        entry                    external dcl 341 ref 376 1038 1058 1082\r
+cu_$arg_ptr                     000476 constant        entry                    external dcl 342 ref 450 695 1092 1120\r
+date_time_$format               000502 constant        entry                    external dcl 344 ref 847\r
+debug                    32     000114 automatic       bit(1)                   level 2 in structure "ca" dcl 131 in procedure "pl1"\r
+                                                                                  set ref 625* 633* 795\r
+debug                           000504 constant        entry                    external dcl 345 in procedure "pl1" ref 957 1329\r
+                                                                                  1373\r
+debug_cg                 34     000114 automatic       bit(1)                   level 2 dcl 131 set ref 627* 645* 795 1326 1370\r
+debug_semant             33     000114 automatic       bit(1)                   level 2 dcl 131 set ref 626* 639* 795 796 954\r
+digit_pic                              based           picture(1)               packed unaligned dcl 201 ref 773 1470 1476\r
+divide                                                 builtin function         dcl 207 ref 836 1003 1003\r
+enabled                         000526 automatic       bit(1)                   dcl 1228 set ref 1248* 1249 1261 1274 1284 1289\r
+error_$finish                   000432 constant        entry                    external dcl 321 ref 991 1379 1379\r
+error_messages                  000034 internal static pointer                  initial dcl 222 set ref 399 410* 418\r
+error_messages_name             000457 automatic       char(32)                 packed unaligned dcl 401 set ref 406* 408* 410* 413*\r
+error_table_$badopt             000230 external static fixed bin(35,0)          dcl 244 set ref 706* 1132*\r
+error_table_$entlong            000232 external static fixed bin(35,0)          dcl 245 set ref 866*\r
+error_table_$inconsistent       000234 external static fixed bin(35,0)          dcl 246 set ref 1147*\r
+error_table_$translation_failed 000236 external static fixed bin(35,0)          dcl 247 set ref 386* 970*\r
+error_table_$zero_length_seg    000240 external static fixed bin(35,0)          dcl 249 set ref 826*\r
+extend_block                           based           structure                level 1 dcl 2-38\r
+extend_blockp                   000450 automatic       pointer                  dcl 2-36 ref 2-38 2-38 2-38 2-38 2-38 2-38\r
+extend_info              26            based           bit(18)                  level 2 packed packed unaligned dcl 2-8 ref 1494\r
+fcb                             000164 automatic       pointer                  dcl 172 set ref 872* 914* 995* 1455*\r
+find_source_file_               000506 constant        entry                    external dcl 346 ref 817\r
+get_group_id_                   000512 constant        entry                    external dcl 348 ref 404\r
+get_line_length_$switch         000510 constant        entry                    external dcl 347 ref 433\r
+get_wdir_                       000514 constant        entry                    external dcl 349 ref 845\r
+hbound                                                 builtin function         dcl 207 ref 393 1255 1259 1397 1414\r
+hcs_$get_max_length_seg         000516 constant        entry                    external dcl 350 ref 880 917\r
+hcs_$make_ptr                   000520 constant        entry                    external dcl 351 ref 410\r
+hcs_$terminate_noname           000522 constant        entry                    external dcl 352 ref 827 876 884\r
+hcs_$truncate_seg               000524 constant        entry                    external dcl 353 ref 1003\r
+how_many_users                  000526 constant        entry                    external dcl 354 ref 1410\r
+i                               000166 automatic       fixed bin(17,0)          dcl 173 in procedure "pl1" set ref 393* 394* 423*\r
+                                                                                  424* 449* 450* 453* 688* 688 689 695* 698* 1091*\r
+                                                                                  1092* 1095* 1113* 1113 1114 1120* 1123* 1397*\r
+                                                                                  1398* 1414* 1415 1417 1417 1418 1418 1419 1419\r
+                                                                                  1420 1420 1423 1423 1424 1424 1424 1424 1424*\r
+                                                                                  1434* 1435 1437 1437 1437 1437 1437*\r
+i                               000602 automatic       fixed bin(17,0)          dcl 1489 in procedure "count_components" set ref\r
+                                                                                  1491* 1493* 1493 1496\r
+i                               000527 automatic       fixed bin(17,0)          dcl 1229 in procedure "parse_condition_name" set ref\r
+                                                                                  1255* 1255* 1259 1272* 1272 1274 1274 1277 1283\r
+                                                                                  1284 1292\r
+in_cg                           000167 automatic       bit(1)                   dcl 174 set ref 429* 925 1376* 1385*\r
+index                                                  builtin function         dcl 207 ref 457 555 560 1130 1177 1248\r
+installation_id                 000467 automatic       char(32)                 packed unaligned dcl 862 set ref 894* 895\r
+ioa_                            000530 constant        entry                    external dcl 355 ref 722 724 804 806 841 1165 1407\r
+                                                                                  1412 1424 1428 1430 1431 1443\r
+ioa_$nnl                        000532 constant        entry                    external dcl 356 ref 956 1328 1372 1437\r
+lbound                                                 builtin function         dcl 207 ref 1255\r
+len                             000170 automatic       fixed bin(21,0)          dcl 175 set ref 203 836* 949 949\r
+length                                                 builtin function         dcl 207 ref 866 898 1177 1177 1177 1208 1236 1251\r
+                                                                                  1252 1286 1305\r
+lex$terminate_source            000434 constant        entry                    external dcl 322 ref 1449\r
+link                     40     000114 automatic       bit(1)                   level 2 dcl 131 set ref 663* 669* 798 1379*\r
+list                     13     000114 automatic       bit(1)                   level 2 dcl 131 set ref 509* 534* 761 768 1379*\r
+list_hold                       000172 automatic       pointer                  dcl 176 set ref 849* 872* 995* 1072* 1455 1455*\r
+list_size                       000174 automatic       fixed bin(19,0)          dcl 177 set ref 880* 888 917* 933\r
+listing_overflow                000440 stack reference condition                dcl 214 ref 907\r
+listname                        000175 automatic       char(32)                 packed unaligned dcl 178 set ref 870* 872* 875* 883*\r
+                                                                                  922* 997*\r
+lname                           000205 automatic       varying char(32)         dcl 179 set ref 865* 866 866* 870\r
+long                     16     000114 automatic       bit(1)                   level 2 dcl 131 set ref 546* 552*\r
+long_profile             22     000114 automatic       bit(1)                   level 2 dcl 131 set ref 569* 576* 583* 780 783 1367\r
+                                                                                  1379*\r
+ltrim                                                  builtin function         dcl 207 ref 814\r
+map                      12     000114 automatic       bit(1)                   level 2 dcl 131 set ref 508* 528* 758 768 1379*\r
+mask                            000334 automatic       bit(12)                  level 2 dcl 185 set ref 1274 1283*\r
+mod                                                    builtin function         dcl 207 ref 1272\r
+msf_manager_$get_ptr            000534 constant        entry                    external dcl 357 ref 914\r
+my_name                         000215 constant        char(3)                  initial packed unaligned dcl 223 set ref 379* 385*\r
+                                                                                  386* 413* 420 453* 691* 698* 706* 719* 719* 820*\r
+                                                                                  826* 866* 875* 883* 922* 970* 997* 1004* 1008*\r
+                                                                                  1030* 1041* 1047* 1047* 1061* 1067* 1067* 1085*\r
+                                                                                  1095* 1116* 1123* 1132* 1141* 1141* 1147* 1183*\r
+                                                                                  1211* 1241* 1261* 1277* 1324* 1354* 1361* 1379\r
+                                                                                  1403* 1407*\r
+n                               000570 automatic       fixed bin(17,0)          dcl 1465 set ref 1475* 1476 1476 1479\r
+ncpu                            000036 internal static fixed bin(71,0)          initial array dcl 224 set ref 391* 925* 925* 947*\r
+                                                                                  951* 964* 976* 978* 978 1012* 1348* 1379* 1379*\r
+                                                                                  1397 1398 1398 1417* 1417 1423 1423\r
+need_nl                         000556 automatic       bit(1)                   dcl 1392 set ref 1433* 1437* 1439* 1439 1443*\r
+next_area                 1            based           pointer                  level 2 packed packed unaligned dcl 2-38 ref 1494\r
+next_virgin               2            based           bit(18)                  level 2 dcl 2-8 ref 1467 1473\r
+no_check                  5     000114 automatic       bit(1)                   level 2 dcl 131 set ref 493* 499*\r
+no_check_ansi            25     000114 automatic       bit(1)                   level 2 dcl 131 set ref 600* 606*\r
+no_cpdcls                35     000114 automatic       bit(1)                   level 2 dcl 131 set ref 650* 656*\r
+no_debug                 31     000114 automatic       bit(1)                   level 2 dcl 131 set ref 624* 632* 638* 644*\r
+no_link                  37     000114 automatic       bit(1)                   level 2 dcl 131 set ref 662* 668*\r
+no_list                   7     000114 automatic       bit(1)                   level 2 dcl 131 set ref 505* 515* 521* 527* 533*\r
+                                                                                  539*\r
+no_optimize                     000114 automatic       bit(1)                   level 2 dcl 131 set ref 460* 466*\r
+no_profile               20     000114 automatic       bit(1)                   level 2 dcl 131 set ref 567* 574* 581*\r
+no_separate_static       23     000114 automatic       bit(1)                   level 2 dcl 131 set ref 588* 594*\r
+no_table                  2     000114 automatic       bit(1)                   level 2 dcl 131 set ref 472* 479* 486* 731\r
+no_time                  27     000114 automatic       bit(1)                   level 2 dcl 131 set ref 612* 618*\r
+no_version               42     000114 automatic       bit(1)                   level 2 dcl 131 set ref 674* 679* 719 801\r
+npages                          000056 internal static fixed bin(17,0)          array dcl 225 set ref 391* 393 394* 925* 925* 947*\r
+                                                                                  951* 964* 976* 977* 977 1012* 1348* 1379* 1379*\r
+                                                                                  1414 1415 1418* 1418 1424 1424 1428 1428\r
+null                                                   builtin function         dcl 207 ref 399 433 433 435 818 849 850 873 917 920\r
+                                                                                  1071 1072 1352 1452 1455 1492\r
+number_free_segs                000066 internal static fixed bin(17,0)          dcl 226 set ref 397* 1430* 1469* 1470 1470 1479*\r
+                                                                                  1479\r
+object_hold                     000216 automatic       pointer                  dcl 180 set ref 850* 1007* 1071* 1351* 1452 1452*\r
+objectbc                        000067 internal static fixed bin(24,0)          dcl 227 set ref 925* 1003 1003 1007* 1379*\r
+objectname                      000220 automatic       char(32)                 packed unaligned dcl 181 set ref 831* 832* 832 834\r
+                                                                                  865 891 1004* 1008* 1351* 1354*\r
+off                             000107 automatic       bit(1)                   level 2 packed packed unaligned dcl 125 set ref\r
+                                                                                  1102* 1108* 1145 1154\r
+on                        0(01) 000107 automatic       bit(1)                   level 2 packed packed unaligned dcl 125 set ref\r
+                                                                                  1101* 1107* 1145 1147* 1151\r
+optimize                  1     000114 automatic       bit(1)                   level 2 dcl 131 set ref 461* 467* 731 738 739 1342\r
+optimizer                       000436 constant        entry                    external dcl 323 ref 1345\r
+output_pt                       000230 automatic       pointer                  dcl 182 set ref 1003* 1007* 1351* 1352 1359 1379*\r
+p                               000600 automatic       pointer                  dcl 1488 set ref 1492* 1492* 1494 1494\r
+parse                           000440 constant        entry                    external dcl 324 ref 949\r
+pathname                        000232 automatic       char(256)                packed unaligned dcl 183 set ref 712* 817* 820* 826*\r
+                                                                                  833 1361*\r
+pd_faults                       000332 automatic       fixed bin(17,0)          dcl 184 set ref 391* 947* 951* 964* 976* 1012* 1348*\r
+phase_name                      000114 constant        char(9)                  initial array packed unaligned dcl 228 set ref 1424*\r
+pl1_blast_$blast_message        000242 external static varying char(64)         dcl 250 set ref 841* 1160*\r
+pl1_blast_$blast_on             000244 external static bit(1)                   dcl 251 set ref 838 1151* 1154* 1159* 1162*\r
+pl1_blast_$blast_time           000246 external static fixed bin(71,0)          dcl 252 set ref 838 1161*\r
+pl1_print$non_varying           000442 constant        entry                    external dcl 325 ref 900\r
+pl1_print$non_varying_nl        000444 constant        entry                    external dcl 326 ref 891 892 895 896 904 989\r
+pl1_print$varying_nl            000446 constant        entry                    external dcl 327 ref 901\r
+pl1_severity_                   000250 external static fixed bin(35,0)          dcl 253 set ref 374* 942* 1021*\r
+pl1_signal_catcher              000450 constant        entry                    external dcl 328 ref 945 945\r
+pl1_stat_$abort_label           000252 external static label variable           dcl 254 set ref 427* 939*\r
+pl1_stat_$brief_error_mode      000254 external static bit(1)                   dcl 255 set ref 771*\r
+pl1_stat_$by_name_free_list     000256 external static pointer                  dcl 256 set ref 435*\r
+pl1_stat_$by_name_parts_free_list\r
+                                000260 external static pointer                  dcl 257 set ref 435*\r
+pl1_stat_$by_name_parts_tree    000262 external static pointer                  dcl 259 set ref 435*\r
+pl1_stat_$by_name_ref_list      000264 external static pointer                  dcl 260 set ref 435*\r
+pl1_stat_$char_pos              000266 external static fixed bin(21,0)          dcl 261 set ref 889* 934* 995\r
+pl1_stat_$check_ansi            000270 external static bit(1)                   dcl 262 set ref 789*\r
+pl1_stat_$compiler_invoked      000272 external static bit(1)                   dcl 263 set ref 383 857* 943* 1023* 1075*\r
+pl1_stat_$compiler_name         000274 external static varying char(8)          dcl 264 set ref 420*\r
+pl1_stat_$constant_list         000276 external static pointer                  dcl 265 set ref 435* 1379*\r
+pl1_stat_$debug_semant          000300 external static bit(1)                   dcl 266 set ref 796*\r
+pl1_stat_$defined_list          000302 external static pointer                  dcl 267 set ref 435*\r
+pl1_stat_$dummy_block           000304 external static pointer                  dcl 268 set ref 435* 1379*\r
+pl1_stat_$error_messages        000306 external static pointer                  dcl 269 set ref 418*\r
+pl1_stat_$error_width           000310 external static fixed bin(17,0)          dcl 270 set ref 433*\r
+pl1_stat_$generate_symtab       000312 external static bit(1)                   dcl 271 set ref 429* 1336 1379*\r
+pl1_stat_$greatest_severity     000314 external static fixed bin(17,0)          dcl 272 set ref 419* 942* 985 991 1021 1322 1324*\r
+pl1_stat_$index                 000316 external static fixed bin(17,0)          dcl 273 set ref 439*\r
+pl1_stat_$last_statement_id     000320 external static bit(36)                  packed unaligned dcl 274 set ref 429*\r
+pl1_stat_$line_count            000322 external static fixed bin(17,0)          dcl 275 set ref 1407*\r
+pl1_stat_$list_ptr              000324 external static pointer                  dcl 276 set ref 872* 873 880* 914* 917 917* 920\r
+pl1_stat_$listing_on            000326 external static bit(1)                   dcl 277 set ref 769*\r
+pl1_stat_$max_list_size         000330 external static fixed bin(21,0)          dcl 278 set ref 888* 933*\r
+pl1_stat_$max_node_type         000332 external static fixed bin(17,0)          dcl 279 ref 423 1434\r
+pl1_stat_$new_fortran_option    000334 external static bit(1)                   dcl 280 set ref 429*\r
+pl1_stat_$node_name             000336 external static char(12)                 array packed unaligned dcl 281 set ref 1437*\r
+pl1_stat_$node_size             000340 external static fixed bin(17,0)          array dcl 282 set ref 1437* 1437\r
+pl1_stat_$node_uses             000342 external static fixed bin(17,0)          array dcl 283 set ref 424* 1435 1437* 1437\r
+pl1_stat_$ok_list               000344 external static pointer                  dcl 284 set ref 435* 1379*\r
+pl1_stat_$optimize              000346 external static bit(1)                   dcl 285 set ref 738*\r
+pl1_stat_$options               000350 external static varying char(400)        dcl 286 set ref 736* 739* 739 742* 742 746* 746 749*\r
+                                                                                  749 752* 752 755* 755 758* 758 761* 761 765* 765\r
+                                                                                  773* 773 777* 777 780* 780 786* 786 792* 792 798*\r
+                                                                                  798 814* 814 898 901* 1204* 1204 1221* 1221 1286\r
+                                                                                  1286 1286* 1286 1289* 1289 1292* 1292\r
+pl1_stat_$options_packed_dec    000352 external static bit(1)                   dcl 287 set ref 429*\r
+pl1_stat_$pathname              000354 external static varying char(168)        dcl 288 set ref 833*\r
+pl1_stat_$phase                 000356 external static fixed bin(17,0)          dcl 289 set ref 941* 960* 1338* 1344* 1377*\r
+pl1_stat_$print_cp_dcl          000360 external static bit(1)                   dcl 290 set ref 791* 985* 1379*\r
+pl1_stat_$profile               000362 external static bit(1)                   dcl 291 set ref 783*\r
+pl1_stat_$profile_length        000364 external static fixed bin(17,0)          dcl 292 set ref 439* 1367* 1379*\r
+pl1_stat_$root                  000366 external static pointer                  dcl 293 set ref 949* 985* 1339* 1345* 1379*\r
+pl1_stat_$seg_name              000370 external static varying char(32)         dcl 294 set ref 834* 1379* 1407*\r
+pl1_stat_$severity_plateau      000372 external static fixed bin(17,0)          dcl 295 set ref 773 775* 1188*\r
+pl1_stat_$single_symbol_list    000374 external static bit(1)                   dcl 296 set ref 764*\r
+pl1_stat_$stop_id               000376 external static bit(27)                  packed unaligned dcl 297 set ref 441*\r
+pl1_stat_$table                 000400 external static bit(1)                   dcl 298 set ref 745* 1336 1379*\r
+pl1_stat_$temporary_list        000402 external static pointer                  dcl 299 set ref 435* 1379*\r
+pl1_stat_$tree_area_ptr         000404 external static pointer                  dcl 300 set ref 1467 1469*\r
+pl1_stat_$unaligned_dec         000406 external static bit(1)                   dcl 301 set ref 429*\r
+pl1_stat_$use_old_area          000410 external static bit(1)                   dcl 302 set ref 421*\r
+pl1_stat_$user_id               000412 external static char(32)                 dcl 303 set ref 404*\r
+pl1_stat_$validate_proc         000414 external static pointer                  dcl 304 set ref 435* 1379*\r
+pl1_stat_$version               000416 external static fixed bin(17,0)          dcl 305 set ref 443*\r
+pl1_stat_$xeq_tree_area_ptr     000420 external static pointer                  dcl 306 set ref 1473 1475*\r
+pl1_symbol_print                000452 constant        entry                    external dcl 329 ref 985 1379 1379\r
+pl1_version                     012547 constant        fixed bin(17,0)          initial dcl 3-1 ref 443\r
+pl1_version$pl1_release         000422 external static varying char(3)          dcl 307 set ref 406 722 724* 804 806*\r
+pl1_version$pl1_version         000424 external static varying char(256)        dcl 308 set ref 403 722* 804* 892\r
+prefix                                 parameter       char                     packed unaligned dcl 1173 in procedure\r
+                                                                                  "parse_severity" ref 1169 1177 1177\r
+prefix                          000334 automatic       structure                level 1 dcl 185 in procedure "pl1" set ref 809* 949*\r
+prefix                   41     000114 automatic       bit(1)                   level 2 in structure "ca" dcl 131 in procedure "pl1"\r
+                                                                                  set ref 683* 702* 810\r
+prefix_string                          based           char                     packed unaligned dcl 202 in procedure "pl1" set ref\r
+                                                                                  810*\r
+prefix_string                          parameter       char                     packed unaligned dcl 1196 in procedure\r
+                                                                                  "parse_prefix" set ref 1193 1200 1208 1209 1211*\r
+                                                                                  1235 1236 1241* 1248 1255 1261 1261 1304 1305\r
+prefix_string_length            000336 automatic       fixed bin(21,0)          dcl 188 set ref 202 695* 810 810\r
+prefix_string_ptr               000340 automatic       pointer                  dcl 189 set ref 202 695* 810\r
+prepare_symbol_table            000454 constant        entry                    external dcl 330 ref 1339\r
+produce_listing                 000342 automatic       bit(1)                   dcl 190 set ref 769* 860 907 981 1379*\r
+profile                  21     000114 automatic       bit(1)                   level 2 dcl 131 set ref 568* 575* 582* 777 783 1367\r
+rtrim                                                  builtin function         dcl 207 ref 834 865 891 1177 1292\r
+scan_length                     000540 automatic       fixed bin(21,0)          dcl 1302 set ref 1304* 1305 1305* 1308\r
+scan_position                   000516 automatic       fixed bin(21,0)          dcl 1198 set ref 1200* 1201 1208 1209 1215* 1215\r
+                                                                                  1235 1236 1245 1246* 1246 1304 1305 1308* 1308\r
+scan_token_table                000456 constant        entry                    external dcl 331 ref 962\r
+search                                                 builtin function         dcl 207 ref 1235\r
+semantic_translator             000460 constant        entry                    external dcl 332 ref 961\r
+separate_static          24     000114 automatic       bit(1)                   level 2 dcl 131 set ref 589* 595* 785 786\r
+set                       0(02) 000107 automatic       bit(1)                   level 2 packed packed unaligned dcl 125 set ref\r
+                                                                                  1127* 1145 1157\r
+severity                        000506 automatic       fixed bin(17,0)          dcl 1175 in procedure "parse_severity" set ref 1177*\r
+                                                                                  1179* 1181 1188\r
+severity                 17     000114 automatic       bit(1)                   level 2 in structure "ca" dcl 131 in procedure "pl1"\r
+                                                                                  set ref 773 1187*\r
+single_symbol_list       14     000114 automatic       bit(1)                   level 2 dcl 131 set ref 510* 540* 764 765 768\r
+source                   10     000114 automatic       bit(1)                   level 2 dcl 131 set ref 506* 516* 752 769\r
+source_seg                      000344 automatic       pointer                  dcl 191 set ref 203 817* 818 827* 876* 884* 949 1359\r
+source_string                          based           char                     packed unaligned dcl 203 set ref 949*\r
+sourcename                      000346 automatic       char(32)                 packed unaligned dcl 192 set ref 817* 831 970*\r
+storage                         000070 internal static char(10)                 initial array packed unaligned dcl 231 set ref 952*\r
+                                                                                  965* 1013* 1015 1015* 1015* 1349* 1419* 1419 1424*\r
+string                                                 builtin function         dcl 207 set ref 1089* 1139\r
+substr                                                 builtin function         dcl 207 set ref 1177 1209 1235 1236 1248 1255 1261\r
+                                                                                  1261 1274 1274 1283* 1284* 1286 1304 1305 1470*\r
+                                                                                  1476*\r
+symbols                  11     000114 automatic       bit(1)                   level 2 dcl 131 set ref 507* 522* 755 768\r
+symbols_on                      000356 automatic       bit(1)                   dcl 193 set ref 768* 769 985 1379*\r
+system_info_$installation_id    000536 constant        entry                    external dcl 358 ref 894\r
+table                     4     000114 automatic       bit(1)                   level 2 dcl 131 set ref 474* 481* 488* 731* 745 746\r
+time                     30     000114 automatic       bit(1)                   level 2 dcl 131 set ref 613* 619* 1025\r
+token_length                    000530 automatic       fixed bin(21,0)          dcl 1230 set ref 1235* 1236 1236* 1239 1246 1248\r
+                                                                                  1252* 1252 1255 1261 1261\r
+token_start                     000531 automatic       fixed bin(21,0)          dcl 1231 set ref 1245* 1248 1251* 1251 1255 1261\r
+                                                                                  1261\r
+translation_failed              000357 automatic       bit(1)                   dcl 194 in procedure "pl1" set ref 429* 929* 967*\r
+                                                                                  970 985 1001 1032*\r
+translation_failed                     parameter       bit(1)                   dcl 1318 in procedure "generate_code" set ref 1315\r
+                                                                                  1320* 1332* 1355* 1363*\r
+tree_manager$init               000462 constant        entry                    external dcl 333 ref 939\r
+tree_manager$truncate           000464 constant        entry                    external dcl 334 ref 1450\r
+tree_used                              parameter       char                     packed unaligned dcl 1462 set ref 1459 1467* 1470*\r
+tssi_$clean_up_file             000540 constant        entry                    external dcl 359 ref 1455\r
+tssi_$clean_up_segment          000542 constant        entry                    external dcl 360 ref 1452\r
+tssi_$finish_file               000544 constant        entry                    external dcl 361 ref 995\r
+tssi_$finish_segment            000546 constant        entry                    external dcl 362 ref 1007\r
+tssi_$get_file                  000550 constant        entry                    external dcl 363 ref 872\r
+tssi_$get_segment               000552 constant        entry                    external dcl 364 ref 1351\r
+tx                              000557 automatic       float bin(27)            dcl 1393 set ref 1423* 1424 1424\r
+ty                              000560 automatic       float bin(27)            dcl 1394 set ref 1396* 1397 1398* 1401 1424 1428\r
+verify                                                 builtin function         dcl 207 ref 1200 1304\r
+version                         000114 internal static varying char(132)        dcl 232 set ref 403* 1379*\r
+wdirname                        000360 automatic       char(168)                packed unaligned dcl 195 set ref 845* 872* 875* 875\r
+                                                                                  883* 883 922* 922 997* 997 1004* 1004 1008* 1008\r
+                                                                                  1351* 1354* 1354\r
+xeq_storage                     000156 internal static char(10)                 initial array packed unaligned dcl 233 set ref 952*\r
+                                                                                  965* 1013* 1016 1016* 1016* 1349* 1420* 1420 1424*\r
+xeq_tree_used                          parameter       char                     packed unaligned dcl 1463 set ref 1459 1473* 1476*\r
+\r
+NAMES DECLARED BY DECLARE STATEMENT AND NEVER REFERENCED.\r
+NO_FREEING_ALLOCATION_METHOD    000204 internal static fixed bin(17,0)          initial dcl 2-32\r
+STANDARD_ALLOCATION_METHOD      000203 internal static fixed bin(17,0)          initial dcl 2-32\r
+alloc_blkhdrsz                  000205 internal static fixed bin(17,0)          initial dcl 2-45\r
+area_version_1                  000202 internal static fixed bin(17,0)          initial dcl 2-4\r
+block                                  based           structure                level 1 dcl 2-52\r
+blockp                          000452 automatic       pointer                  dcl 2-50\r
+min_block_size                  000206 internal static fixed bin(17,0)          initial dcl 2-63\r
+no_free_area_header                    based           structure                level 1 dcl 2-46\r
+\r
+NAMES DECLARED BY EXPLICIT CONTEXT.\r
+abort_return                    006507 constant        label                    dcl 1030 ref 427\r
+blast                           006744 constant        entry                    external dcl 1079\r
+clean_up                        006635 constant        entry                    external dcl 1055\r
+close_list                      006121 constant        label                    dcl 995 ref 930\r
+continue_from_abort             005764 constant        label                    dcl 970 ref 1033\r
+count_components                012076 constant        entry                    internal dcl 1483 ref 1469 1475\r
+generate_code                   010413 constant        entry                    internal dcl 1315 ref 967\r
+parse_condition_name            007761 constant        entry                    internal dcl 1225 ref 1206 1217\r
+parse_prefix                    007606 constant        entry                    internal dcl 1193 ref 810\r
+parse_severity                  007467 constant        entry                    internal dcl 1169 ref 555 560\r
+pl1                             001302 constant        entry                    external dcl 113\r
+pl1exl                          001320 constant        entry                    external dcl 113\r
+print_times                     011121 constant        entry                    internal dcl 1389 ref 1025 1051\r
+set_storage_usage               011711 constant        entry                    internal dcl 1459 ref 952 965 1013 1349\r
+skip_white_space                010360 constant        entry                    internal dcl 1299 ref 1233 1295\r
+times                           006540 constant        entry                    external dcl 1035\r
+truncate                        011640 constant        entry                    internal dcl 1446 ref 854 1018 1074\r
+v2pl1                           001311 constant        entry                    external dcl 113 ref 410 410\r
+\r
+THERE WERE NO NAMES DECLARED BY CONTEXT OR IMPLICATION.\r
+\r
+STORAGE REQUIREMENTS FOR THIS PROGRAM.\r
+\r
+       Object  Text    Link    Symbol  Defs    Static\r
+Start          0       0     14266       15042   12560       14276\r
+Length     25504   12560       554       10426    1506         200\r
+\r
+BLOCK NAME              STACK SIZE     TYPE            WHY NONQUICK/WHO SHARES STACK FRAME\r
+pl1                                1000 external procedure  is an external procedure.  \r
+begin block on line 399                 begin block         shares stack frame of external procedure pl1.  \r
+on unit on line 852                  64 on unit               \r
+begin block on line 860                 begin block         shares stack frame of external procedure pl1.  \r
+on unit on line 907                 110 on unit               \r
+parse_severity                          internal procedure  shares stack frame of external procedure pl1.  \r
+parse_prefix                            internal procedure  shares stack frame of external procedure pl1.  \r
+parse_condition_name                    internal procedure  shares stack frame of external procedure pl1.  \r
+skip_white_space                        internal procedure  shares stack frame of external procedure pl1.  \r
+generate_code                           internal procedure  shares stack frame of external procedure pl1.  \r
+print_times                             internal procedure  shares stack frame of external procedure pl1.  \r
+truncate                             74 internal procedure  is called by several nonquick procedures.  \r
+set_storage_usage                       internal procedure  shares stack frame of external procedure pl1.  \r
+count_components                        internal procedure  shares stack frame of external procedure pl1.  \r
+\r
+STORAGE FOR INTERNAL STATIC VARIABLES.\r
+\r
+   LOC IDENTIFIER                  BLOCK NAME\r
+000010 blast_time                  pl1\r
+000012 comptime                    pl1\r
+000034 error_messages              pl1\r
+000036 ncpu                        pl1\r
+000056 npages                      pl1\r
+000066 number_free_segs            pl1\r
+000067 objectbc                    pl1\r
+000070 storage                     pl1\r
+000114 version                     pl1\r
+000156 xeq_storage                 pl1\r
+000202 area_version_1              pl1\r
+000203 STANDARD_ALLOCATION_METHOD  pl1\r
+000204 NO_FREEING_ALLOCATION_METHOD\r
+                                   pl1\r
+000205 alloc_blkhdrsz              pl1\r
+000206 min_block_size              pl1\r
+\r
+STORAGE FOR AUTOMATIC VARIABLES.\r
+\r
+STACK FRAME                 LOC IDENTIFIER                  BLOCK NAME\r
+on unit on line 907      000100 component_bit_count         on unit on line 907\r
+pl1                      000100 argument_no                 pl1\r
+                         000101 arg_count                   pl1\r
+                         000102 arg_length                  pl1\r
+                         000104 arg_ptr                     pl1\r
+                         000106 bitcnt                      pl1\r
+                         000107 blast_ca                    pl1\r
+                         000110 blast_msg_len               pl1\r
+                         000112 blast_msg_ptr               pl1\r
+                         000114 ca                          pl1\r
+                         000157 called_cg                   pl1\r
+                         000160 clock_time                  pl1\r
+                         000162 code                        pl1\r
+                         000163 component                   pl1\r
+                         000164 fcb                         pl1\r
+                         000166 i                           pl1\r
+                         000167 in_cg                       pl1\r
+                         000170 len                         pl1\r
+                         000172 list_hold                   pl1\r
+                         000174 list_size                   pl1\r
+                         000175 listname                    pl1\r
+                         000205 lname                       pl1\r
+                         000216 object_hold                 pl1\r
+                         000220 objectname                  pl1\r
+                         000230 output_pt                   pl1\r
+                         000232 pathname                    pl1\r
+                         000332 pd_faults                   pl1\r
+                         000334 prefix                      pl1\r
+                         000336 prefix_string_length        pl1\r
+                         000340 prefix_string_ptr           pl1\r
+                         000342 produce_listing             pl1\r
+                         000344 source_seg                  pl1\r
+                         000346 sourcename                  pl1\r
+                         000356 symbols_on                  pl1\r
+                         000357 translation_failed          pl1\r
+                         000360 wdirname                    pl1\r
+                         000446 areap                       pl1\r
+                         000450 extend_blockp               pl1\r
+                         000452 blockp                      pl1\r
+                         000457 error_messages_name         begin block on line 399\r
+                         000467 installation_id             begin block on line 860\r
+                         000506 severity                    parse_severity\r
+                         000516 scan_position               parse_prefix\r
+                         000526 enabled                     parse_condition_name\r
+                         000527 i                           parse_condition_name\r
+                         000530 token_length                parse_condition_name\r
+                         000531 token_start                 parse_condition_name\r
+                         000540 scan_length                 skip_white_space\r
+                         000556 need_nl                     print_times\r
+                         000557 tx                          print_times\r
+                         000560 ty                          print_times\r
+                         000570 n                           set_storage_usage\r
+                         000600 p                           count_components\r
+                         000602 i                           count_components\r
+\r
+THE FOLLOWING EXTERNAL OPERATORS ARE USED BY THIS PROGRAM.\r
+r_g_a               r_e_as              r_ne_as             r_ge_a              alloc_char_temp     cat_realloc_chars\r
+call_ext_out_desc   call_ext_out        call_int_this       call_int_other      begin_return_mac    return_mac\r
+tra_ext_1           mdfx1               enable_op           shorten_stack       ext_entry           int_entry\r
+set_chars_eis       index_chars_eis     index_before_cs     clock_mac\r
+\r
+THE FOLLOWING EXTERNAL ENTRIES ARE CALLED BY THIS PROGRAM.\r
+code_gen_                     code_gen_$return_bit_count    com_err_                      com_err_$suppress_name\r
+condition_                    cpu_time_and_paging_          cu_$arg_count                 cu_$arg_ptr\r
+date_time_$format             debug                         error_$finish                 find_source_file_\r
+get_group_id_                 get_line_length_$switch       get_wdir_                     hcs_$get_max_length_seg\r
+hcs_$make_ptr                 hcs_$terminate_noname         hcs_$truncate_seg             how_many_users\r
+ioa_                          ioa_$nnl                      lex$terminate_source          msf_manager_$get_ptr\r
+optimizer                     parse                         pl1_print$non_varying         pl1_print$non_varying_nl\r
+pl1_print$varying_nl          pl1_signal_catcher            pl1_symbol_print              prepare_symbol_table\r
+scan_token_table              semantic_translator           system_info_$installation_id  tree_manager$init\r
+tree_manager$truncate         tssi_$clean_up_file           tssi_$clean_up_segment        tssi_$finish_file\r
+tssi_$finish_segment          tssi_$get_file                tssi_$get_segment\r
+\r
+THE FOLLOWING EXTERNAL VARIABLES ARE USED BY THIS PROGRAM.\r
+cg_static_$debug              cg_static_$in_prologue        cg_static_$in_thunk           cg_static_$optimize\r
+cg_static_$separate_static    cg_static_$stop_id            cg_static_$support            error_table_$badopt\r
+error_table_$entlong          error_table_$inconsistent     error_table_$translation_failed\r
+error_table_$zero_length_seg  pl1_blast_$blast_message      pl1_blast_$blast_on           pl1_blast_$blast_time\r
+pl1_severity_                 pl1_stat_$abort_label         pl1_stat_$brief_error_mode    pl1_stat_$by_name_free_list\r
+pl1_stat_$by_name_parts_free_list                           pl1_stat_$by_name_parts_tree  pl1_stat_$by_name_ref_list\r
+pl1_stat_$char_pos            pl1_stat_$check_ansi          pl1_stat_$compiler_invoked    pl1_stat_$compiler_name\r
+pl1_stat_$constant_list       pl1_stat_$debug_semant        pl1_stat_$defined_list        pl1_stat_$dummy_block\r
+pl1_stat_$error_messages      pl1_stat_$error_width         pl1_stat_$generate_symtab     pl1_stat_$greatest_severity\r
+pl1_stat_$index               pl1_stat_$last_statement_id   pl1_stat_$line_count          pl1_stat_$list_ptr\r
+pl1_stat_$listing_on          pl1_stat_$max_list_size       pl1_stat_$max_node_type       pl1_stat_$new_fortran_option\r
+pl1_stat_$node_name           pl1_stat_$node_size           pl1_stat_$node_uses           pl1_stat_$ok_list\r
+pl1_stat_$optimize            pl1_stat_$options             pl1_stat_$options_packed_dec  pl1_stat_$pathname\r
+pl1_stat_$phase               pl1_stat_$print_cp_dcl        pl1_stat_$profile             pl1_stat_$profile_length\r
+pl1_stat_$root                pl1_stat_$seg_name            pl1_stat_$severity_plateau    pl1_stat_$single_symbol_list\r
+pl1_stat_$stop_id             pl1_stat_$table               pl1_stat_$temporary_list      pl1_stat_$tree_area_ptr\r
+pl1_stat_$unaligned_dec       pl1_stat_$use_old_area        pl1_stat_$user_id             pl1_stat_$validate_proc\r
+pl1_stat_$version             pl1_stat_$xeq_tree_area_ptr   pl1_version$pl1_release       pl1_version$pl1_version\r
+\r
+\r
+\fCONSTANTS\r
+012126  aa  403 040 022 146    \ 3 \12f\r
+012127  aa  040 321 000 000     Ñ\r
+\r
+012130  aa  000 000 000 000    \0\0\0\0\r
+012131  aa  000 000 000 000    \0\0\0\0\r
+012132  aa  000 777 000 000    \0ÿ\0\0\r
+012133  aa  000 000 000 000    \0\0\0\0\r
+012134  aa  000 000 000 000    \0\0\0\0\r
+012135  aa  000 000 000 000    \0\0\0\0\r
+012136  aa  000 000 000 000    \0\0\0\0\r
+012137  aa  000 000 000 000    \0\0\0\0\r
+012140  aa  777 000 000 000    ÿ\0\0\0\r
+012141  aa  000 000 000 000    \0\0\0\0\r
+012142  aa  000 000 000 000    \0\0\0\0\r
+012143  aa  777 000 000 000    ÿ\0\0\0\r
+012144  aa  000 000 000 000    \0\0\0\0\r
+012145  aa  000 000 000 000    \0\0\0\0\r
+012146  aa  000 000 000 000    \0\0\0\0\r
+012147  aa  000 000 000 000    \0\0\0\0\r
+012150  aa  000 000 000 000    \0\0\0\0\r
+012151  aa  000 000 000 000    \0\0\0\0\r
+012152  aa  000 000 000 000    \0\0\0\0\r
+012153  aa  000 000 000 000    \0\0\0\0\r
+012154  aa  000 000 000 000    \0\0\0\0\r
+012155  aa  000 000 000 000    \0\0\0\0\r
+012156  aa  000 000 000 000    \0\0\0\0\r
+012157  aa  000 000 000 000    \0\0\0\0\r
+012160  aa  000 000 000 000    \0\0\0\0\r
+012161  aa  000 000 000 000    \0\0\0\0\r
+012162  aa  000 000 000 000    \0\0\0\0\r
+012163  aa  000 000 000 000    \0\0\0\0\r
+012164  aa  000 000 000 000    \0\0\0\0\r
+012165  aa  000 000 000 000    \0\0\0\0\r
+012166  aa  000 000 000 000    \0\0\0\0\r
+012167  aa  000 000 000 000    \0\0\0\0\r
+012170  aa  000 000 000 000    \0\0\0\0\r
+012171  aa  000 000 000 000    \0\0\0\0\r
+012172  aa  000 000 000 000    \0\0\0\0\r
+012173  aa  000 000 000 000    \0\0\0\0\r
+012174  aa  000 000 000 000    \0\0\0\0\r
+012175  aa  000 000 000 000    \0\0\0\0\r
+012176  aa  000 000 000 000    \0\0\0\0\r
+012177  aa  000 000 000 000    \0\0\0\0\r
+012200  aa  000 000 000 000    \0\0\0\0\r
+012201  aa  000 000 000 000    \0\0\0\0\r
+012202  aa  000 000 000 000    \0\0\0\0\r
+012203  aa  000 000 000 000    \0\0\0\0\r
+012204  aa  000 000 000 000    \0\0\0\0\r
+012205  aa  000 000 000 000    \0\0\0\0\r
+012206  aa  000 000 000 000    \0\0\0\0\r
+012207  aa  000 000 000 000    \0\0\0\0\r
+012210  aa  000 000 000 000    \0\0\0\0\r
+012211  aa  000 000 000 000    \0\0\0\0\r
+012212  aa  000 000 000 000    \0\0\0\0\r
+012213  aa  000 000 000 000    \0\0\0\0\r
+012214  aa  000 000 000 000    \0\0\0\0\r
+012215  aa  000 000 000 000    \0\0\0\0\r
+012216  aa  000 000 000 000    \0\0\0\0\r
+012217  aa  000 000 000 000    \0\0\0\0\r
+012220  aa  000 000 000 000    \0\0\0\0\r
+012221  aa  000 000 000 000    \0\0\0\0\r
+012222  aa  000 000 000 000    \0\0\0\0\r
+012223  aa  000 000 000 000    \0\0\0\0\r
+012224  aa  000 000 000 000    \0\0\0\0\r
+012225  aa  000 000 000 000    \0\0\0\0\r
+012226  aa  000 000 000 000    \0\0\0\0\r
+012227  aa  000 000 000 000    \0\0\0\0\r
+012230  aa  000 000 000 000    \0\0\0\0\r
+012231  aa  000 000 000 000    \0\0\0\0\r
+012232  aa  000 000 000 000    \0\0\0\0\r
+012233  aa  000 000 000 000    \0\0\0\0\r
+012234  aa  000 000 000 000    \0\0\0\0\r
+012235  aa  000 000 000 000    \0\0\0\0\r
+012236  aa  000 000 000 000    \0\0\0\0\r
+012237  aa  000 000 000 000    \0\0\0\0\r
+012240  aa  000 000 000 000    \0\0\0\0\r
+012241  aa  000 000 000 000    \0\0\0\0\r
+012242  aa  000 000 000 000    \0\0\0\0\r
+012243  aa  000 000 000 000    \0\0\0\0\r
+012244  aa  000 000 000 000    \0\0\0\0\r
+012245  aa  000 000 000 000    \0\0\0\0\r
+012246  aa  000 000 000 000    \0\0\0\0\r
+012247  aa  000 000 000 000    \0\0\0\0\r
+012250  aa  000 000 000 000    \0\0\0\0\r
+012251  aa  000 000 000 000    \0\0\0\0\r
+012252  aa  000 000 000 000    \0\0\0\0\r
+012253  aa  000 000 000 000    \0\0\0\0\r
+012254  aa  000 000 000 000    \0\0\0\0\r
+012255  aa  000 000 000 000    \0\0\0\0\r
+012256  aa  000 000 000 000    \0\0\0\0\r
+012257  aa  000 000 000 000    \0\0\0\0\r
+012260  aa  000 000 000 000    \0\0\0\0\r
+012261  aa  000 000 000 000    \0\0\0\0\r
+012262  aa  000 000 000 000    \0\0\0\0\r
+012263  aa  000 000 000 000    \0\0\0\0\r
+012264  aa  000 000 000 000    \0\0\0\0\r
+012265  aa  000 000 000 000    \0\0\0\0\r
+012266  aa  000 000 000 000    \0\0\0\0\r
+012267  aa  000 000 000 000    \0\0\0\0\r
+012270  aa  000 000 000 000    \0\0\0\0\r
+012271  aa  000 000 000 000    \0\0\0\0\r
+012272  aa  000 000 000 000    \0\0\0\0\r
+012273  aa  000 000 000 000    \0\0\0\0\r
+012274  aa  000 000 000 000    \0\0\0\0\r
+012275  aa  000 000 000 000    \0\0\0\0\r
+012276  aa  000 000 000 000    \0\0\0\0\r
+012277  aa  000 000 000 000    \0\0\0\0\r
+012300  aa  000 000 000 000    \0\0\0\0\r
+012301  aa  000 000 000 000    \0\0\0\0\r
+012302  aa  000 000 000 000    \0\0\0\0\r
+012303  aa  000 000 000 000    \0\0\0\0\r
+012304  aa  000 000 000 000    \0\0\0\0\r
+012305  aa  000 000 000 000    \0\0\0\0\r
+012306  aa  000 000 000 000    \0\0\0\0\r
+012307  aa  000 000 000 000    \0\0\0\0\r
+012310  aa  000 000 000 000    \0\0\0\0\r
+012311  aa  000 000 000 000    \0\0\0\0\r
+012312  aa  000 000 000 000    \0\0\0\0\r
+012313  aa  000 000 000 000    \0\0\0\0\r
+012314  aa  000 000 000 000    \0\0\0\0\r
+012315  aa  000 000 000 000    \0\0\0\0\r
+012316  aa  000 000 000 000    \0\0\0\0\r
+012317  aa  000 000 000 000    \0\0\0\0\r
+012320  aa  000 000 000 000    \0\0\0\0\r
+012321  aa  000 000 000 000    \0\0\0\0\r
+012322  aa  000 000 000 000    \0\0\0\0\r
+012323  aa  000 000 000 000    \0\0\0\0\r
+012324  aa  000 000 000 000    \0\0\0\0\r
+012325  aa  000 000 000 000    \0\0\0\0\r
+012326  aa  000 000 000 000    \0\0\0\0\r
+012327  aa  000 000 000 000    \0\0\0\0\r
+\r
+012330  aa     000002000000\r
+012331  aa     000000000000\r
+012332  aa     600000000041\r
+012333  aa     001251000000\r
+\r
+012334  aa  777 777 777 777    ÿÿÿÿ\r
+012335  aa  777 777 777 777    ÿÿÿÿ\r
+012336  aa  777 000 777 777    ÿ\0ÿÿ\r
+012337  aa  777 777 777 777    ÿÿÿÿ\r
+012340  aa  777 777 777 777    ÿÿÿÿ\r
+012341  aa  777 777 777 777    ÿÿÿÿ\r
+012342  aa  777 777 777 777    ÿÿÿÿ\r
+012343  aa  777 777 777 777    ÿÿÿÿ\r
+012344  aa  000 777 777 777    \0ÿÿÿ\r
+012345  aa  777 777 777 777    ÿÿÿÿ\r
+012346  aa  777 777 777 777    ÿÿÿÿ\r
+012347  aa  777 777 777 777    ÿÿÿÿ\r
+012350  aa  777 777 777 777    ÿÿÿÿ\r
+012351  aa  777 777 777 777    ÿÿÿÿ\r
+012352  aa  777 777 777 777    ÿÿÿÿ\r
+012353  aa  777 777 777 777    ÿÿÿÿ\r
+012354  aa  777 777 777 777    ÿÿÿÿ\r
+012355  aa  777 777 777 777    ÿÿÿÿ\r
+012356  aa  777 777 777 777    ÿÿÿÿ\r
+012357  aa  777 777 777 777    ÿÿÿÿ\r
+012360  aa  777 777 777 777    ÿÿÿÿ\r
+012361  aa  777 777 777 777    ÿÿÿÿ\r
+012362  aa  777 777 777 777    ÿÿÿÿ\r
+012363  aa  777 777 777 777    ÿÿÿÿ\r
+012364  aa  777 777 777 777    ÿÿÿÿ\r
+012365  aa  777 777 777 777    ÿÿÿÿ\r
+012366  aa  777 777 777 777    ÿÿÿÿ\r
+012367  aa  777 777 777 777    ÿÿÿÿ\r
+012370  aa  777 777 777 777    ÿÿÿÿ\r
+012371  aa  777 777 777 777    ÿÿÿÿ\r
+012372  aa  777 777 777 777    ÿÿÿÿ\r
+012373  aa  777 777 777 777    ÿÿÿÿ\r
+012374  aa  777 777 777 777    ÿÿÿÿ\r
+012375  aa  777 777 777 777    ÿÿÿÿ\r
+012376  aa  777 777 777 777    ÿÿÿÿ\r
+012377  aa  777 777 777 777    ÿÿÿÿ\r
+012400  aa  777 777 777 777    ÿÿÿÿ\r
+012401  aa  777 777 777 777    ÿÿÿÿ\r
+012402  aa  777 777 777 777    ÿÿÿÿ\r
+012403  aa  777 777 777 777    ÿÿÿÿ\r
+012404  aa  777 777 777 777    ÿÿÿÿ\r
+012405  aa  777 777 777 777    ÿÿÿÿ\r
+012406  aa  777 777 777 777    ÿÿÿÿ\r
+012407  aa  777 777 777 777    ÿÿÿÿ\r
+012410  aa  777 777 777 777    ÿÿÿÿ\r
+012411  aa  777 777 777 777    ÿÿÿÿ\r
+012412  aa  777 777 777 777    ÿÿÿÿ\r
+012413  aa  777 777 777 777    ÿÿÿÿ\r
+012414  aa  777 777 777 777    ÿÿÿÿ\r
+012415  aa  777 777 777 777    ÿÿÿÿ\r
+012416  aa  777 777 777 777    ÿÿÿÿ\r
+012417  aa  777 777 777 777    ÿÿÿÿ\r
+012420  aa  777 777 777 777    ÿÿÿÿ\r
+012421  aa  777 777 777 777    ÿÿÿÿ\r
+012422  aa  777 777 777 777    ÿÿÿÿ\r
+012423  aa  777 777 777 777    ÿÿÿÿ\r
+012424  aa  777 777 777 777    ÿÿÿÿ\r
+012425  aa  777 777 777 777    ÿÿÿÿ\r
+012426  aa  777 777 777 777    ÿÿÿÿ\r
+012427  aa  777 777 777 777    ÿÿÿÿ\r
+012430  aa  777 777 777 777    ÿÿÿÿ\r
+012431  aa  777 777 777 777    ÿÿÿÿ\r
+012432  aa  777 777 777 777    ÿÿÿÿ\r
+012433  aa  777 777 777 777    ÿÿÿÿ\r
+012434  aa  777 777 777 777    ÿÿÿÿ\r
+012435  aa  777 777 777 777    ÿÿÿÿ\r
+012436  aa  777 777 777 777    ÿÿÿÿ\r
+012437  aa  777 777 777 777    ÿÿÿÿ\r
+012440  aa  777 777 777 777    ÿÿÿÿ\r
+012441  aa  777 777 777 777    ÿÿÿÿ\r
+012442  aa  777 777 777 777    ÿÿÿÿ\r
+012443  aa  777 777 777 777    ÿÿÿÿ\r
+012444  aa  777 777 777 777    ÿÿÿÿ\r
+012445  aa  777 777 777 777    ÿÿÿÿ\r
+012446  aa  777 777 777 777    ÿÿÿÿ\r
+012447  aa  777 777 777 777    ÿÿÿÿ\r
+012450  aa  777 777 777 777    ÿÿÿÿ\r
+012451  aa  777 777 777 777    ÿÿÿÿ\r
+012452  aa  777 777 777 777    ÿÿÿÿ\r
+012453  aa  777 777 777 777    ÿÿÿÿ\r
+012454  aa  777 777 777 777    ÿÿÿÿ\r
+012455  aa  777 777 777 777    ÿÿÿÿ\r
+012456  aa  777 777 777 777    ÿÿÿÿ\r
+012457  aa  777 777 777 777    ÿÿÿÿ\r
+012460  aa  777 777 777 777    ÿÿÿÿ\r
+012461  aa  777 777 777 777    ÿÿÿÿ\r
+012462  aa  777 777 777 777    ÿÿÿÿ\r
+012463  aa  777 777 777 777    ÿÿÿÿ\r
+012464  aa  777 777 777 777    ÿÿÿÿ\r
+012465  aa  777 777 777 777    ÿÿÿÿ\r
+012466  aa  777 777 777 777    ÿÿÿÿ\r
+012467  aa  777 777 777 777    ÿÿÿÿ\r
+012470  aa  777 777 777 777    ÿÿÿÿ\r
+012471  aa  777 777 777 777    ÿÿÿÿ\r
+012472  aa  777 777 777 777    ÿÿÿÿ\r
+012473  aa  777 777 777 777    ÿÿÿÿ\r
+012474  aa  777 777 777 777    ÿÿÿÿ\r
+012475  aa  777 777 777 777    ÿÿÿÿ\r
+012476  aa  777 777 777 777    ÿÿÿÿ\r
+012477  aa  777 777 777 777    ÿÿÿÿ\r
+012500  aa  777 777 777 777    ÿÿÿÿ\r
+012501  aa  777 777 777 777    ÿÿÿÿ\r
+012502  aa  777 777 777 777    ÿÿÿÿ\r
+012503  aa  777 777 777 777    ÿÿÿÿ\r
+012504  aa  777 777 777 777    ÿÿÿÿ\r
+012505  aa  777 777 777 777    ÿÿÿÿ\r
+012506  aa  777 777 777 777    ÿÿÿÿ\r
+012507  aa  777 777 777 777    ÿÿÿÿ\r
+012510  aa  777 777 777 777    ÿÿÿÿ\r
+012511  aa  777 777 777 777    ÿÿÿÿ\r
+012512  aa  777 777 777 777    ÿÿÿÿ\r
+012513  aa  777 777 777 777    ÿÿÿÿ\r
+012514  aa  777 777 777 777    ÿÿÿÿ\r
+012515  aa  777 777 777 777    ÿÿÿÿ\r
+012516  aa  777 777 777 777    ÿÿÿÿ\r
+012517  aa  777 777 777 777    ÿÿÿÿ\r
+012520  aa  777 777 777 777    ÿÿÿÿ\r
+012521  aa  777 777 777 777    ÿÿÿÿ\r
+012522  aa  777 777 777 777    ÿÿÿÿ\r
+012523  aa  777 777 777 777    ÿÿÿÿ\r
+012524  aa  777 777 777 777    ÿÿÿÿ\r
+012525  aa  777 777 777 777    ÿÿÿÿ\r
+012526  aa  777 777 777 777    ÿÿÿÿ\r
+012527  aa  777 777 777 777    ÿÿÿÿ\r
+012530  aa  777 777 777 777    ÿÿÿÿ\r
+012531  aa  777 777 777 777    ÿÿÿÿ\r
+012532  aa  777 777 777 777    ÿÿÿÿ\r
+012533  aa  777 777 777 777    ÿÿÿÿ\r
+\r
+012534  aa     577777777777\r
+\r
+012535  aa     377777777777\r
+\r
+012536  aa     077777777777\r
+\r
+012540  aa     000002000000\r
+012541  aa     000000000000\r
+012542  aa     600000000041\r
+012543  aa     000357000000\r
+\r
+012544  aa     077777000043\r
+012545  aa     000001000000\r
+\r
+012546  aa  070 321 000 000    8Ñ\r
+\r
+000000  aa  165 156 144 145    unde\r
+000001  aa  162 146 154 157    rflo\r
+000002  aa  167 040 040 040    w   \r
+000003  aa  040 040 040 040        \r
+000004  aa  157 166 145 162    over\r
+000005  aa  146 154 157 167    flow\r
+000006  aa  040 040 040 040        \r
+000007  aa  040 040 040 040        \r
+000010  aa  172 145 162 157    zero\r
+000011  aa  144 151 166 151    divi\r
+000012  aa  144 145 040 040    de  \r
+000013  aa  040 040 040 040        \r
+000014  aa  146 151 170 145    fixe\r
+000015  aa  144 157 166 145    dove\r
+000016  aa  162 146 154 157    rflo\r
+000017  aa  167 040 040 040    w   \r
+000020  aa  143 157 156 166    conv\r
+000021  aa  145 162 163 151    ersi\r
+000022  aa  157 156 040 040    on  \r
+000023  aa  040 040 040 040        \r
+000024  aa  163 151 172 145    size\r
+000025  aa  040 040 040 040        \r
+000026  aa  040 040 040 040        \r
+000027  aa  040 040 040 040        \r
+000030  aa  163 165 142 163    subs\r
+000031  aa  143 162 151 160    crip\r
+000032  aa  164 162 141 156    tran\r
+000033  aa  147 145 040 040    ge  \r
+000034  aa  163 164 162 151    stri\r
+000035  aa  156 147 162 141    ngra\r
+000036  aa  156 147 145 040    nge \r
+000037  aa  040 040 040 040        \r
+000040  aa  163 164 162 151    stri\r
+000041  aa  156 147 163 151    ngsi\r
+000042  aa  172 145 040 040    ze  \r
+000043  aa  040 040 040 040        \r
+000044  aa  163 151 172 145    size\r
+000045  aa  040 040 040 040        \r
+000046  aa  040 040 040 040        \r
+000047  aa  040 040 040 040        \r
+000050  aa  165 146 154 040    ufl \r
+000051  aa  040 040 040 040        \r
+000052  aa  040 040 040 040        \r
+000053  aa  040 040 040 040        \r
+000054  aa  157 146 154 040    ofl \r
+000055  aa  040 040 040 040        \r
+000056  aa  040 040 040 040        \r
+000057  aa  040 040 040 040        \r
+000060  aa  172 144 151 166    zdiv\r
+000061  aa  040 040 040 040        \r
+000062  aa  040 040 040 040        \r
+000063  aa  040 040 040 040        \r
+000064  aa  146 157 146 154    fofl\r
+000065  aa  040 040 040 040        \r
+000066  aa  040 040 040 040        \r
+000067  aa  040 040 040 040        \r
+000070  aa  143 157 156 166    conv\r
+000071  aa  040 040 040 040        \r
+000072  aa  040 040 040 040        \r
+000073  aa  040 040 040 040        \r
+000074  aa  163 151 172 145    size\r
+000075  aa  040 040 040 040        \r
+000076  aa  040 040 040 040        \r
+000077  aa  040 040 040 040        \r
+000100  aa  163 165 142 162    subr\r
+000101  aa  147 040 040 040    g   \r
+000102  aa  040 040 040 040        \r
+000103  aa  040 040 040 040        \r
+000104  aa  163 164 162 147    strg\r
+000105  aa  040 040 040 040        \r
+000106  aa  040 040 040 040        \r
+000107  aa  040 040 040 040        \r
+000110  aa  163 164 162 172    strz\r
+000111  aa  040 040 040 040        \r
+000112  aa  040 040 040 040        \r
+000113  aa  040 040 040 040        \r
+\r
+000114  aa  163 145 164 165    setu\r
+000115  aa  160 040 040 040    p   \r
+000116  aa  040 160 141 162     par\r
+000117  aa  163 145 040 040    se  \r
+000120  aa  040 040 163 145      se\r
+000121  aa  155 141 156 164    mant\r
+000122  aa  151 143 163 157    icso\r
+000123  aa  160 164 151 155    ptim\r
+000124  aa  151 172 145 162    izer\r
+000125  aa  143 157 144 145    code\r
+000126  aa  040 147 145 156     gen\r
+000127  aa  040 154 151 163     lis\r
+000130  aa  164 151 156 147    ting\r
+000131  aa  040 040 143 154      cl\r
+000132  aa  145 141 156 165    eanu\r
+000133  aa  160 040 040 000    p  \0\r
+\r
+000134  aa  011 040 054 000             ,\r
+\r
+000135  aa  011 040 000 000             \r
+\r
+000136  aa     524000000006\r
+\r
+000137  aa     526000000014\r
+\r
+000140  aa     524000000030\r
+\r
+000141  aa     524000000106\r
+\r
+000142  aa     524000000055\r
+\r
+000143  aa     524000000027\r
+\r
+000144  aa     404000000022\r
+\r
+000145  aa     414000000033\r
+\r
+000146  aa     050750220000\r
+\r
+000147  aa     526000000011\r
+\r
+000150  aa     524000000070\r
+\r
+000151  aa     524000000060\r
+\r
+000152  aa     524000000023\r
+\r
+000153  aa     524000000042\r
+\r
+000154  aa     524000000117\r
+\r
+000155  aa     524000000045\r
+\r
+012550  aa  050 000 000 000    (\r
+\r
+000156  aa     526000000020\r
+\r
+000157  aa     524000000104\r
+\r
+000160  aa     524000000040\r
+\r
+012552  aa  156 157 000 000    no\r
+\r
+012553  aa  051 000 000 000    )\r
+\r
+000161  aa     524000000051\r
+\r
+012554  aa  054 000 000 000    ,\r
+\r
+000162  aa     524000000032\r
+\r
+000163  aa  061 062 063 064    1234\r
+\r
+000164  aa     526077777777\r
+\r
+000165  aa     524000000031\r
+\r
+000166  aa     530000000620\r
+\r
+000167  aa     524000000016\r
+\r
+000170  aa     524000000056\r
+\r
+000171  aa     530000000040\r
+\r
+000172  aa     524000000066\r
+\r
+000173  aa     516000000001\r
+\r
+000174  aa     524000000025\r
+\r
+000175  aa     524000000035\r
+\r
+000176  aa     524000000041\r
+\r
+000177  aa  055 163 145 164    -set\r
+\r
+000200  aa  055 157 146 146    -off\r
+\r
+000201  aa  055 157 156 000    -on\r
+\r
+000202  aa     524000000022\r
+\r
+000203  aa     524000000017\r
+\r
+012555  aa  076 000 000 000    >\r
+\r
+000204  aa     524000000047\r
+\r
+000205  aa     526000000012\r
+\r
+000206  aa     500000000000\r
+\r
+000207  aa     524000000000\r
+\r
+000210  aa     410000000107\r
+\r
+000211  aa     530000000100\r
+\r
+000212  aa  056 145 170 040    .ex \r
+\r
+000213  aa     404000000030\r
+\r
+000214  aa     464000000000\r
+\r
+000215  aa  160 154 061 000    pl1\r
+\r
+000216  aa     526000000400\r
+\r
+012556  aa  040 000 000 000     \r
+\r
+000217  aa  040 155 141 160     map\r
+\r
+000220  aa     530000000003\r
+\r
+000221  aa     524000000007\r
+\r
+000222  aa     530000000400\r
+\r
+000223  aa  105 130 114 000    EXL\r
+\r
+000224  aa     524000000036\r
+\r
+000225  aa     524000000002\r
+\r
+000226  aa     524000000044\r
+\r
+000227  aa  055 154 153 000    -lk\r
+\r
+000230  aa  055 156 154 153    -nlk\r
+\r
+000231  aa  055 144 142 000    -db\r
+\r
+000232  aa  055 156 144 142    -ndb\r
+\r
+000233  aa  055 164 155 000    -tm\r
+\r
+000234  aa  055 156 164 155    -ntm\r
+\r
+000235  aa  055 163 163 000    -ss\r
+\r
+000236  aa  055 156 163 163    -nss\r
+\r
+000237  aa  055 154 160 146    -lpf\r
+\r
+000240  aa  055 160 146 000    -pf\r
+\r
+000241  aa  055 156 160 146    -npf\r
+\r
+000242  aa     524000000003\r
+\r
+000243  aa  055 163 166 000    -sv\r
+\r
+000244  aa     524000000011\r
+\r
+000245  aa     526000000000\r
+\r
+000246  aa  055 154 147 000    -lg\r
+\r
+000247  aa  055 142 146 000    -bf\r
+\r
+000250  aa  055 163 163 154    -ssl\r
+\r
+000251  aa  055 154 163 000    -ls\r
+\r
+000252  aa  055 155 141 160    -map\r
+\r
+000253  aa  055 163 142 000    -sb\r
+\r
+000254  aa  055 163 143 000    -sc\r
+\r
+000255  aa  055 156 154 163    -nls\r
+\r
+000256  aa  055 143 153 000    -ck\r
+\r
+000257  aa  055 156 143 153    -nck\r
+\r
+000260  aa  055 164 142 000    -tb\r
+\r
+000261  aa  055 156 164 142    -ntb\r
+\r
+000262  aa  055 157 164 000    -ot\r
+\r
+000263  aa  055 156 157 164    -not\r
+\r
+000264  aa     524000000014\r
+\r
+012557  aa     777777777000\r
+\r
+000265  aa     524000000065\r
+\r
+000266  aa     524000000103\r
+\r
+000267  aa     404000000005\r
+\r
+000270  aa     526000000003\r
+\r
+000271  aa     404000000043\r
+\r
+012547  aa     000000000005\r
+\r
+000272  aa     514000000001\r
+\r
+000273  aa     526000000250\r
+\r
+000274  aa     526000000040\r
+\r
+000275  aa     404000000021\r
+\r
+000276  aa     530000000372\r
+\r
+012551  aa     000000000012\r
+\r
+000300  aa  136 133 136 057    ^[^/\r
+000301  aa  136 135 000 000    ^]\r
+\r
+000302  aa  040 160 162 145     pre\r
+000303  aa  146 151 170 050    fix(\r
+\r
+000304  aa  056 154 151 163    .lis\r
+000305  aa  164 000 000 000    t\r
+\r
+000306  aa  056 160 154 061    .pl1\r
+000307  aa  040 000 000 000     \r
+\r
+000310  aa  040 154 151 156     lin\r
+000311  aa  153 000 000 000    k\r
+\r
+000312  aa  040 143 160 144     cpd\r
+000313  aa  143 154 163 000    cls\r
+\r
+000314  aa  040 160 162 157     pro\r
+000315  aa  146 151 154 145    file\r
+\r
+000316  aa  040 154 151 163     lis\r
+000317  aa  164 000 000 000    t\r
+\r
+000320  aa  040 163 171 155     sym\r
+000321  aa  142 157 154 163    bols\r
+\r
+000322  aa  040 163 157 165     sou\r
+000323  aa  162 143 145 000    rce\r
+\r
+000324  aa  040 143 150 145     che\r
+000325  aa  143 153 000 000    ck\r
+\r
+000326  aa  040 164 141 142     tab\r
+000327  aa  154 145 000 000    le\r
+\r
+000330  aa  120 114 057 061    PL/1\r
+000331  aa  040 136 141 000     ^a\r
+\r
+000332  aa  055 160 162 145    -pre\r
+000333  aa  146 151 170 000    fix\r
+\r
+000334  aa  055 166 145 162    -ver\r
+000335  aa  163 151 157 156    sion\r
+\r
+000336  aa  055 154 151 156    -lin\r
+000337  aa  153 000 000 000    k\r
+\r
+000340  aa  055 156 157 137    -no_\r
+000341  aa  154 151 156 153    link\r
+\r
+000342  aa  055 143 160 144    -cpd\r
+000343  aa  143 154 163 000    cls\r
+\r
+000344  aa  055 144 142 143    -dbc\r
+000345  aa  147 000 000 000    g\r
+\r
+000346  aa  055 144 142 163    -dbs\r
+000347  aa  145 000 000 000    e\r
+\r
+000350  aa  055 144 145 142    -deb\r
+000351  aa  165 147 000 000    ug\r
+\r
+000352  aa  055 164 151 155    -tim\r
+000353  aa  145 000 000 000    e\r
+\r
+000354  aa  055 156 157 137    -no_\r
+000355  aa  164 151 155 145    time\r
+\r
+000356  aa  055 160 162 157    -pro\r
+000357  aa  146 151 154 145    file\r
+\r
+000360  aa  055 154 157 156    -lon\r
+000361  aa  147 000 000 000    g\r
+\r
+000362  aa  055 142 162 151    -bri\r
+000363  aa  145 146 000 000    ef\r
+\r
+000364  aa  055 154 151 163    -lis\r
+000365  aa  164 000 000 000    t\r
+\r
+000366  aa  055 163 171 155    -sym\r
+000367  aa  142 157 154 163    bols\r
+\r
+000370  aa  055 163 157 165    -sou\r
+000371  aa  162 143 145 000    rce\r
+\r
+000372  aa  055 156 157 137    -no_\r
+000373  aa  154 151 163 164    list\r
+\r
+000374  aa  055 143 150 145    -che\r
+000375  aa  143 153 000 000    ck\r
+\r
+000376  aa  055 164 141 142    -tab\r
+000377  aa  154 145 000 000    le\r
+\r
+000400  aa  055 142 146 164    -bft\r
+000401  aa  142 000 000 000    b\r
+\r
+000402  aa     077777000043\r
+000403  aa     000001000000\r
+\r
+000404  aa  143 154 145 141    clea\r
+000405  aa  156 165 160 000    nup\r
+\r
+000406  aa  101 143 143 145    Acce\r
+000407  aa  160 164 145 144    pted\r
+000410  aa  056 000 000 000    .\r
+\r
+000411  aa  136 141 136 133    ^a^[\r
+000412  aa  076 136 135 136    >^]^\r
+000413  aa  141 000 000 000    a\r
+\r
+000414  aa     504000000002\r
+000415  aa     514000000014\r
+000416  aa     514000000014\r
+\r
+000417  aa  141 156 171 137    any_\r
+000420  aa  157 164 150 145    othe\r
+000421  aa  162 000 000 000    r\r
+\r
+000422  aa  144 141 164 145    date\r
+000423  aa  137 164 151 155    _tim\r
+000424  aa  145 000 000 000    e\r
+\r
+000425  aa  040 163 145 166     sev\r
+000426  aa  145 162 151 164    erit\r
+000427  aa  171 000 000 000    y\r
+\r
+000430  aa  040 142 162 151     bri\r
+000431  aa  145 146 137 164    ef_t\r
+000432  aa  141 142 154 145    able\r
+\r
+000433  aa  040 157 160 164     opt\r
+000434  aa  151 155 151 172    imiz\r
+000435  aa  145 000 000 000    e\r
+\r
+000436  aa  055 156 157 137    -no_\r
+000437  aa  160 162 145 146    pref\r
+000440  aa  151 170 000 000    ix\r
+\r
+000441  aa  055 156 157 137    -no_\r
+000442  aa  166 145 162 163    vers\r
+000443  aa  151 157 156 000    ion\r
+\r
+000444  aa  055 156 157 137    -no_\r
+000445  aa  143 160 144 143    cpdc\r
+000446  aa  154 163 000 000    ls\r
+\r
+000447  aa  055 144 145 142    -deb\r
+000450  aa  165 147 137 143    ug_c\r
+000451  aa  147 000 000 000    g\r
+\r
+000452  aa  055 156 157 137    -no_\r
+000453  aa  144 145 142 165    debu\r
+000454  aa  147 000 000 000    g\r
+\r
+000455  aa  055 143 150 145    -che\r
+000456  aa  143 153 137 141    ck_a\r
+000457  aa  156 163 151 000    nsi\r
+\r
+000460  aa  055 156 157 137    -no_\r
+000461  aa  160 162 157 146    prof\r
+000462  aa  151 154 145 000    ile\r
+\r
+000463  aa  055 163 145 166    -sev\r
+000464  aa  145 162 151 164    erit\r
+000465  aa  171 000 000 000    y\r
+\r
+000466  aa  055 156 157 137    -no_\r
+000467  aa  143 150 145 143    chec\r
+000470  aa  153 000 000 000    k\r
+\r
+000471  aa  055 156 157 137    -no_\r
+000472  aa  164 141 142 154    tabl\r
+000473  aa  145 000 000 000    e\r
+\r
+000474  aa  055 157 160 164    -opt\r
+000475  aa  151 155 151 172    imiz\r
+000476  aa  145 000 000 000    e\r
+\r
+000477  aa  055 156 157 137    -no_\r
+000500  aa  157 160 164 151    opti\r
+000501  aa  155 151 172 145    mize\r
+\r
+000502  aa  101 162 147 165    Argu\r
+000503  aa  155 145 156 164    ment\r
+000504  aa  040 136 144 056     ^d.\r
+\r
+000505  aa     031001000001\r
+000506  aa     001000000040\r
+000507  aa     071000000000\r
+\r
+000510  aa  011 040 040 040               \r
+000511  aa  040 117 160 164     Opt\r
+000512  aa  151 157 156 163    ions\r
+000513  aa  072 040 000 000    : \r
+\r
+000514  aa  011 103 157 155            Com\r
+000515  aa  160 151 154 145    pile\r
+000516  aa  144 040 157 156    d on\r
+000517  aa  072 040 000 000    : \r
+\r
+000520  aa  011 103 157 155            Com\r
+000521  aa  160 151 154 145    pile\r
+000522  aa  144 040 141 164    d at\r
+000523  aa  072 040 000 000    : \r
+\r
+000524  aa  011 103 157 155            Com\r
+000525  aa  160 151 154 145    pile\r
+000526  aa  144 040 142 171    d by\r
+000527  aa  072 040 000 000    : \r
+\r
+000530  aa  125 163 141 147    Usag\r
+000531  aa  145 072 040 136    e: ^\r
+000532  aa  141 044 164 151    a$ti\r
+000533  aa  155 145 163 000    mes\r
+\r
+000534  aa  040 163 145 160     sep\r
+000535  aa  141 162 141 164    arat\r
+000536  aa  145 137 163 164    e_st\r
+000537  aa  141 164 151 143    atic\r
+\r
+000540  aa  040 154 157 156     lon\r
+000541  aa  147 137 160 162    g_pr\r
+000542  aa  157 146 151 154    ofil\r
+000543  aa  145 000 000 000    e\r
+\r
+000544  aa  055 144 145 142    -deb\r
+000545  aa  165 147 137 163    ug_s\r
+000546  aa  145 155 141 156    eman\r
+000547  aa  164 000 000 000    t\r
+\r
+000550  aa  055 156 157 137    -no_\r
+000551  aa  143 150 145 143    chec\r
+000552  aa  153 137 141 156    k_an\r
+000553  aa  163 151 000 000    si\r
+\r
+000554  aa  055 163 145 160    -sep\r
+000555  aa  141 162 141 164    arat\r
+000556  aa  145 137 163 164    e_st\r
+000557  aa  141 164 151 143    atic\r
+\r
+000560  aa  055 154 157 156    -lon\r
+000561  aa  147 137 160 162    g_pr\r
+000562  aa  157 146 151 154    ofil\r
+000563  aa  145 000 000 000    e\r
+\r
+000564  aa  055 142 162 151    -bri\r
+000565  aa  145 146 137 164    ef_t\r
+000566  aa  141 142 154 145    able\r
+000567  aa  040 000 000 000     \r
+\r
+000570  aa  154 151 163 164    list\r
+000571  aa  151 156 147 137    ing_\r
+000572  aa  157 166 145 162    over\r
+000573  aa  146 154 157 167    flow\r
+\r
+000574  aa  116 157 040 164    No t\r
+000575  aa  151 155 145 163    imes\r
+000576  aa  040 141 166 141     ava\r
+000577  aa  151 154 141 142    ilab\r
+000600  aa  154 145 056 000    le.\r
+\r
+000601  aa  160 154 061 137    pl1_\r
+000602  aa  145 162 162 157    erro\r
+000603  aa  162 137 155 145    r_me\r
+000604  aa  163 163 141 147    ssag\r
+000605  aa  145 163 137 000    es_\r
+\r
+000606  aa  125 163 141 147    Usag\r
+000607  aa  145 072 040 136    e: ^\r
+000610  aa  141 044 143 154    a$cl\r
+000611  aa  145 141 156 137    ean_\r
+000612  aa  165 160 000 000    up\r
+\r
+000613  aa  040 163 151 156     sin\r
+000614  aa  147 154 145 137    gle_\r
+000615  aa  163 171 155 142    symb\r
+000616  aa  157 154 137 154    ol_l\r
+000617  aa  151 163 164 000    ist\r
+\r
+000620  aa  055 156 157 137    -no_\r
+000621  aa  163 145 160 141    sepa\r
+000622  aa  162 141 164 145    rate\r
+000623  aa  137 163 164 141    _sta\r
+000624  aa  164 151 143 000    tic\r
+\r
+000625  aa  055 163 151 156    -sin\r
+000626  aa  147 154 145 137    gle_\r
+000627  aa  163 171 155 142    symb\r
+000630  aa  157 154 137 154    ol_l\r
+000631  aa  151 163 164 000    ist\r
+\r
+000632  aa  136 061 062 141    ^12a\r
+000633  aa  136 066 144 136    ^6d^\r
+000634  aa  066 144 136 070    6d^8\r
+000635  aa  144 136 133 136    d^[^\r
+000636  aa  057 136 073 136    /^;^\r
+000637  aa  070 170 136 135    8x^]\r
+\r
+000640  aa  124 117 124 101    TOTA\r
+000641  aa  114 040 040 040    L   \r
+000642  aa  040 136 071 056     ^9.\r
+000643  aa  063 146 040 040    3f  \r
+000644  aa  040 040 040 040        \r
+000645  aa  136 066 144 000    ^6d\r
+\r
+000646  aa  144 145 142 165    debu\r
+000647  aa  147 040 146 157    g fo\r
+000650  aa  162 040 055 144    r -d\r
+000651  aa  145 142 165 147    ebug\r
+000652  aa  137 143 147 072    _cg:\r
+000653  aa  040 000 000 000     \r
+\r
+000654  aa  160 154 061 145    pl1e\r
+000655  aa  170 154 137 145    xl_e\r
+000656  aa  162 162 157 162    rror\r
+000657  aa  137 155 145 163    _mes\r
+000660  aa  163 141 147 145    sage\r
+000661  aa  163 137 000 000    s_\r
+\r
+000662  aa  055 163 145 164    -set\r
+000663  aa  040 141 156 144     and\r
+000664  aa  040 055 136 133     -^[\r
+000665  aa  157 156 136 073    on^;\r
+000666  aa  157 146 146 136    off^\r
+000667  aa  135 000 000 000    ]\r
+\r
+000670  aa  136 071 141 136    ^9a^\r
+000671  aa  071 056 063 146    9.3f\r
+000672  aa  136 066 056 061    ^6.1\r
+000673  aa  146 136 066 144    f^6d\r
+000674  aa  040 136 061 060     ^10\r
+000675  aa  141 040 136 061    a ^1\r
+000676  aa  060 141 000 000    0a\r
+\r
+000677  aa  115 151 163 163    Miss\r
+000700  aa  151 156 147 040    ing \r
+000701  aa  143 157 156 144    cond\r
+000702  aa  151 164 151 157    itio\r
+000703  aa  156 040 156 141    n na\r
+000704  aa  155 145 056 040    me. \r
+000705  aa  136 141 000 000    ^a\r
+\r
+000706  aa  111 156 166 141    Inva\r
+000707  aa  154 151 144 040    lid \r
+000710  aa  163 145 166 145    seve\r
+000711  aa  162 151 164 171    rity\r
+000712  aa  040 154 145 166     lev\r
+000713  aa  145 154 056 040    el. \r
+000714  aa  136 141 000 000    ^a\r
+\r
+000715  aa  103 157 155 160    Comp\r
+000716  aa  157 156 145 156    onen\r
+000717  aa  164 040 136 144    t ^d\r
+000720  aa  040 157 146 040     of \r
+000721  aa  136 141 136 133    ^a^[\r
+000722  aa  076 136 135 136    >^]^\r
+000723  aa  141 000 000 000    a\r
+\r
+000724  aa  111 156 166 141    Inva\r
+000725  aa  154 151 144 040    lid \r
+000726  aa  143 157 156 144    cond\r
+000727  aa  151 164 151 157    itio\r
+000730  aa  156 040 156 141    n na\r
+000731  aa  155 145 056 040    me. \r
+000732  aa  136 133 156 157    ^[no\r
+000733  aa  136 135 136 141    ^]^a\r
+\r
+000734  aa  011 103 117 115            COM\r
+000735  aa  120 111 114 101    PILA\r
+000736  aa  124 111 117 116    TION\r
+000737  aa  040 114 111 123     LIS\r
+000740  aa  124 111 116 107    TING\r
+000741  aa  040 117 106 040     OF \r
+000742  aa  123 105 107 115    SEGM\r
+000743  aa  105 116 124 040    ENT \r
+\r
+000744  aa  125 163 141 147    Usag\r
+000745  aa  145 072 040 136    e: ^\r
+000746  aa  141 044 142 154    a$bl\r
+000747  aa  141 163 164 040    ast \r
+000750  aa  055 143 157 156    -con\r
+000751  aa  164 162 157 154    trol\r
+000752  aa  137 141 162 147    _arg\r
+000753  aa  163 000 000 000    s\r
+\r
+000754  aa  125 163 141 147    Usag\r
+000755  aa  145 072 040 136    e: ^\r
+000756  aa  141 040 160 141    a pa\r
+000757  aa  164 150 040 173    th {\r
+000760  aa  055 143 157 156    -con\r
+000761  aa  164 162 157 154    trol\r
+000762  aa  137 141 162 147    _arg\r
+000763  aa  163 175 000 000    s}\r
+\r
+000764  aa  102 145 147 151    Begi\r
+000765  aa  156 156 151 156    nnin\r
+000766  aa  147 040 143 157    g co\r
+000767  aa  144 145 040 147    de g\r
+000770  aa  145 156 145 162    ener\r
+000771  aa  141 164 157 162    ator\r
+000772  aa  056 136 057 144    .^/d\r
+000773  aa  145 142 165 147    ebug\r
+000774  aa  072 040 000 000    : \r
+\r
+000775  aa  115 151 163 163    Miss\r
+000776  aa  151 156 147 040    ing \r
+000777  aa  142 154 141 163    blas\r
+001000  aa  164 040 155 145    t me\r
+001001  aa  163 163 141 147    ssag\r
+001002  aa  145 040 141 146    e af\r
+001003  aa  164 145 162 040    ter \r
+001004  aa  055 163 145 164    -set\r
+001005  aa  056 000 000 000    .\r
+\r
+001006  aa  101 156 040 165    An u\r
+001007  aa  156 162 145 143    nrec\r
+001010  aa  157 166 145 162    over\r
+001011  aa  141 142 154 145    able\r
+001012  aa  040 145 162 162     err\r
+001013  aa  157 162 040 150    or h\r
+001014  aa  141 163 040 157    as o\r
+001015  aa  143 143 165 162    ccur\r
+001016  aa  162 145 144 056    red.\r
+\r
+001017  aa  115 151 163 163    Miss\r
+001020  aa  151 156 147 040    ing \r
+001021  aa  160 162 145 146    pref\r
+001022  aa  151 170 040 163    ix s\r
+001023  aa  164 162 151 156    trin\r
+001024  aa  147 040 141 146    g af\r
+001025  aa  164 145 162 040    ter \r
+001026  aa  055 160 162 145    -pre\r
+001027  aa  146 151 170 056    fix.\r
+\r
+001030  aa  101 156 040 145    An e\r
+001031  aa  162 162 157 162    rror\r
+001032  aa  040 157 146 040     of \r
+001033  aa  163 145 166 145    seve\r
+001034  aa  162 151 164 171    rity\r
+001035  aa  040 136 144 040     ^d \r
+001036  aa  150 141 163 040    has \r
+001037  aa  157 143 143 165    occu\r
+001040  aa  162 162 145 144    rred\r
+001041  aa  056 000 000 000    .\r
+\r
+001042  aa  102 145 147 151    Begi\r
+001043  aa  156 156 151 156    nnin\r
+001044  aa  147 040 163 145    g se\r
+001045  aa  155 141 156 164    mant\r
+001046  aa  151 143 040 164    ic t\r
+001047  aa  162 141 156 163    rans\r
+001050  aa  154 141 164 157    lato\r
+001051  aa  162 056 136 057    r.^/\r
+001052  aa  144 145 142 165    debu\r
+001053  aa  147 072 040 000    g: \r
+\r
+001054  aa  115 151 163 163    Miss\r
+001055  aa  151 156 147 040    ing \r
+001056  aa  143 157 155 155    comm\r
+001057  aa  141 040 142 145    a be\r
+001060  aa  164 167 145 145    twee\r
+001061  aa  156 040 143 157    n co\r
+001062  aa  156 144 151 164    ndit\r
+001063  aa  151 157 156 040    ion \r
+001064  aa  156 141 155 145    name\r
+001065  aa  163 056 040 136    s. ^\r
+001066  aa  141 000 000 000    a\r
+\r
+001067  aa  136 057 123 165    ^/Su\r
+001070  aa  155 155 141 162    mmar\r
+001071  aa  171 040 157 146    y of\r
+001072  aa  040 156 157 144     nod\r
+001073  aa  145 040 165 163    e us\r
+001074  aa  141 147 145 040    age \r
+001075  aa  151 156 040 136    in ^\r
+001076  aa  144 040 146 162    d fr\r
+001077  aa  145 145 040 163    ee s\r
+001100  aa  145 147 155 145    egme\r
+001101  aa  156 164 163 136    nts^\r
+001102  aa  057 000 000 000    /\r
+\r
+001103  aa  136 057 123 145    ^/Se\r
+001104  aa  147 155 145 156    gmen\r
+001105  aa  164 040 136 141    t ^a\r
+001106  aa  040 050 136 144     (^d\r
+001107  aa  040 154 151 156     lin\r
+001110  aa  145 163 051 040    es) \r
+001111  aa  167 141 163 040    was \r
+001112  aa  143 157 155 160    comp\r
+001113  aa  151 154 145 144    iled\r
+001114  aa  040 142 171 040     by \r
+001115  aa  136 141 040 157    ^a o\r
+001116  aa  156 040 136 141    n ^a\r
+\r
+001117  aa  136 057 120 150    ^/Ph\r
+001120  aa  141 163 145 040    ase \r
+001121  aa  040 040 040 040        \r
+001122  aa  040 040 040 040        \r
+001123  aa  040 103 120 125     CPU\r
+001124  aa  040 040 040 040        \r
+001125  aa  045 040 040 040    %   \r
+001126  aa  120 141 147 145    Page\r
+001127  aa  163 040 040 040    s   \r
+001130  aa  040 040 040 124       T\r
+001131  aa  162 145 145 040    ree \r
+001132  aa  040 040 040 040        \r
+001133  aa  130 145 161 137    Xeq_\r
+001134  aa  164 162 145 145    tree\r
+\r
+001135  aa  124 150 145 040    The \r
+001136  aa  156 141 155 145    name\r
+001137  aa  040 157 146 040     of \r
+001140  aa  164 150 145 040    the \r
+001141  aa  154 151 163 164    list\r
+001142  aa  151 156 147 040    ing \r
+001143  aa  163 145 147 155    segm\r
+001144  aa  145 156 164 040    ent \r
+001145  aa  151 163 040 164    is t\r
+001146  aa  162 165 156 143    runc\r
+001147  aa  141 164 145 144    ated\r
+001150  aa  040 164 157 040     to \r
+001151  aa  136 141 056 154    ^a.l\r
+001152  aa  151 163 000 000    is\r
+\r
+001153  aa  101 164 164 145    Atte\r
+001154  aa  155 160 164 040    mpt \r
+001155  aa  164 157 040 151    to i\r
+001156  aa  156 166 157 153    nvok\r
+001157  aa  145 040 160 154    e pl\r
+001160  aa  061 040 162 145    1 re\r
+001161  aa  143 165 162 163    curs\r
+001162  aa  151 166 145 154    ivel\r
+001163  aa  171 056 040 125    y. U\r
+001164  aa  163 145 040 162    se r\r
+001165  aa  145 154 145 141    elea\r
+001166  aa  163 145 040 146    se f\r
+001167  aa  151 162 163 164    irst\r
+001170  aa  056 000 000 000    .\r
+\r
+001171  aa  101 040 143 157    A co\r
+001172  aa  156 144 151 164    ndit\r
+001173  aa  151 157 156 040    ion \r
+001174  aa  155 141 171 040    may \r
+001175  aa  156 157 164 040    not \r
+001176  aa  142 145 040 145    be e\r
+001177  aa  156 141 142 154    nabl\r
+001200  aa  145 144 040 141    ed a\r
+001201  aa  156 144 040 144    nd d\r
+001202  aa  151 163 141 142    isab\r
+001203  aa  154 145 144 040    led \r
+001204  aa  151 156 040 164    in t\r
+001205  aa  150 145 040 160    he p\r
+001206  aa  162 145 146 151    refi\r
+001207  aa  170 040 163 164    x st\r
+001210  aa  162 151 156 147    ring\r
+001211  aa  056 040 136 141    . ^a\r
+\r
+001212  aa  124 150 145 040    The \r
+001213  aa  143 157 155 160    comp\r
+001214  aa  151 154 145 162    iler\r
+001215  aa  040 150 141 163     has\r
+001216  aa  040 142 145 145     bee\r
+001217  aa  156 040 151 156    n in\r
+001220  aa  166 157 153 145    voke\r
+001221  aa  144 040 167 151    d wi\r
+001222  aa  164 150 040 141    th a\r
+001223  aa  040 160 162 145     pre\r
+001224  aa  166 151 157 165    viou\r
+001225  aa  163 040 151 156    s in\r
+001226  aa  166 157 143 141    voca\r
+001227  aa  164 151 157 156    tion\r
+001230  aa  040 163 165 163     sus\r
+001231  aa  160 145 156 144    pend\r
+001232  aa  145 144 056 000    ed.\r
+\r
+001233  aa  116 117 104 105    NODE\r
+001234  aa  040 124 131 120     TYP\r
+001235  aa  105 040 040 040    E   \r
+001236  aa  116 125 115 102    NUMB\r
+001237  aa  105 122 040 040    ER  \r
+001240  aa  123 111 132 105    SIZE\r
+001241  aa  040 040 040 124       T\r
+001242  aa  117 124 101 114    OTAL\r
+001243  aa  136 070 170 116    ^8xN\r
+001244  aa  117 104 105 040    ODE \r
+001245  aa  124 131 120 105    TYPE\r
+001246  aa  040 040 040 116       N\r
+001247  aa  125 115 102 105    UMBE\r
+001250  aa  122 040 040 123    R  S\r
+001251  aa  111 132 105 040    IZE \r
+001252  aa  040 040 124 117      TO\r
+001253  aa  124 101 114 136    TAL^\r
+001254  aa  070 170 000 000    8x\r
+\r
+001255  aa  124 150 145 040    The \r
+001256  aa  163 157 165 162    sour\r
+001257  aa  143 145 040 163    ce s\r
+001260  aa  145 147 155 145    egme\r
+001261  aa  156 164 040 151    nt i\r
+001262  aa  163 040 164 150    s th\r
+001263  aa  145 040 163 141    e sa\r
+001264  aa  155 145 040 141    me a\r
+001265  aa  163 040 164 150    s th\r
+001266  aa  145 040 157 142    e ob\r
+001267  aa  152 145 143 164    ject\r
+001270  aa  040 163 145 147     seg\r
+001271  aa  155 145 156 164    ment\r
+001272  aa  056 040 111 164    . It\r
+001273  aa  040 150 141 163     has\r
+001274  aa  040 142 145 145     bee\r
+001275  aa  156 040 164 162    n tr\r
+001276  aa  165 156 143 141    unca\r
+001277  aa  164 145 144 056    ted.\r
+001300  aa  040 136 141 000     ^a\r
+\r
+BEGIN PROCEDURE pl1\r
+ENTRY TO pl1                                                STATEMENT 1 ON LINE 113\r
+pl1exl:\r
+v2pl1:\r
+pl1:\r
+     procedure options (variable);\r
+\r
+001301  da     001431240000\r
+001302  aa     001760627000\r
+001303  aa  7 00034 3521 20    epp2    pr7|28,*\r
+001304  aa  2 01045 2721 00    tsp2    pr2|549         ext_entry\r
+001305  aa     000000000000\r
+001306  2s     000210000246\r
+001307  aa   000007 7100 04    tra     7,ic            001316\r
+ENTRY TO v2pl1                                              STATEMENT 1 ON LINE 113\r
+pl1exl:\r
+v2pl1:\r
+pl1:\r
+     procedure options (variable);\r
+\r
+001310  da     001434240000\r
+001311  aa   001760 6270 00    eax7    1008\r
+001312  aa  7 00034 3521 20    epp2    pr7|28,*\r
+001313  aa  2 01045 2721 00    tsp2    pr2|549         ext_entry\r
+001314  aa     000000000000\r
+001315  2s     000210000246\r
+001316  aa   000007 7100 04    tra     7,ic            001325\r
+ENTRY TO pl1exl                                             STATEMENT 1 ON LINE 113\r
+pl1exl:\r
+v2pl1:\r
+pl1:\r
+     procedure options (variable);\r
+\r
+001317  da     001441240000\r
+001320  aa   001760 6270 00    eax7    1008\r
+001321  aa  7 00034 3521 20    epp2    pr7|28,*\r
+001322  aa  2 01045 2721 00    tsp2    pr2|549         ext_entry\r
+001323  aa     000000000000\r
+001324  2s     000210000246\r
+                                               STATEMENT 1 ON LINE 374\r
+       pl1_severity_ = 5;\r
+\r
+001325  aa   000005 2360 07    ldq     5,dl\r
+001326  la  4 00250 7561 20    stq     pr4|168,*               pl1_severity_\r
+                                               STATEMENT 1 ON LINE 376\r
+       call cu_$arg_count (arg_count, code);\r
+\r
+001327  aa  6 00101 3521 00    epp2    pr6|65          arg_count\r
+001330  aa  6 00606 2521 00    spri2   pr6|390\r
+001331  aa  6 00162 3521 00    epp2    pr6|114         code\r
+001332  aa  6 00610 2521 00    spri2   pr6|392\r
+001333  aa  6 00604 6211 00    eax1    pr6|388\r
+001334  aa   010000 4310 07    fld     4096,dl\r
+001335  la  4 00474 3521 20    epp2    pr4|316,*               cu_$arg_count\r
+001336  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 377\r
+       if code ^= 0\r
+       then do;\r
+\r
+001337  aa  6 00162 2361 00    ldq     pr6|114         code\r
+001340  aa   000017 6000 04    tze     15,ic           001357\r
+                                               STATEMENT 1 ON LINE 379\r
+               call com_err_ (code, my_name);\r
+\r
+001341  aa  6 00162 3521 00    epp2    pr6|114         code\r
+001342  aa  6 00614 2521 00    spri2   pr6|396\r
+001343  aa   776652 3520 04    epp2    -598,ic         000215 = 160154061000\r
+001344  aa  6 00616 2521 00    spri2   pr6|398\r
+001345  aa   776724 3520 04    epp2    -556,ic         000271 = 404000000043\r
+001346  aa  6 00620 2521 00    spri2   pr6|400\r
+001347  aa   776721 3520 04    epp2    -559,ic         000270 = 526000000003\r
+001350  aa  6 00622 2521 00    spri2   pr6|402\r
+001351  aa  6 00612 6211 00    eax1    pr6|394\r
+001352  aa   010000 4310 07    fld     4096,dl\r
+001353  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001354  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+001355  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 380\r
+               return;\r
+\r
+001356  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 381\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 383\r
+       if pl1_stat_$compiler_invoked\r
+       then do;\r
+\r
+001357  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001360  la  4 00272 2351 20    lda     pr4|186,*               pl1_stat_$compiler_invoked\r
+001361  aa   000052 6000 04    tze     42,ic           001433\r
+                                               STATEMENT 1 ON LINE 385\r
+               call com_err_ (0, my_name, "The compiler has been invoked with a previous invocation suspended.");\r
+\r
+001362  aa  6 00603 4501 00    stz     pr6|387\r
+001363  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+001364  aa   777627 00 0104    desc9a  -105,68         001212 = 124150145040\r
+001365  aa  6 00624 00 0104    desc9a  pr6|404,68\r
+001366  aa  6 00603 3521 00    epp2    pr6|387\r
+001367  aa  6 00650 2521 00    spri2   pr6|424\r
+001370  aa   776625 3520 04    epp2    -619,ic         000215 = 160154061000\r
+001371  aa  6 00652 2521 00    spri2   pr6|426\r
+001372  aa  6 00624 3521 00    epp2    pr6|404\r
+001373  aa  6 00654 2521 00    spri2   pr6|428\r
+001374  aa   776673 3520 04    epp2    -581,ic         000267 = 404000000005\r
+001375  aa  6 00656 2521 00    spri2   pr6|430\r
+001376  aa   776672 3520 04    epp2    -582,ic         000270 = 526000000003\r
+001377  aa  6 00660 2521 00    spri2   pr6|432\r
+001400  aa   776666 3520 04    epp2    -586,ic         000266 = 524000000103\r
+001401  aa  6 00662 2521 00    spri2   pr6|434\r
+001402  aa  6 00646 6211 00    eax1    pr6|422\r
+001403  aa   014000 4310 07    fld     6144,dl\r
+001404  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+001405  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 386\r
+               call com_err_ (error_table_$translation_failed, my_name,\r
+                    "Attempt to invoke pl1 recursively. Use release first.");\r
+\r
+001406  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+001407  aa   777545 00 0070    desc9a  -155,56         001153 = 101164164145\r
+001410  aa  6 00646 00 0070    desc9a  pr6|422,56\r
+001411  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001412  la  4 00236 3521 20    epp2    pr4|158,*               error_table_$translation_failed\r
+001413  aa  6 00626 2521 00    spri2   pr6|406\r
+001414  aa   776601 3520 04    epp2    -639,ic         000215 = 160154061000\r
+001415  aa  6 00630 2521 00    spri2   pr6|408\r
+001416  aa  6 00646 3521 00    epp2    pr6|422\r
+001417  aa  6 00632 2521 00    spri2   pr6|410\r
+001420  aa   776651 3520 04    epp2    -599,ic         000271 = 404000000043\r
+001421  aa  6 00634 2521 00    spri2   pr6|412\r
+001422  aa   776646 3520 04    epp2    -602,ic         000270 = 526000000003\r
+001423  aa  6 00636 2521 00    spri2   pr6|414\r
+001424  aa   776641 3520 04    epp2    -607,ic         000265 = 524000000065\r
+001425  aa  6 00640 2521 00    spri2   pr6|416\r
+001426  aa  6 00624 6211 00    eax1    pr6|404\r
+001427  aa   014000 4310 07    fld     6144,dl\r
+001430  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+001431  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 388\r
+               return;\r
+\r
+001432  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 389\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 391\r
+       call cpu_time_and_paging_ (npages (0), ncpu (0), pd_faults);\r
+\r
+001433  ia  4 00056 3521 00    epp2    pr4|46          npages\r
+001434  aa  6 00614 2521 00    spri2   pr6|396\r
+001435  ia  4 00036 3521 00    epp2    pr4|30          ncpu\r
+001436  aa  6 00616 2521 00    spri2   pr6|398\r
+001437  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+001440  aa  6 00620 2521 00    spri2   pr6|400\r
+001441  aa  6 00612 6211 00    eax1    pr6|394\r
+001442  aa   014000 4310 07    fld     6144,dl\r
+001443  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+001444  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 393\r
+       do i = 1 to hbound (npages, 1);\r
+\r
+001445  aa   000001 2360 07    ldq     1,dl\r
+001446  aa  6 00166 7561 00    stq     pr6|118         i\r
+001447  aa   000000 0110 03    nop     0,du\r
+001450  aa  6 00166 2361 00    ldq     pr6|118         i\r
+001451  aa   000007 1160 07    cmpq    7,dl\r
+001452  aa   000007 6054 04    tpnz    7,ic            001461\r
+                                               STATEMENT 1 ON LINE 394\r
+            npages (i) = -1;\r
+\r
+001453  aa   000001 3360 07    lcq     1,dl\r
+001454  aa  6 00166 7271 00    lxl7    pr6|118         i\r
+001455  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001456  ia  4 00056 7561 17    stq     pr4|46,7                npages\r
+                                               STATEMENT 1 ON LINE 395\r
+       end;\r
+\r
+001457  aa  6 00166 0541 00    aos     pr6|118         i\r
+001460  aa   777770 7100 04    tra     -8,ic           001450\r
+                                               STATEMENT 1 ON LINE 397\r
+       number_free_segs = 0;\r
+\r
+001461  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001462  ia  4 00066 4501 00    stz     pr4|54          number_free_segs\r
+                                               STATEMENT 1 ON LINE 399\r
+       if error_messages = null\r
+       then begin;\r
+\r
+001463  ia  4 00034 2371 00    ldaq    pr4|28          error_messages\r
+001464  aa   776716 6770 04    eraq    -562,ic         000402 = 077777000043 000001000000\r
+001465  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+001466  aa   000127 6010 04    tnz     87,ic           001615\r
+BEGIN BLOCK  1                                              STATEMENT 1 ON LINE 403\r
+               version = pl1_version$pl1_version;\r
+\r
+001467  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001470  la  4 00424 2361 20    ldq     pr4|276,*               pl1_version$pl1_version\r
+001471  aa   000204 1160 07    cmpq    132,dl\r
+001472  aa   000002 6040 04    tmi     2,ic            001474\r
+001473  aa   000204 2360 07    ldq     132,dl\r
+001474  ia  4 00114 7561 00    stq     pr4|76          version\r
+001475  la  4 00424 3735 20    epp7    pr4|276,*\r
+001476  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+001477  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_version$pl1_version\r
+001500  ia  4 00115 00 0006    desc9a  pr4|77,ql               version\r
+                                               STATEMENT 1 ON LINE 404\r
+               pl1_stat_$user_id = get_group_id_ ();\r
+\r
+001501  aa  6 00664 3521 00    epp2    pr6|436\r
+001502  aa  6 00676 2521 00    spri2   pr6|446\r
+001503  aa  6 00674 6211 00    eax1    pr6|444\r
+001504  aa   004000 4310 07    fld     2048,dl\r
+001505  la  4 00512 3521 20    epp2    pr4|330,*               get_group_id_\r
+001506  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+001507  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001510  la  4 00412 3735 20    epp7    pr4|266,*               pl1_stat_$user_id\r
+001511  aa  000 100 100 500    mlr     (pr),(pr),fill(000)\r
+001512  aa  6 00664 00 0040    desc9a  pr6|436,32\r
+001513  aa  7 00000 00 0040    desc9a  pr7|0,32                pl1_stat_$user_id\r
+                                               STATEMENT 1 ON LINE 406\r
+               if pl1_version$pl1_release = "EXL"\r
+               then error_messages_name = "pl1exl_error_messages_";\r
+\r
+001514  la  4 00422 3715 20    epp5    pr4|274,*\r
+001515  la  4 00422 7271 20    lxl7    pr4|274,*               pl1_version$pl1_release\r
+001516  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+001517  aa  5 00001 00 0017    desc9a  pr5|1,x7                pl1_version$pl1_release\r
+001520  aa   776505 00 0003    desc9a  -699,3          000223 = 105130114000\r
+001521  aa   000005 6010 04    tnz     5,ic            001526\r
+001522  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+001523  aa   777132 00 0026    desc9a  -422,22         000654 = 160154061145\r
+001524  aa  6 00457 00 0040    desc9a  pr6|303,32      error_messages_name\r
+001525  aa   000004 7100 04    tra     4,ic            001531\r
+                                               STATEMENT 1 ON LINE 408\r
+               else error_messages_name = "pl1_error_messages_";\r
+\r
+001526  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+001527  aa   777053 00 0023    desc9a  -469,19         000601 = 160154061137\r
+001530  aa  6 00457 00 0040    desc9a  pr6|303,32      error_messages_name\r
+                                               STATEMENT 1 ON LINE 410\r
+               call hcs_$make_ptr (codeptr (v2pl1), error_messages_name, "", error_messages, code);\r
+\r
+001531  aa   777560 3520 04    epp2    -144,ic         001311 = 001760627000\r
+001532  aa  6 00700 2521 00    spri2   pr6|448\r
+001533  aa  6 00700 3521 00    epp2    pr6|448\r
+001534  aa  6 00706 2521 00    spri2   pr6|454\r
+001535  aa  6 00457 3521 00    epp2    pr6|303         error_messages_name\r
+001536  aa  6 00710 2521 00    spri2   pr6|456\r
+001537  aa  6 00702 3521 00    epp2    pr6|450\r
+001540  aa  6 00712 2521 00    spri2   pr6|458\r
+001541  ia  4 00034 3521 00    epp2    pr4|28          error_messages\r
+001542  aa  6 00714 2521 00    spri2   pr6|460\r
+001543  aa  6 00162 3521 00    epp2    pr6|114         code\r
+001544  aa  6 00716 2521 00    spri2   pr6|462\r
+001545  aa   776447 3520 04    epp2    -729,ic         000214 = 464000000000\r
+001546  aa  6 00720 2521 00    spri2   pr6|464\r
+001547  aa  6 00726 2521 00    spri2   pr6|470\r
+001550  aa   776524 3520 04    epp2    -684,ic         000274 = 526000000040\r
+001551  aa  6 00722 2521 00    spri2   pr6|466\r
+001552  aa   776435 3520 04    epp2    -739,ic         000207 = 524000000000\r
+001553  aa  6 00724 2521 00    spri2   pr6|468\r
+001554  aa   776515 3520 04    epp2    -691,ic         000271 = 404000000043\r
+001555  aa  6 00730 2521 00    spri2   pr6|472\r
+001556  aa  6 00704 6211 00    eax1    pr6|452\r
+001557  aa   024000 4310 07    fld     10240,dl\r
+001560  la  4 00520 3521 20    epp2    pr4|336,*               hcs_$make_ptr\r
+001561  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 411\r
+               if code ^= 0\r
+               then do;\r
+\r
+001562  aa  6 00162 2361 00    ldq     pr6|114         code\r
+001563  aa   000032 6000 04    tze     26,ic           001615\r
+                                               STATEMENT 1 ON LINE 413\r
+                       call com_err_ (code, my_name, "^a", error_messages_name);\r
+\r
+001564  aa   136141 2350 03    lda     48225,du\r
+001565  aa  6 00702 7551 00    sta     pr6|450\r
+001566  aa  6 00162 3521 00    epp2    pr6|114         code\r
+001567  aa  6 00706 2521 00    spri2   pr6|454\r
+001570  aa   776425 3520 04    epp2    -747,ic         000215 = 160154061000\r
+001571  aa  6 00710 2521 00    spri2   pr6|456\r
+001572  aa  6 00702 3521 00    epp2    pr6|450\r
+001573  aa  6 00712 2521 00    spri2   pr6|458\r
+001574  aa  6 00457 3521 00    epp2    pr6|303         error_messages_name\r
+001575  aa  6 00714 2521 00    spri2   pr6|460\r
+001576  aa   776473 3520 04    epp2    -709,ic         000271 = 404000000043\r
+001577  aa  6 00716 2521 00    spri2   pr6|462\r
+001600  aa   776470 3520 04    epp2    -712,ic         000270 = 526000000003\r
+001601  aa  6 00720 2521 00    spri2   pr6|464\r
+001602  aa   776423 3520 04    epp2    -749,ic         000225 = 524000000002\r
+001603  aa  6 00722 2521 00    spri2   pr6|466\r
+001604  aa   776470 3520 04    epp2    -712,ic         000274 = 526000000040\r
+001605  aa  6 00724 2521 00    spri2   pr6|468\r
+001606  aa  6 00704 6211 00    eax1    pr6|452\r
+001607  aa   020000 4310 07    fld     8192,dl\r
+001610  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001611  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+001612  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 414\r
+                       return;\r
+\r
+001613  aa   000000 2360 07    ldq     0,dl\r
+001614  aa  0 00630 7101 00    tra     pr0|408         begin_return_mac\r
+                                               STATEMENT 1 ON LINE 415\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 416\r
+            end;\r
+\r
+  END BLOCK  1\r
+                                               STATEMENT 1 ON LINE 418\r
+       pl1_stat_$error_messages = error_messages;\r
+\r
+001615  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001616  ia  4 00034 3735 20    epp7    pr4|28,*                error_messages\r
+001617  la  4 00306 6535 20    spri7   pr4|198,*               pl1_stat_$error_messages\r
+                                               STATEMENT 1 ON LINE 419\r
+       pl1_stat_$greatest_severity = 5;\r
+\r
+001620  aa   000005 2360 07    ldq     5,dl\r
+001621  la  4 00314 7561 20    stq     pr4|204,*               pl1_stat_$greatest_severity\r
+                                               STATEMENT 1 ON LINE 420\r
+       pl1_stat_$compiler_name = my_name;\r
+\r
+001622  aa   776373 2350 04    lda     -773,ic         000215 = 160154061000\r
+001623  la  4 00274 3735 20    epp7    pr4|188,*\r
+001624  aa  7 00001 7551 00    sta     pr7|1           pl1_stat_$compiler_name\r
+001625  aa   000003 2360 07    ldq     3,dl\r
+001626  la  4 00274 7561 20    stq     pr4|188,*               pl1_stat_$compiler_name\r
+                                               STATEMENT 1 ON LINE 421\r
+       pl1_stat_$use_old_area = "0"b;\r
+\r
+001627  la  4 00410 4501 20    stz     pr4|264,*               pl1_stat_$use_old_area\r
+                                               STATEMENT 1 ON LINE 423\r
+       do i = 1 to pl1_stat_$max_node_type;\r
+\r
+001630  la  4 00332 2361 20    ldq     pr4|218,*               pl1_stat_$max_node_type\r
+001631  aa  6 00454 7561 00    stq     pr6|300\r
+001632  aa   000001 2360 07    ldq     1,dl\r
+001633  aa  6 00166 7561 00    stq     pr6|118         i\r
+001634  aa  6 00166 2361 00    ldq     pr6|118         i\r
+001635  aa  6 00454 1161 00    cmpq    pr6|300\r
+001636  aa   000006 6054 04    tpnz    6,ic            001644\r
+                                               STATEMENT 1 ON LINE 424\r
+            pl1_stat_$node_uses (i) = 0;\r
+\r
+001637  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001640  la  4 00342 3735 20    epp7    pr4|226,*\r
+001641  aa  7 77777 4501 06    stz     pr7|-1,ql               pl1_stat_$node_uses\r
+                                               STATEMENT 1 ON LINE 425\r
+       end;\r
+\r
+001642  aa  6 00166 0541 00    aos     pr6|118         i\r
+001643  aa   777771 7100 04    tra     -7,ic           001634\r
+                                               STATEMENT 1 ON LINE 427\r
+       pl1_stat_$abort_label = abort_return;\r
+\r
+001644  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001645  la  4 00252 3735 20    epp7    pr4|170,*               pl1_stat_$abort_label\r
+001646  aa   004641 3520 04    epp2    2465,ic         006507 = 600757450100\r
+001647  aa  7 00000 2521 00    spri2   pr7|0           pl1_stat_$abort_label\r
+001650  aa  7 00002 6521 00    spri6   pr7|2           pl1_stat_$abort_label\r
+                                               STATEMENT 1 ON LINE 429\r
+       in_cg, called_cg, translation_failed, pl1_stat_$generate_symtab, pl1_stat_$last_statement_id,\r
+            pl1_stat_$new_fortran_option, pl1_stat_$unaligned_dec, pl1_stat_$options_packed_dec, cg_static_$support,\r
+            cg_static_$in_prologue, cg_static_$in_thunk = "0"b;\r
+\r
+001651  aa  6 00167 4501 00    stz     pr6|119         in_cg\r
+001652  aa  6 00157 4501 00    stz     pr6|111         called_cg\r
+001653  aa  6 00357 4501 00    stz     pr6|239         translation_failed\r
+001654  la  4 00312 4501 20    stz     pr4|202,*               pl1_stat_$generate_symtab\r
+001655  la  4 00320 4501 20    stz     pr4|208,*               pl1_stat_$last_statement_id\r
+001656  la  4 00334 4501 20    stz     pr4|220,*               pl1_stat_$new_fortran_option\r
+001657  la  4 00406 4501 20    stz     pr4|262,*               pl1_stat_$unaligned_dec\r
+001660  la  4 00352 4501 20    stz     pr4|234,*               pl1_stat_$options_packed_dec\r
+001661  la  4 00226 4501 20    stz     pr4|150,*               cg_static_$support\r
+001662  la  4 00214 4501 20    stz     pr4|140,*               cg_static_$in_prologue\r
+001663  la  4 00216 4501 20    stz     pr4|142,*               cg_static_$in_thunk\r
+                                               STATEMENT 1 ON LINE 433\r
+       pl1_stat_$error_width = get_line_length_$switch (null, code);\r
+\r
+001664  aa   776516 3714 24    epp5    -690,ic*\r
+001665  aa  6 00732 6515 00    spri5   pr6|474\r
+001666  aa  6 00732 3521 00    epp2    pr6|474\r
+001667  aa  6 00614 2521 00    spri2   pr6|396\r
+001670  aa  6 00162 3521 00    epp2    pr6|114         code\r
+001671  aa  6 00616 2521 00    spri2   pr6|398\r
+001672  la  4 00310 3521 20    epp2    pr4|200,*               pl1_stat_$error_width\r
+001673  aa  6 00620 2521 00    spri2   pr6|400\r
+001674  aa  6 00612 6211 00    eax1    pr6|394\r
+001675  aa   014000 4310 07    fld     6144,dl\r
+001676  la  4 00510 3521 20    epp2    pr4|328,*               get_line_length_$switch\r
+001677  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 435\r
+       pl1_stat_$validate_proc, pl1_stat_$constant_list, pl1_stat_$ok_list, pl1_stat_$dummy_block,\r
+            pl1_stat_$defined_list, pl1_stat_$by_name_free_list, pl1_stat_$by_name_parts_free_list,\r
+            pl1_stat_$by_name_parts_tree, pl1_stat_$by_name_ref_list, pl1_stat_$temporary_list = null;\r
+\r
+001700  aa   776502 3734 24    epp7    -702,ic*\r
+001701  aa  6 00044 3701 20    epp4    pr6|36,*\r
+001702  la  4 00414 6535 20    spri7   pr4|268,*               pl1_stat_$validate_proc\r
+001703  la  4 00276 6535 20    spri7   pr4|190,*               pl1_stat_$constant_list\r
+001704  la  4 00344 6535 20    spri7   pr4|228,*               pl1_stat_$ok_list\r
+001705  la  4 00304 6535 20    spri7   pr4|196,*               pl1_stat_$dummy_block\r
+001706  la  4 00302 6535 20    spri7   pr4|194,*               pl1_stat_$defined_list\r
+001707  la  4 00256 6535 20    spri7   pr4|174,*               pl1_stat_$by_name_free_list\r
+001710  la  4 00260 6535 20    spri7   pr4|176,*               pl1_stat_$by_name_parts_free_list\r
+001711  la  4 00262 6535 20    spri7   pr4|178,*               pl1_stat_$by_name_parts_tree\r
+001712  la  4 00264 6535 20    spri7   pr4|180,*               pl1_stat_$by_name_ref_list\r
+001713  la  4 00402 6535 20    spri7   pr4|258,*               pl1_stat_$temporary_list\r
+                                               STATEMENT 1 ON LINE 439\r
+       pl1_stat_$profile_length, pl1_stat_$index = 0;\r
+\r
+001714  la  4 00364 4501 20    stz     pr4|244,*               pl1_stat_$profile_length\r
+001715  la  4 00316 4501 20    stz     pr4|206,*               pl1_stat_$index\r
+                                               STATEMENT 1 ON LINE 441\r
+       pl1_stat_$stop_id, cg_static_$stop_id = (27)"1"b;\r
+\r
+001716  aa   010641 2350 04    lda     4513,ic         012557 = 777777777000\r
+001717  la  4 00376 7551 20    sta     pr4|254,*               pl1_stat_$stop_id\r
+001720  la  4 00224 7551 20    sta     pr4|148,*               cg_static_$stop_id\r
+                                               STATEMENT 1 ON LINE 443\r
+       pl1_stat_$version = pl1_version;\r
+\r
+001721  aa   000005 2360 07    ldq     5,dl\r
+001722  la  4 00416 7561 20    stq     pr4|270,*               pl1_stat_$version\r
+                                               STATEMENT 1 ON LINE 447\r
+       ca = ""b;\r
+\r
+001723  aa  6 00114 4501 00    stz     pr6|76          ca.no_optimize\r
+001724  aa  6 00115 4501 00    stz     pr6|77          ca.optimize\r
+001725  aa  6 00116 4501 00    stz     pr6|78          ca.no_table\r
+001726  aa  6 00117 4501 00    stz     pr6|79          ca.brief_table\r
+001727  aa  6 00120 4501 00    stz     pr6|80          ca.table\r
+001730  aa  6 00121 4501 00    stz     pr6|81          ca.no_check\r
+001731  aa  6 00122 4501 00    stz     pr6|82          ca.check\r
+001732  aa  6 00123 4501 00    stz     pr6|83          ca.no_list\r
+001733  aa  6 00124 4501 00    stz     pr6|84          ca.source\r
+001734  aa  6 00125 4501 00    stz     pr6|85          ca.symbols\r
+001735  aa  6 00126 4501 00    stz     pr6|86          ca.map\r
+001736  aa  6 00127 4501 00    stz     pr6|87          ca.list\r
+001737  aa  6 00130 4501 00    stz     pr6|88          ca.single_symbol_list\r
+001740  aa  6 00131 4501 00    stz     pr6|89          ca.brief\r
+001741  aa  6 00132 4501 00    stz     pr6|90          ca.long\r
+001742  aa  6 00133 4501 00    stz     pr6|91          ca.severity\r
+001743  aa  6 00134 4501 00    stz     pr6|92          ca.no_profile\r
+001744  aa  6 00135 4501 00    stz     pr6|93          ca.profile\r
+001745  aa  6 00136 4501 00    stz     pr6|94          ca.long_profile\r
+001746  aa  6 00137 4501 00    stz     pr6|95          ca.no_separate_static\r
+001747  aa  6 00140 4501 00    stz     pr6|96          ca.separate_static\r
+001750  aa  6 00141 4501 00    stz     pr6|97          ca.no_check_ansi\r
+001751  aa  6 00142 4501 00    stz     pr6|98          ca.check_ansi\r
+001752  aa  6 00143 4501 00    stz     pr6|99          ca.no_time\r
+001753  aa  6 00144 4501 00    stz     pr6|100         ca.time\r
+001754  aa  6 00145 4501 00    stz     pr6|101         ca.no_debug\r
+001755  aa  6 00146 4501 00    stz     pr6|102         ca.debug\r
+001756  aa  6 00147 4501 00    stz     pr6|103         ca.debug_semant\r
+001757  aa  6 00150 4501 00    stz     pr6|104         ca.debug_cg\r
+001760  aa  6 00151 4501 00    stz     pr6|105         ca.no_cpdcls\r
+001761  aa  6 00152 4501 00    stz     pr6|106         ca.cpdcls\r
+001762  aa  6 00153 4501 00    stz     pr6|107         ca.no_link\r
+001763  aa  6 00154 4501 00    stz     pr6|108         ca.link\r
+001764  aa  6 00155 4501 00    stz     pr6|109         ca.prefix\r
+001765  aa  6 00156 4501 00    stz     pr6|110         ca.no_version\r
+                                               STATEMENT 1 ON LINE 448\r
+       argument_no = 0;\r
+\r
+001766  aa  6 00100 4501 00    stz     pr6|64          argument_no\r
+                                               STATEMENT 1 ON LINE 449\r
+       do i = 1 to arg_count;\r
+\r
+001767  aa  6 00101 2361 00    ldq     pr6|65          arg_count\r
+001770  aa  6 00455 7561 00    stq     pr6|301\r
+001771  aa   000001 2360 07    ldq     1,dl\r
+001772  aa  6 00166 7561 00    stq     pr6|118         i\r
+001773  aa   000000 0110 03    nop     0,du\r
+001774  aa  6 00166 2361 00    ldq     pr6|118         i\r
+001775  aa  6 00455 1161 00    cmpq    pr6|301\r
+001776  aa   001307 6054 04    tpnz    711,ic          003305\r
+                                               STATEMENT 1 ON LINE 450\r
+            call cu_$arg_ptr (i, arg_ptr, arg_length, code);\r
+\r
+001777  aa  6 00166 3521 00    epp2    pr6|118         i\r
+002000  aa  6 00614 2521 00    spri2   pr6|396\r
+002001  aa  6 00104 3521 00    epp2    pr6|68          arg_ptr\r
+002002  aa  6 00616 2521 00    spri2   pr6|398\r
+002003  aa  6 00102 3521 00    epp2    pr6|66          arg_length\r
+002004  aa  6 00620 2521 00    spri2   pr6|400\r
+002005  aa  6 00162 3521 00    epp2    pr6|114         code\r
+002006  aa  6 00622 2521 00    spri2   pr6|402\r
+002007  aa  6 00612 6211 00    eax1    pr6|394\r
+002010  aa   020000 4310 07    fld     8192,dl\r
+002011  aa  6 00044 3701 20    epp4    pr6|36,*\r
+002012  la  4 00476 3521 20    epp2    pr4|318,*               cu_$arg_ptr\r
+002013  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 451\r
+            if code ^= 0\r
+            then do;\r
+\r
+002014  aa  6 00162 2361 00    ldq     pr6|114         code\r
+002015  aa   000033 6000 04    tze     27,ic           002050\r
+                                               STATEMENT 1 ON LINE 453\r
+                    call com_err_ (code, my_name, "Argument ^d.", i);\r
+\r
+002016  aa   776464 2370 04    ldaq    -716,ic         000502 = 101162147165 155145156164\r
+002017  aa  6 00604 7571 00    staq    pr6|388\r
+002020  aa   776464 2350 04    lda     -716,ic         000504 = 040136144056\r
+002021  aa  6 00606 7551 00    sta     pr6|390\r
+002022  aa  6 00162 3521 00    epp2    pr6|114         code\r
+002023  aa  6 00736 2521 00    spri2   pr6|478\r
+002024  aa   776171 3520 04    epp2    -903,ic         000215 = 160154061000\r
+002025  aa  6 00740 2521 00    spri2   pr6|480\r
+002026  aa  6 00604 3521 00    epp2    pr6|388\r
+002027  aa  6 00742 2521 00    spri2   pr6|482\r
+002030  aa  6 00166 3521 00    epp2    pr6|118         i\r
+002031  aa  6 00744 2521 00    spri2   pr6|484\r
+002032  aa   776237 3520 04    epp2    -865,ic         000271 = 404000000043\r
+002033  aa  6 00746 2521 00    spri2   pr6|486\r
+002034  aa   776234 3520 04    epp2    -868,ic         000270 = 526000000003\r
+002035  aa  6 00750 2521 00    spri2   pr6|488\r
+002036  aa   776226 3520 04    epp2    -874,ic         000264 = 524000000014\r
+002037  aa  6 00752 2521 00    spri2   pr6|490\r
+002040  aa   776235 3520 04    epp2    -867,ic         000275 = 404000000021\r
+002041  aa  6 00754 2521 00    spri2   pr6|492\r
+002042  aa  6 00734 6211 00    eax1    pr6|476\r
+002043  aa   020000 4310 07    fld     8192,dl\r
+002044  aa  6 00044 3701 20    epp4    pr6|36,*\r
+002045  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+002046  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 454\r
+                    return;\r
+\r
+002047  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 455\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 457\r
+            if index (arg_string, "-") = 1\r
+            then if arg_string = "-no_optimize" | arg_string = "-not"\r
+               then do;\r
+\r
+002050  aa  6 00104 3735 20    epp7    pr6|68,*                arg_ptr\r
+002051  aa  6 00102 2351 00    lda     pr6|66          arg_length\r
+002052  aa  000 003 124 540    scm     (pr,rl),(du),mask(000)\r
+002053  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+002054  aa   055000 00 0001    desc9a  23040,1\r
+002055  aa  6 00056 0001 00    arg     pr6|46\r
+002056  aa  6 00056 2361 00    ldq     pr6|46\r
+002057  aa   000002 6070 04    ttf     2,ic            002061\r
+002060  aa   000001 3360 07    lcq     1,dl\r
+002061  aa   000001 0760 07    adq     1,dl\r
+002062  aa   000001 1160 07    cmpq    1,dl\r
+002063  aa   001211 6010 04    tnz     649,ic          003274\r
+002064  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002065  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+002066  aa   776177 00 0004    desc9a  -897,4          000263 = 055156157164\r
+002067  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002070  aa  6 00603 7551 00    sta     pr6|387\r
+002071  aa  6 00102 2361 00    ldq     pr6|66          arg_length\r
+002072  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002073  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002074  aa   776405 00 0014    desc9a  -763,12         000477 = 055156157137\r
+002075  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002076  aa  6 00603 2751 00    ora     pr6|387\r
+002077  aa   000005 6000 04    tze     5,ic            002104\r
+                                               STATEMENT 1 ON LINE 460\r
+                       ca.no_optimize = "1"b;\r
+\r
+002100  aa   400000 2350 03    lda     131072,du\r
+002101  aa  6 00114 7551 00    sta     pr6|76          ca.no_optimize\r
+                                               STATEMENT 1 ON LINE 461\r
+                       ca.optimize = "0"b;\r
+\r
+002102  aa  6 00115 4501 00    stz     pr6|77          ca.optimize\r
+                                               STATEMENT 1 ON LINE 462\r
+                    end;\r
+\r
+002103  aa   001170 7100 04    tra     632,ic          003273\r
+                                               STATEMENT 1 ON LINE 464\r
+               else if arg_string = "-optimize" | arg_string = "-ot"\r
+               then do;\r
+\r
+002104  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002105  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002106  aa   776156 00 0003    desc9a  -914,3          000262 = 055157164000\r
+002107  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002110  aa  6 00603 7551 00    sta     pr6|387\r
+002111  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002112  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002113  aa   776363 00 0011    desc9a  -781,9          000474 = 055157160164\r
+002114  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002115  aa  6 00603 2751 00    ora     pr6|387\r
+002116  aa   000005 6000 04    tze     5,ic            002123\r
+                                               STATEMENT 1 ON LINE 466\r
+                       ca.no_optimize = "0"b;\r
+\r
+002117  aa  6 00114 4501 00    stz     pr6|76          ca.no_optimize\r
+                                               STATEMENT 1 ON LINE 467\r
+                       ca.optimize = "1"b;\r
+\r
+002120  aa   400000 2350 03    lda     131072,du\r
+002121  aa  6 00115 7551 00    sta     pr6|77          ca.optimize\r
+                                               STATEMENT 1 ON LINE 468\r
+                    end;\r
+\r
+002122  aa   001151 7100 04    tra     617,ic          003273\r
+                                               STATEMENT 1 ON LINE 470\r
+               else if arg_string = "-no_table" | arg_string = "-ntb"\r
+               then do;\r
+\r
+002123  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002124  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002125  aa   776136 00 0004    desc9a  -930,4          000261 = 055156164142\r
+002126  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002127  aa  6 00603 7551 00    sta     pr6|387\r
+002130  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002131  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002132  aa   776341 00 0011    desc9a  -799,9          000471 = 055156157137\r
+002133  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002134  aa  6 00603 2751 00    ora     pr6|387\r
+002135  aa   000006 6000 04    tze     6,ic            002143\r
+                                               STATEMENT 1 ON LINE 472\r
+                       ca.no_table = "1"b;\r
+\r
+002136  aa   400000 2350 03    lda     131072,du\r
+002137  aa  6 00116 7551 00    sta     pr6|78          ca.no_table\r
+                                               STATEMENT 1 ON LINE 473\r
+                       ca.brief_table = "0"b;\r
+\r
+002140  aa  6 00117 4501 00    stz     pr6|79          ca.brief_table\r
+                                               STATEMENT 1 ON LINE 474\r
+                       ca.table = "0"b;\r
+\r
+002141  aa  6 00120 4501 00    stz     pr6|80          ca.table\r
+                                               STATEMENT 1 ON LINE 475\r
+                    end;\r
+\r
+002142  aa   001131 7100 04    tra     601,ic          003273\r
+                                               STATEMENT 1 ON LINE 477\r
+               else if arg_string = "-brief_table " | arg_string = "-bftb"\r
+               then do;\r
+\r
+002143  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002144  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002145  aa   776235 00 0005    desc9a  -867,5          000400 = 055142146164\r
+002146  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002147  aa  6 00603 7551 00    sta     pr6|387\r
+002150  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002151  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002152  aa   776414 00 0015    desc9a  -756,13         000564 = 055142162151\r
+002153  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002154  aa  6 00603 2751 00    ora     pr6|387\r
+002155  aa   000006 6000 04    tze     6,ic            002163\r
+                                               STATEMENT 1 ON LINE 479\r
+                       ca.no_table = "0"b;\r
+\r
+002156  aa  6 00116 4501 00    stz     pr6|78          ca.no_table\r
+                                               STATEMENT 1 ON LINE 480\r
+                       ca.brief_table = "1"b;\r
+\r
+002157  aa   400000 2350 03    lda     131072,du\r
+002160  aa  6 00117 7551 00    sta     pr6|79          ca.brief_table\r
+                                               STATEMENT 1 ON LINE 481\r
+                       ca.table = "0"b;\r
+\r
+002161  aa  6 00120 4501 00    stz     pr6|80          ca.table\r
+                                               STATEMENT 1 ON LINE 482\r
+                    end;\r
+\r
+002162  aa   001111 7100 04    tra     585,ic          003273\r
+                                               STATEMENT 1 ON LINE 484\r
+               else if arg_string = "-table" | arg_string = "-tb"\r
+               then do;\r
+\r
+002163  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002164  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002165  aa   776075 00 0003    desc9a  -963,3          000260 = 055164142000\r
+002166  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002167  aa  6 00603 7551 00    sta     pr6|387\r
+002170  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002171  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002172  aa   776206 00 0006    desc9a  -890,6          000376 = 055164141142\r
+002173  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002174  aa  6 00603 2751 00    ora     pr6|387\r
+002175  aa   000006 6000 04    tze     6,ic            002203\r
+                                               STATEMENT 1 ON LINE 486\r
+                       ca.no_table = "0"b;\r
+\r
+002176  aa  6 00116 4501 00    stz     pr6|78          ca.no_table\r
+                                               STATEMENT 1 ON LINE 487\r
+                       ca.brief_table = "0"b;\r
+\r
+002177  aa  6 00117 4501 00    stz     pr6|79          ca.brief_table\r
+                                               STATEMENT 1 ON LINE 488\r
+                       ca.table = "1"b;\r
+\r
+002200  aa   400000 2350 03    lda     131072,du\r
+002201  aa  6 00120 7551 00    sta     pr6|80          ca.table\r
+                                               STATEMENT 1 ON LINE 489\r
+                    end;\r
+\r
+002202  aa   001071 7100 04    tra     569,ic          003273\r
+                                               STATEMENT 1 ON LINE 491\r
+               else if arg_string = "-no_check" | arg_string = "-nck"\r
+               then do;\r
+\r
+002203  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002204  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002205  aa   776054 00 0004    desc9a  -980,4          000257 = 055156143153\r
+002206  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002207  aa  6 00603 7551 00    sta     pr6|387\r
+002210  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002211  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002212  aa   776256 00 0011    desc9a  -850,9          000466 = 055156157137\r
+002213  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002214  aa  6 00603 2751 00    ora     pr6|387\r
+002215  aa   000005 6000 04    tze     5,ic            002222\r
+                                               STATEMENT 1 ON LINE 493\r
+                       ca.no_check = "1"b;\r
+\r
+002216  aa   400000 2350 03    lda     131072,du\r
+002217  aa  6 00121 7551 00    sta     pr6|81          ca.no_check\r
+                                               STATEMENT 1 ON LINE 494\r
+                       ca.check = "0"b;\r
+\r
+002220  aa  6 00122 4501 00    stz     pr6|82          ca.check\r
+                                               STATEMENT 1 ON LINE 495\r
+                    end;\r
+\r
+002221  aa   001052 7100 04    tra     554,ic          003273\r
+                                               STATEMENT 1 ON LINE 497\r
+               else if arg_string = "-check" | arg_string = "-ck"\r
+               then do;\r
+\r
+002222  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002223  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002224  aa   776034 00 0003    desc9a  -996,3          000256 = 055143153000\r
+002225  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002226  aa  6 00603 7551 00    sta     pr6|387\r
+002227  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002230  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002231  aa   776145 00 0006    desc9a  -923,6          000374 = 055143150145\r
+002232  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002233  aa  6 00603 2751 00    ora     pr6|387\r
+002234  aa   000005 6000 04    tze     5,ic            002241\r
+                                               STATEMENT 1 ON LINE 499\r
+                       ca.no_check = "0"b;\r
+\r
+002235  aa  6 00121 4501 00    stz     pr6|81          ca.no_check\r
+                                               STATEMENT 1 ON LINE 500\r
+                       ca.check = "1"b;\r
+\r
+002236  aa   400000 2350 03    lda     131072,du\r
+002237  aa  6 00122 7551 00    sta     pr6|82          ca.check\r
+                                               STATEMENT 1 ON LINE 501\r
+                    end;\r
+\r
+002240  aa   001033 7100 04    tra     539,ic          003273\r
+                                               STATEMENT 1 ON LINE 503\r
+               else if arg_string = "-no_list" | arg_string = "-nls"\r
+               then do;\r
+\r
+002241  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002242  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002243  aa   776014 00 0004    desc9a  -1012,4         000255 = 055156154163\r
+002244  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002245  aa  6 00603 7551 00    sta     pr6|387\r
+002246  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002247  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002250  aa   776124 00 0010    desc9a  -940,8          000372 = 055156157137\r
+002251  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002252  aa  6 00603 2751 00    ora     pr6|387\r
+002253  aa   000011 6000 04    tze     9,ic            002264\r
+                                               STATEMENT 1 ON LINE 505\r
+                       ca.no_list = "1"b;\r
+\r
+002254  aa   400000 2350 03    lda     131072,du\r
+002255  aa  6 00123 7551 00    sta     pr6|83          ca.no_list\r
+                                               STATEMENT 1 ON LINE 506\r
+                       ca.source = "0"b;\r
+\r
+002256  aa  6 00124 4501 00    stz     pr6|84          ca.source\r
+                                               STATEMENT 1 ON LINE 507\r
+                       ca.symbols = "0"b;\r
+\r
+002257  aa  6 00125 4501 00    stz     pr6|85          ca.symbols\r
+                                               STATEMENT 1 ON LINE 508\r
+                       ca.map = "0"b;\r
+\r
+002260  aa  6 00126 4501 00    stz     pr6|86          ca.map\r
+                                               STATEMENT 1 ON LINE 509\r
+                       ca.list = "0"b;\r
+\r
+002261  aa  6 00127 4501 00    stz     pr6|87          ca.list\r
+                                               STATEMENT 1 ON LINE 510\r
+                       ca.single_symbol_list = "0"b;\r
+\r
+002262  aa  6 00130 4501 00    stz     pr6|88          ca.single_symbol_list\r
+                                               STATEMENT 1 ON LINE 511\r
+                    end;\r
+\r
+002263  aa   001010 7100 04    tra     520,ic          003273\r
+                                               STATEMENT 1 ON LINE 513\r
+               else if arg_string = "-source" | arg_string = "-sc"\r
+               then do;\r
+\r
+002264  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002265  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002266  aa   775770 00 0003    desc9a  -1032,3         000254 = 055163143000\r
+002267  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002270  aa  6 00603 7551 00    sta     pr6|387\r
+002271  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002272  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002273  aa   776077 00 0007    desc9a  -961,7          000370 = 055163157165\r
+002274  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002275  aa  6 00603 2751 00    ora     pr6|387\r
+002276  aa   000005 6000 04    tze     5,ic            002303\r
+                                               STATEMENT 1 ON LINE 515\r
+                       ca.no_list = "0"b;\r
+\r
+002277  aa  6 00123 4501 00    stz     pr6|83          ca.no_list\r
+                                               STATEMENT 1 ON LINE 516\r
+                       ca.source = "1"b;\r
+\r
+002300  aa   400000 2350 03    lda     131072,du\r
+002301  aa  6 00124 7551 00    sta     pr6|84          ca.source\r
+                                               STATEMENT 1 ON LINE 517\r
+                    end;\r
+\r
+002302  aa   000771 7100 04    tra     505,ic          003273\r
+                                               STATEMENT 1 ON LINE 519\r
+               else if arg_string = "-symbols" | arg_string = "-sb"\r
+               then do;\r
+\r
+002303  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002304  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002305  aa   775750 00 0003    desc9a  -1048,3         000253 = 055163142000\r
+002306  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002307  aa  6 00603 7551 00    sta     pr6|387\r
+002310  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002311  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002312  aa   776056 00 0010    desc9a  -978,8          000366 = 055163171155\r
+002313  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002314  aa  6 00603 2751 00    ora     pr6|387\r
+002315  aa   000005 6000 04    tze     5,ic            002322\r
+                                               STATEMENT 1 ON LINE 521\r
+                       ca.no_list = "0"b;\r
+\r
+002316  aa  6 00123 4501 00    stz     pr6|83          ca.no_list\r
+                                               STATEMENT 1 ON LINE 522\r
+                       ca.symbols = "1"b;\r
+\r
+002317  aa   400000 2350 03    lda     131072,du\r
+002320  aa  6 00125 7551 00    sta     pr6|85          ca.symbols\r
+                                               STATEMENT 1 ON LINE 523\r
+                    end;\r
+\r
+002321  aa   000752 7100 04    tra     490,ic          003273\r
+                                               STATEMENT 1 ON LINE 525\r
+               else if arg_string = "-map"\r
+               then do;\r
+\r
+002322  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002323  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002324  aa   775730 00 0004    desc9a  -1064,4         000252 = 055155141160\r
+002325  aa   000005 6010 04    tnz     5,ic            002332\r
+                                               STATEMENT 1 ON LINE 527\r
+                       ca.no_list = "0"b;\r
+\r
+002326  aa  6 00123 4501 00    stz     pr6|83          ca.no_list\r
+                                               STATEMENT 1 ON LINE 528\r
+                       ca.map = "1"b;\r
+\r
+002327  aa   400000 2350 03    lda     131072,du\r
+002330  aa  6 00126 7551 00    sta     pr6|86          ca.map\r
+                                               STATEMENT 1 ON LINE 529\r
+                    end;\r
+\r
+002331  aa   000742 7100 04    tra     482,ic          003273\r
+                                               STATEMENT 1 ON LINE 531\r
+               else if arg_string = "-list" | arg_string = "-ls"\r
+               then do;\r
+\r
+002332  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002333  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002334  aa   775717 00 0003    desc9a  -1073,3         000251 = 055154163000\r
+002335  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002336  aa  6 00603 7551 00    sta     pr6|387\r
+002337  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002340  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002341  aa   776025 00 0005    desc9a  -1003,5         000364 = 055154151163\r
+002342  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002343  aa  6 00603 2751 00    ora     pr6|387\r
+002344  aa   000005 6000 04    tze     5,ic            002351\r
+                                               STATEMENT 1 ON LINE 533\r
+                       ca.no_list = "0"b;\r
+\r
+002345  aa  6 00123 4501 00    stz     pr6|83          ca.no_list\r
+                                               STATEMENT 1 ON LINE 534\r
+                       ca.list = "1"b;\r
+\r
+002346  aa   400000 2350 03    lda     131072,du\r
+002347  aa  6 00127 7551 00    sta     pr6|87          ca.list\r
+                                               STATEMENT 1 ON LINE 535\r
+                    end;\r
+\r
+002350  aa   000723 7100 04    tra     467,ic          003273\r
+                                               STATEMENT 1 ON LINE 537\r
+               else if arg_string = "-single_symbol_list" | arg_string = "-ssl"\r
+               then do;\r
+\r
+002351  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002352  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002353  aa   775677 00 0004    desc9a  -1089,4         000250 = 055163163154\r
+002354  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002355  aa  6 00603 7551 00    sta     pr6|387\r
+002356  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002357  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002360  aa   776247 00 0023    desc9a  -857,19         000625 = 055163151156\r
+002361  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002362  aa  6 00603 2751 00    ora     pr6|387\r
+002363  aa   000005 6000 04    tze     5,ic            002370\r
+                                               STATEMENT 1 ON LINE 539\r
+                       ca.no_list = "0"b;\r
+\r
+002364  aa  6 00123 4501 00    stz     pr6|83          ca.no_list\r
+                                               STATEMENT 1 ON LINE 540\r
+                       ca.single_symbol_list = "1"b;\r
+\r
+002365  aa   400000 2350 03    lda     131072,du\r
+002366  aa  6 00130 7551 00    sta     pr6|88          ca.single_symbol_list\r
+                                               STATEMENT 1 ON LINE 541\r
+                    end;\r
+\r
+002367  aa   000704 7100 04    tra     452,ic          003273\r
+                                               STATEMENT 1 ON LINE 543\r
+               else if arg_string = "-brief" | arg_string = "-bf"\r
+               then do;\r
+\r
+002370  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002371  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002372  aa   775657 00 0003    desc9a  -1105,3         000247 = 055142146000\r
+002373  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002374  aa  6 00603 7551 00    sta     pr6|387\r
+002375  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002376  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002377  aa   775765 00 0006    desc9a  -1035,6         000362 = 055142162151\r
+002400  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002401  aa  6 00603 2751 00    ora     pr6|387\r
+002402  aa   000005 6000 04    tze     5,ic            002407\r
+                                               STATEMENT 1 ON LINE 545\r
+                       ca.brief = "1"b;\r
+\r
+002403  aa   400000 2350 03    lda     131072,du\r
+002404  aa  6 00131 7551 00    sta     pr6|89          ca.brief\r
+                                               STATEMENT 1 ON LINE 546\r
+                       ca.long = "0"b;\r
+\r
+002405  aa  6 00132 4501 00    stz     pr6|90          ca.long\r
+                                               STATEMENT 1 ON LINE 547\r
+                    end;\r
+\r
+002406  aa   000665 7100 04    tra     437,ic          003273\r
+                                               STATEMENT 1 ON LINE 549\r
+               else if arg_string = "-long" | arg_string = "-lg"\r
+               then do;\r
+\r
+002407  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002410  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002411  aa   775637 00 0003    desc9a  -1121,3         000246 = 055154147000\r
+002412  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002413  aa  6 00603 7551 00    sta     pr6|387\r
+002414  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002415  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002416  aa   775744 00 0005    desc9a  -1052,5         000360 = 055154157156\r
+002417  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002420  aa  6 00603 2751 00    ora     pr6|387\r
+002421  aa   000005 6000 04    tze     5,ic            002426\r
+                                               STATEMENT 1 ON LINE 551\r
+                       ca.brief = "0"b;\r
+\r
+002422  aa  6 00131 4501 00    stz     pr6|89          ca.brief\r
+                                               STATEMENT 1 ON LINE 552\r
+                       ca.long = "1"b;\r
+\r
+002423  aa   400000 2350 03    lda     131072,du\r
+002424  aa  6 00132 7551 00    sta     pr6|90          ca.long\r
+                                               STATEMENT 1 ON LINE 553\r
+                    end;\r
+\r
+002425  aa   000646 7100 04    tra     422,ic          003273\r
+                                               STATEMENT 1 ON LINE 555\r
+               else if index (arg_string, "-severity") = 1\r
+               then if ^parse_severity (arg_string, "-severity")\r
+                    then return;\r
+\r
+002426  aa  7 00000 3521 00    epp2    pr7|0           arg_string\r
+002427  aa  0 01227 7001 00    tsx0    pr0|663         set_chars_eis\r
+002430  aa   000011 2360 07    ldq     9,dl\r
+002431  aa   776032 3520 04    epp2    -998,ic         000463 = 055163145166\r
+002432  aa  0 01231 7001 00    tsx0    pr0|665         index_chars_eis\r
+002433  aa   000001 1160 07    cmpq    1,dl\r
+002434  aa   000035 6010 04    tnz     29,ic           002471\r
+002435  aa  6 00102 2361 00    ldq     pr6|66          arg_length\r
+002436  aa   526000 2760 03    orq     175104,du\r
+002437  aa  6 00603 7561 00    stq     pr6|387\r
+002440  aa  2 00000 2351 00    lda     pr2|0\r
+002441  aa  2 00001 2361 00    ldq     pr2|1\r
+002442  aa  6 00604 7571 00    staq    pr6|388\r
+002443  aa  2 00002 2351 00    lda     pr2|2\r
+002444  aa  6 00606 7551 00    sta     pr6|390\r
+002445  aa  7 00000 3521 00    epp2    pr7|0           arg_string\r
+002446  aa  6 00626 2521 00    spri2   pr6|406\r
+002447  aa  6 00604 3521 00    epp2    pr6|388\r
+002450  aa  6 00630 2521 00    spri2   pr6|408\r
+002451  aa  6 00645 3521 00    epp2    pr6|421\r
+002452  aa  6 00632 2521 00    spri2   pr6|410\r
+002453  aa  6 00603 3521 00    epp2    pr6|387\r
+002454  aa  6 00634 2521 00    spri2   pr6|412\r
+002455  aa   775567 3520 04    epp2    -1161,ic                000244 = 524000000011\r
+002456  aa  6 00636 2521 00    spri2   pr6|414\r
+002457  aa   775613 3520 04    epp2    -1141,ic                000272 = 514000000001\r
+002460  aa  6 00640 2521 00    spri2   pr6|416\r
+002461  aa  6 00624 3521 00    epp2    pr6|404\r
+002462  aa   014000 4310 07    fld     6144,dl\r
+002463  aa  2 00000 7571 00    staq    pr2|0\r
+002464  aa   005003 6700 04    tsp4    2563,ic         007467\r
+002465  aa  6 00645 2351 00    lda     pr6|421\r
+002466  aa   400000 3150 03    cana    131072,du\r
+002467  aa  0 00631 6001 00    tze     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 558\r
+                    else ;\r
+\r
+002470  aa   000603 7100 04    tra     387,ic          003273\r
+                                               STATEMENT 1 ON LINE 560\r
+               else if index (arg_string, "-sv") = 1\r
+               then if ^parse_severity (arg_string, "-sv")\r
+                    then return;\r
+\r
+002471  aa  6 00102 2361 00    ldq     pr6|66          arg_length\r
+002472  aa  7 00000 3521 00    epp2    pr7|0           arg_string\r
+002473  aa  0 01227 7001 00    tsx0    pr0|663         set_chars_eis\r
+002474  aa   000003 2360 07    ldq     3,dl\r
+002475  aa   775546 3520 04    epp2    -1178,ic                000243 = 055163166000\r
+002476  aa  0 01231 7001 00    tsx0    pr0|665         index_chars_eis\r
+002477  aa   000001 1160 07    cmpq    1,dl\r
+002500  aa   000032 6010 04    tnz     26,ic           002532\r
+002501  aa  6 00102 2361 00    ldq     pr6|66          arg_length\r
+002502  aa   526000 2760 03    orq     175104,du\r
+002503  aa  6 00603 7561 00    stq     pr6|387\r
+002504  aa  2 00000 2351 00    lda     pr2|0\r
+002505  aa  6 00645 7551 00    sta     pr6|421\r
+002506  aa  7 00000 3521 00    epp2    pr7|0           arg_string\r
+002507  aa  6 00626 2521 00    spri2   pr6|406\r
+002510  aa  6 00645 3521 00    epp2    pr6|421\r
+002511  aa  6 00630 2521 00    spri2   pr6|408\r
+002512  aa  6 00756 3521 00    epp2    pr6|494\r
+002513  aa  6 00632 2521 00    spri2   pr6|410\r
+002514  aa  6 00603 3521 00    epp2    pr6|387\r
+002515  aa  6 00634 2521 00    spri2   pr6|412\r
+002516  aa   775524 3520 04    epp2    -1196,ic                000242 = 524000000003\r
+002517  aa  6 00636 2521 00    spri2   pr6|414\r
+002520  aa   775552 3520 04    epp2    -1174,ic                000272 = 514000000001\r
+002521  aa  6 00640 2521 00    spri2   pr6|416\r
+002522  aa  6 00624 3521 00    epp2    pr6|404\r
+002523  aa   014000 4310 07    fld     6144,dl\r
+002524  aa  2 00000 7571 00    staq    pr2|0\r
+002525  aa   004742 6700 04    tsp4    2530,ic         007467\r
+002526  aa  6 00756 2351 00    lda     pr6|494\r
+002527  aa   400000 3150 03    cana    131072,du\r
+002530  aa  0 00631 6001 00    tze     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 563\r
+                    else ;\r
+\r
+002531  aa   000542 7100 04    tra     354,ic          003273\r
+                                               STATEMENT 1 ON LINE 565\r
+               else if arg_string = "-no_profile" | arg_string = "-npf"\r
+               then do;\r
+\r
+002532  aa  6 00102 2351 00    lda     pr6|66          arg_length\r
+002533  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002534  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+002535  aa   775506 00 0004    desc9a  -1210,4         000241 = 055156160146\r
+002536  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002537  aa  6 00603 7551 00    sta     pr6|387\r
+002540  aa  6 00102 2361 00    ldq     pr6|66          arg_length\r
+002541  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002542  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002543  aa   775717 00 0013    desc9a  -1073,11                000460 = 055156157137\r
+002544  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002545  aa  6 00603 2751 00    ora     pr6|387\r
+002546  aa   000006 6000 04    tze     6,ic            002554\r
+                                               STATEMENT 1 ON LINE 567\r
+                       ca.no_profile = "1"b;\r
+\r
+002547  aa   400000 2350 03    lda     131072,du\r
+002550  aa  6 00134 7551 00    sta     pr6|92          ca.no_profile\r
+                                               STATEMENT 1 ON LINE 568\r
+                       ca.profile = "0"b;\r
+\r
+002551  aa  6 00135 4501 00    stz     pr6|93          ca.profile\r
+                                               STATEMENT 1 ON LINE 569\r
+                       ca.long_profile = "0"b;\r
+\r
+002552  aa  6 00136 4501 00    stz     pr6|94          ca.long_profile\r
+                                               STATEMENT 1 ON LINE 570\r
+                    end;\r
+\r
+002553  aa   000520 7100 04    tra     336,ic          003273\r
+                                               STATEMENT 1 ON LINE 572\r
+               else if arg_string = "-profile" | arg_string = "-pf"\r
+               then do;\r
+\r
+002554  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002555  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002556  aa   775464 00 0003    desc9a  -1228,3         000240 = 055160146000\r
+002557  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002560  aa  6 00603 7551 00    sta     pr6|387\r
+002561  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002562  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002563  aa   775575 00 0010    desc9a  -1155,8         000356 = 055160162157\r
+002564  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002565  aa  6 00603 2751 00    ora     pr6|387\r
+002566  aa   000006 6000 04    tze     6,ic            002574\r
+                                               STATEMENT 1 ON LINE 574\r
+                       ca.no_profile = "0"b;\r
+\r
+002567  aa  6 00134 4501 00    stz     pr6|92          ca.no_profile\r
+                                               STATEMENT 1 ON LINE 575\r
+                       ca.profile = "1"b;\r
+\r
+002570  aa   400000 2350 03    lda     131072,du\r
+002571  aa  6 00135 7551 00    sta     pr6|93          ca.profile\r
+                                               STATEMENT 1 ON LINE 576\r
+                       ca.long_profile = "0"b;\r
+\r
+002572  aa  6 00136 4501 00    stz     pr6|94          ca.long_profile\r
+                                               STATEMENT 1 ON LINE 577\r
+                    end;\r
+\r
+002573  aa   000500 7100 04    tra     320,ic          003273\r
+                                               STATEMENT 1 ON LINE 579\r
+               else if arg_string = "-long_profile" | arg_string = "-lpf"\r
+               then do;\r
+\r
+002574  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002575  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002576  aa   775443 00 0004    desc9a  -1245,4         000237 = 055154160146\r
+002577  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002600  aa  6 00603 7551 00    sta     pr6|387\r
+002601  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002602  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002603  aa   775757 00 0015    desc9a  -1041,13                000560 = 055154157156\r
+002604  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002605  aa  6 00603 2751 00    ora     pr6|387\r
+002606  aa   000006 6000 04    tze     6,ic            002614\r
+                                               STATEMENT 1 ON LINE 581\r
+                       ca.no_profile = "0"b;\r
+\r
+002607  aa  6 00134 4501 00    stz     pr6|92          ca.no_profile\r
+                                               STATEMENT 1 ON LINE 582\r
+                       ca.profile = "0"b;\r
+\r
+002610  aa  6 00135 4501 00    stz     pr6|93          ca.profile\r
+                                               STATEMENT 1 ON LINE 583\r
+                       ca.long_profile = "1"b;\r
+\r
+002611  aa   400000 2350 03    lda     131072,du\r
+002612  aa  6 00136 7551 00    sta     pr6|94          ca.long_profile\r
+                                               STATEMENT 1 ON LINE 584\r
+                    end;\r
+\r
+002613  aa   000460 7100 04    tra     304,ic          003273\r
+                                               STATEMENT 1 ON LINE 586\r
+               else if arg_string = "-no_separate_static" | arg_string = "-nss"\r
+               then do;\r
+\r
+002614  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002615  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002616  aa   775422 00 0004    desc9a  -1262,4         000236 = 055156163163\r
+002617  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002620  aa  6 00603 7551 00    sta     pr6|387\r
+002621  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002622  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002623  aa   775777 00 0023    desc9a  -1025,19                000620 = 055156157137\r
+002624  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002625  aa  6 00603 2751 00    ora     pr6|387\r
+002626  aa   000005 6000 04    tze     5,ic            002633\r
+                                               STATEMENT 1 ON LINE 588\r
+                       ca.no_separate_static = "1"b;\r
+\r
+002627  aa   400000 2350 03    lda     131072,du\r
+002630  aa  6 00137 7551 00    sta     pr6|95          ca.no_separate_static\r
+                                               STATEMENT 1 ON LINE 589\r
+                       ca.separate_static = "0"b;\r
+\r
+002631  aa  6 00140 4501 00    stz     pr6|96          ca.separate_static\r
+                                               STATEMENT 1 ON LINE 590\r
+                    end;\r
+\r
+002632  aa   000441 7100 04    tra     289,ic          003273\r
+                                               STATEMENT 1 ON LINE 592\r
+               else if arg_string = "-separate_static" | arg_string = "-ss"\r
+               then do;\r
+\r
+002633  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002634  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002635  aa   775402 00 0003    desc9a  -1278,3         000235 = 055163163000\r
+002636  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002637  aa  6 00603 7551 00    sta     pr6|387\r
+002640  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002641  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002642  aa   775714 00 0020    desc9a  -1076,16                000554 = 055163145160\r
+002643  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002644  aa  6 00603 2751 00    ora     pr6|387\r
+002645  aa   000005 6000 04    tze     5,ic            002652\r
+                                               STATEMENT 1 ON LINE 594\r
+                       ca.no_separate_static = "0"b;\r
+\r
+002646  aa  6 00137 4501 00    stz     pr6|95          ca.no_separate_static\r
+                                               STATEMENT 1 ON LINE 595\r
+                       ca.separate_static = "1"b;\r
+\r
+002647  aa   400000 2350 03    lda     131072,du\r
+002650  aa  6 00140 7551 00    sta     pr6|96          ca.separate_static\r
+                                               STATEMENT 1 ON LINE 596\r
+                    end;\r
+\r
+002651  aa   000422 7100 04    tra     274,ic          003273\r
+                                               STATEMENT 1 ON LINE 598\r
+               else if arg_string = "-no_check_ansi"\r
+               then do;\r
+\r
+002652  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002653  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002654  aa   775676 00 0016    desc9a  -1090,14                000550 = 055156157137\r
+002655  aa   000005 6010 04    tnz     5,ic            002662\r
+                                               STATEMENT 1 ON LINE 600\r
+                       ca.no_check_ansi = "1"b;\r
+\r
+002656  aa   400000 2350 03    lda     131072,du\r
+002657  aa  6 00141 7551 00    sta     pr6|97          ca.no_check_ansi\r
+                                               STATEMENT 1 ON LINE 601\r
+                       ca.check_ansi = "0"b;\r
+\r
+002660  aa  6 00142 4501 00    stz     pr6|98          ca.check_ansi\r
+                                               STATEMENT 1 ON LINE 602\r
+                    end;\r
+\r
+002661  aa   000412 7100 04    tra     266,ic          003273\r
+                                               STATEMENT 1 ON LINE 604\r
+               else if arg_string = "-check_ansi"\r
+               then do;\r
+\r
+002662  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002663  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002664  aa   775573 00 0013    desc9a  -1157,11                000455 = 055143150145\r
+002665  aa   000005 6010 04    tnz     5,ic            002672\r
+                                               STATEMENT 1 ON LINE 606\r
+                       ca.no_check_ansi = "0"b;\r
+\r
+002666  aa  6 00141 4501 00    stz     pr6|97          ca.no_check_ansi\r
+                                               STATEMENT 1 ON LINE 607\r
+                       ca.check_ansi = "1"b;\r
+\r
+002667  aa   400000 2350 03    lda     131072,du\r
+002670  aa  6 00142 7551 00    sta     pr6|98          ca.check_ansi\r
+                                               STATEMENT 1 ON LINE 608\r
+                    end;\r
+\r
+002671  aa   000402 7100 04    tra     258,ic          003273\r
+                                               STATEMENT 1 ON LINE 610\r
+               else if arg_string = "-no_time" | arg_string = "-ntm"\r
+               then do;\r
+\r
+002672  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002673  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002674  aa   775342 00 0004    desc9a  -1310,4         000234 = 055156164155\r
+002675  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002676  aa  6 00603 7551 00    sta     pr6|387\r
+002677  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002700  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002701  aa   775455 00 0010    desc9a  -1235,8         000354 = 055156157137\r
+002702  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002703  aa  6 00603 2751 00    ora     pr6|387\r
+002704  aa   000005 6000 04    tze     5,ic            002711\r
+                                               STATEMENT 1 ON LINE 612\r
+                       ca.no_time = "1"b;\r
+\r
+002705  aa   400000 2350 03    lda     131072,du\r
+002706  aa  6 00143 7551 00    sta     pr6|99          ca.no_time\r
+                                               STATEMENT 1 ON LINE 613\r
+                       ca.time = "0"b;\r
+\r
+002707  aa  6 00144 4501 00    stz     pr6|100         ca.time\r
+                                               STATEMENT 1 ON LINE 614\r
+                    end;\r
+\r
+002710  aa   000363 7100 04    tra     243,ic          003273\r
+                                               STATEMENT 1 ON LINE 616\r
+               else if arg_string = "-time" | arg_string = "-tm"\r
+               then do;\r
+\r
+002711  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002712  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002713  aa   775322 00 0003    desc9a  -1326,3         000233 = 055164155000\r
+002714  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002715  aa  6 00603 7551 00    sta     pr6|387\r
+002716  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002717  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002720  aa   775434 00 0005    desc9a  -1252,5         000352 = 055164151155\r
+002721  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002722  aa  6 00603 2751 00    ora     pr6|387\r
+002723  aa   000005 6000 04    tze     5,ic            002730\r
+                                               STATEMENT 1 ON LINE 618\r
+                       ca.no_time = "0"b;\r
+\r
+002724  aa  6 00143 4501 00    stz     pr6|99          ca.no_time\r
+                                               STATEMENT 1 ON LINE 619\r
+                       ca.time = "1"b;\r
+\r
+002725  aa   400000 2350 03    lda     131072,du\r
+002726  aa  6 00144 7551 00    sta     pr6|100         ca.time\r
+                                               STATEMENT 1 ON LINE 620\r
+                    end;\r
+\r
+002727  aa   000344 7100 04    tra     228,ic          003273\r
+                                               STATEMENT 1 ON LINE 622\r
+               else if arg_string = "-no_debug" | arg_string = "-ndb"\r
+               then do;\r
+\r
+002730  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002731  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002732  aa   775302 00 0004    desc9a  -1342,4         000232 = 055156144142\r
+002733  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002734  aa  6 00603 7551 00    sta     pr6|387\r
+002735  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002736  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002737  aa   775515 00 0011    desc9a  -1203,9         000452 = 055156157137\r
+002740  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002741  aa  6 00603 2751 00    ora     pr6|387\r
+002742  aa   000007 6000 04    tze     7,ic            002751\r
+                                               STATEMENT 1 ON LINE 624\r
+                       ca.no_debug = "1"b;\r
+\r
+002743  aa   400000 2350 03    lda     131072,du\r
+002744  aa  6 00145 7551 00    sta     pr6|101         ca.no_debug\r
+                                               STATEMENT 1 ON LINE 625\r
+                       ca.debug = "0"b;\r
+\r
+002745  aa  6 00146 4501 00    stz     pr6|102         ca.debug\r
+                                               STATEMENT 1 ON LINE 626\r
+                       ca.debug_semant = "0"b;\r
+\r
+002746  aa  6 00147 4501 00    stz     pr6|103         ca.debug_semant\r
+                                               STATEMENT 1 ON LINE 627\r
+                       ca.debug_cg = "0"b;\r
+\r
+002747  aa  6 00150 4501 00    stz     pr6|104         ca.debug_cg\r
+                                               STATEMENT 1 ON LINE 628\r
+                    end;\r
+\r
+002750  aa   000323 7100 04    tra     211,ic          003273\r
+                                               STATEMENT 1 ON LINE 630\r
+               else if arg_string = "-debug" | arg_string = "-db"\r
+               then do;\r
+\r
+002751  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002752  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002753  aa   775260 00 0003    desc9a  -1360,3         000231 = 055144142000\r
+002754  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002755  aa  6 00603 7551 00    sta     pr6|387\r
+002756  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002757  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002760  aa   775372 00 0006    desc9a  -1286,6         000350 = 055144145142\r
+002761  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002762  aa  6 00603 2751 00    ora     pr6|387\r
+002763  aa   000005 6000 04    tze     5,ic            002770\r
+                                               STATEMENT 1 ON LINE 632\r
+                       ca.no_debug = "0"b;\r
+\r
+002764  aa  6 00145 4501 00    stz     pr6|101         ca.no_debug\r
+                                               STATEMENT 1 ON LINE 633\r
+                       ca.debug = "1"b;\r
+\r
+002765  aa   400000 2350 03    lda     131072,du\r
+002766  aa  6 00146 7551 00    sta     pr6|102         ca.debug\r
+                                               STATEMENT 1 ON LINE 634\r
+                    end;\r
+\r
+002767  aa   000304 7100 04    tra     196,ic          003273\r
+                                               STATEMENT 1 ON LINE 636\r
+               else if arg_string = "-debug_semant" | arg_string = "-dbse"\r
+               then do;\r
+\r
+002770  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002771  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002772  aa   775356 00 0005    desc9a  -1298,5         000346 = 055144142163\r
+002773  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+002774  aa  6 00603 7551 00    sta     pr6|387\r
+002775  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+002776  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+002777  aa   775547 00 0015    desc9a  -1177,13                000544 = 055144145142\r
+003000  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003001  aa  6 00603 2751 00    ora     pr6|387\r
+003002  aa   000005 6000 04    tze     5,ic            003007\r
+                                               STATEMENT 1 ON LINE 638\r
+                       ca.no_debug = "0"b;\r
+\r
+003003  aa  6 00145 4501 00    stz     pr6|101         ca.no_debug\r
+                                               STATEMENT 1 ON LINE 639\r
+                       ca.debug_semant = "1"b;\r
+\r
+003004  aa   400000 2350 03    lda     131072,du\r
+003005  aa  6 00147 7551 00    sta     pr6|103         ca.debug_semant\r
+                                               STATEMENT 1 ON LINE 640\r
+                    end;\r
+\r
+003006  aa   000265 7100 04    tra     181,ic          003273\r
+                                               STATEMENT 1 ON LINE 642\r
+               else if arg_string = "-debug_cg" | arg_string = "-dbcg"\r
+               then do;\r
+\r
+003007  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003010  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003011  aa   775335 00 0005    desc9a  -1315,5         000344 = 055144142143\r
+003012  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003013  aa  6 00603 7551 00    sta     pr6|387\r
+003014  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003015  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003016  aa   775433 00 0011    desc9a  -1253,9         000447 = 055144145142\r
+003017  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003020  aa  6 00603 2751 00    ora     pr6|387\r
+003021  aa   000005 6000 04    tze     5,ic            003026\r
+                                               STATEMENT 1 ON LINE 644\r
+                       ca.no_debug = "0"b;\r
+\r
+003022  aa  6 00145 4501 00    stz     pr6|101         ca.no_debug\r
+                                               STATEMENT 1 ON LINE 645\r
+                       ca.debug_cg = "1"b;\r
+\r
+003023  aa   400000 2350 03    lda     131072,du\r
+003024  aa  6 00150 7551 00    sta     pr6|104         ca.debug_cg\r
+                                               STATEMENT 1 ON LINE 646\r
+                    end;\r
+\r
+003025  aa   000246 7100 04    tra     166,ic          003273\r
+                                               STATEMENT 1 ON LINE 648\r
+               else if arg_string = "-no_cpdcls"\r
+               then do;\r
+\r
+003026  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003027  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003030  aa   775416 00 0012    desc9a  -1266,10                000444 = 055156157137\r
+003031  aa   000005 6010 04    tnz     5,ic            003036\r
+                                               STATEMENT 1 ON LINE 650\r
+                       ca.no_cpdcls = "1"b;\r
+\r
+003032  aa   400000 2350 03    lda     131072,du\r
+003033  aa  6 00151 7551 00    sta     pr6|105         ca.no_cpdcls\r
+                                               STATEMENT 1 ON LINE 651\r
+                       ca.cpdcls = "0"b;\r
+\r
+003034  aa  6 00152 4501 00    stz     pr6|106         ca.cpdcls\r
+                                               STATEMENT 1 ON LINE 652\r
+                    end;\r
+\r
+003035  aa   000236 7100 04    tra     158,ic          003273\r
+                                               STATEMENT 1 ON LINE 654\r
+               else if arg_string = "-cpdcls"\r
+               then do;\r
+\r
+003036  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003037  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003040  aa   775304 00 0007    desc9a  -1340,7         000342 = 055143160144\r
+003041  aa   000005 6010 04    tnz     5,ic            003046\r
+                                               STATEMENT 1 ON LINE 656\r
+                       ca.no_cpdcls = "0"b;\r
+\r
+003042  aa  6 00151 4501 00    stz     pr6|105         ca.no_cpdcls\r
+                                               STATEMENT 1 ON LINE 657\r
+                       ca.cpdcls = "1"b;\r
+\r
+003043  aa   400000 2350 03    lda     131072,du\r
+003044  aa  6 00152 7551 00    sta     pr6|106         ca.cpdcls\r
+                                               STATEMENT 1 ON LINE 658\r
+                    end;\r
+\r
+003045  aa   000226 7100 04    tra     150,ic          003273\r
+                                               STATEMENT 1 ON LINE 660\r
+               else if arg_string = "-no_link" | arg_string = "-nlk"\r
+               then do;\r
+\r
+003046  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003047  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003050  aa   775162 00 0004    desc9a  -1422,4         000230 = 055156154153\r
+003051  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003052  aa  6 00603 7551 00    sta     pr6|387\r
+003053  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003054  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003055  aa   775265 00 0010    desc9a  -1355,8         000340 = 055156157137\r
+003056  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003057  aa  6 00603 2751 00    ora     pr6|387\r
+003060  aa   000005 6000 04    tze     5,ic            003065\r
+                                               STATEMENT 1 ON LINE 662\r
+                       ca.no_link = "1"b;\r
+\r
+003061  aa   400000 2350 03    lda     131072,du\r
+003062  aa  6 00153 7551 00    sta     pr6|107         ca.no_link\r
+                                               STATEMENT 1 ON LINE 663\r
+                       ca.link = "0"b;\r
+\r
+003063  aa  6 00154 4501 00    stz     pr6|108         ca.link\r
+                                               STATEMENT 1 ON LINE 664\r
+                    end;\r
+\r
+003064  aa   000207 7100 04    tra     135,ic          003273\r
+                                               STATEMENT 1 ON LINE 666\r
+               else if arg_string = "-link" | arg_string = "-lk"\r
+               then do;\r
+\r
+003065  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003066  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003067  aa   775142 00 0003    desc9a  -1438,3         000227 = 055154153000\r
+003070  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003071  aa  6 00603 7551 00    sta     pr6|387\r
+003072  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003073  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003074  aa   775244 00 0005    desc9a  -1372,5         000336 = 055154151156\r
+003075  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+003076  aa  6 00603 2751 00    ora     pr6|387\r
+003077  aa   000005 6000 04    tze     5,ic            003104\r
+                                               STATEMENT 1 ON LINE 668\r
+                       ca.no_link = "0"b;\r
+\r
+003100  aa  6 00153 4501 00    stz     pr6|107         ca.no_link\r
+                                               STATEMENT 1 ON LINE 669\r
+                       ca.link = "1"b;\r
+\r
+003101  aa   400000 2350 03    lda     131072,du\r
+003102  aa  6 00154 7551 00    sta     pr6|108         ca.link\r
+                                               STATEMENT 1 ON LINE 670\r
+                    end;\r
+\r
+003103  aa   000170 7100 04    tra     120,ic          003273\r
+                                               STATEMENT 1 ON LINE 672\r
+               else if arg_string = "-version"\r
+               then do;\r
+\r
+003104  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003105  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003106  aa   775230 00 0010    desc9a  -1384,8         000334 = 055166145162\r
+003107  aa   000003 6010 04    tnz     3,ic            003112\r
+                                               STATEMENT 1 ON LINE 674\r
+                       ca.no_version = "0"b;\r
+\r
+003110  aa  6 00156 4501 00    stz     pr6|110         ca.no_version\r
+                                               STATEMENT 1 ON LINE 675\r
+                    end;\r
+\r
+003111  aa   000162 7100 04    tra     114,ic          003273\r
+                                               STATEMENT 1 ON LINE 677\r
+               else if arg_string = "-no_version"\r
+               then do;\r
+\r
+003112  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003113  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003114  aa   775327 00 0013    desc9a  -1321,11                000441 = 055156157137\r
+003115  aa   000004 6010 04    tnz     4,ic            003121\r
+                                               STATEMENT 1 ON LINE 679\r
+                       ca.no_version = "1"b;\r
+\r
+003116  aa   400000 2350 03    lda     131072,du\r
+003117  aa  6 00156 7551 00    sta     pr6|110         ca.no_version\r
+                                               STATEMENT 1 ON LINE 680\r
+                    end;\r
+\r
+003120  aa   000153 7100 04    tra     107,ic          003273\r
+                                               STATEMENT 1 ON LINE 681\r
+               else if arg_string = "-no_prefix"\r
+               then do;\r
+\r
+003121  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003122  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003123  aa   775315 00 0012    desc9a  -1331,10                000436 = 055156157137\r
+003124  aa   000003 6010 04    tnz     3,ic            003127\r
+                                               STATEMENT 1 ON LINE 683\r
+                       ca.prefix = "0"b;\r
+\r
+003125  aa  6 00155 4501 00    stz     pr6|109         ca.prefix\r
+                                               STATEMENT 1 ON LINE 684\r
+                    end;\r
+\r
+003126  aa   000145 7100 04    tra     101,ic          003273\r
+                                               STATEMENT 1 ON LINE 686\r
+               else if arg_string = "-prefix"\r
+               then do;\r
+\r
+003127  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003130  aa  7 00000 00 0006    desc9a  pr7|0,ql                arg_string\r
+003131  aa   775203 00 0007    desc9a  -1405,7         000332 = 055160162145\r
+003132  aa   000107 6010 04    tnz     71,ic           003241\r
+                                               STATEMENT 1 ON LINE 688\r
+                       i = i + 1;\r
+\r
+003133  aa  6 00166 0541 00    aos     pr6|118         i\r
+                                               STATEMENT 1 ON LINE 689\r
+                       if i > arg_count\r
+                       then do;\r
+\r
+003134  aa  6 00166 2361 00    ldq     pr6|118         i\r
+003135  aa  6 00101 1161 00    cmpq    pr6|65          arg_count\r
+003136  aa   000027 6044 04    tmoz    23,ic           003165\r
+                                               STATEMENT 1 ON LINE 691\r
+                               call com_err_ (0, my_name, "Missing prefix string after -prefix.");\r
+\r
+003137  aa  6 00603 4501 00    stz     pr6|387\r
+003140  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+003141  aa   775657 00 0044    desc9a  -1105,36                001017 = 115151163163\r
+003142  aa  6 00612 00 0044    desc9a  pr6|394,36\r
+003143  aa  6 00603 3521 00    epp2    pr6|387\r
+003144  aa  6 00650 2521 00    spri2   pr6|424\r
+003145  aa   775050 3520 04    epp2    -1496,ic                000215 = 160154061000\r
+003146  aa  6 00652 2521 00    spri2   pr6|426\r
+003147  aa  6 00612 3521 00    epp2    pr6|394\r
+003150  aa  6 00654 2521 00    spri2   pr6|428\r
+003151  aa   775116 3520 04    epp2    -1458,ic                000267 = 404000000005\r
+003152  aa  6 00656 2521 00    spri2   pr6|430\r
+003153  aa   775115 3520 04    epp2    -1459,ic                000270 = 526000000003\r
+003154  aa  6 00660 2521 00    spri2   pr6|432\r
+003155  aa   775051 3520 04    epp2    -1495,ic                000226 = 524000000044\r
+003156  aa  6 00662 2521 00    spri2   pr6|434\r
+003157  aa  6 00646 6211 00    eax1    pr6|422\r
+003160  aa   014000 4310 07    fld     6144,dl\r
+003161  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003162  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+003163  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 692\r
+                               return;\r
+\r
+003164  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 693\r
+                            end;\r
+\r
+                                               STATEMENT 1 ON LINE 695\r
+                       call cu_$arg_ptr (i, prefix_string_ptr, prefix_string_length, code);\r
+\r
+003165  aa  6 00166 3521 00    epp2    pr6|118         i\r
+003166  aa  6 00614 2521 00    spri2   pr6|396\r
+003167  aa  6 00340 3521 00    epp2    pr6|224         prefix_string_ptr\r
+003170  aa  6 00616 2521 00    spri2   pr6|398\r
+003171  aa  6 00336 3521 00    epp2    pr6|222         prefix_string_length\r
+003172  aa  6 00620 2521 00    spri2   pr6|400\r
+003173  aa  6 00162 3521 00    epp2    pr6|114         code\r
+003174  aa  6 00622 2521 00    spri2   pr6|402\r
+003175  aa  6 00612 6211 00    eax1    pr6|394\r
+003176  aa   020000 4310 07    fld     8192,dl\r
+003177  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003200  la  4 00476 3521 20    epp2    pr4|318,*               cu_$arg_ptr\r
+003201  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 696\r
+                       if code ^= 0\r
+                       then do;\r
+\r
+003202  aa  6 00162 2361 00    ldq     pr6|114         code\r
+003203  aa   000033 6000 04    tze     27,ic           003236\r
+                                               STATEMENT 1 ON LINE 698\r
+                               call com_err_ (code, my_name, "Argument ^d.", i);\r
+\r
+003204  aa   775276 2370 04    ldaq    -1346,ic                000502 = 101162147165 155145156164\r
+003205  aa  6 00604 7571 00    staq    pr6|388\r
+003206  aa   775276 2350 04    lda     -1346,ic                000504 = 040136144056\r
+003207  aa  6 00606 7551 00    sta     pr6|390\r
+003210  aa  6 00162 3521 00    epp2    pr6|114         code\r
+003211  aa  6 00736 2521 00    spri2   pr6|478\r
+003212  aa   775003 3520 04    epp2    -1533,ic                000215 = 160154061000\r
+003213  aa  6 00740 2521 00    spri2   pr6|480\r
+003214  aa  6 00604 3521 00    epp2    pr6|388\r
+003215  aa  6 00742 2521 00    spri2   pr6|482\r
+003216  aa  6 00166 3521 00    epp2    pr6|118         i\r
+003217  aa  6 00744 2521 00    spri2   pr6|484\r
+003220  aa   775051 3520 04    epp2    -1495,ic                000271 = 404000000043\r
+003221  aa  6 00746 2521 00    spri2   pr6|486\r
+003222  aa   775046 3520 04    epp2    -1498,ic                000270 = 526000000003\r
+003223  aa  6 00750 2521 00    spri2   pr6|488\r
+003224  aa   775040 3520 04    epp2    -1504,ic                000264 = 524000000014\r
+003225  aa  6 00752 2521 00    spri2   pr6|490\r
+003226  aa   775047 3520 04    epp2    -1497,ic                000275 = 404000000021\r
+003227  aa  6 00754 2521 00    spri2   pr6|492\r
+003230  aa  6 00734 6211 00    eax1    pr6|476\r
+003231  aa   020000 4310 07    fld     8192,dl\r
+003232  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003233  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+003234  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 699\r
+                               return;\r
+\r
+003235  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 700\r
+                            end;\r
+\r
+                                               STATEMENT 1 ON LINE 702\r
+                       ca.prefix = "1"b;\r
+\r
+003236  aa   400000 2350 03    lda     131072,du\r
+003237  aa  6 00155 7551 00    sta     pr6|109         ca.prefix\r
+                                               STATEMENT 1 ON LINE 703\r
+                    end;\r
+\r
+003240  aa   000033 7100 04    tra     27,ic           003273\r
+                                               STATEMENT 1 ON LINE 705\r
+               else do;\r
+\r
+                                               STATEMENT 1 ON LINE 706\r
+                       call com_err_ (error_table_$badopt, my_name, "^a", arg_string);\r
+\r
+003241  aa   526000 2760 03    orq     175104,du\r
+003242  aa  6 00603 7561 00    stq     pr6|387\r
+003243  aa   136141 2350 03    lda     48225,du\r
+003244  aa  6 00756 7551 00    sta     pr6|494\r
+003245  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003246  la  4 00230 3521 20    epp2    pr4|152,*               error_table_$badopt\r
+003247  aa  6 00736 2521 00    spri2   pr6|478\r
+003250  aa   774745 3520 04    epp2    -1563,ic                000215 = 160154061000\r
+003251  aa  6 00740 2521 00    spri2   pr6|480\r
+003252  aa  6 00756 3521 00    epp2    pr6|494\r
+003253  aa  6 00742 2521 00    spri2   pr6|482\r
+003254  aa  7 00000 3521 00    epp2    pr7|0           arg_string\r
+003255  aa  6 00744 2521 00    spri2   pr6|484\r
+003256  aa   775013 3520 04    epp2    -1525,ic                000271 = 404000000043\r
+003257  aa  6 00746 2521 00    spri2   pr6|486\r
+003260  aa   775010 3520 04    epp2    -1528,ic                000270 = 526000000003\r
+003261  aa  6 00750 2521 00    spri2   pr6|488\r
+003262  aa   774743 3520 04    epp2    -1565,ic                000225 = 524000000002\r
+003263  aa  6 00752 2521 00    spri2   pr6|490\r
+003264  aa  6 00603 3521 00    epp2    pr6|387\r
+003265  aa  6 00754 2521 00    spri2   pr6|492\r
+003266  aa  6 00734 6211 00    eax1    pr6|476\r
+003267  aa   020000 4310 07    fld     8192,dl\r
+003270  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+003271  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 707\r
+                       return;\r
+\r
+003272  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 708\r
+                    end;\r
+\r
+003273  aa   000010 7100 04    tra     8,ic            003303\r
+                                               STATEMENT 1 ON LINE 710\r
+            else do;\r
+\r
+                                               STATEMENT 1 ON LINE 711\r
+                    argument_no = argument_no + 1;\r
+\r
+003274  aa  6 00100 0541 00    aos     pr6|64          argument_no\r
+                                               STATEMENT 1 ON LINE 712\r
+                    if argument_no = 1         /* process pathname later */\r
+                    then pathname = arg_string;\r
+\r
+003275  aa  6 00100 2361 00    ldq     pr6|64          argument_no\r
+003276  aa   000001 1160 07    cmpq    1,dl\r
+003277  aa   000004 6010 04    tnz     4,ic            003303\r
+003300  aa  040 100 100 540    mlr     (pr,rl),(pr),fill(040)\r
+003301  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+003302  aa  6 00232 00 0400    desc9a  pr6|154,256     pathname\r
+                                               STATEMENT 1 ON LINE 714\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 715\r
+       end;\r
+\r
+003303  aa  6 00166 0541 00    aos     pr6|118         i\r
+003304  aa   776470 7100 04    tra     -712,ic         001774\r
+                                               STATEMENT 1 ON LINE 717\r
+       if argument_no ^= 1\r
+       then do;\r
+\r
+003305  aa  6 00100 2361 00    ldq     pr6|64          argument_no\r
+003306  aa   000001 1160 07    cmpq    1,dl\r
+003307  aa   000105 6000 04    tze     69,ic           003414\r
+                                               STATEMENT 1 ON LINE 719\r
+               if arg_count > 1 | ca.no_version\r
+               then call com_err_$suppress_name (0, my_name, "Usage: ^a path {-control_args}", my_name);\r
+\r
+003310  aa  6 00101 2361 00    ldq     pr6|65          arg_count\r
+003311  aa   000001 1160 07    cmpq    1,dl\r
+003312  aa  0 00503 7001 00    tsx0    pr0|323         r_g_a\r
+003313  aa  6 00156 2751 00    ora     pr6|110         ca.no_version\r
+003314  aa   000032 6000 04    tze     26,ic           003346\r
+003315  aa  6 00603 4501 00    stz     pr6|387\r
+003316  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+003317  aa   775436 00 0040    desc9a  -1250,32                000754 = 125163141147\r
+003320  aa  6 00612 00 0040    desc9a  pr6|394,32\r
+003321  aa  6 00603 3521 00    epp2    pr6|387\r
+003322  aa  6 00736 2521 00    spri2   pr6|478\r
+003323  aa   774672 3520 04    epp2    -1606,ic                000215 = 160154061000\r
+003324  aa  6 00740 2521 00    spri2   pr6|480\r
+003325  aa  6 00612 3521 00    epp2    pr6|394\r
+003326  aa  6 00742 2521 00    spri2   pr6|482\r
+003327  aa   774666 3520 04    epp2    -1610,ic                000215 = 160154061000\r
+003330  aa  6 00744 2521 00    spri2   pr6|484\r
+003331  aa   774736 3520 04    epp2    -1570,ic                000267 = 404000000005\r
+003332  aa  6 00746 2521 00    spri2   pr6|486\r
+003333  aa   774735 3520 04    epp2    -1571,ic                000270 = 526000000003\r
+003334  aa  6 00750 2521 00    spri2   pr6|488\r
+003335  aa  6 00754 2521 00    spri2   pr6|492\r
+003336  aa   774666 3520 04    epp2    -1610,ic                000224 = 524000000036\r
+003337  aa  6 00752 2521 00    spri2   pr6|490\r
+003340  aa  6 00734 6211 00    eax1    pr6|476\r
+003341  aa   020000 4310 07    fld     8192,dl\r
+003342  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003343  la  4 00470 3521 20    epp2    pr4|312,*               com_err_$suppress_name\r
+003344  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+003345  aa   000046 7100 04    tra     38,ic           003413\r
+                                               STATEMENT 1 ON LINE 721\r
+               else do;\r
+\r
+                                               STATEMENT 1 ON LINE 722\r
+                       if pl1_version$pl1_release = "EXL"\r
+                       then call ioa_ ("^a", pl1_version$pl1_version);\r
+\r
+003346  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003347  la  4 00422 3735 20    epp7    pr4|274,*\r
+003350  la  4 00422 7271 20    lxl7    pr4|274,*               pl1_version$pl1_release\r
+003351  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+003352  aa  7 00001 00 0017    desc9a  pr7|1,x7                pl1_version$pl1_release\r
+003353  aa   774652 00 0003    desc9a  -1622,3         000223 = 105130114000\r
+003354  aa   000021 6010 04    tnz     17,ic           003375\r
+003355  aa   136141 2350 03    lda     48225,du\r
+003356  aa  6 00603 7551 00    sta     pr6|387\r
+003357  aa  6 00603 3521 00    epp2    pr6|387\r
+003360  aa  6 00614 2521 00    spri2   pr6|396\r
+003361  la  4 00424 3715 20    epp5    pr4|276,*\r
+003362  aa  5 00001 3521 00    epp2    pr5|1           pl1_version$pl1_version\r
+003363  aa  6 00616 2521 00    spri2   pr6|398\r
+003364  aa   774641 3520 04    epp2    -1631,ic                000225 = 524000000002\r
+003365  aa  6 00620 2521 00    spri2   pr6|400\r
+003366  aa   774634 3520 04    epp2    -1636,ic                000222 = 530000000400\r
+003367  aa  6 00622 2521 00    spri2   pr6|402\r
+003370  aa  6 00612 6211 00    eax1    pr6|394\r
+003371  aa   010000 4310 07    fld     4096,dl\r
+003372  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+003373  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+003374  aa   000017 7100 04    tra     15,ic           003413\r
+                                               STATEMENT 1 ON LINE 724\r
+                       else call ioa_ ("PL/1 ^a", pl1_version$pl1_release);\r
+\r
+003375  aa   774733 2370 04    ldaq    -1573,ic                000330 = 120114057061 040136141000\r
+003376  aa  6 00732 7571 00    staq    pr6|474\r
+003377  aa  6 00732 3521 00    epp2    pr6|474\r
+003400  aa  6 00614 2521 00    spri2   pr6|396\r
+003401  aa  7 00001 3521 00    epp2    pr7|1           pl1_version$pl1_release\r
+003402  aa  6 00616 2521 00    spri2   pr6|398\r
+003403  aa   774616 3520 04    epp2    -1650,ic                000221 = 524000000007\r
+003404  aa  6 00620 2521 00    spri2   pr6|400\r
+003405  aa   774613 3520 04    epp2    -1653,ic                000220 = 530000000003\r
+003406  aa  6 00622 2521 00    spri2   pr6|402\r
+003407  aa  6 00612 6211 00    eax1    pr6|394\r
+003410  aa   010000 4310 07    fld     4096,dl\r
+003411  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+003412  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 725\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 726\r
+               return;\r
+\r
+003413  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 727\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 731\r
+       if ^ca.no_table & ^ca.brief_table & ^ca.optimize\r
+       then ca.table = "1"b;\r
+\r
+003414  aa  6 00115 2351 00    lda     pr6|77          ca.optimize\r
+003415  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+003416  aa  6 00603 7551 00    sta     pr6|387\r
+003417  aa  6 00117 2351 00    lda     pr6|79          ca.brief_table\r
+003420  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+003421  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+003422  aa  6 00756 7551 00    sta     pr6|494\r
+003423  aa  6 00116 2351 00    lda     pr6|78          ca.no_table\r
+003424  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+003425  aa  6 00756 3751 00    ana     pr6|494\r
+003426  aa  6 00603 3151 00    cana    pr6|387\r
+003427  aa   000003 6000 04    tze     3,ic            003432\r
+003430  aa   400000 2350 03    lda     131072,du\r
+003431  aa  6 00120 7551 00    sta     pr6|80          ca.table\r
+                                               STATEMENT 1 ON LINE 736\r
+       pl1_stat_$options = "";\r
+\r
+003432  aa  6 00044 3701 20    epp4    pr6|36,*\r
+003433  la  4 00350 4501 20    stz     pr4|232,*               pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 738\r
+       pl1_stat_$optimize, cg_static_$optimize = ca.optimize;\r
+\r
+003434  aa  6 00115 2351 00    lda     pr6|77          ca.optimize\r
+003435  la  4 00346 7551 20    sta     pr4|230,*               pl1_stat_$optimize\r
+003436  la  4 00220 7551 20    sta     pr4|144,*               cg_static_$optimize\r
+                                               STATEMENT 1 ON LINE 739\r
+       if ca.optimize\r
+       then pl1_stat_$options = pl1_stat_$options || " optimize";\r
+\r
+003437  aa   000014 6000 04    tze     12,ic           003453\r
+003440  la  4 00350 3735 20    epp7    pr4|232,*\r
+003441  aa   000620 2360 07    ldq     400,dl\r
+003442  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003443  aa   000011 1160 07    cmpq    9,dl\r
+003444  aa   000002 6040 04    tmi     2,ic            003446\r
+003445  aa   000011 2360 07    ldq     9,dl\r
+003446  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003447  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003450  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003451  aa   774763 00 0006    desc9a  -1549,ql                000433 = 040157160164\r
+003452  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 742\r
+       if ca.brief_table\r
+       then pl1_stat_$options = pl1_stat_$options || " brief_table";\r
+\r
+003453  aa  6 00117 2351 00    lda     pr6|79          ca.brief_table\r
+003454  aa   400000 3150 03    cana    131072,du\r
+003455  aa   000014 6000 04    tze     12,ic           003471\r
+003456  la  4 00350 3735 20    epp7    pr4|232,*\r
+003457  aa   000620 2360 07    ldq     400,dl\r
+003460  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003461  aa   000014 1160 07    cmpq    12,dl\r
+003462  aa   000002 6040 04    tmi     2,ic            003464\r
+003463  aa   000014 2360 07    ldq     12,dl\r
+003464  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003465  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003466  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003467  aa   774742 00 0006    desc9a  -1566,ql                000430 = 040142162151\r
+003470  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 745\r
+       pl1_stat_$table = ca.table;\r
+\r
+003471  aa  6 00120 2351 00    lda     pr6|80          ca.table\r
+003472  la  4 00400 7551 20    sta     pr4|256,*               pl1_stat_$table\r
+                                               STATEMENT 1 ON LINE 746\r
+       if ca.table\r
+       then pl1_stat_$options = pl1_stat_$options || " table";\r
+\r
+003473  aa   000014 6000 04    tze     12,ic           003507\r
+003474  la  4 00350 3735 20    epp7    pr4|232,*\r
+003475  aa   000620 2360 07    ldq     400,dl\r
+003476  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003477  aa   000006 1160 07    cmpq    6,dl\r
+003500  aa   000002 6040 04    tmi     2,ic            003502\r
+003501  aa   000006 2360 07    ldq     6,dl\r
+003502  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003503  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003504  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003505  aa   774622 00 0006    desc9a  -1646,ql                000326 = 040164141142\r
+003506  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 749\r
+       if ca.check\r
+       then pl1_stat_$options = pl1_stat_$options || " check";\r
+\r
+003507  aa  6 00122 2351 00    lda     pr6|82          ca.check\r
+003510  aa   000014 6000 04    tze     12,ic           003524\r
+003511  la  4 00350 3735 20    epp7    pr4|232,*\r
+003512  aa   000620 2360 07    ldq     400,dl\r
+003513  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003514  aa   000006 1160 07    cmpq    6,dl\r
+003515  aa   000002 6040 04    tmi     2,ic            003517\r
+003516  aa   000006 2360 07    ldq     6,dl\r
+003517  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003520  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003521  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003522  aa   774603 00 0006    desc9a  -1661,ql                000324 = 040143150145\r
+003523  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 752\r
+       if ca.source\r
+       then pl1_stat_$options = pl1_stat_$options || " source";\r
+\r
+003524  aa  6 00124 2351 00    lda     pr6|84          ca.source\r
+003525  aa   000014 6000 04    tze     12,ic           003541\r
+003526  la  4 00350 3735 20    epp7    pr4|232,*\r
+003527  aa   000620 2360 07    ldq     400,dl\r
+003530  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003531  aa   000007 1160 07    cmpq    7,dl\r
+003532  aa   000002 6040 04    tmi     2,ic            003534\r
+003533  aa   000007 2360 07    ldq     7,dl\r
+003534  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003535  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003536  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003537  aa   774564 00 0006    desc9a  -1676,ql                000322 = 040163157165\r
+003540  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 755\r
+       if ca.symbols\r
+       then pl1_stat_$options = pl1_stat_$options || " symbols";\r
+\r
+003541  aa  6 00125 2351 00    lda     pr6|85          ca.symbols\r
+003542  aa   000014 6000 04    tze     12,ic           003556\r
+003543  la  4 00350 3735 20    epp7    pr4|232,*\r
+003544  aa   000620 2360 07    ldq     400,dl\r
+003545  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003546  aa   000010 1160 07    cmpq    8,dl\r
+003547  aa   000002 6040 04    tmi     2,ic            003551\r
+003550  aa   000010 2360 07    ldq     8,dl\r
+003551  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003552  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003553  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003554  aa   774545 00 0006    desc9a  -1691,ql                000320 = 040163171155\r
+003555  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 758\r
+       if ca.map\r
+       then pl1_stat_$options = pl1_stat_$options || " map";\r
+\r
+003556  aa  6 00126 2351 00    lda     pr6|86          ca.map\r
+003557  aa   400000 3150 03    cana    131072,du\r
+003560  aa   000014 6000 04    tze     12,ic           003574\r
+003561  la  4 00350 3735 20    epp7    pr4|232,*\r
+003562  aa   000620 2360 07    ldq     400,dl\r
+003563  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003564  aa   000004 1160 07    cmpq    4,dl\r
+003565  aa   000002 6040 04    tmi     2,ic            003567\r
+003566  aa   000004 2360 07    ldq     4,dl\r
+003567  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003570  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003571  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003572  aa   774426 00 0006    desc9a  -1770,ql                000217 = 040155141160\r
+003573  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 761\r
+       if ca.list\r
+       then pl1_stat_$options = pl1_stat_$options || " list";\r
+\r
+003574  aa  6 00127 2351 00    lda     pr6|87          ca.list\r
+003575  aa   400000 3150 03    cana    131072,du\r
+003576  aa   000014 6000 04    tze     12,ic           003612\r
+003577  la  4 00350 3735 20    epp7    pr4|232,*\r
+003600  aa   000620 2360 07    ldq     400,dl\r
+003601  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003602  aa   000005 1160 07    cmpq    5,dl\r
+003603  aa   000002 6040 04    tmi     2,ic            003605\r
+003604  aa   000005 2360 07    ldq     5,dl\r
+003605  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003606  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003607  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003610  aa   774507 00 0006    desc9a  -1721,ql                000316 = 040154151163\r
+003611  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 764\r
+       pl1_stat_$single_symbol_list = ca.single_symbol_list;\r
+\r
+003612  aa  6 00130 2351 00    lda     pr6|88          ca.single_symbol_list\r
+003613  la  4 00374 7551 20    sta     pr4|252,*               pl1_stat_$single_symbol_list\r
+                                               STATEMENT 1 ON LINE 765\r
+       if ca.single_symbol_list\r
+       then pl1_stat_$options = pl1_stat_$options || " single_symbol_list";\r
+\r
+003614  aa   000014 6000 04    tze     12,ic           003630\r
+003615  la  4 00350 3735 20    epp7    pr4|232,*\r
+003616  aa   000620 2360 07    ldq     400,dl\r
+003617  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003620  aa   000023 1160 07    cmpq    19,dl\r
+003621  aa   000002 6040 04    tmi     2,ic            003623\r
+003622  aa   000023 2360 07    ldq     19,dl\r
+003623  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003624  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003625  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003626  aa   774766 00 0006    desc9a  -1546,ql                000613 = 040163151156\r
+003627  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 768\r
+       symbols_on = ca.symbols | ca.map | ca.list | ca.single_symbol_list;\r
+\r
+003630  aa  6 00127 2351 00    lda     pr6|87          ca.list\r
+003631  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+003632  aa  6 00603 7551 00    sta     pr6|387         ca.list\r
+003633  aa  6 00126 2351 00    lda     pr6|86          ca.map\r
+003634  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+003635  aa  6 00125 2751 00    ora     pr6|85          ca.symbols\r
+003636  aa  6 00603 2751 00    ora     pr6|387         ca.list\r
+003637  aa  6 00130 2751 00    ora     pr6|88          ca.single_symbol_list\r
+003640  aa  6 00356 7551 00    sta     pr6|238         symbols_on\r
+                                               STATEMENT 1 ON LINE 769\r
+       produce_listing, pl1_stat_$listing_on = ca.source | symbols_on;\r
+\r
+003641  aa  6 00124 2751 00    ora     pr6|84          ca.source\r
+003642  aa  6 00342 7551 00    sta     pr6|226         produce_listing\r
+003643  la  4 00326 7551 20    sta     pr4|214,*               pl1_stat_$listing_on\r
+                                               STATEMENT 1 ON LINE 771\r
+       pl1_stat_$brief_error_mode = ca.brief;\r
+\r
+003644  aa  6 00131 2351 00    lda     pr6|89          ca.brief\r
+003645  la  4 00254 7551 20    sta     pr4|172,*               pl1_stat_$brief_error_mode\r
+                                               STATEMENT 1 ON LINE 773\r
+       if ca.severity\r
+       then pl1_stat_$options = pl1_stat_$options || " severity" || convert (digit_pic, pl1_stat_$severity_plateau);\r
+\r
+003646  aa  6 00133 2351 00    lda     pr6|91          ca.severity\r
+003647  aa   000047 6000 04    tze     39,ic           003716\r
+003650  la  4 00372 3735 20    epp7    pr4|250,*               pl1_stat_$severity_plateau\r
+003651  aa  000 100 301 500    btd     (pr),(pr)\r
+003652  aa  7 00000 00 0004    desc9a  pr7|0,4         pl1_stat_$severity_plateau\r
+003653  aa  6 00756 01 0002    desc9ls pr6|494,2,0\r
+003654  aa  6 00603 4501 00    stz     pr6|387\r
+003655  aa  100 004 024 500    mvne    (pr),(ic),(pr)\r
+003656  aa  6 00756 01 0002    desc9ls pr6|494,2,0\r
+003657  aa   006671 00 0002    desc9a  3513,2          012546 = 070321000000\r
+003660  aa  6 00603 00 0001    desc9a  pr6|387,1\r
+003661  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+003662  aa   000011 0760 07    adq     9,dl\r
+003663  aa  0 00551 7001 00    tsx0    pr0|361         alloc_char_temp\r
+003664  la  4 00350 3715 20    epp5    pr4|232,*\r
+003665  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003666  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+003667  aa  5 00001 00 0017    desc9a  pr5|1,x7                pl1_stat_$options\r
+003670  aa  2 00000 00 0017    desc9a  pr2|0,x7\r
+003671  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003672  aa  040 117 100 404    mlr     (ic),(pr,x7),fill(040)\r
+003673  aa   774533 00 0011    desc9a  -1701,9         000425 = 040163145166\r
+003674  aa  2 00000 00 0011    desc9a  pr2|0,9\r
+003675  aa  6 00756 7561 00    stq     pr6|494\r
+003676  aa   000001 0760 07    adq     1,dl\r
+003677  aa  6 00645 7561 00    stq     pr6|421\r
+003700  aa  0 00606 7001 00    tsx0    pr0|390         cat_realloc_chars\r
+003701  aa  6 00756 2351 00    lda     pr6|494\r
+003702  aa  040 105 100 500    mlr     (pr),(pr,al),fill(040)\r
+003703  aa  6 00603 00 0001    desc9a  pr6|387,1\r
+003704  aa  2 00000 00 0001    desc9a  pr2|0,1\r
+003705  aa  6 00645 2361 00    ldq     pr6|421\r
+003706  aa   000620 1160 07    cmpq    400,dl\r
+003707  aa   000002 6040 04    tmi     2,ic            003711\r
+003710  aa   000620 2360 07    ldq     400,dl\r
+003711  la  4 00350 7561 20    stq     pr4|232,*               pl1_stat_$options\r
+003712  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+003713  aa  2 00000 00 0006    desc9a  pr2|0,ql\r
+003714  aa  5 00001 00 0006    desc9a  pr5|1,ql                pl1_stat_$options\r
+003715  aa   000004 7100 04    tra     4,ic            003721\r
+                                               STATEMENT 1 ON LINE 775\r
+       else pl1_stat_$severity_plateau = 1;\r
+\r
+003716  aa  0 01014 7001 00    tsx0    pr0|524         shorten_stack\r
+003717  aa   000001 2360 07    ldq     1,dl\r
+003720  la  4 00372 7561 20    stq     pr4|250,*               pl1_stat_$severity_plateau\r
+                                               STATEMENT 1 ON LINE 777\r
+       if ca.profile\r
+       then pl1_stat_$options = pl1_stat_$options || " profile";\r
+\r
+003721  aa  6 00135 2351 00    lda     pr6|93          ca.profile\r
+003722  aa   000014 6000 04    tze     12,ic           003736\r
+003723  la  4 00350 3735 20    epp7    pr4|232,*\r
+003724  aa   000620 2360 07    ldq     400,dl\r
+003725  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003726  aa   000010 1160 07    cmpq    8,dl\r
+003727  aa   000002 6040 04    tmi     2,ic            003731\r
+003730  aa   000010 2360 07    ldq     8,dl\r
+003731  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003732  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003733  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003734  aa   774361 00 0006    desc9a  -1807,ql                000314 = 040160162157\r
+003735  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 780\r
+       if ca.long_profile\r
+       then pl1_stat_$options = pl1_stat_$options || " long_profile";\r
+\r
+003736  aa  6 00136 2351 00    lda     pr6|94          ca.long_profile\r
+003737  aa   400000 3150 03    cana    131072,du\r
+003740  aa   000014 6000 04    tze     12,ic           003754\r
+003741  la  4 00350 3735 20    epp7    pr4|232,*\r
+003742  aa   000620 2360 07    ldq     400,dl\r
+003743  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003744  aa   000015 1160 07    cmpq    13,dl\r
+003745  aa   000002 6040 04    tmi     2,ic            003747\r
+003746  aa   000015 2360 07    ldq     13,dl\r
+003747  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003750  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003751  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003752  aa   774567 00 0006    desc9a  -1673,ql                000540 = 040154157156\r
+003753  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 783\r
+       pl1_stat_$profile = ca.profile | ca.long_profile;\r
+\r
+003754  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+003755  aa  6 00135 2751 00    ora     pr6|93          ca.profile\r
+003756  la  4 00362 7551 20    sta     pr4|242,*               pl1_stat_$profile\r
+                                               STATEMENT 1 ON LINE 785\r
+       cg_static_$separate_static = ca.separate_static;\r
+\r
+003757  aa  6 00140 2351 00    lda     pr6|96          ca.separate_static\r
+003760  la  4 00222 7551 20    sta     pr4|146,*               cg_static_$separate_static\r
+                                               STATEMENT 1 ON LINE 786\r
+       if ca.separate_static\r
+       then pl1_stat_$options = pl1_stat_$options || " separate_static";\r
+\r
+003761  aa   000014 6000 04    tze     12,ic           003775\r
+003762  la  4 00350 3735 20    epp7    pr4|232,*\r
+003763  aa   000620 2360 07    ldq     400,dl\r
+003764  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+003765  aa   000020 1160 07    cmpq    16,dl\r
+003766  aa   000002 6040 04    tmi     2,ic            003770\r
+003767  aa   000020 2360 07    ldq     16,dl\r
+003770  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+003771  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+003772  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+003773  aa   774542 00 0006    desc9a  -1694,ql                000534 = 040163145160\r
+003774  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 789\r
+       pl1_stat_$check_ansi = ca.check_ansi;\r
+\r
+003775  aa  6 00142 2351 00    lda     pr6|98          ca.check_ansi\r
+003776  la  4 00270 7551 20    sta     pr4|184,*               pl1_stat_$check_ansi\r
+                                               STATEMENT 1 ON LINE 791\r
+       pl1_stat_$print_cp_dcl = ca.cpdcls;\r
+\r
+003777  aa  6 00152 2351 00    lda     pr6|106         ca.cpdcls\r
+004000  la  4 00360 7551 20    sta     pr4|240,*               pl1_stat_$print_cp_dcl\r
+                                               STATEMENT 1 ON LINE 792\r
+       if ca.cpdcls\r
+       then pl1_stat_$options = pl1_stat_$options || " cpdcls";\r
+\r
+004001  aa   000014 6000 04    tze     12,ic           004015\r
+004002  la  4 00350 3735 20    epp7    pr4|232,*\r
+004003  aa   000620 2360 07    ldq     400,dl\r
+004004  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+004005  aa   000007 1160 07    cmpq    7,dl\r
+004006  aa   000002 6040 04    tmi     2,ic            004010\r
+004007  aa   000007 2360 07    ldq     7,dl\r
+004010  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+004011  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+004012  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+004013  aa   774300 00 0006    desc9a  -1856,ql                000312 = 040143160144\r
+004014  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 795\r
+       cg_static_$debug = ca.debug | ca.debug_semant | ca.debug_cg;\r
+\r
+004015  aa  6 00146 2351 00    lda     pr6|102         ca.debug\r
+004016  aa  6 00147 2751 00    ora     pr6|103         ca.debug_semant\r
+004017  aa  6 00150 2751 00    ora     pr6|104         ca.debug_cg\r
+004020  la  4 00212 7551 20    sta     pr4|138,*               cg_static_$debug\r
+                                               STATEMENT 1 ON LINE 796\r
+       pl1_stat_$debug_semant = ca.debug_semant;\r
+\r
+004021  aa  6 00147 2351 00    lda     pr6|103         ca.debug_semant\r
+004022  la  4 00300 7551 20    sta     pr4|192,*               pl1_stat_$debug_semant\r
+                                               STATEMENT 1 ON LINE 798\r
+       if ca.link\r
+       then pl1_stat_$options = pl1_stat_$options || " link";\r
+\r
+004023  aa  6 00154 2351 00    lda     pr6|108         ca.link\r
+004024  aa   400000 3150 03    cana    131072,du\r
+004025  aa   000014 6000 04    tze     12,ic           004041\r
+004026  la  4 00350 3735 20    epp7    pr4|232,*\r
+004027  aa   000620 2360 07    ldq     400,dl\r
+004030  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+004031  aa   000005 1160 07    cmpq    5,dl\r
+004032  aa   000002 6040 04    tmi     2,ic            004034\r
+004033  aa   000005 2360 07    ldq     5,dl\r
+004034  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+004035  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+004036  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+004037  aa   774252 00 0006    desc9a  -1878,ql                000310 = 040154151156\r
+004040  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 801\r
+       if ca.no_version\r
+       then ;\r
+\r
+004041  aa  6 00156 2351 00    lda     pr6|110         ca.no_version\r
+004042  aa   000002 6000 04    tze     2,ic            004044\r
+004043  aa   000045 7100 04    tra     37,ic           004110\r
+                                               STATEMENT 1 ON LINE 803\r
+       else do;\r
+\r
+                                               STATEMENT 1 ON LINE 804\r
+               if pl1_version$pl1_release = "EXL"\r
+               then call ioa_ ("^a", pl1_version$pl1_version);\r
+\r
+004044  la  4 00422 3735 20    epp7    pr4|274,*\r
+004045  la  4 00422 7271 20    lxl7    pr4|274,*               pl1_version$pl1_release\r
+004046  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+004047  aa  7 00001 00 0017    desc9a  pr7|1,x7                pl1_version$pl1_release\r
+004050  aa   774155 00 0003    desc9a  -1939,3         000223 = 105130114000\r
+004051  aa   000021 6010 04    tnz     17,ic           004072\r
+004052  aa   136141 2350 03    lda     48225,du\r
+004053  aa  6 00645 7551 00    sta     pr6|421\r
+004054  aa  6 00645 3521 00    epp2    pr6|421\r
+004055  aa  6 00614 2521 00    spri2   pr6|396\r
+004056  la  4 00424 3715 20    epp5    pr4|276,*\r
+004057  aa  5 00001 3521 00    epp2    pr5|1           pl1_version$pl1_version\r
+004060  aa  6 00616 2521 00    spri2   pr6|398\r
+004061  aa   774144 3520 04    epp2    -1948,ic                000225 = 524000000002\r
+004062  aa  6 00620 2521 00    spri2   pr6|400\r
+004063  aa   774137 3520 04    epp2    -1953,ic                000222 = 530000000400\r
+004064  aa  6 00622 2521 00    spri2   pr6|402\r
+004065  aa  6 00612 6211 00    eax1    pr6|394\r
+004066  aa   010000 4310 07    fld     4096,dl\r
+004067  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+004070  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+004071  aa   000017 7100 04    tra     15,ic           004110\r
+                                               STATEMENT 1 ON LINE 806\r
+               else call ioa_ ("PL/1 ^a", pl1_version$pl1_release);\r
+\r
+004072  aa   774236 2370 04    ldaq    -1890,ic                000330 = 120114057061 040136141000\r
+004073  aa  6 00732 7571 00    staq    pr6|474\r
+004074  aa  6 00732 3521 00    epp2    pr6|474\r
+004075  aa  6 00614 2521 00    spri2   pr6|396\r
+004076  aa  7 00001 3521 00    epp2    pr7|1           pl1_version$pl1_release\r
+004077  aa  6 00616 2521 00    spri2   pr6|398\r
+004100  aa   774121 3520 04    epp2    -1967,ic                000221 = 524000000007\r
+004101  aa  6 00620 2521 00    spri2   pr6|400\r
+004102  aa   774116 3520 04    epp2    -1970,ic                000220 = 530000000003\r
+004103  aa  6 00622 2521 00    spri2   pr6|402\r
+004104  aa  6 00612 6211 00    eax1    pr6|394\r
+004105  aa   010000 4310 07    fld     4096,dl\r
+004106  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+004107  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 807\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 809\r
+       prefix = ""b;\r
+\r
+004110  aa  6 00334 4501 00    stz     pr6|220         prefix.mask\r
+004111  aa  6 00335 4501 00    stz     pr6|221         prefix.conditions\r
+                                               STATEMENT 1 ON LINE 810\r
+       if ca.prefix\r
+       then if ^parse_prefix (prefix_string)\r
+            then return;\r
+\r
+004112  aa  6 00155 2351 00    lda     pr6|109         ca.prefix\r
+004113  aa   000023 6000 04    tze     19,ic           004136\r
+004114  aa  6 00336 2361 00    ldq     pr6|222         prefix_string_length\r
+004115  aa   526000 2760 03    orq     175104,du\r
+004116  aa  6 00645 7561 00    stq     pr6|421\r
+004117  aa  6 00340 3521 20    epp2    pr6|224,*               prefix_string\r
+004120  aa  6 00650 2521 00    spri2   pr6|424\r
+004121  aa  6 00756 3521 00    epp2    pr6|494\r
+004122  aa  6 00652 2521 00    spri2   pr6|426\r
+004123  aa  6 00645 3521 00    epp2    pr6|421\r
+004124  aa  6 00654 2521 00    spri2   pr6|428\r
+004125  aa   774145 3520 04    epp2    -1947,ic                000272 = 514000000001\r
+004126  aa  6 00656 2521 00    spri2   pr6|430\r
+004127  aa  6 00646 3521 00    epp2    pr6|422\r
+004130  aa   010000 4310 07    fld     4096,dl\r
+004131  aa  2 00000 7571 00    staq    pr2|0\r
+004132  aa   003454 6700 04    tsp4    1836,ic         007606\r
+004133  aa  6 00756 2351 00    lda     pr6|494\r
+004134  aa   400000 3150 03    cana    131072,du\r
+004135  aa  0 00631 6001 00    tze     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 814\r
+       pl1_stat_$options = ltrim (pl1_stat_$options);\r
+\r
+004136  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004137  la  4 00350 3735 20    epp7    pr4|232,*\r
+004140  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+004141  aa  000 000 164 540    tct     (pr,rl)\r
+004142  aa  7 00001 00 0017    desc9a  pr7|1,x7                pl1_stat_$options\r
+004143  aa  0 76605 0001 00    arg     pr0|-635                = 777777777777\r
+004144  aa  6 00056 0001 00    arg     pr6|46\r
+004145  aa  6 00056 2361 00    ldq     pr6|46\r
+004146  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+004147  aa  6 00645 7561 00    stq     pr6|421\r
+004150  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+004151  aa  6 00645 1761 00    sbq     pr6|421\r
+004152  aa   000620 1160 07    cmpq    400,dl\r
+004153  aa   000002 6040 04    tmi     2,ic            004155\r
+004154  aa   000620 2360 07    ldq     400,dl\r
+004155  aa  6 00645 2351 00    lda     pr6|421\r
+004156  la  4 00350 7561 20    stq     pr4|232,*               pl1_stat_$options\r
+004157  aa  040 140 100 545    mlr     (pr,rl,al),(pr,rl),fill(040)\r
+004160  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+004161  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 817\r
+       call find_source_file_ (pathname, "pl1", sourcename, source_seg, bitcnt, code);\r
+\r
+004162  aa   774033 2350 04    lda     -2021,ic                000215 = 160154061000\r
+004163  aa  6 00645 7551 00    sta     pr6|421\r
+004164  aa  6 00232 3521 00    epp2    pr6|154         pathname\r
+004165  aa  6 00762 2521 00    spri2   pr6|498\r
+004166  aa  6 00645 3521 00    epp2    pr6|421\r
+004167  aa  6 00764 2521 00    spri2   pr6|500\r
+004170  aa  6 00346 3521 00    epp2    pr6|230         sourcename\r
+004171  aa  6 00766 2521 00    spri2   pr6|502\r
+004172  aa  6 00344 3521 00    epp2    pr6|228         source_seg\r
+004173  aa  6 00770 2521 00    spri2   pr6|504\r
+004174  aa  6 00106 3521 00    epp2    pr6|70          bitcnt\r
+004175  aa  6 00772 2521 00    spri2   pr6|506\r
+004176  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004177  aa  6 00774 2521 00    spri2   pr6|508\r
+004200  aa   774016 3520 04    epp2    -2034,ic                000216 = 526000000400\r
+004201  aa  6 00776 2521 00    spri2   pr6|510\r
+004202  aa   774040 3520 04    epp2    -2016,ic                000242 = 524000000003\r
+004203  aa  6 01000 2521 00    spri2   pr6|512\r
+004204  aa   774070 3520 04    epp2    -1992,ic                000274 = 526000000040\r
+004205  aa  6 01002 2521 00    spri2   pr6|514\r
+004206  aa   774006 3520 04    epp2    -2042,ic                000214 = 464000000000\r
+004207  aa  6 01004 2521 00    spri2   pr6|516\r
+004210  aa   774003 3520 04    epp2    -2045,ic                000213 = 404000000030\r
+004211  aa  6 01006 2521 00    spri2   pr6|518\r
+004212  aa   774057 3520 04    epp2    -2001,ic                000271 = 404000000043\r
+004213  aa  6 01010 2521 00    spri2   pr6|520\r
+004214  aa  6 00760 6211 00    eax1    pr6|496\r
+004215  aa   030000 4310 07    fld     12288,dl\r
+004216  la  4 00506 3521 20    epp2    pr4|326,*               find_source_file_\r
+004217  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 818\r
+       if source_seg = null\r
+       then do;\r
+\r
+004220  aa  6 00344 2371 00    ldaq    pr6|228         source_seg\r
+004221  aa   774161 6770 04    eraq    -1935,ic                000402 = 077777000043 000001000000\r
+004222  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+004223  aa   000031 6010 04    tnz     25,ic           004254\r
+                                               STATEMENT 1 ON LINE 820\r
+               call com_err_ (code, my_name, "^a", pathname);\r
+\r
+004224  aa   136141 2350 03    lda     48225,du\r
+004225  aa  6 00645 7551 00    sta     pr6|421\r
+004226  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004227  aa  6 00736 2521 00    spri2   pr6|478\r
+004230  aa   773765 3520 04    epp2    -2059,ic                000215 = 160154061000\r
+004231  aa  6 00740 2521 00    spri2   pr6|480\r
+004232  aa  6 00645 3521 00    epp2    pr6|421\r
+004233  aa  6 00742 2521 00    spri2   pr6|482\r
+004234  aa  6 00232 3521 00    epp2    pr6|154         pathname\r
+004235  aa  6 00744 2521 00    spri2   pr6|484\r
+004236  aa   774033 3520 04    epp2    -2021,ic                000271 = 404000000043\r
+004237  aa  6 00746 2521 00    spri2   pr6|486\r
+004240  aa   774030 3520 04    epp2    -2024,ic                000270 = 526000000003\r
+004241  aa  6 00750 2521 00    spri2   pr6|488\r
+004242  aa   773763 3520 04    epp2    -2061,ic                000225 = 524000000002\r
+004243  aa  6 00752 2521 00    spri2   pr6|490\r
+004244  aa   773752 3520 04    epp2    -2070,ic                000216 = 526000000400\r
+004245  aa  6 00754 2521 00    spri2   pr6|492\r
+004246  aa  6 00734 6211 00    eax1    pr6|476\r
+004247  aa   020000 4310 07    fld     8192,dl\r
+004250  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004251  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+004252  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 821\r
+               return;\r
+\r
+004253  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 822\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 824\r
+       if bitcnt = 0\r
+       then do;\r
+\r
+004254  aa  6 00106 2361 00    ldq     pr6|70          bitcnt\r
+004255  aa   000042 6010 04    tnz     34,ic           004317\r
+                                               STATEMENT 1 ON LINE 826\r
+               call com_err_ (error_table_$zero_length_seg, my_name, "^a", pathname);\r
+\r
+004256  aa   136141 2350 03    lda     48225,du\r
+004257  aa  6 00645 7551 00    sta     pr6|421\r
+004260  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004261  la  4 00240 3521 20    epp2    pr4|160,*               error_table_$zero_length_seg\r
+004262  aa  6 00736 2521 00    spri2   pr6|478\r
+004263  aa   773732 3520 04    epp2    -2086,ic                000215 = 160154061000\r
+004264  aa  6 00740 2521 00    spri2   pr6|480\r
+004265  aa  6 00645 3521 00    epp2    pr6|421\r
+004266  aa  6 00742 2521 00    spri2   pr6|482\r
+004267  aa  6 00232 3521 00    epp2    pr6|154         pathname\r
+004270  aa  6 00744 2521 00    spri2   pr6|484\r
+004271  aa   774000 3520 04    epp2    -2048,ic                000271 = 404000000043\r
+004272  aa  6 00746 2521 00    spri2   pr6|486\r
+004273  aa   773775 3520 04    epp2    -2051,ic                000270 = 526000000003\r
+004274  aa  6 00750 2521 00    spri2   pr6|488\r
+004275  aa   773730 3520 04    epp2    -2088,ic                000225 = 524000000002\r
+004276  aa  6 00752 2521 00    spri2   pr6|490\r
+004277  aa   773717 3520 04    epp2    -2097,ic                000216 = 526000000400\r
+004300  aa  6 00754 2521 00    spri2   pr6|492\r
+004301  aa  6 00734 6211 00    eax1    pr6|476\r
+004302  aa   020000 4310 07    fld     8192,dl\r
+004303  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+004304  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 827\r
+               call hcs_$terminate_noname (source_seg, code);\r
+\r
+004305  aa  6 00344 3521 00    epp2    pr6|228         source_seg\r
+004306  aa  6 00606 2521 00    spri2   pr6|390\r
+004307  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004310  aa  6 00610 2521 00    spri2   pr6|392\r
+004311  aa  6 00604 6211 00    eax1    pr6|388\r
+004312  aa   010000 4310 07    fld     4096,dl\r
+004313  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004314  la  4 00522 3521 20    epp2    pr4|338,*               hcs_$terminate_noname\r
+004315  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 828\r
+               return;\r
+\r
+004316  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 829\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 831\r
+       objectname = before (sourcename || " ", ".pl1 ");\r
+\r
+004317  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+004320  aa  6 00346 00 0040    desc9a  pr6|230,32      sourcename\r
+004321  aa  6 00612 00 0040    desc9a  pr6|394,32\r
+004322  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+004323  aa   006234 00 0001    desc9a  3228,1          012556 = 040000000000\r
+004324  aa  6 00622 00 0001    desc9a  pr6|402,1\r
+004325  aa   000041 2360 07    ldq     33,dl\r
+004326  aa  6 00612 3521 00    epp2    pr6|394\r
+004327  aa  0 01227 7001 00    tsx0    pr0|663         set_chars_eis\r
+004330  aa   000005 2360 07    ldq     5,dl\r
+004331  aa   773755 3520 04    epp2    -2067,ic                000306 = 056160154061\r
+004332  aa  0 01424 7001 00    tsx0    pr0|788         index_before_cs\r
+004333  aa  040 100 100 540    mlr     (pr,rl),(pr),fill(040)\r
+004334  aa  6 00612 00 0006    desc9a  pr6|394,ql\r
+004335  aa  6 00220 00 0040    desc9a  pr6|144,32      objectname\r
+                                               STATEMENT 1 ON LINE 832\r
+       objectname = before (objectname, ".ex ");\r
+\r
+004336  aa   000040 2360 07    ldq     32,dl\r
+004337  aa  6 00220 3521 00    epp2    pr6|144         objectname\r
+004340  aa  0 01227 7001 00    tsx0    pr0|663         set_chars_eis\r
+004341  aa   000004 2360 07    ldq     4,dl\r
+004342  aa   773650 3520 04    epp2    -2136,ic                000212 = 056145170040\r
+004343  aa  0 01424 7001 00    tsx0    pr0|788         index_before_cs\r
+004344  aa  040 100 100 540    mlr     (pr,rl),(pr),fill(040)\r
+004345  aa  6 00220 00 0006    desc9a  pr6|144,ql      objectname\r
+004346  aa  6 00220 00 0040    desc9a  pr6|144,32      objectname\r
+                                               STATEMENT 1 ON LINE 833\r
+       pl1_stat_$pathname = pathname;\r
+\r
+004347  aa   000250 2360 07    ldq     168,dl\r
+004350  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004351  la  4 00354 7561 20    stq     pr4|236,*               pl1_stat_$pathname\r
+004352  la  4 00354 3735 20    epp7    pr4|236,*\r
+004353  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+004354  aa  6 00232 00 0006    desc9a  pr6|154,ql      pathname\r
+004355  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$pathname\r
+                                               STATEMENT 1 ON LINE 834\r
+       pl1_stat_$seg_name = rtrim (objectname);\r
+\r
+004356  aa  000 000 165 500    tctr    (pr)\r
+004357  aa  6 00220 00 0040    desc9a  pr6|144,32      objectname\r
+004360  aa  0 76605 0001 00    arg     pr0|-635                = 777777777777\r
+004361  aa  6 00056 0001 00    arg     pr6|46\r
+004362  aa  6 00056 2361 00    ldq     pr6|46\r
+004363  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+004364  aa  6 00645 7561 00    stq     pr6|421\r
+004365  aa   000040 2360 07    ldq     32,dl\r
+004366  aa  6 00645 1761 00    sbq     pr6|421\r
+004367  aa   000040 1160 07    cmpq    32,dl\r
+004370  aa   000002 6040 04    tmi     2,ic            004372\r
+004371  aa   000040 2360 07    ldq     32,dl\r
+004372  la  4 00370 7561 20    stq     pr4|248,*               pl1_stat_$seg_name\r
+004373  la  4 00370 3715 20    epp5    pr4|248,*\r
+004374  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+004375  aa  6 00220 00 0006    desc9a  pr6|144,ql      objectname\r
+004376  aa  5 00001 00 0006    desc9a  pr5|1,ql                pl1_stat_$seg_name\r
+                                               STATEMENT 1 ON LINE 836\r
+       len = divide (bitcnt + 8, 9, 21);\r
+\r
+004377  aa  6 00106 2361 00    ldq     pr6|70          bitcnt\r
+004400  aa   000010 0760 07    adq     8,dl\r
+004401  aa   000011 5060 07    div     9,dl\r
+004402  aa  6 00170 7561 00    stq     pr6|120         len\r
+                                               STATEMENT 1 ON LINE 838\r
+       if pl1_blast_$blast_on\r
+       then if pl1_blast_$blast_time > blast_time\r
+            then do;\r
+\r
+004403  la  4 00244 2351 20    lda     pr4|164,*               pl1_blast_$blast_on\r
+004404  aa   000026 6000 04    tze     22,ic           004432\r
+004405  la  4 00246 2371 20    ldaq    pr4|166,*               pl1_blast_$blast_time\r
+004406  ia  4 00010 1171 00    cmpaq   pr4|8           blast_time\r
+004407  aa   000023 6044 04    tmoz    19,ic           004432\r
+                                               STATEMENT 1 ON LINE 841\r
+                    call ioa_ ("^a", pl1_blast_$blast_message);\r
+\r
+004410  aa   136141 2350 03    lda     48225,du\r
+004411  aa  6 00645 7551 00    sta     pr6|421\r
+004412  aa  6 00645 3521 00    epp2    pr6|421\r
+004413  aa  6 00650 2521 00    spri2   pr6|424\r
+004414  la  4 00242 3535 20    epp3    pr4|162,*\r
+004415  aa  3 00001 3521 00    epp2    pr3|1           pl1_blast_$blast_message\r
+004416  aa  6 00652 2521 00    spri2   pr6|426\r
+004417  aa   773606 3520 04    epp2    -2170,ic                000225 = 524000000002\r
+004420  aa  6 00654 2521 00    spri2   pr6|428\r
+004421  aa   773570 3520 04    epp2    -2184,ic                000211 = 530000000100\r
+004422  aa  6 00656 2521 00    spri2   pr6|430\r
+004423  aa  6 00646 6211 00    eax1    pr6|422\r
+004424  aa   010000 4310 07    fld     4096,dl\r
+004425  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+004426  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 842\r
+                    blast_time = clock ();\r
+\r
+004427  aa  0 01435 7001 00    tsx0    pr0|797         clock_mac\r
+004430  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004431  ia  4 00010 7571 00    staq    pr4|8           blast_time\r
+                                               STATEMENT 1 ON LINE 843\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 845\r
+       wdirname = get_wdir_ ();\r
+\r
+004432  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+004433  aa  6 00606 2521 00    spri2   pr6|390\r
+004434  aa  6 00604 6211 00    eax1    pr6|388\r
+004435  aa   004000 4310 07    fld     2048,dl\r
+004436  la  4 00514 3521 20    epp2    pr4|332,*               get_wdir_\r
+004437  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 846\r
+       clock_time = clock ();\r
+\r
+004440  aa  0 01435 7001 00    tsx0    pr0|797         clock_mac\r
+004441  aa  6 00160 7571 00    staq    pr6|112         clock_time\r
+                                               STATEMENT 1 ON LINE 847\r
+       comptime = date_time_$format ("date_time", clock_time, "", "");\r
+\r
+004442  aa   773760 2370 04    ldaq    -2064,ic                000422 = 144141164145 137164151155\r
+004443  aa  6 00604 7571 00    staq    pr6|388\r
+004444  aa   145000 2350 03    lda     51712,du\r
+004445  aa  6 00606 7551 00    sta     pr6|390\r
+004446  aa  6 00604 3521 00    epp2    pr6|388\r
+004447  aa  6 00762 2521 00    spri2   pr6|498\r
+004450  aa  6 00160 3521 00    epp2    pr6|112         clock_time\r
+004451  aa  6 00764 2521 00    spri2   pr6|500\r
+004452  aa  6 00645 3521 00    epp2    pr6|421\r
+004453  aa  6 00766 2521 00    spri2   pr6|502\r
+004454  aa  6 00757 3521 00    epp2    pr6|495\r
+004455  aa  6 00770 2521 00    spri2   pr6|504\r
+004456  aa  6 01013 3521 00    epp2    pr6|523\r
+004457  aa  6 00772 2521 00    spri2   pr6|506\r
+004460  aa   773564 3520 04    epp2    -2188,ic                000244 = 524000000011\r
+004461  aa  6 00774 2521 00    spri2   pr6|508\r
+004462  aa   773526 3520 04    epp2    -2218,ic                000210 = 410000000107\r
+004463  aa  6 00776 2521 00    spri2   pr6|510\r
+004464  aa   773523 3520 04    epp2    -2221,ic                000207 = 524000000000\r
+004465  aa  6 01000 2521 00    spri2   pr6|512\r
+004466  aa  6 01002 2521 00    spri2   pr6|514\r
+004467  aa   773607 3520 04    epp2    -2169,ic                000276 = 530000000372\r
+004470  aa  6 01004 2521 00    spri2   pr6|516\r
+004471  aa  6 00760 6211 00    eax1    pr6|496\r
+004472  aa   024000 4310 07    fld     10240,dl\r
+004473  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004474  la  4 00502 3521 20    epp2    pr4|322,*               date_time_$format\r
+004475  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+004476  aa  6 01012 2361 00    ldq     pr6|522\r
+004477  aa   000100 1160 07    cmpq    64,dl\r
+004500  aa   000002 6040 04    tmi     2,ic            004502\r
+004501  aa   000100 2360 07    ldq     64,dl\r
+004502  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004503  ia  4 00012 7561 00    stq     pr4|10          comptime\r
+004504  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+004505  aa  6 01013 00 0006    desc9a  pr6|523,ql\r
+004506  ia  4 00013 00 0006    desc9a  pr4|11,ql               comptime\r
+                                               STATEMENT 1 ON LINE 849\r
+       list_hold = null;\r
+\r
+004507  aa   773673 2370 04    ldaq    -2117,ic                000402 = 077777000043 000001000000\r
+004510  aa  6 00172 7571 00    staq    pr6|122         list_hold\r
+                                               STATEMENT 1 ON LINE 850\r
+       object_hold = null;\r
+\r
+004511  aa  6 00216 7571 00    staq    pr6|142         object_hold\r
+                                               STATEMENT 1 ON LINE 852\r
+       on cleanup\r
+            begin;\r
+\r
+004512  aa   000007 7260 07    lxl6    7,dl\r
+004513  aa   773671 3520 04    epp2    -2119,ic                000404 = 143154145141\r
+004514  aa  0 00717 7001 00    tsx0    pr0|463         enable_op\r
+004515  aa   000004 7100 04    tra     4,ic            004521\r
+004516  aa     000432000000\r
+004517  aa   000021 7100 04    tra     17,ic           004540\r
+BEGIN CONDITION cleanup.1\r
+ENTRY TO cleanup.1                                          STATEMENT 1 ON LINE 852\r
+       on cleanup\r
+            begin;\r
+\r
+004520  da     001447200000\r
+004521  aa   000100 6270 00    eax7    64\r
+004522  aa  7 00034 3521 20    epp2    pr7|28,*\r
+004523  aa  2 01047 2721 00    tsp2    pr2|551         int_entry\r
+004524  aa     000000000000\r
+004525  2s     000210004470\r
+                                               STATEMENT 1 ON LINE 854\r
+               if ^cg_static_$debug\r
+               then call truncate;\r
+\r
+004526  la  4 00212 2351 20    lda     pr4|138,*               cg_static_$debug\r
+004527  aa   000006 6010 04    tnz     6,ic            004535\r
+004530  aa   000001 7270 07    lxl7    1,dl\r
+004531  aa  6 00056 6211 00    eax1    pr6|46\r
+004532  aa   000000 4310 07    fld     0,dl\r
+004533  aa   005105 3520 04    epp2    2629,ic         011640 = 000120627000\r
+004534  aa  0 00627 7001 00    tsx0    pr0|407         call_int_other\r
+                                               STATEMENT 1 ON LINE 857\r
+               pl1_stat_$compiler_invoked = "0"b;\r
+\r
+004535  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004536  la  4 00272 4501 20    stz     pr4|186,*               pl1_stat_$compiler_invoked\r
+                                               STATEMENT 1 ON LINE 858\r
+            end;\r
+\r
+004537  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+  END CONDITION cleanup.1\r
+                                               STATEMENT 1 ON LINE 860\r
+       if produce_listing\r
+       then begin;\r
+\r
+004540  aa  6 00342 2351 00    lda     pr6|226         produce_listing\r
+004541  aa   400000 3150 03    cana    131072,du\r
+004542  aa   000567 6000 04    tze     375,ic          005331\r
+BEGIN BLOCK  2                                              STATEMENT 1 ON LINE 864\r
+               component = 0;\r
+\r
+004543  aa  6 00163 4501 00    stz     pr6|115         component\r
+                                               STATEMENT 1 ON LINE 865\r
+               lname = rtrim (objectname);\r
+\r
+004544  aa  000 000 165 500    tctr    (pr)\r
+004545  aa  6 00220 00 0040    desc9a  pr6|144,32      objectname\r
+004546  aa  0 76605 0001 00    arg     pr0|-635                = 777777777777\r
+004547  aa  6 00056 0001 00    arg     pr6|46\r
+004550  aa  6 00056 2361 00    ldq     pr6|46\r
+004551  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+004552  aa  6 01112 7561 00    stq     pr6|586\r
+004553  aa   000040 2360 07    ldq     32,dl\r
+004554  aa  6 01112 1761 00    sbq     pr6|586\r
+004555  aa   000040 1160 07    cmpq    32,dl\r
+004556  aa   000002 6040 04    tmi     2,ic            004560\r
+004557  aa   000040 2360 07    ldq     32,dl\r
+004560  aa  6 00205 7561 00    stq     pr6|133         lname\r
+004561  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+004562  aa  6 00220 00 0006    desc9a  pr6|144,ql      objectname\r
+004563  aa  6 00206 00 0006    desc9a  pr6|134,ql      lname\r
+                                               STATEMENT 1 ON LINE 866\r
+               if length (lname) > 27\r
+               then call com_err_ (error_table_$entlong, my_name,\r
+                       "The name of the listing segment is truncated to ^a.lis", lname);\r
+\r
+004564  aa  6 00205 2361 00    ldq     pr6|133         lname\r
+004565  aa   000033 1160 07    cmpq    27,dl\r
+004566  aa   000031 6044 04    tmoz    25,ic           004617\r
+004567  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+004570  aa   774346 00 0070    desc9a  -1818,56                001135 = 124150145040\r
+004571  aa  6 01114 00 0070    desc9a  pr6|588,56\r
+004572  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004573  la  4 00232 3521 20    epp2    pr4|154,*               error_table_$entlong\r
+004574  aa  6 01134 2521 00    spri2   pr6|604\r
+004575  aa   773420 3520 04    epp2    -2288,ic                000215 = 160154061000\r
+004576  aa  6 01136 2521 00    spri2   pr6|606\r
+004577  aa  6 01114 3521 00    epp2    pr6|588\r
+004600  aa  6 01140 2521 00    spri2   pr6|608\r
+004601  aa  6 00206 3521 00    epp2    pr6|134         lname\r
+004602  aa  6 01142 2521 00    spri2   pr6|610\r
+004603  aa   773466 3520 04    epp2    -2250,ic                000271 = 404000000043\r
+004604  aa  6 01144 2521 00    spri2   pr6|612\r
+004605  aa   773463 3520 04    epp2    -2253,ic                000270 = 526000000003\r
+004606  aa  6 01146 2521 00    spri2   pr6|614\r
+004607  aa   773363 3520 04    epp2    -2317,ic                000172 = 524000000066\r
+004610  aa  6 01150 2521 00    spri2   pr6|616\r
+004611  aa   773360 3520 04    epp2    -2320,ic                000171 = 530000000040\r
+004612  aa  6 01152 2521 00    spri2   pr6|618\r
+004613  aa  6 01132 6211 00    eax1    pr6|602\r
+004614  aa   020000 4310 07    fld     8192,dl\r
+004615  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+004616  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 870\r
+               listname = lname || ".list";\r
+\r
+004617  aa  6 00205 2361 00    ldq     pr6|133         lname\r
+004620  aa   000005 0760 07    adq     5,dl\r
+004621  aa  0 00551 7001 00    tsx0    pr0|361         alloc_char_temp\r
+004622  aa  6 00205 7271 00    lxl7    pr6|133         lname\r
+004623  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+004624  aa  6 00206 00 0017    desc9a  pr6|134,x7      lname\r
+004625  aa  2 00000 00 0017    desc9a  pr2|0,x7\r
+004626  aa  6 00205 7271 00    lxl7    pr6|133         lname\r
+004627  aa  040 117 100 404    mlr     (ic),(pr,x7),fill(040)\r
+004630  aa   773455 00 0005    desc9a  -2259,5         000304 = 056154151163\r
+004631  aa  2 00000 00 0005    desc9a  pr2|0,5\r
+004632  aa  040 100 100 540    mlr     (pr,rl),(pr),fill(040)\r
+004633  aa  2 00000 00 0006    desc9a  pr2|0,ql\r
+004634  aa  6 00175 00 0040    desc9a  pr6|125,32      listname\r
+                                               STATEMENT 1 ON LINE 872\r
+               call tssi_$get_file (wdirname, listname, pl1_stat_$list_ptr, list_hold, fcb, code);\r
+\r
+004635  aa  0 01014 7001 00    tsx0    pr0|524         shorten_stack\r
+004636  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+004637  aa  6 01156 2521 00    spri2   pr6|622\r
+004640  aa  6 00175 3521 00    epp2    pr6|125         listname\r
+004641  aa  6 01160 2521 00    spri2   pr6|624\r
+004642  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004643  la  4 00324 3521 20    epp2    pr4|212,*               pl1_stat_$list_ptr\r
+004644  aa  6 01162 2521 00    spri2   pr6|626\r
+004645  aa  6 00172 3521 00    epp2    pr6|122         list_hold\r
+004646  aa  6 01164 2521 00    spri2   pr6|628\r
+004647  aa  6 00164 3521 00    epp2    pr6|116         fcb\r
+004650  aa  6 01166 2521 00    spri2   pr6|630\r
+004651  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004652  aa  6 01170 2521 00    spri2   pr6|632\r
+004653  aa   773420 3520 04    epp2    -2288,ic                000273 = 526000000250\r
+004654  aa  6 01172 2521 00    spri2   pr6|634\r
+004655  aa   773417 3520 04    epp2    -2289,ic                000274 = 526000000040\r
+004656  aa  6 01174 2521 00    spri2   pr6|636\r
+004657  aa   773335 3520 04    epp2    -2339,ic                000214 = 464000000000\r
+004660  aa  6 01176 2521 00    spri2   pr6|638\r
+004661  aa  6 01200 2521 00    spri2   pr6|640\r
+004662  aa  6 01202 2521 00    spri2   pr6|642\r
+004663  aa   773406 3520 04    epp2    -2298,ic                000271 = 404000000043\r
+004664  aa  6 01204 2521 00    spri2   pr6|644\r
+004665  aa  6 01154 6211 00    eax1    pr6|620\r
+004666  aa   030000 4310 07    fld     12288,dl\r
+004667  la  4 00550 3521 20    epp2    pr4|360,*               tssi_$get_file\r
+004670  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 873\r
+               if pl1_stat_$list_ptr = null\r
+               then do;\r
+\r
+004671  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004672  la  4 00324 2371 20    ldaq    pr4|212,*               pl1_stat_$list_ptr\r
+004673  aa   773507 6770 04    eraq    -2233,ic                000402 = 077777000043 000001000000\r
+004674  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+004675  aa   000062 6010 04    tnz     50,ic           004757\r
+                                               STATEMENT 1 ON LINE 875\r
+                       call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", listname);\r
+\r
+004676  aa   773513 2350 04    lda     -2229,ic                000411 = 136141136133\r
+004677  aa   773513 2360 04    ldq     -2229,ic                000412 = 076136135136\r
+004700  aa  6 01114 7571 00    staq    pr6|588\r
+004701  aa   141000 2350 03    lda     49664,du\r
+004702  aa  6 01116 7551 00    sta     pr6|590\r
+004703  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+004704  aa  6 00360 00 0250    desc9a  pr6|240,168     wdirname\r
+004705  aa   005652 00 0001    desc9a  2986,1          012555 = 076000000000\r
+004706  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+004707  aa  6 01113 7551 00    sta     pr6|587\r
+004710  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004711  aa  6 01156 2521 00    spri2   pr6|622\r
+004712  aa   773303 3520 04    epp2    -2365,ic                000215 = 160154061000\r
+004713  aa  6 01160 2521 00    spri2   pr6|624\r
+004714  aa  6 01114 3521 00    epp2    pr6|588\r
+004715  aa  6 01162 2521 00    spri2   pr6|626\r
+004716  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+004717  aa  6 01164 2521 00    spri2   pr6|628\r
+004720  aa  6 01113 3521 00    epp2    pr6|587\r
+004721  aa  6 01166 2521 00    spri2   pr6|630\r
+004722  aa  6 00175 3521 00    epp2    pr6|125         listname\r
+004723  aa  6 01170 2521 00    spri2   pr6|632\r
+004724  aa   773345 3520 04    epp2    -2331,ic                000271 = 404000000043\r
+004725  aa  6 01172 2521 00    spri2   pr6|634\r
+004726  aa   773342 3520 04    epp2    -2334,ic                000270 = 526000000003\r
+004727  aa  6 01174 2521 00    spri2   pr6|636\r
+004730  aa   773314 3520 04    epp2    -2356,ic                000244 = 524000000011\r
+004731  aa  6 01176 2521 00    spri2   pr6|638\r
+004732  aa   773341 3520 04    epp2    -2335,ic                000273 = 526000000250\r
+004733  aa  6 01200 2521 00    spri2   pr6|640\r
+004734  aa   773336 3520 04    epp2    -2338,ic                000272 = 514000000001\r
+004735  aa  6 01202 2521 00    spri2   pr6|642\r
+004736  aa   773336 3520 04    epp2    -2338,ic                000274 = 526000000040\r
+004737  aa  6 01204 2521 00    spri2   pr6|644\r
+004740  aa  6 01154 6211 00    eax1    pr6|620\r
+004741  aa   030000 4310 07    fld     12288,dl\r
+004742  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+004743  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 876\r
+                       call hcs_$terminate_noname (source_seg, code);\r
+\r
+004744  aa  6 00344 3521 00    epp2    pr6|228         source_seg\r
+004745  aa  6 01116 2521 00    spri2   pr6|590\r
+004746  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004747  aa  6 01120 2521 00    spri2   pr6|592\r
+004750  aa  6 01114 6211 00    eax1    pr6|588\r
+004751  aa   010000 4310 07    fld     4096,dl\r
+004752  aa  6 00044 3701 20    epp4    pr6|36,*\r
+004753  la  4 00522 3521 20    epp2    pr4|338,*               hcs_$terminate_noname\r
+004754  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 877\r
+                       return;\r
+\r
+004755  aa   000000 2360 07    ldq     0,dl\r
+004756  aa  0 00630 7101 00    tra     pr0|408         begin_return_mac\r
+                                               STATEMENT 1 ON LINE 878\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 880\r
+               call hcs_$get_max_length_seg (pl1_stat_$list_ptr, list_size, code);\r
+\r
+004757  la  4 00324 3521 20    epp2    pr4|212,*               pl1_stat_$list_ptr\r
+004760  aa  6 01116 2521 00    spri2   pr6|590\r
+004761  aa  6 00174 3521 00    epp2    pr6|124         list_size\r
+004762  aa  6 01120 2521 00    spri2   pr6|592\r
+004763  aa  6 00162 3521 00    epp2    pr6|114         code\r
+004764  aa  6 01122 2521 00    spri2   pr6|594\r
+004765  aa  6 01114 6211 00    eax1    pr6|588\r
+004766  aa   014000 4310 07    fld     6144,dl\r
+004767  la  4 00516 3521 20    epp2    pr4|334,*               hcs_$get_max_length_seg\r
+004770  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 881\r
+               if code ^= 0\r
+               then do;\r
+\r
+004771  aa  6 00162 2361 00    ldq     pr6|114         code\r
+004772  aa   000063 6000 04    tze     51,ic           005055\r
+                                               STATEMENT 1 ON LINE 883\r
+                       call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", listname);\r
+\r
+004773  aa   773416 2350 04    lda     -2290,ic                000411 = 136141136133\r
+004774  aa   773416 2360 04    ldq     -2290,ic                000412 = 076136135136\r
+004775  aa  6 01114 7571 00    staq    pr6|588\r
+004776  aa   141000 2350 03    lda     49664,du\r
+004777  aa  6 01116 7551 00    sta     pr6|590\r
+005000  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+005001  aa  6 00360 00 0250    desc9a  pr6|240,168     wdirname\r
+005002  aa   005555 00 0001    desc9a  2925,1          012555 = 076000000000\r
+005003  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+005004  aa  6 01113 7551 00    sta     pr6|587\r
+005005  aa  6 00162 3521 00    epp2    pr6|114         code\r
+005006  aa  6 01156 2521 00    spri2   pr6|622\r
+005007  aa   773206 3520 04    epp2    -2426,ic                000215 = 160154061000\r
+005010  aa  6 01160 2521 00    spri2   pr6|624\r
+005011  aa  6 01114 3521 00    epp2    pr6|588\r
+005012  aa  6 01162 2521 00    spri2   pr6|626\r
+005013  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+005014  aa  6 01164 2521 00    spri2   pr6|628\r
+005015  aa  6 01113 3521 00    epp2    pr6|587\r
+005016  aa  6 01166 2521 00    spri2   pr6|630\r
+005017  aa  6 00175 3521 00    epp2    pr6|125         listname\r
+005020  aa  6 01170 2521 00    spri2   pr6|632\r
+005021  aa   773250 3520 04    epp2    -2392,ic                000271 = 404000000043\r
+005022  aa  6 01172 2521 00    spri2   pr6|634\r
+005023  aa   773245 3520 04    epp2    -2395,ic                000270 = 526000000003\r
+005024  aa  6 01174 2521 00    spri2   pr6|636\r
+005025  aa   773217 3520 04    epp2    -2417,ic                000244 = 524000000011\r
+005026  aa  6 01176 2521 00    spri2   pr6|638\r
+005027  aa   773244 3520 04    epp2    -2396,ic                000273 = 526000000250\r
+005030  aa  6 01200 2521 00    spri2   pr6|640\r
+005031  aa   773241 3520 04    epp2    -2399,ic                000272 = 514000000001\r
+005032  aa  6 01202 2521 00    spri2   pr6|642\r
+005033  aa   773241 3520 04    epp2    -2399,ic                000274 = 526000000040\r
+005034  aa  6 01204 2521 00    spri2   pr6|644\r
+005035  aa  6 01154 6211 00    eax1    pr6|620\r
+005036  aa   030000 4310 07    fld     12288,dl\r
+005037  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005040  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+005041  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 884\r
+                       call hcs_$terminate_noname (source_seg, code);\r
+\r
+005042  aa  6 00344 3521 00    epp2    pr6|228         source_seg\r
+005043  aa  6 01116 2521 00    spri2   pr6|590\r
+005044  aa  6 00162 3521 00    epp2    pr6|114         code\r
+005045  aa  6 01120 2521 00    spri2   pr6|592\r
+005046  aa  6 01114 6211 00    eax1    pr6|588\r
+005047  aa   010000 4310 07    fld     4096,dl\r
+005050  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005051  la  4 00522 3521 20    epp2    pr4|338,*               hcs_$terminate_noname\r
+005052  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 885\r
+                       return;\r
+\r
+005053  aa   000000 2360 07    ldq     0,dl\r
+005054  aa  0 00630 7101 00    tra     pr0|408         begin_return_mac\r
+                                               STATEMENT 1 ON LINE 886\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 888\r
+               pl1_stat_$max_list_size = 4 * list_size;\r
+\r
+005055  aa  6 00174 2361 00    ldq     pr6|124         list_size\r
+005056  aa   000002 7360 00    qls     2\r
+005057  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005060  la  4 00330 7561 20    stq     pr4|216,*               pl1_stat_$max_list_size\r
+                                               STATEMENT 1 ON LINE 889\r
+               pl1_stat_$char_pos = 1;\r
+\r
+005061  aa   000001 2360 07    ldq     1,dl\r
+005062  la  4 00266 7561 20    stq     pr4|182,*               pl1_stat_$char_pos\r
+                                               STATEMENT 1 ON LINE 891\r
+               call pl1_print$non_varying_nl ("        COMPILATION LISTING OF SEGMENT " || rtrim (objectname), 0);\r
+\r
+005063  aa  000 000 165 500    tctr    (pr)\r
+005064  aa  6 00220 00 0040    desc9a  pr6|144,32      objectname\r
+005065  aa  0 76605 0001 00    arg     pr0|-635                = 777777777777\r
+005066  aa  6 00056 0001 00    arg     pr6|46\r
+005067  aa  6 00056 2361 00    ldq     pr6|46\r
+005070  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+005071  aa  6 01112 7561 00    stq     pr6|586\r
+005072  aa   000040 2360 07    ldq     32,dl\r
+005073  aa  6 01112 1761 00    sbq     pr6|586\r
+005074  aa  6 01112 7561 00    stq     pr6|586\r
+005075  aa   000040 0760 07    adq     32,dl\r
+005076  aa  6 01206 7561 00    stq     pr6|646\r
+005077  aa   524000 2760 03    orq     174080,du\r
+005100  aa  6 01113 7561 00    stq     pr6|587\r
+005101  aa  6 01206 2361 00    ldq     pr6|646\r
+005102  aa  0 00551 7001 00    tsx0    pr0|361         alloc_char_temp\r
+005103  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+005104  aa   773631 00 0040    desc9a  -2151,32                000734 = 011103117115\r
+005105  aa  2 00000 00 0040    desc9a  pr2|0,32\r
+005106  aa  6 01112 2351 00    lda     pr6|586\r
+005107  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+005110  aa  6 00220 00 0005    desc9a  pr6|144,al      objectname\r
+005111  aa  2 00010 00 0005    desc9a  pr2|8,al\r
+005112  aa  6 01116 2521 00    spri2   pr6|590\r
+005113  aa  6 01207 4501 00    stz     pr6|647\r
+005114  aa  6 01207 3521 00    epp2    pr6|647\r
+005115  aa  6 01120 2521 00    spri2   pr6|592\r
+005116  aa  6 01113 3521 00    epp2    pr6|587\r
+005117  aa  6 01122 2521 00    spri2   pr6|594\r
+005120  aa   773155 3520 04    epp2    -2451,ic                000275 = 404000000021\r
+005121  aa  6 01124 2521 00    spri2   pr6|596\r
+005122  aa  6 01114 6211 00    eax1    pr6|588\r
+005123  aa   010000 4310 07    fld     4096,dl\r
+005124  la  4 00444 3521 20    epp2    pr4|292,*               pl1_print$non_varying_nl\r
+005125  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 892\r
+               call pl1_print$non_varying_nl ("        Compiled by: " || pl1_version$pl1_version, 0);\r
+\r
+005126  aa  0 01014 7001 00    tsx0    pr0|524         shorten_stack\r
+005127  aa   000016 2360 07    ldq     14,dl\r
+005130  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005131  la  4 00424 0761 20    adq     pr4|276,*               pl1_version$pl1_version\r
+005132  aa  6 01207 7561 00    stq     pr6|647\r
+005133  aa   524000 2760 03    orq     174080,du\r
+005134  aa  6 01113 7561 00    stq     pr6|587\r
+005135  aa  6 01207 2361 00    ldq     pr6|647\r
+005136  aa  0 00551 7001 00    tsx0    pr0|361         alloc_char_temp\r
+005137  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+005140  aa   773365 00 0016    desc9a  -2315,14                000524 = 011103157155\r
+005141  aa  2 00000 00 0016    desc9a  pr2|0,14\r
+005142  la  4 00424 3735 20    epp7    pr4|276,*\r
+005143  la  4 00424 7271 20    lxl7    pr4|276,*               pl1_version$pl1_version\r
+005144  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+005145  aa  7 00001 00 0017    desc9a  pr7|1,x7                pl1_version$pl1_version\r
+005146  aa  2 00003 40 0017    desc9a  pr2|3(2),x7\r
+005147  aa  6 01116 2521 00    spri2   pr6|590\r
+005150  aa  6 01206 4501 00    stz     pr6|646\r
+005151  aa  6 01206 3521 00    epp2    pr6|646\r
+005152  aa  6 01120 2521 00    spri2   pr6|592\r
+005153  aa  6 01113 3521 00    epp2    pr6|587\r
+005154  aa  6 01122 2521 00    spri2   pr6|594\r
+005155  aa   773120 3520 04    epp2    -2480,ic                000275 = 404000000021\r
+005156  aa  6 01124 2521 00    spri2   pr6|596\r
+005157  aa  6 01114 6211 00    eax1    pr6|588\r
+005160  aa   010000 4310 07    fld     4096,dl\r
+005161  la  4 00444 3521 20    epp2    pr4|292,*               pl1_print$non_varying_nl\r
+005162  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 894\r
+               call system_info_$installation_id (installation_id);\r
+\r
+005163  aa  0 01014 7001 00    tsx0    pr0|524         shorten_stack\r
+005164  aa  6 00467 3521 00    epp2    pr6|311         installation_id\r
+005165  aa  6 01116 2521 00    spri2   pr6|590\r
+005166  aa   773106 3520 04    epp2    -2490,ic                000274 = 526000000040\r
+005167  aa  6 01120 2521 00    spri2   pr6|592\r
+005170  aa  6 01114 6211 00    eax1    pr6|588\r
+005171  aa   004000 4310 07    fld     2048,dl\r
+005172  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005173  la  4 00536 3521 20    epp2    pr4|350,*               system_info_$installation_id\r
+005174  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 895\r
+               call pl1_print$non_varying_nl ("        Compiled at: " || installation_id, 0);\r
+\r
+005175  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+005176  aa   773323 00 0016    desc9a  -2349,14                000520 = 011103157155\r
+005177  aa  6 01114 00 0016    desc9a  pr6|588,14\r
+005200  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+005201  aa  6 00467 00 0040    desc9a  pr6|311,32      installation_id\r
+005202  aa  6 01117 40 0040    desc9a  pr6|591(2),32\r
+005203  aa  6 01113 4501 00    stz     pr6|587\r
+005204  aa  6 01114 3521 00    epp2    pr6|588\r
+005205  aa  6 01134 2521 00    spri2   pr6|604\r
+005206  aa  6 01113 3521 00    epp2    pr6|587\r
+005207  aa  6 01136 2521 00    spri2   pr6|606\r
+005210  aa   772760 3520 04    epp2    -2576,ic                000170 = 524000000056\r
+005211  aa  6 01140 2521 00    spri2   pr6|608\r
+005212  aa   773063 3520 04    epp2    -2509,ic                000275 = 404000000021\r
+005213  aa  6 01142 2521 00    spri2   pr6|610\r
+005214  aa  6 01132 6211 00    eax1    pr6|602\r
+005215  aa   010000 4310 07    fld     4096,dl\r
+005216  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005217  la  4 00444 3521 20    epp2    pr4|292,*               pl1_print$non_varying_nl\r
+005220  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 896\r
+               call pl1_print$non_varying_nl ("        Compiled on: " || comptime, 0);\r
+\r
+005221  aa   000016 2360 07    ldq     14,dl\r
+005222  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005223  ia  4 00012 0761 00    adq     pr4|10          comptime\r
+005224  aa  6 01206 7561 00    stq     pr6|646\r
+005225  aa   524000 2760 03    orq     174080,du\r
+005226  aa  6 01113 7561 00    stq     pr6|587\r
+005227  aa  6 01206 2361 00    ldq     pr6|646\r
+005230  aa  0 00551 7001 00    tsx0    pr0|361         alloc_char_temp\r
+005231  aa  040 100 100 404    mlr     (ic),(pr),fill(040)\r
+005232  aa   773263 00 0016    desc9a  -2381,14                000514 = 011103157155\r
+005233  aa  2 00000 00 0016    desc9a  pr2|0,14\r
+005234  ia  4 00012 7271 00    lxl7    pr4|10          comptime\r
+005235  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+005236  ia  4 00013 00 0017    desc9a  pr4|11,x7               comptime\r
+005237  aa  2 00003 40 0017    desc9a  pr2|3(2),x7\r
+005240  aa  6 01116 2521 00    spri2   pr6|590\r
+005241  aa  6 01207 4501 00    stz     pr6|647\r
+005242  aa  6 01207 3521 00    epp2    pr6|647\r
+005243  aa  6 01120 2521 00    spri2   pr6|592\r
+005244  aa  6 01113 3521 00    epp2    pr6|587\r
+005245  aa  6 01122 2521 00    spri2   pr6|594\r
+005246  aa   773027 3520 04    epp2    -2537,ic                000275 = 404000000021\r
+005247  aa  6 01124 2521 00    spri2   pr6|596\r
+005250  aa  6 01114 6211 00    eax1    pr6|588\r
+005251  aa   010000 4310 07    fld     4096,dl\r
+005252  la  4 00444 3521 20    epp2    pr4|292,*               pl1_print$non_varying_nl\r
+005253  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 898\r
+               if length (pl1_stat_$options) > 0\r
+               then do;\r
+\r
+005254  aa  0 01014 7001 00    tsx0    pr0|524         shorten_stack\r
+005255  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005256  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+005257  aa   000034 6044 04    tmoz    28,ic           005313\r
+                                               STATEMENT 1 ON LINE 900\r
+                       call pl1_print$non_varying ("       Options: ", 0);\r
+\r
+005260  aa   773230 2370 04    ldaq    -2408,ic                000510 = 011040040040 040117160164\r
+005261  aa  6 01114 7571 00    staq    pr6|588\r
+005262  aa   773230 2370 04    ldaq    -2408,ic                000512 = 151157156163 072040000000\r
+005263  aa  6 01116 7571 00    staq    pr6|590\r
+005264  aa  6 01113 4501 00    stz     pr6|587\r
+005265  aa  6 01114 3521 00    epp2    pr6|588\r
+005266  aa  6 01134 2521 00    spri2   pr6|604\r
+005267  aa  6 01113 3521 00    epp2    pr6|587\r
+005270  aa  6 01136 2521 00    spri2   pr6|606\r
+005271  aa   772676 3520 04    epp2    -2626,ic                000167 = 524000000016\r
+005272  aa  6 01140 2521 00    spri2   pr6|608\r
+005273  aa   773002 3520 04    epp2    -2558,ic                000275 = 404000000021\r
+005274  aa  6 01142 2521 00    spri2   pr6|610\r
+005275  aa  6 01132 6211 00    eax1    pr6|602\r
+005276  aa   010000 4310 07    fld     4096,dl\r
+005277  la  4 00442 3521 20    epp2    pr4|290,*               pl1_print$non_varying\r
+005300  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 901\r
+                       call pl1_print$varying_nl (pl1_stat_$options);\r
+\r
+005301  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005302  la  4 00350 3735 20    epp7    pr4|232,*\r
+005303  aa  7 00001 3521 00    epp2    pr7|1           pl1_stat_$options\r
+005304  aa  6 01116 2521 00    spri2   pr6|590\r
+005305  aa   772661 3520 04    epp2    -2639,ic                000166 = 530000000620\r
+005306  aa  6 01120 2521 00    spri2   pr6|592\r
+005307  aa  6 01114 6211 00    eax1    pr6|588\r
+005310  aa   004000 4310 07    fld     2048,dl\r
+005311  la  4 00446 3521 20    epp2    pr4|294,*               pl1_print$varying_nl\r
+005312  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 902\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 904\r
+               call pl1_print$non_varying_nl ("", 0);\r
+\r
+005313  aa  6 01207 4501 00    stz     pr6|647\r
+005314  aa  6 01113 3521 00    epp2    pr6|587\r
+005315  aa  6 01116 2521 00    spri2   pr6|590\r
+005316  aa  6 01207 3521 00    epp2    pr6|647\r
+005317  aa  6 01120 2521 00    spri2   pr6|592\r
+005320  aa   772667 3520 04    epp2    -2633,ic                000207 = 524000000000\r
+005321  aa  6 01122 2521 00    spri2   pr6|594\r
+005322  aa   772753 3520 04    epp2    -2581,ic                000275 = 404000000021\r
+005323  aa  6 01124 2521 00    spri2   pr6|596\r
+005324  aa  6 01114 6211 00    eax1    pr6|588\r
+005325  aa   010000 4310 07    fld     4096,dl\r
+005326  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005327  la  4 00444 3521 20    epp2    pr4|292,*               pl1_print$non_varying_nl\r
+005330  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 905\r
+            end;\r
+\r
+  END BLOCK  2\r
+                                               STATEMENT 1 ON LINE 907\r
+       if produce_listing\r
+       then on listing_overflow\r
+               begin;\r
+\r
+005331  aa  6 00342 2351 00    lda     pr6|226         produce_listing\r
+005332  aa   400000 3150 03    cana    131072,du\r
+005333  aa   000202 6000 04    tze     130,ic          005535\r
+005334  aa   000020 7260 07    lxl6    16,dl\r
+005335  aa   773233 3520 04    epp2    -2405,ic                000570 = 154151163164\r
+005336  aa  0 00717 7001 00    tsx0    pr0|463         enable_op\r
+005337  aa   000004 7100 04    tra     4,ic            005343\r
+005340  aa     000440000000\r
+005341  aa   000174 7100 04    tra     124,ic          005535\r
+BEGIN CONDITION listing_overflow.2\r
+ENTRY TO listing_overflow.2                                 STATEMENT 1 ON LINE 907\r
+       if produce_listing\r
+       then on listing_overflow\r
+               begin;\r
+\r
+005342  da     001457200000\r
+005343  aa   000160 6270 00    eax7    112\r
+005344  aa  7 00034 3521 20    epp2    pr7|28,*\r
+005345  aa  2 01047 2721 00    tsp2    pr2|551         int_entry\r
+005346  aa     000000000000\r
+005347  2s     000210004535\r
+                                               STATEMENT 1 ON LINE 912\r
+                    component = component + 1;\r
+\r
+005350  aa  6 00040 3735 20    epp7    pr6|32,*\r
+005351  aa  7 00163 0541 00    aos     pr7|115         component\r
+                                               STATEMENT 1 ON LINE 914\r
+                    call msf_manager_$get_ptr (fcb, component, "1"b /* create */, pl1_stat_$list_ptr,\r
+                       component_bit_count, code);\r
+\r
+005352  aa   400000 2350 03    lda     131072,du\r
+005353  aa  6 00101 7551 00    sta     pr6|65\r
+005354  aa  7 00164 3521 00    epp2    pr7|116         fcb\r
+005355  aa  6 00104 2521 00    spri2   pr6|68\r
+005356  aa  7 00163 3521 00    epp2    pr7|115         component\r
+005357  aa  6 00106 2521 00    spri2   pr6|70\r
+005360  aa  6 00101 3521 00    epp2    pr6|65\r
+005361  aa  6 00110 2521 00    spri2   pr6|72\r
+005362  la  4 00324 3521 20    epp2    pr4|212,*               pl1_stat_$list_ptr\r
+005363  aa  6 00112 2521 00    spri2   pr6|74\r
+005364  aa  6 00100 3521 00    epp2    pr6|64          component_bit_count\r
+005365  aa  6 00114 2521 00    spri2   pr6|76\r
+005366  aa  7 00162 3521 00    epp2    pr7|114         code\r
+005367  aa  6 00116 2521 00    spri2   pr6|78\r
+005370  aa  6 00102 6211 00    eax1    pr6|66\r
+005371  aa   030000 4310 07    fld     12288,dl\r
+005372  la  4 00534 3521 20    epp2    pr4|348,*               msf_manager_$get_ptr\r
+005373  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 917\r
+                    if pl1_stat_$list_ptr ^= null\r
+                    then call hcs_$get_max_length_seg (pl1_stat_$list_ptr, list_size, code);\r
+\r
+005374  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005375  la  4 00324 2371 20    ldaq    pr4|212,*               pl1_stat_$list_ptr\r
+005376  aa   773004 6770 04    eraq    -2556,ic                000402 = 077777000043 000001000000\r
+005377  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+005400  aa   000014 6000 04    tze     12,ic           005414\r
+005401  la  4 00324 3521 20    epp2    pr4|212,*               pl1_stat_$list_ptr\r
+005402  aa  6 00104 2521 00    spri2   pr6|68\r
+005403  aa  6 00040 3735 20    epp7    pr6|32,*\r
+005404  aa  7 00174 3521 00    epp2    pr7|124         list_size\r
+005405  aa  6 00106 2521 00    spri2   pr6|70\r
+005406  aa  7 00162 3521 00    epp2    pr7|114         code\r
+005407  aa  6 00110 2521 00    spri2   pr6|72\r
+005410  aa  6 00102 6211 00    eax1    pr6|66\r
+005411  aa   014000 4310 07    fld     6144,dl\r
+005412  la  4 00516 3521 20    epp2    pr4|334,*               hcs_$get_max_length_seg\r
+005413  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 920\r
+                    if pl1_stat_$list_ptr = null | code ^= 0\r
+                    then do;\r
+\r
+005414  aa  6 00040 3735 20    epp7    pr6|32,*\r
+005415  aa  7 00162 2361 00    ldq     pr7|114         code\r
+005416  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+005417  aa  6 00101 7551 00    sta     pr6|65\r
+005420  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005421  la  4 00324 2371 20    ldaq    pr4|212,*               pl1_stat_$list_ptr\r
+005422  aa   772760 6770 04    eraq    -2576,ic                000402 = 077777000043 000001000000\r
+005423  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+005424  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+005425  aa  6 00101 2751 00    ora     pr6|65\r
+005426  aa   000101 6000 04    tze     65,ic           005527\r
+                                               STATEMENT 1 ON LINE 922\r
+                            call com_err_ (code, my_name, "Component ^d of ^a^[>^]^a", component, wdirname,\r
+                               wdirname ^= ">", listname);\r
+\r
+005427  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+005430  aa   773266 00 0034    desc9a  -2378,28                000715 = 103157155160\r
+005431  aa  6 00102 00 0034    desc9a  pr6|66,28\r
+005432  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+005433  aa  7 00360 00 0250    desc9a  pr7|240,168     wdirname\r
+005434  aa   005123 00 0001    desc9a  2643,1          012555 = 076000000000\r
+005435  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+005436  aa  6 00101 7551 00    sta     pr6|65\r
+005437  aa  7 00162 3521 00    epp2    pr7|114         code\r
+005440  aa  6 00122 2521 00    spri2   pr6|82\r
+005441  aa   772554 3520 04    epp2    -2708,ic                000215 = 160154061000\r
+005442  aa  6 00124 2521 00    spri2   pr6|84\r
+005443  aa  6 00102 3521 00    epp2    pr6|66\r
+005444  aa  6 00126 2521 00    spri2   pr6|86\r
+005445  aa  7 00163 3521 00    epp2    pr7|115         component\r
+005446  aa  6 00130 2521 00    spri2   pr6|88\r
+005447  aa  7 00360 3521 00    epp2    pr7|240         wdirname\r
+005450  aa  6 00132 2521 00    spri2   pr6|90\r
+005451  aa  6 00101 3521 00    epp2    pr6|65\r
+005452  aa  6 00134 2521 00    spri2   pr6|92\r
+005453  aa  7 00175 3521 00    epp2    pr7|125         listname\r
+005454  aa  6 00136 2521 00    spri2   pr6|94\r
+005455  aa   772614 3520 04    epp2    -2676,ic                000271 = 404000000043\r
+005456  aa  6 00140 2521 00    spri2   pr6|96\r
+005457  aa   772611 3520 04    epp2    -2679,ic                000270 = 526000000003\r
+005460  aa  6 00142 2521 00    spri2   pr6|98\r
+005461  aa   772504 3520 04    epp2    -2748,ic                000165 = 524000000031\r
+005462  aa  6 00144 2521 00    spri2   pr6|100\r
+005463  aa   772612 3520 04    epp2    -2678,ic                000275 = 404000000021\r
+005464  aa  6 00146 2521 00    spri2   pr6|102\r
+005465  aa   772606 3520 04    epp2    -2682,ic                000273 = 526000000250\r
+005466  aa  6 00150 2521 00    spri2   pr6|104\r
+005467  aa   772603 3520 04    epp2    -2685,ic                000272 = 514000000001\r
+005470  aa  6 00152 2521 00    spri2   pr6|106\r
+005471  aa   772603 3520 04    epp2    -2685,ic                000274 = 526000000040\r
+005472  aa  6 00154 2521 00    spri2   pr6|108\r
+005473  aa  6 00120 6211 00    eax1    pr6|80\r
+005474  aa   034000 4310 07    fld     14336,dl\r
+005475  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+005476  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 925\r
+                            if in_cg\r
+                            then call code_gen_$return_bit_count (objectbc, npages (5), ncpu (5), npages (6),\r
+                                    ncpu (6));\r
+\r
+005477  aa  6 00040 3735 20    epp7    pr6|32,*\r
+005500  aa  7 00167 2351 00    lda     pr7|119         in_cg\r
+005501  aa   000020 6000 04    tze     16,ic           005521\r
+005502  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005503  ia  4 00067 3521 00    epp2    pr4|55          objectbc\r
+005504  aa  6 00104 2521 00    spri2   pr6|68\r
+005505  ia  4 00063 3521 00    epp2    pr4|51          npages\r
+005506  aa  6 00106 2521 00    spri2   pr6|70\r
+005507  ia  4 00050 3521 00    epp2    pr4|40          ncpu\r
+005510  aa  6 00110 2521 00    spri2   pr6|72\r
+005511  ia  4 00064 3521 00    epp2    pr4|52          npages\r
+005512  aa  6 00112 2521 00    spri2   pr6|74\r
+005513  ia  4 00052 3521 00    epp2    pr4|42          ncpu\r
+005514  aa  6 00114 2521 00    spri2   pr6|76\r
+005515  aa  6 00102 6211 00    eax1    pr6|66\r
+005516  aa   024000 4310 07    fld     10240,dl\r
+005517  la  4 00430 3521 20    epp2    pr4|280,*               code_gen_$return_bit_count\r
+005520  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 929\r
+                            translation_failed = "1"b;\r
+\r
+005521  aa   400000 2350 03    lda     131072,du\r
+005522  aa  6 00040 3735 20    epp7    pr6|32,*\r
+005523  aa  7 00357 7551 00    sta     pr7|239         translation_failed\r
+                                               STATEMENT 1 ON LINE 930\r
+                            goto close_list;\r
+\r
+005524  aa   000375 3520 04    epp2    253,ic          006121 = 600044370120\r
+005525  aa   000001 7270 07    lxl7    1,dl\r
+005526  aa  0 00657 7101 00    tra     pr0|431         tra_ext_1\r
+                                               STATEMENT 1 ON LINE 931\r
+                       end;\r
+\r
+                                               STATEMENT 1 ON LINE 933\r
+                    pl1_stat_$max_list_size = 4 * list_size;\r
+\r
+005527  aa  7 00174 2361 00    ldq     pr7|124         list_size\r
+005530  aa   000002 7360 00    qls     2\r
+005531  la  4 00330 7561 20    stq     pr4|216,*               pl1_stat_$max_list_size\r
+                                               STATEMENT 1 ON LINE 934\r
+                    pl1_stat_$char_pos = 1;\r
+\r
+005532  aa   000001 2360 07    ldq     1,dl\r
+005533  la  4 00266 7561 20    stq     pr4|182,*               pl1_stat_$char_pos\r
+                                               STATEMENT 1 ON LINE 935\r
+               end;\r
+\r
+005534  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+  END CONDITION listing_overflow.2\r
+                                               STATEMENT 1 ON LINE 939\r
+       call tree_manager$init (pl1_stat_$abort_label);\r
+\r
+005535  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005536  la  4 00252 3521 20    epp2    pr4|170,*               pl1_stat_$abort_label\r
+005537  aa  6 00606 2521 00    spri2   pr6|390\r
+005540  aa  6 00604 6211 00    eax1    pr6|388\r
+005541  aa   004000 4310 07    fld     2048,dl\r
+005542  la  4 00462 3521 20    epp2    pr4|306,*               tree_manager$init\r
+005543  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 941\r
+       pl1_stat_$phase = 1;\r
+\r
+005544  aa   000001 2360 07    ldq     1,dl\r
+005545  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005546  la  4 00356 7561 20    stq     pr4|238,*               pl1_stat_$phase\r
+                                               STATEMENT 1 ON LINE 942\r
+       pl1_severity_, pl1_stat_$greatest_severity = 0;\r
+\r
+005547  la  4 00250 4501 20    stz     pr4|168,*               pl1_severity_\r
+005550  la  4 00314 4501 20    stz     pr4|204,*               pl1_stat_$greatest_severity\r
+                                               STATEMENT 1 ON LINE 943\r
+       pl1_stat_$compiler_invoked = "1"b;\r
+\r
+005551  aa   400000 2350 03    lda     131072,du\r
+005552  la  4 00272 7551 20    sta     pr4|186,*               pl1_stat_$compiler_invoked\r
+                                               STATEMENT 1 ON LINE 945\r
+       call condition_ ("any_other", pl1_signal_catcher);\r
+\r
+005553  aa   772644 2350 04    lda     -2652,ic                000417 = 141156171137\r
+005554  aa   772644 2360 04    ldq     -2652,ic                000420 = 157164150145\r
+005555  aa  6 00604 7571 00    staq    pr6|388\r
+005556  aa   162000 2350 03    lda     58368,du\r
+005557  aa  6 00606 7551 00    sta     pr6|390\r
+005560  la  4 00450 3521 20    epp2    pr4|296,*               pl1_signal_catcher\r
+005561  aa  6 00646 2521 00    spri2   pr6|422         cp.559\r
+005562  aa   004762 2370 04    ldaq    2546,ic         012544 = 077777000043 000001000000\r
+005563  aa  6 00650 7571 00    staq    pr6|424         cp.559\r
+005564  aa  6 00604 3521 00    epp2    pr6|388\r
+005565  aa  6 00626 2521 00    spri2   pr6|406\r
+005566  aa  6 00646 3521 00    epp2    pr6|422         cp.559\r
+005567  aa  6 00630 2521 00    spri2   pr6|408\r
+005570  aa   772454 3520 04    epp2    -2772,ic                000244 = 524000000011\r
+005571  aa  6 00632 2521 00    spri2   pr6|410\r
+005572  aa   772414 3520 04    epp2    -2804,ic                000206 = 500000000000\r
+005573  aa  6 00634 2521 00    spri2   pr6|412\r
+005574  aa  6 00624 6211 00    eax1    pr6|404\r
+005575  aa   010000 4310 07    fld     4096,dl\r
+005576  la  4 00472 3521 20    epp2    pr4|314,*               condition_\r
+005577  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 947\r
+       call cpu_time_and_paging_ (npages (1), ncpu (1), pd_faults);\r
+\r
+005600  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005601  ia  4 00057 3521 00    epp2    pr4|47          npages\r
+005602  aa  6 00650 2521 00    spri2   pr6|424\r
+005603  ia  4 00040 3521 00    epp2    pr4|32          ncpu\r
+005604  aa  6 00652 2521 00    spri2   pr6|426\r
+005605  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+005606  aa  6 00654 2521 00    spri2   pr6|428\r
+005607  aa  6 00646 6211 00    eax1    pr6|422\r
+005610  aa   014000 4310 07    fld     6144,dl\r
+005611  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+005612  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 949\r
+       call parse (pl1_stat_$root, source_string, prefix);\r
+\r
+005613  aa  6 00170 2361 00    ldq     pr6|120         len\r
+005614  aa   526000 2760 03    orq     175104,du\r
+005615  aa  6 00757 7561 00    stq     pr6|495\r
+005616  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005617  la  4 00366 3521 20    epp2    pr4|246,*               pl1_stat_$root\r
+005620  aa  6 00650 2521 00    spri2   pr6|424\r
+005621  aa  6 00344 3521 20    epp2    pr6|228,*               source_string\r
+005622  aa  6 00652 2521 00    spri2   pr6|426\r
+005623  aa  6 00334 3521 00    epp2    pr6|220         prefix\r
+005624  aa  6 00654 2521 00    spri2   pr6|428\r
+005625  aa   772367 3520 04    epp2    -2825,ic                000214 = 464000000000\r
+005626  aa  6 00656 2521 00    spri2   pr6|430\r
+005627  aa  6 00757 3521 00    epp2    pr6|495\r
+005630  aa  6 00660 2521 00    spri2   pr6|432\r
+005631  aa   772563 3520 04    epp2    -2701,ic                000414 = 504000000002\r
+005632  aa  6 00662 2521 00    spri2   pr6|434\r
+005633  aa  6 00646 6211 00    eax1    pr6|422\r
+005634  aa   014000 4310 07    fld     6144,dl\r
+005635  la  4 00440 3521 20    epp2    pr4|288,*               parse\r
+005636  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 951\r
+       call cpu_time_and_paging_ (npages (2), ncpu (2), pd_faults);\r
+\r
+005637  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005640  ia  4 00060 3521 00    epp2    pr4|48          npages\r
+005641  aa  6 00650 2521 00    spri2   pr6|424\r
+005642  ia  4 00042 3521 00    epp2    pr4|34          ncpu\r
+005643  aa  6 00652 2521 00    spri2   pr6|426\r
+005644  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+005645  aa  6 00654 2521 00    spri2   pr6|428\r
+005646  aa  6 00646 6211 00    eax1    pr6|422\r
+005647  aa   014000 4310 07    fld     6144,dl\r
+005650  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+005651  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 952\r
+       call set_storage_usage (storage (2), xeq_storage (2));\r
+\r
+005652  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005653  ia  4 00075 3521 00    epp2    pr4|61          storage\r
+005654  aa  6 00650 2521 00    spri2   pr6|424\r
+005655  ia  4 00163 3521 00    epp2    pr4|115         xeq_storage\r
+005656  aa  6 00652 2521 00    spri2   pr6|426\r
+005657  aa   772326 3520 04    epp2    -2858,ic                000205 = 526000000012\r
+005660  aa  6 00654 2521 00    spri2   pr6|428\r
+005661  aa  6 00656 2521 00    spri2   pr6|430\r
+005662  aa  6 00646 3521 00    epp2    pr6|422\r
+005663  aa   010000 4310 07    fld     4096,dl\r
+005664  aa  2 00000 7571 00    staq    pr2|0\r
+005665  aa   004024 6700 04    tsp4    2068,ic         011711\r
+                                               STATEMENT 1 ON LINE 954\r
+       if ca.debug_semant\r
+       then do;\r
+\r
+005666  aa  6 00147 2351 00    lda     pr6|103         ca.debug_semant\r
+005667  aa   000022 6000 04    tze     18,ic           005711\r
+                                               STATEMENT 1 ON LINE 956\r
+               call ioa_$nnl ("Beginning semantic translator.^/debug: ");\r
+\r
+005670  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+005671  aa   773152 00 0050    desc9a  -2454,40                001042 = 102145147151\r
+005672  aa  6 00646 00 0050    desc9a  pr6|422,40\r
+005673  aa  6 00646 3521 00    epp2    pr6|422\r
+005674  aa  6 00606 2521 00    spri2   pr6|390\r
+005675  aa   772307 3520 04    epp2    -2873,ic                000204 = 524000000047\r
+005676  aa  6 00610 2521 00    spri2   pr6|392\r
+005677  aa  6 00604 6211 00    eax1    pr6|388\r
+005700  aa   004000 4310 07    fld     2048,dl\r
+005701  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005702  la  4 00532 3521 20    epp2    pr4|346,*               ioa_$nnl\r
+005703  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 957\r
+               call debug;\r
+\r
+005704  aa  6 00056 6211 00    eax1    pr6|46\r
+005705  aa   000000 4310 07    fld     0,dl\r
+005706  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005707  la  4 00504 3521 20    epp2    pr4|324,*               debug\r
+005710  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 958\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 960\r
+       pl1_stat_$phase = 2;\r
+\r
+005711  aa   000002 2360 07    ldq     2,dl\r
+005712  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005713  la  4 00356 7561 20    stq     pr4|238,*               pl1_stat_$phase\r
+                                               STATEMENT 1 ON LINE 961\r
+       call semantic_translator;\r
+\r
+005714  aa  6 00056 6211 00    eax1    pr6|46\r
+005715  aa   000000 4310 07    fld     0,dl\r
+005716  la  4 00460 3521 20    epp2    pr4|304,*               semantic_translator\r
+005717  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 962\r
+       call scan_token_table;\r
+\r
+005720  aa  6 00056 6211 00    eax1    pr6|46\r
+005721  aa   000000 4310 07    fld     0,dl\r
+005722  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005723  la  4 00456 3521 20    epp2    pr4|302,*               scan_token_table\r
+005724  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 964\r
+       call cpu_time_and_paging_ (npages (3), ncpu (3), pd_faults);\r
+\r
+005725  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005726  ia  4 00061 3521 00    epp2    pr4|49          npages\r
+005727  aa  6 00650 2521 00    spri2   pr6|424\r
+005730  ia  4 00044 3521 00    epp2    pr4|36          ncpu\r
+005731  aa  6 00652 2521 00    spri2   pr6|426\r
+005732  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+005733  aa  6 00654 2521 00    spri2   pr6|428\r
+005734  aa  6 00646 6211 00    eax1    pr6|422\r
+005735  aa   014000 4310 07    fld     6144,dl\r
+005736  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+005737  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 965\r
+       call set_storage_usage (storage (3), xeq_storage (3));\r
+\r
+005740  aa   000002 7270 07    lxl7    2,dl\r
+005741  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005742  ia  4 00077 3521 00    epp2    pr4|63          storage\r
+005743  aa  2 00000 5005 17    a9bd    pr2|0,7\r
+005744  aa  6 00650 2521 00    spri2   pr6|424\r
+005745  ia  4 00165 3521 00    epp2    pr4|117         xeq_storage\r
+005746  aa  2 00000 5005 17    a9bd    pr2|0,7\r
+005747  aa  6 00652 2521 00    spri2   pr6|426\r
+005750  aa   772235 3520 04    epp2    -2915,ic                000205 = 526000000012\r
+005751  aa  6 00654 2521 00    spri2   pr6|428\r
+005752  aa   772233 3520 04    epp2    -2917,ic                000205 = 526000000012\r
+005753  aa  6 00656 2521 00    spri2   pr6|430\r
+005754  aa  6 00646 3521 00    epp2    pr6|422\r
+005755  aa   010000 4310 07    fld     4096,dl\r
+005756  aa  2 00000 7571 00    staq    pr2|0\r
+005757  aa   003732 6700 04    tsp4    2010,ic         011711\r
+                                               STATEMENT 1 ON LINE 967\r
+       if ^ca.check\r
+       then call generate_code (translation_failed);\r
+\r
+005760  aa  6 00122 2351 00    lda     pr6|82          ca.check\r
+005761  aa   000003 6010 04    tnz     3,ic            005764\r
+005762  aa   004556 3520 04    epp2    2414,ic         012540 = 000002000000\r
+005763  aa   002430 6700 04    tsp4    1304,ic         010413\r
+                                               STATEMENT 1 ON LINE 970\r
+continue_from_abort:\r
+       if translation_failed\r
+       then call com_err_ (error_table_$translation_failed, my_name, "^a", sourcename);\r
+\r
+005764  aa  6 00357 2351 00    lda     pr6|239         translation_failed\r
+005765  aa   400000 3150 03    cana    131072,du\r
+005766  aa   000030 6000 04    tze     24,ic           006016\r
+005767  aa   136141 2350 03    lda     48225,du\r
+005770  aa  6 00757 7551 00    sta     pr6|495\r
+005771  aa  6 00044 3701 20    epp4    pr6|36,*\r
+005772  la  4 00236 3521 20    epp2    pr4|158,*               error_table_$translation_failed\r
+005773  aa  6 00736 2521 00    spri2   pr6|478\r
+005774  aa   772221 3520 04    epp2    -2927,ic                000215 = 160154061000\r
+005775  aa  6 00740 2521 00    spri2   pr6|480\r
+005776  aa  6 00757 3521 00    epp2    pr6|495\r
+005777  aa  6 00742 2521 00    spri2   pr6|482\r
+006000  aa  6 00346 3521 00    epp2    pr6|230         sourcename\r
+006001  aa  6 00744 2521 00    spri2   pr6|484\r
+006002  aa   772267 3520 04    epp2    -2889,ic                000271 = 404000000043\r
+006003  aa  6 00746 2521 00    spri2   pr6|486\r
+006004  aa   772264 3520 04    epp2    -2892,ic                000270 = 526000000003\r
+006005  aa  6 00750 2521 00    spri2   pr6|488\r
+006006  aa   772217 3520 04    epp2    -2929,ic                000225 = 524000000002\r
+006007  aa  6 00752 2521 00    spri2   pr6|490\r
+006010  aa   772264 3520 04    epp2    -2892,ic                000274 = 526000000040\r
+006011  aa  6 00754 2521 00    spri2   pr6|492\r
+006012  aa  6 00734 6211 00    eax1    pr6|476\r
+006013  aa   020000 4310 07    fld     8192,dl\r
+006014  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006015  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 974\r
+       if ^called_cg\r
+       then do;\r
+\r
+006016  aa  6 00157 2351 00    lda     pr6|111         called_cg\r
+006017  aa   000021 6010 04    tnz     17,ic           006040\r
+                                               STATEMENT 1 ON LINE 976\r
+               call cpu_time_and_paging_ (npages (5), ncpu (5), pd_faults);\r
+\r
+006020  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006021  ia  4 00063 3521 00    epp2    pr4|51          npages\r
+006022  aa  6 00650 2521 00    spri2   pr6|424\r
+006023  ia  4 00050 3521 00    epp2    pr4|40          ncpu\r
+006024  aa  6 00652 2521 00    spri2   pr6|426\r
+006025  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+006026  aa  6 00654 2521 00    spri2   pr6|428\r
+006027  aa  6 00646 6211 00    eax1    pr6|422\r
+006030  aa   014000 4310 07    fld     6144,dl\r
+006031  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+006032  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 977\r
+               npages (6) = npages (5);\r
+\r
+006033  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006034  ia  4 00063 2361 00    ldq     pr4|51          npages\r
+006035  ia  4 00064 7561 00    stq     pr4|52          npages\r
+                                               STATEMENT 1 ON LINE 978\r
+               ncpu (6) = ncpu (5);\r
+\r
+006036  ia  4 00050 2371 00    ldaq    pr4|40          ncpu\r
+006037  ia  4 00052 7571 00    staq    pr4|42          ncpu\r
+                                               STATEMENT 1 ON LINE 979\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 981\r
+       if produce_listing\r
+       then do;\r
+\r
+006040  aa  6 00342 2351 00    lda     pr6|226         produce_listing\r
+006041  aa   400000 3150 03    cana    131072,du\r
+006042  aa   000157 6000 04    tze     111,ic          006221\r
+                                               STATEMENT 1 ON LINE 983\r
+               if ^called_cg\r
+               then do;\r
+\r
+006043  aa  6 00157 2351 00    lda     pr6|111         called_cg\r
+006044  aa   000055 6010 04    tnz     45,ic           006121\r
+                                               STATEMENT 1 ON LINE 985\r
+                       if symbols_on\r
+                       then call pl1_symbol_print (pl1_stat_$root, pl1_stat_$print_cp_dcl,\r
+                               ca.check | translation_failed | pl1_stat_$greatest_severity >= 3);\r
+\r
+006045  aa  6 00356 2351 00    lda     pr6|238         symbols_on\r
+006046  aa   400000 3150 03    cana    131072,du\r
+006047  aa   000025 6000 04    tze     21,ic           006074\r
+006050  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006051  la  4 00314 2361 20    ldq     pr4|204,*               pl1_stat_$greatest_severity\r
+006052  aa   000003 1160 07    cmpq    3,dl\r
+006053  aa  0 00527 7001 00    tsx0    pr0|343         r_ge_a\r
+006054  aa  6 00757 7551 00    sta     pr6|495\r
+006055  aa  6 00357 2351 00    lda     pr6|239         translation_failed\r
+006056  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+006057  aa  6 00122 2751 00    ora     pr6|82          ca.check\r
+006060  aa  6 00757 2751 00    ora     pr6|495\r
+006061  aa  6 00757 7551 00    sta     pr6|495\r
+006062  la  4 00366 3521 20    epp2    pr4|246,*               pl1_stat_$root\r
+006063  aa  6 00650 2521 00    spri2   pr6|424\r
+006064  la  4 00360 3521 20    epp2    pr4|240,*               pl1_stat_$print_cp_dcl\r
+006065  aa  6 00652 2521 00    spri2   pr6|426\r
+006066  aa  6 00757 3521 00    epp2    pr6|495\r
+006067  aa  6 00654 2521 00    spri2   pr6|428\r
+006070  aa  6 00646 6211 00    eax1    pr6|422\r
+006071  aa   014000 4310 07    fld     6144,dl\r
+006072  la  4 00452 3521 20    epp2    pr4|298,*               pl1_symbol_print\r
+006073  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 989\r
+                       call pl1_print$non_varying_nl ("", 0);\r
+\r
+006074  aa  6 00645 4501 00    stz     pr6|421\r
+006075  aa  6 00757 3521 00    epp2    pr6|495\r
+006076  aa  6 00650 2521 00    spri2   pr6|424\r
+006077  aa  6 00645 3521 00    epp2    pr6|421\r
+006100  aa  6 00652 2521 00    spri2   pr6|426\r
+006101  aa   772106 3520 04    epp2    -3002,ic                000207 = 524000000000\r
+006102  aa  6 00654 2521 00    spri2   pr6|428\r
+006103  aa   772172 3520 04    epp2    -2950,ic                000275 = 404000000021\r
+006104  aa  6 00656 2521 00    spri2   pr6|430\r
+006105  aa  6 00646 6211 00    eax1    pr6|422\r
+006106  aa   010000 4310 07    fld     4096,dl\r
+006107  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006110  la  4 00444 3521 20    epp2    pr4|292,*               pl1_print$non_varying_nl\r
+006111  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 991\r
+                       if pl1_stat_$greatest_severity > 0\r
+                       then call error_$finish;\r
+\r
+006112  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006113  la  4 00314 2361 20    ldq     pr4|204,*               pl1_stat_$greatest_severity\r
+006114  aa   000005 6044 04    tmoz    5,ic            006121\r
+006115  aa  6 00056 6211 00    eax1    pr6|46\r
+006116  aa   000000 4310 07    fld     0,dl\r
+006117  la  4 00432 3521 20    epp2    pr4|282,*               error_$finish\r
+006120  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 993\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 995\r
+close_list:\r
+               call tssi_$finish_file (fcb, component, 9 * pl1_stat_$char_pos - 9, "101"b, list_hold, code);\r
+\r
+006121  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006122  la  4 00266 2361 20    ldq     pr4|182,*               pl1_stat_$char_pos\r
+006123  aa   000011 4020 07    mpy     9,dl\r
+006124  aa   000011 1760 07    sbq     9,dl\r
+006125  aa  6 00645 7561 00    stq     pr6|421\r
+006126  aa   500000 2350 03    lda     163840,du\r
+006127  aa  6 00757 7551 00    sta     pr6|495\r
+006130  aa  6 00164 3521 00    epp2    pr6|116         fcb\r
+006131  aa  6 00650 2521 00    spri2   pr6|424\r
+006132  aa  6 00163 3521 00    epp2    pr6|115         component\r
+006133  aa  6 00652 2521 00    spri2   pr6|426\r
+006134  aa  6 00645 3521 00    epp2    pr6|421\r
+006135  aa  6 00654 2521 00    spri2   pr6|428\r
+006136  aa  6 00757 3521 00    epp2    pr6|495\r
+006137  aa  6 00656 2521 00    spri2   pr6|430\r
+006140  aa  6 00172 3521 00    epp2    pr6|122         list_hold\r
+006141  aa  6 00660 2521 00    spri2   pr6|432\r
+006142  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006143  aa  6 00662 2521 00    spri2   pr6|434\r
+006144  aa  6 00646 6211 00    eax1    pr6|422\r
+006145  aa   030000 4310 07    fld     12288,dl\r
+006146  la  4 00544 3521 20    epp2    pr4|356,*               tssi_$finish_file\r
+006147  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 997\r
+               if code ^= 0\r
+               then call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", listname);\r
+\r
+006150  aa  6 00162 2361 00    ldq     pr6|114         code\r
+006151  aa   000050 6000 04    tze     40,ic           006221\r
+006152  aa   772237 2350 04    lda     -2913,ic                000411 = 136141136133\r
+006153  aa   772237 2360 04    ldq     -2913,ic                000412 = 076136135136\r
+006154  aa  6 00604 7571 00    staq    pr6|388\r
+006155  aa   141000 2350 03    lda     49664,du\r
+006156  aa  6 00606 7551 00    sta     pr6|390\r
+006157  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+006160  aa  6 00360 00 0250    desc9a  pr6|240,168     wdirname\r
+006161  aa   004376 00 0001    desc9a  2302,1          012555 = 076000000000\r
+006162  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+006163  aa  6 00757 7551 00    sta     pr6|495\r
+006164  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006165  aa  6 00762 2521 00    spri2   pr6|498\r
+006166  aa   772027 3520 04    epp2    -3049,ic                000215 = 160154061000\r
+006167  aa  6 00764 2521 00    spri2   pr6|500\r
+006170  aa  6 00604 3521 00    epp2    pr6|388\r
+006171  aa  6 00766 2521 00    spri2   pr6|502\r
+006172  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+006173  aa  6 00770 2521 00    spri2   pr6|504\r
+006174  aa  6 00757 3521 00    epp2    pr6|495\r
+006175  aa  6 00772 2521 00    spri2   pr6|506\r
+006176  aa  6 00175 3521 00    epp2    pr6|125         listname\r
+006177  aa  6 00774 2521 00    spri2   pr6|508\r
+006200  aa   772071 3520 04    epp2    -3015,ic                000271 = 404000000043\r
+006201  aa  6 00776 2521 00    spri2   pr6|510\r
+006202  aa   772066 3520 04    epp2    -3018,ic                000270 = 526000000003\r
+006203  aa  6 01000 2521 00    spri2   pr6|512\r
+006204  aa   772040 3520 04    epp2    -3040,ic                000244 = 524000000011\r
+006205  aa  6 01002 2521 00    spri2   pr6|514\r
+006206  aa   772065 3520 04    epp2    -3019,ic                000273 = 526000000250\r
+006207  aa  6 01004 2521 00    spri2   pr6|516\r
+006210  aa   772062 3520 04    epp2    -3022,ic                000272 = 514000000001\r
+006211  aa  6 01006 2521 00    spri2   pr6|518\r
+006212  aa   772062 3520 04    epp2    -3022,ic                000274 = 526000000040\r
+006213  aa  6 01010 2521 00    spri2   pr6|520\r
+006214  aa  6 00760 6211 00    eax1    pr6|496\r
+006215  aa   030000 4310 07    fld     12288,dl\r
+006216  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006217  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006220  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 999\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1001\r
+       if ^ca.check & ^translation_failed\r
+       then do;\r
+\r
+006221  aa  6 00357 2351 00    lda     pr6|239         translation_failed\r
+006222  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+006223  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+006224  aa  6 00757 7551 00    sta     pr6|495\r
+006225  aa  6 00122 2351 00    lda     pr6|82          ca.check\r
+006226  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+006227  aa  6 00757 3151 00    cana    pr6|495\r
+006230  aa   000163 6000 04    tze     115,ic          006413\r
+                                               STATEMENT 1 ON LINE 1003\r
+               call hcs_$truncate_seg (output_pt, divide (objectbc + 35, 36, 19), code);\r
+\r
+006231  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006232  ia  4 00067 2361 00    ldq     pr4|55          objectbc\r
+006233  aa   000043 0760 07    adq     35,dl\r
+006234  aa   000044 5060 07    div     36,dl\r
+006235  aa  6 00757 7561 00    stq     pr6|495\r
+006236  aa  6 00230 3521 00    epp2    pr6|152         output_pt\r
+006237  aa  6 00650 2521 00    spri2   pr6|424\r
+006240  aa  6 00757 3521 00    epp2    pr6|495\r
+006241  aa  6 00652 2521 00    spri2   pr6|426\r
+006242  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006243  aa  6 00654 2521 00    spri2   pr6|428\r
+006244  aa  6 00646 6211 00    eax1    pr6|422\r
+006245  aa   014000 4310 07    fld     6144,dl\r
+006246  la  4 00524 3521 20    epp2    pr4|340,*               hcs_$truncate_seg\r
+006247  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1004\r
+               if code ^= 0\r
+               then call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", objectname);\r
+\r
+006250  aa  6 00162 2361 00    ldq     pr6|114         code\r
+006251  aa   000050 6000 04    tze     40,ic           006321\r
+006252  aa   772137 2350 04    lda     -2977,ic                000411 = 136141136133\r
+006253  aa   772137 2360 04    ldq     -2977,ic                000412 = 076136135136\r
+006254  aa  6 00604 7571 00    staq    pr6|388\r
+006255  aa   141000 2350 03    lda     49664,du\r
+006256  aa  6 00606 7551 00    sta     pr6|390\r
+006257  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+006260  aa  6 00360 00 0250    desc9a  pr6|240,168     wdirname\r
+006261  aa   004276 00 0001    desc9a  2238,1          012555 = 076000000000\r
+006262  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+006263  aa  6 00757 7551 00    sta     pr6|495\r
+006264  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006265  aa  6 00762 2521 00    spri2   pr6|498\r
+006266  aa   771727 3520 04    epp2    -3113,ic                000215 = 160154061000\r
+006267  aa  6 00764 2521 00    spri2   pr6|500\r
+006270  aa  6 00604 3521 00    epp2    pr6|388\r
+006271  aa  6 00766 2521 00    spri2   pr6|502\r
+006272  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+006273  aa  6 00770 2521 00    spri2   pr6|504\r
+006274  aa  6 00757 3521 00    epp2    pr6|495\r
+006275  aa  6 00772 2521 00    spri2   pr6|506\r
+006276  aa  6 00220 3521 00    epp2    pr6|144         objectname\r
+006277  aa  6 00774 2521 00    spri2   pr6|508\r
+006300  aa   771771 3520 04    epp2    -3079,ic                000271 = 404000000043\r
+006301  aa  6 00776 2521 00    spri2   pr6|510\r
+006302  aa   771766 3520 04    epp2    -3082,ic                000270 = 526000000003\r
+006303  aa  6 01000 2521 00    spri2   pr6|512\r
+006304  aa   771740 3520 04    epp2    -3104,ic                000244 = 524000000011\r
+006305  aa  6 01002 2521 00    spri2   pr6|514\r
+006306  aa   771765 3520 04    epp2    -3083,ic                000273 = 526000000250\r
+006307  aa  6 01004 2521 00    spri2   pr6|516\r
+006310  aa   771762 3520 04    epp2    -3086,ic                000272 = 514000000001\r
+006311  aa  6 01006 2521 00    spri2   pr6|518\r
+006312  aa   771762 3520 04    epp2    -3086,ic                000274 = 526000000040\r
+006313  aa  6 01010 2521 00    spri2   pr6|520\r
+006314  aa  6 00760 6211 00    eax1    pr6|496\r
+006315  aa   030000 4310 07    fld     12288,dl\r
+006316  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006317  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006320  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1007\r
+               call tssi_$finish_segment (output_pt, objectbc, "110"b, object_hold, code);\r
+\r
+006321  aa   600000 2350 03    lda     196608,du\r
+006322  aa  6 00757 7551 00    sta     pr6|495\r
+006323  aa  6 00230 3521 00    epp2    pr6|152         output_pt\r
+006324  aa  6 00650 2521 00    spri2   pr6|424\r
+006325  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006326  ia  4 00067 3521 00    epp2    pr4|55          objectbc\r
+006327  aa  6 00652 2521 00    spri2   pr6|426\r
+006330  aa  6 00757 3521 00    epp2    pr6|495\r
+006331  aa  6 00654 2521 00    spri2   pr6|428\r
+006332  aa  6 00216 3521 00    epp2    pr6|142         object_hold\r
+006333  aa  6 00656 2521 00    spri2   pr6|430\r
+006334  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006335  aa  6 00660 2521 00    spri2   pr6|432\r
+006336  aa  6 00646 6211 00    eax1    pr6|422\r
+006337  aa   024000 4310 07    fld     10240,dl\r
+006340  la  4 00546 3521 20    epp2    pr4|358,*               tssi_$finish_segment\r
+006341  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1008\r
+               if code ^= 0\r
+               then call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", objectname);\r
+\r
+006342  aa  6 00162 2361 00    ldq     pr6|114         code\r
+006343  aa   000050 6000 04    tze     40,ic           006413\r
+006344  aa   772045 2350 04    lda     -3035,ic                000411 = 136141136133\r
+006345  aa   772045 2360 04    ldq     -3035,ic                000412 = 076136135136\r
+006346  aa  6 00604 7571 00    staq    pr6|388\r
+006347  aa   141000 2350 03    lda     49664,du\r
+006350  aa  6 00606 7551 00    sta     pr6|390\r
+006351  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+006352  aa  6 00360 00 0250    desc9a  pr6|240,168     wdirname\r
+006353  aa   004204 00 0001    desc9a  2180,1          012555 = 076000000000\r
+006354  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+006355  aa  6 00757 7551 00    sta     pr6|495\r
+006356  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006357  aa  6 00762 2521 00    spri2   pr6|498\r
+006360  aa   771635 3520 04    epp2    -3171,ic                000215 = 160154061000\r
+006361  aa  6 00764 2521 00    spri2   pr6|500\r
+006362  aa  6 00604 3521 00    epp2    pr6|388\r
+006363  aa  6 00766 2521 00    spri2   pr6|502\r
+006364  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+006365  aa  6 00770 2521 00    spri2   pr6|504\r
+006366  aa  6 00757 3521 00    epp2    pr6|495\r
+006367  aa  6 00772 2521 00    spri2   pr6|506\r
+006370  aa  6 00220 3521 00    epp2    pr6|144         objectname\r
+006371  aa  6 00774 2521 00    spri2   pr6|508\r
+006372  aa   771677 3520 04    epp2    -3137,ic                000271 = 404000000043\r
+006373  aa  6 00776 2521 00    spri2   pr6|510\r
+006374  aa   771674 3520 04    epp2    -3140,ic                000270 = 526000000003\r
+006375  aa  6 01000 2521 00    spri2   pr6|512\r
+006376  aa   771646 3520 04    epp2    -3162,ic                000244 = 524000000011\r
+006377  aa  6 01002 2521 00    spri2   pr6|514\r
+006400  aa   771673 3520 04    epp2    -3141,ic                000273 = 526000000250\r
+006401  aa  6 01004 2521 00    spri2   pr6|516\r
+006402  aa   771670 3520 04    epp2    -3144,ic                000272 = 514000000001\r
+006403  aa  6 01006 2521 00    spri2   pr6|518\r
+006404  aa   771670 3520 04    epp2    -3144,ic                000274 = 526000000040\r
+006405  aa  6 01010 2521 00    spri2   pr6|520\r
+006406  aa  6 00760 6211 00    eax1    pr6|496\r
+006407  aa   030000 4310 07    fld     12288,dl\r
+006410  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006411  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006412  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1010\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1012\r
+       call cpu_time_and_paging_ (npages (7), ncpu (7), pd_faults);\r
+\r
+006413  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006414  ia  4 00065 3521 00    epp2    pr4|53          npages\r
+006415  aa  6 00650 2521 00    spri2   pr6|424\r
+006416  ia  4 00054 3521 00    epp2    pr4|44          ncpu\r
+006417  aa  6 00652 2521 00    spri2   pr6|426\r
+006420  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+006421  aa  6 00654 2521 00    spri2   pr6|428\r
+006422  aa  6 00646 6211 00    eax1    pr6|422\r
+006423  aa   014000 4310 07    fld     6144,dl\r
+006424  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+006425  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1013\r
+       call set_storage_usage (storage (5), xeq_storage (5));\r
+\r
+006426  aa   000002 7270 07    lxl7    2,dl\r
+006427  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006430  ia  4 00104 3521 00    epp2    pr4|68          storage\r
+006431  aa  2 00000 5005 17    a9bd    pr2|0,7\r
+006432  aa  6 00650 2521 00    spri2   pr6|424\r
+006433  ia  4 00172 3521 00    epp2    pr4|122         xeq_storage\r
+006434  aa  2 00000 5005 17    a9bd    pr2|0,7\r
+006435  aa  6 00652 2521 00    spri2   pr6|426\r
+006436  aa   771547 3520 04    epp2    -3225,ic                000205 = 526000000012\r
+006437  aa  6 00654 2521 00    spri2   pr6|428\r
+006440  aa   771545 3520 04    epp2    -3227,ic                000205 = 526000000012\r
+006441  aa  6 00656 2521 00    spri2   pr6|430\r
+006442  aa  6 00646 3521 00    epp2    pr6|422\r
+006443  aa   010000 4310 07    fld     4096,dl\r
+006444  aa  2 00000 7571 00    staq    pr2|0\r
+006445  aa   003244 6700 04    tsp4    1700,ic         011711\r
+                                               STATEMENT 1 ON LINE 1015\r
+       storage (6), storage (7) = storage (5);\r
+\r
+006446  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006447  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+006450  ia  4 00104 40 0012    desc9a  pr4|68(2),10    storage\r
+006451  aa  6 00604 00 0012    desc9a  pr6|388,10\r
+006452  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+006453  aa  6 00604 00 0012    desc9a  pr6|388,10\r
+006454  ia  4 00107 00 0012    desc9a  pr4|71,10               storage\r
+006455  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+006456  aa  6 00604 00 0012    desc9a  pr6|388,10\r
+006457  ia  4 00111 40 0012    desc9a  pr4|73(2),10    storage\r
+                                               STATEMENT 1 ON LINE 1016\r
+       xeq_storage (6), xeq_storage (7) = xeq_storage (5);\r
+\r
+006460  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+006461  ia  4 00172 40 0012    desc9a  pr4|122(2),10   xeq_storage\r
+006462  aa  6 00604 00 0012    desc9a  pr6|388,10\r
+006463  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+006464  aa  6 00604 00 0012    desc9a  pr6|388,10\r
+006465  ia  4 00175 00 0012    desc9a  pr4|125,10      xeq_storage\r
+006466  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+006467  aa  6 00604 00 0012    desc9a  pr6|388,10\r
+006470  ia  4 00177 40 0012    desc9a  pr4|127(2),10   xeq_storage\r
+                                               STATEMENT 1 ON LINE 1018\r
+       if ^cg_static_$debug\r
+       then call truncate;\r
+\r
+006471  la  4 00212 2351 20    lda     pr4|138,*               cg_static_$debug\r
+006472  aa   000005 6010 04    tnz     5,ic            006477\r
+006473  aa  6 00056 6211 00    eax1    pr6|46\r
+006474  aa   000000 4310 07    fld     0,dl\r
+006475  aa   003143 3520 04    epp2    1635,ic         011640 = 000120627000\r
+006476  aa  0 00625 7001 00    tsx0    pr0|405         call_int_this\r
+                                               STATEMENT 1 ON LINE 1021\r
+       pl1_severity_ = pl1_stat_$greatest_severity;\r
+\r
+006477  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006500  la  4 00314 2361 20    ldq     pr4|204,*               pl1_stat_$greatest_severity\r
+006501  la  4 00250 7561 20    stq     pr4|168,*               pl1_severity_\r
+                                               STATEMENT 1 ON LINE 1023\r
+       pl1_stat_$compiler_invoked = "0"b;\r
+\r
+006502  la  4 00272 4501 20    stz     pr4|186,*               pl1_stat_$compiler_invoked\r
+                                               STATEMENT 1 ON LINE 1025\r
+       if ca.time\r
+       then call print_times;\r
+\r
+006503  aa  6 00144 2351 00    lda     pr6|100         ca.time\r
+006504  aa   000002 6000 04    tze     2,ic            006506\r
+006505  aa   002414 6700 04    tsp4    1292,ic         011121\r
+                                               STATEMENT 1 ON LINE 1028\r
+       return;\r
+\r
+006506  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1030\r
+abort_return:\r
+       call com_err_ (0, my_name, "An unrecoverable error has occurred.");\r
+\r
+006507  aa  6 00757 4501 00    stz     pr6|495\r
+006510  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+006511  aa   772276 00 0044    desc9a  -2882,36                001006 = 101156040165\r
+006512  aa  6 00646 00 0044    desc9a  pr6|422,36\r
+006513  aa  6 00757 3521 00    epp2    pr6|495\r
+006514  aa  6 00626 2521 00    spri2   pr6|406\r
+006515  aa   771500 3520 04    epp2    -3264,ic                000215 = 160154061000\r
+006516  aa  6 00630 2521 00    spri2   pr6|408\r
+006517  aa  6 00646 3521 00    epp2    pr6|422\r
+006520  aa  6 00632 2521 00    spri2   pr6|410\r
+006521  aa   771546 3520 04    epp2    -3226,ic                000267 = 404000000005\r
+006522  aa  6 00634 2521 00    spri2   pr6|412\r
+006523  aa   771545 3520 04    epp2    -3227,ic                000270 = 526000000003\r
+006524  aa  6 00636 2521 00    spri2   pr6|414\r
+006525  aa   771501 3520 04    epp2    -3263,ic                000226 = 524000000044\r
+006526  aa  6 00640 2521 00    spri2   pr6|416\r
+006527  aa  6 00624 6211 00    eax1    pr6|404\r
+006530  aa   014000 4310 07    fld     6144,dl\r
+006531  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006532  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006533  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1032\r
+       translation_failed = "1"b;\r
+\r
+006534  aa   400000 2350 03    lda     131072,du\r
+006535  aa  6 00357 7551 00    sta     pr6|239         translation_failed\r
+                                               STATEMENT 1 ON LINE 1033\r
+       goto continue_from_abort;\r
+\r
+006536  aa   777226 7100 04    tra     -362,ic         005764\r
+ENTRY TO times                                              STATEMENT 1 ON LINE 1035\r
+times:\r
+     entry options (variable);\r
+\r
+006537  da     001464240000\r
+006540  aa   001760 6270 00    eax7    1008\r
+006541  aa  7 00034 3521 20    epp2    pr7|28,*\r
+006542  aa  2 01045 2721 00    tsp2    pr2|549         ext_entry\r
+006543  aa     000000000000\r
+006544  2s     000210000246\r
+                                               STATEMENT 1 ON LINE 1038\r
+       call cu_$arg_count (arg_count, code);\r
+\r
+006545  aa  6 00101 3521 00    epp2    pr6|65          arg_count\r
+006546  aa  6 00606 2521 00    spri2   pr6|390\r
+006547  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006550  aa  6 00610 2521 00    spri2   pr6|392\r
+006551  aa  6 00604 6211 00    eax1    pr6|388\r
+006552  aa   010000 4310 07    fld     4096,dl\r
+006553  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006554  la  4 00474 3521 20    epp2    pr4|316,*               cu_$arg_count\r
+006555  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1039\r
+       if code ^= 0\r
+       then do;\r
+\r
+006556  aa  6 00162 2361 00    ldq     pr6|114         code\r
+006557  aa   000017 6000 04    tze     15,ic           006576\r
+                                               STATEMENT 1 ON LINE 1041\r
+               call com_err_ (code, my_name);\r
+\r
+006560  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006561  aa  6 00650 2521 00    spri2   pr6|424\r
+006562  aa   771433 3520 04    epp2    -3301,ic                000215 = 160154061000\r
+006563  aa  6 00652 2521 00    spri2   pr6|426\r
+006564  aa   771505 3520 04    epp2    -3259,ic                000271 = 404000000043\r
+006565  aa  6 00654 2521 00    spri2   pr6|428\r
+006566  aa   771502 3520 04    epp2    -3262,ic                000270 = 526000000003\r
+006567  aa  6 00656 2521 00    spri2   pr6|430\r
+006570  aa  6 00646 6211 00    eax1    pr6|422\r
+006571  aa   010000 4310 07    fld     4096,dl\r
+006572  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006573  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006574  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1042\r
+               return;\r
+\r
+006575  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1043\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1045\r
+       if arg_count ^= 0\r
+       then do;\r
+\r
+006576  aa  6 00101 2361 00    ldq     pr6|65          arg_count\r
+006577  aa   000033 6000 04    tze     27,ic           006632\r
+                                               STATEMENT 1 ON LINE 1047\r
+               call com_err_$suppress_name (0, my_name, "Usage: ^a$times", my_name);\r
+\r
+006600  aa  6 00757 4501 00    stz     pr6|495\r
+006601  aa   771727 2370 04    ldaq    -3113,ic                000530 = 125163141147 145072040136\r
+006602  aa  6 00604 7571 00    staq    pr6|388\r
+006603  aa   771727 2370 04    ldaq    -3113,ic                000532 = 141044164151 155145163000\r
+006604  aa  6 00606 7571 00    staq    pr6|390\r
+006605  aa  6 00757 3521 00    epp2    pr6|495\r
+006606  aa  6 00736 2521 00    spri2   pr6|478\r
+006607  aa   771406 3520 04    epp2    -3322,ic                000215 = 160154061000\r
+006610  aa  6 00740 2521 00    spri2   pr6|480\r
+006611  aa  6 00604 3521 00    epp2    pr6|388\r
+006612  aa  6 00742 2521 00    spri2   pr6|482\r
+006613  aa   771402 3520 04    epp2    -3326,ic                000215 = 160154061000\r
+006614  aa  6 00744 2521 00    spri2   pr6|484\r
+006615  aa   771452 3520 04    epp2    -3286,ic                000267 = 404000000005\r
+006616  aa  6 00746 2521 00    spri2   pr6|486\r
+006617  aa   771451 3520 04    epp2    -3287,ic                000270 = 526000000003\r
+006620  aa  6 00750 2521 00    spri2   pr6|488\r
+006621  aa  6 00754 2521 00    spri2   pr6|492\r
+006622  aa   771361 3520 04    epp2    -3343,ic                000203 = 524000000017\r
+006623  aa  6 00752 2521 00    spri2   pr6|490\r
+006624  aa  6 00734 6211 00    eax1    pr6|476\r
+006625  aa   020000 4310 07    fld     8192,dl\r
+006626  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006627  la  4 00470 3521 20    epp2    pr4|312,*               com_err_$suppress_name\r
+006630  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1048\r
+               return;\r
+\r
+006631  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1049\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1051\r
+       call print_times;\r
+\r
+006632  aa   002267 6700 04    tsp4    1207,ic         011121\r
+                                               STATEMENT 1 ON LINE 1053\r
+       return;\r
+\r
+006633  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+ENTRY TO clean_up                                           STATEMENT 1 ON LINE 1055\r
+clean_up:\r
+     entry options (variable);\r
+\r
+006634  da     001472240000\r
+006635  aa   001760 6270 00    eax7    1008\r
+006636  aa  7 00034 3521 20    epp2    pr7|28,*\r
+006637  aa  2 01045 2721 00    tsp2    pr2|549         ext_entry\r
+006640  aa     000000000000\r
+006641  2s     000210000246\r
+                                               STATEMENT 1 ON LINE 1058\r
+       call cu_$arg_count (arg_count, code);\r
+\r
+006642  aa  6 00101 3521 00    epp2    pr6|65          arg_count\r
+006643  aa  6 00606 2521 00    spri2   pr6|390\r
+006644  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006645  aa  6 00610 2521 00    spri2   pr6|392\r
+006646  aa  6 00604 6211 00    eax1    pr6|388\r
+006647  aa   010000 4310 07    fld     4096,dl\r
+006650  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006651  la  4 00474 3521 20    epp2    pr4|316,*               cu_$arg_count\r
+006652  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1059\r
+       if code ^= 0\r
+       then do;\r
+\r
+006653  aa  6 00162 2361 00    ldq     pr6|114         code\r
+006654  aa   000017 6000 04    tze     15,ic           006673\r
+                                               STATEMENT 1 ON LINE 1061\r
+               call com_err_ (code, my_name);\r
+\r
+006655  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006656  aa  6 00650 2521 00    spri2   pr6|424\r
+006657  aa   771336 3520 04    epp2    -3362,ic                000215 = 160154061000\r
+006660  aa  6 00652 2521 00    spri2   pr6|426\r
+006661  aa   771410 3520 04    epp2    -3320,ic                000271 = 404000000043\r
+006662  aa  6 00654 2521 00    spri2   pr6|428\r
+006663  aa   771405 3520 04    epp2    -3323,ic                000270 = 526000000003\r
+006664  aa  6 00656 2521 00    spri2   pr6|430\r
+006665  aa  6 00646 6211 00    eax1    pr6|422\r
+006666  aa   010000 4310 07    fld     4096,dl\r
+006667  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006670  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+006671  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1062\r
+               return;\r
+\r
+006672  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1063\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1065\r
+       if arg_count ^= 0\r
+       then do;\r
+\r
+006673  aa  6 00101 2361 00    ldq     pr6|65          arg_count\r
+006674  aa   000035 6000 04    tze     29,ic           006731\r
+                                               STATEMENT 1 ON LINE 1067\r
+               call com_err_$suppress_name (0, my_name, "Usage: ^a$clean_up", my_name);\r
+\r
+006675  aa  6 00757 4501 00    stz     pr6|495\r
+006676  aa   771710 2370 04    ldaq    -3128,ic                000606 = 125163141147 145072040136\r
+006677  aa  6 00604 7571 00    staq    pr6|388\r
+006700  aa   771710 2370 04    ldaq    -3128,ic                000610 = 141044143154 145141156137\r
+006701  aa  6 00606 7571 00    staq    pr6|390\r
+006702  aa   165160 2350 03    lda     60016,du\r
+006703  aa  6 00610 7551 00    sta     pr6|392\r
+006704  aa  6 00757 3521 00    epp2    pr6|495\r
+006705  aa  6 00736 2521 00    spri2   pr6|478\r
+006706  aa   771307 3520 04    epp2    -3385,ic                000215 = 160154061000\r
+006707  aa  6 00740 2521 00    spri2   pr6|480\r
+006710  aa  6 00604 3521 00    epp2    pr6|388\r
+006711  aa  6 00742 2521 00    spri2   pr6|482\r
+006712  aa   771303 3520 04    epp2    -3389,ic                000215 = 160154061000\r
+006713  aa  6 00744 2521 00    spri2   pr6|484\r
+006714  aa   771353 3520 04    epp2    -3349,ic                000267 = 404000000005\r
+006715  aa  6 00746 2521 00    spri2   pr6|486\r
+006716  aa   771352 3520 04    epp2    -3350,ic                000270 = 526000000003\r
+006717  aa  6 00750 2521 00    spri2   pr6|488\r
+006720  aa  6 00754 2521 00    spri2   pr6|492\r
+006721  aa   771261 3520 04    epp2    -3407,ic                000202 = 524000000022\r
+006722  aa  6 00752 2521 00    spri2   pr6|490\r
+006723  aa  6 00734 6211 00    eax1    pr6|476\r
+006724  aa   020000 4310 07    fld     8192,dl\r
+006725  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006726  la  4 00470 3521 20    epp2    pr4|312,*               com_err_$suppress_name\r
+006727  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1068\r
+               return;\r
+\r
+006730  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1069\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1071\r
+       object_hold = null;\r
+\r
+006731  aa   771451 2370 04    ldaq    -3287,ic                000402 = 077777000043 000001000000\r
+006732  aa  6 00216 7571 00    staq    pr6|142         object_hold\r
+                                               STATEMENT 1 ON LINE 1072\r
+       list_hold = null;\r
+\r
+006733  aa  6 00172 7571 00    staq    pr6|122         list_hold\r
+                                               STATEMENT 1 ON LINE 1074\r
+       call truncate;\r
+\r
+006734  aa  6 00056 6211 00    eax1    pr6|46\r
+006735  aa   000000 4310 07    fld     0,dl\r
+006736  aa   002702 3520 04    epp2    1474,ic         011640 = 000120627000\r
+006737  aa  0 00625 7001 00    tsx0    pr0|405         call_int_this\r
+                                               STATEMENT 1 ON LINE 1075\r
+       pl1_stat_$compiler_invoked = "0"b;\r
+\r
+006740  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006741  la  4 00272 4501 20    stz     pr4|186,*               pl1_stat_$compiler_invoked\r
+                                               STATEMENT 1 ON LINE 1077\r
+       return;\r
+\r
+006742  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+ENTRY TO blast                                              STATEMENT 1 ON LINE 1079\r
+blast:\r
+     entry options (variable);\r
+\r
+006743  da     001477240000\r
+006744  aa   001760 6270 00    eax7    1008\r
+006745  aa  7 00034 3521 20    epp2    pr7|28,*\r
+006746  aa  2 01045 2721 00    tsp2    pr2|549         ext_entry\r
+006747  aa     000000000000\r
+006750  2s     000210000246\r
+                                               STATEMENT 1 ON LINE 1082\r
+       call cu_$arg_count (arg_count, code);\r
+\r
+006751  aa  6 00101 3521 00    epp2    pr6|65          arg_count\r
+006752  aa  6 00606 2521 00    spri2   pr6|390\r
+006753  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006754  aa  6 00610 2521 00    spri2   pr6|392\r
+006755  aa  6 00604 6211 00    eax1    pr6|388\r
+006756  aa   010000 4310 07    fld     4096,dl\r
+006757  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006760  la  4 00474 3521 20    epp2    pr4|316,*               cu_$arg_count\r
+006761  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1083\r
+       if code ^= 0\r
+       then do;\r
+\r
+006762  aa  6 00162 2361 00    ldq     pr6|114         code\r
+006763  aa   000017 6000 04    tze     15,ic           007002\r
+                                               STATEMENT 1 ON LINE 1085\r
+               call com_err_ (code, my_name);\r
+\r
+006764  aa  6 00162 3521 00    epp2    pr6|114         code\r
+006765  aa  6 00650 2521 00    spri2   pr6|424\r
+006766  aa   771227 3520 04    epp2    -3433,ic                000215 = 160154061000\r
+006767  aa  6 00652 2521 00    spri2   pr6|426\r
+006770  aa   771301 3520 04    epp2    -3391,ic                000271 = 404000000043\r
+006771  aa  6 00654 2521 00    spri2   pr6|428\r
+006772  aa   771276 3520 04    epp2    -3394,ic                000270 = 526000000003\r
+006773  aa  6 00656 2521 00    spri2   pr6|430\r
+006774  aa  6 00646 6211 00    eax1    pr6|422\r
+006775  aa   010000 4310 07    fld     4096,dl\r
+006776  aa  6 00044 3701 20    epp4    pr6|36,*\r
+006777  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007000  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1086\r
+               return;\r
+\r
+007001  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1087\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1089\r
+       string (blast_ca) = ""b;\r
+\r
+007002  aa   003534 2350 04    lda     1884,ic         012536 = 077777777777\r
+007003  aa  6 00107 3551 00    ansa    pr6|71\r
+                                               STATEMENT 1 ON LINE 1090\r
+       argument_no = 0;\r
+\r
+007004  aa  6 00100 4501 00    stz     pr6|64          argument_no\r
+                                               STATEMENT 1 ON LINE 1091\r
+       do i = 1 to arg_count;\r
+\r
+007005  aa  6 00101 2361 00    ldq     pr6|65          arg_count\r
+007006  aa  6 00456 7561 00    stq     pr6|302\r
+007007  aa   000001 2360 07    ldq     1,dl\r
+007010  aa  6 00166 7561 00    stq     pr6|118         i\r
+007011  aa   000000 0110 03    nop     0,du\r
+007012  aa  6 00166 2361 00    ldq     pr6|118         i\r
+007013  aa  6 00456 1161 00    cmpq    pr6|302\r
+007014  aa   000260 6054 04    tpnz    176,ic          007274\r
+                                               STATEMENT 1 ON LINE 1092\r
+            call cu_$arg_ptr (i, arg_ptr, arg_length, code);\r
+\r
+007015  aa  6 00166 3521 00    epp2    pr6|118         i\r
+007016  aa  6 00650 2521 00    spri2   pr6|424\r
+007017  aa  6 00104 3521 00    epp2    pr6|68          arg_ptr\r
+007020  aa  6 00652 2521 00    spri2   pr6|426\r
+007021  aa  6 00102 3521 00    epp2    pr6|66          arg_length\r
+007022  aa  6 00654 2521 00    spri2   pr6|428\r
+007023  aa  6 00162 3521 00    epp2    pr6|114         code\r
+007024  aa  6 00656 2521 00    spri2   pr6|430\r
+007025  aa  6 00646 6211 00    eax1    pr6|422\r
+007026  aa   020000 4310 07    fld     8192,dl\r
+007027  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007030  la  4 00476 3521 20    epp2    pr4|318,*               cu_$arg_ptr\r
+007031  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1093\r
+            if code ^= 0\r
+            then do;\r
+\r
+007032  aa  6 00162 2361 00    ldq     pr6|114         code\r
+007033  aa   000033 6000 04    tze     27,ic           007066\r
+                                               STATEMENT 1 ON LINE 1095\r
+                    call com_err_ (code, my_name, "Argument ^d.", i);\r
+\r
+007034  aa   771446 2370 04    ldaq    -3290,ic                000502 = 101162147165 155145156164\r
+007035  aa  6 00604 7571 00    staq    pr6|388\r
+007036  aa   771446 2350 04    lda     -3290,ic                000504 = 040136144056\r
+007037  aa  6 00606 7551 00    sta     pr6|390\r
+007040  aa  6 00162 3521 00    epp2    pr6|114         code\r
+007041  aa  6 00736 2521 00    spri2   pr6|478\r
+007042  aa   771153 3520 04    epp2    -3477,ic                000215 = 160154061000\r
+007043  aa  6 00740 2521 00    spri2   pr6|480\r
+007044  aa  6 00604 3521 00    epp2    pr6|388\r
+007045  aa  6 00742 2521 00    spri2   pr6|482\r
+007046  aa  6 00166 3521 00    epp2    pr6|118         i\r
+007047  aa  6 00744 2521 00    spri2   pr6|484\r
+007050  aa   771221 3520 04    epp2    -3439,ic                000271 = 404000000043\r
+007051  aa  6 00746 2521 00    spri2   pr6|486\r
+007052  aa   771216 3520 04    epp2    -3442,ic                000270 = 526000000003\r
+007053  aa  6 00750 2521 00    spri2   pr6|488\r
+007054  aa   771210 3520 04    epp2    -3448,ic                000264 = 524000000014\r
+007055  aa  6 00752 2521 00    spri2   pr6|490\r
+007056  aa   771217 3520 04    epp2    -3441,ic                000275 = 404000000021\r
+007057  aa  6 00754 2521 00    spri2   pr6|492\r
+007060  aa  6 00734 6211 00    eax1    pr6|476\r
+007061  aa   020000 4310 07    fld     8192,dl\r
+007062  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007063  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007064  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1096\r
+                    return;\r
+\r
+007065  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1097\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 1099\r
+            if arg_string = "-on"\r
+            then do;\r
+\r
+007066  aa  6 00104 3735 20    epp7    pr6|68,*                arg_ptr\r
+007067  aa  6 00102 2351 00    lda     pr6|66          arg_length\r
+007070  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+007071  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+007072  aa   771111 00 0003    desc9a  -3511,3         000201 = 055157156000\r
+007073  aa   000006 6010 04    tnz     6,ic            007101\r
+                                               STATEMENT 1 ON LINE 1101\r
+                    blast_ca.on = "1"b;\r
+\r
+007074  aa   200000 2350 03    lda     65536,du\r
+007075  aa  6 00107 2551 00    orsa    pr6|71          blast_ca.on\r
+                                               STATEMENT 1 ON LINE 1102\r
+                    blast_ca.off = "0"b;\r
+\r
+007076  aa   003437 2350 04    lda     1823,ic         012535 = 377777777777\r
+007077  aa  6 00107 3551 00    ansa    pr6|71          blast_ca.off\r
+                                               STATEMENT 1 ON LINE 1103\r
+               end;\r
+\r
+007100  aa   000172 7100 04    tra     122,ic          007272\r
+                                               STATEMENT 1 ON LINE 1105\r
+            else if arg_string = "-off"\r
+            then do;\r
+\r
+007101  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+007102  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+007103  aa   771077 00 0004    desc9a  -3521,4         000200 = 055157146146\r
+007104  aa   000006 6010 04    tnz     6,ic            007112\r
+                                               STATEMENT 1 ON LINE 1107\r
+                    blast_ca.on = "0"b;\r
+\r
+007105  aa   003427 2350 04    lda     1815,ic         012534 = 577777777777\r
+007106  aa  6 00107 3551 00    ansa    pr6|71          blast_ca.on\r
+                                               STATEMENT 1 ON LINE 1108\r
+                    blast_ca.off = "1"b;\r
+\r
+007107  aa   400000 2350 03    lda     131072,du\r
+007110  aa  6 00107 2551 00    orsa    pr6|71          blast_ca.off\r
+                                               STATEMENT 1 ON LINE 1109\r
+               end;\r
+\r
+007111  aa   000161 7100 04    tra     113,ic          007272\r
+                                               STATEMENT 1 ON LINE 1111\r
+            else if arg_string = "-set"\r
+            then do;\r
+\r
+007112  aa  040 004 106 540    cmpc    (pr,rl),(ic),fill(040)\r
+007113  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+007114  aa   771065 00 0004    desc9a  -3531,4         000177 = 055163145164\r
+007115  aa   000107 6010 04    tnz     71,ic           007224\r
+                                               STATEMENT 1 ON LINE 1113\r
+                    i = i + 1;\r
+\r
+007116  aa  6 00166 0541 00    aos     pr6|118         i\r
+                                               STATEMENT 1 ON LINE 1114\r
+                    if i > arg_count\r
+                    then do;\r
+\r
+007117  aa  6 00166 2361 00    ldq     pr6|118         i\r
+007120  aa  6 00101 1161 00    cmpq    pr6|65          arg_count\r
+007121  aa   000027 6044 04    tmoz    23,ic           007150\r
+                                               STATEMENT 1 ON LINE 1116\r
+                            call com_err_ (0, my_name, "Missing blast message after -set.");\r
+\r
+007122  aa  6 00757 4501 00    stz     pr6|495\r
+007123  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+007124  aa   771652 00 0044    desc9a  -3158,36                000775 = 115151163163\r
+007125  aa  6 00646 00 0044    desc9a  pr6|422,36\r
+007126  aa  6 00757 3521 00    epp2    pr6|495\r
+007127  aa  6 00626 2521 00    spri2   pr6|406\r
+007130  aa   771065 3520 04    epp2    -3531,ic                000215 = 160154061000\r
+007131  aa  6 00630 2521 00    spri2   pr6|408\r
+007132  aa  6 00646 3521 00    epp2    pr6|422\r
+007133  aa  6 00632 2521 00    spri2   pr6|410\r
+007134  aa   771133 3520 04    epp2    -3493,ic                000267 = 404000000005\r
+007135  aa  6 00634 2521 00    spri2   pr6|412\r
+007136  aa   771132 3520 04    epp2    -3494,ic                000270 = 526000000003\r
+007137  aa  6 00636 2521 00    spri2   pr6|414\r
+007140  aa   771036 3520 04    epp2    -3554,ic                000176 = 524000000041\r
+007141  aa  6 00640 2521 00    spri2   pr6|416\r
+007142  aa  6 00624 6211 00    eax1    pr6|404\r
+007143  aa   014000 4310 07    fld     6144,dl\r
+007144  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007145  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007146  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1117\r
+                            return;\r
+\r
+007147  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1118\r
+                       end;\r
+\r
+                                               STATEMENT 1 ON LINE 1120\r
+                    call cu_$arg_ptr (i, blast_msg_ptr, blast_msg_len, code);\r
+\r
+007150  aa  6 00166 3521 00    epp2    pr6|118         i\r
+007151  aa  6 00650 2521 00    spri2   pr6|424\r
+007152  aa  6 00112 3521 00    epp2    pr6|74          blast_msg_ptr\r
+007153  aa  6 00652 2521 00    spri2   pr6|426\r
+007154  aa  6 00110 3521 00    epp2    pr6|72          blast_msg_len\r
+007155  aa  6 00654 2521 00    spri2   pr6|428\r
+007156  aa  6 00162 3521 00    epp2    pr6|114         code\r
+007157  aa  6 00656 2521 00    spri2   pr6|430\r
+007160  aa  6 00646 6211 00    eax1    pr6|422\r
+007161  aa   020000 4310 07    fld     8192,dl\r
+007162  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007163  la  4 00476 3521 20    epp2    pr4|318,*               cu_$arg_ptr\r
+007164  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1121\r
+                    if code ^= 0\r
+                    then do;\r
+\r
+007165  aa  6 00162 2361 00    ldq     pr6|114         code\r
+007166  aa   000033 6000 04    tze     27,ic           007221\r
+                                               STATEMENT 1 ON LINE 1123\r
+                            call com_err_ (code, my_name, "Argument ^d.", i);\r
+\r
+007167  aa   771313 2370 04    ldaq    -3381,ic                000502 = 101162147165 155145156164\r
+007170  aa  6 00604 7571 00    staq    pr6|388\r
+007171  aa   771313 2350 04    lda     -3381,ic                000504 = 040136144056\r
+007172  aa  6 00606 7551 00    sta     pr6|390\r
+007173  aa  6 00162 3521 00    epp2    pr6|114         code\r
+007174  aa  6 00736 2521 00    spri2   pr6|478\r
+007175  aa   771020 3520 04    epp2    -3568,ic                000215 = 160154061000\r
+007176  aa  6 00740 2521 00    spri2   pr6|480\r
+007177  aa  6 00604 3521 00    epp2    pr6|388\r
+007200  aa  6 00742 2521 00    spri2   pr6|482\r
+007201  aa  6 00166 3521 00    epp2    pr6|118         i\r
+007202  aa  6 00744 2521 00    spri2   pr6|484\r
+007203  aa   771066 3520 04    epp2    -3530,ic                000271 = 404000000043\r
+007204  aa  6 00746 2521 00    spri2   pr6|486\r
+007205  aa   771063 3520 04    epp2    -3533,ic                000270 = 526000000003\r
+007206  aa  6 00750 2521 00    spri2   pr6|488\r
+007207  aa   771055 3520 04    epp2    -3539,ic                000264 = 524000000014\r
+007210  aa  6 00752 2521 00    spri2   pr6|490\r
+007211  aa   771064 3520 04    epp2    -3532,ic                000275 = 404000000021\r
+007212  aa  6 00754 2521 00    spri2   pr6|492\r
+007213  aa  6 00734 6211 00    eax1    pr6|476\r
+007214  aa   020000 4310 07    fld     8192,dl\r
+007215  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007216  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007217  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1124\r
+                            return;\r
+\r
+007220  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1125\r
+                       end;\r
+\r
+                                               STATEMENT 1 ON LINE 1127\r
+                    blast_ca.set = "1"b;\r
+\r
+007221  aa   100000 2350 03    lda     32768,du\r
+007222  aa  6 00107 2551 00    orsa    pr6|71          blast_ca.set\r
+                                               STATEMENT 1 ON LINE 1128\r
+               end;\r
+\r
+007223  aa   000047 7100 04    tra     39,ic           007272\r
+                                               STATEMENT 1 ON LINE 1130\r
+            else if index (arg_string, "-") = 1\r
+            then do;\r
+\r
+007224  aa  000 003 124 540    scm     (pr,rl),(du),mask(000)\r
+007225  aa  7 00000 00 0005    desc9a  pr7|0,al                arg_string\r
+007226  aa   055000 00 0001    desc9a  23040,1\r
+007227  aa  6 00056 0001 00    arg     pr6|46\r
+007230  aa  6 00056 2361 00    ldq     pr6|46\r
+007231  aa   000002 6070 04    ttf     2,ic            007233\r
+007232  aa   000001 3360 07    lcq     1,dl\r
+007233  aa   000001 0760 07    adq     1,dl\r
+007234  aa   000001 1160 07    cmpq    1,dl\r
+007235  aa   000034 6010 04    tnz     28,ic           007271\r
+                                               STATEMENT 1 ON LINE 1132\r
+                    call com_err_ (error_table_$badopt, my_name, "^a", arg_string);\r
+\r
+007236  aa  6 00102 2361 00    ldq     pr6|66          arg_length\r
+007237  aa   526000 2760 03    orq     175104,du\r
+007240  aa  6 00757 7561 00    stq     pr6|495\r
+007241  aa   136141 2350 03    lda     48225,du\r
+007242  aa  6 00645 7551 00    sta     pr6|421\r
+007243  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007244  la  4 00230 3521 20    epp2    pr4|152,*               error_table_$badopt\r
+007245  aa  6 00736 2521 00    spri2   pr6|478\r
+007246  aa   770747 3520 04    epp2    -3609,ic                000215 = 160154061000\r
+007247  aa  6 00740 2521 00    spri2   pr6|480\r
+007250  aa  6 00645 3521 00    epp2    pr6|421\r
+007251  aa  6 00742 2521 00    spri2   pr6|482\r
+007252  aa  7 00000 3521 00    epp2    pr7|0           arg_string\r
+007253  aa  6 00744 2521 00    spri2   pr6|484\r
+007254  aa   771015 3520 04    epp2    -3571,ic                000271 = 404000000043\r
+007255  aa  6 00746 2521 00    spri2   pr6|486\r
+007256  aa   771012 3520 04    epp2    -3574,ic                000270 = 526000000003\r
+007257  aa  6 00750 2521 00    spri2   pr6|488\r
+007260  aa   770745 3520 04    epp2    -3611,ic                000225 = 524000000002\r
+007261  aa  6 00752 2521 00    spri2   pr6|490\r
+007262  aa  6 00757 3521 00    epp2    pr6|495\r
+007263  aa  6 00754 2521 00    spri2   pr6|492\r
+007264  aa  6 00734 6211 00    eax1    pr6|476\r
+007265  aa   020000 4310 07    fld     8192,dl\r
+007266  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007267  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1133\r
+                    return;\r
+\r
+007270  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1134\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 1136\r
+            else argument_no = argument_no + 1;\r
+\r
+007271  aa  6 00100 0541 00    aos     pr6|64          argument_no\r
+                                               STATEMENT 1 ON LINE 1137\r
+       end;\r
+\r
+007272  aa  6 00166 0541 00    aos     pr6|118         i\r
+007273  aa   777517 7100 04    tra     -177,ic         007012\r
+                                               STATEMENT 1 ON LINE 1139\r
+       if argument_no ^= 0 | string (blast_ca) = ""b\r
+       then do;\r
+\r
+007274  aa  6 00107 2351 00    lda     pr6|71\r
+007275  aa   700000 3150 03    cana    229376,du\r
+007276  aa  0 00512 7001 00    tsx0    pr0|330         r_e_as\r
+007277  aa  6 00757 7551 00    sta     pr6|495\r
+007300  aa  6 00100 2361 00    ldq     pr6|64          argument_no\r
+007301  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+007302  aa  6 00757 2751 00    ora     pr6|495\r
+007303  aa   000032 6000 04    tze     26,ic           007335\r
+                                               STATEMENT 1 ON LINE 1141\r
+               call com_err_$suppress_name (0, my_name, "Usage: ^a$blast -control_args", my_name);\r
+\r
+007304  aa  6 00757 4501 00    stz     pr6|495\r
+007305  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+007306  aa   771437 00 0040    desc9a  -3297,32                000744 = 125163141147\r
+007307  aa  6 00646 00 0040    desc9a  pr6|422,32\r
+007310  aa  6 00757 3521 00    epp2    pr6|495\r
+007311  aa  6 00736 2521 00    spri2   pr6|478\r
+007312  aa   770703 3520 04    epp2    -3645,ic                000215 = 160154061000\r
+007313  aa  6 00740 2521 00    spri2   pr6|480\r
+007314  aa  6 00646 3521 00    epp2    pr6|422\r
+007315  aa  6 00742 2521 00    spri2   pr6|482\r
+007316  aa   770677 3520 04    epp2    -3649,ic                000215 = 160154061000\r
+007317  aa  6 00744 2521 00    spri2   pr6|484\r
+007320  aa   770747 3520 04    epp2    -3609,ic                000267 = 404000000005\r
+007321  aa  6 00746 2521 00    spri2   pr6|486\r
+007322  aa   770746 3520 04    epp2    -3610,ic                000270 = 526000000003\r
+007323  aa  6 00750 2521 00    spri2   pr6|488\r
+007324  aa  6 00754 2521 00    spri2   pr6|492\r
+007325  aa   770650 3520 04    epp2    -3672,ic                000175 = 524000000035\r
+007326  aa  6 00752 2521 00    spri2   pr6|490\r
+007327  aa  6 00734 6211 00    eax1    pr6|476\r
+007330  aa   020000 4310 07    fld     8192,dl\r
+007331  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007332  la  4 00470 3521 20    epp2    pr4|312,*               com_err_$suppress_name\r
+007333  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1142\r
+               return;\r
+\r
+007334  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1143\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1145\r
+       if blast_ca.set & (blast_ca.on | blast_ca.off)\r
+       then do;\r
+\r
+007335  aa  6 00107 2351 00    lda     pr6|71          blast_ca.off\r
+007336  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+007337  aa  6 00757 7551 00    sta     pr6|495         blast_ca.off\r
+007340  aa  6 00107 2351 00    lda     pr6|71          blast_ca.on\r
+007341  aa   000001 7350 00    als     1\r
+007342  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+007343  aa  6 00757 2751 00    ora     pr6|495         blast_ca.off\r
+007344  aa  6 00757 7551 00    sta     pr6|495\r
+007345  aa  6 00107 2351 00    lda     pr6|71          blast_ca.set\r
+007346  aa   000002 7350 00    als     2\r
+007347  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+007350  aa  6 00757 3151 00    cana    pr6|495\r
+007351  aa   000037 6000 04    tze     31,ic           007410\r
+                                               STATEMENT 1 ON LINE 1147\r
+               call com_err_ (error_table_$inconsistent, my_name, "-set and -^[on^;off^]", blast_ca.on);\r
+\r
+007352  aa   771310 2370 04    ldaq    -3384,ic                000662 = 055163145164 040141156144\r
+007353  aa  6 00604 7571 00    staq    pr6|388\r
+007354  aa   771310 2370 04    ldaq    -3384,ic                000664 = 040055136133 157156136073\r
+007355  aa  6 00606 7571 00    staq    pr6|390\r
+007356  aa   771310 2370 04    ldaq    -3384,ic                000666 = 157146146136 135000000000\r
+007357  aa  6 00610 7571 00    staq    pr6|392\r
+007360  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007361  la  4 00234 3521 20    epp2    pr4|156,*               error_table_$inconsistent\r
+007362  aa  6 00736 2521 00    spri2   pr6|478\r
+007363  aa   770632 3520 04    epp2    -3686,ic                000215 = 160154061000\r
+007364  aa  6 00740 2521 00    spri2   pr6|480\r
+007365  aa  6 00604 3521 00    epp2    pr6|388\r
+007366  aa  6 00742 2521 00    spri2   pr6|482\r
+007367  aa   000001 7270 07    lxl7    1,dl\r
+007370  aa  6 00107 3521 00    epp2    pr6|71          blast_ca.on\r
+007371  aa  2 00000 5035 17    abd     pr2|0,7\r
+007372  aa  6 00744 2521 00    spri2   pr6|484\r
+007373  aa   770676 3520 04    epp2    -3650,ic                000271 = 404000000043\r
+007374  aa  6 00746 2521 00    spri2   pr6|486\r
+007375  aa   770673 3520 04    epp2    -3653,ic                000270 = 526000000003\r
+007376  aa  6 00750 2521 00    spri2   pr6|488\r
+007377  aa   770575 3520 04    epp2    -3715,ic                000174 = 524000000025\r
+007400  aa  6 00752 2521 00    spri2   pr6|490\r
+007401  aa   770572 3520 04    epp2    -3718,ic                000173 = 516000000001\r
+007402  aa  6 00754 2521 00    spri2   pr6|492\r
+007403  aa  6 00734 6211 00    eax1    pr6|476\r
+007404  aa   020000 4310 07    fld     8192,dl\r
+007405  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007406  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1148\r
+               return;\r
+\r
+007407  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1149\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1151\r
+       if blast_ca.on\r
+       then pl1_blast_$blast_on = "1"b;\r
+\r
+007410  aa  6 00107 2351 00    lda     pr6|71          blast_ca.on\r
+007411  aa   200000 3150 03    cana    65536,du\r
+007412  aa   000005 6000 04    tze     5,ic            007417\r
+007413  aa   400000 2350 03    lda     131072,du\r
+007414  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007415  la  4 00244 7551 20    sta     pr4|164,*               pl1_blast_$blast_on\r
+007416  aa   000033 7100 04    tra     27,ic           007451\r
+                                               STATEMENT 1 ON LINE 1154\r
+       else if blast_ca.off\r
+       then pl1_blast_$blast_on = "0"b;\r
+\r
+007417  aa  6 00107 2351 00    lda     pr6|71          blast_ca.off\r
+007420  aa   400000 3150 03    cana    131072,du\r
+007421  aa   000004 6000 04    tze     4,ic            007425\r
+007422  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007423  la  4 00244 4501 20    stz     pr4|164,*               pl1_blast_$blast_on\r
+007424  aa   000025 7100 04    tra     21,ic           007451\r
+                                               STATEMENT 1 ON LINE 1157\r
+       else if blast_ca.set\r
+       then do;\r
+\r
+007425  aa  6 00107 2351 00    lda     pr6|71          blast_ca.set\r
+007426  aa   100000 3150 03    cana    32768,du\r
+007427  aa   000022 6000 04    tze     18,ic           007451\r
+                                               STATEMENT 1 ON LINE 1159\r
+               pl1_blast_$blast_on = "0"b;\r
+\r
+007430  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007431  la  4 00244 4501 20    stz     pr4|164,*               pl1_blast_$blast_on\r
+                                               STATEMENT 1 ON LINE 1160\r
+               pl1_blast_$blast_message = blast_msg;\r
+\r
+007432  aa  6 00110 2361 00    ldq     pr6|72          blast_msg_len\r
+007433  aa   000100 1160 07    cmpq    64,dl\r
+007434  aa   000002 6040 04    tmi     2,ic            007436\r
+007435  aa   000100 2360 07    ldq     64,dl\r
+007436  la  4 00242 7561 20    stq     pr4|162,*               pl1_blast_$blast_message\r
+007437  la  4 00242 3735 20    epp7    pr4|162,*\r
+007440  aa  6 00112 3715 20    epp5    pr6|74,*                blast_msg_ptr\r
+007441  aa  040 140 100 540    mlr     (pr,rl),(pr,rl),fill(040)\r
+007442  aa  5 00000 00 0006    desc9a  pr5|0,ql                blast_msg\r
+007443  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_blast_$blast_message\r
+                                               STATEMENT 1 ON LINE 1161\r
+               pl1_blast_$blast_time = clock ();\r
+\r
+007444  aa  0 01435 7001 00    tsx0    pr0|797         clock_mac\r
+007445  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007446  la  4 00246 7571 20    staq    pr4|166,*               pl1_blast_$blast_time\r
+                                               STATEMENT 1 ON LINE 1162\r
+               pl1_blast_$blast_on = "1"b;\r
+\r
+007447  aa   400000 2350 03    lda     131072,du\r
+007450  la  4 00244 7551 20    sta     pr4|164,*               pl1_blast_$blast_on\r
+                                               STATEMENT 1 ON LINE 1163\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1165\r
+       call ioa_ ("Accepted.");\r
+\r
+007451  aa   770735 2370 04    ldaq    -3619,ic                000406 = 101143143145 160164145144\r
+007452  aa  6 00604 7571 00    staq    pr6|388\r
+007453  aa   056000 2350 03    lda     23552,du\r
+007454  aa  6 00606 7551 00    sta     pr6|390\r
+007455  aa  6 00604 3521 00    epp2    pr6|388\r
+007456  aa  6 00650 2521 00    spri2   pr6|424\r
+007457  aa   770565 3520 04    epp2    -3723,ic                000244 = 524000000011\r
+007460  aa  6 00652 2521 00    spri2   pr6|426\r
+007461  aa  6 00646 6211 00    eax1    pr6|422\r
+007462  aa   004000 4310 07    fld     2048,dl\r
+007463  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007464  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+007465  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1167\r
+       return;\r
+\r
+007466  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+                                               STATEMENT 1 ON LINE 1501\r
+     end v2pl1;\r
+\r
+BEGIN PROCEDURE parse_severity\r
+ENTRY TO parse_severity                                     STATEMENT 1 ON LINE 1169\r
+parse_severity:\r
+     procedure (arg_string, prefix) returns (bit (1) aligned);\r
+\r
+007467  aa  6 00500 6501 00    spri4   pr6|320\r
+007470  aa  6 00502 2521 00    spri2   pr6|322\r
+007471  aa  2 00002 3521 01    epp2    pr2|2,au\r
+007472  aa  6 00504 2521 00    spri2   pr6|324\r
+007473  aa  2 00000 2361 20    ldq     pr2|0,*\r
+007474  aa   000002 6040 04    tmi     2,ic            007476\r
+007475  aa   777777 3760 07    anq     262143,dl\r
+007476  aa  0 00250 3761 00    anq     pr0|168         = 000077777777\r
+007477  aa  6 01212 7561 00    stq     pr6|650\r
+007500  aa  2 00002 2361 20    ldq     pr2|2,*\r
+007501  aa   000002 6040 04    tmi     2,ic            007503\r
+007502  aa   777777 3760 07    anq     262143,dl\r
+007503  aa  0 00250 3761 00    anq     pr0|168         = 000077777777\r
+007504  aa  6 01213 7561 00    stq     pr6|651\r
+                                               STATEMENT 1 ON LINE 1177\r
+       if length (rtrim (arg_string)) = length (prefix) + 1\r
+       then severity = index ("1234", substr (arg_string, length (prefix) + 1, 1));\r
+\r
+007505  aa   000001 0760 07    adq     1,dl\r
+007506  aa  6 01214 7561 00    stq     pr6|652\r
+007507  aa  6 00502 3735 20    epp7    pr6|322,*\r
+007510  aa  7 00002 3715 20    epp5    pr7|2,*\r
+007511  aa  6 01212 2351 00    lda     pr6|650\r
+007512  aa  000 000 165 540    tctr    (pr,rl)\r
+007513  aa  5 00000 00 0005    desc9a  pr5|0,al                arg_string\r
+007514  aa  0 76605 0001 00    arg     pr0|-635                = 777777777777\r
+007515  aa  6 00056 0001 00    arg     pr6|46\r
+007516  aa  6 00056 2361 00    ldq     pr6|46\r
+007517  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+007520  aa  6 01215 7561 00    stq     pr6|653\r
+007521  aa  6 01212 2361 00    ldq     pr6|650\r
+007522  aa  6 01215 1761 00    sbq     pr6|653\r
+007523  aa  6 01214 1161 00    cmpq    pr6|652\r
+007524  aa   000014 6010 04    tnz     12,ic           007540\r
+007525  aa  6 01213 2351 00    lda     pr6|651\r
+007526  aa  000 105 124 404    scm     (ic),(pr,al),mask(000)\r
+007527  aa   770435 00 0004    desc9a  -3811,4         000163 = 061062063064\r
+007530  aa  5 00000 00 0001    desc9a  pr5|0,1         arg_string\r
+007531  aa  6 00056 0001 00    arg     pr6|46\r
+007532  aa  6 00056 2361 00    ldq     pr6|46\r
+007533  aa   000002 6070 04    ttf     2,ic            007535\r
+007534  aa   000001 3360 07    lcq     1,dl\r
+007535  aa   000001 0760 07    adq     1,dl\r
+007536  aa  6 00506 7561 00    stq     pr6|326         severity\r
+007537  aa   000002 7100 04    tra     2,ic            007541\r
+                                               STATEMENT 1 ON LINE 1179\r
+       else severity = 0;\r
+\r
+007540  aa  6 00506 4501 00    stz     pr6|326         severity\r
+                                               STATEMENT 1 ON LINE 1181\r
+       if severity = 0\r
+       then do;\r
+\r
+007541  aa  6 00506 2361 00    ldq     pr6|326         severity\r
+007542  aa   000036 6010 04    tnz     30,ic           007600\r
+                                               STATEMENT 1 ON LINE 1183\r
+               call com_err_ (0, my_name, "Invalid severity level. ^a", arg_string);\r
+\r
+007543  aa  6 01214 4501 00    stz     pr6|652\r
+007544  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+007545  aa   771142 00 0034    desc9a  -3486,28                000706 = 111156166141\r
+007546  aa  6 01216 00 0034    desc9a  pr6|654,28\r
+007547  aa  6 01214 3521 00    epp2    pr6|652\r
+007550  aa  6 01230 2521 00    spri2   pr6|664\r
+007551  aa   770444 3520 04    epp2    -3804,ic                000215 = 160154061000\r
+007552  aa  6 01232 2521 00    spri2   pr6|666\r
+007553  aa  6 01216 3521 00    epp2    pr6|654\r
+007554  aa  6 01234 2521 00    spri2   pr6|668\r
+007555  aa  7 00002 3521 20    epp2    pr7|2,*         arg_string\r
+007556  aa  6 01236 2521 00    spri2   pr6|670\r
+007557  aa   770510 3520 04    epp2    -3768,ic                000267 = 404000000005\r
+007560  aa  6 01240 2521 00    spri2   pr6|672\r
+007561  aa   770507 3520 04    epp2    -3769,ic                000270 = 526000000003\r
+007562  aa  6 01242 2521 00    spri2   pr6|674\r
+007563  aa   770377 3520 04    epp2    -3841,ic                000162 = 524000000032\r
+007564  aa  6 01244 2521 00    spri2   pr6|676\r
+007565  aa  6 00504 3535 20    epp3    pr6|324,*\r
+007566  aa  3 00000 3521 20    epp2    pr3|0,*\r
+007567  aa  6 01246 2521 00    spri2   pr6|678\r
+007570  aa  6 01226 6211 00    eax1    pr6|662\r
+007571  aa   020000 4310 07    fld     8192,dl\r
+007572  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007573  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007574  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1184\r
+               return ("0"b);\r
+\r
+007575  aa  6 00502 3735 20    epp7    pr6|322,*\r
+007576  aa  7 00006 4501 20    stz     pr7|6,*\r
+007577  aa  6 00500 6101 00    rtcd    pr6|320\r
+                                               STATEMENT 1 ON LINE 1185\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1187\r
+       ca.severity = "1"b;\r
+\r
+007600  aa   400000 2350 03    lda     131072,du\r
+007601  aa  6 00133 7551 00    sta     pr6|91          ca.severity\r
+                                               STATEMENT 1 ON LINE 1188\r
+       pl1_stat_$severity_plateau = severity;\r
+\r
+007602  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007603  la  4 00372 7561 20    stq     pr4|250,*               pl1_stat_$severity_plateau\r
+                                               STATEMENT 1 ON LINE 1190\r
+       return ("1"b);\r
+\r
+007604  aa  7 00006 7551 20    sta     pr7|6,*\r
+007605  aa  6 00500 6101 00    rtcd    pr6|320\r
+                                               STATEMENT 1 ON LINE 1191\r
+     end parse_severity;\r
+\r
+  END PROCEDURE parse_severity\r
+BEGIN PROCEDURE parse_prefix\r
+ENTRY TO parse_prefix                                       STATEMENT 1 ON LINE 1193\r
+parse_prefix:\r
+     procedure (prefix_string) returns (bit (1) aligned);\r
+\r
+007606  aa  6 00510 6501 00    spri4   pr6|328\r
+007607  aa  6 00512 2521 00    spri2   pr6|330\r
+007610  aa  2 00002 3521 01    epp2    pr2|2,au\r
+007611  aa  6 00514 2521 00    spri2   pr6|332\r
+007612  aa  2 00000 2361 20    ldq     pr2|0,*\r
+007613  aa   000002 6040 04    tmi     2,ic            007615\r
+007614  aa   777777 3760 07    anq     262143,dl\r
+007615  aa  0 00250 3761 00    anq     pr0|168         = 000077777777\r
+007616  aa  6 01250 7561 00    stq     pr6|680\r
+                                               STATEMENT 1 ON LINE 1200\r
+       scan_position = verify (prefix_string, HT_SP);\r
+\r
+007617  aa  6 00512 3735 20    epp7    pr6|330,*\r
+007620  aa  7 00002 3715 20    epp5    pr7|2,*\r
+007621  aa  000 000 164 540    tct     (pr,rl)\r
+007622  aa  5 00000 00 0006    desc9a  pr5|0,ql                prefix_string\r
+007623  aa   002513 0000 04    arg     1355,ic         012334 = 777777777777\r
+007624  aa  6 00056 0001 00    arg     pr6|46\r
+007625  aa  6 00056 2361 00    ldq     pr6|46\r
+007626  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+007627  aa   000002 6070 04    ttf     2,ic            007631\r
+007630  aa   000001 3360 07    lcq     1,dl\r
+007631  aa   000001 0760 07    adq     1,dl\r
+007632  aa  6 00516 7561 00    stq     pr6|334         scan_position\r
+                                               STATEMENT 1 ON LINE 1201\r
+       if scan_position = 0\r
+       then return ("1"b);\r
+\r
+007633  aa   000004 6010 04    tnz     4,ic            007637\r
+007634  aa   400000 2350 03    lda     131072,du\r
+007635  aa  7 00004 7551 20    sta     pr7|4,*\r
+007636  aa  6 00510 6101 00    rtcd    pr6|328\r
+                                               STATEMENT 1 ON LINE 1204\r
+       pl1_stat_$options = pl1_stat_$options || " prefix(";\r
+\r
+007637  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007640  la  4 00350 3535 20    epp3    pr4|232,*\r
+007641  aa   000620 2360 07    ldq     400,dl\r
+007642  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+007643  aa   000010 1160 07    cmpq    8,dl\r
+007644  aa   000002 6040 04    tmi     2,ic            007646\r
+007645  aa   000010 2360 07    ldq     8,dl\r
+007646  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+007647  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+007650  aa  040 157 100 444    mlr     (rl,ic),(pr,rl,x7),fill(040)\r
+007651  aa   770432 00 0006    desc9a  -3814,ql                000302 = 040160162145\r
+007652  aa  3 00001 00 0006    desc9a  pr3|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 1206\r
+       if ^parse_condition_name ()\r
+       then return ("0"b);\r
+\r
+007653  aa   002455 3520 04    epp2    1325,ic         012330 = 000002000000\r
+007654  aa   000105 6700 04    tsp4    69,ic           007761\r
+007655  aa  6 01251 2351 00    lda     pr6|681\r
+007656  aa   400000 3150 03    cana    131072,du\r
+007657  aa   000004 6010 04    tnz     4,ic            007663\r
+007660  aa  6 00512 3735 20    epp7    pr6|330,*\r
+007661  aa  7 00004 4501 20    stz     pr7|4,*\r
+007662  aa  6 00510 6101 00    rtcd    pr6|328\r
+                                               STATEMENT 1 ON LINE 1208\r
+       do while (scan_position <= length (prefix_string));\r
+\r
+007663  aa   000000 0110 03    nop     0,du\r
+007664  aa  6 00516 2361 00    ldq     pr6|334         scan_position\r
+007665  aa  6 01250 1161 00    cmpq    pr6|680\r
+007666  aa   000056 6054 04    tpnz    46,ic           007744\r
+                                               STATEMENT 1 ON LINE 1209\r
+            if substr (prefix_string, scan_position, 1) ^= ","\r
+            then do;\r
+\r
+007667  aa  6 00512 3735 20    epp7    pr6|330,*\r
+007670  aa  7 00002 3715 20    epp5    pr7|2,*\r
+007671  aa  040 004 106 506    cmpc    (pr,ql),(ic),fill(040)\r
+007672  aa  5 77777 60 0001    desc9a  pr5|-1(3),1     prefix_string\r
+007673  aa   002663 00 0001    desc9a  1459,1          012554 = 054000000000\r
+007674  aa   000036 6000 04    tze     30,ic           007732\r
+                                               STATEMENT 1 ON LINE 1211\r
+                    call com_err_ (0, my_name, "Missing comma between condition names. ^a", prefix_string);\r
+\r
+007675  aa  6 01251 4501 00    stz     pr6|681\r
+007676  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+007677  aa   771156 00 0054    desc9a  -3474,44                001054 = 115151163163\r
+007700  aa  6 01252 00 0054    desc9a  pr6|682,44\r
+007701  aa  6 01251 3521 00    epp2    pr6|681\r
+007702  aa  6 01270 2521 00    spri2   pr6|696\r
+007703  aa   770312 3520 04    epp2    -3894,ic                000215 = 160154061000\r
+007704  aa  6 01272 2521 00    spri2   pr6|698\r
+007705  aa  6 01252 3521 00    epp2    pr6|682\r
+007706  aa  6 01274 2521 00    spri2   pr6|700\r
+007707  aa  7 00002 3521 20    epp2    pr7|2,*         prefix_string\r
+007710  aa  6 01276 2521 00    spri2   pr6|702\r
+007711  aa   770356 3520 04    epp2    -3858,ic                000267 = 404000000005\r
+007712  aa  6 01300 2521 00    spri2   pr6|704\r
+007713  aa   770355 3520 04    epp2    -3859,ic                000270 = 526000000003\r
+007714  aa  6 01302 2521 00    spri2   pr6|706\r
+007715  aa   770244 3520 04    epp2    -3932,ic                000161 = 524000000051\r
+007716  aa  6 01304 2521 00    spri2   pr6|708\r
+007717  aa  6 00514 3535 20    epp3    pr6|332,*\r
+007720  aa  3 00000 3521 20    epp2    pr3|0,*\r
+007721  aa  6 01306 2521 00    spri2   pr6|710\r
+007722  aa  6 01266 6211 00    eax1    pr6|694\r
+007723  aa   020000 4310 07    fld     8192,dl\r
+007724  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007725  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+007726  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1212\r
+                    return ("0"b);\r
+\r
+007727  aa  6 00512 3735 20    epp7    pr6|330,*\r
+007730  aa  7 00004 4501 20    stz     pr7|4,*\r
+007731  aa  6 00510 6101 00    rtcd    pr6|328\r
+                                               STATEMENT 1 ON LINE 1213\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 1215\r
+            scan_position = scan_position + 1;\r
+\r
+007732  aa  6 00516 0541 00    aos     pr6|334         scan_position\r
+                                               STATEMENT 1 ON LINE 1217\r
+            if ^parse_condition_name ()\r
+            then return ("0"b);\r
+\r
+007733  aa   002375 3520 04    epp2    1277,ic         012330 = 000002000000\r
+007734  aa   000025 6700 04    tsp4    21,ic           007761\r
+007735  aa  6 01251 2351 00    lda     pr6|681\r
+007736  aa   400000 3150 03    cana    131072,du\r
+007737  aa   000004 6010 04    tnz     4,ic            007743\r
+007740  aa  6 00512 3735 20    epp7    pr6|330,*\r
+007741  aa  7 00004 4501 20    stz     pr7|4,*\r
+007742  aa  6 00510 6101 00    rtcd    pr6|328\r
+                                               STATEMENT 1 ON LINE 1219\r
+       end;\r
+\r
+007743  aa   777721 7100 04    tra     -47,ic          007664\r
+                                               STATEMENT 1 ON LINE 1221\r
+       pl1_stat_$options = pl1_stat_$options || ")";\r
+\r
+007744  aa  6 00044 3701 20    epp4    pr6|36,*\r
+007745  la  4 00350 3735 20    epp7    pr4|232,*\r
+007746  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+007747  aa   000620 1160 07    cmpq    400,dl\r
+007750  aa   000005 6050 04    tpl     5,ic            007755\r
+007751  la  4 00350 0541 20    aos     pr4|232,*               pl1_stat_$options\r
+007752  aa  040 106 100 404    mlr     (ic),(pr,ql),fill(040)\r
+007753  aa   002601 00 0001    desc9a  1409,1          012553 = 051000000000\r
+007754  aa  7 00001 00 0001    desc9a  pr7|1,1         pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 1223\r
+       return ("1"b);\r
+\r
+007755  aa   400000 2350 03    lda     131072,du\r
+007756  aa  6 00512 3715 20    epp5    pr6|330,*\r
+007757  aa  5 00004 7551 20    sta     pr5|4,*\r
+007760  aa  6 00510 6101 00    rtcd    pr6|328\r
+                                               STATEMENT 1 ON LINE 1313\r
+     end parse_prefix;\r
+\r
+BEGIN PROCEDURE parse_condition_name\r
+ENTRY TO parse_condition_name                               STATEMENT 1 ON LINE 1225\r
+parse_condition_name:\r
+     procedure returns (bit (1) aligned);\r
+\r
+007761  aa  6 00520 6501 00    spri4   pr6|336\r
+007762  aa  6 00522 2521 00    spri2   pr6|338\r
+                                               STATEMENT 1 ON LINE 1233\r
+       call skip_white_space;\r
+\r
+007763  aa   000375 6700 04    tsp4    253,ic          010360\r
+                                               STATEMENT 1 ON LINE 1235\r
+       token_length = search (substr (prefix_string, scan_position), HT_SP_COMMA) - 1;\r
+\r
+007764  aa  6 00516 2361 00    ldq     pr6|334         scan_position\r
+007765  aa   000001 1760 07    sbq     1,dl\r
+007766  aa  6 01310 7561 00    stq     pr6|712\r
+007767  aa  6 01250 2361 00    ldq     pr6|680\r
+007770  aa  6 01310 1761 00    sbq     pr6|712\r
+007771  aa  6 00516 2351 00    lda     pr6|334         scan_position\r
+007772  aa  6 00512 3735 20    epp7    pr6|330,*\r
+007773  aa  7 00002 3715 20    epp5    pr7|2,*\r
+007774  aa  000 000 164 545    tct     (pr,rl,al)\r
+007775  aa  5 77777 60 0006    desc9a  pr5|-1(3),ql    prefix_string\r
+007776  aa   002134 0000 04    arg     1116,ic         012130 = 000000000000\r
+007777  aa  6 00056 0001 00    arg     pr6|46\r
+010000  aa  6 00056 2361 00    ldq     pr6|46\r
+010001  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+010002  aa   000002 6070 04    ttf     2,ic            010004\r
+010003  aa   000001 3360 07    lcq     1,dl\r
+010004  aa  6 00530 7561 00    stq     pr6|344         token_length\r
+                                               STATEMENT 1 ON LINE 1236\r
+       if token_length < 0\r
+       then token_length = length (substr (prefix_string, scan_position));\r
+\r
+010005  aa   000007 6050 04    tpl     7,ic            010014\r
+010006  aa  6 00516 2361 00    ldq     pr6|334         scan_position\r
+010007  aa   000001 1760 07    sbq     1,dl\r
+010010  aa  6 01310 7561 00    stq     pr6|712\r
+010011  aa  6 01250 2361 00    ldq     pr6|680\r
+010012  aa  6 01310 1761 00    sbq     pr6|712\r
+010013  aa  6 00530 7561 00    stq     pr6|344         token_length\r
+                                               STATEMENT 1 ON LINE 1239\r
+       if token_length = 0\r
+       then do;\r
+\r
+010014  aa   000036 6010 04    tnz     30,ic           010052\r
+                                               STATEMENT 1 ON LINE 1241\r
+               call com_err_ (0, my_name, "Missing condition name. ^a", prefix_string);\r
+\r
+010015  aa  6 01310 4501 00    stz     pr6|712\r
+010016  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+010017  aa   770661 00 0034    desc9a  -3663,28                000677 = 115151163163\r
+010020  aa  6 01312 00 0034    desc9a  pr6|714,28\r
+010021  aa  6 01310 3521 00    epp2    pr6|712\r
+010022  aa  6 01324 2521 00    spri2   pr6|724\r
+010023  aa   770172 3520 04    epp2    -3974,ic                000215 = 160154061000\r
+010024  aa  6 01326 2521 00    spri2   pr6|726\r
+010025  aa  6 01312 3521 00    epp2    pr6|714\r
+010026  aa  6 01330 2521 00    spri2   pr6|728\r
+010027  aa  7 00002 3521 20    epp2    pr7|2,*         prefix_string\r
+010030  aa  6 01332 2521 00    spri2   pr6|730\r
+010031  aa   770236 3520 04    epp2    -3938,ic                000267 = 404000000005\r
+010032  aa  6 01334 2521 00    spri2   pr6|732\r
+010033  aa   770235 3520 04    epp2    -3939,ic                000270 = 526000000003\r
+010034  aa  6 01336 2521 00    spri2   pr6|734\r
+010035  aa   770125 3520 04    epp2    -4011,ic                000162 = 524000000032\r
+010036  aa  6 01340 2521 00    spri2   pr6|736\r
+010037  aa  6 00514 3535 20    epp3    pr6|332,*\r
+010040  aa  3 00000 3521 20    epp2    pr3|0,*\r
+010041  aa  6 01342 2521 00    spri2   pr6|738\r
+010042  aa  6 01322 6211 00    eax1    pr6|722\r
+010043  aa   020000 4310 07    fld     8192,dl\r
+010044  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010045  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+010046  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1242\r
+               return ("0"b);\r
+\r
+010047  aa  6 00522 3735 20    epp7    pr6|338,*\r
+010050  aa  7 00002 4501 20    stz     pr7|2,*\r
+010051  aa  6 00520 6101 00    rtcd    pr6|336\r
+                                               STATEMENT 1 ON LINE 1243\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1245\r
+       token_start = scan_position;\r
+\r
+010052  aa  6 00516 2361 00    ldq     pr6|334         scan_position\r
+010053  aa  6 00531 7561 00    stq     pr6|345         token_start\r
+                                               STATEMENT 1 ON LINE 1246\r
+       scan_position = scan_position + token_length;\r
+\r
+010054  aa  6 00530 2361 00    ldq     pr6|344         token_length\r
+010055  aa  6 00516 0561 00    asq     pr6|334         scan_position\r
+                                               STATEMENT 1 ON LINE 1248\r
+       enabled = index (substr (prefix_string, token_start, token_length), "no") ^= 1;\r
+\r
+010056  aa  6 00531 2351 00    lda     pr6|345         token_start\r
+010057  aa  000 003 120 545    scd     (pr,rl,al),(du)\r
+010060  aa  5 77777 60 0006    desc9a  pr5|-1(3),ql    prefix_string\r
+010061  aa   156157 00 0002    desc9a  56431,2\r
+010062  aa  6 00056 0001 00    arg     pr6|46\r
+010063  aa  6 00056 2361 00    ldq     pr6|46\r
+010064  aa   000002 6070 04    ttf     2,ic            010066\r
+010065  aa   000001 3360 07    lcq     1,dl\r
+010066  aa   000001 0760 07    adq     1,dl\r
+010067  aa   000001 1160 07    cmpq    1,dl\r
+010070  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+010071  aa  6 00526 7551 00    sta     pr6|342         enabled\r
+                                               STATEMENT 1 ON LINE 1249\r
+       if ^enabled\r
+       then do;\r
+\r
+010072  aa   000005 6010 04    tnz     5,ic            010077\r
+                                               STATEMENT 1 ON LINE 1251\r
+               token_start = token_start + length ("no");\r
+\r
+010073  aa   000002 2360 07    ldq     2,dl\r
+010074  aa  6 00531 0561 00    asq     pr6|345         token_start\r
+                                               STATEMENT 1 ON LINE 1252\r
+               token_length = token_length - length ("no");\r
+\r
+010075  aa   000002 3360 07    lcq     2,dl\r
+010076  aa  6 00530 0561 00    asq     pr6|344         token_length\r
+                                               STATEMENT 1 ON LINE 1253\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1255\r
+       do i = lbound (condition_name, 1) to hbound (condition_name, 1)\r
+            while (condition_name (i) ^= substr (prefix_string, token_start, token_length));\r
+\r
+010077  aa   000001 2360 07    ldq     1,dl\r
+010100  aa  6 00527 7561 00    stq     pr6|343         i\r
+010101  aa   000000 0110 03    nop     0,du\r
+010102  aa  6 00527 2361 00    ldq     pr6|343         i\r
+010103  aa   000023 1160 07    cmpq    19,dl\r
+010104  aa   000015 6054 04    tpnz    13,ic           010121\r
+010105  aa   000002 7360 00    qls     2\r
+010106  ta   777774 3734 06    epp7    -4,ql\r
+010107  aa  6 00531 2351 00    lda     pr6|345         token_start\r
+010110  aa  6 00512 3715 20    epp5    pr6|330,*\r
+010111  aa  5 00002 3535 20    epp3    pr5|2,*\r
+010112  aa  6 00530 2361 00    ldq     pr6|344         token_length\r
+010113  aa  040 145 106 500    cmpc    (pr),(pr,rl,al),fill(040)\r
+010114  aa  7 00000 00 0020    desc9a  pr7|0,16                condition_name\r
+010115  aa  3 77777 60 0006    desc9a  pr3|-1(3),ql    prefix_string\r
+010116  aa   000003 6000 04    tze     3,ic            010121\r
+                                               STATEMENT 1 ON LINE 1257\r
+       end;\r
+\r
+010117  aa  6 00527 0541 00    aos     pr6|343         i\r
+010120  aa   777762 7100 04    tra     -14,ic          010102\r
+                                               STATEMENT 1 ON LINE 1259\r
+       if i > hbound (condition_name, 1)\r
+       then do;\r
+\r
+010121  aa  6 00527 2361 00    ldq     pr6|343         i\r
+010122  aa   000023 1160 07    cmpq    19,dl\r
+010123  aa   000057 6044 04    tmoz    47,ic           010202\r
+                                               STATEMENT 1 ON LINE 1261\r
+               call com_err_ (0, my_name, "Invalid condition name. ^[no^]^a", ^enabled,\r
+                    substr (prefix_string, token_start, token_length));\r
+\r
+010124  aa  6 00530 2361 00    ldq     pr6|344         token_length\r
+010125  aa   524000 2760 03    orq     174080,du\r
+010126  aa  6 01310 7561 00    stq     pr6|712\r
+010127  aa  6 01321 4501 00    stz     pr6|721\r
+010130  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+010131  aa   770574 00 0040    desc9a  -3716,32                000724 = 111156166141\r
+010132  aa  6 01322 00 0040    desc9a  pr6|722,32\r
+010133  aa  6 00526 2351 00    lda     pr6|342         enabled\r
+010134  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+010135  aa  6 01311 7551 00    sta     pr6|713\r
+010136  aa  6 00530 2361 00    ldq     pr6|344         token_length\r
+010137  aa  0 00551 7001 00    tsx0    pr0|361         alloc_char_temp\r
+010140  aa  6 01360 2521 00    spri2   pr6|752\r
+010141  aa  6 00531 2351 00    lda     pr6|345         token_start\r
+010142  aa  6 00512 3735 20    epp7    pr6|330,*\r
+010143  aa  7 00002 3715 20    epp5    pr7|2,*\r
+010144  aa  040 140 100 545    mlr     (pr,rl,al),(pr,rl),fill(040)\r
+010145  aa  5 77777 60 0006    desc9a  pr5|-1(3),ql    prefix_string\r
+010146  aa  2 00000 00 0006    desc9a  pr2|0,ql\r
+010147  aa  6 01321 3521 00    epp2    pr6|721\r
+010150  aa  6 01350 2521 00    spri2   pr6|744\r
+010151  aa   770044 3520 04    epp2    -4060,ic                000215 = 160154061000\r
+010152  aa  6 01352 2521 00    spri2   pr6|746\r
+010153  aa  6 01322 3521 00    epp2    pr6|722\r
+010154  aa  6 01354 2521 00    spri2   pr6|748\r
+010155  aa  6 01311 3521 00    epp2    pr6|713\r
+010156  aa  6 01356 2521 00    spri2   pr6|750\r
+010157  aa   770110 3520 04    epp2    -4024,ic                000267 = 404000000005\r
+010160  aa  6 01362 2521 00    spri2   pr6|754\r
+010161  aa   770107 3520 04    epp2    -4025,ic                000270 = 526000000003\r
+010162  aa  6 01364 2521 00    spri2   pr6|756\r
+010163  aa   767775 3520 04    epp2    -4099,ic                000160 = 524000000040\r
+010164  aa  6 01366 2521 00    spri2   pr6|758\r
+010165  aa   770105 3520 04    epp2    -4027,ic                000272 = 514000000001\r
+010166  aa  6 01370 2521 00    spri2   pr6|760\r
+010167  aa  6 01310 3521 00    epp2    pr6|712\r
+010170  aa  6 01372 2521 00    spri2   pr6|762\r
+010171  aa  6 01346 6211 00    eax1    pr6|742\r
+010172  aa   024000 4310 07    fld     10240,dl\r
+010173  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010174  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+010175  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1263\r
+               return ("0"b);\r
+\r
+010176  aa  0 01014 7001 00    tsx0    pr0|524         shorten_stack\r
+010177  aa  6 00522 3735 20    epp7    pr6|338,*\r
+010200  aa  7 00002 4501 20    stz     pr7|2,*\r
+010201  aa  6 00520 6101 00    rtcd    pr6|336\r
+                                               STATEMENT 1 ON LINE 1264\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1272\r
+       i = mod (i, 10);\r
+\r
+010202  aa   002347 3520 04    epp2    1255,ic         012551 = 000000000012\r
+010203  aa  0 00704 7001 00    tsx0    pr0|452         mdfx1\r
+010204  aa  6 00527 7561 00    stq     pr6|343         i\r
+                                               STATEMENT 1 ON LINE 1274\r
+       if substr (prefix.mask, i, 1)\r
+       then if substr (prefix.conditions, i, 1) ^= enabled\r
+            then do;\r
+\r
+010205  aa  000 000 066 506    cmpb    (pr,ql),(),fill(0)\r
+010206  aa  6 00333 70 0001    descb   pr6|219(35),1   prefix.mask\r
+010207  aa   000000 00 0000    descb   0,0\r
+010210  aa   000043 6000 04    tze     35,ic           010253\r
+010211  aa  000 100 066 506    cmpb    (pr,ql),(pr),fill(0)\r
+010212  aa  6 00334 70 0001    descb   pr6|220(35),1   prefix.conditions\r
+010213  aa  6 00526 00 0001    descb   pr6|342,1               enabled\r
+010214  aa   000036 6000 04    tze     30,ic           010252\r
+                                               STATEMENT 1 ON LINE 1277\r
+                    call com_err_ (0, my_name,\r
+                       "A condition may not be enabled and disabled in the prefix string. ^a", condition_name (i));\r
+\r
+010215  aa  6 01310 4501 00    stz     pr6|712\r
+010216  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+010217  aa   770753 00 0104    desc9a  -3605,68                001171 = 101040143157\r
+010220  aa  6 01322 00 0104    desc9a  pr6|722,68\r
+010221  aa   000002 7360 00    qls     2\r
+010222  aa  6 01310 3521 00    epp2    pr6|712\r
+010223  aa  6 01350 2521 00    spri2   pr6|744\r
+010224  aa   767771 3520 04    epp2    -4103,ic                000215 = 160154061000\r
+010225  aa  6 01352 2521 00    spri2   pr6|746\r
+010226  aa  6 01322 3521 00    epp2    pr6|722\r
+010227  aa  6 01354 2521 00    spri2   pr6|748\r
+010230  ta   777774 3520 06    epp2    -4,ql\r
+010231  aa  6 01356 2521 00    spri2   pr6|750\r
+010232  aa   770035 3520 04    epp2    -4067,ic                000267 = 404000000005\r
+010233  aa  6 01360 2521 00    spri2   pr6|752\r
+010234  aa   770034 3520 04    epp2    -4068,ic                000270 = 526000000003\r
+010235  aa  6 01362 2521 00    spri2   pr6|754\r
+010236  aa   767721 3520 04    epp2    -4143,ic                000157 = 524000000104\r
+010237  aa  6 01364 2521 00    spri2   pr6|756\r
+010240  aa   767716 3520 04    epp2    -4146,ic                000156 = 526000000020\r
+010241  aa  6 01366 2521 00    spri2   pr6|758\r
+010242  aa  6 01346 6211 00    eax1    pr6|742\r
+010243  aa   020000 4310 07    fld     8192,dl\r
+010244  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010245  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+010246  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1279\r
+                    return ("0"b);\r
+\r
+010247  aa  6 00522 3735 20    epp7    pr6|338,*\r
+010250  aa  7 00002 4501 20    stz     pr7|2,*\r
+010251  aa  6 00520 6101 00    rtcd    pr6|336\r
+                                               STATEMENT 1 ON LINE 1280\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 1281\r
+            else ;\r
+\r
+010252  aa   000101 7100 04    tra     65,ic           010353\r
+                                               STATEMENT 1 ON LINE 1282\r
+       else do;\r
+\r
+                                               STATEMENT 1 ON LINE 1283\r
+               substr (prefix.mask, i, 1) = "1"b;\r
+\r
+010253  aa  403 106 060 400    csl     (),(pr,ql),fill(1),bool(move)\r
+010254  aa   000000 00 0000    descb   0,0\r
+010255  aa  6 00333 70 0001    descb   pr6|219(35),1   prefix.mask\r
+                                               STATEMENT 1 ON LINE 1284\r
+               substr (prefix.conditions, i, 1) = enabled;\r
+\r
+010256  aa  003 106 060 500    csl     (pr),(pr,ql),fill(0),bool(move)\r
+010257  aa  6 00526 00 0001    descb   pr6|342,1               enabled\r
+010260  aa  6 00334 70 0001    descb   pr6|220(35),1   prefix.conditions\r
+                                               STATEMENT 1 ON LINE 1286\r
+               if substr (pl1_stat_$options, length (pl1_stat_$options)) ^= "("\r
+               then pl1_stat_$options = pl1_stat_$options || ",";\r
+\r
+010261  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010262  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+010263  aa   000001 1760 07    sbq     1,dl\r
+010264  aa  6 01310 7561 00    stq     pr6|712\r
+010265  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+010266  aa  6 01310 1761 00    sbq     pr6|712\r
+010267  la  4 00350 7271 20    lxl7    pr4|232,*               pl1_stat_$options\r
+010270  la  4 00350 3735 20    epp7    pr4|232,*\r
+010271  aa  040 004 106 557    cmpc    (pr,rl,x7),(ic),fill(040)\r
+010272  aa  7 00000 60 0006    desc9a  pr7|0(3),ql     pl1_stat_$options\r
+010273  aa   002257 00 0001    desc9a  1199,1          012550 = 050000000000\r
+010274  aa   000010 6000 04    tze     8,ic            010304\r
+010275  la  4 00350 2361 20    ldq     pr4|232,*               pl1_stat_$options\r
+010276  aa   000620 1160 07    cmpq    400,dl\r
+010277  aa   000005 6050 04    tpl     5,ic            010304\r
+010300  la  4 00350 0541 20    aos     pr4|232,*               pl1_stat_$options\r
+010301  aa  040 106 100 404    mlr     (ic),(pr,ql),fill(040)\r
+010302  aa   002253 00 0001    desc9a  1195,1          012554 = 054000000000\r
+010303  aa  7 00001 00 0001    desc9a  pr7|1,1         pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 1289\r
+               if ^enabled\r
+               then pl1_stat_$options = pl1_stat_$options || "no";\r
+\r
+010304  aa  6 00526 2351 00    lda     pr6|342         enabled\r
+010305  aa   000013 6010 04    tnz     11,ic           010320\r
+010306  aa   000620 2360 07    ldq     400,dl\r
+010307  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+010310  aa   000002 1160 07    cmpq    2,dl\r
+010311  aa   000002 6040 04    tmi     2,ic            010313\r
+010312  aa   000002 2360 07    ldq     2,dl\r
+010313  la  4 00350 7261 20    lxl6    pr4|232,*               pl1_stat_$options\r
+010314  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+010315  aa  040 156 100 444    mlr     (rl,ic),(pr,rl,x6),fill(040)\r
+010316  aa   002235 00 0006    desc9a  1181,ql         012552 = 156157000000\r
+010317  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 1292\r
+               pl1_stat_$options = pl1_stat_$options || rtrim (condition_name (i));\r
+\r
+010320  aa  6 00527 2361 00    ldq     pr6|343         i\r
+010321  aa   000002 7360 00    qls     2\r
+010322  ta   777774 3714 06    epp5    -4,ql\r
+010323  aa  6 01310 7561 00    stq     pr6|712\r
+010324  aa  000 000 165 500    tctr    (pr)\r
+010325  aa  5 00000 00 0020    desc9a  pr5|0,16                condition_name\r
+010326  aa  0 76605 0001 00    arg     pr0|-635                = 777777777777\r
+010327  aa  6 00056 0001 00    arg     pr6|46\r
+010330  aa  6 00056 2361 00    ldq     pr6|46\r
+010331  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+010332  aa  6 01311 7561 00    stq     pr6|713\r
+010333  aa   000020 2360 07    ldq     16,dl\r
+010334  aa  6 01311 1761 00    sbq     pr6|713\r
+010335  aa  6 01311 7561 00    stq     pr6|713\r
+010336  aa  6 01310 2361 00    ldq     pr6|712\r
+010337  aa   000002 7360 00    qls     2\r
+010340  aa   000000 6260 06    eax6    0,ql\r
+010341  aa   000620 2360 07    ldq     400,dl\r
+010342  la  4 00350 1761 20    sbq     pr4|232,*               pl1_stat_$options\r
+010343  aa  6 01311 1161 00    cmpq    pr6|713\r
+010344  aa   000002 6040 04    tmi     2,ic            010346\r
+010345  aa  6 01311 2361 00    ldq     pr6|713\r
+010346  la  4 00350 7251 20    lxl5    pr4|232,*               pl1_stat_$options\r
+010347  la  4 00350 0561 20    asq     pr4|232,*               pl1_stat_$options\r
+010350  aa  040 155 100 456    mlr     (rl,x6),(pr,rl,x5),fill(040)\r
+010351  ta   777774 00 0006    desc9a  -4,ql\r
+010352  aa  7 00001 00 0006    desc9a  pr7|1,ql                pl1_stat_$options\r
+                                               STATEMENT 1 ON LINE 1293\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1295\r
+       call skip_white_space;\r
+\r
+010353  aa   000005 6700 04    tsp4    5,ic            010360\r
+                                               STATEMENT 1 ON LINE 1297\r
+       return ("1"b);\r
+\r
+010354  aa   400000 2350 03    lda     131072,du\r
+010355  aa  6 00522 3735 20    epp7    pr6|338,*\r
+010356  aa  7 00002 7551 20    sta     pr7|2,*\r
+010357  aa  6 00520 6101 00    rtcd    pr6|336\r
+                                               STATEMENT 1 ON LINE 1311\r
+     end parse_condition_name;\r
+\r
+BEGIN PROCEDURE skip_white_space\r
+ENTRY TO skip_white_space                                   STATEMENT 1 ON LINE 1299\r
+skip_white_space:\r
+     procedure;\r
+\r
+010360  aa  6 00532 6501 00    spri4   pr6|346\r
+                                               STATEMENT 1 ON LINE 1304\r
+       scan_length = verify (substr (prefix_string, scan_position), HT_SP) - 1;\r
+\r
+010361  aa  6 00516 2361 00    ldq     pr6|334         scan_position\r
+010362  aa   000001 1760 07    sbq     1,dl\r
+010363  aa  6 01374 7561 00    stq     pr6|764\r
+010364  aa  6 01250 2361 00    ldq     pr6|680\r
+010365  aa  6 01374 1761 00    sbq     pr6|764\r
+010366  aa  6 00516 2351 00    lda     pr6|334         scan_position\r
+010367  aa  6 00512 3735 20    epp7    pr6|330,*\r
+010370  aa  7 00002 3715 20    epp5    pr7|2,*\r
+010371  aa  000 000 164 545    tct     (pr,rl,al)\r
+010372  aa  5 77777 60 0006    desc9a  pr5|-1(3),ql    prefix_string\r
+010373  aa   001743 0000 04    arg     995,ic          012334 = 777777777777\r
+010374  aa  6 00056 0001 00    arg     pr6|46\r
+010375  aa  6 00056 2361 00    ldq     pr6|46\r
+010376  aa  0 00242 3761 00    anq     pr0|162         = 000777777777\r
+010377  aa   000002 6070 04    ttf     2,ic            010401\r
+010400  aa   000001 3360 07    lcq     1,dl\r
+010401  aa  6 00540 7561 00    stq     pr6|352         scan_length\r
+                                               STATEMENT 1 ON LINE 1305\r
+       if scan_length < 0\r
+       then scan_length = length (substr (prefix_string, scan_position));\r
+\r
+010402  aa   000007 6050 04    tpl     7,ic            010411\r
+010403  aa  6 00516 2361 00    ldq     pr6|334         scan_position\r
+010404  aa   000001 1760 07    sbq     1,dl\r
+010405  aa  6 01374 7561 00    stq     pr6|764\r
+010406  aa  6 01250 2361 00    ldq     pr6|680\r
+010407  aa  6 01374 1761 00    sbq     pr6|764\r
+010410  aa  6 00540 7561 00    stq     pr6|352         scan_length\r
+                                               STATEMENT 1 ON LINE 1308\r
+       scan_position = scan_position + scan_length;\r
+\r
+010411  aa  6 00516 0561 00    asq     pr6|334         scan_position\r
+                                               STATEMENT 1 ON LINE 1309\r
+     end skip_white_space;\r
+\r
+010412  aa  6 00532 6101 00    rtcd    pr6|346\r
+  END PROCEDURE skip_white_space\r
+  END PROCEDURE parse_condition_name\r
+  END PROCEDURE parse_prefix\r
+BEGIN PROCEDURE generate_code\r
+ENTRY TO generate_code                                      STATEMENT 1 ON LINE 1315\r
+generate_code:\r
+     procedure (translation_failed);\r
+\r
+010413  aa  6 00542 6501 00    spri4   pr6|354\r
+010414  aa  6 00544 2521 00    spri2   pr6|356\r
+                                               STATEMENT 1 ON LINE 1320\r
+       translation_failed = "0"b;\r
+\r
+010415  aa  2 00002 4501 20    stz     pr2|2,*         translation_failed\r
+                                               STATEMENT 1 ON LINE 1322\r
+       if pl1_stat_$greatest_severity >= 3\r
+       then do;\r
+\r
+010416  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010417  la  4 00314 2361 20    ldq     pr4|204,*               pl1_stat_$greatest_severity\r
+010420  aa   000003 1160 07    cmpq    3,dl\r
+010421  aa   000063 6040 04    tmi     51,ic           010504\r
+                                               STATEMENT 1 ON LINE 1324\r
+               call com_err_ (0, my_name, "An error of severity ^d has occurred.", pl1_stat_$greatest_severity);\r
+\r
+010422  aa  6 01375 4501 00    stz     pr6|765\r
+010423  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+010424  aa   770405 00 0050    desc9a  -3835,40                001030 = 101156040145\r
+010425  aa  6 01376 00 0050    desc9a  pr6|766,40\r
+010426  aa  6 01375 3521 00    epp2    pr6|765\r
+010427  aa  6 01412 2521 00    spri2   pr6|778\r
+010430  aa   767565 3520 04    epp2    -4235,ic                000215 = 160154061000\r
+010431  aa  6 01414 2521 00    spri2   pr6|780\r
+010432  aa  6 01376 3521 00    epp2    pr6|766\r
+010433  aa  6 01416 2521 00    spri2   pr6|782\r
+010434  la  4 00314 3521 20    epp2    pr4|204,*               pl1_stat_$greatest_severity\r
+010435  aa  6 01420 2521 00    spri2   pr6|784\r
+010436  aa   767631 3520 04    epp2    -4199,ic                000267 = 404000000005\r
+010437  aa  6 01422 2521 00    spri2   pr6|786\r
+010440  aa   767630 3520 04    epp2    -4200,ic                000270 = 526000000003\r
+010441  aa  6 01424 2521 00    spri2   pr6|788\r
+010442  aa   767513 3520 04    epp2    -4277,ic                000155 = 524000000045\r
+010443  aa  6 01426 2521 00    spri2   pr6|790\r
+010444  aa   767631 3520 04    epp2    -4199,ic                000275 = 404000000021\r
+010445  aa  6 01430 2521 00    spri2   pr6|792\r
+010446  aa  6 01410 6211 00    eax1    pr6|776\r
+010447  aa   020000 4310 07    fld     8192,dl\r
+010450  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+010451  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1326\r
+               if ca.debug_cg\r
+               then do;\r
+\r
+010452  aa  6 00150 2351 00    lda     pr6|104         ca.debug_cg\r
+010453  aa   000025 6000 04    tze     21,ic           010500\r
+                                               STATEMENT 1 ON LINE 1328\r
+                       call ioa_$nnl ("debug for -debug_cg: ");\r
+\r
+010454  aa   770172 2370 04    ldaq    -3974,ic                000646 = 144145142165 147040146157\r
+010455  aa  6 01376 7571 00    staq    pr6|766\r
+010456  aa   770172 2370 04    ldaq    -3974,ic                000650 = 162040055144 145142165147\r
+010457  aa  6 01400 7571 00    staq    pr6|768\r
+010460  aa   770172 2370 04    ldaq    -3974,ic                000652 = 137143147072 040000000000\r
+010461  aa  6 01402 7571 00    staq    pr6|770\r
+010462  aa  6 01376 3521 00    epp2    pr6|766\r
+010463  aa  6 01412 2521 00    spri2   pr6|778\r
+010464  aa   767510 3520 04    epp2    -4280,ic                000174 = 524000000025\r
+010465  aa  6 01414 2521 00    spri2   pr6|780\r
+010466  aa  6 01410 6211 00    eax1    pr6|776\r
+010467  aa   004000 4310 07    fld     2048,dl\r
+010470  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010471  la  4 00532 3521 20    epp2    pr4|346,*               ioa_$nnl\r
+010472  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1329\r
+                       call debug;\r
+\r
+010473  aa  6 00056 6211 00    eax1    pr6|46\r
+010474  aa   000000 4310 07    fld     0,dl\r
+010475  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010476  la  4 00504 3521 20    epp2    pr4|324,*               debug\r
+010477  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1330\r
+                    end;\r
+\r
+                                               STATEMENT 1 ON LINE 1332\r
+               translation_failed = "1"b;\r
+\r
+010500  aa   400000 2350 03    lda     131072,du\r
+010501  aa  6 00544 3735 20    epp7    pr6|356,*\r
+010502  aa  7 00002 7551 20    sta     pr7|2,*         translation_failed\r
+                                               STATEMENT 1 ON LINE 1333\r
+               return;\r
+\r
+010503  aa  6 00542 6101 00    rtcd    pr6|354\r
+                                               STATEMENT 1 ON LINE 1334\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1336\r
+       if pl1_stat_$table | pl1_stat_$generate_symtab\r
+       then do;\r
+\r
+010504  la  4 00312 2351 20    lda     pr4|202,*               pl1_stat_$generate_symtab\r
+010505  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+010506  aa  6 01375 7551 00    sta     pr6|765         pl1_stat_$generate_symtab\r
+010507  la  4 00400 2351 20    lda     pr4|256,*               pl1_stat_$table\r
+010510  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+010511  aa  6 01375 2751 00    ora     pr6|765         pl1_stat_$generate_symtab\r
+010512  aa   000011 6000 04    tze     9,ic            010523\r
+                                               STATEMENT 1 ON LINE 1338\r
+               pl1_stat_$phase = 3;\r
+\r
+010513  aa   000003 2360 07    ldq     3,dl\r
+010514  la  4 00356 7561 20    stq     pr4|238,*               pl1_stat_$phase\r
+                                               STATEMENT 1 ON LINE 1339\r
+               call prepare_symbol_table (pl1_stat_$root);\r
+\r
+010515  la  4 00366 3521 20    epp2    pr4|246,*               pl1_stat_$root\r
+010516  aa  6 01400 2521 00    spri2   pr6|768\r
+010517  aa  6 01376 6211 00    eax1    pr6|766\r
+010520  aa   004000 4310 07    fld     2048,dl\r
+010521  la  4 00454 3521 20    epp2    pr4|300,*               prepare_symbol_table\r
+010522  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1340\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1342\r
+       if ca.optimize\r
+       then do;\r
+\r
+010523  aa  6 00115 2351 00    lda     pr6|77          ca.optimize\r
+010524  aa   000012 6000 04    tze     10,ic           010536\r
+                                               STATEMENT 1 ON LINE 1344\r
+               pl1_stat_$phase = 4;\r
+\r
+010525  aa   000004 2360 07    ldq     4,dl\r
+010526  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010527  la  4 00356 7561 20    stq     pr4|238,*               pl1_stat_$phase\r
+                                               STATEMENT 1 ON LINE 1345\r
+               call optimizer (pl1_stat_$root);\r
+\r
+010530  la  4 00366 3521 20    epp2    pr4|246,*               pl1_stat_$root\r
+010531  aa  6 01400 2521 00    spri2   pr6|768\r
+010532  aa  6 01376 6211 00    eax1    pr6|766\r
+010533  aa   004000 4310 07    fld     2048,dl\r
+010534  la  4 00436 3521 20    epp2    pr4|286,*               optimizer\r
+010535  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1346\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1348\r
+       call cpu_time_and_paging_ (npages (4), ncpu (4), pd_faults);\r
+\r
+010536  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010537  ia  4 00062 3521 00    epp2    pr4|50          npages\r
+010540  aa  6 01400 2521 00    spri2   pr6|768\r
+010541  ia  4 00046 3521 00    epp2    pr4|38          ncpu\r
+010542  aa  6 01402 2521 00    spri2   pr6|770\r
+010543  aa  6 00332 3521 00    epp2    pr6|218         pd_faults\r
+010544  aa  6 01404 2521 00    spri2   pr6|772\r
+010545  aa  6 01376 6211 00    eax1    pr6|766\r
+010546  aa   014000 4310 07    fld     6144,dl\r
+010547  la  4 00500 3521 20    epp2    pr4|320,*               cpu_time_and_paging_\r
+010550  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1349\r
+       call set_storage_usage (storage (4), xeq_storage (4));\r
+\r
+010551  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010552  ia  4 00102 3521 00    epp2    pr4|66          storage\r
+010553  aa  6 01412 2521 00    spri2   pr6|778\r
+010554  ia  4 00170 3521 00    epp2    pr4|120         xeq_storage\r
+010555  aa  6 01414 2521 00    spri2   pr6|780\r
+010556  aa   767427 3520 04    epp2    -4329,ic                000205 = 526000000012\r
+010557  aa  6 01416 2521 00    spri2   pr6|782\r
+010560  aa   767425 3520 04    epp2    -4331,ic                000205 = 526000000012\r
+010561  aa  6 01420 2521 00    spri2   pr6|784\r
+010562  aa  6 01410 3521 00    epp2    pr6|776\r
+010563  aa   010000 4310 07    fld     4096,dl\r
+010564  aa  2 00000 7571 00    staq    pr2|0\r
+010565  aa   001124 6700 04    tsp4    596,ic          011711\r
+                                               STATEMENT 1 ON LINE 1351\r
+       call tssi_$get_segment (wdirname, objectname, output_pt, object_hold, code);\r
+\r
+010566  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+010567  aa  6 01434 2521 00    spri2   pr6|796\r
+010570  aa  6 00220 3521 00    epp2    pr6|144         objectname\r
+010571  aa  6 01436 2521 00    spri2   pr6|798\r
+010572  aa  6 00230 3521 00    epp2    pr6|152         output_pt\r
+010573  aa  6 01440 2521 00    spri2   pr6|800\r
+010574  aa  6 00216 3521 00    epp2    pr6|142         object_hold\r
+010575  aa  6 01442 2521 00    spri2   pr6|802\r
+010576  aa  6 00162 3521 00    epp2    pr6|114         code\r
+010577  aa  6 01444 2521 00    spri2   pr6|804\r
+010600  aa   767473 3520 04    epp2    -4293,ic                000273 = 526000000250\r
+010601  aa  6 01446 2521 00    spri2   pr6|806\r
+010602  aa   767472 3520 04    epp2    -4294,ic                000274 = 526000000040\r
+010603  aa  6 01450 2521 00    spri2   pr6|808\r
+010604  aa   767410 3520 04    epp2    -4344,ic                000214 = 464000000000\r
+010605  aa  6 01452 2521 00    spri2   pr6|810\r
+010606  aa  6 01454 2521 00    spri2   pr6|812\r
+010607  aa   767462 3520 04    epp2    -4302,ic                000271 = 404000000043\r
+010610  aa  6 01456 2521 00    spri2   pr6|814\r
+010611  aa  6 01432 6211 00    eax1    pr6|794\r
+010612  aa   024000 4310 07    fld     10240,dl\r
+010613  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010614  la  4 00552 3521 20    epp2    pr4|362,*               tssi_$get_segment\r
+010615  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1352\r
+       if output_pt = null\r
+       then do;\r
+\r
+010616  aa  6 00230 2371 00    ldaq    pr6|152         output_pt\r
+010617  aa   767563 6770 04    eraq    -4237,ic                000402 = 077777000043 000001000000\r
+010620  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+010621  aa   000054 6010 04    tnz     44,ic           010675\r
+                                               STATEMENT 1 ON LINE 1354\r
+               call com_err_ (code, my_name, "^a^[>^]^a", wdirname, wdirname ^= ">", objectname);\r
+\r
+010622  aa   767567 2350 04    lda     -4233,ic                000411 = 136141136133\r
+010623  aa   767567 2360 04    ldq     -4233,ic                000412 = 076136135136\r
+010624  aa  6 01376 7571 00    staq    pr6|766\r
+010625  aa   141000 2350 03    lda     49664,du\r
+010626  aa  6 01400 7551 00    sta     pr6|768\r
+010627  aa  040 004 106 500    cmpc    (pr),(ic),fill(040)\r
+010630  aa  6 00360 00 0250    desc9a  pr6|240,168     wdirname\r
+010631  aa   001726 00 0001    desc9a  982,1           012555 = 076000000000\r
+010632  aa  0 00515 7001 00    tsx0    pr0|333         r_ne_as\r
+010633  aa  6 01375 7551 00    sta     pr6|765\r
+010634  aa  6 00162 3521 00    epp2    pr6|114         code\r
+010635  aa  6 01462 2521 00    spri2   pr6|818\r
+010636  aa   767357 3520 04    epp2    -4369,ic                000215 = 160154061000\r
+010637  aa  6 01464 2521 00    spri2   pr6|820\r
+010640  aa  6 01376 3521 00    epp2    pr6|766\r
+010641  aa  6 01466 2521 00    spri2   pr6|822\r
+010642  aa  6 00360 3521 00    epp2    pr6|240         wdirname\r
+010643  aa  6 01470 2521 00    spri2   pr6|824\r
+010644  aa  6 01375 3521 00    epp2    pr6|765\r
+010645  aa  6 01472 2521 00    spri2   pr6|826\r
+010646  aa  6 00220 3521 00    epp2    pr6|144         objectname\r
+010647  aa  6 01474 2521 00    spri2   pr6|828\r
+010650  aa   767421 3520 04    epp2    -4335,ic                000271 = 404000000043\r
+010651  aa  6 01476 2521 00    spri2   pr6|830\r
+010652  aa   767416 3520 04    epp2    -4338,ic                000270 = 526000000003\r
+010653  aa  6 01500 2521 00    spri2   pr6|832\r
+010654  aa   767370 3520 04    epp2    -4360,ic                000244 = 524000000011\r
+010655  aa  6 01502 2521 00    spri2   pr6|834\r
+010656  aa   767415 3520 04    epp2    -4339,ic                000273 = 526000000250\r
+010657  aa  6 01504 2521 00    spri2   pr6|836\r
+010660  aa   767412 3520 04    epp2    -4342,ic                000272 = 514000000001\r
+010661  aa  6 01506 2521 00    spri2   pr6|838\r
+010662  aa   767412 3520 04    epp2    -4342,ic                000274 = 526000000040\r
+010663  aa  6 01510 2521 00    spri2   pr6|840\r
+010664  aa  6 01460 6211 00    eax1    pr6|816\r
+010665  aa   030000 4310 07    fld     12288,dl\r
+010666  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010667  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+010670  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1355\r
+               translation_failed = "1"b;\r
+\r
+010671  aa   400000 2350 03    lda     131072,du\r
+010672  aa  6 00544 3735 20    epp7    pr6|356,*\r
+010673  aa  7 00002 7551 20    sta     pr7|2,*         translation_failed\r
+                                               STATEMENT 1 ON LINE 1356\r
+               return;\r
+\r
+010674  aa  6 00542 6101 00    rtcd    pr6|354\r
+                                               STATEMENT 1 ON LINE 1357\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1359\r
+       if baseno (output_pt) = baseno (source_seg)\r
+       then do;\r
+\r
+010675  aa  6 00344 2131 20    epaq    pr6|228,*               source_seg\r
+010676  aa   077777 3750 03    ana     32767,du\r
+010677  aa  6 01375 7551 00    sta     pr6|765\r
+010700  aa  6 00230 2131 20    epaq    pr6|152,*               output_pt\r
+010701  aa   077777 3750 03    ana     32767,du\r
+010702  aa  6 01375 1151 00    cmpa    pr6|765\r
+010703  aa   000036 6010 04    tnz     30,ic           010741\r
+                                               STATEMENT 1 ON LINE 1361\r
+               call com_err_ (0, my_name,\r
+                    "The source segment is the same as the object segment. It has been truncated. ^a", pathname);\r
+\r
+010704  aa  6 01375 4501 00    stz     pr6|765\r
+010705  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+010706  aa   770350 00 0120    desc9a  -3864,80                001255 = 124150145040\r
+010707  aa  6 01432 00 0120    desc9a  pr6|794,80\r
+010710  aa  6 01375 3521 00    epp2    pr6|765\r
+010711  aa  6 01412 2521 00    spri2   pr6|778\r
+010712  aa   767303 3520 04    epp2    -4413,ic                000215 = 160154061000\r
+010713  aa  6 01414 2521 00    spri2   pr6|780\r
+010714  aa  6 01432 3521 00    epp2    pr6|794\r
+010715  aa  6 01416 2521 00    spri2   pr6|782\r
+010716  aa  6 00232 3521 00    epp2    pr6|154         pathname\r
+010717  aa  6 01420 2521 00    spri2   pr6|784\r
+010720  aa   767347 3520 04    epp2    -4377,ic                000267 = 404000000005\r
+010721  aa  6 01422 2521 00    spri2   pr6|786\r
+010722  aa   767346 3520 04    epp2    -4378,ic                000270 = 526000000003\r
+010723  aa  6 01424 2521 00    spri2   pr6|788\r
+010724  aa   767230 3520 04    epp2    -4456,ic                000154 = 524000000117\r
+010725  aa  6 01426 2521 00    spri2   pr6|790\r
+010726  aa   767270 3520 04    epp2    -4424,ic                000216 = 526000000400\r
+010727  aa  6 01430 2521 00    spri2   pr6|792\r
+010730  aa  6 01410 6211 00    eax1    pr6|776\r
+010731  aa   020000 4310 07    fld     8192,dl\r
+010732  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010733  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+010734  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1363\r
+               translation_failed = "1"b;\r
+\r
+010735  aa   400000 2350 03    lda     131072,du\r
+010736  aa  6 00544 3735 20    epp7    pr6|356,*\r
+010737  aa  7 00002 7551 20    sta     pr7|2,*         translation_failed\r
+                                               STATEMENT 1 ON LINE 1364\r
+               return;\r
+\r
+010740  aa  6 00542 6101 00    rtcd    pr6|354\r
+                                               STATEMENT 1 ON LINE 1365\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1367\r
+       if ^ca.profile & ^ca.long_profile\r
+       then pl1_stat_$profile_length = 0;\r
+\r
+010741  aa  6 00136 2351 00    lda     pr6|94          ca.long_profile\r
+010742  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+010743  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+010744  aa  6 01375 7551 00    sta     pr6|765\r
+010745  aa  6 00135 2351 00    lda     pr6|93          ca.profile\r
+010746  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+010747  aa  6 01375 3151 00    cana    pr6|765\r
+010750  aa   000003 6000 04    tze     3,ic            010753\r
+010751  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010752  la  4 00364 4501 20    stz     pr4|244,*               pl1_stat_$profile_length\r
+                                               STATEMENT 1 ON LINE 1370\r
+       if ca.debug_cg\r
+       then do;\r
+\r
+010753  aa  6 00150 2351 00    lda     pr6|104         ca.debug_cg\r
+010754  aa   000022 6000 04    tze     18,ic           010776\r
+                                               STATEMENT 1 ON LINE 1372\r
+               call ioa_$nnl ("Beginning code generator.^/debug: ");\r
+\r
+010755  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+010756  aa   770007 00 0044    desc9a  -4089,36                000764 = 102145147151\r
+010757  aa  6 01376 00 0044    desc9a  pr6|766,36\r
+010760  aa  6 01376 3521 00    epp2    pr6|766\r
+010761  aa  6 01412 2521 00    spri2   pr6|778\r
+010762  aa   767171 3520 04    epp2    -4487,ic                000153 = 524000000042\r
+010763  aa  6 01414 2521 00    spri2   pr6|780\r
+010764  aa  6 01410 6211 00    eax1    pr6|776\r
+010765  aa   004000 4310 07    fld     2048,dl\r
+010766  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010767  la  4 00532 3521 20    epp2    pr4|346,*               ioa_$nnl\r
+010770  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1373\r
+               call debug;\r
+\r
+010771  aa  6 00056 6211 00    eax1    pr6|46\r
+010772  aa   000000 4310 07    fld     0,dl\r
+010773  aa  6 00044 3701 20    epp4    pr6|36,*\r
+010774  la  4 00504 3521 20    epp2    pr4|324,*               debug\r
+010775  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1374\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1376\r
+       in_cg = "1"b;\r
+\r
+010776  aa   400000 2350 03    lda     131072,du\r
+010777  aa  6 00167 7551 00    sta     pr6|119         in_cg\r
+                                               STATEMENT 1 ON LINE 1377\r
+       pl1_stat_$phase = 5;\r
+\r
+011000  aa   000005 2360 07    ldq     5,dl\r
+011001  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011002  la  4 00356 7561 20    stq     pr4|238,*               pl1_stat_$phase\r
+                                               STATEMENT 1 ON LINE 1379\r
+       call code_gen_ (pl1_stat_$seg_name, (my_name), version, pl1_stat_$root, pl1_stat_$validate_proc,\r
+            pl1_stat_$temporary_list, pl1_stat_$constant_list, pl1_stat_$ok_list, output_pt, clock_time,\r
+            pl1_stat_$profile_length, produce_listing, symbols_on, pl1_stat_$print_cp_dcl, ca.map, ca.list,\r
+            pl1_stat_$table, pl1_stat_$generate_symtab, pl1_symbol_print, error_$finish, objectbc, npages (5),\r
+            ncpu (5), ca.link, pl1_stat_$dummy_block, ca.brief_table, npages (6), ncpu (6), ca.long_profile);\r
+\r
+011003  aa   767212 2350 04    lda     -4470,ic                000215 = 160154061000\r
+011004  aa  6 01513 7551 00    sta     pr6|843\r
+011005  aa   000003 2360 07    ldq     3,dl\r
+011006  aa  6 01512 7561 00    stq     pr6|842\r
+011007  la  4 00452 3521 20    epp2    pr4|298,*               pl1_symbol_print\r
+011010  aa  6 01376 2521 00    spri2   pr6|766         cp.559\r
+011011  aa   001533 2370 04    ldaq    859,ic          012544 = 077777000043 000001000000\r
+011012  aa  6 01400 7571 00    staq    pr6|768         cp.559\r
+011013  la  4 00432 3521 20    epp2    pr4|282,*               error_$finish\r
+011014  aa  6 01410 2521 00    spri2   pr6|776         cp.559\r
+011015  aa  6 01412 7571 00    staq    pr6|778         cp.559\r
+011016  la  4 00370 3735 20    epp7    pr4|248,*\r
+011017  aa  7 00001 3521 00    epp2    pr7|1           pl1_stat_$seg_name\r
+011020  aa  6 01516 2521 00    spri2   pr6|846\r
+011021  aa  6 01513 3521 00    epp2    pr6|843\r
+011022  aa  6 01520 2521 00    spri2   pr6|848\r
+011023  ia  4 00115 3521 00    epp2    pr4|77          version\r
+011024  aa  6 01522 2521 00    spri2   pr6|850\r
+011025  la  4 00366 3521 20    epp2    pr4|246,*               pl1_stat_$root\r
+011026  aa  6 01524 2521 00    spri2   pr6|852\r
+011027  la  4 00414 3521 20    epp2    pr4|268,*               pl1_stat_$validate_proc\r
+011030  aa  6 01526 2521 00    spri2   pr6|854\r
+011031  la  4 00402 3521 20    epp2    pr4|258,*               pl1_stat_$temporary_list\r
+011032  aa  6 01530 2521 00    spri2   pr6|856\r
+011033  la  4 00276 3521 20    epp2    pr4|190,*               pl1_stat_$constant_list\r
+011034  aa  6 01532 2521 00    spri2   pr6|858\r
+011035  la  4 00344 3521 20    epp2    pr4|228,*               pl1_stat_$ok_list\r
+011036  aa  6 01534 2521 00    spri2   pr6|860\r
+011037  aa  6 00230 3521 00    epp2    pr6|152         output_pt\r
+011040  aa  6 01536 2521 00    spri2   pr6|862\r
+011041  aa  6 00160 3521 00    epp2    pr6|112         clock_time\r
+011042  aa  6 01540 2521 00    spri2   pr6|864\r
+011043  la  4 00364 3521 20    epp2    pr4|244,*               pl1_stat_$profile_length\r
+011044  aa  6 01542 2521 00    spri2   pr6|866\r
+011045  aa  6 00342 3521 00    epp2    pr6|226         produce_listing\r
+011046  aa  6 01544 2521 00    spri2   pr6|868\r
+011047  aa  6 00356 3521 00    epp2    pr6|238         symbols_on\r
+011050  aa  6 01546 2521 00    spri2   pr6|870\r
+011051  la  4 00360 3521 20    epp2    pr4|240,*               pl1_stat_$print_cp_dcl\r
+011052  aa  6 01550 2521 00    spri2   pr6|872\r
+011053  aa  6 00126 3521 00    epp2    pr6|86          ca.map\r
+011054  aa  6 01552 2521 00    spri2   pr6|874\r
+011055  aa  6 00127 3521 00    epp2    pr6|87          ca.list\r
+011056  aa  6 01554 2521 00    spri2   pr6|876\r
+011057  la  4 00400 3521 20    epp2    pr4|256,*               pl1_stat_$table\r
+011060  aa  6 01556 2521 00    spri2   pr6|878\r
+011061  la  4 00312 3521 20    epp2    pr4|202,*               pl1_stat_$generate_symtab\r
+011062  aa  6 01560 2521 00    spri2   pr6|880\r
+011063  aa  6 01376 3521 00    epp2    pr6|766         cp.559\r
+011064  aa  6 01562 2521 00    spri2   pr6|882\r
+011065  aa  6 01410 3521 00    epp2    pr6|776         cp.559\r
+011066  aa  6 01564 2521 00    spri2   pr6|884\r
+011067  ia  4 00067 3521 00    epp2    pr4|55          objectbc\r
+011070  aa  6 01566 2521 00    spri2   pr6|886\r
+011071  ia  4 00063 3521 00    epp2    pr4|51          npages\r
+011072  aa  6 01570 2521 00    spri2   pr6|888\r
+011073  ia  4 00050 3521 00    epp2    pr4|40          ncpu\r
+011074  aa  6 01572 2521 00    spri2   pr6|890\r
+011075  aa  6 00154 3521 00    epp2    pr6|108         ca.link\r
+011076  aa  6 01574 2521 00    spri2   pr6|892\r
+011077  la  4 00304 3521 20    epp2    pr4|196,*               pl1_stat_$dummy_block\r
+011100  aa  6 01576 2521 00    spri2   pr6|894\r
+011101  aa  6 00117 3521 00    epp2    pr6|79          ca.brief_table\r
+011102  aa  6 01600 2521 00    spri2   pr6|896\r
+011103  ia  4 00064 3521 00    epp2    pr4|52          npages\r
+011104  aa  6 01602 2521 00    spri2   pr6|898\r
+011105  ia  4 00052 3521 00    epp2    pr4|42          ncpu\r
+011106  aa  6 01604 2521 00    spri2   pr6|900\r
+011107  aa  6 00136 3521 00    epp2    pr6|94          ca.long_profile\r
+011110  aa  6 01606 2521 00    spri2   pr6|902\r
+011111  aa  6 01514 6211 00    eax1    pr6|844\r
+011112  aa   164000 4310 07    fld     59392,dl\r
+011113  la  4 00426 3521 20    epp2    pr4|278,*               code_gen_\r
+011114  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1385\r
+       in_cg = "0"b;\r
+\r
+011115  aa  6 00167 4501 00    stz     pr6|119         in_cg\r
+                                               STATEMENT 1 ON LINE 1386\r
+       called_cg = "1"b;\r
+\r
+011116  aa   400000 2350 03    lda     131072,du\r
+011117  aa  6 00157 7551 00    sta     pr6|111         called_cg\r
+                                               STATEMENT 1 ON LINE 1387\r
+     end generate_code;\r
+\r
+011120  aa  6 00542 6101 00    rtcd    pr6|354\r
+  END PROCEDURE generate_code\r
+BEGIN PROCEDURE print_times\r
+ENTRY TO print_times                                        STATEMENT 1 ON LINE 1389\r
+print_times:\r
+     procedure;\r
+\r
+011121  aa  6 00550 6501 00    spri4   pr6|360\r
+                                               STATEMENT 1 ON LINE 1396\r
+       ty = -1e0;\r
+\r
+011122  aa   001000 4310 03    fld     512,du\r
+011123  aa  6 00560 4551 00    fst     pr6|368         ty\r
+                                               STATEMENT 1 ON LINE 1397\r
+       do i = hbound (ncpu, 1) to 1 by -1 while (ty < 0e0);\r
+\r
+011124  aa   000007 2360 07    ldq     7,dl\r
+011125  aa  6 00166 7561 00    stq     pr6|118         i\r
+011126  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011127  aa   000001 1160 07    cmpq    1,dl\r
+011130  aa   000016 6040 04    tmi     14,ic           011146\r
+011131  aa  6 00560 4311 00    fld     pr6|368         ty\r
+011132  aa   000014 6050 04    tpl     12,ic           011146\r
+                                               STATEMENT 1 ON LINE 1398\r
+            ty = ncpu (i) - ncpu (0);\r
+\r
+011133  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011134  aa   000001 7360 00    qls     1\r
+011135  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011136  ia  4 00036 2371 06    ldaq    pr4|30,ql               ncpu\r
+011137  ia  4 00036 1771 00    sbaq    pr4|30          ncpu\r
+011140  aa   216000 4110 03    lde     72704,du\r
+011141  aa   400000 4750 03    fad     131072,du\r
+011142  aa  6 00560 4551 00    fst     pr6|368         ty\r
+                                               STATEMENT 1 ON LINE 1399\r
+       end;\r
+\r
+011143  aa   000001 3360 07    lcq     1,dl\r
+011144  aa  6 00166 0561 00    asq     pr6|118         i\r
+011145  aa   777761 7100 04    tra     -15,ic          011126\r
+                                               STATEMENT 1 ON LINE 1401\r
+       if ty <= 0e0\r
+       then do;\r
+\r
+011146  aa  6 00560 4311 00    fld     pr6|368         ty\r
+011147  aa   000032 6054 04    tpnz    26,ic           011201\r
+                                               STATEMENT 1 ON LINE 1403\r
+               call com_err_ (0, my_name, "No times available.");\r
+\r
+011150  aa  6 01610 4501 00    stz     pr6|904\r
+011151  aa   767423 2370 04    ldaq    -4333,ic                000574 = 116157040164 151155145163\r
+011152  aa  6 01612 7571 00    staq    pr6|906\r
+011153  aa   767423 2370 04    ldaq    -4333,ic                000576 = 040141166141 151154141142\r
+011154  aa  6 01614 7571 00    staq    pr6|908\r
+011155  aa   767423 2350 04    lda     -4333,ic                000600 = 154145056000\r
+011156  aa  6 01616 7551 00    sta     pr6|910\r
+011157  aa  6 01610 3521 00    epp2    pr6|904\r
+011160  aa  6 01622 2521 00    spri2   pr6|914\r
+011161  aa   767034 3520 04    epp2    -4580,ic                000215 = 160154061000\r
+011162  aa  6 01624 2521 00    spri2   pr6|916\r
+011163  aa  6 01612 3521 00    epp2    pr6|906\r
+011164  aa  6 01626 2521 00    spri2   pr6|918\r
+011165  aa   767102 3520 04    epp2    -4542,ic                000267 = 404000000005\r
+011166  aa  6 01630 2521 00    spri2   pr6|920\r
+011167  aa   767101 3520 04    epp2    -4543,ic                000270 = 526000000003\r
+011170  aa  6 01632 2521 00    spri2   pr6|922\r
+011171  aa   766761 3520 04    epp2    -4623,ic                000152 = 524000000023\r
+011172  aa  6 01634 2521 00    spri2   pr6|924\r
+011173  aa  6 01620 6211 00    eax1    pr6|912\r
+011174  aa   014000 4310 07    fld     6144,dl\r
+011175  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011176  la  4 00466 3521 20    epp2    pr4|310,*               com_err_\r
+011177  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1404\r
+               return;\r
+\r
+011200  aa  6 00550 6101 00    rtcd    pr6|360\r
+                                               STATEMENT 1 ON LINE 1405\r
+            end;\r
+\r
+                                               STATEMENT 1 ON LINE 1407\r
+       call ioa_ ("^/Segment ^a (^d lines) was compiled by ^a on ^a", pl1_stat_$seg_name, pl1_stat_$line_count,\r
+            my_name, comptime);\r
+\r
+011201  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+011202  aa   767702 00 0060    desc9a  -4158,48                001103 = 136057123145\r
+011203  aa  6 01620 00 0060    desc9a  pr6|912,48\r
+011204  aa  6 01620 3521 00    epp2    pr6|912\r
+011205  aa  6 01640 2521 00    spri2   pr6|928\r
+011206  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011207  la  4 00370 3735 20    epp7    pr4|248,*\r
+011210  aa  7 00001 3521 00    epp2    pr7|1           pl1_stat_$seg_name\r
+011211  aa  6 01642 2521 00    spri2   pr6|930\r
+011212  la  4 00322 3521 20    epp2    pr4|210,*               pl1_stat_$line_count\r
+011213  aa  6 01644 2521 00    spri2   pr6|932\r
+011214  aa   767001 3520 04    epp2    -4607,ic                000215 = 160154061000\r
+011215  aa  6 01646 2521 00    spri2   pr6|934\r
+011216  ia  4 00013 3521 00    epp2    pr4|11          comptime\r
+011217  aa  6 01650 2521 00    spri2   pr6|936\r
+011220  aa   766731 3520 04    epp2    -4647,ic                000151 = 524000000060\r
+011221  aa  6 01652 2521 00    spri2   pr6|938\r
+011222  aa   766747 3520 04    epp2    -4633,ic                000171 = 530000000040\r
+011223  aa  6 01654 2521 00    spri2   pr6|940\r
+011224  aa   767051 3520 04    epp2    -4567,ic                000275 = 404000000021\r
+011225  aa  6 01656 2521 00    spri2   pr6|942\r
+011226  aa   767042 3520 04    epp2    -4574,ic                000270 = 526000000003\r
+011227  aa  6 01660 2521 00    spri2   pr6|944\r
+011230  aa   766761 3520 04    epp2    -4623,ic                000211 = 530000000100\r
+011231  aa  6 01662 2521 00    spri2   pr6|946\r
+011232  aa  6 01636 6211 00    eax1    pr6|926\r
+011233  aa   024000 4310 07    fld     10240,dl\r
+011234  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011235  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1410\r
+       call how_many_users;\r
+\r
+011236  aa  6 00056 6211 00    eax1    pr6|46\r
+011237  aa   000000 4310 07    fld     0,dl\r
+011240  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011241  la  4 00526 3521 20    epp2    pr4|342,*               how_many_users\r
+011242  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1412\r
+       call ioa_ ("^/Phase          CPU    %   Pages      Tree     Xeq_tree");\r
+\r
+011243  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+011244  aa   767654 00 0070    desc9a  -4180,56                001117 = 136057120150\r
+011245  aa  6 01620 00 0070    desc9a  pr6|912,56\r
+011246  aa  6 01620 3521 00    epp2    pr6|912\r
+011247  aa  6 01640 2521 00    spri2   pr6|928\r
+011250  aa   766700 3520 04    epp2    -4672,ic                000150 = 524000000070\r
+011251  aa  6 01642 2521 00    spri2   pr6|930\r
+011252  aa  6 01636 6211 00    eax1    pr6|926\r
+011253  aa   004000 4310 07    fld     2048,dl\r
+011254  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011255  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011256  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1414\r
+       do i = 1 to hbound (npages, 1);\r
+\r
+011257  aa   000001 2360 07    ldq     1,dl\r
+011260  aa  6 00166 7561 00    stq     pr6|118         i\r
+011261  aa   000000 0110 03    nop     0,du\r
+011262  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011263  aa   000007 1160 07    cmpq    7,dl\r
+011264  aa   000144 6054 04    tpnz    100,ic          011430\r
+                                               STATEMENT 1 ON LINE 1415\r
+            if npages (i) < 0\r
+            then do;\r
+\r
+011265  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011266  ia  4 00056 2361 06    ldq     pr4|46,ql               npages\r
+011267  aa   000033 6050 04    tpl     27,ic           011322\r
+                                               STATEMENT 1 ON LINE 1417\r
+                    ncpu (i) = ncpu (i - 1);\r
+\r
+011270  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011271  aa   000001 7360 00    qls     1\r
+011272  aa   000000 6270 06    eax7    0,ql\r
+011273  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011274  aa   000001 7360 00    qls     1\r
+011275  ia  4 00034 2371 06    ldaq    pr4|28,ql               ncpu\r
+011276  ia  4 00036 7571 17    staq    pr4|30,7                ncpu\r
+                                               STATEMENT 1 ON LINE 1418\r
+                    npages (i) = npages (i - 1);\r
+\r
+011277  aa  6 00166 7261 00    lxl6    pr6|118         i\r
+011300  ia  4 00055 2361 16    ldq     pr4|45,6                npages\r
+011301  ia  4 00056 7561 16    stq     pr4|46,6                npages\r
+                                               STATEMENT 1 ON LINE 1419\r
+                    storage (i) = storage (i - 1);\r
+\r
+011302  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011303  aa   000012 4020 07    mpy     10,dl\r
+011304  aa   000000 6260 06    eax6    0,ql\r
+011305  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011306  aa   000012 4020 07    mpy     10,dl\r
+011307  aa  040 116 100 506    mlr     (pr,ql),(pr,x6),fill(040)\r
+011310  ia  4 00065 40 0012    desc9a  pr4|53(2),10    storage\r
+011311  ia  4 00070 00 0012    desc9a  pr4|56,10               storage\r
+                                               STATEMENT 1 ON LINE 1420\r
+                    xeq_storage (i) = xeq_storage (i - 1);\r
+\r
+011312  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011313  aa   000012 4020 07    mpy     10,dl\r
+011314  aa   000000 6250 06    eax5    0,ql\r
+011315  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011316  aa   000012 4020 07    mpy     10,dl\r
+011317  aa  040 115 100 506    mlr     (pr,ql),(pr,x5),fill(040)\r
+011320  ia  4 00153 40 0012    desc9a  pr4|107(2),10   xeq_storage\r
+011321  ia  4 00156 00 0012    desc9a  pr4|110,10      xeq_storage\r
+                                               STATEMENT 1 ON LINE 1421\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 1423\r
+            tx = ncpu (i) - ncpu (i - 1);\r
+\r
+011322  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011323  aa   000001 7360 00    qls     1\r
+011324  aa   000000 6270 06    eax7    0,ql\r
+011325  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011326  aa   000001 7360 00    qls     1\r
+011327  ia  4 00036 2371 06    ldaq    pr4|30,ql               ncpu\r
+011330  ia  4 00034 1771 17    sbaq    pr4|28,7                ncpu\r
+011331  aa   216000 4110 03    lde     72704,du\r
+011332  aa   400000 4750 03    fad     131072,du\r
+011333  aa  6 00557 4551 00    fst     pr6|367         tx\r
+                                               STATEMENT 1 ON LINE 1424\r
+            call ioa_ ("^9a^9.3f^6.1f^6d ^10a ^10a", phase_name (i), tx / 1.0e6, 1.0e2 * tx / ty,\r
+               npages (i) - npages (i - 1), storage (i), xeq_storage (i));\r
+\r
+011334  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+011335  aa   767334 00 0034    desc9a  -4388,28                000670 = 136071141136\r
+011336  aa  6 01620 00 0034    desc9a  pr6|912,28\r
+011337  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011340  aa   000011 4020 07    mpy     9,dl\r
+011341  aa  6 01610 7561 00    stq     pr6|904\r
+011342  aa  6 00557 4311 00    fld     pr6|367         tx\r
+011343  aa   766603 5650 04    fdv     -4733,ic                000146 = 050750220000\r
+011344  aa  6 01617 4551 00    fst     pr6|911\r
+011345  aa   016620 4310 03    fld     7568,du\r
+011346  aa  6 00557 4611 00    fmp     pr6|367         tx\r
+011347  aa  6 00560 5651 00    fdv     pr6|368         ty\r
+011350  aa  6 01611 4551 00    fst     pr6|905\r
+011351  aa  6 00166 7261 00    lxl6    pr6|118         i\r
+011352  ia  4 00056 2361 16    ldq     pr4|46,6                npages\r
+011353  ia  4 00055 1761 16    sbq     pr4|45,6                npages\r
+011354  aa  6 01664 7561 00    stq     pr6|948\r
+011355  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011356  aa   000012 4020 07    mpy     10,dl\r
+011357  aa   000000 6240 06    eax4    0,ql\r
+011360  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011361  aa   000012 4020 07    mpy     10,dl\r
+011362  aa  6 01620 3521 00    epp2    pr6|912\r
+011363  aa  6 01670 2521 00    spri2   pr6|952\r
+011364  aa  6 01610 7251 00    lxl5    pr6|904\r
+011365  aa   000003 6250 15    eax5    3,5\r
+011366  ta   000111 3520 00    epp2    73\r
+011367  aa  2 00000 5005 15    a9bd    pr2|0,5\r
+011370  aa  6 01672 2521 00    spri2   pr6|954\r
+011371  aa  6 01617 3521 00    epp2    pr6|911\r
+011372  aa  6 01674 2521 00    spri2   pr6|956\r
+011373  aa  6 01611 3521 00    epp2    pr6|905\r
+011374  aa  6 01676 2521 00    spri2   pr6|958\r
+011375  aa  6 01664 3521 00    epp2    pr6|948\r
+011376  aa  6 01700 2521 00    spri2   pr6|960\r
+011377  ia  4 00070 3521 00    epp2    pr4|56          storage\r
+011400  aa  2 00000 5005 14    a9bd    pr2|0,4\r
+011401  aa  6 01702 2521 00    spri2   pr6|962\r
+011402  ia  4 00156 3521 00    epp2    pr4|110         xeq_storage\r
+011403  aa  2 00000 5005 06    a9bd    pr2|0,ql\r
+011404  aa  6 01704 2521 00    spri2   pr6|964\r
+011405  aa   766555 3520 04    epp2    -4755,ic                000162 = 524000000032\r
+011406  aa  6 01706 2521 00    spri2   pr6|966\r
+011407  aa   766540 3520 04    epp2    -4768,ic                000147 = 526000000011\r
+011410  aa  6 01710 2521 00    spri2   pr6|968\r
+011411  aa   766534 3520 04    epp2    -4772,ic                000145 = 414000000033\r
+011412  aa  6 01712 2521 00    spri2   pr6|970\r
+011413  aa  6 01714 2521 00    spri2   pr6|972\r
+011414  aa   766530 3520 04    epp2    -4776,ic                000144 = 404000000022\r
+011415  aa  6 01716 2521 00    spri2   pr6|974\r
+011416  aa   766567 3520 04    epp2    -4745,ic                000205 = 526000000012\r
+011417  aa  6 01720 2521 00    spri2   pr6|976\r
+011420  aa   766565 3520 04    epp2    -4747,ic                000205 = 526000000012\r
+011421  aa  6 01722 2521 00    spri2   pr6|978\r
+011422  aa  6 01666 6211 00    eax1    pr6|950\r
+011423  aa   034000 4310 07    fld     14336,dl\r
+011424  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011425  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1426\r
+       end;\r
+\r
+011426  aa  6 00166 0541 00    aos     pr6|118         i\r
+011427  aa   777633 7100 04    tra     -101,ic         011262\r
+                                               STATEMENT 1 ON LINE 1428\r
+       call ioa_ ("TOTAL    ^9.3f      ^6d", ty / 1.0e6, npages (7) - npages (0));\r
+\r
+011430  aa   767210 2370 04    ldaq    -4472,ic                000640 = 124117124101 114040040040\r
+011431  aa  6 01620 7571 00    staq    pr6|912\r
+011432  aa   767210 2370 04    ldaq    -4472,ic                000642 = 040136071056 063146040040\r
+011433  aa  6 01622 7571 00    staq    pr6|914\r
+011434  aa   767210 2370 04    ldaq    -4472,ic                000644 = 040040040040 136066144000\r
+011435  aa  6 01624 7571 00    staq    pr6|916\r
+011436  aa  6 00560 4311 00    fld     pr6|368         ty\r
+011437  aa   766507 5650 04    fdv     -4793,ic                000146 = 050750220000\r
+011440  aa  6 01664 4551 00    fst     pr6|948\r
+011441  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011442  ia  4 00065 2361 00    ldq     pr4|53          npages\r
+011443  ia  4 00056 1761 00    sbq     pr4|46          npages\r
+011444  aa  6 01611 7561 00    stq     pr6|905\r
+011445  aa  6 01620 3521 00    epp2    pr6|912\r
+011446  aa  6 01640 2521 00    spri2   pr6|928\r
+011447  aa  6 01664 3521 00    epp2    pr6|948\r
+011450  aa  6 01642 2521 00    spri2   pr6|930\r
+011451  aa  6 01611 3521 00    epp2    pr6|905\r
+011452  aa  6 01644 2521 00    spri2   pr6|932\r
+011453  aa   766470 3520 04    epp2    -4808,ic                000143 = 524000000027\r
+011454  aa  6 01646 2521 00    spri2   pr6|934\r
+011455  aa   766470 3520 04    epp2    -4808,ic                000145 = 414000000033\r
+011456  aa  6 01650 2521 00    spri2   pr6|936\r
+011457  aa   766465 3520 04    epp2    -4811,ic                000144 = 404000000022\r
+011460  aa  6 01652 2521 00    spri2   pr6|938\r
+011461  aa  6 01636 6211 00    eax1    pr6|926\r
+011462  aa   014000 4310 07    fld     6144,dl\r
+011463  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011464  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1430\r
+       call ioa_ ("^/Summary of node usage in ^d free segments^/", number_free_segs);\r
+\r
+011465  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+011466  aa   767402 00 0060    desc9a  -4350,48                001067 = 136057123165\r
+011467  aa  6 01620 00 0060    desc9a  pr6|912,48\r
+011470  aa  6 01620 3521 00    epp2    pr6|912\r
+011471  aa  6 01640 2521 00    spri2   pr6|928\r
+011472  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011473  ia  4 00066 3521 00    epp2    pr4|54          number_free_segs\r
+011474  aa  6 01642 2521 00    spri2   pr6|930\r
+011475  aa   766445 3520 04    epp2    -4827,ic                000142 = 524000000055\r
+011476  aa  6 01644 2521 00    spri2   pr6|932\r
+011477  aa   766576 3520 04    epp2    -4738,ic                000275 = 404000000021\r
+011500  aa  6 01646 2521 00    spri2   pr6|934\r
+011501  aa  6 01636 6211 00    eax1    pr6|926\r
+011502  aa   010000 4310 07    fld     4096,dl\r
+011503  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011504  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1431\r
+       call ioa_ ((2)"NODE TYPE   NUMBER  SIZE   TOTAL^8x");\r
+\r
+011505  aa  000 100 100 404    mlr     (ic),(pr),fill(000)\r
+011506  aa   767526 00 0110    desc9a  -4266,72                001233 = 116117104105\r
+011507  aa  6 01636 00 0110    desc9a  pr6|926,72\r
+011510  aa  6 01636 3521 00    epp2    pr6|926\r
+011511  aa  6 01622 2521 00    spri2   pr6|914\r
+011512  aa   766427 3520 04    epp2    -4841,ic                000141 = 524000000106\r
+011513  aa  6 01624 2521 00    spri2   pr6|916\r
+011514  aa  6 01620 6211 00    eax1    pr6|912\r
+011515  aa   004000 4310 07    fld     2048,dl\r
+011516  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011517  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011520  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1433\r
+       need_nl = "0"b;\r
+\r
+011521  aa  6 00556 4501 00    stz     pr6|366         need_nl\r
+                                               STATEMENT 1 ON LINE 1434\r
+       do i = 1 to pl1_stat_$max_node_type;\r
+\r
+011522  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011523  la  4 00332 2361 20    ldq     pr4|218,*               pl1_stat_$max_node_type\r
+011524  aa  6 00561 7561 00    stq     pr6|369\r
+011525  aa   000001 2360 07    ldq     1,dl\r
+011526  aa  6 00166 7561 00    stq     pr6|118         i\r
+011527  aa   000000 0110 03    nop     0,du\r
+011530  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011531  aa  6 00561 1161 00    cmpq    pr6|369\r
+011532  aa   000065 6054 04    tpnz    53,ic           011617\r
+                                               STATEMENT 1 ON LINE 1435\r
+            if pl1_stat_$node_uses (i) ^= 0\r
+            then do;\r
+\r
+011533  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011534  la  4 00342 3735 20    epp7    pr4|226,*\r
+011535  aa  7 77777 2361 06    ldq     pr7|-1,ql               pl1_stat_$node_uses\r
+011536  aa   000057 6000 04    tze     47,ic           011615\r
+                                               STATEMENT 1 ON LINE 1437\r
+                    call ioa_$nnl ("^12a^6d^6d^8d^[^/^;^8x^]", pl1_stat_$node_name (i), pl1_stat_$node_uses (i),\r
+                       pl1_stat_$node_size (i), pl1_stat_$node_uses (i) * pl1_stat_$node_size (i), need_nl);\r
+\r
+011537  aa   767073 2370 04    ldaq    -4549,ic                000632 = 136061062141 136066144136\r
+011540  aa  6 01620 7571 00    staq    pr6|912\r
+011541  aa   767073 2370 04    ldaq    -4549,ic                000634 = 066144136070 144136133136\r
+011542  aa  6 01622 7571 00    staq    pr6|914\r
+011543  aa   767073 2370 04    ldaq    -4549,ic                000636 = 057136073136 070170136135\r
+011544  aa  6 01624 7571 00    staq    pr6|916\r
+011545  aa  6 00166 2361 00    ldq     pr6|118         i\r
+011546  aa   000003 4020 07    mpy     3,dl\r
+011547  aa  6 00166 7271 00    lxl7    pr6|118         i\r
+011550  aa   000000 6260 06    eax6    0,ql\r
+011551  aa  7 77777 2361 17    ldq     pr7|-1,7                pl1_stat_$node_uses\r
+011552  la  4 00340 3715 20    epp5    pr4|224,*\r
+011553  aa  5 77777 4021 17    mpy     pr5|-1,7                pl1_stat_$node_size\r
+011554  aa  6 01664 7561 00    stq     pr6|948\r
+011555  aa  6 01620 3521 00    epp2    pr6|912\r
+011556  aa  6 01670 2521 00    spri2   pr6|952\r
+011557  la  4 00336 3535 20    epp3    pr4|222,*\r
+011560  aa  3 77775 3521 16    epp2    pr3|-3,6                pl1_stat_$node_name\r
+011561  aa  6 01672 2521 00    spri2   pr6|954\r
+011562  aa  7 77777 3521 17    epp2    pr7|-1,7                pl1_stat_$node_uses\r
+011563  aa  6 01674 2521 00    spri2   pr6|956\r
+011564  aa  5 77777 3521 17    epp2    pr5|-1,7                pl1_stat_$node_size\r
+011565  aa  6 01676 2521 00    spri2   pr6|958\r
+011566  aa  6 01664 3521 00    epp2    pr6|948\r
+011567  aa  6 01700 2521 00    spri2   pr6|960\r
+011570  aa  6 00556 3521 00    epp2    pr6|366         need_nl\r
+011571  aa  6 01702 2521 00    spri2   pr6|962\r
+011572  aa   766346 3520 04    epp2    -4890,ic                000140 = 524000000030\r
+011573  aa  6 01704 2521 00    spri2   pr6|964\r
+011574  aa   766343 3520 04    epp2    -4893,ic                000137 = 526000000014\r
+011575  aa  6 01706 2521 00    spri2   pr6|966\r
+011576  aa   766477 3520 04    epp2    -4801,ic                000275 = 404000000021\r
+011577  aa  6 01710 2521 00    spri2   pr6|968\r
+011600  aa  6 01712 2521 00    spri2   pr6|970\r
+011601  aa   766470 3520 04    epp2    -4808,ic                000271 = 404000000043\r
+011602  aa  6 01714 2521 00    spri2   pr6|972\r
+011603  aa   766467 3520 04    epp2    -4809,ic                000272 = 514000000001\r
+011604  aa  6 01716 2521 00    spri2   pr6|974\r
+011605  aa  6 01666 6211 00    eax1    pr6|950\r
+011606  aa   030000 4310 07    fld     12288,dl\r
+011607  la  4 00532 3521 20    epp2    pr4|346,*               ioa_$nnl\r
+011610  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1439\r
+                    need_nl = ^need_nl;\r
+\r
+011611  aa  6 00556 2351 00    lda     pr6|366         need_nl\r
+011612  aa  0 00002 3771 00    anaq    pr0|2           = 400000000000 000000000000\r
+011613  aa  0 00002 6751 00    era     pr0|2           = 400000000000\r
+011614  aa  6 00556 7551 00    sta     pr6|366         need_nl\r
+                                               STATEMENT 1 ON LINE 1440\r
+               end;\r
+\r
+                                               STATEMENT 1 ON LINE 1441\r
+       end;\r
+\r
+011615  aa  6 00166 0541 00    aos     pr6|118         i\r
+011616  aa   777712 7100 04    tra     -54,ic          011530\r
+                                               STATEMENT 1 ON LINE 1443\r
+       call ioa_ ("^[^/^]", need_nl);\r
+\r
+011617  aa   766461 2370 04    ldaq    -4815,ic                000300 = 136133136057 136135000000\r
+011620  aa  6 01724 7571 00    staq    pr6|980\r
+011621  aa  6 01724 3521 00    epp2    pr6|980\r
+011622  aa  6 01622 2521 00    spri2   pr6|914\r
+011623  aa  6 00556 3521 00    epp2    pr6|366         need_nl\r
+011624  aa  6 01624 2521 00    spri2   pr6|916\r
+011625  aa   766311 3520 04    epp2    -4919,ic                000136 = 524000000006\r
+011626  aa  6 01626 2521 00    spri2   pr6|918\r
+011627  aa   766443 3520 04    epp2    -4829,ic                000272 = 514000000001\r
+011630  aa  6 01630 2521 00    spri2   pr6|920\r
+011631  aa  6 01620 6211 00    eax1    pr6|912\r
+011632  aa   010000 4310 07    fld     4096,dl\r
+011633  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011634  la  4 00530 3521 20    epp2    pr4|344,*               ioa_\r
+011635  aa  0 00622 7001 00    tsx0    pr0|402         call_ext_out_desc\r
+                                               STATEMENT 1 ON LINE 1444\r
+     end print_times;\r
+\r
+011636  aa  6 00550 6101 00    rtcd    pr6|360\r
+  END PROCEDURE print_times\r
+BEGIN PROCEDURE truncate\r
+ENTRY TO truncate                                           STATEMENT 1 ON LINE 1446\r
+truncate:\r
+     procedure;\r
+\r
+011637  da     001502200000\r
+011640  aa   000120 6270 00    eax7    80\r
+011641  aa  7 00034 3521 20    epp2    pr7|28,*\r
+011642  aa  2 01047 2721 00    tsp2    pr2|551         int_entry\r
+011643  aa     000000000000\r
+011644  2s     000210005055\r
+                                               STATEMENT 1 ON LINE 1449\r
+       call lex$terminate_source;\r
+\r
+011645  aa  6 00056 6211 00    eax1    pr6|46\r
+011646  aa   000000 4310 07    fld     0,dl\r
+011647  la  4 00434 3521 20    epp2    pr4|284,*               lex$terminate_source\r
+011650  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1450\r
+       call tree_manager$truncate;\r
+\r
+011651  aa  6 00056 6211 00    eax1    pr6|46\r
+011652  aa   000000 4310 07    fld     0,dl\r
+011653  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011654  la  4 00464 3521 20    epp2    pr4|308,*               tree_manager$truncate\r
+011655  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1452\r
+       if object_hold ^= null\r
+       then call tssi_$clean_up_segment (object_hold);\r
+\r
+011656  aa  6 00040 3735 20    epp7    pr6|32,*\r
+011657  aa  7 00216 2371 00    ldaq    pr7|142         object_hold\r
+011660  aa   766522 6770 04    eraq    -4782,ic                000402 = 077777000043 000001000000\r
+011661  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+011662  aa   000010 6000 04    tze     8,ic            011672\r
+011663  aa  7 00216 3521 00    epp2    pr7|142         object_hold\r
+011664  aa  6 00102 2521 00    spri2   pr6|66\r
+011665  aa  6 00100 6211 00    eax1    pr6|64\r
+011666  aa   004000 4310 07    fld     2048,dl\r
+011667  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011670  la  4 00542 3521 20    epp2    pr4|354,*               tssi_$clean_up_segment\r
+011671  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1455\r
+       if list_hold ^= null\r
+       then call tssi_$clean_up_file (fcb, list_hold);\r
+\r
+011672  aa  6 00040 3735 20    epp7    pr6|32,*\r
+011673  aa  7 00172 2371 00    ldaq    pr7|122         list_hold\r
+011674  aa   766506 6770 04    eraq    -4794,ic                000402 = 077777000043 000001000000\r
+011675  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+011676  aa   000012 6000 04    tze     10,ic           011710\r
+011677  aa  7 00164 3521 00    epp2    pr7|116         fcb\r
+011700  aa  6 00106 2521 00    spri2   pr6|70\r
+011701  aa  7 00172 3521 00    epp2    pr7|122         list_hold\r
+011702  aa  6 00110 2521 00    spri2   pr6|72\r
+011703  aa  6 00104 6211 00    eax1    pr6|68\r
+011704  aa   010000 4310 07    fld     4096,dl\r
+011705  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011706  la  4 00540 3521 20    epp2    pr4|352,*               tssi_$clean_up_file\r
+011707  aa  0 00623 7001 00    tsx0    pr0|403         call_ext_out\r
+                                               STATEMENT 1 ON LINE 1457\r
+     end truncate;\r
+\r
+011710  aa  0 00631 7101 00    tra     pr0|409         return_mac\r
+  END PROCEDURE truncate\r
+BEGIN PROCEDURE set_storage_usage\r
+ENTRY TO set_storage_usage                                  STATEMENT 1 ON LINE 1459\r
+set_storage_usage:\r
+     procedure (tree_used, xeq_tree_used);\r
+\r
+011711  aa  6 00562 6501 00    spri4   pr6|370\r
+011712  aa  6 00564 2521 00    spri2   pr6|372\r
+011713  aa  2 00002 3521 01    epp2    pr2|2,au\r
+011714  aa  6 00566 2521 00    spri2   pr6|374\r
+011715  aa  2 00000 2361 20    ldq     pr2|0,*\r
+011716  aa   000002 6040 04    tmi     2,ic            011720\r
+011717  aa   777777 3760 07    anq     262143,dl\r
+011720  aa  0 00250 3761 00    anq     pr0|168         = 000077777777\r
+011721  aa  6 01726 7561 00    stq     pr6|982\r
+011722  aa  2 00002 2361 20    ldq     pr2|2,*\r
+011723  aa   000002 6040 04    tmi     2,ic            011725\r
+011724  aa   777777 3760 07    anq     262143,dl\r
+011725  aa  0 00250 3761 00    anq     pr0|168         = 000077777777\r
+011726  aa  6 01727 7561 00    stq     pr6|983\r
+                                               STATEMENT 1 ON LINE 1467\r
+       tree_used = char (binary (pl1_stat_$tree_area_ptr -> area_header.next_virgin, 18), 10);\r
+\r
+011727  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011730  la  4 00404 3735 20    epp7    pr4|260,*               pl1_stat_$tree_area_ptr\r
+011731  aa  7 00000 3735 20    epp7    pr7|0,*         pl1_stat_$tree_area_ptr\r
+011732  aa  7 00002 2351 00    lda     pr7|2           area_header.next_virgin\r
+011733  aa   000066 7730 00    lrl     54\r
+011734  aa  6 01733 7561 00    stq     pr6|987\r
+011735  aa  000 100 301 500    btd     (pr),(pr)\r
+011736  aa  6 01733 00 0004    desc9a  pr6|987,4\r
+011737  aa  6 01734 01 0010    desc9ls pr6|988,8,0\r
+011740  aa  100 004 024 500    mvne    (pr),(ic),(pr)\r
+011741  aa  6 01734 01 0010    desc9ls pr6|988,8,0\r
+011742  aa   000166 00 0006    desc9a  118,6           012126 = 403040022146\r
+011743  aa  6 01730 00 0012    desc9a  pr6|984,10\r
+011744  aa  6 00564 3715 20    epp5    pr6|372,*\r
+011745  aa  5 00002 3535 20    epp3    pr5|2,*\r
+011746  aa  6 01726 2361 00    ldq     pr6|982\r
+011747  aa  040 140 100 500    mlr     (pr),(pr,rl),fill(040)\r
+011750  aa  6 01730 00 0012    desc9a  pr6|984,10\r
+011751  aa  3 00000 00 0006    desc9a  pr3|0,ql                tree_used\r
+                                               STATEMENT 1 ON LINE 1469\r
+       number_free_segs = count_components (pl1_stat_$tree_area_ptr);\r
+\r
+011752  la  4 00404 3521 20    epp2    pr4|260,*               pl1_stat_$tree_area_ptr\r
+011753  aa  6 01740 2521 00    spri2   pr6|992\r
+011754  ia  4 00066 3521 00    epp2    pr4|54          number_free_segs\r
+011755  aa  6 01742 2521 00    spri2   pr6|994\r
+011756  aa  6 01736 3521 00    epp2    pr6|990\r
+011757  aa   010000 4310 07    fld     4096,dl\r
+011760  aa  2 00000 7571 00    staq    pr2|0\r
+011761  aa   000115 6700 04    tsp4    77,ic           012076\r
+                                               STATEMENT 1 ON LINE 1470\r
+       if number_free_segs > 1\r
+       then substr (tree_used, 1, 3) = "(" || convert (digit_pic, number_free_segs) || ")";\r
+\r
+011762  aa  6 00044 3701 20    epp4    pr6|36,*\r
+011763  ia  4 00066 2361 00    ldq     pr4|54          number_free_segs\r
+011764  aa   000001 1160 07    cmpq    1,dl\r
+011765  aa   000025 6044 04    tmoz    21,ic           012012\r
+011766  aa  000 100 301 500    btd     (pr),(pr)\r
+011767  ia  4 00066 00 0004    desc9a  pr4|54,4                number_free_segs\r
+011770  aa  6 01733 01 0002    desc9ls pr6|987,2,0\r
+011771  aa  6 01746 4501 00    stz     pr6|998\r
+011772  aa  100 004 024 500    mvne    (pr),(ic),(pr)\r
+011773  aa  6 01733 01 0002    desc9ls pr6|987,2,0\r
+011774  aa   000554 00 0002    desc9a  364,2           012546 = 070321000000\r
+011775  aa  6 01746 00 0001    desc9a  pr6|998,1\r
+011776  aa  6 01746 2351 00    lda     pr6|998\r
+011777  aa   000011 7710 00    arl     9\r
+012000  aa   050000 2750 03    ora     20480,du\r
+012001  aa  6 01733 7551 00    sta     pr6|987\r
+012002  aa   051000 2350 07    lda     20992,dl\r
+012003  aa  6 01733 2751 00    ora     pr6|987\r
+012004  aa  6 00056 7551 00    sta     pr6|46\r
+012005  aa  6 00564 3735 20    epp7    pr6|372,*\r
+012006  aa  7 00002 3715 20    epp5    pr7|2,*\r
+012007  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+012010  aa  6 00056 00 0003    desc9a  pr6|46,3\r
+012011  aa  5 00000 00 0003    desc9a  pr5|0,3         tree_used\r
+                                               STATEMENT 1 ON LINE 1473\r
+       xeq_tree_used = char (binary (pl1_stat_$xeq_tree_area_ptr -> area_header.next_virgin, 18), 10);\r
+\r
+012012  la  4 00420 3735 20    epp7    pr4|272,*               pl1_stat_$xeq_tree_area_ptr\r
+012013  aa  7 00000 3735 20    epp7    pr7|0,*         pl1_stat_$xeq_tree_area_ptr\r
+012014  aa  7 00002 2351 00    lda     pr7|2           area_header.next_virgin\r
+012015  aa   000066 7730 00    lrl     54\r
+012016  aa  6 01733 7561 00    stq     pr6|987\r
+012017  aa  000 100 301 500    btd     (pr),(pr)\r
+012020  aa  6 01733 00 0004    desc9a  pr6|987,4\r
+012021  aa  6 01734 01 0010    desc9ls pr6|988,8,0\r
+012022  aa  100 004 024 500    mvne    (pr),(ic),(pr)\r
+012023  aa  6 01734 01 0010    desc9ls pr6|988,8,0\r
+012024  aa   000104 00 0006    desc9a  68,6            012126 = 403040022146\r
+012025  aa  6 01730 00 0012    desc9a  pr6|984,10\r
+012026  aa  6 00564 3715 20    epp5    pr6|372,*\r
+012027  aa  5 00004 3535 20    epp3    pr5|4,*\r
+012030  aa  6 01727 2361 00    ldq     pr6|983\r
+012031  aa  040 140 100 500    mlr     (pr),(pr,rl),fill(040)\r
+012032  aa  6 01730 00 0012    desc9a  pr6|984,10\r
+012033  aa  3 00000 00 0006    desc9a  pr3|0,ql                xeq_tree_used\r
+                                               STATEMENT 1 ON LINE 1475\r
+       n = count_components (pl1_stat_$xeq_tree_area_ptr);\r
+\r
+012034  la  4 00420 3521 20    epp2    pr4|272,*               pl1_stat_$xeq_tree_area_ptr\r
+012035  aa  6 01740 2521 00    spri2   pr6|992\r
+012036  aa  6 00570 3521 00    epp2    pr6|376         n\r
+012037  aa  6 01742 2521 00    spri2   pr6|994\r
+012040  aa  6 01736 3521 00    epp2    pr6|990\r
+012041  aa   010000 4310 07    fld     4096,dl\r
+012042  aa  2 00000 7571 00    staq    pr2|0\r
+012043  aa   000033 6700 04    tsp4    27,ic           012076\r
+                                               STATEMENT 1 ON LINE 1476\r
+       if n > 1\r
+       then substr (xeq_tree_used, 1, 3) = "(" || convert (digit_pic, n) || ")";\r
+\r
+012044  aa  6 00570 2361 00    ldq     pr6|376         n\r
+012045  aa   000001 1160 07    cmpq    1,dl\r
+012046  aa   000025 6044 04    tmoz    21,ic           012073\r
+012047  aa  000 100 301 500    btd     (pr),(pr)\r
+012050  aa  6 00570 00 0004    desc9a  pr6|376,4               n\r
+012051  aa  6 01733 01 0002    desc9ls pr6|987,2,0\r
+012052  aa  6 01747 4501 00    stz     pr6|999\r
+012053  aa  100 004 024 500    mvne    (pr),(ic),(pr)\r
+012054  aa  6 01733 01 0002    desc9ls pr6|987,2,0\r
+012055  aa   000473 00 0002    desc9a  315,2           012546 = 070321000000\r
+012056  aa  6 01747 00 0001    desc9a  pr6|999,1\r
+012057  aa  6 01747 2351 00    lda     pr6|999\r
+012060  aa   000011 7710 00    arl     9\r
+012061  aa   050000 2750 03    ora     20480,du\r
+012062  aa  6 01733 7551 00    sta     pr6|987\r
+012063  aa   051000 2350 07    lda     20992,dl\r
+012064  aa  6 01733 2751 00    ora     pr6|987\r
+012065  aa  6 00056 7551 00    sta     pr6|46\r
+012066  aa  6 00564 3735 20    epp7    pr6|372,*\r
+012067  aa  7 00004 3715 20    epp5    pr7|4,*\r
+012070  aa  040 100 100 500    mlr     (pr),(pr),fill(040)\r
+012071  aa  6 00056 00 0003    desc9a  pr6|46,3\r
+012072  aa  5 00000 00 0003    desc9a  pr5|0,3         xeq_tree_used\r
+                                               STATEMENT 1 ON LINE 1479\r
+       number_free_segs = number_free_segs + n;\r
+\r
+012073  aa  6 00044 3701 20    epp4    pr6|36,*\r
+012074  ia  4 00066 0561 00    asq     pr4|54          number_free_segs\r
+                                               STATEMENT 1 ON LINE 1481\r
+       return;\r
+\r
+012075  aa  6 00562 6101 00    rtcd    pr6|370\r
+                                               STATEMENT 1 ON LINE 1499\r
+     end set_storage_usage;\r
+\r
+BEGIN PROCEDURE count_components\r
+ENTRY TO count_components                                   STATEMENT 1 ON LINE 1483\r
+count_components:\r
+     procedure (areap) returns (fixed bin);\r
+\r
+012076  aa  6 00572 6501 00    spri4   pr6|378\r
+012077  aa  6 00574 2521 00    spri2   pr6|380\r
+                                               STATEMENT 1 ON LINE 1491\r
+       i = 0;\r
+\r
+012100  aa  6 00602 4501 00    stz     pr6|386         i\r
+                                               STATEMENT 1 ON LINE 1492\r
+       do p = areap repeat addrel (p, p -> area_header.extend_info) -> extend_block.next_area while (p ^= null);\r
+\r
+012101  aa  2 00002 3735 20    epp7    pr2|2,*         areap\r
+012102  aa  7 00000 3735 20    epp7    pr7|0,*         areap\r
+012103  aa  6 00600 6535 00    spri7   pr6|384         p\r
+012104  aa  6 00600 2371 00    ldaq    pr6|384         p\r
+012105  aa   766275 6770 04    eraq    -4931,ic                000402 = 077777000043 000001000000\r
+012106  aa  0 00460 3771 00    anaq    pr0|304         = 077777000077 777777077077\r
+012107  aa   000012 6000 04    tze     10,ic           012121\r
+                                               STATEMENT 1 ON LINE 1493\r
+            i = i + 1;\r
+\r
+012110  aa  6 00602 0541 00    aos     pr6|386         i\r
+                                               STATEMENT 1 ON LINE 1494\r
+       end;\r
+\r
+012111  aa  6 00600 3735 20    epp7    pr6|384,*               p\r
+012112  aa  7 00026 2351 00    lda     pr7|22          area_header.extend_info\r
+012113  aa  0 00044 3771 00    anaq    pr0|36          = 777777000000 000000000000\r
+012114  aa  7 00000 3521 01    epp2    pr7|0,au\r
+012115  aa   000000 0520 03    adwp2   0,du\r
+012116  aa  2 00001 7651 00    lprp5   pr2|1           extend_block.next_area\r
+012117  aa  6 00600 6515 00    spri5   pr6|384         p\r
+012120  aa   777764 7100 04    tra     -12,ic          012104\r
+                                               STATEMENT 1 ON LINE 1496\r
+       return (i);\r
+\r
+012121  aa  6 00602 2361 00    ldq     pr6|386         i\r
+012122  aa  6 00574 3735 20    epp7    pr6|380,*\r
+012123  aa  7 00004 7561 20    stq     pr7|4,*\r
+012124  aa  6 00572 6101 00    rtcd    pr6|378\r
+                                               STATEMENT 1 ON LINE 1497\r
+     end count_components;\r
+\r
+  END PROCEDURE count_components\r
+  END PROCEDURE set_storage_usage\r
+  END PROCEDURE pl1\r