/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 9:45:18 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: BasicTimeImpl, module: BasicTimeImpl */ /* switches: bcfhklnouw */ #include #include static char versionStamp[] = "@(#)mob_version [1774341153,1689753261] BasicTimeImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef struct {word f0, f1, f2, f3;} W4; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; typedef struct {word f0, f1, f2;} W3; typedef struct {word f0, f1, f2, f3, f4, f5, f6, f7;} W8; typedef struct {W8 f; W3 r;} W11; typedef W11 *W11Pt; typedef struct {word f0, f1, f2, f3, f4, f5, f6;} W7; typedef W3 *W3Pt; #define SOURCE(p, l) /* source p, l */ static float fc9 = 1.0e-6; #define SGNCK(i) ((int) (word) (i) < 0 ? XR_RaiseArithmeticFault(): i ) #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR_RaiseBoundsFault()) : (idx) ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) #define IOP2(op, x, y) ( (word) ((x) op (y)) ) #define IABS(i) ( ((int)(word)(i) > 0) ? (i) : (word)(-(int)(word)(i)) ) #define INEG(x) ( (word) ( - ((int) (word) (x)) ) ) static void NoName_Q1464(); static void BasicTimeImpl_P0(); static word GetClockPulses_P60(); static word PulsesToMicroseconds_P120(); static word PulsesToSeconds_P180(); static word MicrosecondsToPulses_P240(); static word Now_P300(); static void ExtendedNow_P360(); static word Period_P420(); static word Update_P480(); static word ToPupTime_P540(); static word ToNSTime_P600(); static word FromPupTime_P660(); static word FromNSTime_P720(); static void UnpackZ_P780(); static void Unpack_P840(); static word Pack_P900(); static word CheckDateGE_P960(); static void UnpackPeriod_P1020(); static word PackPeriod_P1080(); static word GetTPFromHost_P1140(); static void SetZoneAndDST_P1200(); static word NoName_Q1524(); static void GetZoneAndDST_P1260(); static word NoName_Q1584(); static void NoName_Q1644(); static void NoName_Q1704(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\151\302\114\041\300\144\267\226\255\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\273\264\166\314\300\142\321\237\137\100\150\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\212\174\364\337\300\361\376\000\156\100\150\000\000"}; static struct {unsigned f; char r[20];} string4 = {1048596, "\211\004\003\107\115\124\300\212\174\364\337\300\361\376\000\156\000\000\000"}; static struct {unsigned f; char r[4];} string5 = {65540, "\242\000\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\230\171\104\016\300\260\376\371\017\100\150\000\000"}; static struct { word f0[12]; word f12; word f13; word f14[4]; word f18; word f19; word f20; word f21; word f22; word f23; word f24; word f25; word f26; word f27; word f28; word f29; word f30; word f31; word f32; word f33; word f34; word f35; word f36; word f37; word f38; word f39; word f40; word f41; word f42; word f43; word f44; word f45; word f46; word f47; word f48; word f49; word f50; word f51; word f52; word f53; word f54; word f55; word f56; word f57; word f58; word f59; word f60; word f61[2]; 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[2]; } globalframe = { {0}, 43260, 2147483645, {0}, (word) GetZoneAndDST_P1260, 0, (word) SetZoneAndDST_P1200, 0, (word) GetTPFromHost_P1140, 0, (word) PackPeriod_P1080, 0, (word) UnpackPeriod_P1020, 0, (word) CheckDateGE_P960, 0, (word) Pack_P900, 0, (word) Unpack_P840, 0, (word) UnpackZ_P780, 0, (word) FromNSTime_P720, 0, (word) FromPupTime_P660, 0, (word) ToNSTime_P600, 0, (word) ToPupTime_P540, 0, (word) Update_P480, 0, (word) Period_P420, 0, (word) ExtendedNow_P360, 0, (word) Now_P300, 0, (word) MicrosecondsToPulses_P240, 0, (word) PulsesToSeconds_P180, 0, (word) PulsesToMicroseconds_P120, 0, (word) GetClockPulses_P60, 0, (word) BasicTimeImpl_P0, {0}, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366, {0} }; static void NoName_Q1464() { register ptr gf_c0137 = (ptr) &globalframe; word var_c10416; (void) XR_DeclareGlobalFrame((word) "BasicTimeImpl", &globalframe, (word) XR_GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf_c0137)+240) /* var_c9744 */ ); var_c10416 = (word) XR_ImportInterface((word) "HostTime", (word) XR_GetTypeIndexS((word) (&string2)), 8); (* (( (ptr) gf_c0137)+75)/* var_c9904 */ ) = var_c10416; (void) XR_ImportProcS(var_c10416, 201328384); (void) XR_ImportProcS(var_c10416, 135266305); (void) XR_ImportProcS(var_c10416, 268435968); (void) XR_ImportProcS(var_c10416, 68158209); var_c10416 = (word) XR_ExportInterface((word) "BasicTime", (word) XR_GetTypeIndexS((word) (&string3)), 24); (* (( (ptr) gf_c0137)+76)/* var_c10448 */ ) = var_c10416; (void) XR_ExportVar(var_c10416, 0, (word) (( (bPt) gf_c0137)+60)); (void) XR_ExportVar(var_c10416, 1, (word) (( (bPt) gf_c0137)+64)); (void) XR_ExportVar(var_c10416, 2, (word) (( (bPt) gf_c0137)+68)); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+232)/* var_c9712 */ , 67109632); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+224)/* var_c9680 */ , 67372033); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+216)/* var_c9648 */ , 67372289); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+208)/* var_c9616 */ , 67372545); (void) XR_ExportType((word) "GMT", (word) XR_GetTypeIndexS((word) (&string4)), (word) XR_GetTypeIndexS((word) (&string5)) ); (void) XR_ExportVar(var_c10416, 8, (word) (( (bPt) gf_c0137)+48)/* earliestGMT_v2944 */ ); (void) XR_ExportVar(var_c10416, 9, (word) (( (bPt) gf_c0137)+52)/* latestGMT_v2972 */ ); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+200)/* var_c9584 */ , 67111424); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+192)/* var_c9552 */ , 134220544); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+184)/* var_c9520 */ , 67636226); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+176)/* var_c9488 */ , 67636482); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+168)/* var_c9456 */ , 67374593); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+160)/* var_c9424 */ , 67374849); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+152)/* var_c9392 */ , 67375105); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+144)/* var_c9360 */ , 67375361); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+128)/* var_c9296 */ , 738464257); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+136)/* var_c9328 */ , 739250946); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+120)/* var_c9264 */ , 69997569); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+104)/* var_c9200 */ , 268702977); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+96)/* var_c9168 */ , 68163073); (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+72)/* var_c9072 */ , 201332480); var_c10416 = (word) XR_ExportInterface((word) "BasicTimeBackdoor", (word) XR_GetTypeIndexS((word) (&string6)), 1); (* (( (ptr) gf_c0137)+76)/* var_c10448 */ ) = var_c10416; (void) XR_ExportProcS(var_c10416, (word) (( (bPt) gf_c0137)+80)/* var_c9104 */ , 786433); } static void BasicTimeImpl_P0(formal_c036, formal_c035) word formal_c036; word formal_c035; { /* BasicTimeImpl: */ SOURCE(300, 7559) /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ /* moved to installation proc */ } static word GetClockPulses_P60() { register ptr gf_c10480 = (ptr) &globalframe; word var_c3688; /* GetClockPulses: */ SOURCE(568, 111) SOURCE(623, 56) { W4 var_c039; W4 var_c9872; { word pd7; pd7 = (* (( (ptr) (* (( (ptr) gf_c10480)+75)/* var_c9904 */ ))+6) ); (void) ( *( (fPt) ((* (ptr) pd7 ))))((word) (&var_c039), pd7); }; var_c9872 = var_c039; { word pd8; pd8 = (* (( (ptr) (* (( (ptr) gf_c10480)+75)/* var_c9904 */ ))+7) ); return((word) ( *( (fPt) ((* (ptr) pd8 ))))(var_c9872, pd8)); }; }; } static word PulsesToMicroseconds_P120(p_v3748) word p_v3748; { word var_c3792; /* PulsesToMicroseconds: */ SOURCE(683, 75) SOURCE(748, 10) return(p_v3748); } static word PulsesToSeconds_P180(p_v3852) word p_v3852; { word s_v3896; /* PulsesToSeconds: */ SOURCE(764, 80) SOURCE(827, 17) { word x10; float tf11; return(( tf11 = (float)(unsigned)p_v3852 * ( x10 = (* (ptr) &fc9 ), *(float*)&x10 ), *(word*)&tf11 )); }; } static word MicrosecondsToPulses_P240(m_v3956) word m_v3956; { word var_c4000; /* MicrosecondsToPulses: */ SOURCE(850, 75) SOURCE(915, 10) return(m_v3956); } static word Now_P300() { register ptr gf_c10512 = (ptr) &globalframe; word gmt_v4060; W4 var_c9936; W2 var_c049; /* Now: */ SOURCE(1616, 110) SOURCE(1664, 62) { word pd12; pd12 = (* (( (ptr) (* (( (ptr) gf_c10512)+75)/* var_c9904 */ ))+6) ); (void) ( *( (fPt) ((* (ptr) pd12 ))))((word) (&var_c9936), pd12); }; { word pd13; pd13 = (* (( (ptr) (* (( (ptr) gf_c10512)+75)/* var_c9904 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd13 ))))((word) &var_c049, var_c9936, pd13); }; gmt_v4060 = var_c049.f0; SOURCE(1616, 110) return(gmt_v4060); } static void ExtendedNow_P360(formal_c054) word formal_c054; { register ptr gf_c10544 = (ptr) &globalframe; W2 egmt_v4120; /* ExtendedNow: */ SOURCE(1732, 124) SOURCE(1797, 59) { W4 var_c9968; { word pd14; pd14 = (* (( (ptr) (* (( (ptr) gf_c10544)+75)/* var_c9904 */ ))+6) ); (void) ( *( (fPt) ((* (ptr) pd14 ))))((word) (&var_c9968), pd14); }; { W2 var_c053; { word pd15; pd15 = (* (( (ptr) (* (( (ptr) gf_c10544)+75)/* var_c9904 */ ))+4) ); (void) ( *( (fPt) ((* (ptr) pd15 ))))((word) &var_c053, var_c9968, pd15); }; egmt_v4120 = var_c053; }; }; /* removed tail goto */ (* (W2Pt) formal_c054 ) = egmt_v4120; return; } static word Period_P420(from_v4180, to_v4208) word from_v4180; word to_v4208; { word var_c4252; /* Period: */ SOURCE(1862, 70) SOURCE(1916, 16) return((to_v4208 - from_v4180)); } static word Update_P480(base_v4312, period_v4340) word base_v4312; word period_v4340; { register ptr gf_c10576 = (ptr) &globalframe; word var_c4384; /* Update: */ SOURCE(1938, 158) SOURCE(2001, 95) if ( ( ( (int)period_v4340 >= (int)(0 - base_v4312)) ? ( (int)period_v4340 <= (int)(2147483645 - base_v4312)) : 0 ) ) { SOURCE(2054, 26) return((base_v4312 + period_v4340)); } else { SOURCE(2080, 16) (void) XR_RaiseError((word) (( (bPt) gf_c10576)+60), 0); }; } static word ToPupTime_P540(g_v4444) word g_v4444; { word var_c4488; /* ToPupTime: */ SOURCE(2102, 88) SOURCE(2155, 35) return((SGNCK(g_v4444) + 2114294400)); } static word ToNSTime_P600(g_v4548) word g_v4548; { word var_c4592; /* ToNSTime: */ SOURCE(2196, 87) SOURCE(2248, 35) return((SGNCK(g_v4548) + 2114294400)); } static word FromPupTime_P660(p_v4652) word p_v4652; { register ptr gf_c10608 = (ptr) &globalframe; word var_c4696; /* FromPupTime: */ SOURCE(2289, 130) SOURCE(2344, 75) if ((p_v4652 >= 2114294400)) { SOURCE(2366, 37) return((p_v4652 - 2114294400)); } else { SOURCE(2403, 16) (void) XR_RaiseError((word) (( (bPt) gf_c10608)+60), 0); }; } static word FromNSTime_P720(p_v4756) word p_v4756; { register ptr gf_c10640 = (ptr) &globalframe; word var_c4800; /* FromNSTime: */ SOURCE(2425, 129) SOURCE(2479, 75) if ((p_v4756 >= 2114294400)) { SOURCE(2501, 37) return((p_v4756 - 2114294400)); } else { SOURCE(2538, 16) (void) XR_RaiseError((word) (( (bPt) gf_c10640)+60), 0); }; } static void UnpackZ_P780(formal_c085, time_v4876, tp_v4904) word formal_c085; word time_v4876; W3 tp_v4904; { register ptr gf_c10672 = (ptr) &globalframe; W11 unpacked_v4948; word secs_v5732; word mins_v5760; word hrs_v5788; /* UnpackZ: */ SOURCE(2736, 1852) SOURCE(2736, 1852) (* (ptr) &unpacked_v4948 ) = 0; (* (( (ptr) &unpacked_v4948)+1) ) = 12; (* (( (ptr) &unpacked_v4948)+2) ) = 0; (* (( (ptr) &unpacked_v4948)+3) ) = 24; (* (( (ptr) &unpacked_v4948)+4) ) = 60; (* (( (ptr) &unpacked_v4948)+5) ) = 60; (* (( (ptr) &unpacked_v4948)+6) ) = 1441; (* (( (ptr) &unpacked_v4948)+7) ) = 2; (* (( (ptr) &unpacked_v4948)+8) ) = 7; (* (( (ptr) &unpacked_v4948)+9) ) = 2147483647; (* (( (ptr) &unpacked_v4948)+10) ) = 366; SOURCE(2843, 65) if (( (int)time_v4876 < (int)(* (( (ptr) gf_c10672)+12)/* earliestGMT_v2944 */ )) || ( (int)time_v4876 > (int)(* (( (ptr) gf_c10672)+13) /* latestGMT_v2972 */ ))) { SOURCE(2890, 18) (void) XR_RaiseError((word) (( (bPt) gf_c10672)+60), 0); }; SOURCE(2910, 23) secs_v5732 = SGNCK(time_v4876); SOURCE(2935, 69) mins_v5760 = ((secs_v5732 / 60) - ( ( (int)tp_v4904.f0 == (int)1441) ? 0 : (tp_v4904.f0 - 720) ) ); SOURCE(3006, 15) hrs_v5788 = (mins_v5760 / 60); SOURCE(3023, 29) (* (( (ptr) &unpacked_v4948)+5) ) = (secs_v5732 % 60); SOURCE(3054, 29) (* (( (ptr) &unpacked_v4948)+4) ) = (mins_v5760 % 60); SOURCE(3085, 66) { word idx16; (* (( (ptr) &unpacked_v4948)+6) ) = ( idx16 = (word) ( ( ( (int)tp_v4904.f0 == (int)1441) ? 0 : (tp_v4904.f0 - 720) ) + 720), BCK(idx16, 1442) ); }; SOURCE(3153, 17) (* (( (ptr) &unpacked_v4948)+7) ) = 1; SOURCE(3172, 1416) lab_L100004: ; SOURCE(3172, 1416) { word daysSinceBase_v5832; word fourYears_v5888; word daysBeyondFourYears_v5916; word pseudoDaysBeyond_v5944; word oddYears_v5972; word dayOfYear_v6000; SOURCE(3208, 34) daysSinceBase_v5832 = (hrs_v5788 / 24); SOURCE(3289, 53) fourYears_v5888 = (daysSinceBase_v5832 / 1461); SOURCE(3344, 65) daysBeyondFourYears_v5916 = (daysSinceBase_v5832 % 1461); SOURCE(3411, 138) pseudoDaysBeyond_v5944 = (daysBeyondFourYears_v5916 + (((MAX( (unsigned) , 60, daysBeyondFourYears_v5916)) - 60) / 365)); SOURCE(3551, 41) { word idx17; oddYears_v5972 = ( idx17 = (word) (pseudoDaysBeyond_v5944 / 366), BCK(idx17, 4) ); }; SOURCE(3594, 50) dayOfYear_v6000 = ((pseudoDaysBeyond_v5944 % 366) + 1); SOURCE(3676, 52) { word idx18; (* (ptr) &unpacked_v4948 ) = ( idx18 = (word) (((fourYears_v5888 << 2) + oddYears_v5972) + 1968), BCK(idx18, 2051) ); }; SOURCE(3730, 31) (* (( (ptr) &unpacked_v4948)+8) ) = 0; SOURCE(3763, 153) { register word noName_c10000 = 0; register word noName_c10032; noName_c10032 = (daysSinceBase_v5832 % 7); if ((noName_c10000 >= noName_c10032)) { goto lab_L100005; }; lab_L100008: ; SOURCE(3799, 41) { word idx19; (* (( (ptr) &unpacked_v4948)+8) ) = ( idx19 = (word) ((* (( (ptr) &unpacked_v4948)+8) ) + 1), BCK(idx19, 8) ); }; SOURCE(3842, 74) if (((* (( (ptr) &unpacked_v4948)+8) ) == 7)) { SOURCE(3881, 35) (* (( (ptr) &unpacked_v4948)+8) ) = 0; }; noName_c10000 = (noName_c10000 + 1); if ((noName_c10000 < noName_c10032)) { goto lab_L100008; }; lab_L100005: ; }; SOURCE(3927, 128) { register word month_v6064 = 0; lab_L100012: ; SOURCE(3987, 68) if ((dayOfYear_v6000 <= (* ((( (ptr) gf_c10672)+62)/* var_c9808 */ +BCK((month_v6064 + 1), 13)) ))) { SOURCE(4033, 22) (* (( (ptr) &unpacked_v4948)+1) ) = month_v6064; SOURCE(4057, 4) goto lab_L100010; }; if ((month_v6064 >= 11)) { goto lab_L100009; }; month_v6064 = (month_v6064 + 1); goto lab_L100012; lab_L100009: ; SOURCE(4083, 13) (void) XR_RaiseUnnamedError(); lab_L100010: ; }; SOURCE(4098, 51) { word idx20; (* (( (ptr) &unpacked_v4948)+2) ) = ( idx20 = (word) (dayOfYear_v6000 - (* ((( (ptr) gf_c10672)+62)/* var_c9808 */ +(* (( (ptr) &unpacked_v4948)+1) )) )), BCK(idx20, 32) ); }; SOURCE(4151, 26) (* (( (ptr) &unpacked_v4948)+3) ) = (hrs_v5788 % 24); SOURCE(4179, 229) { word yearStart_v6108; SOURCE(4181, 104) yearStart_v6108 = ((fourYears_v5888 * 1461) + ( (oddYears_v5972 == 0) ? 0 : (IOP2( * , (int)(oddYears_v5972 - 1), (int)365) + 366) ) ); SOURCE(4287, 49) (* (( (ptr) &unpacked_v4948)+10) ) = BCK((daysSinceBase_v5832 - yearStart_v6108), 367); SOURCE(4338, 68) (* (( (ptr) &unpacked_v4948)+9) ) = (secs_v5732 - (((yearStart_v6108 * 24) * 60) * 60)); }; SOURCE(4411, 140) if (((((* (( (ptr) &unpacked_v4948)+7) ) == 0) || ( (int)tp_v4904.f0 == (int)1441)) || (0 == (word) CheckDateGE_P960(unpacked_v4948, tp_v4904.f1, 2) )) || (0 != (word) CheckDateGE_P960(unpacked_v4948, tp_v4904.f2, 1))) { SOURCE(4551, 4) goto lab_L100003; }; SOURCE(4557, 11) hrs_v5788 = (hrs_v5788 + 1); SOURCE(4570, 18) (* (( (ptr) &unpacked_v4948)+7) ) = 0; }; goto lab_L100004; lab_L100003: ; /* removed tail goto */ (* (W11Pt) formal_c085 ) = unpacked_v4948; return; } static void Unpack_P840(formal_c092, time_v5008) word formal_c092; word time_v5008; { W11 var_c5052; /* Unpack: */ SOURCE(4603, 94) SOURCE(4658, 39) { W11 var_c10128; { W3 var_c10096; (void) GetZoneAndDST_P1260((word) (&var_c10096)); { W11 var_c091; (void) UnpackZ_P780((word) &var_c091, time_v5008, var_c10096); var_c10128 = var_c091; }; }; var_c5052 = var_c10128; /* removed tail goto */ }; (* (W11Pt) formal_c092 ) = var_c5052; return; } static word Pack_P900(unpacked_v5112) W11 unpacked_v5112; { register ptr gf_c10704 = (ptr) &globalframe; word time_v5156; W3 tp_v6152; word yearsSinceBase_v6208; word oddYears_v6236; word day_v6264; word daysSinceBase_v6292; word zone_v6320; /* Pack: */ SOURCE(4703, 1445) SOURCE(4768, 32) (void) GetZoneAndDST_P1260((word) (&tp_v6152)); SOURCE(4847, 112) yearsSinceBase_v6208 = ( ((* (ptr) &unpacked_v5112 ) < 1968) ? ( XR_RaiseError((word) (( (bPt) gf_c10704)+60), 0), 0 ) : ((* (ptr) &unpacked_v5112 ) - 1968) ) ; SOURCE(4961, 39) oddYears_v6236 = (yearsSinceBase_v6208 & 3); SOURCE(5002, 263) day_v6264 = ((((* ((( (ptr) gf_c10704)+62)/* var_c9808 */ +(* (( (ptr) &unpacked_v5112)+1) )) ) + (* (( (ptr) &unpacked_v5112)+2) )) - 1) - ( ( (oddYears_v6236 != 0) ? ((* (( (ptr) &unpacked_v5112)+1) ) > 1) : 0 ) ? 1 : 0 ) ); SOURCE(5267, 132) daysSinceBase_v6292 = (((((yearsSinceBase_v6208 >> 2) * 1461) + (oddYears_v6236 * 365)) + day_v6264) + ( (oddYears_v6236 != 0) ? 1 : 0 ) ); SOURCE(5401, 160) { word idx21; zone_v6320 = ( idx21 = (word) ( ( ( (int)(* (( (ptr) &unpacked_v5112)+6) ) != (int)1441) ? ((* (( (ptr) &unpacked_v5112)+6) ) - 720) : ( ( (int)tp_v6152.f0 != (int)1441) ? (tp_v6152.f0 - 720) : ( XR_RaiseError((word) (( (bPt) gf_c10704)+68), 0), 0 ) ) ) + 780), BCK(idx21, 1502) ); }; SOURCE(5563, 432) { word var_c10160; var_c10160 = (* (( (ptr) &unpacked_v5112)+7) ); switch (var_c10160) { case 2: SOURCE(5605, 31) (* (( (ptr) &unpacked_v5112)+8) ) = 0; SOURCE(5638, 153) { register word noName_c10192 = 0; register word noName_c10224; noName_c10224 = (daysSinceBase_v6292 % 7); if ((noName_c10192 >= noName_c10224)) { goto lab_L100014; }; lab_L100017: ; SOURCE(5674, 41) { word idx22; (* (( (ptr) &unpacked_v5112)+8) ) = ( idx22 = (word) ((* (( (ptr) &unpacked_v5112)+8) ) + 1), BCK(idx22, 8) ); }; SOURCE(5717, 74) if (((* (( (ptr) &unpacked_v5112)+8) ) == 7)) { SOURCE(5756, 35) (* (( (ptr) &unpacked_v5112)+8) ) = 0; }; noName_c10192 = (noName_c10192 + 1); if ((noName_c10192 < noName_c10224)) { goto lab_L100017; }; lab_L100014: ; }; SOURCE(5802, 64) if (( (int)tp_v6152.f0 == (int)1441)) { SOURCE(5836, 30) (void) XR_RaiseError((word) (( (bPt) gf_c10704)+68), 0); }; SOURCE(5868, 99) if ( ( (0 != (word) CheckDateGE_P960(unpacked_v5112, tp_v6152.f1, 2)) ? (0 == (word) CheckDateGE_P960(unpacked_v5112, tp_v6152.f2, 2) ) : 0 ) ) { SOURCE(5951, 16) zone_v6320 = BCK((zone_v6320 - 60), 1502); }; break; case 0: SOURCE(5979, 16) zone_v6320 = BCK((zone_v6320 - 60), 1502); break; case 1: break; default: SOURCE(6020, 5) (void) XR_RaiseUnnamedError(); break; }; }; SOURCE(6027, 121) return((IOP2( * , (int)(((((daysSinceBase_v6292 * 24) + (* (( (ptr) &unpacked_v5112)+3) )) * 60) + (* (( (ptr) &unpacked_v5112)+4) )) + (zone_v6320 - 780)), (int)60) + (* (( (ptr) &unpacked_v5112)+5) ))); } static word CheckDateGE_P960(unpacked_v5216, dstDay_v5244, dstHour_v5272) W11 unpacked_v5216; word dstDay_v5244; word dstHour_v5272; { register ptr gf_c10736 = (ptr) &globalframe; word var_c5316; word day_v6404; /* CheckDateGE: */ SOURCE(6152, 566) SOURCE(6237, 57) day_v6404 = ((* ((( (ptr) gf_c10736)+62)/* var_c9808 */ +(* (( (ptr) &unpacked_v5216)+1) )) ) + (* (( (ptr) &unpacked_v5216)+2) )); if ((day_v6404 < (dstDay_v5244 - 6))) { SOURCE(6331, 14) return(0); } else { if ((day_v6404 > dstDay_v5244)) { SOURCE(6394, 13) return(1); } else { if (((* (( (ptr) &unpacked_v5216)+8) ) == 6)) { SOURCE(6468, 33) return(((* (( (ptr) &unpacked_v5216)+3) ) >= dstHour_v5272)); } else { SOURCE(6535, 68) { register word noName_c10256 = 0; register word noName_c10288; noName_c10288 = (* (( (ptr) &unpacked_v5216)+8) ); if ((noName_c10256 >= noName_c10288)) { goto lab_L100018; }; lab_L100021: ; SOURCE(6592, 11) day_v6404 = (day_v6404 - 1); noName_c10256 = (noName_c10256 + 1); if ((noName_c10256 < noName_c10288)) { goto lab_L100021; }; lab_L100018: ; }; SOURCE(6658, 60) return((day_v6404 > (dstDay_v5244 - 6))); }; }; }; } static void UnpackPeriod_P1020(formal_c0117, period_v5376) word formal_c0117; word period_v5376; { word var_c0164; word var_c0165; word var_c0166; word var_c0167; word seconds_v6448; word minutes_v6476; word hours_v6504; /* UnpackPeriod: */ SOURCE(6781, 305) /* Return var split */ SOURCE(6850, 27) seconds_v6448 = IABS(period_v5376); SOURCE(6879, 40) minutes_v6476 = (seconds_v6448 / 60); SOURCE(6921, 36) hours_v6504 = (minutes_v6476 / 60); SOURCE(6959, 127) var_c0164 = SGNCK(hours_v6504); { word idx23; var_c0165 = ( idx23 = (word) (minutes_v6476 - (hours_v6504 * 60)), BCK(idx23, 60) ); }; { word idx24; var_c0166 = ( idx24 = (word) (seconds_v6448 - (minutes_v6476 * 60)), BCK(idx24, 60) ); }; var_c0167 = ( (int)period_v5376 < (int)0); /* removed tail goto */ (* (( (ptr) formal_c0117)+3) ) = var_c0167; (* (( (ptr) formal_c0117)+2) ) = var_c0166; (* (( (ptr) formal_c0117)+1) ) = var_c0165; (* (ptr) formal_c0117 ) = var_c0164; return; } static word PackPeriod_P1080(period_v5480) W4 period_v5480; { register ptr gf_c10768 = (ptr) &globalframe; word seconds_v5524; word part_v6548; /* PackPeriod: */ SOURCE(7091, 346) SOURCE(7167, 59) part_v6548 = (period_v5480.f2 + (period_v5480.f1 * 60)); SOURCE(7228, 39) if (( (int)period_v5480.f0 < (int)0)) { SOURCE(7251, 16) (void) XR_RaiseError((word) (( (bPt) gf_c10768)+60), 0); }; SOURCE(7269, 80) { word idx25; if ((( idx25 = (word) period_v5480.f0, SGNCK(idx25) ) > IOP2( / , (int)(2147483647 - part_v6548), (int)3600))) { SOURCE(7333, 16) (void) XR_RaiseError((word) (( (bPt) gf_c10768)+60), 0); }; }; SOURCE(7351, 42) seconds_v5524 = (part_v6548 + IOP2( * , (int)period_v5480.f0, (int)3600)); SOURCE(7395, 42) if ((0 != period_v5480.f3)) { SOURCE(7419, 18) seconds_v5524 = INEG(seconds_v5524); }; SOURCE(7091, 346) return(seconds_v5524); } static word GetTPFromHost_P1140() { register ptr gf_c10800 = (ptr) &globalframe; word ok_v5584; /* GetTPFromHost: */ SOURCE(7443, 114) SOURCE(7443, 114) ok_v5584 = 1; SOURCE(7502, 34) { word pd26; pd26 = (* (( (ptr) (* (( (ptr) gf_c10800)+75)/* var_c9904 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd26 ))))((word) ((( (bPt) gf_c10800)+32)/* knownTP_v2524 */ ), pd26); }; SOURCE(7538, 19) (* (( (ptr) gf_c10800)+11)/* knownTPValid_v2552 */ ) = 1; SOURCE(7443, 114) return(ok_v5584); } static void SetZoneAndDST_P1200(formal_c0163) W3 formal_c0163; { W7 var_c10832; /* declaration of tp_v5644 skipped */ register ptr gf_c10864 = (ptr) &globalframe; (* (W3Pt) (( (ptr) &var_c10832)+4)/* tp_v5644 */ ) = formal_c0163; /* SetZoneAndDST: */ SOURCE(7563, 110) (void) (XR_MonitorEntry((word) (( (bPt) gf_c10864)+16)/* LOCK_v2496 */ )); SOURCE(7617, 56) { word var_c0157; var_c0157 = (word) &var_c10832; (void) (word) XR_Enable(( ((word) (fPt) NoName_Q1524) ), ( ((word) (fPt) NoName_Q1704) ), var_c0157); }; SOURCE(7563, 110) (void) (XR_MonitorExit((word) (( (bPt) gf_c10864)+16)/* LOCK_v2496 */ )); return; } static word NoName_Q1524(formal_c0151) word formal_c0151; { register ptr gf_c0150 = (ptr) &globalframe; SOURCE(7640, 12) (* (W3Pt) (( (ptr) gf_c0150)+8)/* knownTP_v2524 */ ) = (* (W3Pt) (( (ptr) formal_c0151)+4) ); SOURCE(7654, 19) (* (( (ptr) gf_c0150)+11)/* knownTPValid_v2552 */ ) = 1; return(0); } static void GetZoneAndDST_P1260(formal_c0125) word formal_c0125; { W7 var_c10896; register ptr gf_c10928 = (ptr) &globalframe; /* declaration of tp_v5704 skipped */ /* GetZoneAndDST: */ SOURCE(7679, 180) (void) (XR_MonitorEntry((word) (( (bPt) gf_c10928)+16)/* LOCK_v2496 */ )); SOURCE(7741, 118) { word var_c01; { word var_c0158; var_c0158 = (word) &var_c10896; var_c01 = (word) XR_Enable(( ((word) (fPt) NoName_Q1584) ), ( ((word) (fPt) NoName_Q1644) ), var_c0158); }; /* removed trivial cond node */ }; (void) (XR_MonitorExit((word) (( (bPt) gf_c10928)+16)/* LOCK_v2496 */ )); (* (W3Pt) formal_c0125 ) = (* (W3Pt) (( (ptr) &var_c10896)+4)/* tp_v5704 */ ); return; } static word NoName_Q1584(formal_c0154) word formal_c0154; { register ptr gf_c0153 = (ptr) &globalframe; SOURCE(7764, 59) if ((0 != (* (( (ptr) gf_c0153)+11)/* knownTPValid_v2552 */ )) || (0 != (word) GetTPFromHost_P1140())) { SOURCE(7807, 16) (* (W3Pt) (( (ptr) formal_c0154)+4) ) = (* (W3Pt) (( (ptr) gf_c0153)+8)/* knownTP_v2524 */ ); return(2); }; SOURCE(7825, 34) (* (( (ptr) formal_c0154)+4) ) = 1441; (* (( (ptr) formal_c0154)+5) ) = 366; (* (( (ptr) formal_c0154)+6) ) = 366; return(2); /* c2c skipped dead code */ } static void NoName_Q1644(formal_c0131, formal_c200004, formal_c200005, formal_c200006, formal_c200007) word formal_c0131; word formal_c200004; word formal_c200005; word formal_c200006; word formal_c200007; { register ptr gf_c0155 = (ptr) &globalframe; if ((formal_c200005 == XR_Unwind)) { (void) (XR_MonitorExit((word) (( (bPt) gf_c0155)+16)/* LOCK_v2496 */ )); }; (* (ptr) formal_c0131 ) = 0; (* (( (ptr) formal_c0131)+1) ) = 0; return; } static void NoName_Q1704(formal_c0136, formal_c200000, formal_c200001, formal_c200002, formal_c200003) word formal_c0136; word formal_c200000; word formal_c200001; word formal_c200002; word formal_c200003; { register ptr gf_c0156 = (ptr) &globalframe; if ((formal_c200001 == XR_Unwind)) { (void) (XR_MonitorExit((word) (( (bPt) gf_c0156)+16)/* LOCK_v2496 */ )); }; (* (ptr) formal_c0136 ) = 0; (* (( (ptr) formal_c0136)+1) ) = 0; return; } /* file: BasicTimeImpl, module: BasicTimeImpl, compiled at: February 21, 1992 9:45:18 pm PST */ extern void XR_install_BasicTimeImpl() { NoName_Q1464(); } extern void XR_run_BasicTimeImpl() { XR_Start(&globalframe); }