/* 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); }