$ od -c -N 50000 [_CDMiwok_01_]<bonsai2.0>cedar>release>CII>ciimaskprogramexamples.c!2 0000000 / * c i i m a s k p r o g r a 0000020 m e x a m p l e s . c \n * C o 0000040 p y r i g h t 323 1 9 9 3 b 0000060 y X e r o x C o r p o r a t 0000100 i o n . A l l r i g h t s 0000120 r e s e r v e d . \n * M i c 0000140 h a e l P l a s s , J u n e 0000160 1 , 1 9 9 3 1 1 : 5 2 : 3 0000200 5 a m P D T \n * / \n \n # i n 0000220 c l u d e " c i i . h " \n \n / 0000240 * * * * * * * * * * * * * * * * * 0000340 * * * * * * \n * * 0000360 * 0000440 * * \n * 0000460 * T h i s M a s k P r o g 0000500 r a m d e c o d e s a m a 0000520 s k d e s c r i p t i o n o 0000540 f t h e f o r m 0000560 * * \n * * 0000600 * 0000660 * * \n * 0000700 * { { < f L e n g t h 0000720 > < f S t a r t > } 0 } 0000740 * 0001000 * * \n * * 0001020 * 0001100 * * \n * 0001120 * A l l q u a n t i t i e 0001140 s a r e u n s i g n e d b 0001160 y t e s ; f L e n g t h i s 0001200 r u n l e n g t h , a n d 0001220 * * \n * * f S t a r 0001240 t i s t h e s t a r t i n 0001260 g p o i n t o f t h e b 0001300 o x , r e l a t i n g t o 0001320 t h e f M i n * * \n * 0001340 * o f t h e w h o l e 0001360 b o x . A 0 b y t e i 0001400 n d i c a t e s t h e s t a 0001420 r t o f a n e w 0001440 * * \n * * s c a n l 0001460 i n e . F o r e x a m p l 0001500 e , t h e e n c o d i n g 0001520 0001540 * * \n * 0001560 * 3 5 3 1 2 0 0001600 * 0001660 * * \n * * 3 5 0001700 3 1 2 0 0001720 * 0001760 * * \n * 0002000 * 3 5 3 1 2 0 0002020 * 0002100 * * \n * * 3 6 0002120 3 1 1 0 0002140 * 0002200 * * \n * 0002220 * 6 7 0 0002240 * 0002320 * * \n * * 2 9 0002340 0 0002360 * 0002420 * * \n * 0002440 * s h o u l d y i e l d 0002460 t h e f o l l o w i n g s h 0002500 a p e : 0002520 0002540 * * \n * * + - + 0002560 - + - + - + - + - + - + - + - + 0002600 - + - + - + - + - + - + 0002620 0002640 * * \n * 0002660 * | | | | | | 0002700 X | X | X | | | | | X | 0002720 X | X | 0002740 0002760 * * \n * * + - + 0003000 - + - + - + - + - + - + - + - + 0003020 - + - + - + - + - + - + 0003040 0003060 * * \n * 0003100 * | | | | | | 0003120 X | X | X | | | | | X | 0003140 X | X | 0003160 0003200 * * \n * * + - + 0003220 - + - + - + - + - + - + - + - + 0003240 - + - + - + - + - + - + 0003260 0003300 * * \n * 0003320 * | | | | | | 0003340 X | X | X | | | | | X | 0003360 X | X | 0003400 0003420 * * \n * * + - + 0003440 - + - + - + - + - + - + - + - + 0003460 - + - + - + - + - + - + 0003500 0003520 * * \n * 0003540 * | | | | | | 0003560 | X | X | X | | | X | X | 0003600 X | | 0003620 0003640 * * \n * * + - + 0003660 - + - + - + - + - + - + - + - + 0003700 - + - + - + - + - + - + 0003720 0003740 * * \n * 0003760 * | | | | | | 0004000 | | X | X | X | X | X | X | 0004020 | | 0004040 0004060 * * \n * * + - + 0004100 - + - + - + - + - + - + - + - + 0004120 - + - + - + - + - + - + 0004140 0004160 * * \n * 0004200 * | | | | | | 0004220 | | | | X | X | | | 0004240 | | 0004260 0004300 * * \n * * + - + 0004320 - + - + - + - + - + - + - + - + 0004340 - + - + - + - + - + - + 0004360 0004400 * * \n * 0004420 * T h e M a s k P r o g r 0004440 a m m a y b e b r o k e n 0004460 d o w n a s f o l l o w s 0004500 : 0004520 * * \n * * 0004540 ( R 0 : s M i n , 0004560 R 1 : f M i n , R 2 : s 0004600 M a x , R 3 : f M a x ) 0004620 * * \n * 0004640 * L 1 S 4 R 4 0004660 : = i n i t i a l f M i n 0004700 * 0004740 * * \n * * L 2 S 0004760 5 R 5 : = i n i t 0005000 i a l s M a x 0005020 0005040 * * \n * 0005060 * = 1 S 6 R 6 0005100 : = 1 0005120 * 0005160 * * \n * * { L 0 0005200 - 5 X w h i l e s M i n 0005220 ~ = s M a x I n i t i a l 0005240 d o 0005260 * * \n * 0005300 * L 0 + 6 S 2 0005320 s M a x : = s M i n + 1 0005340 * 0005400 * * \n * * { F 1 0005420 X w h i l e 0005440 ( A : = f e t c h b y t e ( ) ) 0005460 ~ = 0 d o 0005500 * * \n * 0005520 * S 3 0005540 R 3 : = A 0005560 * 0005620 * * \n * * F 1 + 0005640 4 A : 0005660 = f e t c h b y t e ( ) + f M i 0005700 n I n i t i a l 0005720 * * \n * 0005740 * S 1 0005760 R 1 : = A ( t h i 0006000 s i s f M i n ) 0006020 0006040 * * \n * * + 3 S 0006060 3 R 3 0006100 : = A + R 3 ( t h i s i s 0006120 f M a x ) 0006140 * * \n * 0006160 * E 0006200 e m i t ( s M i n , 0006220 f M i n , s M a x , f M a 0006240 x ) 0006260 * * \n * * } 0006300 e n 0006320 d 0006340 0006360 * * \n * 0006400 * L 2 S 0 0006420 s M i n : = s M a x 0006440 * 0006500 * * \n * * } 0006520 e n d 0006540 * 0006600 * * \n * 0006620 * 0006640 * 0006720 * * \n * * * * * * * * * 0006740 * * * * * * * * * * * * * * * * * 0007020 * * * * * * * * * * * * * / \n c 0007040 h a r * b y t e w i s e R u n 0007060 L e n g t h P r o g r a m S t r 0007100 i n g = \n " L 1 S 4 L 2 S 0007120 5 = 1 S 6 { L 0 - 5 X L 0 + 6 S 0007140 2 { F 1 X S 3 F 1 + 4 S 1 + 3 S 0007160 3 E } L 2 S 0 } " ; \n \n s t a t 0007200 i c u n s i g n e d c h a r 0007220 e x a m p l e M a s k [ ] = 0007240 { \n 3 , 5 , 3 , 1 2 0007260 , 0 , \n 3 , 5 , 3 , 0007300 1 2 , 0 , \n 3 , 5 , 0007320 3 , 1 2 , 0 , \n 3 , 0007340 6 , 3 , 1 1 , 0 , \n 0007360 6 , 7 , 0 , \n 2 , 0007400 9 , 0 \n } ; \n \n s t a t i c 0007420 C I I _ R E S \n E x a m p l e A 0007440 t ( C I I _ H a n d l e d e v 0007460 , C I I _ M a s k P r o g r a 0007500 m p r o g , i n t s M i n 0007520 , i n t f M i n ) \n { \n 0007540 r e t u r n C I I _ M a s 0007560 k D e v i c e B o x e s ( d e v 0007600 , \n s M i n , f M 0007620 i n , s M i n + 6 , f M i n 0007640 + 1 5 , / * t h e m a s k 0007660 ' s b o u n d s * / \n 0007700 2 , 0007720 / * b o x o r d e r - w 0007740 e a s s e r t t h e s e b 0007760 o x e s a r e w e l l - b e 0010000 h a v e d * / \n p 0010020 r o g , / * t 0010040 h e m a s k p r o g r a m 0010060 f o r d e c o d i n g r u n 0010100 * / \n s i z e o 0010120 f ( e x a m p l e M a s k ) , 0010140 / * t h e b y t e c o u n 0010160 t f o r t h e d a t a * 0010200 / \n e x a m p l e M 0010220 a s k / * t h e d a t a 0010240 f o r t h e m a s k p r 0010260 o g r a m * / \n ) 0010300 ; \n } \n \n \n s t a t i c v o i 0010320 d \n B o x e s E x a m p l e ( C 0010340 I I _ H a n d l e d e v ) \n { 0010360 \n i n t i ; \n 0010400 C I I _ M a s k P r o g r a m 0010420 p r o g ; \n \n / 0010440 * W e m a k e t h e C I 0010460 I _ M a s k P r o g r a m o n 0010500 c e , a n d u s e i t o 0010520 v e r a n d o v e r . * / 0010540 \n C I I _ M a k e M a s 0010560 k P r o g r a m ( d e v , 1 , 0010600 1 , b y t e w i s e R u n L 0010620 e n g t h P r o g r a m S t r i 0010640 n g , & p r o g ) ; \n 0010660 i = 0 ; \n w h i l e ( 0010700 i < 6 0 0 ) { \n 0010720 E x a m p l e A t ( d e v , 0010740 p r o g , i + 5 0 , i ) ; \n 0010760 i = i + 1 0 ; \n 0011000 } ; \n \n 0011020 C I I _ D e s t r o y M a s k P 0011040 r o g r a m ( d e v , p r o g 0011060 ) ; \n } \n \n e x t e r n v o i 0011100 d \n X R _ r u n _ c i i m a s k 0011120 p r o g r a m e x a m p l e s ( 0011140 ) \n { \n \t C I I _ H a n d l e 0011160 d e v = ( C I I _ H a n d l 0011200 e ) C I I _ T e s t D e v i c e 0011220 ( ) ; \n \t f l o a t t [ 6 ] ; 0011240 \n \t C I I _ G e t I n i t i a l 0011260 M a t r i x ( d e v , t ) ; \n 0011300 \t C I I _ S e t M a t r i x ( d 0011320 e v , t ) ; \n \t B o x e s E x 0011340 a m p l e ( d e v ) ; \n \t C I I 0011360 _ D e s t r o y ( d e v ) ; \n } 0011400 \n 0011401