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