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