/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: September 30, 1993 10:52:59 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: X11SerialDevicesImpl, module: X11SerialDevicesImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [3309719945,1682690933] X11SerialDevicesImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W8 f; W3 r;} W11;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
#define SOURCE(p, l) /* source p, l */
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static void NoName←Q2004();
static void X11SerialDevicesImpl←P0();
static void Reopen←P60();
static void OpenHandle←P120();
static void Close←P180();
static void CloseDeviceInternal←P240();
static void GrabInputProcess←P300();
static word NoName←Q2064();
static void Register←P360();
static word NoName←Q2124();
static void UnRegister←P420();
static word GetClientData←P480();
static void InputProcess←P540();
static word NoName←Q2184();
static word CheckBufferSpace←P600();
static word NoName←Q2244();
static void NewEvents←P660();
static word NoName←Q2304();
static word InOrder←P720();
static void Read←P780();
static word More←P840();
static word NoName←Q2364();
static void TimeoutEvent←P900();
static void ThreadRead←P960();
static word NoName←Q2424();
static word GetEvent←P1848();
static void ProcessInput←P1020();
static word NoName←Q2484();
static void DoProcessInput←P1080();
static void SetHToNIL←P1140();
static void WaitForRegistration←P1200();
static void StartSerialDevices←P1260();
static void NoName←Q2544();
static void NoName←Q2604();
static void NoName←Q2664();
static void NoName←Q2724();
static void NoName←Q2784();
static void NoName←Q2844();
static void NoName←Q2904();
static void NoName←Q2964();
static word NoName←Q3024();
static word NoName←Q3084();
static word NoName←Q3144();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\326\205\271\265\300\242\132\343\272\100\164\000\000"};
static struct {unsigned f; char r[8];} string2 = {393222, "\006\0014\004C\377\000"};
static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\326\205\271\265\300\242\132\343\272\100\200\000\000"};
static struct {unsigned f; char r[4];} string4 = {196611, "\004@B"};
static struct {unsigned f; char r[4];} string5 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string6 = {65537, "\001\000\000"};
static struct {unsigned f; char r[8];} string7 = {458760, "Timeout"};
static struct {unsigned f; char r[8];} string8 = {393224, "Closed\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\305\106\121\211\300\144\113\323\165\100\164\000\000"};
static struct {unsigned f; char r[12];} string10 = {524296, "\006\002\040\001\100\134\004\003\000\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\211\056\077\074\300\127\047\310\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\271\306\277\300\300\056\100\244\210\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\006\114\211\170\300\041\050\350\270\100\150\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\237\037\145\112\300\016\200\115\054\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\362\254\236\122\300\034\373\210\247\100\150\000\000"};
static struct {unsigned f; char r[32];} string17 = {1835040, "\211\020\017\126\151\145\167\145\162\163\127\157\162\154\144\117\142\152\300\362\254\236\122\300\034\373\210\247\000\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\142\333\162\163\300\240\356\210\327\100\200\000\000"};
static struct {unsigned f; char r[28];} string19 = {1638425, "\006\011\000\001\004\001\020\001\034\001\040\001\054\004\100\377\100\154\001\100\160\001\100\164\001\000\000"};
static struct {
   word f0[25]; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32; word f33; word f34; word f35; 
   word f36; word f37; word f38; word f39; 
   word f40; word f41; word f42; word f43; 
   word f44; word f45; word f46; word f47; 
   word f48; word f49; word f50; 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[7]; 
   } globalframe = {
   {0}, (word) StartSerialDevices←P1260, 0, (word) WaitForRegistration←P1200, 
   0, (word) SetHToNIL←P1140, 0, (word) DoProcessInput←P1080, 
   0, (word) ProcessInput←P1020, 0, (word) ThreadRead←P960, 
   0, (word) TimeoutEvent←P900, 0, (word) More←P840, 
   0, (word) Read←P780, 0, (word) InOrder←P720, 
   0, (word) NewEvents←P660, 0, (word) CheckBufferSpace←P600, 
   0, (word) InputProcess←P540, 0, (word) GetClientData←P480, 
   0, (word) UnRegister←P420, 0, (word) Register←P360, 
   0, (word) GrabInputProcess←P300, 0, (word) CloseDeviceInternal←P240, 
   0, (word) Close←P180, 0, (word) OpenHandle←P120, 
   0, (word) Reopen←P60, 0, (word) X11SerialDevicesImpl←P0, 
   {0}
   };

static void NoName←Q2004()
   {
   register ptr gf←c0207 =  (ptr) &globalframe;
   word var←c16200;
   (* (( (ptr) gf←c0207)+18) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0207)+20) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0207)+21) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (*  (ptr) (( (bPt) gf←c0207)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0207)+21) ), (word) &string7);
   (*  (ptr) (( (bPt) gf←c0207)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0207)+21) ), (word) &string8);
   (void) XR←DeclareGlobalFrame((word) "X11SerialDevicesImpl", &globalframe, (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10)
      , (word) (( (bPt) gf←c0207)+268)/* var←c15048 */ );
   var←c16200 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string11)), 22);
   (* (( (ptr) gf←c0207)+69)/* var←c15176 */  ) = var←c16200;
   (void) XR←ImportProcS(var←c16200, 526081);
   (void) XR←ImportProcS(var←c16200, 263681);
   (void) XR←ImportProcS(var←c16200, 264449);
   (void) XR←ImportProcS(var←c16200, 527105);
   (void) XR←ImportProcS(var←c16200, 266241);
   (void) XR←ImportProcS(var←c16200, 67371521);
   (void) XR←ImportProcS(var←c16200, 525570);
   var←c16200 = (word) XR←ImportInterface((word) "UnixSysCalls", (word) XR←GetTypeIndexS((word) (&string12)), 77);
   (* (( (ptr) gf←c0207)+70)/* var←c15720 */  ) = var←c16200;
   (void) XR←ImportProcS(var←c16200, 67640066);
   var←c16200 = (word) XR←ImportInterface((word) "ViewersWorld", (word) XR←GetTypeIndexS((word) (&string13)), 26);
   (* (( (ptr) gf←c0207)+71)/* var←c16008 */  ) = var←c16200;
   (void) XR←ImportProcS(var←c16200, 67371009);
   var←c16200 = (word) XR←ImportInterface((word) "ViewersWorldInstance", (word) XR←GetTypeIndexS((word) (&string14)), 2);
   (* (( (ptr) gf←c0207)+72)/* var←c16104 */  ) = var←c16200;
   (void) XR←ImportProcS(var←c16200, 67108864);
   var←c16200 = (word) XR←ExportInterface((word) "InputDevice", (word) XR←GetTypeIndexS((word) (&string15)), 7);
   (* (( (ptr) gf←c0207)+73)/* var←c16232 */  ) = var←c16200;
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+220)/* var←c14856 */ , 1835015, (word) "Register");
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+212)/* var←c14824 */ , 262401, (word) "UnRegister");
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+260)/* var←c15016 */ , 512, (word) "Reopen");
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+244)/* var←c14952 */ , 768, (word) "Close");
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+132)/* var←c14504 */ , 1049604, (word) "ProcessInput");
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+204)/* var←c14792 */ , 67372289, (word) "GetClientData");
   (void) XR←ExportProcS(var←c16200, (word) (( (bPt) gf←c0207)+156)/* var←c14600 */ , 67372545, (word) "More");
   var←c16200 = (word) XR←ExportInterface((word) "ViewersWorldRefType", (word) XR←GetTypeIndexS((word) (&string16)), 1);
   (* (( (ptr) gf←c0207)+74)/* var←c16264 */  ) = var←c16200;
   (void) XR←ExportType((word) "ViewersWorldObj", (word) XR←GetTypeIndexS((word) (&string17)), (word) XR←GetTypeIndex((word) &string18, 0, (word) &string19)
      );
   }

static void X11SerialDevicesImpl←P0(formal←c044, formal←c043)
   word formal←c044;
   word formal←c043;
   {
   register ptr gf←c16296 =  (ptr) &globalframe;
   /* X11SerialDevicesImpl: */ 
SOURCE(186, 8791)
SOURCE(5352, 20)
   (* (( (ptr) gf←c16296)+15)/* activeReader←v3476 */  ) = (word) (( (bPt) gf←c16296)+140)/* var←c14536 */ ;
SOURCE(8957, 20)
   (void) StartSerialDevices←P1260();
   }

static void Reopen←P60()
   {
   register ptr gf←c16328 =  (ptr) &globalframe;
   word eventBuffer←v5844 = 0;
   /* Reopen: */ 
SOURCE(820, 492)
SOURCE(870, 80)
   if (((* (( (ptr) gf←c16328)+8)/* h←v3084 */  ) == 0)) {
SOURCE(884, 59)
      (void) OpenHandle←P120();
      }
   else {
SOURCE(943, 7)
      (void) Close←P180();
      };
SOURCE(1007, 305)
   {
      register word i←v5888 = 0;
      register word noName←c15080;
      noName←c15080 = (* (( (ptr) (* (( (ptr) gf←c16328)+8)/* h←v3084 */  ))+12) );
      if ((i←v5888 >= noName←c15080)) {
         goto lab←L100000;
         };
      lab←L100003: ;
SOURCE(1040, 272)
      eventBuffer←v5844 = (* ((( (ptr) (* (( (ptr) gf←c16328)+8)/* h←v3084 */  ))+13)+BCK(i←v5888, 10)) );
      if ((eventBuffer←v5844 != 0)) {
SOURCE(1080, 232)
         (void) Register←P360((* (( (ptr) eventBuffer←v5844)+1) ), (* (( (ptr) eventBuffer←v5844)+17) ), (* (( (ptr) eventBuffer←v5844)+2)
             ), (* (( (ptr) eventBuffer←v5844)+3) ), (* (( (ptr) eventBuffer←v5844)+4) ), (* (( (ptr) eventBuffer←v5844)+5) )
            , (* (( (ptr) eventBuffer←v5844)+6) ));
         };
      i←v5888 = (i←v5888 + 1);
      if ((i←v5888 < noName←c15080)) {
         goto lab←L100003;
         };
      lab←L100000: ;
      };
   }

static void OpenHandle←P120()
   {
   register ptr gf←c16360 =  (ptr) &globalframe;
   /* OpenHandle: */ 
SOURCE(1327, 159)
SOURCE(1361, 18)
   (* (( (ptr) gf←c16360)+8)/* h←v3084 */  ) = XR←NewObject(92, (* (( (ptr) gf←c16360)+18) ));
SOURCE(1381, 64)
   {
      word var←c15144;
      {
         word pd20;
         pd20 = (* (( (ptr) (* (( (ptr) gf←c16360)+69)/* var←c15176 */  ))+6) );
         var←c15144 = (word) ( *( (fPt) ((*  (ptr) pd20 ))))(1000, pd20);
         };
      {
         word pd21;
         pd21 = (* (( (ptr) (* (( (ptr) gf←c16360)+69)/* var←c15176 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd21 ))))((word) (( (bPt) (* (( (ptr) gf←c16360)+8)/* h←v3084 */  ))+24), var←c15144, pd21);
         };
      };
SOURCE(1447, 39)
   {
      word pd22;
      pd22 = (* (( (ptr) (* (( (ptr) gf←c16360)+69)/* var←c15176 */  ))+20) );
      (void) ( *( (fPt) ((*  (ptr) pd22 ))))((word) ((( (bPt) (* (( (ptr) gf←c16360)+8)/* h←v3084 */  ))+24)), pd22);
      };
   }

static void Close←P180()
   {
   register ptr gf←c16392 =  (ptr) &globalframe;
   word eventBuffer←v5932 = 0;
   /* Close: */ 
SOURCE(1492, 193)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16392)+16)/* LOCK←v2860 */ ));
SOURCE(1556, 20)
   if (((* (( (ptr) gf←c16392)+8)/* h←v3084 */  ) == 0)) {
SOURCE(1570, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c16392)+16)/* LOCK←v2860 */ ));
      return;
      };
SOURCE(1578, 107)
   {
      register word i←v5976 = 0;
      register word noName←c15208;
      noName←c15208 = (* (( (ptr) (* (( (ptr) gf←c16392)+8)/* h←v3084 */  ))+12) );
      if ((i←v5976 >= noName←c15208)) {
         goto lab←L100004;
         };
      lab←L100007: ;
SOURCE(1611, 74)
      eventBuffer←v5932 = (* ((( (ptr) (* (( (ptr) gf←c16392)+8)/* h←v3084 */  ))+13)+BCK(i←v5976, 10)) );
      if ((eventBuffer←v5932 != 0)) {
SOURCE(1653, 32)
         (void) CloseDeviceInternal←P240(eventBuffer←v5932);
         };
      i←v5976 = (i←v5976 + 1);
      if ((i←v5976 < noName←c15208)) {
         goto lab←L100007;
         };
      lab←L100004: ;
      };
SOURCE(1492, 193)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c16392)+16)/* LOCK←v2860 */ ));
   return;
   }

static void CloseDeviceInternal←P240(b←v3856)
   word b←v3856;
   {
   register ptr gf←c16424 =  (ptr) &globalframe;
   W2 inputProcess←v6020;
   /* CloseDeviceInternal: */ 
SOURCE(1703, 355)
SOURCE(1760, 32)
   (*  (ptr) (word) &inputProcess←v6020 ) = 0;
   (* (( (ptr) (word) &inputProcess←v6020) + 1) ) = 0;
SOURCE(1794, 264)
   if ((0 != (*  (ptr) b←v3856 ))) {
SOURCE(1853, 16)
      (*  (ptr) b←v3856 ) = 0;
SOURCE(1871, 187)
      {
         W2 temp23;
         (void) GrabInputProcess←P300((word) &inputProcess←v6020, b←v3856);
         (*  (ptr) &temp23 ) = 0;
         (* (( (ptr) &temp23) + 1) ) = 0;
         if ( ! XR←EqualWords(&inputProcess←v6020, &temp23, 2)) {
SOURCE(1930, 128)
SOURCE(1932, 27)
            {
               word pd24;
               pd24 = (* (( (ptr) (* (( (ptr) gf←c16424)+69)/* var←c15176 */  ))+15) );
               (void) ( *( (fPt) ((*  (ptr) pd24 ))))(inputProcess←v6020, pd24);
               };
SOURCE(1961, 17)
             (void) XR←Join(inputProcess←v6020);
SOURCE(1980, 41)
            if (((* (( (ptr) b←v3856)+5) ) != 0)) {
SOURCE(2000, 21)
               {
                  word pd25;
                  pd25 = (* (( (ptr) b←v3856)+5) );
                  (void) ( *( (fPt) ((*  (ptr) pd25 ))))((* ((( (ptr) b←v3856)+6)) ), pd25);
                  };
               };
            };
         };
      };
   }

static void GrabInputProcess←P300(formal←c057, formal←c0271)
   word formal←c057;
   word formal←c0271;
   {
   W7 var←c16456;
   /* declaration of b←v3916 skipped */ 
   /* declaration of var←c3960 skipped */ 
   var←c16456.f4/* b←v3916 */  = formal←c0271;
   /* GrabInputProcess: */ 
SOURCE(2068, 223)
SOURCE(2145, 146)
   {
      word var←c01;
      {
         word var←c0247;
         var←c0247 = (word) &var←c16456;
         var←c01 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2064) ), ( ((word)  (fPt) NoName←Q2964) ), var←c0247);
         };
      /* removed trivial cond node */ 
      };
   (*  (W2Pt) formal←c057 ) = (*  (W2Pt) (( (ptr) &var←c16456)+5)/* var←c3960 */  );
   return;
   }

static word NoName←Q2064(formal←c0213)
   word formal←c0213;
   {
SOURCE(2168, 107)
   if (((* (( (ptr) formal←c0213)+4) ) != 0)) {
SOURCE(2184, 91)
      {
         W2 inputProcess←v6080;
SOURCE(2186, 43)
         inputProcess←v6080 = (*  (W2Pt) (( (ptr) (* (( (ptr) formal←c0213)+4) ))+13) );
SOURCE(2231, 20)
         {
            word tmpAddr26;
            tmpAddr26 = (word) (( (ptr) (* (( (ptr) formal←c0213)+4) ))+13);
            (*  (ptr) tmpAddr26 ) = 0;
            (* (( (ptr) tmpAddr26) + 1) ) = 0;
            };
SOURCE(2253, 22)
         (*  (W2Pt) (( (ptr) formal←c0213)+5) ) = inputProcess←v6080;
         return(2);
         };
      };
SOURCE(2278, 13)
   {
      W2 var←c15240;
      (*  (ptr) (word) &var←c15240 ) = 0;
      (* (( (ptr) (word) &var←c15240) + 1) ) = 0;
      (*  (W2Pt) (( (ptr) formal←c0213)+5) ) = var←c15240;
      return(2);
      };
   /* c2c skipped dead code */ 
   }

static void Register←P360(formal←c0272, formal←c0273, formal←c0274, formal←c0275, formal←c0276, formal←c0277, formal←c0278)
   word formal←c0272;
   word formal←c0273;
   word formal←c0274;
   word formal←c0275;
   word formal←c0276;
   word formal←c0277;
   word formal←c0278;
   {
   W11 var←c16488;
   /* declaration of deviceName←v4036 skipped */ 
   /* declaration of bufferLength←v4064 skipped */ 
   /* declaration of open←v4092 skipped */ 
   /* declaration of eventReader←v4120 skipped */ 
   /* declaration of eventDispatch←v4148 skipped */ 
   /* declaration of close←v4176 skipped */ 
   /* declaration of clientData←v4204 skipped */ 
   register ptr gf←c16520 =  (ptr) &globalframe;
   (* (( (ptr) &var←c16488)+4)/* deviceName←v4036 */  ) = formal←c0272;
   (* (( (ptr) &var←c16488)+5)/* bufferLength←v4064 */  ) = formal←c0273;
   (* (( (ptr) &var←c16488)+6)/* open←v4092 */  ) = formal←c0274;
   (* (( (ptr) &var←c16488)+7)/* eventReader←v4120 */  ) = formal←c0275;
   (* (( (ptr) &var←c16488)+8)/* eventDispatch←v4148 */  ) = formal←c0276;
   (* (( (ptr) &var←c16488)+9)/* close←v4176 */  ) = formal←c0277;
   (* (( (ptr) &var←c16488)+10)/* clientData←v4204 */  ) = formal←c0278;
   /* Register: */ 
SOURCE(2295, 1430)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16520)+16)/* LOCK←v2860 */ ));
SOURCE(2505, 1220)
   {
      word var←c0248;
      var←c0248 = (word) &var←c16488;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2124) ), ( ((word)  (fPt) NoName←Q2904) ), var←c0248);
      };
SOURCE(2295, 1430)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c16520)+16)/* LOCK←v2860 */ ));
   return;
   }

static word NoName←Q2124(formal←c0216)
   word formal←c0216;
   {
   register ptr gf←c0215 =  (ptr) &globalframe;
SOURCE(2528, 24)
   {
      word eventBuffer←v6140 = 0;
      word notifyRegister←v6168 = 0;
SOURCE(2584, 92)
      if (((* (( (ptr) gf←c0215)+8)/* h←v3084 */  ) == 0)) {
SOURCE(2640, 12)
         (void) OpenHandle←P120();
SOURCE(2655, 21)
         notifyRegister←v6168 = 1;
         };
SOURCE(2681, 421)
      {
         register word i←v6212 = 0;
         if (( (int)i←v6212 >  (int)9)) {
            goto lab←L100013;
            };
         lab←L100016: ;
SOURCE(2731, 177)
         if (((* ((( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+13)+BCK(i←v6212, 10)) ) == 0)) {
SOURCE(2797, 61)
            {
               word var←c15272;
               {
                  word var←c15304;
                  word var←c15336;
                  word var←c15368;
                  {
                     word idx27;
                     var←c15304 = (
                        idx27 = (* (( (ptr) formal←c0216)+5) ),
                        BCK(idx27, 16777215)
                        );
                     };
                  var←c15336 = ((word) var←c15304 << 4);
                  var←c15368 = XR←NewObject((72 + var←c15336), (* (( (ptr) gf←c0215)+20) ));
                  (* (( (ptr) var←c15368)+17) ) = var←c15304;
                  var←c15272 = var←c15368;
                  };
               (* ((( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+13)+BCK(i←v6212, 10)) ) = var←c15272;
               eventBuffer←v6140 = var←c15272;
               };
SOURCE(2860, 48)
            if (( (int)i←v6212 ==  (int)(* (( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+12) ))) {
SOURCE(2881, 27)
               (* (( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+12) ) = ((* (( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+12) ) + 
               1);
               };
SOURCE(2954, 4)
            goto lab←L100014;
            };
SOURCE(2963, 139)
         if (((* (( (ptr) (* ((( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+13)+BCK(i←v6212, 10)) ))+1) ) == (* (( (ptr) formal←c0216)+4)
          ))) {
SOURCE(3043, 25)
            eventBuffer←v6140 = (* ((( (ptr) (* (( (ptr) gf←c0215)+8)/* h←v3084 */  ))+13)+BCK(i←v6212, 10)) );
SOURCE(3070, 32)
            (void) CloseDeviceInternal←P240(eventBuffer←v6140);
SOURCE(3137, 4)
            goto lab←L100014;
            };
         if (( (int)i←v6212 >=  (int)9)) {
            goto lab←L100013;
            };
         i←v6212 = (i←v6212 + 1);
         goto lab←L100016;
         lab←L100013: ;
         lab←L100014: ;
         };
SOURCE(3156, 24)
      if ((eventBuffer←v6140 == 0)) {
SOURCE(3180, 5)
         (void) XR←RaiseUnnamedError();
         };
SOURCE(3203, 25)
      (*  (ptr) eventBuffer←v6140 ) = 1;
SOURCE(3230, 23)
      (* (( (ptr) eventBuffer←v6140)+2) ) = (* (( (ptr) formal←c0216)+6) );
SOURCE(3255, 35)
      (* (( (ptr) eventBuffer←v6140)+1) ) = (* (( (ptr) formal←c0216)+4) );
SOURCE(3292, 30)
      (* (( (ptr) eventBuffer←v6140)+3) ) = (* (( (ptr) formal←c0216)+7) );
SOURCE(3324, 36)
      (* (( (ptr) eventBuffer←v6140)+4) ) = (* (( (ptr) formal←c0216)+8) );
SOURCE(3362, 25)
      (* (( (ptr) eventBuffer←v6140)+5) ) = (* (( (ptr) formal←c0216)+9) );
SOURCE(3389, 35)
      (* (( (ptr) eventBuffer←v6140)+6) ) = (* (( (ptr) formal←c0216)+10) );
SOURCE(3426, 39)
      (* (( (ptr) eventBuffer←v6140)+16) ) = 0;
      (* (( (ptr) eventBuffer←v6140)+15) ) = 0;
SOURCE(3467, 58)
      if (((* (( (ptr) formal←c0216)+6) ) != 0)) {
SOURCE(3484, 41)
         {
            word pd28;
            pd28 = (* (( (ptr) formal←c0216)+6) );
            (* (( (ptr) eventBuffer←v6140)+6) ) = (word) ( *( (fPt) ((*  (ptr) pd28 ))))((* ((( (ptr) formal←c0216)+10)) ), pd28);
            };
         };
SOURCE(3565, 46)
      {
         word pd29;
         pd29 = (* (( (ptr) (* (( (ptr) gf←c0215)+69)/* var←c15176 */  ))+20) );
         (void) ( *( (fPt) ((*  (ptr) pd29 ))))((word) ((( (bPt) eventBuffer←v6140)+28)), pd29);
         };
SOURCE(3613, 70)
      {
         W2 var←c15400;
         {
            W2 var←c076;
            word var←c075;
            var←c075 = XR←ExtensionAlloc(6);
            {
               word tmpAddr30;
               tmpAddr30 = (word) var←c075;
               (*  (ptr) tmpAddr30 ) = ( ((word)  (fPt) NoName←Q3024) );
               (* (( (ptr) tmpAddr30) + 1) ) = 0;
               (* (( (ptr) tmpAddr30) + 2) ) = (word) (( (bPt) gf←c0215)+196)/* var←c14760 */ ;
               (* (( (ptr) tmpAddr30) + 3) ) = 0;
               (* (( (ptr) tmpAddr30) + 4) ) = eventBuffer←v6140;
               (* (( (ptr) tmpAddr30) + 5) ) = (* (( (ptr) formal←c0216)+7) );
               };
            (void) XR←Fork((word) &var←c076, var←c075);
            var←c15400 = var←c076;
            };
         (*  (W2Pt) (( (ptr) eventBuffer←v6140)+13) ) = var←c15400;
         };
SOURCE(3685, 40)
      if ((0 != notifyRegister←v6168)) {
SOURCE(3708, 17)
         (void) (XR←Notify((word) (( (bPt) gf←c0215)+36)/* registerCV←v3112 */ ));
         };
      };
   return(0);
   }

static void UnRegister←P420(deviceName←v4280)
   word deviceName←v4280;
   {
   register ptr gf←c16552 =  (ptr) &globalframe;
   word eventBuffer←v6256 = 0;
   /* UnRegister: */ 
SOURCE(3731, 265)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16552)+16)/* LOCK←v2860 */ ));
SOURCE(3810, 20)
   if (((* (( (ptr) gf←c16552)+8)/* h←v3084 */  ) == 0)) {
SOURCE(3824, 6)
      (void) (XR←MonitorExit((word) (( (bPt) gf←c16552)+16)/* LOCK←v2860 */ ));
      return;
      };
SOURCE(3832, 164)
   {
      register word i←v6300 = 0;
      register word noName←c15432;
      noName←c15432 = (* (( (ptr) (* (( (ptr) gf←c16552)+8)/* h←v3084 */  ))+12) );
      if ((i←v6300 >= noName←c15432)) {
         goto lab←L100017;
         };
      lab←L100020: ;
SOURCE(3865, 131)
      {
         word tc31;
         eventBuffer←v6256 = (* ((( (ptr) (* (( (ptr) gf←c16552)+8)/* h←v3084 */  ))+13)+BCK(i←v6300, 10)) );
         if ((eventBuffer←v6256 != 0)) {
            tc31 =  (word) ((* (( (ptr) eventBuffer←v6256)+1) ) == deviceName←v4280);
            }
         else {
            tc31 =  (word) 0;
            };
         if (tc31) {
SOURCE(3945, 32)
            (void) CloseDeviceInternal←P240(eventBuffer←v6256);
SOURCE(3979, 17)
            (* ((( (ptr) (* (( (ptr) gf←c16552)+8)/* h←v3084 */  ))+13)+BCK(i←v6300, 10)) ) = 0;
            };
         };
      i←v6300 = (i←v6300 + 1);
      if ((i←v6300 < noName←c15432)) {
         goto lab←L100020;
         };
      lab←L100017: ;
      };
SOURCE(3731, 265)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c16552)+16)/* LOCK←v2860 */ ));
   return;
   }

static word GetClientData←P480(deviceName←v4340)
   word deviceName←v4340;
   {
   register ptr gf←c16584 =  (ptr) &globalframe;
   word var←c4384;
   word eventBuffer←v6344 = 0;
   /* GetClientData: */ 
SOURCE(4065, 259)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16584)+16)/* LOCK←v2860 */ ));
SOURCE(4161, 141)
   {
      register word i←v6388 = 0;
      register word noName←c15464;
      noName←c15464 = (* (( (ptr) (* (( (ptr) gf←c16584)+8)/* h←v3084 */  ))+12) );
      if ((i←v6388 >= noName←c15464)) {
         goto lab←L100021;
         };
      lab←L100024: ;
SOURCE(4194, 108)
      {
         word tc32;
         eventBuffer←v6344 = (* ((( (ptr) (* (( (ptr) gf←c16584)+8)/* h←v3084 */  ))+13)+BCK(i←v6388, 10)) );
         if ((eventBuffer←v6344 != 0)) {
            tc32 =  (word) ((* (( (ptr) eventBuffer←v6344)+1) ) == deviceName←v4340);
            }
         else {
            tc32 =  (word) 0;
            };
         if (tc32) {
SOURCE(4272, 30)
            {
               word var←c15496;
               var←c15496 = (* (( (ptr) eventBuffer←v6344)+6) );
               (void) (XR←MonitorExit((word) (( (bPt) gf←c16584)+16)/* LOCK←v2860 */ ));
               return(var←c15496);
               };
            };
         };
      i←v6388 = (i←v6388 + 1);
      if ((i←v6388 < noName←c15464)) {
         goto lab←L100024;
         };
      lab←L100021: ;
      };
SOURCE(4313, 11)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c16584)+16)/* LOCK←v2860 */ ));
   return(0);
   }

static void InputProcess←P540(formal←c0279, formal←c0280)
   word formal←c0279;
   word formal←c0280;
   {
   W6 var←c16616;
   /* declaration of b←v4456 skipped */ 
   /* declaration of eventReader←v4484 skipped */ 
   var←c16616.f4/* b←v4456 */  = formal←c0279;
   var←c16616.f5/* eventReader←v4484 */  = formal←c0280;
   /* InputProcess: */ 
SOURCE(4330, 239)
SOURCE(4413, 156)
SOURCE(4413, 156)
   {
      word var←c02;
      {
         word var←c0249;
         var←c0249 = (word) &var←c16616;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2184) ), ( ((word)  (fPt) NoName←Q2844) ), var←c0249);
         };
      /* removed trivial cond node */ 
      };
   }

static word NoName←Q2184(formal←c0220)
   word formal←c0220;
   {
   register ptr gf←c0219 =  (ptr) &globalframe;
SOURCE(4441, 45)
   {
      word pd33;
      pd33 = (* (( (ptr) (* (( (ptr) gf←c0219)+69)/* var←c15176 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd33 ))))(6, pd33);
      };
SOURCE(4488, 81)
   lab←L100031: ;
   if ((*  (ptr) (* (( (ptr) formal←c0220)+4) ) )) {
      }
   else {
      goto lab←L100029;
      };
SOURCE(4506, 63)
   {
      word var←c15528;
      {
         word var←c15560;
         var←c15560 = (word) CheckBufferSpace←P600((* ((( (ptr) formal←c0220)+4)) ));
         {
            word pd34;
            pd34 = (* (( (ptr) formal←c0220)+5) );
            var←c15528 = (word) ( *( (fPt) ((*  (ptr) pd34 ))))((* (( (ptr) formal←c0220)+4) ), var←c15560, (* (( (ptr) (* (( (ptr) formal←c0220)+4)
                   ))+6) ), pd34);
            };
         };
      (void) NewEvents←P660((* (( (ptr) formal←c0220)+4) ), var←c15528);
      };
   goto lab←L100031;
   lab←L100029: ;
   return(0);
   }

static word CheckBufferSpace←P600(formal←c0281)
   word formal←c0281;
   {
   W6 var←c16648;
   /* declaration of b←v4544 skipped */ 
   register ptr gf←c16680 =  (ptr) &globalframe;
   /* declaration of var←c03 skipped */ 
   word var←c4588;
   var←c16648.f4/* b←v4544 */  = formal←c0281;
   /* CheckBufferSpace: */ 
SOURCE(4584, 501)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16680)+16)/* LOCK←v2860 */ ));
SOURCE(4656, 429)
   {
      word var←c04;
      {
         word var←c0250;
         var←c0250 = (word) &var←c16648;
         var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2244) ), ( ((word)  (fPt) NoName←Q2784) ), var←c0250);
         };
      /* removed trivial cond node */ 
      };
   return(var←c16648.f5/* var←c03 */ );
   }

static word NoName←Q2244(formal←c0223)
   word formal←c0223;
   {
   register ptr gf←c0222 =  (ptr) &globalframe;
SOURCE(4679, 364)
   lab←L100036: ;
   if ((*  (ptr) (* (( (ptr) formal←c0223)+4) ) )) {
      }
   else {
      goto lab←L100034;
      };
   {
      word n←v6432;
SOURCE(4697, 24)
      n←v6432 = ((* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) ) - (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ));
SOURCE(4723, 53)
      if ((n←v6432 == 0)) {
SOURCE(4738, 19)
         (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) ) = 0;
         (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ) = 0;
SOURCE(4759, 17)
         {
            word var←c15592;
            var←c15592 = (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+17) );
            (void) (XR←MonitorExit((word) (( (bPt) gf←c0222)+16)/* LOCK←v2860 */ ));
            (* (( (ptr) formal←c0223)+5) ) = var←c15592;
            return(1);
            };
         };
SOURCE(4779, 191)
      if (((* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ) > n←v6432) ||  ( ((* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ) > 0) ? ( (int)((* (
         ( (ptr) (* (( (ptr) formal←c0223)+4) ))+17) ) - (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) )) <  (int)2) : 0 ) ) {
SOURCE(4853, 93)
         {
            word limit35;
            word idx36;
            word limit37;
            (void) Basics←MoveWords((word) (( (W4Pt) (( (bPt) (* (( (ptr) formal←c0223)+4) ))+72))+(
                     limit35 = (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+17) ),
                     BCK(0, limit35)
                     )), (word) (( (W4Pt) (( (bPt) (* (( (ptr) formal←c0223)+4) ))+72))+(
                     idx36 = (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ),
                     limit37 = (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+17) ),
                     BCK(idx36, limit37)
                     )), ((word) n←v6432 << 2));
            };
SOURCE(4948, 11)
         (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ) = 0;
SOURCE(4961, 9)
         (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) ) = n←v6432;
         };
SOURCE(4975, 48)
      if (((* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) ) < (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+17) ))) {
SOURCE(5000, 23)
         {
            word var←c15624;
            var←c15624 = ((* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+17) ) - (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) ));
            (void) (XR←MonitorExit((word) (( (bPt) gf←c0222)+16)/* LOCK←v2860 */ ));
            (* (( (ptr) formal←c0223)+5) ) = var←c15624;
            return(1);
            };
         };
SOURCE(5025, 18)
      (void) (XR←Wait((word) (( (bPt) gf←c0222)+16)/* LOCK←v2860 */ , (word) (( (bPt) (* (( (ptr) formal←c0223)+4) ))+28)));
      };
   goto lab←L100036;
   lab←L100034: ;
SOURCE(5054, 19)
   (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+16) ) = 0;
   (* (( (ptr) (* (( (ptr) formal←c0223)+4) ))+15) ) = 0;
SOURCE(5075, 10)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c0222)+16)/* LOCK←v2860 */ ));
   (* (( (ptr) formal←c0223)+5) ) = 0;
   return(1);
   /* c2c skipped dead code */ 
   }

static void NewEvents←P660(formal←c0282, formal←c0283)
   word formal←c0282;
   word formal←c0283;
   {
   W6 var←c16712;
   /* declaration of b←v4648 skipped */ 
   /* declaration of n←v4676 skipped */ 
   register ptr gf←c16744 =  (ptr) &globalframe;
   var←c16712.f4/* b←v4648 */  = formal←c0282;
   var←c16712.f5/* n←v4676 */  = formal←c0283;
   /* NewEvents: */ 
SOURCE(5091, 119)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16744)+16)/* LOCK←v2860 */ ));
SOURCE(5142, 68)
   {
      word var←c0251;
      var←c0251 = (word) &var←c16712;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2304) ), ( ((word)  (fPt) NoName←Q2724) ), var←c0251);
      };
SOURCE(5091, 119)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c16744)+16)/* LOCK←v2860 */ ));
   return;
   }

static word NoName←Q2304(formal←c0226)
   word formal←c0226;
   {
   register ptr gf←c0225 =  (ptr) &globalframe;
SOURCE(5165, 17)
   {
      word idx38;
      (* (( (ptr) (* (( (ptr) formal←c0226)+4) ))+16) ) = (
         idx38 = (word) ((* (( (ptr) (* (( (ptr) formal←c0226)+4) ))+16) ) + (* (( (ptr) formal←c0226)+5) )),
         SGNCK(idx38)
         );
      };
SOURCE(5184, 26)
   (void) (XR←Broadcast((word) (( (bPt) (* (( (ptr) gf←c0225)+8)/* h←v3084 */  ))+24)));
   return(0);
   }

static word InOrder←P720(t1←v4736, t2←v4764)
   W2 t1←v4736;
   W2 t2←v4764;
   {
   word var←c4808;
   /* InOrder: */ 
SOURCE(5216, 132)
SOURCE(5277, 71)
   {
      word tc39;
      if ((t1←v4736.f0 < t2←v4764.f0)) {
         tc39 =  (word)  (unsigned) 1;
         }
      else {
         if ((t1←v4736.f0 == t2←v4764.f0)) {
            tc39 =  (word)  (unsigned) (t1←v4736.f1 <= t2←v4764.f1);
            }
         else {
            tc39 =  (word)  (unsigned) 0;
            };
         };
      return(tc39);
      };
   }

static void Read←P780(formal←c0110, timeout←v5028)
   word formal←c0110;
   word timeout←v5028;
   {
   register ptr gf←c16776 =  (ptr) &globalframe;
   W4 e←v5072;
   word deviceName←v5100;
   word dispatch←v5128;
   /* Read: */ 
SOURCE(5503, 186)
SOURCE(5503, 186)
   deviceName←v5100 = 0;
SOURCE(5503, 186)
   dispatch←v5128 = 0;
SOURCE(5640, 49)
   {
      W6 var←c15656;
      {
         word pd40;
         pd40 = (* (( (ptr) gf←c16776)+15)/* activeReader←v3476 */  );
         (void) ( *( (fPt) ((*  (ptr) pd40 ))))((word) &var←c15656, timeout←v5028, pd40);
         };
      dispatch←v5128 = XR←CheckProc(var←c15656.f5);
      deviceName←v5100 = var←c15656.f4;
      e←v5072 = (*  (W4Pt) &var←c15656 );
      };
   /* removed tail goto */ 
   (*  (W4Pt) formal←c0110 ) = e←v5072;
   (* (( (ptr) formal←c0110)+4) ) = deviceName←v5100;
   (* (( (ptr) formal←c0110)+5) ) = dispatch←v5128;
   return;
   }

static word More←P840(formal←c0284)
   word formal←c0284;
   {
   W6 var←c16808;
   /* declaration of deviceName←v5188 skipped */ 
   register ptr gf←c16840 =  (ptr) &globalframe;
   /* declaration of var←c05 skipped */ 
   word var←c5232;
   var←c16808.f4/* deviceName←v5188 */  = formal←c0284;
   /* More: */ 
SOURCE(5695, 386)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16840)+16)/* LOCK←v2860 */ ));
SOURCE(5762, 319)
   {
      word var←c06;
      {
         word var←c0252;
         var←c0252 = (word) &var←c16808;
         var←c06 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2364) ), ( ((word)  (fPt) NoName←Q2664) ), var←c0252);
         };
      /* removed trivial cond node */ 
      };
   return(var←c16808.f5/* var←c05 */ );
   }

static word NoName←Q2364(formal←c0230)
   word formal←c0230;
   {
   register ptr gf←c0229 =  (ptr) &globalframe;
SOURCE(5785, 271)
   {
      register word i←v6476 = 0;
      register word noName←c15688;
      noName←c15688 = (* (( (ptr) (* (( (ptr) gf←c0229)+8)/* h←v3084 */  ))+12) );
      if ((i←v6476 >= noName←c15688)) {
         goto lab←L100042;
         };
      lab←L100045: ;
      {
         word b←v6520;
SOURCE(5818, 28)
         b←v6520 = (* ((( (ptr) (* (( (ptr) gf←c0229)+8)/* h←v3084 */  ))+13)+BCK(i←v6476, 10)) );
SOURCE(5848, 14)
         if ((b←v6520 == 0)) {
SOURCE(5862, 4)
            goto lab←L100044;
            };
SOURCE(5925, 131)
         if (((* (( (ptr) formal←c0230)+4) ) == 0) || ((* (( (ptr) b←v6520)+1) ) == (* (( (ptr) formal←c0230)+4) ))) {
SOURCE(5977, 79)
            {
               word tc41;
               word idx42;
               word limit43;
               if (((* (( (ptr) b←v6520)+15) ) < (* (( (ptr) b←v6520)+16) ))) {
                  tc41 =  (word) XR←EqualWords((( (ptr) (( (W4Pt) (( (ptr) b←v6520)+18))+(
/*1*/   idx42 = (* (( (ptr) b←v6520)+15) ),
/*1*/   limit43 = (* (( (ptr) b←v6520)+17) ),
/*1*/   BCK(idx42, limit43)
/*1*/   )))+2), (( (ptr) (* (( (ptr) gf←c0229)+8)/* h←v3084 */  ))+4), 2);
                  }
               else {
                  tc41 =  (word) 0;
                  };
               if (tc41) {
SOURCE(6043, 13)
                  (void) (XR←MonitorExit((word) (( (bPt) gf←c0229)+16)/* LOCK←v2860 */ ));
                  (* (( (ptr) formal←c0230)+5) ) = 1;
                  return(1);
                  };
               };
            };
         };
      lab←L100044: ;
      i←v6476 = (i←v6476 + 1);
      if ((i←v6476 < noName←c15688)) {
         goto lab←L100045;
         };
      lab←L100042: ;
      };
SOURCE(6067, 14)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c0229)+16)/* LOCK←v2860 */ ));
   (* (( (ptr) formal←c0230)+5) ) = 0;
   return(1);
   /* c2c skipped dead code */ 
   }

static void TimeoutEvent←P900(formal←c0122)
   word formal←c0122;
   {
   register ptr gf←c16872 =  (ptr) &globalframe;
   W4 var←c5292;
   word var←c5320;
   W2 now←v6564;
   W2 tz←v6592;
   /* TimeoutEvent: */ 
SOURCE(6087, 224)
SOURCE(6188, 41)
   {
      word var←c15752;
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c16872)+70)/* var←c15720 */  ))+31) );
      var←c15752 = (word) ( *( (fPt) ((*  (ptr) pd44 ))))((word) &now←v6564, (word) &tz←v6592, pd44);
      };
SOURCE(6231, 80)
   {
      word var←c15816;
      var←c15816 = (* (( (ptr) gf←c16872)+23) );
      var←c5292.f0 = 4294901760;
      var←c5292.f1 = 0;
      (*  (W2Pt) (( (ptr) &var←c5292)+2) ) = now←v6564;
      var←c5320 = var←c15816;
      /* removed tail goto */ 
      };
   (*  (W4Pt) formal←c0122 ) = var←c5292;
   (* (( (ptr) formal←c0122)+4) ) = var←c5320;
   return;
   }

static void ThreadRead←P960(formal←c0128, formal←c0285)
   word formal←c0128;
   word formal←c0285;
   {
   W13 var←c16904;
   /* declaration of timeout←v5380 skipped */ 
   register ptr gf←c16936 =  (ptr) &globalframe;
   /* declaration of e←v5424 skipped */ 
   /* declaration of deviceName←v5452 skipped */ 
   /* declaration of dispatch←v5480 skipped */ 
   /* declaration of var←c15848 skipped */ 
   (* (( (ptr) &var←c16904)+4)/* timeout←v5380 */  ) = formal←c0285;
   /* ThreadRead: */ 
SOURCE(6317, 1270)
   {
      word tmpAddr45;
      tmpAddr45 = (word) (( (ptr) &var←c16904)+11)/* var←c15848 */ ;
      (*  (ptr) tmpAddr45 ) = ( ((word)  (fPt) GetEvent←P1848) );
      (* (( (ptr) tmpAddr45) + 1) ) = 1;
      };
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c16936)+16)/* LOCK←v2860 */ ));
SOURCE(6317, 1270)
   (* (( (ptr) &var←c16904)+9)/* deviceName←v5452 */  ) = 0;
SOURCE(6317, 1270)
   (* (( (ptr) &var←c16904)+10)/* dispatch←v5480 */  ) = 0;
SOURCE(6461, 1126)
   {
      word var←c0253;
      var←c0253 = (word) &var←c16904;
       (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2424) ), ( ((word)  (fPt) NoName←Q2604) ), var←c0253);
      };
   /* removed tail goto */ 
   (void) (XR←MonitorExit((word) (( (bPt) gf←c16936)+16)/* LOCK←v2860 */ ));
   (*  (W4Pt) formal←c0128 ) = (*  (W4Pt) (( (ptr) &var←c16904)+5)/* e←v5424 */  );
   (* (( (ptr) formal←c0128)+4) ) = (* (( (ptr) &var←c16904)+9)/* deviceName←v5452 */  );
   (* (( (ptr) formal←c0128)+5) ) = (* (( (ptr) &var←c16904)+10)/* dispatch←v5480 */  );
   return;
   }

static word NoName←Q2424(formal←c0234)
   word formal←c0234;
   {
   register ptr gf←c0233 =  (ptr) &globalframe;
SOURCE(6484, 33)
SOURCE(7165, 388)
   if ((0 == (word) GetEvent←P1848((word) ((( (bPt) formal←c0234)+44))))) {
SOURCE(7190, 363)
      if (( (int)(* (( (ptr) formal←c0234)+4) ) ==  (int)0)) {
SOURCE(7210, 46)
         {
            W5 var←c15880;
            (void) TimeoutEvent←P900((word) (&var←c15880));
            (* (( (ptr) formal←c0234)+9) ) = var←c15880.f4;
            (*  (W4Pt) (( (ptr) formal←c0234)+5) ) = (*  (W4Pt) &var←c15880 );
            };
         }
      else {
SOURCE(7256, 297)
SOURCE(7258, 151)
         if (( (int)(* (( (ptr) formal←c0234)+4) ) ==  (int)2147483647)) {
SOURCE(7295, 47)
            {
               word pd46;
               pd46 = (* (( (ptr) (* (( (ptr) gf←c0233)+69)/* var←c15176 */  ))+10) );
               (void) ( *( (fPt) ((*  (ptr) pd46 ))))((word) ((( (bPt) (* (( (ptr) gf←c0233)+8)/* h←v3084 */  ))+24)), pd46);
               };
            }
         else {
SOURCE(7342, 67)
            {
               word var←c15912;
               {
                  word pd47;
                  word idx48;
                  pd47 = (* (( (ptr) (* (( (ptr) gf←c0233)+69)/* var←c15176 */  ))+6) );
                  var←c15912 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((
                        idx48 = (* (( (ptr) formal←c0234)+4) ),
                        SGNCK(idx48)
                        ), pd47);
                  };
               {
                  word pd49;
                  pd49 = (* (( (ptr) (* (( (ptr) gf←c0233)+69)/* var←c15176 */  ))+9) );
                  (void) ( *( (fPt) ((*  (ptr) pd49 ))))((word) (( (bPt) (* (( (ptr) gf←c0233)+8)/* h←v3084 */  ))+24), var←c15912, pd49);
                  };
               };
            };
SOURCE(7411, 122)
         lab←L100053: ;
SOURCE(7414, 21)
         (void) (XR←Wait((word) (( (bPt) gf←c0233)+16)/* LOCK←v2860 */ , (word) (( (bPt) (* (( (ptr) gf←c0233)+8)/* h←v3084 */  ))+24)
            ));
SOURCE(7437, 19)
         if ((0 != (word) GetEvent←P1848((word) ((( (bPt) formal←c0234)+44))))) {
SOURCE(7456, 4)
            goto lab←L100052;
            };
SOURCE(7462, 71)
         if (( (int)(* (( (ptr) formal←c0234)+4) ) !=  (int)2147483647)) {
SOURCE(7501, 32)
            {
               W5 var←c15944;
               (void) TimeoutEvent←P900((word) (&var←c15944));
               (* (( (ptr) formal←c0234)+9) ) = var←c15944.f4;
               (*  (W4Pt) (( (ptr) formal←c0234)+5) ) = (*  (W4Pt) &var←c15944 );
               };
SOURCE(7535, 4)
            goto lab←L100052;
            };
         goto lab←L100053;
         lab←L100052: ;
         };
      };
SOURCE(7559, 28)
   (*  (W2Pt) (( (ptr) (* (( (ptr) gf←c0233)+8)/* h←v3084 */  ))+4) ) = (*  (W2Pt) (( (ptr) formal←c0234)+7) );
   return(0);
   }

static word GetEvent←P1848(formal←c17000)
   word formal←c17000;
   {
   register ptr gf←c16968 =  (ptr) &globalframe;
   word var←c6712;
   word best←v6740 = 0;
   word anyActive←v6768 = 0;
   formal←c17000 = (formal←c17000 - 44);
   /* GetEvent: */ 
SOURCE(6484, 33)
SOURCE(6577, 288)
   {
      register word i←v6812 = 0;
      register word noName←c15976;
      noName←c15976 = (* (( (ptr) (* (( (ptr) gf←c16968)+8)/* h←v3084 */  ))+12) );
      if ((i←v6812 >= noName←c15976)) {
         goto lab←L100054;
         };
      lab←L100057: ;
      {
         word b←v6856;
SOURCE(6610, 28)
         b←v6856 = (* ((( (ptr) (* (( (ptr) gf←c16968)+8)/* h←v3084 */  ))+13)+BCK(i←v6812, 10)) );
SOURCE(6640, 14)
         if ((b←v6856 == 0)) {
SOURCE(6654, 4)
            goto lab←L100056;
            };
SOURCE(6660, 33)
         if ((0 != anyActive←v6768)) {
            anyActive←v6768 =  (unsigned) 1;
            }
         else {
            anyActive←v6768 =  (unsigned) (0 != (*  (ptr) b←v6856 ));
            };
SOURCE(6695, 170)
         if ( ( (0 != (*  (ptr) b←v6856 )) ? ((* (( (ptr) b←v6856)+15) ) < (* (( (ptr) b←v6856)+16) )) : 0 ) ) {
SOURCE(6734, 131)
            {
               word idx51;
               word limit52;
               if ((best←v6740 == 0)) { goto then050;};
               if ((0 != (word) InOrder←P720((*  (W2Pt) (( (ptr) (( (W4Pt) (( (ptr) b←v6856)+18))+(
                           idx51 = (* (( (ptr) b←v6856)+15) ),
                           limit52 = (* (( (ptr) b←v6856)+17) ),
                           BCK(idx51, limit52)
                           )))+2) ), (*  (W2Pt) (( (ptr) formal←c17000)+7) )))) {
                  then050: ;
SOURCE(6791, 8)
                  best←v6740 = b←v6856;
SOURCE(6801, 14)
                  {
                     word idx53;
                     word limit54;
                     (*  (W4Pt) (( (ptr) formal←c17000)+5) ) = (* (( (W4Pt) (( (ptr) b←v6856)+18))+(
                           idx53 = (* (( (ptr) b←v6856)+15) ),
                           limit54 = (* (( (ptr) b←v6856)+17) ),
                           BCK(idx53, limit54)
                           )) );
                     };
SOURCE(6817, 25)
                  (* (( (ptr) formal←c17000)+9) ) = (* (( (ptr) b←v6856)+1) );
SOURCE(6844, 21)
                  (* (( (ptr) formal←c17000)+10) ) = XR←CheckProc(* (( (ptr) b←v6856)+4) );
                  };
               };
            };
         };
      lab←L100056: ;
      i←v6812 = (i←v6812 + 1);
      if ((i←v6812 < noName←c15976)) {
         goto lab←L100057;
         };
      lab←L100054: ;
      };
SOURCE(6882, 142)
   if ((0 == anyActive←v6768)) {
SOURCE(6906, 81)
      (* (( (ptr) formal←c17000)+5) ) = 4294901760;
      (* (( (ptr) formal←c17000)+6) ) = 0;
      (*  (W2Pt) (( (ptr) formal←c17000)+7) ) = (*  (W2Pt) (( (ptr) (* (( (ptr) gf←c16968)+8)/* h←v3084 */  ))+4) );
SOURCE(6989, 20)
      (* (( (ptr) formal←c17000)+9) ) = (* (( (ptr) gf←c16968)+24) );
SOURCE(7011, 13)
      return(1);
      };
SOURCE(7029, 33)
   if ((best←v6740 == 0)) {
SOURCE(7048, 14)
      return(0);
      };
SOURCE(7064, 27)
   (* (( (ptr) best←v6740)+15) ) = ((* (( (ptr) best←v6740)+15) ) + 1);
SOURCE(7093, 53)
   if (((* (( (ptr) best←v6740)+15) ) == (* (( (ptr) best←v6740)+16) ))) {
SOURCE(7123, 23)
      (void) (XR←Notify((word) (( (bPt) best←v6740)+28)));
      };
SOURCE(7148, 14)
   return(1);
   }

static void ProcessInput←P1020(formal←c0286, formal←c0287, formal←c0288, formal←c0289)
   word formal←c0286;
   word formal←c0287;
   word formal←c0288;
   word formal←c0289;
   {
   W8 var←c17032;
   /* declaration of viewersWorld←v5540 skipped */ 
   /* declaration of goAway←v5568 skipped */ 
   /* declaration of updateMouse←v5596 skipped */ 
   /* declaration of updatePen←v5624 skipped */ 
   var←c17032.f4/* viewersWorld←v5540 */  = formal←c0286;
   var←c17032.f5/* goAway←v5568 */  = formal←c0287;
   var←c17032.f6/* updateMouse←v5596 */  = formal←c0288;
   var←c17032.f7/* updatePen←v5624 */  = formal←c0289;
   /* ProcessInput: */ 
SOURCE(7593, 265)
SOURCE(7756, 88)
SOURCE(7756, 88)
   {
      word var←c07;
      {
         word var←c0254;
         var←c0254 = (word) &var←c17032;
         var←c07 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2484) ), ( ((word)  (fPt) NoName←Q2544) ), var←c0254);
         };
      /* removed trivial cond node */ 
      };
SOURCE(7851, 7)
   (void) Close←P180();
   }

static word NoName←Q2484(formal←c0237)
   word formal←c0237;
   {
SOURCE(7784, 60)
   (void) DoProcessInput←P1080((* (( (ptr) formal←c0237)+4) ), (* (( (ptr) formal←c0237)+5) ), (* (( (ptr) formal←c0237)+6) ), (* (
         ( (ptr) formal←c0237)+7) ));
   return(0);
   }

static void DoProcessInput←P1080(viewersWorld←v5684, goAway←v5712, updateMouse←v5740, updatePen←v5768)
   word viewersWorld←v5684;
   word goAway←v5712;
   word updateMouse←v5740;
   word updatePen←v5768;
   {
   register ptr gf←c17064 =  (ptr) &globalframe;
   W4 e←v6928;
   word deviceName←v6956 = 0;
   word dispatch←v6984 = 0;
   word userInput←v7012;
   /* DoProcessInput: */ 
SOURCE(7864, 798)
SOURCE(8306, 71)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c17064)+71)/* var←c16008 */  ))+4) );
      userInput←v7012 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))(viewersWorld←v5684, pd55);
      };
SOURCE(8380, 44)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c17064)+69)/* var←c15176 */  ))+13) );
      (void) ( *( (fPt) ((*  (ptr) pd56 ))))(4, pd56);
      };
SOURCE(8426, 179)
   lab←L100064: ;
SOURCE(8429, 36)
   {
      W6 var←c16040;
      (void) Read←P780((word) &var←c16040, 50);
      dispatch←v6984 = XR←CheckProc(var←c16040.f5);
      deviceName←v6956 = var←c16040.f4;
      e←v6928 = (*  (W4Pt) &var←c16040 );
      };
SOURCE(8467, 27)
   if ((deviceName←v6956 == (* (( (ptr) gf←c17064)+24) ))) {
SOURCE(8494, 4)
      goto lab←L100063;
      };
SOURCE(8521, 84)
   if ((dispatch←v6984 != 0)) {
SOURCE(8544, 61)
      {
         word var←c16072;
         var←c16072 = (word) GetClientData←P480(deviceName←v6956);
         (void) ( *( (fPt) ((*  (ptr) dispatch←v6984 ))))(e←v6928, deviceName←v6956, 0, var←c16072, dispatch←v6984);
         };
      };
   goto lab←L100064;
   lab←L100063: ;
SOURCE(8629, 11)
   (void) SetHToNIL←P1140();
SOURCE(8642, 20)
   (void) StartSerialDevices←P1260();
   }

static void SetHToNIL←P1140()
   {
   register ptr gf←c17096 =  (ptr) &globalframe;
   /* SetHToNIL: */ 
SOURCE(8669, 33)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17096)+16)/* LOCK←v2860 */ ));
SOURCE(8696, 6)
   (* (( (ptr) gf←c17096)+8)/* h←v3084 */  ) = 0;
SOURCE(8669, 33)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17096)+16)/* LOCK←v2860 */ ));
   return;
   }

static void WaitForRegistration←P1200()
   {
   register ptr gf←c17128 =  (ptr) &globalframe;
   word vw←v7056;
   /* WaitForRegistration: */ 
SOURCE(8708, 165)
   (void) (XR←MonitorEntry((word) (( (bPt) gf←c17128)+16)/* LOCK←v2860 */ ));
SOURCE(8745, 57)
   {
      word pd57;
      pd57 = (* (( (ptr) (* (( (ptr) gf←c17128)+72)/* var←c16104 */  ))+4) );
      vw←v7056 = (word) ( *( (fPt) ((*  (ptr) pd57 ))))(pd57);
      };
SOURCE(8804, 15)
   (void) (XR←Wait((word) (( (bPt) gf←c17128)+16)/* LOCK←v2860 */ , (word) (( (bPt) gf←c17128)+36)/* registerCV←v3112 */ ));
SOURCE(8821, 52)
   {
      W2 var←c16136;
      {
         W2 var←c0158;
         word var←c0157;
         var←c0157 = XR←ExtensionAlloc(8);
         {
            word tmpAddr58;
            tmpAddr58 = (word) var←c0157;
            (*  (ptr) tmpAddr58 ) = ( ((word)  (fPt) NoName←Q3084) );
            (* (( (ptr) tmpAddr58) + 1) ) = 0;
            (* (( (ptr) tmpAddr58) + 2) ) = (word) (( (bPt) gf←c17128)+132)/* var←c14504 */ ;
            (* (( (ptr) tmpAddr58) + 3) ) = 0;
            (* (( (ptr) tmpAddr58) + 4) ) = vw←v7056;
            (* (( (ptr) tmpAddr58) + 5) ) = 0;
            (* (( (ptr) tmpAddr58) + 6) ) = 0;
            (* (( (ptr) tmpAddr58) + 7) ) = 0;
            };
         (void) XR←Fork((word) &var←c0158, var←c0157);
         var←c16136 = var←c0158;
         };
      {
         word pd59;
         pd59 = (* (( (ptr) (* (( (ptr) gf←c17128)+69)/* var←c15176 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd59 ))))(var←c16136, pd59);
         };
      };
SOURCE(8708, 165)
   (void) (XR←MonitorExit((word) (( (bPt) gf←c17128)+16)/* LOCK←v2860 */ ));
   return;
   }

static void StartSerialDevices←P1260()
   {
   register ptr gf←c17160 =  (ptr) &globalframe;
   /* StartSerialDevices: */ 
SOURCE(8879, 72)
SOURCE(8909, 42)
   {
      W2 var←c16168;
      {
         W2 var←c0164;
         word var←c0163;
         var←c0163 = XR←ExtensionAlloc(4);
         {
            word tmpAddr60;
            tmpAddr60 = (word) var←c0163;
            (*  (ptr) tmpAddr60 ) = ( ((word)  (fPt) NoName←Q3144) );
            (* (( (ptr) tmpAddr60) + 1) ) = 0;
            (* (( (ptr) tmpAddr60) + 2) ) = (word) (( (bPt) gf←c17160)+108)/* var←c14408 */ ;
            (* (( (ptr) tmpAddr60) + 3) ) = 0;
            };
         (void) XR←Fork((word) &var←c0164, var←c0163);
         var←c16168 = var←c0164;
         };
      {
         word pd61;
         pd61 = (* (( (ptr) (* (( (ptr) gf←c17160)+69)/* var←c15176 */  ))+11) );
         (void) ( *( (fPt) ((*  (ptr) pd61 ))))(var←c16168, pd61);
         };
      };
   }

static void NoName←Q2544(formal←c0171, formal←c200028, formal←c200029, formal←c200030, formal←c200031)
   word formal←c0171;
   word formal←c200028;
   word formal←c200029;
   word formal←c200030;
   word formal←c200031;
   {
   if ((formal←c200029 == XR←Aborted)) {
SOURCE(7774, 8)
      (*  (ptr) formal←c0171 ) = 2;
      (* (( (ptr) formal←c0171)+1) ) = 4;
      return;
      };
   (*  (ptr) formal←c0171 ) = 0;
   (* (( (ptr) formal←c0171)+1) ) = 0;
   return;
   }

static void NoName←Q2604(formal←c0176, formal←c200024, formal←c200025, formal←c200026, formal←c200027)
   word formal←c0176;
   word formal←c200024;
   word formal←c200025;
   word formal←c200026;
   word formal←c200027;
   {
   register ptr gf←c0242 =  (ptr) &globalframe;
   if ((formal←c200025 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0242)+16)/* LOCK←v2860 */ ));
      };
   (*  (ptr) formal←c0176 ) = 0;
   (* (( (ptr) formal←c0176)+1) ) = 0;
   return;
   }

static void NoName←Q2664(formal←c0181, formal←c200020, formal←c200021, formal←c200022, formal←c200023)
   word formal←c0181;
   word formal←c200020;
   word formal←c200021;
   word formal←c200022;
   word formal←c200023;
   {
   register ptr gf←c0243 =  (ptr) &globalframe;
   if ((formal←c200021 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0243)+16)/* LOCK←v2860 */ ));
      };
   (*  (ptr) formal←c0181 ) = 0;
   (* (( (ptr) formal←c0181)+1) ) = 0;
   return;
   }

static void NoName←Q2724(formal←c0186, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0186;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0244 =  (ptr) &globalframe;
   if ((formal←c200017 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0244)+16)/* LOCK←v2860 */ ));
      };
   (*  (ptr) formal←c0186 ) = 0;
   (* (( (ptr) formal←c0186)+1) ) = 0;
   return;
   }

static void NoName←Q2784(formal←c0191, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0191;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0245 =  (ptr) &globalframe;
   if ((formal←c200013 == XR←Unwind)) {
      (void) (XR←MonitorExit((word) (( (bPt) gf←c0245)+16)/* LOCK←v2860 */ ));
      };
   (*  (ptr) formal←c0191 ) = 0;
   (* (( (ptr) formal←c0191)+1) ) = 0;
   return;
   }

static void NoName←Q2844(formal←c0196, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0196;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   if ((formal←c200009 == XR←Aborted)) {
SOURCE(4431, 8)
      (*  (ptr) formal←c0196 ) = 2;
      (* (( (ptr) formal←c0196)+1) ) = 3;
      return;
      };
   (*  (ptr) formal←c0196 ) = 0;
   (* (( (ptr) formal←c0196)+1) ) = 0;
   return;
   }

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

static void NoName←Q2964(formal←c0206, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0206;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   if ((formal←c200001 == XR←Unwind)) {
      };
   (*  (ptr) formal←c0206 ) = 0;
   (* (( (ptr) formal←c0206)+1) ) = 0;
   return;
   }

static word NoName←Q3024(formal←c077)
   word formal←c077;
   {
   W2 var←c079;
   word var←c078;
   /* intermediary proc for a FORK, nArgs: 2, nRets: 0 */ 
   var←c079 = (*  (W2Pt) (( (ptr) formal←c077)+4) );
   var←c078 = (* (( (ptr) formal←c077)+2) );
   formal←c077 = XR←ExtensionFree(formal←c077);
   (void) ( *( (fPt) ((*  (ptr) var←c078 ))))(var←c079.f0, var←c079.f1, var←c078);
   return(0);
   }

static word NoName←Q3084(formal←c0159)
   word formal←c0159;
   {
   W4 var←c0161;
   word var←c0160;
   /* intermediary proc for a FORK, nArgs: 4, nRets: 0 */ 
   var←c0161 = (*  (W4Pt) (( (ptr) formal←c0159)+4) );
   var←c0160 = (* (( (ptr) formal←c0159)+2) );
   formal←c0159 = XR←ExtensionFree(formal←c0159);
   (void) ( *( (fPt) ((*  (ptr) var←c0160 ))))(var←c0161.f0, var←c0161.f1, var←c0161.f2, var←c0161.f3, var←c0160);
   return(0);
   }

static word NoName←Q3144(formal←c0165)
   word formal←c0165;
   {
   word var←c0166;
   /* intermediary proc for a FORK, nArgs: 0, nRets: 0 */ 
   var←c0166 = (* (( (ptr) formal←c0165)+2) );
   formal←c0165 = XR←ExtensionFree(formal←c0165);
   (void) ( *( (fPt) ((*  (ptr) var←c0166 ))))(var←c0166);
   return(0);
   }

/* file: X11SerialDevicesImpl, module: X11SerialDevicesImpl, compiled at: September 30, 1993 10:52:59 am PDT */ 
extern void XR←install←X11SerialDevicesImpl() {
   NoName←Q2004();
   }
extern void XR←run←X11SerialDevicesImpl() { XR←Start(&globalframe); }