/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation.  All rights reserved. */
/* time: October 29, 1993 2:29:49 pm PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: CIIHighlightDeviceImpl, module: CIIHighlightDeviceImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [585200932,350802433] CIIHighlightDeviceImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {W8 f; W6 r;} W14;
typedef word (*fPt)();
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1;} W2;
typedef struct {W8 f; W2 r;} W10;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef struct {W8 f; word r;} W9;
typedef W3 *W3Pt;
#define SOURCE(p, l) /* source p, l */
static float fc33 = 255.0;
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
static float fc47 = 1.0;
static void NoName←Q792();
static void CIIHighlightDeviceImpl←P0();
static word SetColorTable←P60();
static word NoName←Q852();
static word CreateHandleFromRasters←P120();
static word NoName←Q912();
static word SetOutputBuffers←P180();
static word NoName←Q972();
extern word CII←HighlightDeviceSetup();
static void NoName←Q1032();
static void NoName←Q1092();
static void NoName←Q1152();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\000\246\143\260\300\265\077\145\155\101\240\000\000"};
static struct {unsigned f; char r[4];} string2 = {196611, "\004\177\377"};
static struct {unsigned f; char r[44];} string3 = {2818092, "\216\260\007\006\154\145\156\147\164\150\210\241\000\200\177\377\005\004\164\145\170\164\254\206\012\011\155\141\170\114\145\156\147\164\150\210\241\000\200\177\377\243\261"};
static struct {unsigned f; char r[4];} string4 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\237\156\146\367\300\026\157\147\122\100\164\000\000"};
static struct {unsigned f; char r[4];} string6 = {131074, "\004\005\000"};
static struct {unsigned f; char r[16];} string7 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\042\341\165\044\300\024\350\322\001\100\200\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\241\011\366\176\300\127\130\105\301\101\334\000\000"};
static struct {unsigned f; char r[4];} string10 = {131074, "\003\004\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "\257\300\207\334\320\152\300\253\325\361\210\100\200\000\000"};
static struct {unsigned f; char r[24];} string12 = {1310744, "RGBPictorialMapColor\000\000\000"};
static struct {unsigned f; char r[16];} string13 = {983056, "Xerox/Solid/Red"};
static struct {unsigned f; char r[20];} string14 = {1245204, "BruteForceHighlight"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\042\341\165\044\300\024\350\322\001\100\164\000\000"};
static struct {unsigned f; char r[8];} string16 = {393222, "\006\001@H\004\007\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\074\026\324\154\300\201\167\130\113\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\000\246\143\260\300\265\077\145\155\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\074\177\166\242\300\203\113\217\044\100\150\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300ZT?\010\300\370;=;@h\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\151\316\011\300\300\225\037\327\014\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\045\370\116\014\300\270\323\074\131\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\143\050\357\204\300\236\327\233\116\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\235\171\276\022\300\260\151\335\343\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\350\311\135\367\300\362\215\374\250\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\067\246\211\216\300\354\224\134\067\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300\275\320\070\317\300\004\110\363\366\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[13]; 
   } globalframe = {
   {0}, (word) CII←HighlightDeviceSetup, 0, (word) SetOutputBuffers←P180, 
   0, (word) CreateHandleFromRasters←P120, 0, (word) SetColorTable←P60, 
   0, (word) CIIHighlightDeviceImpl←P0, {0}
   };

static void NoName←Q792()
   {
   register ptr gf←c0102 =  (ptr) &globalframe;
   word var←c22160;
   (* (( (ptr) gf←c0102)+4) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0102)+6) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4);
   (* (( (ptr) gf←c0102)+8) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string6);
   (* (( (ptr) gf←c0102)+10) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string4);
   (* (( (ptr) gf←c0102)+11) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string4);
   (* (( (ptr) gf←c0102)+12) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
   (* (( (ptr) gf←c0102)+13) ) = (word) XR←GetTypeIndexS((word) (&string11));
   (*  (ptr) (( (bPt) gf←c0102)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0102)+6) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0102)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0102)+10) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0102)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0102)+6) ), (word) &string14);
   (void) XR←DeclareGlobalFrame((word) "CIIHighlightDeviceImpl", &globalframe, (word) XR←GetTypeIndex((word) &string15, 0, (word) &string16)
      , (word) (( (bPt) gf←c0102)+116)/* var←c21072 */ );
   var←c22160 = (word) XR←ImportInterface((word) "CII", (word) XR←GetTypeIndexS((word) (&string17)), 69);
   (* (( (ptr) gf←c0102)+36)/* var←c21456 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 68436741);
   (void) XR←ImportProcS(var←c22160, 67649794);
   (void) XR←ImportProcS(var←c22160, 67911683);
   (void) XR←ImportProcS(var←c22160, 68436997);
   (void) XR←ImportProcS(var←c22160, 69222920);
   var←c22160 = (word) XR←ImportInterface((word) "CIIPrivate", (word) XR←GetTypeIndexS((word) (&string18)), 13);
   (* (( (ptr) gf←c0102)+33)/* var←c21200 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 68421381);
   (void) XR←ImportProcS(var←c22160, 68158980);
   (void) XR←ImportProcS(var←c22160, 68158724);
   (void) XR←ImportProcS(var←c22160, 68158468);
   (void) XR←ImportProcS(var←c22160, 67896067);
   (void) XR←ImportProcS(var←c22160, 68683782);
   (void) XR←ImportProcS(var←c22160, 264705);
   (void) XR←ImportProcS(var←c22160, 67636226);
   (void) XR←ImportProcS(var←c22160, 67371265);
   (void) XR←ImportProcS(var←c22160, 67633154);
   var←c22160 = (word) XR←ImportInterface((word) "Imager", (word) XR←GetTypeIndexS((word) (&string19)), 84);
   (* (( (ptr) gf←c0102)+39)/* var←c21680 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 67383553);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string20)), 32);
   (* (( (ptr) gf←c0102)+35)/* var←c21424 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 67371521);
   (void) XR←ImportProcS(var←c22160, 67898625);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerDeviceInterchange", (word) XR←GetTypeIndexS((word) (&string21)), 2);
   (* (( (ptr) gf←c0102)+42)/* var←c22000 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 262401);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerError", (word) XR←GetTypeIndexS((word) (&string22)), 3);
   (* (( (ptr) gf←c0102)+31)/* var←c21104 */  ) = var←c22160;
   var←c22160 = (word) XR←ImportInterface((word) "ImagerHighlightContext", (word) XR←GetTypeIndexS((word) (&string23)), 4);
   (* (( (ptr) gf←c0102)+37)/* var←c21584 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 524802);
   (void) XR←ImportProcS(var←c22160, 69206278);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerHighlightContextBackdoorExtras", (word) XR←GetTypeIndexS((word) (&string24))
      , 3);
   (* (( (ptr) gf←c0102)+34)/* var←c21328 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 67633666);
   (void) XR←ImportProcS(var←c22160, 524546);
   (void) XR←ImportProcS(var←c22160, 524290);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerManhattan", (word) XR←GetTypeIndexS((word) (&string25)), 24);
   (* (( (ptr) gf←c0102)+41)/* var←c21840 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 68158209);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerRaster", (word) XR←GetTypeIndexS((word) (&string26)), 13);
   (* (( (ptr) gf←c0102)+38)/* var←c21616 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 67373569);
   var←c22160 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string27)), 55);
   (* (( (ptr) gf←c0102)+40)/* var←c21744 */  ) = var←c22160;
   (void) XR←ImportProcS(var←c22160, 67371777);
   var←c22160 = (word) XR←ImportInterface((word) "RuntimeError", (word) XR←GetTypeIndexS((word) (&string28)), 27);
   (* (( (ptr) gf←c0102)+32)/* var←c21168 */  ) = var←c22160;
   }

static void CIIHighlightDeviceImpl←P0(formal←c028, formal←c027)
   word formal←c028;
   word formal←c027;
   {
   /* CIIHighlightDeviceImpl: */ 
   }

static word SetColorTable←P60(formal←c0122, formal←c0123, formal←c0124, formal←c0125, formal←c0126, formal←c0127, formal←c0128, formal←c0129)
   word formal←c0122;
   word formal←c0123;
   word formal←c0124;
   word formal←c0125;
   word formal←c0126;
   word formal←c0127;
   word formal←c0128;
   word formal←c0129;
   {
   W14 var←c22192;
   /* declaration of h←v3672 skipped */ 
   /* declaration of name←v3700 skipped */ 
   /* declaration of identification←v3728 skipped */ 
   /* declaration of format←v3756 skipped */ 
   /* declaration of tableBase←v3784 skipped */ 
   /* declaration of tableByteLength←v3812 skipped */ 
   /* declaration of replacementHint←v3840 skipped */ 
   /* declaration of stampValueResult←v3868 skipped */ 
   /* declaration of var←c01 skipped */ 
   /* declaration of res←v3936 skipped */ 
   (* (( (ptr) &var←c22192)+4)/* h←v3672 */  ) = formal←c0122;
   (* (( (ptr) &var←c22192)+5)/* name←v3700 */  ) = formal←c0123;
   (* (( (ptr) &var←c22192)+6)/* identification←v3728 */  ) = formal←c0124;
   (* (( (ptr) &var←c22192)+7)/* format←v3756 */  ) = formal←c0125;
   (* (( (ptr) &var←c22192)+8)/* tableBase←v3784 */  ) = formal←c0126;
   (* (( (ptr) &var←c22192)+9)/* tableByteLength←v3812 */  ) = formal←c0127;
   (* (( (ptr) &var←c22192)+10)/* replacementHint←v3840 */  ) = formal←c0128;
   (* (( (ptr) &var←c22192)+11)/* stampValueResult←v3868 */  ) = formal←c0129;
   /* SetColorTable: */ 
SOURCE(1061, 1390)
SOURCE(1061, 1390)
   (* (( (ptr) &var←c22192)+13)/* res←v3936 */  ) = 0;
SOURCE(1283, 1168)
SOURCE(1283, 1168)
   {
      word var←c02;
      {
         word var←c0113;
         var←c0113 = (word) &var←c22192;
         var←c02 = (word) XR←Enable(( ((word)  (fPt) NoName←Q852) ), ( ((word)  (fPt) NoName←Q1152) ), var←c0113);
         };
      if ((var←c02 == 2)) {
         /* removed tail goto */ 
         }
      else {
         if ((var←c02 == 1)) {
            goto lab←L02;
            };
         };
      };
SOURCE(1061, 1390)
   return((* (( (ptr) &var←c22192)+13)/* res←v3936 */  ));
   lab←L02: ;
   return((* (( (ptr) &var←c22192)+12)/* var←c01 */  ));
   }

static word NoName←Q852(formal←c0104)
   word formal←c0104;
   {
   register ptr gf←c0103 =  (ptr) &globalframe;
SOURCE(1543, 47)
   {
      word state←v4508;
SOURCE(1543, 47)
      state←v4508 = XR←Narrow((*  (ptr) (* (( (ptr) formal←c0104)+4) ) ), (* (( (ptr) gf←c0103)+4) ));
SOURCE(1592, 400)
      {
         word pd29;
         pd29 = (* (( (ptr) (* (( (ptr) gf←c0103)+33)/* var←c21200 */  ))+4) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd29 ))))((* (( (ptr) formal←c0104)+7) ), (* (( (ptr) gf←c0103)+20) ), pd29))) {
SOURCE(1657, 107)
            if (((* (( (ptr) formal←c0104)+9) ) != 524288)) {
SOURCE(1738, 26)
               (* (( (ptr) formal←c0104)+12) ) = 1052;
               return(1);
               };
SOURCE(1766, 202)
            {
               word var←c21232;
               {
                  word var←c21264;
                  word var←c21296;
                  {
                     word pd30;
                     pd30 = (* (( (ptr) (* (( (ptr) gf←c0103)+33)/* var←c21200 */  ))+5) );
                     var←c21264 = (word) ( *( (fPt) ((*  (ptr) pd30 ))))((* ((( (ptr) formal←c0104)+5)) ), pd30);
                     };
                  var←c21296 = XR←NewObject(12, (* (( (ptr) gf←c0103)+8) ));
                  (*  (ptr) var←c21296 ) = var←c21264;
                  (* (( (ptr) var←c21296)+1) ) = (* (( (ptr) formal←c0104)+8) );
                  var←c21232 = var←c21296;
                  };
               {
                  word pd31;
                  pd31 = (* (( (ptr) (* (( (ptr) gf←c0103)+34)/* var←c21328 */  ))+4) );
                  (void) ( *( (fPt) ((*  (ptr) pd31 ))))((* (( (ptr) state←v4508)+1) ), var←c21232, pd31);
                  };
               };
SOURCE(1970, 22)
            (*  (ptr) (* (( (ptr) formal←c0104)+11) ) ) = 0;
            };
         };
SOURCE(1997, 322)
      {
         word pd32;
         pd32 = (* (( (ptr) (* (( (ptr) gf←c0103)+33)/* var←c21200 */  ))+4) );
         if ((0 != (word) ( *( (fPt) ((*  (ptr) pd32 ))))((* (( (ptr) formal←c0104)+7) ), (* (( (ptr) gf←c0103)+18) ), pd32))) {
SOURCE(2061, 260)
            {
               word p←v4564;
SOURCE(2063, 41)
               p←v4564 = (* (( (ptr) formal←c0104)+8) );
SOURCE(2106, 54)
               if (((* (( (ptr) formal←c0104)+9) ) != 3)) {
SOURCE(2134, 26)
                  (* (( (ptr) formal←c0104)+12) ) = 1052;
                  return(1);
                  };
SOURCE(2162, 133)
               {
                  word var←c21360;
                  {
                     W3 var←c21392;
                     {
                        word x34;
                        *(float*)&var←c21392.f0 = (float)(unsigned)(*  (bPt) p←v4564 ) / (
                           x34 = (*  (ptr) &fc33 ),  *(float*)&x34
                           );
                        };
                     {
                        word x35;
                        *(float*)&var←c21392.f1 = (float)(unsigned)(* (( (bPt) p←v4564)+1) ) / (
                           x35 = (*  (ptr) &fc33 ),  *(float*)&x35
                           );
                        };
                     {
                        word x36;
                        *(float*)&var←c21392.f2 = (float)(unsigned)(* (( (bPt) p←v4564)+2) ) / (
                           x36 = (*  (ptr) &fc33 ),  *(float*)&x36
                           );
                        };
                     {
                        word pd37;
                        pd37 = (* (( (ptr) (* (( (ptr) gf←c0103)+35)/* var←c21424 */  ))+17) );
                        var←c21360 = (word) ( *( (fPt) ((*  (ptr) pd37 ))))(var←c21392, pd37);
                        };
                     };
                  {
                     word pd38;
                     pd38 = (* (( (ptr) (* (( (ptr) gf←c0103)+34)/* var←c21328 */  ))+5) );
                     (void) ( *( (fPt) ((*  (ptr) pd38 ))))((* (( (ptr) state←v4508)+1) ), var←c21360, pd38);
                     };
                  };
SOURCE(2297, 22)
               (*  (ptr) (* (( (ptr) formal←c0104)+11) ) ) = 0;
               };
            };
         };
SOURCE(2324, 127)
      {
         word pd39;
         pd39 = (* (( (ptr) (* (( (ptr) gf←c0103)+36)/* var←c21456 */  ))+70) );
         (* (( (ptr) formal←c0104)+12) ) = (word) ( *( (fPt) ((*  (ptr) pd39 ))))((* (( (ptr) formal←c0104)+4) ), (* (( (ptr) formal←c0104)+5)
             ), (* (( (ptr) formal←c0104)+6) ), (* (( (ptr) formal←c0104)+7) ), (* (( (ptr) formal←c0104)+8) ), (* (( (ptr) formal←c0104)+9)
             )
            , (* (( (ptr) formal←c0104)+10) ), (* (( (ptr) formal←c0104)+11) ), pd39);
         };
      return(1);
      };
   /* c2c skipped dead code */ 
   }

static word CreateHandleFromRasters←P120(formal←c0130, logicalDevice←v4024, formal←c0131, formal←c0132, formal←c0133)
   word formal←c0130;
   word logicalDevice←v4024;
   word formal←c0131;
   word formal←c0132;
   word formal←c0133;
   {
   W10 var←c22224;
   /* declaration of s←v3996 skipped */ 
   /* declaration of nRasters←v4052 skipped */ 
   /* declaration of rasters←v4080 skipped */ 
   /* declaration of handleResult←v4108 skipped */ 
   /* declaration of var←c03 skipped */ 
   /* declaration of res←v4212 skipped */ 
   (* (( (ptr) &var←c22224)+4)/* s←v3996 */  ) = formal←c0130;
   (* (( (ptr) &var←c22224)+5)/* nRasters←v4052 */  ) = formal←c0131;
   (* (( (ptr) &var←c22224)+6)/* rasters←v4080 */  ) = formal←c0132;
   (* (( (ptr) &var←c22224)+7)/* handleResult←v4108 */  ) = formal←c0133;
   /* CreateHandleFromRasters: */ 
SOURCE(2457, 1769)
SOURCE(2457, 1769)
   (* (( (ptr) &var←c22224)+9)/* res←v4212 */  ) = 0;
SOURCE(2680, 1546)
SOURCE(2680, 1546)
   {
      word var←c04;
      {
         word var←c0114;
         var←c0114 = (word) &var←c22224;
         var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q912) ), ( ((word)  (fPt) NoName←Q1092) ), var←c0114);
         };
      if ((var←c04 == 3)) {
         /* removed tail goto */ 
         }
      else {
         if ((var←c04 == 1)) {
            goto lab←L04;
            };
         };
      };
SOURCE(2457, 1769)
   return((* (( (ptr) &var←c22224)+9)/* res←v4212 */  ));
   lab←L04: ;
   return((* (( (ptr) &var←c22224)+8)/* var←c03 */  ));
   }

static word NoName←Q912(formal←c0106)
   word formal←c0106;
   {
   register ptr gf←c0105 =  (ptr) &globalframe;
SOURCE(2940, 40)
   {
      word shd←v4620;
      word data←v4648;
SOURCE(2940, 40)
      shd←v4620 = (*  (ptr) (* (( (ptr) formal←c0106)+4) ) );
SOURCE(2982, 41)
      data←v4648 = XR←Narrow((*  (ptr) shd←v4620 ), (* (( (ptr) gf←c0105)+11) ));
SOURCE(3025, 1201)
      if (((* (( (ptr) formal←c0106)+5) ) != 1)) {
SOURCE(3046, 48)
         (* (( (ptr) formal←c0106)+8) ) = 1065;
         return(1);
         }
      else {
SOURCE(3094, 1137)
         {
            word map←v4704;
            word context←v4732;
SOURCE(3096, 69)
            {
               word pd40;
               pd40 = (* (( (ptr) (* (( (ptr) gf←c0105)+33)/* var←c21200 */  ))+16) );
               map←v4704 = (word) ( *( (fPt) ((*  (ptr) pd40 ))))((* (( (ptr) formal←c0106)+6) ), 0, pd40);
               };
SOURCE(3167, 301)
            {
               W2 var←c21520;
               W2 var←c21552;
               {
                  word idx41;
                  var←c21520.f0 = (
                     idx41 = (* (( (ptr) shd←v4620)+1) ),
                     SGNCK(idx41)
                     );
                  };
               {
                  word idx42;
                  var←c21520.f1 = (
                     idx42 = (* (( (ptr) shd←v4620)+2) ),
                     SGNCK(idx42)
                     );
                  };
               var←c21552.f0 = (* (( (ptr) shd←v4620)+4) );
               var←c21552.f1 = (* (( (ptr) shd←v4620)+5) );
               {
                  word pd43;
                  pd43 = (* (( (ptr) (* (( (ptr) gf←c0105)+37)/* var←c21584 */  ))+5) );
                  context←v4732 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))(var←c21520,  (unsigned) ((* (( (bPt) shd←v4620)+15) ) & 017), var←c21552, 1, (*  (ptr) (* (
                        ( (ptr) (* (( (ptr) gf←c0105)+37)/* var←c21584 */  ))+4) ) ), (*  (ptr) data←v4648 ), pd43);
                  };
               };
SOURCE(3470, 49)
            {
               word pd44;
               pd44 = (* (( (ptr) (* (( (ptr) gf←c0105)+37)/* var←c21584 */  ))+6) );
               (void) ( *( (fPt) ((*  (ptr) pd44 ))))(context←v4732, map←v4704, pd44);
               };
SOURCE(3521, 707)
            {
               word iState←v4776;
               word device←v4804;
               word state←v4832;
SOURCE(3523, 92)
               {
                  word pd45;
                  pd45 = (* (( (ptr) (* (( (ptr) gf←c0105)+38)/* var←c21616 */  ))+14) );
                  iState←v4776 = (word) ( *( (fPt) ((*  (ptr) pd45 ))))(context←v4732, pd45);
                  };
SOURCE(3617, 43)
               device←v4804 = (*  (ptr) iState←v4776 );
SOURCE(3662, 375)
               {
                  word var←c21648;
                  word var←c21712;
                  word var←c21776;
                  word var←c21904;
                  word var←c21968;
                  {
                     word pd46;
                     pd46 = (* (( (ptr) (* (( (ptr) gf←c0105)+39)/* var←c21680 */  ))+53) );
                     var←c21648 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))((*  (ptr) (&fc47) ), pd46);
                     };
                  {
                     word pd48;
                     pd48 = (* (( (ptr) (* (( (ptr) gf←c0105)+40)/* var←c21744 */  ))+7) );
                     var←c21712 = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((*  (ptr) (&fc47) ), pd48);
                     };
                  {
                     word var←c21808;
                     word var←c21872;
                     {
                        word pd49;
                        pd49 = (* (( (ptr) (* (( (ptr) gf←c0105)+41)/* var←c21840 */  ))+7) );
                        var←c21808 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))((*  (W4Pt) ((( (ptr) (* (( (ptr) device←v4804)+6) ))+1)) ), pd49);
                        };
                     var←c21872 = XR←NewObject(20, (* (( (ptr) gf←c0105)+12) ));
                     (*  (W4Pt) var←c21872 ) = (*  (W4Pt) (( (ptr) (* (( (ptr) device←v4804)+6) ))+1) );
                     (* (( (ptr) var←c21872)+4) ) = var←c21808;
                     var←c21776 = var←c21872;
                     };
                  var←c21904 = XR←NewObject(20, (* (( (ptr) gf←c0105)+13) ));
                  var←c21968 = XR←NewObject(56, (* (( (ptr) gf←c0105)+4) ));
                  (* (( (ptr) var←c21968)+1) ) = (*  (ptr) iState←v4776 );
                  (* (( (ptr) var←c21968)+4) ) = var←c21648;
                  (* (( (ptr) var←c21968)+6) ) = var←c21712;
                  (* (( (ptr) var←c21968)+7) ) = var←c21776;
                  (* (( (ptr) var←c21968)+11) ) = var←c21904;
                  state←v4832 = var←c21968;
                  };
SOURCE(4039, 19)
               (*  (ptr) iState←v4776 ) = 0;
SOURCE(4060, 55)
               {
                  word pd50;
                  pd50 = (* (( (ptr) (* (( (ptr) gf←c0105)+42)/* var←c22000 */  ))+5) );
                  (void) ( *( (fPt) ((*  (ptr) pd50 ))))(iState←v4776, pd50);
                  };
SOURCE(4117, 109)
               {
                  word pd51;
                  pd51 = (* (( (ptr) (* (( (ptr) gf←c0105)+36)/* var←c21456 */  ))+72) );
                  (*  (ptr) (* (( (ptr) formal←c0106)+7) ) ) = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(state←v4832, (word) (( (bPt) gf←c0105)+92)
                     /* var←c20976 */ , (* (( (ptr) (* (( (ptr) gf←c0105)+36)/* var←c21456 */  ))+69) ), (word) (( (bPt) gf←c0105)+108)/* var←c21040 */ , (* (
                        ( (ptr) (* (( (ptr) gf←c0105)+36)/* var←c21456 */  ))+71) ), pd51);
                  };
               };
            };
         };
      };
   return(0);
   }

static word SetOutputBuffers←P180(formal←c0134, formal←c0135, formal←c0136)
   word formal←c0134;
   word formal←c0135;
   word formal←c0136;
   {
   W9 var←c22256;
   /* declaration of h←v4272 skipped */ 
   /* declaration of nBuffers←v4300 skipped */ 
   /* declaration of outputBuffers←v4328 skipped */ 
   /* declaration of var←c05 skipped */ 
   /* declaration of res←v4420 skipped */ 
   (* (( (ptr) &var←c22256)+4)/* h←v4272 */  ) = formal←c0134;
   (* (( (ptr) &var←c22256)+5)/* nBuffers←v4300 */  ) = formal←c0135;
   (* (( (ptr) &var←c22256)+6)/* outputBuffers←v4328 */  ) = formal←c0136;
   /* SetOutputBuffers: */ 
SOURCE(4238, 674)
SOURCE(4238, 674)
   (* (( (ptr) &var←c22256)+8)/* res←v4420 */  ) = 0;
SOURCE(4379, 533)
SOURCE(4379, 533)
   {
      word var←c06;
      {
         word var←c0115;
         var←c0115 = (word) &var←c22256;
         var←c06 = (word) XR←Enable(( ((word)  (fPt) NoName←Q972) ), ( ((word)  (fPt) NoName←Q1032) ), var←c0115);
         };
      if ((var←c06 == 4)) {
         /* removed tail goto */ 
         }
      else {
         if ((var←c06 == 1)) {
            goto lab←L06;
            };
         };
      };
SOURCE(4238, 674)
   return((* (( (ptr) &var←c22256)+8)/* res←v4420 */  ));
   lab←L06: ;
   return((* (( (ptr) &var←c22256)+7)/* var←c05 */  ));
   }

static word NoName←Q972(formal←c0108)
   word formal←c0108;
   {
   register ptr gf←c0107 =  (ptr) &globalframe;
SOURCE(4577, 335)
   if (( (int)(* (( (ptr) formal←c0108)+5) ) !=  (int)1)) {
SOURCE(4598, 48)
      (* (( (ptr) formal←c0108)+7) ) = 1065;
      return(1);
      }
   else {
SOURCE(4646, 269)
      {
         word state←v4888;
         word map←v4916;
SOURCE(4648, 47)
         state←v4888 = XR←Narrow((*  (ptr) (* (( (ptr) formal←c0108)+4) ) ), (* (( (ptr) gf←c0107)+4) ));
SOURCE(4697, 75)
         {
            word pd52;
            pd52 = (* (( (ptr) (* (( (ptr) gf←c0107)+33)/* var←c21200 */  ))+16) );
            map←v4916 = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) formal←c0108)+6) ), 0, pd52);
            };
SOURCE(4774, 138)
         {
            word pd53;
            pd53 = (* (( (ptr) (* (( (ptr) gf←c0107)+34)/* var←c21328 */  ))+6) );
            if ((0 != (word) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) state←v4888)+1) ), map←v4916, pd53))) {
SOURCE(4878, 34)
               {
                  word pd54;
                  pd54 = (* (( (ptr) (* (( (ptr) gf←c0107)+33)/* var←c21200 */  ))+14) );
                  (void) ( *( (fPt) ((*  (ptr) pd54 ))))(state←v4888, pd54);
                  };
               };
            };
         };
      };
   return(0);
   }

extern word CII←HighlightDeviceSetup()
   {
   register ptr gf←c22288 =  (ptr) &globalframe;
   word var←c4480;
   word data←v4972;
   /* HighlightDeviceSetup: */ 
SOURCE(4922, 248)
SOURCE(4986, 82)
   {
      word var←c22064;
      word var←c22096;
      {
         word pd55;
         pd55 = (* (( (ptr) (* (( (ptr) gf←c22288)+35)/* var←c21424 */  ))+6) );
         var←c22064 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* ((( (ptr) gf←c22288)+19)) ), pd55);
         };
      var←c22096 = XR←NewObject(4, (* (( (ptr) gf←c22288)+11) ));
      (*  (ptr) var←c22096 ) = var←c22064;
      data←v4972 = var←c22096;
      };
SOURCE(5070, 100)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c22288)+33)/* var←c21200 */  ))+12) );
      return((word) ( *( (fPt) ((*  (ptr) pd56 ))))(data←v4972, (* (( (ptr) (* (( (ptr) gf←c22288)+33)/* var←c21200 */  ))+7) ), (* (
            ( (ptr) (* (( (ptr) gf←c22288)+33)/* var←c21200 */  ))+8) ), (* (( (ptr) (* (( (ptr) gf←c22288)+33)/* var←c21200 */  ))+9)
          ), (* (( (ptr) (* (( (ptr) gf←c22288)+33)/* var←c21200 */  ))+10) ), (word) (( (bPt) gf←c22288)+100)/* var←c21008 */ , pd56)
      );
      };
   }

static void NoName←Q1032(formal←c083, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c083;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0110 =  (ptr) &globalframe;
   if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0110)+31)/* var←c21104 */  ))+4) ))) {
      {
         W3 error←v15812;
         error←v15812 = (*  (W3Pt) formal←c200011 );
SOURCE(4411, 38)
         {
            word code←v20800;
            code←v20800 = error←v15812.f0;
            if ((code←v20800 == 0)) {
               (* (( (ptr) formal←c200008)+8) ) = 0;
               }
            else {
               (* (( (ptr) formal←c200008)+8) ) = (code←v20800 + 1000);
               };
            };
SOURCE(4451, 9)
         (*  (ptr) formal←c083 ) = 2;
         (* (( (ptr) formal←c083)+1) ) = 4;
         return;
         };
      }
   else {
      if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0110)+32)/* var←c21168 */  ))+8) ))) {
SOURCE(4493, 12)
         (* (( (ptr) formal←c200008)+8) ) = 1001;
SOURCE(4507, 9)
         (*  (ptr) formal←c083 ) = 2;
         (* (( (ptr) formal←c083)+1) ) = 4;
         return;
         }
      else {
         if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0110)+32)/* var←c21168 */  ))+14) ))) {
SOURCE(4546, 14)
            (* (( (ptr) formal←c200008)+8) ) = 1004;
SOURCE(4562, 9)
            (*  (ptr) formal←c083 ) = 2;
            (* (( (ptr) formal←c083)+1) ) = 4;
            return;
            };
         };
      };
   (*  (ptr) formal←c083 ) = 0;
   (* (( (ptr) formal←c083)+1) ) = 0;
   return;
   }

static void NoName←Q1092(formal←c092, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c092;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0111 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0111)+31)/* var←c21104 */  ))+4) ))) {
      {
         W3 error←v11044;
         error←v11044 = (*  (W3Pt) formal←c200007 );
SOURCE(2712, 38)
         {
            word code←v20848;
            code←v20848 = error←v11044.f0;
            if ((code←v20848 == 0)) {
               (* (( (ptr) formal←c200004)+9) ) = 0;
               }
            else {
               (* (( (ptr) formal←c200004)+9) ) = (code←v20848 + 1000);
               };
            };
SOURCE(2752, 9)
         (*  (ptr) formal←c092 ) = 2;
         (* (( (ptr) formal←c092)+1) ) = 3;
         return;
         };
      };
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0111)+32)/* var←c21168 */  ))+8) ))) {
SOURCE(2794, 12)
      (* (( (ptr) formal←c200004)+9) ) = 1001;
SOURCE(2808, 9)
      (*  (ptr) formal←c092 ) = 2;
      (* (( (ptr) formal←c092)+1) ) = 3;
      return;
      };
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0111)+32)/* var←c21168 */  ))+14) ))) {
SOURCE(2847, 14)
      (* (( (ptr) formal←c200004)+9) ) = 1004;
SOURCE(2863, 9)
      (*  (ptr) formal←c092 ) = 2;
      (* (( (ptr) formal←c092)+1) ) = 3;
      return;
      };
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0111)+32)/* var←c21168 */  ))+12) ))) {
      {
         word ref←v11136;
         word type←v11164;
         ref←v11136 = (*  (ptr) formal←c200007 );
         type←v11164 = (* (( (ptr) formal←c200007)+1) );
SOURCE(2908, 15)
         (* (( (ptr) formal←c200004)+9) ) = 1070;
SOURCE(2925, 9)
         (*  (ptr) formal←c092 ) = 2;
         (* (( (ptr) formal←c092)+1) ) = 3;
         return;
         };
      };
   (*  (ptr) formal←c092 ) = 0;
   (* (( (ptr) formal←c092)+1) ) = 0;
   return;
   }

static void NoName←Q1152(formal←c0101, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0101;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0112 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0112)+31)/* var←c21104 */  ))+4) ))) {
      {
         W3 error←v6664;
         error←v6664 = (*  (W3Pt) formal←c200003 );
SOURCE(1315, 38)
         {
            word code←v20896;
            code←v20896 = error←v6664.f0;
            if ((code←v20896 == 0)) {
               (* (( (ptr) formal←c200000)+13) ) = 0;
               }
            else {
               (* (( (ptr) formal←c200000)+13) ) = (code←v20896 + 1000);
               };
            };
SOURCE(1355, 9)
         (*  (ptr) formal←c0101 ) = 2;
         (* (( (ptr) formal←c0101)+1) ) = 2;
         return;
         };
      };
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0112)+32)/* var←c21168 */  ))+8) ))) {
SOURCE(1397, 12)
      (* (( (ptr) formal←c200000)+13) ) = 1001;
SOURCE(1411, 9)
      (*  (ptr) formal←c0101 ) = 2;
      (* (( (ptr) formal←c0101)+1) ) = 2;
      return;
      };
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0112)+32)/* var←c21168 */  ))+14) ))) {
SOURCE(1450, 14)
      (* (( (ptr) formal←c200000)+13) ) = 1004;
SOURCE(1466, 9)
      (*  (ptr) formal←c0101 ) = 2;
      (* (( (ptr) formal←c0101)+1) ) = 2;
      return;
      };
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0112)+32)/* var←c21168 */  ))+12) ))) {
      {
         word ref←v7052;
         word type←v7080;
         ref←v7052 = (*  (ptr) formal←c200003 );
         type←v7080 = (* (( (ptr) formal←c200003)+1) );
SOURCE(1511, 15)
         (* (( (ptr) formal←c200000)+13) ) = 1070;
SOURCE(1528, 9)
         (*  (ptr) formal←c0101 ) = 2;
         (* (( (ptr) formal←c0101)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0101 ) = 0;
   (* (( (ptr) formal←c0101)+1) ) = 0;
   return;
   }

/* file: CIIHighlightDeviceImpl, module: CIIHighlightDeviceImpl, compiled at: October 29, 1993 2:29:49 pm PDT */ 
extern void XR←install←CIIHighlightDeviceImpl() {
   NoName←Q792();
   }
extern void XR←run←CIIHighlightDeviceImpl() { XR←Start(&globalframe); }