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