$ 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