/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 7:38:42 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: Debugger, module: Debugger */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3499976263,2964544699] Debugger";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {word f0, f1, f2, f3, f4;} W5;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q1296();
static void Debugger←P0();
static void Raise←P60();
static void RegisterSignalExplainer←P120();
static void RegisterErrorExplainer←P180();
static word Ropeize←P240();
static word Explain←P300();
static word Protect←P360();
static word NoName←Q1356();
static void IJustToldTheUser←P420();
static word LastMessage←P480();
static void SystemPutRope←P540();
static word NoName←Q1416();
static void MyUncaughtHandler←P600();
static void Debug←P660();
static void ExitThread←P720();
static void RegisterInterest←P780();
static void DoProcs←P840();
static void Init←P900();
static void NoName←Q1476();
static void NoName←Q1536();
static struct {unsigned f; char r[44];} string1 = {2752556, "\260\006\005\146\151\162\163\164\257\300\320\235\146\107\300\260\263\134\273\100\244\005\004\162\145\163\164\214\257\300\320\235\146\107\300\260\263\134\273\100\244\261\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\014\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string4 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[44];} string5 = {2752556, "\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261\000"};
static struct {unsigned f; char r[16];} string6 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string7 = {65537, "\001\000\000"};
static struct {unsigned f; char r[44];} string8 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"};
static struct {unsigned f; char r[44];} string9 = {2752556, "\260\006\005\146\151\162\163\164\257\300\320\235\146\107\300\260\263\134\273\101\174\005\004\162\145\163\164\214\257\300\320\235\146\107\300\260\263\134\273\101\174\261\000"};
static struct {unsigned f; char r[4];} string10 = {65540, "\012\000\000"};
static struct {unsigned f; char r[24];} string11 = {1376280, "\012*** Uncaught error: \000\000"};
static struct {unsigned f; char r[8];} string12 = {327688, " ... \000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "unknown error\000\000"};
static struct {unsigned f; char r[8];} string14 = {458760, "Aborted"};
static struct {unsigned f; char r[16];} string15 = {983056, "ArithmeticFault"};
static struct {unsigned f; char r[24];} string16 = {1507352, "AssignRefCompositeFault"};
static struct {unsigned f; char r[12];} string17 = {720908, "BoundsFault"};
static struct {unsigned f; char r[12];} string18 = {720908, "DivideCheck"};
static struct {unsigned f; char r[16];} string19 = {786448, "LinkageFault\000\000\000"};
static struct {unsigned f; char r[12];} string20 = {720908, "NarrowFault"};
static struct {unsigned f; char r[16];} string21 = {917520, "NarrowRefFault\000"};
static struct {unsigned f; char r[16];} string22 = {983056, "NestedProcFault"};
static struct {unsigned f; char r[12];} string23 = {524300, "NilFault\000\000\000"};
static struct {unsigned f; char r[12];} string24 = {720908, "ResumeFault"};
static struct {unsigned f; char r[12];} string25 = {655372, "StackFault\000"};
static struct {unsigned f; char r[12];} string26 = {655372, "StartFault\000"};
static struct {unsigned f; char r[12];} string27 = {524300, "Uncaught\000\000\000"};
static struct {unsigned f; char r[16];} string28 = {786448, "UnnamedError\000\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "UnnamedSignal\000\000"};
static struct {unsigned f; char r[8];} string30 = {393224, "Unwind\000"};
static struct {unsigned f; char r[12];} string31 = {720908, "UnwindFault"};
static struct {unsigned f; char r[12];} string32 = {720908, "ZeroDivisor"};
static struct {unsigned f; char r[24];} string33 = {1376280, "UnboundProcedureFault\000\000"};
static struct {unsigned f; char r[8];} string34 = {458760, "SendMsg"};
static struct {unsigned f; char r[16];} string35 = {786448, "NILNotAnAtom\000\000\000"};
static struct {unsigned f; char r[8];} string36 = {393224, "NoRope\000"};
static struct {unsigned f; char r[20];} string37 = {1114132, "Rope.VerifyFailed\000\000"};
static struct {unsigned f; char r[16];} string38 = {983056, "VM.AddressFault"};
static struct {unsigned f; char r[24];} string39 = {1310744, "VM.WriteProtectFault\000\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\320\235\146\107\300\260\263\134\273\100\164\000\000"};
static struct {unsigned f; char r[16];} string41 = {983055, "\006\004\040\001\044\001\050\001\100\124\010\000\004\036\001"};
static struct {unsigned f; char r[16];} string42 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string43 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string44 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\100\150\000\000"};
static struct {unsigned f; char r[16];} string45 = {851984, "\257\300\354\241\072\167\300\017\164\046\072\100\164\000\000"};
static struct {unsigned f; char r[16];} string46 = {851984, "\257\300\064\321\106\155\300\242\071\325\060\100\150\000\000"};
static struct {unsigned f; char r[16];} string47 = {851984, "\257\300\157\214\342\324\300\007\066\364\175\100\150\000\000"};
static struct {unsigned f; char r[16];} string48 = {851984, "\257\300\026\363\211\166\300\367\350\116\364\100\150\000\000"};
static struct {
   word f0[51]; word f51; word f52; word f53; 
   word f54; word f55; word f56; word f57; 
   word f58; word f59; word f60; word f61; 
   word f62; word f63; word f64; word f65; 
   word f66; word f67; word f68; word f69; 
   word f70; word f71; word f72; word f73; 
   word f74; word f75; word f76; word f77; 
   word f78; word f79; word f80; word f81; 
   word f82[6]; 
   } globalframe = {
   {0}, (word) Init←P900, 0, (word) DoProcs←P840, 
   0, (word) RegisterInterest←P780, 0, (word) ExitThread←P720, 
   0, (word) Debug←P660, 0, (word) MyUncaughtHandler←P600, 
   0, (word) SystemPutRope←P540, 0, (word) LastMessage←P480, 
   0, (word) IJustToldTheUser←P420, 0, (word) Protect←P360, 
   0, (word) Explain←P300, 0, (word) Ropeize←P240, 
   0, (word) RegisterErrorExplainer←P180, 0, (word) RegisterSignalExplainer←P120, 
   0, (word) Raise←P60, 0, (word) Debugger←P0, 
   {0}
   };

static void NoName←Q1296()
   {
   register ptr gf←c087 =  (ptr) &globalframe;
   word var←c14484;
   (* (( (ptr) gf←c087)+13) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c087)+15) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c087)+16) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c087)+17) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c087)+18) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string7);
   (* (( (ptr) gf←c087)+20) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c087)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+17) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c087)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+17) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c087)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+17) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c087)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+17) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c087)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c087)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c087)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c087)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c087)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c087)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c087)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c087)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c087)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c087)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c087)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c087)+144) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c087)+148) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c087)+152) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c087)+156) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c087)+160) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string29);
   (*  (ptr) (( (bPt) gf←c087)+164) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string30);
   (*  (ptr) (( (bPt) gf←c087)+168) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string31);
   (*  (ptr) (( (bPt) gf←c087)+172) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string32);
   (*  (ptr) (( (bPt) gf←c087)+176) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string33);
   (*  (ptr) (( (bPt) gf←c087)+180) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string34);
   (*  (ptr) (( (bPt) gf←c087)+184) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string35);
   (*  (ptr) (( (bPt) gf←c087)+188) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string36);
   (*  (ptr) (( (bPt) gf←c087)+192) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string37);
   (*  (ptr) (( (bPt) gf←c087)+196) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string38);
   (*  (ptr) (( (bPt) gf←c087)+200) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c087)+18) ), (word) &string39);
   (void) XR←DeclareGlobalFrame((word) "Debugger", &globalframe, (word) XR←GetTypeIndex((word) &string40, 0, (word) &string41)
      , (word) (( (bPt) gf←c087)+324)/* var←c14004 */ );
   var←c14484 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string42)), 16);
   (* (( (ptr) gf←c087)+85)/* var←c14420 */  ) = var←c14484;
   var←c14484 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string43)), 43);
   (* (( (ptr) gf←c087)+83)/* var←c14164 */  ) = var←c14484;
   (void) XR←ImportProcS(var←c14484, 68419845);
   (void) XR←ImportProcS(var←c14484, 68160516);
   (void) XR←ImportProcS(var←c14484, 67896323);
   (void) XR←ImportProcS(var←c14484, 67634434);
   (void) XR←ImportProcS(var←c14484, 67373569);
   (void) XR←ImportProcS(var←c14484, 67903235);
   var←c14484 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string44)), 27);
   (* (( (ptr) gf←c087)+84)/* var←c14228 */  ) = var←c14484;
   (void) XR←ImportProcS(var←c14484, 67377153);
   var←c14484 = (word) XR←ImportInterface((word) "VM", (word) XR←GetTypeIndexS((word) (&string45)), 19);
   (* (( (ptr) gf←c087)+86)/* var←c14452 */  ) = var←c14484;
   var←c14484 = (word) XR←ExportInterface((word) "PreDebug", (word) XR←GetTypeIndexS((word) (&string46)), 5);
   (* (( (ptr) gf←c087)+87)/* var←c14516 */  ) = var←c14484;
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+308)/* var←c13940 */ , 786435);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+300)/* var←c13908 */ , 786691);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+316)/* var←c13972 */ , 524802);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+276)/* var←c13812 */ , 67633922);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+284)/* var←c13844 */ , 67634178);
   var←c14484 = (word) XR←ExportInterface((word) "DebuggerFixup", (word) XR←GetTypeIndexS((word) (&string47)), 1);
   (* (( (ptr) gf←c087)+87)/* var←c14516 */  ) = var←c14484;
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+220)/* var←c13588 */ , 786435);
   var←c14484 = (word) XR←ExportInterface((word) "PreDebugPrivate", (word) XR←GetTypeIndexS((word) (&string48)), 5);
   (* (( (ptr) gf←c087)+87)/* var←c14516 */  ) = var←c14484;
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+268)/* var←c13780 */ , 262145);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+260)/* var←c13748 */ , 67109120);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+252)/* var←c13716 */ , 262657);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+236)/* var←c13652 */ , 768);
   (void) XR←ExportProcS(var←c14484, (word) (( (bPt) gf←c087)+228)/* var←c13620 */ , 1024);
   }

static void Debugger←P0(formal←c032, formal←c031)
   word formal←c032;
   word formal←c031;
   {
   /* Debugger: */ 
SOURCE(83, 5396)
SOURCE(5473, 6)
   (void) Init←P900();
   }

static void Raise←P60(signalOrError←v3528, args←v3556)
   word signalOrError←v3528;
   word args←v3556;
   {
   /* Raise: */ 
SOURCE(328, 99)
SOURCE(390, 37)
   (void) XR←RaiseSignal(signalOrError←v3528, 0, args←v3556);
   }

static void RegisterSignalExplainer←P120(signal←v3828, explain←v3856, data←v3884)
   word signal←v3828;
   word explain←v3856;
   word data←v3884;
   {
   register ptr gf←c14548 =  (ptr) &globalframe;
   /* RegisterSignalExplainer: */ 
SOURCE(542, 160)
SOURCE(643, 59)
   {
      word var←c14036;
      var←c14036 = XR←NewObject(16, (* (( (ptr) gf←c14548)+13) ));
      (*  (ptr) var←c14036 ) = signal←v3828;
      (* (( (ptr) var←c14036)+1) ) = XR←CheckProc(explain←v3856);
      (* (( (ptr) var←c14036)+2) ) = data←v3884;
      (* (( (ptr) var←c14036)+3) ) = (* (( (ptr) gf←c14548)+8)/* registration←v2776 */  );
      (* (( (ptr) gf←c14548)+8)/* registration←v2776 */  ) = var←c14036;
      };
   }

static void RegisterErrorExplainer←P180(error←v3956, explain←v3984, data←v4012)
   word error←v3956;
   word explain←v3984;
   word data←v4012;
   {
   /* RegisterErrorExplainer: */ 
SOURCE(706, 154)
SOURCE(805, 55)
   (void) RegisterSignalExplainer←P120(error←v3956, explain←v3984, data←v4012);
   }

static word Ropeize←P240(x←v4084)
   word x←v4084;
   {
   register ptr gf←c14580 =  (ptr) &globalframe;
   word var←c4140;
   /* Ropeize: */ 
SOURCE(866, 165)
SOURCE(913, 118)
   {
      word var←c14068;
      word var←c14100;
      var←c14068 = x←v4084;
      if ((var←c14068 == 0)) {
         goto lab←L100000;
         };
      var←c14100 = XR←GetReferentType(var←c14068);
      {
         word tc49;
         if (((* (( (ptr) gf←c14580)+15) ) == var←c14100)) {
            tc49 =  (word) ((*(int*)var←c14068<0) == 0);
            }
         else {
            tc49 =  (word) 0;
            };
         if (tc49) {
            {
               word r←v5248;
               r←v5248 = var←c14068;
SOURCE(949, 10)
               return(r←v5248);
               };
            }
         else {
            if (((* (( (ptr) gf←c14580)+16) ) == var←c14100)) {
               {
                  word rt←v5292;
                  rt←v5292 = var←c14068;
SOURCE(977, 29)
                  {
                     word pd50;
                     pd50 = (* (( (ptr) (* (( (ptr) gf←c14580)+83)/* var←c14164 */  ))+35) );
                     return((word) ( *( (fPt) ((*  (ptr) pd50 ))))(rt←v5292, 0, 32767, pd50));
                     };
                  };
               }
            else {
               lab←L100000: ;
SOURCE(1019, 12)
               return(0);
               };
            };
         };
      };
   }

static word Explain←P300(signalOrError←v4200, args←v4228)
   word signalOrError←v4200;
   word args←v4228;
   {
   register ptr gf←c14612 =  (ptr) &globalframe;
   word var←c4284;
   word registerData←v5348 = 0;
   /* Explain: */ 
SOURCE(1037, 452)
SOURCE(1152, 223)
   {
      register word l←v5392;
      l←v5392 = (* (( (ptr) gf←c14612)+8)/* registration←v2776 */  );
      lab←L100004: ;
      if ((l←v5392 != 0)) {
         }
      else {
         goto lab←L100001;
         };
SOURCE(1212, 163)
      if (((*  (ptr) l←v5392 ) == signalOrError←v4200)) {
SOURCE(1251, 86)
         if (((* (( (ptr) l←v5392)+1) ) != 0)) {
SOURCE(1279, 58)
            {
               word pd51;
               pd51 = (* (( (ptr) l←v5392)+1) );
               return((word) ( *( (fPt) ((*  (ptr) pd51 ))))(signalOrError←v4200, args←v4228, (* (( (ptr) l←v5392)+2) ), pd51));
               };
            };
SOURCE(1339, 36)
         registerData←v5348 = (word) Ropeize←P240((* ((( (ptr) l←v5392)+2)) ));
SOURCE(1377, 5)
         goto lab←L100002;
         };
      l←v5392 = (* (( (ptr) l←v5392)+3) );
      goto lab←L100004;
      lab←L100001: ;
      lab←L100002: ;
      };
   if ((registerData←v5348 != 0)) {
SOURCE(1431, 21)
      return(registerData←v5348);
      }
   else {
SOURCE(1465, 24)
      return((* (( (ptr) gf←c14612)+24) ));
      };
   }

static word Protect←P360(formal←c0109, formal←c0110)
   word formal←c0109;
   word formal←c0110;
   {
   W7 var←c14644;
   /* declaration of inner←v4344 skipped */ 
   /* declaration of rejectP←v4372 skipped */ 
   /* declaration of ok←v4536 skipped */ 
   var←c14644.f4/* inner←v4344 */  = formal←c0109;
   var←c14644.f5/* rejectP←v4372 */  = formal←c0110;
   /* Protect: */ 
SOURCE(1494, 279)
SOURCE(1494, 279)
   var←c14644.f6/* ok←v4536 */  = 1;
SOURCE(1601, 172)
SOURCE(1601, 172)
   {
      word var←c01;
      {
         word var←c0103;
         var←c0103 = (word) &var←c14644;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1356) ), ( ((word)  (fPt) NoName←Q1536) ), var←c0103);
         };
      /* removed trivial cond node */ 
      };
SOURCE(1494, 279)
   return(var←c14644.f6/* ok←v4536 */ );
   }

static word NoName←Q1356(formal←c091)
   word formal←c091;
   {
SOURCE(1601, 172)
   {
      word pd52;
      pd52 = (* (( (ptr) formal←c091)+4) );
      (void) ( *( (fPt) ((*  (ptr) pd52 ))))(pd52);
      };
   return(0);
   }

static void IJustToldTheUser←P420(msg←v4596)
   word msg←v4596;
   {
   register ptr gf←c14676 =  (ptr) &globalframe;
   /* IJustToldTheUser: */ 
SOURCE(1824, 69)
SOURCE(1875, 18)
   (* (( (ptr) gf←c14676)+9)/* lastMessage←v2972 */  ) = msg←v4596;
   }

static word LastMessage←P480()
   {
   register ptr gf←c14708 =  (ptr) &globalframe;
   word var←c4656;
   /* LastMessage: */ 
SOURCE(1897, 73)
SOURCE(1949, 21)
   return((* (( (ptr) gf←c14708)+9)/* lastMessage←v2972 */  ));
   }

static void SystemPutRope←P540(formal←c0111)
   word formal←c0111;
   {
   W5 var←c14740;
   /* declaration of r←v4716 skipped */ 
   register ptr gf←c14772 =  (ptr) &globalframe;
   var←c14740.f4/* r←v4716 */  = formal←c0111;
   /* SystemPutRope: */ 
SOURCE(1973, 226)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c14772)+16)/* LOCK←v2692 */ ));
SOURCE(2025, 174)
   {
      word var←c0104;
      var←c0104 = (word) &var←c14740;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q1416) ), ( ((word)  (fPt) NoName←Q1476) ), var←c0104);
      };
SOURCE(1973, 226)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c14772)+16)/* LOCK←v2692 */ ));
   return;
   }

static word NoName←Q1416(formal←c096)
   word formal←c096;
   {
   register ptr gf←c095 =  (ptr) &globalframe;
SOURCE(2048, 15)
SOURCE(2129, 70)
   {
      register word i←v5668 = 0;
      register word noName←c14260;
      {
         word pd53;
         pd53 = (* (( (ptr) (* (( (ptr) gf←c095)+83)/* var←c14164 */  ))+14) );
         noName←c14260 = (word) ( *( (fPt) ((*  (ptr) pd53 ))))((* ((( (ptr) formal←c096)+4)) ), pd53);
         };
      if (( (int)i←v5668 >=  (int)noName←c14260)) {
         goto lab←L100011;
         };
      lab←L100014: ;
SOURCE(2166, 33)
      {
         word var←c14292;
         {
            word pd54;
            pd54 = (* (( (ptr) (* (( (ptr) gf←c095)+83)/* var←c14164 */  ))+9) );
            var←c14292 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) formal←c096)+4) ), i←v5668, pd54);
            };
         (void) XR←DebugPutChar(var←c14292);
         };
      i←v5668 = (i←v5668 + 1);
      if (( (int)i←v5668 <  (int)noName←c14260)) {
         goto lab←L100014;
         };
      lab←L100011: ;
      };
   return(0);
   }

static void MyUncaughtHandler←P600(msg←v6952, signal←v6980, frame←v7008)
   word msg←v6952;
   word signal←v6980;
   word frame←v7008;
   {
   register ptr gf←c14804 =  (ptr) &globalframe;
   word explanation←v5712 = 0;
   word var←c14324;
   /* MyUncaughtHandler: */ 
SOURCE(2204, 432)
SOURCE(2272, 44)
   explanation←v5712 = (word) Explain←P300(signal←v6980, msg←v6952);
SOURCE(2318, 152)
   {
      word tc55;
      word pd56;
      word pd57;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c14804)+83)/* var←c14164 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd56 ))))(explanation←v5712, pd56) >  (int)50)) {
         var←c14324 = (word) LastMessage←P480();
         pd57 = (* (( (ptr) (* (( (ptr) gf←c14804)+83)/* var←c14164 */  ))+8) );
         tc55 =  (word) (0 != (word) ( *( (fPt) ((*  (ptr) pd57 ))))(explanation←v5712, var←c14324, 1, pd57));
         }
      else {
         tc55 =  (word) 0;
         };
      if (tc55) {
SOURCE(2399, 71)
         {
            word pd58;
            pd58 = (* (( (ptr) (* (( (ptr) gf←c14804)+83)/* var←c14164 */  ))+16) );
            explanation←v5712 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))(explanation←v5712, 40, 2147483647, (* (( (ptr) gf←c14804)+23) ), pd58)
            ;
            };
         };
      };
SOURCE(2476, 68)
   {
      word var←c14356;
      {
         word pd59;
         pd59 = (* (( (ptr) (* (( (ptr) gf←c14804)+83)/* var←c14164 */  ))+5) );
         var←c14356 = (word) ( *( (fPt) ((*  (ptr) pd59 ))))((* (( (ptr) gf←c14804)+22) ), explanation←v5712, (* (( (ptr) gf←c14804)+21)
             ), 0, 0, pd59);
         };
      (void) SystemPutRope←P540(var←c14356);
      };
SOURCE(2546, 73)
   if ((signal←v6980 != (* (( (ptr) (* (( (ptr) gf←c14804)+84)/* var←c14228 */  ))+4) ))) {
SOURCE(2597, 7)
      (void) Debug←P660();
SOURCE(2606, 13)
      (void) XR←RaiseError(XR←Aborted, 0);
      };
SOURCE(2624, 12)
   (void) ExitThread←P720();
   }

static void Debug←P660()
   {
   /* Debug: */ 
SOURCE(2642, 142)
SOURCE(2736, 14)
   (void) DoProcs←P840(0);
SOURCE(2752, 17)
   (void) XR←CallDebugger();
SOURCE(2771, 13)
   (void) DoProcs←P840(1);
   }

static void ExitThread←P720()
   {
   /* ExitThread: */ 
SOURCE(2790, 84)
SOURCE(2867, 7)
   (void) XR←Exit();
   }

static void RegisterInterest←P780(startDebugging←v4808, stopDebugging←v4836, data←v4864)
   word startDebugging←v4808;
   word stopDebugging←v4836;
   word data←v4864;
   {
   register ptr gf←c14836 =  (ptr) &globalframe;
   /* RegisterInterest: */ 
SOURCE(2878, 178)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c14836)+16)/* LOCK←v2692 */ ));
SOURCE(2989, 67)
   {
      word var←c14388;
      var←c14388 = XR←NewObject(16, (* (( (ptr) gf←c14836)+20) ));
      (*  (ptr) var←c14388 ) = XR←CheckProc(startDebugging←v4808);
      (* (( (ptr) var←c14388)+1) ) = XR←CheckProc(stopDebugging←v4836);
      (* (( (ptr) var←c14388)+2) ) = data←v4864;
      (* (( (ptr) var←c14388)+3) ) = (* (( (ptr) gf←c14836)+10)/* interests←v3224 */  );
      (* (( (ptr) gf←c14836)+10)/* interests←v3224 */  ) = var←c14388;
      };
SOURCE(2878, 178)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c14836)+16)/* LOCK←v2692 */ ));
   return;
   }

static void DoProcs←P840(action←v4936)
   word action←v4936;
   {
   register ptr gf←c14868 =  (ptr) &globalframe;
   /* DoProcs: */ 
SOURCE(3062, 191)
SOURCE(3104, 149)
   {
      register word l←v5876;
      l←v5876 = (* (( (ptr) gf←c14868)+10)/* interests←v3224 */  );
      lab←L100018: ;
      if ((l←v5876 != 0)) {
         }
      else {
         goto lab←L100015;
         };
SOURCE(3165, 88)
      if ((action←v4936 == 0)) {
SOURCE(3186, 33)
         {
            word pd60;
            pd60 = (*  (ptr) l←v5876 );
            (void) ( *( (fPt) ((*  (ptr) pd60 ))))((* ((( (ptr) l←v5876)+2)) ), pd60);
            };
         }
      else {
SOURCE(3219, 34)
         {
            word pd61;
            pd61 = (* (( (ptr) l←v5876)+1) );
            (void) ( *( (fPt) ((*  (ptr) pd61 ))))((* ((( (ptr) l←v5876)+2)) ), pd61);
            };
         };
      l←v5876 = (* (( (ptr) l←v5876)+3) );
      goto lab←L100018;
      lab←L100015: ;
      };
   }

static void Init←P900()
   {
   register ptr gf←c14900 =  (ptr) &globalframe;
   /* Init: */ 
SOURCE(3423, 2044)
SOURCE(3441, 60)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+4) ), 0, (* (( (ptr) gf←c14900)+25)
       ));
SOURCE(3503, 77)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+5) ), 0, (* (( (ptr) gf←c14900)+26)
       ));
SOURCE(3582, 76)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+6) ), 0, (* (( (ptr) gf←c14900)+26)
       ));
SOURCE(3660, 92)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+7) ), 0, (* (( (ptr) gf←c14900)+27)
       ));
SOURCE(3754, 68)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+8) ), 0, (* (( (ptr) gf←c14900)+28)
       ));
SOURCE(3824, 68)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+9) ), 0, (* (( (ptr) gf←c14900)+29)
       ));
SOURCE(3894, 70)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+10) ), 0, (* (( (ptr) gf←c14900)+30)
       ));
SOURCE(3966, 68)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+11) ), 0, (* (( (ptr) gf←c14900)+31)
       ));
SOURCE(4036, 74)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+12) ), 0, (* (( (ptr) gf←c14900)+32)
       ));
SOURCE(4112, 76)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+13) ), 0, (* (( (ptr) gf←c14900)+33)
       ));
SOURCE(4190, 62)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+14) ), 0, (* (( (ptr) gf←c14900)+34)
       ));
SOURCE(4254, 68)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+15) ), 0, (* (( (ptr) gf←c14900)+35)
       ));
SOURCE(4324, 66)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+18) ), 0, (* (( (ptr) gf←c14900)+36)
       ));
SOURCE(4392, 66)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+19) ), 0, (* (( (ptr) gf←c14900)+37)
       ));
SOURCE(4460, 62)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+21) ), 0, (* (( (ptr) gf←c14900)+38)
       ));
SOURCE(4524, 70)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+23) ), 0, (* (( (ptr) gf←c14900)+39)
       ));
SOURCE(4596, 72)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+24) ), 0, (* (( (ptr) gf←c14900)+40)
       ));
SOURCE(4670, 58)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+25) ), 0, (* (( (ptr) gf←c14900)+41)
       ));
SOURCE(4730, 68)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+26) ), 0, (* (( (ptr) gf←c14900)+42)
       ));
SOURCE(4800, 68)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+27) ), 0, (* (( (ptr) gf←c14900)+43)
       ));
SOURCE(4871, 89)
   (void) RegisterSignalExplainer←P120((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+20) ), 0, (* (( (ptr) gf←c14900)+44)
       ));
SOURCE(4962, 61)
   (void) RegisterSignalExplainer←P120((* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+17) ), 0, (* (( (ptr) gf←c14900)+45)
       ));
SOURCE(5026, 62)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+85)/* var←c14420 */  ))+19) ), 0, (* (( (ptr) gf←c14900)+46)
       ));
SOURCE(5091, 50)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+83)/* var←c14164 */  ))+4) ), 0, (* (( (ptr) gf←c14900)+47)
       ));
SOURCE(5143, 67)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+83)/* var←c14164 */  ))+45) ), 0, (* (( (ptr) gf←c14900)+48)
       ));
SOURCE(5213, 63)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+86)/* var←c14452 */  ))+9) ), 0, (* (( (ptr) gf←c14900)+49)
       ));
SOURCE(5278, 73)
   (void) RegisterErrorExplainer←P180((* (( (ptr) (* (( (ptr) gf←c14900)+86)/* var←c14452 */  ))+10) ), 0, (* (( (ptr) gf←c14900)+50)
       ));
SOURCE(5354, 113)
   if (((* (( (ptr) gf←c14900)+11)/* oldUncaughtHandler←v3280 */  ) == 0)) {
SOURCE(5385, 82)
      {
         word pd62;
         pd62 = (* (( (ptr) (* (( (ptr) gf←c14900)+84)/* var←c14228 */  ))+28) );
         (* (( (ptr) gf←c14900)+11)/* oldUncaughtHandler←v3280 */  ) = XR←CheckProc((word) ( *( (fPt) ((*  (ptr) pd62 ))))((word) ((
                  ( (bPt) gf←c14900)+244)/* var←c13684 */ ), pd62));
         };
      };
   }

static void NoName←Q1476(formal←c078, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c078;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0101 =  (ptr) &globalframe;
   if ((formal←c200005 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0101)+16)/* LOCK←v2692 */ ));
      };
   (*  (ptr) formal←c078 ) = 0;
   (* (( (ptr) formal←c078)+1) ) = 0;
   return;
   }

static void NoName←Q1536(formal←c086, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c086;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0102 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0102)+84)/* var←c14228 */  ))+22) ))) {
      {
         word signal←v10048;
         word parameters←v10076;
         signal←v10048 = (*  (ptr) formal←c200003 );
         parameters←v10076 = (* (( (ptr) formal←c200003)+1) );
SOURCE(1642, 143)
         {
            word explanation←v5520 = 0;
SOURCE(1668, 51)
            explanation←v5520 = (word) Explain←P300(signal←v10048, parameters←v10076);
SOURCE(1721, 52)
            {
               word pd63;
               pd63 = (* (( (ptr) formal←c200000)+5) );
               if ((0 != (word) ( *( (fPt) ((*  (ptr) pd63 ))))(explanation←v5520, pd63))) {
                  /* removed tail goto */ 
                  }
               else {
SOURCE(1763, 10)
                  (* (( (ptr) formal←c200000)+6) ) = 0;
SOURCE(1775, 8)
                  (*  (ptr) formal←c086 ) = 2;
                  (* (( (ptr) formal←c086)+1) ) = 2;
                  return;
                  };
               };
            };
         };
      };
   (*  (ptr) formal←c086 ) = 0;
   (* (( (ptr) formal←c086)+1) ) = 0;
   return;
   }

/* file: Debugger, module: Debugger, compiled at: February 21, 1992 7:38:42 pm PST */ 
extern void XR←install←Debugger() {
   NoName←Q1296();
   }
extern void XR←run←Debugger() { XR←Start(&globalframe); }