/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 30, 1993 4:18:18 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: XlDebug, module: XlDebug */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [455508239,2471946222] XlDebug";
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, f7;} W8;
typedef W8 *W8Pt;
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define NCK(p) ( (void) p)
static void NoName←Q672();
static void XlDebug←P0();
static void WriteDebugInfo←P60();
static void XlDebugBlock←P120();
static struct {unsigned f; char r[16];} string1 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[12];} string3 = {720908, "\205\210\242\000\117\237\210\241\000\100\377"};
static struct {unsigned f; char r[12];} string4 = {720908, "\254\205\210\242\000\037\210\241\000\100\377"};
static struct {unsigned f; char r[4];} string5 = {65540, "\242\000\000"};
static struct {unsigned f; char r[4];} string6 = {131076, "\216\251\000"};
static struct {unsigned f; char r[8];} string7 = {458760, "XlDebug"};
static struct {unsigned f; char r[12];} string8 = {524300, "XlDebug1\000\000\000"};
static struct {unsigned f; char r[32];} string9 = {1835040, "Block if famous error occurs\000\000\000"};
static struct {unsigned f; char r[12];} string10 = {524300, "XlDebug2\000\000\000"};
static struct {unsigned f; char r[16];} string11 = {786448, "XlDebugBlock\000\000\000"};
static struct {unsigned f; char r[12];} string12 = {524300, "XlDebug3\000\000\000"};
static struct {unsigned f; char r[36];} string13 = {2162724, "Write debug data for famous error\000\000"};
static struct {unsigned f; char r[32];} string14 = {1900576, "no unexpected replies so far\012\000\000"};
static struct {unsigned f; char r[24];} string15 = {1507352, "un-expected reply\012text:"};
static struct {unsigned f; char r[4];} string16 = {196612, " %g"};
static struct {unsigned f; char r[24];} string17 = {1310744, "\012sequencenumber %g \012\000\000\000"};
static struct {unsigned f; char r[28];} string18 = {1638428, "request codes:  %g %g %g\012\000\000"};
static struct {unsigned f; char r[12];} string19 = {589836, "XlDebugSP\000\000"};
static struct {unsigned f; char r[40];} string20 = {2359336, "Count of double replies so far: %g \012\000\000\000"};
static struct {unsigned f; char r[24];} string21 = {1441816, "SignalReplyNotExpected\000"};
static struct {unsigned f; char r[8];} string22 = {262152, "TRUE\000\000\000"};
static struct {unsigned f; char r[16];} string23 = {786448, "XlDebugWrite\000\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\033\046\201\017\300\223\126\347\356\100\164\000\000"};
static struct {unsigned f; char r[12];} string25 = {524296, "\006\001\064\010\000\004\021\001\000\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\373\225\000\071\300\362\156\307\320\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {
   word f0[30]; word f30; word f31; word f32; 
   word f33; word f34; word f35[4]; 
   } globalframe = {
   {0}, (word) XlDebugBlock←P120, 0, (word) WriteDebugInfo←P60, 
   0, (word) XlDebug←P0, {0}
   };

static void NoName←Q672()
   {
   register ptr gf←c049 =  (ptr) &globalframe;
   word var←c9576;
   (* (( (ptr) gf←c049)+5) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c049)+7) ) = (word) XR←GetTypeIndexS((word) (&string3));
   (* (( (ptr) gf←c049)+8) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c049)+9) ) = (word) XR←GetTypeIndexS((word) (&string5));
   (* (( (ptr) gf←c049)+11) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string2);
   (*  (ptr) (( (bPt) gf←c049)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string7);
   (*  (ptr) (( (bPt) gf←c049)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c049)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c049)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c049)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c049)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c049)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c049)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c049)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c049)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c049)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c049)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c049)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c049)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c049)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c049)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+11) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c049)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c049)+5) ), (word) &string23);
   (void) XR←DeclareGlobalFrame((word) "XlDebug", &globalframe, (word) XR←GetTypeIndex((word) &string24, 0, (word) &string25)
      , (word) (( (bPt) gf←c049)+136)/* var←c8840 */ );
   var←c9576 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string26)), 16);
   (* (( (ptr) gf←c049)+37)/* var←c8936 */  ) = var←c9576;
   (void) XR←ImportProcS(var←c9576, 788739);
   (void) XR←ImportProcS(var←c9576, 67634946);
   var←c9576 = (word) XR←ImportInterface((word) "Commander", (word) XR←GetTypeIndexS((word) (&string27)), 3);
   (* (( (ptr) gf←c049)+36)/* var←c8872 */  ) = var←c9576;
   (void) XR←ImportProcS(var←c9576, 1310725);
   var←c9576 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string28)), 103);
   (* (( (ptr) gf←c049)+38)/* var←c9064 */  ) = var←c9576;
   (void) XR←ImportProcS(var←c9576, 2111493);
   (void) XR←ImportProcS(var←c9576, 1063171);
   (void) XR←ImportProcS(var←c9576, 1071364);
   }

static void XlDebug←P0(formal←c011, formal←c010)
   word formal←c011;
   word formal←c010;
   {
   register ptr gf←c9608 =  (ptr) &globalframe;
   /* XlDebug: */ 
SOURCE(33, 1681)
SOURCE(1545, 87)
   {
      word pd29;
      pd29 = (* (( (ptr) (* (( (ptr) gf←c9608)+36)/* var←c8872 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd29 ))))((* (( (ptr) gf←c9608)+29) ), (word) (( (bPt) gf←c9608)+128)/* var←c8808 */ , (* (( (ptr) gf←c9608)+19)
          ), 0, 1, pd29);
      };
SOURCE(1634, 80)
   {
      word pd30;
      pd30 = (* (( (ptr) (* (( (ptr) gf←c9608)+36)/* var←c8872 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd30 ))))((* (( (ptr) gf←c9608)+17) ), (word) (( (bPt) gf←c9608)+120)/* var←c8776 */ , (* (( (ptr) gf←c9608)+15)
          ), 0, 1, pd30);
      };
   }

static void WriteDebugInfo←P60(formal←c044, cmd←v3848)
   word formal←c044;
   word cmd←v3848;
   {
   register ptr gf←c9640 =  (ptr) &globalframe;
   word result←v3892;
   word msg←v3920;
   word s←v2720;
   word cnt←v2748 = 0;
   word idx←v2776 = 0;
   word sequenceNumber←v2804 = 0;
   word fix←v2832;
   word da←v2860 = 0;
   /* WriteDebugInfo: */ 
SOURCE(213, 1226)
SOURCE(213, 1226)
   result←v3892 = 0;
SOURCE(213, 1226)
   msg←v3920 = 0;
SOURCE(255, 22)
   s←v2720 = (* (( (ptr) cmd←v3848)+1) );
SOURCE(314, 82)
   fix←v2832 = XR←NewObject(32, (* (( (ptr) gf←c9640)+8) ));
SOURCE(451, 86)
   {
      word var←c8968;
      {
         word pd31;
         pd31 = (* (( (ptr) (* (( (ptr) gf←c9640)+37)/* var←c8936 */  ))+11) );
         var←c8968 = (word) ( *( (fPt) ((*  (ptr) pd31 ))))((* (( (ptr) gf←c9640)+13) ), (* (( (ptr) gf←c9640)+14) ), pd31);
         };
      if ((var←c8968 == 0)) {
         goto lab←L100001;
         };
      if (((* (( (ptr) gf←c9640)+9) ) == XR←GetReferentType(var←c8968))) {
         {
            word ri←v3000;
            ri←v3000 = var←c8968;
SOURCE(517, 20)
            sequenceNumber←v2804 = (*  (ptr) ri←v3000 );
            };
         }
      else {
         lab←L100001: ;
         };
      };
SOURCE(554, 99)
   {
      word var←c9000;
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←c9640)+37)/* var←c8936 */  ))+11) );
         var←c9000 = (word) ( *( (fPt) ((*  (ptr) pd32 ))))((* (( (ptr) gf←c9640)+13) ), (* (( (ptr) gf←c9640)+16) ), pd32);
         };
      if ((var←c9000 == 0)) {
         goto lab←L100002;
         };
      if (((* (( (ptr) gf←c9640)+8) ) == XR←GetReferentType(var←c9000))) {
         {
            word x←v3056;
            x←v3056 = var←c9000;
SOURCE(644, 9)
            (*  (W8Pt) fix←v2832 ) = (*  (W8Pt) x←v3056 );
            };
         }
      else {
         lab←L100002: ;
         };
      };
SOURCE(670, 78)
   {
      word var←c9032;
      {
         word pd33;
         pd33 = (* (( (ptr) (* (( (ptr) gf←c9640)+37)/* var←c8936 */  ))+11) );
         var←c9032 = (word) ( *( (fPt) ((*  (ptr) pd33 ))))((* (( (ptr) gf←c9640)+13) ), (* (( (ptr) gf←c9640)+18) ), pd33);
         };
      if ((var←c9032 == 0)) {
         goto lab←L100003;
         };
      if (((* (( (ptr) gf←c9640)+7) ) == XR←GetReferentType(var←c9032))) {
         {
            word x←v3148;
            x←v3148 = var←c9032;
SOURCE(742, 6)
            da←v2860 = x←v3148;
            };
         }
      else {
         lab←L100003: ;
         };
      };
SOURCE(765, 58)
   idx←v2776 = (IOP2( % ,  (int)sequenceNumber←v2804,  (int)4000) + 8000);
SOURCE(877, 401)
   if ((da←v2860 == 0)) {
SOURCE(893, 53)
      {
         word pd34;
         pd34 = (* (( (ptr) (* (( (ptr) gf←c9640)+38)/* var←c9064 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd34 ))))(s←v2720, (* (( (ptr) gf←c9640)+20) ), 0, 2147483647, pd34);
         };
      }
   else {
SOURCE(949, 41)
      {
         word pd35;
         pd35 = (* (( (ptr) (* (( (ptr) gf←c9640)+38)/* var←c9064 */  ))+93) );
         (void) ( *( (fPt) ((*  (ptr) pd35 ))))(s←v2720, (* (( (ptr) gf←c9640)+21) ), 0, 2147483647, pd35);
         };
SOURCE(992, 67)
      {
         register word i←v3204 = 0;
         if (( (int)i←v3204 >  (int)31)) {
            goto lab←L100004;
            };
         lab←L100007: ;
SOURCE(1017, 42)
         {
            W2 var←c9096;
            {
               W2 var←c9128;
               word v←v8728;
               v←v8728 =  (unsigned) (word) (* (( (bPt) fix←v2832)+BCK(i←v3204, 32)) );
               var←c9128.f0 = 5;
               var←c9128.f1 = v←v8728;
               var←c9096 = var←c9128;
               };
            {
               word pd36;
               pd36 = (* (( (ptr) (* (( (ptr) gf←c9640)+38)/* var←c9064 */  ))+61) );
               (void) ( *( (fPt) ((*  (ptr) pd36 ))))(s←v2720, (* (( (ptr) gf←c9640)+22) ), var←c9096, pd36);
               };
            };
         if (( (int)i←v3204 >=  (int)31)) {
            goto lab←L100004;
            };
         i←v3204 = (i←v3204 + 1);
         goto lab←L100007;
         lab←L100004: ;
         };
SOURCE(1061, 61)
      {
         W2 var←c9192;
         var←c9192.f0 = 5;
         var←c9192.f1 = sequenceNumber←v2804;
         {
            word pd37;
            pd37 = (* (( (ptr) (* (( (ptr) gf←c9640)+38)/* var←c9064 */  ))+61) );
            (void) ( *( (fPt) ((*  (ptr) pd37 ))))(s←v2720, (* (( (ptr) gf←c9640)+23) ), var←c9192, pd37);
            };
         };
SOURCE(1124, 154)
      {
         W2 var←c9224;
         W2 var←c9320;
         W2 var←c9416;
         {
            W2 var←c9256;
            word v←v8680;
            {
               word idx38;
               v←v8680 = (* (( (ptr) (
                     NCK((*  (bPt) da←v2860 )),
                     da←v2860
                     ))+(
                     idx38 = (word) IOP2( % ,  (int)(idx←v2776 - 1),  (int)4000),
                     BCK(idx38, 4000)
                     )) );
               };
            var←c9256.f0 = 5;
            var←c9256.f1 = v←v8680;
            var←c9224 = var←c9256;
            };
         {
            W2 var←c9352;
            word v←v8632;
            {
               word idx39;
               v←v8632 = (* (( (ptr) (
                     NCK((*  (bPt) da←v2860 )),
                     da←v2860
                     ))+(
                     idx39 = (word) IOP2( % ,  (int)idx←v2776,  (int)4000),
                     BCK(idx39, 4000)
                     )) );
               };
            var←c9352.f0 = 5;
            var←c9352.f1 = v←v8632;
            var←c9320 = var←c9352;
            };
         {
            W2 var←c9448;
            word v←v8584;
            {
               word idx40;
               v←v8584 = (* (( (ptr) (
                     NCK((*  (bPt) da←v2860 )),
                     da←v2860
                     ))+(
                     idx40 = (word) IOP2( % ,  (int)(idx←v2776 + 1),  (int)4000),
                     BCK(idx40, 4000)
                     )) );
               };
            var←c9448.f0 = 5;
            var←c9448.f1 = v←v8584;
            var←c9416 = var←c9448;
            };
         {
            word pd41;
            pd41 = (* (( (ptr) (* (( (ptr) gf←c9640)+38)/* var←c9064 */  ))+60) );
            (void) ( *( (fPt) ((*  (ptr) pd41 ))))(s←v2720, (* (( (ptr) gf←c9640)+24) ), var←c9224, var←c9320, var←c9416, pd41);
            };
         };
      };
SOURCE(1281, 76)
   {
      word var←c9512;
      {
         word pd42;
         pd42 = (* (( (ptr) (* (( (ptr) gf←c9640)+37)/* var←c8936 */  ))+11) );
         var←c9512 = (word) ( *( (fPt) ((*  (ptr) pd42 ))))((* (( (ptr) gf←c9640)+13) ), (* (( (ptr) gf←c9640)+25) ), pd42);
         };
      if ((var←c9512 == 0)) {
         goto lab←L100012;
         };
      if (((* (( (ptr) gf←c9640)+9) ) == XR←GetReferentType(var←c9512))) {
         {
            word ri←v3248;
            ri←v3248 = var←c9512;
SOURCE(1348, 9)
            cnt←v2748 = (*  (ptr) ri←v3248 );
            };
         }
      else {
         lab←L100012: ;
         };
      };
SOURCE(1374, 65)
   {
      W2 var←c9544;
      var←c9544.f0 = 5;
      var←c9544.f1 = cnt←v2748;
      {
         word pd43;
         pd43 = (* (( (ptr) (* (( (ptr) gf←c9640)+38)/* var←c9064 */  ))+61) );
         (void) ( *( (fPt) ((*  (ptr) pd43 ))))(s←v2720, (* (( (ptr) gf←c9640)+26) ), var←c9544, pd43);
         };
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c044 ) = result←v3892;
   (* (( (ptr) formal←c044)+1) ) = msg←v3920;
   return;
   }

static void XlDebugBlock←P120(formal←c048, cmd←v3980)
   word formal←c048;
   word cmd←v3980;
   {
   register ptr gf←c9672 =  (ptr) &globalframe;
   word result←v4024;
   word msg←v4052;
   /* XlDebugBlock: */ 
SOURCE(1445, 94)
SOURCE(1445, 94)
   result←v4024 = 0;
SOURCE(1445, 94)
   msg←v4052 = 0;
SOURCE(1485, 54)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c9672)+37)/* var←c8936 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd44 ))))((* (( (ptr) gf←c9672)+13) ), (* (( (ptr) gf←c9672)+27) ), (* (( (ptr) gf←c9672)+28)
          ), pd44);
      };
   /* removed tail goto */ 
   (*  (ptr) formal←c048 ) = result←v4024;
   (* (( (ptr) formal←c048)+1) ) = msg←v4052;
   return;
   }

/* file: XlDebug, module: XlDebug, compiled at: September 30, 1993 4:18:18 pm PDT */ 
extern void XR←install←XlDebug() {
   NoName←Q672();
   }
extern void XR←run←XlDebug() { XR←Start(&globalframe); }