$ 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