/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: August 19, 1992 3:34:30 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: XlCursorImpl, module: XlCursorImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1934699839,1748571266] XlCursorImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
#define SOURCE(p, l) /* source p, l */
static void NoName←Q408();
static void XlCursorImpl←P0();
static word GetConnectionData←P60();
static word InitConnection←P120();
static word StandardCursorFont←P180();
static word SharedStandardCursor←P240();
static word MutableStandardCursor←P300();
static struct {unsigned f; char r[4];} string1 = {65540, "\251\000\000"};
static struct {unsigned f; char r[4];} string2 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string3 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\101\144\000\000"};
static struct {unsigned f; char r[16];} string5 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\163\121\055\077\300\150\071\024\202\100\200\000\000"};
static struct {unsigned f; char r[4];} string7 = {131074, "\004\007\000"};
static struct {unsigned f; char r[16];} string8 = {786448, "XlCursorImpl\000\000\000"};
static struct {unsigned f; char r[8];} string9 = {393224, "cursor\000"};
static struct {unsigned f; char r[4];} string10 = {65540, "x\000\000"};
static struct {unsigned f; char r[16];} string11 = {983056, "immutableCursor"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300sQ-?\300h9\024\202@t\000\000"};
static struct {unsigned f; char r[12];} string13 = {655370, "\006\003 \001$\001@D\004\017\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\044\126\136\322\300\125\273\233\107\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\223\215\300\016\300\070\141\304\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\072\360\043\311\300\372\054\163\300\100\150\000\000"};
static struct {
   word f0[21]; word f21; word f22; word f23; 
   word f24; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32[5]; 
   } globalframe = {
   {0}, (word) MutableStandardCursor←P300, 0, (word) SharedStandardCursor←P240, 
   0, (word) StandardCursorFont←P180, 0, (word) InitConnection←P120, 
   0, (word) GetConnectionData←P60, 0, (word) XlCursorImpl←P0, 
   {0}
   };

static void NoName←Q408()
   {
   register ptr gf←c046 =  (ptr) &globalframe;
   word var←c9868;
   (* (( (ptr) gf←c046)+10) ) = (word) XR←GetTypeIndexS((word) (&string1));
   (* (( (ptr) gf←c046)+11) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
   (* (( (ptr) gf←c046)+12) ) = (word) XR←GetTypeIndexS((word) (&string4));
   (* (( (ptr) gf←c046)+13) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string3);
   (* (( (ptr) gf←c046)+14) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (*  (ptr) (( (bPt) gf←c046)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c046)+11) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c046)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c046)+13) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c046)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c046)+11) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c046)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c046)+11) ), (word) &string11);
   (void) XR←DeclareGlobalFrame((word) "XlCursorImpl", &globalframe, (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13)
      , (word) (( (bPt) gf←c046)+124)/* var←c9452 */ );
   var←c9868 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string14)), 218);
   (* (( (ptr) gf←c046)+33)/* var←c9548 */  ) = var←c9868;
   (void) XR←ImportProcS(var←c9868, 69228808);
   (void) XR←ImportProcS(var←c9868, 67919875);
   (void) XR←ImportProcS(var←c9868, 67901699);
   var←c9868 = (word) XR←ImportInterface((word) "XlPrivateResources", (word) XR←GetTypeIndexS((word) (&string15)), 9);
   (* (( (ptr) gf←c046)+35)/* var←c9740 */  ) = var←c9868;
   (void) XR←ImportProcS(var←c9868, 787971);
   var←c9868 = (word) XR←ImportInterface((word) "CardTab", (word) XR←GetTypeIndexS((word) (&string16)), 12);
   (* (( (ptr) gf←c046)+34)/* var←c9644 */  ) = var←c9868;
   (void) XR←ImportProcS(var←c9868, 67896579);
   (void) XR←ImportProcS(var←c9868, 134742786);
   (void) XR←ImportProcS(var←c9868, 67371265);
   var←c9868 = (word) XR←ExportInterface((word) "XlCursor", (word) XR←GetTypeIndexS((word) (&string17)), 3);
   (* (( (ptr) gf←c046)+36)/* var←c9900 */  ) = var←c9868;
   (void) XR←ExportProcS(var←c9868, (word) (( (bPt) gf←c046)+100)/* var←c9356 */ , 67371009);
   (void) XR←ExportProcS(var←c9868, (word) (( (bPt) gf←c046)+92)/* var←c9324 */ , 67633410);
   (void) XR←ExportProcS(var←c9868, (word) (( (bPt) gf←c046)+84)/* var←c9292 */ , 67633666);
   }

static void XlCursorImpl←P0(formal←c019, formal←c017)
   word formal←c019;
   word formal←c017;
   {
   register ptr gf←c9932 =  (ptr) &globalframe;
   /* XlCursorImpl: */ 
SOURCE(63, 1865)
SOURCE(177, 47)
   {
      word var←c9484;
      var←c9484 = XR←NewObject(4, (* (( (ptr) gf←c9932)+11) ));
      (*  (ptr) var←c9484 ) = (* (( (ptr) gf←c9932)+17) );
      (* (( (ptr) gf←c9932)+8)/* myPropKey←v2636 */  ) = var←c9484;
      };
SOURCE(227, 48)
   (* (( (ptr) gf←c9932)+9)/* cache←v2664 */  ) = XR←NewObject(12, (* (( (ptr) gf←c9932)+14) ));
   }

static word GetConnectionData←P60(c←v3064)
   word c←v3064;
   {
   register ptr gf←c9964 =  (ptr) &globalframe;
   word ca←v3108;
   /* GetConnectionData: */ 
SOURCE(570, 219)
SOURCE(570, 219)
   ca←v3108 = 0;
SOURCE(644, 10)
   ca←v3108 = (* (( (ptr) gf←c9964)+9)/* cache←v2664 */  );
SOURCE(680, 109)
   if (((*  (ptr) ca←v3108 ) != c←v3064)) {
SOURCE(707, 70)
      {
         word pd18;
         pd18 = (* (( (ptr) (* (( (ptr) gf←c9964)+33)/* var←c9548 */  ))+29) );
         ca←v3108 = XR←Narrow((word) ( *( (fPt) ((*  (ptr) pd18 ))))(c←v3064, (* (( (ptr) gf←c9964)+8)/* myPropKey←v2636 */  ), (word) (
                  ( (bPt) gf←c9964)+108)/* var←c9388 */ , pd18), (* (( (ptr) gf←c9964)+14) ));
         };
SOURCE(779, 10)
      (* (( (ptr) gf←c9964)+9)/* cache←v2664 */  ) = ca←v3108;
      };
SOURCE(570, 219)
   return(ca←v3108);
   }

static word InitConnection←P120(c←v4452, key←v4480)
   word c←v4452;
   word key←v4480;
   {
   register ptr gf←c9996 =  (ptr) &globalframe;
   word val←v4524;
   word ca←v3504;
   /* InitConnection: */ 
SOURCE(807, 197)
SOURCE(807, 197)
   val←v4524 = (* (( (ptr) gf←c9996)+19) );
SOURCE(846, 144)
   {
      word var←c9580;
      word var←c9612;
      word var←c9676;
      {
         word pd19;
         pd19 = (* (( (ptr) (* (( (ptr) gf←c9996)+33)/* var←c9548 */  ))+100) );
         var←c9580 = (word) ( *( (fPt) ((*  (ptr) pd19 ))))(c←v4452, (* (( (ptr) gf←c9996)+18) ), 0, pd19);
         };
      {
         word pd20;
         pd20 = (* (( (ptr) (* (( (ptr) gf←c9996)+34)/* var←c9644 */  ))+5) );
         var←c9612 = (word) ( *( (fPt) ((*  (ptr) pd20 ))))(17, pd20);
         };
      var←c9676 = XR←NewObject(12, (* (( (ptr) gf←c9996)+14) ));
      (*  (ptr) var←c9676 ) = c←v4452;
      (* (( (ptr) var←c9676)+1) ) = var←c9580;
      (* (( (ptr) var←c9676)+2) ) = var←c9612;
      ca←v3504 = var←c9676;
      };
SOURCE(992, 12)
   return(ca←v3504);
   }

static word StandardCursorFont←P180(c←v3168)
   word c←v3168;
   {
   word var←c3212;
   word data←v3548;
   /* StandardCursorFont: */ 
SOURCE(1008, 137)
SOURCE(1075, 44)
   data←v3548 = (word) GetConnectionData←P60(c←v3168);
SOURCE(1121, 24)
   return((* (( (ptr) data←v3548)+1) ));
   }

static word SharedStandardCursor←P240(c←v3272, source←v3300)
   word c←v3272;
   word source←v3300;
   {
   register ptr gf←c10028 =  (ptr) &globalframe;
   word cursor←v3344;
   word data←v3592;
   /* SharedStandardCursor: */ 
SOURCE(1151, 456)
SOURCE(1259, 44)
   data←v3592 = (word) GetConnectionData←P60(c←v3272);
SOURCE(1305, 302)
   {
      word var←c9708;
      W2 var←c037;
      {
         word pd21;
         pd21 = (* (( (ptr) (* (( (ptr) gf←c10028)+34)/* var←c9644 */  ))+7) );
         (void) ( *( (fPt) ((*  (ptr) pd21 ))))((word) &var←c037, (* (( (ptr) data←v3592)+2) ), source←v3300, pd21);
         };
      var←c9708 = var←c037.f1;
      if ((var←c9708 == 0)) {
         goto lab←L100000;
         };
      if (((* (( (ptr) gf←c10028)+12) ) == XR←GetReferentType(var←c9708))) {
         {
            word cc←v3636;
            cc←v3636 = var←c9708;
SOURCE(1399, 12)
            return((*  (ptr) cc←v3636 ));
            };
         }
      else {
         lab←L100000: ;
SOURCE(1426, 41)
         cursor←v3344 = (word) MutableStandardCursor←P300(c←v3272, source←v3300);
SOURCE(1469, 54)
         {
            word pd22;
            pd22 = (* (( (ptr) (* (( (ptr) gf←c10028)+35)/* var←c9740 */  ))+10) );
            (void) ( *( (fPt) ((*  (ptr) pd22 ))))(c←v3272, cursor←v3344, (* (( (ptr) gf←c10028)+20) ), pd22);
            };
SOURCE(1525, 82)
         {
            word var←c9836;
            {
               word var←c9772;
               {
                  word var←c9804;
                  var←c9804 = XR←NewObject(4, (* (( (ptr) gf←c10028)+12) ));
                  (*  (ptr) var←c9804 ) = cursor←v3344;
                  var←c9772 = var←c9804;
                  };
               {
                  word pd23;
                  pd23 = (* (( (ptr) (* (( (ptr) gf←c10028)+34)/* var←c9644 */  ))+9) );
                  var←c9836 = (word) ( *( (fPt) ((*  (ptr) pd23 ))))((* (( (ptr) data←v3592)+2) ), source←v3300, var←c9772, pd23);
                  };
               };
            };
         };
      };
SOURCE(1151, 456)
   return(cursor←v3344);
   }

static word MutableStandardCursor←P300(c←v3404, source←v3432)
   word c←v3404;
   word source←v3432;
   {
   register ptr gf←c10060 =  (ptr) &globalframe;
   word cursor←v3476;
   word data←v3692;
   /* MutableStandardCursor: */ 
SOURCE(1615, 313)
SOURCE(1730, 44)
   data←v3692 = (word) GetConnectionData←P60(c←v3404);
SOURCE(1776, 152)
   {
      word pd24;
      pd24 = (* (( (ptr) (* (( (ptr) gf←c10060)+33)/* var←c9548 */  ))+93) );
      cursor←v3476 = (word) ( *( (fPt) ((*  (ptr) pd24 ))))((*  (ptr) data←v3692 ), (* (( (ptr) data←v3692)+1) ), (* (( (ptr) data←v3692)+1)
          ), source←v3432, (source←v3432 + 1), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c10060)+33)/* var←c9548 */  ))+183) ) )
         , (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c10060)+33)/* var←c9548 */  ))+182) ) ), 0, pd24);
      };
SOURCE(1615, 313)
   return(cursor←v3476);
   }

/* file: XlCursorImpl, module: XlCursorImpl, compiled at: August 19, 1992 3:34:30 pm PDT */ 
extern void XR←install←XlCursorImpl() {
   NoName←Q408();
   }
extern void XR←run←XlCursorImpl() { XR←Start(&globalframe); }