$ od -c -N 50000 [Indigo]<Spruce>13>SpruceInstall.bcpl!2
0000000 / / S p r u c e I n s t a l l
0000020 . B c p l - - S p r u c e
0000040 S p o o l e r I n s t a l l
0000060 a t i o n \r / / e r r o r s
0000100 2 5 0 \r \r / / g e t " S p
0000120 r u c e . d " w a s t o o
0000140 b i g : o n l y n e e d \r \t
0000160 g e t " S p r u c e P r i n t
0000200 e r s . d " \r \t g e t " S p r
0000220 u c e d o c . d " \r \t g e t "
0000240 s p r u c e M i s c . d " \r g e
0000260 t " S p r u c e F i l e s . d
0000300 " \r g e t " M e n u D e f s .
0000320 d " \r g e t " S p r u c e
0000340 P a r a m s N a m e s . d " \r g
0000360 e t " S p r u c e F i l e s N
0000400 a m e s . d " \r \r e x t e r n a
0000420 l / / d e f i n e d h e r
0000440 e \r \t [ \r \t S p r u c e I n s t
0000460 a l l \r \t M e n u I n i t H e l
0000500 p \r \t ] \r \r e x t e r n a l /
0000520 / e x t e r n a l \r \t [ \r \t /
0000540 / * * * * * * * F u n c t i
0000560 o n s b e t w e e n S p r u
0000600 c e S p o o l a n d S p r u
0000620 c e I n U t i l n o t n e e
0000640 d e d d u r i n g i n s t a
0000660 l l a t i o n \r \t / / * * * *
0000700 * * * ( S o m e o n e I s K n
0000720 o c k i n g t o V a l i d a
0000740 t e S p r u c e F i l e ) \r \t /
0000760 / * * * * * * * L o a d c
0001000 o m m a n d f i l e m u s t
0001020 b e m a i n t a i n e d t
0001040 o r e t a i n t h i s f a
0001060 c t \r \t S o m e o n e I s K n o
0001100 c k i n g \r \t V a l i d a t e S
0001120 p r u c e F i l e \r \t / / * *
0001140 * * * * * \r \r \t / / S p r u c
0001160 e F i l e s \r \t F o r g e t S p
0001200 r u c e F i l e \r \t I n i t S p
0001220 r u c e F i l e \r \t R e s e t S
0001240 p r u c e F i l e \r \r \t / / S
0001260 p r u c e I n U t i l \r \t D i s
0001300 k O b j e c t \r \t G e t P r i n
0001320 t e r N a m e s \r \t M a k e V a
0001340 l i d S p r u c e F i l e \r \t S
0001360 e t u p D r i v e \r \t S t a t u
0001400 s O f 3 1 s \r \r \t / / S p r u
0001420 c e C h e c k \r \t C h e c k P o
0001440 i n t \r \t L e v e l P o s \r \t O
0001460 p e n C h e c k P o i n t F i l
0001500 e \r \t R e s t o r e F r o m C h
0001520 e c k P o i n t \r \t \r \t / / M
0001540 e n u P a c k a g e \r \t / /
0001560 C r e a t e M e n u D i s p l a
0001600 y S t r e a m \r \t / / F i l l
0001620 B o x \r \t / / G e t S t r i n
0001640 g \r \t / / M e n u S i z e \r \t
0001660 / / S c a n M e n u \r \t / /
0001700 W r i t e B o x \r \t / / L o a
0001720 d e d M e n u s \r \t M e n u F
0001740 i l e s H e l p \r \t M e n u P a
0001760 r a m s H e l p \r \t \r \t / / S
0002000 p r u c e U t i l s \r \t C r e
0002020 a t e F P R D \r \t F S G e t X \r
0002040 \t F S I n i t \r \t F S P u t \r \t
0002060 I n i t R a m \r \t L o a d R a
0002100 m \r \t S p r u c e E r r o r \r \t
0002120 \r \t / / T e m p l a t e \r \t P
0002140 u t T e m p l a t e \r \r \t / /
0002160 T F S \r \t T F S C l o s e \r \t T
0002200 F S I n i t \r \r \t / / B F S \r
0002220 \t B F S C l o s e \r \t \r \t / /
0002240 O S \r \t M y F r a m e \r \t S h o
0002260 w D i s p l a y S t r e a m \r \t
0002300 Z e r o \r \r \t / / s t a t i c
0002320 s \r \t B a n d F i l e \r \t B i t
0002340 M a r g i n A d j u s t \t \r \t b
0002360 r e a k P a g e \r \t C a p a b i
0002400 l i t i e s \r \t C h e c k P r A
0002420 t t r \r \t D e b u g S y s t e m
0002440 \r \t D u t y C y c l e \r \t d r i
0002460 v e 1 D i s k \r \t E r r o r F i
0002500 l e \r \t F a c e t s \r \t F o n t
0002520 F i l e \r \t L a n d s c a p e D
0002540 e v i c e \t \r \t m a x Q u e u e
0002560 d \r \t m e n u \r \t m e n u B u f
0002600 \r \t a l l o c L o g F i l e \r \r
0002620 \t / / M e n u D a t a \r \t m e
0002640 n u S t r e a m \r \t N u m B i n
0002660 s \r \t O v e r l a y T o p \r \t P
0002700 a p e r D i m e n s i o n B \t \r
0002720 \t P a p e r D i m e n s i o n S
0002740 \t \r \t P a p e r S p e e d I n c
0002760 h e s \t \r \t P e r m a n e n t B
0003000 o t t o m \r \t P o l y g o n R a
0003020 t i o \r \t p r i n t e r D e v i
0003040 c e \t \r \t p r i n t e r F o r w
0003060 a r d \t \r \t p r i n t e r N a m
0003100 e \t \r \t P R a m I m a g e \r \t R
0003120 e s o l u t i o n B \t \r \t R e s
0003140 o l u t i o n S \t \r \t S c a n L
0003160 e n g t h I n c h e s \t \r \t S c
0003200 a n M a r g i n A d j u s t \r \t
0003220 S p o o l F i l e \r \t s p r i n
0003240 t F P R D \r \t s p r u c e F P R
0003260 D \r \t S p r u c e Z o n e \r \t t
0003300 r i d e n t D i s k \r \t t r i d
0003320 e n t U s e d \r \t s t a t u s O
0003340 f 3 1 s \r \t U s e r N a m e \r \t
0003360 / / * * * * S e e S p r u
0003400 c e S t a t i c s , S p r u c
0003420 e U t i l s , b e l o w - -
0003440 m o r e m e m o r y f o r
0003460 i n s t a l l a t i o n \r \t M
0003500 o r e L o w ; M o r e H i g h
0003520 \r \t ] \r \r s t a t i c I n s t
0003540 a l l S t a c k S i z e = 2
0003560 0 0 0 \r s t a t i c [ m e n
0003600 u ; m e n u S t r e a m ; m
0003620 e n u B u f ; M e n u I n i t
0003640 H e l p = 0 ; C h a n g e R o
0003660 u t i n e ] \r s t a t i c
0003700 [ e r r o r S p e c s ; f o
0003720 n t S p e c s ; s p o o l S p
0003740 e c s ; b a n d S p e c s ;
0003760 o k T o I n s t a l l ] \r s t
0004000 r u c t u r e S P E C S : [
0004020 f i l e I d w o r d ; d e
0004040 v I d w o r d ; d e f D e v
0004060 w o r d ; s i z e I d w o
0004100 r d ; d e f S i z e w o r d
0004120 ] \r \r / / \t I n s t a l l a t
0004140 i o n i s a m e n u - d r
0004160 i v e n p r o c e s s , u s
0004200 i n g t h e m e n u p a c
0004220 k a g e c o n t a i n e d i
0004240 n < A l t o > M e n u . d m
0004260 ( K . K n o x , p r o p r i
0004300 e t o r . ) \r / / T h e c o
0004320 m p a n i o n M e n u E d i t
0004340 p r o g r a m , r u n o n
0004360 a d i f f e r e n t d i s
0004400 k , c r e a t e s a n d m
0004420 a i n t a i n s t h e f o l
0004440 l o w i n g f i l e s , \r / /
0004460 w h i c h a r e p a r t
0004500 o f t h e s t a n d a r d
0004520 S p r u c e s o u r c e p a
0004540 c k a g e : \r \r / / \t S p r u c
0004560 e N a m e s . d , S p r u c e
0004600 T a b l e s . b c p l - - d
0004620 e s c r i b e b o t h m e n
0004640 u s ( s e e b e l o w ) \r /
0004660 / \t S p r u c e P a r a m s N a
0004700 m e s . d , S p r u c e P a r
0004720 a m s T a b l e s . b c p l -
0004740 - d e s c r i b e t h e p
0004760 a r a m s m e n u ( s e e
0005000 b e l o w ) \r / / \t S p r u c e
0005020 F i l e s N a m e s . d , S p
0005040 r u c e N a m e s T a b l e s .
0005060 b c p l - - d e s c r i b e
0005100 t h e f i l e c o n f i g
0005120 . m e n u . \r \r / / \t I n s t
0005140 a l l a t i o n i n v o l v e
0005160 s s e t t i n g a n u m b
0005200 e r o f p r i n t i n g a
0005220 n d s p o o l i n g p a r a
0005240 m e t e r s , a n d d e s c
0005260 r i b i n g t h e s i z e s
0005300 a n d l o c a t i o n s \r /
0005320 / o f f i l e s u s e d
0005340 i n t h e s p o o l i n g
0005360 a n d p r i n t i n g p r o
0005400 c e s s . T h e S p r u c e
0005420 o p e r a t i o n s m a n u
0005440 a l c o n t a i n s p i c t
0005460 u r e s o f t h e p a r a
0005500 m e t e r s a n d \r / / c o
0005520 n f i g u r a t i o n m e n u
0005540 s , a l o n g w i t h d e
0005560 s c r i p t i o n s o f t h
0005600 e i r u s e . I t w o u l
0005620 d h a v e b e e n b e t t
0005640 e r i f b o t h m e n u s
0005660 w e r e s i m u l t a n e o
0005700 u s l y \r / / a v a i l a b l
0005720 e , b u t s p a c e c o n
0005740 s i d e r a t i o n s i n t r
0005760 u d e d . T h e m e n u s
0006000 a r e c r e a t e d b y r
0006020 u n n i n g M e n u E d i t
0006040 t o m o d i f y t h e S p
0006060 r u c e \r / / ( c o m p l e t
0006100 e ) m e n u , t h e n b y
0006120 e x t r a c t i n g t h e m
0006140 i n t o t h e S p r u c e
0006160 P a r a m s a n d S p r u c
0006200 e F i l e s m e n u s . I f
0006220 s p a c e l a t e r a l l
0006240 o w s , \r / / t h e y c a n
0006260 b e r e m e r g e d . T h
0006300 e m e n u s a r e p r e s
0006320 e n t e d t o t h e u s e
0006340 r s e q u e n t i a l l y ,
0006360 P a r a m s f i r s t . \r / /
0006400 \t E a c h m e n u , a n d
0006420 i t s u n d e r l y i n g i
0006440 n s t a l l a t i o n v a r i
0006460 a b l e s , a r e i n i t i
0006500 a l i z e d f r o m s o m e
0006520 s t a n d a r d d e f a u l
0006540 t s . \r / / T h e n v a l u
0006560 e s p r o d u c e d d u r i
0006600 n g p r e v i o u s i n s t
0006620 a l l a t i o n s e s s i o n
0006640 s a r e o b t a i n e d f
0006660 r o m t h e c h e c k p o i
0006700 n t f i l e , i f i t \r /
0006720 / e x i s t s a n d i s
0006740 v a l i d . T h e s e a r e
0006760 r e f l e c t e d i n t h
0007000 e m e n u s , t h e n t h
0007020 e u s e r i s g i v e n
0007040 t h e o p p o r t u n i t y
0007060 t o c h a n g e \r / / t h e
0007100 m , a c c e p t t h e c u
0007120 r r e n t s e t , o r q u
0007140 i t w i t h o u t a f f e c
0007160 t i n g t h e i n s t a l l
0007200 a t i o n . T h e c o n f i
0007220 g u r a t i o n c a n n o t
0007240 b e \r / / a c c e p t e d (
0007260 " I n s t a l l " o p e r a t
0007300 i o n ) u n l e s s a l l
0007320 r e q u i r e d f i l e s a
0007340 r e a l l o c a t e d . I n
0007360 s t a l l a t i o n i n v o l
0007400 v e s s t o r i n g t h e \r
0007420 / / n e w v a l u e s b a
0007440 c k i n t o t h e c h e c
0007460 k p o i n t f i l e . \r / / \t
0007500 T h e h a i r i n t h e
0007520 C h a n g e f u n c t i o n s
0007540 i s d u e t o t h e d
0007560 e s i r e t o u s e t h e
0007600 m b o t h t o r e f l e c
0007620 t c u r r e n t v a l u e s
0007640 \r / / d e r i v e d f r o m
0007660 c h e c k p o i n t i n f o
0007700 r m a t i o n o r d u e t
0007720 o c h a n g e s i n o t h
0007740 e r v a l u e s ( e . g . ,
0007760 p r i n t e r c h o i c e
0010000 a f f e c t s p a p e r \r / /
0010020 s i z e a n d o r i e n t
0010040 a t i o n , l o o k i n g u
0010060 p a p r e - e x i s t i n g
0010100 f i l e c a u s e s c h a
0010120 n g e s i n d i s p l a y
0010140 o f s i z e a n d d i s k
0010160 \r / / l o c a t i o n ) , a
0010200 n d t o u s e t h e m t
0010220 o r e s p o n d t o k e y
0010240 b o a r d i n p u t . \r \f / /
0010260 - - - - - - - - - - - - - - -
0010300 - - - - - - - - - - - - - - - -
*
0010340 - - - - - - - \r l e t S p r u
0010360 c e I n s t a l l ( d o I n s t
0010400 a l l , r u n C f a ) b e \r
0010420 / / - - - - - - - - - - - - -
0010440 - - - - - - - - - - - - - - - -
*
0010500 - - - - - - - - - \r \r / / \t A f
0010520 t e r l o a d i n g t h e
0010540 R A M , e l i m i n a t i n g
0010560 i t s s t o r a g e , a n
0010600 d s e t t i n g u p m e m
0010620 o r y s t r u c t u r e v a
0010640 r i a b l e s , \r / / c r e a
0010660 t e , i n t i a l i z e , a
0010700 n d / o r v a l i d a t e t
0010720 h e C h e c k p o i n t f i
0010740 l e , a s n e c e s s a r y
0010760 . I f t h e c h e c k p
0011000 o i n t f i l e s e e m e d
0011020 \r / / i n v a l i d , t o o
0011040 o l d f o r t h e c u r
0011060 r e n t v e r s i o n ( s e
0011100 e v e r s i o n m a n a g e
0011120 m e n t i n S h a r e d S t
0011140 a t i c s a n d i n \r / /
0011160 O p e n C h e c k P o i n t F i
0011200 l e ( ) ) , o r h a d n o
0011220 t e x i s t e d , p r o c e
0011240 e d w i t h t h e i n s t
0011260 a l l a t i o n p r o c e s s
0011300 . P r o c e e d a l s o ,
0011320 i f \r / / d o I n s t a l l
0011340 w a s t r u e . O t h e r w
0011360 i s e , r e t u r n a n d
0011400 c o n t i n u e w i t h i n
0011420 i t i a l i z a t i o n . \r / /
0011440 \t I n s t a l l a t i o n p r
0011460 o c e e d s f o r e a c h
0011500 o f t h e m e n u s , a s
0011520 d e s c r i b e d i n t h
0011540 e g e n e r a l c o m m e n
0011560 t s . T h e C h a n g e ( )
0011600 \r / / f u n c t i o n , c o
0011620 n d i t i o n e d b y I n i
0011640 t M e n u , s i m p l y i n
0011660 v o k e s t h e a p p r o p
0011700 r i a t e C h a n g e . . . (
0011720 ) f u n c t i o n f o r t
0011740 h e l i s t \r / / s u p p l
0011760 i e d t o i t . K e y b o
0012000 r d i n p u t i s o b t a
0012020 i n e d u s i n g t h e m
0012040 e n u p a c k a g e f u n c
0012060 t i o n S c a n M e n u ( ) .
0012100 \r / / \t O n c e i n s t a l l
0012120 a t i o n i s c o m p l e t
0012140 e , S p r u c e f i n i s h
0012160 e s . ~ ~ C o n s i d e r
0012200 r e t u r n i n g a s u s u
0012220 a l t o r u n S p r u c e
0012240 a s \r / / r e q u e s t e d
0012260 i n t h e c o m m a n d
0012300 l i n e . \r [ \r
0012320 I n i t R a m ( P R a m I m a g
0012340 e , O r b i t R M R ) \r
0012360 O v e r l a y T o p = L o a d
0012400 R a m \t / / B o t t o m o f
0012420 f r e e s t o r a g e f o r
0012440 F S I n i t \r l e t
0012460 P e r m a n e n t T o p = M
0012500 y F r a m e ( ) - I n s t a l l
0012520 S t a c k S i z e \r @ #
0012540 3 3 5 = P e r m a n e n t T
0012560 o p ; P e r m a n e n t B o t
0012600 t o m = P e r m a n e n t T
0012620 o p \r s t a t u s O f 3
0012640 1 s = S t a t u s O f 3 1 s
0012660 ( ) \r / / ( i f a l
0012700 l o w e d & n e c c . ) , c r
0012720 e a t e a n d i n i t . f
0012740 i l e - - i f h a d t o
0012760 i n i t , i n s t a l l i
0013000 n d e p e n d e n t o f r e
0013020 q u e s t \r \r \t l e t O p C p
0013040 R e s u l t = O p e n C h e
0013060 c k P o i n t F i l e ( r u n C
0013100 f a ) \r \r \t M a k e V a l i d S
0013120 p r u c e F i l e ( l v a l l
0013140 o c L o g F i l e , " S p r u
0013160 c e . A l l o c " , 3 0 , D
0013200 I S K 3 1 ) \r \t I n i t S p r u
0013220 c e F i l e ( a l l o c L o g F
0013240 i l e , 4 , 3 ) \r \t R e s e
0013260 t S p r u c e F i l e ( a l l o
0013300 c L o g F i l e ) \r \r \t / / l
0013320 e t s = O p e n F i l e F
0013340 r o m F p ( a l l o c L o g F i
0013360 l e > > S P r u c e F i l e . m
0013400 a p > > F M . f p ) \r \r
0013420 i f O p C p R e s u l t &
0013440 n o t d o I n s t a l l r e
0013460 t u r n \r \r l e t p N a
0013500 m e T a b = t a b l e [ 0
0013520 ; 0 ; 0 ; 0 ; 0 ] \r
0013540 l e t p N a m e V e c =
0013560 v e c 1 9 \r f o r i
0013600 = 0 t o 4 d o p N a m
0013620 e T a b ! i = p N a m e V e
0013640 c + i * 4 \r G e t P r
0013660 i n t e r N a m e s ( p N a m e
0013700 T a b ) \r \r / / I n i
0013720 t i a l i z e M e n u \r
0013740 m e n u S t r e a m , m e n
0013760 u B u f = 0 , 0 \r
0014000 / / * * * * * * s e e d i
0014020 s c u s s i o n a b o u t u
0014040 n u s e d c o d e a b o v e
0014060 - - g i v e s o m e s p
0014100 a c e b a c k \r M o r
0014120 e L o w , M o r e H i g h =
0014140 S o m e o n e I s K n o c k i
0014160 n g , V a l i d a t e S p r u
0014200 c e F i l e - 5 / / * * * *
0014220 * \r I n i t M e n u ( M
0014240 e n u P a r a m s H e l p , C
0014260 h a n g e P a r a m ) / / C
0014300 a l l s F S I n i t , a l l
0014320 o c a t e s m e n u s \r
0014340 S e l e c t ( h d 1 ) \r
0014360 f o r i = 0 t o m a x
0014400 P r i n t e r D e v i c e d o
0014420 [ P u t B o x T e m p l a t
0014440 e ( p t D o v e r + i , "
0014460 $ S " , p N a m e T a b ! i )
0014500 ] \r / / S e t d e
0014520 f a u l t i n s t a l l a t i
0014540 o n v a l u e s ~ ~ s h o
0014560 u l d o b t a i n f r o m
0014600 d e v i c e t y p e - - n
0014620 o a c c e s s , f o r n o
0014640 w \r p r i n t e r D e v
0014660 i c e = p r i n t e r D o v
0014700 e r \r / / \t N o w , s e t
0014720 u p a t a b l e o f d e
0014740 f a u l t p r i n t e r a t
0014760 t r i b u t e s f o r e a c
0015000 h t y p e o f p r i n t e
0015020 r \r \t l e t d e f a u l t T a
0015040 b = F S G e t X ( ( m a x P
0015060 r i n t e r D e v i c e + 1 ) *
0015100 l e n P r A t t r ) \r \t l e t
0015120 p = d e f a u l t T a b \r \t
0015140 C h e c k P r A t t r = d e
0015160 f a u l t T a b / / m a y
0015200 b e o v e r w r i t t e n b
0015220 y R e s t o r e F r o m C h e
0015240 c k p o i n t b e l o w \r \t f
0015260 o r i = 0 t o m a x P
0015300 r i n t e r D e v i c e d o \r
0015320 \t \t [ \r \t \t p > > P r i n t e r
0015340 A t t r i b u t e s . C a p a b
0015360 i l i t i e s = ( t a b l e
0015400 [ D o v e r D e f a u l t ;
0015420 P e n g u i n D e f a u l t ; \r
0015440 S e q u o i a D e f a u l t ;
0015460 P i m l i c o D e f a u l t ;
0015500 P u f f i n D e f a u l t ]
0015520 ) ! i \r \t \t p > > P r i n t e
0015540 r A t t r i b u t e s . P a p e
0015560 r D i m e n s i o n B = ( t
0015600 a b l e [ 1 0 6 ; 1 0 6 ;
0015620 1 0 6 ; 8 5 ; 8 5 ] ) ! i
0015640 \r \t \t p > > P r i n t e r A t
0015660 t r i b u t e s . P a p e r D i
0015700 m e n s i o n S = ( t a b l
0015720 e [ 8 5 ; 8 5 ; 8 5 ; 1
0015740 1 0 ; 1 1 0 ] ) ! i \r \t \t
0015760 p > > P r i n t e r A t t r i b
0016000 u t e s . P a p e r S p e e d I
0016020 n c h e s = ( t a b l e [
0016040 1 0 2 0 ; 1 1 0 0 ; 3 4 0 ;
0016060 4 0 0 ; 4 0 0 ] ) ! i \r
0016100 \t \t p > > P r i n t e r A t t r
0016120 i b u t e s . S c a n L e n g t
0016140 h I n c h e s = ( t a b l e
0016160 [ 1 1 7 ; 1 2 1 ; 1 1 2 ;
0016200 9 5 ; 1 1 8 ] ) ! i \r \t
0016220 \t p > > P r i n t e r A t t r i
0016240 b u t e s . L a n d s c a p e D
0016260 e v i c e = ( t a b l e [
0016300 - 1 ; - 1 ; - 1 ; 0 ; 0
0016320 ] ) ! i \r \t \t p > > P r i n
0016340 t e r A t t r i b u t e s . p r
0016360 i n t e r F o r w a r d = (
0016400 t a b l e [ 0 ; 0 ; 0 ;
0016420 - 1 ; - 1 ] ) ! i \r \t \t p
0016440 > > P r i n t e r A t t r i b u
0016460 t e s . b r e a k P a g e =
0016500 ( t a b l e [ - 1 ; - 1 ;
0016520 - 1 ; - 1 ; - 1 ] ) ! i \r
0016540 \t \t p > > P r i n t e r A t t
0016560 r i b u t e s . B i t M a r g i
0016600 n A d j u s t = ( t a b l e
0016620 [ 1 2 0 ; 2 2 0 ; 1 0 1 ;
0016640 1 0 2 ; 6 3 0 ] ) ! i \r
0016660 \t \t p > > P r i n t e r A t t r
0016700 i b u t e s . S c a n M a r g i
0016720 n A d j u s t = ( t a b l e
0016740 [ 1 9 0 ; 1 7 3 0 ; 1 0 4
0016760 ; 1 0 5 ; 5 2 8 ] ) ! i \r
0017000 \t \t p > > P r i n t e r A t t
0017020 r i b u t e s . D u t y C y c l
0017040 e = ( t a b l e [ 9 0 ;
0017060 9 8 ; 9 0 ; 8 7 ; 9 9 ]
0017100 ) ! i \r \t \t p > > P r i n t e
0017120 r A t t r i b u t e s . F a c e
0017140 t s = ( t a b l e [ 3 2 ;
0017160 2 2 ; 3 6 ; 1 2 ; 2 2
0017200 ] ) ! i \r \t \t p > > P r i n t
0017220 e r A t t r i b u t e s . P o l
0017240 y g o n R a t i o = ( t a b
0017260 l e [ 2 4 ; 2 4 ; 2 4 ;
0017300 2 4 ; 2 4 ] ) ! i \r \t \t p
0017320 > > P r i n t e r A t t r i b u
0017340 t e s . N u m B i n s = ( t
0017360 a b l e [ 1 ; 2 1 ; 1 ;
0017400 1 ; 1 ] ) ! i \r \t p = p
0017420 + l e n P r A t t r \r \t \t ]
0017440 \r \t S e t P r i n t e r P a r m
0017460 s ( ) \t / / m o v e s p r i n
0017500 t e r D e v i c e s e t i n
0017520 t o s t a t i c s \r \t R e s o
0017540 l u t i o n B , R e s o l u t
0017560 i o n S = 3 8 4 0 , 3 8 4
0017600 0 \r p r i n t e r N a m
0017620 e = U s e r N a m e \r
0017640 D e b u g S y s t e m = #
0017660 4 0 \t / / i f / D , d o n
0017700 ' t a c t u a l l y r u n
0017720 O r b i t \r R e s t o r
0017740 e F r o m C h e c k P o i n t (
0017760 L E V S h a r e d I n s t S t a
0020000 t i c s , L E V I n s t a l l
0020020 a t i o n S t a t i c s , 0 ,
0020040 t r u e ) \r l e t d
0020060 e v = s e l e c t o n p r
0020100 i n t e r D e v i c e i n t o
0020120 [ d e f a u l t : 0 \r \t c
0020140 a s e p r i n t e r D o v e r
0020160 : p t D o v e r ; c a s e
0020200 p r i n t e r P e n g u i n :
0020220 p t P e n g u i n ; c a s e
0020240 p r i n t e r S e q u o i a :
0020260 p t S e q u o i a \r \t c a s e
0020300 p r i n t e r P i m l i c o :
0020320 p t P i m l i c o ; c a s e
0020340 p r i n t e r P u f f i n :
0020360 p t P u f f i n ] \r C
0020400 h a n g e P a r a m ( d e v ) \r
0020420 C h a n g e ( t a b l e
0020440 [ p s S ; p s B ; r S ;
0020460 r B ; m a S ; m a B ; l
0020500 l S ; p s ; p n ; d b g ;
0020520 p m ; f p ; b p ; 0 ]
0020540 ) \r \r / / M a i n
0020560 p a r a m e t e r i n s t a l
0020600 l a t i o n l o o p \r
0020620 w h i l e C h a n g e P a r a
0020640 m ( S c a n M e n u ( m e n u )
0020660 , t r u e ) l o o p / /
0020700 m a y f i n i s h i n s t e
0020720 a d o f r e t u r n i n g \r
0020740 S a v e P r i n t e r P
0020760 a r m s ( ) / / m o v e s
0021000 l a s t c h a n g e s i n t
0021020 o t a b l e f o r p r i n
0021040 t e r D e v i c e \r C h
0021060 e c k P o i n t ( L E V S h a r
0021100 e d I n s t S t a t i c s , L
0021120 E V I n s t a l l a t i o n S t
0021140 a t i c s ) \r F S P u t
0021160 ( d e f a u l t T a b ) \r \r
0021200 / / F i l e C o n f i g
0021220 u r a t i o n s \r I n i
0021240 t M e n u ( M e n u F i l e s H
0021260 e l p , C h a n g e C o n f i
0021300 g ) \r R e s t o r e F r
0021320 o m C h e c k P o i n t ( L E V
0021340 S h a r e d I n s t S t a t i c
0021360 s , L E V I n s t a l l a t i
0021400 o n S t a t i c s , 0 , t r
0021420 u e ) \r S e l e c t ( h
0021440 d 2 ) \r l e t v =
0021460 t a b l e [ f n E r r o r s
0021500 ; f d E r r o r s ; D I S K
0021520 3 1 ; f s E r r o r s ; - 1
0021540 ] ; e r r o r S p e c s =
0021560 v \r l e t v = t
0021600 a b l e [ f n F o n t s ;
0021620 f d F o n t s ; - 1 ; f s F
0021640 o n t s ; - 1 ] ; f o n t
0021660 S p e c s = v \r l e
0021700 t v = t a b l e [ f n
0021720 S p o o l ; f d S p o o l ;
0021740 - 1 ; f s S p o o l ; - 1
0021760 ] ; s p o o l S p e c s =
0022000 v \r l e t v = t a
0022020 b l e [ f n B a n d s ; f
0022040 d B a n d s ; - 1 ; f s B a
0022060 n d s ; - 1 ] ; b a n d S
0022100 p e c s = v \r C h a
0022120 n g e ( t a b l e [ d c M 3
0022140 1 ; d c T 8 0 ; # 4 0 2 ;
0022160 0 ] ) \r o k T o I n s
0022200 t a l l = 1 ; O K T o I n
0022220 s t a l l ( ) \r \r w h i
0022240 l e C h a n g e C o n f i g (
0022260 S c a n M e n u ( m e n u ) ,
0022300 t r u e ) l o o p / / m a
0022320 y f i n i s h i n s t e a d
0022340 o f r e t u r n i n g \r
0022360 \r s p r u c e F P R
0022400 D = C r e a t e F P R D ( "
0022420 S p r u c e . B o o t " , t r
0022440 u e ) / / C o m p u t e F
0022460 P R D s ( I n L d , O u t L
0022500 d a r g u m e n t s ) f o r
0022520 s e l f a n d S p r u c e
0022540 p r i n t e r \r u n l
0022560 e s s s p r u c e F P R D d
0022600 o S p r u c e E r r o r ( 2 5
0022620 7 ) \r \r / / C o m p u
0022640 t e m a x Q u e u e d f r o
0022660 m L E V R u n D o c s c h e
0022700 c k p o i n t c a p a c i t y
0022720 \r l e t c h e c k S i
0022740 z e = L e v e l P o s ( 0 ,
0022760 L E V R u n D o c s , t r u
0023000 e ) - L e v e l P o s ( 0 ,
0023020 L E V R u n D o c s ) \r
0023040 l e t e n t r y S i z e =
0023060 2 * L e n C H e c o r d +
0023100 l e n D o c G + l e n S P r
0023120 u c e F i l e \r m a x Q
0023140 u e u e d = c h e c k S i z
0023160 e / e n t r y S i z e \r
0023200 m a x Q u e u e d = m a x Q
0023220 u e u e d - ( m a x Q u e u
0023240 e d r s h i f t 3 ) / /
0023260 7 / 8 , f o r s a f e t y \r
0023300 / / A n y o t h e r
0023320 s t a t e t o b e i n i
0023340 t i a l i z e d g o e s h e
0023360 r e . . . . . \r C h e c
0023400 k P o i n t ( L E V S h a r e d
0023420 I n s t S t a t i c s , L E V
0023440 I n s t a l l a t i o n S t a t
0023460 i c s ) \r f i n i s h \r
0023500 ] \r \r / / - - - - - -
0023520 - - - - - - - - - - - - - - - -
*
0023600 \r a n d C h a n g e P a r a m
0023620 ( b o x I d , r e a d F r o m
0023640 K e y b o a r d ; n u m a r g
0023660 s n a ) = v a l o f \r / /
0023700 - - - - - - - - - - - - - - -
0023720 - - - - - - - - - - - - - - - -
*
0023760 - - - - - - - \r \r / / \t I n s t
0024000 a l l a t i o n o f p a r a
0024020 m e t e r s , b a s e d o n
0024040 P a r a m s m e n u . C o
0024060 m p a n i o n t o C h a n g
0024100 e C o n f i g , b e l o w . \r
0024120 / / \t r e a d F r o m K e y b o
0024140 a r d , i f t r u e , i d
0024160 e n t i f i e s t h e b o x
0024200 I d ( m e n u b o x i n d
0024220 e x ) a s t h e i n d e p
0024240 e n d e n t v a r i a b l e
0024260 i n \r / / t h e c h a n g e
0024300 p r o c e s s ; d e p e n d
0024320 e n t v a l u e s w i l l
0024340 b e c h a n g e d v i a r
0024360 e c u r s i v e c a l l s w
0024400 i t h r e a d F r o m K e y b
0024420 o a r d f a l s e . \r / / r
0024440 e a d F r o m K e y b o a r d
0024460 a l s o r e q u e s t s , f
0024500 o r n u m e r i c a l a n d
0024520 s t r i n g b o x e s , t
0024540 h a t t h e n e w v a l u
0024560 e s b e r e a d u s i n g
0024600 G e t P a r a m A r g ( ) . \r
0024620 / / C o n s u l t S p r u
0024640 c e P a r a m s N a m e s . d
0024660 a n d t h e p i c t u r e ,
0024700 v i a M e n u E d i t , f
0024720 o r t h e m e a n i n g s
0024740 o f c a s e i n d i c e s .
0024760 \r / / C o n s u l t t h e
0025000 m e n u p a c k a g e f o r
0025020 m e n u - r e l a t e d f u
0025040 n c t i o n s n o t f o u n
0025060 d i n t h e u t i l i t i
0025100 e s a t t h e e n d o f
0025120 t h i s m o d u l e . \r / /
0025140 \t W h e n t h e p r i n t e
0025160 r s e l e c t i o n i s c
0025200 h a n g e d , a s e t o f
0025220 s y s t e m - p r o v i d e d
0025240 d e f a u l t s f i l l s
0025260 a n u m b e r o f r e l a
0025300 t e d \r / / b o x e s . ~ ~
0025320 C o n s i d e r r e m e m b
0025340 e r i n g t h e p r e v i o
0025360 u s l y - i n s t a l l e d v
0025400 a l u e s f o r e a c h p
0025420 r i n t e r t y p e . \r / / \t
0025440 T w o m e n u i t e m s a
0025460 r e c o m m a n d s : " Q u
0025500 i t " ( r e t u r n t o e
0025520 x e c ) a n d " I n s t a l
0025540 l F i l e s " ( g o o n
0025560 t o n e x t m e n u . ) \r
0025600 [ \r i f n a < 2
0025620 t h e n r e a d F r o m K e
0025640 y b o a r d = f a l s e \r
0025660 l e t s t a t A d r ,
0025700 n a m e , s p e c s = n i
0025720 l , n i l , n i l \r
0025740 s w i t c h o n b o x I d i
0025760 n t o \r \t [ \r \t / / P r i n t
0026000 e r T y p e : \r \t c a s e p
0026020 t D o v e r : c a s e p t P
0026040 i m l i c o : c a s e p t S
0026060 e q u o i a : \r \t c a s e p t
0026100 P u f f i n : c a s e p t P
0026120 e n g u i n : \r \t [ c
0026140 o m p i l e i f p t P e n g u
0026160 i n - p t D o v e r n e 4
0026200 t h e n [ M e n u A l l o c
0026220 a t i o n E r r o r ( ) ] \r \t
0026240 f o r i = p t D o
0026260 v e r t o p t P e n g u i n
0026300 d o S e l e c t ( i ) ; D
0026320 e s e l e c t ( b o x I d ) \r \t
0026340 i f r e a d F r o m K
0026360 e y b o a r d d o S a v e P
0026400 r i n t e r P a r m s ( ) /
0026420 / s a v e o l d v a l u e s
0026440 \r \t l e t d e v I n d
0026460 e x = b o x I d - p t D o v
0026500 e r \r \t / / P e n g u
0026520 i n a c t s l i k e D o v
0026540 e r , f o r n o w \r \t
0026560 l e t d e v T a b = t a
0026600 b l e [ p r i n t e r D o v
0026620 e r ; p r i n t e r P i m l i
0026640 c o ; p r i n t e r S e q u o
0026660 i a ; p r i n t e r P u f f i
0026700 n ; p r i n t e r P e n g u i
0026720 n ] \r \t p r i n t e r
0026740 D e v i c e = d e v T a b !
0026760 d e v I n d e x \r \t S e
0027000 t P r i n t e r P a r m s ( )
0027020 / / m o v e i n a t t
0027040 r i b u t e s f o r n e w
0027060 d e v i c e \r \t C h a n
0027100 g e ( t a b l e [ p s B ; p
0027120 s S ; m a S ; m a B ; l l
0027140 S ; p s ; p m ; f p ; b
0027160 p ; 0 ] ) \r \t e
0027200 n d c a s e \r \t ] \r \t /
0027220 / P r i n t i n g P a r a m
0027240 e t e r s \r \t c a s e p s B :
0027260 c a s e p s S : c a s e
0027300 r B : c a s e r S : c a s
0027320 e l l S : c a s e m a S :
0027340 c a s e m a B : c a s e
0027360 p s : c a s e d b g : c a
0027400 s e p n : \r \t \t G e t P a r
0027420 a m A r g ( b o x I d , r e a
0027440 d F r o m K e y b o a r d ) ;
0027460 e n d c a s e \r \t / / P r i n
0027500 t i n g O p t i o n s : \r \t c
0027520 a s e p m : L a n d s c a p
0027540 e D e v i c e = L a n d s c
0027560 a p e D e v i c e x o r r e
0027600 a d F r o m K e y b o a r d \r \t
0027620 \t P u t B o x T e m p l a t e (
0027640 b o x I d , " $ S " , L a n
0027660 d s c a p e D e v i c e ? " L
0027700 a n d s c a p e " , " P o r t
0027720 r a i t " ) ; e n d c a s e \r
0027740 \t c a s e f p : p r i n t e
0027760 r F o r w a r d = p r i n t
0030000 e r F o r w a r d x o r r e
0030020 a d F r o m K e y b o a r d \r \t
0030040 \t P u t B o x T e m p l a t e (
0030060 b o x I d , " $ S P a g e
0030100 F i r s t " , p r i n t e r F
0030120 o r w a r d ? " F i r s t " ,
0030140 " L a s t " ) ; e n d c a s
0030160 e \r \t c a s e b p : \r \t \t b r
0030200 e a k P a g e = b r e a k P
0030220 a g e x o r r e a d F r o m
0030240 K e y b o a r d \r \t \t P u t B o
0030260 x T e m p l a t e ( b o x I d ,
0030300 " $ S B r e a k P a g e " ,
0030320 b r e a k P a g e ? " " ,
0030340 " N o " ) ; e n d c a s e \r
0030360 \r \t / / C o m m a n d s : \r \t
0030400 c a s e c P a r a m Q u i t :
0030420 I n i t M e n u ( 0 ) ; f i
0030440 n i s h \r \t c a s e c P a r a
0030460 m I n s t a l l : r e s u l t
0030500 i s f a l s e / / g o o
0030520 n \r \r \t d e f a u l t : i f
0030540 b o x I d t h e n D e s e l
0030560 e c t ( b o x I d ) / / i g
0030600 n o r e \r \t ] \r r e s u
0030620 l t i s t r u e / / g o
0030640 o n \r ] \r \r \f \r / / -
0030660 - - - - - - - - - - - - - - - -
*
0030740 - - - - - \r a n d G e t P a r
0030760 a m A r g ( b o x I d , r e a
0031000 d F r o m K e y b o a r d ) b
0031020 e \r / / - - - - - - - - - - -
0031040 - - - - - - - - - - - - - - - -
*
0031100 - - - - - - - - - - - \r \r / / \t
0031120 U s e r o u t i n e s f r o
0031140 m u t i l i t i e s b e l o
0031160 w a n d f r o m m e n u
0031200 p a c k a g e t o o b t a i
0031220 n ( i f r e a d F r o m K e
0031240 y b o a r d ) a n d \r / / c
0031260 o r r e c t l y d i s p l a y
0031300 c h o i c e s f o r n u m
0031320 e r i c a l o r s t r i n g
0031340 b o x e s . \r [ \r
0031360 l e t s t r = r e a d
0031400 F r o m K e y b o a r d ? G e
0031420 t S t r i n g ( B o x ( b o x I
0031440 d ) , 0 , S p r u c e Z o n
0031460 e ) , 0 \r l e t s t
0031500 a t A d r , p l a c e s , i
0031520 s O c t , s p e c s = n i
0031540 l , 0 , f a l s e , n i l
0031560 \r s w i t c h o n b o
0031600 x I d i n t o \r \t [ \r \r \t / /
0031620 n u m b e r s : \r \t c a s e
0031640 p s B : s t a t A d r = l
0031660 v P a p e r D i m e n s i o n
0031700 B ; d o c a s e # 4 0 1 /
0031720 / * 1 0 \r \t c a s e p s S :
0031740 s t a t A d r = l v P a
0031760 p e r D i m e n s i o n S ; d
0032000 o c a s e # 4 0 1 \r \t c a s
0032020 e r B : s t a t A d r =
0032040 l v R e s o l u t i o n B ;
0032060 d o c a s e # 4 0 1 \r \t c a
0032100 s e r S : s t a t A d r =
0032120 l v R e s o l u t i o n S ;
0032140 d o c a s e # 4 0 1 \r \t c
0032160 a s e l l S : s t a t A d r
0032200 = l v S c a n L e n g t h
0032220 I n c h e s ; d o c a s e #
0032240 4 0 1 \r \t c a s e p s : s t
0032260 a t A d r = l v P a p e r
0032300 S p e e d I n c h e s ; d o c
0032320 a s e # 4 0 2 / / * 1 0 0
0032340 \r \t c a s e d b g : s t a t
0032360 A d r = l v D e b u g S y
0032400 s t e m ; i s O c t = t r
0032420 u e ; d o c a s e # 4 0 0
0032440 / / * 1 \r \t c a s e m a S :
0032460 s t a t A d r = l v S c
0032500 a n M a r g i n A d j u s t ;
0032520 d o c a s e # 4 0 0 \r \t c a s
0032540 e m a B : s t a t A d r =
0032560 l v B i t M a r g i n A d j
0032600 u s t ; d o c a s e # 4 0 0
0032620 \r \t c a s e # 4 0 2 : p l a
0032640 c e s = 1 \r \t c a s e # 4
0032660 0 1 : p l a c e s = p l a
0032700 c e s + 1 \r \t c a s e # 4 0 0
0032720 : \r \t \t i f r e a d F r o m K
0032740 e y b o a r d t h e n @ s t
0032760 a t A d r = G e t N u m b e
0033000 r ( s t r , p l a c e s ) \r \t
0033020 \t u n l e s s @ s t a t A d r
0033040 d o @ s t a t A d r = 1
0033060 / / p r e v e n t s o
0033100 m e r i d i c u l o u s s t
0033120 u f f \r \t \t P u t N u m b e r (
0033140 b o x I d , @ s t a t A d r ,
0033160 p l a c e s , i s O c t ) \r
0033200 \t \t e n d c a s e \r \t / / S t
0033220 r i n g s \r \t c a s e p n :
0033240 i f r e a d F r o m K e y b o
0033260 a r d t h e n [ p r i n t
0033300 e r N a m e = s t r ; s t
0033320 r = 0 ] \r \t \t P u t B o
0033340 x T e m p l a t e ( p n , " $
0033360 S " , p r i n t e r N a m e )
0033400 ; e n d c a s e \r \r \t d e f a
0033420 u l t : S p r u c e E r r o r
0033440 ( 2 5 9 ) \r \t ] \r i f
0033460 s t r t h e n F S P u t ( s
0033500 t r ) \r ] \r \f \r / / -
0033520 - - - - - - - - - - - - - - - -
*
0033600 - - - - - \r a n d C h a n g e
0033620 C o n f i g ( b o x I d , r e
0033640 a d F r o m K e y b o a r d ;
0033660 n u m a r g s n a ) = v a
0033700 l o f \r / / - - - - - - - - -
0033720 - - - - - - - - - - - - - - - -
*
0033760 - - - - - - - - - - - - - \r \r /
0034000 / \t I n s t a l l a t i o n o
0034020 f f i l e c o n f i g u r a
0034040 t i o n s , b a s e d o n
0034060 C o n f i g s m e n u . C o
0034100 m p a n i o n t o C h a n g
0034120 e P a r a m , b e l o w . \r /
0034140 / A c t i v i t i e s s i m
0034160 i l a r t o C h a n g e P a
0034200 r a m , a b o v e . T h e
0034220 n u m e r i c a l c o l l e c
0034240 t i n g i s s e l f - c o n
0034260 t a i n e d i n t h e f s
0034300 . . . c a s e s \r / / ( n u
0034320 m b e r o f p a g e s s p
0034340 e c s . ) M o s t o f t h
0034360 e h a i r i s d u e t o
0034400 t h e p r o v i s i o n s
0034420 f o r d e f a u l t i n g d
0034440 e v i c e a n d p a g e s
0034460 i z e \r / / s e l e c t i o n
0034500 s t o t h e v a l u e s
0034520 o b t a i n i n g w h e n l
0034540 a s t t h e f i l e s w e
0034560 r e i n s t a l l e d , a n
0034600 d f o r f a l l i n g b a
0034620 c k i n t o l e g a l \r / /
0034640 d e f a u l t c o n f i g u
0034660 r a t i o n s w h e n t h e
0034700 r a n g e o f o p t i o n
0034720 s i s r e d u c e d b y
0034740 e l i m i n a t i n g o n e
0034760 o r m o r e a u x i l i a r
0035000 y \r / / d i s k s f r o m
0035020 c o n s i d e r a t i o n . T
0035040 h e " s p e c s " t a b l e
0035060 s a r e s e t u p w i t
0035100 h v a l u e s p r o m o t i
0035120 n g t h e u s e o f t h
0035140 e s e \r / / d e f a u l t s
0035160 w h e n i n s t a l l a t i o
0035200 n b e g i n , a n d a r e
0035220 u p d a t e d t o r e f l
0035240 e c t t h e a c t u a l v
0035260 a l u e s , o b t a i n e d
0035300 f r o m t h e f i l e s \r /
0035320 / t h e m s e l v e s o r
0035340 f r o m t h e k e y b o a r
0035360 d , a s t h e p r o c e s
0035400 s p r o g r e s s e s . ~ ~
0035420 C o n s i d e r a t t a c h
0035440 i n g t h e s p e c s t a
0035460 b l e s \r / / t o t h e m
0035500 e n u i t e m s , e l i m i
0035520 n a t i n g m a n y r e p e
0035540 t i t i v e s e t u p o p e
0035560 r a t i o n s . \r / / \t T w o
0035600 m e n u i t e m s a r e c
0035620 o m m a n d s : " Q u i t "
0035640 - - r e t u r n t o e x e
0035660 c , a n d " I n s t a l l "
0035700 - - s a v e n e w l y s
0035720 e l e c t e d \r / / i n s t a
0035740 l l a t i o n v a l u e s a
0035760 n d q u i t . " I n s t a l
0036000 l " i s n o t d i s p l a
0036020 y e d , a n d i t s s e l
0036040 e c t i o n i s n o t o b
0036060 e y e d , u n l e s s t h e
0036100 \r / / c u r r e n t c o n f
0036120 i g u r a t i o n i s c o r
0036140 r e c t a n d c o m p l e t
0036160 e . \r [ \r i f
0036200 n a < 2 t h e n r e a d F r
0036220 o m K e y b o a r d = f a l
0036240 s e \r l e t s t a t A
0036260 d r , n a m e , s p e c s
0036300 = n i l , n i l , n i l \r
0036320 s w i t c h o n b o x
0036340 I d i n t o \r \t [ \r \t / / D
0036360 i s k C o n f i g u r a t i o
0036400 n s : \r \t c a s e d c M 3 1 :
0036420 \r \t \t i f s t a t u s O f 3 1
0036440 s e q 2 t h e n [ S e
0036460 l e c t ( b o x I d ) ; e n d
0036500 c a s e ] / / i g n o r e
0036520 \r \t \t i f r e a d F r o m K e
0036540 y b o a r d t h e n s t a t
0036560 u s O f 3 1 s = s t a t u s
0036600 O f 3 1 s x o r 1 / / 0
0036620 o r 1 \r \t \t t e s t s t a
0036640 t u s O f 3 1 s & S e t u p D r
0036660 i v e ( D I S K 3 1 B , S p r
0036700 u c e Z o n e , t r u e ) t
0036720 h e n D e s e l e c t ( b o x
0036740 I d ) / / a c c e p t \r \t \t
0036760 o r [ i f d r i v e 1
0037000 D i s k t h e n B F S C l o
0037020 s e ( d r i v e 1 D i s k ) ; S
0037040 e l e c t ( b o x I d ) ; d r i
0037060 v e 1 D i s k , s t a t u s O f
0037100 3 1 s = 0 , 0 ] \r \t \t t e s t
0037120 r e a d F r o m K e y b o a r
0037140 d t h e n d o c a s e # 4
0037160 0 2 o r e n d c a s e / /
0037200 a d j u s t f i l e s a p
0037220 p r o p r i a t e l y \r \t c a s
0037240 e d c T 8 0 : c o m p i l e
0037260 t e s t T r i d e n t S w i
0037300 f n o t [ d o c a s e # 4
0037320 0 1 ] i f s o \r \t \t [ \r \t \t
0037340 t r i d e n t U s e d = t r
0037360 i d e n t U s e d x o r r e
0037400 a d F r o m K e y b o a r d \r \t
0037420 \t i f t r i d e n t U s e d &
0037440 n o t t r i d e n t D i s k
0037460 t h e n t r i d e n t D i s k
0037500 = S e t u p D r i v e ( D I
0037520 S K T 8 0 , S p r u c e Z o n
0037540 e , t r u e ) \r \t \t t e s t
0037560 t r i d e n t U s e d & t r i d
0037600 e n t D i s k t h e n D e s
0037620 e l e c t ( b o x I d ) \r \t \t
0037640 o r [ i f t r i d e n t
0037660 D i s k t h e n T F S C l o
0037700 s e ( t r i d e n t D i s k ) \r
0037720 \t \t t r i d e n t
0037740 U s e d , t r i d e n t D i s
0037760 k = f a l s e , 0 ; S e
0040000 l e c t ( b o x I d ) ] \r \t \t
0040020 t e s t r e a d F r o m K e y
0040040 b o a r d t h e n d o c a s
0040060 e # 4 0 2 o r e n d c a s
0040100 e \r \t \t ] \r \t c a s e # 4 0 2
0040120 : C h a n g e ( t a b l e [
0040140 f n F o n t s ; f n E r r o
0040160 r s ; f n S p o o l ; f n B
0040200 a n d s ; 0 ] ) ; e n d c
0040220 a s e \r \r \t / / F i l e V a
0040240 l i d a t i o n s a n d S p
0040260 e c i f i c a t i o n s \r \t c a
0040300 s e f n E r r o r s : s t a
0040320 t A d r , n a m e , s p e c
0040340 s = l v E r r o r F i l e
0040360 , " S p r u c e . E r r o r s
0040400 " , e r r o r S p e c s ; d
0040420 o c a s e # 4 0 7 \r \t c a s e
0040440 f n F o n t s : s t a t A d
0040460 r , n a m e , s p e c s =
0040500 l v F o n t F i l e , " S
0040520 p r u c e . F o n t s " , f o
0040540 n t S p e c s \r \t c a s e # 4
0040560 0 7 : \r \t \t [ \r \t \t u n l e s s
0040600 r e a d F r o m K e y b o a r
0040620 d & n o t I s S e l e c t e d
0040640 ( b o x I d ) d o d o c a s
0040660 e # 4 0 3 \r \t \t S e l e c t (
0040700 b o x I d ) ; e n d c a s e \r
0040720 \t \t ] \r \t c a s e f n S p o o
0040740 l : s t a t A d r , n a m e
0040760 , s p e c s = l v S p o
0041000 o l F i l e , " S p r u c e .
0041020 S p o o l " , s p o o l S p e
0041040 c s ; d o c a s e # 4 0 3 \r
0041060 \t c a s e f n B a n d s : s
0041100 t a t A d r , n a m e , s p
0041120 e c s = l v B a n d F i l
0041140 e , " S p r u c e . B a n d s
0041160 " , b a n d S p e c s ; d o
0041200 c a s e # 4 0 3 \r \t c a s e
0041220 # 4 0 3 : [ \r \t \t l e t d e
0041240 v , p g s = s p e c s > >
0041260 S P E C S . d e f D e v , s p
0041300 e c s > > S P E C S . d e f S i
0041320 z e \r \t \t u n l e s s D i s k
0041340 O b j e c t ( d e v ) d o d
0041360 e v , p g s = - 1 , - 1
0041400 \r \t \t i f r e a d F r o m K e
0041420 y b o a r d & I s S e l e c t e
0041440 d ( b o x I d ) t h e n \r \t \t
0041460 \t [ i f @ s t a t A d r t
0041500 h e n F o r g e t S p r u c e
0041520 F i l e ( @ s t a t A d r ) ;
0041540 @ s t a t A d r = 0 \r \t \t \t
0041560 i f d e v e q - 1 t
0041600 h e n d e v = D I S K 3 1
0041620 ] \r \t \t M a k e V a l i d S p
0041640 r u c e F i l e ( s t a t A d r
0041660 , n a m e , p g s , d e v
0041700 ) \r \t \t t e s t @ s t a t A d
0041720 r i f n o t s p e c s > > S
0041740 P E C S . d e f S i z e = -
0041760 1 \r \t \t i f s o [ s p e c
0042000 s > > S P E C S . d e f S i z e
0042020 = s t a t A d r = > S P r u
0042040 c e F i l e . n u m P a g e s \r
0042060 \t \t \t s p e c s > > S P E C S .
0042100 d e f D e v = s t a t A d r
0042120 = > S P r u c e F i l e . d e v
0042140 i c e C o d e ] \r \t \t C h a n
0042160 g e C o n f i g ( s p e c s > >
0042200 S P E C S . d e v I d ) ; C h
0042220 a n g e C o n f i g ( s p e c s
0042240 > > S P E C S . s i z e I d ) \r
0042260 \t \t ( @ s t a t A d r ? D e s
0042300 e l e c t , S e l e c t ) ( b
0042320 o x I d ) \r \t \t e n d c a s e \r
0042340 \t \t ] \r \f \r / / - - - - - - -
0042360 C h a n g e C o n f i g .
0042400 . . \r \r \t c a s e f s E r
0042420 r o r s : s p e c s , s t a
0042440 t A d r = e r r o r S p e c
0042460 s , l v E r r o r F i l e ;
0042500 d o c a s e # 4 1 0 \r \t c a
0042520 s e f s S p o o l : s p e c
0042540 s , s t a t A d r = s p o
0042560 o l S p e c s , l v S p o o
0042600 l F i l e ; d o c a s e # 4
0042620 1 0 \r \t c a s e f s B a n d s
0042640 : s p e c s , s t a t A d r
0042660 = b a n d S p e c s , l v
0042700 B a n d F i l e ; d o c a s
0042720 e # 4 1 0 \r \t c a s e f s F
0042740 o n t s : s p e c s , s t a
0042760 t A d r = f o n t S p e c s
0043000 , l v F o n t F i l e ; d
0043020 o c a s e # 4 1 0 / / n e
0043040 v e r f r o m k b d \r \t c a
0043060 s e # 4 1 0 : \r \t \t [ \r \t \t l
0043100 e t s t r = r e a d F r o
0043120 m K e y b o a r d ? G e t S
0043140 t r i n g ( B o x ( b o x I d )
0043160 , 0 , S p r u c e Z o n e )
0043200 , 0 \r \t \t l e t p l
0043220 a c e s , i s O c t = 0 ,
0043240 f a l s e \r \t \t l e t c u r
0043260 S i z e = s p e c s > > S P
0043300 E C S . d e f S i z e \r \t \t i f
0043320 r e a d F r o m K e y b o a r
0043340 d t h e n \r \t \t [ S
0043360 e l e c t ( s p e c s > > S P E
0043400 C S . f i l e I d ) ; c u r S
0043420 i z e = G e t N u m b e r (
0043440 s t r , 0 ) ] / / i n v
0043460 a l i d a t e \r \t \t s p e c s >
0043500 > S P E C S . d e f S i z e =
0043520 c u r S i z e \r \t \t t e s t
0043540 c u r S i z e n e - 1 t h
0043560 e n P u t N u m b e r ( b o x
0043600 I d , c u r S i z e , 0 ,
0043620 f a l s e ) \r \t \t o r F
0043640 i l l B o x ( B o x ( b o x I d
0043660 ) , w h i t e ) \r \t \t i f s
0043700 t r t h e n F S P u t ( s t
0043720 r ) \r \t \t e n d c a s e \r \t \t ]
0043740 \r \t c a s e f d E r r o r s :
0043760 s p e c s , s t a t A d r
0044000 = e r r o r S p e c s , l v
0044020 E r r o r F i l e ; d o c a
0044040 s e # 4 0 4 \r \t c a s e f d
0044060 F o n t s : s p e c s , s t
0044100 a t A d r = f o n t S p e c
0044120 s , l v F o n t F i l e ;
0044140 d o c a s e # 4 0 4 \r \t c a s
0044160 e f d S p o o l : s p e c s
0044200 , s t a t A d r = s p o o
0044220 l S p e c s , l v S p o o l
0044240 F i l e ; d o c a s e # 4 0
0044260 4 \r \t c a s e f d B a n d s :
0044300 s p e c s , s t a t A d r
0044320 = b a n d S p e c s , l v
0044340 B a n d F i l e ; d o c a s e
0044360 # 4 0 4 \r \t c a s e # 4 0 4
0044400 : [ \r \t l e t C y c
0044420 l e D i s k ( c h ) = s e l
0044440 e c t o n c h i n t o \r \t \t
0044460 [ c a s e D I S K 3 1 : D
0044500 I S K 3 1 B ; c a s e D I S
0044520 K 3 1 B : D I S K T 8 0 ; d
0044540 e f a u l t : D I S K 3 1 ]
0044560 \r \t l e t c u r C h o
0044600 i c e = s p e c s > > S P E
0044620 C S . d e f D e v \r \t l
0044640 e t n e x t C h o i c e =
0044660 r e a d F r o m K e y b o a r d
0044700 ? C y c l e D i s k ( c u r C
0044720 h o i c e ) , c u r C h o i c
0044740 e \r \t u n t i l D i s
0044760 k O b j e c t ( n e x t C h o i
0045000 c e ) d o n e x t C h o i c
0045020 e = C y c l e D i s k ( n e
0045040 x t C h o i c e ) \r \t s
0045060 p e c s > > S P E C S . d e f D
0045100 e v = n e x t C h o i c e \r
0045120 \t P u t B o x T e m p l
0045140 a t e ( b o x I d , " $ S " ,
0045160 s e l e c t o n n e x t C h
0045200 o i c e i n t o \r \t \t [ c a
0045220 s e D I S K 3 1 : " D P 0 "
0045240 ; c a s e D I S K 3 1 B :
0045260 " D P 1 " ; c a s e D I S K
0045300 T 8 0 : " T r i d e n t " ]
0045320 ) \r \t l e t f i l e I
0045340 d = s p e c s > > S P E C S
0045360 . f i l e I d \r \t i f
0045400 r e a d F r o m K e y b o a r d
0045420 & n e x t C h o i c e n e c
0045440 u r C h o i c e t h e n \r \t \t
0045460 [ s p e c s > > S P E C S . d
0045500 e f S i z e = - 1 ; S e l
0045520 e c t ( f i l e I d ) ; C h a
0045540 n g e C o n f i g ( f i l e I d
0045560 ) ] \r \t e n d c a s e
0045600 \r \t ] \r \t / / c o m m
0045620 a n d s : \r \t c a s e c C o n
0045640 f i g I n s t a l l : t e s t
0045660 O K T o I n s t a l l ( ) d
0045700 o c a s e # 4 2 0 o r d o
0045720 c a s e # 4 0 1 / / i g n
0045740 o r e \r \t c a s e c C o n f i
0045760 g Q u i t : o k T o I n s t a
0046000 l l = f a l s e \r \t c a s e
0046020 # 4 2 0 : \r \t \t I n i t M e n
0046040 u ( 0 ) ; \r \t \t c o m p i l
0046060 e i f T r i d e n t S w t h
0046100 e n [ i f t r i d e n t U
0046120 s e d t h e n T F S C l o s
0046140 e ( t r i d e n t D i s k ) ]
0046160 \r \t \t i f d r i v e 1 D i s k
0046200 t h e n B F S C l o s e ( d
0046220 r i v e 1 D i s k ) \r \t \t t e s
0046240 t o k T o I n s t a l l r e
0046260 s u l t i s f a l s e o r
0046300 f i n i s h \r \t d e f a u l t
0046320 : i f b o x I d t h e n
0046340 D e s e l e c t ( b o x I d )
0046360 / / i g n o r e \r \t ] \r
0046400 i f r e a d F r o m K e y b
0046420 o a r d t h e n O K T o I n
0046440 s t a l l ( ) \r r e s u
0046460 l t i s t r u e / / g o
0046500 o n \r ] \r \r \r / / - -
0046520 - - - - - - - - - - - - - - - -
*
0046600 - - - - \r a n d O K T o I n s
0046620 t a l l ( ) = v a l o f \r /
0046640 / - - - - - - - - - - - - - -
0046660 - - - - - - - - - - - - - - - -
*
0046720 - - - - - - - - \r \r / / \t C a l
0046740 l e d w h e n s t a t e o
0046760 f a n y f i l e h a s c
0047000 h a n g e d . D e t e r m i n
0047020 e s i f a l l r e q u i s
0047040 i t e f i l e s e x i s t
0047060 a n d h a v e l e g a l \r /
0047100 / S p r u c e F i l e s t r
0047120 u c t u r e s . A d j u s t s
0047140 t h e s t a t e o f t h
0047160 e " I N S T A L L " m e n u
0047200 c o m m a n d b a s e d o
0047220 n t h e r e s u l t . \r \t [
0047240 \r \t l e t f i l e s = t a
0047260 b l e [ f n E r r o r s ;
0047300 f n F o n t s ; f n S p o o l
0047320 ; f n B a n d s ; 0 ] \r \t
0047340 l e t f i l e = n i l \r \t
0047360 l e t r e s = v a l o f
0047400 [ \r \t f o r i = 1
0047420 t o 9 9 d o t e s t v a
0047440 l o f [ f i l e = f i l
0047460 e s ! i ; r e s u l t i s f
0047500 i l e ] i f n o t b r e a
0047520 k \r \t i f s o [
0047540 i f I s S e l e c t e d ( f i
0047560 l e ) r e s u l t i s f a l
0047600 s e ] \r \t r e s u l t i
0047620 s t r u e ] \r \t i f r e s
0047640 n e o k T o I n s t a l l
0047660 t h e n \r \t \t P u t B o x T e m
0047700 p l a t e ( c C o n f i g I n s
0047720 t a l l , " $ S " , r e s ?
0047740 " I N S T A L L " , " " ) \r
0047760 \t o k T o I n s t a l l = r
0050000 e s \r \t r e s u l t i s r e s
0050020 \r \t ] \r \r \f \r / / - - - - - -
0050040 - - - - - - - - - - - - I n s
0050060 t a l l a t i o n U t i l i t
0050100 i e s - - - - - - - - - - - -
0050120 - - - - - \r / / - - - - - - -
0050140 - - - - - - - - - - - - - - - -
*
0050200 - - - - - - - - - - - - - - - \r
0050220 a n d I n i t M e n u ( h e l
0050240 p R o u t i n e , c h a n g e
0050260 R o u t i n e ) b e \r / / -
0050300 - - - - - - - - - - - - - - - -
*
0050360 - - - - - \r \r / / \t h e l p R o
0050400 u t i n e ( ) i s o n e o
0050420 r t h e o t h e r o f t
0050440 h e M e n u I n i t H e l p
0050460 r o u t i n e s c r e a t e d
0050500 b y t h e m e n u p a c
0050520 k a g e ; t h e y \r / / h a
0050540 v e b e e n m a n u a l l y
0050560 e d i t e d t o h a v e
0050600 d i f f e r e n t n a m e s
0050620 s o t h a t b o t h m e n
0050640 u s c a n b e s i m u l t
0050660 a n e o u s l y l o a d e d .
0050700 \r / / c h a n g e R o u t i n
0050720 e ( ) i s o n e o f t h
0050740 e t w o a b o v e . D e
0050760 l e t e a n y p r e v i o u
0051000 s m e n u a n d i t s b
0051020 u f f e r s p a c e , c r e
0051040 a t e t h e \r / / n e w o
0051060 n e , s e t u p t h e c
0051100 h a n g e R o u t i n e ( ) f
0051120 o r u s e b y t h e C h
0051140 a n g e ( ) f u n c t i o n .
0051160 R e l e a s e a n y p r e
0051200 v i o u s m e n u ' s \r / /
0051220 m e n u d e s c r i p t i o n
0051240 t o S p r u c e Z o n e \r
0051260 [ \r i f m e n u
0051300 S t r e a m t h e n S h o w
0051320 D i s p l a y S t r e a m ( m e
0051340 n u S t r e a m , D S d e l e
0051360 t e ) \r i f M e n u I
0051400 n i t H e l p t h e n O v e
0051420 r l a y T o p = M e n u I n
0051440 i t H e l p \r F S I n i
0051460 t ( ) \r M e n u D a t a
0051500 , M e n u I n i t H e l p =
0051520 0 , 0 ; u n l e s s h e
0051540 l p R o u t i n e r e t u r n
0051560 ; M e n u I n i t H e l p =
0051600 h e l p R o u t i n e \r
0051620 l e t l e n M e n u = M
0051640 e n u S i z e ( ) + 1 / / l
0051660 o o k s l i k e C r e a t e
0051700 M e n u D i s p l a y S t r e a
0051720 m i s g o i n g t o e v
0051740 e n w o r d a l i g n i t
0051760 \r m e n u B u f = F
0052000 S G e t X ( l e n M e n u ) \r
0052020 m e n u S t r e a m =
0052040 C r e a t e M e n u D i s p l a
0052060 y S t r e a m ( m e n u B u f ,
0052100 l e n M e n u ) \r m e
0052120 n u = M e n u D a t a > > D
0052140 A T A . m e n u \r S h o
0052160 w D i s p l a y S t r e a m ( m
0052200 e n u S t r e a m ) \r C
0052220 h a n g e R o u t i n e = c
0052240 h a n g e R o u t i n e \r
0052260 ] \r \r / / - - - - - - - - -
0052300 - - - - - - - - - - - - - - - -
*
0052340 - - - - - - - - - - - - - \r a n
0052360 d C h a n g e ( p a r a m s )
0052400 b e \r / / - - - - - - - - -
0052420 - - - - - - - - - - - - - - - -
*
0052460 - - - - - - - - - - - - - \r / /
0052500 \t C h a n g e R o u t i n e i
0052520 s s e l e c t e d f r o m
0052540 { C h a n g e P a r a m ( ) ,
0052560 C h a n g e C o n f i g ( ) }
0052600 b y I n i t M e n u ( ) c a
0052620 l l . \r / / E x e c u t e t
0052640 h e s e l e c t e d r o u t
0052660 i n e f o r a l l b o x I
0052700 d s ( m e n u b o x i n d
0052720 i c e s ) i n a n i l - t
0052740 e r m i n a t e d v e c t o r
0052760 . \r f o r i = 0
0053000 t o 9 9 9 d o [ l e t
0053020 p a r a m = p a r a m s ! i
0053040 ; u n l e s s p a r a m b
0053060 r e a k ; C h a n g e R o u t
0053100 i n e ( p a r a m ) ] \r \r / /
0053120 - - - - - - - - - - - - - - -
0053140 - - - - - - - - - - - - - - - -
*
0053200 - - - - - - - \r a n d G e t N
0053220 u m b e r ( s t r , p l a c e
0053240 s ) = v a l o f \r / / - -
0053260 - - - - - - - - - - - - - - - -
*
0053340 - - - - \r \r / / \t R e t u r n s
0053360 t h e n u m e r i c a l v
0053400 a l u e o f t h e s t r i
0053420 n g , c h a n g i n g t o
0053440 o c t a l i f a n y o f
0053460 a n u m b e r o f o p t i
0053500 o n a l s y n t a x \r / / t
0053520 r i g g e r s i s p r e s e
0053540 n t . P l a c e s i n d i c
0053560 a t e s t h e l o c a t i o
0053600 n o f t h e ( d e c i m a
0053620 l ) f i x e d p o i n t f
0053640 o r t h e n u m b e r . T
0053660 h e \r / / n u m b e r i s
0053700 r e t u r n e d a n d s t o
0053720 r e d a s " n u m b e r * 1
0053740 0 ^ p l a c e s " . ~ ~ C o
0053760 n s i d e r u s i n g E v a
0054000 l P a r a m ? \r \t [ \r \t l e t
0054020 d e c , o c t , c h a r ,
0054040 w a s D o t , i s D e c =
0054060 0 , 0 , n i l , f a l s e
0054100 , t r u e \r \t f o r i =
0054120 1 t o s t r > > S T R . l e
0054140 n g t h d o \r \t s w i
0054160 t c h o n v a l o f [ c h
0054200 a r = s t r > > S T R . c h
0054220 a r ^ i ; r e s u l t i s c
0054240 h a r ] i n t o \r \t \t [ \r \t
0054260 \t c a s e $ # : i s D e c
0054300 = f a l s e ; e n d c a s e
0054320 \r \t \t c a s e $ 0 t o $ 7
0054340 : i f p l a c e s < 0 l o
0054360 o p ; o c t = o c t l s
0054400 h i f t 3 + ( c h a r - $
0054420 0 ) \r \t \t c a s e $ 8 t o
0054440 $ 9 : i f p l a c e s < 0
0054460 l o o p ; d e c = d e c *
0054500 1 0 + ( c h a r - $ 0 ) \r \t \t \t
0054520 i f w a s D o t t h e n p
0054540 l a c e s = p l a c e s - 1
0054560 ; e n d c a s e \r \t \t c a s e
0054600 $ . : w a s D o t = t r
0054620 u e ; p l a c e s = p l a
0054640 c e s - 1 ; e n d c a s e \r \t
0054660 \t c a s e $ B : c a s e $
0054700 b : c a s e $ Q : i s D e
0054720 c = f a l s e ; e n d c a
0054740 s e \r \t \t d e f a u l t : l o
0054760 o p / / t a k e a n y t h
0055000 i n g ! \r \t \t ] \r \t u n l e s s
0055020 w a s D o t d o p l a c e
0055040 s = p l a c e s - 1 \r \t u n
0055060 l e s s i s D e c d o d e
0055100 c = o c t \r \t f o r i =
0055120 0 t o p l a c e s d o
0055140 d e c = d e c * 1 0 \r \t r e s u
0055160 l t i s d e c \r \t ] \r \r \r / /
0055200 - - - - - - - - - - - - - - -
0055220 - - - - - - - - - - - - - - - -
*
0055260 - - - - - - - \r a n d P u t N
0055300 u m b e r ( b o x I d , v a l
0055320 u e , p l a c e s , i s O c
0055340 t ) b e \r / / - - - - - - -
0055360 - - - - - - - - - - - - - - - -
*
0055420 - - - - - - - - - - - - - - - \r
0055440 \r / / \t W r i t e s v a l u e
0055460 a s s o l e o c c u p a n
0055500 t o f s p e c i f i e d b
0055520 o x , w i t h p l a c e s
0055540 p l a c e s , c o n s i d e r
0055560 e d o c t a l i f i s O c
0055600 t . \r \t [ \r \t l e t f r a c t
0055620 = 0 ; p l a c e s = s
0055640 e l e c t o n p l a c e s i
0055660 n t o [ c a s e 0 : 1 ;
0055700 c a s e 1 : 1 0 ; c a s
0055720 e 2 : 1 0 0 ] \r \t f r a c
0055740 t = v a l u e r e m p l
0055760 a c e s ; v a l u e = v a
0056000 l u e / p l a c e s \r \t P u t B
0056020 o x T e m p l a t e ( b o x I d
0056040 , ( i s O c t ? " # $ U O "
0056060 , n o t f r a c t ? " $ D
0056100 " , p l a c e s e q 1 0 0
0056120 ? " $ D . $ 2 F 0 D " , " $
0056140 D . $ D " ) , v a l u e , f
0056160 r a c t ) \r \t ] \r \f \r / / - -
0056200 - - - - - - - - - - - - - - - -
0056220 I n s t a l l a t i o n U t
0056240 i l i t i e s ( m e n u - s p
0056260 e c i f i c ) . . . \r / /
0056300 - - - - - - - - - - - - - - -
0056320 - - - - - - - - - - - - - - - -
*
0056360 - - - - - - - \r a n d I s S e
0056400 l e c t e d ( b o x I d ) =
0056420 ( B o x ( b o x I d ) ) > > B O
0056440 X . s e l e c t e d n e 0
0056460 / / I s b o x s e l e c t
0056500 e d ? ( s e e b e l o w ) \r
0056520 / / - - - - - - - - - - - - -
0056540 - - - - - - - - - - - - - - - -
*
0056600 - - - - - - - - - \r \r / / - -
0056620 - - - - - - - - - - - - - - - -
*
0056700 - - - - \r a n d S e l e c t (
0056720 b o x I d ) b e \r / / - - -
0056740 - - - - - - - - - - - - - - - -
*
0057020 - - - \r / / \t F o r c e b o x
0057040 t o b e s e l e c t e d
0057060 ( s e e m e n u d o c u m e
0057100 n t a t i o n f o r d e f i
0057120 n i t i o n ) \r \t [ \r \t i f I
0057140 s S e l e c t e d ( b o x I d )
0057160 r e t u r n \r \t l e t b o x
0057200 = B o x ( b o x I d ) \r \t b
0057220 o x > > B O X . s e l e c t e d
0057240 = t r u e \r \t F i l l B o x
0057260 ( b o x , 0 ) \r \t ] \r \r / /
0057300 - - - - - - - - - - - - - - - -
*
0057360 - - - - - - \r a n d D e s e l
0057400 e c t ( b o x I d ) b e \r / /
0057420 - - - - - - - - - - - - - - -
0057440 - - - - - - - - - - - - - - - -
*
0057500 - - - - - - - \r / / \t F o r c e
0057520 b o x t o b e d e s e l
0057540 e c t e d \r \t [ \r \t u n l e s s
0057560 I s S e l e c t e d ( b o x I
0057600 d ) r e t u r n \r \t l e t b
0057620 o x = B o x ( b o x I d ) \r
0057640 \t b o x > > B O X . s e l e c t
0057660 e d = f a l s e \r \t F i l l
0057700 B o x ( b o x , 0 ) \r \t ] \r \r
0057720 / / - - - - - - - - - - - - -
0057740 - - - - - - - - - - - - - - - -
*
0060000 - - - - - - - - - \r a n d P u
0060020 t B o x T e m p l a t e ( b o x
0060040 I d , s t r , a , b , c
0060060 , d , e , f , g ) b e
0060100 \r / / - - - - - - - - - - - -
0060120 - - - - - - - - - - - - - - - -
*
0060160 - - - - - - - - - - \r / / \t U s
0060200 i n g a s i m p l e s t r
0060220 i n g s t r e a m , u s e
0060240 P u t T e m p l a t e t o c
0060260 o n s t r u c t a b o x ' s
0060300 c o n t e n t s \r \t [ \r \t l e
0060320 t P ( s , c ) b e \r \t
0060340 [ l e t s t = s > > S T
0060360 . p a r 1 ; l e t l n =
0060400 s t > > S T R . l e n g t h + 1
0060420 ; s t > > S T R . l e n g t h
0060440 = l n ; s t > > S T R . c
0060460 h a r ^ l n = c ] \r \t D e
0060500 s e l e c t ( b o x I d ) \r \t l
0060520 e t b o x = B o x ( b o x
0060540 I d ) \r \t F i l l B o x ( b o x
0060560 , w h i t e ) \r \t l e t v
0060600 = v e c 2 0 \r \t v ! 0 =
0060620 0 \r \t l e t s = v e c 1
0060640 0 ; Z e r o ( s , 1 0 ) ;
0060660 s > > S T . p u t s = P ;
0060700 s > > S T . p a r 1 = v \r \t
0060720 P u t T e m p l a t e ( s , s
0060740 t r , a , b , c , d ,
0060760 e , f , g ) \r \t i f v > >
0061000 S T R . l e n g t h t h e n
0061020 W r i t e B o x ( b o x , v )
0061040 \r \t ] \r \r / / - - - - - - - -
0061060 - - - - - - - - - - - - - - - -
*
0061120 - - - - - - - - - - - - - - \r a
0061140 n d B o x ( b o x I d ) =
0061160 m e n u > > M E N U . b o x ^ b
0061200 o x I d / / s e e m e n u
0061220 p k g . R e t u r n b o x
0061240 c o r r e s p o n d i n g t
0061260 o b o x I d \r / / - - - - -
0061300 - - - - - - - - - - - - - - - -
*
0061360 - \r \f \r / / t h e s e p r o b
0061400 a b l y b e l o n g i n S
0061420 p r u c e i n U t i l s \r / /
0061440 - - - - - - - - - - - - - - - -
*
0061520 - - - - - - \r a n d S e t P r
0061540 i n t e r P a r m s ( ) b e \r
0061560 / / - - - - - - - - - - - - -
0061600 - - - - - - - - - - - - - - - -
*
0061640 - - - - - - - - - \r \t [ \r \t l e
0061660 t v = C h e c k P r A t t
0061700 r \r \t l e t p = p r i n t
0061720 e r D e v i c e \r \t v = v
0061740 + p * l e n P r A t t r \r \t C
0061760 a p a b i l i t i e s = v >
0062000 > P r i n t e r A t t r i b u t
0062020 e s . C a p a b i l i t i e s
0062040 \r \t P a p e r D i m e n s i o
0062060 n B = v > > P r i n t e r A
0062100 t t r i b u t e s . P a p e r D
0062120 i m e n s i o n B \r \t P a p e
0062140 r D i m e n s i o n S = v >
0062160 > P r i n t e r A t t r i b u t
0062200 e s . P a p e r D i m e n s i o
0062220 n S \r \t P a p e r S p e e d I
0062240 n c h e s = v > > P r i n t
0062260 e r A t t r i b u t e s . P a p
0062300 e r S p e e d I n c h e s \r \t
0062320 S c a n L e n g t h I n c h e s
0062340 = v > > P r i n t e r A t t
0062360 r i b u t e s . S c a n L e n g
0062400 t h I n c h e s \r \t L a n d s
0062420 c a p e D e v i c e = v > >
0062440 P r i n t e r A t t r i b u t e
0062460 s . L a n d s c a p e D e v i c
0062500 e \r \t p r i n t e r F o r w
0062520 a r d = v > > P r i n t e r
0062540 A t t r i b u t e s . p r i n t
0062560 e r F o r w a r d \r \t b r e
0062600 a k P a g e = v > > P r i n
0062620 t e r A t t r i b u t e s . b r
0062640 e a k P a g e \r \t B i t M a
0062660 r g i n A d j u s t = v > >
0062700 P r i n t e r A t t r i b u t e
0062720 s . B i t M a r g i n A d j u s
0062740 t \r \t S c a n M a r g i n A
0062760 d j u s t = v > > P r i n t
0063000 e r A t t r i b u t e s . S c a
0063020 n M a r g i n A d j u s t \r
0063040 \t D u t y C y c l e = v > >
0063060 P r i n t e r A t t r i b u t e
0063100 s . D u t y C y c l e \r \t F
0063120 a c e t s = v > > P r i n t
0063140 e r A t t r i b u t e s . F a c
0063160 e t s \r \t P o l y g o n R a
0063200 t i o = v > > P r i n t e r
0063220 A t t r i b u t e s . P o l y g
0063240 o n R a t i o \r \t N u m B i
0063260 n s = v > > P r i n t e r A
0063300 t t r i b u t e s . N u m B i n
0063320 s \r \t ] \r \r / / - - - - - -
0063340 - - - - - - - - - - - - - - - -
*
0063420 \r a n d S a v e P r i n t e r
0063440 P a r m s ( ) b e \r / / - -
0063460 - - - - - - - - - - - - - - - -
*
0063540 - - - - \r \t [ \r \t l e t v =
0063560 C h e c k P r A t t r \r \t l e
0063600 t p = p r i n t e r D e v
0063620 i c e \r \t v = v + p * l
0063640 e n P r A t t r \r \t v > > P r i
0063660 n t e r A t t r i b u t e s . C
0063700 a p a b i l i t i e s = C a
0063720 p a b i l i t i e s \r \t v >
0063740 > P r i n t e r A t t r i b u t
0063760 e s . P a p e r D i m e n s i o
0064000 n B = P a p e r D i m e n s
0064020 i o n B \r \t v > > P r i n t e
0064040 r A t t r i b u t e s . P a p e
0064060 r D i m e n s i o n S = P a
0064100 p e r D i m e n s i o n S \r \t
0064120 v > > P r i n t e r A t t r i b
0064140 u t e s . P a p e r S p e e d I
0064160 n c h e s = P a p e r S p e
0064200 e d I n c h e s \r \t v > > P r
0064220 i n t e r A t t r i b u t e s .
0064240 S c a n L e n g t h I n c h e s
0064260 = S c a n L e n g t h I n c
0064300 h e s \r \t v > > P r i n t e r
0064320 A t t r i b u t e s . L a n d s
0064340 c a p e D e v i c e = L a n
0064360 d s c a p e D e v i c e \r \t
0064400 v > > P r i n t e r A t t r i b
0064420 u t e s . p r i n t e r F o r w
0064440 a r d = p r i n t e r F o r
0064460 w a r d \r \t v > > P r i n t
0064500 e r A t t r i b u t e s . b r e
0064520 a k P a g e = b r e a k P a
0064540 g e \r \t v > > P r i n t e r
0064560 A t t r i b u t e s . B i t M a
0064600 r g i n A d j u s t = B i t
0064620 M a r g i n A d j u s t \r \t
0064640 v > > P r i n t e r A t t r i b
0064660 u t e s . S c a n M a r g i n A
0064700 d j u s t = S c a n M a r g
0064720 i n A d j u s t \r \t v > > P
0064740 r i n t e r A t t r i b u t e s
0064760 . D u t y C y c l e = D u
0065000 t y C y c l e \r \t v > > P r i
0065020 n t e r A t t r i b u t e s . F
0065040 a c e t s = F a c e t s \r
0065060 \t v > > P r i n t e r A t t r
0065100 i b u t e s . P o l y g o n R a
0065120 t i o = P o l y g o n R a t
0065140 i o \r \t v > > P r i n t e r
0065160 A t t r i b u t e s . N u m B i
0065200 n s = N u m B i n s \r \t ]
0065220 \r \r \f \r / / - - - - - - - H
0065240 i s t o r y . . . \r \r / /
0065260 D C S , S e p t e m b e r
0065300 6 , 1 9 7 8 4 : 5 9 P M
0065320 , d e r i v e d f r o m n
0065340 o n - d i s p l a y v e r s i
0065360 o n \r / / S e p t e m b e r
0065400 7 , 1 9 7 8 9 : 2 4 P M
0065420 , m o r e \r / / S e p t e m
0065440 b e r 7 , 1 9 7 8 1 0 :
0065460 0 7 P M , s y n t a x e r
0065500 r o r s \r / / S e p t e m b e
0065520 r 8 , 1 9 7 8 2 : 5 8
0065540 P M , r e p a i r n u m b e
0065560 r g e t , o c t a l d i s
0065600 p l a y \r / / S e p t e m b e
0065620 r 9 , 1 9 7 8 2 : 3 0
0065640 P M , a d d f i l e s t u
0065660 f f \r / / S e p t e m b e r
0065700 1 1 , 1 9 7 8 1 0 : 4 9
0065720 A M , s p l i t m e n u s
0065740 ( s o b ) f o r s p a c e
0065760 r e a s o n s , f i x s t r
0066000 i n g i n p u t b u g \r / /
0066020 S e p t e m b e r 1 2 , 1
0066040 9 7 8 6 : 5 3 A M , r e
0066060 p a i r l i n g e r i n g p
0066100 r o b l e m s \r / / S e p t e
0066120 m b e r 1 4 , 1 9 7 8 1
0066140 2 : 2 5 P M , a l l o w S
0066160 P r u c e F i l e s t o u s
0066200 e t h e i r d e f a u l t
0066220 d e v i c e s \r / / S e p t e
0066240 m b e r 1 8 , 1 9 7 8 1
0066260 0 : 2 9 A M , c h a n g e
0066300 i n F P R D i n s t a l l a
0066320 t i o n \r / / S e p t e m b e
0066340 r 1 9 , 1 9 7 8 1 : 2 4
0066360 P M , f o r m a t , d o c
0066400 u m e n t \r / / S e p t e m b
0066420 e r 2 1 , 1 9 7 8 3 : 4
0066440 5 P M , c o n t r i b u t e
0066460 m e n u s p e c t o s t
0066500 o r a g e a f t e r u s e .
0066520 \r / / O c t o b e r 1 7 ,
0066540 1 9 7 8 2 : 5 5 P M , t u
0066560 r n p u f f i n o n . B W
0066600 B \r / / O c t o b e r 1 9 ,
0066620 1 9 7 8 1 0 : 5 7 A M ,
0066640 c o n t r i b u t e u n u s
0066660 e d r u n t i m e c o d e
0066700 t o s t o r a g e , r i g h
0066720 t a w a y \r / / N o v e m b
0066740 e r 1 0 , 1 9 7 8 1 0 :
0066760 3 1 A M , i n c r e a s e
0067000 i n s t a l l a t i o n s t a
0067020 c k s i z e \r / / f i r s
0067040 t c u t w i t h P r i n t
0067060 e r A t t r i b u t e s t u f
0067100 f \r / / M a r c h 7 , 1 9
0067120 7 9 1 1 : 4 1 A M c o r
0067140 r e c t p u f f i n i n s t
0067160 a l l v a l u e s , f i x
0067200 P u t N u m b e r , c r u d e
0067220 v a l i d i t y c h e c k \r
0067240 / / f i x ~ ~ . d n a m
0067260 e s \r / / M a y 9 , 1 9 7
0067300 9 4 : 0 2 P M b u m p
0067320 m e n u s i z e b y o n e
0067340 t o a l l o w f o r e v e
0067360 n w o r d a l i g n m e n t
0067400 \r / / J u l y 1 , 1 9 7 9
0067420 3 : 2 1 P M , s e t d
0067440 e f a u l t p r i n t e r c
0067460 a p a b i l i t i e s \r / / A
0067500 u g u s t 2 9 , 1 9 7 9
0067520 1 0 : 5 2 A M , a d d N u
0067540 m B i n s t o p r i n t e r
0067560 a t t r i b u t e s t u f f
0067600 \r / / S e p t e m b e r 2 5
0067620 , 1 9 7 9 2 : 5 3 P M ,
0067640 g e t p r i n t e r d e v
0067660 i c e n a m e s f r o m U
0067700 s e r . C m \r / / J a n u a r
0067720 y 3 0 , 1 9 8 0 1 : 5 2
0067740 P M , L o a d o r b i t c
0067760 o n t r o l l i n g m i c r o
0070000 c o d e \r / / \r \0 \0 032 ( 6 3 5
0070020 ) \ 6 4 9 b 3 3 B 7 2 8 b 1 4 B
0070040 4 2 3 1 b 2 4 5 B 7 b 1 0 B 3 8
0070060 6 2 b 1 0 B \r
0070067