$ 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