/* Generated with C2C (Cedar To C)*/
/* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */
/* time: October 21, 1993 10:05:21 am PDT */
/* C2C version: April 20, 1993 (sun4) */
/* ref-counting: off */
/* file: XlBWFriendsImpl, module: XlBWFriendsImpl */
/* switches: bcfhklnouw */
#include <cedar/InstallationSupport.h>
#include <cedar/CedarExtra.h>
static char versionStamp[] = "@(#)mob←version [458981746,2875399059] XlBWFriendsImpl";
typedef unsigned word, *ptr;
typedef unsigned char byte, *bPt;
typedef unsigned short half, *hPt;
typedef word (*fPt)();
typedef struct {word f0, f1;} W2;
typedef struct {word f0, f1, f2, f3;} W4;
typedef W4 *W4Pt;
typedef W2 *W2Pt;
typedef struct {word f0, f1, f2, f3, f4, f5;} W6;
typedef struct {word f0, f1, f2, f3, f4;} W5;
#define SOURCE(p, l) /* source p, l */
#define IOP2(op, x, y) ( (word) ((x) op (y)) )
static void NoName←Q3516();
static void XlBWFriendsImpl←P0();
static word NewSRef←P60();
static word ServiceInitialize←P120();
static word GetSeviceRef←P180();
static void IncludeRect←P600();
static void CancelRects←P660();
static word WaitLocal←P720();
static void ConsumeRect←P780();
static void StopWRef←P840();
static void EntryRemH←P1668();
static void InterceptedRefresh←P900();
static void StartWRef←P960();
static word EntryAddH←P1824();
static word ResetConsumers←P1020();
static void ServiceProcess←P1200();
static word NoName←Q3576();
static word Visit←P1260();
static void NoName←Q3636();
static struct {unsigned f; char r[4];} string1 = {65540, "\251\000\000"};
static struct {unsigned f; char r[4];} string2 = {131076, "\216\251\000"};
static struct {unsigned f; char r[4];} string3 = {65537, "\001\000\000"};
static struct {unsigned f; char r[48];} string4 = {2883632, "\260\006\005\146\151\162\163\164\216\257\300\205\277\037\240\300\057\303\211\051\100\214\005\004\162\145\163\164\214\216\257\300\205\277\037\240\300\057\303\211\051\100\214\261\000\000\000"};
static struct {unsigned f; char r[4];} string5 = {131074, "\004\003\000"};
static struct {unsigned f; char r[4];} string6 = {65540, "\242\000\000"};
static struct {unsigned f; char r[16];} string7 = {851984, "\257\300\205\277\037\240\300\057\303\211\051\100\244\000\000"};
static struct {unsigned f; char r[4];} string8 = {196611, "\004@`"};
static struct {unsigned f; char r[16];} string9 = {851984, "\257\300\205\277\037\240\300\057\303\211\051\100\214\000\000"};
static struct {unsigned f; char r[20];} string10 = {1245203, "\006\007\000\001\004\001\010\001\034\001\105\164\001\105\210\001\105\224\001"};
static struct {unsigned f; char r[4];} string11 = {65540, "x\000\000"};
static struct {unsigned f; char r[16];} string12 = {851984, "flushProposed\000\000"};
static struct {unsigned f; char r[16];} string13 = {851984, "\257\300\033\133\201\162\300\253\143\033\223\100\200\000\000"};
static struct {unsigned f; char r[8];} string14 = {262148, "\004\200`\020\000\000\000"};
static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\263\064\342\215\300\063\160\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"};
static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\240\236\274\315\300\111\163\325\023\100\150\000\000"};
static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\256\042\060\232\300\060\151\325\207\100\150\000\000"};
static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\351\276\264\273\300\115\104\320\264\100\164\000\000"};
static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\256\061\211\265\300\052\170\134\271\100\150\000\000"};
static struct {unsigned f; char r[16];} string21 = {851984, "\257\300\244\037\307\153\300\075\246\262\264\100\150\000\000"};
static struct {unsigned f; char r[16];} string22 = {851984, "\257\300\205\277\037\240\300\057\303\211\051\100\150\000\000"};
static struct {
word f0[15]; word f15; word f16; word f17;
word f18; word f19; word f20; word f21;
word f22; word f23; word f24; word f25;
word f26; word f27; word f28; word f29;
word f30; word f31; word f32; word f33;
word f34; word f35; word f36; word f37;
word f38; word f39; word f40; word f41;
word f42[9];
} globalframe = {
{0}, (word) Visit←P1260, 0, (word) ServiceProcess←P1200,
0, (word) ResetConsumers←P1020, 0, (word) StartWRef←P960,
0, (word) InterceptedRefresh←P900, 0, (word) StopWRef←P840,
0, (word) ConsumeRect←P780, 0, (word) WaitLocal←P720,
0, (word) CancelRects←P660, 0, (word) IncludeRect←P600,
0, (word) GetSeviceRef←P180, 0, (word) ServiceInitialize←P120,
0, (word) NewSRef←P60, 0, (word) XlBWFriendsImpl←P0,
{0}
};
static void NoName←Q3516()
{
register ptr gf←c0134 = (ptr) &globalframe;
word var←c19428;
(* (( (ptr) gf←c0134)+5) ) = (word) XR←GetTypeIndexS((word) (&string1));
(* (( (ptr) gf←c0134)+6) ) = (word) XR←GetTypeIndex((word) &string2, 0, (word) &string3);
(* (( (ptr) gf←c0134)+7) ) = (word) XR←GetTypeIndex((word) &string4, 0, (word) &string5);
(* (( (ptr) gf←c0134)+8) ) = (word) XR←GetTypeIndexS((word) (&string6));
(* (( (ptr) gf←c0134)+9) ) = (word) XR←GetTypeIndex((word) &string7, 0, (word) &string8);
(* (( (ptr) gf←c0134)+12) ) = (word) XR←GetTypeIndex((word) &string9, 0, (word) &string10);
(* (ptr) (( (bPt) gf←c0134)+52) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0134)+6) ), (word) &string11);
(* (ptr) (( (bPt) gf←c0134)+56) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0134)+6) ), (word) &string12);
(void) XR←DeclareGlobalFrame((word) "XlBWFriendsImpl", &globalframe, (word) XR←GetTypeIndex((word) &string13, 0, (word) &string14)
, (word) (( (bPt) gf←c0134)+164)/* var←c18020 */ );
var←c19428 = (word) XR←ImportInterface((word) "ForkOps", (word) XR←GetTypeIndexS((word) (&string15)), 4);
(* (( (ptr) gf←c0134)+46)/* var←c19172 */ ) = var←c19428;
(void) XR←ImportProcS(var←c19428, 1048836);
var←c19428 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string16)), 103);
(* (( (ptr) gf←c0134)+48)/* var←c19300 */ ) = var←c19428;
var←c19428 = (word) XR←ImportInterface((word) "Process", (word) XR←GetTypeIndexS((word) (&string17)), 22);
(* (( (ptr) gf←c0134)+43)/* var←c18116 */ ) = var←c19428;
(void) XR←ImportProcS(var←c19428, 4864);
(void) XR←ImportProcS(var←c19428, 264449);
(void) XR←ImportProcS(var←c19428, 67371521);
(void) XR←ImportProcS(var←c19428, 525570);
var←c19428 = (word) XR←ImportInterface((word) "PropList", (word) XR←GetTypeIndexS((word) (&string18)), 13);
(* (( (ptr) gf←c0134)+44)/* var←c18180 */ ) = var←c19428;
(void) XR←ImportProcS(var←c19428, 135268612);
var←c19428 = (word) XR←ImportInterface((word) "Xl", (word) XR←GetTypeIndexS((word) (&string19)), 218);
(* (( (ptr) gf←c0134)+47)/* var←c19268 */ ) = var←c19428;
(void) XR←ImportProcS(var←c19428, 534274);
var←c19428 = (word) XR←ImportInterface((word) "XlBitmap", (word) XR←GetTypeIndexS((word) (&string20)), 14);
(* (( (ptr) gf←c0134)+45)/* var←c19012 */ ) = var←c19428;
(void) XR←ImportProcS(var←c19428, 1051140);
(void) XR←ImportProcS(var←c19428, 527106);
var←c19428 = (word) XR←ImportInterface((word) "XlSpeedHacks", (word) XR←GetTypeIndexS((word) (&string21)), 4);
(* (( (ptr) gf←c0134)+49)/* var←c19396 */ ) = var←c19428;
(void) XR←ImportProcS(var←c19428, 787203);
(void) XR←ImportProcS(var←c19428, 67633666);
var←c19428 = (word) XR←ExportInterface((word) "XlBWFriends", (word) XR←GetTypeIndexS((word) (&string22)), 6);
(* (( (ptr) gf←c0134)+50)/* var←c19460 */ ) = var←c19428;
(void) XR←ExportProcS(var←c19428, (word) (( (bPt) gf←c0134)+156)/* var←c17988 */ , 67108864, (word) "NewSRef");
(void) XR←ExportProcS(var←c19428, (word) (( (bPt) gf←c0134)+84)/* var←c17700 */ , 262401, (word) "StartWRef");
(void) XR←ExportProcS(var←c19428, (word) (( (bPt) gf←c0134)+100)/* var←c17764 */ , 262657, (word) "StopWRef");
(void) XR←ExportProcS(var←c19428, (word) (( (bPt) gf←c0134)+132)/* var←c17892 */ , 1835780, (word) "IncludeRect");
(void) XR←ExportProcS(var←c19428, (word) (( (bPt) gf←c0134)+124)/* var←c17860 */ , 525314, (word) "CancelRects");
(void) XR←ExportProcS(var←c19428, (word) (( (bPt) gf←c0134)+116)/* var←c17828 */ , 67634434, (word) "WaitLocal");
}
static void XlBWFriendsImpl←P0(formal←c029, formal←c028)
word formal←c029;
word formal←c028;
{
register ptr gf←c19492 = (ptr) &globalframe;
/* XlBWFriendsImpl: */
SOURCE(99, 7883)
SOURCE(543, 26)
(* (( (ptr) gf←c19492)+4)/* packageKey←v3000 */ ) = XR←NewObject(4, (* (( (ptr) gf←c19492)+8) ));
}
static word NewSRef←P60()
{
register ptr gf←c19524 = (ptr) &globalframe;
word s←v3684;
/* NewSRef: */
SOURCE(572, 187)
SOURCE(572, 187)
s←v3684 = XR←NewObject(60, (* (( (ptr) gf←c19524)+9) ));
SOURCE(691, 68)
SOURCE(692, 67)
{
word var←c18084;
{
word pd23;
pd23 = (* (( (ptr) (* (( (ptr) gf←c19524)+43)/* var←c18116 */ ))+6) );
var←c18084 = (word) ( *( (fPt) ((* (ptr) pd23 ))))(200, pd23);
};
{
word pd24;
pd24 = (* (( (ptr) (* (( (ptr) gf←c19524)+43)/* var←c18116 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd24 ))))((word) (( (bPt) s←v3684)+36), var←c18084, pd24);
};
};
SOURCE(572, 187)
return(s←v3684);
}
static word ServiceInitialize←P120(data←v9104, key←v9132)
word data←v9104;
word key←v9132;
{
register ptr gf←c19556 = (ptr) &globalframe;
word val←v9176;
/* ServiceInitialize: */
SOURCE(766, 69)
SOURCE(766, 69)
val←v9176 = (* (( (ptr) gf←c19556)+13) );
SOURCE(817, 18)
return((word) NewSRef←P60());
}
static word GetSeviceRef←P180(c←v3744)
word c←v3744;
{
register ptr gf←c19588 = (ptr) &globalframe;
word var←c3788;
word pl←v5640;
word val←v5668;
W2 var←c039;
/* GetSeviceRef: */
SOURCE(841, 223)
SOURCE(898, 43)
pl←v5640 = (* (( (ptr) c←v3744)+30) );
SOURCE(943, 98)
{
word pd25;
pd25 = (* (( (ptr) (* (( (ptr) gf←c19588)+44)/* var←c18180 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd25 ))))((word) &var←c039, pl←v5640, (* (( (ptr) gf←c19588)+4)/* packageKey←v3000 */ ), (word) (
( (bPt) gf←c19588)+148)/* var←c17956 */ , c←v3744, pd25);
};
val←v5668 = var←c039.f0;
SOURCE(1044, 20)
return(XR←Narrow(val←v5668, (* (( (ptr) gf←c19588)+9) )));
}
static void IncludeRect←P600(s←v4540, w←v4568, r←v4596, delayOk←v4624)
word s←v4540;
word w←v4568;
W4 r←v4596;
word delayOk←v4624;
{
word cost←v5836;
/* IncludeRect: */
SOURCE(1983, 1603)
(void) (XR←MonitorEntry(s←v4540));
{
word var←c18692;
word w←v17044;
SOURCE(2491, 33)
{
W4 var←c18244;
W4 box2←v17220;
box2←v17220 = (* (W4Pt) (( (ptr) w←v4568)+3) );
{
W2 v1←v11936;
W2 v2←v11968;
v1←v11936 = (* (W2Pt) &box2←v17220 );
v2←v11968 = (* (W2Pt) &r←v4596 );
if (( (int)v2←v11968.f0 >= (int)v1←v11936.f0)) {
var←c18244.f0 = v2←v11968.f0;
}
else {
var←c18244.f0 = v1←v11936.f0;
};
if (( (int)v2←v11968.f1 >= (int)v1←v11936.f1)) {
var←c18244.f1 = v2←v11968.f1;
}
else {
var←c18244.f1 = v1←v11936.f1;
};
};
{
W2 v1←v12228;
W2 v2←v12260;
v1←v12228 = (* (W2Pt) (( (ptr) &r←v4596)+2) );
v2←v12260 = (* (W2Pt) (( (ptr) &box2←v17220)+2) );
if (( (int)v1←v12228.f0 <= (int)v2←v12260.f0)) {
var←c18244.f2 = v1←v12228.f0;
}
else {
var←c18244.f2 = v2←v12260.f0;
};
if (( (int)v1←v12228.f1 <= (int)v2←v12260.f1)) {
var←c18244.f3 = v1←v12228.f1;
}
else {
var←c18244.f3 = v2←v12260.f1;
};
};
r←v4596 = var←c18244;
};
SOURCE(2526, 32)
if (( (int)r←v4596.f0 >= (int)r←v4596.f2) || ( (int)r←v4596.f1 >= (int)r←v4596.f3)) {
SOURCE(2552, 6)
(void) (XR←MonitorExit(s←v4540));
return;
};
SOURCE(2561, 520)
if (((((* (( (ptr) w←v4568)+9) ) + 1) & 077) == (* (( (ptr) w←v4568)+10) ))) {
SOURCE(2585, 45)
(* (( (ptr) w←v4568)+342) ) = ((* (( (ptr) w←v4568)+342) ) + 1);
SOURCE(2632, 22)
(void) (XR←Wait(s←v4540, (word) (( (bPt) w←v4568)+1372)));
SOURCE(2978, 45)
(* (( (ptr) w←v4568)+342) ) = ((* (( (ptr) w←v4568)+342) ) - 1);
SOURCE(3025, 56)
if (((((* (( (ptr) w←v4568)+9) ) + 1) & 077) == (* (( (ptr) w←v4568)+10) ))) {
SOURCE(3049, 32)
{
W4 var←c18436;
W4 box1←v16908;
W4 box2←v16936;
box1←v16908 = r←v4596;
{
W4 r←v16812;
{
word ox←v5752;
SOURCE(1472, 141)
r←v16812.f0 = 0;
r←v16812.f1 = 0;
r←v16812.f2 = 0;
r←v16812.f3 = 0;
ox←v5752 = (* (( (ptr) w←v4568)+10) );
SOURCE(1568, 15)
r←v16812 = (* (( (W4Pt) (( (ptr) w←v4568)+75))+ox←v5752) );
SOURCE(1585, 28)
(* (( (ptr) w←v4568)+10) ) = ((ox←v5752 + 1) & 077);
SOURCE(1472, 141)
box2←v16936 = r←v16812;
};
};
SOURCE(1680, 89)
{
W2 v1←v17452;
W2 v2←v17480;
v1←v17452 = (* (W2Pt) &box1←v16908 );
v2←v17480 = (* (W2Pt) &box2←v16936 );
if (( (int)v1←v17452.f0 <= (int)v2←v17480.f0)) {
var←c18436.f0 = v1←v17452.f0;
}
else {
var←c18436.f0 = v2←v17480.f0;
};
if (( (int)v1←v17452.f1 <= (int)v2←v17480.f1)) {
var←c18436.f1 = v1←v17452.f1;
}
else {
var←c18436.f1 = v2←v17480.f1;
};
};
{
W2 v1←v17300;
W2 v2←v17328;
v1←v17300 = (* (W2Pt) (( (ptr) &box1←v16908)+2) );
v2←v17328 = (* (W2Pt) (( (ptr) &box2←v16936)+2) );
if (( (int)v2←v17328.f0 >= (int)v1←v17300.f0)) {
var←c18436.f2 = v2←v17328.f0;
}
else {
var←c18436.f2 = v1←v17300.f0;
};
if (( (int)v2←v17328.f1 >= (int)v1←v17300.f1)) {
var←c18436.f3 = v2←v17328.f1;
}
else {
var←c18436.f3 = v1←v17300.f1;
};
};
r←v4596 = var←c18436;
};
};
};
SOURCE(3089, 14)
SOURCE(1904, 75)
cost←v5836 = IOP2( * , (int)(r←v4596.f2 - r←v4596.f0), (int)(IOP2( / , (int)(r←v4596.f3 + 3), (int)4) - IOP2( / , (int)r←v4596.f1, (int)4)
));
SOURCE(3105, 31)
lab←L100010: ;
{
word x26;
w←v17044 = w←v4568;
{
word count←v6116;
count←v6116 = ((((* (( (ptr) w←v17044)+9) ) + 64) - (* (( (ptr) w←v17044)+10) )) & 077);
SOURCE(2180, 266)
{
register word i←v6144 = 0;
if (( (int)i←v6144 >= (int)count←v6116)) {
goto lab←L100011;
};
lab←L100014: ;
{
word this←v6172;
W4 uRect←v6200;
word uCost←v6228;
this←v6172 = ((((* (( (ptr) w←v17044)+9) ) + 63) - i←v6144) & 077);
{
W4 box2←v16860;
box2←v16860 = (* (( (W4Pt) (( (ptr) w←v17044)+75))+this←v6172) );
SOURCE(1680, 89)
{
W2 v1←v17528;
W2 v2←v17556;
v1←v17528 = (* (W2Pt) &r←v4596 );
v2←v17556 = (* (W2Pt) &box2←v16860 );
if (( (int)v1←v17528.f0 <= (int)v2←v17556.f0)) {
uRect←v6200.f0 = v1←v17528.f0;
}
else {
uRect←v6200.f0 = v2←v17556.f0;
};
if (( (int)v1←v17528.f1 <= (int)v2←v17556.f1)) {
uRect←v6200.f1 = v1←v17528.f1;
}
else {
uRect←v6200.f1 = v2←v17556.f1;
};
};
{
W2 v1←v17376;
W2 v2←v17404;
v1←v17376 = (* (W2Pt) (( (ptr) &r←v4596)+2) );
v2←v17404 = (* (W2Pt) (( (ptr) &box2←v16860)+2) );
if (( (int)v2←v17404.f0 >= (int)v1←v17376.f0)) {
uRect←v6200.f2 = v2←v17404.f0;
}
else {
uRect←v6200.f2 = v1←v17376.f0;
};
if (( (int)v2←v17404.f1 >= (int)v1←v17376.f1)) {
uRect←v6200.f3 = v2←v17404.f1;
}
else {
uRect←v6200.f3 = v1←v17376.f1;
};
};
};
SOURCE(1904, 75)
uCost←v6228 = IOP2( * , (int)(uRect←v6200.f2 - uRect←v6200.f0), (int)(IOP2( / , (int)(uRect←v6200.f3 + 3), (int)4) - IOP2(
/ , (int)uRect←v6200.f1, (int)4)));
SOURCE(2331, 115)
if (( (int)uCost←v6228 <= (int)((cost←v5836 + (* ((( (ptr) w←v17044)+11)+this←v6172) )) + (* (( (ptr) w←v17044)+8) )))) {
SOURCE(2382, 9)
r←v4596 = uRect←v6200;
SOURCE(2394, 12)
cost←v5836 = uCost←v6228;
SOURCE(2408, 23)
{
word s←v16660;
word w←v16688;
s←v16660 = s←v4540;
w←v16688 = w←v17044;
{
word lix←v5724;
lix←v5724 = (((* (( (ptr) w←v16688)+9) ) + 63) & 077);
SOURCE(1383, 68)
if ((lix←v5724 != this←v6172)) {
SOURCE(1399, 25)
/*1*/ (* (( (W4Pt) (( (ptr) w←v16688)+75))+this←v6172) ) = (* (( (W4Pt) (( (ptr) w←v16688)+75))+lix←v5724) );
SOURCE(1426, 25)
/*1*/ (* ((( (ptr) w←v16688)+11)+this←v6172) ) = (* ((( (ptr) w←v16688)+11)+lix←v5724) );
/*1*/ };
SOURCE(1456, 10)
(* (( (ptr) w←v16688)+9) ) = lix←v5724;
};
};
SOURCE(2433, 13)
var←c18692 = 1;
goto lab←L100019;
};
};
i←v6144 = (i←v6144 + 1);
if ((i←v6144 < count←v6116)) {
goto lab←L100014;
};
lab←L100011: ;
};
SOURCE(2461, 14)
var←c18692 = 0;
};
lab←L100019: ;
x26 = (word) var←c18692;
if (x26) {
}
else {
goto lab←L100008;
};
};
goto lab←L100010;
lab←L100008: ;
SOURCE(3138, 88)
{
word i←v5984;
SOURCE(3144, 15)
i←v5984 = (* (( (ptr) w←v4568)+9) );
SOURCE(3161, 14)
(* (( (W4Pt) (( (ptr) w←v4568)+75))+i←v5984) ) = r←v4596;
SOURCE(3178, 17)
(* ((( (ptr) w←v4568)+11)+i←v5984) ) = cost←v5836;
SOURCE(3197, 27)
(* (( (ptr) w←v4568)+9) ) = ((i←v5984 + 1) & 077);
};
SOURCE(3231, 16)
(* (( (ptr) s←v4540)+7) ) = 1;
SOURCE(3249, 337)
if ((0 != (* (( (ptr) s←v4540)+8) ))) {
SOURCE(3453, 137)
SOURCE(3481, 105)
if ((0 == delayOk←v4624) || (((((* (( (ptr) w←v4568)+9) ) + 64) - (* (( (ptr) w←v4568)+10) )) & 077) > 4)) {
SOURCE(3561, 25)
(void) (XR←Notify((word) (( (bPt) s←v4540)+36)));
};
};
};
SOURCE(1983, 1603)
(void) (XR←MonitorExit(s←v4540));
return;
}
static void CancelRects←P660(s←v4684, w←v4712)
word s←v4684;
word w←v4712;
{
/* CancelRects: */
SOURCE(3599, 178)
(void) (XR←MonitorEntry(s←v4684));
SOURCE(3653, 124)
if (((* (( (ptr) w←v4712)+9) ) != (* (( (ptr) w←v4712)+10) ))) {
SOURCE(3679, 11)
(* (( (ptr) w←v4712)+10) ) = (* (( (ptr) w←v4712)+9) );
SOURCE(3692, 29)
(* (( (ptr) w←v4712)+332) ) = ((* (( (ptr) w←v4712)+332) ) + 1);
SOURCE(3723, 54)
if (( (int)(* (( (ptr) w←v4712)+335) ) > (int)0)) {
SOURCE(3752, 25)
(void) (XR←Broadcast((word) (( (bPt) w←v4712)+1344)));
};
};
SOURCE(3599, 178)
(void) (XR←MonitorExit(s←v4684));
return;
}
static word WaitLocal←P720(s←v4772, w←v4800)
word s←v4772;
word w←v4800;
{
word timedOut←v4844;
/* WaitLocal: */
SOURCE(3786, 292)
(void) (XR←MonitorEntry(s←v4772));
SOURCE(3786, 292)
timedOut←v4844 = 0;
SOURCE(3871, 207)
if (((* (( (ptr) w←v4800)+9) ) != (* (( (ptr) w←v4800)+10) ))) {
SOURCE(3895, 185)
{
word cnt←v6256;
SOURCE(3897, 24)
cnt←v6256 = (* (( (ptr) w←v4800)+332) );
SOURCE(3923, 41)
(* (( (ptr) w←v4800)+335) ) = ((* (( (ptr) w←v4800)+335) ) + 1);
SOURCE(3966, 20)
(void) (XR←Wait(s←v4772, (word) (( (bPt) w←v4800)+1344)));
SOURCE(3988, 41)
(* (( (ptr) w←v4800)+335) ) = ((* (( (ptr) w←v4800)+335) ) - 1);
SOURCE(4031, 47)
if (((* (( (ptr) w←v4800)+332) ) == cnt←v6256)) {
timedOut←v4844 = (unsigned) ((* (( (ptr) w←v4800)+9) ) != (* (( (ptr) w←v4800)+10) ));
}
else {
timedOut←v4844 = (unsigned) 0;
};
};
};
SOURCE(3786, 292)
(void) (XR←MonitorExit(s←v4772));
return(timedOut←v4844);
}
static void ConsumeRect←P780(formal←c088, s←v4904, w←v4932)
word formal←c088;
word s←v4904;
word w←v4932;
{
W4 b←v4976;
/* ConsumeRect: */
SOURCE(4087, 388)
(void) (XR←MonitorEntry(s←v4904));
SOURCE(4087, 388)
b←v4976.f0 = 0;
b←v4976.f1 = 0;
b←v4976.f2 = 0;
b←v4976.f3 = 0;
SOURCE(4199, 161)
if (((* (( (ptr) w←v4932)+9) ) == (* (( (ptr) w←v4932)+10) ))) {
SOURCE(4225, 87)
if (( (int)(* (( (ptr) w←v4932)+335) ) > (int)0)) {
SOURCE(4256, 29)
(* (( (ptr) w←v4932)+332) ) = ((* (( (ptr) w←v4932)+332) ) + 1);
SOURCE(4287, 25)
(void) (XR←Broadcast((word) (( (bPt) w←v4932)+1344)));
};
SOURCE(4317, 9)
b←v4976.f0 = 2147483647;
b←v4976.f1 = 2147483647;
b←v4976.f2 = 2147483648;
b←v4976.f3 = 2147483648;
}
else {
SOURCE(4338, 22)
{
W4 var←c18948;
W4 r←v16736;
{
word ox←v16768;
SOURCE(1472, 141)
r←v16736.f0 = 0;
r←v16736.f1 = 0;
r←v16736.f2 = 0;
r←v16736.f3 = 0;
ox←v16768 = (* (( (ptr) w←v4932)+10) );
SOURCE(1568, 15)
r←v16736 = (* (( (W4Pt) (( (ptr) w←v4932)+75))+ox←v16768) );
SOURCE(1585, 28)
(* (( (ptr) w←v4932)+10) ) = ((ox←v16768 + 1) & 077);
SOURCE(1472, 141)
var←c18948 = r←v16736;
};
b←v4976 = var←c18948;
};
};
SOURCE(4365, 110)
if ( ( ( (int)(* (( (ptr) w←v4932)+342) ) > (int)0) ? (((((* (( (ptr) w←v4932)+9) ) + 64) - (* (( (ptr) w←v4932)+10) )) & 077) > 5) : 0 ) ) {
SOURCE(4451, 24)
(void) (XR←Notify((word) (( (bPt) w←v4932)+1372)));
};
/* removed tail goto */
(void) (XR←MonitorExit(s←v4904));
(* (W4Pt) formal←c088 ) = b←v4976;
return;
}
static void StopWRef←P840(w←v5036)
word w←v5036;
{
W6 var←c19620;
register ptr gf←c19652 = (ptr) &globalframe;
/* declaration of var←c18980 skipped */
/* StopWRef: */
SOURCE(4481, 670)
{
word tmpAddr27;
tmpAddr27 = (word) (( (ptr) &var←c19620)+4)/* var←c18980 */ ;
(* (ptr) tmpAddr27 ) = ( ((word) (fPt) EntryRemH←P1668) );
(* (( (ptr) tmpAddr27) + 1) ) = 1;
};
SOURCE(5048, 103)
if ((w←v5036 != 0)) {
SOURCE(5062, 91)
{
word s←v6476;
SOURCE(5064, 13)
s←v6476 = (* (( (ptr) w←v5036)+7) );
SOURCE(5079, 29)
if ((s←v6476 != 0)) {
SOURCE(5093, 15)
(void) EntryRemH←P1668(s←v6476, w←v5036, (word) (( (bPt) &var←c19620)+16)/* var←c18980 */ );
};
SOURCE(5110, 41)
{
word pd28;
pd28 = (* (( (ptr) (* (( (ptr) gf←c19652)+45)/* var←c19012 */ ))+15) );
(void) ( *( (fPt) ((* (ptr) pd28 ))))((* (( (ptr) w←v5036)+1) ), w←v5036, pd28);
};
};
};
}
static void EntryRemH←P1668(s←v6420, w←v6448, formal←c19684)
word s←v6420;
word w←v6448;
word formal←c19684;
{
formal←c19684 = (formal←c19684 - 16);
/* EntryRemH: */
SOURCE(4517, 526)
(void) (XR←MonitorEntry(s←v6420));
SOURCE(4562, 11)
(* (( (ptr) w←v6448)+10) ) = (* (( (ptr) w←v6448)+9) );
SOURCE(4575, 186)
if (((* (ptr) (* (( (ptr) s←v6420)+5) ) ) == w←v6448)) {
SOURCE(4605, 38)
(* (( (ptr) s←v6420)+5) ) = (* (( (ptr) (* (( (ptr) s←v6420)+5) ))+1) );
}
else {
SOURCE(4645, 116)
{
register word l←v6520;
l←v6520 = (* (( (ptr) s←v6420)+5) );
lab←L100026: ;
if ( ( (l←v6520 != 0) ? ((* (( (ptr) l←v6520)+1) ) != 0) : 0 ) ) {
}
else {
goto lab←L100023;
};
SOURCE(4718, 43)
if (((* (ptr) (* (( (ptr) l←v6520)+1) ) ) == w←v6448)) {
SOURCE(4741, 20)
(* (( (ptr) l←v6520)+1) ) = (* (( (ptr) (* (( (ptr) l←v6520)+1) ))+1) );
};
l←v6520 = (* (( (ptr) l←v6520)+1) );
goto lab←L100026;
lab←L100023: ;
};
};
SOURCE(4775, 16)
(* (( (ptr) s←v6420)+7) ) = 1;
SOURCE(4793, 58)
if ( ( ((* (( (ptr) s←v6420)+6) ) != 0) ? ((* (ptr) (* (( (ptr) s←v6420)+6) ) ) == w←v6448) : 0 ) ) {
SOURCE(4831, 20)
(* (( (ptr) s←v6420)+6) ) = (* (( (ptr) (* (( (ptr) s←v6420)+6) ))+1) );
};
SOURCE(4853, 50)
if ((0 != (* (( (ptr) s←v6420)+8) ))) {
SOURCE(4878, 25)
(void) (XR←Notify((word) (( (bPt) s←v6420)+36)));
};
SOURCE(4929, 54)
if (( (int)(* (( (ptr) w←v6448)+335) ) > (int)0)) {
SOURCE(4958, 25)
(void) (XR←Broadcast((word) (( (bPt) w←v6448)+1344)));
};
SOURCE(4985, 58)
if (( (int)(* (( (ptr) w←v6448)+342) ) > (int)0)) {
SOURCE(5016, 27)
(void) (XR←Broadcast((word) (( (bPt) w←v6448)+1372)));
};
SOURCE(4517, 526)
(void) (XR←MonitorExit(s←v6420));
return;
}
static void InterceptedRefresh←P900(box←v9236, data←v9264, delayOk←v9292)
W4 box←v9236;
word data←v9264;
word delayOk←v9292;
{
register ptr gf←c19716 = (ptr) &globalframe;
word w←v6648;
/* InterceptedRefresh: */
SOURCE(5159, 102)
SOURCE(5204, 22)
w←v6648 = XR←Narrow(data←v9264, (* (( (ptr) gf←c19716)+12) ));
SOURCE(5228, 33)
(void) IncludeRect←P600((* (( (ptr) w←v6648)+7) ), w←v6648, box←v9236, delayOk←v9292);
}
static void StartWRef←P960(w←v5096)
word w←v5096;
{
W6 var←c19748;
register ptr gf←c19780 = (ptr) &globalframe;
/* declaration of var←c19044 skipped */
word s←v6720;
/* StartWRef: */
SOURCE(5267, 747)
{
word tmpAddr29;
tmpAddr29 = (word) (( (ptr) &var←c19748)+4)/* var←c19044 */ ;
(* (ptr) tmpAddr29 ) = ( ((word) (fPt) EntryAddH←P1824) );
(* (( (ptr) tmpAddr29) + 1) ) = 1;
};
SOURCE(5634, 13)
s←v6720 = (* (( (ptr) w←v5096)+7) );
SOURCE(5649, 41)
if ((s←v6720 == 0)) {
SOURCE(5663, 27)
{
word var←c19076;
var←c19076 = (word) GetSeviceRef←P180((* (ptr) (w←v5096) ));
(* (( (ptr) w←v5096)+7) ) = var←c19076;
s←v6720 = var←c19076;
};
};
SOURCE(5700, 131)
SOURCE(5702, 62)
{
word var←c19108;
{
word pd30;
pd30 = (* (( (ptr) (* (( (ptr) gf←c19780)+43)/* var←c18116 */ ))+6) );
var←c19108 = (word) ( *( (fPt) ((* (ptr) pd30 ))))(200, pd30);
};
{
word pd31;
pd31 = (* (( (ptr) (* (( (ptr) gf←c19780)+43)/* var←c18116 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd31 ))))((word) (( (bPt) w←v5096)+1344), var←c19108, pd31);
};
};
SOURCE(5766, 63)
{
word var←c19140;
{
word pd32;
pd32 = (* (( (ptr) (* (( (ptr) gf←c19780)+43)/* var←c18116 */ ))+6) );
var←c19140 = (word) ( *( (fPt) ((* (ptr) pd32 ))))(80, pd32);
};
{
word pd33;
pd33 = (* (( (ptr) (* (( (ptr) gf←c19780)+43)/* var←c18116 */ ))+9) );
(void) ( *( (fPt) ((* (ptr) pd33 ))))((word) (( (bPt) w←v5096)+1372), var←c19140, pd33);
};
};
SOURCE(5834, 180)
if ((s←v6720 != 0)) {
SOURCE(5848, 168)
{
word mustStart←v6896;
SOURCE(5850, 33)
mustStart←v6896 = (word) EntryAddH←P1824(s←v6720, w←v5096, (word) (( (bPt) &var←c19748)+16)/* var←c19044 */ );
SOURCE(5885, 68)
{
word pd34;
pd34 = (* (( (ptr) (* (( (ptr) gf←c19780)+45)/* var←c19012 */ ))+14) );
(void) ( *( (fPt) ((* (ptr) pd34 ))))((* (( (ptr) w←v5096)+1) ), (word) (( (bPt) gf←c19780)+92)/* var←c17732 */ , 0, w←v5096, pd34)
;
};
SOURCE(5955, 59)
if ((0 != mustStart←v6896)) {
SOURCE(5973, 41)
{
word pd35;
pd35 = (* (( (ptr) (* (( (ptr) gf←c19780)+46)/* var←c19172 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd35 ))))(0, (word) (( (bPt) gf←c19780)+68)/* var←c17636 */ , s←v6720, 2, pd35);
};
};
};
};
}
static word EntryAddH←P1824(s←v6796, w←v6824, formal←c19844)
word s←v6796;
word w←v6824;
word formal←c19844;
{
register ptr gf←c19812 = (ptr) &globalframe;
word mustStart←v6868;
formal←c19844 = (formal←c19844 - 16);
/* EntryAddH: */
SOURCE(5304, 325)
(void) (XR←MonitorEntry(s←v6796));
SOURCE(5304, 325)
mustStart←v6868 = 0;
SOURCE(5383, 90)
{
register word l←v6940;
l←v6940 = (* (( (ptr) s←v6796)+5) );
lab←L100030: ;
if ((l←v6940 != 0)) {
}
else {
goto lab←L100027;
};
SOURCE(5441, 32)
if (((* (ptr) l←v6940 ) == w←v6824)) {
SOURCE(5459, 14)
(void) (XR←MonitorExit(s←v6796));
return(0);
};
l←v6940 = (* (( (ptr) l←v6940)+1) );
goto lab←L100030;
lab←L100027: ;
};
SOURCE(5512, 36)
{
word var←c19204;
var←c19204 = XR←NewObject(8, (* (( (ptr) gf←c19812)+7) ));
(* (ptr) var←c19204 ) = w←v6824;
(* (( (ptr) var←c19204)+1) ) = (* (( (ptr) s←v6796)+5) );
(* (( (ptr) s←v6796)+5) ) = var←c19204;
};
SOURCE(5550, 60)
if ((0 == (* (( (ptr) s←v6796)+4) ))) {
SOURCE(5576, 34)
mustStart←v6868 = 1;
(* (( (ptr) s←v6796)+4) ) = 1;
};
SOURCE(5613, 16)
(* (( (ptr) s←v6796)+7) ) = 1;
SOURCE(5304, 325)
(void) (XR←MonitorExit(s←v6796));
return(mustStart←v6868);
}
static word ResetConsumers←P1020(s←v5156)
word s←v5156;
{
word mustExit←v5200;
word next←v7068;
/* ResetConsumers: */
SOURCE(6023, 187)
(void) (XR←MonitorEntry(s←v5156));
SOURCE(6089, 6)
next←v7068 = (* (( (ptr) s←v5156)+5) );
(* (( (ptr) s←v5156)+6) ) = next←v7068;
SOURCE(6133, 77)
mustExit←v5200 = (unsigned) (next←v7068 == 0);
if ((0 != mustExit←v5200)) {
SOURCE(6164, 29)
(* (( (ptr) s←v5156)+4) ) = 0;
}
else {
SOURCE(6193, 17)
(* (( (ptr) s←v5156)+7) ) = 0;
};
SOURCE(6023, 187)
(void) (XR←MonitorExit(s←v5156));
return(mustExit←v5200);
}
static void ServiceProcess←P1200(formal←c0157)
word formal←c0157;
{
W5 var←c19876;
/* declaration of x←v5424 skipped */
register ptr gf←c19908 = (ptr) &globalframe;
var←c19876.f4/* x←v5424 */ = formal←c0157;
/* ServiceProcess: */
SOURCE(6547, 708)
SOURCE(6579, 676)
SOURCE(6581, 598)
{
word var←c01;
{
word var←c0150;
var←c0150 = (word) &var←c19876;
var←c01 = (word) XR←Enable(( ((word) (fPt) NoName←Q3576) ), ( ((word) (fPt) NoName←Q3636) ), var←c0150);
};
if ((var←c01 == 2)) {
goto lab←L100031;
}
else {
if ((var←c01 == 1)) {
goto lab←L02;
};
};
};
goto lab←L100045;
lab←L100031: ;
SOURCE(7207, 43)
{
word pd36;
pd36 = (* (( (ptr) (* (( (ptr) gf←c19908)+46)/* var←c19172 */ ))+5) );
(void) ( *( (fPt) ((* (ptr) pd36 ))))(100, (word) (( (bPt) gf←c19908)+68)/* var←c17636 */ , var←c19876.f4/* x←v5424 */ , 2, pd36)
;
};
lab←L100045: ;
lab←L02: ;
return;
}
static word NoName←Q3576(formal←c0147)
word formal←c0147;
{
register ptr gf←c0146 = (ptr) &globalframe;
SOURCE(6643, 19)
{
word s←v7308;
SOURCE(6643, 19)
s←v7308 = XR←Narrow((* (( (ptr) formal←c0147)+4) ), (* (( (ptr) gf←c0146)+9) ));
SOURCE(6664, 47)
{
word pd37;
pd37 = (* (( (ptr) (* (( (ptr) gf←c0146)+43)/* var←c18116 */ ))+13) );
(void) ( *( (fPt) ((* (ptr) pd37 ))))(3, pd37);
};
SOURCE(6713, 466)
lab←L100036: ;
SOURCE(6713, 466)
{
word dontSleep←v7352 = 0;
SOURCE(6741, 41)
if ((0 != (word) ResetConsumers←P1020(s←v7308))) {
SOURCE(6776, 6)
return(1);
};
SOURCE(6785, 86)
lab←L100039: ;
SOURCE(6785, 86)
{
word w←v7396;
SOURCE(6788, 25)
{
word w←v17172;
SOURCE(6216, 165)
(void) (XR←MonitorEntry(s←v7308));
{
word next←v7196;
SOURCE(6216, 165)
w←v17172 = 0;
next←v7196 = (* (( (ptr) s←v7308)+6) );
SOURCE(6315, 66)
if ((next←v7196 != 0)) {
SOURCE(6334, 14)
w←v17172 = (* (ptr) next←v7196 );
SOURCE(6362, 19)
(* (( (ptr) s←v7308)+6) ) = (* (( (ptr) next←v7196)+1) );
};
SOURCE(6216, 165)
w←v7396 = w←v17172;
};
(void) (XR←MonitorExit(s←v7308));
};
SOURCE(6815, 14)
if ((w←v7396 == 0)) {
SOURCE(6829, 4)
goto lab←L100038;
};
SOURCE(6835, 36)
if ((0 != (word) Visit←P1260(s←v7308, w←v7396))) {
dontSleep←v7352 = (unsigned) 1;
}
else {
dontSleep←v7352 = (unsigned) (0 != dontSleep←v7352);
};
};
goto lab←L100039;
lab←L100038: ;
SOURCE(6882, 121)
if ((0 == dontSleep←v7352)) {
SOURCE(6904, 37)
if ((0 == (* (( (ptr) s←v7308)+7) ))) {
SOURCE(6923, 18)
SOURCE(6923, 18)
(void) (XR←MonitorEntry(s←v7308));
SOURCE(6437, 95)
lab←L100043: ;
if ((0 == (* (( (ptr) s←v7308)+7) ))) {
}
else {
goto lab←L100041;
};
SOURCE(6458, 23)
(* (( (ptr) s←v7308)+8) ) = 1;
SOURCE(6483, 23)
(void) (XR←Wait(s←v7308, (word) (( (bPt) s←v7308)+36)));
SOURCE(6508, 24)
(* (( (ptr) s←v7308)+8) ) = 0;
goto lab←L100043;
lab←L100041: ;
(void) (XR←MonitorExit(s←v7308));
};
SOURCE(6988, 15)
{
word pd38;
pd38 = (* (( (ptr) (* (( (ptr) gf←c0146)+43)/* var←c18116 */ ))+23) );
(void) ( *( (fPt) ((* (ptr) pd38 ))))(pd38);
};
};
};
goto lab←L100036;
};
/* c2c skipped dead code */
}
static word Visit←P1260(s←v5496, w←v5524)
word s←v5496;
word w←v5524;
{
register ptr gf←c19940 = (ptr) &globalframe;
word var←c5568;
word flushWhenDone←v7440;
/* Visit: */
SOURCE(7260, 722)
SOURCE(7324, 43)
flushWhenDone←v7440 = (unsigned) ((* (( (ptr) w←v5524)+349) ) != 0);
SOURCE(7369, 553)
{
register word noName←c19364 = 0;
if ((noName←c19364 > 9)) {
goto lab←L100046;
};
lab←L100049: ;
{
W4 r←v7484;
SOURCE(7395, 29)
(void) ConsumeRect←P780((word) &r←v7484, s←v5496, w←v5524);
SOURCE(7426, 120)
if (( (int)r←v7484.f3 <= (int)r←v7484.f1)) {
SOURCE(7463, 64)
if ((0 != flushWhenDone←v7440)) {
SOURCE(7489, 23)
(* (( (ptr) w←v5524)+349) ) = 0;
SOURCE(7514, 13)
{
word pd39;
pd39 = (* (( (ptr) (* (( (ptr) gf←c19940)+47)/* var←c19268 */ ))+43) );
(void) ( *( (fPt) ((* (ptr) pd39 ))))((* (ptr) w←v5524 ), 0, pd39);
};
};
SOURCE(7532, 14)
return(0);
};
SOURCE(7551, 101)
{
register word rl←v7528;
rl←v7528 = (* (( (ptr) w←v5524)+2) );
lab←L100053: ;
if ((rl←v7528 != 0)) {
}
else {
goto lab←L100050;
};
SOURCE(7613, 39)
{
word pd40;
pd40 = (* (ptr) rl←v7528 );
(void) ( *( (fPt) ((* (ptr) pd40 ))))(r←v7484, (* (( (ptr) rl←v7528)+1) ), pd40);
};
rl←v7528 = (* (( (ptr) rl←v7528)+2) );
goto lab←L100053;
lab←L100050: ;
};
SOURCE(7654, 37)
(* (( (ptr) w←v5524)+333) ) = ((* (( (ptr) w←v5524)+333) ) + 1);
SOURCE(7693, 204)
if (( (int)(* (( (ptr) w←v5524)+333) ) > (int)(* (( (ptr) w←v5524)+334) ))) {
SOURCE(7737, 162)
{
word newSNo←v7656;
SOURCE(7739, 59)
{
word pd41;
pd41 = (* (( (ptr) (* (( (ptr) gf←c19940)+49)/* var←c19396 */ ))+6) );
newSNo←v7656 = (word) ( *( (fPt) ((* (ptr) pd41 ))))((* (ptr) w←v5524 ), 1, pd41);
};
SOURCE(7800, 20)
(* (( (ptr) w←v5524)+333) ) = 0;
SOURCE(7822, 59)
if (((* (( (ptr) w←v5524)+331) ) != 0)) {
SOURCE(7838, 43)
{
word pd42;
pd42 = (* (( (ptr) (* (( (ptr) gf←c19940)+49)/* var←c19396 */ ))+7) );
(void) ( *( (fPt) ((* (ptr) pd42 ))))((* (ptr) w←v5524 ), (* (( (ptr) w←v5524)+331) ), 0, pd42);
};
};
SOURCE(7883, 14)
(* (( (ptr) w←v5524)+331) ) = newSNo←v7656;
};
};
SOURCE(7902, 20)
flushWhenDone←v7440 = 1;
};
if ((noName←c19364 >= 9)) {
goto lab←L100046;
};
noName←c19364 = (noName←c19364 + 1);
goto lab←L100049;
lab←L100046: ;
};
SOURCE(7933, 34)
(* (( (ptr) w←v5524)+349) ) = (* (( (ptr) gf←c19940)+14) );
SOURCE(7969, 13)
return(1);
}
static void NoName←Q3636(formal←c0133, formal←c200000, formal←c200001, formal←c200002, formal←c200003)
word formal←c0133;
word formal←c200000;
word formal←c200001;
word formal←c200002;
word formal←c200003;
{
register ptr gf←c0149 = (ptr) &globalframe;
if (((formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0149)+47)/* var←c19268 */ ))+4) )) || (formal←c200001 == (* (( (ptr) (* (
( (ptr) gf←c0149)+48)/* var←c19300 */ ))+5) ))) || (formal←c200001 == (* (( (ptr) (* (( (ptr) gf←c0149)+48)/* var←c19300 */ ))+4)
))) {
SOURCE(6629, 9)
(* (ptr) formal←c0133 ) = 2;
(* (( (ptr) formal←c0133)+1) ) = 2;
return;
};
(* (ptr) formal←c0133 ) = 0;
(* (( (ptr) formal←c0133)+1) ) = 0;
return;
}
/* file: XlBWFriendsImpl, module: XlBWFriendsImpl, compiled at: October 21, 1993 10:05:21 am PDT */
extern void XR←install←XlBWFriendsImpl() {
NoName←Q3516();
}
extern void XR←run←XlBWFriendsImpl() { XR←Start(&globalframe); }