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