$ od -c -N 50000 [Indigo]<Portola>Nova>GATEWAY.DM!1
0000000 377 \0 \0 G a t e w a y . b c p l \0
0000020 376 001 \0 264 = / / G a t e w a y .
0000040 b c p l \r \r / / L a s t m o
0000060 d i f i e d M a r c h 1 0 ,
0000100 1 9 7 9 3 : 3 0 P M b
0000120 y B o g g s \r \r g e t " P u
0000140 p 0 . d e c l " \r g e t " P u
0000160 p 1 . d e c l " \r \r e x t e r n
0000200 a l \r [ \r / / o u t g o i n g
0000220 p r o c e d u r e s \r G a t e
0000240 w a y ; G a t e w a y F i n i
0000260 s h \r \r / / i n c o m i n g
0000300 p r o c e d u r e s \r G a t e w
0000320 a y I n i t ; C a l l C o n t
0000340 e x t L i s t ; E n q u e u e
0000360 ; S e t A l l o c a t i o n \r
0000400 A d d T o Z o n e ; A l l o c
0000420 a t e ; 376 001 \0 f \f F r e e ;
0000440 C a l l D o s ; R e s e t T i
0000460 m e S e r v \r W s ; E n d o f
0000500 s ; G e t s ; H a l t G a t
0000520 e w a y ; S e t T i m e r ;
0000540 T i m e r H a s E x p i r e d \r
0000560 \r / / o u t g o i n g s t a
0000600 t i c s \r v e r s i o n T e x t
0000620 \r \r / / i n c o m i n g s t
0000640 a t i c s \r p b i F r e e Q ;
0000660 l e n P B I ; n d b Q ; s o
0000700 c k e t Q ; d P S I B ; n u
0000720 m N e t s \r u s e r F i n i s h
0000740 P r o c ; s y s Z o n e ; c
0000760 t x Q ; k e y s \r ] \r \r s t a
0001000 t i c v e r s i o n T e x t \r
0001020 \r m a n i f e s t \r 376 001 \0 343 243 [
0001040 \r / / D o s c o m m a n d s
0001060 \r r e s e t = 6 5 0 0 0 b \r
0001100 e r t n = 6 6 4 0 0 b \r ] \r
0001120 \f \r / / - - - - - - - - - - - -
0001140 - - - - - - - - - - - - - - - -
*
0001240 \r l e t G a t e w a y ( b l v
0001260 ) b e \r / / - - - - - - - - -
0001300 - - - - - - - - - - - - - - - -
*
0001400 - - - \r [ \r v e r s i o n T e x
0001420 t = " N o v a G a t e w 376
0001440 001 \0 036 206 a y o f M a r c h
0001460 1 0 , 1 9 7 9 " \r \r G a t e w
0001500 a y I n i t ( b l v ) \r \r / /
0001520 t h r o w a w a y i n i t i
0001540 a l i z a t i o n c o d e ,
0001560 a d d s p a c e t o z o n
0001600 e , \r A d d T o Z o n e ( s y s
0001620 Z o n e , G a t e w a y I n i
0001640 t , b l v ! 2 9 - G a t e w a
0001660 y I n i t - 1 ) \r \r / / t u r
0001700 n a l l r e m a i n i n g
0001720 s t o r a g e i n t o p b i
0001740 s e x c e p t f o r a s
0001760 m a l l c h u n k \r l e t p
0002000 b i C o u n t = 0 \r l e t
0002020 f r e e S l o p = A l l o c
0002040 a t e ( 376 001 \0 ~ 203 s y s Z o n e
0002060 , 4 0 0 ) \r [ \r l
0002100 e t p b i = A l l o c a t
0002120 e ( s y s Z o n e , l e n P B
0002140 I , t r u e ) \r i f p
0002160 b i e q 0 b r e a k \r
0002200 E n q u e u e ( p b i F r e e
0002220 Q , p b i ) \r p b i C o
0002240 u n t = p b i C o u n t + 1
0002260 \r ] r e p e a t \r F r e
0002300 e ( s y s Z o n e , f r e e S
0002320 l o p ) \r \r / / f i x a l l
0002340 o c a t i o n s t o r e f l
0002360 e c t r e a l n u m b e r
0002400 o f p b i s \r p b i C o u n t
0002420 = p b i C o u n t - n u m N
0002440 e t s \r l e t f 376 001 \0 R 244 a k
0002460 e S o c = d P S I B - o
0002500 f f s e t P u p S o c . p s i
0002520 b / 1 6 \r S e t A l l o c a t i
0002540 o n ( f a k e S o c , p b i C
0002560 o u n t , p b i C o u n t - 1
0002600 , p b i C o u n t - 1 ) \r l e
0002620 t s o c = s o c k e t Q !
0002640 0 \r w h i l e s o c n e 0
0002660 d o \r [ / / u p d a
0002700 t e a l l o c a t i o n s i
0002720 n a l l s o c k e t s \r
0002740 S e t A l l o c a t i o n ( s
0002760 o c , p b i C o u n t , p b
0003000 i C o u n t - 1 , p b i C o u
0003020 n t - 1 ) \r s o c = s
0003040 o c ! 0 \r ] \r l e t 376 001
0003060 \0 002 322 n d b = n d b Q ! 0 \r
0003100 w h i l e n d b n e 0 d
0003120 o \r [ / / u p d a t e
0003140 g a t e w a y a l l o c a t
0003160 i o n s i n n d b s \r
0003200 n d b > > N D B . n u m G P B I
0003220 = p b i C o u n t r s h i
0003240 f t 1 \r n d b = n d
0003260 b ! 0 \r ] \r \r R e s e t T
0003300 i m e S e r v ( ) \r W s ( " * *
0003320 * * G a t e w a y i n o p
0003340 e r a t i o n * * * * * N * L
0003360 " ) \r \r l e t q u i t T i m e
0003400 r = 0 \r [ \r i f
0003420 q u i t T i m e r n e 0
0003440 & T i m e r H a s E x p i r e
0003460 d ( l 376 001 \0 250 310 v q u i t T i
0003500 m e r ) t h e n q u i t T i
0003520 m e r = 0 \r u n l e s
0003540 s E n d o f s ( k e y s ) s
0003560 w i t c h o n G e t s ( k e y
0003600 s ) i n t o \r [ \r
0003620 c a s e $ Q : c
0003640 a s e $ q : \r
0003660 [ \r W s ( "
0003700 * N Q u i t [ C o n f i r m ]
0003720 " ) \r S e t
0003740 T i m e r ( l v q u i t T i m
0003760 e r , 1 0 0 0 ) \r
0004000 e n d c a s e \r
0004020 ] \r c a s e
0004040 $ * 1 7 7 : c a s e $ N :
0004060 c a s e $ n 376 001 \0 d I : \r
0004100 i f q u i t T
0004120 i m e r n e 0 t h e n \r
0004140 [ W s (
0004160 " N o . * N " ) ; q u i t T i
0004200 m e r = 0 ; e n d c a s e
0004220 ] \r c a s e $ *
0004240 N : c a s e $ Y : c a s e
0004260 $ y : \r i f
0004300 q u i t T i m e r n e 0
0004320 t h e n \r
0004340 [ W s ( " Y e s . * N " ) ;
0004360 H a l t G a t e w a y ( ) ;
0004400 q u i t T i m e r = 0 ; e
0004420 n d c a s e ] \r d
0004440 e f a u l t : \r
0004460 [ W s ( " * N ? - 376 001 \0
0004500 020 z T h e r e i s o n l y
0004520 o n e c o m m a n d : Q U I
0004540 T " ) ; e n d c a s e ] \r
0004560 ] \r C a l l C o
0004600 n t e x t L i s t ( c t x Q ! 0
0004620 ) \r ] r e p e a t \r ] \r
0004640 \r / / - - - - - - - - - - - - -
0004660 - - - - - - - - - - - - - - - -
*
0004740 - - - - - - - - - - - - - - - \r
0004760 a n d G a t e w a y F i n i s
0005000 h ( c o d e ) b e \r / / - - -
0005020 - - - - - - - - - - - - - - - -
*
0005100 - - 376 \0 303 240 334 - - - - - - - - -
0005120 - - - - - - - - - - - - - - \r [
0005140 \r W s ( " * * * * S h u t d o
0005160 w n c o m p l e t e * * * *
0005200 * N * L " ) / / w e l l ,
0005220 n o t q u i t e , b u t
0005240 c l o s e e n o u g h \r w h i
0005260 l e u s e r F i n i s h P r o
0005300 c n e 0 d o u s e r F i
0005320 n i s h P r o c ( ) \r C a l l D
0005340 o s ( r e s e t ) \r C a l l D o
0005360 s ( e r t n , n i l , n i l
0005400 , c o d e ) \r ] \r 377 \0 \0 G a t
0005420 e w a y I n i t . b c p l \0 376 001
0005440 \0 252 F / / G a t e w a y I n i
0005460 t . b c p l - - i n i t i a
0005500 l i z a t i o n f o r G a t
0005520 e w a y . b c p l \r \r / / L a
0005540 s t m o d i f i e d F e b r
0005560 u a r y 9 , 1 9 7 9 4 :
0005600 0 4 P M b y B o g g s \r \r
0005620 g e t " S t r e a m s . d " \r
0005640 \r e x t e r n a l \r [ \r / / o
0005660 u t g o i n g p r o c e d u r
0005700 e s \r G a t e w a y I n i t \r \r
0005720 / / i n c o m i n g p r o c
0005740 e d u r e s \r C r e a t e M i s
0005760 c S e r v ; C r e a t e E c h
0006000 o S e r v ; I n i t P u p L e
0006020 v e l 1 \r C r e a t e G a t e C
0006040 o n S 376 001 \0 $ o e r v ; C r e
0006060 a t e S t a t S e r v ; R e a
0006100 d G a t e P a r a m \r I n i t E
0006120 F T P P a c k a g e ; I n i t
0006140 N o v a A l t o \r I n i t i a l
0006160 i z e Z o n e ; A d d T o Z o
0006200 n e ; A l l o c a t e ; Z e
0006220 r o \r I n i t i a l i z e C o n
0006240 t e x t ; B l o c k ; M y F
0006260 r a m e ; E n q u e u e \r E n
0006300 t e r D e b u g g e r ; D o s
0006320 B r e a k ; B r e a k L o c ;
0006340 C a l l D o s ; M a k e D o
0006360 s S t r i n g \r O p e n F i l e
0006400 ; G e t s ; C l o s e s ;
0006420 E n d o f s ; C a l l S w a t
0006440 \r P u t s ; W 376 001 \0 232 221 s ;
0006460 W s s ; W n s \r \r / / o u t
0006500 g o i n g s t a t i c s \r c t
0006520 x Q ; p r e s e r v e D e b u
0006540 g g e r \r \r / / i n c o m i n
0006560 g s t a t i c s \r s y s Z o n
0006600 e ; d o s A c ; d s p \r ] \r
0006620 \r s t a t i c \r [ \r c t x Q \r s
0006640 a w C R = f a l s e \r p r e
0006660 s e r v e D e b u g g e r =
0006700 f a l s e \r ] \r \r m a n i f e s
0006720 t \r [ \r s t a c k E n d = 3
0006740 3 5 b \r e x e c = 6 3 4 0 0
0006760 b \r p c h a r = 7 0 0 0 0 b
0007000 \r g a t e w a y Q u i t C o d e
0007020 = 1 2 3 4 5 / / D o s
0007040 " . e r t n " c o d e 376 001 \0
0007060 335 262 t o s i g n a l n o r m
0007100 a l Q u i t \r ] \r \f \r / / - -
0007120 - - - - - - - - - - - - - - - -
*
0007220 - - - - - - - - - - \r l e t G
0007240 a t e w a y I n i t ( b l v )
0007260 b e \r / / - - - - - - - - - - -
0007300 - - - - - - - - - - - - - - - -
*
0007400 - \r [ \r d s p = l v D o s
0007420 D s p P u t s - o f f s e t
0007440 S T . p u t s / 1 6 \r i f @
0007460 4 0 376 001 \0 \0 F 6 b n e - 1
0007500 & @ B r e a k L o c e q 4
0007520 0 1 b t h e n \r [ \r
0007540 W s ( " N o b r e a k p o i
0007560 n t * N * L t o m a k e a
0007600 b r e a k f i l e t y p e :
0007620 * N * L " ) \r W n s
0007640 ( d s p , B r e a k L o c ,
0007660 1 , 8 ) ; W s ( " $ B * N *
0007700 L " ) \r W n s ( d s
0007720 p , D o s B r e a k , 1 ,
0007740 8 ) ; W s ( " $ R * N * L " )
0007760 \r W s ( " T h e n t y p
0010000 e : S A V E G A T E W A Y
0010020 < C R > * N * L E n t e r i n g
0010040 d e b u g g e r . . . " ) \r
0010060 @ 4 0 4 b 376 001 \0 r ' = b
0010100 l v ! 2 9 / / r e s e t N
0010120 M A X t o t o p o f c o
0010140 d e \r E n t e r D e b u g
0010160 g e r ( ) \r ] \r \r l e t
0010200 c o d e E n d = b l v ! 2 9
0010220 \r l e t f r e e E n d = @
0010240 s t a c k E n d \r l e t f r e
0010260 e B e g i n = M y F r a m e
0010300 ( ) + 2 0 0 \r @ s t a c k E n
0010320 d = f r e e B e g i n \r s y
0010340 s Z o n e = I n i t i a l i
0010360 z e Z o n e ( f r e e B e g i n
0010400 , f r e e E n d - f r e e B e
0010420 g i n ) \r c t x Q = A l l o
0010440 c a t e ( s y s Z o n e , 2 )
0010460 ; c t x Q ! 0 = 0 376 001 \0 275
0010500 302 \r \r / / I f / I g l o b
0010520 a l s w i t c h i s p r e
0010540 s e n t , t h e n w e a r
0010560 e t h e " i n f e r i o r "
0010600 \r / / g a t e w a y p r o g
0010620 r a m a n d w e s h o u l
0010640 d g o a h e a d a n d r
0010660 u n . I f / I i s n o
0010700 t \r / / p r e s e n t , t h
0010720 e n w e s h o u l d w r i
0010740 t e a C O M . C M w i t h
0010760 / I s e t a n d o v e r
0011000 l a y \r / / t h e g a t e w
0011020 a y p r o g r a m r e c u r
0011040 s i v e l y . \r / / I f / D
0011060 g l o b a l s w i t c h i
0011100 s 376 001 \0 \a 243 p r e s e n t ,
0011120 s e t t h e p r e s e r v e
0011140 D e b u g g e r f l a g . \r l
0011160 e t s t r = O p e n F i l
0011200 e ( " C O M . C M " , k s T y
0011220 p e R e a d O n l y , c h a r
0011240 I t e m ) \r u n t i l G e t s
0011260 ( s t r ) e q 0 l o o p
0011300 / / s k i p o v e r s u b
0011320 s y s t e m n a m e \r i f (
0011340 G e t s ( s t r ) & # 2 0 )
0011360 n e 0 t h e n p r e s e
0011400 r v e D e b u g g e r = t r
0011420 u e / / t e s t / D \r l
0011440 e t i n f e r i o r G a t e w
0011460 a y = ( G e t s ( s t r )
0011500 & # 2 0 0 376 001 \0 325 l ) n e
0011520 0 / / t e s t / I \r C l
0011540 o s e s ( s t r ) \r \r u n l e s
0011560 s i n f e r i o r G a t e w a
0011600 y d o \r [ / / w e
0011620 a r e t h e " s u p e r i o
0011640 r " . D o r e c u r s i v
0011660 e o v e r l a y \r W s (
0011700 " * n * l * * * * G a t e w a
0011720 y r e s t a r t i n g * * *
0011740 * * n * l " ) \r s t r =
0011760 O p e n F i l e ( " C O M . C
0012000 M " , k s T y p e W r i t e O
0012020 n l y , c h a r I t e m ) \r
0012040 W s s ( s t r , " G A T E
0012060 W A Y * 0 0 0 " ) \r P u t
0012100 s ( s t r , ( p r e 376 001 \0 230 276
0012120 s e r v e D e b u g g e r ? #
0012140 2 0 , 0 ) ) / / s e t
0012160 / D i f a p p r o p r i a t
0012200 e \r W s s ( s t r , " *
0012220 2 0 0 * 0 0 0 * 0 0 0 * 3 7 7 "
0012240 ) / / s e t / I , t e
0012260 r m i n a t e C O M . C M \r
0012300 C l o s e s ( s t r ) \r
0012320 l e t s = v e c 5 \r
0012340 s = M a k e D o s S t r
0012360 i n g ( " G A T E W A Y . S V "
0012400 , s ) \r C a l l D o s (
0012420 e x e c , s , 0 , - 1 ) \r
0012440 i f d o s A c ! 2 e q
0012460 g a t e w a y Q u i t C o d e
0012500 f i n i s h / / n o r m a
0012520 376 001 \0 205 ' l " Q u i t " \r
0012540 ] r e p e a t / / c r a
0012560 s h o r f o r c e d r e s
0012600 t a r t \r \f \r / / G a t e w a
0012620 y I n i t ( c o n t ' d ) \r \r
0012640 I n i t N o v a A l t o ( s y s
0012660 Z o n e ) \r I n i t P u p L e v
0012700 e l 1 ( s y s Z o n e , c t x
0012720 Q , 0 ) \r I n i t E F T P P a
0012740 c k a g e ( s y s Z o n e ) \r C
0012760 r e a t e E c h o S e r v ( s y
0013000 s Z o n e , c t x Q ) \r C r e
0013020 a t e M i s c S e r v ( s y s Z
0013040 o n e , c t x Q ) \r C r e a t
0013060 e S t a t S e r v ( s y s Z o n
0013100 e , c t x Q ) \r C r e a t e G
0013120 a t e C o 376 001 \0 355 210 n S e r v (
0013140 ) \r R e a d G a t e P a r a m (
0013160 ) \t / / m u s t F O L L O W
0013200 s e r v e r i n i t i a l i
0013220 z a t i o n \r \r u n l e s s p
0013240 r e s e r v e D e b u g g e r
0013260 % @ 4 0 6 b e q - 1 d o
0013300 \r [ \r / / f l u s h
0013320 t h e d e b u g g e r . \r
0013340 / / W e k n o w t h a t
0013360 @ 4 0 6 b i s a p o i n
0013400 t e r t o t h e f i r s t
0013420 w o r d o f \r / / t h
0013440 e d e b u g g e r , t h a t
0013460 B U T I L i s t h e n e
0013500 x t t h i n g l o a d e d
0013520 a f t e r \r / 376 001 \0 d , /
0013540 i t , a n d t h a t t h e
0013560 l o a d v e c t o r i s
0013600 t h e f i r s t t h i n g
0013620 i n B U T I L . \r A d d
0013640 T o Z o n e ( s y s Z o n e ,
0013660 @ 4 0 6 b , b l v - @ 4 0 6 b
0013700 ) \r @ 4 0 6 b = - 1 \r
0013720 ] \r ] \r \r \r / / - - - - -
0013740 - - - - - - - - - - - - - - - -
*
0014040 - - - - - - - \r a n d D o s D
0014060 s p P u t s ( n i l , c h a r
0014100 ) b e \r / / - - - - - - - - -
0014120 - - - - - - - - - - - - - - - 376
0014140 \0 222 347 325 - - - - - - - - - - - -
0014160 - - - - - - - - - - - - - - - -
*
0014220 - - - - - - - - \r [ \r i f s a
0014240 w C R & c h a r n e $ *
0014260 L t h e n C a l l D o s ( p
0014300 c h a r , $ * L ) \r C a l l D
0014320 o s ( p c h a r , c h a r ) \r
0014340 s a w C R = c h a r e q
0014360 $ * N \r ] \r 377 \0 \0 G a t e F o r
0014400 w a r d . d e c l \0 376 001 \0 203 200 /
0014420 / G a t e F o r w a r d . d e
0014440 c l \r \r / / L a s t m o d i
0014460 f i e d J a n u a r y 2 6 ,
0014500 1 9 7 9 3 : 4 4 P M b
0014520 y B o g g s \r \r m a n i f e s
0014540 t \r [ \r r o u t e B c s t I n t
0014560 e r v a l = 3 0 0 0 / /
0014600 3 0 s e c o n d s \r \r p s R o
0014620 u t e I n f o = 2 \t \t / /
0014640 w e l l k n o w n , r e g i
0014660 s t e r e d s o c k e t \r \r p
0014700 t R o u t e R e q u e s t =
0014720 2 0 0 b \r p t R o u t e R e p l
0014740 y = 2 0 1 b \r p t R o u t e
0014760 E r r o r = 2 0 2 b \r p t S
0015000 t a t s R e q u e s t = 2 376
0015020 001 \0 \r q 0 3 b \r p t S t a t s R
0015040 e p l y = 2 0 4 b \r \r g f S
0015060 t a t s V e r s i o n = 1 \r
0015100 ] \r \r / / - - - - - - - - - - -
0015120 - - - - - - - - - - - - - - - -
*
0015220 - \r s t r u c t u r e Q u e u
0015240 e : \t / / S i n g l y l i n
0015260 k e d l i s t , u s u a l l
0015300 y m a i n t a i n e d F I F
0015320 O \r / / - - - - - - - - - - - -
0015340 - - - - - - - - - - - - - - - -
*
0015420 - - - - 376 001 \0 325 326 - - - - - - -
0015440 - - - - - \r [ \r h e a d w o r
0015460 d \t \t / / - > f i r s t t
0015500 h i n g ; 0 i f q u e u e
0015520 i s e m p t y \r t a i l w
0015540 o r d \t \t / / - > l a s t
0015560 t h i n g ; u n d e f i n e d
0015600 i f q u e u e i s e m p
0015620 t y \r ] \r \r / / - - - - - - - -
0015640 - - - - - - - - - - - - - - - -
*
0015740 - - - - \r s t r u c t u r e S
0015760 t a t s : \r / / - - - - - - - -
0016000 - - - - - - - - - - - - - - - -
0016020 - - - - - - - - - 376 001 \0 n 020 - -
0016040 - - - - - - - - - - - - - - - -
*
0016100 - - - - - - - - - \r [ \r v e r s
0016120 i o n w o r d \t \t / / = g
0016140 f S t a t s V e r s i o n \r r o
0016160 u t e R e q s w o r d 2 \t /
0016200 / n u m b e r o f r o u t
0016220 e i n f o r e q u e s t s \r
0016240 n u m N e t s w o r d \t \t / /
0016260 n u m b e r o f n e t w o
0016300 r k s \r n u m T M E s w o r d
0016320 \t \t / / n u m b e r o f T
0016340 M E s i n t h i s p a c k
0016360 e t \r / / n u m N e t s n e t
0016400 n u m b e r s , o n e w o
0016420 r d e a c h \r / / n u m T 376 001
0016440 \0 341 > M E s T M E s , 3 w
0016460 o r d s e a c h \r ] \r m a n i
0016500 f e s t l e n S t a t s =
0016520 s i z e S t a t s / 1 6 /
0016540 / s i z e o f f i x e d p
0016560 a r t o n l y \r \r / / - - - -
0016600 - - - - - - - - - - - - - - - -
*
0016700 - - - - - - - - \r s t r u c t u
0016720 r e G F : \t \t / / ' g l o b
0016740 a l f r a m e ' f o r G a
0016760 t e w a y F o r w a r d e r \r
0017000 / / - - - - - - - - - - - - - -
0017020 - - - - - - - - - - - - - - - -
0017040 - - - 376 001 \0 E 240 - - - - - - - -
0017060 - - - - - - - - - - - - - - - -
*
0017120 - - - \r [ \r t m w o r d \t \t \t
0017140 / / - > T r a n s i t M a
0017160 t r i x \r s t a t s @ S t a t
0017200 s \r r o u t e B c s t T i m e r
0017220 w o r d \t / / t i m e r f
0017240 o r b r o a d c a s t i n g
0017260 r o u t i n g i n f o \r i Q
0017300 @ Q u e u e \t \t / / f o r w a
0017320 r d e r i n p u t q u e u e
0017340 \r t Q @ Q u e u e \t \t / / f
0017360 o r w a r d e r t r a n s m i
0017400 t t e d q u e u e \r ] \r m a n
0017420 i f e s t l e n G F = s i
0017440 z e G F / 1 6 376 001 \0 262 265 \r \r /
0017460 / - - - - - - - - - - - - - - -
0017500 - - - - - - - - - - - - - - - -
*
0017560 - - - - - - - - - - - - - \r s t
0017600 r u c t u r e T M E : \t \t / /
0017620 T r a n s i t M a t r i x
0017640 E n t r y \r / / - - - - - - - -
0017660 - - - - - - - - - - - - - - - -
*
0017760 - - - - \r [ \r s d N e t w o r
0020000 d = [ s N e t b y t e ;
0020020 d N e t b y t e ] \r c o u
0020040 n t w o r d 2 \r ] \r m 376 \0 377
0020060 \a 240 a n i f e s t l e n T M E
0020100 = s i z e T M E / 1 6 \r \r
0020120 / / - - - - - - - - - - - - - -
0020140 - - - - - - - - - - - - - - - -
*
0020220 - - - - - - - - - - - - - - \r s
0020240 t r u c t u r e T M : [ @
0020260 H T P ; T M E ^ 0 , 1 : @ T M
0020300 E ] / / T r a n s i t
0020320 M a t r i x h a s h t a b l
0020340 e \r / / - - - - - - - - - - - -
0020360 - - - - - - - - - - - - - - - -
*
0020460 \r 377 \0 \0 G a t e F o r w a r d .
0020500 b c p l \0 376 001 \0 253 362 / / G a t
0020520 e F o r w a r d . b c p l - -
0020540 L e v e l 1 c o d e i m
0020560 p l e m e n t i n g g a t e w
0020600 a y f u n c t i o n s \r \r / /
0020620 L a s t m o d i f i e d F
0020640 e b r u a r y 8 , 1 9 7 9
0020660 3 : 3 3 P M b y B o g g
0020700 s \r \r g e t " P u p 0 . d e c
0020720 l " \r g e t " P u p 1 . d e c
0020740 l " \r g e t " G a t e F o r w
0020760 a r d . d e c l " \r \r e x t e r
0021000 n a l \r [ \r / / o u t g o i n
0021020 g p r o c e d u r e s \r F o r
0021040 w a r d e r ; F o r w a r d e
0021060 r C t x ; T M L o o k u p \r \r
0021100 / / i n c o m i n 376 001 \0 037 253 g
0021120 p r o c e d u r e s \r G e t P
0021140 B I ; R e l e a s e P B I ;
0021160 P u p E r r o r ; E x c h a n
0021200 g e P o r t s ; C o m p l e t
0021220 e P u p ; R o u t e P u p \r O
0021240 n e s C o m p l e m e n t A d d
0021260 ; O n e s C o m p l e m e n t
0021300 S u b t r a c t ; L e f t C y
0021320 c l e \r S e t T i m e r ; T i
0021340 m e r H a s E x p i r e d ; D
0021360 o u b l e I n c r e m e n t ;
0021400 M o v e B l o c k \r C a l l S w
0021420 a t ; B l o c k ; E n q u e
0021440 u e ; D e q u e u e ; H E n
0021460 u m e r a t e ; H H a s h \r \r
0021500 / / o u t g o i n g s t a 376
0021520 001 \0 360 270 t i c s \r @ g f ; g a
0021540 t e w a y G o i n g D o w n \r \r
0021560 / / i n c o m i n g s t a t
0021600 i c s \r p u p R T ; p b i F r
0021620 e e Q ; u n k n o w n N e t \r
0021640 n d b Q ; g a t e w a y L i s
0021660 t e n e r S o c \r m a x P u p D
0021700 a t a B y t e s ; p u p R T C
0021720 h a n g e d \r ] \r \r s t a t i c
0021740 [ @ g f ; g a t e w a y G
0021760 o i n g D o w n = f a l s e
0022000 ] \r \f \r / / - - - - - - - - -
0022020 - - - - - - - - - - - - - - - -
*
0022120 - - - \r 376 001 \0 360 ? l e t F o r
0022140 w a r d e r C t x ( ) b e \r /
0022160 / - - - - - - - - - - - - - - -
0022200 - - - - - - - - - - - - - - - -
*
0022260 - - - - - - - - - - - - - \r [ \r
0022300 B l o c k ( ) \r \r w h i l e g
0022320 f > > G F . t Q . h e a d n e
0022340 0 d o \r [ \r l e
0022360 t p b i = D e q u e u e (
0022400 l v g f > > G F . t Q ) \r
0022420 p b i > > P B I . n d b > > N
0022440 D B . n u m G P B I = p b i
0022460 > > P B I . n d b > > N D B . n
0022500 u m G P B I + 1 \r R e l
0022520 e a s e P B I ( p 376 001 \0 343 \0 b i
0022540 ) \r ] \r \r / / t i m e
0022560 t o b r o a d c a s t r o u
0022600 t i n g i n f o r m a t i o n
0022620 ? \r i f T i m e r H a s E x p
0022640 i r e d ( l v g f > > G F . r
0022660 o u t e B c s t T i m e r ) %
0022700 p u p R T C h a n g e d t h
0022720 e n \r [ \r l e t p
0022740 b i = G e t P B I ( g a t e
0022760 w a y L i s t e n e r S o c ,
0023000 t r u e ) \r i f p b i
0023020 n e 0 t h e n \r
0023040 [ \r p u p R T C h a
0023060 n g e d = f a l s e \r
0023100 p b i > > P B I . a l l N
0023120 e t s = t r u e \r 376 001
0023140 \0 234 343 p b i > > P B I . b
0023160 y p a s s Z e r o N e t = t
0023200 r u e \r S e n d R o
0023220 u t e I n f o ( p b i ) \r
0023240 S e t T i m e r ( l v g
0023260 f > > G F . r o u t e B c s t T
0023300 i m e r , r o u t e B c s t I
0023320 n t e r v a l ) \r ]
0023340 \r ] \r \r / / a r e t h
0023360 e r e a n y p a c k e t s
0023400 t o f o r w a r d ? \r l e t
0023420 p b i = D e q u e u e ( l v
0023440 g f > > G F . i Q ) ; i f
0023460 p b i e q 0 r e t u r n \r
0023500 \r / / P u p d e s t i n a t
0023520 i o n a n d s o u r c e n
0023540 e t s 376 001 \0 ~ 023 \r l e t d N e
0023560 t , s N e t = p b i > > P
0023600 B I . p u p . d P o r t . n e t
0023620 , p b i > > P B I . p u p . s
0023640 P o r t . n e t \r l e t p s n
0023660 = p b i > > P B I . n d b >
0023700 > N D B . l o c a l N e t /
0023720 / P h y s i c a l s o u r c e
0023740 n e t \r \r / / W e a r e e
0023760 x p e r i m e n t a l l y a l
0024000 l o w i n g ' d i r e c t e d
0024020 b r o a d c a s t s ' : b r
0024040 o a d c a s t p a c k e t s \r
0024060 / / d e s t i n e d f o r
0024100 a n e t O T H E R T H A N
0024120 T H E O N E O N W H I C
0024140 H T H E Y A 376 001 \0 204 024 R R I
0024160 V E . \r t e s t d N e t e q
0024200 0 % s N e t e q 0 %
0024220 / / d e s t o r s o u r
0024240 c e n e t u n s p e c i f i
0024260 e d ? \r ( p b i > > P B I . p
0024300 u p . d P o r t . h o s t e q
0024320 0 & d N e t e q p b i
0024340 > > P B I . n d b > > N D B . l
0024360 o c a l N e t ) \r i f s o
0024400 R e l e a s e P B I ( p b i )
0024420 / / d o n ' t f o r w a r
0024440 d \r i f n o t \r
0024460 [ \r l e t v =
0024500 p b i ! ( o f f s e t P B I
0024520 . p u p . t r a n s p o r t / 1
0024540 6 ) \r p b i > 376 001 \0
0024560 266 353 > P B I . p u p . h o p C n
0024600 t = p b i > > P B I . p u p
0024620 . h o p C n t + 1 \r
0024640 t e s t p b i > > P B I . p u
0024660 p . h o p C n t e q 0 \r
0024700 i f s o P u p E
0024720 r r o r ( p b i , 1 0 0 4 b ,
0024740 " D i s c a r d e d b y 8
0024760 t h g a t e w a y " ) \r
0025000 i f n o t \r
0025020 [ \r
0025040 U p d a t e P u p C
0025060 h e c k s u m ( l v p b i > >
0025100 P B I . p u p , o f f s e t
0025120 P u p . t r a n s p o r t / 1 6
0025140 , v ) \r
0025160 p 376 001 \0 317 272 b i > > P B I . q
0025200 u e u e = l v g f > > G F
0025220 . t Q / / w h e r e t o
0025240 q u e u e w h e n d o n e \r
0025260 l e t
0025300 p d h = R o u t e P u p ( p
0025320 b i ) / / t r y t o r o
0025340 u t e i t \r
0025360 l e t n d b = p b i
0025400 > > P B I . n d b \r
0025420 t e s t n d b n
0025440 e 0 / / d o w e k n o
0025460 w h o w t o r o u t e i
0025500 t ? \r
0025520 i f s o t e s t n d b >
0025540 > N D B . n u m G P B I g r
0025560 0 / / i s 376 001 \0 $ 344 t h e
0025600 r e r o o m ? \r
0025620 i f n o t
0025640 P u p E r r o r ( p b i , 1
0025660 0 0 7 b , " G a t e w a y O
0025700 Q o v e r f l o w " ) \r
0025720 i
0025740 f s o \r
0025760 [ \r
0026000
0026020 n d b > > N D B . n u m G P B I
0026040 = n d b > > N D B . n u m G
0026060 P B I - 1 \r
0026100 ( n d b
0026120 > > N D B . e n c a p s u l a t
0026140 e P u p ) ( p b i , p d h ) \r
0026160 376 001 \0 301
0026200 q ( n d b > >
0026220 N D B . l e v e l 0 T r a n s m
0026240 i t ) ( p b i ) \r
0026260 T M
0026300 I n c r e m e n t ( p s n , n
0026320 d b > > N D B . l o c a l N e t
0026340 ) \r
0026360 l o o p \r
0026400
0026420 ] \r
0026440 i f n o t \r
0026460 [ / / d
0026500 o n ' t k n o w h o w t o
0026520 r o u t e t o d N e t \r
0026540
0026560 u n k n o w n N e t = d N
0026600 e 376 001 \0 271 342 t / / i n i t i
0026620 a t e a p r o b e \r
0026640 R e
0026660 l e a s e P B I ( p b i ) /
0026700 / d i s c a r d \r
0026720 ] \r
0026740 ] \r
0026760 ] \r T M I n c r e m e n t ( p
0027000 s n , 0 ) / / i n c r e m
0027020 e n t d i s c a r d e d c o
0027040 u n t f o r p s n \r ] r e
0027060 p e a t \r \f \r / / - - - - - - -
0027100 - - - - - - - - - - - - - - - -
*
0027200 - - - - - \r 376 001 \0 340 0 a n d F
0027220 o r w a r d e r ( p b i ) b e
0027240 \r / / - - - - - - - - - - - - -
0027260 - - - - - - - - - - - - - - - -
*
0027340 - - - - - - - - - - - - - - - \r
0027360 / / P u p R o u t e p a s s
0027400 e s o n P B I s ( f r o m
0027420 S o c k e t 2 ) w h i c h
0027440 i t d o e s n ' t h a n d
0027460 l e . \r [ \r E x c h a n g e P o
0027500 r t s ( p b i ) / / d o
0027520 t h i s h e r e r a t h e r
0027540 t h a n i n e a c h c a
0027560 s e \r s w i t c h o n p b i >
0027600 > P B I . p u p . t y 376 001 \0 i 243
0027620 p e i n t o \r [ \r
0027640 c a s e p t R o u t e R e q u
0027660 e s t : \r [ \r
0027700 / / d o n ' t a n s w e
0027720 r p r o b e s f r o m n e
0027740 t w o r k s w h o s e i d e
0027760 n t i t y w e d o n ' t k
0030000 n o w \r i f p b i
0030020 > > P B I . p u p . d P o r t .
0030040 n e t n e 0 t h e n \r
0030060 [ \r
0030100 S e n d R o u t e I n f o (
0030120 p b i ) \r D o
0030140 u b l e I n c r e m e n t ( l v
0030160 g f > > G F . s t a t s . r o
0030200 u t e R e q s ) \r
0030220 376 001 \0 217 360 r e t u r n \r
0030240 ] \r e
0030260 n d c a s e \r ] \r
0030300 c a s e p t S t a t s R e
0030320 q u e s t : \r [ \r
0030340 l e t s t a t s =
0030360 l v p b i > > P B I . p u p
0030400 . w o r d s \r M o v
0030420 e B l o c k ( l v p b i > > P
0030440 B I . p u p . w o r d s , l v
0030460 g f > > G F . s t a t s , l
0030500 e n S t a t s ) \r l
0030520 e t p t r = l e n S t a t
0030540 s + 1 \r \r l e t
0030560 n d b = n d b Q ! 0 ; w h
0030600 i l e n d b n e 0 d o \r
0030620 376 001 \0 313 M [ \r
0030640 / / s k i p
0030660 n e t s w h o s e i d e n t
0030700 i t y w e d o n ' t k n o
0030720 w \r i f n d
0030740 b > > N D B . l o c a l N e t
0030760 n e 0 t h e n \r
0031000 [ \r
0031020 s t a t s > > S t a t s
0031040 . n u m N e t s = s t a t s
0031060 > > S t a t s . n u m N e t s
0031100 + 1 \r p
0031120 b i > > P B I . p u p . w o r d
0031140 s ^ p t r = n d b > > N D B
0031160 . l o c a l N e t \r
0031200 p t r = p t r
0031220 + 1 \r 376 001 \0 322 372
0031240 ] \r n
0031260 d b = n d b > > N D B . l i
0031300 n k \r ] \r \r
0031320 / / i f a n y b o d
0031340 y e l s e n e e d s T M E
0031360 n u m e r a t e , r e w r i t
0031400 e t h i s p r o c e d u r e
0031420 \r f o r i = 0
0031440 t o ( 1 l s h i f t g f
0031460 > > G F . t m > > T M . l o g S
0031500 i z e ) - 1 d o \r
0031520 i f g f > > G F . t m >
0031540 > T M . T M E ^ i . s d N e t
0031560 n e - 1 t h e n \r
0031600 [ \r
0031620 i f ( p t r + l e 376
0031640 001 \0 361 l n T M E - 1 ) g r (
0031660 m a x P u p D a t a B y t e s
0031700 r s h i f t 1 ) b r e a k \r
0031720 s t a t
0031740 s > > S t a t s . n u m T M E s
0031760 = s t a t s > > S t a t s .
0032000 n u m T M E s + 1 \r
0032020 M o v e B l o c k
0032040 ( l v p b i > > P B I . p u p
0032060 . w o r d s ^ p t r , \r
0032100 l v g f > >
0032120 G F . t m > > T M . T M E ^ i .
0032140 s d N e t , l e n T M E ) \r
0032160 p t r =
0032200 p t r + l e n T M E \r
0032220 ] \r \r
0032240 C 376 001 \0 261 352 o m p l e t e
0032260 P u p ( p b i , p t S t a t s
0032300 R e p l y , p u p O v B y t e
0032320 s + ( p t r - 1 ) l s h i
0032340 f t 1 ) \r r e t u
0032360 r n \r ] \r ] \r
0032400 R e l e a s e P B I ( p b i ) \r
0032420 ] \r \f \r / / - - - - - - - - - -
0032440 - - - - - - - - - - - - - - - -
*
0032540 - - \r a n d U p d a t e P u p
0032560 C h e c k s u m ( p u p , i n
0032600 d e x , o l d V a l u e ) b
0032620 e \r / / - - - - - - - - - - - -
0032640 - - - - - - - - - 376 001 \0 \f \f - -
0032660 - - - - - - - - - - - - - - - -
*
0032740 - - - - - \r / / U p d a t e
0032760 P u p c h e c k s u m t o
0033000 a c c o u n t f o r c h a n
0033020 g i n g o n e w o r d i n
0033040 t h e P u p \r / / T y p i
0033060 c a l c a l l ( c h a n g i
0033100 n g T r a n s p o r t b y t
0033120 e ) : \r / / \t l e t o l d W o
0033140 r d = p u p ! ( o f f s e t
0033160 P u p . t r a n s p o r t / 1
0033200 6 ) \r / / \t p u p > > P u p . t
0033220 r a n s p o r t = n e w V a
0033240 l u e \r / / \t U p d a t e P 376 001
0033260 \0 220 347 u p C h e c k s u m ( p u
0033300 p , o f f s e t P u p . t r
0033320 a n s p o r t / 1 6 , o l d W
0033340 o r d ) \r [ \r l e t l e n =
0033360 ( p u p > > P u p . l e n g t
0033400 h - 1 ) r s h i f t 1 \r i f
0033420 p u p ! l e n n e - 1 t
0033440 h e n \r p u p ! l e n =
0033460 O n e s C o m p l e m e n t A
0033500 d d ( p u p ! l e n , \r
0033520 L e f t C y c l e ( O n e s C o
0033540 m p l e m e n t S u b t r a c t
0033560 ( p u p ! i n d e x , o l d V
0033600 a l u e ) , l e n - i n d e x
0033620 ) ) \r ] \r \r / / - - - - - - - -
0033640 - - - - - - - - - - - - - - - -
0033660 - - - 376 001 \0 224 365 - - - - - - - -
0033700 - - - - - - - - - - - - - - - -
*
0033740 - - - - - - - - - \r a n d S e
0033760 n d R o u t e I n f o ( p b i )
0034000 b e \r / / - - - - - - - - - -
0034020 - - - - - - - - - - - - - - - -
*
0034120 - - \r / / B u i l d a n d
0034140 s e n d a r o u t i n g i
0034160 n f o p a c k e t i n p b
0034200 i . \r / / C a l l e r i s
0034220 a s s u m e d t o h a v e
0034240 f i x e d u p t h e p o r
0034260 t s p r o p e 376 001 \0 323 307 r l y
0034300 . \r [ \r p b i > > P B I . p u p
0034320 . l e n g t h = 0 \r H E n u
0034340 m e r a t e ( p u p R T , P e
0034360 r R T E , p b i ) \r C o m p l
0034400 e t e P u p ( p b i , p t R o
0034420 u t e R e p l y , p b i > > P
0034440 B I . p u p . l e n g t h + p u
0034460 p O v B y t e s ) \r ] \r \r / / -
0034500 - - - - - - - - - - - - - - - -
*
0034600 - - - - - - - - - - - \r a n d
0034620 P e r R T E ( r t e , p b i )
0034640 b e \r / / - - - - - - - - - -
0034660 - - - - - - - - - - - - - 376 001 \0
0034700 236 230 - - - - - - - - - - - - - -
0034720 - - - - - - - - - - - - - - - -
*
0034760 - - - - - - - \r [ \r i f r t e
0035000 > > R T E . n e t n e 0 t
0035020 h e n \r [ \r l e t
0035040 c = p b i > > P B I . p u p
0035060 . l e n g t h \r p b i > >
0035100 P B I . p u p . b y t e s ^ ( c
0035120 + 1 ) = r t e > > R T E . n
0035140 e t \r p b i > > P B I . p
0035160 u p . b y t e s ^ ( c + 2 ) =
0035200 r t e > > R T E . n d b > > N
0035220 D B . l o c a l N e t \r p
0035240 b i > > P B I . p u p . b y t e
0035260 s ^ ( c + 3 ) = r t e > > R
0035300 T E 376 001 \0 321 \a . h o s t \r
0035320 / / I f w e a r e a b o
0035340 u t t o g o d o w n , s
0035360 a y t h a t w e a r e a
0035400 t e r r i b l e r o u t e
0035420 t o a n y w h e r e \r p
0035440 b i > > P B I . p u p . b y t e
0035460 s ^ ( c + 4 ) = g a t e w a
0035500 y G o i n g D o w n ? m a x H
0035520 o p s + 1 , r t e > > R T E .
0035540 h o p s \r p b i > > P B I
0035560 . p u p . l e n g t h = c +
0035600 4 \r ] \r ] \r \r / / - - - -
0035620 - - - - - - - - - - - - - - - -
*
0035700 - - - - - - - 376 001 \0 273 323 - - - -
0035720 - - - - - - - - - - - - - \r a n
0035740 d T M L o o k u p ( t m , s
0035760 N e t , d N e t , f i n d F
0036000 r e e ; n u m a r g s n a )
0036020 = v a l o f \r / / - - - - -
0036040 - - - - - - - - - - - - - - - -
*
0036140 - - - - - - - \r [ \r l e t k e
0036160 y = s N e t l s h i f t
0036200 8 + d N e t \r l e t i P r
0036220 o b e = n i l \r l e t i n
0036240 c r e m e n t = H H a s h (
0036260 t m > > T M . l o g S i z e ,
0036300 k e y , l v i P r o 376 001 \0 270
0036320 374 b e ) \r l e t p r o b e =
0036340 i P r o b e \r [ \r
0036360 l e t t m e = l v t m >
0036400 > T M . T M E ^ p r o b e \r
0036420 i f t m e > > T M E . s d N
0036440 e t e q k e y t h e n r
0036460 e s u l t i s t m e \r i
0036500 f t m e > > T M E . s d N e t
0036520 e q - 1 t h e n \r
0036540 r e s u l t i s n a g e
0036560 4 & f i n d F r e e ? t
0036600 m e , 0 / / f a i l \r
0036620 p r o b e = ( p r o b e +
0036640 i n c r e m e n t ) & ( ( 1
0036660 l s h i f t t m > > T M . l
0036700 o g S i z e ) - 1 ) \r ]
0036720 r 376 001 \0 + 3 e p e a t u n t i l
0036740 p r o b e e q i P r o b e
0036760 \r r e s u l t i s 0 / / f
0037000 a i l . S e a r c h e d t
0037020 h e w h o l e t a b l e \r ]
0037040 \r \r / / - - - - - - - - - - - -
0037060 - - - - - - - - - - - - - - - -
*
0037160 \r a n d T M I n c r e m e n t
0037200 ( s N e t , d N e t ) b e \r
0037220 / / - - - - - - - - - - - - - -
0037240 - - - - - - - - - - - - - - - -
*
0037320 - - - - - - 376 001 \0 _ 376 - - - - -
0037340 - - - \r / / L o o k s u p
0037360 s N e t , , d N e t i n t h
0037400 e t r a n s i t m a t r i x
0037420 h a s h t a b l e . \r / /
0037440 C r e a t e s a n e n t r y
0037460 i f n o t f o u n d t h
0037500 e n i n c r e m e n t s t h
0037520 e c o u n t . \r [ \r l e t t
0037540 m e = T M L o o k u p ( g f
0037560 > > G F . t m , s N e t , d
0037600 N e t , t r u e ) \r i f t m
0037620 e e q 0 t h e n r e t u
0037640 r n / / t a b l e f u l
0037660 l ! \r i f t m e > > T M E . s
0037700 d N e t e q - 1 t h e n
0037720 / / e m p t y t 376 \0 R 245 277
0037740 m e \r t m e > > T M E . s
0037760 d N e t = s N e t l s h i
0040000 f t 8 + d N e t \r D o u b
0040020 l e I n c r e m e n t ( l v t
0040040 m e > > T M E . c o u n t ) \r ]
0040060 \r \r 377 \0 \0 G a t e F o r I n i t
0040100 . b c p l \0 376 001 \0 | 214 / / G a
0040120 t e F o r I n i t . b c p l -
0040140 - i n i t i a l i z a t i o n
0040160 f o r G a t e F o r w a r d
0040200 . b c p l \r \r / / L a s t m
0040220 o d i f i e d F e b r u a r y
0040240 8 , 1 9 7 9 3 : 3 0 P
0040260 M b y B o g g s \r \r g e t
0040300 " P u p 0 . d e c l " \r g e t
0040320 " P u p 1 . d e c l " \r g e t
0040340 " G a t e F o r w a r d . d e c
0040360 l " \r \r e x t e r n a l \r [ \r /
0040400 / o u t g o i n g p r o c e
0040420 d u r e s \r I n i t F o r w a r
0040440 d e r \r \r / / i n c o m i n g
0040460 p r o c e d u r e s \r T M L o
0040500 o k u p \r A l l o c a 376 001 \0 I 357
0040520 t e ; Z e r o ; S y s E r r
0040540 ; S e t T i m e r \r \r / / i
0040560 n c o m i n g s t a t i c s \r
0040600 @ g f ; n d b Q ; n u m N e
0040620 t s ; g a t e w a y I Q ; s
0040640 y s Z o n e \r ] \r \r \r / / - - -
0040660 - - - - - - - - - - - - - - - -
*
0040760 - - - - - - - - - \r l e t I n
0041000 i t F o r w a r d e r ( n u m P
0041020 B I ) b e \r / / - - - - - - -
0041040 - - - - - - - - - - - - - - - -
*
0041120 376 001 \0 307 W - - - - - - - - - - -
0041140 - - - - - - - - - - \r / / n u
0041160 m P B I i s t h e n u m b
0041200 e r o f P B I s i n t h
0041220 e s y s t e m \r [ \r g f =
0041240 A l l o c a t e ( s y s Z o n e
0041260 , l e n G F ) ; Z e r o ( g
0041300 f , l e n G F ) \r \r / / P u
0041320 p 1 I n i t i n i t i a l i z
0041340 e s g a t e w a y I Q t o
0041360 - > p b i F r e e Q \r g a t e
0041400 w a y I Q = l v g f > > G
0041420 F . i Q \r \r / / g a t e w a y
0041440 s t a t i s t i c s \r g f > >
0041460 G F . s t a t s . v e r s i o n
0041500 = g f S t a t s V e r s i o
0041520 n \r l e t 376 001 \0 F 254 l o g T M
0041540 S i z e = ( n u m N e t s *
0041560 ( n u m N e t s + 1 ) * 1 0 ) /
0041600 8 \r f o r i = 1 t o 1
0041620 6 d o \r [ / / r o u
0041640 n d u p t o n e x t p o
0041660 w e r o f 2 a n d t a k
0041700 e l o g \r l o g T M S i
0041720 z e = l o g T M S i z e r
0041740 s h i f t 1 \r i f l o
0041760 g T M S i z e e q 0 t h e
0042000 n [ l o g T M S i z e =
0042020 i ; b r e a k ] \r ] \r
0042040 l e t l e n T M = l e n H
0042060 T P + l e n T M E * ( 1 l s h
0042100 i f t l o g T M S i z e ) \r l
0042120 e t t m = A l 376 001 \0 W G l
0042140 o c a t e ( s y s Z o n e , l
0042160 e n T M ) ; Z e r o ( t m ,
0042200 l e n T M ) \r t m > > H T P . e
0042220 n u m e r a t e = S y s E r
0042240 r \r t m > > H T P . d e l e t e
0042260 = S y s E r r \r t m > > H T
0042300 P . l o o k u p = T M L o o
0042320 k u p \r t m > > H T P . i n s e
0042340 r t = S y s E r r \r t m > >
0042360 H T P . l o g S i z e = l o
0042400 g T M S i z e \r f o r i =
0042420 0 t o ( 1 l s h i f t l
0042440 o g T M S i z e ) - 1 d o
0042460 / / i n i t t o e m p t y \r
0042500 t m > > T M . T M E ^ i .
0042520 s d N e t = - 1 \r g f > > 376
0042540 001 \0 & 211 G F . t m = t m \r \r
0042560 / / w a i t 3 0 s e c b
0042600 e f o r e f i r s t r o u t
0042620 i n g i n f o b r o a d c a
0042640 s t \r S e t T i m e r ( l v g
0042660 f > > G F . r o u t e B c s t T
0042700 i m e r , 3 0 0 0 ) \r \r / /
0042720 N o n e t m a y h a v e
0042740 m o r e t h a n 1 / 2 o f
0042760 t h e P B I s w a i t i n
0043000 g o n i t s O Q \r l e t
0043020 n d b = n d b Q ! 0 ; w h
0043040 i l e n d b n e 0 d o \r
0043060 [ \r n d b > > N D B
0043100 . n u m G P B I = n u m P B
0043120 I / 2 \r n d b = n d b
0043140 ! 0 \r 376 \0 \a 332 A ] \r ] \r \r
0043160 377 \0 \0 G a t e P a r a m e t e r
0043200 . b c p l \0 376 001 \0 343 316 / / G a
0043220 t e P a r a m e t e r . b c p l
0043240 \r \r / / L a s t m o d i f i
0043260 e d M a r c h 5 , 1 9 7 9
0043300 3 : 5 0 P M b y B o g
0043320 g s \r \r g e t " P u p 0 . d e
0043340 c l " \r g e t " P u p 1 . d e
0043360 c l " \r g e t " S t r e a m s
0043400 . d " \r \r e x t e r n a l \r [ \r
0043420 / / o u t g o i n g p r o c
0043440 e d u r e s \r R e a d G a t e P
0043460 a r a m \r \r / / i n c o m i n
0043500 g p r o c e d u r e s \r M y F
0043520 r a m e ; G o t o F r a m e ;
0043540 G a t e w a y F i n i s h ;
0043560 H I n s e r t \r O p e n F i l e
0043600 ; C l o s e s ; E 376 001 \0 002 226
0043620 n d o f s ; G e t s ; P u t
0043640 s ; W s \r A d d N a m e T o B
0043660 F Q ; S e t N a m e B c s t I
0043700 n t e r v a l ; S e t B o o t
0043720 B c s t I n t e r v a l \r S e t
0043740 T i m e C o r r e c t i o n ;
0043760 S e t T i m e Z o n e ; S e t
0044000 T i m e D S T \r \r / / i n c o
0044020 m i n g s t a t i c s \r d s p
0044040 ; p u p R T ; n d b Q \r p r
0044060 e s e r v e D e b u g g e r \r ]
0044100 \r \r m a n i f e s t \r [ \r m a x
0044120 A t o m C h a r s = 3 0 \r n
0044140 u m A t o m W o r d s = m a
0044160 x A t o m C h a r s r s h i f
0044200 t 1 + 1 \r g a t e w a y Q u
0044220 376 001 \0 001 306 i t C o d e = 1 2
0044240 3 4 5 / / D o s " . e r t
0044260 n " c o d e t o s i g n a
0044300 l n o r m a l Q u i t \r ] \r
0044320 \r s t a t i c [ p a r a m F
0044340 i l e ; i n C o m m e n t ;
0044360 e n d ; b u f f e r ; l a s
0044400 t N u m b e r W a s P o s i t i
0044420 v e ] \r \r / / - - - - - - - -
0044440 - - - - - - - - - - - - - - - -
*
0044540 - - - - \r l e t R e a d G a t
0044560 e P a r a m ( ) b e \r / / - -
0044600 - - - - - - - - - - - - - - - -
0044620 - - - - - 376 001 \0 \v 263 - - - - - -
0044640 - - - - - - - - - - - - - - - -
*
0044700 - - - - - - - - - - - - - - - \r
0044720 [ \r p a r a m F i l e = O p
0044740 e n F i l e ( " G A T E P A R A
0044760 M E T E R . T X T " , k s T y
0045000 p e R e a d O n l y , c h a r
0045020 I t e m ) \r i f p a r a m F i
0045040 l e e q 0 t h e n P a r
0045060 a m E r r o r ( " C a n ' t o
0045100 p e n G A T E P A R A M E T E
0045120 R . T X T * n " ) \r l e t v
0045140 = v e c n u m A t o m W o r
0045160 d s ; b u f f e r = v \r e
0045200 n d = M y F r a m e ( ) \r i
0045220 n C o m m e n t = 376 001 \0 # 034
0045240 f a l s e \r I n t e r p r e t P
0045260 a r a m ( ) \r C l o s e s ( p a
0045300 r a m F i l e ) \r ] \r \f \r / / -
0045320 - - - - - - - - - - - - - - - -
*
0045420 - - - - - - - - - - - \r a n d
0045440 I n t e r p r e t P a r a m ( )
0045460 b e \r / / - - - - - - - - - -
0045500 - - - - - - - - - - - - - - - -
*
0045600 - - \r [ \r l e t a t o m =
0045620 R e a d A t o m ( ) \r s w i t 376
0045640 001 \0 023 n c h o n a t o m > > S
0045660 t r i n g . c h a r ^ 1 i n t
0045700 o \r [ \r c a s e $
0045720 B : c a s e $ b : / / B
0045740 o o t < c o d e > < f i l e
0045760 n a m e > \r [ \r
0046000 l e t b f n = R e
0046020 a d N u m b e r ( 8 ) \r
0046040 l e t n a m e = R e a
0046060 d A t o m ( ) \r A d
0046100 d N a m e T o B F Q ( b f n ,
0046120 n a m e ) \r e n d c
0046140 a s e \r ] \r c
0046160 a s e $ C : c a s e $ c :
0046200 / / C o r r e c t i o n <
0046220 s i g n > < c o r r e c t i o
0046240 n i n 376 001 \0 353 202 s e c o n d
0046260 s p e r d a y ) > \r
0046300 [ \r l e t s e
0046320 c o n d s = R e a d N u m b
0046340 e r ( 1 0 ) \r S e t
0046360 T i m e C o r r e c t i o n ( s
0046400 e c o n d s , l a s t N u m b
0046420 e r W a s P o s i t i v e ) \r
0046440 e n d c a s e \r
0046460 ] \r c a s e $ D :
0046500 c a s e $ d : \r
0046520 [ \r s w i t c h o n
0046540 a t o m > > S t r i n g . c h
0046560 a r ^ 2 i n t o \r
0046600 [ \r c a
0046620 s e $ E : c a s e $ e :
0046640 / / D e b u g 376 001 \0 M 315 - -
0046660 r e t a i n t h e d e b u
0046700 g g e r \r
0046720 [ \r p
0046740 r e s e r v e D e b u g g e r
0046760 = t r u e \r
0047000 e n d c a s e \r
0047020 ] \r
0047040 c a s e $ S : c a s e
0047060 $ s : / / D S T < b e g i
0047100 n d a y > < e n d d a y >
0047120 \r [ \r
0047140 l e t b
0047160 e g i n D S T = R e a d N u
0047200 m b e r ( 1 0 ) \r
0047220 l e t e n d D S T
0047240 = R e a d N u m b e r ( 1 376 001
0047260 \0 < 006 0 ) \r
0047300 S e t T i m e D S T ( b e g
0047320 i n D S T , e n d D S T ) \r
0047340 e n d c a
0047360 s e \r ]
0047400 \r ] \r
0047420 e n d c a s e \r
0047440 ] \r c a s e $ H : c a
0047460 s e $ h : / / H o s t <
0047500 n e t T y p e > < d e v i c e
0047520 c o d e > < n e t > < h o
0047540 s t > \r [ \r
0047560 l e t n e t T y p e =
0047600 R e a d N u m b e r ( 8 ) \r
0047620 l e t d e v i c e N u
0047640 m = R e a d N u m b e r ( 8
0047660 ) \r 376 001 \0 p 022 l e t
0047700 n e t = R e a d N u m b e
0047720 r ( 8 ) \r l e t h
0047740 o s t = R e a d N u m b e r
0047760 ( 8 ) \r l e t n d
0050000 b = n d b Q ! 0 ; w h i l
0050020 e n d b n e 0 d o \r
0050040 [ \r
0050060 i f n d b > > N D B . n e
0050100 t T y p e e q n e t T y p e
0050120 & n d b > > N D B . d e v i
0050140 c e N u m e q d e v i c e N
0050160 u m t h e n \r
0050200 [ \r
0050220 i f n d b > > N D B . l o
0050240 c a l H o s t n e 0 & n
0050260 d b > > N D B . 376 001 \0 314 v l o c
0050300 a l H o s t n e h o s t t
0050320 h e n \r
0050340 P a r a m E r r o r ( " W
0050360 r o n g G A T E P A R A M E T
0050400 E R . T X T f o r t h i s
0050420 g a t e w a y * N " ) \r
0050440 n d b > > N D B
0050460 . l o c a l N e t = n e t \r
0050500 n d b >
0050520 > N D B . l o c a l H o s t =
0050540 h o s t \r
0050560 l e t r t e = H I n s
0050600 e r t ( p u p R T , n e t ) \r
0050620 r t e >
0050640 > R T E . n d b = n d b \r
0050660 r t 376 001 \0
0050700 005 217 e > > R T E . h o s t =
0050720 h o s t \r
0050740 b r e a k \r
0050760 ] \r n d
0051000 b = n d b > > N D B . l i n
0051020 k \r ] \r
0051040 i f n d b e q 0 t
0051060 h e n W s ( " N o i n t e r
0051100 f a c e f o r a b o v e n
0051120 e t * N " ) \r e n d
0051140 c a s e \r ] \r \f \r /
0051160 / I n t e r p r e t P a r a m
0051200 ( C o n t ' d ) \r \r c a
0051220 s e $ P : c a s e $ p :
0051240 / / P r o b e < H o u r s >
0051260 \r [ \r l
0051300 e t 376 001 \0 016 ) h o u r s =
0051320 R e a d N u m b e r ( 1 0 ) \r
0051340 S e t N a m e B c s t
0051360 I n t e r v a l ( h o u r s ) \r
0051400 S e t B o o t B c s
0051420 t I n t e r v a l ( h o u r s )
0051440 \r e n d c a s e \r
0051460 ] \r c a s e $
0051500 Z : c a s e $ z : / / Z
0051520 o n e < s i g n : + i s
0051540 W e s t o f G r e e n w i c
0051560 h > < H o u r s > : < M i n u
0051600 t e s > \r [ \r
0051620 l e t z o n e H = R
0051640 e a d N u m b e r ( 1 0 ) \r
0051660 l e t z o n e S =
0051700 n o t l a s 376 001 \0 243 251 t N u m
0051720 b e r W a s P o s i t i v e \r
0051740 l e t z o n e M =
0051760 R e a d N u m b e r ( 1 0 ) \r
0052000 S e t T i m e Z o n
0052020 e ( z o n e S , z o n e H ,
0052040 z o n e M ) \r e n d
0052060 c a s e \r ] \r
0052100 d e f a u l t : \r [
0052120 \r l e t c h a r
0052140 = R e a d C h a r ( ) \r
0052160 i f c h a r e q - 1
0052200 % c h a r e q $ * N e
0052220 n d c a s e \r ] r
0052240 e p e a t \r ] \r ] r e p
0052260 e a t \r \r / / - - - - - - - - -
0052300 - - - - - - - - - - - - 376 001 \0 =
0052320 U - - - - - - - - - - - - - - -
0052340 - - - - - - - - - - - - - - - -
*
0052400 - - - - - - - - \r a n d I s B
0052420 r e a k ( c h a r ) = \r / / -
0052440 - - - - - - - - - - - - - - - -
*
0052540 - - - - - - - - - - - \r c
0052560 h a r e q $ * N % c h a
0052600 r e q $ * S % c h a r
0052620 e q $ * T % \r c h a
0052640 r e q - 1 % c h a r e
0052660 q $ ; % c h a r e q $
0052700 : % c h a r e q $ , \r \r
0052720 / 376 001 \0 X 002 / - - - - - - - - -
0052740 - - - - - - - - - - - - - - - -
*
0053040 - - - \r a n d P a r a m E r r
0053060 o r ( s t r i n g ) b e \r / /
0053100 - - - - - - - - - - - - - - - -
*
0053200 - - - - - - - - - - - - \r [ \r W
0053220 s ( s t r i n g ) \r G a t e w a
0053240 y F i n i s h ( g a t e w a y Q
0053260 u i t C o d e ) \r ] \r \f \r / / -
0053300 - - - - - - - - - - - - - - - -
0053320 - - - - - - 376 001 \0 351 264 - - - - -
0053340 - - - - - - - - - - - - - - - -
*
0053420 \r a n d R e a d N u m b e r (
0053440 r a d i x ; n u m a r g s n
0053460 a ) = v a l o f \r / / - - -
0053500 - - - - - - - - - - - - - - - -
*
0053600 - - - - - - - - - \r / / i n t
0053620 e r p r e t s t h e n e x t
0053640 a t o m a s a n u m b e
0053660 r i n t h e g i v e n r
0053700 a d i x \r [ \r i f n a e q
0053720 0 t h e n r a d i 376 001 \0 k 234
0053740 x = 8 \r l e t a t o m =
0053760 R e a d A t o m ( ) \r l e t
0054000 n u m b e r = 0 \r l a s t N
0054020 u m b e r W a s P o s i t i v e
0054040 = t r u e \r f o r i =
0054060 1 t o a t o m > > S t r i n
0054100 g . l e n g t h d o \r [
0054120 \r l e t c h a r = a
0054140 t o m > > S t r i n g . c h a r
0054160 ^ i \r i f i e q 1
0054200 & ( c h a r e q $ - %
0054220 c h a r e q $ + ) t h e n
0054240 \r [ l a s t N u m
0054260 b e r W a s P o s i t i v e =
0054300 c h a r e q $ + ; l o o
0054320 p ] \r c h a r = c h
0054340 376 001 \0 t 340 a r - $ 0 \r u n
0054360 l e s s c h a r g e 0 &
0054400 c h a r l e r a d i x - 1
0054420 d o \r P a r a m E
0054440 r r o r ( " * N [ R e a d N u m
0054460 b e r ] - i l l e g a l c
0054500 h a r a c t e r i n n u m b
0054520 e r " ) \r n u m b e r =
0054540 n u m b e r * r a d i x
0054560 + c h a r \r ] \r r e s u
0054600 l t i s n u m b e r \r ] \r \r /
0054620 / - - - - - - - - - - - - - - -
0054640 - - - - - - - - - - - - - - - -
*
0054720 - - - - - - - - - - - - - \r a n
0054740 d R e a 376 001 \0 l } d A t o m (
0054760 ) = v a l o f \r / / - - - -
0055000 - - - - - - - - - - - - - - - -
*
0055100 - - - - - - - - \r / / r e t u
0055120 r n s p o i n t e r t o a
0055140 s t r i n g \r / / g o e s
0055160 t o t o p f r a m e i f
0055200 e n d o f f i l e b e f o
0055220 r e r e a d i n g a n y c
0055240 h a r s \r [ \r l e t c h a r
0055260 = n i l \r [ / / i g
0055300 n o r e l e a d i n g j u n
0055320 k \r c h a r = R e a d
0055340 C h a r ( ) \r 376 001 \0 317 254 i
0055360 f c h a r e q - 1 t h e
0055400 n G o t o F r a m e ( e n d )
0055420 \r u n l e s s I s B r e
0055440 a k ( c h a r ) b r e a k \r
0055460 ] r e p e a t \r l e t c
0055500 o u n t = 0 \r [ /
0055520 / c o l l e c t a n a t o m
0055540 \r c o u n t = c o u n
0055560 t + 1 \r i f c o u n
0055600 t g r m a x A t o m C h a r
0055620 s t h e n \r P a r
0055640 a m E r r o r ( " * N [ R e a d
0055660 A t o m ] - a t o m t o o
0055700 l o n g " ) \r b u f f e
0055720 r > > S t r i n g . c h a r ^ c
0055740 o u n t = c h a r \r 376
0055760 001 \0 @ 340 c h a r = R e a d C
0056000 h a r ( ) \r i f I s B r
0056020 e a k ( c h a r ) b r e a k \r
0056040 ] r e p e a t \r b u f f
0056060 e r > > S t r i n g . l e n g t
0056100 h = c o u n t \r r e s u l t
0056120 i s b u f f e r \r ] \r \r / / -
0056140 - - - - - - - - - - - - - - - -
*
0056240 - - - - - - - - - - - \r a n d
0056260 R e a d C h a r ( ) = v a l
0056300 o f \r / / - - - - - - - - - - -
0056320 - - - - - - - - - - - - - - - -
*
0056360 - - - - 376 001 \0 272 $ - - - - - - -
0056400 - - - - - - - - - - - - - - - -
0056420 - - - - - - \r / / r e t u r n
0056440 s t h e n e x t c h a r a
0056460 c t e r i n t h e s t r e
0056500 a m \r / / r e t u r n s - 1
0056520 o n e n d o f f i l e \r
0056540 [ \r u n t i l E n d o f s ( p
0056560 a r a m F i l e ) d o \r
0056600 [ / / f i l t e r o u t
0056620 c o m m e n t s h e r e \r
0056640 l e t c h a r = G e t s
0056660 ( p a r a m F i l e ) ; P u t
0056700 s ( d s p , c h a r ) \r
0056720 i f c h a r e q $ * N t
0056740 h e n i n C o m m e n t =
0056760 f a l s e \r 376 \0 ] 245 _ i f
0057000 i n C o m m e n t l o o p \r
0057020 i f c h a r e q $ ;
0057040 t h e n i n C o m m e n t
0057060 = t r u e \r r e s u l t
0057100 i s c h a r \r ] \r r e s
0057120 u l t i s - 1 \r ] \r 377 \0 \0 G a
0057140 t e C o n S e r v . d e c l \0 376
0057160 001 \0 002 022 / / G a t e C o n S e
0057200 r v . d e c l - - G a t e C
0057220 o n t r o l p r o t o c o l \r
0057240 \r / / L a s t m o d i f i e
0057260 d M a r c h 7 , 1 9 7 9
0057300 4 : 2 5 P M b y B o g g
0057320 s \r \r m a n i f e s t \r [ \r g c
0057340 S o c k e t 1 = 3 1 4 1 5 \t
0057360 / / n o t w e l l k n o w
0057400 n s e r v e r s o c k e t \r
0057420 g c S o c k e t 2 = 9 2 6 5
0057440 \r g c P a s s w o r d = 2 7
0057460 1 8 2 \t / / h i g h w o r d
0057500 o f P u p I D \r \r / / p
0057520 u p t y p e s \r p t S t o r e
0057540 = 2 0 0 b \t \t / / s t o r
0057560 e f i 376 001 \0 256 202 l e o n t o
0057600 g a t e w a y d i s k \r p t
0057620 E x a m i n e = 2 0 1 b \t /
0057640 / e x a m i n e m e m o r y
0057660 \r p t D e p o s i t = 2 0 2
0057700 b \t / / d e p o s i t m e m
0057720 o r y \r p t R e s t a r t =
0057740 2 0 3 b \t / / r e s t a r t
0057760 g a t e w a y p r o g r a m \r
0060000 / / 2 0 4 b \t u s e d t o
0060020 b e c h e c k r e s u l t
0060040 o f l a s t s t o r e \r / /
0060060 2 0 5 b u s e d t o b e
0060100 r e s e t t i m e b y b
0060120 r o a d c a s t i n g \r / / 2
0060140 0 6 b \t u s e d t o b e r
0060160 e s e t t i m e 376 001 \0 332 ) f
0060200 r o m a s p e c i f i c p
0060220 o r t \r p t S t a t s = 2 0
0060240 7 b \t \t / / g a t e w a y s
0060260 t a t i s t i c s \r p t A c k
0060300 = 2 1 0 b \t \t / / a c k n o
0060320 w l e d g e p r e v i o u s
0060340 c o m m a n d \r p t N a c k =
0060360 2 1 1 b \t \t / / n e g a t i
0060400 v e a c k n o w l e d g m e n
0060420 t f o r c o m m a n d \r p t
0060440 H a l t = 2 1 2 b \t \t / /
0060460 h a l t g a t e w a y a n d
0060500 d o n ' t r e s t a r t \r p
0060520 t R e t r i e v e = 2 1 3 b
0060540 \t / / r e t r i e v e a f
0060560 i l e f r o m g a t e w 376 001
0060600 \0 $ o a y d i s k \r \r / / s
0060620 t a t u s o f l a s t S t
0060640 o r e \r s t a t u s Y e s =
0060660 - 1 \r s t a t u s B u s y =
0060700 - 2 \r s t a t u s N o = - 3
0060720 \r \r g c S t a t s V e r s i o n
0060740 = 1 \r ] \r \r / / - - - - - -
0060760 - - - - - - - - - - - - - - - -
*
0061060 - - - - - - \r s t r u c t u r e
0061100 S t a t s : \t / / G a t e w
0061120 a y S t a t i s t i c s \r / /
0061140 - - - - - - - - - - - - - - - -
*
0061200 - - - 376 001 \0 037 O - - - - - - - -
0061220 - - - - - - - - - - - - - - - -
*
0061260 - \r [ \r v e r s i o n w o r d
0061300 \t \t / / = g c S t a t s V e
0061320 r s i o n \r s t a r t T i m e ^
0061340 0 , 1 w o r d \t / / T i m e
0061360 g a t e w a y w a s s t a
0061400 r t e d \r f t p S t a t u s w
0061420 o r d \t \t / / s t a t u s o
0061440 f m o s t r e c e n t F T
0061460 P \r f r e e P B I s w o r d \t
0061500 \t / / n u m b e r o f f r
0061520 e e p a c k e t b u f f e r
0061540 s \r f r e e P a g e s w o r d
0061560 \t \t / / n u m b e r o f f
0061600 r e e d i s k 376 001 \0 C 313 p a
0061620 g e s \r v e r s i o n T e x t
0061640 w o r d \t / / B C P L s t r
0061660 i n g s t a r t s h e r e \r
0061700 ] \r m a n i f e s t l e n S t
0061720 a t s = o f f s e t S t a
0061740 t s . v e r s i o n T e x t / 1
0061760 6 / / n o t i n c l u d i
0062000 n g s t r i n g \r \r / / - - -
0062020 - - - - - - - - - - - - - - - -
*
0062120 - - - - - - - - - \r s t r u c t
0062140 u r e G C S : \t \t / / ' g l
0062160 o b a l f r a m e ' f o r
0062200 G a t e C o n t r o l S 376 001 \0
0062220 177 273 e r v e r \r / / - - - - - -
0062240 - - - - - - - - - - - - - - - -
*
0062340 - - - - - - \r [ \r s o c w o r
0062360 d \t \t / / - > S e r v e r '
0062400 s s o c k e t \r s t a t s @
0062420 S t a t s \r f t p C t x w o r
0062440 d \t \t / / - > P B I u s e
0062460 d a s a c t x o r 0
0062500 i f n o c t x a c t i v e
0062520 \r q u i t C o d e w o r d \t \t
0062540 / / 0 o r d o s . e r r
0062560 R t n c o d e . N o n z e
0062600 r o = > s t o p \r r e s t a
0062620 r t 376 \0 I 363 240 T i m e r w o r
0062640 d \t / / t i m e d e l a y
0062660 b e f o r e s t o p p i n g \r
0062700 ] \r m a n i f e s t l e n G C
0062720 S = s i z e G C S / 1 6 \r
0062740 377 \0 \0 G a t e C o n S e r v . b
0062760 c p l \0 376 001 \0 201 K / / G a t e
0063000 C o n S e r v . b c p l - -
0063020 G a t e w a y c o n t r o l
0063040 s e r v e r \r \r / / L a s t
0063060 m o d i f i e d M a r c h 7
0063100 , 1 9 7 9 4 : 1 1 P M
0063120 b y B o g g s \r \r g e t " P
0063140 u p E F T P . d e c l " \r g e t
0063160 " P u p S e r v F t p . d e c
0063200 l " \r g e t " G a t e C o n S
0063220 e r v . d e c l " \r \r e x t e r
0063240 n a l \r [ \r / / o u t g o i n
0063260 g p r o c e d u r e s \r G a t
0063300 e C o n S e r v C t x ; H a l
0063320 t G a t e w a y \r \r / / i n c
0063340 o m i n g p r o c e d u r e s
0063360 \r L o c k N a m e 376 001 \0 215 254 S e
0063400 r v ; U n l o c k N a m e S e
0063420 r v ; G e t T i m e \r L o c k
0063440 B o o t S e r v ; U n l o c k
0063460 B o o t S e r v ; S t r i n g
0063500 C o m p a r e \r G a t e w a y F
0063520 i n i s h ; C h a t r ; P u
0063540 p S e r v R e c e i v e ; P u
0063560 p S e r v S e n d \r I n i t i a
0063600 l i z e C o n t e x t ; B l o
0063620 c k \r A l l o c a t e ; F r e
0063640 e ; M o v e B l o c k ; Z e
0063660 r o \r E n q u e u e ; D e q u
0063700 e u e ; U n q u e u e ; Q u
0063720 e u e L e n g t h \r S e t T i m
0063740 e r ; T i m e r H a s E x p i
0063760 r e d \r G e t P B I ; R e 376 001
0064000 \0 u y l e a s e P B I ; C o m
0064020 p l e t e P u p ; S e t P u p
0064040 I D \r E x c h a n g e P o r t s
0064060 ; A p p e n d S t r i n g T o
0064100 P u p \r \r / / o u t g o i n g
0064120 s t a t i c s \r @ g c s \r \r /
0064140 / i n c o m i n g s t a t i
0064160 c s \r s y s Z o n e ; c t x Q
0064200 ; v e r s i o n T e x t ; C
0064220 t x R u n n i n g \r p b i T Q ;
0064240 p b i F r e e Q ; g a t e w
0064260 a y G o i n g D o w n ; l e n
0064300 P u p \r ] \r \r s t a t i c @ g
0064320 c s \r \r m a n i f e s t \r [ \r /
0064340 / D O S . e r t n c o d e
0064360 s \r q u i t = 1 2 3 4 5 \r r
0064400 e s t 376 001 \0 031 231 a r t = 1 0
0064420 0 0 \r ] \r \r s t r u c t u r e
0064440 G C T X : \t \t / / G a t e C o
0064460 n t r o l C T X \r [ \r b l a n
0064500 k w o r d 3 \r p b i w o r
0064520 d \r ] \r m a n i f e s t G C T
0064540 X e x t r a = s i z e G C
0064560 T X / 1 6 - 3 \r \r / / - - - -
0064600 - - - - - - - - - - - - - - - -
*
0064700 - - - - - - - \r l e t H a l t
0064720 G a t e w a y ( ) b e \r / / -
0064740 - - - - - - - - - - - - - - - -
*
0065000 - - - - - - - - 376 001 \0 G < - - -
0065020 - - - - - - - - - - - - - - - -
0065040 - - - - - - - - - - - - - - - \r
0065060 [ \r g c s > > G C S . q u i t C
0065100 o d e = q u i t \r g a t e w
0065120 a y G o i n g D o w n = t r
0065140 u e \r / / D a l l y f o r
0065160 1 5 s e c o n d s w h i l e
0065200 w e b r o a d c a s t r o
0065220 u t i n g t a b l e s t h a
0065240 t s a y w e a r e \r / /
0065260 a t e r r i b l e r o u t e
0065300 t o e v e r y w h e r e s
0065320 o t h a t p e o p l e c a
0065340 n f i n d w a y s a r o u
0065360 n d u s . \r S e t T i m e r (
0065400 l v g c s > > G C S . r 376 001 \0
0065420 266 201 e s t a r t T i m e r , 1
0065440 5 0 0 ) \r ] \r \f \r / / - - - - -
0065460 - - - - - - - - - - - - - - - -
*
0065560 - - - - - - \r a n d G a t e C
0065600 o n S e r v C t x ( ) b e \r /
0065620 / - - - - - - - - - - - - - - -
0065640 - - - - - - - - - - - - - - - -
*
0065720 - - - - - - - - - - - - \r [ \r
0065740 [ / / i d l e l o o
0065760 p \r B l o c k ( ) \r
0066000 i f g c s > > G C S . s t a t
0066020 s . 376 001 \0 8 266 s t a r t T i m e
0066040 ^ 0 e q 0 t h e n \r
0066060 G e t T i m e ( l v g c
0066100 s > > G C S . s t a t s . s t a
0066120 r t T i m e ) \r i f g c
0066140 s > > G C S . f t p C t x n e
0066160 0 & g c s > > G C S . s t
0066200 a t s . f t p S t a t u s n e
0066220 s t a t u s B u s y t h e n
0066240 \r [ \r c
0066260 o m p i l e t e s t n o v a \r
0066300 i f s o [
0066320 R e l e a s e P B I ( g c s > >
0066340 G C S . f t p C t x - o f f s e
0066360 t P B I . p u p / 1 6 ) ] \r
0066400 i f n o t [
0066420 F r e e ( s 376 001 \0 | 304 y s Z o
0066440 n e , g c s > > G C S . f t p
0066460 C t x ) ] \r g c s
0066500 > > G C S . f t p C t x = 0
0066520 \r ] \r i f g
0066540 c s > > G C S . q u i t C o d e
0066560 n e 0 & g c s > > G C S
0066600 . f t p C t x e q 0 & \r
0066620 T i m e r H a s E x p i r
0066640 e d ( l v g c s > > G C S . r
0066660 e s t a r t T i m e r ) t h e
0066700 n \r [ \r
0066720 L o c k B o o t S e r v ( ) \r
0066740 L o c k N a m e S e r
0066760 v ( ) \r G a t e w a
0067000 y F i n i s h ( g c s > > G C S
0067020 . q u i t C o d e ) \r 376 001 \0 241
0067040 024 ] \r ] r e p
0067060 e a t u n t i l g c s > > G C
0067100 S . s o c > > P u p S o c . i Q
0067120 . h e a d n e 0 \r \r l e t
0067140 p b i = D e q u e u e ( l v
0067160 g c s > > G C S . s o c > > P
0067200 u p S o c . i Q ) \r i f p b i
0067220 > > P B I . p u p . d P o r t .
0067240 h o s t e q 0 % p b i >
0067260 > P B I . p u p . i d ^ 1 n e
0067300 g c P a s s w o r d t h e n
0067320 \r [ R e l e a s e P B I
0067340 ( p b i ) ; l o o p ] \r E x
0067360 c h a n g e P o r t s ( p b i )
0067400 / / d o t h i s h e r e
0067420 r a t h e r t h a n i n
0067440 e 376 001 \0 l 223 a c h c a s e \r \r
0067460 s w i t c h o n p b i > > P B
0067500 I . p u p . t y p e i n t o \r
0067520 [ \r c a s e p t E
0067540 x a m i n e : \r [ \r
0067560 / / e x a m i n e
0067600 a b l o c k o f w o r d s
0067620 w h o s e s t a r t i n g
0067640 a d d r e s s \r / /
0067660 a n d l e n g t h a r e g
0067700 i v e n i n t h e f i r s
0067720 t 2 w o r d s o f t h e
0067740 \r / / r e q u e s t
0067760 P u p . r e t u r n t h
0070000 e b l o c k s t a r t i n g
0070020 i n w o r d 3 . \r
0070040 M o v e 376 001 \0 236 343 B l o c k
0070060 ( l v p b i > > P B I . p u p
0070100 . w o r d s ^ 3 , p b i > > P
0070120 B I . p u p . w o r d s ^ 1 , \r
0070140 p b i > > P B I .
0070160 p u p . w o r d s ^ 2 ) \r
0070200 C o m p l e t e P u p ( p
0070220 b i , p t A c k , p b i > >
0070240 P B I . p u p . w o r d s ^ 2
0070260 l s h i f t 1 + p u p O v
0070300 B y t e s + 4 ) \r e
0070320 n d c a s e \r ] \r
0070340 c a s e p t D e p o s i t
0070360 : \r [ \r
0070400 / / d e p o s i t a b l o c
0070420 k o f w o r d s w h o s e
0070440 s t a r t i n g a 376 001 \0 202 334
0070460 d d r e s s \r / / a
0070500 n d l e n g t h a r e g i
0070520 v e n i n t h e f i r s t
0070540 2 w o r d s o f t h e \r
0070560 / / r e q u e s t
0070600 P u p . t h e d a t a s
0070620 t a r t s a t w o r d 3 .
0070640 \r M o v e B l o c k
0070660 ( p b i > > P B I . p u p . w o
0070700 r d s ^ 1 , l v p b i > > P
0070720 B I . p u p . w o r d s ^ 3 , \r
0070740 p b i > > P B I .
0070760 p u p . w o r d s ^ 2 ) \r
0071000 C o m p l e t e P u p ( p
0071020 b i , p t A c k , p u p O v
0071040 B y t e s ) \r e n d
0071060 376 001 \0 ? 246 c a s e \r
0071100 ] \r c a s e p t H a l t
0071120 : \r [ \r
0071140 / / h a l t t h e g a t e w
0071160 a y p r o g r a m \r
0071200 H a l t G a t e w a y ( ) \r
0071220 C o m p l e t e P u p
0071240 ( p b i , p t A c k , p u p
0071260 O v B y t e s ) \r e
0071300 n d c a s e \r ] \r
0071320 c a s e p t R e s t a r t
0071340 : \r [ \r
0071360 / / r e s t a r t t h e G a
0071400 t e w a y p r o g r a m \r
0071420 g c s > > G C S . q u i
0071440 t C o d e = r e s t a r t \r
0071460 376 001 \0 023 354 S e t T i
0071500 m e r ( l v g c s > > G C S .
0071520 r e s t a r t T i m e r , 5 0
0071540 0 ) / / d a l l y f o r
0071560 5 s e c o n d s \r
0071600 C o m p l e t e P u p ( p b i
0071620 , p t A c k , p u p O v B y
0071640 t e s ) \r e n d c a
0071660 s e \r ] \r \f \r / /
0071700 G a t e C o n S e r v ( c o n
0071720 t ' d ) \r \r c a s e p t
0071740 S t o r e : \r / / S
0071760 t o r e a f i l e o n t
0072000 h e g a t e w a y d i s k
0072020 w h o s e n a m e i s g i
0072040 v e n \r / / i n
0072060 t h e P u p c o 376 001 \0 F ? n
0072100 t e n t s . T h e s e r v
0072120 e r r e s p o n d s w i t h
0072140 a n a c k \r / /
0072160 c o n t a i n i n g t h e
0072200 p o r t t o w h i c h t h
0072220 e f i l e s h o u l d b e
0072240 E F T P ' e d . \r c a s
0072260 e p t R e t r i e v e : \r
0072300 / / R e t r i e v e a
0072320 f i l e f r o m t h e g
0072340 a t e w a y d i s k w h o s
0072360 e n a m e i s g i v e n \r
0072400 / / i n t h e
0072420 P u p c o n t e n t s . T
0072440 h e s e r v e r g e n e r a
0072460 t e s n o a c k : i t 376
0072500 001 \0 371 024 j u s t s t a r t s \r
0072520 / / E F T P i n g
0072540 t h e f i l e t o t h e
0072560 s o u r c e p o r t o f
0072600 t h e i n c o m i n g p a c
0072620 k e t . \r [ \r
0072640 i f g c s > > G C S . f
0072660 t p C t x e q 0 & g c s
0072700 > > G C S . q u i t C o d e e
0072720 q 0 t h e n \r
0072740 [ \r l e t
0072760 c t x = a l t o ? A l l
0073000 o c a t e ( s y s Z o n e , 1
0073020 2 0 0 , t r u e ) , v a l o
0073040 f \r [ \r
0073060 l e t
0073100 p b i 376 001 \0 245 227 = G e t P B
0073120 I ( g c s > > G C S . s o c ,
0073140 t r u e ) \r
0073160 r e s u l t i s p b i e
0073200 q 0 ? 0 , l v p b i > >
0073220 P B I . p u p \r
0073240 ] \r i
0073260 f c t x n e 0 t h e n \r
0073300 [ \r
0073320 g c s > > G
0073340 C S . f t p C t x = c t x \r
0073360 g c s >
0073400 > G C S . s t a t s . f t p S t
0073420 a t u s = s t a t u s B u s
0073440 y \r c t
0073460 x > > G C T X . p b i = p b
0073500 i \r 376 001 \0 240 354
0073520 f o r i = p b i > >
0073540 P B I . p u p . l e n g t h - p
0073560 u p O v B y t e s t o 1 b
0073600 y - 1 d o \r
0073620 p b i > > P B I .
0073640 p u p . b y t e s ^ ( i + 1 )
0073660 = p b i > > P B I . p u p . b
0073700 y t e s ^ i \r
0073720 p b i > > P B I . p u p .
0073740 b y t e s ^ 1 = p b i > > P
0073760 B I . p u p . l e n g t h - p u
0074000 p O v B y t e s \r
0074020 E n q u e u e ( c t x
0074040 Q , I n i t i a l i z e C o n
0074060 t e x t ( c t x , ( a l t o ?
0074100 1 2 0 0 , l e n P u p ) 376 001
0074120 \0 E 314 , \r
0074140 ( p b i > > P B I . p u p .
0074160 t y p e e q p t S t o r e ?
0074200 G C S S t o r e , G C S R e
0074220 t r i e v e ) , \r
0074240 G C T X e x t r a )
0074260 ) \r e n
0074300 d c a s e \r
0074320 ] \r ] \r
0074340 R e l e a s e P B I (
0074360 p b i ) \r e n d c a
0074400 s e \r ] \r c a
0074420 s e p t S t a t s : \r
0074440 [ \r l e t s t
0074460 a t s = l v p b i > > P B
0074500 I . p u p . w o r d s \r
0074520 M 376 001 \0 322 , o v e B l o c k
0074540 ( s t a t s , l v g c s > >
0074560 G C S . s t a t s , l e n S t
0074600 a t s ) \r s t a t s
0074620 > > S t a t s . f r e e P B I s
0074640 = Q u e u e L e n g t h ( p
0074660 b i F r e e Q ) \r l
0074700 e t l e n V e r s i o n T e x
0074720 t = v e r s i o n T e x t >
0074740 > S t r i n g . l e n g t h r
0074760 s h i f t 1 + 1 \r
0075000 M o v e B l o c k ( l v s t
0075020 a t s > > S t a t s . v e r s i
0075040 o n T e x t , v e r s i o n T
0075060 e x t , l e n V e r s i o n T
0075100 e x t ) \r C o m p l
0075120 e t e P u p ( p 376 001 \0 E E b i ,
0075140 p t A c k , p u p O v B y t
0075160 e s + ( l e n S t a t s + l e n
0075200 V e r s i o n T e x t ) * 2 ) \r
0075220 e n d c a s e \r
0075240 ] \r d e f a u l t
0075260 : \r R e l e a s e P
0075300 B I ( p b i ) \r ] \r ] r
0075320 e p e a t \r \f \r / / - - - - - -
0075340 - - - - - - - - - - - - - - - -
*
0075440 - - - - - \r a n d G C S S t o
0075460 r e ( c t x ) b e \r / / - - -
0075500 - - - - - - - - - - - - - - - -
0075520 - - - - - - - - - - - - - 376 001 \0
0075540 030 4 - - - - - - - - - - - - - -
0075560 - - - - - - - - - - - - - - - -
0075600 - - - - - - - - - - - - - \r / /
0075620 A s e p a r a t e c o n t
0075640 e x t t h a t d o e s t h
0075660 e f i l e t r a n s f e r .
0075700 \r / / I t s i g n a l s t
0075720 h a t i t i s d o n e b
0075740 y c h a n g i n g g c s > >
0075760 G C S . s t a t s . f t p S t a
0076000 t u s \r / / t o a n y t h
0076020 i n g o t h e r t h a n s
0076040 t a t u s B u s y . \r [ \r l e t
0076060 p b i = c t x > > G C T X
0076100 . p b i \r l e t f t p = v
0076120 e c l e n F T P ; Z e r o (
0076140 f t 376 001 \0 315 , p , l e n F T P
0076160 ) \r f t p > > F T P . f r n P o
0076200 r t = l v p b i > > P B I
0076220 . p u p . d P o r t \r Z e r o (
0076240 l v p b i > > P B I . p u p .
0076260 s P o r t . s o c k e t , 2 )
0076300 / / l e t O p e n L e v e
0076320 l 1 S o c k e t p i c k t h
0076340 e s o c k e t \r f t p > > F T
0076360 P . l c l P o r t = l v p
0076400 b i > > P B I . p u p . s P o r
0076420 t / / b u t u s e n e t
0076440 , h o s t i n r e q u e s t
0076460 p u p \r f t p > > F T P . r e
0076500 a l N a m e = l v p b i >
0076520 > P B I . p u p . b y t e s \r f
0076540 t p > > F T P 376 001 \0 320 Y . t e m
0076560 p N a m e = " T E M P . G C
0076600 " \r f t p > > F T P . t i m e O
0076620 u t 1 = 1 0 0 \r f t p > > F
0076640 T P . t i m e O u t 2 = 2 0
0076660 0 0 / / 2 0 s e c o n d s
0076700 \r f t p > > F T P . p r o c 1
0076720 = G a t e C o n S t a r t \r f
0076740 t p > > F T P . p r o c 2 =
0076760 G a t e C o n E n d \r \r l e t
0077000 s t a t u s = P u p S e r v
0077020 R e c e i v e ( f t p ) ? s t
0077040 a t u s Y e s , s t a t u s N
0077060 o \r i f s t a t u s e q s
0077100 t a t u s Y e s t h e n \r
0077120 [ \r U n l o c k B o o t
0077140 S e r v ( l v p b i > 376 001 \0 317
0077160 316 > P B I . p u p . b y t e s )
0077200 \r U n l o c k N a m e S e
0077220 r v ( ) \r ] \r \r R e l e a
0077240 s e P B I ( p b i ) \r U n q u e
0077260 u e ( c t x Q , c t x ) \r g c
0077300 s > > G C S . s t a t s . f t p
0077320 S t a t u s = s t a t u s
0077340 / / s i g n a l t h a t w
0077360 e a r e d o n e \r / / r e
0077400 t u r n i n g f r o m a c
0077420 o n t e x t c a u s e s a n
0077440 i m p l i c i t B l o c k (
0077460 ) \r ] \r \r / / - - - - - - - - -
0077500 - - - - - - - - - - - - - - - -
*
0077560 - 376 001 \0 / H - - - - - - - - - -
0077600 - - - - - - - \r a n d G a t e
0077620 C o n S t a r t ( s o c ) b e
0077640 \r / / - - - - - - - - - - - - -
0077660 - - - - - - - - - - - - - - - -
*
0077740 - - - - - - - - - - - - - - \r /
0077760 / T h i s i s w h e r e
0100000 t h e a c k c o n t a i n i
0100020 n g t h e E F T P p o r t
0100040 g e t s g e n e r a t e d .
0100060 \r [ \r l e t p b i = G e t
0100100 P B I ( s o c , t r u e ) ;
0100120 i f p b i n e 0 t h e n
0100140 \r [ \r S e t P u p I
0100160 D ( p b i , 376 001 \0 357 M l v C
0100200 t x R u n n i n g > > G C T X .
0100220 p b i > > P B I . p u p . i d )
0100240 \r M o v e B l o c k ( l v
0100260 p b i > > P B I . p u p . w o
0100300 r d s , l v s o c > > P u p
0100320 S o c . l c l P o r t , l e n
0100340 P o r t ) \r C o m p l e t
0100360 e P u p ( p b i , p t A c k ,
0100400 p u p O v B y t e s + l e n P
0100420 o r t * 2 ) \r ] \r ] \r \r /
0100440 / - - - - - - - - - - - - - - -
0100460 - - - - - - - - - - - - - - - -
*
0100540 - - - - - - - - - - - - \r a n d
0100560 G a t e C o n E n d 376 001 \0 * 335
0100600 ( s t r e a m ) b e \r / / - -
0100620 - - - - - - - - - - - - - - - -
*
0100720 - - - - - - - - - \r [ \r c o m p
0100740 i l e i f n o v a t h e n \r
0100760 [ \r l e t f n =
0101000 l v C t x R u n n i n g > >
0101020 G C T X . p b i > > P B I . p u
0101040 p . b y t e s \r i f S t
0101060 r i n g C o m p a r e ( f n ,
0101100 " . S V " , f n > > S t r i n
0101120 g . l e n g t h - 2 ) e q 0
0101140 t h e n \r C h a t
0101160 r ( s t r e a m , 2 0 0 0 0 b
0101200 376 001 \0 034 333 ) / / s e t "
0101220 S " a t t r i b u t e f o r
0101240 . S V f i l e \r ] \r L
0101260 o c k B o o t S e r v ( ) \r L o
0101300 c k N a m e S e r v ( ) \r ] \r \r
0101320 / / - - - - - - - - - - - - - -
0101340 - - - - - - - - - - - - - - - -
*
0101420 - - - - - - - - - - - - - \r a n
0101440 d G C S R e t r i e v e ( c t
0101460 x ) b e \r / / - - - - - - - -
0101500 - - - - - - - - - - - - - - - -
*
0101600 - - - \r / 376 001 \0 240 Z / A s e
0101620 p a r a t e c o n t e x t t
0101640 h a t d o e s t h e f i l
0101660 e t r a n s f e r . \r / / I
0101700 t s i g n a l s t h a t i
0101720 t i s d o n e b y c h a
0101740 n g i n g g c s > > G C S . s
0101760 t a t s . f t p S t a t u s \r /
0102000 / t o a n y t h i n g o
0102020 t h e r t h a n s t a t u s
0102040 B u s y . \r [ \r l e t p b i
0102060 = c t x > > G C T X . p b i \r
0102100 l e t f t p = v e c l e
0102120 n F T P ; Z e r o ( f t p ,
0102140 l e n F T P ) \r f t p > > F T P
0102160 . f r n P o r t = l v p b
0102200 i > > P B I . p u p 376 001 \0 271 201 .
0102220 d P o r t \r Z e r o ( l v p b
0102240 i > > P B I . p u p . s P o r t
0102260 . s o c k e t , 2 ) / / l
0102300 e t O p e n L e v e l 1 S o c
0102320 k e t p i c k t h e s o c
0102340 k e t \r f t p > > F T P . l c l
0102360 P o r t = l v p b i > > P
0102400 B I . p u p . s P o r t / /
0102420 b u t u s e n e t , h o s t
0102440 i n r e q u e s t p u p \r
0102460 f t p > > F T P . r e a l N a m
0102500 e = l v p b i > > P B I .
0102520 p u p . b y t e s \r f t p > > F
0102540 T P . t i m e O u t 1 = 5 0
0102560 0 / / 5 s e c o n d s \r
0102600 f t p > > F T P . t i m e O u 376
0102620 \0 346 F 340 t 2 = 2 0 0 0 /
0102640 / 2 0 s e c o n d s \r \r l e t
0102660 s t a t u s = P u p S e r
0102700 v S e n d ( f t p ) ? s t a t
0102720 u s Y e s , s t a t u s N o \r
0102740 \r R e l e a s e P B I ( p b i )
0102760 \r U n q u e u e ( c t x Q , c
0103000 t x ) \r g c s > > G C S . s t a
0103020 t s . f t p S t a t u s = s
0103040 t a t u s / / s i g n a l
0103060 t h a t w e a r e d o n e
0103100 \r / / r e t u r n i n g f r
0103120 o m a c o n t e x t c a u
0103140 s e s a n i m p l i c i t
0103160 B l o c k ( ) \r ] \r 377 \0 \0 G a t
0103200 e C o n I n i t . b c p l \0 376 001
0103220 \0 366 315 / / G a t e C o n I n i
0103240 t . b c p l \r \r / / L a s t
0103260 m o d i f i e d F e b r u a r
0103300 y 6 , 1 9 7 9 1 1 : 2 9
0103320 P M b y B o g g s \r \r g e
0103340 t " P u p 0 . d e c l " \r g e
0103360 t " P u p 1 . d e c l " \r g e
0103400 t " G a t e C o n S e r v . d
0103420 e c l " \r \r e x t e r n a l \r [
0103440 \r / / o u t g o i n g p r o
0103460 c e d u r e s \r C r e a t e G a
0103500 t e C o n S e r v \r \r / / i n
0103520 c o m i n g p r o c e d u r e
0103540 s \r G a t e C o n S e r v C t x
0103560 ; O p e n L e v e l 1 S o c k
0103600 e t ; E n q u e u e \r A l l o
0103620 c a t 376 001 \0 344 5 e ; Z e r o ;
0103640 I n i t i a l i z e C o n t e
0103660 x t \r \r / / i n c o m i n g
0103700 s t a t i c s \r @ g c s \r s y s
0103720 Z o n e ; c t x Q \r ] \r \r m a
0103740 n i f e s t g c s s s = a
0103760 l t o ? 2 0 0 , 1 0 0 /
0104000 / g a t e c o n t r o l s e
0104020 r v e r s t a c k s i z e \r
0104040 \r / / - - - - - - - - - - - - -
0104060 - - - - - - - - - - - - - - - -
*
0104140 - - - - - - - - - - - - - - \r l
0104160 e t C r e a t e G a t e C o n
0104200 S e r v ( ) b e \r / / - - - -
0104220 - - - - - - - - 376 001 \0 275 < - - -
0104240 - - - - - - - - - - - - - - - -
*
0104320 - - - - - - - - - - - - \r [ \r g
0104340 c s = A l l o c a t e ( s y
0104360 s Z o n e , l e n G C S ) ;
0104400 Z e r o ( g c s , l e n G C S
0104420 ) \r g c s > > G C S . s t a t s
0104440 . v e r s i o n = g c S t a
0104460 t s V e r s i o n \r E n q u e u
0104500 e ( c t x Q , I n i t i a l i
0104520 z e C o n t e x t ( A l l o c a
0104540 t e ( s y s Z o n e , g c s s
0104560 s ) , g c s s s , \r G a t e
0104600 C o n S e r v C t x ) ) \r g c s
0104620 > > G C S . s o c = A 376 \0 a
0104640 020 223 l l o c a t e ( s y s Z o n
0104660 e , l e n P u p S o c ) \r O p
0104700 e n L e v e l 1 S o c k e t ( g
0104720 c s > > G C S . s o c , t a b
0104740 l e [ 0 ; g c S o c k e t
0104760 1 ; g c S o c k e t 2 ] ) \r
0105000 ] \r \r 377 \0 \0 G a t e w a y . c m
0105020 \0 376 \0 302 211 244 G a t e w a y . b c
0105040 p l G a t e w a y I n i t . b
0105060 c p l G a t e F o r w a r d .
0105100 d e c l G a t e F o r w a r d
0105120 . b c p l G a t e F o r I n i
0105140 t . b c p l G a t e P a r a m
0105160 e t e r . b c p l G a t e C o
0105200 n S e r v . d e c l G a t e C
0105220 o n S e r v . b c p l G a t e
0105240 C o n I n i t . b c p l G a t
0105260 e w a y . c m C o m p i l e G
0105300 a t e w a y . c m L o a d G a
0105320 t e w a y . c m 377 \0 \0 C o m p i
0105340 l e G a t e w a y . c m \0 376 \0 254
0105360 234 { B C P L / F G A T E W A Y
0105400 . B C P L ; B C P L / F G A
0105420 T E W A Y I N I T . B C P L ;
0105440 B C P L / F G A T E F O R W A
0105460 R D . B C P L ; B C P L / F
0105500 G A T E F O R I N I T . B C P L
0105520 ; B C P L / F G A T E P A R
0105540 A M E T E R . B C P L ; B C P
0105560 L / F G A T E C O N S E R V .
0105600 B C P L ; B C P L / F G A T
0105620 E C O N I N I T . B C P L \r 377 \0
0105640 \0 L o a d G a t e w a y . c m \0
0105660 376 001 \0 \a k B L D R / L / V 7 0
0105700 0 / W 1 2 0 0 / N B U T I L
0105720 / U D E B U G 3 / I G A T E
0105740 W A Y G A T E F O R W A R D
0105760 G A T E C O N S E R V P U P E
0106000 C H O S E R V P U P M I S C S
0106020 E R V P U P N A M E S E R V
0106040 P U P N A M E C O R E P U P T
0106060 I M E S E R V P U P B O O T S
0106100 E R V P U P S E R V F T P E
0106120 T H E R B O O T P U P E F T P
0106140 P U P 1 O P E N C L O S E P
0106160 U P 1 B P U P N V 1 A P U P
0106200 R O U T E P U P S T A T S E R
0106220 V P U P N V E T H B P U P N
0106240 V E T H A P U P N V I M P B
0106260 P U P N V 376 001 \0 234 # I M P A P
0106300 U P N V S L A B P U P N V S L
0106320 A A N V C O N T E X T N V C
0106340 O N T E X T I N I T N V D O S
0106360 I N T B N V D O S I N T A N
0106400 O V A D O S B N O V A D O S A
0106420 N O V A A L T O B N O V A A
0106440 L T O A N O V A T T Y N V R
0106460 I N G B Y T E S A L L O C N
0106500 O V A Q U E U E N O V A T I M
0106520 E R G A T E W A Y I N I T G
0106540 A T E F O R I N I T G A T E C
0106560 O N I N I T G A T E P A R A M
0106600 E T E R P U P 1 I N I T P U
0106620 P N V E T H I N I T P U P N V
0106640 I M P I N I T P U P N V S L A
0106660 I N I T P U P E C 376 \0 7 k s H
0106700 O I N I T P U P M I S C I N I
0106720 T P U P N A M E I N I T P U
0106740 P T I M E I N I T P U P B O O
0106760 T I N I T \r 374
0106767