/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1994 by Xerox Corporation.  All rights reserved. */
/* time: March 18, 1994 1:59:29 pm PST */
/* C2C version: January 12, 1994 (sun4) */
/* ref-counting: off */
/* file: UXIOImpl, module: UXIOImpl */ 
/* switches: bcfhklnouw */ 
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [1801589678,2044132536] UXIOImpl";
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 W16 *W16Pt;
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3;} W4;
#define SOURCE(p, l) /* source p, l */
#define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i )
#define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) )
static void NoName←Q2436();
static void UXIOImpl←P0();
static word CreateStandardStream←P60();
static word CreateFileStream←P120();
static word GetChar←P180();
static word EndOfInput←P240();
static void PutChar←P300();
static word UnsafeGetBlock←P360();
static void UnsafePutBlock←P420();
static word GetIndex←P480();
static void SetIndex←P540();
static void GetStat←P600();
static word GetLength←P660();
static word EndOf←P720();
static void Backup←P780();
static void Flush←P840();
static void Close←P900();
static void ResetInput←P960();
static word InputCharsAvail←P1020();
static void Delete←P1080();
static word OpenFileFromStream←P1140();
static word GetCreateTime←P1200();
static word GetName←P1260();
static word ExpandName←P1320();
static word GetWDir←P1380();
static word GetDefaultWDir←P1440();
static word RopeOpen←P1500();
static void RopeDelete←P1560();
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[16];} string4 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\104\304\000\000"};
static struct {unsigned f; char r[24];} string5 = {1376277, "\007\000\001\002\007\020\001\002\000\007\036\002\004\003\002\004\014\016\015\003\001\000\000"};
static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\042\153\070\214\300\322\115\214\301\100\230\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\153\142\023\256\300\171\326\374\270\100\214\000\000"};
static struct {unsigned f; char r[4];} string8 = {131074, "\003\001\000"};
static struct {unsigned f; char r[12];} string9 = {524300, "FileName\000\000\000"};
static struct {unsigned f; char r[4];} string10 = {131076, "FD\000"};
static struct {unsigned f; char r[20];} string11 = {1048596, "WorkingDirectory\000\000\000"};
static struct {unsigned f; char r[12];} string12 = {524300, "UXFileIO\000\000\000"};
static struct {unsigned f; char r[8];} string13 = {458760, "UXStdIO"};
static struct {unsigned f; char r[44];} string14 = {2752556, "read failed to return any bytes in GetChar\000"};
static struct {unsigned f; char r[52];} string15 = {3211316, "read failed to return any bytes in UnsafeGetBlock\000\000"};
static struct {unsigned f; char r[52];} string16 = {3211316, "write failed to write any bytes in UnsafePutBlock\000\000"};
static struct {unsigned f; char r[28];} string17 = {1572892, "lseek failed in GetIndex\000\000\000"};
static struct {unsigned f; char r[28];} string18 = {1572892, "lseek failed in SetIndex\000\000\000"};
static struct {unsigned f; char r[24];} string19 = {1507352, "fstat failed in GetStat"};
static struct {unsigned f; char r[24];} string20 = {1376280, "lseek failed in EndOf\000\000"};
static struct {unsigned f; char r[24];} string21 = {1441816, "lseek failed in Backup\000"};
static struct {unsigned f; char r[24];} string22 = {1376280, "fsync failed in Flush\000\000"};
static struct {unsigned f; char r[16];} string23 = {786448, "close failed\000\000\000"};
static struct {unsigned f; char r[4];} string24 = {196612, "PWD"};
static struct {unsigned f; char r[4];} string25 = {65540, "/\000\000"};
static struct {unsigned f; char r[24];} string26 = {1441816, "empty name in RopeOpen\000"};
static struct {unsigned f; char r[24];} string27 = {1507352, "open failed in RopeOpen"};
static struct {unsigned f; char r[28];} string28 = {1572892, "empty name in RopeDelete\000\000\000"};
static struct {unsigned f; char r[28];} string29 = {1769500, "unlink failed in RopeDelete"};
static struct {unsigned f; char r[16];} string30 = {851984, "\257\300\153\142\023\256\300\171\326\374\270\100\164\000\000"};
static struct {unsigned f; char r[20];} string31 = {1048592, "\006\005\020\001\024\001\030\001\034\001\074\010\000\004\025\001\000\000\000"};
static struct {unsigned f; char r[16];} string32 = {851984, "\257\300\055\153\222\376\300\327\164\352\142\100\150\000\000"};
static struct {unsigned f; char r[16];} string33 = {851984, "\257\300\273\264\166\314\300\142\321\237\137\100\150\000\000"};
static struct {unsigned f; char r[16];} string34 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string35 = {851984, "\257\300\144\364\322\150\300\206\136\277\046\100\150\000\000"};
static struct {unsigned f; char r[16];} string36 = {851984, "\257\300\314\116\377\204\300\167\024\373\125\100\150\000\000"};
static struct {unsigned f; char r[16];} string37 = {851984, "\257\300\363\223\326\161\300\017\164\046\072\100\150\000\000"};
static struct {unsigned f; char r[16];} string38 = {851984, "\257\300\332\223\177\020\300\304\076\102\260\100\164\000\000"};
static struct {unsigned f; char r[16];} string39 = {851984, "\257\300\322\342\022\352\300\100\014\165\000\100\150\000\000"};
static struct {unsigned f; char r[16];} string40 = {851984, "\257\300\211\056\077\074\300\127\047\310\242\100\150\000\000"};
static struct {unsigned f; char r[16];} string41 = {851984, "\257\300\241\235\001\025\300\065\011\226\172\100\150\000\000"};
static struct {
   word f0[37]; word f37; word f38; word f39; 
   word f40; word f41; word f42; word f43; 
   word f44; word f45; word f46; word f47; 
   word f48; word f49; word f50; word f51; 
   word f52; word f53; word f54; word f55; 
   word f56; word f57; word f58; word f59; 
   word f60; word f61; word f62; word f63; 
   word f64; word f65; word f66; word f67; 
   word f68; word f69; word f70; word f71; 
   word f72; word f73; word f74; word f75; 
   word f76; word f77; word f78; word f79; 
   word f80; word f81; word f82; word f83; 
   word f84; word f85; word f86; word f87; 
   word f88; word f89; word f90[11]; 
   } globalframe = {
   {0}, (word) RopeDelete←P1560, 0, (word) RopeOpen←P1500, 
   0, (word) GetDefaultWDir←P1440, 0, (word) GetWDir←P1380, 
   0, (word) ExpandName←P1320, 0, (word) GetName←P1260, 
   0, (word) GetCreateTime←P1200, 0, (word) OpenFileFromStream←P1140, 
   0, (word) Delete←P1080, 0, (word) InputCharsAvail←P1020, 
   0, (word) ResetInput←P960, 0, (word) Close←P900, 
   0, (word) Flush←P840, 0, (word) Backup←P780, 
   0, (word) EndOf←P720, 0, (word) GetLength←P660, 
   0, (word) GetStat←P600, 0, (word) SetIndex←P540, 
   0, (word) GetIndex←P480, 0, (word) UnsafePutBlock←P420, 
   0, (word) UnsafeGetBlock←P360, 0, (word) PutChar←P300, 
   0, (word) EndOfInput←P240, 0, (word) GetChar←P180, 
   0, (word) CreateFileStream←P120, 0, (word) CreateStandardStream←P60, 
   0, (word) UXIOImpl←P0, {0}
   };

static void NoName←Q2436()
   {
   register ptr gf←c0223 =  (ptr) &globalframe;
   word var←c27272;
   (* (( (ptr) gf←c0223)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0223)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c0223)+11) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0223)+12) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c0223)+14) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (*  (ptr) (( (bPt) gf←c0223)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+8) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c0223)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+8) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c0223)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+8) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0223)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+8) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0223)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+8) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0223)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0223)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0223)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0223)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0223)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0223)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0223)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0223)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0223)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0223)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0223)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0223)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0223)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0223)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0223)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0223)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0223)+9) ), (word) &string29);
   (void) XR←DeclareGlobalFrame((word) "UXIOImpl", &globalframe, (word) XR←GetTypeIndex((word) &string30, 0, (word) &string31)
      , (word) (( (bPt) gf←c0223)+356)/* var←c25608 */ );
   var←c27272 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string32)), 16);
   (* (( (ptr) gf←c0223)+93)/* var←c26056 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67897859);
   var←c27272 = (word) XR←ImportInterface((word) "HostTime", (word) XR←GetTypeIndexS((word) (&string33)), 8);
   (* (( (ptr) gf←c0223)+95)/* var←c26696 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 135266305);
   var←c27272 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string34)), 103);
   (* (( (ptr) gf←c0223)+91)/* var←c25640 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67921155);
   (void) XR←ImportProcS(var←c27272, 72115219);
   var←c27272 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string35)), 28);
   (* (( (ptr) gf←c0223)+97)/* var←c26824 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67637250);
   var←c27272 = (word) XR←ImportInterface((word) "ProcessProps", (word) XR←GetTypeIndexS((word) (&string36)), 6);
   (* (( (ptr) gf←c0223)+96)/* var←c26792 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67109376);
   var←c27272 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string37)), 43);
   (* (( (ptr) gf←c0223)+92)/* var←c26024 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67373569);
   (void) XR←ImportProcS(var←c27272, 67373313);
   (void) XR←ImportProcS(var←c27272, 67633666);
   (void) XR←ImportProcS(var←c27272, 67634434);
   (void) XR←ImportProcS(var←c27272, 67896323);
   (void) XR←ImportProcS(var←c27272, 67901955);
   var←c27272 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string38)), 26);
   (* (( (ptr) gf←c0223)+99)/* var←c27048 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 262913);
   (void) XR←ImportProcS(var←c27272, 68158980);
   (void) XR←ImportProcS(var←c27272, 67634946);
   (void) XR←ImportProcS(var←c27272, 67371521);
   var←c27272 = (word) XR←ImportInterface((word) "UnixEnviron", (word) XR←GetTypeIndexS((word) (&string39)), 1);
   (* (( (ptr) gf←c0223)+98)/* var←c26952 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67371009);
   var←c27272 = (word) XR←ImportInterface((word) "UnixSysCalls", (word) XR←GetTypeIndexS((word) (&string40)), 77);
   (* (( (ptr) gf←c0223)+94)/* var←c26152 */  ) = var←c27272;
   (void) XR←ImportProcS(var←c27272, 67389697);
   (void) XR←ImportProcS(var←c27272, 67906563);
   (void) XR←ImportProcS(var←c27272, 67372289);
   (void) XR←ImportProcS(var←c27272, 67373313);
   (void) XR←ImportProcS(var←c27272, 67650050);
   (void) XR←ImportProcS(var←c27272, 67904515);
   (void) XR←ImportProcS(var←c27272, 67914499);
   (void) XR←ImportProcS(var←c27272, 67907587);
   var←c27272 = (word) XR←ExportInterface((word) "UXIO", (word) XR←GetTypeIndexS((word) (&string41)), 7);
   (* (( (ptr) gf←c0223)+100)/* var←c27304 */  ) = var←c27272;
   (void) XR←ExportProcS(var←c27272, (word) (( (bPt) gf←c0223)+348)/* var←c25576 */ , 67371009, (word) "CreateStandardStream")
   ;
   (void) XR←ExportProcS(var←c27272, (word) (( (bPt) gf←c0223)+340)/* var←c25544 */ , 67895555, (word) "CreateFileStream");
   (void) XR←ExportVar(var←c27272, 2, (word) (( (bPt) gf←c0223)+144)/* var←c24744 */ );
   (void) XR←ExportProcS(var←c27272, (word) (( (bPt) gf←c0223)+204)/* var←c25000 */ , 67371777, (word) "OpenFileFromStream")
   ;
   (void) XR←ExportProcS(var←c27272, (word) (( (bPt) gf←c0223)+196)/* var←c24968 */ , 67372033, (word) "GetCreateTime");
   (void) XR←ExportProcS(var←c27272, (word) (( (bPt) gf←c0223)+188)/* var←c24936 */ , 67372289, (word) "GetName");
   (void) XR←ExportProcS(var←c27272, (word) (( (bPt) gf←c0223)+212)/* var←c25032 */ , 263681, (word) "Delete");
   }

static void UXIOImpl←P0(formal←c051, formal←c046)
   word formal←c051;
   word formal←c046;
   {
   register ptr gf←c27336 =  (ptr) &globalframe;
   /* UXIOImpl: */ 
SOURCE(614, 9669)
SOURCE(1125, 177)
   {
      W19 var←c047;
      (*  (ptr) (word) &var←c047 ) = 0;
      (* (( (ptr) (word) &var←c047) + 1) ) = (* (( (ptr) gf←c27336)+19) );
      (* (( (ptr) (word) &var←c047) + 2) ) = (word) (( (bPt) gf←c27336)+332)/* var←c25512 */ ;
      (* (( (ptr) (word) &var←c047) + 3) ) = 0;
      (* (( (ptr) (word) &var←c047) + 4) ) = 0;
      (* (( (ptr) (word) &var←c047) + 5) ) = (word) (( (bPt) gf←c27336)+324)/* var←c25480 */ ;
      (* (( (ptr) (word) &var←c047) + 6) ) = (word) (( (bPt) gf←c27336)+220)/* var←c25064 */ ;
      (* (( (ptr) (word) &var←c047) + 7) ) = 0;
      (* (( (ptr) (word) &var←c047) + 8) ) = 0;
      (* (( (ptr) (word) &var←c047) + 9) ) = 0;
      (* (( (ptr) (word) &var←c047) + 10) ) = 0;
      (* (( (ptr) (word) &var←c047) + 11) ) = 0;
      (* (( (ptr) (word) &var←c047) + 12) ) = (word) (( (bPt) gf←c27336)+228)/* var←c25096 */ ;
      (* (( (ptr) (word) &var←c047) + 13) ) = 0;
      (* (( (ptr) (word) &var←c047) + 14) ) = 0;
      (* (( (ptr) (word) &var←c047) + 15) ) = 0;
      (* (( (ptr) (word) &var←c047) + 16) ) = 0;
      (* (( (ptr) (word) &var←c047) + 17) ) = 0;
      (* (( (ptr) (word) &var←c047) + 18) ) = 0;
      {
         word pd42;
         pd42 = (* (( (ptr) (* (( (ptr) gf←c27336)+91)/* var←c25640 */  ))+104) );
         (* (( (ptr) gf←c27336)+4)/* stdInputProcs←v3280 */  ) = (word) ( *( (fPt) ((*  (ptr) pd42 ))))((word) (&var←c047), pd42);
         };
      };
SOURCE(1305, 144)
   {
      W19 var←c048;
      (*  (ptr) (word) &var←c048 ) = 1;
      (* (( (ptr) (word) &var←c048) + 1) ) = (* (( (ptr) gf←c27336)+19) );
      (* (( (ptr) (word) &var←c048) + 2) ) = 0;
      (* (( (ptr) (word) &var←c048) + 3) ) = 0;
      (* (( (ptr) (word) &var←c048) + 4) ) = 0;
      (* (( (ptr) (word) &var←c048) + 5) ) = 0;
      (* (( (ptr) (word) &var←c048) + 6) ) = 0;
      (* (( (ptr) (word) &var←c048) + 7) ) = 0;
      (* (( (ptr) (word) &var←c048) + 8) ) = (word) (( (bPt) gf←c27336)+316)/* var←c25448 */ ;
      (* (( (ptr) (word) &var←c048) + 9) ) = 0;
      (* (( (ptr) (word) &var←c048) + 10) ) = (word) (( (bPt) gf←c27336)+300)/* var←c25384 */ ;
      (* (( (ptr) (word) &var←c048) + 11) ) = 0;
      (* (( (ptr) (word) &var←c048) + 12) ) = 0;
      (* (( (ptr) (word) &var←c048) + 13) ) = 0;
      (* (( (ptr) (word) &var←c048) + 14) ) = 0;
      (* (( (ptr) (word) &var←c048) + 15) ) = 0;
      (* (( (ptr) (word) &var←c048) + 16) ) = 0;
      (* (( (ptr) (word) &var←c048) + 17) ) = 0;
      (* (( (ptr) (word) &var←c048) + 18) ) = 0;
      {
         word pd43;
         pd43 = (* (( (ptr) (* (( (ptr) gf←c27336)+91)/* var←c25640 */  ))+104) );
         (* (( (ptr) gf←c27336)+5)/* stdOutputProcs←v3308 */  ) = (word) ( *( (fPt) ((*  (ptr) pd43 ))))((word) (&var←c048), pd43)
         ;
         };
      };
SOURCE(1452, 250)
   {
      W19 var←c049;
      (*  (ptr) (word) &var←c049 ) = 0;
      (* (( (ptr) (word) &var←c049) + 1) ) = (* (( (ptr) gf←c27336)+18) );
      (* (( (ptr) (word) &var←c049) + 2) ) = (word) (( (bPt) gf←c27336)+332)/* var←c25512 */ ;
      (* (( (ptr) (word) &var←c049) + 3) ) = 0;
      (* (( (ptr) (word) &var←c049) + 4) ) = (word) (( (bPt) gf←c27336)+308)/* var←c25416 */ ;
      (* (( (ptr) (word) &var←c049) + 5) ) = (word) (( (bPt) gf←c27336)+260)/* var←c25224 */ ;
      (* (( (ptr) (word) &var←c049) + 6) ) = 0;
      (* (( (ptr) (word) &var←c049) + 7) ) = (word) (( (bPt) gf←c27336)+252)/* var←c25192 */ ;
      (* (( (ptr) (word) &var←c049) + 8) ) = 0;
      (* (( (ptr) (word) &var←c049) + 9) ) = 0;
      (* (( (ptr) (word) &var←c049) + 10) ) = 0;
      (* (( (ptr) (word) &var←c049) + 11) ) = 0;
      (* (( (ptr) (word) &var←c049) + 12) ) = 0;
      (* (( (ptr) (word) &var←c049) + 13) ) = (word) (( (bPt) gf←c27336)+236)/* var←c25128 */ ;
      (* (( (ptr) (word) &var←c049) + 14) ) = (word) (( (bPt) gf←c27336)+292)/* var←c25352 */ ;
      (* (( (ptr) (word) &var←c049) + 15) ) = (word) (( (bPt) gf←c27336)+284)/* var←c25320 */ ;
      (* (( (ptr) (word) &var←c049) + 16) ) = (word) (( (bPt) gf←c27336)+268)/* var←c25256 */ ;
      (* (( (ptr) (word) &var←c049) + 17) ) = 0;
      (* (( (ptr) (word) &var←c049) + 18) ) = 0;
      {
         word pd44;
         pd44 = (* (( (ptr) (* (( (ptr) gf←c27336)+91)/* var←c25640 */  ))+104) );
         (* (( (ptr) gf←c27336)+6)/* fileInputProcs←v3336 */  ) = (word) ( *( (fPt) ((*  (ptr) pd44 ))))((word) (&var←c049), pd44)
         ;
         };
      };
SOURCE(1705, 236)
   {
      W19 var←c050;
      (*  (ptr) (word) &var←c050 ) = 1;
      (* (( (ptr) (word) &var←c050) + 1) ) = (* (( (ptr) gf←c27336)+18) );
      (* (( (ptr) (word) &var←c050) + 2) ) = 0;
      (* (( (ptr) (word) &var←c050) + 3) ) = 0;
      (* (( (ptr) (word) &var←c050) + 4) ) = 0;
      (* (( (ptr) (word) &var←c050) + 5) ) = 0;
      (* (( (ptr) (word) &var←c050) + 6) ) = 0;
      (* (( (ptr) (word) &var←c050) + 7) ) = 0;
      (* (( (ptr) (word) &var←c050) + 8) ) = (word) (( (bPt) gf←c27336)+316)/* var←c25448 */ ;
      (* (( (ptr) (word) &var←c050) + 9) ) = 0;
      (* (( (ptr) (word) &var←c050) + 10) ) = (word) (( (bPt) gf←c27336)+300)/* var←c25384 */ ;
      (* (( (ptr) (word) &var←c050) + 11) ) = (word) (( (bPt) gf←c27336)+244)/* var←c25160 */ ;
      (* (( (ptr) (word) &var←c050) + 12) ) = 0;
      (* (( (ptr) (word) &var←c050) + 13) ) = (word) (( (bPt) gf←c27336)+236)/* var←c25128 */ ;
      (* (( (ptr) (word) &var←c050) + 14) ) = (word) (( (bPt) gf←c27336)+292)/* var←c25352 */ ;
      (* (( (ptr) (word) &var←c050) + 15) ) = (word) (( (bPt) gf←c27336)+284)/* var←c25320 */ ;
      (* (( (ptr) (word) &var←c050) + 16) ) = (word) (( (bPt) gf←c27336)+268)/* var←c25256 */ ;
      (* (( (ptr) (word) &var←c050) + 17) ) = 0;
      (* (( (ptr) (word) &var←c050) + 18) ) = 0;
      {
         word pd45;
         pd45 = (* (( (ptr) (* (( (ptr) gf←c27336)+91)/* var←c25640 */  ))+104) );
         (* (( (ptr) gf←c27336)+7)/* fileOutputProcs←v3364 */  ) = (word) ( *( (fPt) ((*  (ptr) pd45 ))))((word) (&var←c050), pd45)
         ;
         };
      };
   }

static word CreateStandardStream←P60(kind←v4492)
   word kind←v4492;
   {
   register ptr gf←c27368 =  (ptr) &globalframe;
   word stream←v4536;
   /* CreateStandardStream: */ 
SOURCE(1944, 426)
SOURCE(1944, 426)
   stream←v4536 = 0;
SOURCE(2028, 342)
   {
      word var←c25672;
      var←c25672 = kind←v4492;
      switch (var←c25672) {
         case 0: 
SOURCE(2054, 97)
            {
               word var←c25704;
               {
                  word var←c25736;
                  var←c25736 = XR←NewObject(12, (* (( (ptr) gf←c27368)+14) ));
                  (*  (ptr) var←c25736 ) =  (word) -2;
                  var←c25704 = var←c25736;
                  };
               {
                  word pd46;
                  pd46 = (* (( (ptr) (* (( (ptr) gf←c27368)+91)/* var←c25640 */  ))+105) );
                  stream←v4536 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) gf←c27368)+4)/* stdInputProcs←v3280 */  ), var←c25704, 0, pd46)
                  ;
                  };
               };
            break;
         case 1: 
SOURCE(2163, 98)
            {
               word var←c25768;
               {
                  word var←c25800;
                  var←c25800 = XR←NewObject(12, (* (( (ptr) gf←c27368)+14) ));
                  (*  (ptr) var←c25800 ) =  (word) -3;
                  var←c25768 = var←c25800;
                  };
               {
                  word pd47;
                  pd47 = (* (( (ptr) (* (( (ptr) gf←c27368)+91)/* var←c25640 */  ))+105) );
                  stream←v4536 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((* (( (ptr) gf←c27368)+5)/* stdOutputProcs←v3308 */  ), var←c25768, 0, pd47)
                  ;
                  };
               };
            break;
         case 2: 
SOURCE(2272, 98)
            {
               word var←c25832;
               {
                  word var←c25864;
                  var←c25864 = XR←NewObject(12, (* (( (ptr) gf←c27368)+14) ));
                  (*  (ptr) var←c25864 ) =  (word) -4;
                  var←c25832 = var←c25864;
                  };
               {
                  word pd48;
                  pd48 = (* (( (ptr) (* (( (ptr) gf←c27368)+91)/* var←c25640 */  ))+105) );
                  stream←v4536 = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((* (( (ptr) gf←c27368)+5)/* stdOutputProcs←v3308 */  ), var←c25832, 0, pd48)
                  ;
                  };
               };
            break;
         };
      };
SOURCE(1944, 426)
   return(stream←v4536);
   }

static word CreateFileStream←P120(name←v4612, access←v4640, mode←v4668)
   word name←v4612;
   word access←v4640;
   word mode←v4668;
   {
   register ptr gf←c27400 =  (ptr) &globalframe;
   word stream←v4712;
   word fd←v7084;
   /* CreateFileStream: */ 
SOURCE(2648, 534)
SOURCE(2648, 534)
   stream←v4712 = 0;
SOURCE(2790, 92)
   {
      W3 var←c25896;
      word var←c0249;
      {
         word tc49;
         if ((access←v4640 == 2)) {
            tc49 =  (word) 769;
            }
         else {
            var←c25896.f0 = 0;
            var←c25896.f1 = 521;
            var←c25896.f2 = 1537;
            tc49 =  (word) (* (( (ptr) &var←c25896)+access←v4640) );
            };
         var←c0249 = tc49;
         };
      fd←v7084 = (word) RopeOpen←P1500(name←v4612, var←c0249, mode←v4668);
      };
SOURCE(2884, 138)
   {
      word var←c25928;
      {
         word var←c25960;
         var←c25960 = XR←NewObject(12, (* (( (ptr) gf←c27400)+14) ));
         (*  (ptr) var←c25960 ) = fd←v7084;
         (* (( (ptr) var←c25960)+1) ) = name←v4612;
         var←c25928 = var←c25960;
         };
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c27400)+91)/* var←c25640 */  ))+105) );
         stream←v4712 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))( ( (access←v4640 == 0) ? (* (( (ptr) gf←c27400)+6)/* fileInputProcs←v3336 */  ) : (* (
               ( (ptr) gf←c27400)+7)/* fileOutputProcs←v3364 */  ) ) , var←c25928, 0, pd50);
         };
      };
SOURCE(3024, 84)
   {
      word var←c25992;
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) gf←c27400)+92)/* var←c26024 */  ))+30) );
         var←c25992 = (word) ( *( (fPt) ((*  (ptr) pd51 ))))(name←v4612, 0, 2147483647, pd51);
         };
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c27400)+93)/* var←c26056 */  ))+14) );
         (* (( (ptr) stream←v4712)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) stream←v4712)+2) ), (* (( (ptr) gf←c27400)+15)
             ), var←c25992, pd52);
         };
      };
SOURCE(3110, 72)
   {
      word var←c26088;
      {
         word var←c26120;
         var←c26120 = XR←NewObject(4, (* (( (ptr) gf←c27400)+12) ));
         (*  (ptr) var←c26120 ) = fd←v7084;
         var←c26088 = var←c26120;
         };
      {
         word pd53;
         pd53 = (* (( (ptr) (* (( (ptr) gf←c27400)+93)/* var←c26056 */  ))+14) );
         (* (( (ptr) stream←v4712)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd53 ))))((* (( (ptr) stream←v4712)+2) ), (* (( (ptr) gf←c27400)+16)
             ), var←c26088, pd53);
         };
      };
SOURCE(2648, 534)
   return(stream←v4712);
   }

static word GetChar←P180(self←v4808)
   word self←v4808;
   {
   register ptr gf←c27432 =  (ptr) &globalframe;
   word var←c4852;
   word data←v7128;
   word charsRead←v7156;
   word chars←v7184;
   /* GetChar: */ 
SOURCE(3299, 460)
SOURCE(3350, 46)
   data←v7128 = XR←Narrow((* (( (ptr) self←v4808)+1) ), (* (( (ptr) gf←c27432)+14) ));
SOURCE(3477, 60)
SOURCE(3478, 59)
   {
      word pd54;
      pd54 = (* (( (ptr) (* (( (ptr) gf←c27432)+94)/* var←c26152 */  ))+52) );
      charsRead←v7156 = (word) ( *( (fPt) ((*  (ptr) pd54 ))))((*  (ptr) data←v7128 ), (word) &chars←v7184, 1, pd54);
      };
SOURCE(3540, 50)
   if (( (int)charsRead←v7156 ==  (int)0)) {
SOURCE(3564, 26)
      {
         word var←c077;
         var←c077 = self←v4808;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c27432)+91)/* var←c25640 */  ))+4) ), (word) &var←c077);
         };
      };
SOURCE(3595, 143)
   if (( (int)charsRead←v7156 <  (int)0)) {
SOURCE(3617, 123)
      {
         word errno←v7240;
SOURCE(3619, 45)
         errno←v7240 = (word) XR←GetErrno();
SOURCE(3666, 72)
         {
            W3 var←c080;
            var←c080.f0 = 4;
            var←c080.f1 = 0;
            var←c080.f2 = (* (( (ptr) gf←c27432)+20) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27432)+144)/* var←c24744 */ , (word) &var←c080);
            };
         };
      };
SOURCE(3743, 16)
   return( (unsigned) (*  (bPt) &chars←v7184 ));
   }

static word EndOfInput←P240(self←v4912)
   word self←v4912;
   {
   word var←c4956;
   word backing←v7284;
   /* EndOfInput: */ 
SOURCE(3765, 178)
SOURCE(3819, 39)
   backing←v7284 = (* (( (ptr) self←v4912)+3) );
SOURCE(3860, 83)
   if ((backing←v7284 != 0)) {
SOURCE(3882, 48)
      {
         word pd55;
         pd55 = (* (( (ptr) (*  (ptr) backing←v7284 ))+3) );
         return((word) ( *( (fPt) ((*  (ptr) pd55 ))))(backing←v7284, pd55));
         };
      }
   else {
SOURCE(3930, 13)
      return(0);
      };
   }

static void PutChar←P300(self←v5016, char←v5044)
   word self←v5016;
   word char←v5044;
   {
   register ptr gf←c27464 =  (ptr) &globalframe;
   word data←v7328;
   word charsWritten←v7356;
   word chars←v7384;
   /* PutChar: */ 
SOURCE(3977, 259)
SOURCE(4025, 46)
   data←v7328 = XR←Narrow((* (( (ptr) self←v5016)+1) ), (* (( (ptr) gf←c27464)+14) ));
SOURCE(4147, 15)
   (*  (bPt) &chars←v7384 ) = char←v5044;
SOURCE(4172, 64)
SOURCE(4173, 63)
   {
      word pd56;
      pd56 = (* (( (ptr) (* (( (ptr) gf←c27464)+94)/* var←c26152 */  ))+79) );
      charsWritten←v7356 = (word) ( *( (fPt) ((*  (ptr) pd56 ))))((*  (ptr) data←v7328 ), (word) &chars←v7384, 1, pd56);
      };
   }

static word UnsafeGetBlock←P360(self←v5104, block←v5132)
   word self←v5104;
   W3 block←v5132;
   {
   register ptr gf←c27496 =  (ptr) &globalframe;
   word nBytesRead←v5176;
   word data←v7440;
   word pointer←v7468;
   word n←v7496;
   /* UnsafeGetBlock: */ 
SOURCE(4243, 480)
SOURCE(4356, 46)
   data←v7440 = XR←Narrow((* (( (ptr) self←v5104)+1) ), (* (( (ptr) gf←c27496)+14) ));
SOURCE(4404, 81)
   {
      word idx57;
      pointer←v7468 = (block←v5132.f0 + (
         idx57 = (word) block←v5132.f1,
         SGNCK(idx57)
         ));
      };
SOURCE(4504, 63)
   {
      word pd58;
      word idx59;
      pd58 = (* (( (ptr) (* (( (ptr) gf←c27496)+94)/* var←c26152 */  ))+52) );
      n←v7496 = (word) ( *( (fPt) ((*  (ptr) pd58 ))))((*  (ptr) data←v7440 ), pointer←v7468, (
            idx59 = (word) block←v5132.f2,
            SGNCK(idx59)
            ), pd58);
      };
SOURCE(4569, 140)
   if (( (int)n←v7496 <  (int)0)) {
SOURCE(4581, 130)
      {
         word errno←v7564;
SOURCE(4583, 45)
         errno←v7564 = (word) XR←GetErrno();
SOURCE(4630, 79)
         {
            W3 var←c097;
            var←c097.f0 = 4;
            var←c097.f1 = 0;
            var←c097.f2 = (* (( (ptr) gf←c27496)+21) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27496)+144)/* var←c24744 */ , (word) &var←c097);
            };
         };
      };
SOURCE(4714, 9)
   return(n←v7496);
   }

static void UnsafePutBlock←P420(self←v5236, block←v5264)
   word self←v5236;
   W3 block←v5264;
   {
   register ptr gf←c27528 =  (ptr) &globalframe;
   word data←v7608;
   word start←v7636;
   word stop←v7664;
   /* UnsafePutBlock: */ 
SOURCE(4729, 529)
SOURCE(4799, 46)
   data←v7608 = XR←Narrow((* (( (ptr) self←v5236)+1) ), (* (( (ptr) gf←c27528)+14) ));
SOURCE(4847, 35)
   {
      word idx60;
      start←v7636 = (
         idx60 = (word) block←v5264.f1,
         SGNCK(idx60)
         );
      };
SOURCE(4884, 35)
   {
      word idx61;
      stop←v7664 = (start←v7636 + (
         idx61 = (word) block←v5264.f2,
         SGNCK(idx61)
         ));
      };
SOURCE(4921, 337)
   lab←L100002: ;
   if (( (int)start←v7636 <  (int)stop←v7664)) {
      }
   else {
      goto lab←L100000;
      };
   {
      word pointer←v7720;
      word n←v7748;
SOURCE(4941, 64)
      pointer←v7720 = (block←v5264.f0 + start←v7636);
SOURCE(5040, 55)
SOURCE(5042, 53)
      {
         word pd62;
         pd62 = (* (( (ptr) (* (( (ptr) gf←c27528)+94)/* var←c26152 */  ))+79) );
         n←v7748 = (word) ( *( (fPt) ((*  (ptr) pd62 ))))((*  (ptr) data←v7608 ), pointer←v7720, (stop←v7664 - start←v7636), pd62)
         ;
         };
SOURCE(5098, 140)
      if (( (int)n←v7748 <  (int)0)) {
SOURCE(5110, 130)
         {
            word errno←v7804;
SOURCE(5112, 45)
            errno←v7804 = (word) XR←GetErrno();
SOURCE(5159, 79)
            {
               W3 var←c0107;
               var←c0107.f0 = 4;
               var←c0107.f1 = 0;
               var←c0107.f2 = (* (( (ptr) gf←c27528)+22) );
               (void) XR←RaiseError((word) (( (bPt) gf←c27528)+144)/* var←c24744 */ , (word) &var←c0107);
               };
            };
         };
SOURCE(5243, 15)
      start←v7636 = (start←v7636 + n←v7748);
      };
   goto lab←L100002;
   lab←L100000: ;
   }

static word GetIndex←P480(self←v5324)
   word self←v5324;
   {
   register ptr gf←c27560 =  (ptr) &globalframe;
   word var←c5368;
   word data←v7848;
   word index←v7876;
   /* GetIndex: */ 
SOURCE(5273, 288)
SOURCE(5324, 46)
   data←v7848 = XR←Narrow((* (( (ptr) self←v5324)+1) ), (* (( (ptr) gf←c27560)+14) ));
SOURCE(5372, 50)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c27560)+94)/* var←c26152 */  ))+40) );
      index←v7876 = (word) ( *( (fPt) ((*  (ptr) pd63 ))))((*  (ptr) data←v7848 ), 0, 1, pd63);
      };
SOURCE(5424, 119)
   if (( (int)index←v7876 <  (int)0)) {
SOURCE(5440, 105)
      {
         word errno←v7932;
SOURCE(5442, 45)
         errno←v7932 = (word) XR←GetErrno();
SOURCE(5489, 54)
         {
            W3 var←c0114;
            var←c0114.f0 = 4;
            var←c0114.f1 = 0;
            var←c0114.f2 = (* (( (ptr) gf←c27560)+23) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27560)+144)/* var←c24744 */ , (word) &var←c0114);
            };
         };
      };
SOURCE(5548, 13)
   return(index←v7876);
   }

static void SetIndex←P540(self←v5428, index←v5456)
   word self←v5428;
   word index←v5456;
   {
   register ptr gf←c27592 =  (ptr) &globalframe;
   word data←v7976;
   word newIndex←v8004;
   /* SetIndex: */ 
SOURCE(5567, 277)
SOURCE(5616, 46)
   data←v7976 = XR←Narrow((* (( (ptr) self←v5428)+1) ), (* (( (ptr) gf←c27592)+14) ));
SOURCE(5664, 56)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c27592)+94)/* var←c26152 */  ))+40) );
      newIndex←v8004 = (word) ( *( (fPt) ((*  (ptr) pd64 ))))((*  (ptr) data←v7976 ), index←v5456, 0, pd64);
      };
SOURCE(5722, 122)
   if (( (int)newIndex←v8004 <  (int)0)) {
SOURCE(5741, 105)
      {
         word errno←v8060;
SOURCE(5743, 45)
         errno←v8060 = (word) XR←GetErrno();
SOURCE(5790, 54)
         {
            W3 var←c0121;
            var←c0121.f0 = 4;
            var←c0121.f1 = 0;
            var←c0121.f2 = (* (( (ptr) gf←c27592)+24) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27592)+144)/* var←c24744 */ , (word) &var←c0121);
            };
         };
      };
   }

static void GetStat←P600(formal←c0128, fd←v5516)
   word formal←c0128;
   word fd←v5516;
   {
   register ptr gf←c27624 =  (ptr) &globalframe;
   W16 stat←v5560;
   word result←v8104;
   /* GetStat: */ 
SOURCE(5853, 236)
SOURCE(5853, 236)
   XR←FillWords(&stat←v5560, 16, 0);
SOURCE(5919, 43)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c27624)+94)/* var←c26152 */  ))+70) );
      result←v8104 = (word) ( *( (fPt) ((*  (ptr) pd65 ))))(fd←v5516, (word) &stat←v5560, pd65);
      };
SOURCE(5964, 125)
   if ((result←v8104 ==  (word) -1)) {
SOURCE(5987, 104)
      {
         word errno←v8148;
SOURCE(5989, 45)
         errno←v8148 = (word) XR←GetErrno();
SOURCE(6036, 53)
         {
            W3 var←c0127;
            var←c0127.f0 = 4;
            var←c0127.f1 = 0;
            var←c0127.f2 = (* (( (ptr) gf←c27624)+25) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27624)+144)/* var←c24744 */ , (word) &var←c0127);
            };
         };
      };
   /* removed tail goto */ 
   (*  (W16Pt) formal←c0128 ) = stat←v5560;
   return;
   }

static word GetLength←P660(self←v5620)
   word self←v5620;
   {
   register ptr gf←c27656 =  (ptr) &globalframe;
   word var←c5664;
   word data←v8192;
   /* GetLength: */ 
SOURCE(6098, 129)
SOURCE(6150, 46)
   data←v8192 = XR←Narrow((* (( (ptr) self←v5620)+1) ), (* (( (ptr) gf←c27656)+14) ));
SOURCE(6198, 29)
   {
      word var←c0251;
      {
         W16 var←c0132;
         word var←c0250;
         (void) GetStat←P600((word) &var←c0132, (*  (ptr) data←v8192 ));
         var←c0250 = (* (( (ptr) &var←c0132)+5) );
         var←c0251 = SGNCK(var←c0250);
         };
      return(var←c0251);
      };
   }

static word EndOf←P720(self←v5724)
   word self←v5724;
   {
   register ptr gf←c27688 =  (ptr) &globalframe;
   word var←c5768;
   word data←v8248;
   word size←v8276;
   word index←v8304;
   /* EndOf: */ 
SOURCE(6233, 327)
SOURCE(6282, 46)
   data←v8248 = XR←Narrow((* (( (ptr) self←v5724)+1) ), (* (( (ptr) gf←c27688)+14) ));
SOURCE(6330, 33)
   {
      W16 var←c0137;
      word var←c0252;
      (void) GetStat←P600((word) &var←c0137, (*  (ptr) data←v8248 ));
      var←c0252 = (* (( (ptr) &var←c0137)+5) );
      size←v8276 = SGNCK(var←c0252);
      };
SOURCE(6365, 50)
   {
      word pd66;
      pd66 = (* (( (ptr) (* (( (ptr) gf←c27688)+94)/* var←c26152 */  ))+40) );
      index←v8304 = (word) ( *( (fPt) ((*  (ptr) pd66 ))))((*  (ptr) data←v8248 ), 0, 1, pd66);
      };
SOURCE(6417, 116)
   if (( (int)index←v8304 <  (int)0)) {
SOURCE(6433, 102)
      {
         word errno←v8360;
SOURCE(6435, 45)
         errno←v8360 = (word) XR←GetErrno();
SOURCE(6482, 51)
         {
            W3 var←c0141;
            var←c0141.f0 = 4;
            var←c0141.f1 = 0;
            var←c0141.f2 = (* (( (ptr) gf←c27688)+26) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27688)+144)/* var←c24744 */ , (word) &var←c0141);
            };
         };
      };
SOURCE(6538, 22)
   return( (unsigned) ( (int)index←v8304 >=  (int)size←v8276));
   }

static void Backup←P780(self←v5828, char←v5856)
   word self←v5828;
   word char←v5856;
   {
   register ptr gf←c27720 =  (ptr) &globalframe;
   word data←v8404;
   word index←v8432;
   /* Backup: */ 
SOURCE(6566, 265)
SOURCE(6613, 46)
   data←v8404 = XR←Narrow((* (( (ptr) self←v5828)+1) ), (* (( (ptr) gf←c27720)+14) ));
SOURCE(6661, 51)
   {
      word pd67;
      pd67 = (* (( (ptr) (* (( (ptr) gf←c27720)+94)/* var←c26152 */  ))+40) );
      index←v8432 = (word) ( *( (fPt) ((*  (ptr) pd67 ))))((*  (ptr) data←v8404 ),  (word) -1, 1, pd67);
      };
SOURCE(6714, 117)
   if (( (int)index←v8432 <  (int)0)) {
SOURCE(6730, 103)
      {
         word errno←v8488;
SOURCE(6732, 45)
         errno←v8488 = (word) XR←GetErrno();
SOURCE(6779, 52)
         {
            W3 var←c0148;
            var←c0148.f0 = 4;
            var←c0148.f1 = 0;
            var←c0148.f2 = (* (( (ptr) gf←c27720)+27) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27720)+144)/* var←c24744 */ , (word) &var←c0148);
            };
         };
      };
   }

static void Flush←P840(self←v5916)
   word self←v5916;
   {
   register ptr gf←c27752 =  (ptr) &globalframe;
   word data←v8532;
   word result←v8560;
   /* Flush: */ 
SOURCE(6840, 248)
SOURCE(6874, 46)
   data←v8532 = XR←Narrow((* (( (ptr) self←v5916)+1) ), (* (( (ptr) gf←c27752)+14) ));
SOURCE(6922, 41)
   {
      word pd68;
      pd68 = (* (( (ptr) (* (( (ptr) gf←c27752)+94)/* var←c26152 */  ))+13) );
      result←v8560 = (word) ( *( (fPt) ((*  (ptr) pd68 ))))((*  (ptr) (data←v8532) ), pd68);
      };
SOURCE(6965, 123)
   if ((result←v8560 ==  (word) -1)) {
SOURCE(6988, 102)
      {
         word errno←v8616;
SOURCE(6990, 45)
         errno←v8616 = (word) XR←GetErrno();
SOURCE(7037, 51)
         {
            W3 var←c0154;
            var←c0154.f0 = 4;
            var←c0154.f1 = 0;
            var←c0154.f2 = (* (( (ptr) gf←c27752)+28) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27752)+144)/* var←c24744 */ , (word) &var←c0154);
            };
         };
      };
   }

static void Close←P900(self←v5976, abort←v6004)
   word self←v5976;
   word abort←v6004;
   {
   register ptr gf←c27784 =  (ptr) &globalframe;
   word data←v8660;
   word result←v8688;
   /* Close: */ 
SOURCE(7097, 252)
SOURCE(7144, 46)
   data←v8660 = XR←Narrow((* (( (ptr) self←v5976)+1) ), (* (( (ptr) gf←c27784)+14) ));
SOURCE(7192, 41)
   {
      word pd69;
      pd69 = (* (( (ptr) (* (( (ptr) gf←c27784)+94)/* var←c26152 */  ))+9) );
      result←v8688 = (word) ( *( (fPt) ((*  (ptr) pd69 ))))((*  (ptr) (data←v8660) ), pd69);
      };
SOURCE(7235, 114)
   if ((result←v8688 ==  (word) -1)) {
SOURCE(7258, 93)
      {
         word errno←v8744;
SOURCE(7260, 45)
         errno←v8744 = (word) XR←GetErrno();
SOURCE(7307, 42)
         {
            W3 var←c0161;
            var←c0161.f0 = 4;
            var←c0161.f1 = 0;
            var←c0161.f2 = (* (( (ptr) gf←c27784)+29) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27784)+144)/* var←c24744 */ , (word) &var←c0161);
            };
         };
      };
   }

static void ResetInput←P960(self←v6064)
   word self←v6064;
   {
   register ptr gf←c27816 =  (ptr) &globalframe;
   word data←v8788;
   /* ResetInput: */ 
SOURCE(7358, 106)
SOURCE(7397, 46)
   data←v8788 = XR←Narrow((* (( (ptr) self←v6064)+1) ), (* (( (ptr) gf←c27816)+14) ));
SOURCE(7445, 19)
   (* (( (ptr) data←v8788)+2) ) = 1;
   }

static word InputCharsAvail←P1020(self←v6124, wait←v6152)
   word self←v6124;
   word wait←v6152;
   {
   register ptr gf←c27848 =  (ptr) &globalframe;
   word var←c6196;
   word data←v8844;
   /* InputCharsAvail: */ 
SOURCE(7470, 199)
SOURCE(7539, 46)
   data←v8844 = XR←Narrow((* (( (ptr) self←v6124)+1) ), (* (( (ptr) gf←c27848)+14) ));
SOURCE(7587, 82)
   if ((0 != (* (( (ptr) data←v8844)+2) ))) {
SOURCE(7610, 20)
      (* (( (ptr) data←v8844)+2) ) = 0;
SOURCE(7632, 9)
      return(0);
      }
   else {
SOURCE(7650, 19)
      return(2147483647);
      };
   }

static void Delete←P1080(name←v6256)
   word name←v6256;
   {
   /* Delete: */ 
SOURCE(7676, 58)
SOURCE(7718, 16)
   (void) RopeDelete←P1560(name←v6256);
   }

static word OpenFileFromStream←P1140(self←v6316)
   word self←v6316;
   {
   register ptr gf←c27880 =  (ptr) &globalframe;
   word var←c6360;
   word data←v8900;
   /* OpenFileFromStream: */ 
SOURCE(7740, 173)
SOURCE(7813, 46)
   data←v8900 = XR←Narrow((* (( (ptr) self←v6316)+1) ), (* (( (ptr) gf←c27880)+14) ));
SOURCE(7861, 52)
   {
      word var←c26600;
      var←c26600 = XR←NewObject(12, (* (( (ptr) gf←c27880)+14) ));
      (*  (ptr) var←c26600 ) = (*  (ptr) data←v8900 );
      (* (( (ptr) var←c26600)+1) ) = (* (( (ptr) data←v8900)+1) );
      return(var←c26600);
      };
   }

static word GetCreateTime←P1200(file←v6420)
   word file←v6420;
   {
   register ptr gf←c27912 =  (ptr) &globalframe;
   word created←v6464;
   word data←v8956;
   word var←c26632;
   W2 var←c0179;
   /* GetCreateTime: */ 
SOURCE(7917, 199)
SOURCE(7998, 35)
   data←v8956 = XR←Narrow(file←v6420, (* (( (ptr) gf←c27912)+14) ));
SOURCE(8035, 81)
   {
      W16 var←c0177;
      word var←c0253;
      (void) GetStat←P600((word) &var←c0177, (*  (ptr) data←v8956 ));
      var←c0253 = (* (( (ptr) &var←c0177)+8) );
      var←c26632 = SGNCK(var←c0253);
      };
   {
      W4 var←c26664;
      var←c26664.f0 = var←c26632;
      var←c26664.f1 = 0;
      var←c26664.f2 = 0;
      var←c26664.f3 = 0;
      {
         word pd70;
         pd70 = (* (( (ptr) (* (( (ptr) gf←c27912)+95)/* var←c26696 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd70 ))))((word) &var←c0179, var←c26664, pd70);
         };
      };
   created←v6464 = var←c0179.f0;
SOURCE(7917, 199)
   return(created←v6464);
   }

static word GetName←P1260(file←v6524)
   word file←v6524;
   {
   register ptr gf←c27944 =  (ptr) &globalframe;
   word fullFName←v6568;
   word data←v9012;
   /* GetName: */ 
SOURCE(8122, 131)
SOURCE(8122, 131)
   fullFName←v6568 = 0;
SOURCE(8195, 35)
   data←v9012 = XR←Narrow(file←v6524, (* (( (ptr) gf←c27944)+14) ));
SOURCE(8232, 21)
   return((* (( (ptr) data←v9012)+1) ));
   }

static word ExpandName←P1320(name←v6628)
   word name←v6628;
   {
   register ptr gf←c27976 =  (ptr) &globalframe;
   word fullUName←v6672;
   /* ExpandName: */ 
SOURCE(8296, 202)
SOURCE(8296, 202)
   fullUName←v6672 = 0;
SOURCE(8356, 142)
   {
      word tc71;
      word pd72;
      word pd73;
      pd72 = (* (( (ptr) (* (( (ptr) gf←c27976)+92)/* var←c26024 */  ))+8) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd72 ))))(name←v6628, 0, 1, pd72))) {
         pd73 = (* (( (ptr) (* (( (ptr) gf←c27976)+92)/* var←c26024 */  ))+9) );
         tc71 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd73 ))))(name←v6628, 0, pd73) == 47);
         }
      else {
         tc71 =  (word) 0;
         };
      if (tc71) {
SOURCE(8419, 22)
         fullUName←v6672 = name←v6628;
         }
      else {
SOURCE(8441, 57)
         {
            word var←c26728;
            {
               word var←c26760;
               var←c26760 = (word) GetWDir←P1380(0);
               {
                  word pd74;
                  pd74 = (* (( (ptr) (* (( (ptr) gf←c27976)+92)/* var←c26024 */  ))+6) );
                  var←c26728 = (word) ( *( (fPt) ((*  (ptr) pd74 ))))(var←c26760, name←v6628, pd74);
                  };
               };
            {
               word pd75;
               pd75 = (* (( (ptr) (* (( (ptr) gf←c27976)+92)/* var←c26024 */  ))+30) );
               fullUName←v6672 = (word) ( *( (fPt) ((*  (ptr) pd75 ))))(var←c26728, 0, 2147483647, pd75);
               };
            };
         };
      };
SOURCE(8296, 202)
   return(fullUName←v6672);
   }

static word GetWDir←P1380(wDir←v6732)
   word wDir←v6732;
   {
   register ptr gf←c28008 =  (ptr) &globalframe;
   word var←c6776;
   /* GetWDir: */ 
SOURCE(8504, 295)
SOURCE(8557, 164)
   {
      word pd76;
      pd76 = (* (( (ptr) (* (( (ptr) gf←c28008)+92)/* var←c26024 */  ))+13) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd76 ))))(wDir←v6732, pd76))) {
SOURCE(8584, 148)
         {
            word propList←v9068;
SOURCE(8586, 49)
            {
               word pd77;
               pd77 = (* (( (ptr) (* (( (ptr) gf←c28008)+96)/* var←c26792 */  ))+6) );
               propList←v9068 = (word) ( *( (fPt) ((*  (ptr) pd77 ))))(pd77);
               };
SOURCE(8637, 84)
            {
               word var←c26856;
               {
                  word pd78;
                  pd78 = (* (( (ptr) (* (( (ptr) gf←c28008)+97)/* var←c26824 */  ))+20) );
                  var←c26856 = (word) ( *( (fPt) ((*  (ptr) pd78 ))))((* (( (ptr) gf←c28008)+17) ), propList←v9068, pd78);
                  };
               if ((var←c26856 == 0)) {
                  goto lab←L100004;
                  };
               {
                  word tc79;
                  if (((* (( (ptr) gf←c28008)+11) ) == XR←GetReferentType(var←c26856))) {
                     tc79 =  (word) ( (unsigned) (*(int*)var←c26856<0) == 0);
                     }
                  else {
                     tc79 =  (word) 0;
                     };
                  if (tc79) {
                     {
                        word rope←v9112;
                        rope←v9112 = var←c26856;
SOURCE(8710, 11)
                        wDir←v6732 = rope←v9112;
                        };
                     }
                  else {
                     lab←L100004: ;
                     };
                  };
               };
            };
         };
      };
SOURCE(8735, 50)
   {
      word pd80;
      pd80 = (* (( (ptr) (* (( (ptr) gf←c28008)+92)/* var←c26024 */  ))+13) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd80 ))))(wDir←v6732, pd80))) {
SOURCE(8762, 23)
         wDir←v6732 = (word) GetDefaultWDir←P1440();
         };
      };
SOURCE(8787, 12)
   return(wDir←v6732);
   }

static word GetDefaultWDir←P1440()
   {
   register ptr gf←c28040 =  (ptr) &globalframe;
   word wdir←v6836;
   /* GetDefaultWDir: */ 
SOURCE(8805, 102)
SOURCE(8805, 102)
   wdir←v6836 = 0;
SOURCE(8856, 51)
   {
      word var←c26920;
      {
         word pd81;
         pd81 = (* (( (ptr) (* (( (ptr) gf←c28040)+98)/* var←c26952 */  ))+4) );
         var←c26920 = (word) ( *( (fPt) ((*  (ptr) pd81 ))))((* ((( (ptr) gf←c28040)+30)) ), pd81);
         };
      {
         word pd82;
         pd82 = (* (( (ptr) (* (( (ptr) gf←c28040)+92)/* var←c26024 */  ))+6) );
         return((word) ( *( (fPt) ((*  (ptr) pd82 ))))(var←c26920, (* (( (ptr) gf←c28040)+31) ), pd82));
         };
      };
   }

static word RopeOpen←P1500(name←v6896, flags←v6924, mode←v6952)
   word name←v6896;
   word flags←v6924;
   word mode←v6952;
   {
   register ptr gf←c28072 =  (ptr) &globalframe;
   word fd←v6996;
   /* RopeOpen: */ 
SOURCE(8913, 724)
SOURCE(9017, 620)
   {
      word pd83;
      pd83 = (* (( (ptr) (* (( (ptr) gf←c28072)+92)/* var←c26024 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd83 ))))(name←v6896, pd83) ==  (int)0)) {
SOURCE(9045, 59)
         {
            W3 var←c0199;
            var←c0199.f0 = 4;
            var←c0199.f1 = 0;
            var←c0199.f2 = (* (( (ptr) gf←c28072)+32) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28072)+144)/* var←c24744 */ , (word) &var←c0199);
            };
         }
      else {
SOURCE(9104, 535)
         {
            word expandedName←v9156;
            word scratch←v9184;
            word nameText←v9212;
            word namePointer←v9240;
            word result←v9268;
SOURCE(9106, 37)
            expandedName←v9156 = (word) ExpandName←P1320(name←v6896);
SOURCE(9145, 70)
            {
               word var←c27016;
               {
                  word pd84;
                  word idx85;
                  pd84 = (* (( (ptr) (* (( (ptr) gf←c28072)+92)/* var←c26024 */  ))+14) );
                  var←c27016 = (
                     idx85 = (word) ((word) ( *( (fPt) ((*  (ptr) pd84 ))))(expandedName←v9156, pd84) + 1),
                     BCK(idx85, 32768)
                     );
                  };
               {
                  word pd86;
                  pd86 = (* (( (ptr) (* (( (ptr) gf←c28072)+99)/* var←c27048 */  ))+6) );
                  scratch←v9184 = (word) ( *( (fPt) ((*  (ptr) pd86 ))))(var←c27016, pd86);
                  };
               };
SOURCE(9217, 89)
            {
               word var←c27080;
               {
                  word pd87;
                  pd87 = (* (( (ptr) (* (( (ptr) gf←c28072)+99)/* var←c27048 */  ))+10) );
                  var←c27080 = (word) ( *( (fPt) ((*  (ptr) pd87 ))))(scratch←v9184, expandedName←v9156, 0, 32767, pd87);
                  };
               {
                  word pd88;
                  pd88 = (* (( (ptr) (* (( (ptr) gf←c28072)+99)/* var←c27048 */  ))+11) );
                  nameText←v9212 = (word) ( *( (fPt) ((*  (ptr) pd88 ))))(var←c27080, 0, pd88);
                  };
               };
SOURCE(9308, 74)
            namePointer←v9240 = (nameText←v9212 + 4);
SOURCE(9404, 55)
SOURCE(9406, 53)
            {
               word pd89;
               pd89 = (* (( (ptr) (* (( (ptr) gf←c28072)+94)/* var←c26152 */  ))+48) );
               result←v9268 = (word) ( *( (fPt) ((*  (ptr) pd89 ))))(namePointer←v9240, flags←v6924, mode←v6952, pd89);
               };
SOURCE(9462, 31)
            {
               word pd90;
               pd90 = (* (( (ptr) (* (( (ptr) gf←c28072)+99)/* var←c27048 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd90 ))))(scratch←v9184, pd90);
               };
SOURCE(9495, 123)
            if ((result←v9268 ==  (word) -1)) {
SOURCE(9516, 104)
               {
                  word errno←v9348;
SOURCE(9518, 45)
                  errno←v9348 = (word) XR←GetErrno();
SOURCE(9565, 53)
                  {
                     W3 var←c0209;
                     var←c0209.f0 = 4;
                     var←c0209.f1 = 0;
                     var←c0209.f2 = (* (( (ptr) gf←c28072)+33) );
                     (void) XR←RaiseError((word) (( (bPt) gf←c28072)+144)/* var←c24744 */ , (word) &var←c0209);
                     };
                  };
               };
SOURCE(9623, 14)
            return(result←v9268);
            };
         };
      };
   }

static void RopeDelete←P1560(name←v7056)
   word name←v7056;
   {
   register ptr gf←c28104 =  (ptr) &globalframe;
   /* RopeDelete: */ 
SOURCE(9646, 637)
SOURCE(9685, 598)
   {
      word pd91;
      pd91 = (* (( (ptr) (* (( (ptr) gf←c28104)+92)/* var←c26024 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd91 ))))(name←v7056, pd91) ==  (int)0)) {
SOURCE(9713, 60)
         {
            W3 var←c0212;
            var←c0212.f0 = 4;
            var←c0212.f1 = 0;
            var←c0212.f2 = (* (( (ptr) gf←c28104)+34) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28104)+144)/* var←c24744 */ , (word) &var←c0212);
            };
         }
      else {
SOURCE(9773, 515)
         {
            word expandedName←v9392;
            word scratch←v9420;
            word nameText←v9448;
            word namePointer←v9476;
            word result←v9504;
SOURCE(9775, 37)
            expandedName←v9392 = (word) ExpandName←P1320(name←v7056);
SOURCE(9814, 70)
            {
               word var←c27176;
               {
                  word pd92;
                  word idx93;
                  pd92 = (* (( (ptr) (* (( (ptr) gf←c28104)+92)/* var←c26024 */  ))+14) );
                  var←c27176 = (
                     idx93 = (word) ((word) ( *( (fPt) ((*  (ptr) pd92 ))))(expandedName←v9392, pd92) + 1),
                     BCK(idx93, 32768)
                     );
                  };
               {
                  word pd94;
                  pd94 = (* (( (ptr) (* (( (ptr) gf←c28104)+99)/* var←c27048 */  ))+6) );
                  scratch←v9420 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))(var←c27176, pd94);
                  };
               };
SOURCE(9886, 89)
            {
               word var←c27208;
               {
                  word pd95;
                  pd95 = (* (( (ptr) (* (( (ptr) gf←c28104)+99)/* var←c27048 */  ))+10) );
                  var←c27208 = (word) ( *( (fPt) ((*  (ptr) pd95 ))))(scratch←v9420, expandedName←v9392, 0, 32767, pd95);
                  };
               {
                  word pd96;
                  pd96 = (* (( (ptr) (* (( (ptr) gf←c28104)+99)/* var←c27048 */  ))+11) );
                  nameText←v9448 = (word) ( *( (fPt) ((*  (ptr) pd96 ))))(var←c27208, 0, pd96);
                  };
               };
SOURCE(9977, 74)
            namePointer←v9476 = (nameText←v9448 + 4);
SOURCE(10074, 44)
SOURCE(10076, 42)
            {
               word pd97;
               pd97 = (* (( (ptr) (* (( (ptr) gf←c28104)+94)/* var←c26152 */  ))+77) );
               result←v9504 = (word) ( *( (fPt) ((*  (ptr) pd97 ))))(namePointer←v9476, pd97);
               };
SOURCE(10121, 31)
            {
               word pd98;
               pd98 = (* (( (ptr) (* (( (ptr) gf←c28104)+99)/* var←c27048 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd98 ))))(scratch←v9420, pd98);
               };
SOURCE(10154, 129)
            if ((result←v9504 ==  (word) -1)) {
SOURCE(10177, 108)
               {
                  word errno←v9584;
SOURCE(10179, 45)
                  errno←v9584 = (word) XR←GetErrno();
SOURCE(10226, 57)
                  {
                     W3 var←c0222;
                     var←c0222.f0 = 4;
                     var←c0222.f1 = 0;
                     var←c0222.f2 = (* (( (ptr) gf←c28104)+35) );
                     (void) XR←RaiseError((word) (( (bPt) gf←c28104)+144)/* var←c24744 */ , (word) &var←c0222);
                     };
                  };
               };
            };
         };
      };
   }

/* file: UXIOImpl, module: UXIOImpl, compiled at: March 18, 1994 1:59:29 pm PST */ 
extern void XR←install←UXIOImpl() {
   NoName←Q2436();
   }
extern void XR←run←UXIOImpl() { XR←Start(&globalframe); }