/* Generated with C2C (Cedar To C)*/ /* Copyright (C) 1993 by Xerox Corporation. All rights reserved. */ /* time: July 28, 1993 10:19:34 am PDT */ /* C2C version: April 20, 1993 (sun4) */ /* ref-counting: off */ /* file: ImagerImageWorksImpl, module: ImagerImageWorksImpl */ /* switches: bcfhklnouw */ #include <cedar/InstallationSupport.h> #include <cedar/CedarExtra.h> static char versionStamp[] = "@(#)mob←version [500095483,881983743] ImagerImageWorksImpl"; typedef unsigned word, *ptr; typedef unsigned char byte, *bPt; typedef unsigned short half, *hPt; typedef word (*fPt)(); typedef struct {word f0, f1;} W2; typedef W2 *W2Pt; typedef struct {word f0, f1, f2, f3;} W4; typedef W4 *W4Pt; typedef struct {word f0, f1, f2;} W3; typedef W3 *W3Pt; #define SOURCE(p, l) /* source p, l */ static float fc23 = 1.0; #define BCK(idx, lim) ( ((unsigned) idx) >= ((unsigned) lim) ? (XR←RaiseBoundsFault()) : (idx) ) #define MAX(cast, x, y) ( ( cast x) > ( cast y) ? (x) : (y) ) #define SGNCK(i) ((int) (word) (i) < 0 ? XR←RaiseArithmeticFault(): i ) #define IOP2(op, x, y) ( (word) ((x) op (y)) ) static float fc83 = 0.0; static float fc88 = 2.0; #define MIN(cast, x, y) ( ( cast x) < ( cast y) ? (x) : (y) ) #define INEG(x) ( (word) ( - ((int) (word) (x)) ) ) static void NoName←Q2424(); static void ImagerImageWorksImpl←P0(); static word BufferedMaxSampleValue←P60(); static void BufferedGetSamples←P120(); static word MakeBufferedPixelArray←P180(); static void DrawBufferedImage←P240(); static word InterleavedSamplesMaxSampleValue←P300(); static word ObtainBuffer←P360(); static void ReleaseBuffer←P420(); static word SalvageBuffer←P480(); static void InterleavedSamplesGetSamples←P540(); static word MakeInterleavedPixelArray←P600(); static void DrawInterleavedImage←P660(); static void GetUnsafeBlock←P720(); static word ChooseOverlap←P780(); static word ChooseBandSize←P840(); static void StreamImage←P900(); static struct {unsigned f; char r[4];} string1 = {131076, "\216\251\000"}; static struct {unsigned f; char r[4];} string2 = {65537, "\001\000\000"}; static struct {unsigned f; char r[16];} string3 = {851984, "\257\300\035\316\331\373\300\064\222\000\377\100\370\000\000"}; static struct {unsigned f; char r[4];} string4 = {131074, "\003\001\000"}; static struct {unsigned f; char r[16];} string5 = {851984, "\257\300\035\316\331\373\300\064\222\000\377\100\200\000\000"}; static struct {unsigned f; char r[16];} string6 = {851984, "\257\300\260\302\146\322\300\075\027\134\123\100\354\000\000"}; static struct {unsigned f; char r[12];} string7 = {589833, "\011\000\004\100\240\040\001\030\001\000\000"}; static struct {unsigned f; char r[16];} string8 = {851984, "\257\300\035\316\331\373\300\064\222\000\377\100\324\000\000"}; static struct {unsigned f; char r[4];} string9 = {131074, "\004\011\000"}; static struct {unsigned f; char r[20];} string10 = {1179668, "InterleavedSamples\000"}; static struct {unsigned f; char r[20];} string11 = {1048596, "BufferedPixelMap\000\000\000"}; static struct {unsigned f; char r[16];} string12 = {851984, "\257\300\035\316\331\373\300\064\222\000\377\100\164\000\000"}; static struct {unsigned f; char r[16];} string13 = {786444, "\006\004\040\001\044\001\050\001\100\120\004\003\000\000\000"}; static struct {unsigned f; char r[16];} string14 = {851984, "\257\300ZT?\010\300\370;=;@h\000\000"}; static struct {unsigned f; char r[16];} string15 = {851984, "\257\300\170\002\151\000\300\332\212\147\067\100\150\000\000"}; static struct {unsigned f; char r[16];} string16 = {851984, "\257\300\213\226\301\143\300\072\355\320\373\100\150\000\000"}; static struct {unsigned f; char r[16];} string17 = {851984, "\257\300\121\117\377\026\300\315\013\026\004\100\150\000\000"}; static struct {unsigned f; char r[16];} string18 = {851984, "\257\300\015\277\004\146\300\034\367\146\045\100\164\000\000"}; static struct {unsigned f; char r[16];} string19 = {851984, "\257\300\243\162\130\311\300\344\000\142\023\100\150\000\000"}; static struct {unsigned f; char r[16];} string20 = {851984, "\257\300\354\360\322\243\300\071\057\173\326\100\150\000\000"}; static struct { word f0[22]; 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[8]; } globalframe = { {0}, (word) StreamImage←P900, 0, (word) ChooseBandSize←P840, 0, (word) ChooseOverlap←P780, 0, (word) GetUnsafeBlock←P720, 0, (word) DrawInterleavedImage←P660, 0, (word) MakeInterleavedPixelArray←P600, 0, (word) InterleavedSamplesGetSamples←P540, 0, (word) SalvageBuffer←P480, 0, (word) ReleaseBuffer←P420, 0, (word) ObtainBuffer←P360, 0, (word) InterleavedSamplesMaxSampleValue←P300, 0, (word) DrawBufferedImage←P240, 0, (word) MakeBufferedPixelArray←P180, 0, (word) BufferedGetSamples←P120, 0, (word) BufferedMaxSampleValue←P60, 0, (word) ImagerImageWorksImpl←P0, {0} }; static void NoName←Q2424() { register ptr gf←c0234 = (ptr) &globalframe; word var←c23760; (* (( (ptr) gf←c0234)+11) ) = (word) XR←GetTypeIndex((word) &string1, 0, (word) &string2); (* (( (ptr) gf←c0234)+14) ) = (word) XR←GetTypeIndex((word) &string3, 0, (word) &string4); (* (( (ptr) gf←c0234)+16) ) = (word) XR←GetTypeIndex((word) &string5, 0, (word) &string2); (* (( (ptr) gf←c0234)+17) ) = (word) XR←GetTypeIndex((word) &string6, 0, (word) &string7); (* (( (ptr) gf←c0234)+19) ) = (word) XR←GetTypeIndex((word) &string8, 0, (word) &string9); (* (ptr) (( (bPt) gf←c0234)+80) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0234)+11) ), (word) &string10); (* (ptr) (( (bPt) gf←c0234)+84) ) = (word) XR←GetRefLiteral((* (( (ptr) gf←c0234)+11) ), (word) &string11); (void) XR←DeclareGlobalFrame((word) "ImagerImageWorksImpl", &globalframe, (word) XR←GetTypeIndex((word) &string12, 0, (word) &string13) , (word) (( (bPt) gf←c0234)+208)/* var←c21616 */ ); var←c23760 = (word) XR←ImportInterface((word) "ImagerColor", (word) XR←GetTypeIndexS((word) (&string14)), 32); (* (( (ptr) gf←c0234)+55)/* var←c21680 */ ) = var←c23760; (void) XR←ImportProcS(var←c23760, 67896835); (void) XR←ImportProcS(var←c23760, 67372801); var←c23760 = (word) XR←ImportInterface((word) "ImagerPixelArrayPrivate", (word) XR←GetTypeIndexS((word) (&string15)), 2); (* (( (ptr) gf←c0234)+54)/* var←c21648 */ ) = var←c23760; (void) XR←ImportProcS(var←c23760, 68944135); (void) XR←ImportProcS(var←c23760, 68681734); var←c23760 = (word) XR←ImportInterface((word) "ImagerSample", (word) XR←GetTypeIndexS((word) (&string16)), 60); (* (( (ptr) gf←c0234)+56)/* var←c21872 */ ) = var←c23760; (void) XR←ImportProcS(var←c23760, 267009); (void) XR←ImportProcS(var←c23760, 68425474); (void) XR←ImportProcS(var←c23760, 1322500); (void) XR←ImportProcS(var←c23760, 68686339); (void) XR←ImportProcS(var←c23760, 67377409); (void) XR←ImportProcS(var←c23760, 67896579); (void) XR←ImportProcS(var←c23760, 67633410); (void) XR←ImportProcS(var←c23760, 68949507); (void) XR←ImportProcS(var←c23760, 67905026); (void) XR←ImportProcS(var←c23760, 1050372); (void) XR←ImportProcS(var←c23760, 2107398); var←c23760 = (word) XR←ImportInterface((word) "ImagerTransformation", (word) XR←GetTypeIndexS((word) (&string17)), 55); (* (( (ptr) gf←c0234)+58)/* var←c22096 */ ) = var←c23760; (void) XR←ImportProcS(var←c23760, 269756930); (void) XR←ImportProcS(var←c23760, 67635458); (void) XR←ImportProcS(var←c23760, 67634689); var←c23760 = (word) XR←ImportInterface((word) "IO", (word) XR←GetTypeIndexS((word) (&string18)), 103); (* (( (ptr) gf←c0234)+59)/* var←c23632 */ ) = var←c23760; (void) XR←ImportProcS(var←c23760, 68160002); var←c23760 = (word) XR←ImportInterface((word) "SF", (word) XR←GetTypeIndexS((word) (&string19)), 19); (* (( (ptr) gf←c0234)+57)/* var←c22032 */ ) = var←c23760; (void) XR←ImportProcS(var←c23760, 135270145); (void) XR←ImportProcS(var←c23760, 134742273); var←c23760 = (word) XR←ExportInterface((word) "ImagerImageWorks", (word) XR←GetTypeIndexS((word) (&string20)), 3); (* (( (ptr) gf←c0234)+60)/* var←c23792 */ ) = var←c23760; (void) XR←ExportProcS(var←c23760, (word) (( (bPt) gf←c0234)+176)/* var←c21488 */ , 2359302, (word) "DrawBufferedImage"); (void) XR←ExportProcS(var←c23760, (word) (( (bPt) gf←c0234)+120)/* var←c21264 */ , 2621703, (word) "DrawInterleavedImage") ; (void) XR←ExportProcS(var←c23760, (word) (( (bPt) gf←c0234)+88)/* var←c21136 */ , 2621962, (word) "StreamImage"); } static void ImagerImageWorksImpl←P0(formal←c032, formal←c031) word formal←c032; word formal←c031; { register ptr gf←c23824 = (ptr) &globalframe; /* ImagerImageWorksImpl: */ SOURCE(194, 12241) SOURCE(765, 190) { word pd21; pd21 = (* (( (ptr) (* (( (ptr) gf←c23824)+54)/* var←c21648 */ ))+4) ); (* (( (ptr) gf←c23824)+8)/* bufferedClass←v3196 */ ) = (word) ( *( (fPt) ((* (ptr) pd21 ))))((* (( (ptr) gf←c23824)+21) ), (word) (( (bPt) gf←c23824)+200)/* var←c21584 */ , 0, (word) (( (bPt) gf←c23824)+192)/* var←c21552 */ , 0, 0, pd21); }; SOURCE(3157, 55) { word pd22; pd22 = (* (( (ptr) (* (( (ptr) gf←c23824)+55)/* var←c21680 */ ))+11) ); (* (( (ptr) gf←c23824)+9)/* black←v3336 */ ) = (word) ( *( (fPt) ((* (ptr) pd22 ))))((* (ptr) (&fc23) ), pd22); }; SOURCE(4013, 222) { word pd24; pd24 = (* (( (ptr) (* (( (ptr) gf←c23824)+54)/* var←c21648 */ ))+4) ); (* (( (ptr) gf←c23824)+10)/* interleavedSamplesClass←v3392 */ ) = (word) ( *( (fPt) ((* (ptr) pd24 ))))((* (( (ptr) gf←c23824)+20) ), (word) (( (bPt) gf←c23824)+168)/* var←c21456 */ , 0, (word) (( (bPt) gf←c23824)+136)/* var←c21328 */ , 0, 0, pd24); }; } static word BufferedMaxSampleValue←P60(pa←v3908, i←v3936) word pa←v3908; word i←v3936; { register ptr gf←c23856 = (ptr) &globalframe; word var←c3980; word data←v6692; word map←v6720; /* BufferedMaxSampleValue: */ SOURCE(1023, 230) SOURCE(1117, 40) data←v6692 = XR←Narrow((* (( (ptr) pa←v3908)+6) ), (* (( (ptr) gf←c23856)+16) )); SOURCE(1159, 28) { word var←c21712; var←c21712 = (* (ptr) data←v6692 ); { word limit25; map←v6720 = (* ((( (ptr) var←c21712)+6)+( limit25 = (* (( (ptr) var←c21712)+5) ), BCK(i←v3936, limit25) )) ); }; }; SOURCE(1189, 64) return(((word) Basics←BITSHIFT(1, (* (( (ptr) map←v6720)+5) )) - 1)); } static void BufferedGetSamples←P120(pa←v4040, i←v4068, s←v4096, f←v4124, buffer←v4152, start←v4180, count←v4208) word pa←v4040; word i←v4068; word s←v4096; word f←v4124; word buffer←v4152; word start←v4180; word count←v4208; { register ptr gf←c23888 = (ptr) &globalframe; word data←v6776; word map←v6804; word loFill←v6832; word hiFill←v6860; word dataCount←v6888; word sSize←v6916; word fSize←v6944; /* BufferedGetSamples: */ SOURCE(1259, 1034) SOURCE(1401, 40) data←v6776 = XR←Narrow((* (( (ptr) pa←v4040)+6) ), (* (( (ptr) gf←c23888)+16) )); SOURCE(1443, 28) { word var←c21776; var←c21776 = (* (ptr) data←v6776 ); { word limit26; map←v6804 = (* ((( (ptr) var←c21776)+6)+( limit26 = (* (( (ptr) var←c21776)+5) ), BCK(i←v4068, limit26) )) ); }; }; SOURCE(1473, 43) { word x27; loFill←v6832 = (x27 = ((* (( (ptr) data←v6776)+1) ) - f←v4124), MAX((int)(word), x27, 0)); }; SOURCE(1518, 64) { word x28; hiFill←v6860 = (x28 = ((f←v4124 + count←v4208) - ((* (( (ptr) pa←v4040)+3) ) - (* (( (ptr) data←v6776)+1) ))), MAX((int)(word), x28, 0)); }; SOURCE(1584, 36) dataCount←v6888 = ((count←v4208 - loFill←v6832) - hiFill←v6860); SOURCE(1622, 31) { word idx29; sSize←v6916 = ( idx29 = (* (( (ptr) (* (ptr) data←v6776 ))+3) ), SGNCK(idx29) ); }; SOURCE(1697, 31) { word idx30; fSize←v6944 = ( idx30 = (* (( (ptr) (* (ptr) data←v6776 ))+4) ), SGNCK(idx30) ); }; SOURCE(1772, 23) s←v4096 = (s←v4096 - (* (( (ptr) data←v6776)+1) )); SOURCE(1797, 55) if (( (int)s←v4096 < (int)0)) { SOURCE(1811, 11) s←v4096 = 0; } else { SOURCE(1822, 30) if (( (int)s←v4096 >= (int)sSize←v6916)) { SOURCE(1841, 11) s←v4096 = (sSize←v6916 - 1); }; }; SOURCE(1854, 154) if (( (int)dataCount←v6888 > (int)0)) { SOURCE(1878, 130) { W2 var←c21808; W2 var←c21840; var←c21808.f0 = s←v4096; var←c21808.f1 = ((f←v4124 - (* (( (ptr) data←v6776)+1) )) + loFill←v6832); var←c21840.f0 = 0; var←c21840.f1 = 1; { word pd31; pd31 = (* (( (ptr) (* (( (ptr) gf←c23888)+56)/* var←c21872 */ ))+44) ); (void) ( *( (fPt) ((* (ptr) pd31 ))))(map←v6804, var←c21808, var←c21840, buffer←v4152, SGNCK((start←v4180 + loFill←v6832)) , SGNCK(dataCount←v6888), pd31); }; }; }; SOURCE(2013, 128) if ((loFill←v6832 != 0)) { SOURCE(2034, 107) { word var←c21904; { W2 var←c21936; var←c21936.f0 = s←v4096; var←c21936.f1 = 0; { word pd32; pd32 = (* (( (ptr) (* (( (ptr) gf←c23888)+56)/* var←c21872 */ ))+42) ); var←c21904 = (word) ( *( (fPt) ((* (ptr) pd32 ))))(map←v6804, var←c21936, pd32); }; }; { word pd33; pd33 = (* (( (ptr) (* (( (ptr) gf←c23888)+56)/* var←c21872 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd33 ))))(buffer←v4152, var←c21904, start←v4180, loFill←v6832, pd33); }; }; }; SOURCE(2146, 147) if ((hiFill←v6860 != 0)) { SOURCE(2167, 126) { word var←c21968; { W2 var←c22000; var←c22000.f0 = s←v4096; var←c22000.f1 = (fSize←v6944 - 1); { word pd34; pd34 = (* (( (ptr) (* (( (ptr) gf←c23888)+56)/* var←c21872 */ ))+42) ); var←c21968 = (word) ( *( (fPt) ((* (ptr) pd34 ))))(map←v6804, var←c22000, pd34); }; }; { word pd35; pd35 = (* (( (ptr) (* (( (ptr) gf←c23888)+56)/* var←c21872 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd35 ))))(buffer←v4152, var←c21968, ((start←v4180 + count←v4208) - hiFill←v6860), hiFill←v6860, pd35) ; }; }; }; } static word MakeBufferedPixelArray←P180(pixelMap←v4268, borderSize←v4296) word pixelMap←v4268; word borderSize←v4296; { register ptr gf←c23920 = (ptr) &globalframe; word var←c4340; word samplesPerPixel←v7000; W2 delta←v7028; W2 size←v7056; word m←v7084; word new←v7112; W2 var←c22128; /* MakeBufferedPixelArray: */ SOURCE(2302, 849) SOURCE(2415, 47) samplesPerPixel←v7000 = (* (( (ptr) pixelMap←v4268)+5) ); SOURCE(2464, 40) { word pd36; pd36 = (* (( (ptr) (* (( (ptr) gf←c23920)+57)/* var←c22032 */ ))+5) ); (void) ( *( (fPt) ((* (ptr) pd36 ))))((word) &delta←v7028, (* (W2Pt) (( (ptr) pixelMap←v4268)+1) ), pd36); }; SOURCE(2506, 36) { word pd37; pd37 = (* (( (ptr) (* (( (ptr) gf←c23920)+57)/* var←c22032 */ ))+19) ); (void) ( *( (fPt) ((* (ptr) pd37 ))))((word) &size←v7056, (* (W4Pt) (( (ptr) pixelMap←v4268)+1) ), pd37); }; SOURCE(2544, 114) { W2 var←c22064; { float tf38; var←c22064.f0 = ( tf38 = (float)(int)((* (( (ptr) pixelMap←v4268)+1) ) - borderSize←v4296), *(word*)&tf38 ); }; { float tf39; var←c22064.f1 = ( tf39 = (float)(int)((* (( (ptr) pixelMap←v4268)+2) ) - borderSize←v4296), *(word*)&tf39 ); }; { word pd40; pd40 = (* (( (ptr) (* (( (ptr) gf←c23920)+58)/* var←c22096 */ ))+10) ); m←v7084 = (word) ( *( (fPt) ((* (ptr) pd40 ))))(var←c22064, pd40); }; }; SOURCE(2660, 24) new←v7112 = pixelMap←v4268; SOURCE(2686, 218) var←c22128.f0 = 0; var←c22128.f1 = 0; if ( ! XR←EqualWords(&delta←v7028, &var←c22128, 2)) { SOURCE(2711, 51) { word var←c22160; word var←c22192; word var←c22224; var←c22160 = BCK(samplesPerPixel←v7000, 67108863); var←c22192 = ((word) var←c22160 << 2); var←c22224 = XR←NewObject((24 + var←c22192), (* (( (ptr) gf←c23920)+17) )); (* (( (ptr) var←c22224)+5) ) = var←c22160; new←v7112 = var←c22224; }; SOURCE(2764, 21) (* (( (ptr) new←v7112)+1) ) = 0; (* (( (ptr) new←v7112)+2) ) = 0; (* (W2Pt) (( (ptr) new←v7112)+3) ) = size←v7056; SOURCE(2787, 117) { register word j←v7156 = 0; if ((j←v7156 >= samplesPerPixel←v7000)) { goto lab←L100000; }; lab←L100003: ; SOURCE(2825, 79) { word var←c22256; { W4 var←c22288; var←c22288.f0 = 0; var←c22288.f1 = 0; (* (W2Pt) (( (ptr) &var←c22288)+2) ) = size←v7056; { word pd41; word limit42; pd41 = (* (( (ptr) (* (( (ptr) gf←c23920)+56)/* var←c21872 */ ))+26) ); var←c22256 = (word) ( *( (fPt) ((* (ptr) pd41 ))))((* ((( (ptr) pixelMap←v4268)+6)+( limit42 = (* (( (ptr) pixelMap←v4268)+5) ), BCK(j←v7156, limit42) )) ), delta←v7028, var←c22288, pd41); }; }; { word limit43; (* ((( (ptr) new←v7112)+6)+( limit43 = (* (( (ptr) new←v7112)+5) ), BCK(j←v7156, limit43) )) ) = var←c22256; }; }; j←v7156 = (j←v7156 + 1); if ((j←v7156 < samplesPerPixel←v7000)) { goto lab←L100003; }; lab←L100000: ; }; }; SOURCE(2918, 233) { word var←c22384; word var←c22352; var←c22384 = XR←NewObject(8, (* (( (ptr) gf←c23920)+16) )); (* (ptr) var←c22384 ) = new←v7112; (* (( (ptr) var←c22384)+1) ) = borderSize←v4296; var←c22352 = var←c22384; { word pd44; pd44 = (* (( (ptr) (* (( (ptr) gf←c23920)+54)/* var←c21648 */ ))+5) ); return((word) ( *( (fPt) ((* (ptr) pd44 ))))((* (( (ptr) gf←c23920)+8)/* bufferedClass←v3196 */ ), var←c22352, 0, samplesPerPixel←v7000, (size←v7056.f0 + ((word) borderSize←v4296 << 1)), (size←v7056.f1 + ((word) borderSize←v4296 << 1)) , m←v7084, pd44)); }; }; } static void DrawBufferedImage←P240(device←v4400, buffer←v4428, box←v4456, colorOperator←v4484, pixelToView←v4512, viewToDevice←v4540) word device←v4400; word buffer←v4428; W4 box←v4456; word colorOperator←v4484; word pixelToView←v4512; word viewToDevice←v4540; { register ptr gf←c23952 = (ptr) &globalframe; word borderSize←v7200 = 2; word sSize←v7228; word fSize←v7256; /* DrawBufferedImage: */ SOURCE(3215, 789) SOURCE(3420, 36) sSize←v7228 = (box←v4456.f2 - box←v4456.f0); SOURCE(3458, 36) fSize←v7256 = (box←v4456.f3 - box←v4456.f1); SOURCE(3496, 508) if ( ( ( (int)sSize←v7228 > (int)0) ? ( (int)fSize←v7256 > (int)0) : 0 ) ) { SOURCE(3528, 478) { word pixelToDevice←v7300; word pa←v7328; word color←v7356; SOURCE(3530, 86) { word pd45; pd45 = (* (( (ptr) (* (( (ptr) gf←c23952)+58)/* var←c22096 */ ))+13) ); pixelToDevice←v7300 = (word) ( *( (fPt) ((* (ptr) pd45 ))))(pixelToView←v4512, viewToDevice←v4540, pd45); }; SOURCE(3618, 76) pa←v7328 = (word) MakeBufferedPixelArray←P180(buffer←v4428, borderSize←v7200); SOURCE(3696, 110) { word pd46; pd46 = (* (( (ptr) (* (( (ptr) gf←c23952)+55)/* var←c21680 */ ))+10) ); color←v7356 = (word) ( *( (fPt) ((* (ptr) pd46 ))))(pa←v7328, pixelToView←v4512, colorOperator←v4484, pd46); }; SOURCE(3808, 50) { word pd47; pd47 = (* (ptr) (* (( (ptr) device←v4400)+4) ) ); (void) ( *( (fPt) ((* (ptr) pd47 ))))(device←v4400, color←v7356, viewToDevice←v4540, pd47); }; SOURCE(3860, 92) { W4 rectangle←v20992; { float tf48; rectangle←v20992.f0 = ( tf48 = (float)(int)box←v4456.f0, *(word*)&tf48 ); }; { float tf49; rectangle←v20992.f1 = ( tf49 = (float)(int)box←v4456.f1, *(word*)&tf49 ); }; { float tf50; rectangle←v20992.f2 = ( tf50 = (float)(int)sSize←v7228, *(word*)&tf50 ); }; { float tf51; rectangle←v20992.f3 = ( tf51 = (float)(int)fSize←v7256, *(word*)&tf51 ); }; { word pd52; pd52 = (* (( (ptr) (* (ptr) device←v4400 ))+2) ); (void) ( *( (fPt) ((* (ptr) pd52 ))))(device←v4400, rectangle←v20992, pixelToDevice←v7300, pd52); }; }; SOURCE(3954, 50) { word pd53; pd53 = (* (ptr) (* (( (ptr) device←v4400)+4) ) ); (void) ( *( (fPt) ((* (ptr) pd53 ))))(device←v4400, (* (( (ptr) gf←c23952)+9)/* black←v3336 */ ), viewToDevice←v4540, pd53) ; }; }; }; } static word InterleavedSamplesMaxSampleValue←P300(pa←v4740, i←v4768) word pa←v4740; word i←v4768; { register ptr gf←c23984 = (ptr) &globalframe; word var←c4812; word data←v7400; /* InterleavedSamplesMaxSampleValue: */ SOURCE(4393, 291) SOURCE(4497, 53) data←v7400 = XR←Narrow((* (( (ptr) pa←v4740)+6) ), (* (( (ptr) gf←c23984)+19) )); SOURCE(4552, 58) if ((i←v4768 > (* (( (ptr) data←v7400)+2) ))) { SOURCE(4585, 25) (void) XR←RaiseBoundsFault(); }; SOURCE(4612, 72) { word var←c0249; { word var←c22480; { word var←c22512; word map←v21088; map←v21088 = (* (ptr) data←v7400 ); var←c22512 = (* (( (ptr) map←v21088)+5) ); var←c22480 = var←c22512; }; var←c0249 = ((word) Basics←BITSHIFT(1, var←c22480) - 1); }; return(var←c0249); }; } static word ObtainBuffer←P360(data←v4944) word data←v4944; { register ptr gf←c24016 = (ptr) &globalframe; word b←v5000; /* ObtainBuffer: */ SOURCE(4769, 146) (void) (XR←MonitorEntry((word) (( (bPt) gf←c24016)+16)/* LOCK←v2972 */ )); SOURCE(4769, 146) b←v5000 = 0; SOURCE(4869, 21) b←v5000 = (* (( (ptr) data←v4944)+3) ); SOURCE(4892, 23) (* (( (ptr) data←v4944)+3) ) = 0; SOURCE(4769, 146) (void) (XR←MonitorExit((word) (( (bPt) gf←c24016)+16)/* LOCK←v2972 */ )); return(b←v5000); } static void ReleaseBuffer←P420(data←v5072, b←v5100) word data←v5072; word b←v5100; { register ptr gf←c24048 = (ptr) &globalframe; /* ReleaseBuffer: */ SOURCE(4921, 114) (void) (XR←MonitorEntry((word) (( (bPt) gf←c24048)+16)/* LOCK←v2972 */ )); SOURCE(5013, 22) (* (( (ptr) data←v5072)+3) ) = b←v5100; SOURCE(4921, 114) (void) (XR←MonitorExit((word) (( (bPt) gf←c24048)+16)/* LOCK←v2972 */ )); return; } static word SalvageBuffer←P480(pa←v5184) word pa←v5184; { register ptr gf←c24080 = (ptr) &globalframe; word scratch←v5228; /* SalvageBuffer: */ SOURCE(5039, 179) SOURCE(5039, 179) scratch←v5228 = 0; SOURCE(5126, 92) { word var←c22544; var←c22544 = (* (( (ptr) pa←v5184)+6) ); if ((var←c22544 == 0)) { goto lab←L100005; }; if (((* (( (ptr) gf←c24080)+19) ) == XR←GetReferentType(var←c22544))) { { word data←v7456; data←v7456 = var←c22544; SOURCE(5190, 28) scratch←v5228 = (word) ObtainBuffer←P360(data←v7456); }; } else { lab←L100005: ; }; }; SOURCE(5039, 179) return(scratch←v5228); } static void InterleavedSamplesGetSamples←P540(pa←v5304, i←v5332, s←v5360, f←v5388, buffer←v5416, start←v5444, count←v5472) word pa←v5304; word i←v5332; word s←v5360; word f←v5388; word buffer←v5416; word start←v5444; word count←v5472; { register ptr gf←c24112 = (ptr) &globalframe; word data←v7512; word fSize←v7540; word sSize←v7568; /* InterleavedSamplesGetSamples: */ SOURCE(5233, 1925) SOURCE(5385, 53) data←v7512 = XR←Narrow((* (( (ptr) pa←v5304)+6) ), (* (( (ptr) gf←c24112)+19) )); SOURCE(5440, 48) { W4 var←c22576; word map←v20896; word var←c0250; map←v20896 = (* (ptr) data←v7512 ); var←c22576 = (* (W4Pt) map←v20896 ); var←c0250 = var←c22576.f3; fSize←v7540 = SGNCK(var←c0250); }; SOURCE(5553, 48) { W4 var←c22608; word map←v20848; word var←c0251; map←v20848 = (* (ptr) data←v7512 ); var←c22608 = (* (W4Pt) map←v20848 ); var←c0251 = var←c22608.f2; sSize←v7568 = SGNCK(var←c0251); }; SOURCE(5645, 23) s←v5360 = (s←v5360 - (* (( (ptr) data←v7512)+1) )); SOURCE(5670, 55) if (( (int)s←v5360 < (int)0)) { SOURCE(5684, 11) s←v5360 = 0; } else { SOURCE(5695, 30) if (( (int)s←v5360 >= (int)sSize←v7568)) { SOURCE(5714, 11) s←v5360 = (sSize←v7568 - 1); }; }; SOURCE(5727, 1431) if ((i←v5332 > (* (( (ptr) data←v7512)+2) ))) { SOURCE(5760, 31) (void) XR←RaiseBoundsFault(); } else { SOURCE(5791, 1369) { word b←v7624; SOURCE(5793, 43) b←v7624 = (word) ObtainBuffer←P360(data←v7512); SOURCE(5838, 40) if ((b←v7624 == 0)) { SOURCE(5854, 24) b←v7624 = XR←NewObject(8, (* (( (ptr) gf←c24112)+14) )); }; SOURCE(5880, 117) if (((* (( (ptr) b←v7624)+1) ) == 0) || ((* (( (ptr) (* (( (ptr) b←v7624)+1) ))+1) ) != fSize←v7540)) { SOURCE(5935, 41) { word pd54; pd54 = (* (( (ptr) (* (( (ptr) gf←c24112)+56)/* var←c21872 */ ))+5) ); (* (( (ptr) b←v7624)+1) ) = (word) ( *( (fPt) ((* (ptr) pd54 ))))(fSize←v7540, 0, pd54); }; SOURCE(5978, 19) (* (ptr) (* (( (ptr) b←v7624)+1) ) ) = 0; }; SOURCE(6002, 154) if (( (int)(* (ptr) b←v7624 ) != (int)s←v5360) || ((* (ptr) (* (( (ptr) b←v7624)+1) ) ) != fSize←v7540)) { SOURCE(6047, 23) (* (ptr) (* (( (ptr) b←v7624)+1) ) ) = fSize←v7540; SOURCE(6072, 75) { W2 var←c22672; W2 var←c22704; var←c22672.f0 = s←v5360; var←c22672.f1 = 0; var←c22704.f0 = 0; var←c22704.f1 = 1; { word pd55; pd55 = (* (( (ptr) (* (( (ptr) gf←c24112)+56)/* var←c21872 */ ))+44) ); (void) ( *( (fPt) ((* (ptr) pd55 ))))((* (ptr) data←v7512 ), var←c22672, var←c22704, (* (( (ptr) b←v7624)+1) ), 0, 2147483647, pd55) ; }; }; SOURCE(6149, 7) (* (ptr) b←v7624 ) = SGNCK(s←v5360); }; SOURCE(6169, 964) { word loFill←v7680; word hiFill←v7708; word dataCount←v7736; SOURCE(6171, 43) { word x56; loFill←v7680 = (x56 = ((* (( (ptr) data←v7512)+1) ) - f←v5388), MAX((int)(word), x56, 0)); }; SOURCE(6216, 64) { word x57; hiFill←v7708 = (x57 = ((f←v5388 + count←v5472) - ((* (( (ptr) pa←v5304)+3) ) - (* (( (ptr) data←v7512)+1) ))), MAX((int)(word), x57, 0)); }; SOURCE(6282, 36) dataCount←v7736 = ((count←v5472 - loFill←v7680) - hiFill←v7708); SOURCE(6320, 529) if (( (int)dataCount←v7736 > (int)0)) { SOURCE(6342, 518) { word src←v7780; word srcP←v7808; word srcDelta←v7836; word dst←v7864; SOURCE(6344, 213) { word pd58; word idx59; pd58 = (* (( (ptr) (* (( (ptr) gf←c24112)+56)/* var←c21872 */ ))+9) ); src←v7780 = (word) ( *( (fPt) ((* (ptr) pd58 ))))((* (( (ptr) b←v7624)+1) ), (IOP2( * , (int)((f←v5388 - (* (( (ptr) data←v7512)+1) )) + loFill←v7680), (int)(* (( (ptr) data←v7512)+2) )) + i←v5332), ( idx59 = (word) (IOP2( * , (int)dataCount←v7736, (int)(* (( (ptr) data←v7512)+2) )) - ((* (( (ptr) data←v7512)+2) ) - 1)), SGNCK(idx59) ), pd58); }; SOURCE(6559, 38) srcP←v7808 = src←v7780; SOURCE(6599, 55) srcDelta←v7836 = ((* (( (ptr) data←v7512)+2) ) << 2); SOURCE(6656, 118) { word pd60; pd60 = (* (( (ptr) (* (( (ptr) gf←c24112)+56)/* var←c21872 */ ))+9) ); dst←v7864 = (word) ( *( (fPt) ((* (ptr) pd60 ))))(buffer←v5416, SGNCK((start←v5444 + loFill←v7680)), SGNCK(dataCount←v7736) , pd60); }; SOURCE(6776, 73) { register word k←v7944 = 0; register word noName←c22736; noName←c22736 = count←v5472; if ((k←v7944 >= noName←c22736)) { goto lab←L100008; }; lab←L100011: ; SOURCE(6809, 16) (* (( (ptr) dst←v7864)+k←v7944) ) = (* (ptr) srcP←v7808 ); SOURCE(6827, 22) srcP←v7808 = (srcP←v7808 + srcDelta←v7836); k←v7944 = (k←v7944 + 1); if ((k←v7944 < noName←c22736)) { goto lab←L100011; }; lab←L100008: ; }; }; }; SOURCE(6863, 110) if ((loFill←v7680 != 0)) { SOURCE(6884, 89) { word var←c22768; word var←c0252; var←c22768 = (* (( (ptr) b←v7624)+1) ); { word limit61; var←c0252 = (* ((( (ptr) var←c22768)+2)+( limit61 = (* (( (ptr) var←c22768)+1) ), BCK(i←v5332, limit61) )) ); }; { word pd62; pd62 = (* (( (ptr) (* (( (ptr) gf←c24112)+56)/* var←c21872 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd62 ))))(buffer←v5416, var←c0252, start←v5444, loFill←v7680, pd62); }; }; }; SOURCE(6978, 150) if ((hiFill←v7708 != 0)) { SOURCE(6999, 129) { word var←c22800; word var←c22832; word var←c0253; var←c22800 = ((fSize←v7540 - (* (( (ptr) data←v7512)+2) )) + i←v5332); var←c22832 = (* (( (ptr) b←v7624)+1) ); { word limit63; var←c0253 = (* ((( (ptr) var←c22832)+2)+( limit63 = (* (( (ptr) var←c22832)+1) ), BCK(var←c22800, limit63) )) ); }; { word pd64; pd64 = (* (( (ptr) (* (( (ptr) gf←c24112)+56)/* var←c21872 */ ))+11) ); (void) ( *( (fPt) ((* (ptr) pd64 ))))(buffer←v5416, var←c0253, ((start←v5444 + count←v5472) - hiFill←v7708), hiFill←v7708, pd64) ; }; }; }; }; SOURCE(7136, 22) (void) ReleaseBuffer←P420(data←v7512, b←v7624); }; }; } static word MakeInterleavedPixelArray←P600(sampleMap←v5532, samplesPerPixel←v5560, borderSize←v5588, scratch←v5616) word sampleMap←v5532; word samplesPerPixel←v5560; word borderSize←v5588; word scratch←v5616; { register ptr gf←c24144 = (ptr) &globalframe; word var←c5672; W4 box←v7988; word data←v8016; word pa←v8044; /* MakeInterleavedPixelArray: */ SOURCE(7167, 947) SOURCE(7340, 44) box←v7988 = (* (W4Pt) sampleMap←v5532 ); SOURCE(7386, 192) { word var←c22864; word var←c22896; { word pd65; pd65 = (* (( (ptr) (* (( (ptr) gf←c24144)+56)/* var←c21872 */ ))+29) ); var←c22864 = (word) ( *( (fPt) ((* (ptr) pd65 ))))(sampleMap←v5532, pd65); }; var←c22896 = XR←NewObject(16, (* (( (ptr) gf←c24144)+19) )); (* (ptr) var←c22896 ) = var←c22864; (* (( (ptr) var←c22896)+1) ) = borderSize←v5588; (* (( (ptr) var←c22896)+2) ) = samplesPerPixel←v5560; data←v8016 = var←c22896; }; SOURCE(7580, 338) { word var←c22928; { W2 var←c22960; { float tf66; var←c22960.f0 = ( tf66 = (float)(int)(box←v7988.f0 - borderSize←v5588), *(word*)&tf66 ); }; { float tf67; var←c22960.f1 = ( tf67 = (float)(int)(box←v7988.f1 - borderSize←v5588), *(word*)&tf67 ); }; { word pd68; pd68 = (* (( (ptr) (* (( (ptr) gf←c24144)+58)/* var←c22096 */ ))+10) ); var←c22928 = (word) ( *( (fPt) ((* (ptr) pd68 ))))(var←c22960, pd68); }; }; { word pd69; pd69 = (* (( (ptr) (* (( (ptr) gf←c24144)+54)/* var←c21648 */ ))+5) ); pa←v8044 = (word) ( *( (fPt) ((* (ptr) pd69 ))))((* (( (ptr) gf←c24144)+10)/* interleavedSamplesClass←v3392 */ ), data←v8016, 0, samplesPerPixel←v5560, ((box←v7988.f2 - box←v7988.f0) + ((word) borderSize←v5588 << 1)), (IOP2( / , (int)(box←v7988.f3 - box←v7988.f1), (int)samplesPerPixel←v5560) + ((word) borderSize←v5588 << 1)) , var←c22928, pd69); }; }; SOURCE(7920, 165) { word var←c22992; var←c22992 = scratch←v5616; if ((var←c22992 == 0)) { goto lab←L100012; }; if (((* (( (ptr) gf←c24144)+14) ) == XR←GetReferentType(var←c22992))) { { word b←v8100; b←v8100 = var←c22992; SOURCE(7973, 112) if ( ( ((* (( (ptr) b←v8100)+1) ) != 0) ? ( (int)(* (( (ptr) (* (( (ptr) b←v8100)+1) ))+1) ) == (int)(box←v7988.f3 - box←v7988.f1)) : 0 ) ) { SOURCE(8043, 19) (* (ptr) (* (( (ptr) b←v8100)+1) ) ) = 0; SOURCE(8064, 21) (* (( (ptr) data←v8016)+3) ) = b←v8100; }; }; } else { lab←L100012: ; }; }; SOURCE(8102, 12) return(pa←v8044); } static void DrawInterleavedImage←P660(device←v5732, buffer←v5760, samplesPerPixel←v5788, box←v5816, colorOperator←v5844, pixelToView←v5872, viewToDevice←v5900) word device←v5732; word buffer←v5760; word samplesPerPixel←v5788; W4 box←v5816; word colorOperator←v5844; word pixelToView←v5872; word viewToDevice←v5900; { register ptr gf←c24176 = (ptr) &globalframe; word borderSize←v8156 = 2; word sSize←v8184; word fSize←v8212; /* DrawInterleavedImage: */ SOURCE(8118, 836) SOURCE(8350, 36) sSize←v8184 = (box←v5816.f2 - box←v5816.f0); SOURCE(8388, 36) fSize←v8212 = (box←v5816.f3 - box←v5816.f1); SOURCE(8426, 528) if ( ( ( (int)sSize←v8184 > (int)0) ? ( (int)fSize←v8212 > (int)0) : 0 ) ) { SOURCE(8458, 498) { word pixelToDevice←v8256; word pa←v8284; word color←v8312; SOURCE(8460, 86) { word pd70; pd70 = (* (( (ptr) (* (( (ptr) gf←c24176)+58)/* var←c22096 */ ))+13) ); pixelToDevice←v8256 = (word) ( *( (fPt) ((* (ptr) pd70 ))))(pixelToView←v5872, viewToDevice←v5900, pd70); }; SOURCE(8548, 96) pa←v8284 = (word) MakeInterleavedPixelArray←P600(buffer←v5760, samplesPerPixel←v5788, borderSize←v8156, 0); SOURCE(8646, 110) { word pd71; pd71 = (* (( (ptr) (* (( (ptr) gf←c24176)+55)/* var←c21680 */ ))+10) ); color←v8312 = (word) ( *( (fPt) ((* (ptr) pd71 ))))(pa←v8284, pixelToView←v5872, colorOperator←v5844, pd71); }; SOURCE(8758, 50) { word pd72; pd72 = (* (ptr) (* (( (ptr) device←v5732)+4) ) ); (void) ( *( (fPt) ((* (ptr) pd72 ))))(device←v5732, color←v8312, viewToDevice←v5900, pd72); }; SOURCE(8810, 92) { W4 rectangle←v20944; { float tf73; rectangle←v20944.f0 = ( tf73 = (float)(int)box←v5816.f0, *(word*)&tf73 ); }; { float tf74; rectangle←v20944.f1 = ( tf74 = (float)(int)box←v5816.f1, *(word*)&tf74 ); }; { float tf75; rectangle←v20944.f2 = ( tf75 = (float)(int)sSize←v8184, *(word*)&tf75 ); }; { float tf76; rectangle←v20944.f3 = ( tf76 = (float)(int)fSize←v8212, *(word*)&tf76 ); }; { word pd77; pd77 = (* (( (ptr) (* (ptr) device←v5732 ))+2) ); (void) ( *( (fPt) ((* (ptr) pd77 ))))(device←v5732, rectangle←v20944, pixelToDevice←v8256, pd77); }; }; SOURCE(8904, 50) { word pd78; pd78 = (* (ptr) (* (( (ptr) device←v5732)+4) ) ); (void) ( *( (fPt) ((* (ptr) pd78 ))))(device←v5732, (* (( (ptr) gf←c24176)+9)/* black←v3336 */ ), viewToDevice←v5900, pd78) ; }; }; }; } static void GetUnsafeBlock←P720(formal←c0181, map←v5960) word formal←c0181; word map←v5960; { W3 var←c6004; W2 size←v8356; word base←v8384; word startIndex←v8412; /* GetUnsafeBlock: */ SOURCE(8963, 658) SOURCE(9040, 40) { word map←v20704; map←v20704 = map←v5960; { W4 b←v18168; b←v18168 = (* (W4Pt) map←v20704 ); size←v8356.f0 = (b←v18168.f2 - b←v18168.f0); size←v8356.f1 = (b←v18168.f3 - b←v18168.f1); }; }; SOURCE(9082, 61) base←v8384 = (* (( (ptr) map←v5960)+8) ); SOURCE(9145, 35) startIndex←v8412 = ((* (( (ptr) map←v5960)+9) ) >> 3); SOURCE(9182, 439) if (( (int)size←v8356.f0 == (int)0) || ( (int)size←v8356.f1 == (int)0)) { SOURCE(9215, 61) var←c6004.f0 = base←v8384; var←c6004.f1 = startIndex←v8412; var←c6004.f2 = 0; /* removed tail goto */ } else { SOURCE(9276, 345) { word bitsPerLine←v8468; word dataBitsPerLine←v8496; word fillBitsPerLine←v8524; word padStart←v8552; word nBytes←v8580; SOURCE(9278, 38) { word idx79; bitsPerLine←v8468 = ( idx79 = (* (( (ptr) map←v5960)+7) ), SGNCK(idx79) ); }; SOURCE(9318, 63) { word var←c23152; word map←v21040; map←v21040 = map←v5960; var←c23152 = (* (( (ptr) map←v21040)+5) ); { word idx80; dataBitsPerLine←v8496 = (var←c23152 * ( idx80 = (word) size←v8356.f1, SGNCK(idx80) )); }; }; SOURCE(9383, 56) fillBitsPerLine←v8524 = BCK((bitsPerLine←v8468 - dataBitsPerLine←v8496), 32); SOURCE(9441, 40) { word idx81; padStart←v8552 = ( idx81 = ((* (( (ptr) map←v5960)+9) ) & 7), BCK(idx81, 1) ); }; SOURCE(9483, 46) { word idx82; nBytes←v8580 = ((word) ((( idx82 = (word) size←v8356.f0, SGNCK(idx82) ) * bitsPerLine←v8468) + 7) >> 3); }; SOURCE(9531, 90) var←c6004.f0 = (* (( (ptr) map←v5960)+8) ); var←c6004.f1 = ((* (( (ptr) map←v5960)+9) ) >> 3); var←c6004.f2 = nBytes←v8580; /* removed tail goto */ }; }; (* (W3Pt) formal←c0181 ) = var←c6004; return; } static word ChooseOverlap←P780(device←v6064, pixelToDevice←v6092, padMod←v6120) word device←v6064; word pixelToDevice←v6092; word padMod←v6120; { register ptr gf←c24208 = (ptr) &globalframe; word var←c6164; word overlap←v8664 = 1; /* ChooseOverlap: */ SOURCE(9628, 511) SOURCE(9745, 222) lab←L100018: ; SOURCE(9745, 222) { W4 d←v8708; SOURCE(9805, 105) { W4 var←c0189; { W4 var←c23248; var←c23248.f0 = (* (ptr) &fc83 ); var←c23248.f1 = (* (ptr) &fc83 ); { float tf84; var←c23248.f2 = ( tf84 = (float)(unsigned)overlap←v8664, *(word*)&tf84 ); }; { float tf85; var←c23248.f3 = ( tf85 = (float)(unsigned)overlap←v8664, *(word*)&tf85 ); }; { word pd86; pd86 = (* (( (ptr) (* (( (ptr) gf←c24208)+58)/* var←c22096 */ ))+46) ); (void) ( *( (fPt) ((* (ptr) pd86 ))))((word) &var←c0189, pixelToDevice←v6092, var←c23248, pd86); }; }; d←v8708 = var←c0189; }; SOURCE(9912, 30) { word x87; word x89; word x90; word x91; if ( ( (( x87 = d←v8708.f3, *(float*)&x87 ) >= ( x89 = (* (ptr) &fc88 ), *(float*)&x89 )) ? (( x90 = d←v8708.f2, *(float*)&x90 ) >= ( x91 = (* (ptr) &fc88 ), *(float*)&x91 )) : 0 ) ) { SOURCE(9942, 4) goto lab←L100017; }; }; SOURCE(9948, 19) overlap←v8664 = (overlap←v8664 + 1); }; goto lab←L100018; lab←L100017: ; SOURCE(9978, 95) lab←L100021: ; if ((((overlap←v8664 * padMod←v6120) & 7) != 0)) { } else { goto lab←L100019; }; SOURCE(10054, 19) overlap←v8664 = (overlap←v8664 + 1); goto lab←L100021; lab←L100019: ; SOURCE(10084, 55) return(overlap←v8664); } static word ChooseBandSize←P840(sSize←v6224, fSize←v6252, bitsPerSample←v6280, samplesPerPixel←v6308) word sSize←v6224; word fSize←v6252; word bitsPerSample←v6280; word samplesPerPixel←v6308; { word var←c6352; /* ChooseBandSize: */ SOURCE(10143, 130) SOURCE(10249, 24) return((MIN( (unsigned) , sSize←v6224, 64))); } static void StreamImage←P900(device←v6412, sSize←v6440, fSize←v6468, bitsPerSample←v6496, samplesPerPixel←v6524, padMod←v6552, pixelToView←v6580, viewToDevice←v6608, co←v6636, source←v6664) word device←v6412; word sSize←v6440; word fSize←v6468; word bitsPerSample←v6496; word samplesPerPixel←v6524; word padMod←v6552; word pixelToView←v6580; word viewToDevice←v6608; word co←v6636; word source←v6664; { register ptr gf←c24240 = (ptr) &globalframe; /* StreamImage: */ SOURCE(10277, 2158) SOURCE(10507, 1928) if ( ( (sSize←v6440 != 0) ? (fSize←v6468 != 0) : 0 ) ) { SOURCE(10539, 1898) { word pixelToDevice←v8752; word bandSize←v8780; word overlapSize←v8808; word fSizeBand←v8836; word padModPred←v8864; word bitsPerLine←v8892; word bandStore←v8920; word band←v8948 = 0; W4 box←v8976; SOURCE(10541, 86) { word pd92; pd92 = (* (( (ptr) (* (( (ptr) gf←c24240)+58)/* var←c22096 */ ))+13) ); pixelToDevice←v8752 = (word) ( *( (fPt) ((* (ptr) pd92 ))))(pixelToView←v6580, viewToDevice←v6608, pd92); }; SOURCE(10629, 122) bandSize←v8780 = (word) ChooseBandSize←P840(sSize←v6440, fSize←v6468, bitsPerSample←v6496, samplesPerPixel←v6524); SOURCE(10753, 95) overlapSize←v8808 = ( (bandSize←v8780 == sSize←v6440) ? 0 : (word) ChooseOverlap←P780(device←v6412, pixelToDevice←v8752, padMod←v6552) ) ; SOURCE(10850, 38) { word idx93; fSizeBand←v8836 = ( idx93 = (word) (fSize←v6468 * samplesPerPixel←v6524), SGNCK(idx93) ); }; SOURCE(10890, 26) padModPred←v8864 = SGNCK((padMod←v6552 - 1)); SOURCE(10918, 81) { word idx94; bitsPerLine←v8892 = ( idx94 = (word) (((((bitsPerSample←v6496 * samplesPerPixel←v6524) * fSize←v6468) + padModPred←v8864) / padMod←v6552) * padMod←v6552), SGNCK(idx94) ); }; SOURCE(11001, 204) { W4 var←c23280; var←c23280.f0 = INEG(overlapSize←v8808); var←c23280.f1 = 0; var←c23280.f2 = SGNCK((bandSize←v8780 + overlapSize←v8808)); var←c23280.f3 = fSizeBand←v8836; { word pd95; pd95 = (* (( (ptr) (* (( (ptr) gf←c24240)+56)/* var←c21872 */ ))+22) ); bandStore←v8920 = (word) ( *( (fPt) ((* (ptr) pd95 ))))(var←c23280, BCK(bitsPerSample←v6496, 33), bitsPerLine←v8892, pd95) ; }; }; SOURCE(11287, 16) box←v8976.f0 = 0; box←v8976.f1 = 0; box←v8976.f2 = 0; box←v8976.f3 = 0; SOURCE(11344, 1039) lab←L100024: ; SOURCE(11344, 1039) { word newBand←v9020 = 0; word readBand←v9048 = 0; SOURCE(11438, 21) box←v8976.f0 = box←v8976.f2; SOURCE(11461, 13) box←v8976.f1 = 0; SOURCE(11476, 30) box←v8976.f2 = (box←v8976.f2 + bandSize←v8780); SOURCE(11508, 17) box←v8976.f3 = fSize←v6468; SOURCE(11527, 43) if (( (int)box←v8976.f2 > (int)sSize←v6440)) { SOURCE(11553, 17) box←v8976.f2 = sSize←v6440; }; SOURCE(11572, 31) if (( (int)box←v8976.f0 >= (int)box←v8976.f2)) { SOURCE(11603, 4) goto lab←L100023; }; SOURCE(11609, 139) { word var←c23344; { word var←c23440; { W2 var←c23376; W4 var←c23408; var←c23376.f0 = box←v8976.f0; var←c23376.f1 = 0; var←c23408.f0 = 0; var←c23408.f1 = 0; var←c23408.f2 = sSize←v6440; var←c23408.f3 = fSizeBand←v8836; { word pd96; pd96 = (* (( (ptr) (* (( (ptr) gf←c24240)+56)/* var←c21872 */ ))+26) ); var←c23440 = (word) ( *( (fPt) ((* (ptr) pd96 ))))(bandStore←v8920, var←c23376, var←c23408, pd96); }; }; if ((var←c23440 == 0)) { goto lab←L100025; }; if (((* (( (ptr) var←c23440)+6) ) == 0)) { goto lab←L100025; }; (void) XR←RaiseError(XR←NarrowFault, 0); lab←L100025: ; var←c23344 = var←c23440; }; newBand←v9020 = var←c23344; readBand←v9048 = var←c23344; }; SOURCE(11750, 162) if ((band←v8948 != 0)) { SOURCE(11771, 46) { W2 var←c23472; var←c23472.f0 = 0; var←c23472.f1 = 0; { word pd97; pd97 = (* (( (ptr) (* (( (ptr) gf←c24240)+56)/* var←c21872 */ ))+50) ); (void) ( *( (fPt) ((* (ptr) pd97 ))))(newBand←v9020, band←v8948, var←c23472, 0, pd97); }; }; SOURCE(11819, 93) { word var←c23600; { W4 var←c23536; word map←v20800; word var←c23504; map←v20800 = band←v8948; var←c23536 = (* (W4Pt) map←v20800 ); var←c23504 = var←c23536.f2; { W4 var←c23568; var←c23568.f0 = var←c23504; var←c23568.f1 = 0; var←c23568.f2 = 2147483647; var←c23568.f3 = 2147483647; { word pd98; pd98 = (* (( (ptr) (* (( (ptr) gf←c24240)+56)/* var←c21872 */ ))+27) ); var←c23600 = (word) ( *( (fPt) ((* (ptr) pd98 ))))(readBand←v9048, var←c23568, pd98); }; }; }; if ((var←c23600 == 0)) { goto lab←L100027; }; if (((* (( (ptr) var←c23600)+6) ) == 0)) { goto lab←L100027; }; (void) XR←RaiseError(XR←NarrowFault, 0); lab←L100027: ; readBand←v9048 = var←c23600; }; }; SOURCE(11917, 14) band←v8948 = newBand←v9020; SOURCE(11941, 272) { W3 block←v9092; word bytes←v9120; SOURCE(11943, 52) (void) GetUnsafeBlock←P720((word) &block←v9092, readBand←v9048); SOURCE(11997, 45) { word pd99; pd99 = (* (( (ptr) (* (( (ptr) gf←c24240)+59)/* var←c23632 */ ))+14) ); bytes←v9120 = (word) ( *( (fPt) ((* (ptr) pd99 ))))(source←v6664, block←v9092, pd99); }; SOURCE(12044, 164) if (( (int)bytes←v9120 < (int)block←v9092.f2)) { SOURCE(12074, 67) { W4 var←c23664; word map←v20752; word var←c0254; map←v20752 = readBand←v9048; var←c23664 = (* (W4Pt) map←v20752 ); var←c0254 = var←c23664.f0; { word idx100; sSize←v6440 = ( idx100 = (word) (var←c0254 + IOP2( / , (int)IOP2( * , (int)bytes←v9120, (int)8), (int)bitsPerLine←v8892)), SGNCK(idx100) ); }; }; box←v8976.f2 = sSize←v6440; SOURCE(12143, 65) { word var←c23728; { W4 var←c23696; var←c23696.f0 = 0; var←c23696.f1 = 0; var←c23696.f2 = sSize←v6440; var←c23696.f3 = fSizeBand←v8836; { word pd101; pd101 = (* (( (ptr) (* (( (ptr) gf←c24240)+56)/* var←c21872 */ ))+27) ); var←c23728 = (word) ( *( (fPt) ((* (ptr) pd101 ))))(band←v8948, var←c23696, pd101); }; }; if ((var←c23728 == 0)) { goto lab←L100029; }; if (((* (( (ptr) var←c23728)+6) ) == 0)) { goto lab←L100029; }; (void) XR←RaiseError(XR←NarrowFault, 0); lab←L100029: ; band←v8948 = var←c23728; }; }; }; SOURCE(12216, 167) (void) DrawInterleavedImage←P660(device←v6412, band←v8948, samplesPerPixel←v6524, box←v8976, co←v6636, pixelToView←v6580 , viewToDevice←v6608); }; goto lab←L100024; lab←L100023: ; SOURCE(12394, 41) { word pd102; pd102 = (* (( (ptr) (* (( (ptr) gf←c24240)+56)/* var←c21872 */ ))+23) ); (void) ( *( (fPt) ((* (ptr) pd102 ))))(bandStore←v8920, pd102); }; }; }; } /* file: ImagerImageWorksImpl, module: ImagerImageWorksImpl, compiled at: July 28, 1993 10:19:34 am PDT */ extern void XR←install←ImagerImageWorksImpl() { NoName←Q2424(); } extern void XR←run←ImagerImageWorksImpl() { XR←Start(&globalframe); }