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