/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1994 by Xerox Corporation.  All rights reserved. */
/* time: March 23, 1994 11:23:59 am 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 [1368658862,2044132549] 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\121\224\023\256\300\171\326\374\305\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\121\224\023\256\300\171\326\374\305\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←c0224 =  (ptr) &globalframe;
   word var←c27832;
   (* (( (ptr) gf←c0224)+8) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2);
   (* (( (ptr) gf←c0224)+9) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string2);
   (* (( (ptr) gf←c0224)+11) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
   (* (( (ptr) gf←c0224)+12) ) = (word) XR←GetTypeIndexS((word) (&string6));
   (* (( (ptr) gf←c0224)+14) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
   (*  (ptr) (( (bPt) gf←c0224)+60) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+8) ), (word) &string9);
   (*  (ptr) (( (bPt) gf←c0224)+64) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+8) ), (word) &string10);
   (*  (ptr) (( (bPt) gf←c0224)+68) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+8) ), (word) &string11);
   (*  (ptr) (( (bPt) gf←c0224)+72) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+8) ), (word) &string12);
   (*  (ptr) (( (bPt) gf←c0224)+76) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+8) ), (word) &string13);
   (*  (ptr) (( (bPt) gf←c0224)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string14);
   (*  (ptr) (( (bPt) gf←c0224)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string15);
   (*  (ptr) (( (bPt) gf←c0224)+88) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string16);
   (*  (ptr) (( (bPt) gf←c0224)+92) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string17);
   (*  (ptr) (( (bPt) gf←c0224)+96) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string18);
   (*  (ptr) (( (bPt) gf←c0224)+100) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string19);
   (*  (ptr) (( (bPt) gf←c0224)+104) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string20);
   (*  (ptr) (( (bPt) gf←c0224)+108) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string21);
   (*  (ptr) (( (bPt) gf←c0224)+112) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string22);
   (*  (ptr) (( (bPt) gf←c0224)+116) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string23);
   (*  (ptr) (( (bPt) gf←c0224)+120) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string24);
   (*  (ptr) (( (bPt) gf←c0224)+124) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string25);
   (*  (ptr) (( (bPt) gf←c0224)+128) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string26);
   (*  (ptr) (( (bPt) gf←c0224)+132) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string27);
   (*  (ptr) (( (bPt) gf←c0224)+136) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string28);
   (*  (ptr) (( (bPt) gf←c0224)+140) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0224)+9) ), (word) &string29);
   (void) XR←DeclareGlobalFrame((word) "UXIOImpl", &globalframe, (word) XR←GetTypeIndex((word) &string30, 0, (word) &string31)
      , (word) (( (bPt) gf←c0224)+356)/* var←c26168 */ );
   var←c27832 = (word) XR←ImportInterface((word) "Atom", (word) XR←GetTypeIndexS((word) (&string32)), 16);
   (* (( (ptr) gf←c0224)+93)/* var←c26616 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67897859);
   var←c27832 = (word) XR←ImportInterface((word) "HostTime", (word) XR←GetTypeIndexS((word) (&string33)), 8);
   (* (( (ptr) gf←c0224)+95)/* var←c27256 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 135266305);
   var←c27832 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string34)), 103);
   (* (( (ptr) gf←c0224)+91)/* var←c26200 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67921155);
   (void) XR←ImportProcS(var←c27832, 72115219);
   var←c27832 = (word) XR←ImportInterface((word) "List", (word) XR←GetTypeIndexS((word) (&string35)), 28);
   (* (( (ptr) gf←c0224)+97)/* var←c27384 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67637250);
   var←c27832 = (word) XR←ImportInterface((word) "ProcessProps", (word) XR←GetTypeIndexS((word) (&string36)), 6);
   (* (( (ptr) gf←c0224)+96)/* var←c27352 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67109376);
   var←c27832 = (word) XR←ImportInterface((word) "Rope", (word) XR←GetTypeIndexS((word) (&string37)), 43);
   (* (( (ptr) gf←c0224)+92)/* var←c26584 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67373569);
   (void) XR←ImportProcS(var←c27832, 67373313);
   (void) XR←ImportProcS(var←c27832, 67633666);
   (void) XR←ImportProcS(var←c27832, 67634434);
   (void) XR←ImportProcS(var←c27832, 67896323);
   (void) XR←ImportProcS(var←c27832, 67901955);
   var←c27832 = (word) XR←ImportInterface((word) "RefText", (word) XR←GetTypeIndexS((word) (&string38)), 26);
   (* (( (ptr) gf←c0224)+99)/* var←c27608 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 262913);
   (void) XR←ImportProcS(var←c27832, 68158980);
   (void) XR←ImportProcS(var←c27832, 67634946);
   (void) XR←ImportProcS(var←c27832, 67371521);
   var←c27832 = (word) XR←ImportInterface((word) "UnixEnviron", (word) XR←GetTypeIndexS((word) (&string39)), 1);
   (* (( (ptr) gf←c0224)+98)/* var←c27512 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67371009);
   var←c27832 = (word) XR←ImportInterface((word) "UnixSysCalls", (word) XR←GetTypeIndexS((word) (&string40)), 77);
   (* (( (ptr) gf←c0224)+94)/* var←c26712 */  ) = var←c27832;
   (void) XR←ImportProcS(var←c27832, 67389697);
   (void) XR←ImportProcS(var←c27832, 67906563);
   (void) XR←ImportProcS(var←c27832, 67372289);
   (void) XR←ImportProcS(var←c27832, 67373313);
   (void) XR←ImportProcS(var←c27832, 67650050);
   (void) XR←ImportProcS(var←c27832, 67904515);
   (void) XR←ImportProcS(var←c27832, 67914499);
   (void) XR←ImportProcS(var←c27832, 67907587);
   var←c27832 = (word) XR←ExportInterface((word) "UXIO", (word) XR←GetTypeIndexS((word) (&string41)), 7);
   (* (( (ptr) gf←c0224)+100)/* var←c27864 */  ) = var←c27832;
   (void) XR←ExportProcS(var←c27832, (word) (( (bPt) gf←c0224)+348)/* var←c26136 */ , 67371009, (word) "CreateStandardStream")
   ;
   (void) XR←ExportProcS(var←c27832, (word) (( (bPt) gf←c0224)+340)/* var←c26104 */ , 67895555, (word) "CreateFileStream");
   (void) XR←ExportVar(var←c27832, 2, (word) (( (bPt) gf←c0224)+144)/* var←c25304 */ );
   (void) XR←ExportProcS(var←c27832, (word) (( (bPt) gf←c0224)+204)/* var←c25560 */ , 67371777, (word) "OpenFileFromStream")
   ;
   (void) XR←ExportProcS(var←c27832, (word) (( (bPt) gf←c0224)+196)/* var←c25528 */ , 67372033, (word) "GetCreateTime");
   (void) XR←ExportProcS(var←c27832, (word) (( (bPt) gf←c0224)+188)/* var←c25496 */ , 67372289, (word) "GetName");
   (void) XR←ExportProcS(var←c27832, (word) (( (bPt) gf←c0224)+212)/* var←c25592 */ , 263681, (word) "Delete");
   }

static void UXIOImpl←P0(formal←c051, formal←c046)
   word formal←c051;
   word formal←c046;
   {
   register ptr gf←c27896 =  (ptr) &globalframe;
   /* UXIOImpl: */ 
SOURCE(620, 10464)
SOURCE(1131, 177)
   {
      W19 var←c047;
      (*  (ptr) (word) &var←c047 ) = 0;
      (* (( (ptr) (word) &var←c047) + 1) ) = (* (( (ptr) gf←c27896)+19) );
      (* (( (ptr) (word) &var←c047) + 2) ) = (word) (( (bPt) gf←c27896)+332)/* var←c26072 */ ;
      (* (( (ptr) (word) &var←c047) + 3) ) = 0;
      (* (( (ptr) (word) &var←c047) + 4) ) = 0;
      (* (( (ptr) (word) &var←c047) + 5) ) = (word) (( (bPt) gf←c27896)+324)/* var←c26040 */ ;
      (* (( (ptr) (word) &var←c047) + 6) ) = (word) (( (bPt) gf←c27896)+220)/* var←c25624 */ ;
      (* (( (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←c27896)+228)/* var←c25656 */ ;
      (* (( (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←c27896)+91)/* var←c26200 */  ))+104) );
         (* (( (ptr) gf←c27896)+4)/* stdInputProcs←v3280 */  ) = (word) ( *( (fPt) ((*  (ptr) pd42 ))))((word) (&var←c047), pd42);
         };
      };
SOURCE(1311, 144)
   {
      W19 var←c048;
      (*  (ptr) (word) &var←c048 ) = 1;
      (* (( (ptr) (word) &var←c048) + 1) ) = (* (( (ptr) gf←c27896)+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←c27896)+316)/* var←c26008 */ ;
      (* (( (ptr) (word) &var←c048) + 9) ) = 0;
      (* (( (ptr) (word) &var←c048) + 10) ) = (word) (( (bPt) gf←c27896)+300)/* var←c25944 */ ;
      (* (( (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←c27896)+91)/* var←c26200 */  ))+104) );
         (* (( (ptr) gf←c27896)+5)/* stdOutputProcs←v3308 */  ) = (word) ( *( (fPt) ((*  (ptr) pd43 ))))((word) (&var←c048), pd43)
         ;
         };
      };
SOURCE(1458, 250)
   {
      W19 var←c049;
      (*  (ptr) (word) &var←c049 ) = 0;
      (* (( (ptr) (word) &var←c049) + 1) ) = (* (( (ptr) gf←c27896)+18) );
      (* (( (ptr) (word) &var←c049) + 2) ) = (word) (( (bPt) gf←c27896)+332)/* var←c26072 */ ;
      (* (( (ptr) (word) &var←c049) + 3) ) = 0;
      (* (( (ptr) (word) &var←c049) + 4) ) = (word) (( (bPt) gf←c27896)+308)/* var←c25976 */ ;
      (* (( (ptr) (word) &var←c049) + 5) ) = (word) (( (bPt) gf←c27896)+260)/* var←c25784 */ ;
      (* (( (ptr) (word) &var←c049) + 6) ) = 0;
      (* (( (ptr) (word) &var←c049) + 7) ) = (word) (( (bPt) gf←c27896)+252)/* var←c25752 */ ;
      (* (( (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←c27896)+236)/* var←c25688 */ ;
      (* (( (ptr) (word) &var←c049) + 14) ) = (word) (( (bPt) gf←c27896)+292)/* var←c25912 */ ;
      (* (( (ptr) (word) &var←c049) + 15) ) = (word) (( (bPt) gf←c27896)+284)/* var←c25880 */ ;
      (* (( (ptr) (word) &var←c049) + 16) ) = (word) (( (bPt) gf←c27896)+268)/* var←c25816 */ ;
      (* (( (ptr) (word) &var←c049) + 17) ) = 0;
      (* (( (ptr) (word) &var←c049) + 18) ) = 0;
      {
         word pd44;
         pd44 = (* (( (ptr) (* (( (ptr) gf←c27896)+91)/* var←c26200 */  ))+104) );
         (* (( (ptr) gf←c27896)+6)/* fileInputProcs←v3336 */  ) = (word) ( *( (fPt) ((*  (ptr) pd44 ))))((word) (&var←c049), pd44)
         ;
         };
      };
SOURCE(1711, 236)
   {
      W19 var←c050;
      (*  (ptr) (word) &var←c050 ) = 1;
      (* (( (ptr) (word) &var←c050) + 1) ) = (* (( (ptr) gf←c27896)+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←c27896)+316)/* var←c26008 */ ;
      (* (( (ptr) (word) &var←c050) + 9) ) = 0;
      (* (( (ptr) (word) &var←c050) + 10) ) = (word) (( (bPt) gf←c27896)+300)/* var←c25944 */ ;
      (* (( (ptr) (word) &var←c050) + 11) ) = (word) (( (bPt) gf←c27896)+244)/* var←c25720 */ ;
      (* (( (ptr) (word) &var←c050) + 12) ) = 0;
      (* (( (ptr) (word) &var←c050) + 13) ) = (word) (( (bPt) gf←c27896)+236)/* var←c25688 */ ;
      (* (( (ptr) (word) &var←c050) + 14) ) = (word) (( (bPt) gf←c27896)+292)/* var←c25912 */ ;
      (* (( (ptr) (word) &var←c050) + 15) ) = (word) (( (bPt) gf←c27896)+284)/* var←c25880 */ ;
      (* (( (ptr) (word) &var←c050) + 16) ) = (word) (( (bPt) gf←c27896)+268)/* var←c25816 */ ;
      (* (( (ptr) (word) &var←c050) + 17) ) = 0;
      (* (( (ptr) (word) &var←c050) + 18) ) = 0;
      {
         word pd45;
         pd45 = (* (( (ptr) (* (( (ptr) gf←c27896)+91)/* var←c26200 */  ))+104) );
         (* (( (ptr) gf←c27896)+7)/* fileOutputProcs←v3364 */  ) = (word) ( *( (fPt) ((*  (ptr) pd45 ))))((word) (&var←c050), pd45)
         ;
         };
      };
   }

static word CreateStandardStream←P60(kind←v4576)
   word kind←v4576;
   {
   register ptr gf←c27928 =  (ptr) &globalframe;
   word stream←v4620;
   /* CreateStandardStream: */ 
SOURCE(1950, 426)
SOURCE(1950, 426)
   stream←v4620 = 0;
SOURCE(2034, 342)
   {
      word var←c26232;
      var←c26232 = kind←v4576;
      switch (var←c26232) {
         case 0: 
SOURCE(2060, 97)
            {
               word var←c26264;
               {
                  word var←c26296;
                  var←c26296 = XR←NewObject(12, (* (( (ptr) gf←c27928)+14) ));
                  (*  (ptr) var←c26296 ) =  (word) -2;
                  var←c26264 = var←c26296;
                  };
               {
                  word pd46;
                  pd46 = (* (( (ptr) (* (( (ptr) gf←c27928)+91)/* var←c26200 */  ))+105) );
                  stream←v4620 = (word) ( *( (fPt) ((*  (ptr) pd46 ))))((* (( (ptr) gf←c27928)+4)/* stdInputProcs←v3280 */  ), var←c26264, 0, pd46)
                  ;
                  };
               };
            break;
         case 1: 
SOURCE(2169, 98)
            {
               word var←c26328;
               {
                  word var←c26360;
                  var←c26360 = XR←NewObject(12, (* (( (ptr) gf←c27928)+14) ));
                  (*  (ptr) var←c26360 ) =  (word) -3;
                  var←c26328 = var←c26360;
                  };
               {
                  word pd47;
                  pd47 = (* (( (ptr) (* (( (ptr) gf←c27928)+91)/* var←c26200 */  ))+105) );
                  stream←v4620 = (word) ( *( (fPt) ((*  (ptr) pd47 ))))((* (( (ptr) gf←c27928)+5)/* stdOutputProcs←v3308 */  ), var←c26328, 0, pd47)
                  ;
                  };
               };
            break;
         case 2: 
SOURCE(2278, 98)
            {
               word var←c26392;
               {
                  word var←c26424;
                  var←c26424 = XR←NewObject(12, (* (( (ptr) gf←c27928)+14) ));
                  (*  (ptr) var←c26424 ) =  (word) -4;
                  var←c26392 = var←c26424;
                  };
               {
                  word pd48;
                  pd48 = (* (( (ptr) (* (( (ptr) gf←c27928)+91)/* var←c26200 */  ))+105) );
                  stream←v4620 = (word) ( *( (fPt) ((*  (ptr) pd48 ))))((* (( (ptr) gf←c27928)+5)/* stdOutputProcs←v3308 */  ), var←c26392, 0, pd48)
                  ;
                  };
               };
            break;
         };
      };
SOURCE(1950, 426)
   return(stream←v4620);
   }

static word CreateFileStream←P120(name←v5176, access←v5204, mode←v5232)
   word name←v5176;
   word access←v5204;
   word mode←v5232;
   {
   register ptr gf←c27960 =  (ptr) &globalframe;
   word stream←v5276;
   word fileFlags←v7648;
   W3 var←c26456;
   word fd←v7676;
   /* CreateFileStream: */ 
SOURCE(3430, 553)
SOURCE(3430, 553)
   stream←v5276 = 0;
SOURCE(3572, 69)
   var←c26456.f0 = 0;
   var←c26456.f1 = 265;
   var←c26456.f2 = 769;
   fileFlags←v7648 = (* (( (ptr) &var←c26456)+access←v5204) );
SOURCE(3643, 40)
   fd←v7676 = (word) RopeOpen←P1500(name←v5176, fileFlags←v7648, mode←v5232);
SOURCE(3685, 138)
   {
      word var←c26488;
      {
         word var←c26520;
         var←c26520 = XR←NewObject(12, (* (( (ptr) gf←c27960)+14) ));
         (*  (ptr) var←c26520 ) = fd←v7676;
         (* (( (ptr) var←c26520)+1) ) = name←v5176;
         var←c26488 = var←c26520;
         };
      {
         word pd49;
         pd49 = (* (( (ptr) (* (( (ptr) gf←c27960)+91)/* var←c26200 */  ))+105) );
         stream←v5276 = (word) ( *( (fPt) ((*  (ptr) pd49 ))))( ( (access←v5204 == 0) ? (* (( (ptr) gf←c27960)+6)/* fileInputProcs←v3336 */  ) : (* (
               ( (ptr) gf←c27960)+7)/* fileOutputProcs←v3364 */  ) ) , var←c26488, 0, pd49);
         };
      };
SOURCE(3825, 84)
   {
      word var←c26552;
      {
         word pd50;
         pd50 = (* (( (ptr) (* (( (ptr) gf←c27960)+92)/* var←c26584 */  ))+30) );
         var←c26552 = (word) ( *( (fPt) ((*  (ptr) pd50 ))))(name←v5176, 0, 2147483647, pd50);
         };
      {
         word pd51;
         pd51 = (* (( (ptr) (* (( (ptr) gf←c27960)+93)/* var←c26616 */  ))+14) );
         (* (( (ptr) stream←v5276)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd51 ))))((* (( (ptr) stream←v5276)+2) ), (* (( (ptr) gf←c27960)+15)
             ), var←c26552, pd51);
         };
      };
SOURCE(3911, 72)
   {
      word var←c26648;
      {
         word var←c26680;
         var←c26680 = XR←NewObject(4, (* (( (ptr) gf←c27960)+12) ));
         (*  (ptr) var←c26680 ) = fd←v7676;
         var←c26648 = var←c26680;
         };
      {
         word pd52;
         pd52 = (* (( (ptr) (* (( (ptr) gf←c27960)+93)/* var←c26616 */  ))+14) );
         (* (( (ptr) stream←v5276)+2) ) = (word) ( *( (fPt) ((*  (ptr) pd52 ))))((* (( (ptr) stream←v5276)+2) ), (* (( (ptr) gf←c27960)+16)
             ), var←c26648, pd52);
         };
      };
SOURCE(3430, 553)
   return(stream←v5276);
   }

static word GetChar←P180(self←v5372)
   word self←v5372;
   {
   register ptr gf←c27992 =  (ptr) &globalframe;
   word var←c5416;
   word data←v7720;
   word charsRead←v7748;
   word chars←v7776;
   /* GetChar: */ 
SOURCE(4100, 460)
SOURCE(4151, 46)
   data←v7720 = XR←Narrow((* (( (ptr) self←v5372)+1) ), (* (( (ptr) gf←c27992)+14) ));
SOURCE(4278, 60)
SOURCE(4279, 59)
   {
      word pd53;
      pd53 = (* (( (ptr) (* (( (ptr) gf←c27992)+94)/* var←c26712 */  ))+52) );
      charsRead←v7748 = (word) ( *( (fPt) ((*  (ptr) pd53 ))))((*  (ptr) data←v7720 ), (word) &chars←v7776, 1, pd53);
      };
SOURCE(4341, 50)
   if (( (int)charsRead←v7748 ==  (int)0)) {
SOURCE(4365, 26)
      {
         word var←c078;
         var←c078 = self←v5372;
         (void) XR←RaiseError((* (( (ptr) (* (( (ptr) gf←c27992)+91)/* var←c26200 */  ))+4) ), (word) &var←c078);
         };
      };
SOURCE(4396, 143)
   if (( (int)charsRead←v7748 <  (int)0)) {
SOURCE(4418, 123)
      {
         word errno←v7832;
SOURCE(4420, 45)
         errno←v7832 = (word) XR←GetErrno();
SOURCE(4467, 72)
         {
            W3 var←c081;
            var←c081.f0 = 4;
            var←c081.f1 = 0;
            var←c081.f2 = (* (( (ptr) gf←c27992)+20) );
            (void) XR←RaiseError((word) (( (bPt) gf←c27992)+144)/* var←c25304 */ , (word) &var←c081);
            };
         };
      };
SOURCE(4544, 16)
   return( (unsigned) (*  (bPt) &chars←v7776 ));
   }

static word EndOfInput←P240(self←v5476)
   word self←v5476;
   {
   word var←c5520;
   word backing←v7876;
   /* EndOfInput: */ 
SOURCE(4566, 178)
SOURCE(4620, 39)
   backing←v7876 = (* (( (ptr) self←v5476)+3) );
SOURCE(4661, 83)
   if ((backing←v7876 != 0)) {
SOURCE(4683, 48)
      {
         word pd54;
         pd54 = (* (( (ptr) (*  (ptr) backing←v7876 ))+3) );
         return((word) ( *( (fPt) ((*  (ptr) pd54 ))))(backing←v7876, pd54));
         };
      }
   else {
SOURCE(4731, 13)
      return(0);
      };
   }

static void PutChar←P300(self←v5580, char←v5608)
   word self←v5580;
   word char←v5608;
   {
   register ptr gf←c28024 =  (ptr) &globalframe;
   word data←v7920;
   word charsWritten←v7948;
   word chars←v7976;
   /* PutChar: */ 
SOURCE(4778, 259)
SOURCE(4826, 46)
   data←v7920 = XR←Narrow((* (( (ptr) self←v5580)+1) ), (* (( (ptr) gf←c28024)+14) ));
SOURCE(4948, 15)
   (*  (bPt) &chars←v7976 ) = char←v5608;
SOURCE(4973, 64)
SOURCE(4974, 63)
   {
      word pd55;
      pd55 = (* (( (ptr) (* (( (ptr) gf←c28024)+94)/* var←c26712 */  ))+79) );
      charsWritten←v7948 = (word) ( *( (fPt) ((*  (ptr) pd55 ))))((*  (ptr) data←v7920 ), (word) &chars←v7976, 1, pd55);
      };
   }

static word UnsafeGetBlock←P360(self←v5668, block←v5696)
   word self←v5668;
   W3 block←v5696;
   {
   register ptr gf←c28056 =  (ptr) &globalframe;
   word nBytesRead←v5740;
   word data←v8032;
   word pointer←v8060;
   word n←v8088;
   /* UnsafeGetBlock: */ 
SOURCE(5044, 480)
SOURCE(5157, 46)
   data←v8032 = XR←Narrow((* (( (ptr) self←v5668)+1) ), (* (( (ptr) gf←c28056)+14) ));
SOURCE(5205, 81)
   {
      word idx56;
      pointer←v8060 = (block←v5696.f0 + (
         idx56 = (word) block←v5696.f1,
         SGNCK(idx56)
         ));
      };
SOURCE(5305, 63)
   {
      word pd57;
      word idx58;
      pd57 = (* (( (ptr) (* (( (ptr) gf←c28056)+94)/* var←c26712 */  ))+52) );
      n←v8088 = (word) ( *( (fPt) ((*  (ptr) pd57 ))))((*  (ptr) data←v8032 ), pointer←v8060, (
            idx58 = (word) block←v5696.f2,
            SGNCK(idx58)
            ), pd57);
      };
SOURCE(5370, 140)
   if (( (int)n←v8088 <  (int)0)) {
SOURCE(5382, 130)
      {
         word errno←v8156;
SOURCE(5384, 45)
         errno←v8156 = (word) XR←GetErrno();
SOURCE(5431, 79)
         {
            W3 var←c098;
            var←c098.f0 = 4;
            var←c098.f1 = 0;
            var←c098.f2 = (* (( (ptr) gf←c28056)+21) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28056)+144)/* var←c25304 */ , (word) &var←c098);
            };
         };
      };
SOURCE(5515, 9)
   return(n←v8088);
   }

static void UnsafePutBlock←P420(self←v5800, block←v5828)
   word self←v5800;
   W3 block←v5828;
   {
   register ptr gf←c28088 =  (ptr) &globalframe;
   word data←v8200;
   word start←v8228;
   word stop←v8256;
   /* UnsafePutBlock: */ 
SOURCE(5530, 529)
SOURCE(5600, 46)
   data←v8200 = XR←Narrow((* (( (ptr) self←v5800)+1) ), (* (( (ptr) gf←c28088)+14) ));
SOURCE(5648, 35)
   {
      word idx59;
      start←v8228 = (
         idx59 = (word) block←v5828.f1,
         SGNCK(idx59)
         );
      };
SOURCE(5685, 35)
   {
      word idx60;
      stop←v8256 = (start←v8228 + (
         idx60 = (word) block←v5828.f2,
         SGNCK(idx60)
         ));
      };
SOURCE(5722, 337)
   lab←L100002: ;
   if (( (int)start←v8228 <  (int)stop←v8256)) {
      }
   else {
      goto lab←L100000;
      };
   {
      word pointer←v8312;
      word n←v8340;
SOURCE(5742, 64)
      pointer←v8312 = (block←v5828.f0 + start←v8228);
SOURCE(5841, 55)
SOURCE(5843, 53)
      {
         word pd61;
         pd61 = (* (( (ptr) (* (( (ptr) gf←c28088)+94)/* var←c26712 */  ))+79) );
         n←v8340 = (word) ( *( (fPt) ((*  (ptr) pd61 ))))((*  (ptr) data←v8200 ), pointer←v8312, (stop←v8256 - start←v8228), pd61)
         ;
         };
SOURCE(5899, 140)
      if (( (int)n←v8340 <  (int)0)) {
SOURCE(5911, 130)
         {
            word errno←v8396;
SOURCE(5913, 45)
            errno←v8396 = (word) XR←GetErrno();
SOURCE(5960, 79)
            {
               W3 var←c0108;
               var←c0108.f0 = 4;
               var←c0108.f1 = 0;
               var←c0108.f2 = (* (( (ptr) gf←c28088)+22) );
               (void) XR←RaiseError((word) (( (bPt) gf←c28088)+144)/* var←c25304 */ , (word) &var←c0108);
               };
            };
         };
SOURCE(6044, 15)
      start←v8228 = (start←v8228 + n←v8340);
      };
   goto lab←L100002;
   lab←L100000: ;
   }

static word GetIndex←P480(self←v5888)
   word self←v5888;
   {
   register ptr gf←c28120 =  (ptr) &globalframe;
   word var←c5932;
   word data←v8440;
   word index←v8468;
   /* GetIndex: */ 
SOURCE(6074, 288)
SOURCE(6125, 46)
   data←v8440 = XR←Narrow((* (( (ptr) self←v5888)+1) ), (* (( (ptr) gf←c28120)+14) ));
SOURCE(6173, 50)
   {
      word pd62;
      pd62 = (* (( (ptr) (* (( (ptr) gf←c28120)+94)/* var←c26712 */  ))+40) );
      index←v8468 = (word) ( *( (fPt) ((*  (ptr) pd62 ))))((*  (ptr) data←v8440 ), 0, 1, pd62);
      };
SOURCE(6225, 119)
   if (( (int)index←v8468 <  (int)0)) {
SOURCE(6241, 105)
      {
         word errno←v8524;
SOURCE(6243, 45)
         errno←v8524 = (word) XR←GetErrno();
SOURCE(6290, 54)
         {
            W3 var←c0115;
            var←c0115.f0 = 4;
            var←c0115.f1 = 0;
            var←c0115.f2 = (* (( (ptr) gf←c28120)+23) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28120)+144)/* var←c25304 */ , (word) &var←c0115);
            };
         };
      };
SOURCE(6349, 13)
   return(index←v8468);
   }

static void SetIndex←P540(self←v5992, index←v6020)
   word self←v5992;
   word index←v6020;
   {
   register ptr gf←c28152 =  (ptr) &globalframe;
   word data←v8568;
   word newIndex←v8596;
   /* SetIndex: */ 
SOURCE(6368, 277)
SOURCE(6417, 46)
   data←v8568 = XR←Narrow((* (( (ptr) self←v5992)+1) ), (* (( (ptr) gf←c28152)+14) ));
SOURCE(6465, 56)
   {
      word pd63;
      pd63 = (* (( (ptr) (* (( (ptr) gf←c28152)+94)/* var←c26712 */  ))+40) );
      newIndex←v8596 = (word) ( *( (fPt) ((*  (ptr) pd63 ))))((*  (ptr) data←v8568 ), index←v6020, 0, pd63);
      };
SOURCE(6523, 122)
   if (( (int)newIndex←v8596 <  (int)0)) {
SOURCE(6542, 105)
      {
         word errno←v8652;
SOURCE(6544, 45)
         errno←v8652 = (word) XR←GetErrno();
SOURCE(6591, 54)
         {
            W3 var←c0122;
            var←c0122.f0 = 4;
            var←c0122.f1 = 0;
            var←c0122.f2 = (* (( (ptr) gf←c28152)+24) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28152)+144)/* var←c25304 */ , (word) &var←c0122);
            };
         };
      };
   }

static void GetStat←P600(formal←c0129, fd←v6080)
   word formal←c0129;
   word fd←v6080;
   {
   register ptr gf←c28184 =  (ptr) &globalframe;
   W16 stat←v6124;
   word result←v8696;
   /* GetStat: */ 
SOURCE(6654, 236)
SOURCE(6654, 236)
   XR←FillWords(&stat←v6124, 16, 0);
SOURCE(6720, 43)
   {
      word pd64;
      pd64 = (* (( (ptr) (* (( (ptr) gf←c28184)+94)/* var←c26712 */  ))+70) );
      result←v8696 = (word) ( *( (fPt) ((*  (ptr) pd64 ))))(fd←v6080, (word) &stat←v6124, pd64);
      };
SOURCE(6765, 125)
   if ((result←v8696 ==  (word) -1)) {
SOURCE(6788, 104)
      {
         word errno←v8740;
SOURCE(6790, 45)
         errno←v8740 = (word) XR←GetErrno();
SOURCE(6837, 53)
         {
            W3 var←c0128;
            var←c0128.f0 = 4;
            var←c0128.f1 = 0;
            var←c0128.f2 = (* (( (ptr) gf←c28184)+25) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28184)+144)/* var←c25304 */ , (word) &var←c0128);
            };
         };
      };
   /* removed tail goto */ 
   (*  (W16Pt) formal←c0129 ) = stat←v6124;
   return;
   }

static word GetLength←P660(self←v6184)
   word self←v6184;
   {
   register ptr gf←c28216 =  (ptr) &globalframe;
   word var←c6228;
   word data←v8784;
   /* GetLength: */ 
SOURCE(6899, 129)
SOURCE(6951, 46)
   data←v8784 = XR←Narrow((* (( (ptr) self←v6184)+1) ), (* (( (ptr) gf←c28216)+14) ));
SOURCE(6999, 29)
   {
      word var←c0251;
      {
         W16 var←c0133;
         word var←c0250;
         (void) GetStat←P600((word) &var←c0133, (*  (ptr) data←v8784 ));
         var←c0250 = (* (( (ptr) &var←c0133)+5) );
         var←c0251 = SGNCK(var←c0250);
         };
      return(var←c0251);
      };
   }

static word EndOf←P720(self←v6288)
   word self←v6288;
   {
   register ptr gf←c28248 =  (ptr) &globalframe;
   word var←c6332;
   word data←v8840;
   word size←v8868;
   word index←v8896;
   /* EndOf: */ 
SOURCE(7034, 327)
SOURCE(7083, 46)
   data←v8840 = XR←Narrow((* (( (ptr) self←v6288)+1) ), (* (( (ptr) gf←c28248)+14) ));
SOURCE(7131, 33)
   {
      W16 var←c0138;
      word var←c0252;
      (void) GetStat←P600((word) &var←c0138, (*  (ptr) data←v8840 ));
      var←c0252 = (* (( (ptr) &var←c0138)+5) );
      size←v8868 = SGNCK(var←c0252);
      };
SOURCE(7166, 50)
   {
      word pd65;
      pd65 = (* (( (ptr) (* (( (ptr) gf←c28248)+94)/* var←c26712 */  ))+40) );
      index←v8896 = (word) ( *( (fPt) ((*  (ptr) pd65 ))))((*  (ptr) data←v8840 ), 0, 1, pd65);
      };
SOURCE(7218, 116)
   if (( (int)index←v8896 <  (int)0)) {
SOURCE(7234, 102)
      {
         word errno←v8952;
SOURCE(7236, 45)
         errno←v8952 = (word) XR←GetErrno();
SOURCE(7283, 51)
         {
            W3 var←c0142;
            var←c0142.f0 = 4;
            var←c0142.f1 = 0;
            var←c0142.f2 = (* (( (ptr) gf←c28248)+26) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28248)+144)/* var←c25304 */ , (word) &var←c0142);
            };
         };
      };
SOURCE(7339, 22)
   return( (unsigned) ( (int)index←v8896 >=  (int)size←v8868));
   }

static void Backup←P780(self←v6392, char←v6420)
   word self←v6392;
   word char←v6420;
   {
   register ptr gf←c28280 =  (ptr) &globalframe;
   word data←v8996;
   word index←v9024;
   /* Backup: */ 
SOURCE(7367, 265)
SOURCE(7414, 46)
   data←v8996 = XR←Narrow((* (( (ptr) self←v6392)+1) ), (* (( (ptr) gf←c28280)+14) ));
SOURCE(7462, 51)
   {
      word pd66;
      pd66 = (* (( (ptr) (* (( (ptr) gf←c28280)+94)/* var←c26712 */  ))+40) );
      index←v9024 = (word) ( *( (fPt) ((*  (ptr) pd66 ))))((*  (ptr) data←v8996 ),  (word) -1, 1, pd66);
      };
SOURCE(7515, 117)
   if (( (int)index←v9024 <  (int)0)) {
SOURCE(7531, 103)
      {
         word errno←v9080;
SOURCE(7533, 45)
         errno←v9080 = (word) XR←GetErrno();
SOURCE(7580, 52)
         {
            W3 var←c0149;
            var←c0149.f0 = 4;
            var←c0149.f1 = 0;
            var←c0149.f2 = (* (( (ptr) gf←c28280)+27) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28280)+144)/* var←c25304 */ , (word) &var←c0149);
            };
         };
      };
   }

static void Flush←P840(self←v6480)
   word self←v6480;
   {
   register ptr gf←c28312 =  (ptr) &globalframe;
   word data←v9124;
   word result←v9152;
   /* Flush: */ 
SOURCE(7641, 248)
SOURCE(7675, 46)
   data←v9124 = XR←Narrow((* (( (ptr) self←v6480)+1) ), (* (( (ptr) gf←c28312)+14) ));
SOURCE(7723, 41)
   {
      word pd67;
      pd67 = (* (( (ptr) (* (( (ptr) gf←c28312)+94)/* var←c26712 */  ))+13) );
      result←v9152 = (word) ( *( (fPt) ((*  (ptr) pd67 ))))((*  (ptr) (data←v9124) ), pd67);
      };
SOURCE(7766, 123)
   if ((result←v9152 ==  (word) -1)) {
SOURCE(7789, 102)
      {
         word errno←v9208;
SOURCE(7791, 45)
         errno←v9208 = (word) XR←GetErrno();
SOURCE(7838, 51)
         {
            W3 var←c0155;
            var←c0155.f0 = 4;
            var←c0155.f1 = 0;
            var←c0155.f2 = (* (( (ptr) gf←c28312)+28) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28312)+144)/* var←c25304 */ , (word) &var←c0155);
            };
         };
      };
   }

static void Close←P900(self←v6540, abort←v6568)
   word self←v6540;
   word abort←v6568;
   {
   register ptr gf←c28344 =  (ptr) &globalframe;
   word data←v9252;
   word result←v9280;
   /* Close: */ 
SOURCE(7898, 252)
SOURCE(7945, 46)
   data←v9252 = XR←Narrow((* (( (ptr) self←v6540)+1) ), (* (( (ptr) gf←c28344)+14) ));
SOURCE(7993, 41)
   {
      word pd68;
      pd68 = (* (( (ptr) (* (( (ptr) gf←c28344)+94)/* var←c26712 */  ))+9) );
      result←v9280 = (word) ( *( (fPt) ((*  (ptr) pd68 ))))((*  (ptr) (data←v9252) ), pd68);
      };
SOURCE(8036, 114)
   if ((result←v9280 ==  (word) -1)) {
SOURCE(8059, 93)
      {
         word errno←v9336;
SOURCE(8061, 45)
         errno←v9336 = (word) XR←GetErrno();
SOURCE(8108, 42)
         {
            W3 var←c0162;
            var←c0162.f0 = 4;
            var←c0162.f1 = 0;
            var←c0162.f2 = (* (( (ptr) gf←c28344)+29) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28344)+144)/* var←c25304 */ , (word) &var←c0162);
            };
         };
      };
   }

static void ResetInput←P960(self←v6628)
   word self←v6628;
   {
   register ptr gf←c28376 =  (ptr) &globalframe;
   word data←v9380;
   /* ResetInput: */ 
SOURCE(8159, 106)
SOURCE(8198, 46)
   data←v9380 = XR←Narrow((* (( (ptr) self←v6628)+1) ), (* (( (ptr) gf←c28376)+14) ));
SOURCE(8246, 19)
   (* (( (ptr) data←v9380)+2) ) = 1;
   }

static word InputCharsAvail←P1020(self←v6688, wait←v6716)
   word self←v6688;
   word wait←v6716;
   {
   register ptr gf←c28408 =  (ptr) &globalframe;
   word var←c6760;
   word data←v9436;
   /* InputCharsAvail: */ 
SOURCE(8271, 199)
SOURCE(8340, 46)
   data←v9436 = XR←Narrow((* (( (ptr) self←v6688)+1) ), (* (( (ptr) gf←c28408)+14) ));
SOURCE(8388, 82)
   if ((0 != (* (( (ptr) data←v9436)+2) ))) {
SOURCE(8411, 20)
      (* (( (ptr) data←v9436)+2) ) = 0;
SOURCE(8433, 9)
      return(0);
      }
   else {
SOURCE(8451, 19)
      return(2147483647);
      };
   }

static void Delete←P1080(name←v6820)
   word name←v6820;
   {
   /* Delete: */ 
SOURCE(8477, 58)
SOURCE(8519, 16)
   (void) RopeDelete←P1560(name←v6820);
   }

static word OpenFileFromStream←P1140(self←v6880)
   word self←v6880;
   {
   register ptr gf←c28440 =  (ptr) &globalframe;
   word var←c6924;
   word data←v9492;
   /* OpenFileFromStream: */ 
SOURCE(8541, 173)
SOURCE(8614, 46)
   data←v9492 = XR←Narrow((* (( (ptr) self←v6880)+1) ), (* (( (ptr) gf←c28440)+14) ));
SOURCE(8662, 52)
   {
      word var←c27160;
      var←c27160 = XR←NewObject(12, (* (( (ptr) gf←c28440)+14) ));
      (*  (ptr) var←c27160 ) = (*  (ptr) data←v9492 );
      (* (( (ptr) var←c27160)+1) ) = (* (( (ptr) data←v9492)+1) );
      return(var←c27160);
      };
   }

static word GetCreateTime←P1200(file←v6984)
   word file←v6984;
   {
   register ptr gf←c28472 =  (ptr) &globalframe;
   word created←v7028;
   word data←v9548;
   word var←c27192;
   W2 var←c0180;
   /* GetCreateTime: */ 
SOURCE(8718, 199)
SOURCE(8799, 35)
   data←v9548 = XR←Narrow(file←v6984, (* (( (ptr) gf←c28472)+14) ));
SOURCE(8836, 81)
   {
      W16 var←c0178;
      word var←c0253;
      (void) GetStat←P600((word) &var←c0178, (*  (ptr) data←v9548 ));
      var←c0253 = (* (( (ptr) &var←c0178)+8) );
      var←c27192 = SGNCK(var←c0253);
      };
   {
      W4 var←c27224;
      var←c27224.f0 = var←c27192;
      var←c27224.f1 = 0;
      var←c27224.f2 = 0;
      var←c27224.f3 = 0;
      {
         word pd69;
         pd69 = (* (( (ptr) (* (( (ptr) gf←c28472)+95)/* var←c27256 */  ))+4) );
         (void) ( *( (fPt) ((*  (ptr) pd69 ))))((word) &var←c0180, var←c27224, pd69);
         };
      };
   created←v7028 = var←c0180.f0;
SOURCE(8718, 199)
   return(created←v7028);
   }

static word GetName←P1260(file←v7088)
   word file←v7088;
   {
   register ptr gf←c28504 =  (ptr) &globalframe;
   word fullFName←v7132;
   word data←v9604;
   /* GetName: */ 
SOURCE(8923, 131)
SOURCE(8923, 131)
   fullFName←v7132 = 0;
SOURCE(8996, 35)
   data←v9604 = XR←Narrow(file←v7088, (* (( (ptr) gf←c28504)+14) ));
SOURCE(9033, 21)
   return((* (( (ptr) data←v9604)+1) ));
   }

static word ExpandName←P1320(name←v7192)
   word name←v7192;
   {
   register ptr gf←c28536 =  (ptr) &globalframe;
   word fullUName←v7236;
   /* ExpandName: */ 
SOURCE(9097, 202)
SOURCE(9097, 202)
   fullUName←v7236 = 0;
SOURCE(9157, 142)
   {
      word tc70;
      word pd71;
      word pd72;
      pd71 = (* (( (ptr) (* (( (ptr) gf←c28536)+92)/* var←c26584 */  ))+8) );
      if ((0 == (word) ( *( (fPt) ((*  (ptr) pd71 ))))(name←v7192, 0, 1, pd71))) {
         pd72 = (* (( (ptr) (* (( (ptr) gf←c28536)+92)/* var←c26584 */  ))+9) );
         tc70 =  (word) ((word) ( *( (fPt) ((*  (ptr) pd72 ))))(name←v7192, 0, pd72) == 47);
         }
      else {
         tc70 =  (word) 0;
         };
      if (tc70) {
SOURCE(9220, 22)
         fullUName←v7236 = name←v7192;
         }
      else {
SOURCE(9242, 57)
         {
            word var←c27288;
            {
               word var←c27320;
               var←c27320 = (word) GetWDir←P1380(0);
               {
                  word pd73;
                  pd73 = (* (( (ptr) (* (( (ptr) gf←c28536)+92)/* var←c26584 */  ))+6) );
                  var←c27288 = (word) ( *( (fPt) ((*  (ptr) pd73 ))))(var←c27320, name←v7192, pd73);
                  };
               };
            {
               word pd74;
               pd74 = (* (( (ptr) (* (( (ptr) gf←c28536)+92)/* var←c26584 */  ))+30) );
               fullUName←v7236 = (word) ( *( (fPt) ((*  (ptr) pd74 ))))(var←c27288, 0, 2147483647, pd74);
               };
            };
         };
      };
SOURCE(9097, 202)
   return(fullUName←v7236);
   }

static word GetWDir←P1380(wDir←v7296)
   word wDir←v7296;
   {
   register ptr gf←c28568 =  (ptr) &globalframe;
   word var←c7340;
   /* GetWDir: */ 
SOURCE(9305, 295)
SOURCE(9358, 164)
   {
      word pd75;
      pd75 = (* (( (ptr) (* (( (ptr) gf←c28568)+92)/* var←c26584 */  ))+13) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd75 ))))(wDir←v7296, pd75))) {
SOURCE(9385, 148)
         {
            word propList←v9660;
SOURCE(9387, 49)
            {
               word pd76;
               pd76 = (* (( (ptr) (* (( (ptr) gf←c28568)+96)/* var←c27352 */  ))+6) );
               propList←v9660 = (word) ( *( (fPt) ((*  (ptr) pd76 ))))(pd76);
               };
SOURCE(9438, 84)
            {
               word var←c27416;
               {
                  word pd77;
                  pd77 = (* (( (ptr) (* (( (ptr) gf←c28568)+97)/* var←c27384 */  ))+20) );
                  var←c27416 = (word) ( *( (fPt) ((*  (ptr) pd77 ))))((* (( (ptr) gf←c28568)+17) ), propList←v9660, pd77);
                  };
               if ((var←c27416 == 0)) {
                  goto lab←L100004;
                  };
               {
                  word tc78;
                  if (((* (( (ptr) gf←c28568)+11) ) == XR←GetReferentType(var←c27416))) {
                     tc78 =  (word) ( (unsigned) (*(int*)var←c27416<0) == 0);
                     }
                  else {
                     tc78 =  (word) 0;
                     };
                  if (tc78) {
                     {
                        word rope←v9704;
                        rope←v9704 = var←c27416;
SOURCE(9511, 11)
                        wDir←v7296 = rope←v9704;
                        };
                     }
                  else {
                     lab←L100004: ;
                     };
                  };
               };
            };
         };
      };
SOURCE(9536, 50)
   {
      word pd79;
      pd79 = (* (( (ptr) (* (( (ptr) gf←c28568)+92)/* var←c26584 */  ))+13) );
      if ((0 != (word) ( *( (fPt) ((*  (ptr) pd79 ))))(wDir←v7296, pd79))) {
SOURCE(9563, 23)
         wDir←v7296 = (word) GetDefaultWDir←P1440();
         };
      };
SOURCE(9588, 12)
   return(wDir←v7296);
   }

static word GetDefaultWDir←P1440()
   {
   register ptr gf←c28600 =  (ptr) &globalframe;
   word wdir←v7400;
   /* GetDefaultWDir: */ 
SOURCE(9606, 102)
SOURCE(9606, 102)
   wdir←v7400 = 0;
SOURCE(9657, 51)
   {
      word var←c27480;
      {
         word pd80;
         pd80 = (* (( (ptr) (* (( (ptr) gf←c28600)+98)/* var←c27512 */  ))+4) );
         var←c27480 = (word) ( *( (fPt) ((*  (ptr) pd80 ))))((* ((( (ptr) gf←c28600)+30)) ), pd80);
         };
      {
         word pd81;
         pd81 = (* (( (ptr) (* (( (ptr) gf←c28600)+92)/* var←c26584 */  ))+6) );
         return((word) ( *( (fPt) ((*  (ptr) pd81 ))))(var←c27480, (* (( (ptr) gf←c28600)+31) ), pd81));
         };
      };
   }

static word RopeOpen←P1500(name←v7460, flags←v7488, mode←v7516)
   word name←v7460;
   word flags←v7488;
   word mode←v7516;
   {
   register ptr gf←c28632 =  (ptr) &globalframe;
   word fd←v7560;
   /* RopeOpen: */ 
SOURCE(9714, 724)
SOURCE(9818, 620)
   {
      word pd82;
      pd82 = (* (( (ptr) (* (( (ptr) gf←c28632)+92)/* var←c26584 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd82 ))))(name←v7460, pd82) ==  (int)0)) {
SOURCE(9846, 59)
         {
            W3 var←c0200;
            var←c0200.f0 = 4;
            var←c0200.f1 = 0;
            var←c0200.f2 = (* (( (ptr) gf←c28632)+32) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28632)+144)/* var←c25304 */ , (word) &var←c0200);
            };
         }
      else {
SOURCE(9905, 535)
         {
            word expandedName←v9748;
            word scratch←v9776;
            word nameText←v9804;
            word namePointer←v9832;
            word result←v9860;
SOURCE(9907, 37)
            expandedName←v9748 = (word) ExpandName←P1320(name←v7460);
SOURCE(9946, 70)
            {
               word var←c27576;
               {
                  word pd83;
                  word idx84;
                  pd83 = (* (( (ptr) (* (( (ptr) gf←c28632)+92)/* var←c26584 */  ))+14) );
                  var←c27576 = (
                     idx84 = (word) ((word) ( *( (fPt) ((*  (ptr) pd83 ))))(expandedName←v9748, pd83) + 1),
                     BCK(idx84, 32768)
                     );
                  };
               {
                  word pd85;
                  pd85 = (* (( (ptr) (* (( (ptr) gf←c28632)+99)/* var←c27608 */  ))+6) );
                  scratch←v9776 = (word) ( *( (fPt) ((*  (ptr) pd85 ))))(var←c27576, pd85);
                  };
               };
SOURCE(10018, 89)
            {
               word var←c27640;
               {
                  word pd86;
                  pd86 = (* (( (ptr) (* (( (ptr) gf←c28632)+99)/* var←c27608 */  ))+10) );
                  var←c27640 = (word) ( *( (fPt) ((*  (ptr) pd86 ))))(scratch←v9776, expandedName←v9748, 0, 32767, pd86);
                  };
               {
                  word pd87;
                  pd87 = (* (( (ptr) (* (( (ptr) gf←c28632)+99)/* var←c27608 */  ))+11) );
                  nameText←v9804 = (word) ( *( (fPt) ((*  (ptr) pd87 ))))(var←c27640, 0, pd87);
                  };
               };
SOURCE(10109, 74)
            namePointer←v9832 = (nameText←v9804 + 4);
SOURCE(10205, 55)
SOURCE(10207, 53)
            {
               word pd88;
               pd88 = (* (( (ptr) (* (( (ptr) gf←c28632)+94)/* var←c26712 */  ))+48) );
               result←v9860 = (word) ( *( (fPt) ((*  (ptr) pd88 ))))(namePointer←v9832, flags←v7488, mode←v7516, pd88);
               };
SOURCE(10263, 31)
            {
               word pd89;
               pd89 = (* (( (ptr) (* (( (ptr) gf←c28632)+99)/* var←c27608 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd89 ))))(scratch←v9776, pd89);
               };
SOURCE(10296, 123)
            if ((result←v9860 ==  (word) -1)) {
SOURCE(10317, 104)
               {
                  word errno←v9940;
SOURCE(10319, 45)
                  errno←v9940 = (word) XR←GetErrno();
SOURCE(10366, 53)
                  {
                     W3 var←c0210;
                     var←c0210.f0 = 4;
                     var←c0210.f1 = 0;
                     var←c0210.f2 = (* (( (ptr) gf←c28632)+33) );
                     (void) XR←RaiseError((word) (( (bPt) gf←c28632)+144)/* var←c25304 */ , (word) &var←c0210);
                     };
                  };
               };
SOURCE(10424, 14)
            return(result←v9860);
            };
         };
      };
   }

static void RopeDelete←P1560(name←v7620)
   word name←v7620;
   {
   register ptr gf←c28664 =  (ptr) &globalframe;
   /* RopeDelete: */ 
SOURCE(10447, 637)
SOURCE(10486, 598)
   {
      word pd90;
      pd90 = (* (( (ptr) (* (( (ptr) gf←c28664)+92)/* var←c26584 */  ))+14) );
      if (( (int)(word) ( *( (fPt) ((*  (ptr) pd90 ))))(name←v7620, pd90) ==  (int)0)) {
SOURCE(10514, 60)
         {
            W3 var←c0213;
            var←c0213.f0 = 4;
            var←c0213.f1 = 0;
            var←c0213.f2 = (* (( (ptr) gf←c28664)+34) );
            (void) XR←RaiseError((word) (( (bPt) gf←c28664)+144)/* var←c25304 */ , (word) &var←c0213);
            };
         }
      else {
SOURCE(10574, 515)
         {
            word expandedName←v9984;
            word scratch←v10012;
            word nameText←v10040;
            word namePointer←v10068;
            word result←v10096;
SOURCE(10576, 37)
            expandedName←v9984 = (word) ExpandName←P1320(name←v7620);
SOURCE(10615, 70)
            {
               word var←c27736;
               {
                  word pd91;
                  word idx92;
                  pd91 = (* (( (ptr) (* (( (ptr) gf←c28664)+92)/* var←c26584 */  ))+14) );
                  var←c27736 = (
                     idx92 = (word) ((word) ( *( (fPt) ((*  (ptr) pd91 ))))(expandedName←v9984, pd91) + 1),
                     BCK(idx92, 32768)
                     );
                  };
               {
                  word pd93;
                  pd93 = (* (( (ptr) (* (( (ptr) gf←c28664)+99)/* var←c27608 */  ))+6) );
                  scratch←v10012 = (word) ( *( (fPt) ((*  (ptr) pd93 ))))(var←c27736, pd93);
                  };
               };
SOURCE(10687, 89)
            {
               word var←c27768;
               {
                  word pd94;
                  pd94 = (* (( (ptr) (* (( (ptr) gf←c28664)+99)/* var←c27608 */  ))+10) );
                  var←c27768 = (word) ( *( (fPt) ((*  (ptr) pd94 ))))(scratch←v10012, expandedName←v9984, 0, 32767, pd94);
                  };
               {
                  word pd95;
                  pd95 = (* (( (ptr) (* (( (ptr) gf←c28664)+99)/* var←c27608 */  ))+11) );
                  nameText←v10040 = (word) ( *( (fPt) ((*  (ptr) pd95 ))))(var←c27768, 0, pd95);
                  };
               };
SOURCE(10778, 74)
            namePointer←v10068 = (nameText←v10040 + 4);
SOURCE(10875, 44)
SOURCE(10877, 42)
            {
               word pd96;
               pd96 = (* (( (ptr) (* (( (ptr) gf←c28664)+94)/* var←c26712 */  ))+77) );
               result←v10096 = (word) ( *( (fPt) ((*  (ptr) pd96 ))))(namePointer←v10068, pd96);
               };
SOURCE(10922, 31)
            {
               word pd97;
               pd97 = (* (( (ptr) (* (( (ptr) gf←c28664)+99)/* var←c27608 */  ))+7) );
               (void) ( *( (fPt) ((*  (ptr) pd97 ))))(scratch←v10012, pd97);
               };
SOURCE(10955, 129)
            if ((result←v10096 ==  (word) -1)) {
SOURCE(10978, 108)
               {
                  word errno←v10176;
SOURCE(10980, 45)
                  errno←v10176 = (word) XR←GetErrno();
SOURCE(11027, 57)
                  {
                     W3 var←c0223;
                     var←c0223.f0 = 4;
                     var←c0223.f1 = 0;
                     var←c0223.f2 = (* (( (ptr) gf←c28664)+35) );
                     (void) XR←RaiseError((word) (( (bPt) gf←c28664)+144)/* var←c25304 */ , (word) &var←c0223);
                     };
                  };
               };
            };
         };
      };
   }

/* file: UXIOImpl, module: UXIOImpl, compiled at: March 23, 1994 11:23:58 am PST */ 
extern void XR←install←UXIOImpl() {
   NoName←Q2436();
   }
extern void XR←run←UXIOImpl() { XR←Start(&globalframe); }