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