/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 19, 1993 1:01:17 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: TJaMControlImpl, module: TJaMControlImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3955154695,2168200429] TJaMControlImpl";
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←Q468();
static void TJaMControlImpl←P0();
static word NewFrame←P60();
static void Register←P120();
static word SysDict←P180();
static void ApplyTrue←P240();
static void ApplyFalse←P300();
static void ApplySysDict←P360();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\164\000\000"};
static struct {unsigned f; char r[4];} string2 = {131074, "\004\017\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\340\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\006\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\101\050\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\004\003\000"};
static struct {unsigned f; char r[12];} string9 = {524300, ".sysdict\000\000\000"};
static struct {unsigned f; char r[8];} string10 = {393224, ".false\000"};
static struct {unsigned f; char r[8];} string11 = {327688, ".true\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\353\276\337\007\300\201\074\034\355\100\164\000\000"};
static struct {unsigned f; char r[4];} string13 = {196611, "\004x\000"};
static struct {unsigned f; char r[4];} string14 = {1414160717, "\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\243\004\305\073\300\011\303\367\103\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\367\310\321\062\300\174\163\370\126\100\150\000\000"};
static struct {unsigned f; char r[28];} string17 = {1638428, "\211\015\014\106\162\141\155\145\111\155\160\154\122\145\160\300\243\004\305\073\300\011\303\367\103\000\000"};
static struct {
   word f0[14]; word f14; word f15; word f16; 
   word f17; word f18; word f19; word f20; 
   word f21; word f22; word f23; word f24; 
   word f25; word f26; word f27[4]; 
   } globalframe = {
   {0}, (word) ApplySysDict←P360, 0, (word) ApplyFalse←P300, 
   0, (word) ApplyTrue←P240, 0, (word) SysDict←P180, 
   0, (word) Register←P120, 0, (word) NewFrame←P60, 
   0, (word) TJaMControlImpl←P0, {0}
   };

static void NoName←Q468()
   {
   register ptr gf←c044 =  (ptr) &globalframe;
   word var←c9920;
   (* (( (ptr) gf←c044)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c044)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c044)+8) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c044)+10) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (*  (ptr) (( (bPt) gf←c044)+44) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+6) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c044)+48) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+6) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c044)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c044)+6) ), (word) &string11);
   (void) XR←DeclareGlobalFrame((word) "TJaMControlImpl", &globalframe, (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13)
      , (word) (( (bPt) gf←c044)+104)/* var←c9600 */ );
   var←c9920 = (word) XR←ImportInterface((word) &string14, (word) XR←GetTypeIndexS((word) (&string15)), 101);
   (* (( (ptr) gf←c044)+28)/* var←c9632 */  ) = var←c9920;
   (void) XR←ImportProcS(var←c9920, 532226);
   (void) XR←ImportProcS(var←c9920, 529922);
   (void) XR←ImportProcS(var←c9920, 807427);
   (void) XR←ImportProcS(var←c9920, 67651074);
   (void) XR←ImportProcS(var←c9920, 134762242);
   (void) XR←ImportProcS(var←c9920, 545794);
   (void) XR←ImportProcS(var←c9920, 67388161);
   (void) XR←ImportProcS(var←c9920, 812035);
   var←c9920 = (word) XR←ImportInterface((word) "TJaMPrivate", (word) XR←GetTypeIndexS((word) (&string16)), 2);
   (* (( (ptr) gf←c044)+29)/* var←c9664 */  ) = var←c9920;
   (void) XR←ImportProcS(var←c9920, 67371265);
   (void) XR←ImportProcS(var←c9920, 67371009);
   var←c9920 = (word) XR←ExportInterface((word) &string14, (word) XR←GetTypeIndexS((word) (&string15)), 101);
   (* (( (ptr) gf←c044)+30)/* var←c9952 */  ) = var←c9920;
   (void) XR←ExportType((word) "FrameImplRep", (word) XR←GetTypeIndexS((word) (&string17)), (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2)
      );
   (void) XR←ExportProcS(var←c9920, (word) (( (bPt) gf←c044)+80)/* var←c9504 */ , 67393281, (word) "SysDict");
   (void) XR←ExportProcS(var←c9920, (word) (( (bPt) gf←c044)+96)/* var←c9568 */ , 67133952, (word) "NewFrame");
   (void) XR←ExportProcS(var←c9920, (word) (( (bPt) gf←c044)+88)/* var←c9536 */ , 1073924, (word) "Register");
   }

static void TJaMControlImpl←P0(formal←c015, formal←c014)
   word formal←c015;
   word formal←c014;
   {
   register ptr gf←c9984 =  (ptr) &globalframe;
   /* TJaMControlImpl: */ 
SOURCE(31, 1209)
SOURCE(1117, 37)
   {
      word pd18;
      pd18 = (* (( (ptr) (* (( (ptr) gf←c9984)+28)/* var←c9632 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd18 ))))((* (( (ptr) gf←c9984)+13) ), (word) (( (bPt) gf←c9984)+72)/* var←c9472 */ , 0, pd18)
      ;
      };
SOURCE(1156, 39)
   {
      word pd19;
      pd19 = (* (( (ptr) (* (( (ptr) gf←c9984)+28)/* var←c9632 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd19 ))))((* (( (ptr) gf←c9984)+12) ), (word) (( (bPt) gf←c9984)+64)/* var←c9440 */ , 0, pd19)
      ;
      };
SOURCE(1197, 43)
   {
      word pd20;
      pd20 = (* (( (ptr) (* (( (ptr) gf←c9984)+28)/* var←c9632 */  ))+104) );
      (void) ( *( (fPt) ((*  (ptr) pd20 ))))((* (( (ptr) gf←c9984)+11) ), (word) (( (bPt) gf←c9984)+56)/* var←c9408 */ , 0, pd20)
      ;
      };
   }

static word NewFrame←P60()
   {
   register ptr gf←c10016 =  (ptr) &globalframe;
   word var←c2744;
   word stack←v3036;
   word dictStack←v3064;
   word sysDict←v3092;
   word impl←v3120;
   word frame←v3148;
   /* NewFrame: */ 
SOURCE(189, 316)
SOURCE(230, 28)
   {
      word pd21;
      pd21 = (* (( (ptr) (* (( (ptr) gf←c10016)+29)/* var←c9664 */  ))+4) );
      stack←v3036 = (word) ( *( (fPt) ((*  (ptr) pd21 ))))(200, pd21);
      };
SOURCE(260, 39)
   {
      word pd22;
      pd22 = (* (( (ptr) (* (( (ptr) gf←c10016)+29)/* var←c9664 */  ))+5) );
      dictStack←v3064 = (word) ( *( (fPt) ((*  (ptr) pd22 ))))(20, pd22);
      };
SOURCE(301, 27)
   {
      word pd23;
      pd23 = (* (( (ptr) (* (( (ptr) gf←c10016)+28)/* var←c9632 */  ))+71) );
      sysDict←v3092 = (word) ( *( (fPt) ((*  (ptr) pd23 ))))(17, pd23);
      };
SOURCE(330, 92)
   impl←v3120 = XR←NewObject(20, (* (( (ptr) gf←c10016)+4) ));
   (*  (ptr) impl←v3120 ) = stack←v3036;
   (* (( (ptr) impl←v3120)+1) ) = dictStack←v3064;
   (* (( (ptr) impl←v3120)+3) ) = sysDict←v3092;
SOURCE(424, 43)
   frame←v3148 = XR←NewObject(8, (* (( (ptr) gf←c10016)+10) ));
   (*  (ptr) frame←v3148 ) = impl←v3120;
SOURCE(469, 21)
   {
      word pd24;
      pd24 = (* (( (ptr) (* (( (ptr) gf←c10016)+28)/* var←c9632 */  ))+88) );
      (void) ( *( (fPt) ((*  (ptr) pd24 ))))(frame←v3148, sysDict←v3092, pd24);
      };
SOURCE(492, 13)
   return(frame←v3148);
   }

static void Register←P120(frame←v2804, name←v2832, proc←v2860, data←v2888)
   word frame←v2804;
   word name←v2832;
   word proc←v2860;
   word data←v2888;
   {
   register ptr gf←c10048 =  (ptr) &globalframe;
   word found←v3192;
   word dict←v3220 = 0;
   /* Register: */ 
SOURCE(511, 317)
SOURCE(618, 34)
   {
      W2 var←c9760;
      {
         word pd25;
         pd25 = (* (( (ptr) (* (( (ptr) gf←c10048)+28)/* var←c9632 */  ))+83) );
         (void) ( *( (fPt) ((*  (ptr) pd25 ))))((word) &var←c9760, frame←v2804, name←v2832, pd25);
         };
      dict←v3220 = var←c9760.f1;
      found←v3192 = var←c9760.f0;
      };
SOURCE(654, 94)
   if ((0 != found←v3192)) {
SOURCE(668, 80)
      {
         word var←c9792;
         {
            word pd26;
            pd26 = (* (( (ptr) (* (( (ptr) gf←c10048)+28)/* var←c9632 */  ))+74) );
            var←c9792 = (word) ( *( (fPt) ((*  (ptr) pd26 ))))(dict←v3220, name←v2832, pd26);
            };
         if ((var←c9792 == 0)) {
            goto lab←L100000;
            };
         if (((* (( (ptr) gf←c10048)+8) ) == XR←GetReferentType(var←c9792))) {
            {
               word cmd←v3264;
               cmd←v3264 = var←c9792;
SOURCE(715, 15)
               (*  (ptr) cmd←v3264 ) = XR←CheckProc(proc←v2860);
SOURCE(732, 16)
               (* (( (ptr) cmd←v3264)+1) ) = data←v2888;
               };
            }
         else {
            lab←L100000: ;
            };
         };
      };
SOURCE(760, 68)
   {
      word var←c9824;
      {
         word var←c9856;
         var←c9856 = XR←NewObject(12, (* (( (ptr) gf←c10048)+8) ));
         (*  (ptr) var←c9856 ) = XR←CheckProc(proc←v2860);
         (* (( (ptr) var←c9856)+1) ) = data←v2888;
         (* (( (ptr) var←c9856)+2) ) = name←v2832;
         var←c9824 = var←c9856;
         };
      {
         word pd27;
         pd27 = (* (( (ptr) (* (( (ptr) gf←c10048)+28)/* var←c9632 */  ))+86) );
         (void) ( *( (fPt) ((*  (ptr) pd27 ))))(frame←v2804, name←v2832, var←c9824, pd27);
         };
      };
   }

static word SysDict←P180(frame←v2964)
   word frame←v2964;
   {
   word var←c3008;
   word impl←v3308;
   /* SysDict: */ 
SOURCE(834, 105)
SOURCE(889, 28)
   impl←v3308 = (*  (ptr) frame←v2964 );
SOURCE(919, 20)
   return((* (( (ptr) impl←v3308)+3) ));
   }

static void ApplyTrue←P240(frame←v4304, cmd←v4332)
   word frame←v4304;
   word cmd←v4332;
   {
   register ptr gf←c10080 =  (ptr) &globalframe;
   /* ApplyTrue: */ 
SOURCE(945, 49)
SOURCE(972, 22)
   {
      word pd28;
      pd28 = (* (( (ptr) (* (( (ptr) gf←c10080)+28)/* var←c9632 */  ))+26) );
      (void) ( *( (fPt) ((*  (ptr) pd28 ))))(frame←v4304, 1, pd28);
      };
   }

static void ApplyFalse←P300(frame←v4392, cmd←v4420)
   word frame←v4392;
   word cmd←v4420;
   {
   register ptr gf←c10112 =  (ptr) &globalframe;
   /* ApplyFalse: */ 
SOURCE(997, 51)
SOURCE(1025, 23)
   {
      word pd29;
      pd29 = (* (( (ptr) (* (( (ptr) gf←c10112)+28)/* var←c9632 */  ))+26) );
      (void) ( *( (fPt) ((*  (ptr) pd29 ))))(frame←v4392, 0, pd29);
      };
   }

static void ApplySysDict←P360(frame←v4480, cmd←v4508)
   word frame←v4480;
   word cmd←v4508;
   {
   register ptr gf←c10144 =  (ptr) &globalframe;
   /* ApplySysDict: */ 
SOURCE(1051, 62)
SOURCE(1081, 32)
   {
      word var←c9888;
      var←c9888 = (word) SysDict←P180(frame←v4480);
      {
         word pd30;
         pd30 = (* (( (ptr) (* (( (ptr) gf←c10144)+28)/* var←c9632 */  ))+35) );
         (void) ( *( (fPt) ((*  (ptr) pd30 ))))(frame←v4480, var←c9888, pd30);
         };
      };
   }

/* file: TJaMControlImpl, module: TJaMControlImpl, compiled at: October 19, 1993 1:01:17 pm PDT */ 
extern void XR←install←TJaMControlImpl() {
   NoName←Q468();
   }
extern void XR←run←TJaMControlImpl() { XR←Start(&globalframe); }