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