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