$ od -c -N 50000 [Indigo]<Maxc>ALTIO.DM!6
0000000  377  \0  \0   A   l   t   I   O   .   d   e   c   l  \0 373 226
0000020  332 256 243  \0  \0 376 001  \0 221 343   /   /       A   l   t
0000040    I   O   .   d   e   c   l       -   -       c   o   m   m   o
0000060    n       d   e   c   l   a   r   a   t   i   o   n   s       f
0000100    o   r       A   l   t   I   O  \r  \r   /   /  \t   L   a   s
0000120    t       m   o   d   i   f   i   e   d       M   a   r   c   h
0000140        1   4   ,       1   9   8   1           3   :   3   7    
0000160    P   M  \r  \r   m   a   n   i   f   e   s   t  \r   [  \r   /
0000200    /   f   i   x   e   d       M   a   x   c       m   e   m   o
0000220    r   y       l   o   c   a   t   i   o   n   s       (   n   a
0000240    m   e   s       c   o   n   s   i   s   t   e   n   t       w
0000260    i   t   h       M   a   x   c       1   1   .   6   )  \r   a
0000300    S   W   I   C   H       =       #   0  \t   /   /   s   w   i
0000320    t   c   h   e   s  \r   a   L   I   T   E   S       =       #
0000340    1  \t   /   /   l   i   g   h   t   s  \r   a   M   T   B   S
0000360        =       #   3  \t   /   /   a   d   d   r   e   s   s    
0000400    o   f       M   A   X   L   O   C   ,       t   h   e       m
0000420    a   i   n       c   o   m   m   u   n 376 001  \0   b   5   i
0000440    c   a   t   i   o   n       r   e   g   i   o   n  \r   a   D
0000460    L   S   B   S       =       #   4  \t   /   /   a   d   d   r
0000500    e   s   s       o   f       D   L   S   L   O   C   ,       t
0000520    h   e       D   L   S       c   o   m   m   u   n   i   c   a
0000540    t   i   o   n       r   e   g   i   o   n  \r   a   M   A   X
0000560    N   V       =       #   5  \t   /   /   M   a   x   c       t
0000600    o       A   l   t   o       r   e   q   u   e   s   t       b
0000620    i   t   s  \r   a   N   V   M   A   X       =       #   6  \t
0000640    /   /   A   l   t   o       t   o       M   a   x   c       r
0000660    e   q   u   e   s   t       b   i   t   s  \r   a   S   T   A
0000700    D   R       =       #   7  \t   /   /   P   D   P   -   1   0
0000720        p   r   o   g   r   a   m       s   t   a   r   t   i   n
0000740    g       a   d   d   r   e   s   s  \r  \r   /   /   o   f   f
0000760    s   e   t   s       i   n       M   A   X   L   O   C       r
0001000    e   g   i   o   n       (   r   e   l   a   t   i   v   e    
0001020    t   o       t   h   e       a   d   d   r   e   s   s     376
0001040  001  \0 370   {   i   n       M   T   B   S   )  \r   x   T   M
0001060    C   C   O       =       #   0  \t   /   /   m   a   g   t   a
0001100    p   e       c   o   m   m   a   n   d  \r   x   M   T   I   W
0001120    C       =       #   1  \t   /   /   c   o   m   p   u   t   e
0001140    d       m   a   g   t   a   p   e       r   e   c   o   r   d
0001160        l   e   n   g   t   h  \r   x   N   V   C   H   K   A    
0001200    =       #   2  \t   /   /   a   r   g   u   m   e   n   t    
0001220    f   o   r       A   l   t   I   O       b   u   g       c   h
0001240    e   c   k   s  \r   x   T   M   S   C   I       =       #   3
0001260   \t   /   /   m   a   g   t   a   p   e       s   t   a   t   u
0001300    s  \r   x   M   T   A   C   1       =       #   4  \t   /   /
0001320    m   a   g   t   a   p   e       w   o   r   d       c   o   u
0001340    n   t   ,       s   t   a   r   t   i   n   g       a   d   d
0001360    r   e   s   s   ,       r   e   m   a   p       w   o   r   d
0001400    s  \r   x   T   O   D   C   L   K       =       #   1   1  \t
0001420    /   /   m   i   l   l   i   s   e   c   o   n   d       c   l
0001440    o   c   k     376 001  \0   ^ 342   u   p   d   a   t   e   d
0001460        b   y       A   l   t   I   O  \r   x   C   C   H   S    
0001500    =       #   1   2  \t   /   /   c   o   m   m   a   n   d    
0001520    a   n   d       a   r   g   u   m   e   n   t       f   o   r
0001540        C   D   V   S       r   e   q   u   e   s   t  \r   x   N
0001560    V   C   H   K       =       #   1   3  \t   /   /   p   o   i
0001600    n   t   e   r       t   o       A   l   t   I   O       b   u
0001620    g       c   h   e   c   k       w   o   r   d  \r   x   T   M
0001640    S   I   0       =       #   1   4  \t   /   /   m   a   g   t
0001660    a   p   e       u   n   i   t       0   -   7       s   t   a
0001700    t   u   s       w   o   r   d   s  \r   x   P   S   C   A   N
0001720        =       #   2   4  \t   /   /   p   a   r   i   t   y    
0001740    e   r   r   o   r       c   o   n   t   r   o   l       w   o
0001760    r   d  \r   x   M   E   M   E   R       =       #   2   5  \t
0002000    /   /   m   e   m   o   r   y       s   t   a   t   u   s    
0002020    f   o   l   l   o   w   i   n   g       e   r   r   o   r   s
0002040   \r   /   /   #   2   6   -   #   2 376 001  \0 305 016   4   0
0002060        a   r   e       M   C   A       c   o   m   m   u   n   i
0002100    c   a   t   i   o   n       w   o   r   d   s       u   n   u
0002120    s   e   d       i   n       M   a   x   c   2  \r   x   N   V
0002140    M   S   G       =       #   2   4   1  \t   /   /   8   0   -
0002160    b   y   t   e       t   e   x   t       s   t   r   i   n   g
0002200        f   o   r       r   e   g   i   s   t   e   r       d   i
0002220    s   p   l   a   y  \r   x   P   T   R   S       =       #   2
0002240    6   5  \t   /   /   p   o   i   n   t   e   r   s       t   o
0002260        5       m   a   i   n       m   e   m   o   r   y       w
0002300    o   r   d   s       t   o       b   e       d   i   s   p   l
0002320    a   y   e   d  \r   x   P   U   P   I   B       =       #   2
0002340    7   2  \t   /   /   p   u   p       i   n   p   u   t       b
0002360    u   f   f   e   r       c   o   m   m   u   n   i   c   a   t
0002400    i   o   n       w   o   r   d  \r   x   P   U   P   O   B    
0002420    =       #   2   7   3  \t   /   /   p   u   p       o   u   t
0002440    p   u   t       b   u   f   f   e   r       c   o   m 376 001
0002460   \0   ?   p   m   u   n   i   c   a   t   i   o   n       w   o
0002500    r   d  \r   x   I   M   P   I   B       =       #   2   7   4
0002520   \t   /   /   i   m   p       i   n   p   u   t       b   u   f
0002540    f   e   r       c   o   m   m   u   n   i   c   a   t   i   o
0002560    n       w   o   r   d  \r   x   I   M   P   O   B       =    
0002600    #   2   7   5  \t   /   /   i   m   p       o   u   t   p   u
0002620    t       b   u   f   f   e   r       c   o   m   m   u   n   i
0002640    c   a   t   i   o   n       w   o   r   d  \r   x   I   M   P
0002660    S   I       =       #   2   7   6  \t   /   /   i   m   p    
0002700    s   t   a   t   u   s  \r   x   M   A   R       =       #   2
0002720    7   7  \t   /   /   c   o   n   t   e   n   t   s       o   f
0002740        M   A   R       a   f   t   e   r       l   a   s   t    
0002760    m   e   m   o   r   y       e   r   r   o   r  \r   x   M   D
0003000    R       =       #   3   0   0  \t   /   /   c   o   n   t   e
0003020    n   t   s       o   f       M   D   R  \r   x   M   D   R   L
0003040        =       #   3   0   1  \t   /   /   c   o   n   t   e   n
0003060    t   s     376 001  \0   B   `   o   f       M   D   R   L  \r
0003100    x   K   M   A   R       =       #   3   0   2  \t   /   /   c
0003120    o   n   t   e   n   t   s       o   f       K   M   A   R  \r
0003140    x   K   M   D   R       =       #   3   0   3  \t   /   /   c
0003160    o   n   t   e   n   t   s       o   f       K   M   D   R  \r
0003200    x   K   M   D   R   L       =       #   3   0   4  \t   /   /
0003220    c   o   n   t   e   n   t   s       o   f       K   M   D   R
0003240    L  \r  \r   /   /   o   f   f   s   e   t   s       i   n    
0003260    D   L   S   L   O   C       r   e   g   i   o   n       (   r
0003300    e   l   a   t   i   v   e       t   o       t   h   e       a
0003320    d   d   r   e   s   s       i   n       D   L   S   B   S   )
0003340   \r   x   D   L   S   O   D       =       #   0  \t   /   /   D
0003360    L   S       o   u   t   p   u   t       d   o   n   e       b
0003400    i   t       w   o   r   d  \r   x   D   L   S   O       =    
0003420    #   2  \t   /   /   D   L   S       o   u   t   p   u   t    
0003440    r   e   q   u   e   s   t       b   i   t       w   o   r   d
0003460   \r   x   D   L   S   I   N     376 001  \0   t   c   =       #
0003500    3  \t   /   /   D   L   S       i   n   p   u   t       d   o
0003520    n   e       b   i   t       w   o   r   d  \r   x   D   L   S
0003540    B       =       #   4  \t   /   /   D   L   S       d   a   t
0003560    a       b   u   f   f   e   r   ,       2       w   o   r   d
0003600    s       p   e   r       l   i   n   e       (   i   n   p   u
0003620    t   ,   o   u   t   p   u   t   )  \r  \r   /   /   o   f   f
0003640    s   e   t   s       i   n       P   u   p       p   a   c   k
0003660    e   t       b   u   f   f   e   r   s       k   n   o   w   n
0003700        t   o       A   l   t   I   O  \r   x   P   B   P   H   Y
0003720    S       =       1  \t   /   /   p   h   y   s   i   c   a   l
0003740        n   e   t   /   h   o   s   t       a   n   d       s   i
0003760    z   e  \r   x   P   B   H   E   A   D       =       5  \t   /
0004000    /   s   t   a   r   t       o   f       P   u   p       p   r
0004020    o   p   e   r  \r   ]  \r  \r   s   t   r   u   c   t   u   r
0004040    e       P   B   P   H   Y   S   :           /   /   P   B   P
0004060    H   Y   S       w   o   r   d       i   n       p 376 001  \0
0004100  315   y   a   c   k   e   t       b   u   f   f   e   r  \r    
0004120            [  \r               n   e   t       b   y   t   e  \t
0004140    /   /   p   h   y   s   i   c   a   l       n   e   t       n
0004160    u   m   b   e   r  \r               h   o   s   t       b   y
0004200    t   e  \t   /   /   p   h   y   s   i   c   a   l       h   o
0004220    s   t       n   u   m   b   e   r  \r               w   o   r
0004240    d   s       w   o   r   d  \t   /   /   n   u   m   b   e   r
0004260        o   f       M   a   x   c       w   o   r   d   s       o
0004300    c   c   u   p   i   e   d       b   y       P   u   p  \r    
0004320            b   l   a   n   k       w   o   r   d  \t   /   /   b
0004340    i   t   s       3   2   -   3   5       u   n   u   s   e   d
0004360   \r               ]  \r  \r  \r   s   t   r   u   c   t   u   r
0004400    e       N   B   P   :  \t   /   /   c   o   n   v   e   r   t
0004420    e   d       N   e   t       B   u   f   f   e   r       P   o
0004440    i   n   t   e   r  \r   [  \r   a   d   r   1   ^   0   ,   1
0004460        w   o   r   d  \t   /   /   M   a   x   c       a   d   d
0004500    r   e 376 001  \0  \f 017   s   s       o   f       f   i   r
0004520    s   t       p   a   r   t       o   f       t   r   a   n   s
0004540    f   e   r  \r   c   o   u   n   t   1       w   o   r   d  \t
0004560    /   /   M   a   x   c       w   o   r   d   s       i   n    
0004600    f   i   r   s   t       p   a   r   t       o   f       t   r
0004620    a   n   s   f   e   r  \r   a   d   r   2   ^   0   ,   1    
0004640    w   o   r   d  \t   /   /   M   a   x   c       a   d   d   r
0004660    e   s   s       o   f       s   e   c   o   n   d       p   a
0004700    r   t       o   f       t   r   a   n   s   f   e   r   ,    
0004720    i   f       a   n   y  \r   ]  \r   m   a   n   i   f   e   s
0004740    t       l   e   n   N   B   P       =       s   i   z   e    
0004760    N   B   P   /   1   6  \r  \f  \r   m   a   n   i   f   e   s
0005000    t  \r   [  \r   /   /   b   i   t   s       i   n       M   A
0005020    X   N   V  \r   m   n   P   U   P   O   B   G       =       4
0005040   \t   /   /   p   u   p       b   e   g   i   n       o   u   t
0005060    p   u   t  \r   m   n   P   U   P   I   B   G       =       5
0005100   \t   /   /   p   u   p     376 001  \0 217 241   b   e   g   i
0005120    n       i   n   p   u   t  \r   m   n   C   D   V   S       =
0005140        6  \t   /   /   C   D   V   S       (   m   i   s   c   e
0005160    l   l   a   n   e   o   u   s       r   e   q   u   e   s   t
0005200    s   )  \r   m   n   I   M   P   I   B   G       =       7  \t
0005220    /   /   i   m   p       b   e   g   i   n       i   n   p   u
0005240    t  \r   m   n   I   M   P   O   B   G       =       9  \t   /
0005260    /   i   m   p       b   e   g   i   n       o   u   t   p   u
0005300    t  \r   m   n   M   T   C   R   E   Q       =       1   2  \t
0005320    /   /   m   a   g   t   a   p   e       r   e   q   u   e   s
0005340    t  \r   m   n   D   L   S   O   B   G       =       1   4  \t
0005360    /   /   D   L   S       b   e   g   i   n       o   u   t   p
0005400    u   t  \r   m   n   I   O   R   S   T       =       1   5  \t
0005420    /   /   i   /   o       r   e   s   e   t  \r  \r   /   /   b
0005440    i   t   s       i   n       N   V   M   A   X  \r   n   m   H
0005460    A   L   T       =       0  \t   /   /   c   o   n   s   o   l
0005500    e       h   a   l   t  \r   n   m   N   X   M 376 001  \0   p
0005520  351       =       1  \t   /   /   n   o   n   e   x   i   s   t
0005540    e   n   t       m   e   m   o   r   y  \r   n   m   P   A   R
0005560    E   R   R       =       2  \t   /   /   p   a   r   i   t   y
0005600        e   r   r   o   r  \r   n   m   P   U   P   O   D   N    
0005620    =       2   0  \t   /   /   p   u   p       o   u   t   p   u
0005640    t       d   o   n   e  \r   n   m   P   U   P   I   D   N    
0005660    =       2   1  \t   /   /   p   u   p       i   n   p   u   t
0005700        d   o   n   e  \r   n   m   I   M   P   O   D   N       =
0005720        2   2  \t   /   /   i   m   p       o   u   t   p   u   t
0005740        d   o   n   e  \r   n   m   I   M   P   I   D   N       =
0005760        2   3  \t   /   /   i   m   p       i   n   p   u   t    
0006000    d   o   n   e  \r   n   m   D   L   S   D   N       =       2
0006020    4  \t   /   /   d   l   s       d   o   n   e       (   i   n
0006040    p   u   t       o   r       o   u   t   p   u   t   )  \r   n
0006060    m   M   T   C   D   N       =       2   6  \t   /   /   m   a
0006100    g   t   a   p   e       d   o   n   e  \r   n   m   C   L   O
0006120    C 376 001  \0   G 306   K       =       2   7  \t   /   /   c
0006140    l   o   c   k  \r  \r   /   /   C   D   V   S       r   e   q
0006160    u   e   s   t       s   u   b   -   t   y   p   e   s  \r   c
0006200    d   v   s   S   e   t   C   l   o   c   k       =       5  \t
0006220    /   /   s   e   t       c   l   o   c   k       i   n   t   e
0006240    r   r   u   p   t       i   n   t   e   r   v   a   l  \r   c
0006260    d   v   s   S   e   t   C   o   n   f   i   g   u   r   a   t
0006300    i   o   n       =       6           /   /   s   e   t       m
0006320    e   m   o   r   y       c   o   n   f   i   g   u   r   a   t
0006340    i   o   n  \r  \r   /   /   M   a   x   c       p   r   o   c
0006360    e   s   s   o   r       s   t   a   t   e   s       (   s   o
0006400    f   t   w   a   r   e       c   o   n   v   e   n   t   i   o
0006420    n   )  \r   s   t   a   t   e   R   u   n   n   i   n   g    
0006440    =       0  \t   /   /   p   r   o   c   e   s   s   o   r    
0006460    r   u   n   n   i   n   g  \r   s   t   a   t   e   B   r   e
0006500    a   k   p   o   i   n   t       =       1  \t   /   /   a   t
0006520        m   i   c   r   o 376 001  \0 024   2   -   b   r   e   a
0006540    k   p   o   i   n   t  \r   s   t   a   t   e   L   o   c   a
0006560    l   M   e   m   P   E       =       2  \t   /   /   l   o   c
0006600    a   l       m   e   m   o   r   y       p   a   r   i   t   y
0006620        e   r   r   o   r  \r   s   t   a   t   e   M   a   i   n
0006640    B   u   s   P   E       =       3  \t   /   /   m   a   i   n
0006660        m   e   m   o   r   y       b   u   s       p   a   r   i
0006700    t   y       e   r   r   o   r  \r   s   t   a   t   e   H   a
0006720    l   t   e   d       =       4  \t  \t   /   /   h   a   l   t
0006740    e   d       f   o   r       o   t   h   e   r       r   e   a
0006760    s   o   n  \r  \r   /   /   p   u   b   l   i   s   h   e   d
0007000        a   d   d   r   e   s   s   e   s       i   n       P   D
0007020    P   -   1   0       e   m   u   l   a   t   o   r       m   i
0007040    c   r   o   c   o   d   e  \r   e   m   u   l   a   t   o   r
0007060    R   e   s   e   t       =       #   2   1  \t   /   /   (   I
0007100    M   )       r   e   s   e   t       e   m   u   l   a   t   o
0007120    r  \r   e   m   u   l   a   t   o   r   S 376 001  \0 212   "
0007140    t   a   r   t       =       #   2   3  \t   /   /   (   I   M
0007160    )       s   e   t       p   c       t   o       c   (   7   )
0007200        a   n   d       s   t   a   r   t       e   m   u   l   a
0007220    t   i   o   n  \r   e   m   u   l   a   t   o   r   C   h   e
0007240    c   k       =       #   2   5  \t   /   /   (   I   M   )    
0007260    c   h   e   c   k       m   i   c   r   o   c   o   d   e  \r
0007300    e   m   u   l   a   t   o   r   P   C       =       #   3   5
0007320    2  \t   /   /   (   S   M   )       P   D   P   -   1   0    
0007340    p   r   o   g   r   a   m       c   o   u   n   t   e   r  \r
0007360   \r   /   /   o   t   h   e   r       c   o   n   s   t   a   n
0007400    t   s  \r   m   a   x   B   l   t       =       1   5   0  \t
0007420    /   /   m   a   x       n   u   m   b   e   r       o   f    
0007440    M   a   x   c       w   o   r   d   s       t   o       b   l
0007460    o   c   k       t   r   a   n   s   f   e   r       a   t    
0007500    a       t   i   m   e  \r  \t  \t   /   /       (   a   b   o
0007520    u   t       1       m   s       w   o   r   t   h   ;       >
0007540  376 001  \0 234 367       m   a   x       P   u   p       l   e
0007560    n   g   t   h   )  \r   n   u   m   D   L   S   L   i   n   e
0007600    s       =       2  \t   /   /   n   u   m   b   e   r       o
0007620    f       s   i   m   u   l   a   t   e   d       D   L   S    
0007640    l   i   n   e   s  \r   c   l   o   c   k   U   p   d   a   t
0007660    e   I   n   t   e   r   v   a   l       =       8   4   0   3
0007700            /   /   a   p   p   r   o   x   i   m   a   t   e   l
0007720    y       5       m   s       b   e   t   w   e   e   n       u
0007740    p   d   a   t   e   s  \r   n   e   t   E   t   h   e   r    
0007760    =       3  \t   /   /       P   u   p       n   e   t       n
0010000    u   m   b   e   r       o   f       t   h   e       E   t   h
0010020    e   r   n   e   t       o   n       w   h   i   c   h       M
0010040    a   x   c   2       r   e   s   i   d   e   s  \r   n   e   t
0010060    A   r   p   a       =       4  \t   /   /       P   u   p    
0010100    n   e   t       n   u   m   b   e   r       o   f       t   h
0010120    e       A   r   p   a   n   e   t  \r   ]  \r  \r   s   t   r
0010140    u   c   t   u   r 376 001  \0 211 345   e       P   a   r   D
0010160    a   t   a   :           /   /   d   a   t   a       s   a   v
0010200    e   d       b   y       p   a   r   i   t   y       h   a   n
0010220    d   l   e   r  \r   [  \r   f   l   a   g       w   o   r   d
0010240   \t  \t   /   /   n   o   n   z   e   r   o       i   f       e
0010260    r   r   o   r       h   a   s       o   c   c   u   r   r   e
0010300    d  \r   d   c   b   r       w   o   r   d  \t  \t   /   /   6
0010320        w   o   r   d   s       o   f       d   a   t   a       s
0010340    a   v   e   d       b   y       p   a   r   i   t   y       t
0010360    a   s   k  \r   k   n   m   a   r       w   o   r   d  \r   d
0010400    w   a       w   o   r   d  \r   c   b   a       w   o   r   d
0010420   \r   p   c       w   o   r   d  \r   s   a   d       w   o   r
0010440    d  \r   n   u   m   E   r   r   o   r   s       w   o   r   d
0010460   \t  \t   /   /   n   u   m   b   e   r       o   f       e   r
0010500    r   o   r   s       d   e   t   e   c   t   e   d       b   y
0010520        s   w   e   e   p  \r   e   r   r   o   r   A   d   r    
0010540    w   o   r   d  \t  \t   /   /   a   d 376  \0   ;   A   *   d
0010560    r   e   s   s       o   f       b   a   d       w   o   r   d
0010600   \r   e   r   r   o   r   D   a   t   a       w   o   r   d  \t
0010620   \t   /   /   c   o   n   t   e   n   t   s       o   f       b
0010640    a   d       w   o   r   d  \r   ]  \r 377  \0  \0   A   l   t
0010660    I   O   M   a   x   c   2   .   d   e   c   l  \0 373 216 337
0010700    P 032  \0  \0 376 001  \0   c   x   /   /       A   l   t   I
0010720    O   M   a   x   c   2   .   d   e   c   l       -   -       M
0010740    a   x   c   2       h   a   r   d   w   a   r   e   -   d   e
0010760    f   i   n   e   d       p   a   r   a   m   e   t   e   r   s
0011000        f   o   r       A   l   t   I   O  \r  \r  \r   m   a   n
0011020    i   f   e   s   t  \r   [  \r   /   /   S   M   I       i   n
0011040    p   u   t       a   d   d   r   e   s   s   e   s  \r   s   m
0011060    i   R   U   N       =       #   2   0   0  \t   /   /   p   r
0011100    o   c   e   s   s   o   r       r   u   n       s   t   a   t
0011120    u   s  \r   s   m   i   B   0       =       #   2   0   3  \t
0011140    /   /   p   r   o   c   e   s   s   o   r       b   u   s  \r
0011160    s   m   i   B   1       =       #   2   0   2  \r   s   m   i
0011200    B   2       =       #   2   0   1  \r   s   m   i   J   K   E
0011220    R   R   S       =       #   4   3  \t   /   /   m   e   m   o
0011240    r   y       e   r   r   o   r   s       f   o   r       q   u
0011260    a   d   r   a   n   t   s       J       a   n   d       K  \r
0011300    s   m   i   L   M   E   R   R   S 376 001  \0   p 331       =
0011320        #   4   4  \t   /   /   m   e   m   o   r   y       e   r
0011340    r   o   r   s       f   o   r       q   u   a   d   r   a   n
0011360    t   s       L       a   n   d       M  \r   s   m   i   P   P
0011400    S   T   A   T       =       #   1   0   0           /   /   p
0011420    o   r   t       a   n   d       p   r   o   c   e   s   s   o
0011440    r       p   o   w   e   r       s   t   a   t   u   s  \r   s
0011460    m   i   C   A   B   S   T       =       #   2   0           /
0011500    /   m   e   m   o   r   y       p   o   w   e   r       s   t
0011520    a   t   u   s       (   s   m   i   C   A   B   S   T       +
0011540        2   *   c   a   b   i   n   e   t   )  \r  \r   /   /   S
0011560    M   I       o   u   t   p   u   t       a   d   d   r   e   s
0011600    s   e   s  \r   s   m   i   B   R   0       =       #   2   1
0011620    3  \t   /   /   p   r   o   c   e   s   s   o   r       b   u
0011640    s  \r   s   m   i   B   R   1       =       #   2   1   2  \r
0011660    s   m   i   B   R   2       =       #   2   1   1  \r   s   m
0011700    i   P   I   R   0       =       #   2   1   7  \r   s 376 001
0011720   \0 243 342   m   i   P   I   R   1       =       #   2   1   6
0011740   \t   /   /   p   s   e   u   d   o   -   i   n   s   t   r   u
0011760    c   t   i   o   n       r   e   g   i   s   t   e   r  \r   s
0012000    m   i   P   I   R   2       =       #   2   1   5  \r   s   m
0012020    i   P   I   R   3       =       #   2   1   4  \r   s   m   i
0012040    C   R       =       #   2   1   0  \t   /   /   c   o   n   t
0012060    r   o   l       r   e   g   i   s   t   e   r  \r   s   m   i
0012100    P   L   M   R       =       #   4   0  \t   /   /   p   h   y
0012120    s   i   c   a   l   /   l   o   g   i   c   a   l       m   e
0012140    m   o   r   y       m   o   d   u   l   e       r   e   g   i
0012160    s   t   e   r  \r   s   m   i   C   O   N   F   R       =    
0012200    #   4   1  \t   /   /   m   e   m   o   r   y       c   o   n
0012220    f   i   g   u   r   a   t   i   o   n       r   e   g   i   s
0012240    t   e   r  \r   s   m   i   R   E   S   R       =       #   4
0012260    2  \t   /   /   m   e   m   o   r   y       e   r   r   o   r
0012300        r   e   s   e   t       r   e   g   i   s   t   e   r  \r
0012320    ]  \r  \r 376 001  \0   R 003  \r   /   /   l   a   y   o   u
0012340    t       o   f       s   e   l   e   c   t   e   d       r   e
0012360    g   i   s   t   e   r   s   .  \r   /   /   n   o   t   e    
0012400    t   h   a   t       o   u   t   p   u   t       r   e   g   i
0012420    s   t   e   r   s       c   o   n   s   i   s   t   i   n   g
0012440        e   n   t   i   r   e   l   y       o   f       s   i   n
0012460    g   l   e  \r   /   /   b   i   t   s       a   r   e       d
0012500    e   f   i   n   e   d       b   y       m   a   s   k       b
0012520    i   t   s       r   a   t   h   e   r       t   h   a   n    
0012540    s   t   r   u   c   t   u   r   e   s  \r   /   /   s   i   n
0012560    c   e       i   t   '   s       e   a   s   i   e   r       t
0012600    o       c   o   n   s   t   r   u   c   t       t   h   e   m
0012620        i   n       B   C   P   L       t   h   i   s       w   a
0012640    y   .  \r  \r   s   t   r   u   c   t   u   r   e       R   U
0012660    N   :  \t   /   /   p   r   o   c   e   s   s   o   r       r
0012700    u   n       s   t   a   t   u   s  \r               [  \r    
0012720            b   l   a   n   k     376 001  \0 231   l   b   i   t
0012740        8  \r               r   u   n   n   i   n   g       b   i
0012760    t  \t  \t   /   /   p   r   o   c   e   s   s   o   r       i
0013000    s       r   u   n   n   i   n   g  \r               n   o   t
0013020    B   r   e   a   k   p   o   i   n   t       b   i   t  \t   /
0013040    /   n   o   t       a   t       m   i   c   r   o       b   r
0013060    e   a   k   p   o   i   n   t  \r               l   o   c   a
0013100    l   P   E       b   i   t  \t  \t   /   /   l   o   c   a   l
0013120        m   e   m   o   r   y       p   a   r   i   t   y       e
0013140    r   r   o   r  \r               m   a   i   n   P   E       b
0013160    i   t  \t  \t   /   /   m   a   i   n       m   e   m   o   r
0013200    y       d   a   t   a       b   u   s       p   a   r   i   t
0013220    y       e   r   r   o   r  \r               ]  \r  \r   s   t
0013240    r   u   c   t   u   r   e       Q   E   r   r   ^   0   ,   3
0013260        b   y   t   e  \t   /   /   m   e   m   o   r   y       e
0013300    r   r   o   r       r   e   g   i   s   t   e   r       (   2
0013320        w   o   r   d   s   )  \r   m   a   n   i   f 376 001  \0
0013340    f   x   e   s   t  \t  \t   /   /   l   a   y   o   u   t    
0013360    a   s   s   u   m   i   n   g       b   y   t   e       r   i
0013400    g   h   t   -   j   u   s   t   i   f   i   e   d  \r        
0013420        [  \r               q   e   T   i   m   e   o   u   t    
0013440    =       #   4   0  \r               q   e   D   I   P       =
0013460        #   2   0  \r               q   e   A   P   E       =    
0013500    #   1   0  \r               q   e   P   B   F       =       #
0013520    4  \r               q   e   D   E       =       #   2  \r    
0013540            q   e   S   E       =       #   1  \r               ]
0013560   \r  \r   m   a   n   i   f   e   s   t  \t   /   /   p   r   o
0013600    c   e   s   s   o   r       c   o   n   t   r   o   l       r
0013620    e   g   i   s   t   e   r  \r   [  \r   c   r   E   I   C    
0013640    =       #   1   0   0   0   0   0  \t   /   /   e   n   a   b
0013660    l   e       i   n   s   t   r   u   c   t   i   o   n       c
0013700    o   n   t   r   o   l   l   e   d       c   h   a   n   g   e
0013720    s  \r   c   r   E   B       =       #   4   0   0   0   0  \t
0013740    /   / 376 001  \0 202 262   e   n   a   b   l   e       c   h
0013760    a   n   g   e   s       t   o       b   r   a   n   c   h    
0014000    c   o   n   d   i   t   i   o   n   s  \r   c   r   E   I   M
0014020    A       =       #   2   0   0   0   0  \t   /   /   e   n   a
0014040    b   l   e       c   h   a   n   g   e   s       t   o       I
0014060    M   A  \r   c   r   E   N   P   C       =       #   1   0   0
0014100    0   0  \t   /   /   e   n   a   b   l   e       c   h   a   n
0014120    g   e   s       t   o       N   P   C  \r   c   r   N   O   T
0014140    S   S       =       #   4   0   0   0  \t   /   /   d   o   n
0014160    '   t       s   i   n   g   l   e       s   t   e   p  \r   c
0014200    r   S   e   t   R   u   n       =       #   2   0   0   0    
0014220    /   /   s   e   t       t   h   e       r   u   n       f   l
0014240    i   p   f   l   o   p  \r   c   r   R   e   s   e   t       =
0014260        #   1   0   0   0  \t   /   /   r   e   s   e   t       p
0014300    r   o   c   e   s   s   o   r   -   m   e   m   o   r   y    
0014320    i   n   t   e   r   f   a   c   e  \r   c   r   E   P   I   R
0014340        =       #   4   0   0 376 001  \0 361 217  \t   /   /   e
0014360    x   e   c   u   t   e       i   n   s   t   r   u   c   t   i
0014400    o   n   s       f   r   o   m       P   I   R       r   a   t
0014420    h   e   r       t   h   a   n       I   M  \r   c   r   R   e
0014440    g   T   o   B       =       #   2   0   0  \t   /   /   p   u
0014460    t       B   R       r   e   g   i   s   t   e   r       o   n
0014500        p   r   o   c   e   s   s   o   r       b   u   s  \r   c
0014520    r   I   n   t   O   n       =       #   1   0   0  \t   /   /
0014540    e   n   a   b   l   e       m   i   c   r   o   -   i   n   t
0014560    e   r   r   u   p   t   s  \r   c   r   S   t   r   o   b   e
0014600        =       #   4   0  \t   /   /   g   e   n   e   r   a   t
0014620    e       i   n   t   e   r   p   r   o   c   e   s   s   o   r
0014640        s   i   g   n   a   l  \r  \r   /   /   n   o   r   m   a
0014660    l       v   a   l   u   e       s   e   n   t       t   o    
0014700    C   R       (   e   .   g   .   ,       w   h   e   n       s
0014720    e   t   t   i   n   g       S   t   r   o   b   e   )  \r   c
0014740    r   N   o   r   m   a   l       =       c   r 376 001  \0 267
0014760  264   E   I   C   +   c   r   E   B   +   c   r   E   I   M   A
0015000    +   c   r   E   N   P   C   +   c   r   N   O   T   S   S   +
0015020    c   r   I   n   t   O   n  \r   ]  \r  \f  \r   s   t   r   u
0015040    c   t   u   r   e       P   L   M   R   :  \t   /   /   p   h
0015060    y   s   i   c   a   l   /   l   o   g   i   c   a   l       m
0015100    o   d   u   l   e       r   e   g   i   s   t   e   r  \r    
0015120            [  \r               b   l   a   n   k       b   i   t
0015140        7  \r               d   i   s   a   b   l   e   C   o   r
0015160    r   e   c   t   i   o   n       b   i   t  \r               l
0015200    o   g   i   c   a   l   M   o   d   u   l   e       b   i   t
0015220        3  \r               p   h   y   s   i   c   a   l   M   o
0015240    d   u   l   e       b   i   t       3  \r               q   u
0015260    a   d   r   a   n   t       b   i   t       2  \r            
0015300    ]  \r  \r   s   t   r   u   c   t   u   r   e       C   O   N
0015320    F   R   :           /   /   c   o   n   f   i   g   u   r   a
0015340    t   i   o   n       r   e   g   i   s   t   e   r  \r        
0015360      376 001  \0 261   "   [  \r               b   l   a   n   k
0015400        b   i   t       4  \r               e   F   E   R       b
0015420    i   t  \t   /   /   e   n   a   b   l   e       r   e   p   o
0015440    r   t   i   n   g       o   f       f   a   t   a   l       e
0015460    r   r   o   r   s  \r               c   o   n   f   i   g   u
0015500    r   a   t   i   o   n       b   i   t       3           /   /
0015520    a   d   d   r   e   s   s   /   q   u   a   d   r   a   n   t
0015540        m   a   p  \r               j   S   E   F       b   i   t
0015560   \t   /   /   q   u   a   d   r   a   n   t       J       s   i
0015600    n   g   l   e       e   r   r   o   r   s       f   a   t   a
0015620    l  \r               j   P   B   F   F       b   i   t  \t   /
0015640    /   q   u   a   d   r   a   n   t       J       p   a   r   i
0015660    t   y       b   i   t       f   a   i   l   u   r   e   s    
0015700    f   a   t   a   l  \r               k   S   E   F       b   i
0015720    t  \r               k   P   B   F   F       b   i   t  \r    
0015740            l   S   E   F       b   i   t  \r               l   P
0015760    B   F   F       b   i 376 001  \0   @ 262   t  \r            
0016000    m   S   E   F       b   i   t  \r               m   P   B   F
0016020    F       b   i   t  \r               ]  \r   m   a   n   i   f
0016040    e   s   t       a   l   l   S   E   F       =       #   2   5
0016060    2  \r   m   a   n   i   f   e   s   t       a   l   l   P   B
0016100    F   F       =       #   1   2   5  \r   m   a   n   i   f   e
0016120    s   t       e   n   a   b   l   e   F   E   R       =       #
0016140    4   0   0   0  \r  \r   s   t   r   u   c   t   u   r   e    
0016160    R   E   S   R   :           /   /   e   r   r   o   r       r
0016200    e   s   e   t       r   e   g   i   s   t   e   r       (   a
0016220    l   l       b   i   t   s       c   o   m   p   l   e   m   e
0016240    n   t   e   d   )  \r               [  \r               b   l
0016260    a   n   k       b   i   t       8  \r               j   R   e
0016300    s   e   t   E   r   r   o   r   s       b   i   t           /
0016320    /   r   e   s   e   t       e   r   r   o   r   s       i   n
0016340        q   u   a   d   r   a   n   t       J  \r               j
0016360    R   e   s   e   t   Q   u   a   d   r   a 376 001  \0   F 247
0016400    n   t       b   i   t           /   /   c   o   m   p   l   e
0016420    t   e   l   y       r   e   s   e   t       q   u   a   d   r
0016440    a   n   t       J  \r               k   R   e   s   e   t   E
0016460    r   r   o   r   s       b   i   t  \r               k   R   e
0016500    s   e   t   Q   u   a   d   r   a   n   t       b   i   t  \r
0016520                l   R   e   s   e   t   E   r   r   o   r   s    
0016540    b   i   t  \r               l   R   e   s   e   t   Q   u   a
0016560    d   r   a   n   t       b   i   t  \r               m   R   e
0016600    s   e   t   E   r   r   o   r   s       b   i   t  \r        
0016620        m   R   e   s   e   t   Q   u   a   d   r   a   n   t    
0016640    b   i   t  \r               ]  \r   m   a   n   i   f   e   s
0016660    t       a   l   l   R   e   s   e   t   E   r   r   o   r   s
0016700        =       #   1   2   5  \r   m   a   n   i   f   e   s   t
0016720        a   l   l   R   e   s   e   t   Q   u   a   d   r   a   n
0016740    t       =       #   2   5   2  \r  \r   s   t   r   u   c   t
0016760    u   r   e       S   M   I   E   r   r   :           /   /   S
0017000  376 001  \0 304   7   M   I       e   r   r   o   r       r   e
0017020    g   i   s   t   e   r  \r               [  \r               b
0017040    l   a   n   k       b   i   t       1   1  \r               c
0017060    o   m   b       b   i   t  \t   /   /   c   o   m   m   u   n
0017100    i   c   a   t   i   o   n       s   t   r   o   b   e       B
0017120        (   u   n   u   s   e   d   )  \r               c   o   m
0017140    a       b   i   t  \t   /   /   c   o   m   m   u   n   i   c
0017160    a   t   i   o   n       s   t   r   o   b   e       A  \r    
0017200            n   f   e   r       b   i   t  \t   /   /   n   o   n
0017220    -   f   a   t   a   l       e   r   r   o   r  \r            
0017240    f   e   r       b   i   t  \t   /   /   f   a   t   a   l    
0017260    e   r   r   o   r  \r               b   l   a   n   k       b
0017300    i   t  \r               ]  \r   m   a   n   i   f   e   s   t
0017320        s   m   i   E   r   r   o   r   M   a   s   k       =    
0017340    #   1   2           /   /   b   i   t   s       t   h   a   t
0017360        w   e       c   a   r   e       a   b   o   u   t       (
0017400    c   o   m   a   , 376  \0 006 256 353       f   e   r   )  \r
0017420  377  \0  \0   A   l   t   I   O   .   b   c   p   l  \0 373 232
0017440    $ 307   `  \0  \0 376 001  \0 311   h   /   /       A   l   t
0017460    I   O   .   b   c   p   l       -   -       M   a   x   c   2
0017500        A   l   t   o       I   /   O       c   o   n   t   r   o
0017520    l       p   r   o   g   r   a   m  \r  \r   /   /  \t   L   a
0017540    s   t       m   o   d   i   f   i   e   d       D   e   c   e
0017560    m   b   e   r       1   3   ,       1   9   8   2           9
0017600    :   3   3       A   M  \r  \r   g   e   t       "   a   l   t
0017620    i   o   .   d   e   c   l   "  \r   g   e   t       "   s   y
0017640    s   d   e   f   s   .   d   "  \r  \r   e   x   t   e   r   n
0017660    a   l  \r   [  \r   /   /   o   u   t   g   o   i   n   g    
0017700    p   r   o   c   e   d   u   r   e   s  \r   A   l   t   I   O
0017720    ;       A   l   t   I   O   F   i   n   i   s   h  \r  \r   /
0017740    /   i   n   c   o   m   i   n   g       p   r   o   c   e   d
0017760    u   r   e   s  \r   J   u   n   t   a   ;       A   l   t   I
0020000    O   I   n   i   t   ;       A   d   d   T   o   Z   o   n   e
0020020    ;       A   l   l   o   c   a   t   e  \r   E   n   q   u   e
0020040    u   e   ;       C   a   l   l   C   o 376 001  \0   ]   u   n
0020060    t   e   x   t   L   i   s   t   ;       L   o   g   C   l   o
0020100    s   e   ;       S   t   a   r   t   I   O   ;       U   S   e
0020120    t   B   L   V   ;       L   o   a   d   R   a   m  \r  \r   /
0020140    /   o   u   t   g   o   i   n   g       s   t   a   t   i   c
0020160    s  \r   v   e   r   s   i   o   n   T   e   x   t   ;       s
0020200    i   l   e   n   t   B   o   o   t  \r  \r   /   /   i   n   c
0020220    o   m   i   n   g       s   t   a   t   i   c   s  \r   s   y
0020240    s   Z   o   n   e   ;       p   b   i   F   r   e   e   Q   ;
0020260        n   u   m   P   B   I   ;       c   t   x   Q   ;       a
0020300    l   t   I   O   S   a   v   e   d   U   F   P   ;       l   v
0020320    U   s   e   r   F   i   n   i   s   h   P   r   o   c  \r   l
0020340    e   n   P   B   I   ;       s   a   v   e   d   P   a   r   i
0020360    t   y   H   a   n   d   l   e   r   ;       a   l   t   I   O
0020400    S   a   v   e   d   S   C   P   ;       l   v   S   w   a   t
0020420    C   o   n   t   e   x   t   P   r   o   c  \r   ]  \r  \r   s
0020440    t   a   t   i   c  \r   [  \r   v   e   r   s   i   o   n 376
0020460  001  \0   D 251   T   e   x   t  \r   s   i   l   e   n   t   B
0020500    o   o   t       =       f   a   l   s   e  \r   ]  \r  \r  \r
0020520    /   /       -   -   -   -   -   -   -   -   -   -   -   -   -
0020540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0020620    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   l
0020640    e   t       A   l   t   I   O   (   )       b   e       J   u
0020660    n   t   a   (   l   e   v   D   i   s   p   l   a   y   ,    
0020700    A   f   t   e   r   J   u   n   t   a   )  \r   /   /       -
0020720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0021020    -   -   -   -   -   -   -   -   -   -  \r  \r   /   /       -
0021040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0021060    -   -   -   - 376 001  \0   # 275   -   -   -   -   -   -   -
0021100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0021140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0021160    a   n   d       A   f   t   e   r   J   u   n   t   a   (   )
0021200        b   e  \r   /   /       -   -   -   -   -   -   -   -   -
0021220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0021320    -   -  \r   [  \r   v   e   r   s   i   o   n   T   e   x   t
0021340        =       "   A   l   t   I   O       o   f       D   e   c
0021360    e   m   b   e   r       1   3   ,       1   9   8   2   "  \r
0021400   \r   /   /       C   a   l   l       m   a   i   n       i   n
0021420    i   t   i   a   l   i   z   a   t   i   o   n  \r   A   l   t
0021440    I   O   I   n   i   t   (   )  \r  \r   /   /       T   h   r
0021460    o   w       a   w   a   y       i 376 001  \0   x 311   n   i
0021500    t   i   a   l   i   z   a   t   i   o   n       c   o   d   e
0021520    ,       a   d   d       i   t   s       s   p   a   c   e    
0021540    t   o       z   o   n   e  \r   A   d   d   T   o   Z   o   n
0021560    e   (   s   y   s   Z   o   n   e   ,       A   l   t   I   O
0021600    I   n   i   t   ,       L   o   a   d   R   a   m   -   A   l
0021620    t   I   O   I   n   i   t   )  \r  \r   /   /       C   u   t
0021640        u   p       r   e   m   a   i   n   i   n   g       s   t
0021660    o   r   a   g   e       i   n   t   o       P   B   I   s  \r
0021700                [  \r               l   e   t       p   b   i    
0021720    =       A   l   l   o   c   a   t   e   (   s   y   s   Z   o
0021740    n   e   ,       l   e   n   P   B   I   ,       t   r   u   e
0021760    )  \r               i   f       p   b   i       e   q       0
0022000        b   r   e   a   k  \r               E   n   q   u   e   u
0022020    e   (   p   b   i   F   r   e   e   Q   ,       p   b   i   )
0022040   \r               n   u   m   P   B   I       =       n   u   m
0022060    P   B   I   +   1  \r               ]       r   e   p 376 001
0022100   \0   <   3   e   a   t  \r  \r   /   /       N   o   t   e   :
0022120            t   h   e       t   o   p   -   l   e   v   e   l    
0022140    s   t   a   c   k       i   s       f   r   e   e   d       b
0022160    y       A   l   t   I   O   C   o   m   m   a   n   d   ,    
0022200    s   o       s   y   s   Z   o   n   e       w   i   l   l  \r
0022220    /   /       h   a   v   e       a   t       l   e   a   s   t
0022240        1   2   0   0       f   r   e   e       w   o   r   d   s
0022260        a   f   t   e   r       t   h   e       d   u   s   t    
0022300    s   e   t   t   l   e   s   .  \r  \r   /   /       R   u   n
0022320        a   l   l       t   h   e       c   o   n   t   e   x   t
0022340    s       f   o   r   e   v   e   r  \r   C   a   l   l   C   o
0022360    n   t   e   x   t   L   i   s   t   (   c   t   x   Q   !   0
0022400    )       r   e   p   e   a   t  \r   ]  \r  \r   /   /       -
0022420    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0022500    -   -   - 376 001  \0 022 347   -   -   -   -   -   -   -   -
0022520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0022540    a   n   d       A   l   t   I   O   F   i   n   i   s   h   (
0022560    )       b   e  \r   /   /       -   -   -   -   -   -   -   -
0022600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0022700    -   -   -  \r   /   /       P   r   o   c   e   d   u   r   e
0022720        c   a   l   l   e   d       t   o       c   l   e   a   n
0022740        u   p       w   h   e   n       a       f   i   n   i   s
0022760    h       i   s       d   o   n   e  \r   [  \r   @   #   4   2
0023000    0       =       0           /   /   t   u   r   n       o   f
0023020    f       d   i   s   p   l   a   y  \r   @   #   5   0   1    
0023040    =       s   a   v   e   d   P   a   r   i   t   y   H   a   n
0023060    d   l   e   r           /   /   r   e   i   n   s   t   a   l
0023100    l       s   t   a   n   d   a 376  \0 245 327   w   r   d    
0023120    p   a   r   i   t   y       h   a   n   d   l   e   r  \r   L
0023140    o   g   C   l   o   s   e   (   s   y   s   Z   o   n   e   )
0023160   \r   @   l   v   S   w   a   t   C   o   n   t   e   x   t   P
0023200    r   o   c       =       a   l   t   I   O   S   a   v   e   d
0023220    S   C   P  \r   @   l   v   U   s   e   r   F   i   n   i   s
0023240    h   P   r   o   c       =       a   l   t   I   O   S   a   v
0023260    e   d   U   F   P  \r   i   f       s   i   l   e   n   t   B
0023300    o   o   t       t   h   e   n       [       U   S   e   t   B
0023320    L   V   (   #   1   7   7   7   7   6   )   ;       S   t   a
0023340    r   t   I   O   (   #   1   0   0   0   0   0   )       ]  \r
0023360    ]  \r 377  \0  \0   A   l   t   I   O   I   n   i   t   .   b
0023400    c   p   l  \0 373 226 332 253 361  \0  \0 376 001  \0 276 021
0023420    /   /       A   l   t   I   O   I   n   i   t   .   b   c   p
0023440    l       -   -       I   n   i   t   i   a   l   i   z   a   t
0023460    i   o   n       f   o   r       A   l   t   I   O  \r  \r   /
0023500    /  \t   L   a   s   t       m   o   d   i   f   i   e   d    
0023520    M   a   r   c   h       1   4   ,       1   9   8   1        
0023540    3   :   2   5       P   M  \r  \r   g   e   t       "   a   l
0023560    t   i   o   .   d   e   c   l   "  \r   g   e   t       "   a
0023600    l   t   i   o   m   a   x   c   2   .   d   e   c   l   "  \r
0023620    g   e   t       "   p   u   p   0   .   d   e   c   l   "  \r
0023640    g   e   t       "   s   t   r   e   a   m   s   .   d   "  \r
0023660    g   e   t       "   A   l   t   o   D   e   f   s   .   d   "
0023700   \r  \r   e   x   t   e   r   n   a   l  \r   [  \r   /   /   o
0023720    u   t   g   o   i   n   g       p   r   o   c   e   d   u   r
0023740    e   s  \r   A   l   t   I   O   I   n   i   t  \r  \r   /   /
0023760    i   n   c   o   m   i   n   g       p   r   o   c   e   d   u
0024000    r   e   s  \r   G   e   t   F   i   x   e   d   ;       M   y
0024020  376 001  \0 275 365   F   r   a   m   e   ;       C   a   l   l
0024040    e   r   s   F   r   a   m   e  \r   I   n   i   t   i   a   l
0024060    i   z   e   Z   o   n   e   ;       A   l   l   o   c   a   t
0024100    e   ;       F   r   e   e   ;       Z   e   r   o   ;       M
0024120    o   v   e   B   l   o   c   k  \r   L   o   g   O   p   e   n
0024140    ;       A   l   t   I   O   R   e   s   e   t   ;       A   l
0024160    t   I   O   F   i   n   i   s   h   ;       O   p   e   n   F
0024200    i   l   e   ;       C   a   l   l   S   w   a   t   ;       F
0024220    i   l   e   L   e   n   g   t   h  \r   S   y   s   E   r   r
0024240    ;       R   e   s   e   t   s   ;       R   e   a   d   B   l
0024260    o   c   k   ;       C   l   o   s   e   s   ;       S   e   t
0024300    u   p   R   e   a   d   P   a   r   a   m   ;       R   e   a
0024320    d   P   a   r   a   m  \r   C   r   e   a   t   e   D   i   s
0024340    p   l   a   y   S   t   r   e   a   m   ;       S   h   o   w
0024360    D   i   s   p   l   a   y   S   t   r   e   a   m   ;       E
0024400    n   q   u   e   u   e  \r   I   n   i   t   i   a   l   i   z
0024420    e   I   n   t   e 376 001  \0 202 004   r   r   u   p   t   ;
0024440        F   i   n   d   I   n   t   e   r   r   u   p   t   M   a
0024460    s   k   ;       T   i   m   e   r  \r   I   n   i   t   i   a
0024500    l   i   z   e   C   o   n   t   e   x   t   ;       A   l   t
0024520    I   O   C   o   m   m   a   n   d   ;       U   p   d   a   t
0024540    e   R   e   g   i   s   t   e   r   D   i   s   p   l   a   y
0024560    ;       K   e   y   S   w   i   t   c   h  \r   M   a   x   c
0024600    K   e   y   b   o   a   r   d   ;       M   a   x   c   T   e
0024620    r   m   i   n   a   l   ;       M   a   x   c   W   a   t   c
0024640    h   e   r   ;       P   u   t   s   W   i   t   h   C   u   r
0024660    s   o   r  \r   M   a   x   c   T   e   r   m   i   n   a   l
0024700    1   ;       D   i   a   b   l   o   E   r   r   o   r   ;    
0024720    C   r   e   a   t   e   D   i   a   b   l   o   S   t   r   e
0024740    a   m  \r   L   o   a   d   R   a   m   ;       W   s   ;    
0024760    W   s   s   ;       D   i   n   g   ;       D   i   s   m   i
0025000    s   s   ;       P   u   t   T   e   m   p   l   a   t   e   ;
0025020        I   n   i   t   B   c   p   l   R 376 001  \0   ! 335   u
0025040    n   t   i   m   e  \r   O   u   t   p   u   t   S   M   I   ;
0025060        O   u   t   p   u   t   S   M   I   T   e   s   t   ;    
0025100    S   t   o   p   M   a   x   c   F   o   r   c   e   f   u   l
0025120    l   y   ;       C   l   o   c   k   I   n   t   e   r   r   u
0025140    p   t  \r   R   e   s   e   t   M   e   m   o   r   y   ;    
0025160    I   n   p   u   t   S   M   I   ;       I   n   i   t   A   l
0025200    t   o   E   t   h   e   r   ;       I   n   i   t   A   l   t
0025220    o   I   m   p   ;       A   l   t   I   O   P   a   r   i   t
0025240    y   H   a   n   d   l   e   r  \r   A   l   t   I   O   S   w
0025260    a   t   P   r   o   c   ;       Z   e   r   o   M   a   x   c
0025300    M   e   m   ;       C   o   n   f   i   g   u   r   e   M   e
0025320    m   o   r   y  \r  \r   /   /   o   u   t   g   o   i   n   g
0025340        s   t   a   t   i   c   s  \r   n   u   m   P   B   I   ;
0025360        d   e   b   u   g   ;       s   a   v   e   d   P   a   r
0025400    i   t   y   H   a   n   d   l   e   r   ;       a   l   t   I
0025420    O   S   a   v   e   d   S   C   P  \r   c   t   x   Q   ; 376
0025440  001  \0   H   Y       a   l   t   I   O   S   a   v   e   d   U
0025460    F   P   ;       t   D   s   p   L   i   n   e   s   ;       n
0025500    u   m   M   e   m   C   a   b   s   ;       s   t   d   M   e
0025520    m   C   o   n   f   ;       t   o   p   S   t   a   c   k   ;
0025540        l   e   n   T   o   p   S   t   a   c   k  \r  \r   /   /
0025560    i   n   c   o   m   i   n   g       s   t   a   t   i   c   s
0025600   \r   d   s   p   ;       s   y   s   Z   o   n   e   ;       l
0025620    v   S   y   s   Z   o   n   e   ;       s   y   s   F   o   n
0025640    t   ;       f   p   S   y   s   F   o   n   t   ;       l   v
0025660    U   s   e   r   F   i   n   i   s   h   P   r   o   c  \r   f
0025700    p   C   o   m   C   m   ;       s   w   i   t   c   h   S   t
0025720    a   r   t   T   e   n   e   x   ;       s   w   i   t   c   h
0025740    B   o   o   t   ;       s   w   i   t   c   h   H   a   l   t
0025760    ;       p   r   o   t   e   c   t   e   d  \r   l   o   a   d
0026000    F   i   l   e   n   a   m   e   ;       s   i   l   e   n   t
0026020    B   o   o   t   ;       s   y   s   D   i   s   k   ;       v
0026040    e   r   s   i 376 001  \0   j   R   o   n   T   e   x   t   ;
0026060        l   v   A   b   o   r   t   F   l   a   g  \r   t   D   s
0026100    p   ;       h   D   s   p   ;       h   S   h   o   w   ;    
0026120    h   N   o   S   h   o   w   ;       c   o   m   m   a   n   d
0026140    C   t   x   ;       m   a   x   c   K   e   y   s   C   t   x
0026160   \r   k   e   y   s   C   t   x   ;       c   u   r   s   o   r
0026200    D   s   p   ;       D   i   s   p   l   a   y   P   u   t   s
0026220    ;       d   i   a   b   l   o   S   t   r   ;       b   o   o
0026240    t   D   i   s   k   U   n   i   t  \r   a   d   r   M   T   B
0026260    S   ;       a   d   r   D   L   S   B   S   ;       R   a   m
0026300    I   m   a   g   e   ;       d   l   s   O   u   t   p   u   t
0026320    C   h   a   r   ;       l   v   S   w   a   t   C   o   n   t
0026340    e   x   t   P   r   o   c  \r   m   a   x   c   C   l   o   c
0026360    k   ;       l   a   s   t   T   i   m   e   ;       c   l   o
0026400    c   k   M   a   s   k   ;       C   l   o   c   k   S   e   c
0026420    o   n   d  \r   l   e   n   P   u   p   ;       l   e   n   P
0026440    B   I   ;       p   b   i   I   Q 376 001  \0   .   .   ;    
0026460    p   b   i   F   r   e   e   Q   ;       n   d   b   Q   ;    
0026500    p   u   p   C   t   x   ;       l   e   n   P   u   p   C   t
0026520    x  \r   e   t   h   e   r   N   D   B   ;       i   m   p   N
0026540    D   B  \r   ]  \r  \r   s   t   a   t   i   c  \r   [  \r   c
0026560    t   x   Q   ;       t   D   s   p   L   i   n   e   s   ;    
0026600    n   u   m   M   e   m   C   a   b   s   ;       s   t   d   M
0026620    e   m   C   o   n   f  \r   a   l   t   I   O   S   a   v   e
0026640    d   U   F   P   ;       a   l   t   I   O   S   a   v   e   d
0026660    S   C   P  \r   s   a   v   e   d   P   a   r   i   t   y   H
0026700    a   n   d   l   e   r       =       0  \r   l   a   s   t   S
0026720    h   o   w   n   S   t   r   e   a   m       =       0  \r   n
0026740    u   m   P   B   I       =       0           /   /   n   u   m
0026760    b   e   r       o   f       p   b   i   s       t   o       a
0027000    l   l   o   c   a   t   e       i   n   i   t   i   a   l   l
0027020    y  \r   s   p   y   B   u   f   f   e   r       =       0  \r
0027040    d   e   b   u   g       =       f   a   l   s   e  \r 376 001
0027060   \0 203   B   s   w   i   t   c   h   Z   e   r   o       =    
0027100    f   a   l   s   e  \r   t   o   p   S   t   a   c   k   ;    
0027120    l   e   n   T   o   p   S   t   a   c   k  \r   ]  \r  \r   m
0027140    a   n   i   f   e   s   t  \r   [  \r   e   n   d   C   o   d
0027160    e       =       #   3   3   5  \r   l   e   n   C   D   s   p
0027200        =       5   0   0   0           /   /   s   p   a   c   e
0027220        f   o   r       c   o   m   m   a   n   d       d   i   s
0027240    p   l   a   y       b   i   t   m   a   p  \r   l   e   n   T
0027260    D   s   p       =       1   7   0   0   0           /   /   s
0027300    p   a   c   e       f   o   r       m   a   x   c       t   t
0027320    y       d   i   s   p   l   a   y       b   i   t   m   a   p
0027340   \r   ]  \r  \r   s   t   r   u   c   t   u   r   e       S   t
0027360    r   i   n   g   :       [       l   e   n   g   t   h       b
0027400    y   t   e   ;       c   h   a   r   ^   1   ,   2   5   5    
0027420    b   y   t   e       ]  \r  \f  \r   /   /       -   -   -   -
0027440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0027460    -   -   - 376 001  \0 202 270   -   -   -   -   -   -   -   -
0027500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0027540    -   -   -   -   -   -   -   -   -   -   -   -  \r   l   e   t
0027560        A   l   t   I   O   I   n   i   t   (   )       b   e  \r
0027600    /   /       -   -   -   -   -   -   -   -   -   -   -   -   -
0027620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0027700    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   [
0027720   \r   /   /       L   o   a   d       t   h   e       s   p   e
0027740    c   i   a   l       R   a   m       m   i   c   r   o   c   o
0027760    d   e  \r   l   e   t       r   e   s       =       L   o   a
0030000    d   R   a   m   (   R   a   m   I   m   a   g   e   ,       t
0030020    r   u   e   )           /   /   l   o   a   d       a   n   d
0030040        b   o   o   t  \r   i   f       r   e   s       n   e    
0030060    0       t   h   e   n       C 376 001  \0   m 227   a   l   l
0030100    S   w   a   t   (   "   L   o   a   d   R   a   m       f   a
0030120    i   l   e   d   "   )  \r   s   i   l   e   n   t   B   o   o
0030140    t       =       t   r   u   e  \r   I   n   i   t   B   c   p
0030160    l   R   u   n   t   i   m   e   (   )  \r   @   e   n   d   C
0030200    o   d   e       =       L   o   a   d   R   a   m           /
0030220    /       T   h   r   o   w       a   w   a   y       L   o   a
0030240    d   R   a   m       a   n   d       R   a   m   I   m   a   g
0030260    e  \r  \r   /   /       F   i   r   s   t       a   l   l   o
0030300    c   a   t   e       s   o   m   e       b   i   g       b   l
0030320    o   c   k   s       u   s   i   n   g       G   e   t   F   i
0030340    x   e   d   .           T   h   i   s       e   n   s   u   r
0030360    e   s  \r   /   /       t   h   a   t       w   e       w   i
0030400    l   l       h   a   v   e       l   e   s   s       t   h   a
0030420    n       3   2   k       l   e   f   t       t   o       p   a
0030440    s   s       t   o       I   n   i   t   i   a   l   i   z   e
0030460    Z   o   n   e   .  \r   d   s   p       =       G 376 001  \0
0030500  244   m   e   t   F   i   x   e   d   (   l   e   n   C   D   s
0030520    p   )           /   /   c   o   m   m   a   n   d       d   i
0030540    s   p   l   a   y       w   i   n   d   o   w  \r   t   D   s
0030560    p       =       G   e   t   F   i   x   e   d   (   l   e   n
0030600    T   D   s   p   )           /   /   m   a   x   c       t   t
0030620    y       d   i   s   p   l   a   y       w   i   n   d   o   w
0030640   \r  \r   /   /       T   u   r   n       r   e   m   a   i   n
0030660    i   n   g       s   t   o   r   a   g   e       i   n   t   o
0030700        a       z   o   n   e  \r   t   o   p   S   t   a   c   k
0030720        =       M   y   F   r   a   m   e   (   )   -   1   0   0
0030740    0           /   /   t   o   p   -   l   e   v   e   l       s
0030760    t   a   c   k       d   u   r   i   n   g       i   n   i   t
0031000    i   a   l   i   z   a   t   i   o   n  \r   l   e   n   T   o
0031020    p   S   t   a   c   k       =       C   a   l   l   e   r   s
0031040    F   r   a   m   e   (   )   -   t   o   p   S   t   a   c   k
0031060   \r   s   y   s   Z   o   n   e       =       I   n   i   t   i
0031100    a   l 376 001  \0 364  \t   i   z   e   Z   o   n   e   (   @
0031120    e   n   d   C   o   d   e   ,       t   o   p   S   t   a   c
0031140    k   -   @   e   n   d   C   o   d   e   ,       S   y   s   E
0031160    r   r   ,  \r       (   d   e   b   u   g   ?       S   y   s
0031200    E   r   r   ,       0   )   )  \r   @   l   v   S   y   s   Z
0031220    o   n   e       =       s   y   s   Z   o   n   e  \r   @   e
0031240    n   d   C   o   d   e       =       t   o   p   S   t   a   c
0031260    k  \r  \r   /   /       R   e   i   n   i   t   i   a   l   i
0031300    z   e       s   o   m   e       t   h   i   n   g   s       w
0031320    e       J   u   n   t   a   '   e   d       a   w   a   y  \r
0031340    L   o   g   O   p   e   n   (   s   y   s   Z   o   n   e   )
0031360            /   /   J   u   n   t   a       c   l   o   s   e   d
0031400        t   h   e       l   o   g       b   u   t       w   e    
0031420    w   a   n   t       i   t       o   p   e   n  \r   a   l   t
0031440    I   O   S   a   v   e   d   U   F   P       =       @   l   v
0031460    U   s   e   r   F   i   n   i   s   h   P   r   o   c  \r   @
0031500    l   v   U   s   e   r   F 376 001  \0 371 224   i   n   i   s
0031520    h   P   r   o   c       =       A   l   t   I   O   F   i   n
0031540    i   s   h  \r   a   l   t   I   O   S   a   v   e   d   S   C
0031560    P       =       @   l   v   S   w   a   t   C   o   n   t   e
0031600    x   t   P   r   o   c  \r   @   l   v   S   w   a   t   C   o
0031620    n   t   e   x   t   P   r   o   c       =       A   l   t   I
0031640    O   S   w   a   t   P   r   o   c  \r  \r   /   /       R   e
0031660    a   d       i   n       t   h   e       s   y   s   t   e   m
0031700        f   o   n   t  \r   l   e   t       f   o   n   t   S   t
0031720    r       =       O   p   e   n   F   i   l   e   (   "   S   y
0031740    s   F   o   n   t   .   a   l   "   ,       k   s   T   y   p
0031760    e   R   e   a   d   O   n   l   y   ,       0   ,       0   ,
0032000        f   p   S   y   s   F   o   n   t   )  \r   i   f       f
0032020    o   n   t   S   t   r       e   q       0       t   h   e   n
0032040        C   a   l   l   S   w   a   t   (   "   C   a   n   '   t
0032060        o   p   e   n       S   y   s   F   o   n   t   .   a   l
0032100    "   )  \r   l   e   t       f   o   n   t   S 376 001  \0 346
0032120  242   i   z   e       =       (   F   i   l   e   L   e   n   g
0032140    t   h   (   f   o   n   t   S   t   r   )   +   1   )       r
0032160    s   h   i   f   t       1  \r   R   e   s   e   t   s   (   f
0032200    o   n   t   S   t   r   )  \r   s   y   s   F   o   n   t    
0032220    =       A   l   l   o   c   a   t   e   (   s   y   s   Z   o
0032240    n   e   ,       f   o   n   t   S   i   z   e   )  \r   R   e
0032260    a   d   B   l   o   c   k   (   f   o   n   t   S   t   r   ,
0032300    s   y   s   F   o   n   t   ,       f   o   n   t   S   i   z
0032320    e   )  \r   C   l   o   s   e   s   (   f   o   n   t   S   t
0032340    r   )  \r   l   e   t       f   o   n   t   H   e   i   g   h
0032360    t       =       (   s   y   s   F   o   n   t   !   0   +   1
0032400    )       &       #   1   7   7   7   7   6  \r   l   e   t    
0032420    l   i   n   e   W   o   r   d   s       =       l   D   C   B
0032440        +       3   8   *   f   o   n   t   H   e   i   g   h   t
0032460   \r   s   y   s   F   o   n   t       =       s   y   s   F   o
0032500    n   t   +   2  \r  \r   /   /       I   n   i   t   i   a   l
0032520    i 376 001  \0 212  \r   z   e       t   h   e       d   i   s
0032540    p   l   a   y  \r   S   h   o   w   N   e   x   t   (   M   a
0032560    k   e   B   a   r   (   5   ,       0   )   )           /   /
0032600    1   0       s   c   a   n       l   i   n   e   s       o   f
0032620        w   h   i   t   e       a   t       t   o   p  \r   /   /
0032640    2       l   i   n   e   s       f   o   r       r   e   g   i
0032660    s   t   e   r       d   i   s   p   l   a   y       h   e   a
0032700    d   e   r  \r   h   D   s   p       =       C   r   e   a   t
0032720    e   D   i   s   p   l   a   y   S   t   r   e   a   m   (   2
0032740    ,       A   l   l   o   c   a   t   e   (   s   y   s   Z   o
0032760    n   e   ,       2   *   l   i   n   e   W   o   r   d   s   +
0033000    2   0   )   ,  \r       2   *   l   i   n   e   W   o   r   d
0033020    s   +   1   0   ,       s   y   s   F   o   n   t   ,       0
0033040    ,       D   S   s   t   o   p   r   i   g   h   t   )  \r   S
0033060    h   o   w   N   e   x   t   (   h   D   s   p   )  \r   /   /
0033100    2       o   n   e   -   l   i   n   e   r   s       f   o   r
0033120        u   p   d   a   t 376 001  \0   n   P   e   d       d   i
0033140    s   p   l   a   y       (   s   h   o   w       o   n   l   y
0033160        t   h   e       f   i   r   s   t   )  \r   h   S   h   o
0033200    w       =       C   r   e   a   t   e   D   i   s   p   l   a
0033220    y   S   t   r   e   a   m   (   1   ,  \r       A   l   l   o
0033240    c   a   t   e   (   s   y   s   Z   o   n   e   ,       l   i
0033260    n   e   W   o   r   d   s   +   2   0   )   ,       l   i   n
0033300    e   W   o   r   d   s   +   1   0   ,       s   y   s   F   o
0033320    n   t   ,       0   ,       D   S   s   t   o   p   r   i   g
0033340    h   t   )  \r   h   N   o   S   h   o   w       =       C   r
0033360    e   a   t   e   D   i   s   p   l   a   y   S   t   r   e   a
0033400    m   (   1   ,  \r       A   l   l   o   c   a   t   e   (   s
0033420    y   s   Z   o   n   e   ,       l   i   n   e   W   o   r   d
0033440    s   +   2   0   )   ,       l   i   n   e   W   o   r   d   s
0033460    +   1   0   ,       s   y   s   F   o   n   t   ,       0   ,
0033500        D   S   s   t   o   p   r   i   g   h   t   )  \r   S   h
0033520    o   w   N   e   x   t   (   h   S   h   o 376 001  \0 334   N
0033540    w   )  \r   S   h   o   w   N   e   x   t   (   M   a   k   e
0033560    B   a   r   (   2   ,       0   )   )           /   /   4    
0033600    s   c   a   n       l   i   n   e   s       o   f       w   h
0033620    i   t   e  \r   S   h   o   w   N   e   x   t   (   M   a   k
0033640    e   B   a   r   (   2   ,       1   )   )           /   /   4
0033660        s   c   a   n       l   i   n   e   s       o   f       b
0033700    l   a   c   k  \r   h   N   o   S   h   o   w   >   >   D   S
0033720    .   l   d   c   b   >   >   D   C   B   .   n   e   x   t    
0033740    =       h   S   h   o   w   >   >   D   S   .   l   d   c   b
0033760    >   >   D   C   B   .   n   e   x   t  \r  \f  \r   /   /    
0034000    A   l   t   I   O   I   n   i   t       (   c   o   n   t   '
0034020    d   )  \r  \r   /   /       C   o   m   m   a   n   d       d
0034040    i   s   p   l   a   y       s   t   r   e   a   m       d   o
0034060    e   s   n   '   t       n   e   e   d       a       f   u   l
0034100    l       b   i   t   m   a   p  \r   l   e   t       c   m   d
0034120    S   c   a   n   L   i   n   e   s       =       8   0   8   -
0034140  376 001  \0 205 255   (   1   0   +   2   +   3   *   f   o   n
0034160    t   H   e   i   g   h   t   +   8   +   4   +   l   e   n   T
0034200    D   s   p   /   3   8   +   4   )  \r   d   s   p       =    
0034220    C   r   e   a   t   e   D   i   s   p   l   a   y   S   t   r
0034240    e   a   m   (   c   m   d   S   c   a   n   L   i   n   e   s
0034260    /   f   o   n   t   H   e   i   g   h   t   ,       d   s   p
0034300    ,       l   e   n   C   D   s   p   -   1   0   ,       s   y
0034320    s   F   o   n   t   )  \r   D   i   s   p   l   a   y   P   u
0034340    t   s       =       d   s   p   >   >   S   T   .   p   u   t
0034360    s  \r   d   s   p   >   >   S   T   .   p   u   t   s       =
0034400        P   u   t   s   W   i   t   h   C   u   r   s   o   r  \r
0034420    S   h   o   w   N   e   x   t   (   d   s   p   )  \r   S   h
0034440    o   w   N   e   x   t   (   M   a   k   e   B   a   r   (   2
0034460    ,   1   )   )           /   /   4       s   c   a   n       l
0034500    i   n   e   s       o   f       b   l   a   c   k  \r  \r   /
0034520    /       M   a   x   c       t   t   y       d   i   s   p   l
0034540    a   y       s   t 376 001  \0 034 244   r   e   a   m       d
0034560    o   e   s       n   e   e   d       a       f   u   l   l    
0034600    b   i   t   m   a   p  \r   t   D   s   p   L   i   n   e   s
0034620        =       (   l   e   n   T   D   s   p   -   2   0   )   /
0034640    l   i   n   e   W   o   r   d   s  \r   t   D   s   p       =
0034660        C   r   e   a   t   e   D   i   s   p   l   a   y   S   t
0034700    r   e   a   m   (   t   D   s   p   L   i   n   e   s   ,    
0034720    t   D   s   p   ,       l   e   n   T   D   s   p   -   1   0
0034740    ,       s   y   s   F   o   n   t   ,       0   ,       D   S
0034760    n   o   n   e   )  \r   S   h   o   w   N   e   x   t   (   t
0035000    D   s   p   )  \r   S   h   o   w   N   e   x   t   (   M   a
0035020    k   e   B   a   r   (   2   ,       1   )   )           /   /
0035040    4       s   c   a   n       l   i   n   e   s       o   f    
0035060    b   l   a   c   k  \r   P   u   t   T   e   m   p   l   a   t
0035100    e   (   d   s   p   ,       "   $   S       -       c   o   m
0035120    m   a   n   d       w   i   n   d   o   w   "   ,       v   e
0035140    r   s   i   o   n   T   e   x   t   ) 376 001  \0 217 347  \r
0035160    W   s   s   (   t   D   s   p   ,       "   M   a   x   c    
0035200    c   o   n   s   o   l   e       t   e   r   m   i   n   a   l
0035220        w   i   n   d   o   w   *   n   "   )  \r  \r   /   /    
0035240    I   n   i   t   i   a   l   i   z   e       c   o   n   t   e
0035260    x   t   s  \r   c   t   x   Q       =       A   l   l   o   c
0035300    a   t   e   (   s   y   s   Z   o   n   e   ,       2   )  \r
0035320    c   t   x   Q   !   0       =       0  \r   c   o   m   m   a
0035340    n   d   C   t   x       =       M   a   k   e   C   o   n   t
0035360    e   x   t   (   A   l   t   I   O   C   o   m   m   a   n   d
0035400    ,       1   0   0   0   )  \r   m   a   x   c   K   e   y   s
0035420    C   t   x       =       M   a   k   e   C   o   n   t   e   x
0035440    t   (   M   a   x   c   K   e   y   b   o   a   r   d   ,    
0035460    1   0   0   )  \r   k   e   y   s   C   t   x       =       c
0035500    o   m   m   a   n   d   C   t   x           /   /   i   n   i
0035520    t   i   a   l   l   y       t   y   p   e       t   o       c
0035540    o   m   m   a   n   d       w   i   n   d   o   w  \r   c 376
0035560  001  \0 216   _   u   r   s   o   r   D   s   p       =       d
0035600    s   p  \r   M   a   k   e   C   o   n   t   e   x   t   (   M
0035620    a   x   c   T   e   r   m   i   n   a   l   ,       2   0   0
0035640    )  \r   M   a   k   e   C   o   n   t   e   x   t   (   M   a
0035660    x   c   T   e   r   m   i   n   a   l   1   ,       2   0   0
0035700    )  \r   M   a   k   e   C   o   n   t   e   x   t   (   U   p
0035720    d   a   t   e   R   e   g   i   s   t   e   r   D   i   s   p
0035740    l   a   y   ,       2   0   0   )  \r   M   a   k   e   C   o
0035760    n   t   e   x   t   (   K   e   y   S   w   i   t   c   h   ,
0036000        1   0   0   )  \r   M   a   k   e   C   o   n   t   e   x
0036020    t   (   M   a   x   c   W   a   t   c   h   e   r   ,       5
0036040    0   0   )  \r  \r   /   /   i   n   i   t   i   a   l   i   z
0036060    e       D   i   a   b   l   o       p   r   i   n   t   e   r
0036100   \r   d   i   a   b   l   o   S   t   r       =       C   r   e
0036120    a   t   e   D   i   a   b   l   o   S   t   r   e   a   m   (
0036140    0   ,       0   ,       0   ,       0   ,       2   5   *   6
0036160    )  \r   d   i 376 001  \0   P 223   a   b   l   o   S   t   r
0036200    >   >   S   T   .   e   r   r   o   r       =       D   i   a
0036220    b   l   o   E   r   r   o   r  \r  \r   /   /   i   n   i   t
0036240    i   a   l   i   z   e       P   u   p       p   a   c   k   a
0036260    g   e  \r   I   n   i   t   A   l   t   I   O   P   u   p   (
0036300    )  \r  \r   /   /   c   h   e   c   k       f   o   r       M
0036320    a   x   c       b   e   i   n   g       p   o   w   e   r   e
0036340    d       o   n   ,       a   n   d       f   i   n   d       o
0036360    u   t       h   o   w       m   u   c   h  \r   /   /   m   e
0036400    m   o   r   y       t   h   e   r   e       i   s   .  \r   O
0036420    u   t   p   u   t   S   M   I   T   e   s   t   (   #   1   6
0036440    )           /   /   p   u   t       S   M   I       i   n    
0036460    n   o   r   m   a   l       m   o   d   e  \r   S   t   o   p
0036500    M   a   x   c   F   o   r   c   e   f   u   l   l   y   (   )
0036520            /   /   m   a   k   e       s   u   r   e       t   h
0036540    e       p   r   o   c   e   s   s   o   r       i   s   n   '
0036560    t       r   u   n   n   i   n   g 376 001  \0 241 227  \r   i
0036600    f       I   n   p   u   t   S   M   I   (   s   m   i   P   P
0036620    S   T   A   T   )       n   e       3       t   h   e   n  \r
0036640                P   u   n   t   (   "   *   n   P   r   o   c   e
0036660    s   s   o   r       o   r       p   o   r   t       n   o   t
0036700        t   u   r   n   e   d       o   n   ,       c   a   n   '
0036720    t       d   o       a   n   y   t   h   i   n   g   "   )  \r
0036740    l   e   t       l   a   s   t   M   o   d   u   l   e   O   f
0036760    f       =       f   a   l   s   e  \r   s   t   d   M   e   m
0037000    C   o   n   f   ,       n   u   m   M   e   m   C   a   b   s
0037020        =       0   ,       0  \r   f   o   r       p   h   y   s
0037040    M   o   d       =       0       t   o       3       d   o  \r
0037060                [  \r               l   e   t       l   o   g   M
0037100    o   d       =       n   i   l  \r               t   e   s   t
0037120        I   n   p   u   t   S   M   I   (   s   m   i   C   A   B
0037140    S   T   +   2   *   p   h   y   s   M   o   d   )       e   q
0037160        #   1   7  \r                           i   f   s 376 001
0037200   \0   O 247   o  \r                                       [  \r
0037220                                        l   o   g   M   o   d    
0037240    =       t   a   b   l   e       [       4   ;       0   ;    
0037260    6   ;       2       ]   !   n   u   m   M   e   m   C   a   b
0037300    s  \r                                       n   u   m   M   e
0037320    m   C   a   b   s       =       n   u   m   M   e   m   C   a
0037340    b   s   +   1  \r                                       i   f
0037360        l   a   s   t   M   o   d   u   l   e   O   f   f       t
0037400    h   e   n  \r                                                
0037420    [  \r                                                   W   s
0037440    (   "   *   n   U   n   u   s   u   a   l       m   e   m   o
0037460    r   y       c   o   n   f   i   g   u   r   a   t   i   o   n
0037500    :           "   )  \r                                        
0037520            P   u   t   T   e   m   p   l   a   t   e   (   d   s
0037540    p   ,       "   C   a   b   i   n   e   t       $   O       o
0037560    f   f       b   u   t       $   O       o   n   "   ,       p
0037600    h   y   s 376 001  \0 250   Q   M   o   d   -   1   ,       p
0037620    h   y   s   M   o   d   )  \r                                
0037640                    D   i   n   g   (   d   s   p   )  \r        
0037660                                            l   a   s   t   M   o
0037700    d   u   l   e   O   f   f       =       f   a   l   s   e  \r
0037720                                                    ]  \r        
0037740                                ]  \r                           i
0037760    f   n   o   t  \r                                       [  \r
0040000                                        l   a   s   t   M   o   d
0040020    u   l   e   O   f   f       =       t   r   u   e  \r        
0040040                                l   o   g   M   o   d       =    
0040060    3  \r                                       ]  \r            
0040100    s   t   d   M   e   m   C   o   n   f       =       s   t   d
0040120    M   e   m   C   o   n   f       +       l   o   g   M   o   d
0040140        l   s   h   i   f   t       (   1   2   -   4   *   p   h
0040160    y   s   M   o   d   )  \r               ]  \r   i   f       n
0040200    u   m   M   e   m   C   a   b 376 001  \0 315 343   s       e
0040220    q       0       t   h   e   n  \r               P   u   n   t
0040240    (   "   *   n   N   o       m   e   m   o   r   i   e   s    
0040260    t   u   r   n   e   d       o   n   ,       c   a   n   '   t
0040300        d   o       a   n   y   t   h   i   n   g   "   )  \r  \f
0040320   \r   /   /       A   l   t   I   O   I   n   i   t       (   c
0040340    o   n   t   '   d   )  \r  \r   /   /   p   r   e   p   a   r
0040360    e       t   o       s   c   a   n       c   o   m   m   a   n
0040400    d       l   i   n   e  \r   l   e   t       c   o   m   S   t
0040420    r       =       O   p   e   n   F   i   l   e   (   "   C   o
0040440    m   .   c   m   "   ,       k   s   T   y   p   e   R   e   a
0040460    d   O   n   l   y   ,       c   h   a   r   I   t   e   m   ,
0040500        0   ,       f   p   C   o   m   C   m   )  \r   i   f    
0040520    c   o   m   S   t   r       e   q       0       t   h   e   n
0040540        P   u   n   t   (   "   *   C   a   n   '   t       o   p
0040560    e   n       C   o   m   .   c   m   "   )  \r   l   e   t    
0040600    s   t   r   i   n   g   V   e   c       =       A 376 001  \0
0040620    p 373   l   l   o   c   a   t   e   (   s   y   s   Z   o   n
0040640    e   ,       1   2   8   )  \r   l   e   t       s   w   i   t
0040660    c   h   V   e   c       =       A   l   l   o   c   a   t   e
0040700    (   s   y   s   Z   o   n   e   ,       1   2   8   )  \r  \r
0040720    /   /   r   e   a   d       p   r   o   g   r   a   m       n
0040740    a   m   e       a   n   d       g   l   o   b   a   l       s
0040760    w   i   t   c   h   e   s  \r   S   e   t   u   p   R   e   a
0041000    d   P   a   r   a   m   (   0   ,       0   ,       c   o   m
0041020    S   t   r   ,       s   w   i   t   c   h   V   e   c   )  \r
0041040    f   o   r       i       =       1       t   o       s   w   i
0041060    t   c   h   V   e   c   !   0       d   o  \r               s
0041100    w   i   t   c   h   o   n       s   w   i   t   c   h   V   e
0041120    c   !   i       i   n   t   o  \r                           [
0041140   \r                           c   a   s   e       $   S   :    
0041160    c   a   s   e       $   s   :  \r                            
0041200            s   w   i   t   c   h   S   t   a   r   t   T   e   n
0041220    e   x 376 001  \0 327   +       =       t   r   u   e        
0041240    /   /   f   a   l   l       i   n   t   o       c   a   s   e
0041260        $   B  \r                           c   a   s   e       $
0041300    B   :       c   a   s   e       $   b   :  \r                
0041320                        s   w   i   t   c   h   B   o   o   t    
0041340    =       t   r   u   e           /   /   f   a   l   l       i
0041360    n   t   o       c   a   s   e       $   Z  \r                
0041400            c   a   s   e       $   Z   :       c   a   s   e    
0041420    $   z   :  \r                                       [       s
0041440    w   i   t   c   h   Z   e   r   o       =       t   r   u   e
0041460    ;       e   n   d   c   a   s   e       ]  \r                
0041500            c   a   s   e       $   H   :       c   a   s   e    
0041520    $   h   :  \r                                       [       s
0041540    w   i   t   c   h   H   a   l   t       =       t   r   u   e
0041560    ;       e   n   d   c   a   s   e       ]  \r                
0041600            c   a   s   e       $   P   :       c   a   s   e    
0041620    $   p   :  \r             376 001  \0   n 241                
0041640            [       p   r   o   t   e   c   t   e   d       =    
0041660    t   r   u   e   ;       e   n   d   c   a   s   e       ]  \r
0041700                            c   a   s   e       $   R   :       c
0041720    a   s   e       $   r   :  \r                                
0041740        [       R   e   s   e   t   M   e   m   o   r   y   (   )
0041760    ;       e   n   d   c   a   s   e       ]           /   /   f
0042000    u   l   l       m   e   m   o   r   y       r   e   s   e   t
0042020   \r                           c   a   s   e       $   D   :    
0042040    c   a   s   e       $   d   :  \r                            
0042060            [       d   e   b   u   g       =       t   r   u   e
0042100    ;       e   n   d   c   a   s   e       ]  \r                
0042120            d   e   f   a   u   l   t   :  \r                    
0042140                    P   u   t   T   e   m   p   l   a   t   e   (
0042160    d   s   p   ,   "   *   n   B   a   d       g   l   o   b   a
0042200    l       s   w   i   t   c   h       /   $   C   ,       i   g
0042220    n   o   r   e   d   "   ,       s   w   i   t 376 001  \0   X
0042240  341   c   h   V   e   c   !   i   )  \r                        
0042260    ]  \r  \r   /   /   r   e   a   d       p   a   r   a   m   e
0042300    t   e   r   s       a   n   d       l   o   c   a   l       s
0042320    w   i   t   c   h   e   s  \r               [  \r            
0042340    i   f       R   e   a   d   P   a   r   a   m   (   $   P   ,
0042360        -   1   ,       s   t   r   i   n   g   V   e   c   ,    
0042400    s   w   i   t   c   h   V   e   c   )       e   q       -   1
0042420        t   h   e   n       b   r   e   a   k  \r               i
0042440    f       s   w   i   t   c   h   V   e   c   !   0       n   e
0042460        1       t   h   e   n       [       C   a   n   t   P   a
0042500    r   s   e   (   s   t   r   i   n   g   V   e   c   ,       s
0042520    w   i   t   c   h   V   e   c   )   ;       l   o   o   p   ]
0042540   \r               s   w   i   t   c   h   o   n       s   w   i
0042560    t   c   h   V   e   c   !   1       i   n   t   o  \r        
0042600                    [  \r                           c   a   s   e
0042620        $   L   :       c   a   s   e       $   l   :           /
0042640    / 376 001  \0 373 224   s   a   v   e       f   i   l   e    
0042660    f   r   o   m       w   h   i   c   h       t   o       l   o
0042700    a   d       m   e   m   o   r   y  \r                        
0042720                [  \r                                       l   e
0042740    t       l   e   n   g   t   h       =       s   t   r   i   n
0042760    g   V   e   c   >   >   S   t   r   i   n   g   .   l   e   n
0043000    g   t   h       r   s   h   i   f   t       1       +   1  \r
0043020                                        l   o   a   d   F   i   l
0043040    e   n   a   m   e       =       A   l   l   o   c   a   t   e
0043060    (   s   y   s   Z   o   n   e   ,       l   e   n   g   t   h
0043100    +   2   )           /   /   r   o   o   m       f   o   r    
0043120    .   S   a   v  \r                                       M   o
0043140    v   e   B   l   o   c   k   (   l   o   a   d   F   i   l   e
0043160    n   a   m   e   ,       s   t   r   i   n   g   V   e   c   ,
0043200        l   e   n   g   t   h   )  \r                            
0043220            e   n   d   c   a   s   e  \r                        
0043240                ]  \r     376 001  \0   - 317                    
0043260    c   a   s   e       $   U   :       c   a   s   e       $   u
0043300    :           /   /   u   n   i   t       n   u   m   b   e   r
0043320        f   o   r       b   o   o   t   i   n   g       M   i   c
0043340    r   o   -   E   x   e   c  \r                                
0043360        [  \r                                       l   e   t    
0043400    c   h   a   r       =       s   t   r   i   n   g   V   e   c
0043420    >   >   S   t   r   i   n   g   .   c   h   a   r   ^   1  \r
0043440                                        t   e   s   t       s   t
0043460    r   i   n   g   V   e   c   >   >   S   t   r   i   n   g   .
0043500    l   e   n   g   t   h       e   q       1       &  \r        
0043520                                    c   h   a   r       g   e    
0043540    $   0       &       c   h   a   r       l   e       $   7  \r
0043560                                                    i   f   s   o
0043600        b   o   o   t   D   i   s   k   U   n   i   t       =    
0043620    c   h   a   r   -   $   0  \r                                
0043640                    i   f   n   o   t       C 376 001  \0 334 017
0043660    a   n   t   P   a   r   s   e   (   s   t   r   i   n   g   V
0043700    e   c   ,       s   w   i   t   c   h   V   e   c   )  \r    
0043720                                    e   n   d   c   a   s   e  \r
0043740                                        ]  \r                    
0043760        d   e   f   a   u   l   t   :  \r                        
0044000                C   a   n   t   P   a   r   s   e   (   s   t   r
0044020    i   n   g   V   e   c   ,       s   w   i   t   c   h   V   e
0044040    c   )  \r                           ]  \r               ]    
0044060    r   e   p   e   a   t  \r   F   r   e   e   (   s   y   s   Z
0044100    o   n   e   ,       s   t   r   i   n   g   V   e   c   )  \r
0044120    F   r   e   e   (   s   y   s   Z   o   n   e   ,       s   w
0044140    i   t   c   h   V   e   c   )  \r   C   l   o   s   e   s   (
0044160    c   o   m   S   t   r   )  \r  \f  \r   /   /       A   l   t
0044200    I   O   I   n   i   t       (   c   o   n   t   '   d   )  \r
0044220   \r   /   /   p   u   t       h   a   r   d   w   a   r   e    
0044240    a   n   d       s   o   f   t   w   a   r   e       i   n    
0044260  376 001  \0 277   C   s   t   a   n   d   a   r   d       i   n
0044300    i   t   i   a   l       s   t   a   t   e  \r   a   d   r   M
0044320    T   B   S   ,   a   d   r   D   L   S   B   S       =       A
0044340    l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e   ,
0044360        2   )   ,   A   l   l   o   c   a   t   e   (   s   y   s
0044400    Z   o   n   e   ,       2   )  \r   d   l   s   O   u   t   p
0044420    u   t   C   h   a   r       =       A   l   l   o   c   a   t
0044440    e   (   s   y   s   Z   o   n   e   ,       n   u   m   D   L
0044460    S   L   i   n   e   s   )  \r   i   f       s   w   i   t   c
0044500    h   Z   e   r   o       t   h   e   n       [       C   o   n
0044520    f   i   g   u   r   e   M   e   m   o   r   y   (   0   ,    
0044540    0   )   ;       Z   e   r   o   M   a   x   c   M   e   m   (
0044560    )       ]  \r   A   l   t   I   O   R   e   s   e   t   (   )
0044600            /   /   s   i   m   u   l   a   t   e       i   /   o
0044620        r   e   s   e   t  \r  \r   /   /   i   n   i   t   i   a
0044640    l   i   z   e       c   l   o   c   k       i   n   t   e   r
0044660    r   u   p   t  \r 376 001  \0   6   :   m   a   x   c   C   l
0044700    o   c   k       =       A   l   l   o   c   a   t   e   (   s
0044720    y   s   Z   o   n   e   ,       3   )  \r   l   a   s   t   T
0044740    i   m   e       =       A   l   l   o   c   a   t   e   (   s
0044760    y   s   Z   o   n   e   ,       2   )  \r   T   i   m   e   r
0045000    (   l   a   s   t   T   i   m   e   )  \r   c   l   o   c   k
0045020    M   a   s   k       =       F   i   n   d   I   n   t   e   r
0045040    r   u   p   t   M   a   s   k   (   1   )  \r   I   n   i   t
0045060    i   a   l   i   z   e   I   n   t   e   r   r   u   p   t   (
0045100    A   l   l   o   c   a   t   e   (   s   y   s   Z   o   n   e
0045120    ,       7   5   )   ,       7   5   ,       c   l   o   c   k
0045140    M   a   s   k   ,       C   l   o   c   k   I   n   t   e   r
0045160    r   u   p   t   )  \r   C   l   o   c   k   I   n   t   e   r
0045200    r   u   p   t   (   )           /   /   g   e   t       c   l
0045220    o   c   k       g   o   i   n   g  \r  \r   /   /   t   h   e
0045240        M   a   x   c   2       A   l   t   o   '   s       c   l
0045260    o   c   k       i   s       a       b 376 001  \0 257 026   i
0045300    t       s   l   o   w   .  \r   /   /   s   e   t       c   l
0045320    o   c   k       c   o   n   s   t   a   n   t   s       i   n
0045340        O   S       t   o       c   o   m   p   e   n   s   a   t
0045360    e   .  \r   i   f       C   l   o   c   k   S   e   c   o   n
0045400    d       n   e       0       t   h   e   n  \r               M
0045420    o   v   e   B   l   o   c   k   (   C   l   o   c   k   S   e
0045440    c   o   n   d   ,       t   a   b   l   e       [       #   3
0045460    1   ;       #   1   2   0   1   6   2       ]   ,       2   )
0045500            /   /   1   6   7   9   4   7   4  \r  \r   /   /   i
0045520    n   s   t   a   l   l       o   w   n       p   a   r   i   t
0045540    y       h   a   n   d   l   e   r  \r   s   a   v   e   d   P
0045560    a   r   i   t   y   H   a   n   d   l   e   r       =       @
0045600    #   5   0   1  \r   @   #   5   0   1       =       A   l   t
0045620    I   O   P   a   r   i   t   y   H   a   n   d   l   e   r  \r
0045640   \r   /   /   d   i   a   b   l   e       s   h   i   f   t   -
0045660    s   w   a   t       a   b   o   r   t  \r   @   l   v   A 376
0045700  001  \0 226   S   b   o   r   t   F   l   a   g       =       1
0045720   \r  \r   /   /       I   n   s   t   a   l   l       o   w   n
0045740        c   u   r   s   o   r       p   a   t   t   e   r   n  \r
0045760    M   o   v   e   B   l   o   c   k   (   #   4   3   1   ,    
0046000    t   a   b   l   e       [  \r               #   1   1   0   0
0046020    0   0   ;       #   1   7   0   0   0   0   ;       #   1   1
0046040    0   0   0   0   ;       #   1   1   3   0   0   0   ;       #
0046060    1   1   4   4   0   0   ;       #   0   0   7   4   0   0   ;
0046100        #   0   0   4   6   2   0   ;       #   0   0   4   5   4
0046120    0  \r               #   0   0   0   1   5   7   ;       #   0
0046140    0   0   1   5   0   ;       #   0   7   4   2   3   0   ;    
0046160    #   0   0   4   0   1   0   ;       #   0   3   4   0   1   7
0046200    ;       #   0   4   0   0   0   0   ;       #   0   7   4   0
0046220    0   0   ;       #   0   0   0   0   0   0  \r               ]
0046240    ,       1   6   )  \r  \r   /   /       *   *   *       f   o
0046260    r       p   e   r   f   o   r   m   a   n   c   e       d   e
0046300    b   u   g   g 376 001  \0 372 265   i   n   g       *   *   *
0046320   \r   i   f       d   e   b   u   g       t   h   e   n       s
0046340    p   y   B   u   f   f   e   r       =       A   l   l   o   c
0046360    a   t   e   (   s   y   s   Z   o   n   e   ,       1   0   0
0046400    0   )  \r   ]  \r  \r   /   /       -   -   -   -   -   -   -
0046420    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0046520    -   -   -   -  \r   a   n   d       M   a   k   e   B   a   r
0046540    (   h   e   i   g   h   t   ,       c   o   l   o   r   )    
0046560    =       v   a   l   o   f  \r   /   /       -   -   -   -   -
0046600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0046700    -   -   -   -   -   -  \r   /   / 376 001  \0 251   '   m   a
0046720    k   e       a       b   a   r       2   *   h   e   i   g   h
0046740    t       s   c   a   n       l   i   n   e   s       h   i   g
0046760    h       o   f       s   p   e   c   i   f   i   e   d       c
0047000    o   l   o   r       (   b   l   a   c   k   =   1   )  \r   [
0047020   \r   s   t   r   u   c   t   u   r   e       B   a   r   :    
0047040    [       f   i   r   s   t   D   C   B       w   o   r   d   ;
0047060        l   a   s   t   D   C   B       w   o   r   d   ;       d
0047100    c   b   :       @   D   C   B       ]  \r   m   a   n   i   f
0047120    e   s   t       l   e   n   B   a   r       =       s   i   z
0047140    e       B   a   r   /   1   6  \r   l   e   t       b   a   r
0047160        =       A   l   l   o   c   a   t   e   (   s   y   s   Z
0047200    o   n   e   ,       l   e   n   B   a   r   ,       f   a   l
0047220    s   e   ,       t   r   u   e   )           /   /   e   v   e
0047240    n       w   o   r   d  \r   Z   e   r   o   (   b   a   r   ,
0047260        l   e   n   B   a   r   )  \r   b   a   r   >   >   B   a
0047300    r   .   f   i   r   s   t   D   C   B       =       l 376 001
0047320   \0 324   R   v       b   a   r   >   >   B   a   r   .   d   c
0047340    b  \r   b   a   r   >   >   B   a   r   .   l   a   s   t   D
0047360    C   B       =       l   v       b   a   r   >   >   B   a   r
0047400    .   d   c   b  \r   b   a   r   >   >   B   a   r   .   d   c
0047420    b   .   b   a   c   k   g   r   o   u   n   d       =       c
0047440    o   l   o   r  \r   b   a   r   >   >   B   a   r   .   d   c
0047460    b   .   h   e   i   g   h   t       =       h   e   i   g   h
0047500    t  \r   r   e   s   u   l   t   i   s       b   a   r  \r   ]
0047520   \r  \r   /   /       -   -   -   -   -   -   -   -   -   -   -
0047540    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0047640   \r   a   n   d       S   h   o   w   N   e   x   t   (   s   t
0047660    r   )       b   e  \r   /   /       -   -   -   -   -   -   -
0047700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0047720    -   -   - 376 001  \0 362  \f   -   -   -   -   -   -   -   -
0047740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050000    -   -   -   -   -   -   -   -   -  \r   /   /   s   h   o   w
0050020        d   i   s   p   l   a   y       s   t   r   e   a   m    
0050040    i   m   m   e   d   i   a   t   e   l   y       b   e   l   o
0050060    w       l   a   s   t   S   h   o   w   n   S   t   r   e   a
0050100    m  \r   [  \r   S   h   o   w   D   i   s   p   l   a   y   S
0050120    t   r   e   a   m   (   s   t   r   ,       (   l   a   s   t
0050140    S   h   o   w   n   S   t   r   e   a   m       e   q       0
0050160    ?       D   S   a   l   o   n   e   ,       D   S   b   e   l
0050200    o   w   )   ,  \r       l   a   s   t   S   h   o   w   n   S
0050220    t   r   e   a   m   )  \r   l   a   s   t   S   h   o   w   n
0050240    S   t   r   e   a   m       =       s   t   r  \r   ]  \r  \f
0050260   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0050300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0050320    -   -   -   -   -   -   -   - 376 001  \0 376   `   -   -   -
0050340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050400    -   -   -   -  \r   a   n   d       M   a   k   e   C   o   n
0050420    t   e   x   t   (   p   r   o   c   ,       l   e   n   )    
0050440    =       v   a   l   o   f  \r   /   /       -   -   -   -   -
0050460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0050560    -   -   -   -   -   -  \r   [  \r   l   e   t       c   t   x
0050600        =       I   n   i   t   i   a   l   i   z   e   C   o   n
0050620    t   e   x   t   (   A   l   l   o   c   a   t   e   (   s   y
0050640    s   Z   o   n   e   ,       l   e   n   )   ,       l   e   n
0050660    ,       p   r   o   c   )  \r   E   n   q   u   e   u   e   (
0050700    c   t   x   Q   ,       c   t   x   )  \r   r   e   s   u   l
0050720    t   i   s       c   t   x  \r   ]  \r  \r   /   / 376 001  \0
0050740    4 317       -   -   -   -   -   -   -   -   -   -   -   -   -
0050760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051040    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0051060    n   d       I   n   i   t   A   l   t   I   O   P   u   p   (
0051100    )       b   e  \r   /   /       -   -   -   -   -   -   -   -
0051120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0051220    -   -   -  \r   [  \r   /   /       S   i   n   c   e       w
0051240    e       a   r   e       n   o   t       u   s   i   n   g    
0051260    P   u   p       l   e   v   e   l       1   ,       w   e    
0051300    h   a   v   e       t   o       d   o       a       l   o   t
0051320        o   f  \r   /   /       i   n   i   t   i   a   l   i   z
0051340    a   t 376 001  \0 323   R   i   o   n       o   u   r   s   e
0051360    l   v   e   s  \r   /   /       T   h   e       P   u   p    
0051400    p   o   r   t   i   o   n       o   f       a       P   B   I
0051420        m   u   s   t       b   e       a       m   u   l   t   i
0051440    p   l   e       o   f       4       b   y   t   e   s   .  \r
0051460    l   e   n   P   u   p       =       (   p   u   p   O   v   B
0051500    y   t   e   s   +   d   e   f   a   u   l   t   P   u   p   D
0051520    a   t   a   B   y   t   e   s   )   /   2   +   1       &    
0051540    #   1   7   7   7   7   6  \r   l   e   n   P   B   I       =
0051560        l   e   n   P   B   I   O   v   e   r   h   e   a   d   +
0051600    l   e   n   P   u   p  \r   l   e   t       l   e   v   e   l
0051620    1   Q   s       =       A   l   l   o   c   a   t   e   (   s
0051640    y   s   Z   o   n   e   ,       6   )  \r   Z   e   r   o   (
0051660    l   e   v   e   l   1   Q   s   ,       6   )  \r   p   b   i
0051700    I   Q       =       l   e   v   e   l   1   Q   s  \r   p   b
0051720    i   F   r   e   e   Q       =       l   e   v   e   l   1   Q
0051740    s   +   2  \r   n   d   b 376 001  \0 030 350   Q       =    
0051760    l   e   v   e   l   1   Q   s   +   4  \r   f   o   r       i
0052000        =       1       t   o       n   u   m   P   B   I       d
0052020    o       E   n   q   u   e   u   e   (   p   b   i   F   r   e
0052040    e   Q   ,       A   l   l   o   c   a   t   e   (   s   y   s
0052060    Z   o   n   e   ,       l   e   n   P   B   I   )   )  \r   I
0052100    n   i   t   A   l   t   o   E   t   h   e   r   (   s   y   s
0052120    Z   o   n   e   ,       c   t   x   Q   ,       0   )  \r   e
0052140    t   h   e   r   N   D   B       =       n   d   b   Q   !   0
0052160            /   /       t   h   e       o   n   e       a   n   d
0052200        o   n   l   y       E   t   h   e   r   n   e   t       N
0052220    D   B  \r   I   n   i   t   A   l   t   o   I   m   p   (   s
0052240    y   s   Z   o   n   e   ,       c   t   x   Q   )  \r  \r   /
0052260    /       W   i   r   e   -   i   n       t   h   e       l   o
0052300    c   a   l       n   e   t       n   u   m   b   e   r   s    
0052320    (   y   u   k   )  \r   e   t   h   e   r   N   D   B   >   >
0052340    N   D   B   .   l   o   c   a   l   N   e   t 376 001  \0   #
0052360            =       n   e   t   E   t   h   e   r  \r   i   m   p
0052400    N   D   B   >   >   N   D   B   .   l   o   c   a   l   N   e
0052420    t       =       n   e   t   A   r   p   a  \r  \r   /   /    
0052440    A   l   l   o   c   a   t   e       b   u   t       d   o    
0052460    n   o   t       i   n   i   t   i   a   l   i   z   e       c
0052500    o   n   t   e   x   t       f   o   r       P   u   p       p
0052520    r   o   c   e   s   s   .  \r   /   /       I   t       w   i
0052540    l   l       g   e   t       r   e   s   e   t       b   y    
0052560    l   a   t   e   r       A   l   t   I   O   R   e   s   e   t
0052600   \r   p   u   p   C   t   x       =       A   l   l   o   c   a
0052620    t   e   (   s   y   s   Z   o   n   e   ,       l   e   n   P
0052640    u   p   C   t   x   )  \r   ]  \r  \r   /   /       -   -   -
0052660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0052760    - 376 001  \0   g 315   -   -   -   -   -   -   -  \r   a   n
0053000    d       P   u   n   t   (   s   t   r   i   n   g   )       b
0053020    e  \r   /   /       -   -   -   -   -   -   -   -   -   -   -
0053040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053140   \r   [  \r   W   s   (   s   t   r   i   n   g   )  \r   D   i
0053160    n   g   (   d   s   p   )  \r   D   i   s   m   i   s   s   (
0053200    5   0   0   )           /   /   5       s   e   c   o   n   d
0053220    s       t   o       l   e   t       u   s   e   r       s   e
0053240    e       m   e   s   s   a   g   e  \r   f   i   n   i   s   h
0053260   \r   ]  \r  \r   /   /       -   -   -   -   -   -   -   -   -
0053300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053360    -   -   -   -   -   - 376  \0 364 177   }   -   -   -   -   -
0053400    -   -   -   -   -   -   -  \r   a   n   d       C   a   n   t
0053420    P   a   r   s   e   (   s   t   r   i   n   g   V   e   c   ,
0053440    s   w   i   t   c   h   V   e   c   )       b   e  \r   /   /
0053460        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0053500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0053560    -   -   -   -   -   -   -   -   -   -   -   -  \r            
0053600    P   u   t   T   e   m   p   l   a   t   e   (   d   s   p   ,
0053620        "   *   n   C   a   n   '   t       p   a   r   s   e    
0053640    *   "   $   S   $   C   $   U   S   *   "       -   -       i
0053660    g   n   o   r   e   d   "   ,  \r                   s   t   r
0053700    i   n   g   V   e   c   ,       (   s   w   i   t   c   h   V
0053720    e   c   !   0       e   q       0   ?       $   *   s   ,   $
0053740    /   )   ,       s   w   i   t   c   h   V   e   c   )  \r 377
0053760   \0  \0   A   l   t   I   O   C   o   m   m   a   n   d   .   b
0054000    c   p   l  \0 373 232   $ 307 341  \0  \0 376 001  \0 275 314
0054020    /   /       A   l   t   I   O   C   o   m   m   a   n   d   .
0054040    b   c   p   l       -   -       t   e   r   m   i   n   a   l
0054060        c   o   m   m   a   n   d       p   r   o   c   e   s   s
0054100    o   r       f   o   r       A   l   t   I   O  \r  \r   /   /
0054120   \t   L   a   s   t       m   o   d   i   f   i   e   d       M
0054140    a   r   c   h       1   4   ,       1   9   8   1           3
0054160    :   0   4       P   M  \r  \r   g   e   t       "   a   l   t
0054200    i   o   .   d   e   c   l   "  \r   g   e   t       "   s   t
0054220    r   e   a   m   s   .   d   "  \r   g   e   t       "   s   y
0054240    s   d   e   f   s   .   d   "  \r  \r   e   x   t   e   r   n
0054260    a   l  \r   [  \r   /   /   o   u   t   g   o   i   n   g    
0054300    p   r   o   c   e   d   u   r   e   s  \r   A   l   t   I   O
0054320    C   o   m   m   a   n   d   ;       K   e   y   S   w   i   t
0054340    c   h   ;       G   e   t   K   e   y   s  \r   P   u   t   s
0054360    W   i   t   h   C   u   r   s   o   r   ;       G   e   t   S
0054400    t   r   i   n   g   ;       M   a   x   c   K   e   y   b   o
0054420  376 001  \0   V   =   a   r   d   ;       D   i   s   p   l   a
0054440    y   M   e   m   C   o   d   e  \r  \r   /   /   i   n   c   o
0054460    m   i   n   g       p   r   o   c   e   d   u   r   e   s  \r
0054500    M   e   m   R   e   a   d   ;       M   e   m   W   r   i   t
0054520    e   ;       L   o   a   d   S   a   v   e   F   i   l   e   ;
0054540        B   o   o   t   M   i   c   r   o   E   x   e   c  \r   M
0054560    e   m   R   e   a   d   B   l   o   c   k   3   2   ;       M
0054600    e   m   R   e   a   d   B   l   o   c   k   4   0   ;       D
0054620    i   s   p   l   a   y   P   a   r   i   t   y   E   r   r   o
0054640    r  \r   P   r   i   n   t   M   a   x   c   S   t   a   t   e
0054660    ;       D   i   s   p   l   a   y   2   0   B   i   t   ;    
0054700    D   i   s   p   l   a   y   3   6   B   i   t   ;       D   i
0054720    s   p   l   a   y   4   0   B   i   t   ;       D   i   n   g
0054740   \r   S   t   a   r   t   M   a   x   c   ;       S   t   o   p
0054760    M   a   x   c   ;       S   t   a   r   t   E   m   u   l   a
0055000    t   o   r   ;       R   e   s   e   t   M   a   x   c   ;    
0055020    R   e   s   e   t 376 001  \0   w   H   M   e   m   o   r   y
0055040   \r   R   e   a   d   L   M   ;       R   e   a   d   S   M  \r
0055060    W   s   ;       W   s   s   ;       G   e   t   s   ;       P
0055100    u   t   s   ;       R   e   s   e   t   s   ;       E   n   d
0055120    o   f   s   ;       C   l   o   s   e   s  \r   A   l   l   o
0055140    c   a   t   e   ;       F   r   e   e   ;       D   e   f   a
0055160    u   l   t   A   r   g   s   ;       A   d   d   T   o   Z   o
0055200    n   e  \r   Z   e   r   o   ;       M   o   v   e   B   l   o
0055220    c   k   ;       D   i   s   m   i   s   s   ;       S   e   t
0055240    T   i   m   e   r   ;       T   i   m   e   r   H   a   s   E
0055260    x   p   i   r   e   d   ;       B   l   o   c   k  \r   E   r
0055300    a   s   e   B   i   t   s   ;       C   h   a   r   W   i   d
0055320    t   h   ;       R   e   s   e   t   L   i   n   e   ;       D
0055340    o   u   b   l   e   I   n   c   r   e   m   e   n   t   ;    
0055360    P   u   t   T   e   m   p   l   a   t   e  \r   O   p   e   n
0055400    F   i   l   e   ;       C   a   l   l   S   w   a   t   ;    
0055420    C   o   u   n   t   e   r   J   u   n 376 001  \0 206 312   t
0055440    a   ;       C   a   l   l   S   u   b   s   y   s  \r  \r   /
0055460    /   o   u   t   g   o   i   n   g       s   t   a   t   i   c
0055500    s  \r   c   o   m   m   a   n   d   C   t   x   ;       m   a
0055520    x   c   K   e   y   s   C   t   x  \r   k   e   y   s   C   t
0055540    x   ;       c   u   r   s   o   r   D   s   p   ;       D   i
0055560    s   p   l   a   y   P   u   t   s  \r   s   w   i   t   c   h
0055600    S   t   a   r   t   T   e   n   e   x   ;       s   w   i   t
0055620    c   h   B   o   o   t   ;       s   w   i   t   c   h   H   a
0055640    l   t   ;       p   r   o   t   e   c   t   e   d  \r   l   o
0055660    a   d   F   i   l   e   n   a   m   e   ;       b   o   o   t
0055700    D   i   s   k   U   n   i   t  \r  \r   /   /   i   n   c   o
0055720    m   i   n   g       s   t   a   t   i   c   s  \r   k   e   y
0055740    s   ;       d   s   p   ;       t   D   s   p   ;       C   t
0055760    x   R   u   n   n   i   n   g   ;       s   y   s   Z   o   n
0056000    e   ;       v   e   r   s   i   o   n   T   e   x   t   ;    
0056020    m   a   x   c   R   u   n   n   i   n   g  \r   a   d   r 376
0056040  001  \0   G   Y   M   T   B   S   ;       l   v   U   s   e   r
0056060    F   i   n   i   s   h   P   r   o   c   ;       f   a   t   a
0056100    l   E   r   r   o   r   ;       d   i   a   b   l   o   C   o
0056120    p   y   ;       d   i   s   p   l   a   y   A   c   t   i   v
0056140    e  \r   u   p   d   a   t   e   D   i   s   p   l   a   y   V
0056160    a   l   i   d   ;       n   u   m   M   e   m   C   a   b   s
0056200    ;       f   p   C   o   m   C   m   ;       p   a   r   i   t
0056220    y   D   a   t   a   ;       t   o   p   S   t   a   c   k   ;
0056240        l   e   n   T   o   p   S   t   a   c   k  \r   k   e   e
0056260    p   D   i   s   p   l   a   y   O   n  \r   ]  \r  \r   s   t
0056300    a   t   i   c  \r   [  \r   c   o   m   m   a   n   d   C   t
0056320    x   ;       m   a   x   c   K   e   y   s   C   t   x  \r   k
0056340    e   y   s   C   t   x   ;       c   u   r   s   o   r   D   s
0056360    p   ;       c   u   r   s   o   r   T   i   m   e   r   ;    
0056400    D   i   s   p   l   a   y   P   u   t   s  \r   a   l   t   o
0056420    N   u   m   b   e   r   ;       m   a   x   c   N   u   m   b
0056440    e   r   ;     376 001  \0 376   \   n   u   m   b   e   r   T
0056460    y   p   e   d   ;       m   a   x   c   A   d   r  \r   c   u
0056500    r   s   o   r   O   n       =       f   a   l   s   e  \r   p
0056520    r   o   t   e   c   t   e   d       =       f   a   l   s   e
0056540   \r   c   e   l   l   O   p   e   n       =       f   a   l   s
0056560    e  \r   s   w   i   t   c   h   S   t   a   r   t   T   e   n
0056600    e   x       =       f   a   l   s   e  \r   s   w   i   t   c
0056620    h   B   o   o   t       =       f   a   l   s   e  \r   s   w
0056640    i   t   c   h   H   a   l   t       =       f   a   l   s   e
0056660   \r   l   o   a   d   F   i   l   e   n   a   m   e       =    
0056700    0  \r   b   o   o   t   D   i   s   k   U   n   i   t       =
0056720        0           /   /   d   e   f   a   u   l   t       b   o
0056740    o   t       f   r   o   m       u   n   i   t       0  \r   b
0056760    o   o   t   S   a   v   e   A   r   e   a       =       1    
0057000        /   /           s   a   v   e       a   r   e   a       1
0057020   \r   ]  \r  \r   s   t   r   u   c   t   u   r   e       S   t
0057040    r   i   n   g   :       [       l 376 001  \0   \ 324   e   n
0057060    g   t   h       b   y   t   e   ;       c   h   a   r   ^   1
0057100    ,   2   5   5       b   y   t   e       ]  \r  \f  \r   /   /
0057120        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0057140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0057220    -   -   -   -   -   -   -   -   -   -   -   -  \r   l   e   t
0057240        A   l   t   I   O   C   o   m   m   a   n   d   (   )    
0057260    b   e  \r   /   /       -   -   -   -   -   -   -   -   -   -
0057300    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0057400    -  \r   /   /   c   o   n   t   e   x   t       h   a   n   d
0057420    l   i   n   g       c   o   m   m   a   n   d   s       t   o
0057440        A   l   t   I   O       i   n       m   i   d   d 376 001
0057460   \0   B 245   l   e       w   i   n   d   o   w  \r   [  \r   /
0057500    /       F   i   n   i   s   h       i   n   i   t   i   a   l
0057520    i   z   a   t   i   o   n       b   y       f   r   e   e   i
0057540    n   g       u   p       t   h   e       t   o   p   -   l   e
0057560    v   e   l       s   t   a   c   k  \r   A   d   d   T   o   Z
0057600    o   n   e   (   s   y   s   Z   o   n   e   ,       t   o   p
0057620    S   t   a   c   k   ,       l   e   n   T   o   p   S   t   a
0057640    c   k   )  \r  \r   S   e   t   T   i   m   e   r   (   l   v
0057660        c   u   r   s   o   r   T   i   m   e   r   ,       0   )
0057700   \r   l   e   t       v       =       v   e   c       2   ;    
0057720    m   a   x   c   N   u   m   b   e   r       =       v  \r   l
0057740    e   t       v       =       v   e   c       1   ;       m   a
0057760    x   c   A   d   r       =       v   ;       Z   e   r   o   (
0060000    m   a   x   c   A   d   r   ,       2   )  \r   i   f       l
0060020    o   a   d   F   i   l   e   n   a   m   e       n   e       0
0060040        t   h   e   n  \r               [  \r               D   e
0060060    f   a   u 376 001  \0 332 022   l   t   E   x   t   e   n   s
0060100    i   o   n   (   l   o   a   d   F   i   l   e   n   a   m   e
0060120    ,       "   .   S   a   v   "   )  \r               P   u   t
0060140    T   e   m   p   l   a   t   e   (   d   s   p   ,   "   *   n
0060160    :       L   o   a   d       f   r   o   m       f   i   l   e
0060200    :       $   S   *   n   "   ,       l   o   a   d   F   i   l
0060220    e   n   a   m   e   )  \r               u   n   l   e   s   s
0060240        L   o   a   d   S   a   v   e   F   i   l   e   (   l   o
0060260    a   d   F   i   l   e   n   a   m   e   )       d   o       s
0060300    w   i   t   c   h   H   a   l   t       =       t   r   u   e
0060320   \r               F   r   e   e   (   s   y   s   Z   o   n   e
0060340    ,       l   o   a   d   F   i   l   e   n   a   m   e   )  \r
0060360                ]  \r   i   f       s   w   i   t   c   h   B   o
0060400    o   t       t   h   e   n  \r               [  \r            
0060420    W   s   (   "   *   n   :       B   o   o   t       M   i   c
0060440    r   o   -   E   x   e   c   "   )  \r               s   w   i
0060460    t   c   h   H   a   l   t     376 001  \0 261  \v   =       n
0060500    o   t       B   o   o   t   M   i   c   r   o   E   x   e   c
0060520    (   b   o   o   t   D   i   s   k   U   n   i   t   ,       b
0060540    o   o   t   S   a   v   e   A   r   e   a   ,  \r            
0060560        s   w   i   t   c   h   S   t   a   r   t   T   e   n   e
0060600    x   )  \r               ]  \r   t   e   s   t       s   w   i
0060620    t   c   h   H   a   l   t  \r               i   f   s   o    
0060640    W   s   (   "   *   n   :       H   a   l   t       M   a   x
0060660    c   "   )  \r               i   f   n   o   t      \r        
0060700                    [  \r                           u   n   l   e
0060720    s   s       s   w   i   t   c   h   B   o   o   t       d   o
0060740   \r                                       [  \r                
0060760                        W   s   (   "   *   n   :       R   e   s
0061000    u   m   e       M   a   x   c   "   )  \r                    
0061020                    S   t   a   r   t   M   a   x   c   (   )  \r
0061040                                        ]  \r                    
0061060        D   i   r   e   c   t   K   e   y   s   (   m 376 001  \0
0061100  325   4   a   x   c   K   e   y   s   C   t   x   ,       t   D
0061120    s   p   )  \r                           ]  \r  \r  \r        
0061140        [           /   /   m   a   i   n       c   o   m   m   a
0061160    n   d       l   o   o   p  \r               u   n   l   e   s
0061200    s       c   e   l   l   O   p   e   n       d   o       W   s
0061220    (   (   p   r   o   t   e   c   t   e   d   ?       "   *   n
0061240    #   "   ,       "   *   n   :   "   )   )  \r               B
0061260    l   o   c   k   (   )       r   e   p   e   a   t   w   h   i
0061300    l   e       K   E   n   d   o   f   s   (   )       &       n
0061320    o   t       f   a   t   a   l   E   r   r   o   r       &  \r
0061340                    p   a   r   i   t   y   D   a   t   a   >   >
0061360    P   a   r   D   a   t   a   .   f   l   a   g       e   q    
0061400    0  \r               i   f       f   a   t   a   l   E   r   r
0061420    o   r       t   h   e   n  \r                           [  \r
0061440                            f   a   t   a   l   E   r   r   o   r
0061460        =       f   a   l   s   e  \r                           c
0061500    e   l 376 001  \0 245 017   l   O   p   e   n       =       f
0061520    a   l   s   e  \r                           D   i   n   g   (
0061540    d   s   p   )  \r                           D   i   r   e   c
0061560    t   K   e   y   s   (   c   o   m   m   a   n   d   C   t   x
0061600    ,       d   s   p   )  \r                           l   o   o
0061620    p  \r                           ]  \r               i   f    
0061640    p   a   r   i   t   y   D   a   t   a   >   >   P   a   r   D
0061660    a   t   a   .   f   l   a   g       n   e       0       t   h
0061700    e   n  \r                           [  \r                    
0061720        D   i   s   p   l   a   y   P   a   r   i   t   y   E   r
0061740    r   o   r   (   )  \r                           c   e   l   l
0061760    O   p   e   n       =       f   a   l   s   e  \r            
0062000                D   i   n   g   (   d   s   p   )  \r            
0062020                l   o   o   p  \r                           ]  \r
0062040                l   e   t       c   h   a   r       =       G   e
0062060    t   N   u   m   b   e   r   (   )  \r               P   u   t
0062100    s   (   d   s   p   ,     376 001  \0 020 377   $   *   s   )
0062120   \r               s   w   i   t   c   h   o   n       c   h   a
0062140    r       i   n   t   o  \r                           [  \r    
0062160                        c   a   s   e       $   M   :       c   a
0062200    s   e       $   m   :  \r                                    
0062220    [  \r                                       t   e   s   t    
0062240    p   r   o   t   e   c   t   e   d  \r                        
0062260                            i   f   s   o       O   o   p   (   c
0062300    h   a   r   )  \r                                            
0062320        i   f   n   o   t       t   e   s   t       n   u   m   b
0062340    e   r   T   y   p   e   d  \r                                
0062360                                i   f   s   o       i   f       C
0062400    o   n   f   i   r   m   (   "   M   i   c   r   o   -   s   t
0062420    a   r   t   "   )       t   h   e   n  \r                    
0062440                                                        [       S
0062460    t   o   p   M   a   x   c   (   )   ;       S   t   a   r   t
0062500    M   a   x   c   (   a   l   t   o   N   u   m 376 001  \0   f
0062520  347   b   e   r   )       ]  \r                                
0062540                                i   f   n   o   t       i   f    
0062560    C   o   n   f   i   r   m   (   "   M   i   d   a   s   "   )
0062600        t   h   e   n       R   e   t   u   r   n   T   o   M   i
0062620    d   a   s   (   )  \r                                       e
0062640    n   d   c   a   s   e  \r                                    
0062660    ]  \r  \f  \r   /   /       A   l   t   I   O   C   o   m   m
0062700    a   n   d       (   c   o   n   t   '   d   )  \r  \r        
0062720                    c   a   s   e       $   R   :       c   a   s
0062740    e       $   r   :  \r                                       [
0062760   \r                                       t   e   s   t       n
0063000    u   m   b   e   r   T   y   p   e   d       %       p   r   o
0063020    t   e   c   t   e   d  \r                                    
0063040                i   f   s   o       O   o   p   (   c   h   a   r
0063060    )  \r                                                   i   f
0063100    n   o   t  \r                                                
0063120      376 001  \0 356 271           [  \r                        
0063140                                        W   s   (   "   R   e   s
0063160    u   m   e       M   a   x   c   "   )  \r                    
0063200                                            t   e   s   t       m
0063220    a   x   c   R   u   n   n   i   n   g  \r                    
0063240                                                        i   f   s
0063260    o       W   s   (   "       -   -       a   l   r   e   a   d
0063300    y       r   u   n   n   i   n   g   "   )  \r                
0063320                                                            i   f
0063340    n   o   t       i   f       C   o   n   f   i   r   m   (   )
0063360        t   h   e   n  \r                                        
0063400                                                [  \r            
0063420                                                                 
0063440            S   t   a   r   t   M   a   x   c   (   )  \r        
0063460                                                                 
0063500                D   i   r   e   c   t   K   e   y   s   (   m   a
0063520    x   c   K   e   y   s 376 001  \0   H   }   C   t   x   ,    
0063540    t   D   s   p   )  \r                                        
0063560                                                ]  \r            
0063600                                                    ]  \r        
0063620                                e   n   d   c   a   s   e  \r    
0063640                                    ]  \r                        
0063660    c   a   s   e       $   G   :       c   a   s   e       $   g
0063700    :  \r                                       [  \r            
0063720                            t   e   s   t       p   r   o   t   e
0063740    c   t   e   d  \r                                            
0063760        i   f   s   o       O   o   p   (   c   h   a   r   )  \r
0064000                                                    i   f   n   o
0064020    t       i   f       C   o   n   f   i   r   m   (   "   G   o
0064040        e   m   u   l   a   t   o   r   "   )       t   h   e   n
0064060   \r                                                            
0064100    [  \r                                                        
0064120        S   t   o   p   M   a   x   c   (   ) 376 001  \0   E   -
0064140   \r                                                            
0064160    t   e   s   t       n   u   m   b   e   r   T   y   p   e   d
0064200   \r                                                            
0064220                i   f   s   o       S   t   a   r   t   E   m   u
0064240    l   a   t   o   r   (   m   a   x   c   N   u   m   b   e   r
0064260    )  \r                                                        
0064300                    i   f   n   o   t       S   t   a   r   t   E
0064320    m   u   l   a   t   o   r   (   )  \r                        
0064340                                        D   i   r   e   c   t   K
0064360    e   y   s   (   m   a   x   c   K   e   y   s   C   t   x   ,
0064400        t   D   s   p   )  \r                                    
0064420                            ]  \r                                
0064440        e   n   d   c   a   s   e  \r                            
0064460            ]  \r                           c   a   s   e       $
0064500    H   :       c   a   s   e       $   h   :  \r                
0064520                        [  \r                                    
0064540  376 001  \0 216 372   t   e   s   t       n   u   m   b   e   r
0064560    T   y   p   e   d       %       p   r   o   t   e   c   t   e
0064600    d  \r                                                   i   f
0064620    s   o       O   o   p   (   c   h   a   r   )  \r            
0064640                                        i   f   n   o   t       i
0064660    f       C   o   n   f   i   r   m   (   "   H   a   l   t    
0064700    M   a   x   c   "   )       t   h   e   n       S   t   o   p
0064720    M   a   x   c   (   )  \r                                    
0064740    e   n   d   c   a   s   e  \r                                
0064760        ]  \r                           c   a   s   e       $   L
0065000    :       c   a   s   e       $   l   :  \r                    
0065020                    [  \r                                       t
0065040    e   s   t       n   u   m   b   e   r   T   y   p   e   d    
0065060    %       p   r   o   t   e   c   t   e   d  \r                
0065100                                    i   f   s   o       O   o   p
0065120    (   c   h   a   r   )  \r                                    
0065140                i   f 376 001  \0 315 037   n   o   t  \r        
0065160                                                        [  \r    
0065200                                                            c   e
0065220    l   l   O   p   e   n       =       f   a   l   s   e  \r    
0065240                                                            l   e
0065260    t       s       =       A   l   l   o   c   a   t   e   (   s
0065300    y   s   Z   o   n   e   ,       2   0   )  \r                
0065320                                                i   f       G   e
0065340    t   S   t   r   i   n   g   (   "   L   o   a   d       f   r
0065360    o   m       f   i   l   e   :       "   ,       s   )       t
0065400    h   e   n  \r                                                
0065420                            [  \r                                
0065440                                            P   u   t   s   (   d
0065460    s   p   ,       $   *   n   )  \r                            
0065500                                                D   e   f   a   u
0065520    l   t   E   x   t   e   n   s   i   o   n   (   s   ,       "
0065540    .   S   a   v   "   )  \r             376 001  \0 247 177    
0065560                                                            L   o
0065600    a   d   S   a   v   e   F   i   l   e   (   s   )  \r        
0065620                                                                 
0065640    u   p   d   a   t   e   D   i   s   p   l   a   y   V   a   l
0065660    i   d       =       f   a   l   s   e  \r                    
0065700                                                        ]  \r    
0065720                                                            F   r
0065740    e   e   (   s   y   s   Z   o   n   e   ,       s   )  \r    
0065760                                                            ]  \r
0066000                                        e   n   d   c   a   s   e
0066020   \r                                       ]  \r  \f  \r   /   /
0066040        A   l   t   I   O   C   o   m   m   a   n   d       (   c
0066060    o   n   t   '   d   )  \r  \r                           c   a
0066100    s   e       $   B   :       c   a   s   e       $   b   :  \r
0066120                                        [  \r                    
0066140                    t   e   s   t       p   r   o   t   e   c 376
0066160  001  \0 325   %   t   e   d  \r                                
0066200                    i   f   s   o       O   o   p   (   c   h   a
0066220    r   )  \r                                                   i
0066240    f   n   o   t       i   f       C   o   n   f   i   r   m   (
0066260    "   B   o   o   t       M   i   c   r   o   -   E   x   e   c
0066300    "   )       t   h   e   n  \r                                
0066320                                [  \r                            
0066340                                    c   e   l   l   O   p   e   n
0066360        =       f   a   l   s   e  \r                            
0066400                                    i   f       n   u   m   b   e
0066420    r   T   y   p   e   d       t   h   e   n       b   o   o   t
0066440    D   i   s   k   U   n   i   t       =       a   l   t   o   N
0066460    u   m   b   e   r  \r                                        
0066500                        i   f       B   o   o   t   M   i   c   r
0066520    o   E   x   e   c   (   b   o   o   t   D   i   s   k   U   n
0066540    i   t   ,       b   o   o   t   S   a   v   e   A   r   e   a
0066560    ,       f   a 376 001  \0 210   Y   l   s   e   )  \r        
0066600                                                                 
0066620    t   h   e   n       D   i   r   e   c   t   K   e   y   s   (
0066640    m   a   x   c   K   e   y   s   C   t   x   ,       t   D   s
0066660    p   )  \r                                                    
0066700            u   p   d   a   t   e   D   i   s   p   l   a   y   V
0066720    a   l   i   d       =       f   a   l   s   e  \r            
0066740                                                    ]  \r        
0066760                                e   n   d   c   a   s   e  \r    
0067000                                    ]  \r                        
0067020    c   a   s   e       $   S   :       c   a   s   e       $   s
0067040    :  \r                                       [  \r            
0067060                            t   e   s   t       p   r   o   t   e
0067100    c   t   e   d  \r                                            
0067120        i   f   s   o       O   o   p   (   c   h   a   r   )  \r
0067140                                                    i   f   n   o
0067160    t       i   f       C   o   n   f 376 001  \0   _ 301   i   r
0067200    m   (   "   S   t   a   r   t       T   e   n   e   x   "   )
0067220        t   h   e   n  \r                                        
0067240                        [  \r                                    
0067260                            c   e   l   l   O   p   e   n       =
0067300        f   a   l   s   e  \r                                    
0067320                            i   f       n   u   m   b   e   r   T
0067340    y   p   e   d       t   h   e   n       b   o   o   t   D   i
0067360    s   k   U   n   i   t       =       a   l   t   o   N   u   m
0067400    b   e   r  \r                                                
0067420                i   f       B   o   o   t   M   i   c   r   o   E
0067440    x   e   c   (   b   o   o   t   D   i   s   k   U   n   i   t
0067460    ,       b   o   o   t   S   a   v   e   A   r   e   a   ,    
0067500    t   r   u   e   )  \r                                        
0067520                                    t   h   e   n       D   i   r
0067540    e   c   t   K   e   y   s   (   m   a   x   c   K   e   y   s
0067560    C   t   x   ,       t   D   s   p   )  \r             376 001
0067600   \0 305  \0                                                   u
0067620    p   d   a   t   e   D   i   s   p   l   a   y   V   a   l   i
0067640    d       =       f   a   l   s   e  \r                        
0067660                                        ]  \r                    
0067700                    e   n   d   c   a   s   e  \r                
0067720                        ]  \r                           c   a   s
0067740    e       $   Q   :       c   a   s   e       $   q   :  \r    
0067760                                    [  \r                        
0070000                t   e   s   t       n   u   m   b   e   r   T   y
0070020    p   e   d       %       p   r   o   t   e   c   t   e   d  \r
0070040                                                    i   f   s   o
0070060        O   o   p   (   c   h   a   r   )  \r                    
0070100                                i   f   n   o   t       i   f    
0070120    C   o   n   f   i   r   m   (   "   Q   u   i   t       t   o
0070140        E   x   e   c   u   t   i   v   e   "   )       t   h   e
0070160    n  \r                                                        
0070200        [     376 001  \0   s   (   S   t   o   p   M   a   x   c
0070220    (   )   ;       f   i   n   i   s   h       ]  \r            
0070240                            e   n   d   c   a   s   e  \r        
0070260                                ]  \r                           c
0070300    a   s   e       $   P   :       c   a   s   e       $   p   :
0070320   \r                                       [  \r                
0070340                        t   e   s   t       n   u   m   b   e   r
0070360    T   y   p   e   d  \r                                        
0070400            i   f   s   o       t   e   s   t       a   l   t   o
0070420    N   u   m   b   e   r       e   q       #   3   3   0   1  \r
0070440                                                                i
0070460    f   s   o       [       p   r   o   t   e   c   t   e   d    
0070500    =       f   a   l   s   e   ;       W   s   (   "   P   r   o
0070520    t   e   c   t   i   o   n       o   f   f   "   )       ]  \r
0070540                                                                i
0070560    f   n   o   t       O   o   p   (   c   h   a   r   )  \r    
0070600                                  376 001  \0 344 274            
0070620    i   f   n   o   t       [       p   r   o   t   e   c   t   e
0070640    d       =       t   r   u   e   ;       W   s   (   "   P   r
0070660    o   t   e   c   t   i   o   n       o   n   "   )       ]  \r
0070700                                        e   n   d   c   a   s   e
0070720   \r                                       ]  \r                
0070740            c   a   s   e       $   V   :       c   a   s   e    
0070760    $   v   :  \r                                       [  \r    
0071000                                    P   u   t   T   e   m   p   l
0071020    a   t   e   (   d   s   p   ,       "   V   e   r   s   i   o
0071040    n   :       $   S   "   ,   v   e   r   s   i   o   n   T   e
0071060    x   t   )  \r                                       e   n   d
0071100    c   a   s   e  \r                                       ]  \r
0071120                            c   a   s   e       $   W   :       c
0071140    a   s   e       $   w   :  \r                                
0071160        [  \r                                       t   e   s   t
0071200        n   u   m   b   e   r   T   y   p   e   d  \r 376 001  \0
0071220  027   a                                                   i   f
0071240    s   o       O   o   p   (   c   h   a   r   )  \r            
0071260                                        i   f   n   o   t       [
0071300        W   s   (   "   W   h   a   t   '   s       u   p   ?    
0071320        "   )   ;       P   r   i   n   t   M   a   x   c   S   t
0071340    a   t   e   (   )   ]  \r                                    
0071360    e   n   d   c   a   s   e  \r                                
0071400        ]  \r  \f  \r   /   /       A   l   t   I   O   C   o   m
0071420    m   a   n   d       (   c   o   n   t   '   d   )  \r  \r    
0071440                        c   a   s   e       $   Z   :       c   a
0071460    s   e       $   z   :  \r                                    
0071500    [  \r                                       t   e   s   t    
0071520    n   u   m   b   e   r   T   y   p   e   d       %       p   r
0071540    o   t   e   c   t   e   d  \r                                
0071560                    i   f   s   o       O   o   p   (   c   h   a
0071600    r   )  \r                                                   i
0071620    f   n 376 001  \0   a   1   o   t  \r                        
0071640                                        [  \r                    
0071660                                            W   s   (   "   Z   a
0071700    p       m   e   m   o   r   y   "   )  \r                    
0071720                                            t   e   s   t       m
0071740    a   x   c   R   u   n   n   i   n   g  \r                    
0071760                                                        i   f   s
0072000    o       W   s   (   "       -   -       p   l   e   a   s   e
0072020        h   a   l   t       M   a   x   c       f   i   r   s   t
0072040    "   )  \r                                                    
0072060                        i   f   n   o   t       i   f       C   o
0072100    n   f   i   r   m   (   )       t   h   e   n       R   e   s
0072120    e   t   M   e   m   o   r   y   (   )  \r                    
0072140                                            ]  \r                
0072160                        e   n   d   c   a   s   e  \r            
0072200                            ]  \r                           c   a
0072220    s   e       $   E   :     376 001  \0   h   u   c   a   s   e
0072240        $   e   :  \r                                       [  \r
0072260                                        t   e   s   t       n   u
0072300    m   b   e   r   T   y   p   e   d  \r                        
0072320                            i   f   s   o       O   o   p   (   c
0072340    h   a   r   )  \r                                            
0072360        i   f   n   o   t  \r                                    
0072400                            [  \r                                
0072420                                c   e   l   l   O   p   e   n    
0072440    =       f   a   l   s   e  \r                                
0072460                                W   s   (   "   E   m   u   l   a
0072500    t   o   r       s   t   a   t   e   "   )  \r                
0072520                                                t   e   s   t    
0072540    m   a   x   c   R   u   n   n   i   n   g  \r                
0072560                                                            i   f
0072600    s   o       W   s   (   "       -   -       p   l   e   a   s
0072620    e       h   a   l   t       M   a   x   c     376 001  \0   9
0072640  206   f   i   r   s   t   "   )  \r                            
0072660                                                i   f   n   o   t
0072700        D   i   s   p   l   a   y   E   m   u   l   a   t   o   r
0072720    S   t   a   t   e   (   )  \r                                
0072740                                ]  \r                            
0072760            e   n   d   c   a   s   e  \r                        
0073000                ]  \r                           c   a   s   e    
0073020    $   D   :       c   a   s   e       $   d   :  \r            
0073040                            [  \r                                
0073060        t   e   s   t       n   u   m   b   e   r   T   y   p   e
0073100    d  \r                                                   i   f
0073120    s   o       O   o   p   (   )  \r                            
0073140                        i   f   n   o   t       i   f       C   o
0073160    n   f   i   r   m   (   (   d   i   a   b   l   o   C   o   p
0073200    y   ?  \r                                                    
0073220    "   D   i   a   b   l   o       c   o   p   y       o   f   f
0073240    " 376 001  \0 375   X   ,       "   D   i   a   b   l   o    
0073260    c   o   p   y       o   n   "   )   )       t   h   e   n  \r
0073300                                                                d
0073320    i   a   b   l   o   C   o   p   y       =       n   o   t    
0073340    d   i   a   b   l   o   C   o   p   y  \r                    
0073360                    e   n   d   c   a   s   e  \r                
0073400                        ]  \r                           c   a   s
0073420    e       $   K   :       c   a   s   e       $   k   :  \r    
0073440                                    [  \r                        
0073460                t   e   s   t       n   u   m   b   e   r   T   y
0073500    p   e   d  \r                                                
0073520    i   f   s   o       O   o   p   (   )  \r                    
0073540                                i   f   n   o   t       i   f    
0073560    C   o   n   f   i   r   m   (   (   k   e   e   p   D   i   s
0073600    p   l   a   y   O   n   ?  \r                                
0073620                        "   K   e   e   p       d   i   s   p   l
0073640    a   y       o   f   f 376 001  \0 372 226   "   ,       "   K
0073660    e   e   p       d   i   s   p   l   a   y       o   n   "   )
0073700    )       t   h   e   n  \r                                    
0073720                            k   e   e   p   D   i   s   p   l   a
0073740    y   O   n       =       n   o   t       k   e   e   p   D   i
0073760    s   p   l   a   y   O   n  \r                                
0074000        e   n   d   c   a   s   e  \r                            
0074020            ]  \r                           c   a   s   e       $
0074040    /   :  \r                                       [  \r        
0074060                                i   f       n   u   m   b   e   r
0074100    T   y   p   e   d       t   h   e   n       M   o   v   e   B
0074120    l   o   c   k   (   m   a   x   c   A   d   r   ,       m   a
0074140    x   c   N   u   m   b   e   r   +   1   ,       2   )  \r    
0074160                                    D   i   s   p   l   a   y   M
0074200    e   m   (   m   a   x   c   A   d   r   )  \r                
0074220                        e   n   d   c   a   s   e  \r            
0074240                            ]  \r             376 001  \0 273   3
0074260                c   a   s   e       $   *   n   :  \r            
0074300                            [  \r                                
0074320        i   f       n   u   m   b   e   r   T   y   p   e   d    
0074340    t   h   e   n  \r                                            
0074360        t   e   s   t       c   e   l   l   O   p   e   n       &
0074400        n   o   t       p   r   o   t   e   c   t   e   d  \r    
0074420                                                            i   f
0074440    s   o       D   i   s   p   l   a   y   M   e   m   C   o   d
0074460    e   (   M   e   m   W   r   i   t   e   (   m   a   x   c   A
0074500    d   r   ,       m   a   x   c   N   u   m   b   e   r   )   )
0074520   \r                                                            
0074540    i   f   n   o   t       O   o   p   (   )  \r                
0074560                        c   e   l   l   O   p   e   n       =    
0074600    f   a   l   s   e  \r                                       e
0074620    n   d   c   a   s   e  \r                                    
0074640    ]  \r                           c   a   s   e       $   *   l
0074660  376 001  \0 254   _   :  \r                                    
0074700    [  \r                                       E   x   a   m   i
0074720    n   e   N   e   x   t   (   1   )  \r                        
0074740                e   n   d   c   a   s   e  \r                    
0074760                    ]  \r                           c   a   s   e
0075000        $   ^   :       c   a   s   e       $   W   -   #   1   0
0075020    0   :  \r                                       [  \r        
0075040                                E   x   a   m   i   n   e   N   e
0075060    x   t   (   -   1   )  \r                                    
0075100    e   n   d   c   a   s   e  \r                                
0075120        ]  \r  \f  \r   /   /       A   l   t   I   O   C   o   m
0075140    m   a   n   d       (   c   o   n   t   '   d   )  \r  \r    
0075160                        c   a   s   e       $   *   0   1   1   :
0075200            /   /   t   a   b  \r                                
0075220        [  \r                                       t   e   s   t
0075240        n   u   m   b   e   r   T   y   p   e   d  \r            
0075260                      376 001  \0 255 361                   i   f
0075300    s   o       O   o   p   (   )  \r                            
0075320                        i   f   n   o   t  \r                    
0075340                                            [  \r                
0075360                                                M   e   m   R   e
0075400    a   d   (   m   a   x   c   A   d   r   ,       m   a   x   c
0075420    N   u   m   b   e   r   )  \r                                
0075440                                m   a   x   c   A   d   r   !   0
0075460        =       m   a   x   c   N   u   m   b   e   r   !   1    
0075500    &       #   3   7   7   7   7           /   /   o   n   l   y
0075520        1   8       b   i   t   s  \r                            
0075540                                    m   a   x   c   A   d   r   !
0075560    1       =       m   a   x   c   N   u   m   b   e   r   !   2
0075600   \r                                                            
0075620    P   u   t   s   (   d   s   p   ,       $   *   n   )  \r    
0075640                                                            D   i
0075660    s   p   l   a   y   M   e   m   (   m 376 001  \0   8   z   a
0075700    x   c   A   d   r   )  \r                                    
0075720                            ]  \r                                
0075740        e   n   d   c   a   s   e  \r                            
0075760            ]  \r                           c   a   s   e       $
0076000    ?   :  \r                                       [  \r        
0076020                                W   s   (   "   ?       B   o   o
0076040    t   ,       D   i   a   b   l   o   ,       E   m   u   l   a
0076060    t   o   r   ,       G   o   ,       H   a   l   t   ,       K
0076100    e   e   p   ,       L   o   a   d   ,       M   i   d   a   s
0076120    ,   "   )  \r                                       W   s   (
0076140    "   *   n       n       M   i   c   r   o   -   s   t   a   r
0076160    t   ,       P   r   o   t   e   c   t   i   o   n   ,       Q
0076200    u   i   t   ,       R   e   s   u   m   e   ,   "   )  \r    
0076220                                    B   l   o   c   k   (   )  \r
0076240                                        W   s   (   "   *   n    
0076260    S   t   a   r   t       T   e   n   e   x   ,       V   e 376
0076300  001  \0 311 373   r   s   i   o   n   ,       W   h   a   t   ,
0076320        Z   a   p   ,   "   )  \r                                
0076340        W   s   (   "   *   n       M   a   x   c       m   e   m
0076360    o   r   y       c   o   m   m   a   n   d   s   :       /    
0076400    ^       c   r       l   f       t   a   b   "   )  \r        
0076420                                e   n   d   c   a   s   e  \r    
0076440                                    ]  \r                        
0076460    c   a   s   e       $   *   1   7   7   :  \r                
0076500                        [       W   s   (   "   X   X   X       "
0076520    )   ;       e   n   d   c   a   s   e       ]  \r            
0076540                d   e   f   a   u   l   t   :  \r                
0076560                        O   o   p   (   c   h   a   r   )  \r    
0076600                        ]  \r               ]       r   e   p   e
0076620    a   t  \r   ]  \r  \r   /   /       -   -   -   -   -   -   -
0076640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0076700    -   -   -   - 376 001  \0 366 216   -   -   -   -   -   -   -
0076720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0076740    -   -   -   -   -   -   -   -   -  \r   a   n   d       R   e
0076760    t   u   r   n   T   o   M   i   d   a   s   (   )       b   e
0077000   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0077020    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0077100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0077120    [  \r   S   t   o   p   M   a   x   c   (   )  \r   l   e   t
0077140        s       =       O   p   e   n   F   i   l   e   (   "   C
0077160    o   m   .   c   m   "   ,       k   s   T   y   p   e   W   r
0077200    i   t   e   O   n   l   y   ,       c   h   a   r   I   t   e
0077220    m   ,       0   ,       f   p   C   o   m   C   m   )  \r   i
0077240    f       s       e   q       0       t   h   e   n       C   a
0077260    l   l   S   w   a   t   (   "   C   a   n   '   t       o   p
0077300    e   n       C   o   m   .   c   m 376 001  \0 215 333   "   )
0077320   \r   W   s   s   (   s   ,       "   M   i   d   a   s   .   r
0077340    u   n   /   R   *   n   "   )  \r   C   l   o   s   e   s   (
0077360    s   )  \r   w   h   i   l   e       @   l   v   U   s   e   r
0077400    F   i   n   i   s   h   P   r   o   c       n   e       0    
0077420    d   o       (   @   l   v   U   s   e   r   F   i   n   i   s
0077440    h   P   r   o   c   )   (   )  \r   C   o   u   n   t   e   r
0077460    J   u   n   t   a   (   A   f   t   e   r   C   o   u   n   t
0077500    e   r   J   u   n   t   a   )  \r   ]  \r  \r   /   /       -
0077520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0077620    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       A
0077640    f   t   e   r   C   o   u   n   t   e   r   J   u   n   t   a
0077660    (   )       b   e  \r   /   /       -   -   -   -   -   -   -
0077700    -   -   -   -   -   -   -   -   -   -   -   -   -   - 376 001
0077720   \0 370 207   -   -   -   -   -   -   -   -   -   -   -   -   -
0077740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0100000    -   -   -   -   -   -   -   -   -  \r   [  \r   l   e   t    
0100020    s       =       O   p   e   n   F   i   l   e   (   "   M   i
0100040    d   a   s   .   r   u   n   "   ,       k   s   T   y   p   e
0100060    R   e   a   d   O   n   l   y   )  \r   i   f       s       e
0100100    q       0       t   h   e   n       C   a   l   l   S   w   a
0100120    t   (   "   C   a   n   '   t       o   p   e   n       M   i
0100140    d   a   s   .   R   u   n   "   )  \r   l   e   t       u   s
0100160    e   r   P   a   r   a   m   s       =       v   e   c       2
0100200   \r   u   s   e   r   P   a   r   a   m   s   >   >   U   P   E
0100220    .   t   y   p   e       =       g   l   o   b   a   l   S   w
0100240    i   t   c   h   e   s  \r   u   s   e   r   P   a   r   a   m
0100260    s   >   >   U   P   E   .   l   e   n   g   t   h       =    
0100300    2  \r   u   s   e   r   P   a   r   a   m   s   !   1       =
0100320        $   R 376 001  \0 373 216  \r   u   s   e   r   P   a   r
0100340    a   m   s   !   2       =       0  \r   C   a   l   l   S   u
0100360    b   s   y   s   (   s   ,       0   ,       0   ,       u   s
0100400    e   r   P   a   r   a   m   s   )  \r   C   a   l   l   S   w
0100420    a   t   (   "   C   a   l   l   S   u   b   s   y   s       r
0100440    e   t   u   r   n   e   d   !   "   )  \r   ]  \r  \f  \r   /
0100460    /       -   -   -   -   -   -   -   -   -   -   -   -   -   -
0100500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0100560    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n
0100600    d       E   x   a   m   i   n   e   N   e   x   t   (   i   n
0100620    c   r   e   m   e   n   t   )       b   e  \r   /   /       -
0100640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0100720    -   -   -   -   -   -   -   - 376 001  \0 026 213   -   -   -
0100740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0100760    /   /   i   m   p   l   e   m   e   n   t   s       t   h   e
0101000        "   l   i   n   e       f   e   e   d   "       a   n   d
0101020        "   u   p       a   r   r   o   w   "       c   o   m   m
0101040    a   n   d   s  \r   [  \r   i   f       n   u   m   b   e   r
0101060    T   y   p   e   d       t   h   e   n  \r               t   e
0101100    s   t       c   e   l   l   O   p   e   n  \r                
0101120            i   f   s   o  \r                                    
0101140    t   e   s   t       p   r   o   t   e   c   t   e   d  \r    
0101160                                                i   f   s   o    
0101200    O   o   p   (   )  \r                                        
0101220            i   f   n   o   t       D   i   s   p   l   a   y   M
0101240    e   m   C   o   d   e   (   M   e   m   W   r   i   t   e   (
0101260    m   a   x   c   A   d   r   ,       m   a   x   c   N   u   m
0101300    b   e   r   )   )  \r                           i   f   n   o
0101320    t  \r                                       [     376 001  \0
0101340  204 250   O   o   p   (   )   ;       r   e   t   u   r   n    
0101360    ]  \r   P   u   t   s   (   d   s   p   ,       $   *   n   )
0101400   \r   D   o   u   b   l   e   I   n   c   r   e   m   e   n   t
0101420    (   m   a   x   c   A   d   r   ,       i   n   c   r   e   m
0101440    e   n   t       l   s   h   i   f   t       1   2   )  \r   D
0101460    i   s   p   l   a   y   M   e   m   (   m   a   x   c   A   d
0101500    r   )  \r   ]  \r  \r   /   /       -   -   -   -   -   -   -
0101520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0101620    -   -   -   -  \r   a   n   d       D   i   s   p   l   a   y
0101640    M   e   m   (   m   a   x   c   A   d   r   )       b   e  \r
0101660    /   /       -   -   -   -   -   -   -   -   -   -   -   -   -
0101700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0101740    -   - 376 001  \0   ,   B   -   -   -   -   -   -   -   -   -
0101760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0102000    -   -   -  \r   [  \r   i   f       m   a   x   c   A   d   r
0102020    !   0       r   s   h   i   f   t       1   3       g   e    
0102040    n   u   m   M   e   m   C   a   b   s       t   h   e   n  \r
0102060                [  \r               W   s   (   "       A   d   d
0102100    r   e   s   s       o   u   t       o   f       b   o   u   n
0102120    d   s   .   "   )  \r               D   i   n   g   (   d   s
0102140    p   )  \r               c   e   l   l   O   p   e   n       =
0102160        f   a   l   s   e  \r               r   e   t   u   r   n
0102200   \r               ]  \r   l   e   t       m   a   x   c   D   a
0102220    t   a       =       v   e   c       3  \r   l   e   t       c
0102240    o   d   e       =       M   e   m   R   e   a   d   (   m   a
0102260    x   c   A   d   r   ,       m   a   x   c   D   a   t   a   )
0102300   \r   D   i   s   p   l   a   y   M   e   m   C   o   d   e   (
0102320    c   o   d   e   )  \r   B   l   o   c   k   (   )           /
0102340    /   l   e   t       M   a 376 001  \0   u 035   x   c   W   a
0102360    t   c   h   e   r       r   e   p   o   r   t       m   e   m
0102400    o   r   y       e   r   r   o   r   s  \r   i   f       f   a
0102420    t   a   l   E   r   r   o   r       %       c   o   d   e    
0102440    n   e       0       t   h   e   n  \r               [       P
0102460    u   t   s   (   d   s   p   ,       $   *   n   )   ;       f
0102500    a   t   a   l   E   r   r   o   r       =       f   a   l   s
0102520    e       ]  \r   R   e   s   e   t   L   i   n   e   (   d   s
0102540    p   )  \r   D   i   s   p   l   a   y   2   0   B   i   t   (
0102560    d   s   p   ,       m   a   x   c   A   d   r   )  \r   W   s
0102600    (   "   /       "   )  \r   D   i   s   p   l   a   y   4   0
0102620    B   i   t   (   d   s   p   ,       m   a   x   c   D   a   t
0102640    a   )  \r   W   s   (   "           "   )  \r   c   e   l   l
0102660    O   p   e   n       =       t   r   u   e  \r   ]  \r  \f  \r
0102700    /   /       -   -   -   -   -   -   -   -   -   -   -   -   -
0102720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0102740    -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0 235
0102760  311   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0103000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0103020    -   -   -  \r   a   n   d       D   i   s   p   l   a   y   E
0103040    m   u   l   a   t   o   r   S   t   a   t   e   (   )       b
0103060    e  \r   /   /       -   -   -   -   -   -   -   -   -   -   -
0103100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0103200   \r   [  \r   l   e   t       m   a   x   c   D   a   t   a    
0103220    =       v   e   c       2  \r   W   s   (   "   *   n   A   c
0103240    c   u   m   u   l   a   t   o   r   s   :   "   )  \r   f   o
0103260    r       a   c       =       0       t   o       #   1   7    
0103300    d   o  \r               [  \r               i   f       (   a
0103320    c   &   3   )       e   q       0       t   h   e   n       P
0103340    u   t   T   e   m   p   l   a   t   e   (   d   s   p   ,    
0103360    " 376 001  \0 363  \b   *   n       $   2   O   "   ,       a
0103400    c   )  \r               W   s   (   "           "   )  \r    
0103420            R   e   a   d   L   M   (   a   c   ,       m   a   x
0103440    c   D   a   t   a   )  \r               D   i   s   p   l   a
0103460    y   3   6   B   i   t   (   d   s   p   ,       m   a   x   c
0103500    D   a   t   a   )  \r               B   l   o   c   k   (   )
0103520            /   /   d   o   n   '   t       h   o   g       t   h
0103540    e       m   a   c   h   i   n   e  \r               ]  \r   W
0103560    s   (   "   *   n   P   C   :           "   )  \r   R   e   a
0103600    d   S   M   (   e   m   u   l   a   t   o   r   P   C   ,    
0103620    m   a   x   c   D   a   t   a   )  \r   D   i   s   p   l   a
0103640    y   3   6   B   i   t   (   d   s   p   ,       m   a   x   c
0103660    D   a   t   a   )  \r   ]  \r  \r   /   /       -   -   -   -
0103700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0103760    -   -   -   -   -   - 376 001  \0   c 302   -   -   -   -   -
0104000    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0104020        D   i   s   p   l   a   y   M   e   m   C   o   d   e   (
0104040    c   o   d   e   )       b   e  \r   /   /       -   -   -   -
0104060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0104160    -   -   -   -   -   -   -  \r   i   f       c   o   d   e    
0104200    n   e       0       t   h   e   n  \r               P   u   t
0104220    T   e   m   p   l   a   t   e   (   d   s   p   ,   "       M
0104240    e   m   o   r   y       e   r   r   o   r       (   $   S   )
0104260        "   ,  \r                   s   e   l   e   c   t   o   n
0104300        c   o   d   e       i   n   t   o  \r                    
0104320        [  \r                           c   a   s   e       1   :
0104340        "   B   u   s       P   E   "  \r                        
0104360    c   a   s   e       2   :       c   a   s 376 001  \0   F  \b
0104400    e       3   :       "   T   i   m   e   o   u   t   "  \r    
0104420                        d   e   f   a   u   l   t   :       "   ?
0104440    ?   "  \r                           ]   )  \r  \f  \r   /   /
0104460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0104560    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0104600        G   e   t   S   t   r   i   n   g   (   p   r   o   m   p
0104620    t   ,       a   d   d   r   ,       e   c   h   o   ,       B
0104640    r   e   a   k   C   h   a   r   ;       n   u   m   a   r   g
0104660    s       n   a   )       =       v   a   l   o   f  \r   /   /
0104700    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0105000  376 001  \0 265   o   -   -   -   -   -   -   -   -   -   -   -
0105020    -  \r   [  \r   /   /   m   a   k   e       a       b   c   p
0105040    l       s   t   r   i   n   g       f   r   o   m       t   h
0105060    e       k   e   y   b   o   a   r   d  \r   /   /   i   f    
0105100    e   c   h   o       i   s       t   r   u   e   ,       e   c
0105120    h   o       t   h   e       t   y   p   e   d       c   h   a
0105140    r   a   c   t   e   r   s       t   o       t   h   e       d
0105160    i   s   p   l   a   y   .  \r   /   /   B   r   e   a   k   C
0105200    h   a   r       i   s       a       p   r   o   c   e   d   u
0105220    r   e       t   h   a   t       t   e   s   t   s       w   h
0105240    e   t   h   e   r       a       c   h   a   r   a   c   t   e
0105260    r       s   h   o   u   l   d  \r   /   /   t   e   r   m   i
0105300    n   a   t   e       t   h   e       s   t   r   i   n   g   .
0105320            T   h   e       d   e   f   a   u   l   t       b   r
0105340    e   a   k       s   e   t       c   o   n   s   i   s   t   s
0105360        o   f       j   u   s   t       c   r   .  \r   /   /   r
0105400    e   t   u   r   n 376 001  \0   = 023   s       t   h   e    
0105420    t   e   r   m   i   n   a   t   i   n   g       c   h   a   r
0105440    a   c   t   e   r       n   o   r   m   a   l   l   y   .  \r
0105460    /   /   r   e   t   u   r   n   s       0       i   f       d
0105500    e   l       i   s       t   y   p   e   d       (   r   e   t
0105520    u   r   n       t   o       c   o   m   m   a   n   d       l
0105540    e   v   e   l   )   .  \r   /   /   a   d   d   r       i   s
0105560        t   h   e       a   d   d   r   e   s   s       o   f    
0105600    t   h   e       s   t   r   i   n   g       t   h   a   t    
0105620    s   h   o   u   l   d       g   e   t       t   h   e       r
0105640    e   s   u   l   t   .  \r   /   /   p   r   o   m   p   t    
0105660    i   s       a       p   r   o   m   p   t       s   t   r   i
0105700    n   g       p   r   i   n   t   e   d       i   n       t   h
0105720    e       o   b   v   i   o   u   s       p   l   a   c   e   s
0105740   \r   D   e   f   a   u   l   t   A   r   g   s   (   l   v    
0105760    n   a   ,       2   ,       t   r   u   e   ,       I   s   C
0106000    R   )  \r   i   f       p   r   o   m 376 001  \0 203 215   p
0106020    t       t   h   e   n       W   s   (   p   r   o   m   p   t
0106040    )  \r   l   e   t       c   o   u   n   t       =       0  \r
0106060                [  \r               l   e   t       c       =    
0106100    G   e   t   K   e   y   s   (   )  \r               s   w   i
0106120    t   c   h   o   n       c       i   n   t   o  \r            
0106140                [  \r                           c   a   s   e    
0106160    $   *   0   2   7   :           /   /   w   o   r   d       d
0106200    e   l   e   t   e  \r                           c   a   s   e
0106220        $   *   1   7   7   :           /   /   c   o   m   m   a
0106240    n   d       d   e   l   e   t   e  \r                        
0106260                [  \r                                       f   o
0106300    r       i       =       c   o   u   n   t       t   o       1
0106320        b   y       -   1       d   o  \r                        
0106340                            E   r   a   s   e   B   i   t   s   (
0106360    d   s   p   ,       -   C   h   a   r   W   i   d   t   h   (
0106400    d   s   p   ,       a   d   d   r   >   >   S   t   r   i 376
0106420  001  \0 236   B   n   g   .   c   h   a   r   ^   i   )   )  \r
0106440                                        i   f       c       e   q
0106460        $   *   1   7   7       r   e   s   u   l   t   i   s    
0106500    f   a   l   s   e  \r                                       c
0106520    o   u   n   t       =       0  \r                            
0106540            e   n   d   c   a   s   e  \r                        
0106560                ]  \r                           c   a   s   e    
0106600    $   *   0   0   1   :           /   /   ^   A  \r            
0106620                c   a   s   e       $   *   0   1   0   :        
0106640    /   /   B   S  \r                                       [  \r
0106660                                        i   f       c   o   u   n
0106700    t       n   e       0       t   h   e   n  \r                
0106720                                    [  \r                        
0106740                            E   r   a   s   e   B   i   t   s   (
0106760    d   s   p   ,       -   C   h   a   r   W   i   d   t   h   (
0107000    d   s   p   ,       a   d   d   r   >   >   S   t   r   i   n
0107020    g   .   c   h 376 001  \0 234   L   a   r   ^   c   o   u   n
0107040    t   )   )  \r                                                
0107060    c   o   u   n   t       =       c   o   u   n   t   -   1  \r
0107100                                                    ]  \r        
0107120                                e   n   d   c   a   s   e  \r    
0107140                                    ]  \r                        
0107160    d   e   f   a   u   l   t   :  \r                            
0107200            [  \r                                       i   f    
0107220    B   r   e   a   k   C   h   a   r   (   c   )       t   h   e
0107240    n  \r                                                   [  \r
0107260                                                    a   d   d   r
0107300    >   >   S   t   r   i   n   g   .   l   e   n   g   t   h    
0107320    =       c   o   u   n   t  \r                                
0107340                    r   e   s   u   l   t   i   s       c  \r    
0107360                                                ]  \r            
0107400                            i   f       c   o   u   n   t       l
0107420    e       3   9       &       c     376 001  \0   y 230   g   e
0107440        #   4   0       t   h   e   n  \r                        
0107460                            [  \r                                
0107500                    c   o   u   n   t       =       c   o   u   n
0107520    t       +       1  \r                                        
0107540            a   d   d   r   >   >   S   t   r   i   n   g   .   c
0107560    h   a   r   ^   c   o   u   n   t       =       c  \r        
0107600                                            i   f       e   c   h
0107620    o       t   h   e   n       P   u   t   s   (   d   s   p   ,
0107640        c   )  \r                                                
0107660    ]  \r                                       e   n   d   c   a
0107700    s   e  \r                                       ]  \r        
0107720                    ]  \r               ]       r   e   p   e   a
0107740    t  \r   ]  \r  \r   /   /       -   -   -   -   -   -   -   -
0107760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0110020    -   -   -   -   -   -   -   -   -   -   -   -   -   - 376 001
0110040   \0 025   U   -   -   -   -   -   -   -   -   -   -   -   -   -
0110060    -   -   -   -   -   -   -   -  \r   a   n   d       I   s   C
0110100    R   (   c   h   a   r   )       =       c   h   a   r       e
0110120    q       $   *   n  \r   /   /       -   -   -   -   -   -   -
0110140    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0110240    -   -   -   -  \r  \f  \r   /   /       -   -   -   -   -   -
0110260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0110360    -   -   -   -   -  \r   a   n   d       G   e   t   N   u   m
0110400    b   e   r   (   )       =       v   a   l   o   f  \r   /   /
0110420        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0110440    -   -   - 376 001  \0 022 200   -   -   -   -   -   -   -   -
0110460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0110540    -  \r   /   /   i   n   p   u   t   s       a   n       o   c
0110560    t   a   l       n   u   m   b   e   r       f   r   o   m    
0110600    t   h   e       k   e   y   b   o   a   r   d   ,       i   g
0110620    n   o   r   i   n   g       s   p   a   c   e   s   .  \r   /
0110640    /   r   e   t   u   r   n   s       a       1   6   -   b   i
0110660    t       r   e   s   u   l   t       i   n       a   l   t   o
0110700    N   u   m   b   e   r       a   n   d       a       4   0   -
0110720    b   i   t       r   e   s   u   l   t  \r   /   /   i   n    
0110740    m   a   x   c   N   u   m   b   e   r   .           n   u   m
0110760    b   e   r   T   y   p   e   d       w   i   l   l       b   e
0111000        t   r   u   e       i   f   f       a       n   u   m   b
0111020    e   r       w   a   s       t   y   p   e   d   .  \r   /   /
0111040    r   e   t   u   r   n   s     376 001  \0 321 307   t   h   e
0111060        t   e   r   m   i   n   a   t   i   n   g       c   h   a
0111100    r   a   c   t   e   r  \r   [  \r   a   l   t   o   N   u   m
0111120    b   e   r       =       0  \r   Z   e   r   o   (   m   a   x
0111140    c   N   u   m   b   e   r   ,       3   )  \r   n   u   m   b
0111160    e   r   T   y   p   e   d       =       f   a   l   s   e  \r
0111200    l   e   t       s   t   r   i   n   g       =       v   e   c
0111220        2   0  \r   l   e   t       r   e   s       =       G   e
0111240    t   S   t   r   i   n   g   (   0   ,       s   t   r   i   n
0111260    g   ,       t   r   u   e   ,       N   u   m   b   e   r   T
0111300    e   r   m   i   n   a   t   o   r   )  \r   i   f       r   e
0111320    s       e   q       0       r   e   s   u   l   t   i   s    
0111340    $   *   1   7   7  \r   f   o   r       i       =       1    
0111360    t   o       s   t   r   i   n   g   >   >   S   t   r   i   n
0111400    g   .   l   e   n   g   t   h       d   o  \r               [
0111420   \r               l   e   t       c   h   a   r       =       s
0111440    t   r   i   n   g   >   >   S   t   r   i   n   g 376 001  \0
0111460  260 365   .   c   h   a   r   ^   i  \r               i   f    
0111500    c   h   a   r       n   e       $   *   s       t   h   e   n
0111520   \r                           [  \r                           n
0111540    u   m   b   e   r   T   y   p   e   d       =       t   r   u
0111560    e  \r                           a   l   t   o   N   u   m   b
0111600    e   r       =       a   l   t   o   N   u   m   b   e   r    
0111620    l   s   h   i   f   t       3       +       c   h   a   r   -
0111640    $   0  \r                           l   e   t       o   v   e
0111660    r   f   l   o   w       =       m   a   x   c   N   u   m   b
0111700    e   r   !   0       r   s   h   i   f   t       1   3  \r    
0111720                        m   a   x   c   N   u   m   b   e   r   !
0111740    0       =       m   a   x   c   N   u   m   b   e   r   !   0
0111760        l   s   h   i   f   t       3       +       m   a   x   c
0112000    N   u   m   b   e   r   !   1       r   s   h   i   f   t    
0112020    1   3  \r                           m   a   x   c   N   u   m
0112040    b   e   r   !   1       =       m   a   x   c   N   u   m   b
0112060    e   r 376 001  \0 252   7   !   1       l   s   h   i   f   t
0112100        3       +       m   a   x   c   N   u   m   b   e   r   !
0112120    2       r   s   h   i   f   t       1   3  \r                
0112140            m   a   x   c   N   u   m   b   e   r   !   2       =
0112160        (   m   a   x   c   N   u   m   b   e   r   !   2       &
0112200        #   0   1   0   4   0   0   )       l   s   h   i   f   t
0112220        3       +  \r                               (   c   h   a
0112240    r   -   $   0   )       l   s   h   i   f   t       1   2    
0112260    +       o   v   e   r   f   l   o   w       l   s   h   i   f
0112300    t       8  \r                           ]  \r               ]
0112320   \r   r   e   s   u   l   t   i   s       r   e   s  \r   ]  \r
0112340   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0112360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0112440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0112460    a   n   d       N   u   m 376 001  \0 343 350   b   e   r   T
0112500    e   r   m   i   n   a   t   o   r   (   c   )       =       c
0112520        n   e       $   *   s       &       (   c       l   s    
0112540    $   0       %       c       g   r       $   7   )  \r   /   /
0112560        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0112600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0112660    -   -   -   -   -   -   -   -   -   -   -   -  \r  \r   /   /
0112700        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0112720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113000    -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d
0113020        D   e   f   a   u   l   t   E   x   t   e   n   s   i   o
0113040    n   (   s   t   r   i   n   g   ,       d   e   f   a   u   l
0113060    t   E   x   t   )       b   e  \r   /   /     376 001  \0   w
0113100  300   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0113120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113200    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   l
0113220    e   t       n       =       s   t   r   i   n   g   >   >   S
0113240    t   r   i   n   g   .   l   e   n   g   t   h  \r   f   o   r
0113260        i       =       1       t   o       n       d   o       i
0113300    f       s   t   r   i   n   g   >   >   S   t   r   i   n   g
0113320    .   c   h   a   r   ^   i       e   q       $   .       r   e
0113340    t   u   r   n  \r   f   o   r       i       =       1       t
0113360    o       d   e   f   a   u   l   t   E   x   t   >   >   S   t
0113400    r   i   n   g   .   l   e   n   g   t   h       d   o  \r    
0113420            s   t   r   i   n   g   >   >   S   t   r   i   n   g
0113440    .   c   h   a   r   ^   (   n   +   i   )       =       d   e
0113460    f   a   u   l   t   E   x   t   >   >   S   t   r   i   n   g
0113500    . 376 001  \0 265   &   c   h   a   r   ^   i  \r   s   t   r
0113520    i   n   g   >   >   S   t   r   i   n   g   .   l   e   n   g
0113540    t   h       =       n   +   d   e   f   a   u   l   t   E   x
0113560    t   >   >   S   t   r   i   n   g   .   l   e   n   g   t   h
0113600   \r   ]  \r  \f  \r   /   /       -   -   -   -   -   -   -   -
0113620    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0113720    -   -   -  \r   a   n   d       C   o   n   f   i   r   m   (
0113740    p   r   o   m   p   t   ;       n   u   m   a   r   g   s    
0113760    n   a   )       =       v   a   l   o   f  \r   /   /       -
0114000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0114100    -   -   -   -   -   - 376 001  \0 310 234   -   -   -   -  \r
0114120    [  \r   i   f       n   a       g   r       0       t   h   e
0114140    n       W   s   (   p   r   o   m   p   t   )  \r   W   s   (
0114160    "       [   c   o   n   f   i   r   m   ]       "   )  \r    
0114200            [  \r               s   w   i   t   c   h   o   n    
0114220    G   e   t   K   e   y   s   (   )       i   n   t   o  \r    
0114240                        [  \r                           c   a   s
0114260    e       $   Y   :       c   a   s   e       $   y   :       c
0114300    a   s   e       $   *   n   :       c   a   s   e       $   .
0114320    :  \r                                       [       W   s   (
0114340    "   Y   e   s   .   "   )   ;       r   e   s   u   l   t   i
0114360    s       t   r   u   e       ]  \r                           c
0114400    a   s   e       $   N   :       c   a   s   e       $   n   :
0114420        c   a   s   e       $   *   1   7   7   :  \r            
0114440                            [       W   s   (   "   N   o   .   "
0114460    )   ;       r   e   s   u   l   t   i   s       f   a   l   s
0114500    e       ]  \r                           ] 376 001  \0   ^   <
0114520   \r               O   o   p   (   )  \r               ]       r
0114540    e   p   e   a   t  \r   ]  \r  \r   /   /       -   -   -   -
0114560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0114660    -   -   -   -   -   -   -  \r   a   n   d       O   o   p   (
0114700    c   h   a   r   ;       n   u   m   a   r   g   s       n   a
0114720    )       b   e  \r   /   /       -   -   -   -   -   -   -   -
0114740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0115040    -   -   -  \r   [  \r   i   f       n   a       g   r       0
0115060        t   h   e   n       P   u   t   s   (   d   s   p   ,    
0115100    c   h   a   r   )  \r   W   s   (   "       ?       "   )  \r
0115120  376 001  \0   r 034   D   i   n   g   (   d   s   p   )  \r   R
0115140    e   s   e   t   s   (   k   e   y   s   )  \r   ]  \r  \r   /
0115160    /       -   -   -   -   -   -   -   -   -   -   -   -   -   -
0115200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0115260    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n
0115300    d       K   e   y   S   w   i   t   c   h   (   )       b   e
0115320   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0115340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0115420    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0115440    /   /   c   o   n   t   e   x   t       t   h   a   t       d
0115460    i   r   e   c   t   s       k   e   y   b   o   a   r   d    
0115500    i   n   p   u   t       t   o       t   h   e       c   o   r
0115520    r   e   c   t     376 001  \0  \b 325   w   i   n   d   o   w
0115540   \r   [  \r   D   i   s   m   i   s   s   (   4   )  \r   i   f
0115560        @   #   1   7   7   0   3   6       e   q       -   1    
0115600    t   h   e   n           /   /   i   g   n   o   r   e       i
0115620    f       e   i   t   h   e   r       c   t   r   l       o   r
0115640        s   h   i   f   t       i   s       d   o   w   n  \r    
0115660            [  \r               i   f       @   #   1   7   7   0
0115700    3   5       e   q       #   1   7   7   7   7   5       t   h
0115720    e   n       D   i   r   e   c   t   K   e   y   s   (   c   o
0115740    m   m   a   n   d   C   t   x   ,       d   s   p   )  \r    
0115760            i   f       @   #   1   7   7   0   3   7       e   q
0116000        #   1   7   7   7   7   3       %       @   #   1   7   7
0116020    0   3   7       e   q       #   1   7   7   5   7   3       t
0116040    h   e   n  \r                           D   i   r   e   c   t
0116060    K   e   y   s   (   m   a   x   c   K   e   y   s   C   t   x
0116100    ,       t   D   s   p   )  \r               ]  \r   /   /   "
0116120    d   i   n   g   "       i   f       s 376 001  \0   >   Z   h
0116140    i   f   t   -   s   w   a   t       i   s       t   y   p   e
0116160    d  \r   i   f       @   #   1   7   7   0   3   6       e   q
0116200        #   1   7   7   6   7   7       &  \r       @   #   1   7
0116220    7   0   3   7       e   q       #   1   7   7   7   7   3    
0116240    %       @   #   1   7   7   0   3   7       e   q       #   1
0116260    7   7   5   7   3       t   h   e   n       D   i   n   g   (
0116300    d   s   p   )  \r   ]       r   e   p   e   a   t  \r  \r   /
0116320    /       -   -   -   -   -   -   -   -   -   -   -   -   -   -
0116340    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0116420    -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a   n
0116440    d       D   i   r   e   c   t   K   e   y   s   (   c   t   x
0116460    ,       d   s   )       b   e  \r   /   /       -   -   -   -
0116500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0116520    -   -   -   -   -   -   -   -   -   -   -   -   -   -   - 376
0116540  001  \0 241   |   -   -   -   -   -   -   -   -   -   -   -   -
0116560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0116600    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   i
0116620    f       c   u   r   s   o   r   O   n       t   h   e   n    
0116640    E   r   a   s   e   C   u   r   s   o   r   (   )  \r   k   e
0116660    y   s   C   t   x       =       c   t   x  \r   c   u   r   s
0116700    o   r   D   s   p       =       d   s  \r   d   i   s   p   l
0116720    a   y   A   c   t   i   v   e       =       t   r   u   e  \r
0116740    ]  \r  \f  \r   /   /       -   -   -   -   -   -   -   -   -
0116760    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117060    -   -  \r   a   n   d       G   e   t   K   e   y   s   (   )
0117100        =       v   a   l   o   f  \r   /   /       -   -   -   -
0117120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0117140    -   -   -   - 376 001  \0   a   Z   -   -   -   -   -   -   -
0117160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117220    -   -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   B
0117240    l   o   c   k   (   )       r   e   p   e   a   t   w   h   i
0117260    l   e       K   E   n   d   o   f   s   (   )  \r   d   i   s
0117300    p   l   a   y   A   c   t   i   v   e       =       t   r   u
0117320    e  \r   E   r   a   s   e   C   u   r   s   o   r   (   )  \r
0117340    r   e   s   u   l   t   i   s       G   e   t   s   (   k   e
0117360    y   s   )  \r   ]  \r  \r   /   /       -   -   -   -   -   -
0117400    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117500    -   -   -   -   -  \r   a   n   d       K   E   n   d   o   f
0117520    s   (   )       =       v   a   l   o   f  \r   /   /       -
0117540    -   -   -   -   -   -   -   -   - 376 001  \0  \n 330   -   -
0117560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0117640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0117660    [  \r   D   i   s   m   i   s   s   (   4   )           /   /
0117700    r   e   d   u   c   e       c   o   s   t       o   f       c
0117720    o   n   t   e   x   t   s       p   o   l   l   i   n   g    
0117740    f   o   r       k   e   y   b   o   a   r   d       i   n   p
0117760    u   t  \r   i   f       C   t   x   R   u   n   n   i   n   g
0120000        e   q       k   e   y   s   C   t   x       &       T   i
0120020    m   e   r   H   a   s   E   x   p   i   r   e   d   (   l   v
0120040        c   u   r   s   o   r   T   i   m   e   r   )       t   h
0120060    e   n  \r               t   e   s   t       c   u   r   s   o
0120100    r   O   n  \r                           i   f   s   o       E
0120120    r   a   s   e   C   u   r   s   o   r   (   )  \r            
0120140                i   f   n   o   t  \r                     376 001
0120160   \0   ~   Y                   [  \r                            
0120200            P   u   t   s   (   c   u   r   s   o   r   D   s   p
0120220    ,   $   |   )  \r                                       c   u
0120240    r   s   o   r   O   n       =       t   r   u   e  \r        
0120260                                c   u   r   s   o   r   D   s   p
0120300    >   >   S   T   .   p   u   t   s       =       P   u   t   s
0120320    W   i   t   h   C   u   r   s   o   r  \r                    
0120340                    S   e   t   T   i   m   e   r   (   l   v    
0120360    c   u   r   s   o   r   T   i   m   e   r   ,       5   0   )
0120400   \r                                       ]  \r   r   e   s   u
0120420    l   t   i   s       k   e   y   s   C   t   x       n   e    
0120440    C   t   x   R   u   n   n   i   n   g       %       E   n   d
0120460    o   f   s   (   k   e   y   s   )  \r   ]  \r  \r   /   /    
0120500    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0120560    -   -   - 376 001  \0   I 320   -   -   -   -   -   -   -   -
0120600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0120620   \r   a   n   d       E   r   a   s   e   C   u   r   s   o   r
0120640    (   )       b   e  \r   /   /       -   -   -   -   -   -   -
0120660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0120760    -   -   -   -  \r   [  \r   i   f       c   u   r   s   o   r
0121000    O   n       t   h   e   n  \r               [  \r            
0121020    E   r   a   s   e   B   i   t   s   (   c   u   r   s   o   r
0121040    D   s   p   ,       -   C   h   a   r   W   i   d   t   h   (
0121060    c   u   r   s   o   r   D   s   p   ,       $   |   )   )  \r
0121100                c   u   r   s   o   r   O   n       =       f   a
0121120    l   s   e  \r               c   u   r   s   o   r   D   s   p
0121140    >   >   S   T   .   p   u   t   s       =       D   i   s   p
0121160    l   a   y   P   u   t   s  \r 376 001  \0   @   E            
0121200    S   e   t   T   i   m   e   r   (   l   v       c   u   r   s
0121220    o   r   T   i   m   e   r   ,       5   0   )  \r            
0121240    ]  \r   ]  \r  \r   /   /       -   -   -   -   -   -   -   -
0121260    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0121360    -   -   -  \r   a   n   d       P   u   t   s   W   i   t   h
0121400    C   u   r   s   o   r   (   s   t   r   ,       c   h   a   r
0121420    )       b   e  \r   /   /       -   -   -   -   -   -   -   -
0121440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0121540    -   -   -  \r   [  \r   d   i   s   p   l   a   y   A   c   t
0121560    i   v   e       =       t   r   u   e  \r   i   f 376  \0   I
0121600  326 317       s   t   r       e   q       c   u   r   s   o   r
0121620    D   s   p       &       c   u   r   s   o   r   O   n       t
0121640    h   e   n       E   r   a   s   e   C   u   r   s   o   r   (
0121660    )  \r   D   i   s   p   l   a   y   P   u   t   s   (   s   t
0121700    r   ,       c   h   a   r   )  \r   ]  \r 377  \0  \0   A   l
0121720    t   I   O   D   i   s   p   l   a   y   .   b   c   p   l  \0
0121740  373 232   $ 312   c  \0  \0 376 001  \0   _   j   /   /       A
0121760    l   t   I   O   D   i   s   p   l   a   y   .   b   c   p   l
0122000        -   -       h   a   n   d   l   e   s       p   a   r   t
0122020    s       o   f       A   l   t   o       d   i   s   p   l   a
0122040    y       o   t   h   e   r  \r   /   /  \t  \t  \t   t   h   a
0122060    n       c   o   m   m   a   n   d       w   i   n   d   o   w
0122100    .           A   l   s   o       c   o   n   t   a   i   n   s
0122120   \r   /   /  \t  \t  \t   v   a   r   i   o   u   s       d   i
0122140    s   p   l   a   y       s   u   b   r   o   u   t   i   n   e
0122160    s  \r  \r   /   /  \t   L   a   s   t       m   o   d   i   f
0122200    i   e   d       D   e   c   e   m   b   e   r       1   3   ,
0122220        1   9   8   2           9   :   4   3       A   M  \r  \r
0122240    g   e   t       "   a   l   t   i   o   .   d   e   c   l   "
0122260   \r   g   e   t       "   s   t   r   e   a   m   s   .   d   "
0122300   \r   g   e   t       "   A   l   t   o   D   e   f   s   .   d
0122320    "  \r  \r  \r   e   x   t   e   r   n   a   l  \r   [  \r   /
0122340    /   o   u   t   g   o   i   n   g       p   r 376 001  \0 270
0122360    g   o   c   e   d   u   r   e   s  \r   M   a   x   c   T   e
0122400    r   m   i   n   a   l   ;       M   a   x   c   K   e   y   b
0122420    o   a   r   d   ;       M   a   x   c   T   e   r   m   i   n
0122440    a   l   1  \r   D   i   a   b   l   o   E   r   r   o   r   ;
0122460        U   p   d   a   t   e   R   e   g   i   s   t   e   r   D
0122500    i   s   p   l   a   y   ;       D   i   s   p   l   a   y   P
0122520    a   r   i   t   y   E   r   r   o   r  \r   D   i   s   p   l
0122540    a   y   2   0   B   i   t   ;       D   i   s   p   l   a   y
0122560    3   6   B   i   t   ;       D   i   s   p   l   a   y   4   0
0122600    B   i   t   ;       P   r   i   n   t   O   c   t   a   l   F
0122620    i   e   l   d  \r   D   i   n   g  \r  \r   /   /   i   n   c
0122640    o   m   i   n   g       p   r   o   c   e   d   u   r   e   s
0122660   \r   W   s   ;       W   s   s   ;       G   e   t   s   ;    
0122700    P   u   t   s   ;       R   e   s   e   t   s   ;       S   t
0122720    a   t   e   o   f   s   ;       B   l   o   c   k  \r   A   l
0122740    l   o   c   a   t   e   ;       F   r   e   e   ;       D   i
0122760    s 376 001  \0 022 325   m   i   s   s   ;       P   u   t   T
0123000    e   m   p   l   a   t   e   ;       S   e   t   T   i   m   e
0123020    r   ;       T   i   m   e   r   H   a   s   E   x   p   i   r
0123040    e   d  \r   M   y   F   r   a   m   e   ;       G   o   t   o
0123060    F   r   a   m   e   ;       R   e   s   e   t   L   i   n   e
0123100   \r   G   e   t   K   e   y   s  \r   M   e   m   R   e   a   d
0123120    ;       M   e   m   R   e   a   d   B   l   o   c   k   3   2
0123140    ;       M   e   m   R   e   a   d   B   l   o   c   k   4   0
0123160    ;       D   i   s   p   l   a   c   e   M   a   x   c   A   d
0123200    r  \r   T   a   k   e   D   L   S   O   u   t   p   u   t   ;
0123220        G   i   v   e   D   L   S   I   n   p   u   t  \r  \r   /
0123240    /   o   u   t   g   o   i   n   g       s   t   a   t   i   c
0123260    s  \r   t   D   s   p   ;       h   D   s   p   ;       h   S
0123300    h   o   w   ;       h   N   o   S   h   o   w   ;       u   p
0123320    d   a   t   e   D   i   s   p   l   a   y   V   a   l   i   d
0123340    ;       d   i   s   p   l   a   y   A   c   t   i   v   e  \r
0123360    d   i   a   b   l   o 376 001  \0 230   >   S   t   r   ;    
0123400    d   i   a   b   l   o   C   o   p   y   ;       k   e   e   p
0123420    D   i   s   p   l   a   y   O   n  \r  \r   /   /   i   n   c
0123440    o   m   i   n   g       s   t   a   t   i   c   s  \r   s   y
0123460    s   Z   o   n   e   ;       d   s   p   ;       r   e   s   e
0123500    t   E   x   e   c   u   t   e   d   ;       a   d   r   M   T
0123520    B   S   ;       p   a   r   i   t   y   D   a   t   a  \r   ]
0123540   \r  \r   s   t   a   t   i   c  \r   [  \r   t   D   s   p   ;
0123560        h   D   s   p   ;       h   S   h   o   w   ;       h   N
0123600    o   S   h   o   w   ;       u   p   d   a   t   e   D   i   s
0123620    p   l   a   y   V   a   l   i   d   ;       d   i   s   p   l
0123640    a   y   A   c   t   i   v   e  \r   d   i   a   b   l   o   S
0123660    t   r  \r   d   i   a   b   l   o   C   o   p   y       =    
0123700    f   a   l   s   e  \r   d   i   a   b   l   o   B   u   s   y
0123720        =       f   a   l   s   e  \r   d   i   a   b   l   o   H
0123740    u   n   g       =       f   a   l   s   e  \r   k   e   e   p
0123760    D   i   s   p   l   a   y   O   n       = 376 001  \0 351   L
0124000        f   a   l   s   e  \r   ]  \r  \r   m   a   n   i   f   e
0124020    s   t       e   c   D   i   a   b   l   o   P   r   i   n   t
0124040    e   r   C   h   e   c   k       =       2   5   0   1  \r  \f
0124060   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0124100    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0124160    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0124200    l   e   t       M   a   x   c   T   e   r   m   i   n   a   l
0124220    (   )       b   e  \r   /   /       -   -   -   -   -   -   -
0124240    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0124340    -   -   -   -  \r   /   /   c   o   n   t   e   x   t       s
0124360    i   m   u   l   a   t   i   n   g       M   a   x   c       D
0124400  376 001  \0 200 223   L   S       t   e   r   m   i   n   a   l
0124420        0       i   n       b   o   t   t   o   m       w   i   n
0124440    d   o   w  \r   [  \r   l   e   t       c   h   a   r       =
0124460        T   a   k   e   D   L   S   O   u   t   p   u   t   (   0
0124500    )       &       #   1   7   7  \r   s   w   i   t   c   h   o
0124520    n       c   h   a   r       i   n   t   o  \r               [
0124540   \r               c   a   s   e       $   *   0   0   7   :    
0124560        /   /   b   e   l   l  \r                           [    
0124600    D   i   n   g   (   t   D   s   p   )   ;       e   n   d   c
0124620    a   s   e       ]  \r               c   a   s   e       $   *
0124640    n   :           /   /   i   g   n   o   r   e       c   a   r
0124660    r   i   a   g   e       r   e   t   u   r   n  \r            
0124700                e   n   d   c   a   s   e  \r               c   a
0124720    s   e       $   *   l   :           /   /   t   u   r   n    
0124740    l   i   n   e       f   e   e   d       i   n   t   o       c
0124760    a   r   r   i   a   g   e       r   e   t   u   r   n  \r    
0125000                      376 001  \0 322 020   c   h   a   r       =
0125020        $   *   n           /   /   f   a   l   l       i   n   t
0125040    o       d   e   f   a   u   l   t       c   a   s   e  \r    
0125060            d   e   f   a   u   l   t   :  \r                    
0125100        P   u   t   s   (   t   D   s   p   ,       c   h   a   r
0125120    )  \r                           i   f       d   i   a   b   l
0125140    o   C   o   p   y       t   h   e   n       D   i   a   b   l
0125160    o   P   r   i   n   t   (   c   h   a   r   )  \r            
0125200    ]  \r   ]       r   e   p   e   a   t  \r  \r   /   /       -
0125220    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0125320    -   -   -   -   -   -   -   -   -   -  \r   a   n   d       M
0125340    a   x   c   K   e   y   b   o   a   r   d   (   )       b   e
0125360        G   i   v   e   D   L   S   I   n   p   u   t   (   0   ,
0125400        G   e   t   K   e   y   s   (   ) 376 001  \0 336 205   )
0125420        r   e   p   e   a   t  \r   /   /       -   -   -   -   -
0125440    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0125540    -   -   -   -   -   -  \r  \r   /   /       -   -   -   -   -
0125560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0125660    -   -   -   -   -   -  \r   a   n   d       M   a   x   c   T
0125700    e   r   m   i   n   a   l   1   (   )       b   e  \r   /   /
0125720        -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0125740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0126000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   - 376
0126020  001  \0 367  \f   -   -   -   -   -   -   -   -   -   -   -   -
0126040    -  \r   /   /   c   o   n   t   e   x   t       s   i   m   u
0126060    l   a   t   i   n   g       M   a   x   c       D   L   S    
0126100    t   e   r   m   i   n   a   l       1       u   s   i   n   g
0126120        D   i   a   b   l   o       p   r   i   n   t   e   r  \r
0126140    [  \r   l   e   t       c   h   a   r       =       T   a   k
0126160    e   D   L   S   O   u   t   p   u   t   (   1   )       &    
0126200    #   1   7   7  \r   s   w   i   t   c   h   o   n       c   h
0126220    a   r       i   n   t   o  \r               [  \r            
0126240    c   a   s   e       $   *   n   :           /   /   i   g   n
0126260    o   r   e       c   a   r   r   i   a   g   e       r   e   t
0126300    u   r   n  \r                           e   n   d   c   a   s
0126320    e  \r               c   a   s   e       $   *   l   :        
0126340    /   /   t   u   r   n       l   i   n   e       f   e   e   d
0126360        i   n   t   o       c   a   r   r   i   a   g   e       r
0126400    e   t   u   r   n  \r                           c   h   a   r
0126420        =       $ 376 001  \0 344       *   n           /   /   f
0126440    a   l   l       i   n   t   o       d   e   f   a   u   l   t
0126460        c   a   s   e  \r               d   e   f   a   u   l   t
0126500    :  \r                           D   i   a   b   l   o   P   r
0126520    i   n   t   (   c   h   a   r   )  \r               ]  \r   ]
0126540        r   e   p   e   a   t  \r  \r   /   /       -   -   -   -
0126560    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0126660    -   -   -   -   -   -   -  \r   a   n   d       D   i   a   b
0126700    l   o   P   r   i   n   t   (   c   h   a   r   )       b   e
0126720   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0126740    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0127020    -   -   -   -   -   -   -   -   - 376 001  \0   K   F   -   -
0127040    -   -   -   -  \r   [  \r   w   h   i   l   e       d   i   a
0127060    b   l   o   B   u   s   y       d   o       B   l   o   c   k
0127100    (   )  \r   i   f       d   i   a   b   l   o   H   u   n   g
0127120        t   h   e   n  \r               t   e   s   t       S   t
0127140    a   t   e   o   f   s   (   d   i   a   b   l   o   S   t   r
0127160    )           /   /   n   o   w       r   e   a   d   y   ?  \r
0127200                            i   f   s   o       [       d   i   a
0127220    b   l   o   H   u   n   g       =       f   a   l   s   e   ;
0127240        R   e   s   e   t   s   (   d   i   a   b   l   o   S   t
0127260    r   )       ]           /   /   y   e   s   ,       t   i   m
0127300    e       t   o       t   r   y       a   g   a   i   n  \r    
0127320                        i   f   n   o   t       r   e   t   u   r
0127340    n           /   /   n   o   ,       t   h   r   o   w       c
0127360    h   a   r       a   w   a   y  \r   d   i   a   b   l   o   B
0127400    u   s   y       =       t   r   u   e  \r   d   i   a   b   l
0127420    o   S   t   r   >   >   S   T   .   p   a   r   1     376 001
0127440   \0   r 024   =       M   y   F   r   a   m   e   (   )  \r   P
0127460    u   t   s   (   d   i   a   b   l   o   S   t   r   ,       c
0127500    h   a   r   )  \r   i   f       d   i   a   b   l   o   H   u
0127520    n   g       t   h   e   n  \r               [  \r            
0127540    W   s   (   "   *   n   D   i   a   b   l   o       p   r   i
0127560    n   t   e   r       n   o   t       r   e   a   d   y   *   n
0127600    "   )  \r               D   i   n   g   (   d   s   p   )  \r
0127620                ]  \r   d   i   a   b   l   o   B   u   s   y    
0127640    =       f   a   l   s   e  \r   ]  \r  \r   /   /       -   -
0127660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0127760    -   -   -   -   -   -   -   -   -  \r   a   n   d       D   i
0130000    a   b   l   o   E   r   r   o   r   (   s   t   r   ,       e
0130020    c   )       b   e  \r   /   /       -   -   -   -   -   -   -
0130040    -   -   - 376 001  \0   O   i   -   -   -   -   -   -   -   -
0130060    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0130140    -   -   -   -   -   -   -   -   -  \r   /   /   E   r   r   o
0130160    r   s       p   r   o   c   e   d   u   r   e       c   a   l
0130200    l   e   d       f   r   o   m       w   i   t   h   i   n    
0130220    D   i   a   b   l   o       P   r   i   n   t   e   r       p
0130240    a   c   k   a   g   e  \r   [  \r   i   f       e   c       e
0130260    q       e   c   D   i   a   b   l   o   P   r   i   n   t   e
0130300    r   C   h   e   c   k       t   h   e   n       R   e   s   e
0130320    t   s   (   s   t   r   )  \r   d   i   a   b   l   o   H   u
0130340    n   g       =       t   r   u   e  \r   G   o   t   o   F   r
0130360    a   m   e   (   s   t   r   >   >   S   T   .   p   a   r   1
0130400    )  \r   ]  \r  \f  \r   /   /       -   -   -   -   -   -   -
0130420    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0130440    -   -   -   -   -   -   -   - 376 001  \0 333   D   -   -   -
0130460    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0130520    -   -   -   -   -   -   -   -   -  \r   a   n   d       U   p
0130540    d   a   t   e   R   e   g   i   s   t   e   r   D   i   s   p
0130560    l   a   y   (   )       b   e  \r   /   /       -   -   -   -
0130600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0130700    -   -   -   -   -   -   -  \r   /   /   c   o   n   t   e   x
0130720    t       t   h   a   t       u   p   d   a   t   e   s       t
0130740    h   e       M   a   x   c       r   e   g   i   s   t   e   r
0130760        d   i   s   p   l   a   y       i   n       t   o   p    
0131000    w   i   n   d   o   w  \r   [  \r   s   t   r   u   c   t   u
0131020    r   e       B   y   t   e   s   ^   1   ,   8   0       b   y
0131040    t   e  \r   R   e   s   e   t   s   (   h   S   h 376 001  \0
0131060  030   V   o   w   )   ;       R   e   s   e   t   s   (   h   D
0131100    s   p   )           /   /   c   l   e   a   r       t   h   e
0131120        r   e   g   i   s   t   e   r       d   i   s   p   l   a
0131140    y       w   i   n   d   o   w  \r   B   l   o   c   k   (   )
0131160        r   e   p   e   a   t   u   n   t   i   l       r   e   s
0131200    e   t   E   x   e   c   u   t   e   d  \r   l   e   t       r
0131220    e   g   A   d   r       =       v   e   c       3   *   5  \r
0131240    l   e   t       t   e   x   t   B   u   f       =       A   l
0131260    l   o   c   a   t   e   (   s   y   s   Z   o   n   e   ,    
0131300    4   1   )  \r   l   e   t       m   a   x   c   A   d   r    
0131320    =       v   e   c       1  \r   D   i   s   p   l   a   c   e
0131340    M   a   x   c   A   d   r   (   x   N   V   M   S   G   ,    
0131360    m   a   x   c   A   d   r   )  \r   M   e   m   R   e   a   d
0131400    B   l   o   c   k   3   2   (   m   a   x   c   A   d   r   ,
0131420        t   e   x   t   B   u   f   ,       2   0   )           /
0131440    /   r   e   a   d       8   0       b   y   t   e   s       o
0131460    f     376 001  \0 235   $   t   e   x   t  \r   M   e   m   R
0131500    e   a   d   B   l   o   c   k   4   0   (   m   a   x   c   A
0131520    d   r   ,       r   e   g   A   d   r   ,       5   )        
0131540    /   /   r   e   a   d       5       w   o   r   d   s       o
0131560    f       p   o   i   n   t   e   r   s  \r   u   p   d   a   t
0131600    e   D   i   s   p   l   a   y   V   a   l   i   d       =    
0131620    t   r   u   e  \r   f   o   r       i       =       0       t
0131640    o       2   9       d   o           /   /   t   e   s   t    
0131660    f   o   r       r   e   a   s   o   n   a   b   l   e       l
0131700    o   o   k   i   n   g       s   t   u   f   f       i   n    
0131720    h   e   a   d   e   r  \r               i   f       t   e   x
0131740    t   B   u   f   !   i       e   q       0       %       (   t
0131760    e   x   t   B   u   f   !   i       &       #   1   0   0   2
0132000    0   0   )       n   e       0       t   h   e   n  \r        
0132020                    u   p   d   a   t   e   D   i   s   p   l   a
0132040    y   V   a   l   i   d       =       f   a   l   s   e  \r   u
0132060    n   l   e   s   s       u 376 001  \0 355   W   p   d   a   t
0132100    e   D   i   s   p   l   a   y   V   a   l   i   d       d   o
0132120   \r               [           /   /   n   o   t   h   i   n   g
0132140        t   o       d   i   s   p   l   a   y   ,       c   l   e
0132160    a   r       t   h   e       w   i   n   d   o   w  \r        
0132200        F   r   e   e   (   s   y   s   Z   o   n   e   ,       t
0132220    e   x   t   B   u   f   )  \r               D   i   s   m   i
0132240    s   s   (   1   0   0   0   )           /   /   w   a   i   t
0132260        1   0       s   e   c   o   n   d   s       a   n   d    
0132300    t   r   y       a   g   a   i   n  \r               l   o   o
0132320    p  \r               ]  \r   f   o   r       i       =       1
0132340        t   o       8   0       d   o       P   u   t   s   (   h
0132360    D   s   p   ,       t   e   x   t   B   u   f   >   >   B   y
0132400    t   e   s   ^   i   )           /   /   d   i   s   p   l   a
0132420    y       t   e   x   t       l   i   n   e  \r   F   r   e   e
0132440    (   s   y   s   Z   o   n   e   ,       t   e   x   t   B   u
0132460    f   )  \r   P   u   t   s   (   h   D   s   p 376 001  \0 342
0132500    l   ,       $   *   n   )  \r   f   o   r       i       =    
0132520    0       t   o       4       d   o  \r               [  \r    
0132540            B   l   o   c   k   (   )           /   /   d   o   n
0132560    '   t       h   o   g       t   h   e       m   a   c   h   i
0132600    n   e  \r               W   s   s   (   h   D   s   p   ,    
0132620    "               "   )  \r               D   i   s   p   l   a
0132640    y   2   0   B   i   t   (   h   D   s   p   ,       r   e   g
0132660    A   d   r   +   3   *   i   +   1   )  \r               W   s
0132700    s   (   h   D   s   p   ,   "                           "   )
0132720   \r               ]  \r  \r   d   i   s   p   l   a   y   A   c
0132740    t   i   v   e       =       t   r   u   e  \r   l   e   t    
0132760    t   i   m   e   r       =       n   i   l  \r   w   h   i   l
0133000    e       u   p   d   a   t   e   D   i   s   p   l   a   y   V
0133020    a   l   i   d       d   o  \r               [           /   /
0133040    r   e   f   r   e   s   h       t   h   e       d   a   t   a
0133060        p   o   r   t   i   o   n       o   f       t   h   e    
0133100    d 376 001  \0   1   /   i   s   p   l   a   y       o   n   c
0133120    e       p   e   r       s   e   c   o   n   d  \r            
0133140    R   e   s   e   t   L   i   n   e   (   h   N   o   S   h   o
0133160    w   )           /   /   t   h   e       s   t   r   e   a   m
0133200        n   o   t       b   e   i   n   g       s   h   o   w   n
0133220        n   o   w  \r               f   o   r       i       =    
0133240    0       t   o       4       d   o  \r                        
0133260    [           /   /   r   e   a   d       a   n   d       d   i
0133300    s   p   l   a   y       c   u   r   r   e   n   t       v   a
0133320    l   u   e   s       o   f       M   a   x   c       r   e   g
0133340    i   s   t   e   r   s  \r                           B   l   o
0133360    c   k   (   )  \r                           l   e   t       m
0133400    a   x   c   D   a   t   a       =       v   e   c       3  \r
0133420                            M   e   m   R   e   a   d   (   r   e
0133440    g   A   d   r   +   3   *   i   +   1   ,       m   a   x   c
0133460    D   a   t   a   )  \r                           D   i   s   p
0133500    l   a   y   3   6   B 376 001  \0 264   @   i   t   (   h   N
0133520    o   S   h   o   w   ,       m   a   x   c   D   a   t   a   )
0133540   \r                           W   s   s   (   h   N   o   S   h
0133560    o   w   ,       "               "   )  \r                    
0133600        ]  \r               /   /   s   w   a   p       t   h   e
0133620        u   p   d   a   t   i   n   g       d   i   s   p   l   a
0133640    y       s   t   r   e   a   m   s  \r               h   D   s
0133660    p   >   >   D   S   .   l   d   c   b   >   >   D   C   B   .
0133700    n   e   x   t       =       h   N   o   S   h   o   w   >   >
0133720    D   S   .   f   d   c   b  \r               l   e   t       t
0133740        =       h   S   h   o   w   ;       h   S   h   o   w    
0133760    =       h   N   o   S   h   o   w   ;       h   N   o   S   h
0134000    o   w       =       t  \r               D   i   s   m   i   s
0134020    s   (   1   0   0   )  \r  \r               /   /       I   f
0134040        n   o   t   h   i   n   g       i   n   t   e   r   e   s
0134060    t   i   n   g       i   s       h   a   p   p   e   n   i   n
0134100    g   ,       t   u   r   n       o   f   f 376 001  \0 303 255
0134120        t   h   e       d   i   s   p   l   a   y  \r            
0134140    i   f       d   i   s   p   l   a   y   A   c   t   i   v   e
0134160        %       k   e   e   p   D   i   s   p   l   a   y   O   n
0134200        t   h   e   n  \r                           [       S   e
0134220    t   T   i   m   e   r   (   l   v       t   i   m   e   r   ,
0134240        1   2   0   0   0   )   ;       d   i   s   p   l   a   y
0134260    A   c   t   i   v   e       =       f   a   l   s   e       ]
0134300   \r               i   f       T   i   m   e   r   H   a   s   E
0134320    x   p   i   r   e   d   (   l   v       t   i   m   e   r   )
0134340        t   h   e   n  \r                           [  \r        
0134360                    l   e   t       s   a   v   e   4   2   0    
0134400    =       @   #   4   2   0  \r                           @   #
0134420    4   2   0       =       0  \r                           w   h
0134440    i   l   e       n   o   t       (   d   i   s   p   l   a   y
0134460    A   c   t   i   v   e       %       k   e   e   p   D   i   s
0134500    p   l   a   y   O   n   )       &  \r                        
0134520  376 001  \0 216 337       u   p   d   a   t   e   D   i   s   p
0134540    l   a   y   V   a   l   i   d       d   o       D   i   s   m
0134560    i   s   s   (   1   0   0   )  \r                           @
0134600    #   4   2   0       =       s   a   v   e   4   2   0  \r    
0134620                        ]  \r               ]  \r   ]       r   e
0134640    p   e   a   t  \r  \f  \r   /   /       -   -   -   -   -   -
0134660    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0134760    -   -   -   -   -  \r   a   n   d       D   i   s   p   l   a
0135000    y   P   a   r   i   t   y   E   r   r   o   r   (   )       b
0135020    e  \r   /   /       -   -   -   -   -   -   -   -   -   -   -
0135040    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0135120    -   -   -   -   - 376 001  \0   f 366   -   -   -   -   -   -
0135140    -   -   -   -   -  \r   /   /   d   i   s   p   l   a   y   s
0135160        a   n   d       p   r   i   n   t   s       d   a   t   a
0135200        f   o   r       a   n       A   l   t   o       p   a   r
0135220    i   t   y       e   r   r   o   r  \r   [  \r   l   e   t    
0135240    s   t   r       =       l   v       S   p   l   i   t   S   t
0135260    r   e   a   m       -       o   f   f   s   e   t       S   T
0135300    .   p   u   t   s   /   1   6           /   /   m   a   k   e
0135320        s   p   l   i   t       s   t   r   e   a   m  \r   W   s
0135340    s   (   s   t   r   ,       "   *   n   A   n       A   l   t
0135360    o       m   e   m   o   r   y       p   a   r   i   t   y    
0135400    e   r   r   o   r       h   a   s       o   c   c   u   r   r
0135420    e   d   .   "   )  \r   P   u   t   T   e   m   p   l   a   t
0135440    e   (   s   t   r   ,       "   *   n   D   C   B   R   =   $
0135460    U   O   ,       K   N   M   A   R   =   $   U   O   ,       D
0135500    W   A   =   $   U   O   ,       C   B   A   =   $   U   O   ,
0135520        P   C   =   $   U   O   ,       S 376 001  \0   A   ]   A
0135540    D   =   $   U   O   "   ,  \r       p   a   r   i   t   y   D
0135560    a   t   a   >   >   P   a   r   D   a   t   a   .   d   c   b
0135600    r   ,       p   a   r   i   t   y   D   a   t   a   >   >   P
0135620    a   r   D   a   t   a   .   k   n   m   a   r   ,  \r       p
0135640    a   r   i   t   y   D   a   t   a   >   >   P   a   r   D   a
0135660    t   a   .   d   w   a   ,       p   a   r   i   t   y   D   a
0135700    t   a   >   >   P   a   r   D   a   t   a   .   c   b   a   ,
0135720   \r       p   a   r   i   t   y   D   a   t   a   >   >   P   a
0135740    r   D   a   t   a   .   p   c   ,       p   a   r   i   t   y
0135760    D   a   t   a   >   >   P   a   r   D   a   t   a   .   s   a
0136000    d   )  \r   P   u   t   T   e   m   p   l   a   t   e   (   s
0136020    t   r   ,       s   e   l   e   c   t   o   n       p   a   r
0136040    i   t   y   D   a   t   a   >   >   P   a   r   D   a   t   a
0136060    .   n   u   m   E   r   r   o   r   s       i   n   t   o  \r
0136100                [  \r               c   a   s   e       0   :    
0136120    "   *   n   N   o       e   r   r   o   r   s       f   o 376
0136140  001  \0 220 263   u   n   d       d   u   r   i   n   g       s
0136160    w   e   e   p   .   "  \r               c   a   s   e       1
0136200    :       "   *   n   $   U   D       e   r   r   o   r       f
0136220    o   u   n   d   :           a   d   d   r   e   s   s   =   $
0136240    U   O   ,       c   o   n   t   e   n   t   s   =   $   U   O
0136260    .   "  \r               d   e   f   a   u   l   t   :       "
0136300    *   n   $   U   D       e   r   r   o   r   s       f   o   u
0136320    n   d   ;           f   i   r   s   t       a   d   d   r   e
0136340    s   s   =   $   U   O   ,       c   o   n   t   e   n   t   s
0136360    =   $   U   O   .   "  \r               ]   ,       p   a   r
0136400    i   t   y   D   a   t   a   >   >   P   a   r   D   a   t   a
0136420    .   n   u   m   E   r   r   o   r   s   ,  \r       p   a   r
0136440    i   t   y   D   a   t   a   >   >   P   a   r   D   a   t   a
0136460    .   e   r   r   o   r   A   d   r   ,       p   a   r   i   t
0136500    y   D   a   t   a   >   >   P   a   r   D   a   t   a   .   e
0136520    r   r   o   r   D   a   t   a   )  \r   D   i   a   b   l   o
0136540    P   r   i   n 376 001  \0 002   ~   t   (   $   *   n   )  \r
0136560    p   a   r   i   t   y   D   a   t   a   >   >   P   a   r   D
0136600    a   t   a   .   f   l   a   g       =       0  \r   ]  \r  \r
0136620    /   /       -   -   -   -   -   -   -   -   -   -   -   -   -
0136640    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0136720    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0136740    n   d       S   p   l   i   t   S   t   r   e   a   m   (   n
0136760    i   l   ,       c   h   a   r   )       b   e  \r   /   /    
0137000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0137100    -   -   -   -   -   -   -   -   -   -   -  \r               [
0137120        P   u   t   s   (   d   s   p   ,       c   h   a   r   )
0137140    ;       D   i   a   b   l   o   P 376 001  \0 333 215   r   i
0137160    n   t   (   c   h   a   r   )       ]  \r  \f  \r   /   /    
0137200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0137300    -   -   -   -   -   -   -   -   -   -   -  \r   a   n   d    
0137320    D   i   s   p   l   a   y   2   0   B   i   t   (   s   t   r
0137340    ,       a   d   r   )       b   e       P   r   i   n   t   O
0137360    c   t   a   l   F   i   e   l   d   (   s   t   r   ,       a
0137400    d   r   ,       0   ,       1   9   )  \r   /   /       -   -
0137420    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0137520    -   -   -   -   -   -   -   -   -  \r  \r   /   /       -   -
0137540    -   -   -   -   -   -   -   -   -   -   -   -   -   - 376 001
0137560   \0  \n   1   -   -   -   -   -   -   -   -   -   -   -   -   -
0137600    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0137640    -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r   a
0137660    n   d       D   i   s   p   l   a   y   3   6   B   i   t   (
0137700    s   t   r   ,       a   d   r   )       b   e  \r   /   /    
0137720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0140020    -   -   -   -   -   -   -   -   -   -   -  \r   [  \r   P   r
0140040    i   n   t   O   c   t   a   l   F   i   e   l   d   (   s   t
0140060    r   ,       a   d   r   ,       0   ,       1   7   )  \r   P
0140100    u   t   s   (   s   t   r   ,       $   *   s   )  \r   P   r
0140120    i   n   t   O   c   t   a   l   F   i   e   l   d   (   s   t
0140140    r   ,       a   d   r   ,       1   8   ,       3   5   )  \r
0140160    ]  \r  \r 376 001  \0 217 034   /   /       -   -   -   -   -
0140200    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0140300    -   -   -   -   -   -  \r   a   n   d       D   i   s   p   l
0140320    a   y   4   0   B   i   t   (   s   t   r   ,       a   d   r
0140340    )       b   e  \r   /   /       -   -   -   -   -   -   -   -
0140360    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0140460    -   -   -  \r   [  \r   t   e   s   t       (   a   d   r   !
0140500    2       &       #   7   4   0   0   )       n   e       0  \r
0140520                i   f   s   o       P   r   i   n   t   O   c   t
0140540    a   l   F   i   e   l   d   (   s   t   r   ,       a   d   r
0140560    ,       3   6   ,       3   9 376 001  \0 363 023   )  \r    
0140600            i   f   n   o   t       W   s   s   (   s   t   r   ,
0140620        "           "   )  \r   P   u   t   s   (   s   t   r   ,
0140640        $   *   s   )  \r   D   i   s   p   l   a   y   3   6   B
0140660    i   t   (   s   t   r   ,       a   d   r   )  \r   ]  \r  \r
0140700   \r   /   /       -   -   -   -   -   -   -   -   -   -   -   -
0140720    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0141000    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -  \r
0141020    a   n   d       P   r   i   n   t   O   c   t   a   l   F   i
0141040    e   l   d   (   s   t   r   ,       a   d   r   ,       f   i
0141060    r   s   t   B   i   t   ,       l   a   s   t   B   i   t   )
0141100        b   e  \r   /   /       -   -   -   -   -   -   -   -   -
0141120    -   -   -   -   -   -   -   -   -   -   -   -   -   -   -   -
*
0141160    -   -   -   -   -   -   -   -   -   -   -   -   - 376 001  \0
0141200    $   ,   -   -   -   -   -   -   -   -   -   -   -   -   -   -
0141220    -   -   -   -   -   -   -  \r   [  \r   l   e   t       r    
0141240    =       (   l   a   s   t   B   i   t   -   f   i   r   s   t
0141260    B   i   t   )       r   e   m       3  \r   f   i   r   s   t
0141300    B   i   t       =       f   i   r   s   t   B   i   t   +   r
0141320   \r   l   e   t       m   a   s   k       =       (   2       l
0141340    s   h   i   f   t       r   )   -   1  \r               [  \r
0141360                l   e   t       q   ,       r       =       f   i
0141400    r   s   t   B   i   t       r   s   h   i   f   t       4   ,
0141420        f   i   r   s   t   B   i   t   &   #   1   7  \r        
0141440        P   u   t   s   (   s   t   r   ,       $   0       +    
0141460    (   (   a   d   r   !   (   q   -   1   )       l   s   h   i
0141500    f   t       (   1   +   r   )       +       a   d   r   !   q
0141520