/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1992 by Xerox Corporation. All rights reserved. */ /* time: February 21, 1992 11:34:07 pm PST */ /* C2C version: October 16, 1990 (native) */ /* ref-counting: off */ /* file: MaskWithColorImpl, module: MaskWithColorImpl */ /* switches: cfhklouw */ #include #include #define XRM_BITLSHIFT(x, y) ((word)(x) << (word)(y)) #define XRM_BITRSHIFT(x, y) ((word)(x) >> (word)(y)) #define XRM_BITAND(x, y) (((word)(x)) & ((word)(y))) #define XRM_BITNOT(x) (~((word)(x))) #define XRM_BITOR(x, y) (((word)(x)) | ((word)(y))) static char versionStamp[] = "@(#)mob_version [1412365357,1244556932] MaskWithColorImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; #define SOURCE(p, l) /* source p, l */ static void NoName_Q1908(); static void MaskWithColorImpl_P0(); static word MakeColorWord_P60(); static void StoreWithColorMask_P120(); static void StoreWithColorRuns_P180(); static void StoreWithLongColorRuns_P240(); static word MaskToRun_P300(); static word MaskToLongRun_P360(); static struct {unsigned f; char r[16];} string1 = {851984, "\257\300T.\374-\300J.n\204@t\000\000"}; static struct {unsigned f; char r[16];} string2 = {851984, "\257\300\176\213\032\371\300\351\075\041\137\100\150\000\000"}; static struct { word f0[5]; 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[2]; } globalframe = { {0}, (word) MaskToLongRun_P360, 0, (word) MaskToRun_P300, 0, (word) StoreWithLongColorRuns_P240, 0, (word) StoreWithColorRuns_P180, 0, (word) StoreWithColorMask_P120, 0, (word) MakeColorWord_P60, 0, (word) MaskWithColorImpl_P0, {0} }; static void NoName_Q1908() { register ptr gf_c0157 = (ptr) &globalframe; word var_c10496; (void) XR_DeclareGlobalFrame((word) "MaskWithColorImpl", &globalframe, (word) XR_GetTypeIndexS((word) (&string1)), (word) ( ( (bPt) gf_c0157)+68)/* var_c9440 */ ); var_c10496 = (word) XR_ExportInterface((word) "MaskWithColor", (word) XR_GetTypeIndexS((word) (&string2)), 7); (* (( (ptr) gf_c0157)+19)/* var_c10464 */ ) = var_c10496; (void) XR_ExportProcS(var_c10496, (word) (( (bPt) gf_c0157)+60)/* var_c9408 */ , 67633154); (void) XR_ExportProcS(var_c10496, (word) (( (bPt) gf_c0157)+52)/* var_c9376 */ , 2621706); (void) XR_ExportProcS(var_c10496, (word) (( (bPt) gf_c0157)+44)/* var_c9344 */ , 1573382); (void) XR_ExportProcS(var_c10496, (word) (( (bPt) gf_c0157)+36)/* var_c9312 */ , 1573638); (void) XR_ExportVar(var_c10496, 4, (word) (( (bPt) gf_c0157)+16)/* var_c9216 */ ); (void) XR_ExportProcS(var_c10496, (word) (( (bPt) gf_c0157)+28)/* var_c9280 */ , 68683014); (void) XR_ExportProcS(var_c10496, (word) (( (bPt) gf_c0157)+20)/* var_c9248 */ , 68683270); } static void MaskWithColorImpl_P0(formal_c012, formal_c011) word formal_c012; word formal_c011; { /* MaskWithColorImpl: */ } static word MakeColorWord_P60(sampleColor_v3144, logDepth_v3172) word sampleColor_v3144; word logDepth_v3172; { word var_c3216; word bitsValid_v4460; word color_v4488; /* MakeColorWord: */ SOURCE(613, 352) SOURCE(703, 44) bitsValid_v4460 = (word) XRM_BITLSHIFT(1, logDepth_v3172); SOURCE(749, 78) { word var_c9472; var_c9472 = (word) XRM_BITRSHIFT( (word) -1, (32 - bitsValid_v4460)); color_v4488 = (word) XRM_BITAND(sampleColor_v3144, var_c9472); }; SOURCE(829, 111) lab_L100002: ; if ((bitsValid_v4460 < 32)) { } else { goto lab_L100000; }; SOURCE(862, 43) color_v4488 = (color_v4488 + (word) XRM_BITLSHIFT(color_v4488, bitsValid_v4460)); SOURCE(907, 33) bitsValid_v4460 = (bitsValid_v4460 + bitsValid_v4460); goto lab_L100002; lab_L100000: ; SOURCE(951, 14) return(color_v4488); } static void StoreWithColorMask_P120(maskBase_v3276, maskOffset_v3304, maskWpl_v3332, dstBase_v3360, dstOffset_v3388, dstWpl_v3416, height_v3444, width_v3472, logDepth_v3500, colorWord_v3528) word maskBase_v3276; word maskOffset_v3304; word maskWpl_v3332; word dstBase_v3360; word dstOffset_v3388; word dstWpl_v3416; word height_v3444; word width_v3472; word logDepth_v3500; word colorWord_v3528; { word unitsPerLine_v4532; /* StoreWithColorMask: */ SOURCE(971, 3096) SOURCE(1194, 44) unitsPerLine_v4532 = (dstWpl_v3416 << 2); SOURCE(1240, 63) maskBase_v3276 = (maskBase_v3276 + ((maskOffset_v3304 >> 5) << 2)); SOURCE(1305, 39) maskOffset_v3304 = (maskOffset_v3304 & 037); if ((height_v3444 == 0) || (width_v3472 == 0)) { } else { if ((logDepth_v3500 == 5)) { SOURCE(1439, 42) dstBase_v3360 = (dstBase_v3360 + (dstOffset_v3388 << 2)); SOURCE(1483, 534) lab_L100005: ; SOURCE(1483, 534) { word mwp_v4576; word maskMod_v4604; word maskWord_v4632; word dbo_v4660 = 0; SOURCE(1486, 19) mwp_v4576 = maskBase_v3276; SOURCE(1507, 31) maskMod_v4604 = maskOffset_v3304; SOURCE(1540, 41) maskWord_v4632 = (word) XRM_BITLSHIFT((* (ptr) mwp_v4576 ), maskMod_v4604); SOURCE(1602, 282) lab_L100008: ; SOURCE(1605, 84) if (( (int)maskWord_v4632 < (int)0)) { SOURCE(1645, 44) (* (( (ptr) dstBase_v3360)+dbo_v4660) ) = colorWord_v3528; }; SOURCE(1691, 33) maskWord_v4632 = (word) XRM_BITLSHIFT(maskWord_v4632, 1); SOURCE(1726, 13) dbo_v4660 = (dbo_v4660 + 1); SOURCE(1741, 20) if ((dbo_v4660 == width_v3472)) { SOURCE(1761, 4) goto lab_L100007; }; SOURCE(1767, 54) if ((maskMod_v4604 < 31)) { SOURCE(1800, 21) maskMod_v4604 = (maskMod_v4604 + 1); SOURCE(1823, 4) goto lab_L100008; }; SOURCE(1830, 11) maskMod_v4604 = 0; SOURCE(1843, 24) mwp_v4576 = (mwp_v4576 + 4); SOURCE(1869, 15) maskWord_v4632 = (* (ptr) mwp_v4576 ); goto lab_L100008; lab_L100007: ; SOURCE(1895, 19) if ((height_v3444 == 1)) { SOURCE(1914, 4) goto lab_L100004; }; SOURCE(1920, 19) height_v3444 = (height_v3444 - 1); SOURCE(1941, 42) maskBase_v3276 = (maskBase_v3276 + (maskWpl_v3332 << 2)); SOURCE(1985, 32) dstBase_v3360 = (dstBase_v3360 + unitsPerLine_v4532); }; goto lab_L100005; lab_L100004: ; } else { if ((logDepth_v3500 == 3)) { SOURCE(2063, 810) lab_L100011: ; SOURCE(2063, 810) { word mwp_v4704; word maskMod_v4732; word maskWord_v4760; word dbo_v4788; word lim_v4816; SOURCE(2066, 19) mwp_v4704 = maskBase_v3276; SOURCE(2087, 31) maskMod_v4732 = maskOffset_v3304; SOURCE(2120, 41) maskWord_v4760 = (word) XRM_BITLSHIFT((* (ptr) mwp_v4704 ), maskMod_v4732); SOURCE(2163, 25) dbo_v4788 = dstOffset_v3388; SOURCE(2190, 25) lim_v4816 = (dbo_v4788 + width_v3472); SOURCE(2217, 523) lab_L100014: ; SOURCE(2220, 216) if ((maskWord_v4760 == 0)) { SOURCE(2241, 203) { word remMask_v4860; word rem_v4888; SOURCE(2243, 41) remMask_v4860 = (32 - maskMod_v4732); SOURCE(2286, 25) rem_v4888 = (lim_v4816 - dbo_v4788); SOURCE(2313, 23) if ((remMask_v4860 >= rem_v4888)) { SOURCE(2336, 4) goto lab_L100013; }; SOURCE(2361, 19) dbo_v4788 = (dbo_v4788 + remMask_v4860); SOURCE(2382, 11) maskMod_v4732 = 0; SOURCE(2395, 24) mwp_v4704 = (mwp_v4704 + 4); SOURCE(2421, 15) maskWord_v4760 = (* (ptr) mwp_v4704 ); SOURCE(2438, 4) goto lab_L100014; }; }; SOURCE(2447, 100) if (( (int)maskWord_v4760 < (int)0)) { SOURCE(2487, 60) (* (( (bPt) dstBase_v3360)+dbo_v4788) ) = colorWord_v3528; }; SOURCE(2549, 13) dbo_v4788 = (dbo_v4788 + 1); SOURCE(2564, 18) if ((dbo_v4788 == lim_v4816)) { SOURCE(2582, 4) goto lab_L100013; }; SOURCE(2588, 33) maskWord_v4760 = (word) XRM_BITLSHIFT(maskWord_v4760, 1); SOURCE(2623, 54) if ((maskMod_v4732 < 31)) { SOURCE(2656, 21) maskMod_v4732 = (maskMod_v4732 + 1); SOURCE(2679, 4) goto lab_L100014; }; SOURCE(2686, 11) maskMod_v4732 = 0; SOURCE(2699, 24) mwp_v4704 = (mwp_v4704 + 4); SOURCE(2725, 15) maskWord_v4760 = (* (ptr) mwp_v4704 ); goto lab_L100014; lab_L100013: ; SOURCE(2751, 19) if ((height_v3444 == 1)) { SOURCE(2770, 4) goto lab_L100010; }; SOURCE(2776, 19) height_v3444 = (height_v3444 - 1); SOURCE(2797, 42) maskBase_v3276 = (maskBase_v3276 + (maskWpl_v3332 << 2)); SOURCE(2841, 32) dstBase_v3360 = (dstBase_v3360 + unitsPerLine_v4532); }; goto lab_L100011; lab_L100010: ; } else { SOURCE(2898, 1180) { word depth_v4932; word leftMask_v4960; SOURCE(2900, 40) depth_v4932 = (word) XRM_BITLSHIFT(1, logDepth_v3500); SOURCE(2942, 56) leftMask_v4960 = (word) XRM_BITLSHIFT( (word) -1, (32 - depth_v4932)); SOURCE(3000, 42) dstOffset_v3388 = (word) XRM_BITLSHIFT(dstOffset_v3388, logDepth_v3500); SOURCE(3064, 60) dstBase_v3360 = (dstBase_v3360 + ((dstOffset_v3388 >> 5) << 2)); SOURCE(3126, 37) dstOffset_v3388 = (dstOffset_v3388 & 037); SOURCE(3165, 902) lab_L100017: ; SOURCE(3165, 902) { word mwp_v5004; word maskMod_v5032; word maskWord_v5060; word dwp_v5088; word rem_v5116; word accum_v5144 = 0; word eachMask_v5172; SOURCE(3168, 19) mwp_v5004 = maskBase_v3276; SOURCE(3189, 31) maskMod_v5032 = maskOffset_v3304; SOURCE(3222, 41) maskWord_v5060 = (word) XRM_BITLSHIFT((* (ptr) mwp_v5004 ), maskMod_v5032); SOURCE(3265, 18) dwp_v5088 = dstBase_v3360; SOURCE(3285, 21) rem_v5116 = width_v3472; SOURCE(3325, 47) eachMask_v5172 = (word) XRM_BITRSHIFT(leftMask_v4960, dstOffset_v3388); SOURCE(3374, 560) lab_L100020: ; SOURCE(3377, 64) if (( (int)maskWord_v5060 < (int)0)) { SOURCE(3417, 24) accum_v5144 = (accum_v5144 + eachMask_v5172); }; SOURCE(3443, 37) eachMask_v5172 = (word) XRM_BITRSHIFT(eachMask_v5172, depth_v4932); SOURCE(3482, 103) if ((rem_v5116 == 1)) { SOURCE(3500, 85) if ((accum_v5144 != 0)) { SOURCE(3518, 67) { word var_c9504; word var_c9568; { /*1*/ word var_c9536; /*1*/ var_c9536 = (word) XRM_BITNOT(accum_v5144); /*1*/ var_c9504 = (word) XRM_BITAND((* (ptr) dwp_v5088 ), var_c9536); /*1*/ }; var_c9568 = (word) XRM_BITAND(colorWord_v3528, accum_v5144); (* (ptr) dwp_v5088 ) = (word) XRM_BITOR(var_c9504, var_c9568); }; }; SOURCE(3587, 4) goto lab_L100019; }; SOURCE(3596, 166) if ((eachMask_v5172 == 0)) { SOURCE(3619, 85) if ((accum_v5144 != 0)) { SOURCE(3637, 67) { word var_c9600; word var_c9664; { /*1*/ word var_c9632; /*1*/ var_c9632 = (word) XRM_BITNOT(accum_v5144); /*1*/ var_c9600 = (word) XRM_BITAND((* (ptr) dwp_v5088 ), var_c9632); /*1*/ }; var_c9664 = (word) XRM_BITAND(colorWord_v3528, accum_v5144); (* (ptr) dwp_v5088 ) = (word) XRM_BITOR(var_c9600, var_c9664); }; }; SOURCE(3706, 24) dwp_v5088 = (dwp_v5088 + 4); SOURCE(3732, 19) eachMask_v5172 = leftMask_v4960; SOURCE(3753, 9) accum_v5144 = 0; }; SOURCE(3767, 13) rem_v5116 = (rem_v5116 - 1); SOURCE(3782, 33) maskWord_v5060 = (word) XRM_BITLSHIFT(maskWord_v5060, 1); SOURCE(3817, 54) if ((maskMod_v5032 < 31)) { SOURCE(3850, 21) maskMod_v5032 = (maskMod_v5032 + 1); SOURCE(3873, 4) goto lab_L100020; }; SOURCE(3880, 11) maskMod_v5032 = 0; SOURCE(3893, 24) mwp_v5004 = (mwp_v5004 + 4); SOURCE(3919, 15) maskWord_v5060 = (* (ptr) mwp_v5004 ); goto lab_L100020; lab_L100019: ; SOURCE(3945, 19) if ((height_v3444 == 1)) { SOURCE(3964, 4) goto lab_L100016; }; SOURCE(3970, 19) height_v3444 = (height_v3444 - 1); SOURCE(3991, 42) maskBase_v3276 = (maskBase_v3276 + (maskWpl_v3332 << 2)); SOURCE(4035, 32) dstBase_v3360 = (dstBase_v3360 + unitsPerLine_v4532); }; goto lab_L100017; lab_L100016: ; }; }; }; }; } static void StoreWithColorRuns_P180(mask_v3588, dstBase_v3616, dstOffset_v3644, dstWpl_v3672, logDepth_v3700, colorWord_v3728) word mask_v3588; word dstBase_v3616; word dstOffset_v3644; word dstWpl_v3672; word logDepth_v3700; word colorWord_v3728; { word unitsPerLine_v5216; /* StoreWithColorRuns: */ SOURCE(4085, 2576) SOURCE(4231, 44) unitsPerLine_v5216 = (dstWpl_v3672 << 2); if ((mask_v3588 == 0) || ((* (ptr) mask_v3588 ) == 0)) { } else { if ((logDepth_v3700 == 3)) { SOURCE(4358, 924) { word dbo_v5260; SOURCE(4360, 25) dbo_v5260 = dstOffset_v3644; SOURCE(4387, 881) { register word i_v5304 = 0; register word noName_c9696; noName_c9696 = (* (ptr) mask_v3588 ); if ((i_v5304 >= noName_c9696)) { goto lab_L100021; }; lab_L100024: ; { word rb_v5348; word rem_v5376; word lim_v5404; SOURCE(4418, 21) rb_v5348 = (word) (* ((( (bPt) mask_v3588)+4)+i_v5304) ); SOURCE(4441, 24) rem_v5376 = ((((unsigned)rb_v5348 << 24) >> 26) + 1); SOURCE(4467, 25) lim_v5404 = (dbo_v5260 + rem_v5376); SOURCE(4494, 690) if (rb_v5348 & 02) { SOURCE(4513, 671) if ((rem_v5376 < 4)) { SOURCE(4531, 158) if ((rem_v5376 >= 2)) { SOURCE(4550, 60) (* (( (bPt) dstBase_v3616)+dbo_v5260) ) = colorWord_v3728; SOURCE(4612, 62) (* (( (bPt) dstBase_v3616)+(dbo_v5260 + 1)) ) = colorWord_v3728; SOURCE(4676, 13) dbo_v5260 = (dbo_v5260 + 2); }; SOURCE(4694, 82) if (((rem_v5376 & 1) == 1)) { SOURCE(4716, 60) (* (( (bPt) dstBase_v3616)+dbo_v5260) ) = colorWord_v3728; }; } else { SOURCE(4785, 399) SOURCE(4787, 131) lab_L100028: ; if (((dbo_v5260 & 3) != 0)) { } else { goto lab_L100026; }; SOURCE(4823, 60) (* (( (bPt) dstBase_v3616)+dbo_v5260) ) = colorWord_v3728; SOURCE(4885, 13) dbo_v5260 = (dbo_v5260 + 1); SOURCE(4900, 18) if ((dbo_v5260 == lim_v5404)) { SOURCE(4918, 13) goto lab_L100025; }; goto lab_L100028; lab_L100026: ; SOURCE(4942, 105) lab_L100031: ; if (((dbo_v5260 + 4) <= lim_v5404)) { } else { goto lab_L100029; }; SOURCE(4977, 44) (* (ptr) (dstBase_v3616 + dbo_v5260) ) = colorWord_v3728; SOURCE(5023, 24) dbo_v5260 = (dbo_v5260 + 4); goto lab_L100031; lab_L100029: ; SOURCE(5058, 94) lab_L100034: ; if ((dbo_v5260 < lim_v5404)) { } else { goto lab_L100032; }; SOURCE(5077, 60) (* (( (bPt) dstBase_v3616)+dbo_v5260) ) = colorWord_v3728; SOURCE(5139, 13) dbo_v5260 = (dbo_v5260 + 1); goto lab_L100034; lab_L100032: ; goto lab_L100035; lab_L100025: ; lab_L100035: ; }; }; SOURCE(5190, 9) dbo_v5260 = lim_v5404; SOURCE(5201, 67) if (rb_v5348 & 1) { SOURCE(5219, 32) dstBase_v3616 = (dstBase_v3616 + unitsPerLine_v5216); SOURCE(5253, 15) dbo_v5260 = dstOffset_v3644; }; }; i_v5304 = (i_v5304 + 1); if ((i_v5304 < noName_c9696)) { goto lab_L100024; }; lab_L100021: ; }; }; } else { if ((logDepth_v3700 == 5)) { SOURCE(5328, 346) { word dbo_v5448 = 0; SOURCE(5349, 42) dstBase_v3616 = (dstBase_v3616 + (dstOffset_v3644 << 2)); SOURCE(5393, 267) { register word i_v5492 = 0; register word noName_c9728; noName_c9728 = (* (ptr) mask_v3588 ); if ((i_v5492 >= noName_c9728)) { goto lab_L100036; }; lab_L100039: ; { word rb_v5536; word lim_v5564; SOURCE(5424, 21) rb_v5536 = (word) (* ((( (bPt) mask_v3588)+4)+i_v5492) ); SOURCE(5447, 30) lim_v5564 = ((dbo_v5448 + (((unsigned)rb_v5536 << 24) >> 26)) + 1); SOURCE(5479, 97) if (rb_v5536 & 02) { SOURCE(5498, 78) lab_L100042: ; if ((dbo_v5448 < lim_v5564)) { } else { goto lab_L100040; }; SOURCE(5517, 44) (* (( (ptr) dstBase_v3616)+dbo_v5448) ) = colorWord_v3728; SOURCE(5563, 13) dbo_v5448 = (dbo_v5448 + 1); goto lab_L100042; lab_L100040: ; }; SOURCE(5590, 9) dbo_v5448 = lim_v5564; SOURCE(5601, 59) if (rb_v5536 & 1) { SOURCE(5619, 32) dstBase_v3616 = (dstBase_v3616 + unitsPerLine_v5216); SOURCE(5653, 7) dbo_v5448 = 0; }; }; i_v5492 = (i_v5492 + 1); if ((i_v5492 < noName_c9728)) { goto lab_L100039; }; lab_L100036: ; }; }; } else { SOURCE(5688, 984) { word dbo_v5608; SOURCE(5690, 46) dbo_v5608 = (word) XRM_BITLSHIFT(dstOffset_v3644, logDepth_v3700); SOURCE(5738, 15) dstOffset_v3644 = dbo_v5608; SOURCE(5755, 906) { register word i_v5652 = 0; register word noName_c9760; noName_c9760 = (* (ptr) mask_v3588 ); if ((i_v5652 >= noName_c9760)) { goto lab_L100043; }; lab_L100046: ; { word rb_v5696; word bits_v5724; SOURCE(5786, 21) rb_v5696 = (word) (* ((( (bPt) mask_v3588)+4)+i_v5652) ); SOURCE(5809, 46) bits_v5724 = (word) XRM_BITLSHIFT(((((unsigned)rb_v5696 << 24) >> 26) + 1), logDepth_v3700); SOURCE(5857, 708) if ( ( (rb_v5696 & 02) ? (bits_v5724 != 0) : 0 ) ) { SOURCE(5887, 678) SOURCE(5889, 20) { word rem_v5768; word wp_v5796; word mod_v5824; SOURCE(5889, 20) rem_v5768 = bits_v5724; SOURCE(5911, 54) wp_v5796 = (dstBase_v3616 + ((dbo_v5608 >> 5) << 2)); SOURCE(5967, 35) mod_v5824 = (dbo_v5608 & 037); SOURCE(6004, 306) if ((mod_v5824 != 0)) { SOURCE(6020, 292) /*1*/ { /*1*/ word mask_v5868; /*1*/ word lim_v5896; SOURCE(6022, 38) /*1*/ mask_v5868 = (word) XRM_BITRSHIFT( (word) -1, mod_v5824); SOURCE(6062, 25) /*1*/ lim_v5896 = (rem_v5768 + mod_v5824); SOURCE(6089, 65) /*1*/ if ((lim_v5896 < 32)) { SOURCE(6115, 39) /*1*/ mask_v5868 = (mask_v5868 - (word) XRM_BITRSHIFT( (word) -1, lim_v5896)); /*1*/ }; SOURCE(6156, 63) /*1*/ { /*1*/ word var_c9792; /*1*/ word var_c9856; /*1*/ { /*1*/ word var_c9824; /*1*/ var_c9824 = (word) XRM_BITNOT(mask_v5868); /*1*/ var_c9792 = (word) XRM_BITAND((* (ptr) wp_v5796 ), var_c9824); /*1*/ }; /*1*/ var_c9856 = (word) XRM_BITAND(colorWord_v3728, mask_v5868); /*1*/ (* (ptr) wp_v5796 ) = (word) XRM_BITOR(var_c9792, var_c9856); /*1*/ }; SOURCE(6221, 27) /*1*/ if ((lim_v5896 <= 32)) { SOURCE(6248, 13) /*1*/ goto lab_L100047; /*1*/ }; SOURCE(6263, 22) /*1*/ wp_v5796 = (wp_v5796 + 4); SOURCE(6287, 23) /*1*/ rem_v5768 = (lim_v5896 - 32); /*1*/ }; /*1*/ }; SOURCE(6315, 92) lab_L100050: ; if ((rem_v5768 >= 32)) { /*1*/ } else { /*1*/ goto lab_L100048; /*1*/ }; SOURCE(6343, 15) (* (ptr) wp_v5796 ) = colorWord_v3728; SOURCE(6360, 23) rem_v5768 = (rem_v5768 - 32); SOURCE(6385, 22) wp_v5796 = (wp_v5796 + 4); goto lab_L100050; lab_L100048: ; SOURCE(6418, 121) if ((rem_v5768 != 0)) { SOURCE(6434, 107) /*1*/ { /*1*/ word mask_v5940; SOURCE(6436, 38) /*1*/ mask_v5940 = (word) XRM_BITRSHIFT( (word) -1, rem_v5768); SOURCE(6476, 63) /*1*/ { /*1*/ word var_c9888; /*1*/ word var_c9920; /*1*/ var_c9888 = (word) XRM_BITAND((* (ptr) wp_v5796 ), mask_v5940); /*1*/ { /*1*/ word var_c9952; /*1*/ var_c9952 = (word) XRM_BITNOT(mask_v5940); /*1*/ var_c9920 = (word) XRM_BITAND(colorWord_v3728, var_c9952); /*1*/ }; /*1*/ (* (ptr) wp_v5796 ) = (word) XRM_BITOR(var_c9888, var_c9920); /*1*/ }; /*1*/ }; /*1*/ }; }; goto lab_L100051; lab_L100047: ; lab_L100051: ; }; SOURCE(6568, 16) dbo_v5608 = (dbo_v5608 + bits_v5724); SOURCE(6586, 20) if ( ! (rb_v5696 & 1)) { SOURCE(6606, 4) goto lab_L100045; }; SOURCE(6612, 32) dstBase_v3616 = (dstBase_v3616 + unitsPerLine_v5216); SOURCE(6646, 15) dbo_v5608 = dstOffset_v3644; }; lab_L100045: ; i_v5652 = (i_v5652 + 1); if ((i_v5652 < noName_c9760)) { goto lab_L100046; }; lab_L100043: ; }; }; }; }; }; } static void StoreWithLongColorRuns_P240(mask_v3788, dstBase_v3816, dstOffset_v3844, dstWpl_v3872, logDepth_v3900, colorWord_v3928) word mask_v3788; word dstBase_v3816; word dstOffset_v3844; word dstWpl_v3872; word logDepth_v3900; word colorWord_v3928; { word unitsPerLine_v5984; /* StoreWithLongColorRuns: */ SOURCE(6679, 2447) SOURCE(6833, 44) unitsPerLine_v5984 = (dstWpl_v3872 << 2); if ((mask_v3788 == 0) || ((* (ptr) mask_v3788 ) == 0)) { } else { if ((logDepth_v3900 == 3)) { SOURCE(6962, 896) { register word i_v6028 = 0; register word noName_c9984; noName_c9984 = (* (ptr) mask_v3788 ); if ((i_v6028 >= noName_c9984)) { goto lab_L100052; }; lab_L100055: ; { word run_v6072; word dbo_v6100; word rem_v6128; SOURCE(6993, 22) run_v6072 = (* ((( (ptr) mask_v3788)+1)+i_v6028) ); SOURCE(7017, 36) dbo_v6100 = (dstOffset_v3844 + ((unsigned)run_v6072 >> 16)); SOURCE(7055, 25) rem_v6128 = ( (((unsigned)run_v6072 << 17) >> 17) ); SOURCE(7082, 718) if ((rem_v6128 < 4)) { SOURCE(7100, 158) if ((rem_v6128 >= 2)) { SOURCE(7119, 60) (* (( (bPt) dstBase_v3816)+dbo_v6100) ) = colorWord_v3928; SOURCE(7181, 62) (* (( (bPt) dstBase_v3816)+(dbo_v6100 + 1)) ) = colorWord_v3928; SOURCE(7245, 13) dbo_v6100 = (dbo_v6100 + 2); }; SOURCE(7263, 82) if (((rem_v6128 & 1) == 1)) { SOURCE(7285, 60) (* (( (bPt) dstBase_v3816)+dbo_v6100) ) = colorWord_v3928; }; } else { SOURCE(7354, 449) { word lim_v6172; SOURCE(7356, 25) lim_v6172 = (dbo_v6100 + rem_v6128); SOURCE(7383, 417) if ((dbo_v6100 < lim_v6172)) { SOURCE(7401, 399) SOURCE(7403, 131) lab_L100059: ; if (((dbo_v6100 & 3) != 0)) { } else { goto lab_L100057; }; SOURCE(7439, 60) (* (( (bPt) dstBase_v3816)+dbo_v6100) ) = colorWord_v3928; SOURCE(7501, 13) dbo_v6100 = (dbo_v6100 + 1); SOURCE(7516, 18) if ((dbo_v6100 == lim_v6172)) { SOURCE(7534, 13) goto lab_L100056; }; goto lab_L100059; lab_L100057: ; SOURCE(7558, 105) lab_L100062: ; if (((dbo_v6100 + 4) <= lim_v6172)) { } else { goto lab_L100060; }; SOURCE(7593, 44) (* (ptr) (dstBase_v3816 + dbo_v6100) ) = colorWord_v3928; SOURCE(7639, 24) dbo_v6100 = (dbo_v6100 + 4); goto lab_L100062; lab_L100060: ; SOURCE(7674, 94) lab_L100065: ; if ((dbo_v6100 < lim_v6172)) { } else { goto lab_L100063; }; SOURCE(7693, 60) (* (( (bPt) dstBase_v3816)+dbo_v6100) ) = colorWord_v3928; SOURCE(7755, 13) dbo_v6100 = (dbo_v6100 + 1); goto lab_L100065; lab_L100063: ; goto lab_L100066; lab_L100056: ; lab_L100066: ; }; }; }; SOURCE(7806, 52) if (run_v6072 & 0100000) { SOURCE(7826, 32) dstBase_v3816 = (dstBase_v3816 + unitsPerLine_v5984); }; }; i_v6028 = (i_v6028 + 1); if ((i_v6028 < noName_c9984)) { goto lab_L100055; }; lab_L100052: ; }; } else { if ((logDepth_v3900 == 5)) { SOURCE(7917, 42) dstBase_v3816 = (dstBase_v3816 + (dstOffset_v3844 << 2)); SOURCE(7961, 255) { register word i_v6216 = 0; register word noName_c10016; noName_c10016 = (* (ptr) mask_v3788 ); if ((i_v6216 >= noName_c10016)) { goto lab_L100067; }; lab_L100070: ; { word run_v6260; word dbo_v6288; word lim_v6316; SOURCE(7992, 22) run_v6260 = (* ((( (ptr) mask_v3788)+1)+i_v6216) ); SOURCE(8016, 24) dbo_v6288 = ((unsigned)run_v6260 >> 16); SOURCE(8042, 31) lim_v6316 = (dbo_v6288 + ( (((unsigned)run_v6260 << 17) >> 17) )); SOURCE(8075, 78) lab_L100073: ; if ((dbo_v6288 < lim_v6316)) { } else { goto lab_L100071; }; SOURCE(8094, 44) (* (( (ptr) dstBase_v3816)+dbo_v6288) ) = colorWord_v3928; SOURCE(8140, 13) dbo_v6288 = (dbo_v6288 + 1); goto lab_L100073; lab_L100071: ; SOURCE(8164, 52) if (run_v6260 & 0100000) { SOURCE(8184, 32) dstBase_v3816 = (dstBase_v3816 + unitsPerLine_v5984); }; }; i_v6216 = (i_v6216 + 1); if ((i_v6216 < noName_c10016)) { goto lab_L100070; }; lab_L100067: ; }; } else { SOURCE(8243, 883) { register word i_v6360 = 0; register word noName_c10048; noName_c10048 = (* (ptr) mask_v3788 ); if ((i_v6360 >= noName_c10048)) { goto lab_L100074; }; lab_L100077: ; { word run_v6404; word rem_v6432; SOURCE(8274, 22) run_v6404 = (* ((( (ptr) mask_v3788)+1)+i_v6360) ); SOURCE(8298, 46) rem_v6432 = (word) XRM_BITLSHIFT(( (((unsigned)run_v6404 << 17) >> 17) ), logDepth_v3900); SOURCE(8346, 725) if ((rem_v6432 != 0)) { SOURCE(8362, 709) SOURCE(8364, 57) { word dbo_v6476; word wp_v6504; word mod_v6532; SOURCE(8364, 57) dbo_v6476 = (word) XRM_BITLSHIFT((dstOffset_v3844 + ((unsigned)run_v6404 >> 16)), logDepth_v3900); SOURCE(8423, 54) wp_v6504 = (dstBase_v3816 + ((dbo_v6476 >> 5) << 2)); SOURCE(8479, 35) mod_v6532 = (dbo_v6476 & 037); SOURCE(8516, 303) if ((mod_v6532 != 0)) { SOURCE(8532, 289) { /*1*/ word mask_v6576; /*1*/ word lim_v6604; SOURCE(8534, 38) /*1*/ mask_v6576 = (word) XRM_BITRSHIFT( (word) -1, mod_v6532); SOURCE(8574, 25) /*1*/ lim_v6604 = (rem_v6432 + mod_v6532); SOURCE(8601, 65) /*1*/ if ((lim_v6604 < 32)) { SOURCE(8627, 39) /*1*/ mask_v6576 = (mask_v6576 - (word) XRM_BITRSHIFT( (word) -1, lim_v6604)); /*1*/ }; SOURCE(8668, 63) /*1*/ { /*1*/ word var_c10080; /*1*/ word var_c10144; /*1*/ { /*1*/ word var_c10112; /*1*/ var_c10112 = (word) XRM_BITNOT(mask_v6576); /*1*/ var_c10080 = (word) XRM_BITAND((* (ptr) wp_v6504 ), var_c10112); /*1*/ }; /*1*/ var_c10144 = (word) XRM_BITAND(colorWord_v3928, mask_v6576); /*1*/ (* (ptr) wp_v6504 ) = (word) XRM_BITOR(var_c10080, var_c10144); /*1*/ }; SOURCE(8733, 27) /*1*/ if ((lim_v6604 <= 32)) { SOURCE(8760, 10) /*1*/ goto lab_L100078; /*1*/ }; SOURCE(8772, 22) /*1*/ wp_v6504 = (wp_v6504 + 4); SOURCE(8796, 23) /*1*/ rem_v6432 = (lim_v6604 - 32); /*1*/ }; }; SOURCE(8824, 92) lab_L100081: ; if ((rem_v6432 >= 32)) { } else { goto lab_L100079; }; SOURCE(8852, 15) (* (ptr) wp_v6504 ) = colorWord_v3928; SOURCE(8869, 23) rem_v6432 = (rem_v6432 - 32); SOURCE(8894, 22) wp_v6504 = (wp_v6504 + 4); goto lab_L100081; lab_L100079: ; SOURCE(8927, 121) if ((rem_v6432 != 0)) { SOURCE(8943, 107) { /*1*/ word mask_v6648; SOURCE(8945, 38) /*1*/ mask_v6648 = (word) XRM_BITRSHIFT( (word) -1, rem_v6432); SOURCE(8985, 63) /*1*/ { /*1*/ word var_c10176; /*1*/ word var_c10208; /*1*/ var_c10176 = (word) XRM_BITAND((* (ptr) wp_v6504 ), mask_v6648); /*1*/ { /*1*/ word var_c10240; /*1*/ var_c10240 = (word) XRM_BITNOT(mask_v6648); /*1*/ var_c10208 = (word) XRM_BITAND(colorWord_v3928, var_c10240); /*1*/ }; /*1*/ (* (ptr) wp_v6504 ) = (word) XRM_BITOR(var_c10176, var_c10208); /*1*/ }; /*1*/ }; }; }; goto lab_L100082; lab_L100078: ; lab_L100082: ; }; SOURCE(9074, 52) if (run_v6404 & 0100000) { SOURCE(9094, 32) dstBase_v3816 = (dstBase_v3816 + unitsPerLine_v5984); }; }; i_v6360 = (i_v6360 + 1); if ((i_v6360 < noName_c10048)) { goto lab_L100077; }; lab_L100074: ; }; }; }; }; } static word MaskToRun_P300(run_v4004, maskPtr_v4032, offset_v4060, wpl_v4088, height_v4116, width_v4144) word run_v4004; word maskPtr_v4032; word offset_v4060; word wpl_v4088; word height_v4116; word width_v4144; { register ptr gf_c10528 = (ptr) &globalframe; word var_c4188; word seqLen_v6692 = 0; word mp_v6720; /* MaskToRun: */ SOURCE(9174, 974) SOURCE(9338, 31) mp_v6720 = maskPtr_v4032; SOURCE(9371, 698) if ( ( (height_v4116 != 0) ? (width_v4144 != 0) : 0 ) ) { SOURCE(9404, 665) { register word noName_c10272 = 0; register word noName_c10304; noName_c10304 = height_v4116; if ((noName_c10272 >= noName_c10304)) { goto lab_L100083; }; lab_L100086: ; { word runLen_v6764 = 0; word runBit_v6792 = 0; word runLast_v6820 = 0; word emptyLine_v6848 = 1; word j_v6876 = 0; word lim_v6904; SOURCE(9535, 21) lim_v6904 = width_v4144; SOURCE(9558, 55) lab_L100089: ; { word tc3; word x4; if ((lim_v6904 > 1)) { tc3 = (word) (( x4 = ((lim_v6904 - 1) + offset_v4060), ((* (ptr) (( (ptr) mp_v6720) + (x4 >> 5)) ) >> (31 - ((x4 & 037)))) & 1 ) == 0); } else { tc3 = (word) 0; }; if (tc3) { } else { goto lab_L100087; }; }; SOURCE(9600, 13) lim_v6904 = (lim_v6904 - 1); goto lab_L100089; lab_L100087: ; SOURCE(9624, 409) lab_L100092: ; if ((j_v6876 < lim_v6904)) { } else { goto lab_L100090; }; { word bit_v6948; SOURCE(9641, 23) bit_v6948 = (((* (ptr) (( (ptr) mp_v6720) + ((j_v6876 + offset_v4060) >> 5)) ) >> (31 - (((j_v6876 + offset_v4060) & 037)))) & 1); SOURCE(9666, 31) if ((runLen_v6764 == 0)) { SOURCE(9685, 12) runBit_v6792 = bit_v6948; }; SOURCE(9699, 97) if ((bit_v6948 == runBit_v6792)) { SOURCE(9722, 19) runLen_v6764 = (runLen_v6764 + 1); SOURCE(9743, 9) j_v6876 = (j_v6876 + 1); if ((j_v6876 == lim_v6904)) { SOURCE(9782, 14) runLast_v6820 = 1; } else { if ((runLen_v6764 < 64)) { SOURCE(9838, 4) goto lab_L100092; }; }; }; SOURCE(9856, 124) if ((run_v4004 != 0)) { SOURCE(9876, 38) if ((seqLen_v6692 >= (* (ptr) run_v4004 ))) { SOURCE(9902, 12) (void) XR_RaiseError((word) (( (bPt) gf_c10528)+16)/* var_c9216 */ , 0); }; SOURCE(9916, 64) (* ((( (bPt) run_v4004)+4)+seqLen_v6692) ) = ((((((runLen_v6764 - 1) & 077) << 1) + (runBit_v6792 & 1)) << 1) + (runLast_v6820 & 1)); }; SOURCE(9985, 19) seqLen_v6692 = (seqLen_v6692 + 1); SOURCE(10006, 10) runLen_v6764 = 0; SOURCE(10018, 15) runLast_v6820 = 0; }; goto lab_L100092; lab_L100090: ; SOURCE(10044, 25) mp_v6720 = (mp_v6720 + (wpl_v4088 << 2)); }; noName_c10272 = (noName_c10272 + 1); if ((noName_c10272 < noName_c10304)) { goto lab_L100086; }; lab_L100083: ; }; }; SOURCE(10080, 51) if ( ( (run_v4004 != 0) ? (seqLen_v6692 != (* (ptr) run_v4004 )) : 0 ) ) { SOURCE(10119, 12) (void) XR_RaiseError((word) (( (bPt) gf_c10528)+16)/* var_c9216 */ , 0); }; SOURCE(10133, 15) return(seqLen_v6692); } static word MaskToLongRun_P360(run_v4248, maskPtr_v4276, offset_v4304, wpl_v4332, height_v4360, width_v4388) word run_v4248; word maskPtr_v4276; word offset_v4304; word wpl_v4332; word height_v4360; word width_v4388; { register ptr gf_c10560 = (ptr) &globalframe; word var_c4432; word seqLen_v6992 = 0; word mp_v7020; /* MaskToLongRun: */ SOURCE(10154, 796) SOURCE(10326, 31) mp_v7020 = maskPtr_v4276; SOURCE(10359, 512) if ( ( (height_v4360 != 0) ? (width_v4388 != 0) : 0 ) ) { SOURCE(10392, 479) { register word noName_c10368 = 0; register word noName_c10400; noName_c10400 = height_v4360; if ((noName_c10368 >= noName_c10400)) { goto lab_L100093; }; lab_L100096: ; { word j_v7064 = 0; word lim_v7092; SOURCE(10432, 21) lim_v7092 = width_v4388; SOURCE(10455, 55) lab_L100099: ; { word tc5; word x6; if ((lim_v7092 > 1)) { tc5 = (word) (( x6 = ((lim_v7092 - 1) + offset_v4304), ((* (ptr) (( (ptr) mp_v7020) + (x6 >> 5)) ) >> (31 - ((x6 & 037)))) & 1 ) == 0); } else { tc5 = (word) 0; }; if (tc5) { } else { goto lab_L100097; }; }; SOURCE(10497, 13) lim_v7092 = (lim_v7092 - 1); goto lab_L100099; lab_L100097: ; SOURCE(10521, 310) lab_L100102: ; SOURCE(10521, 310) { word start_v7136; SOURCE(10541, 47) lab_L100105: ; { word tc7; if ((j_v7064 < lim_v7092)) { tc7 = (word) ((((* (ptr) (( (ptr) mp_v7020) + ((j_v7064 + offset_v4304) >> 5)) ) >> (31 - (((j_v7064 + offset_v4304) & 037)))) & 1) == 0); } else { tc7 = (word) 0; }; if (tc7) { } else { goto lab_L100103; }; }; SOURCE(10579, 9) j_v7064 = (j_v7064 + 1); goto lab_L100105; lab_L100103: ; SOURCE(10599, 9) start_v7136 = j_v7064; SOURCE(10610, 47) lab_L100108: ; { word tc8; if ((j_v7064 < lim_v7092)) { tc8 = (word) ((((* (ptr) (( (ptr) mp_v7020) + ((j_v7064 + offset_v4304) >> 5)) ) >> (31 - (((j_v7064 + offset_v4304) & 037)))) & 1) == 1); } else { tc8 = (word) 0; }; if (tc8) { } else { goto lab_L100106; }; }; SOURCE(10648, 9) j_v7064 = (j_v7064 + 1); goto lab_L100108; lab_L100106: ; SOURCE(10668, 121) if ((run_v4248 != 0)) { SOURCE(10688, 38) if ((seqLen_v6992 >= (* (ptr) run_v4248 ))) { SOURCE(10714, 12) (void) XR_RaiseError((word) (( (bPt) gf_c10560)+16)/* var_c9216 */ , 0); }; SOURCE(10728, 61) (* ((( (ptr) run_v4248)+1)+seqLen_v6992) ) = ((((( (((unsigned)start_v7136 << 16) >> 16) ) << 1) + (j_v7064 == lim_v7092)) << 15) + ( (((unsigned)(j_v7064 - start_v7136) << 17) >> 17) )); }; SOURCE(10794, 19) seqLen_v6992 = (seqLen_v6992 + 1); SOURCE(10815, 16) if ((j_v7064 == lim_v7092)) { SOURCE(10831, 4) goto lab_L100101; }; }; goto lab_L100102; lab_L100101: ; SOURCE(10846, 25) mp_v7020 = (mp_v7020 + (wpl_v4332 << 2)); }; noName_c10368 = (noName_c10368 + 1); if ((noName_c10368 < noName_c10400)) { goto lab_L100096; }; lab_L100093: ; }; }; SOURCE(10882, 51) if ( ( (run_v4248 != 0) ? (seqLen_v6992 != (* (ptr) run_v4248 )) : 0 ) ) { SOURCE(10921, 12) (void) XR_RaiseError((word) (( (bPt) gf_c10560)+16)/* var_c9216 */ , 0); }; SOURCE(10935, 15) return(seqLen_v6992); } /* file: MaskWithColorImpl, module: MaskWithColorImpl, compiled at: February 21, 1992 11:34:06 pm PST */ extern void XR_install_MaskWithColorImpl() { NoName_Q1908(); } extern void XR_run_MaskWithColorImpl() { XR_Start(&globalframe); }