$ od -c -N 50000 [_CD8_]<ifs>IfsCopyDisk.dm!2 0000000 377 \0 \0 I f s C o p y D i s k . d 0000020 e c l \0 373 230 A Y 312 \0 \0 376 001 \0 w 357 0000040 / / I f s C o p y D i s k . d 0000060 e c l \r / / C o p y r i g h t 0000100 X e r o x C o r p o r a t i 0000120 o n 1 9 7 9 , 1 9 8 0 , 1 0000140 9 8 1 \r / / L a s t m o d i 0000160 f i e d D e c e m b e r 1 1 0000200 , 1 9 8 1 5 : 0 0 P M 0000220 b y T a f t \r \r / / - - - - - 0000240 - - - - - - - - - - - - - - - - * 0000340 - - - - - - - \r m a n i f e s t 0000360 \r / / - - - - - - - - - - - - - 0000400 - - - - - - - - - - - - - - - - * 0000440 376 001 \0 350 < - - - - - - - - - - - 0000460 - - - - - - - - - - - - - - - - 0000500 - - - - \r [ \r s o c k e t C o p 0000520 y D i s k = 2 5 b \t \t / / 0000540 w e l l - k n o w n s o c k e 0000560 t \r c d V e r s i o n = 3 \t 0000600 \t \t / / p r o t o c o l v e 0000620 r s i o n \r \r / / I f s e r 0000640 r o r c o d e s \r e c U n k n 0000660 o w n C m d = 1 1 0 0 \t \t / 0000700 / U n k n o w n c o m m a n 0000720 d \r e c N o D i s k = 1 1 0 0000740 1 \t \t \t / / P r o t o c o l 0000760 e r r o r : n o d i s k s 0001000 p e c i f i e d \r e c N o D i s 0001020 k P a r a m s = 1 1 0 2 \t \t 0001040 / / P r 376 001 \0 F 341 o t o c o l 0001060 e r r o r : n o d i s k 0001100 p a r a m s \r e c R e a d y F o 0001120 r D i s k = 1 1 0 3 \t \t / / 0001140 I ' m r e a d y f o r y 0001160 o u r d i s k \r e c H e r e I 0001200 s D i s k = 1 1 0 4 \t \t / / 0001220 H e r e c o m e s t h e 0001240 d i s k \r e c L o g C o n n = 0001260 1 1 0 5 \t \t / / L o g i n / 0001300 c o n n e c t o k \r e c B a d 0001320 F o r m a t = 1 1 0 6 \t \t / 0001340 / F i l e i s n o t i n 0001360 C o p y D i s k f o r m a t 0001400 \r \r / / c o m m a n d b l o 0001420 c k t y p e s \r v e r s i o n 0001440 = 1 \t \t \t / / 376 001 \0 233 d 0001460 a t a i s a v e r s i o n 0001500 a n d a B C P L s t r i 0001520 n g \r s e n d D i s k P a r a m 0001540 s R = 2 \t \t / / d a t a 0001560 i s a B C P L s t r i n g 0001600 \r s e n d D i s k P a r a m s W 0001620 = 1 6 b \t \t / / d a t a 0001640 i s a B C P L s t r i n g 0001660 \r h e r e A r e D i s k P a r a 0001700 m s = 3 \t \t / / d a t a 0001720 i s a D P ( s e m i - p r 0001740 i v a t e f o r m a t ) \r s t 0001760 o r e D i s k = 4 \t \t \t / / 0002000 d a t a i s a T P ( p 0002020 r i v a t e f o r m a t ) \r r 0002040 e t r i e v e D i s k = 5 376 0002060 001 \0 7 006 \t \t / / d a t a i s 0002100 a T P ( p r i v a t e f 0002120 o r m a t ) \r h e r e I s D i s 0002140 k P a g e = 6 \t \t / / d a 0002160 t a i s a p a g e ( p r 0002200 i v a t e f o r m a t ) \r e n 0002220 d O f T r a n s f e r = 7 \t 0002240 \t / / n o d a t a \r s e n d 0002260 E r r o r s = 1 0 b \t \t / / 0002300 n o d a t a \r h e r e A r e 0002320 E r r o r s = 1 1 b \t \t / / 0002340 d a t a i s E r r o r s 0002360 ( p r i v a t e f o r m a t ) 0002400 \r n o = 1 2 b \t \t \t / / d 0002420 a t a i s a c o d e a n 0002440 d a B C P L s t r i n g \r 0002460 y e s 376 001 \0 344 343 = 1 3 b \t \t 0002500 \t / / d a t a i s a c o 0002520 d e a n d a B C P L s t 0002540 r i n g \r c o m m e n t = 1 0002560 4 b \t \t \t / / d a t a i s 0002600 a B C P L s t r i n g \r l o 0002620 g i n = 1 5 b \t \t \t / / d 0002640 a t a i s 4 B C P L s t 0002660 r i n g s \r ] \r \r / / - - - - - 0002700 - - - - - - - - - - - - - - - - * 0003000 - - - - - - - \r s t r u c t u r 0003020 e C D C t x : \t \t / / C o p 0003040 y D i s k C o n t e x t \r / / 0003060 - - - - - - - - - 376 001 \0 \v ; - - 0003100 - - - - - - - - - - - - - - - - * 0003200 - \r [ \r @ R S C t x \r d i s k S 0003220 t r e a m w o r d \t \t \t / / 0003240 - > d i s k s t r e a m \r d 0003260 i s k P a r a m s w o r d \t \t 0003300 \t / / - > c u r r e n t d 0003320 i s k p a r a m s \r d e l e t 0003340 e w o r d \t \t \t / / = > f 0003360 i l e b e h i n d s t r e a 0003400 m s h o u l d b e d e l e 0003420 t e d \r e r r o r C o d e w o 0003440 r d \t \t \t / / I F S e r r o 0003460 r c o d e f o r l a s 376 001 0003500 \0 \ 250 t t r a n s f e r \r ] \r 0003520 \f \r / / - - - - - - - - - - - - 0003540 - - - - - - - - - - - - - - - - * 0003640 \r s t r u c t u r e C B : \t \t 0003660 \t / / C o m m a n d B l o c 0003700 k \r / / - - - - - - - - - - - - 0003720 - - - - - - - - - - - - - - - - * 0004020 \r [ \r l e n g t h w o r d \t \t 0004040 \t / / b l o c k l e n g t h 0004060 i n W O R D S i n c l u d 0004100 i n g 376 001 \0 s 233 t h i s w o 0004120 r d \r t y p e w o r d \r c o d 0004140 e S t r i n g : \t \t \t / / v e 0004160 r s i o n , y e s , n o \r 0004200 [ \r c o d e w o r d 0004220 \r s t r i n g w o r d \r 0004240 ] = \r s t r i n g : \t \t 0004260 \t \t / / l o g i n , c o m m 0004300 e n t , s e n d D i s k P a r 0004320 a m s ( R , W ) \r [ \r 0004340 s t r i n g w o r d \r 0004360 / / 3 m o r e s t r i n g 0004400 s i f l o g i n \r ] 0004420 = \r d i s k P a r a m s : \t \t \t 0004440 / / h e r e A r e D i s k P a 0004460 r a m s \r [ \r d i s 0004500 k T y p e w o 376 001 \0 \ 363 r d \t 0004520 \t / / 0 i f u n k n o w n 0004540 \r p a r a m s w o r d \t 0004560 \t \t / / d i s k p a r a m s 0004600 ( p r i v a t e f o r m a t 0004620 ) \r ] = \r x f e r P a r 0004640 a m s : \t \t \t / / s t o r e D 0004660 i s k , r e t r i e v e D i s 0004700 k \r [ \r p a r a m s 0004720 w o r d \t \t \t / / t r a n s 0004740 f e r p a r a m s ( p r i v 0004760 a t e f o r m a t ) \r ] 0005000 = \r e r r o r s : \t \t \t \t / / 0005020 h e r e A r e E r r o r s \r 0005040 [ \r d i s k T y p e 0005060 w o r d \t \t / / 0 i f u n 0005100 k n o w n \r e r r o 376 001 \0 0005120 002 276 r s w o r d \t \t \t / / e 0005140 r r o r b l o c k ( p r i v 0005160 a t e f o r m a t ) \r ] 0005200 \r ] \r \r m a n i f e s t \r [ \r / 0005220 / b l o c k l e n g t h s \r 0005240 l e n C o d e S t r i n g = 0005260 o f f s e t C B . c o d e S t 0005300 r i n g . s t r i n g / 1 6 0005320 / / + l e n g t h o f s 0005340 t r i n g \r l e n D i s k P a r 0005360 a m s = o f f s e t C B . 0005400 d i s k P a r a m s . p a r a m 0005420 s / 1 6 / / + l e n g t 0005440 h o f p a r a m s \r l e n X 0005460 f e r P a r a m s = o f f s 0005500 e t C B . x f e r P a r a m s 0005520 . p 376 \0 236 220 \v a r a m s / 1 6 0005540 / / + l e n g t h o f 0005560 p a r a m s \r l e n E r r o r s 0005600 = o f f s e t C B . e r r 0005620 o r s . e r r o r s / 1 6 / 0005640 / + l e n g t h o f e r 0005660 r o r s \r l e n S t r i n g = 0005700 o f f s e t C B . s t r i n 0005720 g . s t r i n g / 1 6 / / 0005740 + l e n g t h o f s t r i 0005760 n g \r ] \r 377 \0 \0 I f s C o p y D 0006000 i s k I n i t . b c p l \0 373 230 035 0006020 267 b \0 \0 376 001 \0 * 360 / / I f s C 0006040 o p y D i s k I n i t . b c p l 0006060 \r / / C o p y r i g h t X e 0006100 r o x C o r p o r a t i o n 0006120 1 9 8 0 , 1 9 8 1 \r / / L a 0006140 s t m o d i f i e d N o v e 0006160 m b e r 1 4 , 1 9 8 1 4 0006200 : 1 6 P M b y T a f t \r \r 0006220 g e t " I f s R s . d e c l " 0006240 \r g e t " I f s C o p y D i s 0006260 k . d e c l " \r \r e x t e r n a 0006300 l \r [ \r / / o u t g o i n g 0006320 p r o c e d u r e s \r E n a b l 0006340 e C o p y D i s k \r \r / / i n 0006360 c o m i n g p r o c e d u r e 0006400 s \r C o p y D i s k J o b \r O p 0006420 e n L e v e l 1 S 376 001 \0 X | o c 0006440 k e t ; C l o s e L e v e l 1 0006460 S o c k e t \r S y s A l l o c a 0006500 t e ; S y s A l l o c a t e Z 0006520 e r o ; F r e e P o i n t e r 0006540 ; E n q u e u e ; U n q u e 0006560 u e \r \r / / o u t g o i n g 0006600 s t a t i c s \r c d r s \r \r / / 0006620 i n c o m i n g s t a t i c 0006640 s \r r s Q ; l P u p S o c \r ] 0006660 \r \r s t a t i c [ c d r s 0006700 = 0 ] \t / / z e r o i f 0006720 n o t e n a b l e d \r \r / / 0006740 - - - - - - - - - - - - - - - - * 0007020 - - - - - - - - - - - - - - 376 001 0007040 \0 r 240 - - - - - - - - - - - - - 0007060 - \r l e t E n a b l e C o p y 0007100 D i s k ( e n a b l e ) b e \r 0007120 / / - - - - - - - - - - - - - - 0007140 - - - - - - - - - - - - - - - - * 0007220 - - - - - - - - - - - - - - \r [ 0007240 \r i f e n a b l e n e 0 0007260 & c d r s e q 0 t h e n 0007300 \r [ \r c d r s = 0007320 S y s A l l o c a t e Z e r o ( 0007340 l e n R S ) \r c d r s > > 0007360 R S . p r o c = C o p y D i 0007400 s k J o b \r c d r s > > R 0007420 S . s o c = S y s A l l o c 0007440 a t e 376 001 \0 o 214 ( l P u p S o c 0007460 ) \r O p e n L e v e l 1 S 0007500 o c k e t ( c d r s > > R S . s 0007520 o c , t a b l e [ 0 ; 0 0007540 ; s o c k e t C o p y D i s k 0007560 ] ) \r c d r s > > R S . 0007600 t y p e = j o b T y p e C o 0007620 p y D i s k \r c d r s > > 0007640 R S . e x t r a S p a c e = 0007660 s i z e C D C t x / 1 6 - 3 0007700 \r E n q u e u e ( r s Q , 0007720 c d r s ) \r ] \r \r i f 0007740 e n a b l e e q 0 & c d 0007760 r s n e 0 t h e n \r 0010000 [ \r C l o s e L e v e l 1 0010020 S o c k e t ( c d r s > > R S . 0010040 s o c ) \r 376 \0 C v 317 U n q 0010060 u e u e ( r s Q , c d r s ) \r 0010100 F r e e P o i n t e r ( l 0010120 v c d r s > > R S . s o c , 0010140 l v c d r s ) \r ] \r ] \r 0010160 377 \0 \0 I f s C o p y D i s k J o 0010200 b . b c p l \0 373 230 A n E \0 \0 376 001 0010220 \0 344 > / / I f s C o p y D i s 0010240 k J o b . b c p l \r / / C o p 0010260 y r i g h t X e r o x C o r 0010300 p o r a t i o n 1 9 8 0 , 1 0010320 9 8 1 \r / / L a s t m o d i 0010340 f i e d D e c e m b e r 1 1 0010360 , 1 9 8 1 6 : 2 6 P M 0010400 b y T a f t \r \r g e t K D H 0010420 , f r e e P a g e s , F A , 0010440 p a g e N u m b e r , l F A 0010460 f r o m " A l t o F i l e S 0010500 y s . d " \r g e t D S K , d 0010520 i s k K d f r o m " D i s k 0010540 s . d " \r g e t e c F i l e S 0010560 y s t e m F u l l , e c D i s 0010600 k E r r o r f r o m " I f s 0010620 D i r 376 001 \0 270 350 s . d e c l " \r 0010640 g e t " I f s . d e c l " \r g 0010660 e t " I f s S y s t e m I n f 0010700 o . d e c l " \r g e t " S t r 0010720 e a m s . d " \r g e t " I f s 0010740 R S . d e c l " \r g e t " I f 0010760 s C o p y D i s k . d e c l " \r 0011000 \r e x t e r n a l \r [ \r / / o 0011020 u t g o i n g p r o c e d u r 0011040 e s \r C o p y D i s k J o b \r P 0011060 u t S t r i n g ; P u t I f s 0011100 E c ; P u t B l o c k \r \r / / 0011120 i n c o m i n g p r o c e d 0011140 u r e s \r C D V e r s i o n ; 0011160 C D L o g i n ; C D S e n d E 0011200 r r o r s ; C D C l o s e F i 0011220 l e \r C D S e n 376 001 \0 356 C d D i 0011240 s k P a r a m s ; C D H e r e 0011260 A r e D i s k P a r a m s \r \r C 0011300 r e a t e U s e r I n f o ; D 0011320 e s t r o y U s e r I n f o ; 0011340 D e s t r o y J o b \r B S P R e 0011360 a d B l o c k ; B S P W r i t 0011400 e B l o c k ; B S P F o r c e 0011420 O u t p u t \r L n P a g e S i z 0011440 e ; K s B u f f e r A d d r e 0011460 s s ; C u r r e n t P o s ; 0011500 T r u n c a t e D i s k S t r e 0011520 a m \r C l e a n u p D i s k S t 0011540 r e a m ; S e t D i r t y ; 0011560 P o s i t i o n P t r ; W r i 0011600 t e B l o c k \r K s G e t D i s 0011620 k ; G e t C u r r e n t 376 001 \0 0011640 K 264 F a ; J u m p T o F a ; 0011660 P o s i t i o n P a g e \r C r e 0011700 a t e S t r i n g S t r e a m ; 0011720 P u t T e m p l a t e ; L o 0011740 o k u p E r r o r C o d e \r M o 0011760 v e B l o c k ; M i n ; R e 0012000 t u r n F r o m ; S y s E r r 0012020 ; G o t o F r a m e ; M y F 0012040 r a m e ; N o o p \r G e t s ; 0012060 P u t s ; C l o s e s ; R 0012100 e s e t s ; E n d o f s ; S 0012120 y s A l l o c a t e ; S y s F 0012140 r e e \r \r / / i n c o m i n g 0012160 s t a t i c s \r o f f s e t B 0012200 S P S t r ; C t x R u n n i n 0012220 g \r ] \r \r m a n i f e s t \r [ \r 0012240 e c 376 001 \0 t p U n R e c o v D i 0012260 s k E r r o r = 2 4 1 2 0012300 / / f o r T r i d e n t d 0012320 i s k s o n l y \r e c D i s k 0012340 F u l l = 2 4 1 3 / / 0012360 f o r T r i d e n t d i s k 0012400 s o n l y \r c u r s o r B i t 0012420 M a p = 4 3 1 b \r p a g e s 0012440 P e r B a t c h = 1 9 * 9 0012460 / / p r e a l l o c a t e 0012500 1 c y l i n d e r ' s w o r 0012520 t h o f p a g e s a t a 0012540 t i m e \r ] \r \r / / - - - - - 0012560 - - - - - - - - - - - - - - - - * 0012640 - - - - - - - 376 001 \0 - 021 - - - - 0012660 - - - - - - - - - - - - \r l e t 0012700 C o p y D i s k J o b ( c t x 0012720 ) b e \t \t / / a n I F S 0012740 j o b \r / / - - - - - - - - - - 0012760 - - - - - - - - - - - - - - - - * 0013060 - - \r [ \r l e t b s p S t r e 0013100 a m = c t x > > R S C t x . 0013120 b s p S o c + o f f s e t B 0013140 S P S t r \r c t x > > R S C t x 0013160 . u s e r I n f o = C r e a 0013200 t e U s e r I n f o ( ) \r \r C o 0013220 p y D i s k S e r v e r ( b s p 0013240 S t r e a m ) / / t 376 001 \0 s 0013260 I h e w o r k h a p p e n s 0013300 i n h e r e \r \r i f c t x 0013320 > > R S C t x . c o n n F l a g 0013340 n e 0 t h e n C l o s e 0013360 s ( b s p S t r e a m ) \r C D C 0013400 l o s e F i l e ( ) \r D e s t r 0013420 o y U s e r I n f o ( c t x > > 0013440 R S C t x . u s e r I n f o ) \r 0013460 D e s t r o y J o b ( ) / / 0013500 s u i c i d e \r ] \r \f \r / / - - 0013520 - - - - - - - - - - - - - - - - * 0013620 - - - - - - - - - - \r a n d C 0013640 o p y D i s k S e r v e r ( b s 0013660 p 376 001 \0 ! 025 S t r e a m ) b e 0013700 \r / / - - - - - - - - - - - - - 0013720 - - - - - - - - - - - - - - - - * 0014000 - - - - - - - - - - - - - - - \r 0014020 [ \r l e t l e n g t h = G 0014040 e t s ( b s p S t r e a m , 1 0014060 8 0 0 0 ) l s h i f t 8 0014100 / / 3 m i n u t e t o p 0014120 l e v e l t i m e o u t \r l e 0014140 n g t h = G e t s ( b s p S 0014160 t r e a m ) + l e n g t h \r 0014200 i f l e n g t h u g r 1 5 0014220 0 r e t u r n / / d o n 0014240 ' t b e t o o g u l l i b 0014260 l e \r l e t 376 001 \0 364 321 c b = 0014300 S y s A l l o c a t e ( l e n 0014320 g t h ) \r c b > > C B . l e n g 0014340 t h = l e n g t h \r i f B 0014360 S P R e a d B l o c k ( b s p S 0014400 t r e a m , l v c b > > C B 0014420 . t y p e , 0 , \r ( l e n g 0014440 t h - 1 ) l s h i f t 1 ) 0014460 n e ( l e n g t h - 1 ) l s 0014500 h i f t 1 t h e n / / 0014520 s t r e a m f a i l e d \r 0014540 [ S y s F r e e ( c b ) ; 0014560 r e t u r n ] \r \r s w i t c h 0014600 o n c b > > C B . t y p e i 0014620 n t o \r [ \r c a s e 0014640 v e r s i o n : \r 0014660 [ C D V e r s i o n 376 001 \0 316 275 0014700 ( c b ) ; e n d c a s e ] \r 0014720 c a s e l o g i n : \r 0014740 [ C D L o g i n ( c 0014760 b ) ; e n d c a s e ] \r 0015000 c a s e s e n d D i s k P a 0015020 r a m s R : c a s e s e n d 0015040 D i s k P a r a m s W : \r 0015060 [ C D S e n d D i s k P 0015100 a r a m s ( c b ) ; e n d c a 0015120 s e ] \r c a s e h e r 0015140 e A r e D i s k P a r a m s : \r 0015160 [ C D H e r e A r 0015200 e D i s k P a r a m s ( c b ) ; 0015220 e n d c a s e ] \r c a 0015240 s e s t o r e D i s k : \r 0015260 [ C D S t o r e D i s 0015300 376 001 \0 r 210 k ( c b ) ; e n d c 0015320 a s e ] \r c a s e r e 0015340 t r i e v e D i s k : \r 0015360 [ C D R e t r i e v e D i 0015400 s k ( c b ) ; e n d c a s e 0015420 ] \r c a s e s e n d E r 0015440 r o r s : \r [ C D 0015460 S e n d E r r o r s ( c b ) ; 0015500 e n d c a s e ] \r c a s 0015520 e c o m m e n t : \r 0015540 e n d c a s e \r d e f a 0015560 u l t : \r [ P u t 0015600 I f s E c ( n o , e c U n k n 0015620 o w n C m d ) ; e n d c a s e 0015640 ] \r ] \r S y s F r e e ( 0015660 c b ) \r ] r e p e a t \r \r / / 0015700 - - - - - 376 001 \0 336 026 - - - - - - 0015720 - - - - - - - - - - - - - - - - * 0016020 - \r a n d C D S t o r e D i s 0016040 k ( c b ) b e \r / / - - - - - 0016060 - - - - - - - - - - - - - - - - * 0016160 - - - - - - - \r / / C o p i e 0016200 s d a t a f r o m b s p S 0016220 t r e a m t o d i s k S t r 0016240 e a m . \r [ \r t e s t C t x R 0016260 u n n i n g > > C D C t x . d i 0016300 s k S t r e a m e 376 001 \0 340 : q 0016320 0 \r i f s o [ P u t 0016340 I f s E c ( n o , e c N o D i 0016360 s k ) ; r e t u r n ] \r 0016400 i f n o t t e s t C t x R 0016420 u n n i n g > > C D C t x . d i 0016440 s k P a r a m s e q 0 \r 0016460 i f s o [ P u t I f 0016500 s E c ( n o , e c N o D i s k 0016520 P a r a m s ) ; r e t u r n 0016540 ] \r i f n o t P u 0016560 t I f s E c ( y e s , e c R e 0016600 a d y F o r D i s k ) \r \r l e t 0016620 b s p S t r e a m = C t x 0016640 R u n n i n g > > R S C t x . b 0016660 s p S o c + o f f s e t B S P S 0016700 t r \r l e t d i s k S t r e 376 0016720 001 \0 273 / a m = C t x R u n n 0016740 i n g > > C D C t x . d i s k S 0016760 t r e a m \r l e t c h a r s P 0017000 e r P a g e = 2 l s h i f 0017020 t L n P a g e S i z e ( d i s 0017040 k S t r e a m ) \r l e t k s B 0017060 u f f e r = K s B u f f e r 0017100 A d d r e s s ( d i s k S t r e 0017120 a m ) \r \r l e t s a v e d E r 0017140 r o r P r o c = d i s k S t 0017160 r e a m > > S T . e r r o r \r d 0017200 i s k S t r e a m > > S T . e r 0017220 r o r = C D S t o r e D i s 0017240 k E r r o r \r d i s k S t r e a 0017260 m > > S T . p a r 2 = M y F 0017300 r a m e ( ) \r \r R e s e t s ( d 0017320 i s k S 376 001 \0 260 ! t r e a m ) \r 0017340 l e t d p = C t x R u n n 0017360 i n g > > C D C t x . d i s k P 0017400 a r a m s \r W r i t e B l o c k 0017420 ( d i s k S t r e a m , d p , 0017440 d p > > C B . l e n g t h ) \r 0017460 \r l e t c b T y p e = n i 0017500 l \r l e t p a g e s P r e a l 0017520 l o c a t e d = 0 \r C t x R 0017540 u n n i n g > > C D C t x . d e 0017560 l e t e = f a l s e \r \f \r / 0017600 / C D S t o r e D i s k ( c 0017620 o n t ' d ) \r \r [ / / 0017640 r e p e a t - - t r a n s f 0017660 e r b l o c k s t o a n d 0017700 i n c l u d i n g e n d O f 0017720 T r a n s f e r 376 001 \0 374 361 b l 0017740 o c k \r l e t c b L e n 0017760 g t h = G e t s ( b s p S t 0020000 r e a m ) l s h i f t 8 \r 0020020 c b L e n g t h = G e t 0020040 s ( b s p S t r e a m ) + c 0020060 b L e n g t h \r i f ( c 0020100 b L e n g t h - 2 ) u g r 1 0020120 5 0 0 t h e n \r [ 0020140 C t x R u n n i n g > > C D C 0020160 t x . d e l e t e = t r u e 0020200 ; b r e a k ] / / b 0020220 a d b l o c k s i z e \r 0020240 c b T y p e = G e t s ( b 0020260 s p S t r e a m ) l s h i f t 0020300 8 \r c b T y p e = G 0020320 e t s ( b s p S t r e a m ) 376 001 0020340 \0 ^ 257 + c b T y p e \r 0020360 P u t s ( d i s k S t r e a m , 0020400 c b L e n g t h ) / / w 0020420 o r d I t e m s t r e a m \r 0020440 P u t s ( d i s k S t r e a 0020460 m , c b T y p e ) \r \r l 0020500 e t c b B y t e s = ( c b 0020520 L e n g t h - 2 ) l s h i f t 0020540 1 / / r e m a i n i n g 0020560 b y t e s i n b l o c k \r 0020600 w h i l e c b B y t e s 0020620 n e 0 d o \r [ 0020640 \r l e t p o s = 0020660 C u r r e n t P o s ( d i s k 0020700 S t r e a m ) \r l e 0020720 t n e t B y t e s = M i n 0020740 ( c b 376 001 \0 324 276 B y t e s , c 0020760 h a r s P e r P a g e - p o s ) 0021000 \r i f B S P R e a 0021020 d B l o c k ( b s p S t r e a m 0021040 , k s B u f f e r , p o s , 0021060 n e t B y t e s ) n e n e 0021100 t B y t e s t h e n \r 0021120 [ C t x R u n n i n 0021140 g > > C D C t x . d e l e t e 0021160 = t r u e ; b r e a k ] 0021200 / / s t r e a m d i e d \r 0021220 i f n e t B y t e 0021240 s n e 0 t h e n S e t D 0021260 i r t y ( d i s k S t r e a m , 0021300 t r u e ) \r P o s 0021320 i t i o n P t r ( d i s k S t r 0021340 e a m , p o s 376 001 \0 227 , + n e 0021360 t B y t e s ) \r c b 0021400 B y t e s = c b B y t e s - 0021420 n e t B y t e s \r \r 0021440 i f p o s + n e t B y t e s 0021460 e q c h a r s P e r P a g e 0021500 t h e n \r [ \r 0021520 t e s t C t 0021540 x R u n n i n g > > C D C t x . 0021560 d e l e t e \r 0021600 i f s o P o s i t i o n 0021620 P t r ( d i s k S t r e a m , 0021640 0 ) \r i 0021660 f n o t C l e a n u p D i s k 0021700 S t r e a m ( d i s k S t r e a 0021720 m ) / / w r i t e o u t 0021740 s t r e a m b u f f e 376 001 \0 0021760 D q r \r f o r 0022000 i = 0 t o 1 5 d o 0022020 c u r s o r B i t M a p ! i = 0022040 n o t c u r s o r B i t M a 0022060 p ! i \r p a g 0022100 e s P r e a l l o c a t e d = 0022120 p a g e s P r e a l l o c a t 0022140 e d - 1 \r i f 0022160 p a g e s P r e a l l o c a t 0022200 e d l e 0 & n o t C t 0022220 x R u n n i n g > > C D C t x . 0022240 d e l e t e t h e n \r 0022260 [ \r 0022300 / / P r e a l l o 0022320 c a t e a n e w b a t c h 0022340 o f p a g e s , s o l o 0022360 n g 376 001 \0 354 t a s t h a t 0022400 d o e s n ' t r u n \r 0022420 / / t h e f 0022440 i l e s y s t e m t o o c 0022460 l o s e t o e x h a u s t i 0022500 o n . \r 0022520 p a g e s P r e a l l o c a t e 0022540 d = p a g e s P e r B a t c 0022560 h \r i f 0022600 E n d o f s ( d i s k S t r e 0022620 a m ) & \r 0022640 K s G e t D i s k ( d i s 0022660 k S t r e a m ) > > D S K . d i 0022700 s k K d > > K D H . f r e e P a 0022720 g e s u g r \r 0022740 p a g e s P e r B a t 0022760 c h + 2 5 0 376 001 \0 266 022 t h e n 0023000 \r 0023020 [ \r 0023040 l e t c u r r e n t F A = 0023060 v e c l F A ; G e t C u r 0023100 r e n t F a ( d i s k S t r e a 0023120 m , c u r r e n t F A ) \r 0023140 P o s 0023160 i t i o n P a g e ( d i s k S t 0023200 r e a m , c u r r e n t F A > 0023220 > F A . p a g e N u m b e r + 0023240 p a g e s P e r B a t c h ) \r 0023260 J 0023300 u m p T o F a ( d i s k S t r e 0023320 a m , c u r r e n t F A ) \r 0023340 ] \r 0023360 376 001 \0 223 0023400 375 ] \r ] \r 0023420 ] \r \r i f c b T 0023440 y p e e q e n d O f T r a n 0023460 s f e r b r e a k \r ] 0023500 r e p e a t \r \r d i s k S t r e 0023520 a m > > S T . e r r o r = s 0023540 a v e d E r r o r P r o c \r t e 0023560 s t C t x R u n n i n g > > C 0023600 D C t x . d e l e t e \r i 0023620 f s o [ S e t D i r t y ( d 0023640 i s k S t r e a m , f a l s e 0023660 ) ; C D C l o s e F i l e ( ) 0023700 ] \r i f n o t T r u n 0023720 c a t e D i s k S t r e a m ( d 0023740 i s k S t r e a m ) \r ] \r \r / / 0023760 - - - - - - - - - - - - - - - - 0024000 - 376 001 \0 d 205 - - - - - - - - - - 0024020 - - - - - - - - - - - - - - - - * 0024100 \r a n d C D S t o r e D i s k 0024120 E r r o r ( s , e c , p a r 0024140 ) b e \r / / - - - - - - - - - 0024160 - - - - - - - - - - - - - - - - * 0024260 - - \r / / I f l o c a l d 0024300 i s k b e c o m e s f u l l 0024320 t h e n s e t d i s c a r 0024340 d f l a g i n S T . p a r 0024360 3 , w h i c h w i l l \r / / 0024400 c a u s e 376 001 \0 224 373 t h e 0024420 r e m a i n d e r o f t h e 0024440 i n c o m i n g d i s k i 0024460 m a g e t o b e t h r o w 0024500 n a w a y . \r [ \r i f e c 0024520 e q e c D i s k F u l l t h 0024540 e n \r [ \r S e t D i 0024560 r t y ( s , f a l s e ) \r 0024600 s > > S T . p u t s = N o 0024620 o p \r C t x R u n n i n g 0024640 > > C D C t x . d e l e t e = 0024660 t r u e \r C t x R u n n 0024700 i n g > > C D C t x . e r r o r 0024720 C o d e = e c F i l e S y s 0024740 t e m F u l l \r G o t o F 0024760 r a m e ( s > > S T . p a r 2 ) 0025000 \r ] \r S y s E r 376 001 \0 ( 016 0025020 r ( s , e c , p a r ) \r ] \r 0025040 \f \r / / - - - - - - - - - - - - 0025060 - - - - - - - - - - - - - - - - * 0025160 \r a n d C D R e t r i e v e D 0025200 i s k ( c b ) b e \r / / - - - 0025220 - - - - - - - - - - - - - - - - * 0025320 - - - - - - - - - \r / / C o p 0025340 i e s d a t a f r o m d i 0025360 s k S t r e a m t o b s p S 0025400 t r e a m . \r / / S t o p s 0025420 376 001 \0 274 r i f t h e s t r e 0025440 a m g o e s b a d o r e 0025460 n d o f f i l e . \r [ \r t e 0025500 s t C t x R u n n i n g > > C 0025520 D C t x . d i s k S t r e a m 0025540 e q 0 \r i f s o \r 0025560 [ \r P u t I f 0025600 s E c ( n o , ( C t x R u n n 0025620 i n g > > C D C t x . e r r o r 0025640 C o d e n e 0 ? \r 0025660 C t x R u n n i n g > > C D 0025700 C t x . e r r o r C o d e , e 0025720 c N o D i s k ) ) \r 0025740 r e t u r n \r ] \r 0025760 i f n o t P u t I f s E c 0026000 ( y e s , e c H e r e I s D i 0026020 s k ) \r \r 376 001 \0 ) 240 l e t b s 0026040 p S t r e a m = C t x R u n 0026060 n i n g > > R S C t x . b s p S 0026100 o c + o f f s e t B S P S t r \r 0026120 l e t d i s k S t r e a m = 0026140 C t x R u n n i n g > > C D C 0026160 t x . d i s k S t r e a m \r l e 0026200 t c h a r s P e r P a g e = 0026220 2 l s h i f t L n P a g e 0026240 S i z e ( d i s k S t r e a m ) 0026260 \r l e t k s B u f f e r = 0026300 K s B u f f e r A d d r e s s ( 0026320 d i s k S t r e a m ) \r \r l e t 0026340 s a v e d E r r o r P r o c 0026360 = d i s k S t r e a m > > S T 0026400 . e r r o r \r d i s k S t r e a 0026420 m > > S T . e r r o 376 001 \0 X 321 r 0026440 = C D R e t r i e v e D i s 0026460 k E r r o r \r \r / / s k i p 0026500 d i s k p a r a m b l o c k 0026520 - a s s u m e d t o b e 0026540 s m a l l e r t h a n k s 0026560 B u f f e r \r R e s e t s ( d i 0026600 s k S t r e a m ) \r P o s i t i 0026620 o n P t r ( d i s k S t r e a m 0026640 , k s B u f f e r > > C B . l 0026660 e n g t h * 2 , f a l s e ) \r 0026700 \r [ \r l e t p o s 0026720 = C u r r e n t P o s ( d i 0026740 s k S t r e a m ) \r P o s 0026760 i t i o n P t r ( d i s k S t r 0027000 e a m , c h a r s P e r P a g 0027020 e , f a l s e ) \r l e 376 0027040 001 \0 001 264 t f i l e B y t e s 0027060 = C u r r e n t P o s ( d i s 0027100 k S t r e a m ) - p o s \r 0027120 i f B S P W r i t e B l o c k 0027140 ( b s p S t r e a m , k s B u 0027160 f f e r , p o s , f i l e B 0027200 y t e s ) n e f i l e B y t 0027220 e s b r e a k \r i f p 0027240 o s + f i l e B y t e s l s 0027260 c h a r s P e r P a g e b r e 0027300 a k \r C l e a n u p D i s 0027320 k S t r e a m ( d i s k S t r e 0027340 a m ) \r f o r i = 0 0027360 t o 1 5 d o c u r s o r 0027400 B i t M a p ! i = n o t c 0027420 u r s o r B i t M a p ! i \r 0027440 ] r 376 001 \0 232 ( e p e a t \r \r 0027460 B S P F o r c e O u t p u t ( C 0027500 t x R u n n i n g > > R S C t x 0027520 . b s p S o c ) \r d i s k S t r 0027540 e a m > > S T . e r r o r = 0027560 s a v e d E r r o r P r o c \r ] 0027600 \r \r / / - - - - - - - - - - - - 0027620 - - - - - - - - - - - - - - - - * 0027700 - - - - - - - - - - - - - - - \r 0027720 a n d C D R e t r i e v e D i 0027740 s k E r r o r ( s , e c , p 0027760 a r ) b e \r / / - - - - - - - 0030000 - - - - - - - - - - - - - - - - * 0030040 - - - - - - - - - 376 001 \0 254 301 - - 0030060 - - - - - - - - - - - - - - - - 0030100 - - - - - - - - - \r / / I f 0030120 h a r d e r r o r o n l o 0030140 c a l d i s k , r e m e m b 0030160 e r e r r o r c o d e a n 0030200 d p r o c e e d . \r [ \r i f 0030220 e c e q e c U n R e c o v D 0030240 i s k E r r o r t h e n \r 0030260 [ \r C t x R u n n i n g 0030300 > > C D C t x . e r r o r C o d 0030320 e = e c D i s k E r r o r \r 0030340 r e t u r n / / T F 0030360 S w i l l i g n o r e t h 0030400 e e r r o r \r ] \r S y s 0030420 E r r ( s , e c , p a r ) \r 0030440 ] \r \f \r / / - - - - - - - - 376 001 0030460 \0 225 _ - - - - - - - - - - - - - 0030500 - - - - - - - - - - - - - - - - * 0030560 - - - - - - - \r a n d P u t B 0030600 l o c k ( c b , t y p e , l 0030620 e n g t h ) b e \r / / - - - - 0030640 - - - - - - - - - - - - - - - - * 0030740 - - - - - - - - \r [ \r c b > > C 0030760 B . t y p e = t y p e \r c b 0031000 > > C B . l e n g t h = l e 0031020 n g t h \r l e t b s p S t r e 0031040 a m = C t x R u n n i n g > 0031060 > R S 376 001 \0 214 9 C t x . b s p S 0031100 o c + o f f s e t B S P S t r \r 0031120 i f B S P W r i t e B l o c k 0031140 ( b s p S t r e a m , c b , 0031160 0 , l e n g t h * 2 ) e q 0031200 l e n g t h * 2 t h e n \r 0031220 B S P F o r c e O u t p u t ( 0031240 C t x R u n n i n g > > R S C t 0031260 x . b s p S o c ) \r ] \r \r / / - 0031300 - - - - - - - - - - - - - - - - * 0031400 - - - - - - - - - - - \r a n d 0031420 P u t S t r i n g ( t y p e , 0031440 c o d e , s t r i n g , a 0 0031460 , a 1 , a 2 376 001 \0 021 365 , a 0031500 3 , a 4 ) b e \r / / - - - - 0031520 - - - - - - - - - - - - - - - - * 0031620 - - - - - - - - \r [ \r l e t c 0031640 b = S y s A l l o c a t e ( 0031660 l e n C o d e S t r i n g + 1 2 0031700 8 ) \r c b > > C B . c o d e S t 0031720 r i n g . c o d e = c o d e 0031740 \r l e t s t r = l v c b 0031760 > > C B . c o d e S t r i n g . 0032000 s t r i n g \r l e t s s = 0032020 C r e a t e S t r i n g S t r e 0032040 a m ( s t r , 2 5 5 ) \r P u t 0032060 T e m p l a t e ( s s , 376 001 \0 0032100 j 036 s t r i n g , a 0 , a 1 0032120 , a 2 , a 3 , a 4 ) \r C l 0032140 o s e s ( s s ) \r P u t B l o c 0032160 k ( c b , t y p e , l e n C 0032200 o d e S t r i n g + s t r > 0032220 > S t r i n g . l e n g t h r 0032240 s h i f t 1 + 1 ) \r S y s F 0032260 r e e ( c b ) \r ] \r \r / / - - - 0032300 - - - - - - - - - - - - - - - - * 0032400 - - - - - - - - - \r a n d P u 0032420 t I f s E c ( t y p e , e c ) 0032440 b e \r / / - - - - - - - - - - 0032460 - - - - - - - - - - - - - - - - 0032500 - - 376 \0 253 003 215 - - - - - - - - - 0032520 - - - - - - - - - - - - - - - - * 0032560 - - - - - - - \r [ \r l e t e r 0032600 r R e c = L o o k u p E r r 0032620 o r C o d e ( e c ) \r P u t S t 0032640 r i n g ( t y p e , e r r R e 0032660 c > > E r r R e c . f t p E c , 0032700 l v e r r R e c > > E r r R 0032720 e c . e r r o r S t r i n g ) \r 0032740 S y s F r e e ( e r r R e c ) \r 0032760 ] \r 377 \0 \0 I f s C o p y D i s k 0033000 R a r e . b c p l \0 373 233 236 021 Q \0 0033020 \0 376 001 \0 217 230 / / I f s C o p y 0033040 D i s k R a r e . b c p l \r / / 0033060 C o p y r i g h t X e r o x 0033100 C o r p o r a t i o n 1 9 8 0033120 0 , 1 9 8 1 , 1 9 8 2 \r / / 0033140 L a s t m o d i f i e d S 0033160 e p t e m b e r 2 5 , 1 9 8 0033200 3 2 : 5 3 P M b y T a 0033220 f t \r \r g e t " S t r e a m s 0033240 . d " \r g e t " I f s . d e c 0033260 l " \r g e t " I f s R S . d e 0033300 c l " \r g e t " I f s D i r s 0033320 . d e c l " \r g e t " I f s F 0033340 i l e s . d e c l " \r g e t " 0033360 I f s C o p y D i s k . d e c l 0033400 " \r \r e x t e r n a l \r [ \r / / 0033420 o u t g o 376 001 \0 323 001 i n g p 0033440 r o c e d u r e s \r C D V e r s 0033460 i o n ; C D L o g i n ; C D 0033500 S e n d E r r o r s ; C D C l 0033520 o s e F i l e \r C D S e n d D i 0033540 s k P a r a m s ; C D H e r e 0033560 A r e D i s k P a r a m s \r \r / 0033600 / i n c o m i n g p r o c e 0033620 d u r e s \r P u t S t r i n g ; 0033640 P u t I f s E c ; P u t B l 0033660 o c k \r C l o s e I F S S t r e 0033700 a m ; C l o s e I F S F i l e 0033720 ; L o o k u p F D ; D e l e 0033740 t e F i l e F r o m F D ; G e 0033760 t B u f f e r F o r F D \r D e s 0034000 t r o y F D ; S t r e a m s F 0034020 D ; T r a n s f e r 376 001 \0 I @ 0034040 L e a d e r P a g e \r I F S O p 0034060 e n F i l e ; R e a d B l o c 0034100 k ; W r i t e B l o c k ; C 0034120 l o s e s \r L o g i n ; C o n 0034140 n e c t ; A c t i v e J o b s 0034160 ; C r e a t e S t r i n g S t 0034200 r e a m \r P r i n t I F S V e r 0034220 s i o n ; W r i t e P a c k e 0034240 d D T ; P u t T e m p l a t e 0034260 \r S y s A l l o c a t e ; S y 0034300 s F r e e ; F r e e P o i n t 0034320 e r ; M o v e B l o c k \r \r / 0034340 / i n c o m i n g s t a t i 0034360 c s \r m a x J o b s ; C t x R 0034400 u n n i n g \r ] \r \f \r / / - - - 0034420 - - - - - - - - - - - - - - - - 0034440 376 001 \0 363 256 - - - - - - - - - - - 0034460 - - - - - - - - - - - - - - - - * 0034520 - - - - - - - - - - - - - - \r l 0034540 e t C D V e r s i o n ( c b ) 0034560 b e \r / / - - - - - - - - - - 0034600 - - - - - - - - - - - - - - - - * 0034700 - - \r [ \r l e t a c t i v e J 0034720 o b s = A c t i v e J o b s 0034740 ( ) \r P u t S t r i n g ( v e r 0034760 s i o n , c d V e r s i o n , 0035000 " $ P ; $ D u s e r $ S 0035020 o u t o f $ D " , \r P r i 0035040 n t I F S 376 001 \0 ! e V e r s i o 0035060 n , " C o p y D i s k s e r 0035100 v e r " , a c t i v e J o b s 0035120 , ( a c t i v e J o b s e q 0035140 1 ? " " , " s " ) , m a 0035160 x J o b s ) \r ] \r \r / / - - - - 0035200 - - - - - - - - - - - - - - - - * 0035300 - - - - - - - - \r a n d C D L 0035320 o g i n ( c b ) b e \r / / - - 0035340 - - - - - - - - - - - - - - - - * 0035440 - - - - - - - - - - 376 001 \0 245 323 \r 0035460 [ \r l e t u N a m = l v 0035500 c b > > C B . s t r i n g . s t 0035520 r i n g \r l e t u P s w = 0035540 u N a m + u N a m > > S t r 0035560 i n g . l e n g t h r s h i f 0035600 t 1 + 1 \r l e t c N a m 0035620 = u P s w + u P s w > > S 0035640 t r i n g . l e n g t h r s h 0035660 i f t 1 + 1 \r l e t c P s 0035700 w = c N a m + c N a m > 0035720 > S t r i n g . l e n g t h r 0035740 s h i f t 1 + 1 \r \r l e t 0035760 e c = L o g i n ( u N a m , 0036000 u P s w , C t x R u n n i n 0036020 g > > R S C t x . u s e r I n f 0036040 o ) \r i f e c e q 0 t 376 0036060 001 \0 364 233 h e n \r e c = 0036100 C o n n e c t ( c N a m , c P 0036120 s w , C t x R u n n i n g > > 0036140 R S C t x . u s e r I n f o ) \r 0036160 \r t e s t e c e q 0 \r 0036200 i f s o P u t I f s E c ( y 0036220 e s , e c L o g C o n n ) \r 0036240 i f n o t P u t I f s E c 0036260 ( n o , e c ) \r ] \r \r / / - - 0036300 - - - - - - - - - - - - - - - - * 0036400 - - - - - - - - - - \r a n d C 0036420 D S e n d E r r o r s ( c b ) 0036440 b e \r / / - - - - - - - - - - - 0036460 - - - - 376 001 \0 031 340 - - - - - - - 0036500 - - - - - - - - - - - - - - - - * 0036560 - - - - - - \r [ \r t e s t C t 0036600 x R u n n i n g > > C D C t x . 0036620 e r r o r C o d e n e 0 \r 0036640 i f s o \r P u t 0036660 I f s E c ( n o , C t x R u n 0036700 n i n g > > C D C t x . e r r o 0036720 r C o d e ) \r i f n o t \r 0036740 [ \r l e 0036760 t c b = v e c l e n E r 0037000 r o r s \r c b > > C 0037020 B . e r r o r s . d i s k T y p 0037040 e = 0 \r P u t B 0037060 l o c k ( c b , 376 001 \0 211 n h e 0037100 r e A r e E r r o r s , l e n 0037120 E r r o r s ) \r ] \r 0037140 ] \r \r / / - - - - - - - - - - - 0037160 - - - - - - - - - - - - - - - - * 0037260 - \r a n d C D H e r e A r e D 0037300 i s k P a r a m s ( c b ) b e 0037320 \r / / - - - - - - - - - - - - - 0037340 - - - - - - - - - - - - - - - - * 0037420 - - - - - - - - - - - - - - - \r 0037440 [ \r F r e e P o i n t e r ( l v 0037460 C t x R u n n i n g > > C 376 001 0037500 \0 024 366 D C t x . d i s k P a r a 0037520 m s ) \r C t x R u n n i n g > > 0037540 C D C t x . d i s k P a r a m s 0037560 = S y s A l l o c a t e ( c 0037600 b > > C B . l e n g t h ) \r M o 0037620 v e B l o c k ( C t x R u n n i 0037640 n g > > C D C t x . d i s k P a 0037660 r a m s , c b , c b > > C B 0037700 . l e n g t h ) \r ] \r \f \r / / - 0037720 - - - - - - - - - - - - - - - - * 0040020 - - - - - - - - - - - \r a n d 0040040 C D S e n d D i s k P a r a m s 0040060 ( c b ) b e \r / / - - - - - - 0040100 - - - 376 001 \0 ? a - - - - - - - - 0040120 - - - - - - - - - - - - - - - - * 0040200 - - - - - - - - - - - \r [ \r C D 0040220 C l o s e F i l e ( ) \r C t x R 0040240 u n n i n g > > C D C t x . e r 0040260 r o r C o d e = 0 \r l e t 0040300 e c , r e a d = n i l , 0040320 c b > > C B . t y p e e q s 0040340 e n d D i s k P a r a m s R \r l 0040360 e t s t r e a m = I F S O 0040400 p e n F i l e ( l v c b > > C 0040420 B . s t r i n g . s t r i n g , 0040440 l v e c , \r ( r e a d ? 0040460 m o d e R e a d , m o d e R e 0040500 a d W r i t e ) 376 001 \0 T 363 , w 0040520 o r d I t e m , ( r e a d ? 0040540 0 , l c C r e a t e + l c V N 0040560 e x t ) ) \r i f s t r e a m 0040600 e q 0 t h e n [ P u t I 0040620 f s E c ( n o , e c ) ; r e 0040640 t u r n ] \r t e s t r e a d 0040660 \r i f s o / / r e a 0040700 d i n g \r [ \r 0040720 m a n i f e s t m a x L 0040740 e n D i s k P a r a m s = 2 0040760 0 / / g u a r d ; c u r 0041000 r e n t l y 6 \r l 0041020 e t c b = v e c m a x L 0041040 e n D i s k P a r a m s \r 0041060 R e a d B l o c k ( s t r 0041100 e a m , c b , m a x L 376 001 \0 0041120 213 033 e n D i s k P a r a m s ) \r 0041140 t e s t c b > > C 0041160 B . t y p e e q h e r e A r 0041200 e D i s k P a r a m s & \r 0041220 c b > > C B . l e n g 0041240 t h l e m a x L e n D i s k 0041260 P a r a m s \r 0041300 i f s o \r 0041320 [ \r l 0041340 e t f d = S t r e a m s F 0041360 D ( s t r e a m ) \r 0041400 l e t i l d = 0041420 G e t B u f f e r F o r F D ( f 0041440 d ) \r T 0041460 r a n s f e r L e a d e r P a g 0041500 e ( f d , i l d ) / / r 0041520 e a 376 001 \0 ; ? d \r 0041540 l e t c = l v 0041560 i l d > > I L D . f l a g s \r 0041600 l e t s 0041620 s = C r e a t e S t r i n g 0041640 S t r e a m ( l v c > > C B . 0041660 s t r i n g , 2 5 5 ) \r 0041700 P u t T e m p 0041720 l a t e ( s s , " $ S c r e 0041740 a t e d $ P b y $ S " , 0041760 l v i l d > > I L D . p a t h 0042000 N a m e , \r 0042020 W r i t e P a c k e d D T 0042040 , l v i l d > > I L D . c r 0042060 e a t e d , l v i l d > > I 0042100 L D . a u t h o r ) \r 0042120 376 001 \0 351 231 C l o s 0042140 e s ( s s ) \r 0042160 S y s F r e e ( i l d ) \r 0042200 P u t B 0042220 l o c k ( c , c o m m e n t , 0042240 l e n S t r i n g + s s > > S 0042260 t r i n g . l e n g t h / 2 + 0042300 1 ) \r P 0042320 u t B l o c k ( c b , h e r e 0042340 A r e D i s k P a r a m s , c 0042360 b > > C B . l e n g t h ) \r 0042400 ] \r 0042420 i f n o t \r 0042440 [ \r 0042460 P u t I f s E c ( n o 0042500 , e c B a d F o r m a t ) \r 0042520 C 376 001 \0 213 0042540 ! l o s e s ( s t r e a m ) \r 0042560 s t r e a 0042600 m = 0 \r 0042620 ] \r ] \r i 0042640 f n o t / / w r i t i n g 0042660 \r [ \r C 0042700 t x R u n n i n g > > C D C t x 0042720 . d e l e t e = S t r e a m 0042740 s F D ( s t r e a m ) > > F D . 0042760 o l d P a g e N u m b e r e q 0043000 - 1 \r l e t d p 0043020 = v e c l e n D i s k P a 0043040 r a m s \r d p > > C 0043060 B . d i s k P a r a m s . d i s 0043100 k T y p e = 0 \r 0043120 P u t B l o c k ( d p , h e r 0043140 e 376 001 \0 e 227 A r e D i s k P a r 0043160 a m s , l e n D i s k P a r a 0043200 m s ) \r ] \r C t x R 0043220 u n n i n g > > C D C t x . d i 0043240 s k S t r e a m = s t r e a 0043260 m \r ] \r \r / / - - - - - - - - - 0043300 - - - - - - - - - - - - - - - - * 0043400 - - - \r a n d C D C l o s e F 0043420 i l e ( ) b e \r / / - - - - - 0043440 - - - - - - - - - - - - - - - - * 0043540 - - - - - - 376 001 \0 226 337 - \r / / 0043560 R e l e a s e s d i s k P a r 0043600 a m s , C l o s e s t h e 0043620 d i s k s t r e a m , a n d 0043640 m a y d e l e t e t h e 0043660 f i l e . \r [ \r F r e e P o i n 0043700 t e r ( l v C t x R u n n i n 0043720 g > > C D C t x . d i s k P a r 0043740 a m s ) \r i f C t x R u n n i 0043760 n g > > C D C t x . d i s k S t 0044000 r e a m e q 0 r e t u r n 0044020 \r l e t d e l e t e = C t 0044040 x R u n n i n g > > C D C t x . 0044060 d e l e t e n e 0 \r / / l 0044100 e a v e f i l e l o c k e d 0044120 i f w e a r e a b o u t 0044140 t o d e l e t e 376 \0 305 220 351 0044160 i t . \r l e t f d = C l o 0044200 s e I F S S t r e a m ( C t x R 0044220 u n n i n g > > C D C t x . d i 0044240 s k S t r e a m , d e l e t e 0044260 ) \r i f d e l e t e t h e n 0044300 \r i f D e l e t e F i l 0044320 e F r o m F D ( f d , f a l s 0044340 e , t r u e ) n e 0 t h 0044360 e n C l o s e I F S F i l e ( 0044400 f d ) \r D e s t r o y F D ( f d 0044420 ) \r C t x R u n n i n g > > C D 0044440 C t x . d i s k S t r e a m = 0044460 0 \r ] \r 377 \0 \0 I f s C o p y D 0044500 i s k O E P . b c p l \0 373 226 227 f 0044520 # \0 \0 376 001 \0 6 273 / / I f s C o 0044540 p y D i s k O E P . b c p l \r / 0044560 / C o p y r i g h t X e r o 0044600 x C o r p o r a t i o n 1 9 0044620 8 1 \r / / L a s t m o d i f 0044640 i e d J a n u a r y 2 2 , 0044660 1 9 8 1 2 : 4 4 P M b y 0044700 B o g g s \r \r e x t e r n a l 0044720 \r [ \r / / o u t g o i n g p 0044740 r o c e d u r e \r I n i t C o p 0044760 y D i s k O E P \r \r / / i n c 0045000 o m i n g p r o c e d u r e s 0045020 \r D e c l a r e O E P ; C o p 0045040 y D i s k J o b \r ] \r \r / / - - 0045060 - - - - - - - - - - - - - - - - * 0045120 - - - - - - - - 376 \0 257 033 346 - - - 0045140 - - - - - - - - - - - - - - - - 0045160 - - - - - - - - - - - - - - - \r 0045200 l e t I n i t C o p y D i s k 0045220 O E P ( o e v ) b e D e c l 0045240 a r e O E P ( o e v , l v C 0045260 o p y D i s k J o b ) \r / / - - 0045300 - - - - - - - - - - - - - - - - * 0045400 - - - - - - - - - - \r \r 377 \0 \0 C 0045420 o m p i l e I f s C o p y D i s 0045440 k . c m \0 373 230 025 272 $ \0 \0 376 \0 Z e 0045460 220 B c p l / f o I f s C o p y 0045500 D i s k I n i t . b c p l I f 0045520 s C o p y D i s k J o b . b c p 0045540 l I f s C o p y D i s k R a r 0045560 e . b c p l I f s C o p y D i 0045600 s k O E P . b c p l \r 377 \0 \0 I f 0045620 s C o p y D i s k . c m \0 373 226 227 0045640 f 002 \0 \0 376 \0 207 260 037 I f s C o p y 0045660 D i s k . d e c l I f s C o p 0045700 y D i s k I n i t . b c p l I 0045720 f s C o p y D i s k J o b . b c 0045740 p l I f s C o p y D i s k R a 0045760 r e . b c p l I f s C o p y D 0046000 i s k O E P . b c p l C o m p 0046020 i l e I f s C o p y D i s k . c 0046040 m I f s C o p y D i s k . c m 0046060 374 0046061