$ od -c -N 50000 [Pixel]<IFS>IfsScavenger.dm!1
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 233 031
0036340 < _ \0 \0 376 001 \0 264 371 / / 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 \r / / L a s t
0036520 m o d i f i e d J u l y 2
0036540 7 , 1 9 8 2 7 : 3 0 P M
0036560 b y B o g g s \r \r g e t "
0036600 I f s S c a v e n g e r . d e c
0036620 l " \r g e t " A l t o F i l e
0036640 S y s . d " \r g e t " I f s D
0036660 i r s . d e c l " \r g e t " S
0036700 t r e a m s . d " \r g e t " D
0036720 i s k s . d " \r \r e x t e r n a
0036740 l \r [ \r / / o u 376 001 \0 X w t g
0036760 o i n g p r o c e d u r e s \r
0037000 I f s S c a v e n g e r ; S c
0037020 a v N o B u f s P r o c ; S c
0037040 r a t c h \r S p l i t P u t s ;
0037060 L o g E r r o r s ; E x t e
0037100 n d F i l e \r \r / / i n c o m
0037120 i n g p r o c e d u r e s \r P
0037140 a s s 1 ; P a s s 2 ; D i s
0037160 k E d i t o r ; D u m p T r e
0037200 e ; D u m p L P T \r C r e a t
0037220 e K e y w o r d T a b l e ; I
0037240 n s e r t K e y w o r d ; C o
0037260 n f i r m ; G e t N u m b e r
0037300 \r O p e n D i s k ; C l o s e
0037320 D i s k ; S n a r f B u f f e
0037340 r \r G e t K e y w o r d ; 376 001
0037360 \0 356 261 I n i t C m d ; W R I T
0037400 E U D T \r C l o s e s ; P u t
0037420 s ; W s s ; W s ; A l l o
0037440 c a t e ; F r e e ; S e t B
0037460 l o c k ; Z e r o ; N o o p
0037500 \r C a l l S w a t ; I F S E r
0037520 r o r ; S y s E r r ; R e t
0037540 u r n F r o m \r O p e n F i l e
0037560 ; C r e a t e D i s k S t r e
0037600 a m ; F i l e L e n g t h ;
0037620 P o s i t i o n P a g e \r R e l
0037640 e a s e D i s k P a g e ; A s
0037660 s i g n D i s k P a g e ; A c
0037700 t O n D i s k P a g e s ; W r
0037720 i t e D i s k P a g e s \r D i s
0037740 k F i n d H o l e ; J u m p T
0037760 o F a 376 001 \0 b 211 ; G e t C u r
0040000 r e n t F a \r \r / / o u t g o
0040020 i n g s t a t i c s \r s c r a
0040040 t c h D i s k ; s c a v D i s
0040060 k \r n u m F i l e s ; n u m P
0040100 a g e s ; l p t ; p a s s ;
0040120 p h a s e \r e d i t H o m e F
0040140 l a g ; i n i t T r e e F l a
0040160 g ; i n i t L p t F l a g ;
0040200 d e b u g F l a g ; j u s t F
0040220 i x D i r F l a g \r \r / / i n
0040240 c o m i n g s t a t i c s \r d
0040260 s p ; k e y s ; s y s D i s
0040300 k ; n u m V M e m B u f s ;
0040320 s y s Z o n e \r w o r d s P e r
0040340 P a g e ; b y t e s P e r P a
0040360 g e \r ] \r \r s t 376 001 \0 342 255 a t i
0040400 c \r [ \r s c r a t c h D i s k ;
0040420 s c a v D i s k \r n u m F i l
0040440 e s ; n u m P a g e s ; l p
0040460 t ; p a s s ; p h a s e \r \r
0040500 e d i t H o m e F l a g = f
0040520 a l s e \r i n i t T r e e F l a
0040540 g = f a l s e \r i n i t L p
0040560 t F l a g = t r u e \r d e b
0040600 u g F l a g = f a l s e \r j
0040620 u s t F i x D i r F l a g =
0040640 f a l s e \r \r k b d K T ; k b
0040660 d C S \r ] \r \f \r / / - - - - - -
0040700 - - - - - - - - - - - - - - - -
*
0040760 - - - - - - - - - - - - - 376 001 \0
0041000 < 322 - - - - - - - - - - - - - -
0041020 - - - - - - - - \r l e t I f s
0041040 S c a v e n g e r ( ) b e \r /
0041060 / - - - - - - - - - - - - - - -
0041100 - - - - - - - - - - - - - - - -
*
0041200 - - - - - - - - - - \r [ \r W s (
0041220 " I F S S c a v e n g e r o
0041240 f J u n e 1 6 , 1 9 8 3 "
0041260 ) \r W s ( " * N S t a r t e d
0041300 a t " ) ; W R I T E U D T (
0041320 d s p , 0 , t r u e ) \r \r k
0041340 b d K T = C r e a t e K e y
0041360 w o r d T a b l e ( 1 3 , 1 )
0041400 \r I 376 001 \0 , 300 n s e r t K e y w
0041420 o r d ( k b d K T , " D e b u
0041440 g " ) ! 0 = D e b u g \r I n
0041460 s e r t K e y w o r d ( k b d K
0041500 T , " D i s k E d i t o r " )
0041520 ! 0 = S e t u p D i s k E d
0041540 i t o r \r I n s e r t K e y w o
0041560 r d ( k b d K T , " D u m p L
0041600 P T " ) ! 0 = D u m p L P T
0041620 \r I n s e r t K e y w o r d ( k
0041640 b d K T , " D u m p T r e e "
0041660 ) ! 0 = D u m p T r e e \r I
0041700 n s e r t K e y w o r d ( k b d
0041720 K T , " E d i t H o m e " ) !
0041740 0 = E d i t H o m e \r I n s
0041760 e r t K e y w o r d ( k b d K T
0042000 , " I n i t 376 001 \0 p 274 L P T "
0042020 ) ! 0 = I n i t L P T \r I n
0042040 s e r t K e y w o r d ( k b d K
0042060 T , " I n i t T r e e " ) ! 0
0042100 = I n i t T r e e \r I n s e
0042120 r t K e y w o r d ( k b d K T ,
0042140 " J u s t F i x D i r " ) ! 0
0042160 = J u s t F i x D i r \r I n
0042200 s e r t K e y w o r d ( k b d K
0042220 T , " P a s s 1 " ) ! 0 =
0042240 P a s s 1 \r I n s e r t K e y w
0042260 o r d ( k b d K T , " P a s s
0042300 2 " ) ! 0 = S e t u p P a s
0042320 s 2 \r I n s e r t K e y w o r d
0042340 ( k b d K T , " Q u i t " ) !
0042360 0 = Q u i t \r I n s e r t K
0042400 e y w o r d ( k b d K T 376 001 \0 371
0042420 S , " S c a v e n g e " ) ! 0
0042440 = S c a v e n g e \r I n s e
0042460 r t K e y w o r d ( k b d K T ,
0042500 " S c r a t c h " ) ! 0 =
0042520 S c r a t c h \r \r [ \r
0042540 k b d C S = I n i t C m d
0042560 ( 5 0 0 , 1 5 ) r e p e a t
0042600 u n t i l k b d C S n e 0
0042620 \r W s s ( k b d C S , "
0042640 * N * * " ) \r l e t k t
0042660 e = G e t K e y w o r d ( k
0042700 b d C S , k b d K T ) \r
0042720 P u t s ( k b d C S , $ * S )
0042740 \r ( k t e ! 0 ) ( ) \r
0042760 C l o s e s ( k b d C S ) \r
0043000 ] r e p e a t \r ] \r \r / /
0043020 - 376 001 \0 R 334 - - - - - - - - - -
0043040 - - - - - - - - - - - - - - - -
*
0043140 - - - - - - - - - - - - - - \r a
0043160 n d S e t u p ( P r o c , n
0043200 u m V P a g e s ) b e \r / / -
0043220 - - - - - - - - - - - - - - - -
*
0043340 - - - - - - - - \r [ \r l e t b
0043360 u f f P t r , n u m B u f f s
0043400 = n i l , ( n u m V M e m
0043420 B u f s - n 376 001 \0 242 306 u m V P a
0043440 g e s ) * 4 \r [ \r
0043460 b u f f P t r = S n a r f B
0043500 u f f e r ( 0 , n u m B u f f
0043520 s ) ; i f b u f f P t r n
0043540 e 0 b r e a k \r n u m
0043560 B u f f s = n u m B u f f s
0043600 - 1 \r i f n u m B u f
0043620 f s e q 0 t h e n I F S
0043640 E r r o r ( 1 3 ) \r ] r
0043660 e p e a t \r P r o c ( b u f f P
0043700 t r , n u m B u f f s ) \r ] \r
0043720 \r / / T h e 1 6 b e l o w
0043740 i s 4 o p e n f i l e s
0043760 ( l p t + 3 s o r t f
0044000 i l e s ) + 1 2 p a g e s
0044020 f o r o v e r l a 376 001 \0 O 300
0044040 y s \r / / T h e 1 2 p a g
0044060 e s f o r o v e r l a y s
0044100 i s d e t e r m i n e d e m
0044120 p i r i c a l l y \r / / - - - -
0044140 - - - - - - - - - - - - - - - -
*
0044260 - - - - - \r a n d S e t u p P
0044300 a s s 2 ( ) b e S e t u p (
0044320 P a s s 2 , 1 6 ) \r / / - - -
0044340 - - - - - - - - - - - - - - - -
*
0044440 376 001 \0 h 222 - - - - - - - - - - -
0044460 - - - - - - - - - - - \r \r / / -
0044500 - - - - - - - - - - - - - - - -
*
0044620 - - - - - - - - \r a n d S e t
0044640 u p D i s k E d i t o r ( ) b
0044660 e S e t u p ( D i s k E d i t
0044700 o r , 1 0 ) \r / / - - - - - -
0044720 - - - - - - - - - - - - - - - -
*
0045040 - - - \r \f 376 001 \0 037 301 \r / / - - -
0045060 - - - - - - - - - - - - - - - -
*
0045200 - - - - - - \r a n d S c a v e
0045220 n g e ( ) b e \r / / - - - - -
0045240 - - - - - - - - - - - - - - - -
*
0045360 - - - - \r [ \r l e t q u i t F
0045400 l a g = f a l s e \r l e t
0045420 d r i v e L i s t = v e c
0045440 7 ; S e t B l o c 376 001 \0 _ 257 k
0045460 ( d r i v e L i s t , - 1 ,
0045500 8 ) \r i f C o n f i r m ( k b
0045520 d C S , " * N A r e a l l
0045540 o f t h e p a c k s s p i
0045560 n n i n g ? " ) t h e n \r
0045600 [ \r W s s ( k b d C S
0045620 , " * N H o w m a n y p a
0045640 c k s a r e t h e r e ? "
0045660 ) \r l e t n u m P a c k
0045700 s = G e t N u m b e r ( k b
0045720 d C S ) \r i f n u m P a
0045740 c k s g r 8 t h e n [
0045760 W s s ( k b d C S , " * N T o
0046000 o m a n y : 8 m a x " ) ;
0046020 r e t u r n ] \r
0046040 [ \r l e t d i s 376
0046060 001 \0 301 243 k = O p e n D i s k
0046100 ( " * N S c a n p a c k o n
0046120 d r i v e " , 0 , t r u
0046140 e , f a l s e ) \r
0046160 i f d i s k n e 0 t h e
0046200 n \r [ \r
0046220 l e t d r i v e N
0046240 u m b e r = d i s k > > D S
0046260 K . d r i v e N u m b e r \r
0046300 C l o s e D i s k
0046320 ( d i s k ) \r
0046340 l e t d u p l i c a t e , h
0046360 o l e = f a l s e , - 1 \r
0046400 f o r i =
0046420 0 t o 7 d o \r
0046440 [ \r
0046460 376 001 \0 \r 213 i f d r i
0046500 v e L i s t ! i e q d r i v
0046520 e N u m b e r t h e n d u p
0046540 l i c a t e = t r u e \r
0046560 i f d r i
0046600 v e L i s t ! i e q - 1 &
0046620 h o l e e q - 1 t h e n
0046640 h o l e = i \r
0046660 ] \r
0046700 t e s t d u p l i c a t e \r
0046720 i f s o
0046740 W s s ( k b d C S , " * N S
0046760 a m e d r i v e s p e c i f
0047000 i e d t w i c e " ) \r
0047020 i f n o t \r
0047040 [ \r
0047060 376 001 \0 364 e
0047100 d r i v e L i s t ! h o l
0047120 e = d r i v e N u m b e r \r
0047140 i
0047160 f h o l e + 1 e q n u m P
0047200 a c k s b r e a k \r
0047220 ] \r
0047240 ] \r ] r
0047260 e p e a t \r q u i t F l a
0047300 g = C o n f i r m ( k b d C
0047320 S , " * N R e t u r n t o
0047340 E x e c i f a l l g o e s
0047360 w e l l ? " ) \r ] \r i
0047400 n i t L p t F l a g = t r u
0047420 e \r l e t d r i v e I n d e x
0047440 = 0 \r l e t o k = v a
0047460 l o f \r [ \r o k 376 001
0047500 \0 m 350 = P a s s 1 ( d r i v
0047520 e L i s t ! d r i v e I n d e x
0047540 ) \r d r i v e I n d e x
0047560 = d r i v e I n d e x + 1 \r
0047600 u n l e s s o k r e s
0047620 u l t i s f a l s e / / s
0047640 o m e t h i n g i s w r o n
0047660 g \r i f o k e q 1 2
0047700 3 4 5 6 b r e s u l t i s t
0047720 r u e / / a l l p a c k s
0047740 p r e s e n t a n d a c c
0047760 o u n t e d f o r \r / /
0050000 o k s h o u l d b e - 1
0050020 n o w , i n d i c a t i n g
0050040 s u c c e s s s c a n n i n
0050060 g t h a t p a c k \r ]
0050100 r e 376 001 \0 C L p e a t \r i f
0050120 o k t h e n S e t u p P a s
0050140 s 2 ( ) \r i f q u i t F l a g
0050160 t h e n Q u i t ( ) \r ] \r \f
0050200 \r / / - - - - - - - - - - - - -
0050220 - - - - - - - - - - - - - - - -
*
0050320 - - - - - - - - - - - - \r a n d
0050340 D e b u g ( ) b e T o g g
0050360 l e F l a g ( l v d e b u g F
0050400 l a g ) \r / / - - - - - - - - -
0050420 - - - - - - - - - - - - - - - -
*
0050500 - - - - - - - - 376 001 \0 376 223 - - -
0050520 - - - - - - - - - - - - - - - -
0050540 - - - - - \r \r / / - - - - - - -
0050560 - - - - - - - - - - - - - - - -
*
0050700 - - \r a n d I n i t L P T ( )
0050720 b e T o g g l e F l a g ( l
0050740 v i n i t L p t F l a g ) \r /
0050760 / - - - - - - - - - - - - - - -
0051000 - - - - - - - - - - - - - - - -
*
0051100 - - - - - - - - - - \r \r / 376 001 \0
0051120 z 375 / - - - - - - - - - - - - -
0051140 - - - - - - - - - - - - - - - -
*
0051240 - - - - - - - - - - - - \r a n d
0051260 I n i t T r e e ( ) b e T
0051300 o g g l e F l a g ( l v i n i
0051320 t T r e e F l a g ) \r / / - - -
0051340 - - - - - - - - - - - - - - - -
*
0051460 - - - - - - \r \r / / - - - - - -
0051500 - - - - - - - - - - - - - - - -
0051520 - - 376 001 \0 \b D - - - - - - - - -
0051540 - - - - - - - - - - - - - - - -
*
0051620 - - - - - - - - \r a n d E d i
0051640 t H o m e ( ) b e T o g g l
0051660 e F l a g ( l v e d i t H o m
0051700 e F l a g ) \r / / - - - - - - -
0051720 - - - - - - - - - - - - - - - -
*
0052040 - - \r \r / / - - - - - - - - - -
0052060 - - - - - - - - - - - - - - - -
*
0052120 - - - - - - - 376 001 \0 275 225 - - - -
0052140 - - - - - - - - - - - - - - - -
*
0052200 - - - - \r a n d J u s t F i x
0052220 D i r ( ) b e T o g g l e F
0052240 l a g ( l v j u s t F i x D i
0052260 r F l a g ) \r / / - - - - - - -
0052300 - - - - - - - - - - - - - - - -
*
0052420 - - \r \r / / - - - - - - - - - -
0052440 - - - - - - - - - - - - - - - -
*
0052520 - - - - - - - - - - - - 376 001 \0 Q
0052540 276 - - - - - - - - - - - - - - -
0052560 - - - - \r a n d Q u i t ( )
0052600 b e f i n i s h \r / / - - - -
0052620 - - - - - - - - - - - - - - - -
*
0052740 - - - - - \r \r / / - - - - - - -
0052760 - - - - - - - - - - - - - - - -
*
0053100 - - \r a n d T o g g l e F l a
0053120 g ( l v F l a g ) b e \r / / -
0053140 - 376 001 \0 m { - - - - - - - - - -
0053160 - - - - - - - - - - - - - - - -
*
0053260 - - - - - - - - - - - - - \r / /
0053300 t o g g l e a f l a g \r [
0053320 \r l v F l a g ! 0 = n o t
0053340 l v F l a g ! 0 \r W s s ( k b d
0053360 C S , l v F l a g ! 0 ? " Y
0053400 e s " , " N o " ) \r ] \r \r / /
0053420 - - - - - - - - - - - - - - - -
*
0053540 - - - - - - 376 001 \0 h 266 - - - \r a
0053560 n d S c r a t c h ( n i l ;
0053600 n u m a r g s n a ) = v a
0053620 l o f \r / / - - - - - - - - - -
0053640 - - - - - - - - - - - - - - - -
*
0053740 - - - - - - - - - - - - - - - \r
0053760 [ \r i f s c r a t c h D i s k
0054000 n e 0 & s c r a t c h D
0054020 i s k n e s y s D i s k t
0054040 h e n \r C l o s e D i s k
0054060 ( s c r a t c h D i s k , t r
0054100 u e ) \r i f n a g r 0 t
0054120 h e n W s ( " * N S c r a t c
0054140 h " ) \r s c r a t c 376 001 \0 % 337
0054160 h D i s k = O p e n D i s k
0054200 ( " d i s k : " , t r u e ,
0054220 f a l s e , t r u e ) \r i f
0054240 s c r a t c h D i s k e q
0054260 0 t h e n W s s ( k b d C S
0054300 , " ( I s t h e p a c k
0054320 f o r m a t t e d ? ) " ) \r r
0054340 e s u l t i s s c r a t c h D
0054360 i s k \r ] \r \f \r / / - - - - - -
0054400 - - - - - - - - - - - - - - - -
*
0054520 - - - \r a n d S c a v N o B u
0054540 f s P r o c ( ) b e C a l l
0054560 376 001 \0 \r 247 S w a t ( " N o V M
0054600 e m b u f f e r s " ) \r / / -
0054620 - - - - - - - - - - - - - - - -
*
0054740 - - - - - - - - \r \r / / - - - -
0054760 - - - - - - - - - - - - - - - -
*
0055100 - - - - - \r l e t S p l i t P
0055120 u t s ( s t , i t e m ) b e
0055140 \r / / - - - - - - - - - - - - -
0055160 - - - - - 376 001 \0 360 310 - - - - - -
0055200 - - - - - - - - - - - - - - - -
*
0055300 - \r / / s p l i t s t r e a
0055320 m o p e r a t i o n f o r
0055340 d s p \r [ \r P u t s ( s t > > S
0055360 T . p a r 1 , i t e m ) \r P u
0055400 t s ( s t > > S T . p a r 2 ,
0055420 i t e m ) \r ] \r \r / / - - - - -
0055440 - - - - - - - - - - - - - - - -
*
0055560 - - - - \r a n d L 376 001 \0 254 242 o
0055600 g E r r o r s ( s t , e c ,
0055620 p a r a m ) = v a l o f \r /
0055640 / - - - - - - - - - - - - - - -
0055660 - - - - - - - - - - - - - - - -
*
0055760 - - - - - - - - - - \r [ \r m a n
0056000 i f e s t \r [ \r B F
0056020 S D i s k F u l l = 1 1 0 2
0056040 \r T F S D i s k F u l l
0056060 = 1 4 0 2 \r ] \r i f e
0056100 c e q B F S D i s k F u l l
0056120 % e c e q T F S D i s k
0056140 F u l l t h e n \r [ \r
0056160 C l o s e s ( d s p > > S 376
0056200 001 \0 304 345 T . p a r 2 ) \r d
0056220 s p > > S T . p a r 2 = A l
0056240 l o c a t e ( s y s Z o n e ,
0056260 l S T ) \r S e t B l o c k
0056300 ( d s p > > S T . p a r 2 , N
0056320 o o p , l S T ) \r W s (
0056340 " * N D P 0 i s f u l l -
0056360 l o g f i l e t r u n c a
0056400 t e d * N " ) \r R e t u r
0056420 n F r o m ( P u t s ) \r ]
0056440 \r S y s E r r ( s t , e c ,
0056460 p a r a m ) \r ] \r \f \r / / - - -
0056500 - - - - - - - - - - - - - - - -
*
0056600 - - - - 376 001 \0 ` 372 - - - - - - -
0056620 - - - - - - - - - - - \r a n d
0056640 E x t e n d F i l e ( t f s N a
0056660 m e , m a x P N , m i n P N
0056700 ) b e \r / / - - - - - - - - -
0056720 - - - - - - - - - - - - - - - -
*
0057040 \r [ \r / / E x t e n d s a
0057060 f i l e u s i n g t h e l
0057100 e a s t p o s s i b l e n u
0057120 m b e r o f p a g e r u n
0057140 s , \r / / e a c h a s l
0057160 o n g a s p o s s i b l e .
0057200 \r l e t i f p 376 001 \0 312 307 =
0057220 v e c l F P ; Z e r o ( i f
0057240 p , l F P ) \r l e t s f =
0057260 O p e n F i l e ( t f s N a m
0057300 e , k s T y p e R e a d O n l
0057320 y , 0 , 0 , i f p , 0 ,
0057340 0 , 0 , s c a v D i s k )
0057360 \r l e t p n , f a = - 1
0057400 , v e c l F A \r i f s f
0057420 n e 0 t h e n \r [ \r
0057440 F i l e L e n g t h ( s f )
0057460 \r G e t C u r r e n t F a
0057500 ( s f , f a ) \r C l o s
0057520 e s ( s f ) \r ] \r l e t
0057540 c a = A l l o c a t e ( s y
0057560 s Z o n e , w o r d s P e r P
0057600 a g e ) ; Z e r o ( c a , 376 001
0057620 \0 303 016 w o r d s P e r P a g e
0057640 ) \r [ \r l e t h o
0057660 l e S i z e = n i l \r
0057700 l e t h o l e V D A = D i
0057720 s k F i n d H o l e ( s c a v D
0057740 i s k , m a x P N - p n , l
0057760 v h o l e S i z e ) \r i
0060000 f h o l e V D A e q - 1
0060020 t e s t p n u l s m i n P
0060040 N \r i f s o I F S
0060060 E r r o r ( e c F i l e S y s t
0060100 e m F u l l ) \r i f
0060120 n o t b r e a k \r R e l
0060140 e a s e D i s k P a g e ( s c a
0060160 v D i s k , A s s i g n D i s
0060200 k P a g e ( s c a v D i s k ,
0060220 h o l 376 001 \0 335 331 e V D A - 1 ) )
0060240 \r t e s t p n e q -
0060260 1 \r i f s o s f
0060300 = O p e n F i l e ( t f s N a
0060320 m e , 0 , 0 , 0 , i f p
0060340 , 0 , 0 , 0 , s c a v D
0060360 i s k ) \r i f n o t
0060400 \r [ \r
0060420 l e t D A s = v
0060440 e c 2 \r D A
0060460 s ! 0 = e o f D A ; D A s
0060500 ! 1 = f i l l I n D A ; D
0060520 A s ! 2 = e o f D A \r
0060540 W r i t e D i s k P
0060560 a g e s ( s c a v D i s k , 0
0060600 , D A s - p n , i f p , p
0060620 n + 1 , p n + 376 001 \0 326 002 1 ,
0060640 D C w r i t e L D , 0 , b y
0060660 t e s P e r P a g e , c a ) \r
0060700 D A s ! 0 =
0060720 f a > > F A . d a \r
0060740 W r i t e D i s k P a g
0060760 e s ( s c a v D i s k , 0 ,
0061000 D A s - p n , i f p , p n +
0061020 1 , p n + 1 , - 1 , 0 ,
0061040 b y t e s P e r P a g e , c a
0061060 ) \r D A s ! 0
0061100 = f i l l I n D A ; D A s
0061120 ! 1 = f a > > F A . d a ;
0061140 D A s ! 2 = f i l l I n D A
0061160 \r A c t O n D
0061200 i s k P a g e s ( s c a v D i s
0061220 k , 0 , D A s - p n + 376 001 \0
0061240 361 325 1 , i f p , p n , p n
0061260 , D C r e a d D , 0 , 0 ,
0061300 c a ) \r D A
0061320 s ! 2 = h o l e V D A \r
0061340 W r i t e D i s k
0061360 P a g e s ( s c a v D i s k ,
0061400 0 , D A s - p n + 1 , i f p
0061420 , p n , p n , - 1 , 0 ,
0061440 b y t e s P e r P a g e , c
0061460 a ) \r s f =
0061500 C r e a t e D i s k S t r e a
0061520 m ( i f p , 0 , 0 , 0 ,
0061540 0 , 0 , 0 , s c a v D i s
0061560 k ) \r f a > >
0061600 F A . d a = h o l e V D A \r
0061620 f a > > F A .
0061640 p a 376 \0 343 365 226 g e N u m b e r
0061660 = p n + 1 \r
0061700 f a > > F A . c h a r P o s =
0061720 0 \r J u m p
0061740 T o F a ( s f , f a ) \r
0061760 ] \r P o s i t
0062000 i o n P a g e ( s f , p n + h
0062020 o l e S i z e ) \r G e t C
0062040 u r r e n t F a ( s f , f a )
0062060 \r C l o s e s ( s f ) \r
0062100 p n = f a > > F A . p a
0062120 g e N u m b e r \r ] r e
0062140 p e a t u n t i l p n e q
0062160 m a x P N \r F r e e ( s y s Z o
0062200 n e , c a ) \r ] \r 377 \0 \0 I f s
0062220 S c a v O v I n i t . b c p l \0
0062240 373 224 214 ! h \0 \0 376 001 \0 342 Z / / I
0062260 f s S c a v O v I n i t . b c p
0062300 l - o n c e o n l y c o
0062320 d e \r / / C o p y r i g h t
0062340 X e r o x C o r p o r a t i o
0062360 n 1 9 7 9 \r / / L a s t m
0062400 o d i f i e d D e c e m b e r
0062420 2 2 , 1 9 7 9 3 : 0 3
0062440 P M b y B o g g s \r \r g e t
0062460 " D i s k s . d " \r \r e x t e
0062500 r n a l \r [ \r / / o u t g o i
0062520 n g p r o c e d u r e s \r D e
0062540 c l a r e A l l O E P s ; I n
0062560 i t D i s k s F i n i s h \r \r /
0062600 / i n c o m i n g p r o c e
0062620 d u r e s \r P a s s 1 ; P a s
0062640 s 2 ; D i s k E d i t 376 001 \0 200
0062660 276 o r ; D u m p L P T ; D u
0062700 m p T r e e \r \r D e c l a r e O
0062720 E P ; I n i t B T r e e O E P
0062740 ; I n i t D i s k S t r e a m
0062760 s O E P \r I n i t C m d S c a n
0063000 O E P ; I n i t K e y w o r d
0063020 O E P ; I n i t S t r i n g O
0063040 E P \r \r T F S W r i t e P a g e
0063060 s ; T F S A s s i g n D i s k
0063100 P a g e ; T F S C r e a t e F
0063120 i l e \r T F S D e l e t e P a g
0063140 e s ; T F S R e l e a s e D i
0063160 s k P a g e ; T F S C l o s e
0063200 \r I F S O p e n D D ; B F S F
0063220 l u s h D D ; B F S D e s t r
0063240 o y D D M g r \r I F S C l o s e
0063260 D 376 001 \0 212 : D ; I F S L o c k
0063300 D D ; I F S U n l o c k D D ;
0063320 I F S R e a d D D P a g e \r B
0063340 F S C l o s e D D ; B F S L o
0063360 c k D D ; B F S U n l o c k D
0063400 D ; B F S R e a d D D P a g e
0063420 \r B F S W r i t e P a g e s ;
0063440 B F S A s s i g n D i s k P a g
0063460 e ; B F S C r e a t e F i l e
0063500 \r B F S D e l e t e P a g e s ;
0063520 B F S R e l e a s e D i s k P
0063540 a g e ; B F S C l o s e \r \r I
0063560 F S F i n i s h ; W s s ; I
0063600 F S E r r o r ; P r i n t R e
0063620 a l D A \r \r / / i n c o m i n
0063640 g s t a t i c s \r l v U s e r
0063660 F i n i s h 376 001 \0 272 ) P r o c ;
0063700 b f s D D M g r ; s y s D i
0063720 s k \r ] \r \r m a n i f e s t e
0063740 c B a d U F P = 2 3 \r \f \r /
0063760 / - - - - - - - - - - - - - - -
0064000 - - - - - - - - - - - - - - - -
*
0064060 - - - - - - - - - - - - \r l e t
0064100 D e c l a r e A l l O E P s (
0064120 o e v ) b e \r / / - - - - - -
0064140 - - - - - - - - - - - - - - - -
*
0064240 - - - - - \r [ \r I n i t B T r e
0064260 e O E P ( o e v ) \r I 376 001 \0 034 m
0064300 n i t D i s k S t r e a m s O E
0064320 P ( o e v ) \r I n i t C m d S c
0064340 a n O E P ( o e v ) \r I n i t K
0064360 e y w o r d O E P ( o e v ) \r I
0064400 n i t S t r i n g O E P ( o e v
0064420 ) \r \r i f @ l v U s e r F i n
0064440 i s h P r o c n e I F S F i
0064460 n i s h t h e n I F S E r r
0064500 o r ( e c B a d U F P ) \r \r D e
0064520 c l a r e O E P ( o e v , l v
0064540 D i s k E d i t o r , l v
0064560 P a s s 1 , l v P a s s 2 ,
0064600 \r l v D u m p L P T , l v
0064620 D u m p T r e e ) \r D e c l a
0064640 r e O E P ( o e v , l v I F
0064660 S O p e n D D , l v I F S C
0064700 376 001 \0 e 315 l o s e D D , l v
0064720 I F S L o c k D D , \r l v I
0064740 F S U n l o c k D D , l v I
0064760 F S R e a d D D P a g e ) \r D e
0065000 c l a r e O E P ( o e v , l v
0065020 T F S W r i t e P a g e s ,
0065040 l v T F S D e l e t e P a g e
0065060 s , l v T F S C r e a t e F
0065100 i l e , \r l v T F S A s s i
0065120 g n D i s k P a g e , l v T
0065140 F S R e l e a s e D i s k P a g
0065160 e , l v T F S C l o s e ) \r
0065200 D e c l a r e O E P ( o e v ,
0065220 l v B F S C l o s e D D , l
0065240 v B F S L o c k D D , l v
0065260 B F S U n l o c k D D , \r l v
0065300 B F S R 376 001 \0 275 005 e a d D D P
0065320 a g e , l v B F S F l u s h
0065340 D D , l v B F S D e s t r o
0065360 y D D M g r ) \r D e c l a r e O
0065400 E P ( o e v , l v B F S W r
0065420 i t e P a g e s , l v B F S
0065440 D e l e t e P a g e s , l v
0065460 B F S C r e a t e F i l e , \r
0065500 l v B F S A s s i g n D i s k
0065520 P a g e , l v B F S R e l e
0065540 a s e D i s k P a g e , l v
0065560 B F S C l o s e ) \r D e c l a r
0065600 e O E P ( o e v , l v I F S
0065620 F i n i s h , l v W s s ,
0065640 l v P r i n t R e a l D A ) \r
0065660 ] \r \r / / - - - - - - - - - - -
0065700 - - - - - - - - - - 376 001 \0 z # -
0065720 - - - - - - - - - - - - - - - -
*
0066000 - - - - - \r a n d I n i t D i
0066020 s k s F i n i s h ( ) b e \r /
0066040 / - - - - - - - - - - - - - - -
0066060 - - - - - - - - - - - - - - - -
*
0066140 - - - - - - - - - - - - \r [ \r @
0066160 l v U s e r F i n i s h P r o c
0066200 = I F S F i n i s h / /
0066220 n o w i n s t a l l p o i n
0066240 t e r t o s w a p p a b l e
0066260 v e r s i o n \r \r s y s D i s
0066300 k > > D S K . W r i t e D i s 376
0066320 001 \0 A 210 k P a g e s = B F S
0066340 W r i t e P a g e s \r s y s D i
0066360 s k > > D S K . A s s i g n D i
0066400 s k P a g e = B F S A s s i
0066420 g n D i s k P a g e \r s y s D i
0066440 s k > > D S K . C r e a t e D i
0066460 s k F i l e = B F S C r e a
0066500 t e F i l e \r s y s D i s k > >
0066520 D S K . D e l e t e D i s k P a
0066540 g e s = B F S D e l e t e P
0066560 a g e s \r s y s D i s k > > D S
0066600 K . R e l e a s e D i s k P a g
0066620 e = B F S R e l e a s e D i
0066640 s k P a g e \r s y s D i s k > >
0066660 D S K . C l o s e D i s k =
0066700 B F S C l o s e \r \r b f s D D M
0066720 g r > > 376 \0 346 260 220 D D M g r . L
0066740 o c k D D = B F S L o c k D
0066760 D \r b f s D D M g r > > D D M g
0067000 r . R e a d D D P a g e = B
0067020 F S R e a d D D P a g e \r b f s
0067040 D D M g r > > D D M g r . U n l
0067060 o c k D D = B F S U n l o c
0067100 k D D \r b f s D D M g r > > D D
0067120 M g r . F l u s h D D = B F
0067140 S F l u s h D D \r b f s D D M g
0067160 r > > D D M g r . C l o s e D D
0067200 = B F S C l o s e D D \r b f
0067220 s D D M g r > > D D M g r . D e
0067240 s t r o y D D M g r = B F S
0067260 D e s t r o y D D M g r \r ] \r 377
0067300 \0 \0 I f s S c a v C S D s p . b
0067320 c p l \0 373 226 ? 027 S \0 \0 376 001 \0 317 263
0067340 / / I f s S c a v C S D s p .
0067360 b c p l - - I f s S c a v
0067400 e n g e r d e p e n d e n t
0067420 p o r t i o n o f t h e \r /
0067440 / \t c o m m a n d s c a n n e
0067460 r p a c k a g e . T h i s
0067500 f i l e s t a r t e d o u
0067520 t l i f e a s \r / / \t C m d
0067540 S c a n D i s p l a y . b c p l
0067560 \r / / C o p y r i g h t X e
0067600 r o x C o r p o r a t i o n
0067620 1 9 7 9 , 1 9 8 0 \r / / L a
0067640 s t m o d i f i e d N o v e
0067660 m b e r 1 6 , 1 9 8 0 3
0067700 : 1 1 P M b y B o g g s \r
0067720 \r g e t " C m d S c a n . d e
0067740 376 001 \0 $ 216 c l " \r g e t " A l
0067760 t o D e f s . d " \r \r e x t e r
0070000 n a l \r [ \r / / o u t g o i n
0070020 g p r o c e d u r e s \r D e f
0070040 E r a s e ; D e f E r r o r ;
0070060 D e f B r e a k ; D e f E c
0070100 h o ; C m d E r r o r ; I n
0070120 v e r t W i n d o w \r \r / / i
0070140 n c o m i n g p r o c e d u r
0070160 e s \r C h a r W i d t h ; G e
0070200 t B i t P o s ; G e t L m a r
0070220 g ; E r a s e B i t s \r P u t
0070240 s ; R e s e t s ; W s s ;
0070260 S y s E r r ; N o o p \r C u r
0070300 r e n t P h r a s e ; B a c k
0070320 u p P h r a s e ; D i s m i s
0070340 s \r F i l 376 001 \0 356 \t e P o s ;
0070360 S e t F i l e P o s ; D o u b
0070400 l e I n c r e m e n t \r ] \r \r \r
0070420 / / - - - - - - - - - - - - - -
0070440 - - - - - - - - - - - - - - - -
*
0070520 - - - - - - - - - - - - - \r l e
0070540 t D e f E r a s e ( c s , f
0070560 i r s t , l a s t , c o n t
0070600 e x t ) b e \r / / - - - - - -
0070620 - - - - - - - - - - - - - - - -
*
0070720 - - - - - \r [ \r / / s c a v e n
0070740 g e r ' s d s p 376 001 \0 ? 032 i
0070760 s a s p l i t s t r e a m
0071000 : \r l e t d s = c s > > C
0071020 S . d s p S > > S T . p a r 1
0071040 / / p a r 1 - > d i s p l
0071060 a y s t r e a m \r l e t k s
0071100 = c s > > C S . d s p S > >
0071120 S T . p a r 2 / / p a r 2
0071140 - > d i s k s t r e a m \r l
0071160 e t b i t s = 0 \r l e t
0071200 c h a r s = 0 \r f o r i
0071220 = f i r s t t o l a s t
0071240 d o \r [ \r l e t c
0071260 h a r = c s > > C S . b u f
0071300 > > B u f ^ i \r i f c h
0071320 a r l s # 2 0 0 t h e n \r
0071340 [ \r i 376
0071360 001 \0 \r 233 f c h a r e q $ *
0071400 n t h e n b i t s = 9 9
0071420 9 9 \r c h a r s =
0071440 c h a r s + 1 \r
0071460 b i t s = b i t s + ( c
0071500 h a r g e # 4 0 ? C h a r
0071520 W i d t h ( d s , c h a r ) ,
0071540 \r C h a r W i d t
0071560 h ( d s , $ ^ ) + C h a r W i
0071600 d t h ( d s , c h a r + # 1 0
0071620 0 ) ) \r ] \r ]
0071640 \r t e s t b i t s l e G e
0071660 t B i t P o s ( d s ) - G e t L
0071700 m a r g ( d s ) \r i f s o
0071720 E r a s e B i t s ( d s , -
0071740 b i t s ) \r i f n o t \r
0071760 376 001 \0 323 E [ / / e
0072000 r a s i n g p a s t l e f t
0072020 m a r g i n \r R e
0072040 s e t s ( d s ) \r f
0072060 o r i = 0 t o f i r s
0072100 t - 1 d o \r
0072120 i f c s > > C S . b u f > > B
0072140 u f ^ i l s # 2 0 0 t h e
0072160 n P u t s ( d s , c s > > C
0072200 S . b u f > > B u f ^ i ) \r
0072220 ] \r u n l e s s k s >
0072240 > S T . p u t s e q N o o p
0072260 d o \r [ \r l e t
0072300 f i l e P o s = v e c 1 ;
0072320 F i l e P o s ( k s , f i l
0072340 e P o s ) \r D o u b l e I
0072360 n c r e m e n t ( 376 001 \0 R = f i
0072400 l e P o s , - c h a r s ) \r
0072420 S e t F i l e P o s ( k s ,
0072440 f i l e P o s ) \r ] \r ]
0072460 \r \r \r / / - - - - - - - - - - -
0072500 - - - - - - - - - - - - - - - -
*
0072600 \r a n d D e f B r e a k ( c s
0072620 , c h a r ) = c h a r e
0072640 q $ * n % c h a r e q
0072660 $ * s % c h a r e q $ *
0072700 0 3 3 \r / / - - - - - - - - - -
0072720 - - - - - - - - - - - - - - - -
*
0072760 - - - - - - - - - - - - - - 376 001
0073000 \0 G 305 - - - - - - - - - - - - -
0073020 - - - - - - \r \r / / - - - - - -
0073040 - - - - - - - - - - - - - - - -
*
0073140 - - - - - \r a n d D e f E c h
0073160 o ( c s , c h a r ) = n o
0073200 t C u r r e n t P h r a s e (
0073220 c s ) > > P D . P h r a s e T e
0073240 r m i n a t o r ( c s , c h a
0073260 r ) \r / / - - - - - - - - - - -
0073300 - - - - - - - - - - - - - - - -
*
0073400 \r \f \r 376 001 \0 031 335 / / - - - - - -
0073420 - - - - - - - - - - - - - - - -
*
0073520 - - - - - \r a n d D e f E r r
0073540 o r ( c s , e c ) b e \r / /
0073560 - - - - - - - - - - - - - - - -
*
0073660 - - - - - - - - - - - \r [ \r c s
0073700 > > C S . e r r o r C o d e =
0073720 e c \r s w i t c h o n e c
0073740 i n t o \r [ \r c a s
0073760 e e c C m d D e l e t e : \r
0074000 W s s 376 001 \0 330 316 ( c s
0074020 > > C S . d s p S , " X X X
0074040 " ) / / f a l l i n t o
0074060 n e x t c a s e \r c a s
0074100 e e c C m d D e s t r o y : \r
0074120 [ c s > > C S . d
0074140 e s t r o y = t r u e ; B
0074160 a c k u p P h r a s e ( c s ,
0074200 c s > > C S . i P h O u t ) ]
0074220 \r c a s e e c C m d T o
0074240 o L o n g : / / j u s t b
0074260 l i n k w i n d o w a n d
0074300 d o n o t h i n g \r
0074320 [ C m d E r r o r ( c s ) ;
0074340 e n d c a s e ] \r c a
0074360 s e e c K e y A m b i g u o u
0074400 s : \r c a s e e c 376 001 \0
0074420 026 0 B a c k u p A p p e n d : \r
0074440 [ C m d E r r o r
0074460 ( c s ) ; B a c k u p P h r a
0074500 s e ( c s , 0 , e d i t A p
0074520 p e n d ) ] \r c a s e
0074540 e c T o o M a n y P h r a s e s
0074560 : \r c a s e e c E n d O
0074600 f P h r a s e : \r S
0074620 y s E r r ( c s , e c ) \r
0074640 d e f a u l t : / / a l l
0074660 t y p e s o f s y n t a x
0074700 e r r o r s g e t s a m e
0074720 h a n d l i n g \r
0074740 C m d E r r o r ( c s , " ?
0074760 " ) / / f a l l i n t o
0075000 n e x t c a s e \r c a s
0075020 e 376 001 \0 L 237 e c B a c k u p R
0075040 e p l a c e : \r B a
0075060 c k u p P h r a s e ( c s ) \r
0075100 ] \r ] \r \r \r / / - - - - - -
0075120 - - - - - - - - - - - - - - - -
*
0075220 - - - - - \r a n d C m d E r r
0075240 o r ( c s , s t r i n g ; n
0075260 u m a r g s n a ) b e \r / /
0075300 - - - - - - - - - - - - - - - -
*
0075400 - - - - - - - - - - - \r / / D i
0075420 s p l a y s 376 001 \0 235 257 s t r i
0075440 n g i f p r e s e n t , b
0075460 l i n k s d i s p l a y w i
0075500 n d o w , a n d r e s e t s
0075520 k e y b o a r d \r [ \r i f n
0075540 a g r 1 & s t r i n g
0075560 n e 0 t h e n W s s ( c s
0075600 , s t r i n g ) \r I n v e r t
0075620 W i n d o w ( c s > > C S . d s
0075640 p S > > S T . p a r 1 ) \r D i s
0075660 m i s s ( 5 0 ) \r I n v e r t W
0075700 i n d o w ( c s > > C S . d s p
0075720 S > > S T . p a r 1 ) \r R e s e
0075740 t s ( c s > > C S . k e y S ) \r
0075760 ] \r \r \r / / - - - - - - - - - -
0076000 - - - - - - - - - - - - - - - -
0076020 - - - - - - - - - - - - 376 001 \0 e
0076040 177 - - - - - - - - - - - - - - -
0076060 - - - - - - - - - - - - - - - -
0076100 - - - - - - \r a n d I n v e r
0076120 t W i n d o w ( d s ) b e \r /
0076140 / - - - - - - - - - - - - - - -
0076160 - - - - - - - - - - - - - - - -
*
0076240 - - - - - - - - - - - - \r [ \r l
0076260 e t d c b = d s > > D S .
0076300 f d c b \r [ \r d c b
0076320 > > D C B . b a c k g r o u n d
0076340 = n o t d c b > > D C B .
0076360 b a c k g r o u n d \r i f
0076400 d c b e q d s > > D S . l
0076420 d c b t h e n b r e a k \r
0076440 376 \0 # 257 o d c b = d c b
0076460 > > D C B . n e x t \r ]
0076500 r e p e a t \r ] \r 377 \0 \0 I f s S
0076520 c a v L p t . b c p l \0 373 231 p j
0076540 211 \0 \0 376 001 \0 023 C / / I f s S c
0076560 a v L p t . b c p l - - r o
0076600 u t i n e s f o r a c c e s
0076620 s i n g t h e l e a d e r
0076640 p a g e t a b l e \r / / C o
0076660 p y r i g h t X e r o x C o
0076700 r p o r a t i o n 1 9 7 9 ,
0076720 1 9 8 0 , 1 9 8 2 \r / / L a
0076740 s t m o d i f i e d J u l y
0076760 2 9 , 1 9 8 2 3 : 0 6
0077000 P M b y B o g g s \r \r g e t
0077020 " I f s S c a v e n g e r . d
0077040 e c l " \r g e t " S t r e a m
0077060 s . d " \r g e t " D i s k s .
0077100 d " \r g e t " I f s . d e c l
0077120 " \r \r e x t e r n a l \r [ \r / /
0077140 o u t g o i n 376 001 \0 240 275 g p
0077160 r o c e d u r e s \r O p e n L P
0077200 T ; C l o s e L P T ; E n u
0077220 m e r a t e L P T ; F l u s h
0077240 L P T \r G e t L p t L p t e ;
0077260 G e t L p t F a ; G e t L p t
0077300 F s ; G e t L p t H o m e \r R
0077320 e a d L P T E ; W r i t e L P
0077340 T E ; G e t L p t S o r t e d
0077360 ; S e t L p t S o r t e d \r \r
0077400 G e t L p t e T y p e ; G e t
0077420 L p t e F l a g s ; G e t L p
0077440 t e L e n g t h ; G e t L p t
0077460 e D I F R e c \r G e t L p t e I
0077500 f p ; G e t L p t e F a ; G
0077520 e t L p t e I f s N a m e ; G
0077540 e t L p t e T f s N a m e 376 001 \0
0077560 353 u \r \r S e t L p t e T y p e ;
0077600 S e t L p t e F l a g s ; S
0077620 e t L p t e L e n g t h ; S e
0077640 t L p t e D I F R e c \r S e t L
0077660 p t e I f p ; S e t L p t e F
0077700 a ; S e t L p t e I f s N a m
0077720 e ; S e t L p t e T f s N a m
0077740 e \r \r / / i n c o m i n g p
0077760 r o c e d u r e s \r Z e r o ;
0100000 M o v e B l o c k ; S e t B l
0100020 o c k ; D e f a u l t A r g s
0100040 ; C o p y S t r i n g ; E x
0100060 t r a c t S u b s t r i n g \r O
0100100 p e n F i l e ; T r u n c a t
0100120 e D i s k S t r e a m ; D e l
0100140 e t e F i l e ; R e a d L e a
0100160 d e 376 001 \0 315 314 r P a g e \r F i l
0100200 e L e n g t h ; F i l e P o s
0100220 ; S e t F i l e P o s ; J u
0100240 m p T o F a ; G e t C u r r e
0100260 n t F a ; C l e a n u p D i s
0100300 k S t r e a m \r E n d o f s ;
0100320 G e t s ; P u t s ; C l o s
0100340 e s ; R e s e t s ; W r i t
0100360 e B l o c k ; R e a d B l o c
0100400 k \r D o u b l e D i f f e r e n
0100420 c e ; D o u b l e I n c r e m
0100440 e n t ; R e a d C a l e n d a
0100460 r ; P r i n t T i m e \r I F S
0100500 E r r o r ; A l l o c a t e ;
0100520 F r e e ; E n q u e u e ;
0100540 D e q u e u e ; C a l l S w a
0100560 t \r \r / / i 376 001 \0 l 322 n c o m
0100600 i n g s t a t i c s \r s y s Z
0100620 o n e ; d e b u g F l a g ;
0100640 p a s s ; p h a s e ; s c r
0100660 a t c h D i s k \r ] \r \r m a n i
0100700 f e s t \r [ \r e c S e t L P T E
0100720 = 5 0 7 \r e c M a l f o r m
0100740 e d L P T E = 5 0 8 \r d v T
0100760 y p e H o m e = 2 \r ] \r \f \r
0101000 s t r u c t u r e L P T E : \t
0101020 \t / / L e a d e r P a g e
0101040 T a b l e E n t r y \r [ \r t y
0101060 p e b i t 2 \t \t / / d v T
0101100 y p e F i l e , d v T y p e F
0101120 r e e , d v T y p e H o m e \r
0101140 f l a g s b i t 4 \t \t / /
0101160 b i t s d e f i n e d 376 001 \0 247
0101200 ] i n I f s S c a v e n g e
0101220 r . d e c l \r p r i v a t e F l
0101240 a g s b i t 2 = \r [
0101260 \r d i r t y b i t \r
0101300 g o t L o n g e r b i t \r
0101320 ] \r l e n g t h b y t e \t
0101340 \t / / i n w o r d s i n c
0101360 l u d i n g t h i s o n e \r
0101400 i f p w o r d = @ I F P \r
0101420 f a w o r d = @ F A \t \t /
0101440 / o f l a s t b y t e i
0101460 n f i l e \r / / F o l l o w
0101500 i n g t h r e e i t e m s
0101520 a r e o f f s e t s r e l a
0101540 t i v e t o L P T E . t y p
0101560 e . \r / / I f t h e y a r
0101600 e 376 001 \0 + 033 z e r o , t h e
0101620 n n o s p a c e h a s b
0101640 e e n a l l o c a t e d . \r i
0101660 f s N a m e w o r d \r t f s N
0101700 a m e w o r d \r d i f R e c
0101720 w o r d \r ] \r m a n i f e s t \r
0101740 [ \r l e n L P T E H e a d e r
0101760 = s i z e L P T E / 1 6 \r m
0102000 a x L e n L P T E = 1 l s
0102020 h i f t s i z e L P T E . l
0102040 e n g t h \r ] \r \r s t r u c t u
0102060 r e L P T : \t \t / / l p t >
0102100 > S T . p a r 1 p o i n t s
0102120 a t t h i s \r [ \r f a w o r
0102140 d l F A \r l p t e w o r d
0102160 m a x L e n L P T E \r l p t h
0102200 w o r d = 376 001 \0 325 4 \r [
0102220 \r s o r t e d w o r d \t
0102240 \t / / t r u e i f n o t
0102260 w r i t t e n s i n c e l a
0102300 s t s o r t e d \r f s
0102320 w o r d n D i s k s \r h
0102340 o m e w o r d l e n H o m e
0102360 \r ] \r ] \r m a n i f e s t
0102400 \r [ \r l e n L P T = s i z e
0102420 L P T / 1 6 \r l e n L P T H
0102440 = l e n L P T - o f f s e
0102460 t L P T . l p t h / 1 6 \r ] \r
0102500 \f \r / / R o u t i n e s f o
0102520 r d e a l i n g w i t h L
0102540 e a d e r P a g e T a b l e
0102560 f i l e s \r \r / / - - - - - -
0102600 - - - - - - - - - - - 376 001 \0 7 302
0102620 - - - - - - - - - - - - - - - -
*
0102720 - - - - - - - - \r l e t O p e
0102740 n L P T ( n a m e , m a k e E
0102760 m p t y ) = v a l o f \r / /
0103000 - - - - - - - - - - - - - - - -
*
0103120 - - - - - - - - - \r [ \r l e t
0103140 s t = O p e n F i l e ( n a
0103160 m e , 0 , 0 , 0 , 0 ,
0103200 0 , 0 , 0 , s c r a t c h
0103220 376 001 \0 \f 265 D i s k ) \r i f s t
0103240 e q 0 t h e n I F S E r
0103260 r o r ( e c S c r a t c h F i l
0103300 e , n a m e ) \r l e t l p t
0103320 = A l l o c a t e ( s y s Z
0103340 o n e , l e n L P T ) ; Z e
0103360 r o ( l p t , l e n L P T ) \r
0103400 s t > > S T . p a r 1 = l p
0103420 t \r t e s t m a k e E m p t y
0103440 \r i f s o \r [
0103460 \r S e t B l o c k (
0103500 l v l p t > > L P T . f s ,
0103520 - 1 , n D i s k s ) \r
0103540 F l u s h L P T ( s t ) \r
0103560 T r u n c a t e D i s
0103600 k S t r e a m ( s t ) \r
0103620 ] \r 376 001 \0 325 4 i f n o
0103640 t \r [ \r
0103660 l e t l p t e = G e t s (
0103700 s t ) \r i f l p t
0103720 e < < L P T E . t y p e n e
0103740 d v T y p e H o m e t h e n
0103760 I F S E r r o r ( e c M a l f o
0104000 r m e d L P T E ) \r
0104020 R e a d B l o c k ( s t , l v
0104040 l p t > > L P T . l p t h ,
0104060 l e n L P T H ) \r F
0104100 i l e L e n g t h ( s t ) /
0104120 / a p p e n d t o l p t \r
0104140 ] \r G e t C u r r e n
0104160 t F a ( s t , l v l p t > >
0104200 L P T . f a ) \r r e s u l t i s
0104220 s t \r ] \r \r / / - 376 001 \0 242 k -
0104240 - - - - - - - - - - - - - - - -
*
0104360 - - - - - - - \r a n d C l o s
0104400 e L P T ( s t , d e l e t e )
0104420 = v a l o f \r / / - - - - -
0104440 - - - - - - - - - - - - - - - -
*
0104560 - - - - \r [ \r i f d e b u g F
0104600 l a g t h e n d e l e t e
0104620 = f a l s e \r u n l e s s 376
0104640 001 \0 / 332 d e l e t e d o F l
0104660 u s h L P T ( s t ) \r F r e e (
0104700 s y s Z o n e , s t > > S T .
0104720 p a r 1 ) \r l e t l d = n
0104740 i l \r i f d e l e t e t h e
0104760 n \r [ \r l d = A
0105000 l l o c a t e ( s y s Z o n e ,
0105020 1 l s h i f t s c r a t c
0105040 h D i s k > > D S K . l n P a g
0105060 e S i z e ) \r R e a d L e
0105100 a d e r P a g e ( s t , l d )
0105120 \r ] \r C l o s e s ( s t )
0105140 \r i f d e l e t e t h e n \r
0105160 [ \r D e l e t e F i
0105200 l e ( l v l d > > L D . n a m
0105220 e , 0 , 0 , 0 , 0 , s
0105240 c r a t 376 001 \0 g ` c h D i s k )
0105260 \r F r e e ( s y s Z o n e
0105300 , l d ) \r ] \r r e s u l
0105320 t i s 0 \r ] \r \r / / - - - - -
0105340 - - - - - - - - - - - - - - - -
*
0105460 - - - - \r a n d F l u s h L P
0105500 T ( s t ) b e \r / / - - - - -
0105520 - - - - - - - - - - - - - - - -
*
0105640 - - - - \r [ \r R e 376 001 \0 @ 227 s e
0105660 t s ( s t ) \r l e t l p t e
0105700 = 0 \r l p t e < < L P T E . t
0105720 y p e = d v T y p e H o m e
0105740 \r l p t e < < L P T E . l e n g
0105760 t h = 1 + l e n L P T H \r P
0106000 u t s ( s t , l p t e ) \r W r
0106020 i t e B l o c k ( s t , l v
0106040 s t > > S T . p a r 1 > > L P T
0106060 . l p t h , l e n L P T H ) \r
0106100 C l e a n u p D i s k S t r e a
0106120 m ( s t ) \r ] \r \f \r / / - - - -
0106140 - - - - - - - - - - - - - - - -
*
0106240 - - - - - - - - - - - - - - 376 001
0106260 \0 214 335 - - - - - - - \r a n d R
0106300 e a d L P T E ( s t , l p t e
0106320 ; n u m a r g s n a ) =
0106340 v a l o f \r / / - - - - - - - -
0106360 - - - - - - - - - - - - - - - -
*
0106500 - \r / / R e a d s t h e n
0106520 e x t l p t e f r o m l p
0106540 t \r / / R e t u r n s p o
0106560 i n t e r t o l p t e o r
0106600 z e r o i f E O F e n c
0106620 o u n t e r e d . \r [ \r i f E
0106640 n d o f s ( s t ) r e s u l t
0106660 i s 376 001 \0 353 d 0 \r i f n a
0106700 l s 2 t h e n l p t e =
0106720 l v s t > > S T . p a r 1 >
0106740 > L P T . l p t e \r l p t e ! 0
0106760 = G e t s ( s t ) \r R e a d
0107000 B l o c k ( s t , l p t e + 1
0107020 , l p t e > > L P T E . l e n
0107040 g t h - 1 ) \r l p t e > > L P T
0107060 E . p r i v a t e F l a g s =
0107100 0 / / c l e a r d i r t
0107120 y a n d g o t L o n g e r
0107140 b i t s \r r e s u l t i s l p
0107160 t e \r ] \r \r / / - - - - - - - -
0107200 - - - - - - - - - - - - - - - -
*
0107260 - - - - - - - - 376 001 \0 < R - - -
0107300 - - - - - - - - - - - - - - - -
0107320 - - - - - - \r a n d W r i t e
0107340 L P T E ( s t , l p t e ; n
0107360 u m a r g s n a ) b e \r / /
0107400 - - - - - - - - - - - - - - - -
*
0107520 - - - - - - - - - \r / / W r i
0107540 t e a n l p t e a t t h
0107560 e c u r r e n t s t r e a m
0107600 p o s i t i o n \r / / B y
0107620 d e f a u l t , t h e l p t
0107640 e c o m e s f r o m t h e
0107660 l p t \r [ \r i f n a 376 001 \0
0107700 332 256 l s 2 t h e n l p t e
0107720 = l v s t > > S T . p a r
0107740 1 > > L P T . l p t e \r i f l
0107760 p t e > > L P T E . l e n g t h
0110000 e q 0 t h e n C a l l S
0110020 w a t ( " L P T E w i t h 0
0110040 l e n g t h " ) \r W r i t e B
0110060 l o c k ( s t , l p t e , l
0110100 p t e > > L P T E . l e n g t h
0110120 ) \r s t > > S T . p a r 1 > > L
0110140 P T . s o r t e d = f a l s
0110160 e \r ] \r \r / / - - - - - - - - -
0110200 - - - - - - - - - - - - - - - -
*
0110300 - - 376 001 \0 350 330 - - - - - - - - -
0110320 - - - - - \r a n d G e t L p t
0110340 L p t e ( s t , i n i t I t ;
0110360 n u m a r g s n a ) = v
0110400 a l o f \r / / - - - - - - - - -
0110420 - - - - - - - - - - - - - - - -
*
0110540 \r / / G e t a p o i n t e
0110560 r t o t h e l p t e i n
0110600 ' l p t ' . \r / / G e t i
0110620 t r e a d y f o r f i l l
0110640 i n g i f ' i n i t I t '
0110660 i s t r u e . \r [ \r l e t l
0110700 p t e = l 376 001 \0 267 | v s t
0110720 > > S T . p a r 1 > > L P T . l
0110740 p t e \r i f n a g r 1 &
0110760 i n i t I t t h e n \r
0111000 [ \r Z e r o ( l p t e ,
0111020 m a x L e n L P T E ) \r S
0111040 e t L p t e L e n g t h ( l p t
0111060 e , l e n L P T E H e a d e r
0111100 ) \r S e t L p t e T y p e
0111120 ( l p t e , d v T y p e F i l
0111140 e ) \r ] \r r e s u l t i s
0111160 l p t e \r ] \r \r / / - - - - -
0111200 - - - - - - - - - - - - - - - -
*
0111300 - - - - - - - - - - - - 376 001 \0 302
0111320 245 - - - - - - - - \r a n d G e
0111340 t L p t F s ( s t ) = l v
0111360 s t > > S T . p a r 1 > > L P T
0111400 . f s \r / / - - - - - - - - - -
0111420 - - - - - - - - - - - - - - - -
*
0111520 - - - - - - - - - - - - - - - \r
0111540 \r / / - - - - - - - - - - - - -
0111560 - - - - - - - - - - - - - - - -
*
0111660 - - - - - - - - - - - - \r a n d
0111700 G e t L p t F a ( s t ) =
0111720 l 376 001 \0 S 020 v s t > > S T . p
0111740 a r 1 > > L P T . f a \r / / - -
0111760 - - - - - - - - - - - - - - - -
*
0112100 - - - - - - - \r \r / / - - - - -
0112120 - - - - - - - - - - - - - - - -
*
0112240 - - - - \r a n d G e t L p t H
0112260 o m e ( s t ) = l v s t >
0112300 > S T . p a r 1 > > L P T . h o
0112320 m e \r / / - 376 001 \0 Y 323 - - - - -
0112340 - - - - - - - - - - - - - - - -
*
0112460 - - - \r \r / / - - - - - - - - -
0112500 - - - - - - - - - - - - - - - -
*
0112620 \r a n d G e t L p t S o r t e
0112640 d ( s t ) = s t > > S T . p
0112660 a r 1 > > L P T . s o r t e d \r
0112700 / / - - - - - - - - - - - - - -
0112720 - - - - - - - - - - - 376 001 \0 346 021
0112740 - - - - - - - - - - - - - - - -
*
0113040 \r \r / / - - - - - - - - - - - -
0113060 - - - - - - - - - - - - - - - -
*
0113160 - - - - - - - - - - - - - \r a n
0113200 d S e t L p t S o r t e d ( s
0113220 t , v a l ) b e s t > > S
0113240 T . p a r 1 > > L P T . s o r t
0113260 e d = v a l \r / / - - - - -
0113300 - - - - - - - - - - - - - - - -
*
0113340 376 001 \0 006 356 - - - - - - - - - - -
0113360 - - - - - - - - - - - - - - - -
*
0113420 - - - - - - - - - \r \f \r / / - -
0113440 - - - - - - - - - - - - - - - -
*
0113560 - - - - - - - \r a n d E n u m
0113600 e r a t e L P T ( s t , P r o
0113620 c , a r g ) b e \r / / - - -
0113640 - - - - - - - - - - - - - - - -
*
0113740 - - - - - 376 001 \0 ` 323 - - - - - -
0113760 - - - - - - - - - - - \r / / E
0114000 n u m e r a t e s t h e L P
0114020 T , c a l l i n g P r o c (
0114040 l p t e , a r g ) f o r e
0114060 a c h l p t e . \r / / T h e
0114100 e n u m e r a t i o n b e g
0114120 i n s a t t h e f i r s t
0114140 r e c o r d f o r t h e
0114160 c u r r e n t p a c k . \r / /
0114200 I f P r o c d i r t i e s
0114220 t h e l p t e , i t i s
0114240 w r i t t e n b a c k o n
0114260 t o t h e f i l e . \r / /
0114300 I f t h e l e n g t h c h
0114320 a n g e d s o t h a t i t
0114340 c a n ' t b e 376 001 \0 003 255 w
0114360 r i t t e n b a c k i n p
0114400 l a c e , \r / / i t i s
0114420 w r i t t e n o n a t e m
0114440 p o r a r y f i l e , a n d
0114460 a p p e n d e d t o t h e
0114500 r e a l f i l e \r / / a
0114520 f t e r t h e e n u m e r a
0114540 t i o n i s c o m p l e t e
0114560 . \r [ \r l e t o v f l L p t
0114600 = 0 \r J u m p T o F a ( s t ,
0114620 l v s t > > S T . p a r 1 >
0114640 > L P T . f a ) \r l e t s t a
0114660 r t T i m e = v e c 1 ;
0114700 R e a d C a l e n d a r ( s t a
0114720 r t T i m e ) \r \r [ \r
0114740 l e t l p t e = R e a 376
0114760 001 \0 C " d L P T E ( s t ) \r
0115000 i f l p t e e q 0 b r
0115020 e a k / / e n d o f f i
0115040 l e \r l e t l e n g t h
0115060 = l p t e > > L P T E . l e
0115100 n g t h \r P r o c ( s t ,
0115120 l p t e , a r g ) \r i
0115140 f l p t e > > L P T E . d i r
0115160 t y t h e n \r [ \r
0115200 i f l p t e > > L
0115220 P T E . g o t L o n g e r t h
0115240 e n \r [ \r
0115260 i f o v f l L p
0115300 t e q 0 t h e n \r
0115320 o v f l L p t
0115340 = O p e n L P T ( " I f s S c
0115360 a v e n 376 001 \0 b x g e r . o v f
0115400 l L p t " , t r u e ) \r
0115420 W r i t e B l o c k
0115440 ( o v f l L p t , l p t e ,
0115460 l p t e > > L P T E . l e n g t
0115500 h ) \r l p t e
0115520 > > L P T E . t y p e = d v
0115540 T y p e F r e e \r
0115560 l p t e > > L P T E . l e n
0115600 g t h = l e n g t h \r
0115620 ] \r l e
0115640 t f i l e P o s = v e c
0115660 1 ; F i l e P o s ( s t , f
0115700 i l e P o s ) \r D o
0115720 u b l e I n c r e m e n t ( f i
0115740 l e P o s , - ( l e n g t h
0115760 l s h i f t 1 ) 376 001 \0 302 327 ) \r
0116000 S e t F i l e P o s
0116020 ( s t , f i l e P o s ) \r
0116040 W r i t e B l o c k ( s
0116060 t , l p t e , l e n g t h )
0116100 \r s t > > S T . p a
0116120 r 1 > > L P T . s o r t e d =
0116140 f a l s e \r ] \r
0116160 ] r e p e a t \r \r i f o
0116200 v f l L p t n e 0 t h e n
0116220 \r [ \r R e s e t s (
0116240 o v f l L p t ) \r [
0116260 \r l e t l p t e
0116300 = R e a d L P T E ( o v f l L
0116320 p t ) \r i f l p t
0116340 e e q 0 b r e a k \r
0116360 i f l p t e > > L P 376 001
0116400 \0 k 255 T E . t y p e e q d v
0116420 T y p e F i l e t h e n \r
0116440 W r i t e B l o c
0116460 k ( s t , l p t e , l p t e
0116500 > > L P T E . l e n g t h ) \r
0116520 ] r e p e a t \r
0116540 C l o s e L P T ( o v f l L p
0116560 t , t r u e ) \r s t > >
0116600 S T . p a r 1 > > L P T . s o r
0116620 t e d = f a l s e \r ]
0116640 \r \r P r i n t T i m e ( s t a r
0116660 t T i m e ) \r ] \r \f \r / / t h e
0116700 s e r o u t i n e s g e t
0116720 f i e l d s o f a n l p t
0116740 e \r \r / / - - - - - - - - - - -
0116760 - - - - - - - - - - - - - - - -
0117000 - - - 376 001 \0 = \r - - - - - - - -
0117020 - - - - - - - - - - - - - - - -
*
0117100 - - - \r a n d G e t L p t e T
0117120 y p e ( l p t e ) = l p t e
0117140 > > L P T E . t y p e \r / / - -
0117160 - - - - - - - - - - - - - - - -
*
0117300 - - - - - - - \r \r / / - - - - -
0117320 - - - - - - - - - - - - - - - -
*
0117400 - - - - - - - - 376 001 \0 214 332 - - -
0117420 - - - - - - - - - - - - - - - -
0117440 - - - - - - - - - \r a n d G e
0117460 t L p t e F l a g s ( l p t e )
0117500 = l p t e > > L P T E . f l
0117520 a g s \r / / - - - - - - - - - -
0117540 - - - - - - - - - - - - - - - -
*
0117640 - - - - - - - - - - - - - - - \r
0117660 \r / / - - - - - - - - - - - - -
0117700 - - - - - - - - - - - - - - - -
*
0120000 - - - - - - - - - - - - \r 376 001 \0
0120020 g \v a n d G e t L p t e L e n
0120040 g t h ( l p t e ) = l p t e
0120060 > > L P T E . l e n g t h \r / /
0120100 - - - - - - - - - - - - - - - -
*
0120220 - - - - - - - - - \r \r / / - - -
0120240 - - - - - - - - - - - - - - - -
*
0120360 - - - - - - \r a n d G e t L p
0120400 t e I f p ( l p t e ) = l v
0120420 l 376 001 \0 I = p t e > > L P T E
0120440 . i f p \r / / - - - - - - - - -
0120460 - - - - - - - - - - - - - - - -
*
0120600 \r \r / / - - - - - - - - - - - -
0120620 - - - - - - - - - - - - - - - -
*
0120720 - - - - - - - - - - - - - \r a n
0120740 d G e t L p t e F a ( l p t e
0120760 ) = l v l p t e > > L P T
0121000 E . f a \r / / - - - - - - - - -
0121020 - - - - - - - 376 001 \0 P 367 - - - -
0121040 - - - - - - - - - - - - - - - -
*
0121140 - - - - - \r \r / / - - - - - - -
0121160 - - - - - - - - - - - - - - - -
*
0121300 - - \r a n d G e t L p t e I f
0121320 s N a m e ( l p t e ) = v a
0121340 l o f \r / / - - - - - - - - - -
0121360 - - - - - - - - - - - - - - - -
*
0121420 - - - - - - - - - - - - 376 001 \0 #
0121440 301 - - - - - - - - - - - - - - -
0121460 - - - - - - - - - - - - - - - -
0121500 - - - - \r [ \r l e t i f s N a
0121520 m e = l p t e > > L P T E .
0121540 i f s N a m e \r r e s u l t i s
0121560 l p t e + ( i f s N a m e
0121600 ? i f s N a m e , o f f s e
0121620 t L P T E . i f s N a m e / 1
0121640 6 ) \r ] \r \r / / - - - - - - - -
0121660 - - - - - - - - - - - - - - - -
*
0122000 - \r a n d G e t L p t e T f s
0122020 N a m e ( l p t e ) = v a l
0122040 o 376 001 \0 330 006 f \r / / - - - - - -
0122060 - - - - - - - - - - - - - - - -
*
0122200 - - - \r [ \r l e t t f s N a m
0122220 e = l p t e > > L P T E . t
0122240 f s N a m e \r r e s u l t i s
0122260 l p t e + ( t f s N a m e ?
0122300 t f s N a m e , o f f s e t
0122320 L P T E . t f s N a m e / 1 6
0122340 ) \r ] \r \r / / - - - - - - - - -
0122360 - - - - - - - - - - - - - - - -
*
0122440 - - - - - - 376 001 \0 267 \b - - - - -
0122460 - - - - - - - - - - - - - - - -
0122500 - - - - - \r a n d G e t L p t
0122520 e D I F R e c ( l p t e ) =
0122540 v a l o f \r / / - - - - - - - -
0122560 - - - - - - - - - - - - - - - -
*
0122700 - \r [ \r l e t d i f R e c =
0122720 l p t e > > L P T E . d i f R
0122740 e c \r r e s u l t i s d i f R
0122760 e c n e 0 ? l p t e + d i
0123000 f R e c , 0 \r ] \r \f \r / / T
0123020 h e s e r o u t i n e s s e
0123040 t f i e l d s o f 376 001 \0 C 320
0123060 a n l p t e \r \r / / - - - -
0123100 - - - - - - - - - - - - - - - -
*
0123220 - - - - - \r a n d S e t L p t
0123240 e T y p e ( l p t e , t y p e
0123260 ) b e \r / / - - - - - - - - -
0123300 - - - - - - - - - - - - - - - -
*
0123420 \r [ \r l p t e > > L P T E . t y
0123440 p e = t y p e \r l p t e > >
0123460 376 001 \0 \n 337 L P T E . d i r t y
0123500 = t r u e \r ] \r \r / / - - - -
0123520 - - - - - - - - - - - - - - - -
*
0123640 - - - - - \r a n d S e t L p t
0123660 e F l a g s ( l p t e , f l a
0123700 g s ) b e \r / / - - - - - - -
0123720 - - - - - - - - - - - - - - - -
*
0124040 - - \r [ \r l p t e > > L P T E .
0124060 f l a g s 376 001 \0 \n 343 = f l a
0124100 g s \r l p t e > > L P T E . d i
0124120 r t y = t r u e \r ] \r \r / /
0124140 - - - - - - - - - - - - - - - -
*
0124260 - - - - - - - - - \r a n d S e
0124300 t L p t e L e n g t h ( l p t e
0124320 , l e n g t h ) b e \r / / -
0124340 - - - - - - - - - - - - - - - -
*
0124460 - - - - - - - - \r [ 376 001 \0 266 363 \r
0124500 l p t e > > L P T E . l e n g t
0124520 h = l e n g t h \r l p t e >
0124540 > L P T E . d i r t y = t r
0124560 u e \r ] \r \r / / - - - - - - - -
0124600 - - - - - - - - - - - - - - - -
*
0124720 - \r a n d S e t L p t e I f p
0124740 ( l p t e , i f p ) b e \r /
0124760 / - - - - - - - - - - - - - - -
0125000 - - - - - - - - - - - - - - - -
*
0125060 - - - - - - - - - - - - - - - 376
0125100 001 \0 366 { - - - - - - - - - - - \r
0125120 [ \r M o v e B l o c k ( l v l
0125140 p t e > > L P T E . i f p , i
0125160 f p , l F P ) \r l p t e > > L
0125200 P T E . d i r t y = t r u e
0125220 \r ] \r \r / / - - - - - - - - - -
0125240 - - - - - - - - - - - - - - - -
*
0125340 - - - - - - - - - - - - - - - \r
0125360 a n d S e t L p t e F a ( l p
0125400 t e , f a ) b e \r / / - - -
0125420 - - - - - - - - - - - - - - - -
*
0125500 - - - - 376 001 \0 253 8 - - - - - - -
0125520 - - - - - - - - - - - - - - - -
0125540 - - - - - - - - - - - \r [ \r M o
0125560 v e B l o c k ( l v l p t e >
0125600 > L P T E . f a , f a , l F
0125620 A ) \r l p t e > > L P T E . d i
0125640 r t y = t r u e \r ] \r \f \r /
0125660 / - - - - - - - - - - - - - - -
0125700 - - - - - - - - - - - - - - - -
*
0126000 - - - - - - - - - - \r a n d S
0126020 e t L p t e I f s N a m e ( l p
0126040 t e , i f s N a m e ) b e \r
0126060 / / - - - - - - - - - - - - - -
0126100 - - - - - - - - - 376 001 \0 C ` - -
0126120 - - - - - - - - - - - - - - - -
*
0126220 \r [ \r i f ( l p t e > > L P T
0126240 E . i f s N a m e e q 0 ) ?
0126260 t r u e , ( i f s N a m e >
0126300 > S t r i n g . l e n g t h g
0126320 r \r ( l p t e + l p t e > > L
0126340 P T E . i f s N a m e ) > > S t
0126360 r i n g . l e n g t h ) t h e
0126400 n \r [ \r l p t e > >
0126420 L P T E . i f s N a m e = l
0126440 p t e > > L P T E . l e n g t h
0126460 \r l p t e > > L P T E . l
0126500 e n g t h = l p t e > > 376 001
0126520 \0 317 Z L P T E . l e n g t h +
0126540 i f s N a m e > > S t r i n g
0126560 . l e n g t h r s h i f t 1
0126600 + 1 \r i f l p t e > >
0126620 L P T E . l e n g t h g r m
0126640 a x L e n L P T E t h e n I
0126660 F S E r r o r ( e c S e t L P T
0126700 E ) \r l p t e > > L P T E
0126720 . g o t L o n g e r = t r u
0126740 e \r ] \r C o p y S t r i n
0126760 g ( l p t e + l p t e > > L P T
0127000 E . i f s N a m e , i f s N a
0127020 m e ) \r l p t e > > L P T E . d
0127040 i r t y = t r u e \r ] \r \r /
0127060 / - - - - - - - - - - - - - - -
0127100 - - - - - - - - - - - - - - - -
0127120 - - - 376 001 \0 037 365 - - - - - - - -
0127140 - - - - - - - - - - - - - - - -
*
0127200 - - - - - - - - - - - - - - - \r
0127220 a n d S e t L p t e T f s N a
0127240 m e ( l p t e , t f s N a m e
0127260 ) b e \r / / - - - - - - - - -
0127300 - - - - - - - - - - - - - - - -
*
0127420 \r [ \r i f ( l p t e > > L P T
0127440 E . t f s N a m e e q 0 ) ?
0127460 t r u e , ( t f s N a m e >
0127500 > S t r i n g . l e n g t h g
0127520 r \r ( l p t e 376 001 \0 334 340 + l p
0127540 t e > > L P T E . t f s N a m e
0127560 ) > > S t r i n g . l e n g t h
0127600 ) t h e n \r [ \r l
0127620 p t e > > L P T E . t f s N a m
0127640 e = l p t e > > L P T E . l
0127660 e n g t h \r l p t e > > L
0127700 P T E . l e n g t h = l p t
0127720 e > > L P T E . l e n g t h +
0127740 t f s N a m e > > S t r i n g
0127760 . l e n g t h r s h i f t 1
0130000 + 1 \r i f l p t e > >
0130020 L P T E . l e n g t h g r m
0130040 a x L e n L P T E t h e n I
0130060 F S E r r o r ( e c S e t L P T
0130100 E ) \r l p t e > > L P T E
0130120 . g o t L o n g e r = 376 001 \0
0130140 366 370 t r u e \r ] \r C o p y
0130160 S t r i n g ( l p t e + l p t e
0130200 > > L P T E . t f s N a m e ,
0130220 t f s N a m e ) \r l p t e > > L
0130240 P T E . d i r t y = t r u e
0130260 \r ] \r \r / / - - - - - - - - - -
0130300 - - - - - - - - - - - - - - - -
*
0130400 - - - - - - - - - - - - - - - \r
0130420 a n d S e t L p t e D I F R e
0130440 c ( l p t e , d i f R e c )
0130460 b e \r / / - - - - - - - - - - -
0130500 - - - - - - - - - - - - - - - -
*
0130540 - - 376 001 \0 200 c - - - - - - - - -
0130560 - - - - - - - - - - - - - - - -
*
0130620 - - - \r [ \r i f l p t e > > L
0130640 P T E . d i f R e c e q 0
0130660 t h e n \r [ \r l p t
0130700 e > > L P T E . d i f R e c =
0130720 l p t e > > L P T E . l e n g
0130740 t h \r l p t e > > L P T E
0130760 . l e n g t h = l p t e > >
0131000 L P T E . l e n g t h + l e
0131020 n D I F R e c \r i f l p
0131040 t e > > L P T E . l e n g t h
0131060 g r m a x L e n L P T E t h
0131100 e n I F S E r r o r ( e c S e
0131120 t L P T E ) \r l p t e > >
0131140 L P T E . g o 376 \0 c 322 250 t L o n
0131160 g e r = t r u e \r ] \r
0131200 M o v e B l o c k ( l p t e + l
0131220 p t e > > L P T E . d i f R e c
0131240 , d i f R e c , l e n D I F
0131260 R e c ) \r l p t e > > L P T E .
0131300 d i r t y = t r u e \r ] \r 377
0131320 \0 \0 I f s S c a v K b d . b c p
0131340 l \0 373 224 223 c 025 \0 \0 376 001 \0 242 d / /
0131360 I f s S c a v K b d . b c p l
0131400 - v a r i o u s k e y b o
0131420 a r d i n t e r a c t i o n
0131440 p r o c e d u r e s \r / / C o
0131460 p y r i g h t X e r o x C o
0131500 r p o r a t i o n 1 9 7 9 \r /
0131520 / L a s t m o d i f i e d
0131540 D e c e m b e r 2 7 , 1 9 7
0131560 9 1 : 4 4 P M b y B o
0131600 g g s \r \r g e t " C m d S c a
0131620 n . d e c l " \r g e t " D i s
0131640 k s . d " \r \r e x t e r n a l \r
0131660 [ \r / / o u t g o i n g p r
0131700 o c e d u r e s \r O p e n D i s
0131720 k ; S c a v C o n f i r m \r \r
0131740 / / i n c o m i n g p r 376 001
0131760 \0 244 ? o c e d u r e s \r T F S I
0132000 n i t ; B F S I n i t \r D e f
0132020 a u l t A r g s ; D i s m i s
0132040 s \r R e s e t s ; E r r o r s
0132060 ; W s ; W s s ; G e t s ;
0132100 P u t s ; C l o s e s \r C r
0132120 e a t e K e y w o r d T a b l e
0132140 ; D e s t r o y K e y w o r d
0132160 T a b l e ; I n s e r t K e y
0132200 w o r d \r I n i t C m d ; E n
0132220 a b l e C a t c h ; E n d C a
0132240 t c h ; T e r m i n a t i n g
0132260 C h a r \r B e g i n D e f a u l
0132300 t P h r a s e ; E n d D e f a
0132320 u l t P h r a s e \r G e t K e y
0132340 w o r d ; G e t N u m b e r ;
0132360 I n 376 001 \0 224 366 v e r t W i n d
0132400 o w \r \r / / i n c o m i n g
0132420 s t a t i c s \r s y s Z o n e ;
0132440 s y s D i s k ; k e y s ;
0132460 d s p ; t f s D D M g r ; b
0132500 f s D D M g r \r ] \r \r / / - - -
0132520 - - - - - - - - - - - - - - - -
*
0132620 - - - - - - - - - \r l e t O p
0132640 e n D i s k ( s t r i n g , a
0132660 l l o c , f r e s h , d i a
0132700 b l o ; n u m a r g s n a )
0132720 = v a l o f \r / / - - - - -
0132740 - - - - - - - - - - - - - - - -
0132760 - - - - - - - - 376 001 \0 e Z - - -
0133000 - - - - - - - - - - - - - - - -
*
0133040 - - - - - - - - - - - - \r [ \r D
0133060 e f a u l t A r g s ( l v n a
0133100 , 1 , t r u e , f a l s e
0133120 , f a l s e ) \r l e t c s
0133140 = I n i t C m d ( 2 5 6 , 5
0133160 ) ; i f c s e q 0 r e
0133200 s u l t i s 0 \r W s s ( c s ,
0133220 s t r i n g ) \r l e t d K T
0133240 = n i l \r i f E n a b l e
0133260 C a t c h ( c s ) t h e n [
0133300 D e s t r o y K e y w o r d T
0133320 a b l e ( d K T ) ; E n d C a
0133340 t c h ( c s ) ] \r d K T =
0133360 C r e a t e K e y w o r d 376 001 \0
0133400 035 ' T a b l e ( 2 , 1 ) \r i f
0133420 d i a b l o t h e n I n s
0133440 e r t K e y w o r d ( d K T ,
0133460 " D P " ) ! 0 = - 1 \r I n s
0133500 e r t K e y w o r d ( d K T ,
0133520 " T P " ) ! 0 = 1 \r l e t
0133540 t r i d e n t = G e t K e y
0133560 w o r d ( c s , d K T , f a
0133600 l s e , P h r a s e T e r m i
0133620 n a t o r ) ! 0 g r 0 \r l e
0133640 t t e r m C h a r = T e r
0133660 m i n a t i n g C h a r ( c s )
0133700 \r / / t h e r e m u s t b
0133720 e a b e t t e r w a y t
0133740 o d o t h i s . . . \r B e g
0133760 i n D e f a u l t P h r a s e (
0134000 c s 376 001 \0 210 033 ) \r P u t s ( c s
0134020 , t e r m C h a r ) \r E n d D
0134040 e f a u l t P h r a s e ( c s )
0134060 \r c s > > C S . e d i t C o n t
0134100 r o l = e d i t A p p e n d
0134120 \r l e t d r i v e N u m b e r
0134140 = G e t N u m b e r ( c s ,
0134160 8 ) \r l e t d i s k = n
0134200 i l \r t e s t t r i d e n t \r
0134220 i f s o d i s k = T
0134240 F S I n i t ( s y s Z o n e ,
0134260 a l l o c , d r i v e N u m b
0134300 e r , t f s D D M g r , f r
0134320 e s h ) \r i f n o t t e
0134340 s t d r i v e N u m b e r e
0134360 q s y s D i s k > > D S K . d
0134400 r i v e N u m 376 001 \0 024 341 b e r \r
0134420 i f s o d i s k
0134440 = s y s D i s k \r
0134460 i f n o t d i s k = B F S
0134500 I n i t ( s y s Z o n e , t r
0134520 u e , d r i v e N u m b e r ,
0134540 b f s D D M g r ) \r i f d i
0134560 s k e q 0 t h e n E r r
0134600 o r s ( c s , 0 ) \r D e s t r
0134620 o y K e y w o r d T a b l e ( d
0134640 K T ) \r C l o s e s ( c s ) \r r
0134660 e s u l t i s d i s k \r ] \r \r
0134700 / / - - - - - - - - - - - - - -
0134720 - - - - - - - - - - - - - - - -
*
0135000 - - - - - - - - - - - - 376 001 \0 327
0135020 , - - \r a n d P h r a s e T e
0135040 r m i n a t o r ( c s , c h a
0135060 r ) = \r / / - - - - - - - - -
0135100 - - - - - - - - - - - - - - - -
*
0135200 - - - \r c h a r l s $
0135220 A % ( c h a r g r $ Z
0135240 & c h a r l s $ a ) %
0135260 c h a r g r $ z \r \f \r / / -
0135300 - - - - - - - - - - - - - - - -
*
0135400 - - - - - - - - - - - \r a n d
0135420 S 376 001 \0 354 254 c a v C o n f i r m
0135440 ( s t r i n g ; n u m a r g s
0135460 n a ) = v a l o f \r / / -
0135500 - - - - - - - - - - - - - - - -
*
0135600 - - - - - - - - - - - \r [ \r i f
0135620 n a g r 0 t h e n W s
0135640 ( s t r i n g ) \r W s ( " [ C
0135660 o n f i r m ] " ) \r s w i t c
0135700 h o n G e t s ( k e y s ) i
0135720 n t o \r [ \r c a s e
0135740 $ Y : c a s e $ y : c a
0135760 s e $ * N : \r [
0136000 W s ( " Y e s . " ) ; r e s u
0136020 l t i s t 376 001 \0 H 363 r u e ]
0136040 \r c a s e $ N : c a s
0136060 e $ n : c a s e $ * 1 7 7
0136100 : \r [ W s ( " N o
0136120 . " ) ; r e s u l t i s f a
0136140 l s e ] \r c a s e $ ?
0136160 : \r [ W s ( " Y e
0136200 s = Y | y | < c r > , N o
0136220 = N | n | < d e l > " ) ;
0136240 e n d c a s e ] \r d e f
0136260 a u l t : \r [ \r
0136300 I n v e r t W i n d o w
0136320 ( d s p > > S T . p a r 1 ) \r
0136340 D i s m i s s ( 1 0 0
0136360 ) \r I n v e r t W i
0136400 n d o w ( d s p > > S T . p a r
0136420 1 ) \r R e 376 \0 ! 2 276
0136440 s e t s ( k e y s ) \r
0136460 ] \r ] r e p e a t \r ]
0136500 \r 377 \0 \0 I f s S c a v P r i n t
0136520 . b c p l \0 373 224 223 S 260 \0 \0 376 001 \0
0136540 q W / / I f s S c a v P r i n
0136560 t . b c p l \r / / C o p y r i
0136600 g h t X e r o x C o r p o r
0136620 a t i o n 1 9 7 9 \r / / L a
0136640 s t m o d i f i e d D e c e
0136660 m b e r 2 8 , 1 9 7 9 3
0136700 : 5 9 A M b y B o g g s \r
0136720 \r g e t " I f s S c a v e n g
0136740 e r . d e c l " \r g e t " A l
0136760 t o F i l e S y s . d " \r g e t
0137000 " D i s k s . d " \r g e t "
0137020 T f s . d " \r \r e x t e r n a l
0137040 \r [ \r / / o u t g o i n g p
0137060 r o c e d u r e s \r P r i n t T
0137100 i m e ; P r i n t P L M E \r P
0137120 r i n t D i s k E r r o r ; P
0137140 r i 376 001 \0 = 027 n t R e a l D A \r
0137160 \r / / i n c o m i n g p r o
0137200 c e d u r e s \r P u t T e m p l
0137220 a t e ; W s \r R e a d C a l e
0137240 n d a r ; D o u b l e D i f f
0137260 e r e n c e \r \r / / i n c o m
0137300 i n g s t a t i c s \r d s p ;
0137320 p a s s ; p h a s e ; p l
0137340 m e \r ] \r \r / / - - - - - - - -
0137360 - - - - - - - - - - - - - - - -
*
0137460 - - - - \r l e t P r i n t T i
0137500 m e ( s t a r t T i m e ) b e
0137520 \r / / - - - - - - - - - - - - -
0137540 - - - - - - - 376 001 \0 2 003 - - - -
0137560 - - - - - - - - - - - - - - - -
*
0137640 - - - - \r [ \r l e t s t o p T
0137660 i m e = v e c 1 ; R e a
0137700 d C a l e n d a r ( s t o p T i
0137720 m e ) \r l e t s e c o n d s
0137740 = D o u b l e D i f f e r e n
0137760 c e ( s t o p T i m e , s t a
0140000 r t T i m e ) \r i f p a s s
0140020 n e 0 t h e n P u t T e m
0140040 p l a t e ( d s p , " * N [ $
0140060 D - $ D ] " , p a s s , p
0140100 h a s e ) \r P u t T e m p l a t
0140120 e ( d s p , " T i m e = $
0140140 D : $ 2 F 0 D " , s e 376 001 \0 017
0140160 254 c o n d s / 6 0 , s e c o n
0140200 d s r e m 6 0 ) \r ] \r \r / /
0140220 - - - - - - - - - - - - - - - -
*
0140320 - - - - - - - - - - - - \r a n d
0140340 P r i n t P L M E ( v d a )
0140360 b e \r / / - - - - - - - - - - -
0140400 - - - - - - - - - - - - - - - -
*
0140500 - \r [ \r P u t T e m p l a t e (
0140520 d s p , " * N [ $ D - $ D ] *
0140540 T F I D $ E U O ; $ U O , p
0140560 a 376 001 \0 360 331 g e n u m b e r
0140600 $ U O , n u m c h a r s $
0140620 U O " , \r p a s s , p h a s
0140640 e , l v p l m e > > P L M E
0140660 . s n 1 , p l m e > > P L M E
0140700 . v n , \r p l m e > > P L M E
0140720 . p n , p l m e > > P L M E .
0140740 n u m C h a r s ) \r P u t T e m
0140760 p l a t e ( d s p , " * N [ $
0141000 D - $ D ] * T c u r r e n t v
0141020 d a $ U O , p r e v i o u s
0141040 v d a $ U O , n e x t v
0141060 d a $ U O " , \r p a s s ,
0141100 p h a s e , v d a , p l m e
0141120 > > P L M E . b a c k P , p l
0141140 m e > > P L M E . n e x t P ) \r
0141160 ] \r \f \r / / 376 001 \0 0 231 - - - - -
0141200 - - - - - - - - - - - - - - - -
*
0141300 - - - - - - - \r a n d P r i n
0141320 t D i s k E r r o r ( c b ) b
0141340 e \r / / - - - - - - - - - - - -
0141360 - - - - - - - - - - - - - - - -
*
0141460 \r / / C a l l e d f r o m
0141500 v a r i o u s H a r d d i s
0141520