$ od -c -N 50000 [eris]<Lisp>KOTO>LISPUSERS>TogMenu.TEdit!2
0000000 X E R O X \t T O G M E N U \r 2 \r
0000020 \r 4 \r \r 1 \r \r T o g M e n u \r 1
0000040 \r \r 4 \r \r B y : H e n r y
0000060 T h o m p s o n ( H T h o m p
0000100 s o n . p a @ X e r o x . c o m
0000120 ) \r \r I N T R O D U C T I O N \r
0000140 T h i s i s a f a c i l i
0000160 t y f o r b u i l d i n g
0000200 s i n g l e - r e g i o n m e
0000220 n u s w h i c h c y c l e
0000240 t h r o u g h a s e q u e n
0000260 c e o f o p t i o n s a s
0000300 y o u l e f t - b u t t o n
0000320 . I t c a n b e u s e
0000340 d f o r s t a r t / s t o p
0000360 b u t t o n s , o r f o r
0000400 p a r a m e t e r s e t t i
0000420 n g w i t h a p e r m a n
0000440 e n t d i s p l a y o f t
0000460 h e v a l u e s e l e c t e
0000500 d . \r F U N C T I O N S \r ( M a
0000520 k e T o g M e n u l i s t - o
0000540 f - i t e m s ) \t [ F u n c t i
0000560 o n ] \r C r e a t e s a T o
0000600 g M e n u f r o m t h e l
0000620 i s t o f i t e m s . \r A
0000640 n i t e m i s o f t h e
0000660 f o r m ( n a m e v a l S
0000700 e t o u t F n e x p l a i n
0000720 S t r i n g h i d d e n ) ,
0000740 o r j u s t a n o n - l i
0000760 s t w h i c h i s b o t h
0001000 n a m e a n d v a l S e t
0001020 . L i s t p n a m e / v a
0001040 l S e t i s e v a l u a t e
0001060 d f o r d i s p l a y / v a
0001100 l u e r e s p e c t i v e l y
0001120 . O t h e r w i s e u s e
0001140 d a s i s , w i t h N I
0001160 L v a l S e t d e f a u l t
0001200 i n g t o n a m e . \r O u t
0001220 F n i s c a l l e d a s
0001240 y o u l e a v e a s e t t
0001260 i n g , u s e f u l f o r
0001300 S t a r t / S t o p s o r t s
0001320 o f t h i n g s . I t e
0001340 m s w i t h n o n - N I L
0001360 h i d d e n d o n o t a p
0001400 p e a r a s y o u c y c l
0001420 e w i t h l e f t b u t t
0001440 o n , b u t w i l l a p p
0001460 e a r i n p o p - u p m e
0001500 n u . \r ( T o g M e n u t m
0001520 . . . ) \t [ F u n c t i o n ] \r
0001540 D i s p l a y s a T o g M e
0001560 n u , t m , c r e a t e d
0001600 b y M a k e T o g M e n u . \r
0001620 D r i v e i t w i t h l e
0001640 f t b u t t o n - m i d d
0001660 l e b u t t o n m a k e s
0001700 a n o r d i n a r y p o p -
0001720 u p m e n u o f i t -
0001740 s e l e c t i n g i n t h i
0001760 s s e t s y o u i n t h
0002000 a t s t a t e . T h e o
0002020 u t F n o f t h e s t a t
0002040 e y o u t h e r e b y l e
0002060 a v e i s N O T c a l l e
0002100 d . \r ( T o g M e n u R e s e t
0002120 m e n u i t e m ) \t [ F u n
0002140 c t i o n ] \r t o r e s e t
0002160 m e n u t o i t e m o r
0002200 i n i t i a l s t a t e i f
0002220 i t e m i s u n s p e c i
0002240 f i e d . \r ( T o g M e n u V a
0002260 l u e m e n u ) \t [ F u n c t
0002300 i o n ] \r G e t s t h e c u
0002320 r r e n t v a l u e . U s
0002340 e i t w i t h n o a r g
0002360 u m e n t a s t h e n a m
0002400 e o f a n i t e m t o
0002420 m a k e a n i t e m w h i
0002440 c h s h o w s i t s v a l
0002460 u e . \r \r E X A M P L E S \r F o
0002500 r e x a m p l e a s i t e
0002520 m s : \r \t ( O n e 1 ) \r d i s
0002540 p l a y s t h e w o r d "
0002560 O n e " a n d h a s v a l
0002600 u e 1 \r \t ( ( T o g M e n u V
0002620 a l u e ) ( R A N D 1 1 0 0
0002640 ) N I L " A r a n d o m
0002660 n u m b e r " ) \r h a s a s
0002700 v a l u e a r a n d o m n
0002720 u m b e r , w h i c h i s
0002740 d i s p l a y e d \r \t ( S t a r
0002760 t N I L ( D o I t ) " S t
0003000 a r t r u n n i n g " ) \r w
0003020 i l l d i s p l a y S t a r
0003040 t , a n d c a l l ( D o I
0003060 t ) w h e n y o u l e f t
0003100 - b u t t o n i t , a n d
0003120 f i n a l l y , \r ( ( T o g M e
0003140 n u V a l u e ) \r ( R
0003160 E S E T F O R M ( T T Y D I S
0003200 P L A Y S T R E A M s o m e W
0003220 i n d o w ) ( R E A D ) ) \r
0003240 N I L " I n p u t a
0003260 v a l u e " O t h e r ) \r w i
0003300 l l n o t a p p e a r a s
0003320 y o u c y c l e t h r o u
0003340 g h , b u t w i l l s h o
0003360 w u p a s a n i t e m
0003400 l a b e l l e d " O t h e r "
0003420 i f y o u m i d d l e - b
0003440 u t t o n , a n d i f s e
0003460 l e c t e d w i l l r e a d
0003500 a v a l u e w h i c h w
0003520 i l l a l s o b e d i s p
0003540 l a y e d . \r \r \0 \0 \0 \0 \0 003 ( L
0003560 I S T ( ( P A G E N I L (
0003600 P A P E R S I Z E L e t t e r
0003620 F O L I O I N F O ( A R A B
0003640 I C ) S T A R T I N G P A
0003660 G E # 1 ) ( 0 0 6 1 2
0003700 7 9 2 ) ( ( F O L I O N I L
0003720 ( P A R A L O O K S ( Q U A
0003740 D C E N T E R E D ) C H A R
0003760 L O O K S ( S U P E R S C R I
0004000 P T 0 I N V I S I B L E O
0004020 F F S E L E C T P O I N T O
0004040 F F P R O T E C T E D O F F
0004060 S I Z E 1 0 F A M I L Y
0004100 M O D E R N O V E R L I N E
0004120 O F F S T R I K E O U T O F
0004140 F U N D E R L I N E O F F
0004160 E X P A N S I O N R E G U L A
0004200 R S L O P E R E G U L A R
0004220 W E I G H T M E D I U M I N
0004240 V E R T E D O F F U S E R I
0004260 N F O N I L S T Y L E N I
0004300 L ) F O R M A T I N F O ( A
0004320 R A B I C ) ) ( 1 7 4 3
0004340 6 2 8 8 3 6 ) N I L ) (
0004360 H E A D I N G N I L ( H E A
0004400 D I N G T Y P E R U N N I N G
0004420 H E A D ) ( 8 4 7 4 4 5 2
0004440 8 3 6 ) N I L ) ( T E X T
0004460 N I L N I L ( 8 4 9 6
0004500 4 5 6 6 0 0 ) N I L ) ) )
0004520 ( P A G E N I L ( P A P E R
0004540 S I Z E L e t t e r F O L I
0004560 O I N F O ( A R A B I C )
0004600 ) ( 0 0 6 1 2 7 9 2 )
0004620 ( ( F O L I O N I L ( P A R
0004640 A L O O K S ( Q U A D C E N
0004660 T E R E D ) C H A R L O O K S
0004700 ( S U P E R S C R I P T 0
0004720 I N V I S I B L E O F F S E
0004740 L E C T P O I N T O F F P R
0004760 O T E C T E D O F F S I Z E
0005000 1 0 F A M I L Y M O D E R
0005020 N O V E R L I N E O F F S
0005040 T R I K E O U T O F F U N D
0005060 E R L I N E O F F E X P A N
0005100 S I O N R E G U L A R S L O
0005120 P E R E G U L A R W E I G H
0005140 T M E D I U M I N V E R T E
0005160 D O F F U S E R I N F O N
0005200 I L S T Y L E N I L ) F O
0005220 R M A T I N F O ( A R A B I C
0005240 ) ) ( 1 7 4 3 6 2 8 8
0005260 3 6 ) N I L ) ( H E A D I
0005300 N G N I L ( H E A D I N G T
0005320 Y P E R U N N I N G H E A D )
0005340 ( 8 4 7 4 4 5 2 8 3 6 )
0005360 N I L ) ( T E X T N I L
0005400 N I L ( 8 4 9 6 4 5 6 6
0005420 0 0 ) N I L ) ) ) ( P A G E
0005440 N I L ( P A P E R S I Z E
0005460 L e t t e r F O L I O I N F O
0005500 ( A R A B I C ) ) ( 0
0005520 0 6 1 2 7 9 2 ) ( ( F O L
0005540 I O N I L ( P A R A L O O K
0005560 S ( Q U A D C E N T E R E D
0005600 ) C H A R L O O K S ( S U P
0005620 E R S C R I P T 0 I N V I S
0005640 I B L E O F F S E L E C T P
0005660 O I N T O F F P R O T E C T
0005700 E D O F F S I Z E 1 0 F
0005720 A M I L Y M O D E R N O V E
0005740 R L I N E O F F S T R I K E
0005760 O U T O F F U N D E R L I N
0006000 E O F F E X P A N S I O N
0006020 R E G U L A R S L O P E R E
0006040 G U L A R W E I G H T M E D
0006060 I U M I N V E R T E D O F F
0006100 U S E R I N F O N I L S T
0006120 Y L E N I L ) F O R M A T I
0006140 N F O ( A R A B I C ) )
0006160 ( 1 7 4 3 6 2 8 8 3 6 )
0006200 N I L ) ( H E A D I N G N I
0006220 L ( H E A D I N G T Y P E R
0006240 U N N I N G H E A D ) ( 8 4
0006260 7 4 4 5 2 8 3 6 ) N I L )
0006300 ( T E X T N I L N I L (
0006320 8 4 9 6 4 5 6 6 0 0 ) N
0006340 I L ) ) ) ) ) \0 \0 \0 \0 \0 005 \0 \a \0
0006360 1 \0 \0 \0 \0 001 310 \0 \v \0 \0 \0 004 003 004 \0
0006400 \0 002 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 \0 \0
0006420 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0006440 \0 ( \0 \0 \0 \0 001 310 \0 \v \0 \0 \0 004 002 004
0006460 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0006500 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 001 310
0006520 \0 021 \0 \0 \0 004 002 003 \0 \0 \0 \0 \0 \0 \0 \0
0006540 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0006560 \0 ( \0 212 \0 212 001 8 \0 006 \0 \0 \0 004 002 003
0006600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0006620 \0 \0 \0 \0 \0 \0 \0 \0 \0 ( \0 212 \0 212 001 8
0006640 \0 \0 \0 \0 \0 004 002 004 \0 \0 \0 \0 \0 \0 \0 \0
0006660 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0006700 \0 D \0 \0 \0 \0 001 310 \0 \0 \0 \0 \0 \0 003 004
0006720 \0 \0 001 001 310 001 \0 \0 \0 \0 \0 \0 \0 \v P A
0006740 G E H E A D I N G \0 \v R U N N I
0006760 N G H E A D \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0007000 \0 \0 \0 \0 \0 ( \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0007020 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0007040 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0007060 \0 004 \0 \b \0 026 \0 \b T E R M I N A L
0007100 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O
0007120 D E R N \0 \n \0 \0 \0 \0 \0 \0 001 \0 \0 024
0007140 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0
0007160 002 \0 \0 024 \0 006 M O D E R N \0 \f \0 \0
0007200 \0 \0 \0 \0 002 \0 \0 024 \0 006 M O D E R N
0007220 \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 024 \0 006 M O
0007240 D E R N \0 006 \0 \0 \0 \0 \0 \0 \0 \0 \0 022
0007260 \0 004 L O G O \0 030 \0 \0 \0 \0 \0 \0 \0 \0
0007300 \0 ? \0 1 ( D E F A U L T F O N T
0007320 1 ( G A C H A 1 0 ) ( G
0007340 A C H A 8 ) ( T E R M I N A
0007360 L 8 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0
0007400 \0 \0 \0 \0 002 \0 006 \0 \0 \0 005 \0 \0 \0 \0 \a
0007420 \0 \0 \0 001 \0 \0 \0 \0 006 \0 \0 \0 \b \0 \0 \0
0007440 \0 005 \0 \0 \0 \0 \0 002 \0 006 \0 \0 \0 002 \0 001
0007460 \0 \v H R U L E . G E T F N 001 \0 024
0007500 \0 006 M O D E R N \0 \n \0 \0 \0 \0 \0 \0
0007520 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0
0007540 002 \0 005 \0 \0 \0 002 \0 001 \0 \v H R U L E
0007560 . G E T F N 001 \0 024 \0 006 M O D E R
0007600 N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 \0
0007620 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 005 \0 \0 \0 002
0007640 \0 001 \0 \v H R U L E . G E T F N 001
0007660 \0 024 \0 006 M O D E R N \0 \n \0 \0 \0 \0
0007700 \0 \0 \0 \0 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0
0007720 \0 \0 002 \0 004 \0 \0 \0 \b \0 \0 \0 \0 004 \0 \0
0007740 \0 \0 \0 002 \0 004 \0 \0 \0 002 \0 001 \0 \v H R
0007760 U L E . G E T F N 001 \0 024 \0 006 M O
0010000 D E R N \0 \f \0 \0 \0 \0 \0 \0 002 \0 \0 \0
0010020 \0 001 \0 \0 \0 \0 004 \0 \0 \0 \0 \0 002 \0 005 \0
0010040 \0 \0 002 \0 001 \0 \v H R U L E . G E T
0010060 F N 001 \0 024 \0 006 M O D E R N \0 \f \0
0010100 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 001 \0 \0 \0 \0 004
0010120 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 - \0 \0 \0 \0
0010140 005 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 001 \0 \0 \0
0010160 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 \f \0 \0
0010200 \0 \0 003 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0
0010220 \0 002 \0 002 \0 \0 \0 343 \0 \0 \0 \0 005 \0 \0 \0
0010240 \0 \0 002 \0 002 \0 \0 \0 \n \0 \0 \0 \0 003 \0 \0
0010260 \0 \0 \0 002 \0 001 \0 \0 \0 \r \0 \0 \0 \0 005 \0
0010300 \0 \0 \r \0 \0 \0 \0 002 \0 \0 \0 \r \0 \0 \0 \0
0010320 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 + \0 \0 \0
0010340 \0 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 003 \0 \0
0010360 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 002 \0 \0 \0 021
0010400 \0 \0 \0 \0 005 \0 \0 \0 & \0 \0 \0 \0 002 \0 \0
0010420 \0 $ \0 \0 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 002
0010440 \0 \0 \0 005 \0 \0 \0 \0 005 \0 \0 \0 006 \0 \0 \0
0010460 \0 002 \0 \0 \0 \t \0 \0 \0 \0 005 \0 \0 \0 004 \0
0010500 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0
0010520 006 \0 \0 \0 \0 002 \0 \0 \0 N \0 \0 \0 \0 005 \0
0010540 \0 \0 006 \0 \0 \0 \0 002 \0 \0 \0 017 \0 \0 \0 \0
0010560 005 \0 \0 \0 004 \0 \0 \0 \0 002 \0 \0 \0 002 \0 \0
0010600 \0 \0 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 005 \0
0010620 \0 \0 \0 002 \0 \0 \0 ^ \0 \0 \0 \0 005 \0 \0 \0
0010640 006 \0 \0 \0 \0 002 \0 \0 \0 N \0 \0 \0 \0 005 \0
0010660 \0 \0 \0 \0 002 \0 001 \0 \0 \0 \t \0 \0 \0 \0 005
0010700 \0 \0 \0 002 \0 \0 \0 \0 002 \0 \0 \0 021 \0 \0 \0
0010720 \0 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 024 \0 \0
0010740 \0 \0 005 \0 \0 \0 002 \0 \0 \0 \0 002 \0 \0 \0 032
0010760 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0
0011000 177 \0 \0 \0 \0 005 \0 \0 \0 005 \0 \0 \0 \0 002 \0
0011020 \0 \0 / \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 001
0011040 \0 \0 \0 016 \0 \0 \0 \0 005 \0 \0 \0 \t \0 \0 \0
0011060 \0 002 \0 \0 \0 \r \0 \0 \0 \0 005 \0 \0 \0 \0 \0
0011100 002 \0 001 \0 \0 \0 \t \0 \0 \0 \0 005 \0 \0 \0 004
0011120 \0 \0 \0 \0 002 \0 \0 \0 004 \0 \0 \0 \0 005 \0 \0
0011140 \0 004 \0 \0 \0 \0 002 \0 \0 \0 025 \0 \0 \0 \0 005
0011160 \0 \0 \0 004 \0 \0 \0 \0 002 \0 \0 \0 021 \0 \0 \0
0011200 \0 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 016 \0 \0
0011220 \0 \0 005 \0 \0 \0 004 \0 \0 \0 \0 002 \0 \0 \0 \r
0011240 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0
0011260 o \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \a \0 \0
0011300 \0 001 \0 \0 \0 \0 \b \0 \0 \0 \0 \0 002 \0 \a \0
0011320 \0 \0 \t \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 002
0011340 \0 \0 \0 026 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0
0011360 002 \0 \0 \0 \b \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0
0011400 \0 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 ( \0
0011420 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0 \0 3
0011440 \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0
0011460 \0 \0 \0 002 \0 002 \0 \0 \0 1 \0 \0 \0 \0 005 \0
0011500 \0 \0 \0 \0 002 \0 002 \0 \0 \0 # \0 \0 \0 \0 001
0011520 \0 \0 \0 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0
0011540 002 \0 \0 \0 036 \0 \0 \0 \0 005 \0 \0 \0 006 \0 \0
0011560 \0 \0 001 \0 \0 \0 ' \0 \0 \0 \0 005 \0 \0 \0 \0
0011600 \0 002 \0 002 \0 \0 \0 d \0 \0 \0 \0 001 \0 \0 \0
0011620 001 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 002 \0 \0
0011640 \0 251 \0 \0 \0 \0 005 \0 \0 \0 \0 \0 002 \0 \a \0
0011660 \0 \0 001 \0 \0 \0 \0 \b \0 \0 \0 \0 \0 002 \0 \a
0011700 \0 \0 \a h \0 { z 272
0011710