/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 11:08:09 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: ScaledX, module: ScaledX */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [770320316,1829083746] ScaledX";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
#define SOURCE(p, l) /* source p, l */
#define INEG(x)  ( (word) ( - ((int) (word) (x)) ) )
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static void NoName←Q2400();
static void ScaledX←P0();
static word FromInt←P60();
static word PLUS←P120();
static word MINUS←P180();
static word UMINUS←P240();
static word GREATER←P300();
static word LESS←P360();
static word Max←P420();
static word Min←P480();
static word Floor←P540();
static word Ceiling←P600();
static word Round←P660();
static word Float←P720();
static word FromReal←P780();
static word Halve←P840();
static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\055\352\047\274\300\155\005\232\142\100\164\000\000"};
static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\346\312\312\137\300\332\074\046\072\100\150\000\000"};
static struct {
   word f0[4]; word f4; word f5; word f6; 
   word f7; word f8; word f9; word f10; 
   word f11; word f12; word f13; 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; word f28; word f29; word f30; 
   word f31; word f32; word f33[2]; 
   } globalframe = {
   {0}, (word) Halve←P840, 0, (word) FromReal←P780, 
   0, (word) Float←P720, 0, (word) Round←P660, 
   0, (word) Ceiling←P600, 0, (word) Floor←P540, 
   0, (word) Min←P480, 0, (word) Max←P420, 
   0, (word) LESS←P360, 0, (word) GREATER←P300, 
   0, (word) UMINUS←P240, 0, (word) MINUS←P180, 
   0, (word) PLUS←P120, 0, (word) FromInt←P60, 
   0, (word) ScaledX←P0, {0}
   };

static void NoName←Q2400()
   {
   register ptr gf←c070 =  (ptr) &globalframe;
   word var←c11876;
   (void) XR←DeclareGlobalFrame((word) "ScaledX", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c070)+128)
      /* var←c11108 */ );
   var←c11876 = (word) XR←ImportInterface((word) "Scaled", (word) XR←GetTypeIndexS((word) (&string2)), 19);
   (* (( (ptr) gf←c070)+34)/* var←c11780 */  ) = var←c11876;
   (void) XR←ImportProcS(var←c11876, 67375617);
   (void) XR←ImportProcS(var←c11876, 67371777);
   (void) XR←ImportProcS(var←c11876, 67375105);
   }

static void ScaledX←P0(formal←c019, formal←c018)
   word formal←c019;
   word formal←c018;
   {
   /* ScaledX: */ 
   }

static word FromInt←P60(int←v2912)
   word int←v2912;
   {
   word var←c2956;
   /* FromInt: */ 
SOURCE(94, 75)
SOURCE(142, 27)
   return((int←v2912 << 16));
   }

static word PLUS←P120(a←v3016, b←v3044)
   word a←v3016;
   word b←v3044;
   {
   word var←c3088;
   /* PLUS: */ 
SOURCE(172, 69)
SOURCE(216, 25)
   {
      word var←c11172;
      {
         word i←v6116;
         i←v6116 = (a←v3016 + b←v3044);
         var←c11172 = i←v6116;
         };
      return(var←c11172);
      };
   }

static word MINUS←P180(a←v3148, b←v3176)
   word a←v3148;
   word b←v3176;
   {
   word var←c3220;
   /* MINUS: */ 
SOURCE(244, 71)
SOURCE(289, 26)
   {
      word var←c11236;
      {
         word i←v6892;
         i←v6892 = (a←v3148 - b←v3176);
         var←c11236 = i←v6892;
         };
      return(var←c11236);
      };
   }

static word UMINUS←P240(a←v3280)
   word a←v3280;
   {
   word var←c3324;
   /* UMINUS: */ 
SOURCE(318, 67)
SOURCE(361, 24)
   {
      word var←c11300;
      {
         word i←v7364;
         i←v7364 = INEG(a←v3280);
         var←c11300 = i←v7364;
         };
      return(var←c11300);
      };
   }

static word GREATER←P300(a←v3384, b←v3412)
   word a←v3384;
   word b←v3412;
   {
   word var←c3456;
   /* GREATER: */ 
SOURCE(388, 77)
SOURCE(437, 28)
   return(( (int)a←v3384 >  (int)b←v3412));
   }

static word LESS←P360(a←v3516, b←v3544)
   word a←v3516;
   word b←v3544;
   {
   word var←c3588;
   /* LESS: */ 
SOURCE(468, 71)
SOURCE(514, 25)
   return(( (int)a←v3516 <  (int)b←v3544));
   }

static word Max←P420(a←v3648, b←v3676)
   word a←v3648;
   word b←v3676;
   {
   word var←c3720;
   /* Max: */ 
SOURCE(542, 67)
SOURCE(585, 24)
   {
      word var←c11364;
      {
         word i←v8300;
         i←v8300 = (MAX((int)(word), a←v3648, b←v3676));
         var←c11364 = i←v8300;
         };
      return(var←c11364);
      };
   }

static word Min←P480(a←v3780, b←v3808)
   word a←v3780;
   word b←v3808;
   {
   word var←c3852;
   /* Min: */ 
SOURCE(612, 67)
SOURCE(655, 24)
   {
      word var←c11428;
      {
         word i←v8644;
         i←v8644 = (MIN((int)(word), a←v3780, b←v3808));
         var←c11428 = i←v8644;
         };
      return(var←c11428);
      };
   }

static word Floor←P540(a←v3912)
   word a←v3912;
   {
   word var←c3956;
   /* Floor: */ 
SOURCE(682, 67)
SOURCE(726, 23)
   return( (word)( (int)a←v3912 >> 16));
   }

static word Ceiling←P600(a←v4016)
   word a←v4016;
   {
   word var←c4060;
   /* Ceiling: */ 
SOURCE(752, 71)
SOURCE(798, 25)
   {
      word var←c11492;
      {
         word a←v9356;
         {
            word i←v9624;
            i←v9624 = (a←v4016 + 65535);
            a←v9356 = i←v9624;
            };
         var←c11492 =  (word)( (int)a←v9356 >> 16);
         };
      return(var←c11492);
      };
   }

static word Round←P660(a←v4120)
   word a←v4120;
   {
   word var←c4164;
   /* Round: */ 
SOURCE(826, 67)
SOURCE(870, 23)
   {
      word var←c11620;
      {
         word a←v9980;
         {
            word i←v10012;
            i←v10012 = (a←v4120 + 32768);
            a←v9980 = i←v10012;
            };
         var←c11620 =  (word)( (int)a←v9980 >> 16);
         };
      return(var←c11620);
      };
   }

static word Float←P720(a←v4224)
   word a←v4224;
   {
   register ptr gf←c11908 =  (ptr) &globalframe;
   word var←c4268;
   /* Float: */ 
SOURCE(896, 64)
SOURCE(937, 23)
   {
      word pd3;
      pd3 = (* (( (ptr) (* (( (ptr) gf←c11908)+34)/* var←c11780 */  ))+20) );
      return((word) ( *( (fPt) ((*  (ptr) pd3 ))))(a←v4224, pd3));
      };
   }

static word FromReal←P780(real←v4328)
   word real←v4328;
   {
   register ptr gf←c11940 =  (ptr) &globalframe;
   word var←c4372;
   /* FromReal: */ 
SOURCE(963, 76)
SOURCE(1010, 29)
   {
      word pd4;
      pd4 = (* (( (ptr) (* (( (ptr) gf←c11940)+34)/* var←c11780 */  ))+7) );
      return((word) ( *( (fPt) ((*  (ptr) pd4 ))))(real←v4328, pd4));
      };
   }

static word Halve←P840(a←v4432)
   word a←v4432;
   {
   register ptr gf←c11972 =  (ptr) &globalframe;
   word var←c4476;
   /* Halve: */ 
SOURCE(1042, 65)
SOURCE(1084, 23)
   {
      word pd5;
      pd5 = (* (( (ptr) (* (( (ptr) gf←c11972)+34)/* var←c11780 */  ))+22) );
      return((word) ( *( (fPt) ((*  (ptr) pd5 ))))(a←v4432, pd5));
      };
   }

/* file: ScaledX, module: ScaledX, compiled at: February 21, 1992 11:08:09 pm PST */ 
extern void XR←install←ScaledX() {
   NoName←Q2400();
   }
extern void XR←run←ScaledX() { XR←Start(&globalframe); }