/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: July 9, 1992 4:11:34 pm PDT */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: TEditScrollingImpl, module: TEditScrollingImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1066791163,3110400853] TEditScrollingImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7;
typedef struct {W8 f; W7 r;} W15;
typedef word (*fPt)();
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2;} W3;
typedef struct {word f0, f1, f2, f3, f4;} W5;
typedef struct {W8 f; W5 r;} W13;
typedef struct {word f0, f1, f2, f3;} W4;
typedef struct {W8 f; W4 r;} W12;
typedef struct {W8 f; word r;} W9;
typedef W9 *W9Pt;
typedef struct {W8 f; W3 r;} W11;
typedef struct {W8 f; W2 r;} W10;
#define SOURCE(p, l) /* source p, l */
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define IOP2(op, x, y)  ( (word) ((x) op (y)) )
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
#define MIN(cast, x, y)  ( ( cast x) < ( cast y) ? (x) : (y) )
static void NoName←Q2556();
static void TEditScrollingImpl←P0();
static void BackUp←P60();
static void IncrBackUp←P480();
static void ScrollTEditDocument←P120();
static void inner←P828();
static word NoName←Q2616();
static word NoName←Q2676();
static word NoName←Q2736();
static void ScrollToPosition←P180();
static void inner←P1272();
static word OnScreen←P240();
static void AutoScroll←P300();
static void inner←P1524();
static word TryToGlitch←P1584();
static word NextNode←P1740();
static void LockAndDoIt←P360();
static void withViewer←P1800();
static word NoName←Q2796();
static word NoName←Q2856();
static void DoPaint←P420();
static void NoName←Q2916();
static void NoName←Q2976();
static void NoName←Q3036();
static void NoName←Q3096();
static void NoName←Q3156();
static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"};
static struct {unsigned f; char r[16];} string3 = {917520, "\216\257\300\363\223\326\161\300\017\164\046\072\104\350\000"};
static struct {unsigned f; char r[20];} string4 = {1179668, "\260\006\005\146\151\162\163\164\242\005\004\162\145\163\164\214\242\261\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\003\001\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\343\357\262\137\300\144\166\356\317\100\164\000\000"};
static struct {unsigned f; char r[16];} string7 = {851981, "\006\005\000\001\004\001\054\001\070\001\100\114\001\000\000"};
static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\174\107\267\236\300\027\127\205\140\100\164\000\000"};
static struct {unsigned f; char r[12];} string9 = {655372, "ScrollDown\000"};
static struct {unsigned f; char r[8];} string10 = {327688, "Thumb\000\000"};
static struct {unsigned f; char r[16];} string11 = {851984, "ScrollDoPaint\000\000"};
static struct {unsigned f; char r[8];} string12 = {393224, "PTioga\000"};
static struct {unsigned f; char r[12];} string13 = {524300, "ScrollUp\000\000\000"};
static struct {unsigned f; char r[8];} string14 = {327688, "Print\000\000"};
static struct {unsigned f; char r[8];} string15 = {393224, "Scroll\000"};
static struct {unsigned f; char r[12];} string16 = {589836, "StyleKind\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\077\225\360\373\300\271\144\363\125\100\164\000\000"};
static struct {unsigned f; char r[8];} string18 = {393222, "\006\0014\004@\377\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\006<7[\300;CV\364@h\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\167\317\044\003\300\277\140\004\026\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\375\366\273\111\300\156\046\321\053\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\366\233\214\046\300\233\036\213\260\100\150\000\000"};
static struct {unsigned f; char r[16];} string23 = {851984, "\257\300\320\263\152\354\300\340\215\053\236\100\150\000\000"};
static struct {unsigned f; char r[16];} string24 = {851984, "\257\300\353\351\362\137\300\156\374\044\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string25 = {851984, "\257\300\013\141\323\354\300\341\005\243\127\100\150\000\000"};
static struct {unsigned f; char r[16];} string26 = {851984, "\257\300\241\200\031\316\300\154\273\372\020\100\150\000\000"};
static struct {unsigned f; char r[16];} string27 = {851984, "\257\300\351\360\047\051\300\272\273\201\332\100\150\000\000"};
static struct {unsigned f; char r[16];} string28 = {851984, "\257\300R-\356\251\300YX]$@h\000\000"};
static struct {unsigned f; char r[16];} string29 = {851984, "\257\300\343\112\327\166\300\041\341\335\211\100\150\000\000"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\174\107\267\236\300\027\127\205\140\100\150\000\000"};
static struct {unsigned f; char r[16];} string31 = {851984, "\257\300\261\010\310\246\300\337\340\027\051\100\150\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\042\224\360\026\300\243\254\175\360\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\312\253\314\243\300\267\126\271\104\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\254\253\350\355\300\233\126\335\104\100\150\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\354\332\367\333\300\361\203\205\173\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\255\037\131\057\300\313\250\372\104\100\150\000\000"};
static struct {
   word f0[21]; word f21; word f22; word f23; 
   word f24; word f25; word f26; word f27; 
   word f28; word f29; word f30; word f31; 
   word f32; word f33; word f34; word f35; 
   word f36[19]; 
   } globalframe = {
   {0}, (word) DoPaint←P420, 0, (word) LockAndDoIt←P360, 
   0, (word) AutoScroll←P300, 0, (word) OnScreen←P240, 
   0, (word) ScrollToPosition←P180, 0, (word) ScrollTEditDocument←P120, 
   0, (word) BackUp←P60, 0, (word) TEditScrollingImpl←P0, 
   {0}
   };

static void NoName←Q2556()
   {
   register ptr gf←c0284 =  (ptr) &globalframe;
   word var←c29748;
   (* (( (ptr) gf←c0284)+5) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0284)+8) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c0284)+9) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0284)+11) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7);
   (* (( (ptr) gf←c0284)+12) ) = (word) XR←GetTypeIndexS((word) (&string8));
   (*  (ptr) (( (bPt) gf←c0284)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c0284)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c0284)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0284)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0284)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0284)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0284)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+8) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0284)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0284)+5) ), (word) &string16);
   (void) XR←DeclareGlobalFrame((word) "TEditScrollingImpl", &globalframe, (word) XR←GetTypeIndex((word) &string17, 0, (word) &string18)
      , (word) (( (bPt) gf←c0284)+140)/* var←c27188 */ );
   var←c29748 = (word) XR←ImportInterface((word) "CodeTimer", (word) XR←GetTypeIndexS((word) (&string19)), 21);
   (* (( (ptr) gf←c0284)+47)/* var←c28436 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 526850);
   (void) XR←ImportProcS(var←c29748, 526338);
   var←c29748 = (word) XR←ImportInterface((word) "NodeStyle", (word) XR←GetTypeIndexS((word) (&string20)), 41);
   (* (( (ptr) gf←c0284)+40)/* var←c27348 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 67635458);
   var←c29748 = (word) XR←ImportInterface((word) "NodeStyleOps", (word) XR←GetTypeIndexS((word) (&string21)), 23);
   (* (( (ptr) gf←c0284)+39)/* var←c27316 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 262913);
   (void) XR←ImportProcS(var←c29748, 789251);
   (void) XR←ImportProcS(var←c29748, 67109376);
   var←c29748 = (word) XR←ImportInterface((word) "RopeReader", (word) XR←GetTypeIndexS((word) (&string22)), 25);
   (* (( (ptr) gf←c0284)+38)/* var←c27284 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 67636482);
   (void) XR←ImportProcS(var←c29748, 268033);
   (void) XR←ImportProcS(var←c29748, 67114496);
   var←c29748 = (word) XR←ImportInterface((word) "TEditDisplay", (word) XR←GetTypeIndexS((word) (&string23)), 4);
   (* (( (ptr) gf←c0284)+45)/* var←c28276 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 1048579);
   var←c29748 = (word) XR←ImportInterface((word) "TEditFormat", (word) XR←GetTypeIndexS((word) (&string24)), 17);
   (* (( (ptr) gf←c0284)+43)/* var←c27956 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 263937);
   (void) XR←ImportProcS(var←c29748, 1573126);
   (void) XR←ImportProcS(var←c29748, 67110400);
   var←c29748 = (word) XR←ImportInterface((word) "TEditInput", (word) XR←GetTypeIndexS((word) (&string25)), 44);
   (* (( (ptr) gf←c0284)+48)/* var←c28500 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 67379969);
   var←c29748 = (word) XR←ImportInterface((word) "TEditLocks", (word) XR←GetTypeIndexS((word) (&string26)), 7);
   (* (( (ptr) gf←c0284)+52)/* var←c29652 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 263425);
   (void) XR←ImportProcS(var←c29748, 68420613);
   var←c29748 = (word) XR←ImportInterface((word) "TEditOps", (word) XR←GetTypeIndexS((word) (&string27)), 12);
   (* (( (ptr) gf←c0284)+49)/* var←c28596 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 263681);
   var←c29748 = (word) XR←ImportInterface((word) "TEditProfile", (word) XR←GetTypeIndexS((word) (&string28)), 19);
   (* (( (ptr) gf←c0284)+50)/* var←c29076 */  ) = var←c29748;
   var←c29748 = (word) XR←ImportInterface((word) "TEditSelection", (word) XR←GetTypeIndexS((word) (&string29)), 68);
   (* (( (ptr) gf←c0284)+46)/* var←c28404 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 134495233);
   var←c29748 = (word) XR←ImportInterface((word) "TEditTouchup", (word) XR←GetTypeIndexS((word) (&string30)), 6);
   (* (( (ptr) gf←c0284)+44)/* var←c28180 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 263425);
   (void) XR←ImportProcS(var←c29748, 67633922);
   var←c29748 = (word) XR←ImportInterface((word) "TextEdit", (word) XR←GetTypeIndexS((word) (&string31)), 39);
   (* (( (ptr) gf←c0284)+42)/* var←c27572 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 67633154);
   (void) XR←ImportProcS(var←c29748, 67371521);
   var←c29748 = (word) XR←ImportInterface((word) "TextNode", (word) XR←GetTypeIndexS((word) (&string32)), 34);
   (* (( (ptr) gf←c0284)+41)/* var←c27444 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 67372289);
   (void) XR←ImportProcS(var←c29748, 134481921);
   (void) XR←ImportProcS(var←c29748, 67372033);
   (void) XR←ImportProcS(var←c29748, 67374081);
   (void) XR←ImportProcS(var←c29748, 135532292);
   (void) XR←ImportProcS(var←c29748, 68686084);
   (void) XR←ImportProcS(var←c29748, 67373569);
   (void) XR←ImportProcS(var←c29748, 135007491);
   (void) XR←ImportProcS(var←c29748, 67377153);
   (void) XR←ImportProcS(var←c29748, 134485761);
   (void) XR←ImportProcS(var←c29748, 201853186);
   (void) XR←ImportProcS(var←c29748, 202378756);
   var←c29748 = (word) XR←ImportInterface((word) "ViewerForkers", (word) XR←GetTypeIndexS((word) (&string33)), 2);
   (* (( (ptr) gf←c0284)+53)/* var←c29716 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 1310725);
   var←c29748 = (word) XR←ImportInterface((word) "ViewerLocks", (word) XR←GetTypeIndexS((word) (&string34)), 9);
   (* (( (ptr) gf←c0284)+51)/* var←c29588 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 524290);
   var←c29748 = (word) XR←ImportInterface((word) "ViewerOps", (word) XR←GetTypeIndexS((word) (&string35)), 43);
   (* (( (ptr) gf←c0284)+37)/* var←c27252 */  ) = var←c29748;
   (void) XR←ImportProcS(var←c29748, 1051652);
   (void) XR←ImportProcS(var←c29748, 67639554);
   var←c29748 = (word) XR←ExportInterface((word) "TEditScrolling", (word) XR←GetTypeIndexS((word) (&string36)), 3);
   (* (( (ptr) gf←c0284)+54)/* var←c29780 */  ) = var←c29748;
   (void) XR←ExportProcS(var←c29748, (word) (( (bPt) gf←c0284)+124)/* var←c27124 */ , 135528453);
   (void) XR←ExportProcS(var←c29748, (word) (( (bPt) gf←c0284)+116)/* var←c27092 */ , 1048835);
   (void) XR←ExportProcS(var←c29748, (word) (( (bPt) gf←c0284)+100)/* var←c27028 */ , 1049092);
   }

static void TEditScrollingImpl←P0(formal←c044, formal←c043)
   word formal←c044;
   word formal←c043;
   {
   /* TEditScrollingImpl: */ 
   }

static void BackUp←P60(formal←c070, formal←c0341, tdd←v3920, pos←v3948, goal←v3976)
   word formal←c070;
   word formal←c0341;
   word tdd←v3920;
   W2 pos←v3948;
   word goal←v3976;
   {
   W15 var←c29812;
   /* declaration of viewer←v3892 skipped */ 
   register ptr gf←c29844 =  (ptr) &globalframe;
   W2 newPos←v4020;
   word lines←v4048;
   word totalLeading←v4076;
   word topIndent←v4104;
   /* declaration of var←c27220 skipped */ 
   /* declaration of kind←v4832 skipped */ 
   /* declaration of maxLevel←v4860 skipped */ 
   /* declaration of parent←v4888 skipped */ 
   /* declaration of level←v4916 skipped */ 
   /* declaration of levelClipping←v4944 skipped */ 
   /* declaration of rdr←v5000 skipped */ 
   /* declaration of style←v5028 skipped */ 
   /* declaration of styleNode←v5056 skipped */ 
   word remainder←v5084;
   word dy←v5112 = 2147483647;
   word topLeading←v5140 = 0;
   (* (( (ptr) &var←c29812)+4)/* viewer←v3892 */  ) = formal←c0341;
   /* BackUp: */ 
SOURCE(713, 4314)
   {
      word tmpAddr37;
      tmpAddr37 = (word) (( (ptr) &var←c29812)+5)/* var←c27220 */ ;
      (*  (ptr) tmpAddr37 ) = ( ((word)  (fPt) IncrBackUp←P480) );
      (* (( (ptr) tmpAddr37) + 1) ) = 1;
      };
SOURCE(713, 4314)
   newPos←v4020.f0 = 0;
   newPos←v4020.f1 = 0;
SOURCE(887, 103)
   {
      word tc38;
      word pd39;
      pd39 = (* (( (ptr) (* (( (ptr) gf←c29844)+37)/* var←c27252 */  ))+29) );
      if (((word) ( *( (fPt) ((*  (ptr) pd39 ))))((* (( (ptr) &var←c29812)+4)/* viewer←v3892 */  ), (* (( (ptr) gf←c29844)+20) ), pd39)
       == (* (( (ptr) gf←c29844)+18) ))) {
         tc38 =  (word) 1;
         }
      else {
         tc38 =  (word) 0;
         };
      (* (( (ptr) &var←c29812)+7)/* kind←v4832 */  ) = tc38;
      };
SOURCE(992, 33)
   (* (( (ptr) &var←c29812)+8)/* maxLevel←v4860 */  ) = (* (( (ptr) tdd←v3920)+2) );
SOURCE(1027, 20)
   (* (( (ptr) &var←c29812)+9)/* parent←v4888 */  ) = 0;
SOURCE(1049, 18)
   (* (( (ptr) &var←c29812)+10)/* level←v4916 */  ) = 0;
SOURCE(1108, 54)
   (* (( (ptr) &var←c29812)+11)/* levelClipping←v4944 */  ) = ( (int)(* (( (ptr) &var←c29812)+8)/* maxLevel←v4860 */  ) <  (int)1023);
SOURCE(4135, 48)
   {
      word pd40;
      pd40 = (* (( (ptr) (* (( (ptr) gf←c29844)+38)/* var←c27284 */  ))+26) );
      (* (( (ptr) &var←c29812)+12)/* rdr←v5000 */  ) = (word) ( *( (fPt) ((*  (ptr) pd40 ))))(pd40);
      };
SOURCE(4185, 43)
   {
      word pd41;
      pd41 = (* (( (ptr) (* (( (ptr) gf←c29844)+39)/* var←c27316 */  ))+6) );
      (* (( (ptr) &var←c29812)+13)/* style←v5028 */  ) = (word) ( *( (fPt) ((*  (ptr) pd41 ))))(pd41);
      };
SOURCE(4230, 23)
   (* (( (ptr) &var←c29812)+14)/* styleNode←v5056 */  ) = 0;
SOURCE(4255, 25)
   remainder←v5084 = goal←v3976;
SOURCE(4337, 116)
   if (( (int)pos←v3948.f1 ==  (int)0)) {
SOURCE(4359, 44)
      {
         word pd42;
         pd42 = (* (( (ptr) (* (( (ptr) gf←c29844)+39)/* var←c27316 */  ))+15) );
         (void) ( *( (fPt) ((*  (ptr) pd42 ))))((* (( (ptr) &var←c29812)+13)/* style←v5028 */  ), pos←v3948.f0, (* (( (ptr) &var←c29812)+7)
            /* kind←v4832 */  ), pd42);
         };
SOURCE(4405, 48)
      {
         word pd43;
         pd43 = (* (( (ptr) (* (( (ptr) gf←c29844)+40)/* var←c27348 */  ))+13) );
         topLeading←v5140 = (word) ( *( (fPt) ((*  (ptr) pd43 ))))((* (( (ptr) &var←c29812)+13)/* style←v5028 */  ), 25, pd43);
         };
      };
SOURCE(4459, 12)
   newPos←v4020 = pos←v3948;
SOURCE(4473, 36)
   topIndent←v4104 = 0;
   totalLeading←v4076 = 0;
   lines←v4048 = 0;
SOURCE(4511, 448)
   lab←L100003: ;
   if (( (int)remainder←v5084 >  (int)0)) {
      }
   else {
      goto lab←L100001;
      };
   {
      word leading←v5456;
      word newLines←v5484;
      word newTopIndent←v5512;
SOURCE(4575, 97)
      {
         W6 var←c27380;
         (void) IncrBackUp←P480((word) &var←c27380, newPos←v4020, remainder←v5084, topLeading←v5140, (word) (( (bPt) &var←c29812)+20)
            /* var←c27220 */ );
         topLeading←v5140 = var←c27380.f5;
         newTopIndent←v5512 = var←c27380.f4;
         newLines←v5484 = var←c27380.f3;
         leading←v5456 = var←c27380.f2;
         newPos←v4020 = (*  (W2Pt) &var←c27380 );
         };
SOURCE(4674, 22)
      if (( (int)newLines←v5484 <=  (int)0)) {
SOURCE(4696, 4)
         goto lab←L100002;
         };
SOURCE(4759, 35)
      totalLeading←v4076 = (totalLeading←v4076 + leading←v5456);
SOURCE(4796, 22)
      lines←v4048 = (lines←v4048 + newLines←v5484);
SOURCE(4820, 24)
      topIndent←v4104 = newTopIndent←v5512;
SOURCE(4846, 39)
      if (( (int)(totalLeading←v4076 + topIndent←v4104) >=  (int)goal←v3976)) {
SOURCE(4885, 4)
         goto lab←L100002;
         };
SOURCE(4928, 31)
      remainder←v5084 = (remainder←v5084 - leading←v5456);
      };
   goto lab←L100003;
   lab←L100001: ;
   lab←L100002: ;
SOURCE(4971, 24)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c29844)+39)/* var←c27316 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd44 ))))((* ((( (ptr) &var←c29812)+13)/* style←v5028 */ ) ), pd44);
      };
SOURCE(4997, 30)
   {
      word pd45;
      pd45 = (* (( (ptr) (* (( (ptr) gf←c29844)+38)/* var←c27284 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd45 ))))((* ((( (ptr) &var←c29812)+12)/* rdr←v5000 */ ) ), pd45);
      };
   /* removed tail goto */ 
   (*  (W2Pt) formal←c070 ) = newPos←v4020;
   (* (( (ptr) formal←c070)+2) ) = lines←v4048;
   (* (( (ptr) formal←c070)+3) ) = totalLeading←v4076;
   (* (( (ptr) formal←c070)+4) ) = topIndent←v4104;
   return;
   }

static void IncrBackUp←P480(formal←c0119, pos←v5216, goal←v5244, prevTopLeading←v5272, formal←c29908)
   word formal←c0119;
   W2 pos←v5216;
   word goal←v5244;
   word prevTopLeading←v5272;
   word formal←c29908;
   {
   register ptr gf←c29876 =  (ptr) &globalframe;
   W2 prev←v5316;
   word totalLeading←v5344;
   word lines←v5372;
   word topIndent←v5400;
   word topLeading←v5428;
   W2 tPos←v5556;
   word leading←v5584;
   word bottomLeading←v5612;
   word lastBreak←v5640;
   word breakList←v5668 = 0;
   word textNode←v5696 = 0;
   word where←v5724;
   word endOffset←v5752;
   word size←v5780;
   word lineInfo←v5808 = 0;
   formal←c29908 = (formal←c29908 - 20);
   /* IncrBackUp: */ 
SOURCE(1165, 2964)
SOURCE(1165, 2964)
   prev←v5316.f0 = 0;
   prev←v5316.f1 = 0;
SOURCE(1329, 23)
   tPos←v5556.f0 = 0;
   tPos←v5556.f1 = 0;
SOURCE(1589, 485)
   if (( (int)pos←v5216.f1 ==  (int)0)) {
SOURCE(1609, 356)
      lab←L100007: ;
SOURCE(1609, 356)
      {
         word tempNode←v5936 = 0;
SOURCE(1636, 177)
         if ((0 != (* (( (ptr) formal←c29908)+11) ))) {
SOURCE(1658, 93)
            {
               W3 var←c27476;
               {
                  word pd46;
                  pd46 = (* (( (ptr) (* (( (ptr) gf←c29876)+41)/* var←c27444 */  ))+18) );
                  (void) ( *( (fPt) ((*  (ptr) pd46 ))))((word) &var←c27476, pos←v5216.f0, (* (( (ptr) formal←c29908)+8) ), (* (( (ptr) formal←c29908)+9)
                      ), (* (( (ptr) formal←c29908)+10) ), pd46);
                  };
               (* (( (ptr) formal←c29908)+10) ) = var←c27476.f2;
               (* (( (ptr) formal←c29908)+9) ) = var←c27476.f1;
               tempNode←v5936 = var←c27476.f0;
               };
            }
         else {
SOURCE(1751, 62)
            {
               W3 var←c27508;
               {
                  word pd47;
                  pd47 = (* (( (ptr) (* (( (ptr) gf←c29876)+41)/* var←c27444 */  ))+13) );
                  (void) ( *( (fPt) ((*  (ptr) pd47 ))))((word) &var←c27508, pos←v5216.f0, (* (( (ptr) formal←c29908)+9) ), pd47);
                  };
               (* (( (ptr) formal←c29908)+9) ) = var←c27508.f1;
               tempNode←v5936 = var←c27508.f0;
               };
            };
SOURCE(1815, 58)
         if ((tempNode←v5936 == 0) || ((* (( (ptr) formal←c29908)+9) ) == 0)) {
SOURCE(1850, 23)
            prev←v5316 = pos←v5216;
            totalLeading←v5344 = 0;
            lines←v5372 = 0;
            topIndent←v5400 = 0;
            topLeading←v5428 = 0;
            goto lab←L100004;
            };
SOURCE(1875, 34)
         textNode←v5696 = tempNode←v5936;
         if ((tempNode←v5936 == 0)) {
SOURCE(1909, 4)
            goto lab←L100007;
            };
SOURCE(1915, 50)
         {
            word var←c27540;
            {
               word pd48;
               pd48 = (* (( (ptr) (* (( (ptr) gf←c29876)+42)/* var←c27572 */  ))+6) );
               var←c27540 = (word) ( *( (fPt) ((*  (ptr) pd48 ))))(textNode←v5696, pd48);
               };
            where←v5724 = var←c27540;
            endOffset←v5752 = var←c27540;
            size←v5780 = var←c27540;
            };
SOURCE(1967, 4)
         goto lab←L100006;
         };
      /* c2c skipped dead code */ 
      lab←L100006: ;
      }
   else {
SOURCE(1988, 19)
      textNode←v5696 = pos←v5216.f0;
SOURCE(2009, 30)
      {
         word pd49;
         pd49 = (* (( (ptr) (* (( (ptr) gf←c29876)+42)/* var←c27572 */  ))+6) );
         size←v5780 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))(textNode←v5696, pd49);
         };
SOURCE(2041, 33)
      {
         word var←c27604;
         var←c27604 = (pos←v5216.f1 - 1);
         where←v5724 = var←c27604;
         endOffset←v5752 = var←c27604;
         };
      };
SOURCE(2078, 331)
   if (( (int)where←v5724 <  (int)IOP2( * ,  (int)4,  (int)(MAX((int)(word), 12, goal←v5244))))) {
SOURCE(2109, 58)
      where←v5724 = 0;
      }
   else {
SOURCE(2167, 269)
      {
         word stop←v5980;
         word var←c0315;
SOURCE(2169, 42)
         stop←v5980 = (MAX((int)(word), 0, (where←v5724 - 5000)));
SOURCE(2249, 49)
         {
            word reader←v26844;
            word rope←v26872;
            word index←v26900;
            word var←c27636;
            word rope←v13768;
            reader←v26844 = (* (( (ptr) formal←c29908)+12) );
            rope←v26872 = (* (( (ptr) textNode←v5696)+3) );
            index←v26900 = where←v5724;
            {
               word tc50;
               rope←v13768 = 0;
               var←c27636 = (* (( (ptr) reader←v26844)+2) );
               if (((var←c27636 == rope←v26872)
               )) {
                  tc50 =  (word) ( (int)((* (( (ptr) reader←v26844)+3) ) + (* (( (ptr) reader←v26844)+1) )) ==  (int)index←v26900);
                  }
               else {
                  tc50 =  (word) 0;
                  };
               if (tc50) {
                  goto lab←L100009;
                  };
               };
            (* (( (ptr) reader←v26844)+2) ) = rope←v26872;
            (* (( (ptr) reader←v26844)+1) ) = 0;
            (*  (hPt) (*  (ptr) reader←v26844 ) ) = 0;
            (* (( (ptr) reader←v26844)+3) ) = index←v26900;
            lab←L100009: ;
            };
SOURCE(2300, 109)
         lab←L100012: ;
         where←v5724 = (where←v5724 - 1);
         var←c0315 = where←v5724;
         if (( (int)var←c0315 >  (int)stop←v5980)) {
            }
         else {
            goto lab←L100010;
            };
SOURCE(2333, 76)
         {
            word var←c27828;
            {
               word var←c27668;
               word reader←v26796;
               reader←v26796 = (* (( (ptr) formal←c29908)+12) );
               {
                  word i←v14476;
                  i←v14476 = (* (( (ptr) reader←v26796)+1) );
                  {
                     word pd52;
                     if ((i←v14476 > 0)) {
                        {
                           word var←c27732;
                           word var←c27764;
                           var←c27732 = SGNCK((i←v14476 - 1));
                           (* (( (ptr) reader←v26796)+1) ) = var←c27732;
                           var←c27764 = (*  (ptr) reader←v26796 );
                           {
/*1*/   word limit51;
/*1*/   var←c27668 = (word) (* ((( (bPt) var←c27764)+4)+(
/*1*/         limit51 = (word) (* (( (hPt) var←c27764)+1) ),
/*1*/         BCK(var←c27732, limit51)
/*1*/         )) );
/*1*/   };
                           };
                        }
                     else {
                        pd52 = (* (( (ptr) (* (( (ptr) gf←c29876)+38)/* var←c27284 */  ))+17) );
                        var←c27668 = (word) ( *( (fPt) ((*  (ptr) pd52 ))))(reader←v26796, 1, pd52);
                        };
                     };
                  };
               var←c27828 = var←c27668;
               };
            if ((var←c27828 == 13) || (var←c27828 == 10)) {
SOURCE(2394, 15)
               where←v5724 = (where←v5724 + 1);
SOURCE(2411, 4)
               goto lab←L100011;
               };
            };
         goto lab←L100012;
         lab←L100010: ;
         lab←L100011: ;
         };
      };
SOURCE(2440, 85)
   if (((* (( (ptr) formal←c29908)+14) ) != textNode←v5696)) {
SOURCE(2469, 56)
      {
         word var←c27860;
         var←c27860 = textNode←v5696;
         (* (( (ptr) formal←c29908)+14) ) = textNode←v5696;
         {
            word pd53;
            pd53 = (* (( (ptr) (* (( (ptr) gf←c29876)+39)/* var←c27316 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) formal←c29908)+13) ), var←c27860, (* (( (ptr) formal←c29908)+7) ), pd53)
            ;
            };
         };
      };
SOURCE(2528, 42)
   {
      word pd54;
      pd54 = (* (( (ptr) (* (( (ptr) gf←c29876)+40)/* var←c27348 */  ))+13) );
      leading←v5584 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))((* (( (ptr) formal←c29908)+13) ), 22, pd54);
      };
SOURCE(2572, 77)
   {
      word pd55;
      if (( (int)where←v5724 ==  (int)0)) {
         pd55 = (* (( (ptr) (* (( (ptr) gf←c29876)+40)/* var←c27348 */  ))+13) );
         topLeading←v5428 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((* (( (ptr) formal←c29908)+13) ), 25, pd55);
         }
      else {
         topLeading←v5428 = leading←v5584;
         };
      };
SOURCE(2651, 131)
   {
      word var←c27924;
      {
         word pd56;
         word x57;
         if ((pos←v5216.f0 == textNode←v5696)) {
            var←c27924 = leading←v5584;
            }
         else {
            pd56 = (* (( (ptr) (* (( (ptr) gf←c29876)+40)/* var←c27348 */  ))+13) );
            var←c27924 = (x57 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))((* (( (ptr) formal←c29908)+13) ), 28, pd56),
               MAX((int)(word), prevTopLeading←v5272, x57));
            };
         };
      totalLeading←v5344 = var←c27924;
      bottomLeading←v5612 = var←c27924;
      };
SOURCE(2784, 46)
   {
      word pd58;
      pd58 = (* (( (ptr) (* (( (ptr) gf←c29876)+40)/* var←c27348 */  ))+13) );
      topIndent←v5400 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))((* (( (ptr) formal←c29908)+13) ), 19, pd58);
      };
SOURCE(2879, 66)
   if (( (int)where←v5724 ==  (int)size←v5780)) {
SOURCE(2900, 9)
      lines←v5372 = 1;
SOURCE(2911, 24)
      prev←v5316.f0 = textNode←v5696;
      prev←v5316.f1 = where←v5724;
SOURCE(2937, 8)
      goto lab←L100004;
      };
SOURCE(2948, 24)
   tPos←v5556.f0 = textNode←v5696;
   tPos←v5556.f1 = where←v5724;
SOURCE(2974, 9)
   lines←v5372 = 0;
SOURCE(2985, 33)
   {
      word pd59;
      pd59 = (* (( (ptr) (* (( (ptr) gf←c29876)+43)/* var←c27956 */  ))+10) );
      lineInfo←v5808 = (word) ( *( (fPt) ((*  (ptr) pd59 ))))(pd59);
      };
SOURCE(3020, 388)
   lab←L100016: ;
SOURCE(3023, 22)
   lastBreak←v5640 = tPos←v5556.f1;
SOURCE(3047, 140)
   {
      word var←c27988;
      {
         word var←c28020;
         word int←v26748;
         int←v26748 = (* (( (ptr) (* (( (ptr) formal←c29908)+4) ))+7) );
         var←c28020 = (int←v26748 << 16);
         var←c27988 = var←c28020;
         };
      {
         word pd60;
         pd60 = (* (( (ptr) (* (( (ptr) gf←c29876)+43)/* var←c27956 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd60 ))))(lineInfo←v5808, tPos←v5556.f0, tPos←v5556.f1, (* (( (ptr) formal←c29908)+13) ), var←c27988, 0, pd60)
         ;
         };
      };
SOURCE(3189, 23)
   tPos←v5556 = (*  (W2Pt) (( (ptr) lineInfo←v5808)+7) );
SOURCE(3214, 53)
   if (( (int)lines←v5372 >  (int)0)) {
SOURCE(3232, 35)
      totalLeading←v5344 = (totalLeading←v5344 + leading←v5584);
      };
SOURCE(3269, 15)
   lines←v5372 = (lines←v5372 + 1);
SOURCE(3286, 52)
   if ((tPos←v5556.f0 != textNode←v5696) || ( (int)tPos←v5556.f1 >=  (int)endOffset←v5752)) {
SOURCE(3338, 4)
      goto lab←L100015;
      };
SOURCE(3344, 64)
   if (( (int)lastBreak←v5640 !=  (int)where←v5724)) {
SOURCE(3370, 38)
      {
         word var←c28084;
         var←c28084 = XR←NewObject(8, (* (( (ptr) gf←c29876)+9) ));
         (*  (ptr) var←c28084 ) = lastBreak←v5640;
         (* (( (ptr) var←c28084)+1) ) = breakList←v5668;
         breakList←v5668 = var←c28084;
         };
      };
   goto lab←L100016;
   lab←L100015: ;
SOURCE(3419, 18)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c29876)+43)/* var←c27956 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd61 ))))(lineInfo←v5808, pd61);
      };
SOURCE(3439, 14)
   lineInfo←v5808 = 0;
SOURCE(3456, 623)
   if ( ( ( (int)(totalLeading←v5344 + topIndent←v5400) >=  (int)goal←v5244) ? ( (int)leading←v5584 >  (int)0) : 0 ) ) {
SOURCE(3511, 590)
      {
         word discardLines←v6024;
SOURCE(3513, 61)
         discardLines←v6024 = IOP2( / ,  (int)((totalLeading←v5344 + topIndent←v5400) - goal←v5244),  (int)leading←v5584);
SOURCE(3594, 485)
         {
            word var←c28116;
            var←c28116 = discardLines←v6024;
            if (( (int)var←c28116 <=  (int)0)) {
               }
            else {
               if (( (int)var←c28116 >=  (int)(lines←v5372 - 1))) {
SOURCE(3691, 17)
                  where←v5724 = lastBreak←v5640;
SOURCE(3710, 9)
                  lines←v5372 = 1;
SOURCE(3721, 29)
                  totalLeading←v5344 = bottomLeading←v5612;
                  }
               else {
SOURCE(3766, 332)
                  {
                     word count←v6068;
SOURCE(3827, 26)
                     lines←v5372 = (lines←v5372 - discardLines←v6024);
SOURCE(3855, 15)
                     count←v6068 = (lines←v5372 - 1);
SOURCE(3919, 48)
                     totalLeading←v5344 = (totalLeading←v5344 - IOP2( * ,  (int)discardLines←v6024,  (int)leading←v5584));
SOURCE(3969, 110)
                     {
                        register word list←v6112;
                        list←v6112 = breakList←v5668;
                        lab←L100021: ;
SOURCE(4029, 50)
                        count←v6068 = (count←v6068 - 1);
                        if (( (int)count←v6068 ==  (int)0)) {
SOURCE(4061, 18)
                           where←v5724 = (*  (ptr) list←v6112 );
SOURCE(4081, 5)
                           goto lab←L100019;
                           };
                        list←v6112 = (* (( (ptr) list←v6112)+1) );
                        goto lab←L100021;
                        lab←L100019: ;
                        };
                     };
                  };
               };
            };
         };
      };
SOURCE(4105, 24)
   prev←v5316.f0 = textNode←v5696;
   prev←v5316.f1 = where←v5724;
   /* removed tail goto */ 
   lab←L100004: ;
   (*  (W2Pt) formal←c0119 ) = prev←v5316;
   (* (( (ptr) formal←c0119)+2) ) = totalLeading←v5344;
   (* (( (ptr) formal←c0119)+3) ) = lines←v5372;
   (* (( (ptr) formal←c0119)+4) ) = topIndent←v5400;
   (* (( (ptr) formal←c0119)+5) ) = topLeading←v5428;
   return;
   }

static void ScrollTEditDocument←P120(formal←c0128, formal←c0342, formal←c0343, formal←c0344, formal←c0345, formal←c0346)
   word formal←c0128;
   word formal←c0342;
   word formal←c0343;
   word formal←c0344;
   word formal←c0345;
   word formal←c0346;
   {
   W13 var←c29940;
   /* declaration of self←v10244 skipped */ 
   /* declaration of op←v10272 skipped */ 
   /* declaration of amount←v10300 skipped */ 
   /* declaration of shift←v10328 skipped */ 
   /* declaration of control←v10356 skipped */ 
   /* declaration of top←v10400 skipped */ 
   /* declaration of bottom←v10428 skipped */ 
   /* declaration of var←c28148 skipped */ 
   (* (( (ptr) &var←c29940)+4)/* self←v10244 */  ) = formal←c0342;
   (* (( (ptr) &var←c29940)+5)/* op←v10272 */  ) = formal←c0343;
   (* (( (ptr) &var←c29940)+6)/* amount←v10300 */  ) = formal←c0344;
   (* (( (ptr) &var←c29940)+7)/* shift←v10328 */  ) = formal←c0345;
   (* (( (ptr) &var←c29940)+8)/* control←v10356 */  ) = formal←c0346;
   /* ScrollTEditDocument: */ 
SOURCE(5033, 3803)
   {
      word tmpAddr62;
      tmpAddr62 = (word) (( (ptr) &var←c29940)+11)/* var←c28148 */ ;
      (*  (ptr) tmpAddr62 ) = ( ((word)  (fPt) inner←P828) );
      (* (( (ptr) tmpAddr62) + 1) ) = 1;
      };
SOURCE(5033, 3803)
   (* (( (ptr) &var←c29940)+9)/* top←v10400 */  ) = 2147483647;
SOURCE(5033, 3803)
   (* (( (ptr) &var←c29940)+10)/* bottom←v10428 */  ) = 2147483647;
SOURCE(8800, 36)
   (void) LockAndDoIt←P360((word) (( (bPt) &var←c29940)+44)/* var←c28148 */ , (* (( (ptr) &var←c29940)+4)/* self←v10244 */  ), 0, 0)
   ;
   /* removed tail goto */ 
   (*  (ptr) formal←c0128 ) = (* (( (ptr) &var←c29940)+9)/* top←v10400 */  );
   (* (( (ptr) formal←c0128)+1) ) = (* (( (ptr) &var←c29940)+10)/* bottom←v10428 */  );
   return;
   }

static void inner←P828(tdd←v6316, formal←c30036)
   word tdd←v6316;
   word formal←c30036;
   {
   W12 var←c29972;
   register ptr gf←c30004 =  (ptr) &globalframe;
   word lines←v6344;
   /* declaration of topLine←v6372 skipped */ 
   word paintOp←v6400;
   word iconic←v6428;
   word levelChange←v6456 = 0;
   formal←c30036 = (formal←c30036 - 44);
   (*  (ptr) &var←c29972 ) = formal←c30036;
   /* inner: */ 
SOURCE(5090, 3701)
SOURCE(5131, 46)
   lines←v6344 = (* (( (ptr) tdd←v6316)+1) );
SOURCE(5179, 41)
   {
      word limit63;
      (*  (W2Pt) (( (ptr) &var←c29972)+4)/* topLine←v6372 */  ) = (*  (W2Pt) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
            limit63 = (* (( (ptr) lines←v6344)+2) ),
            BCK(0, limit63)
            )) );
      };
SOURCE(5222, 39)
   paintOp←v6400 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30004)+44)/* var←c28180 */  ))+5) ) );
SOURCE(5263, 26)
   iconic←v6428 = (((unsigned)(* (( (bPt) (* (( (ptr) formal←c30036)+4) ))+76) ) << 27) >> 31);
SOURCE(5319, 248)
   if ((* (( (bPt) (* (( (ptr) formal←c30036)+4) ))+76) ) & 020) {
SOURCE(5341, 168)
      {
         word var←c28212;
         var←c28212 = (* (( (ptr) formal←c30036)+5) );
         switch (var←c28212) {
            case 1: 
SOURCE(5362, 68)
               {
                  W2 var←c28244;
                  {
                     word pd64;
                     pd64 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+27) );
                     (void) ( *( (fPt) ((*  (ptr) pd64 ))))((word) &var←c28244, (*  (ptr) tdd←v6316 ), pd64);
                     };
                  {
                     word pd65;
                     pd65 = (* (( (ptr) (* (( (ptr) gf←c30004)+45)/* var←c28276 */  ))+4) );
                     (void) ( *( (fPt) ((*  (ptr) pd65 ))))(tdd←v6316, var←c28244, 0, pd65);
                     };
                  };
               break;
            case 2: 
SOURCE(5440, 69)
               {
                  word var←c28308;
                  {
                     word pd66;
                     pd66 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+28) );
                     var←c28308 = (word) ( *( (fPt) ((*  (ptr) pd66 ))))((*  (ptr) (tdd←v6316) ), pd66);
                     };
                  {
                     W2 var←c28340;
                     var←c28340.f0 = var←c28308;
                     var←c28340.f1 = 0;
                     {
                        word pd67;
                        pd67 = (* (( (ptr) (* (( (ptr) gf←c30004)+45)/* var←c28276 */  ))+4) );
                        (void) ( *( (fPt) ((*  (ptr) pd67 ))))(tdd←v6316, var←c28340, 0, pd67);
                        };
                     };
                  };
               break;
            case 3: 
               break;
            case 0: 
               break;
            default: 
SOURCE(5552, 5)
               (void) XR←RaiseUnnamedError();
               break;
            };
         };
SOURCE(5559, 8)
      return;
      };
SOURCE(5571, 2973)
   {
      word var←c28372;
      var←c28372 = (* (( (ptr) formal←c30036)+5) );
      switch (var←c28372) {
         case 1: 
SOURCE(5593, 1114)
            {
               word line←v6512 = 0;
               word newLevel←v6540;
               word sSel←v6568;
               word doingSecondarySelect←v6596;
SOURCE(5633, 51)
               sSel←v6568 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30004)+46)/* var←c28404 */  ))+5) ) );
SOURCE(5686, 61)
               doingSecondarySelect←v6596 =  ( (sSel←v6568 != 0) ? ((*  (ptr) sSel←v6568 ) != 0) : 0 ) ;
SOURCE(5749, 38)
               {
                  word pd68;
                  pd68 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd68 ))))((* (( (ptr) gf←c30004)+17) ), (* (( (ptr) gf←c30004)+16) ), pd68);
                  };
SOURCE(5789, 558)
               if ( ( ( (int)(* (( (ptr) formal←c30036)+6) ) >  (int)0) ? ( (int)(*  (ptr) lines←v6344 ) ==  (int)0) : 0 ) ) {
SOURCE(5833, 317)
                  {
                     word limit69;
                     if ((( (((unsigned)(* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/   limit69 = (* (( (ptr) lines←v6344)+2) ),
/*1*/   BCK(0, limit69)
/*1*/   )))+2) ) << 1) >> 1) ) == 0)) {
SOURCE(5860, 236)
                        {
                           word next←v6640 = 0;
                           word maxLevel←v6668;
                           W2 var←c0147;
SOURCE(5882, 33)
                           maxLevel←v6668 = (* (( (ptr) tdd←v6316)+2) );
SOURCE(5917, 137)
                           {
/*1*/   word pd71;
/*1*/   if (( (int)maxLevel←v6668 <  (int)1023)) {
/*1*/      {
/*1*/         word pd70;
/*1*/         pd70 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+17) );
/*1*/         (void) ( *( (fPt) ((*  (ptr) pd70 ))))((word) &var←c0147, (* (( (ptr) &var←c29972)+4) ), maxLevel←v6668, 0, pd70);
/*1*/         };
/*1*/      next←v6640 = var←c0147.f0;
/*1*/      }
/*1*/   else {
/*1*/      pd71 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+14) );
/*1*/      next←v6640 = (word) ( *( (fPt) ((*  (ptr) pd71 ))))((* ((( (ptr) &var←c29972)+4)) ), pd71);
/*1*/      };
/*1*/   };
SOURCE(6056, 38)
                           if ((next←v6640 != 0)) {
SOURCE(6075, 19)
/*1*/   (* (( (ptr) &var←c29972)+4) ) = next←v6640;
/*1*/   (* (( (ptr) &var←c29972)+5) ) = 0;
/*1*/   };
                           };
                        }
                     else {
SOURCE(6103, 47)
                        {
                           word limit72;
                           (* (( (ptr) &var←c29972)+5) ) = ((* (( (ptr) &var←c29972)+5) ) + (* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/         limit72 = (* (( (ptr) lines←v6344)+2) ),
/*1*/         BCK(0, limit72)
/*1*/         )))+5) ));
                           };
                        };
                     };
                  }
               else {
                  {
                     word var←c28468;
                     word var←c0316;
SOURCE(6159, 135)
                     lab←L100025: ;
                     {
                        word tc73;
                        word limit74;
                        word limit75;
                        if (( (int)((* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/      limit74 = (* (( (ptr) lines←v6344)+2) ),
/*1*/      BCK(line←v6512, limit74)
/*1*/      )))+6) ) + (* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/      limit75 = (* (( (ptr) lines←v6344)+2) ),
/*1*/      BCK(line←v6512, limit75)
/*1*/      )))+4) )) <  (int)(* (( (ptr) formal←c30036)+6) ))) {
                           {
/*1*/   word limit76;
/*1*/   var←c28468 = (line←v6512 + 1);
/*1*/   var←c0316 = (*  (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/         limit76 = (* (( (ptr) lines←v6344)+2) ),
/*1*/         BCK(var←c28468, limit76)
/*1*/         )) );
/*1*/   };
                           tc73 =  (word) (var←c0316 != 0);
                           }
                        else {
                           tc73 =  (word) 0;
                           };
                        if (tc73) {
                           }
                        else {
                           goto lab←L100023;
                           };
                        };
SOURCE(6248, 13)
                     line←v6512 = (line←v6512 + 1);
SOURCE(6263, 31)
                     if (( (int)line←v6512 >=  (int)(*  (ptr) lines←v6344 ))) {
SOURCE(6294, 4)
                        goto lab←L100024;
                        };
                     goto lab←L100025;
                     lab←L100023: ;
                     lab←L100024: ;
SOURCE(6320, 27)
                     {
                        word limit77;
                        (*  (W2Pt) (( (ptr) &var←c29972)+4)/* topLine←v6372 */  ) = (*  (W2Pt) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/   limit77 = (* (( (ptr) lines←v6344)+2) ),
/*1*/   BCK(line←v6512, limit77)
/*1*/   )) );
                        };
                     };
                  };
SOURCE(6350, 219)
               {
                  word pd79;
                  word x80;
                  if ((0 != doingSecondarySelect←v6596)) {
                     newLevel←v6540 = (* (( (ptr) tdd←v6316)+2) );
                     goto endif078;
                     };
                  if (((0 != (* (( (ptr) formal←c30036)+8) )) && (0 != (* (( (ptr) formal←c30036)+7) )))) {
                     newLevel←v6540 = 1;
                     goto endif078;
                     };
                  if ((0 != (* (( (ptr) formal←c30036)+8) ))) {
                     newLevel←v6540 = 1023;
                     goto endif078;
                     };
                  if ((0 != (* (( (ptr) formal←c30036)+7) ))) {
                     pd79 = (* (( (ptr) (* (( (ptr) gf←c30004)+48)/* var←c28500 */  ))+39) );
                     newLevel←v6540 = (x80 = ((word) ( *( (fPt) ((*  (ptr) pd79 ))))(tdd←v6316, pd79) + 1),
                        MIN((int)(word), 1023, x80));
                     goto endif078;
                     };
                  newLevel←v6540 = (* (( (ptr) tdd←v6316)+2) );
                  goto endif078;
                  endif078: ;
                  };
SOURCE(6584, 79)
               if (( (int)newLevel←v6540 !=  (int)(* (( (ptr) tdd←v6316)+2) ))) {
SOURCE(6619, 24)
                  (* (( (ptr) tdd←v6316)+2) ) = BCK(newLevel←v6540, 1024);
SOURCE(6645, 18)
                  levelChange←v6456 = 1;
                  };
SOURCE(6668, 37)
               {
                  word pd81;
                  pd81 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+14) );
                  (void) ( *( (fPt) ((*  (ptr) pd81 ))))((* (( (ptr) gf←c30004)+17) ), (* (( (ptr) gf←c30004)+16) ), pd81);
                  };
               };
            break;
         case 2: 
SOURCE(6719, 437)
            {
               word numLines←v6712;
               word totalLeading←v6740;
               word topIndent←v6768;
SOURCE(6765, 40)
               {
                  word pd82;
                  pd82 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd82 ))))((* (( (ptr) gf←c30004)+13) ), (* (( (ptr) gf←c30004)+16) ), pd82);
                  };
SOURCE(6807, 104)
               {
                  W5 var←c28532;
                  {
                     word x83;
                     word limit84;
                     word x85;
                     (void) BackUp←P60((word) &var←c28532, (* (( (ptr) formal←c30036)+4) ), tdd←v6316, (*  (W2Pt) (( (ptr) &var←c29972)+4)/* topLine←v6372 */  ), (
                           x83 = (* (( (ptr) formal←c30036)+6) ),
                           x85 = (* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/         limit84 = (* (( (ptr) lines←v6344)+2) ),
/*1*/         BCK(0, limit84)
/*1*/         )))+6) ),
                           MAX((int)(word), x83, x85)));
                     };
                  topIndent←v6768 = var←c28532.f4;
                  totalLeading←v6740 = var←c28532.f3;
                  numLines←v6712 = var←c28532.f2;
                  (*  (W2Pt) (( (ptr) &var←c29972)+4)/* topLine←v6372 */  ) = (*  (W2Pt) &var←c28532 );
                  };
SOURCE(6913, 199)
               {
                  word limit86;
                  if ( ! XR←EqualWords((( (ptr) &var←c29972)+4)/* topLine←v6372 */ , (( (W9Pt) (( (ptr) lines←v6344)+3))+(
                           limit86 = (* (( (ptr) lines←v6344)+2) ),
                           BCK(0, limit86)
                           )), 2)) {
SOURCE(6944, 168)
                     {
                        word op←v6812;
SOURCE(6946, 74)
                        op←v6812 = XR←NewObject(8, (* (( (ptr) gf←c30004)+12) ));
SOURCE(7022, 19)
                        (*  (ptr) op←v6812 ) = numLines←v6712;
SOURCE(7043, 53)
                        {
                           word limit87;
                           (* (( (ptr) op←v6812)+1) ) = ((topIndent←v6768 + totalLeading←v6740) - (* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/         limit87 = (* (( (ptr) lines←v6344)+2) ),
/*1*/         BCK(0, limit87)
/*1*/         )))+6) ));
                           };
SOURCE(7098, 14)
                        paintOp←v6400 = op←v6812;
                        };
                     };
                  };
SOURCE(7115, 39)
               {
                  word pd88;
                  pd88 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+14) );
                  (void) ( *( (fPt) ((*  (ptr) pd88 ))))((* (( (ptr) gf←c30004)+13) ), (* (( (ptr) gf←c30004)+16) ), pd88);
                  };
               };
            break;
         case 3: 
SOURCE(7169, 685)
            {
               W2 loc1←v6868;
SOURCE(7171, 60)
               {
                  word pd89;
                  pd89 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+28) );
                  loc1←v6868.f0 = (word) ( *( (fPt) ((*  (ptr) pd89 ))))((*  (ptr) (tdd←v6316) ), pd89);
                  };
               loc1←v6868.f1 = 0;
SOURCE(7233, 35)
               {
                  word pd90;
                  pd90 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+12) );
                  (void) ( *( (fPt) ((*  (ptr) pd90 ))))((* (( (ptr) gf←c30004)+14) ), (* (( (ptr) gf←c30004)+16) ), pd90);
                  };
SOURCE(7270, 38)
               {
                  word pd91;
                  pd91 = (* (( (ptr) (* (( (ptr) gf←c30004)+49)/* var←c28596 */  ))+10) );
                  (void) ( *( (fPt) ((*  (ptr) pd91 ))))((* ((( (ptr) formal←c30036)+4)) ), pd91);
                  };
SOURCE(7310, 495)
               if (( (int)(* (( (ptr) formal←c30036)+6) ) <  (int)5)) {
SOURCE(7329, 41)
                  (void) ScrollToPosition←P180((* (( (ptr) formal←c30036)+4) ), loc1←v6868, 0);
                  }
               else {
SOURCE(7370, 437)
                  {
                     W2 loc2←v6912;
                     word totalChars←v6940;
                     W2 pos←v6968;
SOURCE(7372, 58)
                     {
                        word pd92;
                        pd92 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+27) );
                        (void) ( *( (fPt) ((*  (ptr) pd92 ))))((word) &loc2←v6912, (*  (ptr) tdd←v6316 ), pd92);
                        };
SOURCE(7432, 48)
                     {
                        word pd93;
                        pd93 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+21) );
                        totalChars←v6940 = (word) ( *( (fPt) ((*  (ptr) pd93 ))))(loc1←v6868, loc2←v6912, 1, 0, pd93);
                        };
SOURCE(7482, 76)
                     {
                        word pd94;
                        pd94 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+19) );
                        (void) ( *( (fPt) ((*  (ptr) pd94 ))))((word) &pos←v6968, loc1←v6868, IOP2( / ,  (int)IOP2( * ,  (int)totalChars←v6940,  (int)(* (
/*1*/         ( (ptr) formal←c30036)+6) )),  (int)100), 1, 0, pd94);
                        };
SOURCE(7560, 197)
                     if (((* (( (ptr) tdd←v6316)+2) ) < 1023)) {
SOURCE(7606, 162)
                        {
                           word delta←v7012;
SOURCE(7608, 55)
                           {
/*1*/   word pd95;
/*1*/   pd95 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+16) );
/*1*/   delta←v7012 = ((word) ( *( (fPt) ((*  (ptr) pd95 ))))(pos←v6968.f0, pd95) - (* (( (ptr) tdd←v6316)+2) ));
/*1*/   };
SOURCE(7665, 92)
                           {
/*1*/   register word noName←c28628 = 0;
/*1*/   if (( (int)noName←c28628 >=  (int)delta←v7012)) {
/*1*/      goto lab←L100026;
/*1*/      };
/*1*/   lab←L100029: ;
SOURCE(7722, 35)
/*1*/   {
/*1*/      word var←c28692;
/*1*/      {
/*1*/         word pd96;
/*1*/         pd96 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+8) );
/*1*/         var←c28692 = (word) ( *( (fPt) ((*  (ptr) pd96 ))))(pos←v6968.f0, pd96);
/*1*/         };
/*1*/      pos←v6968.f0 = var←c28692;
/*1*/      pos←v6968.f1 = 0;
/*1*/      };
/*1*/   noName←c28628 = (noName←c28628 + 1);
/*1*/   if (( (int)noName←c28628 <  (int)delta←v7012)) {
/*1*/      goto lab←L100029;
/*1*/      };
/*1*/   lab←L100026: ;
/*1*/   };
                           };
                        };
SOURCE(7771, 34)
                     (void) ScrollToPosition←P180((* (( (ptr) formal←c30036)+4) ), pos←v6968, 0);
                     };
                  };
SOURCE(7810, 34)
               {
                  word pd97;
                  pd97 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+14) );
                  (void) ( *( (fPt) ((*  (ptr) pd97 ))))((* (( (ptr) gf←c30004)+14) ), (* (( (ptr) gf←c30004)+16) ), pd97);
                  };
SOURCE(7846, 6)
               return;
               };
         case 0: 
SOURCE(7867, 677)
SOURCE(7869, 45)
            {
               word toTop←v7056;
               word toBottom←v7084;
               word toEnd←v7112;
               word totalChars←v7140;
               word t←v7168;
               word b←v7196;
               word ll←v7224;
SOURCE(7916, 28)
               ll←v7224 = (*  (ptr) lines←v6344 );
SOURCE(7946, 93)
               {
                  word var←c28724;
                  {
                     word pd98;
                     pd98 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+28) );
                     var←c28724 = (word) ( *( (fPt) ((*  (ptr) pd98 ))))((*  (ptr) (tdd←v6316) ), pd98);
                     };
                  {
                     /* declaration of var←c01 skipped */ 
                     /* declaration of var←c02 skipped */ 
                     (* (( (ptr) &var←c29972)+6) ) = var←c28724;
                     (* (( (ptr) &var←c29972)+7) ) = 0;
                     (* (( (ptr) &var←c29972)+8)/* var←c02 */  ) = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+21) );
                     {
                        /* declaration of var←c03 skipped */ 
                        {
                           word var←c04;
                           {
/*1*/   word var←c0317;
/*1*/   var←c0317 = (word) &var←c29972;
/*1*/   var←c04 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2736) ), ( ((word)  (fPt) NoName←Q3156) ), var←c0317);
/*1*/   };
                           if ((var←c04 == 2)) {
/*1*/   goto lab←L100030;
/*1*/   };
                           };
                        toTop←v7056 = (* (( (ptr) &var←c29972)+9)/* var←c03 */  );
                        };
                     };
                  };
SOURCE(8051, 120)
               {
                  /* declaration of var←c05 skipped */ 
                  /* declaration of var←c06 skipped */ 
                  {
                     W2 var←c28788;
                     {
                        word limit99;
                        var←c28788.f0 = (*  (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/   limit99 = (* (( (ptr) lines←v6344)+2) ),
/*1*/   BCK(ll←v7224, limit99)
/*1*/   )) );
                        };
                     {
                        word limit100;
                        word limit101;
                        var←c28788.f1 = ((* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/      limit100 = (* (( (ptr) lines←v6344)+2) ),
/*1*/      BCK(ll←v7224, limit100)
/*1*/      )))+1) ) + (* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/      limit101 = (* (( (ptr) lines←v6344)+2) ),
/*1*/      BCK(ll←v7224, limit101)
/*1*/      )))+5) ));
                        };
                     (*  (W2Pt) (( (ptr) &var←c29972)+6)/* var←c05 */  ) = var←c28788;
                     };
                  (* (( (ptr) &var←c29972)+8)/* var←c06 */  ) = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+21) );
                  {
                     /* declaration of var←c07 skipped */ 
                     {
                        word var←c08;
                        {
                           word var←c0318;
                           var←c0318 = (word) &var←c29972;
                           var←c08 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2676) ), ( ((word)  (fPt) NoName←Q3096) ), var←c0318);
                           };
                        if ((var←c08 == 2)) {
                           goto lab←L100030;
                           };
                        };
                     toBottom←v7084 = (* (( (ptr) &var←c29972)+9)/* var←c07 */  );
                     };
                  };
SOURCE(8183, 144)
               {
                  /* declaration of var←c28820 skipped */ 
                  {
                     word pd102;
                     pd102 = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+27) );
                     (void) ( *( (fPt) ((*  (ptr) pd102 ))))((word) (( (bPt) &var←c29972)+24)/* var←c28820 */ , (*  (ptr) tdd←v6316 ), pd102);
                     };
                  {
                     /* declaration of var←c09 skipped */ 
                     /* declaration of var←c010 skipped */ 
                     {
                        W2 var←c28852;
                        {
                           word limit103;
                           var←c28852.f0 = (*  (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/      limit103 = (* (( (ptr) lines←v6344)+2) ),
/*1*/      BCK(ll←v7224, limit103)
/*1*/      )) );
                           };
                        {
                           word limit104;
                           word limit105;
                           var←c28852.f1 = (((* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/         limit104 = (* (( (ptr) lines←v6344)+2) ),
/*1*/         BCK(ll←v7224, limit104)
/*1*/         )))+1) ) + (* (( (ptr) (( (W9Pt) (( (ptr) lines←v6344)+3))+(
/*1*/         limit105 = (* (( (ptr) lines←v6344)+2) ),
/*1*/         BCK(ll←v7224, limit105)
/*1*/         )))+5) )) - 1);
                           };
                        (*  (W2Pt) (( (ptr) &var←c29972)+8)/* var←c09 */  ) = var←c28852;
                        };
                     (* (( (ptr) &var←c29972)+10)/* var←c010 */  ) = (* (( (ptr) (* (( (ptr) gf←c30004)+41)/* var←c27444 */  ))+21) );
                     {
                        /* declaration of var←c011 skipped */ 
                        {
                           word var←c012;
                           {
/*1*/   word var←c0319;
/*1*/   var←c0319 = (word) &var←c29972;
/*1*/   var←c012 = (word) XR←Enable(( ((word)  (fPt) NoName←Q2616) ), ( ((word)  (fPt) NoName←Q3036) ), var←c0319);
/*1*/   };
                           if ((var←c012 == 2)) {
/*1*/   goto lab←L100030;
/*1*/   };
                           };
                        toEnd←v7112 = (* (( (ptr) &var←c29972)+11)/* var←c011 */  );
                        };
                     };
                  };
SOURCE(8339, 33)
               totalChars←v7140 = ((toTop←v7056 + toBottom←v7084) + toEnd←v7112);
SOURCE(8374, 43)
               if (( (int)totalChars←v7140 <=  (int)0)) {
SOURCE(8397, 12)
                  (* (( (ptr) formal←c30036)+10) ) = 100;
SOURCE(8411, 6)
                  return;
                  };
SOURCE(8420, 33)
               {
                  word x106;
                  t←v7168 = (x106 = IOP2( / ,  (int)IOP2( * ,  (int)100,  (int)toTop←v7056),  (int)totalChars←v7140),
                     MIN((int)(word), 98, x106));
                  };
SOURCE(8455, 45)
               {
                  word x107;
                  b←v7196 = (x107 = IOP2( / ,  (int)IOP2( * ,  (int)100,  (int)(toTop←v7056 + toBottom←v7084)),  (int)totalChars←v7140),
                     MAX((int)(word), (t←v7168 + 2), x107));
                  };
SOURCE(8502, 7)
               (* (( (ptr) formal←c30036)+9) ) = t←v7168;
SOURCE(8511, 10)
               (* (( (ptr) formal←c30036)+10) ) = b←v7196;
               };
            goto lab←L100037;
            lab←L100030: ;
SOURCE(8536, 6)
            return;
            lab←L100037: ;
            break;
         };
      };
SOURCE(8558, 233)
   {
      word limit108;
      if ( ! XR←EqualWords((( (ptr) &var←c29972)+4)/* topLine←v6372 */ , (( (W9Pt) (( (ptr) lines←v6344)+3))+(
               limit108 = (* (( (ptr) lines←v6344)+2) ),
               BCK(0, limit108)
               )), 2) || (0 != levelChange←v6456)) {
SOURCE(8606, 43)
         {
            word pd109;
            pd109 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+12) );
            (void) ( *( (fPt) ((*  (ptr) pd109 ))))((* (( (ptr) gf←c30004)+15) ), (* (( (ptr) gf←c30004)+16) ), pd109);
            };
SOURCE(8651, 43)
         {
            word pd110;
            pd110 = (* (( (ptr) (* (( (ptr) gf←c30004)+45)/* var←c28276 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd110 ))))(tdd←v6316, (*  (W2Pt) (( (ptr) &var←c29972)+4)/* topLine←v6372 */  ), 0, pd110);
            };
SOURCE(8696, 51)
         (void) DoPaint←P420((* (( (ptr) formal←c30036)+4) ),  ( (0 != levelChange←v6456) ? 0 : paintOp←v6400 ) );
SOURCE(8749, 42)
         {
            word pd111;
            pd111 = (* (( (ptr) (* (( (ptr) gf←c30004)+47)/* var←c28436 */  ))+14) );
            (void) ( *( (fPt) ((*  (ptr) pd111 ))))((* (( (ptr) gf←c30004)+15) ), (* (( (ptr) gf←c30004)+16) ), pd111);
            };
         };
      };
   }

static word NoName←Q2616(formal←c0290)
   word formal←c0290;
   {
SOURCE(8183, 144)
   {
      word pd112;
      pd112 = (* (( (ptr) formal←c0290)+10) );
      (* (( (ptr) formal←c0290)+11) ) = (word) ( *( (fPt) ((*  (ptr) pd112 ))))((*  (W2Pt) (( (ptr) formal←c0290)+8) ), (*  (W2Pt) (
            ( (ptr) formal←c0290)+6) ), 1, 0, pd112);
      };
   return(0);
   }

static word NoName←Q2676(formal←c0291)
   word formal←c0291;
   {
SOURCE(8051, 120)
   {
      word pd113;
      pd113 = (* (( (ptr) formal←c0291)+8) );
      (* (( (ptr) formal←c0291)+9) ) = (word) ( *( (fPt) ((*  (ptr) pd113 ))))((*  (W2Pt) (( (ptr) formal←c0291)+4) ), (*  (W2Pt) (
            ( (ptr) formal←c0291)+6) ), 1, 0, pd113);
      };
   return(0);
   }

static word NoName←Q2736(formal←c0292)
   word formal←c0292;
   {
SOURCE(7946, 93)
   {
      word pd114;
      pd114 = (* (( (ptr) formal←c0292)+8) );
      (* (( (ptr) formal←c0292)+9) ) = (word) ( *( (fPt) ((*  (ptr) pd114 ))))((*  (W2Pt) (( (ptr) formal←c0292)+6) ), (*  (W2Pt) (
            ( (ptr) formal←c0292)+4) ), 1, 0, pd114);
      };
   return(0);
   }

static void ScrollToPosition←P180(formal←c0347, formal←c0348, formal←c0349)
   word formal←c0347;
   W2 formal←c0348;
   word formal←c0349;
   {
   W11 var←c30068;
   /* declaration of viewer←v4164 skipped */ 
   /* declaration of pos←v4192 skipped */ 
   /* declaration of offset←v4220 skipped */ 
   register ptr gf←c30100 =  (ptr) &globalframe;
   /* declaration of var←c28884 skipped */ 
   /* declaration of kind←v7268 skipped */ 
   (* (( (ptr) &var←c30068)+4)/* viewer←v4164 */  ) = formal←c0347;
   (*  (W2Pt) (( (ptr) &var←c30068)+5)/* pos←v4192 */  ) = formal←c0348;
   (* (( (ptr) &var←c30068)+7)/* offset←v4220 */  ) = formal←c0349;
   /* ScrollToPosition: */ 
SOURCE(8842, 1875)
   {
      word tmpAddr115;
      tmpAddr115 = (word) (( (ptr) &var←c30068)+8)/* var←c28884 */ ;
      (*  (ptr) tmpAddr115 ) = ( ((word)  (fPt) inner←P1272) );
      (* (( (ptr) tmpAddr115) + 1) ) = 1;
      };
SOURCE(8931, 103)
   {
      word tc116;
      word pd117;
      pd117 = (* (( (ptr) (* (( (ptr) gf←c30100)+37)/* var←c27252 */  ))+29) );
      if (((word) ( *( (fPt) ((*  (ptr) pd117 ))))((* (( (ptr) &var←c30068)+4)/* viewer←v4164 */  ), (* (( (ptr) gf←c30100)+20)
          ), pd117) == (* (( (ptr) gf←c30100)+18) ))) {
         tc116 =  (word) 1;
         }
      else {
         tc116 =  (word) 0;
         };
      (* (( (ptr) &var←c30068)+10)/* kind←v7268 */  ) = tc116;
      };
SOURCE(10656, 61)
   if (((* (( (ptr) &var←c30068)+5) ) != 0)) {
SOURCE(10679, 38)
      (void) LockAndDoIt←P360((word) (( (bPt) &var←c30068)+32)/* var←c28884 */ , (* (( (ptr) &var←c30068)+4)/* viewer←v4164 */  ), 0, 0)
      ;
      };
   }

static void inner←P1272(tdd←v7372, formal←c30164)
   word tdd←v7372;
   word formal←c30164;
   {
   register ptr gf←c30132 =  (ptr) &globalframe;
   word node←v7400;
   word where←v7428;
   word start←v7456;
   word lines←v7484;
   word repaint←v7512 = 0;
   W2 topLine←v7540;
   word style←v7568;
   word lineInfo←v7596 = 0;
   word backStop←v7624;
   formal←c30164 = (formal←c30164 - 32);
   /* inner: */ 
SOURCE(9036, 1612)
SOURCE(9077, 37)
   node←v7400 = (* (( (ptr) formal←c30164)+5) );
SOURCE(9116, 58)
   {
      word x118;
      word pd119;
      word x120;
      word x121;
      pd119 = (* (( (ptr) (* (( (ptr) gf←c30132)+42)/* var←c27572 */  ))+6) );
      where←v7428 = (x121 = (x118 = (* (( (ptr) formal←c30164)+6) ),
            x120 = ((word) ( *( (fPt) ((*  (ptr) pd119 ))))(node←v7400, pd119) - 1),
            MIN((int)(word), x118, x120)),
         MAX((int)(word), 0, x121));
      };
SOURCE(9176, 18)
   start←v7456 = where←v7428;
SOURCE(9196, 46)
   lines←v7484 = (* (( (ptr) tdd←v7372)+1) );
SOURCE(9267, 26)
   topLine←v7540.f0 = 0;
   topLine←v7540.f1 = 0;
SOURCE(9295, 43)
   {
      word pd122;
      pd122 = (* (( (ptr) (* (( (ptr) gf←c30132)+39)/* var←c27316 */  ))+6) );
      style←v7568 = (word) ( *( (fPt) ((*  (ptr) pd122 ))))(pd122);
      };
SOURCE(9372, 33)
   backStop←v7624 = (MAX((int)(word), 0, (where←v7428 - 300)));
SOURCE(9461, 142)
   {
      word tc123;
      word pd124;
      if (((* (( (ptr) tdd←v7372)+2) ) < 1023)) {
         pd124 = (* (( (ptr) (* (( (ptr) gf←c30132)+41)/* var←c27444 */  ))+16) );
         tc123 =  (word) ( (int)(* (( (ptr) tdd←v7372)+2) ) <  (int)(word) ( *( (fPt) ((*  (ptr) pd124 ))))(node←v7400, pd124));
         }
      else {
         tc123 =  (word) 0;
         };
      if (tc123) {
SOURCE(9550, 14)
         repaint←v7512 = 1;
SOURCE(9566, 37)
         (* (( (ptr) tdd←v7372)+2) ) = 1023;
         };
      };
SOURCE(9640, 151)
   lab←L100040: ;
   if (( (int)start←v7456 >  (int)backStop←v7624)) {
      }
   else {
      goto lab←L100038;
      };
SOURCE(9665, 126)
   {
      word var←c28948;
      {
         word pd125;
         pd125 = (* (( (ptr) (* (( (ptr) gf←c30132)+42)/* var←c27572 */  ))+4) );
         var←c28948 = (word) ( *( (fPt) ((*  (ptr) pd125 ))))(node←v7400, (start←v7456 - 1), pd125);
         };
      if ((var←c28948 == 13) || (var←c28948 == 10)) {
SOURCE(9757, 4)
         goto lab←L100039;
         }
      else {
SOURCE(9774, 17)
         start←v7456 = (start←v7456 - 1);
         };
      };
   goto lab←L100040;
   lab←L100038: ;
   lab←L100039: ;
SOURCE(9803, 23)
   topLine←v7540.f0 = node←v7400;
   topLine←v7540.f1 = start←v7456;
SOURCE(9828, 48)
   {
      word pd126;
      pd126 = (* (( (ptr) (* (( (ptr) gf←c30132)+39)/* var←c27316 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd126 ))))(style←v7568, topLine←v7540.f0, (* (( (ptr) formal←c30164)+10) ), pd126);
      };
SOURCE(9878, 33)
   {
      word pd127;
      pd127 = (* (( (ptr) (* (( (ptr) gf←c30132)+43)/* var←c27956 */  ))+10) );
      lineInfo←v7596 = (word) ( *( (fPt) ((*  (ptr) pd127 ))))(pd127);
      };
SOURCE(9913, 324)
   lab←L100043: ;
SOURCE(9916, 146)
   {
      word var←c28980;
      {
         word var←c29012;
         word int←v26700;
         int←v26700 = (* (( (ptr) (* (( (ptr) formal←c30164)+4) ))+7) );
         var←c29012 = (int←v26700 << 16);
         var←c28980 = var←c29012;
         };
      {
         word pd128;
         pd128 = (* (( (ptr) (* (( (ptr) gf←c30132)+43)/* var←c27956 */  ))+5) );
         (void) ( *( (fPt) ((*  (ptr) pd128 ))))(lineInfo←v7596, topLine←v7540.f0, topLine←v7540.f1, style←v7568, var←c28980, 0, pd128)
         ;
         };
      };
SOURCE(10064, 95)
   if ((((* (( (ptr) lineInfo←v7596)+7) ) != node←v7400) || ( (int)(* (( (ptr) lineInfo←v7596)+8) ) >  (int)where←v7428)) || XR←EqualWords(
      (( (ptr) lineInfo←v7596)+7), &topLine←v7540, 2)) {
SOURCE(10159, 4)
      goto lab←L100042;
      };
SOURCE(10165, 26)
   topLine←v7540 = (*  (W2Pt) (( (ptr) lineInfo←v7596)+7) );
SOURCE(10193, 44)
   if (( (int)(topLine←v7540.f1 + (* (( (ptr) lineInfo←v7596)+14) )) >  (int)where←v7428)) {
SOURCE(10237, 4)
      goto lab←L100042;
      };
   goto lab←L100043;
   lab←L100042: ;
SOURCE(10253, 176)
   if ((0 != (* (( (ptr) formal←c30164)+7) ))) {
SOURCE(10268, 163)
      {
         word goal←v7668;
         W5 var←c0197;
SOURCE(10270, 79)
         {
            word pd129;
            pd129 = (* (( (ptr) (* (( (ptr) gf←c30132)+40)/* var←c27348 */  ))+13) );
            goal←v7668 = IOP2( * ,  (int)(word) ( *( (fPt) ((*  (ptr) pd129 ))))(style←v7568, 22, pd129),  (int)(*  (ptr) (* (( (ptr) (* (
                     ( (ptr) gf←c30132)+50)/* var←c29076 */  ))+15) ) ));
            };
SOURCE(10351, 78)
         if (( (int)IOP2( * ,  (int)goal←v7668,  (int)2) <  (int)(* (( (ptr) (* (( (ptr) formal←c30164)+4) ))+8) ))) {
SOURCE(10378, 51)
            (void) BackUp←P60((word) &var←c0197, (* (( (ptr) formal←c30164)+4) ), tdd←v7372, topLine←v7540, goal←v7668);
            topLine←v7540 = (*  (W2Pt) &var←c0197 );
            };
         };
      };
SOURCE(10434, 18)
   {
      word pd130;
      pd130 = (* (( (ptr) (* (( (ptr) gf←c30132)+43)/* var←c27956 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd130 ))))(lineInfo←v7596, pd130);
      };
SOURCE(10454, 14)
   lineInfo←v7596 = 0;
SOURCE(10470, 24)
   {
      word pd131;
      pd131 = (* (( (ptr) (* (( (ptr) gf←c30132)+39)/* var←c27316 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd131 ))))(style←v7568, pd131);
      };
SOURCE(10497, 151)
   {
      word limit133;
      if ((0 != repaint←v7512)) { goto then0132;};
      if ( ! XR←EqualWords(&topLine←v7540, (( (W9Pt) (( (ptr) lines←v7484)+3))+(
               limit133 = (* (( (ptr) lines←v7484)+2) ),
               BCK(0, limit133)
               )), 2)) {
         then0132: ;
SOURCE(10541, 43)
         {
            word pd134;
            pd134 = (* (( (ptr) (* (( (ptr) gf←c30132)+45)/* var←c28276 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd134 ))))(tdd←v7372, topLine←v7540, 0, pd134);
            };
SOURCE(10586, 62)
         (void) DoPaint←P420((* (( (ptr) formal←c30164)+4) ),  ( (0 != repaint←v7512) ? 0 : (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30132)+44)
               /* var←c28180 */  ))+5) ) ) ) );
         };
      };
   }

static word OnScreen←P240(viewer←v4280, point←v4308)
   word viewer←v4280;
   W2 point←v4308;
   {
   register ptr gf←c30196 =  (ptr) &globalframe;
   word var←c4352;
   /* OnScreen: */ 
SOURCE(10723, 910)
SOURCE(10800, 55)
   if ((viewer←v4280 == 0) || (point←v4308.f0 == 0)) {
SOURCE(10841, 14)
      return(0);
      };
SOURCE(10857, 56)
   if ((* (( (bPt) viewer←v4280)+77) ) & 0100 || (* (( (bPt) viewer←v4280)+76) ) & 020) {
SOURCE(10899, 14)
      return(0);
      };
SOURCE(10915, 690)
   {
      word var←c29108;
      var←c29108 = (* (( (ptr) viewer←v4280)+26) );
      if ((var←c29108 == 0)) {
         goto lab←L100045;
         };
      if (((* (( (ptr) gf←c30196)+11) ) == XR←GetReferentType(var←c29108))) {
         {
            word tdd←v7712;
            tdd←v7712 = var←c29108;
SOURCE(10970, 637)
            {
               word lines←v7756;
               word found←v7784 = 0;
SOURCE(10972, 46)
               lines←v7756 = (* (( (ptr) tdd←v7712)+1) );
SOURCE(11041, 547)
               if ( ( (lines←v7756 != 0) ? ( (int)(*  (ptr) lines←v7756 ) >=  (int)0) : 0 ) ) {
SOURCE(11085, 503)
SOURCE(11087, 39)
                  {
                     W2 first←v7828;
                     W2 last←v7856;
                     word each←v7884;
SOURCE(11087, 39)
                     {
                        word limit135;
                        first←v7828 = (*  (W2Pt) (( (W9Pt) (( (ptr) lines←v7756)+3))+(
/*1*/   limit135 = (* (( (ptr) lines←v7756)+2) ),
/*1*/   BCK(0, limit135)
/*1*/   )) );
                        };
SOURCE(11128, 51)
                     {
                        word idx136;
                        word limit137;
                        last←v7856 = (*  (W2Pt) (( (W9Pt) (( (ptr) lines←v7756)+3))+(
/*1*/   idx136 = (*  (ptr) lines←v7756 ),
/*1*/   limit137 = (* (( (ptr) lines←v7756)+2) ),
/*1*/   BCK(idx136, limit137)
/*1*/   )) );
                        };
SOURCE(11181, 31)
                     each←v7884 = first←v7828.f0;
SOURCE(11214, 54)
                     {
                        word idx138;
                        word limit139;
                        last←v7856.f1 = (last←v7856.f1 + (* (( (ptr) (( (W9Pt) (( (ptr) lines←v7756)+3))+(
/*1*/      idx138 = (*  (ptr) lines←v7756 ),
/*1*/      limit139 = (* (( (ptr) lines←v7756)+2) ),
/*1*/      BCK(idx138, limit139)
/*1*/      )))+5) ));
                        };
SOURCE(11270, 62)
                     if ( ( (point←v4308.f0 == first←v7828.f0) ? ( (int)point←v4308.f1 <  (int)first←v7828.f1) : 0 ) ) {
SOURCE(11332, 14)
                        goto lab←L100046;
                        };
SOURCE(11348, 60)
                     if ( ( (point←v4308.f0 == last←v7856.f0) ? ( (int)point←v4308.f1 >  (int)last←v7856.f1) : 0 ) ) {
SOURCE(11408, 14)
                        goto lab←L100046;
                        };
SOURCE(11424, 131)
                     lab←L100049: ;
                     if ((each←v7884 != 0)) {
                        }
                     else {
                        goto lab←L100047;
                        };
                     {
                        W2 var←c0208;
SOURCE(11444, 39)
                        if ((each←v7884 == point←v4308.f0)) {
SOURCE(11471, 12)
                           found←v7784 = 1;
SOURCE(11485, 4)
                           goto lab←L100048;
                           };
SOURCE(11492, 25)
                        if ((each←v7884 == last←v7856.f0)) {
SOURCE(11517, 4)
                           goto lab←L100048;
                           };
SOURCE(11523, 32)
                        {
                           word pd140;
                           pd140 = (* (( (ptr) (* (( (ptr) gf←c30196)+41)/* var←c27444 */  ))+12) );
                           (void) ( *( (fPt) ((*  (ptr) pd140 ))))((word) &var←c0208, each←v7884, pd140);
                           };
                        each←v7884 = var←c0208.f0;
                        };
                     goto lab←L100049;
                     lab←L100047: ;
                     lab←L100048: ;
                     };
                  goto lab←L100050;
                  lab←L100046: ;
                  lab←L100050: ;
                  };
SOURCE(11591, 14)
               return(found←v7784);
               };
            };
         }
      else {
         lab←L100045: ;
         };
      };
SOURCE(11619, 14)
   return(0);
   }

static void AutoScroll←P300(formal←c0350, formal←c0351, formal←c0352, id←v4496)
   word formal←c0350;
   word formal←c0351;
   word formal←c0352;
   word id←v4496;
   {
   W11 var←c30228;
   /* declaration of viewer←v4412 skipped */ 
   /* declaration of tryToGlitch←v4440 skipped */ 
   /* declaration of toEndOfDoc←v4468 skipped */ 
   register ptr gf←c30260 =  (ptr) &globalframe;
   /* declaration of var←c29140 skipped */ 
   /* declaration of kind←v7928 skipped */ 
   /* declaration of sel←v7956 skipped */ 
   (* (( (ptr) &var←c30228)+4)/* viewer←v4412 */  ) = formal←c0350;
   (* (( (ptr) &var←c30228)+5)/* tryToGlitch←v4440 */  ) = formal←c0351;
   (* (( (ptr) &var←c30228)+6)/* toEndOfDoc←v4468 */  ) = formal←c0352;
   /* AutoScroll: */ 
SOURCE(11639, 3366)
   {
      word tmpAddr141;
      tmpAddr141 = (word) (( (ptr) &var←c30228)+7)/* var←c29140 */ ;
      (*  (ptr) tmpAddr141 ) = ( ((word)  (fPt) inner←P1524) );
      (* (( (ptr) tmpAddr141) + 1) ) = 1;
      };
SOURCE(11752, 103)
   {
      word tc142;
      word pd143;
      pd143 = (* (( (ptr) (* (( (ptr) gf←c30260)+37)/* var←c27252 */  ))+29) );
      if (((word) ( *( (fPt) ((*  (ptr) pd143 ))))((* (( (ptr) &var←c30228)+4)/* viewer←v4412 */  ), (* (( (ptr) gf←c30260)+20)
          ), pd143) == (* (( (ptr) gf←c30260)+18) ))) {
         tc142 =  (word) 1;
         }
      else {
         tc142 =  (word) 0;
         };
      (* (( (ptr) &var←c30228)+9)/* kind←v7928 */  ) = tc142;
      };
SOURCE(11857, 161)
   {
      word var←c29172;
      var←c29172 = id←v4496;
      switch (var←c29172) {
         case 0: 
            (* (( (ptr) &var←c30228)+10)/* sel←v7956 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30260)+46)/* var←c28404 */  ))+4) ) );
            break;
         case 1: 
            (* (( (ptr) &var←c30228)+10)/* sel←v7956 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30260)+46)/* var←c28404 */  ))+5) ) );
            break;
         case 2: 
            (* (( (ptr) &var←c30228)+10)/* sel←v7956 */  ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30260)+46)/* var←c28404 */  ))+6) ) );
            break;
         default: 
            (* (( (ptr) &var←c30228)+10)/* sel←v7956 */  ) = (
               XR←RaiseUnnamedError(), 0
               );
            break;
         };
      };
SOURCE(14911, 54)
   if (((* (( (ptr) &var←c30228)+4)/* viewer←v4412 */  ) == 0)) {
SOURCE(14930, 35)
      (* (( (ptr) &var←c30228)+4)/* viewer←v4412 */  ) = (*  (ptr) (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30260)+46)/* var←c28404 */  ))+4)
       ) ) );
      };
SOURCE(14968, 37)
   (void) LockAndDoIt←P360((word) (( (bPt) &var←c30228)+28)/* var←c29140 */ , (* (( (ptr) &var←c30228)+4)/* viewer←v4412 */  ), (* (
         ( (ptr) &var←c30228)+10)/* sel←v7956 */  ), 1);
   }

static void inner←P1524(formal←c0353, formal←c30356)
   word formal←c0353;
   word formal←c30356;
   {
   W10 var←c30292;
   /* declaration of tdd←v8060 skipped */ 
   register ptr gf←c30324 =  (ptr) &globalframe;
   /* declaration of var←c29204 skipped */ 
   /* declaration of lines←v8088 skipped */ 
   /* declaration of goal←v8116 skipped */ 
   word glitchOK←v8144 = 0;
   formal←c30356 = (formal←c30356 - 28);
   (* (( (ptr) &var←c30292)+4)/* tdd←v8060 */  ) = formal←c0353;
   (*  (ptr) &var←c30292 ) = formal←c30356;
   /* inner: */ 
SOURCE(12020, 2884)
   {
      word tmpAddr144;
      tmpAddr144 = (word) (( (ptr) &var←c30292)+5)/* var←c29204 */ ;
      (*  (ptr) tmpAddr144 ) = ( ((word)  (fPt) TryToGlitch←P1584) );
      (* (( (ptr) tmpAddr144) + 1) ) = 1;
      };
SOURCE(12061, 46)
   (* (( (ptr) &var←c30292)+7)/* lines←v8088 */  ) = (* (( (ptr) (* (( (ptr) &var←c30292)+4)/* tdd←v8060 */  ))+1) );
SOURCE(12109, 34)
   (* (( (ptr) &var←c30292)+8) ) = 0;
   (* (( (ptr) &var←c30292)+9) ) = 0;
   if ((0 != (* (( (ptr) formal←c30356)+6) ))) {
SOURCE(14037, 300)
      {
         word lines←v8276;
SOURCE(14039, 46)
         lines←v8276 = (* (( (ptr) (* (( (ptr) &var←c30292)+4)/* tdd←v8060 */  ))+1) );
SOURCE(14087, 60)
         {
            word var←c29268;
            {
               word pd145;
               pd145 = (* (( (ptr) (* (( (ptr) gf←c30324)+41)/* var←c27444 */  ))+28) );
               var←c29268 = (word) ( *( (fPt) ((*  (ptr) pd145 ))))((*  (ptr) ((* (( (ptr) &var←c30292)+4)/* tdd←v8060 */  )) ), pd145);
               };
            {
               word pd146;
               pd146 = (* (( (ptr) (* (( (ptr) gf←c30324)+41)/* var←c27444 */  ))+27) );
               (void) ( *( (fPt) ((*  (ptr) pd146 ))))((word) (( (bPt) &var←c30292)+32)/* goal←v8116 */ , var←c29268, pd146);
               };
            };
SOURCE(14149, 89)
         {
            word idx147;
            word limit148;
            word idx149;
            word limit150;
            if (( (int)((* (( (ptr) (( (W9Pt) (( (ptr) lines←v8276)+3))+(
                     idx147 = (*  (ptr) lines←v8276 ),
                     limit148 = (* (( (ptr) lines←v8276)+2) ),
                     BCK(idx147, limit148)
                     )))+1) ) + (* (( (ptr) (( (W9Pt) (( (ptr) lines←v8276)+3))+(
                     idx149 = (*  (ptr) lines←v8276 ),
                     limit150 = (* (( (ptr) lines←v8276)+2) ),
                     BCK(idx149, limit150)
                     )))+5) )) >=  (int)(* (( (ptr) &var←c30292)+9) ))) {
SOURCE(14232, 6)
               return;
               };
            };
SOURCE(14240, 25)
         (* (( (ptr) &var←c30292)+9) ) = ((* (( (ptr) &var←c30292)+9) ) - 1);
SOURCE(14291, 44)
         if ((0 != (* (( (ptr) formal←c30356)+5) ))) {
SOURCE(14311, 24)
            glitchOK←v8144 = (word) TryToGlitch←P1584((word) ((( (bPt) &var←c30292)+20)/* var←c29204 */ ));
            };
         };
      }
   else {
      if (((*  (ptr) (* (( (ptr) formal←c30356)+10) ) ) != (* (( (ptr) formal←c30356)+4) ))) {
         }
      else {
SOURCE(14378, 442)
         {
            W9 selPoint←v8320;
            word clipped←v8348;
SOURCE(14380, 92)
            {
               word tcp151;
               if (((* (( (ptr) (* (( (ptr) formal←c30356)+10) ))+24) ) == 0)) {
                  tcp151 = (word) (( (ptr) (* (( (ptr) formal←c30356)+10) ))+2);
                  }
               else {
                  tcp151 = (word) (( (ptr) (* (( (ptr) formal←c30356)+10) ))+11);
                  };
               selPoint←v8320 = (*  (W9Pt) tcp151 );
               };
SOURCE(14474, 32)
            clipped←v8348 = (* (( (ptr) &selPoint←v8320)+7) );
SOURCE(14508, 60)
            if ( ( (0 == clipped←v8348) ? (0 != (word) OnScreen←P240((* (( (ptr) formal←c30356)+4) ), (*  (W2Pt) (( (ptr) (* (( (ptr) formal←c30356)+10)
                   ))+11) ))) : 0 ) ) {
SOURCE(14562, 6)
               return;
               };
SOURCE(14570, 41)
            {
               word pd152;
               pd152 = (* (( (ptr) (* (( (ptr) gf←c30324)+46)/* var←c28404 */  ))+64) );
               (void) ( *( (fPt) ((*  (ptr) pd152 ))))((word) (( (bPt) &var←c30292)+32)/* goal←v8116 */ , (* (( (ptr) formal←c30356)+10)
                   ), pd152);
               };
SOURCE(14613, 50)
            {
               word pd153;
               pd153 = (* (( (ptr) (* (( (ptr) gf←c30324)+41)/* var←c27444 */  ))+9) );
               if (((word) ( *( (fPt) ((*  (ptr) pd153 ))))((* ((( (ptr) &var←c30292)+8)) ), pd153) != (*  (ptr) (* (( (ptr) &var←c30292)+4)
               /* tdd←v8060 */  ) ))) {
SOURCE(14657, 6)
                  return;
                  };
               };
SOURCE(14665, 71)
            if ( ( ((* (( (ptr) (* (( (ptr) formal←c30356)+10) ))+24) ) == 0) ? ( (int)(* (( (ptr) &var←c30292)+9) ) >  (int)0) : 0 ) ) {
SOURCE(14711, 25)
               (* (( (ptr) &var←c30292)+9) ) = ((* (( (ptr) &var←c30292)+9) ) - 1);
               };
SOURCE(14738, 80)
            if ( (  ( (0 == clipped←v8348) ? (0 != (* (( (ptr) formal←c30356)+5) )) : 0 )  ? ( (int)(* (( (ptr) &selPoint←v8320)+2) ) >  (int)0) : 0 ) ) {
SOURCE(14794, 24)
               glitchOK←v8144 = (word) TryToGlitch←P1584((word) ((( (bPt) &var←c30292)+20)/* var←c29204 */ ));
               };
            };
         };
      };
SOURCE(14827, 77)
   if ( ( (0 == glitchOK←v8144) ? ((* (( (ptr) &var←c30292)+8) ) != 0) : 0 ) ) {
SOURCE(14868, 36)
      (void) ScrollToPosition←P180((* (( (ptr) formal←c30356)+4) ), (*  (W2Pt) (( (ptr) &var←c30292)+8)/* goal←v8116 */  ), 1);
      };
   }

static word TryToGlitch←P1584(formal←c30452)
   word formal←c30452;
   {
   W6 var←c30388;
   register ptr gf←c30420 =  (ptr) &globalframe;
   word success←v8248;
   /* declaration of var←c29300 skipped */ 
   word glitchLines←v8392;
   word tryLines←v8420;
   W2 newPos←v8448;
   word style←v8476 = 0;
   word lineInfo←v8504 = 0;
   word lineCount←v8532 = 0;
   W2 pos←v8560;
   word foundNode←v8588;
   formal←c30452 = (formal←c30452 - 20);
   var←c30388.f0 = formal←c30452;
   /* TryToGlitch: */ 
SOURCE(12170, 1825)
   {
      word tmpAddr154;
      tmpAddr154 = (word) (( (ptr) &var←c30388)+4)/* var←c29300 */ ;
      (*  (ptr) tmpAddr154 ) = ( ((word)  (fPt) NextNode←P1740) );
      (* (( (ptr) tmpAddr154) + 1) ) = 1;
      };
SOURCE(12170, 1825)
   success←v8248 = 0;
SOURCE(12224, 85)
   {
      word x155;
      word x156;
      word x157;
      glitchLines←v8392 = (x156 = (x155 = IOP2( / ,  (int)(*  (ptr) (* (( (ptr) formal←c30452)+7) ) ),  (int)2),
            MAX((int)(word), x155, 1)),
         x157 = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30420)+50)/* var←c29076 */  ))+16) ) ),
         MIN((int)(word), x156, x157));
      };
SOURCE(12311, 56)
   {
      word x158;
      tryLines←v8420 = (x158 = (IOP2( / ,  (int)(*  (ptr) (* (( (ptr) formal←c30452)+7) ) ),  (int)2) - glitchLines←v8392),
         MAX((int)(word), x158, 2));
      };
SOURCE(12400, 25)
   newPos←v8448.f0 = 0;
   newPos←v8448.f1 = 0;
SOURCE(12505, 50)
   {
      word idx159;
      word limit160;
      pos←v8560 = (*  (W2Pt) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c30452)+7) ))+3))+(
            idx159 = (*  (ptr) (* (( (ptr) formal←c30452)+7) ) ),
            limit160 = (* (( (ptr) (* (( (ptr) formal←c30452)+7) ))+2) ),
            BCK(idx159, limit160)
            )) );
      };
SOURCE(12780, 60)
   if (( (int)(*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30420)+50)/* var←c29076 */  ))+16) ) ) <=  (int)0)) {
SOURCE(12825, 15)
      return(1);
      };
SOURCE(12844, 15)
   success←v8248 = 0;
SOURCE(12861, 28)
   {
      word pd161;
      pd161 = (* (( (ptr) (* (( (ptr) gf←c30420)+39)/* var←c27316 */  ))+6) );
      style←v8476 = (word) ( *( (fPt) ((*  (ptr) pd161 ))))(pd161);
      };
SOURCE(12891, 217)
   {
      word idx162;
      word limit163;
      if ((( (((unsigned)(* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c30452)+7) ))+3))+(
               idx162 = (*  (ptr) (* (( (ptr) formal←c30452)+7) ) ),
               limit163 = (* (( (ptr) (* (( (ptr) formal←c30452)+7) ))+2) ),
               BCK(idx162, limit163)
               )))+2) ) << 1) >> 1) ) == 0)) {
SOURCE(12933, 50)
         {
            word idx164;
            word limit165;
            pos←v8560.f0 = (word) NextNode←P1740((*  (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c30452)+7) ))+3))+(
                     idx164 = (*  (ptr) (* (( (ptr) formal←c30452)+7) ) ),
                     limit165 = (* (( (ptr) (* (( (ptr) formal←c30452)+7) ))+2) ),
                     BCK(idx164, limit165)
                     )) ), (word) (( (bPt) &var←c30388)+16)/* var←c29300 */ );
            };
         pos←v8560.f1 = 0;
SOURCE(12985, 64)
         if ((pos←v8560.f0 == 0)) {
SOURCE(13008, 24)
            {
               word pd166;
               pd166 = (* (( (ptr) (* (( (ptr) gf←c30420)+39)/* var←c27316 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd166 ))))(style←v8476, pd166);
               };
SOURCE(13034, 15)
            return(0);
            };
         }
      else {
SOURCE(13058, 50)
         {
            word idx167;
            word limit168;
            pos←v8560.f1 = (pos←v8560.f1 + (* (( (ptr) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c30452)+7) ))+3))+(
                     idx167 = (*  (ptr) (* (( (ptr) formal←c30452)+7) ) ),
                     limit168 = (* (( (ptr) (* (( (ptr) formal←c30452)+7) ))+2) ),
                     BCK(idx167, limit168)
                     )))+5) ));
            };
         };
      };
SOURCE(13110, 30)
   foundNode←v8588 = (pos←v8560.f0 == (* (( (ptr) formal←c30452)+8) ));
SOURCE(13142, 44)
   {
      word pd169;
      pd169 = (* (( (ptr) (* (( (ptr) gf←c30420)+39)/* var←c27316 */  ))+15) );
      (void) ( *( (fPt) ((*  (ptr) pd169 ))))(style←v8476, pos←v8560.f0, (* (( (ptr) (*  (ptr) formal←c30452 ))+9) ), pd169);
      };
SOURCE(13188, 33)
   {
      word pd170;
      pd170 = (* (( (ptr) (* (( (ptr) gf←c30420)+43)/* var←c27956 */  ))+10) );
      lineInfo←v8504 = (word) ( *( (fPt) ((*  (ptr) pd170 ))))(pd170);
      };
SOURCE(13223, 574)
   {
      register word noName←c29364 = 0;
      register word noName←c29396;
      {
         word x171;
         noName←c29396 = (x171 = ((*  (ptr) (* (( (ptr) formal←c30452)+7) ) ) - glitchLines←v8392),
            MIN((int)(word), tryLines←v8420, x171));
         };
      if (( (int)noName←c29364 >=  (int)noName←c29396)) {
         goto lab←L100051;
         };
      lab←L100054: ;
SOURCE(13281, 83)
      if ((pos←v8560.f0 == 0)) {
SOURCE(13304, 24)
         {
            word pd172;
            pd172 = (* (( (ptr) (* (( (ptr) gf←c30420)+39)/* var←c27316 */  ))+7) );
            (void) ( *( (fPt) ((*  (ptr) pd172 ))))(style←v8476, pd172);
            };
SOURCE(13330, 18)
         {
            word pd173;
            pd173 = (* (( (ptr) (* (( (ptr) gf←c30420)+43)/* var←c27956 */  ))+11) );
            (void) ( *( (fPt) ((*  (ptr) pd173 ))))(lineInfo←v8504, pd173);
            };
SOURCE(13350, 14)
         return(0);
         };
SOURCE(13369, 138)
      {
         word var←c29428;
         {
            word var←c29460;
            word int←v26652;
            int←v26652 = (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c30452 ))+4) ))+7) );
            var←c29460 = (int←v26652 << 16);
            var←c29428 = var←c29460;
            };
         {
            word pd174;
            pd174 = (* (( (ptr) (* (( (ptr) gf←c30420)+43)/* var←c27956 */  ))+5) );
            (void) ( *( (fPt) ((*  (ptr) pd174 ))))(lineInfo←v8504, pos←v8560.f0, pos←v8560.f1, style←v8476, var←c29428, 0, pd174);
            };
         };
SOURCE(13509, 25)
      newPos←v8448 = (*  (W2Pt) (( (ptr) lineInfo←v8504)+7) );
SOURCE(13536, 46)
      if ((newPos←v8448.f0 == (* (( (ptr) formal←c30452)+8) ))) {
SOURCE(13566, 16)
         foundNode←v8588 = 1;
         };
SOURCE(13584, 89)
      if ( ( (0 != foundNode←v8588) ?  ( (newPos←v8448.f0 != (* (( (ptr) formal←c30452)+8) )) ? 1 : ( (int)newPos←v8448.f1 >  (int)(* (
         ( (ptr) formal←c30452)+9) )) )  : 0 ) ) {
SOURCE(13659, 14)
         success←v8248 = 1;
SOURCE(13675, 4)
         goto lab←L100052;
         };
SOURCE(13682, 23)
      lineCount←v8532 = (lineCount←v8532 + 1);
SOURCE(13707, 76)
      if ((newPos←v8448.f0 != pos←v8560.f0)) {
SOURCE(13736, 47)
         {
            word pd175;
            pd175 = (* (( (ptr) (* (( (ptr) gf←c30420)+39)/* var←c27316 */  ))+15) );
            (void) ( *( (fPt) ((*  (ptr) pd175 ))))(style←v8476, newPos←v8448.f0, (* (( (ptr) (*  (ptr) formal←c30452 ))+9) ), pd175)
            ;
            };
         };
SOURCE(13785, 12)
      pos←v8560 = newPos←v8448;
      noName←c29364 = (noName←c29364 + 1);
      if (( (int)noName←c29364 <  (int)noName←c29396)) {
         goto lab←L100054;
         };
      lab←L100051: ;
      lab←L100052: ;
      };
SOURCE(13808, 24)
   {
      word pd176;
      pd176 = (* (( (ptr) (* (( (ptr) gf←c30420)+39)/* var←c27316 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd176 ))))(style←v8476, pd176);
      };
SOURCE(13834, 18)
   {
      word pd177;
      pd177 = (* (( (ptr) (* (( (ptr) gf←c30420)+43)/* var←c27956 */  ))+11) );
      (void) ( *( (fPt) ((*  (ptr) pd177 ))))(lineInfo←v8504, pd177);
      };
SOURCE(13854, 14)
   lineInfo←v8504 = 0;
SOURCE(13870, 125)
   if ((0 != success←v8248)) {
SOURCE(13888, 68)
      {
         word var←c29524;
         W2 var←c0320;
         {
            word limit178;
            var←c29524 = (lineCount←v8532 + glitchLines←v8392);
            var←c0320 = (*  (W2Pt) (( (W9Pt) (( (ptr) (* (( (ptr) formal←c30452)+7) ))+3))+(
                  limit178 = (* (( (ptr) (* (( (ptr) formal←c30452)+7) ))+2) ),
                  BCK(var←c29524, limit178)
                  )) );
            };
         {
            word pd179;
            pd179 = (* (( (ptr) (* (( (ptr) gf←c30420)+45)/* var←c28276 */  ))+4) );
            (void) ( *( (fPt) ((*  (ptr) pd179 ))))((* (( (ptr) formal←c30452)+4) ), var←c0320, 0, pd179);
            };
         };
SOURCE(13958, 37)
      (void) DoPaint←P420((* (( (ptr) (*  (ptr) formal←c30452 ))+4) ), (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c30420)+44)/* var←c28180 */  ))+5)
          ) ));
      };
SOURCE(12170, 1825)
   return(success←v8248);
   }

static word NextNode←P1740(node←v8692, formal←c30516)
   word node←v8692;
   word formal←c30516;
   {
   register ptr gf←c30484 =  (ptr) &globalframe;
   word next←v8736;
   W2 var←c0246;
   formal←c30516 = (formal←c30516 - 16);
   /* NextNode: */ 
SOURCE(12574, 202)
SOURCE(12574, 202)
   next←v8736 = 0;
SOURCE(12643, 133)
   {
      word pd181;
      if (((* (( (ptr) (* (( (ptr) (*  (ptr) formal←c30516 ))+4) ))+2) ) < 1023)) {
         {
            word pd180;
            pd180 = (* (( (ptr) (* (( (ptr) gf←c30484)+41)/* var←c27444 */  ))+17) );
            (void) ( *( (fPt) ((*  (ptr) pd180 ))))((word) &var←c0246, node←v8692, (* (( (ptr) (* (( (ptr) (*  (ptr) formal←c30516 ))+4)
                   ))+2) ), 0, pd180);
            };
         next←v8736 = var←c0246.f0;
         }
      else {
         pd181 = (* (( (ptr) (* (( (ptr) gf←c30484)+41)/* var←c27444 */  ))+14) );
         next←v8736 = (word) ( *( (fPt) ((*  (ptr) pd181 ))))(node←v8692, pd181);
         };
      };
SOURCE(12574, 202)
   return(next←v8736);
   }

static void LockAndDoIt←P360(formal←c0354, formal←c0355, formal←c0356, formal←c0357)
   word formal←c0354;
   word formal←c0355;
   word formal←c0356;
   word formal←c0357;
   {
   W10 var←c30548;
   /* declaration of inner←v4556 skipped */ 
   /* declaration of viewer←v4584 skipped */ 
   /* declaration of sel←v4612 skipped */ 
   /* declaration of ignoreIcon←v4640 skipped */ 
   register ptr gf←c30580 =  (ptr) &globalframe;
   /* declaration of var←c29556 skipped */ 
   (* (( (ptr) &var←c30548)+4)/* inner←v4556 */  ) = formal←c0354;
   (* (( (ptr) &var←c30548)+5)/* viewer←v4584 */  ) = formal←c0355;
   (* (( (ptr) &var←c30548)+6)/* sel←v4612 */  ) = formal←c0356;
   (* (( (ptr) &var←c30548)+7)/* ignoreIcon←v4640 */  ) = formal←c0357;
   /* LockAndDoIt: */ 
SOURCE(15012, 994)
   {
      word tmpAddr182;
      tmpAddr182 = (word) (( (ptr) &var←c30548)+8)/* var←c29556 */ ;
      (*  (ptr) tmpAddr182 ) = ( ((word)  (fPt) withViewer←P1800) );
      (* (( (ptr) tmpAddr182) + 1) ) = 1;
      };
SOURCE(15837, 72)
   if ((((* (( (ptr) &var←c30548)+5)/* viewer←v4584 */  ) == 0) || (* (( (bPt) (* (( (ptr) &var←c30548)+5)/* viewer←v4584 */  ))+77)
    ) & 0100) || (* (( (bPt) (* (( (ptr) &var←c30548)+5)/* viewer←v4584 */  ))+77) ) & 02) {
SOURCE(15903, 6)
      return;
      };
SOURCE(15911, 43)
   if ( ( (0 != (* (( (ptr) &var←c30548)+7)/* ignoreIcon←v4640 */  )) ? (((unsigned)(* (( (bPt) (* (( (ptr) &var←c30548)+5)/* viewer←v4584 */  ))+76)
    ) << 27) >> 31) : 0 ) ) {
SOURCE(15948, 6)
      return;
      };
SOURCE(15956, 50)
   {
      word pd183;
      pd183 = (* (( (ptr) (* (( (ptr) gf←c30580)+51)/* var←c29588 */  ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd183 ))))((word) (( (bPt) &var←c30548)+32)/* var←c29556 */ , (* (( (ptr) &var←c30548)+5)/* viewer←v4584 */  ), pd183)
      ;
      };
   }

static void withViewer←P1800(formal←c30676)
   word formal←c30676;
   {
   W5 var←c30612;
   register ptr gf←c30644 =  (ptr) &globalframe;
   /* declaration of tdd←v8824 skipped */ 
   formal←c30676 = (formal←c30676 - 32);
   var←c30612.f0 = formal←c30676;
   /* withViewer: */ 
SOURCE(15150, 679)
SOURCE(15171, 28)
   var←c30612.f4/* tdd←v8824 */  = 0;
SOURCE(15201, 72)
   if ((((* (( (ptr) formal←c30676)+5) ) == 0) || (* (( (bPt) (* (( (ptr) formal←c30676)+5) ))+77) ) & 0100) || (* (( (bPt) (* (
         ( (ptr) formal←c30676)+5) ))+77) ) & 02) {
SOURCE(15267, 6)
      return;
      };
SOURCE(15275, 43)
   if ( ( (0 != (* (( (ptr) formal←c30676)+7) )) ? (((unsigned)(* (( (bPt) (* (( (ptr) formal←c30676)+5) ))+76) ) << 27) >> 31) : 0 ) ) {
SOURCE(15312, 6)
      return;
      };
SOURCE(15320, 56)
   if ( ( ((* (( (ptr) formal←c30676)+6) ) != 0) ? ((* (( (ptr) formal←c30676)+5) ) == (*  (ptr) (* (( (ptr) formal←c30676)+6)
    ) )) : 0 ) ) {
SOURCE(15362, 14)
      var←c30612.f4/* tdd←v8824 */  = (* (( (ptr) (* (( (ptr) formal←c30676)+6) ))+1) );
      };
SOURCE(15378, 84)
   if ((var←c30612.f4/* tdd←v8824 */  == 0)) {
SOURCE(15396, 66)
      {
         word var←c29620;
         var←c29620 = (* (( (ptr) (* (( (ptr) formal←c30676)+5) ))+26) );
         if ((var←c29620 == 0)) {
            goto lab←L100056;
            };
         if (((* (( (ptr) gf←c30644)+11) ) == XR←GetReferentType(var←c29620))) {
            {
               word vtdd←v8868;
               vtdd←v8868 = var←c29620;
SOURCE(15452, 10)
               var←c30612.f4/* tdd←v8824 */  = vtdd←v8868;
               };
            }
         else {
            lab←L100056: ;
            };
         };
      };
SOURCE(15473, 24)
   if ((var←c30612.f4/* tdd←v8824 */  == 0)) {
SOURCE(15491, 6)
      return;
      };
SOURCE(15499, 330)
   if ((* (( (bPt) (* (( (ptr) formal←c30676)+5) ))+76) ) & 020) {
SOURCE(15523, 44)
      {
         word var←c29684;
         word pd184;
         pd184 = (* (( (ptr) (* (( (ptr) gf←c30644)+52)/* var←c29652 */  ))+8) );
         var←c29684 = (word) ( *( (fPt) ((*  (ptr) pd184 ))))(var←c30612.f4/* tdd←v8824 */ , (* (( (ptr) gf←c30644)+19) ), 1, 0, 0, pd184)
         ;
         };
SOURCE(15569, 54)
      {
         word var←c0321;
         var←c0321 = (word) &var←c30612;
          (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2856) ), ( ((word)  (fPt) NoName←Q2976) ), var←c0321);
         };
SOURCE(15625, 31)
      {
         word pd185;
         pd185 = (* (( (ptr) (* (( (ptr) gf←c30644)+52)/* var←c29652 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd185 ))))(var←c30612.f4/* tdd←v8824 */ , pd185);
         };
      }
   else {
SOURCE(15667, 63)
      {
         word pd186;
         pd186 = (* (( (ptr) (* (( (ptr) gf←c30644)+44)/* var←c28180 */  ))+7) );
         if ((0 == (word) ( *( (fPt) ((*  (ptr) pd186 ))))(var←c30612.f4/* tdd←v8824 */ , (* (( (ptr) gf←c30644)+19) ), pd186))) {
SOURCE(15724, 6)
            return;
            };
         };
SOURCE(15732, 59)
      {
         word var←c0322;
         var←c0322 = (word) &var←c30612;
          (void) (word) XR←Enable(( ((word)  (fPt) NoName←Q2796) ), ( ((word)  (fPt) NoName←Q2916) ), var←c0322);
         };
SOURCE(15793, 36)
      {
         word pd187;
         pd187 = (* (( (ptr) (* (( (ptr) gf←c30644)+44)/* var←c28180 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd187 ))))(var←c30612.f4/* tdd←v8824 */ , pd187);
         };
      };
   }

static word NoName←Q2796(formal←c0307)
   word formal←c0307;
   {
SOURCE(15732, 59)
   {
      word pd188;
      pd188 = (* (( (ptr) (*  (ptr) formal←c0307 ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd188 ))))((* ((( (ptr) formal←c0307)+4)) ), pd188);
      };
   return(0);
   }

static word NoName←Q2856(formal←c0308)
   word formal←c0308;
   {
SOURCE(15569, 54)
   {
      word pd189;
      pd189 = (* (( (ptr) (*  (ptr) formal←c0308 ))+4) );
      (void) ( *( (fPt) ((*  (ptr) pd189 ))))((* ((( (ptr) formal←c0308)+4)) ), pd189);
      };
   return(0);
   }

static void DoPaint←P420(viewer←v4760, op←v4788)
   word viewer←v4760;
   word op←v4788;
   {
   register ptr gf←c30708 =  (ptr) &globalframe;
   word clearClient←v8912;
   /* DoPaint: */ 
SOURCE(16012, 315)
SOURCE(16062, 28)
   clearClient←v8912 = (op←v4788 == 0);
SOURCE(16092, 235)
   if ((0 != (* (( (ptr) gf←c30708)+4)/* forkPaints←v3616 */  ))) {
SOURCE(16111, 122)
      {
         word pd190;
         pd190 = (* (( (ptr) (* (( (ptr) gf←c30708)+53)/* var←c29716 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd190 ))))(viewer←v4760, 1, clearClient←v8912, op←v4788, 1, pd190);
         };
      }
   else {
SOURCE(16233, 94)
      {
         word pd191;
         pd191 = (* (( (ptr) (* (( (ptr) gf←c30708)+37)/* var←c27252 */  ))+16) );
         (void) ( *( (fPt) ((*  (ptr) pd191 ))))(viewer←v4760, 1, clearClient←v8912, op←v4788, pd191);
         };
      };
   }

static void NoName←Q2916(formal←c0263, formal←c200016, formal←c200017, formal←c200018, formal←c200019)
   word formal←c0263;
   word formal←c200016;
   word formal←c200017;
   word formal←c200018;
   word formal←c200019;
   {
   register ptr gf←c0310 =  (ptr) &globalframe;
   if ((formal←c200017 == XR←Unwind)) {
SOURCE(15754, 37)
      {
         word pd192;
         pd192 = (* (( (ptr) (* (( (ptr) gf←c0310)+44)/* var←c28180 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd192 ))))((* ((( (ptr) formal←c200016)+4)) ), pd192);
         };
      };
   (*  (ptr) formal←c0263 ) = 0;
   (* (( (ptr) formal←c0263)+1) ) = 0;
   return;
   }

static void NoName←Q2976(formal←c0268, formal←c200012, formal←c200013, formal←c200014, formal←c200015)
   word formal←c0268;
   word formal←c200012;
   word formal←c200013;
   word formal←c200014;
   word formal←c200015;
   {
   register ptr gf←c0311 =  (ptr) &globalframe;
   if ((formal←c200013 == XR←Unwind)) {
SOURCE(15591, 32)
      {
         word pd193;
         pd193 = (* (( (ptr) (* (( (ptr) gf←c0311)+52)/* var←c29652 */  ))+9) );
         (void) ( *( (fPt) ((*  (ptr) pd193 ))))((* ((( (ptr) formal←c200012)+4)) ), pd193);
         };
      };
   (*  (ptr) formal←c0268 ) = 0;
   (* (( (ptr) formal←c0268)+1) ) = 0;
   return;
   }

static void NoName←Q3036(formal←c0273, formal←c200008, formal←c200009, formal←c200010, formal←c200011)
   word formal←c0273;
   word formal←c200008;
   word formal←c200009;
   word formal←c200010;
   word formal←c200011;
   {
   register ptr gf←c0312 =  (ptr) &globalframe;
   if ((formal←c200009 == (* (( (ptr) (* (( (ptr) gf←c0312)+41)/* var←c27444 */  ))+22) ))) {
SOURCE(8327, 10)
      (*  (ptr) formal←c0273 ) = 2;
      (* (( (ptr) formal←c0273)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0273 ) = 0;
   (* (( (ptr) formal←c0273)+1) ) = 0;
   return;
   }

static void NoName←Q3096(formal←c0278, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0278;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0313 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0313)+41)/* var←c27444 */  ))+22) ))) {
SOURCE(8171, 10)
      (*  (ptr) formal←c0278 ) = 2;
      (* (( (ptr) formal←c0278)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0278 ) = 0;
   (* (( (ptr) formal←c0278)+1) ) = 0;
   return;
   }

static void NoName←Q3156(formal←c0283, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0283;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0314 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0314)+41)/* var←c27444 */  ))+22) ))) {
SOURCE(8039, 10)
      (*  (ptr) formal←c0283 ) = 2;
      (* (( (ptr) formal←c0283)+1) ) = 2;
      return;
      };
   (*  (ptr) formal←c0283 ) = 0;
   (* (( (ptr) formal←c0283)+1) ) = 0;
   return;
   }

/* file: TEditScrollingImpl, module: TEditScrollingImpl, compiled at: July 9, 1992 4:11:32 pm PDT */ 
extern void XR←install←TEditScrollingImpl() {
   NoName←Q2556();
   }
extern void XR←run←TEditScrollingImpl() { XR←Start(&globalframe); }