$ 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