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