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