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