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