/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1992 by Xerox Corporation.  All rights reserved. */
/* time: February 21, 1992 9:33:42 pm PST */
/* C2C version: October 16, 1990 (native) */
/* ref-counting: off */
/* file: IOClassesImpl, module: IOClassesImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [4291274589,4136530483] IOClassesImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8;
typedef struct {W8 f; W8 r;} W16;
typedef struct {word f0, f1, f2;} W3;
typedef struct {W16 f; W3 r;} W19;
typedef word (*fPt)();
typedef struct {W8 f; word r;} W9;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
#define SOURCE(p, l) /* source p, l */
#define MAX(cast, x, y)  ( ( cast x) > ( cast y) ? (x) : (y) )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q1416();
static void IOClassesImpl←P0();
static void Copy←P60();
static word NoName←Q1476();
static word CreateCommentFilterStream←P120();
static word FilterCommentsStreamGetChar←P180();
static word CreateCatInputStream←P240();
static word CatInputStreamGetChar←P300();
static word NoName←Q1536();
static void SwapStreams←P360();
static word CatInputStreamGetBlock←P420();
static word CatInputStreamUnsafeGetBlock←P480();
static word CatInputStreamEndOf←P540();
static word CatInputStreamCharsAvail←P600();
static void CatInputStreamBackup←P660();
static void CatInputStreamReset←P720();
static void CatInputStreamClose←P780();
static word CreateDribbleOutputStream←P840();
static void DribbleStreamPutChar←P900();
static void DribbleStreamPutBlock←P960();
static void DribbleStreamUnsafePutBlock←P1020();
static void DribbleStreamFlush←P1080();
static void DribbleStreamEraseChar←P1140();
static void DribbleStreamReset←P1200();
static void DribbleStreamClose←P1260();
static void NoName←Q1596();
static void NoName←Q1656();
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 = {851984, "\257\300\377\307\247\135\300\366\216\162\063\101\240\000\000"};
static struct {unsigned f; char r[16];} string4 = {851984, "\257\300\377\307\247\135\300\366\216\162\063\100\310\000\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\004\003\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\377\307\247\135\300\366\216\162\063\100\214\000\000"};
static struct {unsigned f; char r[8];} string7 = {458760, "Dribble"};
static struct {unsigned f; char r[16];} string8 = {786448, "Concatenated\000\000\000"};
static struct {unsigned f; char r[16];} string9 = {851984, "CommentFilter\000\000"};
static struct {unsigned f; char r[16];} string10 = {851984, "\257\300\377\307\247\135\300\366\216\162\063\100\164\000\000"};
static struct {unsigned f; char r[8];} string11 = {262148, "\004\200\340p\000\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\165\000\243\166\300\177\026\106\323\100\150\000\000"};
static struct {unsigned f; char r[16];} string14 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\132\114\005\127\300\365\255\242\322\100\150\000\000"};
static struct {
   word f0[16]; word f16; word f17; word f18; 
   word f19; word f20; word f21; word f22; 
   word f23; word f24; word f25; word f26; 
   word f27; word f28; word f29; word f30; 
   word f31; word f32; word f33; word f34; 
   word f35; word f36; word f37; word f38; 
   word f39; word f40; word f41; word f42; 
   word f43; word f44; word f45; word f46; 
   word f47; word f48; word f49; word f50; 
   word f51; word f52; word f53; word f54; 
   word f55; word f56; word f57; word f58; 
   word f59[5]; 
   } globalframe = {
   {0}, (word) DribbleStreamClose←P1260, 0, (word) DribbleStreamReset←P1200, 
   0, (word) DribbleStreamEraseChar←P1140, 0, (word) DribbleStreamFlush←P1080, 
   0, (word) DribbleStreamUnsafePutBlock←P1020, 0, (word) DribbleStreamPutBlock←P960, 
   0, (word) DribbleStreamPutChar←P900, 0, (word) CreateDribbleOutputStream←P840, 
   0, (word) CatInputStreamClose←P780, 0, (word) CatInputStreamReset←P720, 
   0, (word) CatInputStreamBackup←P660, 0, (word) CatInputStreamCharsAvail←P600, 
   0, (word) CatInputStreamEndOf←P540, 0, (word) CatInputStreamUnsafeGetBlock←P480, 
   0, (word) CatInputStreamGetBlock←P420, 0, (word) SwapStreams←P360, 
   0, (word) CatInputStreamGetChar←P300, 0, (word) CreateCatInputStream←P240, 
   0, (word) FilterCommentsStreamGetChar←P180, 0, (word) CreateCommentFilterStream←P120, 
   0, (word) Copy←P60, 0, (word) IOClassesImpl←P0, 
   {0}
   };

static void NoName←Q1416()
   {
   register ptr gf←c0136 =  (ptr) &globalframe;
   word var←c15952;
   (* (( (ptr) gf←c0136)+7) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0136)+8) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c0136)+10) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0136)+11) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (*  (ptr) (( (bPt) gf←c0136)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0136)+7) ), (word) &string7);
   (*  (ptr) (( (bPt) gf←c0136)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0136)+7) ), (word) &string8);
   (*  (ptr) (( (bPt) gf←c0136)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0136)+7) ), (word) &string9);
   (void) XR←DeclareGlobalFrame((word) "IOClassesImpl", &globalframe, (word) XR←GetTypeIndex((word) &string10, 0, (word) &string11)
      , (word) (( (bPt) gf←c0136)+232)/* var←c15184 */ );
   var←c15952 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string12)), 103);
   (* (( (ptr) gf←c0136)+60)/* var←c15216 */  ) = var←c15952;
   (void) XR←ImportProcS(var←c15952, 529922);
   (void) XR←ImportProcS(var←c15952, 267521);
   (void) XR←ImportProcS(var←c15952, 1053698);
   (void) XR←ImportProcS(var←c15952, 528642);
   (void) XR←ImportProcS(var←c15952, 268033);
   (void) XR←ImportProcS(var←c15952, 527874);
   (void) XR←ImportProcS(var←c15952, 67636482);
   (void) XR←ImportProcS(var←c15952, 68160002);
   (void) XR←ImportProcS(var←c15952, 67374849);
   (void) XR←ImportProcS(var←c15952, 67373825);
   (void) XR←ImportProcS(var←c15952, 67372801);
   (void) XR←ImportProcS(var←c15952, 67921155);
   (void) XR←ImportProcS(var←c15952, 530434);
   (void) XR←ImportProcS(var←c15952, 1053444);
   (void) XR←ImportProcS(var←c15952, 68159748);
   (void) XR←ImportProcS(var←c15952, 72115219);
   var←c15952 = (word) XR←ImportInterface((word) "IOUtils", (word) XR←GetTypeIndexS((word) (&string13)), 27);
   (* (( (ptr) gf←c0136)+62)/* var←c15824 */  ) = var←c15952;
   var←c15952 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string14)), 26);
   (* (( (ptr) gf←c0136)+61)/* var←c15248 */  ) = var←c15952;
   (void) XR←ImportProcS(var←c15952, 262913);
   (void) XR←ImportProcS(var←c15952, 67371521);
   var←c15952 = (word) XR←ExportInterface((word) "IOClasses", (word) XR←GetTypeIndexS((word) (&string15)), 5);
   (* (( (ptr) gf←c0136)+63)/* var←c15984 */  ) = var←c15952;
   (void) XR←ExportProcS(var←c15952, (word) (( (bPt) gf←c0136)+224)/* var←c15152 */ , 1310981);
   (void) XR←ExportProcS(var←c15952, (word) (( (bPt) gf←c0136)+216)/* var←c15120 */ , 67371521);
   (void) XR←ExportProcS(var←c15952, (word) (( (bPt) gf←c0136)+200)/* var←c15056 */ , 67633922);
   (void) XR←ExportProcS(var←c15952, (word) (( (bPt) gf←c0136)+120)/* var←c14736 */ , 67634178);
   }

static void IOClassesImpl←P0(formal←c042, formal←c038)
   word formal←c042;
   word formal←c038;
   {
   register ptr gf←c16016 =  (ptr) &globalframe;
   /* IOClassesImpl: */ 
SOURCE(348, 7904)
SOURCE(1233, 148)
   {
      W19 var←c039;
      (*  (ptr) (word) &var←c039 ) = 0;
      (* (( (ptr) (word) &var←c039) + 1) ) = (* (( (ptr) gf←c16016)+15) );
      (* (( (ptr) (word) &var←c039) + 2) ) = (word) (( (bPt) gf←c16016)+208)/* var←c15088 */ ;
      (* (( (ptr) (word) &var←c039) + 3) ) = 0;
      (* (( (ptr) (word) &var←c039) + 4) ) = 0;
      (* (( (ptr) (word) &var←c039) + 5) ) = 0;
      (* (( (ptr) (word) &var←c039) + 6) ) = 0;
      (* (( (ptr) (word) &var←c039) + 7) ) = 0;
      (* (( (ptr) (word) &var←c039) + 8) ) = 0;
      (* (( (ptr) (word) &var←c039) + 9) ) = 0;
      (* (( (ptr) (word) &var←c039) + 10) ) = 0;
      (* (( (ptr) (word) &var←c039) + 11) ) = 0;
      (* (( (ptr) (word) &var←c039) + 12) ) = 0;
      (* (( (ptr) (word) &var←c039) + 13) ) = 0;
      (* (( (ptr) (word) &var←c039) + 14) ) = 0;
      (* (( (ptr) (word) &var←c039) + 15) ) = 0;
      (* (( (ptr) (word) &var←c039) + 16) ) = 0;
      (* (( (ptr) (word) &var←c039) + 17) ) = 0;
      (* (( (ptr) (word) &var←c039) + 18) ) = 0;
      {
         word pd16;
         pd16 = (* (( (ptr) (* (( (ptr) gf←c16016)+60)/* var←c15216 */  ))+104) );
         (* (( (ptr) gf←c16016)+4)/* FilterCommentsStreamProcs←v2748 */  ) = (word) ( *( (fPt) ((*  (ptr) pd16 ))))((word) (&var←c039), pd16)
         ;
         };
      };
SOURCE(3505, 367)
   {
      W19 var←c040;
      (*  (ptr) (word) &var←c040 ) = 0;
      (* (( (ptr) (word) &var←c040) + 1) ) = (* (( (ptr) gf←c16016)+14) );
      (* (( (ptr) (word) &var←c040) + 2) ) = (word) (( (bPt) gf←c16016)+192)/* var←c15024 */ ;
      (* (( (ptr) (word) &var←c040) + 3) ) = (word) (( (bPt) gf←c16016)+176)/* var←c14960 */ ;
      (* (( (ptr) (word) &var←c040) + 4) ) = (word) (( (bPt) gf←c16016)+168)/* var←c14928 */ ;
      (* (( (ptr) (word) &var←c040) + 5) ) = (word) (( (bPt) gf←c16016)+160)/* var←c14896 */ ;
      (* (( (ptr) (word) &var←c040) + 6) ) = (word) (( (bPt) gf←c16016)+152)/* var←c14864 */ ;
      (* (( (ptr) (word) &var←c040) + 7) ) = (word) (( (bPt) gf←c16016)+144)/* var←c14832 */ ;
      (* (( (ptr) (word) &var←c040) + 8) ) = 0;
      (* (( (ptr) (word) &var←c040) + 9) ) = 0;
      (* (( (ptr) (word) &var←c040) + 10) ) = 0;
      (* (( (ptr) (word) &var←c040) + 11) ) = 0;
      (* (( (ptr) (word) &var←c040) + 12) ) = (word) (( (bPt) gf←c16016)+136)/* var←c14800 */ ;
      (* (( (ptr) (word) &var←c040) + 13) ) = (word) (( (bPt) gf←c16016)+128)/* var←c14768 */ ;
      (* (( (ptr) (word) &var←c040) + 14) ) = 0;
      (* (( (ptr) (word) &var←c040) + 15) ) = 0;
      (* (( (ptr) (word) &var←c040) + 16) ) = 0;
      (* (( (ptr) (word) &var←c040) + 17) ) = 0;
      (* (( (ptr) (word) &var←c040) + 18) ) = 0;
      {
         word pd17;
         pd17 = (* (( (ptr) (* (( (ptr) gf←c16016)+60)/* var←c15216 */  ))+104) );
         (* (( (ptr) gf←c16016)+5)/* CatInputStreamProcs←v2916 */  ) = (word) ( *( (fPt) ((*  (ptr) pd17 ))))((word) (&var←c040), pd17)
         ;
         };
      };
SOURCE(6366, 320)
   {
      W19 var←c041;
      (*  (ptr) (word) &var←c041 ) = 1;
      (* (( (ptr) (word) &var←c041) + 1) ) = (* (( (ptr) gf←c16016)+13) );
      (* (( (ptr) (word) &var←c041) + 2) ) = 0;
      (* (( (ptr) (word) &var←c041) + 3) ) = 0;
      (* (( (ptr) (word) &var←c041) + 4) ) = 0;
      (* (( (ptr) (word) &var←c041) + 5) ) = 0;
      (* (( (ptr) (word) &var←c041) + 6) ) = 0;
      (* (( (ptr) (word) &var←c041) + 7) ) = 0;
      (* (( (ptr) (word) &var←c041) + 8) ) = (word) (( (bPt) gf←c16016)+112)/* var←c14704 */ ;
      (* (( (ptr) (word) &var←c041) + 9) ) = (word) (( (bPt) gf←c16016)+104)/* var←c14672 */ ;
      (* (( (ptr) (word) &var←c041) + 10) ) = (word) (( (bPt) gf←c16016)+96)/* var←c14640 */ ;
      (* (( (ptr) (word) &var←c041) + 11) ) = (word) (( (bPt) gf←c16016)+88)/* var←c14608 */ ;
      (* (( (ptr) (word) &var←c041) + 12) ) = (word) (( (bPt) gf←c16016)+72)/* var←c14544 */ ;
      (* (( (ptr) (word) &var←c041) + 13) ) = (word) (( (bPt) gf←c16016)+64)/* var←c14512 */ ;
      (* (( (ptr) (word) &var←c041) + 14) ) = 0;
      (* (( (ptr) (word) &var←c041) + 15) ) = 0;
      (* (( (ptr) (word) &var←c041) + 16) ) = 0;
      (* (( (ptr) (word) &var←c041) + 17) ) = 0;
      (* (( (ptr) (word) &var←c041) + 18) ) = (word) (( (bPt) gf←c16016)+80)/* var←c14576 */ ;
      {
         word pd18;
         pd18 = (* (( (ptr) (* (( (ptr) gf←c16016)+60)/* var←c15216 */  ))+104) );
         (* (( (ptr) gf←c16016)+6)/* DribbleStreamProcs←v3280 */  ) = (word) ( *( (fPt) ((*  (ptr) pd18 ))))((word) (&var←c041), pd18)
         ;
         };
      };
   }

static void Copy←P60(formal←c0169, to←v3612, closeFrom←v3640, closeTo←v3668, bufferByteCount←v3696)
   word formal←c0169;
   word to←v3612;
   word closeFrom←v3640;
   word closeTo←v3668;
   word bufferByteCount←v3696;
   {
   W9 var←c16048;
   /* declaration of from←v3584 skipped */ 
   register ptr gf←c16080 =  (ptr) &globalframe;
   /* declaration of scratchLen←v6208 skipped */ 
   /* declaration of buffer←v6236 skipped */ 
   (* (( (ptr) &var←c16048)+4)/* from←v3584 */  ) = formal←c0169;
   /* Copy: */ 
SOURCE(581, 443)
SOURCE(670, 41)
   (* (( (ptr) &var←c16048)+5)/* scratchLen←v6208 */  ) = (MAX( (unsigned) , bufferByteCount←v3696, 1));
SOURCE(713, 52)
   {
      word pd19;
      word idx20;
      pd19 = (* (( (ptr) (* (( (ptr) gf←c16080)+61)/* var←c15248 */  ))+6) );
      (* (( (ptr) &var←c16048)+6)/* buffer←v6236 */  ) = (word) ( *( (fPt) ((*  (ptr) pd19 ))))((
            idx20 = (* (( (ptr) &var←c16048)+5)/* scratchLen←v6208 */  ),
            BCK(idx20, 32768)
            ), pd19);
      };
SOURCE(767, 148)
   lab←L100002: ;
SOURCE(767, 148)
   {
      word nBytes←v6292;
SOURCE(770, 74)
      {
         /* declaration of var←c01 skipped */ 
         (* (( (ptr) &var←c16048)+7)/* var←c01 */  ) = (* (( (ptr) (* (( (ptr) gf←c16080)+60)/* var←c15216 */  ))+13) );
         {
            /* declaration of var←c02 skipped */ 
            {
               word var←c03;
               {
                  word var←c0163;
                  var←c0163 = (word) &var←c16048;
                  var←c03 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1476) ), ( ((word)  (fPt) NoName←Q1656) ), var←c0163);
                  };
               if ((var←c03 == 2)) {
                  goto lab←L100001;
                  };
               };
            nBytes←v6292 = (* (( (ptr) &var←c16048)+8)/* var←c02 */  );
            };
         };
SOURCE(851, 34)
      {
         word pd21;
         pd21 = (* (( (ptr) (* (( (ptr) gf←c16080)+60)/* var←c15216 */  ))+23) );
         (void) ( *( (fPt) ((*  (ptr) pd21 ))))(to←v3612, (* (( (ptr) &var←c16048)+6)/* buffer←v6236 */  ), 0, nBytes←v6292, pd21)
         ;
         };
SOURCE(887, 28)
      if ((nBytes←v6292 != (* (( (ptr) &var←c16048)+5)/* scratchLen←v6208 */  ))) {
SOURCE(915, 4)
         goto lab←L100001;
         };
      };
   goto lab←L100002;
   lab←L100001: ;
SOURCE(930, 32)
   if ((0 != closeFrom←v3640)) {
SOURCE(948, 14)
      {
         word pd22;
         pd22 = (* (( (ptr) (* (( (ptr) gf←c16080)+60)/* var←c15216 */  ))+28) );
         (void) ( *( (fPt) ((*  (ptr) pd22 ))))((* (( (ptr) &var←c16048)+4)/* from←v3584 */  ), 0, pd22);
         };
      };
SOURCE(964, 28)
   if ((0 != closeTo←v3668)) {
SOURCE(980, 12)
      {
         word pd23;
         pd23 = (* (( (ptr) (* (( (ptr) gf←c16080)+60)/* var←c15216 */  ))+28) );
         (void) ( *( (fPt) ((*  (ptr) pd23 ))))(to←v3612, 0, pd23);
         };
      };
SOURCE(994, 30)
   {
      word pd24;
      pd24 = (* (( (ptr) (* (( (ptr) gf←c16080)+61)/* var←c15248 */  ))+7) );
      (void) ( *( (fPt) ((*  (ptr) pd24 ))))((* ((( (ptr) &var←c16048)+6)/* buffer←v6236 */ ) ), pd24);
      };
   }

static word NoName←Q1476(formal←c0139)
   word formal←c0139;
   {
SOURCE(770, 74)
   {
      word pd25;
      pd25 = (* (( (ptr) formal←c0139)+7) );
      (* (( (ptr) formal←c0139)+8) ) = (word) ( *( (fPt) ((*  (ptr) pd25 ))))((* (( (ptr) formal←c0139)+4) ), (* (( (ptr) formal←c0139)+6)
          ), 0, (* (( (ptr) formal←c0139)+5) ), pd25);
      };
   return(0);
   }

static word CreateCommentFilterStream←P120(input←v3880)
   word input←v3880;
   {
   register ptr gf←c16112 =  (ptr) &globalframe;
   word var←c3924;
   /* CreateCommentFilterStream: */ 
SOURCE(1384, 213)
SOURCE(1461, 136)
   {
      word var←c15312;
      var←c15312 = XR←NewObject(12, (* (( (ptr) gf←c16112)+11) ));
      {
         word pd26;
         pd26 = (* (( (ptr) (* (( (ptr) gf←c16112)+60)/* var←c15216 */  ))+105) );
         return((word) ( *( (fPt) ((*  (ptr) pd26 ))))((* (( (ptr) gf←c16112)+4)/* FilterCommentsStreamProcs←v2748 */  ), var←c15312, input←v3880, pd26)
         );
         };
      };
   }

static word FilterCommentsStreamGetChar←P180(self←v3984)
   word self←v3984;
   {
   register ptr gf←c16144 =  (ptr) &globalframe;
   word char←v4028;
   word data←v6336;
   /* FilterCommentsStreamGetChar: */ 
SOURCE(1603, 1655)
SOURCE(1677, 56)
   data←v6336 = XR←Narrow((* (( (ptr) self←v3984)+1) ), (* (( (ptr) gf←c16144)+11) ));
SOURCE(1735, 35)
   {
      word pd27;
      pd27 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
      char←v4028 = (word) ( *( (fPt) ((*  (ptr) pd27 ))))((* ((( (ptr) self←v3984)+3)) ), pd27);
      };
   if ((0 != (* (( (ptr) data←v6336)+2) ))) {
SOURCE(1814, 27)
      (* (( (ptr) data←v6336)+2) ) = 0;
      }
   else {
      if ((0 != (* (( (ptr) data←v6336)+1) ))) {
SOURCE(1928, 26)
         (* (( (ptr) data←v6336)+1) ) = 0;
SOURCE(1956, 45)
         if ((char←v4028 == 92)) {
SOURCE(1975, 26)
            (* (( (ptr) data←v6336)+2) ) = 1;
            };
         }
      else {
         if ((0 != (*  (ptr) data←v6336 ))) {
SOURCE(2032, 87)
            {
               word var←c15376;
               var←c15376 = char←v4028;
               if ((var←c15376 == 92)) {
SOURCE(2056, 26)
                  (* (( (ptr) data←v6336)+2) ) = 1;
                  }
               else {
                  if ((var←c15376 == 34)) {
SOURCE(2091, 28)
                     (*  (ptr) data←v6336 ) = 0;
                     };
                  };
               };
            }
         else {
SOURCE(2239, 1019)
            {
               word var←c15408;
               var←c15408 = char←v4028;
               switch (var←c15408) {
                  case 34: 
SOURCE(2263, 27)
                     (*  (ptr) data←v6336 ) = 1;
                     break;
                  case 39: 
SOURCE(2299, 25)
                     (* (( (ptr) data←v6336)+1) ) = 1;
                     break;
                  case 60: case 171: 
SOURCE(2339, 662)
SOURCE(2341, 13)
                     {
                        word nest←v6380 = 1;
SOURCE(2356, 169)
                        if ((char←v4028 == 60)) {
SOURCE(2376, 35)
                           {
/*1*/   word pd28;
/*1*/   pd28 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+15) );
/*1*/   if ((0 != (word) ( *( (fPt) ((*  (ptr) pd28 ))))((* ((( (ptr) self←v3984)+3)) ), pd28))) {
SOURCE(2411, 16)
/*1*/      goto lab←L100005;
/*1*/      };
/*1*/   };
SOURCE(2429, 43)
                           {
/*1*/   word pd29;
/*1*/   pd29 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+19) );
/*1*/   if (((word) ( *( (fPt) ((*  (ptr) pd29 ))))((* ((( (ptr) self←v3984)+3)) ), pd29) != 60)) {
SOURCE(2472, 16)
/*1*/      goto lab←L100005;
/*1*/      };
/*1*/   };
SOURCE(2490, 35)
                           {
/*1*/   word pd30;
/*1*/   pd30 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
/*1*/   char←v4028 = (word) ( *( (fPt) ((*  (ptr) pd30 ))))((* ((( (ptr) self←v3984)+3)) ), pd30);
/*1*/   };
                           };
SOURCE(2530, 380)
                        lab←L100009: ;
SOURCE(2533, 35)
                        {
                           word pd31;
                           pd31 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
                           char←v4028 = (word) ( *( (fPt) ((*  (ptr) pd31 ))))((* ((( (ptr) self←v3984)+3)) ), pd31);
                           };
SOURCE(2570, 340)
                        {
                           word var←c15440;
                           var←c15440 = char←v4028;
                           switch (var←c15440) {
/*1*/   case 60: 
SOURCE(2593, 97)
/*1*/      {
/*1*/         word pd32;
/*1*/         pd32 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+19) );
/*1*/         if (((word) ( *( (fPt) ((*  (ptr) pd32 ))))((* ((( (ptr) self←v3984)+3)) ), pd32) == 60)) {
SOURCE(2638, 35)
/*1*/            {
/*1*/               word pd33;
/*1*/               pd33 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
/*1*/               char←v4028 = (word) ( *( (fPt) ((*  (ptr) pd33 ))))((* ((( (ptr) self←v3984)+3)) ), pd33);
/*1*/               };
SOURCE(2675, 15)
/*1*/            nest←v6380 = (nest←v6380 + 1);
/*1*/            };
/*1*/         };
/*1*/      break;
/*1*/   case 62: 
SOURCE(2701, 117)
/*1*/      {
/*1*/         word pd34;
/*1*/         pd34 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+19) );
/*1*/         if (((word) ( *( (fPt) ((*  (ptr) pd34 ))))((* ((( (ptr) self←v3984)+3)) ), pd34) == 62)) {
SOURCE(2746, 35)
/*1*/            {
/*1*/               word pd35;
/*1*/               pd35 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
/*1*/               char←v4028 = (word) ( *( (fPt) ((*  (ptr) pd35 ))))((* ((( (ptr) self←v3984)+3)) ), pd35);
/*1*/               };
SOURCE(2783, 15)
/*1*/            nest←v6380 = (nest←v6380 - 1);
SOURCE(2800, 18)
/*1*/            if (( (int)nest←v6380 <=  (int)0)) {
SOURCE(2818, 16)
/*1*/               goto lab←L100006;
/*1*/               };
/*1*/            };
/*1*/         };
/*1*/      break;
/*1*/   case 171: 
SOURCE(2848, 15)
/*1*/      nest←v6380 = (nest←v6380 + 1);
/*1*/      break;
/*1*/   case 187: 
SOURCE(2875, 15)
/*1*/      nest←v6380 = (nest←v6380 - 1);
SOURCE(2892, 18)
/*1*/      if (( (int)nest←v6380 <=  (int)0)) {
SOURCE(2910, 16)
/*1*/         goto lab←L100006;
/*1*/         };
/*1*/      break;
/*1*/   };
                           };
                        goto lab←L100009;
                        };
                     /* c2c skipped dead code */ 
                     lab←L100005: ;
                     goto lab←L100010;
                     lab←L100006: ;
SOURCE(2986, 12)
                     char←v4028 = 32;
                     lab←L100010: ;
                     break;
                  case 45: 
SOURCE(3010, 248)
                     {
                        word tc36;
                        word pd37;
                        word pd38;
                        pd37 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+15) );
                        if ((0 == (word) ( *( (fPt) ((*  (ptr) pd37 ))))((* ((( (ptr) self←v3984)+3)) ), pd37))) {
                           pd38 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+19) );
                           tc36 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd38 ))))((* ((( (ptr) self←v3984)+3)) ), pd38) == 45);
                           }
                        else {
                           tc36 =  (word) 0;
                           };
                        if (tc36) {
SOURCE(3090, 33)
                           {
/*1*/   word var←c15472;
/*1*/   word pd39;
/*1*/   pd39 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
/*1*/   var←c15472 = (word) ( *( (fPt) ((*  (ptr) pd39 ))))((* ((( (ptr) self←v3984)+3)) ), pd39);
/*1*/   };
SOURCE(3125, 133)
                           lab←L100013: ;
SOURCE(3128, 130)
                           {
/*1*/   word var←c15504;
/*1*/   {
/*1*/      word pd40;
/*1*/      pd40 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
/*1*/      char←v4028 = (word) ( *( (fPt) ((*  (ptr) pd40 ))))((* ((( (ptr) self←v3984)+3)) ), pd40);
/*1*/      };
/*1*/   var←c15504 = char←v4028;
/*1*/   switch (var←c15504) {
/*1*/      case 10: case 13: 
SOURCE(3190, 4)
/*1*/         goto lab←L100012;
/*1*/      case 45: 
SOURCE(3202, 56)
/*1*/         {
/*1*/            word pd41;
/*1*/            pd41 = (* (( (ptr) (* (( (ptr) gf←c16144)+60)/* var←c15216 */  ))+11) );
/*1*/            if (((word) ( *( (fPt) ((*  (ptr) pd41 ))))((* ((( (ptr) self←v3984)+3)) ), pd41) == 45)) {
SOURCE(3246, 12)
/*1*/               char←v4028 = 32;
SOURCE(3260, 5)
/*1*/               goto lab←L100012;
/*1*/               };
/*1*/            };
/*1*/         break;
/*1*/      };
/*1*/   };
                           goto lab←L100013;
                           lab←L100012: ;
                           };
                        };
                     break;
                  };
               };
            };
         };
      };
SOURCE(1603, 1655)
   return(char←v4028);
   }

static word CreateCatInputStream←P240(input1←v4312, input2←v4340)
   word input1←v4312;
   word input2←v4340;
   {
   register ptr gf←c16176 =  (ptr) &globalframe;
   word var←c4384;
   /* CreateCatInputStream: */ 
SOURCE(3875, 228)
SOURCE(3955, 148)
   {
      word var←c15600;
      word var←c15568;
      var←c15600 = XR←NewObject(12, (* (( (ptr) gf←c16176)+10) ));
      (*  (ptr) var←c15600 ) = input1←v4312;
      (* (( (ptr) var←c15600)+1) ) = input2←v4340;
      var←c15568 = var←c15600;
      {
         word pd42;
         pd42 = (* (( (ptr) (* (( (ptr) gf←c16176)+60)/* var←c15216 */  ))+105) );
         return((word) ( *( (fPt) ((*  (ptr) pd42 ))))((* (( (ptr) gf←c16176)+5)/* CatInputStreamProcs←v2916 */  ), var←c15568, 0, pd42)
         );
         };
      };
   }

static word CatInputStreamGetChar←P300(self←v4444)
   word self←v4444;
   {
   W6 var←c16208;
   register ptr gf←c16240 =  (ptr) &globalframe;
   /* declaration of var←c04 skipped */ 
   word var←c4488;
   /* declaration of data←v6424 skipped */ 
   /* CatInputStreamGetChar: */ 
SOURCE(4109, 293)
SOURCE(4171, 50)
   var←c16208.f5/* data←v6424 */  = XR←Narrow((* (( (ptr) self←v4444)+1) ), (* (( (ptr) gf←c16240)+10) ));
SOURCE(4223, 179)
SOURCE(4225, 101)
   {
      word var←c05;
      {
         word var←c0164;
         var←c0164 = (word) &var←c16208;
         var←c05 = (word) XR←Enable(( ((word)  (fPt) NoName←Q1536) ), ( ((word)  (fPt) NoName←Q1596) ), var←c0164);
         };
      if ((var←c05 == 3)) {
         goto lab←L100014;
         }
      else {
         if ((var←c05 == 1)) {
            goto lab←L03;
            };
         };
      };
   goto lab←L100017;
   lab←L100014: ;
SOURCE(4350, 17)
   (void) SwapStreams←P360(var←c16208.f5/* data←v6424 */ );
SOURCE(4369, 29)
   {
      word pd43;
      pd43 = (* (( (ptr) (* (( (ptr) gf←c16240)+60)/* var←c15216 */  ))+11) );
      return((word) ( *( (fPt) ((*  (ptr) pd43 ))))((*  (ptr) (var←c16208.f5/* data←v6424 */ ) ), pd43));
      };
   lab←L100017: ;
   lab←L03: ;
   return(var←c16208.f4/* var←c04 */ );
   }

static word NoName←Q1536(formal←c0145)
   word formal←c0145;
   {
   register ptr gf←c0144 =  (ptr) &globalframe;
SOURCE(4297, 29)
   {
      word pd44;
      pd44 = (* (( (ptr) (* (( (ptr) gf←c0144)+60)/* var←c15216 */  ))+11) );
      (* (( (ptr) formal←c0145)+4) ) = (word) ( *( (fPt) ((*  (ptr) pd44 ))))((*  (ptr) ((* (( (ptr) formal←c0145)+5) )) ), pd44)
      ;
      };
   return(1);
   /* c2c skipped dead code */ 
   }

static void SwapStreams←P360(data←v4548)
   word data←v4548;
   {
   word temp←v6468;
   /* SwapStreams: */ 
SOURCE(4408, 182)
SOURCE(4457, 26)
   temp←v6468 = (*  (ptr) data←v4548 );
SOURCE(4485, 30)
   if (((* (( (ptr) data←v4548)+2) ) != 0)) {
SOURCE(4515, 5)
      (void) XR←RaiseUnnamedError();
      };
SOURCE(4522, 25)
   (*  (ptr) data←v4548 ) = (* (( (ptr) data←v4548)+1) );
SOURCE(4549, 18)
   (* (( (ptr) data←v4548)+1) ) = temp←v6468;
SOURCE(4569, 21)
   (* (( (ptr) data←v4548)+2) ) = 1;
   }

static word CatInputStreamGetBlock←P420(self←v4608, block←v4636, startIndex←v4664, count←v4692)
   word self←v4608;
   word block←v4636;
   word startIndex←v4664;
   word count←v4692;
   {
   register ptr gf←c16272 =  (ptr) &globalframe;
   word nBytesRead←v4748;
   word data←v6512;
   /* CatInputStreamGetBlock: */ 
SOURCE(4596, 375)
SOURCE(4716, 50)
   data←v6512 = XR←Narrow((* (( (ptr) self←v4608)+1) ), (* (( (ptr) gf←c16272)+10) ));
SOURCE(4768, 59)
   {
      word pd45;
      pd45 = (* (( (ptr) (* (( (ptr) gf←c16272)+60)/* var←c15216 */  ))+13) );
      nBytesRead←v4748 = (word) ( *( (fPt) ((*  (ptr) pd45 ))))((*  (ptr) data←v6512 ), block←v4636, startIndex←v4664, count←v4692, pd45)
      ;
      };
SOURCE(4829, 67)
   if ((nBytesRead←v4748 > 0) || ((* (( (ptr) data←v6512)+2) ) == 1)) {
SOURCE(4877, 19)
      return(nBytesRead←v4748);
      };
SOURCE(4898, 17)
   (void) SwapStreams←P360(data←v6512);
SOURCE(4917, 54)
   {
      word pd46;
      pd46 = (* (( (ptr) (* (( (ptr) gf←c16272)+60)/* var←c15216 */  ))+13) );
      return((word) ( *( (fPt) ((*  (ptr) pd46 ))))((*  (ptr) data←v6512 ), block←v4636, startIndex←v4664, count←v4692, pd46));
      };
   }

static word CatInputStreamUnsafeGetBlock←P480(self←v4808, block←v4836)
   word self←v4808;
   W3 block←v4836;
   {
   register ptr gf←c16304 =  (ptr) &globalframe;
   word nBytesRead←v4880;
   word data←v6556;
   /* CatInputStreamUnsafeGetBlock: */ 
SOURCE(4977, 337)
SOURCE(5085, 50)
   data←v6556 = XR←Narrow((* (( (ptr) self←v4808)+1) ), (* (( (ptr) gf←c16304)+10) ));
SOURCE(5137, 46)
   {
      word pd47;
      pd47 = (* (( (ptr) (* (( (ptr) gf←c16304)+60)/* var←c15216 */  ))+14) );
      nBytesRead←v4880 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((*  (ptr) data←v6556 ), block←v4836, pd47);
      };
SOURCE(5185, 67)
   if (( (int)nBytesRead←v4880 >  (int)0) || ((* (( (ptr) data←v6556)+2) ) == 1)) {
SOURCE(5233, 19)
      return(nBytesRead←v4880);
      };
SOURCE(5254, 17)
   (void) SwapStreams←P360(data←v6556);
SOURCE(5273, 41)
   {
      word pd48;
      pd48 = (* (( (ptr) (* (( (ptr) gf←c16304)+60)/* var←c15216 */  ))+14) );
      return((word) ( *( (fPt) ((*  (ptr) pd48 ))))((*  (ptr) data←v6556 ), block←v4836, pd48));
      };
   }

static word CatInputStreamEndOf←P540(self←v4940)
   word self←v4940;
   {
   register ptr gf←c16336 =  (ptr) &globalframe;
   word var←c4984;
   word data←v6600;
   /* CatInputStreamEndOf: */ 
SOURCE(5320, 252)
SOURCE(5380, 50)
   data←v6600 = XR←Narrow((* (( (ptr) self←v4940)+1) ), (* (( (ptr) gf←c16336)+10) ));
SOURCE(5432, 46)
   {
      word pd49;
      pd49 = (* (( (ptr) (* (( (ptr) gf←c16336)+60)/* var←c15216 */  ))+15) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd49 ))))((*  (ptr) (data←v6600) ), pd49))) {
SOURCE(5464, 14)
         return(0);
         };
      };
SOURCE(5480, 43)
   if (((* (( (ptr) data←v6600)+2) ) == 1)) {
SOURCE(5510, 13)
      return(1);
      };
SOURCE(5525, 17)
   (void) SwapStreams←P360(data←v6600);
SOURCE(5544, 28)
   {
      word pd50;
      pd50 = (* (( (ptr) (* (( (ptr) gf←c16336)+60)/* var←c15216 */  ))+15) );
      return((word) ( *( (fPt) ((*  (ptr) pd50 ))))((*  (ptr) (data←v6600) ), pd50));
      };
   }

static word CatInputStreamCharsAvail←P600(self←v5044, wait←v5072)
   word self←v5044;
   word wait←v5072;
   {
   register ptr gf←c16368 =  (ptr) &globalframe;
   word var←c5116;
   word data←v6644;
   /* CatInputStreamCharsAvail: */ 
SOURCE(5578, 164)
SOURCE(5654, 50)
   data←v6644 = XR←Narrow((* (( (ptr) self←v5044)+1) ), (* (( (ptr) gf←c16368)+10) ));
SOURCE(5706, 36)
   {
      word pd51;
      pd51 = (* (( (ptr) (* (( (ptr) gf←c16368)+60)/* var←c15216 */  ))+17) );
      return((word) ( *( (fPt) ((*  (ptr) pd51 ))))((*  (ptr) data←v6644 ), wait←v5072, pd51));
      };
   }

static void CatInputStreamBackup←P660(self←v5176, char←v5204)
   word self←v5176;
   word char←v5204;
   {
   register ptr gf←c16400 =  (ptr) &globalframe;
   word data←v6688;
   /* CatInputStreamBackup: */ 
SOURCE(5748, 134)
SOURCE(5806, 50)
   data←v6688 = XR←Narrow((* (( (ptr) self←v5176)+1) ), (* (( (ptr) gf←c16400)+10) ));
SOURCE(5858, 24)
   {
      word pd52;
      pd52 = (* (( (ptr) (* (( (ptr) gf←c16400)+60)/* var←c15216 */  ))+18) );
      (void) ( *( (fPt) ((*  (ptr) pd52 ))))((*  (ptr) data←v6688 ), char←v5204, pd52);
      };
   }

static void CatInputStreamReset←P720(self←v5264)
   word self←v5264;
   {
   register ptr gf←c16432 =  (ptr) &globalframe;
   word data←v6732;
   /* CatInputStreamReset: */ 
SOURCE(5888, 137)
SOURCE(5933, 50)
   data←v6732 = XR←Narrow((* (( (ptr) self←v5264)+1) ), (* (( (ptr) gf←c16432)+10) ));
SOURCE(5985, 19)
   {
      word pd53;
      pd53 = (* (( (ptr) (* (( (ptr) gf←c16432)+60)/* var←c15216 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd53 ))))((*  (ptr) (data←v6732) ), pd53);
      };
SOURCE(6006, 19)
   {
      word pd54;
      pd54 = (* (( (ptr) (* (( (ptr) gf←c16432)+60)/* var←c15216 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd54 ))))((* ((( (ptr) data←v6732)+1)) ), pd54);
      };
   }

static void CatInputStreamClose←P780(self←v5324, abort←v5352)
   word self←v5324;
   word abort←v5352;
   {
   register ptr gf←c16464 =  (ptr) &globalframe;
   word data←v6776;
   /* CatInputStreamClose: */ 
SOURCE(6031, 218)
SOURCE(6089, 50)
   data←v6776 = XR←Narrow((* (( (ptr) self←v5324)+1) ), (* (( (ptr) gf←c16464)+10) ));
SOURCE(6141, 19)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c16464)+60)/* var←c15216 */  ))+28) );
      (void) ( *( (fPt) ((*  (ptr) pd55 ))))((*  (ptr) data←v6776 ), 0, pd55);
      };
SOURCE(6162, 19)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c16464)+60)/* var←c15216 */  ))+28) );
      (void) ( *( (fPt) ((*  (ptr) pd56 ))))((* (( (ptr) data←v6776)+1) ), 0, pd56);
      };
SOURCE(6183, 20)
   (* (( (ptr) data←v6776)+2) ) = 2;
SOURCE(6205, 44)
   (*  (ptr) self←v5324 ) = (*  (ptr) (* (( (ptr) (* (( (ptr) gf←c16464)+62)/* var←c15824 */  ))+15) ) );
   }

static word CreateDribbleOutputStream←P840(output1←v5480, output2←v5508)
   word output1←v5480;
   word output2←v5508;
   {
   register ptr gf←c16496 =  (ptr) &globalframe;
   word var←c5552;
   /* CreateDribbleOutputStream: */ 
SOURCE(6689, 232)
SOURCE(6776, 145)
   {
      word var←c15920;
      word var←c15888;
      var←c15920 = XR←NewObject(4, (* (( (ptr) gf←c16496)+8) ));
      (*  (ptr) var←c15920 ) = output2←v5508;
      var←c15888 = var←c15920;
      {
         word pd57;
         pd57 = (* (( (ptr) (* (( (ptr) gf←c16496)+60)/* var←c15216 */  ))+105) );
         return((word) ( *( (fPt) ((*  (ptr) pd57 ))))((* (( (ptr) gf←c16496)+6)/* DribbleStreamProcs←v3280 */  ), var←c15888, output1←v5480, pd57)
         );
         };
      };
   }

static void DribbleStreamPutChar←P900(self←v5612, char←v5640)
   word self←v5612;
   word char←v5640;
   {
   register ptr gf←c16528 =  (ptr) &globalframe;
   word data←v6820;
   /* DribbleStreamPutChar: */ 
SOURCE(6927, 174)
SOURCE(6985, 49)
   data←v6820 = XR←Narrow((* (( (ptr) self←v5612)+1) ), (* (( (ptr) gf←c16528)+8) ));
SOURCE(7036, 32)
   {
      word pd58;
      pd58 = (* (( (ptr) (* (( (ptr) gf←c16528)+60)/* var←c15216 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd58 ))))((* (( (ptr) self←v5612)+3) ), char←v5640, pd58);
      };
SOURCE(7070, 31)
   {
      word pd59;
      pd59 = (* (( (ptr) (* (( (ptr) gf←c16528)+60)/* var←c15216 */  ))+21) );
      (void) ( *( (fPt) ((*  (ptr) pd59 ))))((*  (ptr) data←v6820 ), char←v5640, pd59);
      };
   }

static void DribbleStreamPutBlock←P960(self←v5700, block←v5728, startIndex←v5756, count←v5784)
   word self←v5700;
   word block←v5728;
   word startIndex←v5756;
   word count←v5784;
   {
   register ptr gf←c16560 =  (ptr) &globalframe;
   word data←v6864;
   /* DribbleStreamPutBlock: */ 
SOURCE(7107, 260)
SOURCE(7209, 49)
   data←v6864 = XR←Narrow((* (( (ptr) self←v5700)+1) ), (* (( (ptr) gf←c16560)+8) ));
SOURCE(7260, 53)
   {
      word pd60;
      pd60 = (* (( (ptr) (* (( (ptr) gf←c16560)+60)/* var←c15216 */  ))+23) );
      (void) ( *( (fPt) ((*  (ptr) pd60 ))))((* (( (ptr) self←v5700)+3) ), block←v5728, startIndex←v5756, count←v5784, pd60);
      };
SOURCE(7315, 52)
   {
      word pd61;
      pd61 = (* (( (ptr) (* (( (ptr) gf←c16560)+60)/* var←c15216 */  ))+23) );
      (void) ( *( (fPt) ((*  (ptr) pd61 ))))((*  (ptr) data←v6864 ), block←v5728, startIndex←v5756, count←v5784, pd61);
      };
   }

static void DribbleStreamUnsafePutBlock←P1020(self←v5856, block←v5884)
   word self←v5856;
   W3 block←v5884;
   {
   register ptr gf←c16592 =  (ptr) &globalframe;
   word data←v6908;
   /* DribbleStreamUnsafePutBlock: */ 
SOURCE(7373, 208)
SOURCE(7449, 49)
   data←v6908 = XR←Narrow((* (( (ptr) self←v5856)+1) ), (* (( (ptr) gf←c16592)+8) ));
SOURCE(7500, 40)
   {
      word pd62;
      pd62 = (* (( (ptr) (* (( (ptr) gf←c16592)+60)/* var←c15216 */  ))+24) );
      (void) ( *( (fPt) ((*  (ptr) pd62 ))))((* (( (ptr) self←v5856)+3) ), block←v5884, pd62);
      };
SOURCE(7542, 39)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c16592)+60)/* var←c15216 */  ))+24) );
      (void) ( *( (fPt) ((*  (ptr) pd63 ))))((*  (ptr) data←v6908 ), block←v5884, pd63);
      };
   }

static void DribbleStreamFlush←P1080(self←v5944)
   word self←v5944;
   {
   register ptr gf←c16624 =  (ptr) &globalframe;
   word data←v6952;
   /* DribbleStreamFlush: */ 
SOURCE(7587, 148)
SOURCE(7631, 49)
   data←v6952 = XR←Narrow((* (( (ptr) self←v5944)+1) ), (* (( (ptr) gf←c16624)+8) ));
SOURCE(7682, 26)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c16624)+60)/* var←c15216 */  ))+25) );
      (void) ( *( (fPt) ((*  (ptr) pd64 ))))((* ((( (ptr) self←v5944)+3)) ), pd64);
      };
SOURCE(7710, 25)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c16624)+60)/* var←c15216 */  ))+25) );
      (void) ( *( (fPt) ((*  (ptr) pd65 ))))((*  (ptr) (data←v6952) ), pd65);
      };
   }

static void DribbleStreamEraseChar←P1140(self←v6004, char←v6032)
   word self←v6004;
   word char←v6032;
   {
   register ptr gf←c16656 =  (ptr) &globalframe;
   word data←v6996;
   /* DribbleStreamEraseChar: */ 
SOURCE(7741, 180)
SOURCE(7801, 49)
   data←v6996 = XR←Narrow((* (( (ptr) self←v6004)+1) ), (* (( (ptr) gf←c16656)+8) ));
SOURCE(7852, 34)
   {
      word pd66;
      pd66 = (* (( (ptr) (* (( (ptr) gf←c16656)+60)/* var←c15216 */  ))+26) );
      (void) ( *( (fPt) ((*  (ptr) pd66 ))))((* (( (ptr) self←v6004)+3) ), char←v6032, pd66);
      };
SOURCE(7888, 33)
   {
      word pd67;
      pd67 = (* (( (ptr) (* (( (ptr) gf←c16656)+60)/* var←c15216 */  ))+26) );
      (void) ( *( (fPt) ((*  (ptr) pd67 ))))((*  (ptr) data←v6996 ), char←v6032, pd67);
      };
   }

static void DribbleStreamReset←P1200(self←v6092)
   word self←v6092;
   {
   register ptr gf←c16688 =  (ptr) &globalframe;
   word data←v7040;
   /* DribbleStreamReset: */ 
SOURCE(7927, 148)
SOURCE(7971, 49)
   data←v7040 = XR←Narrow((* (( (ptr) self←v6092)+1) ), (* (( (ptr) gf←c16688)+8) ));
SOURCE(8022, 26)
   {
      word pd68;
      pd68 = (* (( (ptr) (* (( (ptr) gf←c16688)+60)/* var←c15216 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd68 ))))((* ((( (ptr) self←v6092)+3)) ), pd68);
      };
SOURCE(8050, 25)
   {
      word pd69;
      pd69 = (* (( (ptr) (* (( (ptr) gf←c16688)+60)/* var←c15216 */  ))+27) );
      (void) ( *( (fPt) ((*  (ptr) pd69 ))))((*  (ptr) (data←v7040) ), pd69);
      };
   }

static void DribbleStreamClose←P1260(self←v6152, abort←v6180)
   word self←v6152;
   word abort←v6180;
   {
   register ptr gf←c16720 =  (ptr) &globalframe;
   word data←v7084;
   /* DribbleStreamClose: */ 
SOURCE(8081, 171)
SOURCE(8138, 49)
   data←v7084 = XR←Narrow((* (( (ptr) self←v6152)+1) ), (* (( (ptr) gf←c16720)+8) ));
SOURCE(8189, 31)
   {
      word pd70;
      pd70 = (* (( (ptr) (* (( (ptr) gf←c16720)+60)/* var←c15216 */  ))+28) );
      (void) ( *( (fPt) ((*  (ptr) pd70 ))))((* (( (ptr) self←v6152)+3) ), abort←v6180, pd70);
      };
SOURCE(8222, 30)
   {
      word pd71;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c16720)+60)/* var←c15216 */  ))+28) );
      (void) ( *( (fPt) ((*  (ptr) pd71 ))))((*  (ptr) data←v7084 ), abort←v6180, pd71);
      };
   }

static void NoName←Q1596(formal←c0129, formal←c200004, formal←c200005, formal←c200006, formal←c200007)
   word formal←c0129;
   word formal←c200004;
   word formal←c200005;
   word formal←c200006;
   word formal←c200007;
   {
   register ptr gf←c0161 =  (ptr) &globalframe;
   if ((formal←c200005 == (* (( (ptr) (* (( (ptr) gf←c0161)+60)/* var←c15216 */  ))+4) ))) {
      {
         word stream←v14276;
         stream←v14276 = (*  (ptr) formal←c200007 );
SOURCE(4250, 30)
         if (((* (( (ptr) (* (( (ptr) formal←c200004)+5) ))+2) ) == 0)) {
SOURCE(4280, 15)
            (*  (ptr) formal←c0129 ) = 2;
            (* (( (ptr) formal←c0129)+1) ) = 3;
            return;
            };
         };
      };
   (*  (ptr) formal←c0129 ) = 0;
   (* (( (ptr) formal←c0129)+1) ) = 0;
   return;
   }

static void NoName←Q1656(formal←c0135, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
   word formal←c0135;
   word formal←c200000;
   word formal←c200001;
   word formal←c200002;
   word formal←c200003;
   {
   register ptr gf←c0162 =  (ptr) &globalframe;
   if ((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0162)+60)/* var←c15216 */  ))+4) ))) {
      {
         word stream←v14112;
         stream←v14112 = (*  (ptr) formal←c200003 );
SOURCE(844, 5)
         (*  (ptr) formal←c0135 ) = 2;
         (* (( (ptr) formal←c0135)+1) ) = 2;
         return;
         };
      };
   (*  (ptr) formal←c0135 ) = 0;
   (* (( (ptr) formal←c0135)+1) ) = 0;
   return;
   }

/* file: IOClassesImpl, module: IOClassesImpl, compiled at: February 21, 1992 9:33:42 pm PST */ 
extern void XR←install←IOClassesImpl() {
   NoName←Q1416();
   }
extern void XR←run←IOClassesImpl() { XR←Start(&globalframe); }