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