/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: October 12, 1992 2:03:26 pm PDT */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: MesaBasicsImpl, module: MesaBasicsImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [2078331943,128915792] MesaBasicsImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; #define SOURCE(p, l) /* source p, l */ #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) static void NoName←Q840(); static void MesaBasicsImpl←P0(); extern void XR←MoveWords(); extern void XR←MoveWordsDisjoint(); extern word XR←EqualWords(); extern void XR←MoveBytes(); extern void XR←MoveBytesDisjoint(); extern word XR←ExtractField(); extern void XR←DepositField(); extern void XR←MoveField(); extern word XR←EqualFields(); extern void XR←FillFields(); extern void XR←FillLongFields(); extern void XR←FillWords(); extern void XR←FillLongWords(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300\173\340\324\047\300\007\257\031\120\100\164\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\341\052\141\002\300\145\275\236\330\100\150\000\000"}; static struct { word f0[4]; word f4; word f5; word f6; word f7; word f8; word f9; word f10; word f11; word f12; word f13; word f14; 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[2]; } globalframe = { {0}, (word) XR←FillLongWords, 0, (word) XR←FillWords, 0, (word) XR←FillLongFields, 0, (word) XR←FillFields, 0, (word) XR←EqualFields, 0, (word) XR←MoveField, 0, (word) XR←DepositField, 0, (word) XR←ExtractField, 0, (word) XR←MoveBytesDisjoint, 0, (word) XR←MoveBytes, 0, (word) XR←EqualWords, 0, (word) XR←MoveWordsDisjoint, 0, (word) XR←MoveWords, 0, (word) MesaBasicsImpl←P0, {0} }; static void NoName←Q840() { register ptr gf←c082 = (ptr) &globalframe; word var←c7996; (void) XR←DeclareGlobalFrame((word) "MesaBasicsImpl", &globalframe, (word) XR←GetTypeIndexS((word) (&string1)), (word) (( (bPt) gf←c082)+120) /* var←c7900 */ ); var←c7996 = (word) XR←ExportInterface((word) "MesaBasics", (word) XR←GetTypeIndexS((word) (&string2)), 13); (* (( (ptr) gf←c082)+32)/* var←c7964 */ ) = var←c7996; (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+112)/* var←c7868 */ , 786435); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+104)/* var←c7836 */ , 786691); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+96)/* var←c7804 */ , 67895811); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+88)/* var←c7772 */ , 787203); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+80)/* var←c7740 */ , 787459); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+72)/* var←c7708 */ , 67896579); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+64)/* var←c7676 */ , 1050116); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+56)/* var←c7644 */ , 1312517); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+48)/* var←c7612 */ , 68421637); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+40)/* var←c7580 */ , 1313029); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+32)/* var←c7548 */ , 1575430); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+24)/* var←c7516 */ , 789251); (void) XR←ExportProcS(var←c7996, (word) (( (bPt) gf←c082)+16)/* var←c7484 */ , 1051652); } static void MesaBasicsImpl←P0(formal←c018, formal←c017) word formal←c018; word formal←c017; { /* MesaBasicsImpl: */ } extern void XR←MoveWords(dst←v3040, src←v3068, len←v3096) word dst←v3040; word src←v3068; word len←v3096; { /* MoveWords: */ SOURCE(768, 130) SOURCE(830, 68) (void) Basics←MoveWords(dst←v3040, src←v3068, len←v3096); } extern void XR←MoveWordsDisjoint(dst←v3156, src←v3184, len←v3212) word dst←v3156; word src←v3184; word len←v3212; { /* MoveWordsDisjoint: */ SOURCE(903, 277) SOURCE(974, 206) if ((((dst←v3156 & 3) + (src←v3184 & 3)) == 0)) { SOURCE(1042, 68) (void) Basics←CopyWords(dst←v3156, src←v3184, len←v3212); } else { SOURCE(1121, 59) (void) XR←MoveBytes(dst←v3156, src←v3184, (len←v3212 << 2)); }; } extern word XR←EqualWords(src1←v3272, src2←v3300, len←v3328) word src1←v3272; word src2←v3300; word len←v3328; { word var←c3372; word c←v4956; /* EqualWords: */ SOURCE(1187, 239) SOURCE(1266, 136) c←v4956 = (word) Basics←CompareBits(src1←v3272, 0, src2←v3300, 0, (len←v3328 << 5)); SOURCE(1404, 22) return((c←v4956 == 1)); } extern void XR←MoveBytes(dest←v3432, src←v3460, len←v3488) word dest←v3432; word src←v3460; word len←v3488; { word dstStart←v5028; word srcStart←v5056; word destWP←v5084; word srcWP←v5112; /* MoveBytes: */ SOURCE(1430, 415) SOURCE(1522, 53) dstStart←v5028 = (dest←v3432 & 3); SOURCE(1577, 52) srcStart←v5056 = (src←v3460 & 3); SOURCE(1631, 44) destWP←v5084 = (dest←v3432 - dstStart←v5028); SOURCE(1677, 42) srcWP←v5112 = (src←v3460 - srcStart←v5056); SOURCE(1721, 124) (void) Basics←MoveBytes(destWP←v5084, dstStart←v5028, srcWP←v5112, srcStart←v5056, len←v3488); } extern void XR←MoveBytesDisjoint(dest←v3548, src←v3576, len←v3604) word dest←v3548; word src←v3576; word len←v3604; { word dstStart←v5204; word srcStart←v5232; word destWP←v5260; word srcWP←v5288; /* MoveBytesDisjoint: */ SOURCE(1849, 422) SOURCE(1949, 53) dstStart←v5204 = (dest←v3548 & 3); SOURCE(2004, 52) srcStart←v5232 = (src←v3576 & 3); SOURCE(2058, 44) destWP←v5260 = (dest←v3548 - dstStart←v5204); SOURCE(2104, 42) srcWP←v5288 = (src←v3576 - srcStart←v5232); SOURCE(2148, 123) (void) Basics←CopyBytes(destWP←v5260, dstStart←v5204, srcWP←v5288, srcStart←v5232, len←v3604); } extern word XR←ExtractField(base←v3664, offset←v3692, bits←v3720) word base←v3664; word offset←v3692; word bits←v3720; { word var←c3764; word w←v5352 = 0; /* ExtractField: */ SOURCE(2277, 318) SOURCE(2376, 74) lab←L100002: ; if (( (int)offset←v3692 < (int)0)) { } else { goto lab←L100000; }; SOURCE(2396, 28) offset←v3692 = (offset←v3692 + 32); SOURCE(2426, 24) base←v3664 = (base←v3664 - 4); goto lab←L100002; lab←L100000: ; SOURCE(2461, 123) (void) Basics←CopyBits((word) &w←v5352, (32 - bits←v3720), base←v3664, SGNCK(offset←v3692), bits←v3720); SOURCE(2586, 9) return(w←v5352); } extern void XR←DepositField(base←v3824, offset←v3852, bits←v3880, w←v3908) word base←v3824; word offset←v3852; word bits←v3880; word w←v3908; { /* DepositField: */ SOURCE(2601, 287) SOURCE(2680, 74) lab←L100005: ; if (( (int)offset←v3852 < (int)0)) { } else { goto lab←L100003; }; SOURCE(2700, 28) offset←v3852 = (offset←v3852 + 32); SOURCE(2730, 24) base←v3824 = (base←v3824 - 4); goto lab←L100005; lab←L100003: ; SOURCE(2765, 123) (void) Basics←CopyBits(base←v3824, SGNCK(offset←v3852), (word) &w←v3908, (32 - bits←v3880), bits←v3880); } extern void XR←MoveField(dst←v3968, dstOffset←v3996, src←v4024, srcOffset←v4052, bits←v4080) word dst←v3968; word dstOffset←v3996; word src←v4024; word srcOffset←v4052; word bits←v4080; { /* MoveField: */ SOURCE(2894, 404) SOURCE(2994, 81) lab←L100008: ; if (( (int)dstOffset←v3996 < (int)0)) { } else { goto lab←L100006; }; SOURCE(3017, 34) dstOffset←v3996 = (dstOffset←v3996 + 32); SOURCE(3053, 22) dst←v3968 = (dst←v3968 - 4); goto lab←L100008; lab←L100006: ; SOURCE(3086, 81) lab←L100011: ; if (( (int)srcOffset←v4052 < (int)0)) { } else { goto lab←L100009; }; SOURCE(3109, 34) srcOffset←v4052 = (srcOffset←v4052 + 32); SOURCE(3145, 22) src←v4024 = (src←v4024 - 4); goto lab←L100011; lab←L100009: ; SOURCE(3178, 120) (void) Basics←CopyBits(dst←v3968, SGNCK(dstOffset←v3996), src←v4024, SGNCK(srcOffset←v4052), bits←v4080); } extern word XR←EqualFields(x←v4140, xOffset←v4168, y←v4196, yOffset←v4224, bits←v4252) word x←v4140; word xOffset←v4168; word y←v4196; word yOffset←v4224; word bits←v4252; { word var←c4296; /* EqualFields: */ SOURCE(3304, 360) SOURCE(3411, 71) lab←L100014: ; if (( (int)xOffset←v4168 < (int)0)) { } else { goto lab←L100012; }; SOURCE(3432, 30) xOffset←v4168 = (xOffset←v4168 + 32); SOURCE(3464, 18) x←v4140 = (x←v4140 - 4); goto lab←L100014; lab←L100012: ; SOURCE(3493, 71) lab←L100017: ; if (( (int)yOffset←v4224 < (int)0)) { } else { goto lab←L100015; }; SOURCE(3514, 30) yOffset←v4224 = (yOffset←v4224 + 32); SOURCE(3546, 18) y←v4196 = (y←v4196 - 4); goto lab←L100017; lab←L100015: ; SOURCE(3575, 89) return(((word) Basics←CompareBits(x←v4140, SGNCK(xOffset←v4168), y←v4196, SGNCK(yOffset←v4224), bits←v4252) == 1)); } extern void XR←FillFields(dst←v4356, dstOffset←v4384, bits←v4412, times←v4440, value←v4468) word dst←v4356; word dstOffset←v4384; word bits←v4412; word times←v4440; word value←v4468; { /* FillFields: */ SOURCE(3668, 178) SOURCE(3765, 81) (void) XR←FillLongFields(dst←v4356, dstOffset←v4384, (word) &value←v4468, (32 - bits←v4412), bits←v4412, times←v4440); } extern void XR←FillLongFields(dst←v4528, dstOffset←v4556, src←v4584, srcOffset←v4612, bits←v4640, times←v4668) word dst←v4528; word dstOffset←v4556; word src←v4584; word srcOffset←v4612; word bits←v4640; word times←v4668; { /* FillLongFields: */ SOURCE(3852, 490) SOURCE(3970, 81) lab←L100020: ; if (( (int)dstOffset←v4556 < (int)0)) { } else { goto lab←L100018; }; SOURCE(3993, 34) dstOffset←v4556 = (dstOffset←v4556 + 32); SOURCE(4029, 22) dst←v4528 = (dst←v4528 - 4); goto lab←L100020; lab←L100018: ; SOURCE(4062, 81) lab←L100023: ; if (( (int)srcOffset←v4612 < (int)0)) { } else { goto lab←L100021; }; SOURCE(4085, 34) srcOffset←v4612 = (srcOffset←v4612 + 32); SOURCE(4121, 22) src←v4584 = (src←v4584 - 4); goto lab←L100023; lab←L100021: ; SOURCE(4154, 188) lab←L100026: ; if ((times←v4668 > 0)) { } else { goto lab←L100024; }; SOURCE(4173, 120) (void) Basics←CopyBits(dst←v4528, SGNCK(dstOffset←v4556), src←v4584, SGNCK(srcOffset←v4612), bits←v4640); SOURCE(4295, 28) dstOffset←v4556 = (dstOffset←v4556 + bits←v4640); SOURCE(4325, 17) times←v4668 = (times←v4668 - 1); goto lab←L100026; lab←L100024: ; } extern void XR←FillWords(dst←v4728, times←v4756, value←v4784) word dst←v4728; word times←v4756; word value←v4784; { /* FillWords: */ SOURCE(4357, 287) SOURCE(4424, 220) if (((dst←v4728 & 3) != 0)) { SOURCE(4464, 96) lab←L100029: ; if ((times←v4756 > 0)) { } else { goto lab←L100027; }; SOURCE(4484, 40) (void) XR←MoveWords(dst←v4728, (word) &value←v4784, 1); SOURCE(4526, 15) dst←v4728 = (dst←v4728 + 4); SOURCE(4543, 17) times←v4756 = (times←v4756 - 1); goto lab←L100029; lab←L100027: ; } else { SOURCE(4580, 64) (void) Basics←FillWords(dst←v4728, times←v4756, value←v4784); }; } extern void XR←FillLongWords(dst←v4844, src←v4872, nWords←v4900, times←v4928) word dst←v4844; word src←v4872; word nWords←v4900; word times←v4928; { /* FillLongWords: */ SOURCE(4653, 222) SOURCE(4724, 151) if ((nWords←v4900 == 1)) { SOURCE(4745, 35) (void) XR←FillWords(dst←v4844, times←v4928, (* (ptr) src←v4872 )); } else { SOURCE(4780, 95) lab←L100032: ; if ((times←v4928 > 0)) { } else { goto lab←L100030; }; SOURCE(4800, 32) (void) XR←MoveWords(dst←v4844, src←v4872, nWords←v4900); SOURCE(4834, 22) dst←v4844 = (dst←v4844 + (nWords←v4900 << 2)); SOURCE(4858, 17) times←v4928 = (times←v4928 - 1); goto lab←L100032; lab←L100030: ; }; } /* file: MesaBasicsImpl, module: MesaBasicsImpl, compiled at: October 12, 1992 2:03:24 pm PDT */ extern void XR←install←MesaBasicsImpl() { NoName←Q840(); } extern void XR←run←MesaBasicsImpl() { XR←Start(&globalframe); }