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