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