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