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