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