$ od -c -N 50000 [Indigo]<AltoSource>CMDSCANSOURCE.DM!3 0000000 377 \0 \0 C m d S c a n . d e c l \0 0000020 373 224 345 357 t \0 \0 376 001 \0 7 273 / / C 0000040 m d S c a n . d e c l - - d 0000060 e c l a r a t i o n s f o r 0000100 C o m m a n d S c a n n e r 0000120 P a c k a g e \r / / C o p y r 0000140 i g h t X e r o x C o r p o 0000160 r a t i o n 1 9 7 9 \r \r / / \t 0000200 L a s t m o d i f i e d J u 0000220 l y 1 3 , 1 9 7 7 5 : 4 0000240 2 P M \r \r g e t " s t r e a 0000260 m s . d " \r \r \r / / - - - - - - 0000300 - - - - - - - - - - - - - - - - * 0000400 - - - - - \r s t r u c t u r e 0000420 P D : / / P h r a s 376 001 \0 271 0000440 343 e D e s c r i p t o r \r / / 0000460 - - - - - - - - - - - - - - - - * 0000560 - - - - - - - - - - - \r [ \r i F 0000600 i r s t w o r d \t \t / / i n d 0000620 e x o f f i r s t c h a r 0000640 a c t e r o f p h r a s e \r 0000660 i L a s t w o r d \t \t / / i n 0000700 d e x o f p h r a s e t e 0000720 r m i n a t o r \r W o r d B r e 0000740 a k w o r d \t \t / / w o r d 0000760 b r e a k p r e d i c a t e \r 0001000 P h r a s e T e r m i n a t o r 0001020 w o r d \t / / p h r a s e t 0001040 e 376 001 \0 A 261 r m i n a t o r p 0001060 r e d i c a t e \r E c h o w o 0001100 r d \t \t / / e c h o p r e d i 0001120 c a t e \r c a t c h F r a m e 0001140 w o r d \t \t / / E n a b l e C a 0001160 t c h f r a m e ( 0 = > 0001200 n o n e ) \r c a t c h P C w o 0001220 r d \t \t / / E n a b l e C a t c 0001240 h p c \r ] \r m a n i f e s t 0001260 l e n P D = s i z e P D / 0001300 1 6 \r \r / / - - - - - - - - - - 0001320 - - - - - - - - - - - - - - - - * 0001420 - \r s t r u c t u r e C S : 0001440 / / C o m 376 001 \0 024 350 m a n d 0001460 S t a t e \r / / - - - - - - - - 0001500 - - - - - - - - - - - - - - - - * 0001600 - - - \r [ \r @ S T \t \t \t / / d e 0001620 f i n e d s t r e a m o p e 0001640 r a t i o n s \r b u f w o r d 0001660 \t \t / / - > c o m m a n d b 0001700 u f f e r \r m a x C h a r s w 0001720 o r d \t \t / / m a x i m u m n 0001740 u m b e r o f c h a r s i 0001760 n c o m m a n d b u f f e r 0002000 \r i C h I n w o r d \t \t / / i 0002020 n d e x o f n e x t c h a 0002040 r t o p u t i n 376 001 \0 036 G 0002060 b u f f e r \r i C h O u t w 0002100 o r d \t \t / / i n d e x o f 0002120 n e x t c h a r t o t a k 0002140 e f r o m b u f f e r \r p u 0002160 t b a c k C h a r w o r d \t / 0002200 / i n p u t c h a r a c t e r 0002220 t o r e - u s e i f n o 0002240 n z e r o \r k e y S w o r d \t 0002260 \t / / k e y b o a r d ( i n p 0002300 u t ) s t r e a m \r d s p S 0002320 w o r d \t \t / / d i s p l a y 0002340 ( o u t p u t ) s t r e a m \r 0002360 E r a s e w o r d \t \t / / c h 0002400 a r a c t e r e r a s i n g 0002420 p r o c e d u r e \r z o n e w 0002440 o r d \t \t / / s t o r a g e z 0002460 376 001 \0 002 226 o n e \r m a x P h r a 0002500 s e s w o r d \t \t / / m a x i 0002520 m u m n u m b e r o f p h 0002540 r a s e d e s c r i p t o r s 0002560 \r i P h I n w o r d \t \t / / i 0002600 n d e x o f p h r a s e b 0002620 e i n g i n p u t \r i P h O u 0002640 t w o r d \t \t / / i n d e x 0002660 o f p h r a s e b e i n g 0002700 c o n s u m e d \r i P h T a r g 0002720 e t w o r d \t \t / / i n d e x 0002740 o f t a r g e t p h r a s 0002760 e f o r B a c k u p P h r a 0003000 s e \r e r r o r C o d e w o r 0003020 d \t \t / / r e a s o n f o r 0003040 b a c k u p ( 0 = > n o r 0003060 m a l r 376 001 \0 267 365 e p a r s e 0003100 ) \r f l a g s w o r d = \r 0003120 [ \r p h r a s e R e a 0003140 d b i t \t / / c u r r e n t 0003160 o u t p u t p h r a s e h a 0003200 s b e e n r e a d \r r 0003220 e p a r s e b i t \t \t / / i n 0003240 p u t i s b e i n g r e p 0003260 a r s e d \r r e u s e b 0003300 i t \t \t / / c u r r e n t p h 0003320 r a s e i s b e i n g r e 0003340 - u s e d \r d e s t r o y 0003360 b i t \t \t / / d e s t r o y 0003400 s t r e a m a f t e r b a c 0003420 k u p c o m p l e t e d \r 0003440 b l a n k b i t 4 \r 0003460 e d i t C o n t r o 376 001 \0 * 002 l 0003500 b y t e \t / / e d i t c o n 0003520 t r o l f o r c u r r e n t 0003540 i n p u t p h r a s e \r 0003560 ] \r p d ^ 0 , 0 @ P D \t \t / 0003600 / p h r a s e d e s c r i p t 0003620 o r s ( f i r s t o n e i 0003640 s d u m m y ) \r ] \r m a n i f 0003660 e s t l e n C S = s i z e 0003700 C S / 1 6 / / + m a x P 0003720 h r a s e s * l e n P D \r \r m a 0003740 n i f e s t \r [ \r / / e d i t C 0003760 o n t r o l v a l u e s \r e d 0004000 i t N e w = 1 \t / / n e x t 0004020 E d i t P h r a s e s h o u 0004040 l d t r e a t t h i s a s 0004060 n e w p h r a s e \r e d i 376 0004100 001 \0 K w t A p p e n d = 2 \t 0004120 / / n e x t E d i t P h r a s 0004140 e s h o u l d a p p e n d 0004160 t o t h i s p h r a s e \r e 0004200 d i t R e p l a c e = 3 \t / 0004220 / n e x t E d i t P h r a s e 0004240 s h o u l d r e p l a c e 0004260 t h i s p h r a s e \r ] \r \r / 0004300 / - - - - - - - - - - - - - - - 0004320 - - - - - - - - - - - - - - - - * 0004400 - - - - - - - - - - - - \r s t r 0004420 u c t u r e B u f ^ 0 , 1 b 0004440 y t e \r / / - - - - - - - - - - 0004460 - - - - - - - - - - - - - - - - 0004500 - - - - 376 001 \0 250 S - - - - - - - 0004520 - - - - - - - - - - - - - - - - * 0004560 - - - - - - \r \f \r m a n i f e s 0004600 t \r [ \r / / e r a s e c o n t 0004620 e x t c o d e s \r e r a s e C 0004640 h a r = 0 \r e r a s e W o r 0004660 d = 1 \r e r a s e T e r m i 0004700 n a t o r = 2 \r \r / / e r r 0004720 o r c o d e s f o r m a i 0004740 n C m d S c a n p a c k a g 0004760 e \r e c E n d O f P h r a s e 0005000 = 2 8 0 0 \r e c C m d D e l e 0005020 t e = 2 8 0 1 \r e c T o o M 0005040 a n y P h r a s e s = 2 8 0 0005060 2 \r e c C m d T o o L o n g = 0005100 2 8 0 3 \r \r / / 376 001 \0 251 { e r 0005120 r o r c o d e s f o r C m 0005140 d S c a n A u x u t i l i t y 0005160 p r o c e d u r e s \r e c E m 0005200 p t y N u m b e r = 2 8 5 0 0005220 \r e c N o n N u m e r i c C h a 0005240 r = 2 8 5 1 \r e c N u m b e 0005260 r O v e r f l o w = 2 8 5 2 0005300 \r e c C a n t O p e n F i l e 0005320 = 2 8 5 3 \r e c B a d C o n f 0005340 i r m i n g C h a r = 2 8 5 0005360 4 \r e c K e y N o t F o u n d 0005400 = 2 8 5 5 \r e c K e y A m b i 0005420 g u o u s = 2 8 5 6 \r \r / / 0005440 e r r o r c o d e s d i r e 0005460 c t i n g s p e c i f i c b 0005500 a c k u p a c t i o n s \r 376 \0 0005520 C 021 322 e c C m d D e s t r o y 0005540 = 2 8 7 5 \r e c B a c k u p A 0005560 p p e n d = 2 8 7 6 \r e c B 0005600 a c k u p R e p l a c e = 2 0005620 8 7 7 \r ] \r 377 \0 \0 C m d S c a n 0005640 . b c p l \0 373 224 345 357 t \0 \0 376 001 \0 0005660 037 371 / / C m d S c a n . b c p 0005700 l - - C o m m a n d S c a 0005720 n n e r P a c k a g e , m a 0005740 i n m o d u l e \r / / C o p 0005760 y r i g h t X e r o x C o r 0006000 p o r a t i o n 1 9 7 9 \r \r / 0006020 / \t L a s t m o d i f i e d 0006040 J u l y 1 3 , 1 9 7 7 5 0006060 : 4 7 P M \r \r g e t " C m d 0006100 S c a n . d e c l " \r \r e x t e 0006120 r n a l \r [ \r / / o u t g o i n 0006140 g p r o c e d u r e s \r I n i 0006160 t C m d ; E r a s e P h r a s 0006200 e ; B a c k u p P h r a s e \r 0006220 D e f a u l t P h r a s e ; B 0006240 e g i n D e f a u l t P h r a s 0006260 e ; 376 001 \0 264 225 E n d D e f a u 0006300 l t P h r a s e \r E n a b l e C 0006320 a t c h ; D i s a b l e C a t 0006340 c h ; E n d C a t c h \r C u r 0006360 r e n t P h r a s e ; N e x t 0006400 P h r a s e ; T e r m i n a t 0006420 i n g C h a r ; C m d E r r o 0006440 r C o d e \r \r / / f o r O E P 0006460 d e c l a r a t i o n o n l 0006500 y \r C S G e t s ; C S P u t s 0006520 ; C S E n d o f s ; C S C l 0006540 o s e s ; C S R e s e t s \r \r 0006560 / / i n c o m i n g p r o c e 0006600 d u r e s \r D e f E r a s e ; 0006620 D e f E r r o r ; D e f B r e 0006640 a k ; D e f E c h o ; A p p 0006660 e n d C h a r 376 001 \0 214 300 ; E r 0006700 a s e I n p u t \r G e t s ; P 0006720 u t s ; E r r o r s ; W s s 0006740 ; C l o s e s \r D e f a u l t 0006760 A r g s ; A l l o c a t e ; 0007000 F r e e ; Z e r o \r C a l l e 0007020 r s F r a m e ; G o t o L a b 0007040 e l \r \r / / i n c o m i n g s 0007060 t a t i c s \r s y s Z o n e ; 0007100 k e y s ; d s p \r ] \r \r \r / / 0007120 - - - - - - - - - - - - - - - - * 0007220 - - - - - - - - - - - \r l e t 0007240 I n i t C m d ( m a x C h a r s 0007260 , m a x P h r a s e s 376 001 \0 372 0007300 003 , W o r d B r e a k , P h 0007320 r a s e T e r m i n a t o r , \r 0007340 E c h o , k e y S , 0007360 d s p S , E r a s e , E r 0007400 r o r , z o n e ; n u m a r 0007420 g s n a ) = v a l o f \r / 0007440 / - - - - - - - - - - - - - - - 0007460 - - - - - - - - - - - - - - - - * 0007540 - - - - - - - - - - - - \r / / C 0007560 r e a t e s a n d i n i t i 0007600 a l i z e s a C o m m a n d 0007620 S t a t e ( c s ) s t r u 0007640 c t u r e . \r / / R e q u i r e 0007660 d a r g u m e n t s a r e 0007700 m 376 001 \0 326 255 a x C h a r s , t 0007720 h e m a x i m u m n u m b e 0007740 r o f c h a r a c t e r s \r 0007760 / / p e r m i t t e d i n t 0010000 h e c o m m a n d ( i n c l 0010020 u d i n g n o i s e w o r d 0010040 s ) , a n d m a x P h r a s 0010060 e s , \r / / t h e m a x i m u 0010100 m n u m b e r o f p h r a 0010120 s e s . W o r d B r e a k , 0010140 P h r a s e T e r m i n a t o 0010160 r , a n d \r / / E c h o a r 0010200 e t h e d e f a u l t w o 0010220 r d b r e a k , p h r a s e 0010240 t e r m i n a t o r , a n d 0010260 e c h o \r / / p r e d i c a t 0010300 e s f o r 376 001 \0 026 ( t h e 0010320 c o m m a n d ( t h e y m a 0010340 y b e o v e r r i d d e n 0010360 o n a \r / / p e r - p h r a s 0010400 e b a s i s ) . k e y S 0010420 a n d d s p S a r e t h e 0010440 i n p u t a n d o u t p u 0010460 t \r / / s t r e a m s f o r 0010500 t h e c o m m a n d s c a n 0010520 n e r . E r a s e i s a 0010540 p r o c e d u r e f o r \r / 0010560 / e r a s i n g c h a r a c t 0010600 e r s f r o m t h e d i s 0010620 p l a y . E r r o r i s 0010640 t h e E r r o r s \r / / p r o 0010660 c e d u r e f o r t h e c 0010700 o m m a n d s t r e 376 001 \0 333 224 0010720 a m . \r / / r e t u r n s a 0010740 p o i n t e r t o t h e C 0010760 S s t r u c t u r e . \r [ \r D 0011000 e f a u l t A r g s ( l v n a 0011020 , - 2 , D e f B r e a k , 0011040 D e f B r e a k , D e f E c h 0011060 o , \r k e y s , d s p , D 0011100 e f E r a s e , D e f E r r o 0011120 r , s y s Z o n e ) \r l e t 0011140 c s = A l l o c a t e ( z o 0011160 n e , l e n C S + m a x P h r 0011200 a s e s * l e n P D ) \r Z e r o 0011220 ( c s , l e n C S ) \r c s > > 0011240 C S . b u f = A l l o c a t 0011260 e ( z o n e , m a x C h a r s 0011300 r s h i f t 1 + 1 ) \r c s 0011320 376 001 \0 220 k > > C S . m a x C h a 0011340 r s = m a x C h a r s \r c s 0011360 > > C S . m a x P h r a s e s 0011400 = m a x P h r a s e s \r c s > 0011420 > C S . p d ^ 0 . W o r d B r e 0011440 a k = W o r d B r e a k \r c 0011460 s > > C S . p d ^ 0 . P h r a s 0011500 e T e r m i n a t o r = P h 0011520 r a s e T e r m i n a t o r \r c 0011540 s > > C S . p d ^ 0 . E c h o 0011560 = E c h o \r c s > > C S . k e 0011600 y S = k e y S \r c s > > C S 0011620 . d s p S = d s p S \r c s > 0011640 > C S . E r a s e = E r a s 0011660 e \r c s > > C S . z o n e = 0011700 z o n e \r c s > > C S . g e t s 0011720 = C S 376 001 \0 332 F G e t s \r c 0011740 s > > C S . p u t s = C S P 0011760 u t s \r c s > > C S . e n d o f 0012000 = C S E n d o f s \r c s > > 0012020 C S . c l o s e = C S C l o 0012040 s e s \r c s > > C S . r e s e t 0012060 = C S R e s e t s \r c s > > 0012100 C S . e r r o r = E r r o r 0012120 \r c s > > C S . p d ^ 0 . c a t 0012140 c h F r a m e = C a l l e r 0012160 s F r a m e ( ) \r c s > > C S . 0012200 p d ^ 0 . c a t c h P C = ( 0012220 c s > > C S . p d ^ 0 . c a t c 0012240 h F r a m e ) ! 1 + 1 \r c s > 0012260 > C S . p h r a s e R e a d = 0012300 t r u e / / d o n ' t u 0012320 s e d u m m y p 376 001 \0 V 237 h 0012340 r a s e \r c s > > C S . e d i t 0012360 C o n t r o l = e d i t N e 0012400 w \r r e s u l t i s c s \r ] \r 0012420 \f \r / / - - - - - - - - - - - - 0012440 - - - - - - - - - - - - - - - - * 0012520 - - - - - - - - - - - - - - - \r 0012540 a n d C S C l o s e s ( c s ) 0012560 b e \r / / - - - - - - - - - - 0012600 - - - - - - - - - - - - - - - - * 0012700 - \r [ \r F r e e ( c s > > C S . 0012720 z o n e , c s > > C S . b u 376 0012740 001 \0 275 | f ) \r F r e e ( c s > > 0012760 C S . z o n e , c s ) \r ] \r \r 0013000 \r / / - - - - - - - - - - - - - 0013020 - - - - - - - - - - - - - - - - * 0013100 - - - - - - - - - - - - - - \r a 0013120 n d C S G e t s ( c s ) = 0013140 v a l o f \r / / - - - - - - - - 0013160 - - - - - - - - - - - - - - - - * 0013260 - - - \r / / R e t u r n s t h 0013300 e n e x t c h a r a c t e r 0013320 f r o m t h e c u r r e n 0013340 t p h 376 001 \0 z 211 r a s e . 0013360 C a l l s E r r o r s i f \r 0013400 / / t h e p h r a s e i s 0013420 e x h a u s t e d . \r [ \r l e t 0013440 i = c s > > C S . i C h O 0013460 u t \r i f i g e C u r r e 0013500 n t P h r a s e ( c s ) > > P D 0013520 . i L a s t t h e n r e s u 0013540 l t i s E r r o r s ( c s , 0013560 e c E n d O f P h r a s e ) \r c 0013600 s > > C S . i C h O u t = i 0013620 + 1 \r r e s u l t i s c s > > 0013640 C S . b u f > > B u f ^ i & 0013660 # 1 7 7 \r ] \r \r \r / / - - - - - 0013700 - - - - - - - - - - - - - - - - * 0013740 - - - - - - - - - 376 001 \0 031 316 - - 0013760 - - - - - - - - - - - - - - - - 0014000 - - - - - - - - - - - \r a n d 0014020 C S E n d o f s ( c s ) = c 0014040 s > > C S . i C h O u t g e 0014060 C u r r e n t P h r a s e ( c s 0014100 ) > > P D . i L a s t \r / / - - 0014120 - - - - - - - - - - - - - - - - * 0014220 - - - - - - - - - \r / / R e t u 0014240 r n s t r u e i f t h e 0014260 c u r r e n t p h r a s e i 0014300 s e x h a u s t e d \r \r \r / / 0014320 - - - - - - - - - - - - - - - - 0014340 - - - - - - - - - - - - - - 376 001 0014360 \0 004 333 - - - - - - - - - - - - - 0014400 - - - - - - - - - - - - - - - - * 0014440 \r a n d C S P u t s ( c s , 0014460 c h a r ) b e u n l e s s 0014500 c s > > C S . r e p a r s e d 0014520 o A p p e n d C h a r ( c s , 0014540 c h a r , t r u e ) \r / / - 0014560 - - - - - - - - - - - - - - - - * 0014660 - - - - - - - - - - \r / / O u t 0014700 p u t s c h a r t o t h e 0014720 s t r e a m d s p S , a n 0014740 d a l s o p u t s i t i 0014760 n t 376 001 \0 _ 367 h e c o m m a 0015000 n d \r / / b u f f e r ( t o 0015020 f a c i l i t a t e r e t y p 0015040 i n g a n d b a c k s p a c 0015060 i n g o v e r ) . \r \r \r / / - 0015100 - - - - - - - - - - - - - - - - * 0015200 - - - - - - - - - - \r a n d C 0015220 S R e s e t s ( c s ) b e [ 0015240 c s > > C S . p h r a s e R e 0015260 a d = f a l s e ; c s > > 0015300 C S . r e u s e = t r u e 0015320 ] \r / / - - - - - - - - - - - - 0015340 - - - - - - - - - - - - - - - - 0015360 - - - - - - - - 376 001 \0 % 372 - - - 0015400 - - - - - - - - - - - - - - - - * 0015440 - - - - \r / / R e s e t s t h 0015460 e o u t p u t p o i n t e r 0015500 t o t h e b e g i n n i n 0015520 g o f t h e c u r r e n t 0015540 p h r a s e \r / / s u c h t 0015560 h a t t h e n e x t G e t 0015600 P h r a s e w i l l r e t u 0015620 r n t h e s a m e p h r a 0015640 s e a s b e f o r e . \r \f \r 0015660 / / - - - - - - - - - - - - - - 0015700 - - - - - - - - - - - - - - - - * 0015760 - - - - - - - - - - - - - 376 001 \0 0016000 301 357 \r a n d N e x t P h r a s 0016020 e ( c s ) = v a l o f \r / / 0016040 - - - - - - - - - - - - - - - - * 0016140 - - - - - - - - - - - \r / / a d 0016160 v a n c e s t h e o u t p u 0016200 t p o i n t e r t o t h e 0016220 n e x t u n r e a d p h r 0016240 a s e , u n l e s s \r / / t h 0016260 e c u r r e n t p h r a s e 0016300 h a s n ' t b e e n r e a 0016320 d y e t . \r / / r e t u r n s 0016340 p o i n t e r t o p h r a 0016360 s e ' s P D . \r [ \r i f c s 0016400 > > 376 001 \0 ~ " C S . p h r a s e 0016420 R e a d t h e n \r [ \r 0016440 i f c s > > C S . i P h O 0016460 u t e q c s > > C S . m a x 0016500 P h r a s e s t h e n E r r 0016520 o r s ( c s , e c T o o M a n 0016540 y P h r a s e s ) \r c s > 0016560 > C S . i P h O u t = c s > 0016600 > C S . i P h O u t + 1 \r 0016620 c s > > C S . p h r a s e R e a 0016640 d = f a l s e \r i f 0016660 c s > > C S . i P h O u t g r 0016700 c s > > C S . i P h I n t h 0016720 e n \r [ / / n o 0016740 t r e s c a n n i n g - r 0016760 e a l l y c r e a t e n e w 0017000 p h r a s e 376 001 \0 % 347 \r 0017020 c s > > C S . i P h I n 0017040 = c s > > C S . i P h O u t \r 0017060 l e t p d = C 0017100 u r r e n t P h r a s e ( c s ) 0017120 \r Z e r o ( p d , 0017140 l e n P D ) \r p d > 0017160 > P D . i F i r s t = c s > 0017200 > C S . i C h I n \r 0017220 ] \r ] \r r e s u l t i s 0017240 C u r r e n t P h r a s e ( c s 0017260 ) \r ] \r \r \r / / - - - - - - - - 0017300 - - - - - - - - - - - - - - - - * 0017400 - - - \r a n d D e f a 376 001 \0 * 0017420 6 u l t P h r a s e ( c s , s 0017440 t r i n g , c h a r ; n u m 0017460 a r g s n a ) b e \r / / - - 0017500 - - - - - - - - - - - - - - - - * 0017600 - - - - - - - - - \r / / C r e a 0017620 t e s a n e w p h r a s e 0017640 c o n t a i n i n g t h e 0017660 d e f a u l t v a l u e " s 0017700 t r i n g " , \r / / a n d s e 0017720 t s t h e e d i t C o n t r 0017740 o l t o e d i t R e p l a c 0017760 e . T h e s t r i n g s 0020000 h o u l d n o t \r / / c o n t 0020020 a 376 001 \0 241 002 i n a t e r m i 0020040 n a t i n g c h a r a c t e r 0020060 . \r / / T h e i d e a i s 0020100 t h a t o n e t h e n c a 0020120 l l s G e t P h r a s e t o 0020140 i n p u t t h e p h r a s 0020160 e \r / / a f t e r g i v i n g 0020200 t h e u s e r a c h a n 0020220 c e t o r e p l a c e o r 0020240 e d i t i t . \r / / I f c 0020260 h a r i s s u p p l i e d , 0020300 i t i s u s e d a s t 0020320 h e t e r m i n a t i n g c 0020340 h a r a c t e r a n d \r / / t 0020360 h e u s e r i s n o t g 0020400 i v e n a c h a n c e t o 0020420 e d i t 376 001 \0 g 315 t h e p 0020440 h r a s e . \r [ \r D e f a u l t 0020460 A r g s ( l v n a , - 2 , 0020500 0 ) \r B e g i n D e f a u l t P 0020520 h r a s e ( c s ) \r W s s ( c s 0020540 , s t r i n g ) \r E n d D e f 0020560 a u l t P h r a s e ( c s , c 0020600 h a r ) \r ] \r \r \r / / - - - - - 0020620 - - - - - - - - - - - - - - - - * 0020720 - - - - - - \r a n d B e g i n 0020740 D e f a u l t P h r a s e ( c s 0020760 ) b e N e x t P h r a s e ( 0021000 c s ) \r / / - - - - - - - - - - 0021020 - - - - - - - - - - - 376 001 \0 E & 0021040 - - - - - - - - - - - - - - - - * 0021120 - - - - - - \r \r \r / / - - - - - 0021140 - - - - - - - - - - - - - - - - * 0021240 - - - - - - \r a n d E n d D e 0021260 f a u l t P h r a s e ( c s , 0021300 c h a r ; n u m a r g s n a 0021320 ) b e \r / / - - - - - - - - - 0021340 - - - - - - - - - - - - - - - - * 0021440 376 001 \0 303 v - - \r u n l e s 0021460 s c s > > C S . r e p a r s e 0021500 d o \r [ \r 0021520 C u r r e n t P h r a s e ( 0021540 c s ) > > P D . i L a s t = 0021560 c s > > C S . i C h I n \r 0021600 c s > > C S . e d i t C o 0021620 n t r o l = e d i t R e p l 0021640 a c e \r i f n a 0021660 g r 1 & c h a r n e 0 0021700 t h e n c s > > C S . p u t 0021720 b a c k C h a r = c h a r \r 0021740 ] \r \f \r / / - - - - 0021760 - - - - - - - - - - - - - - - - * 0022040 - - - - - 376 001 \0 P 335 - - - - - - 0022060 - - - - - - - - - - - - \r a n d 0022100 E n a b l e C a t c h ( c s ) 0022120 = v a l o f \r / / - - - - - 0022140 - - - - - - - - - - - - - - - - * 0022240 - - - - - - \r [ \r l e t p d 0022260 = N e x t P h r a s e ( c s ) 0022300 \r p d > > P D . c a t c h F r a 0022320 m e = C a l l e r s F r a m 0022340 e ( ) \r p d > > P D . c a t c h 0022360 P C = ( p d > > P D . c a t 0022400 c h F r a m e ) ! 1 + 1 \r r 0022420 e s u l t i s f a l s e \r ] \r 0022440 \r \r / / - - - - - - 376 001 \0 I \r - 0022460 - - - - - - - - - - - - - - - - * 0022560 - - - - \r a n d D i s a b l e 0022600 C a t c h ( c s ) b e C u r 0022620 r e n t P h r a s e ( c s ) > > 0022640 P D . c a t c h F r a m e = 0022660 0 \r / / - - - - - - - - - - - - 0022700 - - - - - - - - - - - - - - - - * 0022760 - - - - - - - - - - - - - - - \r 0023000 \r \r / / - - - - - - - - - - - - 0023020 - - - - - - - - - - - - - - - - 0023040 - - - - - - - - - - - - - - - 376 0023060 001 \0 { 030 - - - - - - - - - - - - 0023100 - - - - - - - - - - - - - - - - 0023120 - - - - \r a n d E n d C a t c 0023140 h ( c s ) b e \r / / - - - - - 0023160 - - - - - - - - - - - - - - - - * 0023260 - - - - - - \r [ \r i f c s > > 0023300 C S . i P h O u t g r c s > 0023320 > C S . i P h T a r g e t t h 0023340 e n \r [ c s > > C S . i 0023360 P h O u t = c s > > C S . i 0023400 P h O u t - 1 ; D o B a c k u 0023420 p ( c s ) ] \r c s > > C S . i 0023440 C h O u t = C u r r e n t P 0023460 h r a s 376 001 \0 356 K e ( c s ) > > 0023500 P D . i F i r s t \r c s > > C S 0023520 . p h r a s e R e a d = c s 0023540 > > C S . i P h O u t e q 0 0023560 \r c s > > C S . e r r o r C o d 0023600 e = 0 \r ] \r \f \r / / - - - - 0023620 - - - - - - - - - - - - - - - - * 0023720 - - - - - - - \r a n d E r a s 0023740 e P h r a s e ( c s , n P h , 0023760 e d i t C o n t r o l , c h 0024000 a r ; n u m a r g s n a ) 0024020 b e \r / / - - - - - - - - - - - 0024040 - - - - - - - - - - - - - - - - 0024060 - - - - - - - - - 376 001 \0 i 200 - - 0024100 - - - - - - - - - - - - - - - - * 0024140 - - - - - \r / / S e n d s c o 0024160 n t r o l b a c k n P h p 0024200 h r a s e s r e l a t i v e 0024220 t o C S . i P h O u t a f t 0024240 e r \r / / e r a s i n g a l l 0024260 i n t e r v e n i n g p h r 0024300 a s e s . \r [ \r D e f a u l t A 0024320 r g s ( l v n a , - 1 , 0 0024340 , e d i t R e p l a c e , 0 0024360 ) \r l e t p d = l v c s 0024400 > > C S . p d ^ ( c s > > C S . 0024420 i P h O u t - n P h ) \r E r a s 0024440 e I n p u t ( c s , ( e d i t 0024460 C o n t r o l e q e d i 376 001 0024500 \0 q 1 t N e w ? p d > > P D . 0024520 i F i r s t , p d > > P D . i 0024540 L a s t ) , \r e r a s e W o r 0024560 d ) \r B a c k u p P h r a s e ( 0024600 c s , n P h , e d i t C o n 0024620 t r o l , c h a r ) \r ] \r \r \r 0024640 / / - - - - - - - - - - - - - - 0024660 - - - - - - - - - - - - - - - - * 0024740 - - - - - - - - - - - - - \r a n 0024760 d B a c k u p P h r a s e ( c 0025000 s , n P h , e d i t C o n t 0025020 r o l , c h a r ; n u m a r 0025040 g s n a ) b e \r / / - - - - 0025060 - - - - - - - - - - - - - - - - 0025100 - - - 376 001 \0 3 - - - - - - - - 0025120 - - - - - - - - - - - - - - - - * 0025160 - - - - - - - - - - - - \r / / B 0025200 a c k s u p t h e c o m m 0025220 a n d s c a n n e r n P h 0025240 p h r a s e s r e l a t i v e 0025260 t o C S . i P h O u t , \r / 0025300 / a n d s t o r e s e d i t 0025320 C o n t r o l i n t o C S . 0025340 e d i t C o n t r o l a n d 0025360 c h a r i n t o \r / / C S . p 0025400 u t b a c k C h a r . \r / / A l 0025420 l i n t e r v e n i n g e n 0025440 a b l e d c a t c h p h r a 0025460 s e s a r e e x e c u t e d 0025500 , i n c l u d 376 001 \0 ; 331 i n g 0025520 \r / / t h e o n e a s s o c 0025540 i a t e d w i t h t h e t 0025560 a r g e t p h r a s e i f 0025600 a n y . T h i s p r o c e 0025620 d u r e \r / / d o e s n o t 0025640 a c t u a l l y e r a s e a 0025660 n y c h a r a c t e r s f r 0025700 o m t h e c o m m a n d , 0025720 i t \r / / m e r e l y s e n d 0025740 s c o n t r o l b a c k t 0025760 o a n e a r l i e r p o i 0026000 n t o f i n t e r p r e t a 0026020 t i o n . \r [ \r D e f a u l t A 0026040 r g s ( l v n a , - 1 , 0 0026060 , e d i t R e p l a c e , 0 0026100 ) \r c s > > C S . i P h T 376 001 \0 0026120 224 b a r g e t = c s > > C S 0026140 . i P h O u t - n P h \r c s > > 0026160 C S . e d i t C o n t r o l = 0026200 e d i t C o n t r o l \r c s > 0026220 > C S . p u t b a c k C h a r 0026240 = c h a r \r c s > > C S . r e 0026260 p a r s e = t r u e \r D o B 0026300 a c k u p ( c s ) \r ] \r \r \r / / 0026320 - - - - - - - - - - - - - - - - * 0026420 - - - - - - - - - - - \r a n d 0026440 D o B a c k u p ( c s ) b e \r 0026460 / / - - - - - - - - - - - - - - 0026500 - - - - - - - - - - - - - - - - 0026520 - - 376 001 \0 345 027 - - - - - - - - - 0026540 - - - - - - - - - - - - - - - - * 0026600 - - \r [ \r l e t p d = C u 0026620 r r e n t P h r a s e ( c s ) \r 0026640 l e t f r a m e , p c = 0026660 p d > > P D . c a t c h F r a m 0026700 e , p d > > P D . c a t c h P 0026720 C \r i f f r a m e n e 0 0026740 t h e n \r [ \r i f 0026760 c s > > C S . i P h O u t e q 0027000 0 t h e n \r t e 0027020 s t c s > > C S . d e s t r o 0027040 y \r i f s o 0027060 [ C l o s e s ( c s ) ; c s 0027100 = 0 ] \r 0027120 i f n o t E 376 001 \0 ! 223 n d C a 0027140 t c h ( c s ) \r G o t o L 0027160 a b e l ( f r a m e , p c , 0027200 c s ) \r ] \r c s > > C S . 0027220 i P h O u t = c s > > C S . 0027240 i P h O u t - 1 \r ] r e p e a 0027260 t \r \r \r / / - - - - - - - - - - 0027300 - - - - - - - - - - - - - - - - * 0027400 - \r a n d C u r r e n t P h r 0027420 a s e ( c s ) = l v c s > 0027440 > C S . p d ^ ( c s > > C S . i 0027460 P h O u t ) \r / / - - - - - - - 0027500 - - - - - - - - - - - - - - - - 0027520 - - - - - - - - - - - - 376 001 \0 034 0027540 207 - - - - - - - - - - - - - - - 0027560 - - - - - - - - - - - - - - - - 0027600 - - - - - - - - - \r \r \r / / - - 0027620 - - - - - - - - - - - - - - - - * 0027720 - - - - - - - - - \r a n d T e 0027740 r m i n a t i n g C h a r ( c s 0027760 ) = \r / / - - - - - - - - - - 0030000 - - - - - - - - - - - - - - - - * 0030100 - \r c s > > C S . b u f > 0030120 > B u f ^ ( C u r r e n t P h r 0030140 a 376 \0 337 9 357 s e ( c s ) > > P D 0030160 . i L a s t ) & # 1 7 7 \r \r 0030200 \r / / - - - - - - - - - - - - - 0030220 - - - - - - - - - - - - - - - - * 0030300 - - - - - - - - - - - - - - \r a 0030320 n d C m d E r r o r C o d e ( 0030340 c s ) = c s > > C S . e r r 0030360 o r C o d e \r / / - - - - - - - 0030400 - - - - - - - - - - - - - - - - * 0030500 - - - - \r 377 \0 \0 C m d S c a n E 0030520 d i t . b c p l \0 373 224 345 357 t \0 \0 0030540 376 001 \0 ~ 253 / / C m d S c a n E 0030560 d i t . b c p l - - C o m m 0030600 a n d S c a n n e r P a c k 0030620 a g e e d i t i n g f u n c 0030640 t i o n s \r / / C o p y r i g 0030660 h t X e r o x C o r p o r a 0030700 t i o n 1 9 7 9 \r \r / / \t L a 0030720 s t m o d i f i e d J u l y 0030740 1 1 , 1 9 7 7 3 : 2 5 0030760 P M \r \r g e t " C m d S c a n 0031000 . d e c l " \r \r e x t e r n a l 0031020 \r [ \r / / o u t g o i n g p r 0031040 o c e d u r e s \r G e t P h r a 0031060 s e ; A p p e n d C h a r ; 0031100 E r a s e I n p u t \r \r / / i n 0031120 c o m i n g p r o c e d u r e 0031140 s \r N e x 376 001 \0 F a t P h r a s 0031160 e ; C u r r e n t P h r a s e 0031200 ; B a c k u p P h r a s e \r G 0031220 e t s ; P u t s ; E r r o r 0031240 s ; W s s \r D e f a u l t A r 0031260 g s ; A l l o c a t e ; F r 0031300 e e ; Z e r o \r ] \r \r \r / / - 0031320 - - - - - - - - - - - - - - - - * 0031420 - - - - - - - - - - \r l e t G 0031440 e t P h r a s e ( c s , W o r 0031460 d B r e a k , P h r a s e T e 0031500 r m i n a t o r , E c h o , \r 0031520 H e l p , h e l p A r 0031540 g ; n u m a r g s 376 001 \0 337 313 0031560 n a ) = v a l o f \r / / - - 0031600 - - - - - - - - - - - - - - - - * 0031700 - - - - - - - - - \r / / R e a d 0031720 i e s t h e n e x t p h r 0031740 a s e t o b e t a k e n , 0031760 i n p u t t i n g o n e f 0032000 r o m t h e \r / / k e y b o a 0032020 r d i f n e c e s s a r y 0032040 a n d u p d a t i n g t h e 0032060 p h r a s e s t a t e . \r / 0032100 / S e t s u p c s > > C S . 0032120 i C h O u t t o p o i n t 0032140 t o t h e f i r s t c h 376 0032160 001 \0 213 303 a r a c t e r o f t 0032200 h e \r / / p h r a s e , a n d 0032220 r e t u r n s t h e n u m 0032240 b e r o f c h a r a c t e r 0032260 s i n t h e p h r a s e , 0032300 \r / / n o t i n c l u d i n g 0032320 t h e t e r m i n a t o r . 0032340 \r [ \r D e f a u l t A r g s ( l 0032360 v n a , - 1 , c s > > C S 0032400 . p d ^ 0 . W o r d B r e a k , 0032420 \r c s > > C S . p d ^ 0 . P h 0032440 r a s e T e r m i n a t o r , 0032460 c s > > C S . p d ^ 0 . E c h o 0032500 , 0 , 0 ) \r l e t p d = 0032520 N e x t P h r a s e ( c s ) \r 0032540 p d > > P D . W o r d B r e a k 0032560 = W 376 001 \0 4 \b o r d B r e a 0032600 k \r p d > > P D . P h r a s e T 0032620 e r m i n a t o r = P h r a 0032640 s e T e r m i n a t o r \r p d > 0032660 > P D . E c h o = E c h o \r 0032700 \r i f c s > > C S . i P h I n 0032720 e q c s > > C S . i P h O u 0032740 t t h e n c s > > C S . r e 0032760 p a r s e = f a l s e \r u n 0033000 l e s s c s > > C S . r e p a 0033020 r s e % c s > > C S . r e u 0033040 s e d o E d i t P h r a s e 0033060 ( c s , H e l p , h e l p A 0033100 r g ) \r \r c s > > C S . r e u s 0033120 e = f a l s e \r c s > > C S 0033140 . p h r a s e R e a d = t r 0033160 u e \r c s > > C S 376 001 \0 s 026 . i 0033200 C h O u t = p d > > P D . i 0033220 F i r s t / / r e a d y t 0033240 o t a k e f i r s t c h a 0033260 r \r r e s u l t i s p d > > P 0033300 D . i L a s t - p d > > P D . i 0033320 F i r s t \r ] \r \f \r / / - - - - 0033340 - - - - - - - - - - - - - - - - * 0033440 - - - - - - - \r a n d E d i t 0033460 P h r a s e ( c s , H e l p , 0033500 h e l p A r g ) b e \r / / - 0033520 - - - - - - - - - - - - - - - - * 0033560 - - - - - - - - - - - - - - 376 001 0033600 \0 " ! - - - - - - - - - - - - - 0033620 - - - - - - - - - - - - - - - \r 0033640 / / E d i t s t h e c u r r 0033660 e n t p h r a s e ( t h e 0033700 c u r r e n t i n p u t a n 0033720 d o u t p u t p h r a s e s 0033740 \r / / a r e a s s u m e d t 0033760 o b e t h e s a m e ) , 0034000 r e t u r n i n g w h e n a 0034020 t e r m i n a t i n g \r / / c 0034040 h a r a c t e r i s i n p u 0034060 t . \r / / T h e d i s p o s i 0034100 t i o n o f t h e e x i s 0034120 t i n g c o n t e n t s o f 0034140 t h e p h r a s e ( i f 0034160 a n y ) \r / / i s c o n t r o 0034200 l l e 376 001 \0 ? 370 d b y c s > 0034220 > C S . e d i t C o n t r o l , 0034240 w h i c h i s o n e o f 0034260 : \r / / e d i t N e w \t N e w 0034300 p h r a s e - - f i l l 0034320 i t i n ( t h i s i s t 0034340 h e d e f a u l t ) . \r / / 0034360 e d i t A p p e n d \t P h r a s 0034400 e e x i s t s - - r e m o 0034420 v e t e r m i n a t i n g c 0034440 h a r a c t e r \r / / \t \t a n d 0034460 a p p e n d m o r e c h a 0034500 r a c t e r s t o i t . \r / 0034520 / e d i t R e p l a c e \t P h 0034540 r a s e e x i s t s - - i 0034560 f t h e f i r s t c h a r 0034600 a c t e r i n 376 001 \0 C Y p u t 0034620 i s \r / / \t \t n o t a t e 0034640 r m i n a t i n g c h a r a c 0034660 t e r , e r a s e i t a n 0034700 d s t a r t \r / / \t \t o v e r 0034720 ; i f i t i s , j u s 0034740 t r e t u r n t h e p h r 0034760 a s e a s - i s . \r / / I f 0035000 c s > > C S . p u t b a c k C h 0035020 a r i s n o n z e r o , i 0035040 t i s u s e d a s t h e 0035060 f i r s t \r / / c h a r a c t 0035100 e r o f t h e p h r a s e 0035120 a s i f i t h a d b e 0035140 e n t y p e d i n . \r [ \r l 0035160 e t p d = C u r r e n t P 0035200 h r a s e ( c s ) \r \r 376 001 \0 0035220 X 364 [ / / r e p e a t \r 0035240 l e t c h a r = c s > > 0035260 C S . p u t b a c k C h a r n 0035300 e 0 ? c s > > C S . p u t b 0035320 a c k C h a r , G e t s ( c s 0035340 > > C S . k e y S ) \r c s 0035360 > > C S . p u t b a c k C h a r 0035400 = 0 \r i f c s > > C 0035420 S . e d i t C o n t r o l n e 0035440 e d i t N e w & c s > > C 0035460 S . i C h I n g r p d > > P 0035500 D . i L a s t t h e n \r 0035520 E r a s e I n p u t ( c s 0035540 , p d > > P D . i L a s t , 0035560 e r a s e T e r m i n a t o r ) 0035600 \r s w i t c h o n c h a 0035620 r 376 001 \0 244 y i n t o \r 0035640 [ \r c a s e $ 0035660 * 0 1 0 : c a s e $ * 0 0 1 0035700 : / / b a c k s p a c e , 0035720 c o n t r o l - A \r 0035740 [ E r a s e B a c k T o 0035760 ( c s , B a c k u p C h a r s 0036000 ( c s , f a l s e ) , e r a 0036020 s e C h a r ) ; e n d c a s e 0036040 ] \r c a s e $ * 0036060 0 2 7 : / / c o n t r o l - 0036100 W \r [ E r a 0036120 s e B a c k T o ( c s , B a c 0036140 k u p C h a r s ( c s , t r u 0036160 e ) , e r a s e W o r d ) ; 0036200 e n d c a s e ] \r 0036220 c a s e $ * 376 001 \0 7 352 1 7 7 : 0036240 / / d e l e t e \r 0036260 [ E r r o r s ( c s , 0036300 e c C m d D e l e t e ) ; l 0036320 o o p ] \r c a s e 0036340 $ * 0 2 2 : / / c o n t r 0036360 o l - R \r [ 0036400 R e t y p e C m d ( c s ) ; l 0036420 o o p ] \r c a s e 0036440 $ ? : \r [ \r 0036460 i f H e l p 0036500 n e 0 t h e n \r 0036520 [ \r 0036540 W s s ( c s > > C S . 0036560 d s p S , " ? " ) \r 0036600 H e l p ( c s > 0036620 > C S . d s p S , h e 376 001 \0 q 0036640 M l p A r g ) \r 0036660 R e t y p e C m d ( c s 0036700 ) \r l o 0036720 o p \r ] 0036740 \r / / i f n 0036760 o h e l p , f a l l t h r 0037000 u t o d e f a u l t c a s 0037020 e \r ] \r 0037040 d e f a u l t : \r 0037060 [ \r 0037100 i f c s > > C S . e d i t C o 0037120 n t r o l e q e d i t R e p 0037140 l a c e & \r 0037160 n o t p d > > P D . P h r a 0037200 s e T e r m i n a t o r ( c s , 0037220 c h a r ) t h e n \r 0037240 376 001 \0 S w E r a 0037260 s e B a c k T o ( c s , p d > 0037300 > P D . i F i r s t , e r a s 0037320 e W o r d ) \r 0037340 i f A p p e n d C h a r ( c s 0037360 , c h a r , p d > > P D . E 0037400 c h o ( c s , c h a r ) ) & 0037420 \r p d > > P 0037440 D . P h r a s e T e r m i n a t 0037460 o r ( c s , c h a r ) t h e 0037500 n \r [ \r 0037520 p d > > 0037540 P D . i L a s t = c s > > C 0037560 S . i C h I n - 1 \r 0037600 t e s t c h a r 0037620 e q $ * s & p d > > P D . 0037640 i L a s t 376 001 \0 u 016 e q p d 0037660 > > P D . i F i r s t \r 0037700 i f s o 0037720 p d > > P D . i F i r s t = 0037740 p d > > P D . i F i r s t + 1 \r 0037760 i 0040000 f n o t [ c s > > C S . e d 0040020 i t C o n t r o l = e d i t 0040040 N e w ; b r e a k ] \r 0040060 ] \r 0040100 ] \r ] \r 0040120 c s > > C S . e d i t C o n t 0040140 r o l = e d i t N e w \r 0040160 ] r e p e a t \r ] \r \f \r / / 0040200 - - - - - - - - - - - - - - - - * 0040240 - - - - - - - - - - - 376 001 \0 ` 271 0040260 - - - - - - - - - - - - - - - - * 0040320 \r a n d A p p e n d C h a r ( 0040340 c s , c h a r , e c h o ) 0040360 = v a l o f \r / / - - - - - - 0040400 - - - - - - - - - - - - - - - - * 0040500 - - - - - \r / / A p p e n d s 0040520 a c h a r a c t e r t o t 0040540 h e c o m m a n d b u f f e 0040560 r , a n d a l s o e c h o 0040600 s i t i f e c h o \r / / i 0040620 s t r u e . I f e c h o 0040640 i s f a l s e , # 2 0 0 0040660 376 001 \0 q @ i s a d d e d t o 0040700 t h e c h a r a c t e r a 0040720 s a s i g n a l \r / / t h a 0040740 t t h e c h a r a c t e r 0040760 i s n o n - p r i n t i n g . 0041000 R e t u r n s t r u e n 0041020 o r m a l l y . \r / / I f t h 0041040 e b u f f e r o v e r f l o 0041060 w s , E r r o r s i s c a 0041100 l l e d ; i f E r r o r s 0041120 r e t u r n s , A p p e n d 0041140 C h a r \r / / r e t u r n s f 0041160 a l s e h a v i n g d o n e 0041200 n o t h i n g . \r [ \r l e t 0041220 i = c s > > C S . i C h I n 0041240 \r i f i g e c s > > C S . 0041260 m a x C h 376 001 \0 235 231 a r s t h 0041300 e n [ E r r o r s ( c s , 0041320 e c C m d T o o L o n g ) ; r 0041340 e s u l t i s f a l s e ] \r 0041360 t e s t e c h o \r i f s 0041400 o P u t s ( c s > > C S . d s 0041420 p S , c h a r ) \r i f n 0041440 o t c h a r = c h a r + # 0041460 2 0 0 \r c s > > C S . b u f > > 0041500 B u f ^ i = c h a r \r c s > 0041520 > C S . i C h I n = i + 1 \r 0041540 r e s u l t i s t r u e \r ] \r 0041560 \r \r / / - - - - - - - - - - - - 0041600 - - - - - - - - - - - - - - - - * 0041660 - - - - - - - - - - 376 001 \0 320 d - 0041700 - - - - \r a n d B a c k u p C 0041720 h a r s ( c s , b a c k u p W 0041740 o r d ) = v a l o f \r / / - 0041760 - - - - - - - - - - - - - - - - * 0042060 - - - - - - - - - - \r / / I f 0042100 b a c k u p W o r d i s f a 0042120 l s e , r e t u r n s t h e 0042140 i n d e x o f t h e l a 0042160 s t c h a r a c t e r i n p 0042200 u t . \r / / i f t r u e , r 0042220 e t u r n s t h e i n d e x 0042240 o f t h e f i r s t c h 0042260 a r a c t e r o f t h e 376 0042300 001 \0 6 351 c u r r e n t w o r d 0042320 . \r [ \r l e t i C h = c s 0042340 > > C S . i C h I n \r l e t p 0042360 d = l v c s > > C S . p d 0042400 ^ ( F i n d P h r a s e ( c s , 0042420 i C h ) ) \r l e t n o n B r 0042440 e a k S e e n = f a l s e \r 0042460 [ / / r e p e a t \r 0042500 l e t i N e w = i C h - 0042520 1 \r i f i C h e q p 0042540 d > > P D . i F i r s t t h e 0042560 n \r [ / / b a c k 0042600 u p t o p r e v i o u s 0042620 p h r a s e \r p d 0042640 = p d - l e n P D \r 0042660 i f p d e q l v c s > 0042700 > C S . 376 001 \0 260 K p d ^ 0 t h 0042720 e n b r e a k \r i 0042740 N e w = p d > > P D . i L a 0042760 s t \r ] \r u n 0043000 l e s s b a c k u p W o r d 0043020 r e s u l t i s i N e w \r 0043040 t e s t p d > > P D . W o r 0043060 d B r e a k ( c s , c s > > C 0043100 S . b u f > > B u f ^ i N e w 0043120 & # 1 7 7 ) \r i f 0043140 s o i f n o n B r e a k S e 0043160 e n t h e n b r e a k \r 0043200 i f n o t n o n B r e 0043220 a k S e e n = t r u e \r 0043240 i C h = i N e w \r ] 0043260 r e p e a t \r r e s u l t i s 0043300 i C h \r ] \r \f \r 376 001 \0 n { / / 0043320 - - - - - - - - - - - - - - - - * 0043420 - - - - - - - - - - - \r a n d 0043440 E r a s e I n p u t ( c s , i 0043460 , c o n t e x t ) b e \r / / 0043500 - - - - - - - - - - - - - - - - * 0043600 - - - - - - - - - - - \r / / E r 0043620 a s e s c h a r a c t e r s 0043640 f r o m t h e o n e m o s 0043660 t r e c e n t l y i n p u t 0043700 b a c k t o i \r / / ( 376 001 0043720 \0 267 g i n c l u s i v e ) a n 0043740 d r e s e t s t h e i n p 0043760 u t p o i n t e r t o t h 0044000 e b e g i n n i n g o f \r / 0044020 / t h e e r a s e d p o r t 0044040 i o n . \r [ \r i f i l s c 0044060 s > > C S . i C h I n t h e n 0044100 c s > > C S . E r a s e ( c s 0044120 , i , c s > > C S . i C h I 0044140 n - 1 , c o n t e x t ) \r c s 0044160 > > C S . i C h I n = i \r c 0044200 s > > C S . i P h I n = F i 0044220 n d P h r a s e ( c s , i ) \r 0044240 ] \r \r \r / / - - - - - - - - - - 0044260 - - - - - - - - - - - - - - - - * 0044320 - - - 376 001 \0 330 306 - - - - - - - - 0044340 - - - - - - - - - - - - - - - - 0044360 - - - - - - \r a n d E r a s e 0044400 B a c k T o ( c s , i , c o 0044420 n t e x t ) b e \r / / - - - - 0044440 - - - - - - - - - - - - - - - - * 0044540 - - - - - - - \r / / S a m e a 0044560 s E r a s e I n p u t ; a 0044600 d d i t i o n a l l y , i f 0044620 c h a r a c t e r s b e f o r 0044640 e t h e c u r r e n t \r / / 0044660 p h r a s e a r e e r a s e 0044700 d , i n i t i a t e s a r 0044720 e p a r s e o 376 001 \0 _ 373 f p 0044740 r e c e d i n g p h r a s e s 0044760 . \r [ \r E r a s e I n p u t ( c 0045000 s , i , c o n t e x t ) \r i 0045020 f c s > > C S . i P h I n l 0045040 s c s > > C S . i P h O u t 0045060 t h e n \r B a c k u p P h 0045100 r a s e ( c s , c s > > C S . 0045120 i P h O u t - c s > > C S . i P 0045140 h I n , e d i t A p p e n d ) 0045160 \r ] \r \r \r / / - - - - - - - - - 0045200 - - - - - - - - - - - - - - - - * 0045300 - - \r a n d F i n d P h r a s 0045320 e ( c s , i C h ) = 376 001 \0 0045340 K 246 v a l o f \r / / - - - - - - 0045360 - - - - - - - - - - - - - - - - * 0045460 - - - - - \r / / R e t u r n s 0045500 i n d e x o f p h r a s e 0045520 t o w h i c h c h a r a c t 0045540 e r i C h b e l o n g s \r [ 0045560 \r l e t i P h = c s > > C 0045600 S . i P h I n \r w h i l e i C 0045620 h l s c s > > C S . p d ^ i 0045640 P h . i F i r s t d o i P h 0045660 = i P h - 1 \r r e s u l t i 0045700 s i P h \r ] \r \r \r / / - - - - 0045720 - - - - - - - - - - - - - - - - 0045740 - - 376 001 \0 5 : - - - - - - - - - 0045760 - - - - - - - - - - - - - - - - * 0046020 - - - - - - - - - - - - \r a n d 0046040 R e t y p e C m d ( c s ) b 0046060 e \r / / - - - - - - - - - - - - 0046100 - - - - - - - - - - - - - - - - * 0046160 - - - - - - - - - - - - - - - \r 0046200 [ \r P u t s ( c s > > C S . d s 0046220 p S , $ * n ) \r f o r i = 0046240 0 t o c s > > C S . i C h 0046260 I n - 1 d o \r [ \r 0046300 l e t c h a r = c s > > C 0046320 S . b u f > > B u f ^ i \r 0046340 i f c h a r 376 \0 - \f 265 l s 0046360 # 2 0 0 t h e n P u t s ( c 0046400 s > > C S . d s p S , c h a r 0046420 ) \r ] \r ] \r 377 \0 \0 C m d S 0046440 c a n D i s p l a y . b c p l \0 0046460 373 224 345 357 t \0 \0 376 001 \0 301 026 / / C 0046500 m d S c a n D i s p l a y . b c 0046520 p l - - A l t o d i s p l 0046540 a y d e p e n d e n t p o r 0046560 t i o n o f \r / / \t \t \t c o m 0046600 m a n d s c a n n e r p a c 0046620 k a g e \r / / C o p y r i g h 0046640 t X e r o x C o r p o r a t 0046660 i o n 1 9 7 9 , 1 9 8 0 \r \r 0046700 / / \t L a s t m o d i f i e d 0046720 F e b r u a r y 2 8 , 1 9 0046740 8 0 7 : 4 7 P M b y T 0046760 a f t \r \r g e t " c m d s c a 0047000 n . d e c l " \r g e t " A l t 0047020 o D e f s . d " \r \r e x t e r n 0047040 a l \r [ \r / / o u t g o i n g 0047060 p r o c e d u r e s \r D 376 001 \0 323 0047100 u e f E r a s e ; D e f E r r 0047120 o r ; D e f B r e a k ; D e 0047140 f E c h o ; C m d E r r o r ; 0047160 I n v e r t W i n d o w \r \r / 0047200 / i n c o m i n g p r o c e d 0047220 u r e s \r C h a r W i d t h ; 0047240 G e t B i t P o s ; G e t L m 0047260 a r g ; E r a s e B i t s \r P 0047300 u t s ; R e s e t s ; W s s 0047320 ; S y s E r r \r C u r r e n t 0047340 P h r a s e ; B a c k u p P h 0047360 r a s e ; D i s m i s s \r ] \r 0047400 \r \r / / - - - - - - - - - - - - 0047420 - - - - - - - - - - - - - - - - * 0047500 - 376 001 \0 J - - - - - - - - - - - 0047520 - - - - \r l e t D e f E r a s 0047540 e ( c s , f i r s t , l a s 0047560 t , c o n t e x t ) b e \r / 0047600 / - - - - - - - - - - - - - - - 0047620 - - - - - - - - - - - - - - - - * 0047700 - - - - - - - - - - - - \r [ \r l 0047720 e t d s = c s > > C S . d 0047740 s p S \r l e t b i t s = 0 0047760 \r f o r i = f i r s t t 0050000 o l a s t d o \r [ \r 0050020 l e t c h a r = c s > 0050040 > C S . b u f > > B u f ^ i \r 0050060 i f c h a r l s # 2 0 0050100 0 t h e n 376 001 \0 337 027 \r 0050120 [ \r i f c h a 0050140 r e q $ * n t h e n [ 0050160 b i t s = 9 9 9 9 ; b r e 0050200 a k ] \r b i t s 0050220 = b i t s + ( c h a r g 0050240 e # 4 0 ? C h a r W i d t h 0050260 ( d s , c h a r ) , \r 0050300 C h a r W i d t h ( d s , 0050320 $ ^ ) + C h a r W i d t h ( d 0050340 s , c h a r + # 1 0 0 ) ) \r 0050360 ] \r ] \r t e s t 0050400 b i t s l e G e t B i t P 0050420 o s ( d s ) - G e t L m a r g ( 0050440 d s ) \r i f s o E r a s 0050460 e B i t s ( d s , - b i t s ) 0050500 \r i f n o t \r 376 001 \0 a 374 0050520 [ / / e r a s i n 0050540 g p a s t l e f t m a r g 0050560 i n \r R e s e t s ( 0050600 d s ) \r f o r i 0050620 = 0 t o f i r s t - 1 d 0050640 o \r i f c s 0050660 > > C S . b u f > > B u f ^ i 0050700 l s # 2 0 0 t h e n P u t 0050720 s ( d s , c s > > C S . b u f 0050740 > > B u f ^ i ) \r ] 0050760 \r ] \r \r \r / / - - - - - - - - - 0051000 - - - - - - - - - - - - - - - - * 0051100 - - \r a n d D e f B r e a k ( 0051120 376 001 \0 237 306 c s , c h a r ) = 0051140 c h a r e q $ * n % c 0051160 h a r e q $ * s % c h a 0051200 r e q $ * 0 3 3 \r / / - - - 0051220 - - - - - - - - - - - - - - - - * 0051320 - - - - - - - - \r \r / / - - - - 0051340 - - - - - - - - - - - - - - - - * 0051440 - - - - - - - \r a n d D e f E 0051460 c h o ( c s , c h a r ) = 0051500 n o t C u r r e n t P h r a s 0051520 e ( c s ) 376 001 \0 023 : > > P D . P 0051540 h r a s e T e r m i n a t o r ( 0051560 c s , c h a r ) \r / / - - - - 0051600 - - - - - - - - - - - - - - - - * 0051700 - - - - - - - \r \f \r / / - - - - 0051720 - - - - - - - - - - - - - - - - * 0052020 - - - - - - - \r a n d D e f E 0052040 r r o r ( c s , e c ) b e \r 0052060 / / - - - - - - - - - - - - - - 0052100 - - - - - - - - - - - - - - - - 0052120 - - - - - - - - - - 376 001 \0 ^ R - 0052140 - - - - - - - - - - - - - - - - * 0052200 - - \r [ \r c s > > C S . e r r o 0052220 r C o d e = e c \r s w i t c 0052240 h o n e c i n t o \r [ 0052260 \r c a s e e c C m d D e 0052300 l e t e : \r W s s ( 0052320 c s > > C S . d s p S , " X 0052340 X X " ) / / f a l l i n t 0052360 o n e x t c a s e \r c 0052400 a s e e c C m d D e s t r o y 0052420 : \r [ c s > > C S 0052440 . d e s t r o y = t r u e ; 0052460 B a c k u p P h r a s e ( c s 0052500 , c s > > C S . i P h O u t ) 0052520 ] \r c a s e e c C m 376 0052540 001 \0 ` P d T o o L o n g : / 0052560 / j u s t b l i n k w i n d 0052600 o w a n d d o n o t h i n 0052620 g \r [ C m d E r r 0052640 o r ( c s ) ; e n d c a s e 0052660 ] \r c a s e e c K e y A 0052700 m b i g u o u s : \r c a s 0052720 e e c B a c k u p A p p e n d 0052740 : \r [ C m d E r r 0052760 o r ( c s ) ; B a c k u p P h 0053000 r a s e ( c s , 0 , e d i t 0053020 A p p e n d ) ] \r c a s 0053040 e e c T o o M a n y P h r a s 0053060 e s : \r c a s e e c E n 0053100 d O f P h r a s e : \r 0053120 S y s E r r ( c s , e c ) \r 0053140 d 376 001 \0 \v Q e f a u l t : 0053160 / / a l l t y p e s o f 0053200 s y n t a x e r r o r s g 0053220 e t s a m e h a n d l i n g 0053240 \r C m d E r r o r ( 0053260 c s , " ? " ) / / f a l 0053300 l i n t o n e x t c a s e 0053320 \r c a s e e c B a c k u 0053340 p R e p l a c e : \r 0053360 B a c k u p P h r a s e ( c s ) 0053400 \r ] \r ] \r \r \r / / - - - - 0053420 - - - - - - - - - - - - - - - - * 0053520 - - - - - - - \r a n d C m d E 0053540 r r o r ( c s , 376 001 \0 326 227 s t 0053560 r i n g ; n u m a r g s n a 0053600 ) b e \r / / - - - - - - - - - 0053620 - - - - - - - - - - - - - - - - * 0053720 - - \r / / D i s p l a y s s t 0053740 r i n g i f p r e s e n t , 0053760 b l i n k s d i s p l a y 0054000 w i n d o w , a n d r e s e 0054020 t s k e y b o a r d \r [ \r i f 0054040 n a g r 1 & s t r i n 0054060 g n e 0 t h e n W s s ( 0054100 c s , s t r i n g ) \r I n v e 0054120 r t W i n d o w ( c s > > C S . 0054140 d s p S ) \r D i s m i s s ( 376 001 0054160 \0 237 l 5 0 ) \r I n v e r t W i n 0054200 d o w ( c s > > C S . d s p S ) 0054220 \r R e s e t s ( c s > > C S . k 0054240 e y S ) \r ] \r \r \r / / - - - - - 0054260 - - - - - - - - - - - - - - - - * 0054360 - - - - - - \r a n d I n v e r 0054400 t W i n d o w ( d s ) b e \r / 0054420 / - - - - - - - - - - - - - - - 0054440 - - - - - - - - - - - - - - - - * 0054520 - - - - - - - - - - - - \r [ \r l 0054540 e t d c b = d s > > D S . 0054560 f d c 376 \0 201 317 A b \r [ \r 0054600 d c b > > D C B . b a c k g 0054620 r o u n d = n o t d c b > 0054640 > D C B . b a c k g r o u n d \r 0054660 i f d c b e q d s > 0054700 > D S . l d c b t h e n b r 0054720 e a k \r d c b = d c b 0054740 > > D C B . n e x t \r ] 0054760 r e p e a t \r ] \r 377 \0 \0 C m d S 0055000 c a n T t y . b c p l \0 373 224 345 357 0055020 t \0 \0 376 001 \0 267 [ / / C m d S c 0055040 a n T t y . b c p l - - C o 0055060 m m a n d s c a n n e r e n 0055100 v i r o n m e n t - s p e c i f 0055120 i c p r o c e d u r e s \r / / 0055140 \t \t \t f o r d e a l i n g w 0055160 i t h s e q u e n t i a l t 0055200 e r m i n a l s t r e a m s \r 0055220 / / C o p y r i g h t X e r 0055240 o x C o r p o r a t i o n 1 0055260 9 7 9 \r \r / / \t L a s t m o d 0055300 i f i e d J u l y 1 4 , 1 0055320 9 7 7 6 : 5 4 P M \r \r g e 0055340 t " c m d s c a n . d e c l " 0055360 \r \r e x t e r n a l \r [ \r / / o 0055400 u t g o i n g p r o c e d u r 0055420 e s \r D e f E r 376 001 \0 n 273 a s e 0055440 ; D e f E r r o r ; D e f B 0055460 r e a k ; D e f E c h o ; C 0055500 m d E r r o r \r \r / / i n c o m 0055520 i n g p r o c e d u r e s \r P 0055540 u t s ; R e s e t s ; W s s 0055560 ; S y s E r r \r C u r r e n t 0055600 P h r a s e ; B a c k u p P h 0055620 r a s e ; D i s m i s s \r ] \r 0055640 \r \r / / - - - - - - - - - - - - 0055660 - - - - - - - - - - - - - - - - * 0055740 - - - - - - - - - - - - - - - \r 0055760 l e t D e f E r a s e ( c s , 0056000 f i r s t , l a s t , c o 0056020 n t e x t ) b e \r / / - 376 001 \0 0056040 213 307 - - - - - - - - - - - - - - 0056060 - - - - - - - - - - - - - - - - * 0056140 - - - - - - - - - - - - \r [ \r l 0056160 e t d s = c s > > C S . d 0056200 s p S \r s w i t c h o n c o n 0056220 t e x t i n t o \r [ \r 0056240 c a s e e r a s e C h a r 0056260 : \r [ \r 0056300 P u t s ( d s , $ \ ) \r 0056320 i f c s > > C S . b u f 0056340 > > B u f ^ f i r s t l s # 0056360 2 0 0 t h e n P u t s ( d s 0056400 , c s > > C S . b u f > > B u 0056420 f ^ f i r s t ) \r e 0056440 n d 376 001 \0 337 036 c a s e \r 0056460 ] \r c a s e e r a s 0056500 e W o r d : \r [ W 0056520 s s ( d s , " _ " ) ; e n 0056540 d c a s e ] \r ] \r ] \r \r 0056560 \r / / - - - - - - - - - - - - - 0056600 - - - - - - - - - - - - - - - - * 0056660 - - - - - - - - - - - - - - \r a 0056700 n d D e f B r e a k ( c s , 0056720 c h a r ) = c h a r e q 0056740 $ * n % c h a r e q $ * 0056760 s % c h a r e q $ * 0 3 0057000 3 \r / / - - - - - - - - - - - - 0057020 - - - - - - - - - - - - - - - - 0057040 - - - - - - - 376 001 \0 " K - - - - 0057060 - - - - - - - - - - - - - - - - * 0057120 - - - - \r \r / / - - - - - - - - 0057140 - - - - - - - - - - - - - - - - * 0057240 - - - \r a n d D e f E c h o ( 0057260 c s , c h a r ) = n o t 0057300 C u r r e n t P h r a s e ( c s 0057320 ) > > P D . P h r a s e T e r m 0057340 i n a t o r ( c s , c h a r ) 0057360 \r / / - - - - - - - - - - - - - 0057400 - - - - - - - - - - - - - - - - * 0057440 - - - - - - - - - - - - 376 001 \0 P 0057460 347 - - - - - - - - - - - - - - - 0057500 - - - \r \f \r / / - - - - - - - - 0057520 - - - - - - - - - - - - - - - - * 0057620 - - - \r a n d D e f E r r o r 0057640 ( c s , e c ) b e \r / / - - 0057660 - - - - - - - - - - - - - - - - * 0057760 - - - - - - - - - \r [ \r c s > > 0060000 C S . e r r o r C o d e = e 0060020 c \r s w i t c h o n e c i n 0060040 t o \r [ \r c a s e 0060060 e 376 001 \0 351 \n c C m d D e l e t e 0060100 : \r W s s ( c s > > 0060120 C S . d s p S , " X X X " ) 0060140 / / f a l l i n t o n e 0060160 x t c a s e \r c a s e 0060200 e c C m d D e s t r o y : \r 0060220 [ c s > > C S . d e s 0060240 t r o y = t r u e ; B a c 0060260 k u p P h r a s e ( c s , c s 0060300 > > C S . i P h O u t ) ] \r 0060320 c a s e e c C m d T o o L 0060340 o n g : / / j u s t d i n 0060360 g a n d d o n o t h i n g 0060400 \r [ C m d E r r o 0060420 r ( c s ) ; e n d c a s e ] 0060440 \r c a s e e c K e y A m 0060460 b i g u o u 376 001 \0 X 306 s : \r 0060500 c a s e e c B a c k u p A p 0060520 p e n d : \r [ C m 0060540 d E r r o r ( c s ) ; B a c k 0060560 u p P h r a s e ( c s , 0 , 0060600 e d i t A p p e n d ) ] \r 0060620 c a s e e c T o o M a n y P 0060640 h r a s e s : \r c a s e 0060660 e c E n d O f P h r a s e : \r 0060700 S y s E r r ( c s , 0060720 e c ) \r d e f a u l t : 0060740 / / a l l t y p e s o f 0060760 s y n t a x e r r o r s g e 0061000 t s a m e h a n d l i n g \r 0061020 C m d E r r o r ( c 0061040 s , " ? " ) / / f a l l 0061060 i n t o n e x t 376 001 \0 236 021 0061100 c a s e \r c a s e e c B 0061120 a c k u p R e p l a c e : \r 0061140 B a c k u p P h r a s e 0061160 ( c s ) \r ] \r ] \r \r \r / / 0061200 - - - - - - - - - - - - - - - - * 0061300 - - - - - - - - - - - \r a n d 0061320 C m d E r r o r ( c s , s t r 0061340 i n g ; n u m a r g s n a ) 0061360 b e \r / / - - - - - - - - - - 0061400 - - - - - - - - - - - - - - - - * 0061500 376 \0 262 X 031 - \r / / D i s p l a y 0061520 s s t r i n g i f p r e s 0061540 e n t , r i n g s b e l l , 0061560 a n d r e s e t s k e y b 0061600 o a r d s t r e a m \r [ \r i f 0061620 n a g r 1 & s t r i n 0061640 g n e 0 t h e n W s s ( 0061660 c s , s t r i n g ) \r P u t s 0061700 ( c s > > C S . d s p S , $ * 0061720 0 0 7 ) \r D i s m i s s ( 5 0 ) 0061740 \r R e s e t s ( c s > > C S . k 0061760 e y S ) \r ] \r 377 \0 \0 C m d S c a 0062000 n A u x . b c p l \0 373 230 336 K 022 \0 0062020 \0 376 001 \0 2 B / / C m d S c a n 0062040 A u x . b c p l - - A u x i 0062060 l i a r y c o m m a n d s c 0062100 a n n e r u t i l i t i e s \r 0062120 / / C o p y r i g h t X e r 0062140 o x C o r p o r a t i o n 1 0062160 9 7 9 , 1 9 8 1 , 1 9 8 2 \r 0062200 \r / / L a s t m o d i f i e 0062220 d A p r i l 9 , 1 9 8 2 0062240 6 : 0 2 P M b y T a f t 0062260 \r \r g e t " c m d s c a n . d 0062300 e c l " \r \r e x t e r n a l \r [ 0062320 \r / / o u t g o i n g p r o 0062340 c e d u r e s \r G e t N u m b e 0062360 r ; G e t S t r i n g ; G e 0062400 t F i l e ; C o n f i r m ; 0062420 G e t K e y 376 001 \0 ! 210 w o r d ; 0062440 K e y w o r d H e l p \r \r / / 0062460 i n c o m i n g p r o c e d 0062500 u r e s \r G e t P h r a s e ; 0062520 T e r m i n a t i n g C h a r ; 0062540 C u r r e n t P h r a s e ; 0062560 A p p e n d C h a r \r L o o k u 0062600 p K e y w o r d ; E n u m e r 0062620 a t e K e y w o r d T a b l e \r 0062640 D e f a u l t A r g s ; G e t 0062660 s ; P u t s ; E n d o f s ; 0062700 E r r o r s ; W s s ; W n 0062720 s \r A l l o c a t e ; F r e e 0062740 ; O p e n F i l e ; T r u e 0062760 P r e d i c a t e ; F a l s e 0063000 P r e d i c a t e ; Z e r o ; 0063020 D o u b l e A d d \r 376 001 \0 . J 0063040 ] \r \r s t r u c t u r e S t r 0063060 i n g [ l e n g t h b y t 0063100 e ; c h a r ^ 1 , 2 5 5 b y 0063120 t e ] \r \f \r / / - - - - - - - 0063140 - - - - - - - - - - - - - - - - * 0063240 - - - - \r l e t G e t N u m b 0063260 e r ( c s , r a d i x , l v 0063300 R e s u l t ; n u m a r g s 0063320 n a ) = v a l o f \r / / - - 0063340 - - - - - - - - - - - - - - - - * 0063440 376 001 \0 005 204 - - - - - - - - - \r / 0063460 / I n t e r p r e t s t h e 0063500 n e x t p h r a s e a s 0063520 a s i g n e d o r u n s i 0063540 g n e d n u m b e r i n t 0063560 h e s p e c i f i e d \r / / 0063600 r a d i x ( d e f a u l t 1 0063620 0 ) . I f l v R e s u l t 0063640 i s s u p p l i e d , a c 0063660 c e p t s a 3 2 - b i t n 0063700 u m b e r a n d \r / / s t o 0063720 r e s i t i n @ l v R e s 0063740 u l t . I n a n y e v e 0063760 n t , r e t u r n s t h e 0064000 l o w - o r d e r 1 6 b i t 0064020 s o f \r / / t h e r e s u 0064040 l t . \r [ 376 001 \0 201 A \r l e t d 0064060 i g i t = n i l \r l e t m 0064100 y R e s u l t = v e c 1 \r 0064120 D e f a u l t A r g s ( l v n 0064140 a , - 1 , 1 0 , m y R e s 0064160 u l t ) \r \r / / F r a m e o 0064200 f f s e t s o f a b o v e 0064220 a r g s a n d l o c a l s 0064240 u s e d b y a s s e m b l y 0064260 l a n g u a g e : \r m a n i f 0064300 e s t [ o R a d i x = 5 0064320 ; o l v R e s u l t = 6 ; 0064340 o D i g i t = 8 ] / 0064360 / n a i s o f f s e t 7 0064400 \r \r l e t d i g i t S e e n 0064420 = f a l s e \r l e t n e g a 0064440 t i v e = f a l 376 001 \0 u 324 s 0064460 e \r Z e r o ( l v R e s u l t , 0064500 2 ) \r G e t P h r a s e ( c s 0064520 , 0 , 0 , 0 , N u m b e 0064540 r H e l p , r a d i x ) \r u n 0064560 t i l E n d o f s ( c s ) d 0064600 o \r [ \r d i g i t 0064620 = G e t s ( c s ) - $ 0 \r 0064640 i f d i g i t u g e r a 0064660 d i x t h e n \r [ 0064700 \r i f ( d i g i t 0064720 e q $ + - $ 0 % d i g i 0064740 t e q $ - - $ 0 ) & n o 0064760 t d i g i t S e e n t h e n 0065000 \r [ n e g a 0065020 t i v e = d i g i t e q 0065040 $ - - $ 0 ; l o o p ] \r 376 0065060 001 \0 224 p E r r o r s ( 0065100 c s , e c N o n N u m e r i c 0065120 C h a r ) \r ] \r 0065140 d i g i t S e e n = t r u 0065160 e \r i f ( t a b l e \r 0065200 [ / / @ l v R e 0065220 s u l t = ( @ l v R e s u l 0065240 t ) * r a d i x + d i g i t 0065260 w i t h o v e r f l o w c 0065300 h e c k \r # 5 5 0 0065320 0 1 \t \t / / s t a 3 1 2 0065340 \r # 1 5 5 0 0 0 \t \t 0065360 / / m o v 2 3 \r 0065400 # 1 1 4 0 0 + o l v R e s u 0065420 l t \t / / i s z o l v R e s 0065440 u l t 3 \r # 2 1 0065460 4 0 0 + 376 001 \0 200 203 o D i g i t \t 0065500 / / l d a 0 o D i g i t 0065520 3 \r # 2 7 4 0 0 + 0065540 o l v R e s u l t \t / / l d a 0065560 1 @ o l v R e s u l t 3 \r 0065600 # 3 1 4 0 0 + o R 0065620 a d i x \t / / l d a 2 o R 0065640 a d i x 3 \r # 6 0065660 1 0 2 0 \t \t / / m u l \r 0065700 # 4 7 4 0 0 + o l v R e 0065720 s u l t \t / / s t a 1 @ o 0065740 l v R e s u l t 3 \r 0065760 # 1 5 4 0 0 + o l v R e s u 0066000 l t \t / / d s z o l v R e s 0066020 u l t 3 \r # 2 7 0066040 4 0 0 + o l v R e s u l t \t / / 0066060 l d a 1 @ o 376 001 \0 237 003 l v 0066100 R e s u l t 3 \r 0066120 # 6 1 0 2 0 \t \t / / m u l \r 0066140 # 4 7 4 0 0 + o l v 0066160 R e s u l t \t / / s t a 1 0066200 @ o l v R e s u l t 3 \r 0066220 # 1 7 1 0 0 0 \t \t / / m 0066240 o v 3 2 \r # 3 0066260 5 0 0 1 \t \t / / l d a 3 1 0066300 2 \r # 1 4 0 1 0066320 \t \t / / j m p 1 3 \r 0066340 ] ) ( ) n e 0 t h e 0066360 n E r r o r s ( c s , e c N 0066400 u m b e r O v e r f l o w ) \r 0066420 ] \r \r u n l e s s d i g i 0066440 t S e e n d o E r r o r s ( 0066460 c s , e c E m p t y N u m 376 001 0066500 \0 N 022 b e r ) \r i f l v R e s 0066520 u l t ! 0 n e 0 & l v R 0066540 e s u l t e q m y R e s u l 0066560 t t h e n E r r o r s ( c s 0066600 , e c N u m b e r O v e r f l 0066620 o w ) \r i f n e g a t i v e 0066640 t h e n \r [ \r l v R 0066660 e s u l t ! 0 = n o t l v 0066700 R e s u l t ! 0 ; l v R e s u 0066720 l t ! 1 = n o t l v R e s 0066740 u l t ! 1 \r D o u b l e A 0066760 d d ( l v R e s u l t , t a b 0067000 l e [ 0 ; 1 ] ) \r 0067020 ] \r r e s u l t i s l v R e s 0067040 u l t ! 1 \r ] \r \r / / - - - - - 0067060 - - - - - - - - - - - - - - - - 0067100 - - - 376 001 \0 R # - - - - - - - - 0067120 - - - - - - - - - - - - - - - - * 0067160 - - - - - - - - - - - \r a n d 0067200 N u m b e r H e l p ( s t r , 0067220 r a d i x ) b e \r / / - - - - 0067240 - - - - - - - - - - - - - - - - * 0067340 - - - - - - - \r [ \r s w i t c h 0067360 o n r a d i x i n t o \r 0067400 [ \r c a s e 1 0 : \r 0067420 [ W s s ( s t r , 0067440 " d e c i m a l " ) ; e n d c 0067460 a s e ] \r c a s e 8 : 0067500 \r [ 376 001 \0 354 271 W s 0067520 s ( s t r , " o c t a l " ) ; 0067540 e n d c a s e ] \r d e 0067560 f a u l t : \r [ W 0067600 s s ( s t r , " b a s e " ) 0067620 ; W n s ( s t r , r a d i x 0067640 ) ] \r ] \r W s s ( s t r 0067660 , " n u m b e r " ) \r ] \r \f 0067700 \r / / - - - - - - - - - - - - - 0067720 - - - - - - - - - - - - - - - - * 0070000 - - - - - - - - - - - - - - \r a 0070020 n d G e t S t r i n g ( c s , 0070040 P h r a s e T e r m i n a t o 0070060 r , H e l p , h e l p A r g 0070100 , E c h o ; n u m a r 376 001 \0 0070120 c 312 g s n a ) = v a l o f 0070140 \r / / - - - - - - - - - - - - - 0070160 - - - - - - - - - - - - - - - - * 0070240 - - - - - - - - - - - - - - \r / 0070260 / R e t u r n s t h e n e 0070300 x t p h r a s e a s a b 0070320 c p l s t r i n g \r [ \r D e f 0070340 a u l t A r g s ( l v n a , 0070360 - 1 , 0 , 0 , 0 , 0 ) \r 0070400 l e t n = G e t P h r a s 0070420 e ( c s , 0 , P h r a s e T 0070440 e r m i n a t o r , E c h o , 0070460 H e l p , h e l p A r g ) \r 0070500 l e t s = A l l o c a t e 0070520 ( c 376 001 \0 ' ~ s > > C S . z o n 0070540 e , n r s h i f t 1 + 1 0070560 ) \r s > > S t r i n g . l e n g 0070600 t h = n \r f o r i = 1 0070620 t o n d o s > > S t r i 0070640 n g . c h a r ^ i = G e t s 0070660 ( c s ) \r r e s u l t i s s \r 0070700 ] \r \r / / - - - - - - - - - - - 0070720 - - - - - - - - - - - - - - - - * 0071020 \r a n d G e t F i l e ( c s , 0071040 k s T y p e , i t e m S i z 0071060 e , v e r s i o n C o n t r o 0071100 l , h i n t F p , e r r R t 0071120 n , z o n e 376 001 \0 271 ~ , \r 0071140 l o g I n f o , d i s k ; 0071160 n u m a r g s n a ) = v 0071200 a l o f \r / / - - - - - - - - - 0071220 - - - - - - - - - - - - - - - - * 0071320 - - \r / / R e t u r n s a 0071340 s t r e a m f o r a f i l 0071360 e w h o s e n a m e i s 0071400 t h e n e x t p h r a s e . 0071420 \r / / A l l a r g u m e n t 0071440 s e x c e p t t h e f i r 0071460 s t a r e p a s s e d d i 0071500 r e c t l y t o O p e n F i 0071520 l e . \r [ \r D e f a u l 376 001 \0 335 0071540 \b t A r g s ( l v n a , - 1 0071560 , 0 , 0 , 0 , 0 , 0 , 0071600 0 , 0 , 0 ) \r l e t s t 0071620 r i n g = G e t S t r i n g 0071640 ( c s , 0 , W s s , " f i 0071660 l e n a m e " ) \r l e t s t 0071700 r e a m = O p e n F i l e ( 0071720 s t r i n g , k s T y p e , 0071740 i t e m S i z e , v e r s i o 0071760 n C o n t r o l , h i n t F p 0072000 , \r e r r R t n , z o n e , 0072020 l o g I n f o , d i s k ) \r 0072040 F r e e ( c s > > C S . z o n e 0072060 , s t r i n g ) \r i f s t r 0072100 e a m e q 0 t h e n E r 0072120 r o r s ( c s , e c C a n t O 0072140 p 376 001 \0 235 \b e n F i l e ) \r r e 0072160 s u l t i s s t r e a m \r ] \r 0072200 \r / / - - - - - - - - - - - - - 0072220 - - - - - - - - - - - - - - - - * 0072300 - - - - - - - - - - - - - - \r a 0072320 n d C o n f i r m ( c s , s 0072340 t r i n g ; n u m a r g s n 0072360 a ) = v a l o f \r / / - - - 0072400 - - - - - - - - - - - - - - - - * 0072500 - - - - - - - - \r / / I n p u 0072520 t s a n d r e t u r n s a 0072540 t r u e 376 001 \0 316 031 o r f a 0072560 l s e c o n f i r m a t i o n 0072600 \r [ \r i f n a g r 1 & 0072620 s t r i n g n e 0 t h e n 0072640 W s s ( c s , s t r i n g ) 0072660 \r W s s ( c s , " [ C o n f 0072700 i r m ] " ) \r G e t P h r a s 0072720 e ( c s , T r u e P r e d i c 0072740 a t e , T r u e P r e d i c a 0072760 t e , F a l s e P r e d i c a 0073000 t e , W s s , " y o r n 0073020 " ) \r s w i t c h o n T e r m 0073040 i n a t i n g C h a r ( c s ) 0073060 i n t o \r [ \r c a s 0073100 e $ Y : c a s e $ y : c 0073120 a s e $ * n : \r [ 0073140 W s s ( c s , " y 376 001 \0 8 365 0073160 e s . " ) ; r e s u l t i s 0073200 t r u e ] \r c a s e 0073220 $ N : c a s e $ n : \r 0073240 [ W s s ( c s , " n o 0073260 . " ) ; r e s u l t i s f 0073300 a l s e ] \r d e f a u l 0073320 t : \r E r r o r s ( 0073340 c s , e c B a d C o n f i r m 0073360 i n g C h a r ) \r ] \r ] \r 0073400 \f \r / / - - - - - - - - - - - - 0073420 - - - - - - - - - - - - - - - - * 0073500 - - - - - - - - - - - - - - - \r 0073520 a n d G e t K e y w o r d ( c 0073540 s , k t , r e t u r n O n F 0073560 376 001 \0 0 376 a i l , P h r a s e 0073600 T e r m i n a t o r ; n u m a 0073620 r g s n a ) = v a l o f \r 0073640 / / - - - - - - - - - - - - - - 0073660 - - - - - - - - - - - - - - - - * 0073740 - - - - - - - - - - - - - \r / / 0073760 L o o k s u p p h r a s e 0074000 i n k e y w o r d t a b l 0074020 e k t a n d r e t u r n s 0074040 p o i n t e r t o c o r r 0074060 e s p o n d i n g \r / / t a b 0074100 l e e n t r y . I f r e 0074120 t u r n O n F a i l i s t r 0074140 u e , r e t u r n s z e r o 0074160 o n f 376 001 \0 C 223 a i l u r e 0074200 . \r / / I f a n a b b r e 0074220 v i a t e d k e y w o r d i 0074240 s r e c o g n i z e d , a p 0074260 p e n d s t h e r e m a i n 0074300 d e r o f t h e \r / / k e 0074320 y w o r d t o t h e c o m 0074340 m a n d l i n e i f f t h 0074360 e t e r m i n a t i n g c h 0074400 a r a c t e r d i d n o t 0074420 e c h o . \r [ \r D e f a u l t A 0074440 r g s ( l v n a , - 2 , f 0074460 a l s e , 0 ) \r l e t k e y 0074500 = G e t S t r i n g ( c s , 0074520 P h r a s e T e r m i n a t o 0074540 r , K e y w o r d H e l p , 0074560 k t ) \r l e t l e 376 001 \0 177 N n 0074600 g t h = k e y > > S t r i n 0074620 g . l e n g t h \r l e t t a b 0074640 l e K e y = n i l \r l e t 0074660 e n t r y = L o o k u p K e 0074700 y w o r d ( k t , k e y , l 0074720 v t a b l e K e y ) \r F r e e 0074740 ( c s > > C S . z o n e , k e 0074760 y ) \r i f e n t r y e q 0 0075000 t h e n \r t e s t t a 0075020 b l e K e y e q 0 % l e 0075040 n g t h e q 0 / / a m 0075060 b i g u o u s o r o u t r i 0075100 g h t f a i l u r e ? \r 0075120 i f s o r e s u l t i s 0075140 r e t u r n O n F a i l ? 0 0075160 , E r r o r s ( c s , e c 376 0075200 001 \0 033 a K e y N o t F o u n d ) 0075220 \r i f n o t E r r 0075240 o r s ( c s , e c K e y A m b 0075260 i g u o u s ) \r i f l e n g t 0075300 h l s t a b l e K e y > > S 0075320 t r i n g . l e n g t h t h e 0075340 n \r [ \r l e t c h 0075360 a r = T e r m i n a t i n g 0075400 C h a r ( c s ) \r u n l e 0075420 s s C u r r e n t P h r a s e 0075440 ( c s ) > > P D . E c h o ( c s 0075460 , c h a r ) d o \r 0075500 [ / / a p p e n d t a 0075520 i l o f k e y w o r d a s 0075540 i f i t h a d b e e n 0075560 t y p e d i n \r c 0075600 s > > C 376 001 \0 - 312 S . i C h I n 0075620 = c s > > C S . i C h I n - 0075640 1 \r f o r i = 0075660 l e n g t h + 1 t o t a b l 0075700 e K e y > > S t r i n g . l e n 0075720 g t h d o \r 0075740 P u t s ( c s , t a b l e K e 0075760 y > > S t r i n g . c h a r ^ i 0076000 ) \r C u r r e n t P 0076020 h r a s e ( c s ) > > P D . i L 0076040 a s t = c s > > C S . i C h 0076060 I n \r A p p e n d C 0076100 h a r ( c s , c h a r , f a 0076120 l s e ) \r ] \r 0076140 ] \r r e s u l t i s e n t r y 0076160 \r ] \r \r / / - - - - - - - - - - 0076200 - - - - - - - - - 376 001 \0 6 ^ - - 0076220 - - - - - - - - - - - - - - - - * 0076300 - - - - - - \r a n d K e y w o 0076320 r d H e l p ( s t r , k t ) 0076340 b e \r / / - - - - - - - - - - - 0076360 - - - - - - - - - - - - - - - - * 0076460 \r [ \r W s s ( s t r , " o n e 0076500 o f t h e f o l l o w i n 0076520 g : * n " ) \r l e t c o u n t 0076540 , s t r 1 = 0 , s t r \r 0076560 E n u m e r a t e K e y w o r d 0076600 T a b l e ( k t , P r i n 376 001 0076620 \0 331 p t K e y w o r d , l v 0076640 c o u n t ) \r ] \r \r / / - - - - 0076660 - - - - - - - - - - - - - - - - * 0076760 - - - - - - - \r a n d P r i n 0077000 t K e y w o r d ( e n t r y , 0077020 k t , k e y , l v C o u n t 0077040 ) b e \r / / - - - - - - - - - 0077060 - - - - - - - - - - - - - - - - * 0077160 - - \r [ \r l e t c o u n t = 0077200 @ l v C o u n t \r l e t s t 0077220 r = 376 \0 312 363 317 l v C o u n t 0077240 ! 1 \r t e s t c o u n t + k e 0077260 y > > S t r i n g . l e n g t h 0077300 g r 6 0 \r i f s o [ 0077320 W s s ( s t r , " , * n " ) 0077340 ; c o u n t = 0 ] \r 0077360 i f n o t i f c o u n t 0077400 n e 0 t h e n [ W s s ( 0077420 s t r , " , " ) ; c o u n 0077440 t = c o u n t + 2 ] \r W s 0077460 s ( s t r , k e y ) \r @ l v C 0077500 o u n t = c o u n t + k e y 0077520 > > S t r i n g . l e n g t h \r 0077540 ] \r 377 \0 \0 C m d S c a n O E P . 0077560 b c p l \0 373 230 336 K ; \0 \0 376 001 \0 200 0077600 033 / / C m d S c a n O E P . b 0077620 c p l - - o v e r l a y e 0077640 n t r y p o i n t d e c l a 0077660 r a t i o n s f o r C m d S 0077700 c a n p a c k a g e \r / / C 0077720 o p y r i g h t X e r o x C 0077740 o r p o r a t i o n 1 9 7 9 , 0077760 1 9 8 2 \r \r / / \t L a s t m 0100000 o d i f i e d A p r i l 9 , 0100020 1 9 8 2 6 : 0 4 P M b 0100040 y T a f t \r \r e x t e r n a l 0100060 \r [ \r / / o u t g o i n g p r 0100100 o c e d u r e s \r I n i t C m d 0100120 S c a n O E P \r \r / / i n c o m 0100140 i n g p r o c e d u r e s \r D 0100160 e c l a r e O E P ; C S G e t 0100200 s 376 001 \0 020 x ; C S P u t s ; 0100220 C S E n d o f s ; C S C l o s 0100240 e s \r C S R e s e t s ; D e f 0100260 B r e a k ; D e f E c h o ; 0100300 D e f E r a s e ; D e f E r r 0100320 o r \r K e y w o r d H e l p \r ] 0100340 \r \r / / - - - - - - - - - - - - 0100360 - - - - - - - - - - - - - - - - * 0100440 - - - - - - - - - - - - - - - \r 0100460 l e t I n i t C m d S c a n O 0100500 E P ( o e v ) b e \r / / - - - 0100520 - - - - - - - - - - - - - - - - * 0100600 - - - - - - 376 \0 256 270 = - - - - - 0100620 - - - - - - - - - - - - - \r 0100640 D e c l a r e O E P ( o e v , 0100660 l v C S G e t s , l v C 0100700 S P u t s , l v C S E n d o 0100720 f s , l v C S C l o s e s , 0100740 \r l v C S R e s e t s 0100760 , l v D e f B r e a k , l 0101000 v D e f E c h o , l v D e 0101020 f E r a s e , l v D e f E r 0101040 r o r , \r l v K e y w 0101060 o r d H e l p ) \r 377 \0 \0 K e y w 0101100 o r d . d e c l \0 373 231 \t 271 023 \0 \0 0101120 376 001 \0 351 253 / / K e y w o r d . 0101140 d e c l - - d e c l a r a t 0101160 i o n s f o r k e y w o r d 0101200 t a b l e p a c k a g e \r / 0101220 / C o p y r i g h t X e r o 0101240 x C o r p o r a t i o n 1 9 0101260 7 9 \r \r / / L a s t m o d i 0101300 f i e d M a y 1 2 , 1 9 8 0101320 2 5 : 4 0 P M b y T a 0101340 f t \r \r \r / / - - - - - - - - - 0101360 - - - - - - - - - - - - - - - - * 0101460 - - \r s t r u c t u r e K T E 0101500 : / / K e y w o r d T a 0101520 b l e E 376 001 \0 206 \0 n t r y \r / 0101540 / - - - - - - - - - - - - - - - 0101560 - - - - - - - - - - - - - - - - * 0101640 - - - - - - - - - - - - \r [ \r k 0101660 e y w o r d \t \t / / - > k 0101700 e y w o r d s t r i n g \r e n 0101720 t r y w o r d \t \t / / o n e 0101740 o r m o r e w o r d s o 0101760 f c l i e n t d a t a s t 0102000 a r t h e r e \r ] \r \r / / - - 0102020 - - - - - - - - - - - - - - - - * 0102120 - - - - - - - - - \r 376 001 \0 306 - s 0102140 t r u c t u r e K T : / / 0102160 K e y w o r d T a b l e \r / 0102200 / - - - - - - - - - - - - - - - 0102220 - - - - - - - - - - - - - - - - * 0102300 - - - - - - - - - - - - \r [ \r / 0102320 / d e f i n e d o p e r a t 0102340 i o n s \r I n s e r t w o r d 0102360 \t \t / / C a l l 0 : i n s e 0102400 r t k e y w o r d i n t a 0102420 b l e \r D e l e t e w o r d \t 0102440 \t / / C a l l 1 : d e l e t 0102460 e k e y w o r d f r o m t 0102500 a b l e \r L o o k u p w o r d 0102520 \t \t / / C a l l 2 : l o o 376 0102540 001 \0 + 177 k u p k e y w o r d \r 0102560 E n u m e r a t e w o r d \t \t 0102600 / / C a l l 3 : e n u m e r 0102620 a t e k e y w o r d t a b l 0102640 e \r D e s t r o y w o r d \t \t 0102660 / / C a l l 4 : d e s t r o 0102700 y k e y w o r d t a b l e \r 0102720 \r / / i n s t a n c e d a t 0102740 a \r z o n e w o r d \t \t / / 0102760 z o n e f r o m w h i c h 0103000 K T a l l o c a t e d \r n u m 0103020 E n t r i e s w o r d \t \t / / 0103040 p r e s e n t n u m b e r 0103060 o f e n t r i e s i n t a 0103100 b l e \r m a x E n t r i e s w 0103120 o r d \t \t / / m a x i m u m 0103140 n u m b 376 \0 321 361 \b e r o f e 0103160 n t r i e s \r l e n K T E w o 0103200 r d \t \t / / l e n g t h o f 0103220 e a c h k e y w o r d t a 0103240 b l e e n t r y \r k t e ^ 0 , 0103260 0 @ K T E \t \t / / f i r s t 0103300 e n t r y s t a r t s h e 0103320 r e \r ] \r \r m a n i f e s t \r [ 0103340 \r / / e r r o r c o d e s \r 0103360 e c K e y A l r e a d y E x i s 0103400 t s = 2 8 2 5 \r e c K e y T 0103420 a b l e F u l l = 2 8 2 6 \r 0103440 e c K e y D o e s n t E x i s t 0103460 = 2 8 2 7 \r ] \r 377 \0 \0 K e y 0103500 w o r d . b c p l \0 373 231 \n 361 362 \0 0103520 \0 376 001 \0 331 217 / / K e y w o r d 0103540 . b c p l - - m a i n p o 0103560 r t i o n o f k e y w o r d 0103600 t a b l e p a c k a g e , \r 0103620 / / \t \t c o n t a i n i n g p 0103640 r i m i t i v e s t o l o o 0103660 k u p k e y w o r d s a n 0103700 d t o \r / / \t \t e n u m e r a 0103720 t e a n d d e s t r o y k 0103740 e y w o r d t a b l e s . \r / 0103760 / C o p y r i g h t X e r o 0104000 x C o r p o r a t i o n 1 9 0104020 7 9 , 1 9 8 2 \r \r / / L a s 0104040 t m o d i f i e d M a y 1 0104060 3 , 1 9 8 2 3 : 5 5 P M 0104100 b y T a f t \r \r g e t " K 0104120 e y w o r d 376 001 \0 [ 241 . d e c l 0104140 " \r \r e x t e r n a l \r [ \r / / 0104160 o u t g o i n g p r o c e d 0104200 u r e s \r K T L o o k u p ; K 0104220 T E n u m e r a t e ; K T D e 0104240 s t r o y ; B i n a r y S e a 0104260 r c h ; C o m p a r e K e y \r 0104300 \r / / i n c o m i n g p r o 0104320 c e d u r e s \r S t r i n g C o 0104340 m p a r e ; F r e e ; M a x 0104360 \r ] \r \r / / - - - - - - - - - - 0104400 - - - - - - - - - - - - - - - - * 0104500 - \r l e t K T L o o k u p ( k 0104520 t , k e y , l v T 376 001 \0 V 343 0104540 a b l e K e y ; n u m a r g s 0104560 n a ) = v a l o f \r / / - 0104600 - - - - - - - - - - - - - - - - * 0104700 - - - - - - - - - - \r / / L o 0104720 o k s u p k e y i n k t 0104740 a n d r e t u r n s a p 0104760 o i n t e r t o t h e c o 0105000 r r e s p o n d i n g e n t r 0105020 y \r / / i f i t i s f o 0105040 u n d , z e r o i f n o t 0105060 f o u n d . I f t h e 0105100 k e y i s a n i n i t i a 0105120 l s u b s t r i n g o f \r / 0105140 376 001 \0 g 005 / e x a c t l y o 0105160 n e e n t r y i t i s c 0105200 o n s i d e r e d f o u n d , 0105220 b u t i f i t i s a n 0105240 i n i t i a l s u b s t r i 0105260 n g \r / / o f m o r e t h 0105300 a n o n e e n t r y i t 0105320 i s c o n s i d e r e d n o 0105340 t f o u n d . \r / / I f l 0105360 v T a b l e K e y i s p r o 0105400 v i d e d , a p o i n t e r 0105420 t o t h e k e y w o r d 0105440 s t r i n g i n t h e m a 0105460 t c h i n g \r / / e n t r y 0105500 i s s t o r e d i n @ l v 0105520 T a b l e K e y i f t h e 0105540 k e y i 376 001 \0 300 231 s e i t h 0105560 e r f o u n d o r a m b i 0105600 g u o u s . \r / / T o c l a 0105620 r i f y : \r / / C o n d i 0105640 t i o n : \t \t \t r e t u r n 0105660 s : \t @ l v T a b l e K e y 0105700 : \r / / E x a c t m a t c h 0105720 \t \t \t e n t r y p o i n t e r 0105740 \t m a t c h i n g t a b l e 0105760 k e y \r / / U n i q u e i n 0106000 i t i a l s u b s t r i n g \t 0106020 e n t r y p o i n t e r \t m a 0106040 t c h i n g t a b l e k e y 0106060 \r / / A m b i g u o u s i n 0106100 i t i a l s u b s t r i n g \t 0106120 z e r o \t \t f i r s t m a t c 0106140 h i n g t a b l e 376 001 \0 335 022 0106160 k e y \r / / N o m a t c h \t 0106200 \t \t z e r o \t \t z e r o \r [ \r i 0106220 f n a l s 3 t h e n l 0106240 v T a b l e K e y = l v n 0106260 a \r l e t n u m E n t r i e s 0106300 = k t > > K T . n u m E n t 0106320 r i e s \r l e t r = B i n 0106340 a r y S e a r c h ( k e y , k 0106360 t , n u m E n t r i e s , C 0106400 o m p a r e K e y ) \r l e t i 0106420 = M a x ( r , n o t r ) 0106440 / / i n d e x o f s m 0106460 a l l e s t e n t r y g e 0106500 k e y \r l e t k t e = l v 0106520 k t > > K T . k t e ^ 0 + 0106540 i * k t > > K T . l e n K 376 0106560 001 \0 366 W T E \r l e t e n t r y 0106600 = l v k t e > > K T E . e 0106620 n t r y \r i f r l s 0 t 0106640 h e n \r [ / / n o t 0106660 e x a c t m a t c h , t e 0106700 s t f o r s u b s t r i n g 0106720 m a t c h \r i f i g 0106740 e n u m E n t r i e s % S 0106760 t r i n g C o m p a r e ( k e y 0107000 , k t e > > K T E . k e y ) 0107020 n e - 2 t h e n \r 0107040 [ @ l v T a b l e K e y = 0107060 0 ; r e s u l t i s 0 ] 0107100 / / n o t s u b s t r i 0107120 n g m a t c h \r i f i 0107140 + 1 l s n u m E n t r i e s 0107160 & C 376 001 \0 216 i o m p a r e K 0107200 e y ( k e y , k t , i + 1 ) 0107220 e q - 2 t h e n \r 0107240 e n t r y = 0 / / 0107260 a m b i g u o u s \r ] \r @ 0107300 l v T a b l e K e y = k t e 0107320 > > K T E . k e y \r r e s u l t 0107340 i s e n t r y \r ] \r \r / / - - 0107360 - - - - - - - - - - - - - - - - * 0107460 - - - - - - - - - \r a n d K T 0107500 E n u m e r a t e ( k t , P r 0107520 o c , a r g ) b e \r / / - - 0107540 - - - - - - - - - - - - - - - - 0107560 - - - - - - - - - 376 001 \0 257 275 - - 0107600 - - - - - - - - - - - - - - - - * 0107640 - - - - - - - - - - - - - - \r / 0107660 / C a l l s P r o c ( e n t 0107700 r y , k t , k e y w o r d , 0107720 a r g ) f o r e a c h e 0107740 n t r y i n t h e t a b l 0107760 e . \r / / P r o c m a y c 0110000 h a n g e t h e e n t r y 0110020 b u t m u s t n o t i n s 0110040 e r t o r d e l e t e k e 0110060 y s . \r [ \r l e t k t e = 0110100 l v k t > > K T . k t e ^ 0 \r 0110120 l e t e n d K T E = k t e 0110140 + k t > > K T . n u m E n t 0110160 r i e s * k t > > K T . 376 001 0110200 \0 243 263 l e n K T E \r u n t i l 0110220 k t e e q e n d K T E d o 0110240 \r [ \r P r o c ( l v 0110260 k t e > > K T E . e n t r y , 0110300 k t , k t e > > K T E . k e 0110320 y , a r g ) \r k t e = 0110340 k t e + k t > > K T . l e 0110360 n K T E \r ] \r ] \r \f \r / / 0110400 - - - - - - - - - - - - - - - - * 0110500 - - - - - - - - - - - \r a n d 0110520 K T D e s t r o y ( k t ) b e 0110540 \r / / - - - - - - - - - - - - - 0110560 - - - - - - - - - - - - - - - - 0110600 - - - 376 001 \0 305 / - - - - - - - - 0110620 - - - - - - - - - - - - - - - - * 0110660 - - - \r / / D e s t r o y s 0110700 k e y w o r d t a b l e \r [ \r 0110720 K T E n u m e r a t e ( k t , 0110740 F r e e K e y ) \r F r e e ( k t 0110760 > > K T . z o n e , k t ) \r ] 0111000 \r \r / / - - - - - - - - - - - - 0111020 - - - - - - - - - - - - - - - - * 0111100 - - - - - - - - - - - - - - - \r 0111120 a n d F r e e K e y ( e n t r 0111140 y , k t , k e y w o r d , 0111160 n i l ) b e F r e e ( k t > 0111200 > K T . z o n e 376 001 \0 a 334 , k 0111220 e y w o r d ) \r / / - - - - - - 0111240 - - - - - - - - - - - - - - - - * 0111340 - - - - - \r \r / / - - - - - - - 0111360 - - - - - - - - - - - - - - - - * 0111460 - - - - \r a n d C o m p a r e 0111500 K e y ( k e y , k t , i ) 0111520 = \r S t r i n g C o m p a 0111540 r e ( k e y , ( l v k t > > 0111560 K T . k t e ^ 0 + i * k 0111600 t > > K T . l e n K T E ) 376 001 \0 0111620 323 s > > K T E . k e y ) \r / / - 0111640 - - - - - - - - - - - - - - - - * 0111740 - - - - - - - - - - \r / / C o 0111760 m p a r e s k e y a g a i n 0112000 s t t h e k t e n t r y 0112020 w h o s e i n d e x i s i 0112040 . R e t u r n s a v a l 0112060 u e \r / / d e s c r i b i n g 0112100 t h e o u t c o m e : \r / / 0112120 - 2 t h e k e y i s a 0112140 n i n i t i a l s u b s t r 0112160 i n g o f t h e e n t r y 0112200 \r / / - 1 t h e k e y i 0112220 s 376 001 \0 036 277 " l e s s t h a 0112240 n " t h e e n t r y b u t 0112260 n o t a n i n i t i a l 0112300 s u b s t r i n g \r / / 0 0112320 t h e k e y i s " e q u a 0112340 l t o " t h e e n t r y \r 0112360 / / 1 t h e k e y i s 0112400 " g r e a t e r t h a n " 0112420 t h e e n t r y \r \r / / - - - 0112440 - - - - - - - - - - - - - - - - * 0112540 - - - - - - - - \r a n d B i n 0112560 a r y S e a r c h ( k e y , t 0112600 b l , l e n T b l , C o m p 0112620 a r e ) = 376 001 \0 322 a v a l o 0112640 f \r / / - - - - - - - - - - - - 0112660 - - - - - - - - - - - - - - - - * 0112740 - - - - - - - - - - - - - - - \r 0112760 / / S e a r c h e s f o r 0113000 k e y i n t h e s o r t e 0113020 d t a b l e t b l , w h i 0113040 c h h a s e n t r i e s n 0113060 u m b e r e d \r / / z e r o 0113100 t o l e n T b l - 1 . T h 0113120 e c o m p a r i s o n p r o 0113140 c e d u r e C o m p a r e ( k 0113160 e y , t b l , i ) i s \r / 0113200 / e x p e c t e d t o c o 0113220 m p a r e k e y a g 376 001 \0 ; 0113240 006 a i n s t e n t r y i i 0113260 n t h e t a b l e a n d 0113300 r e t u r n \r / / a n e g a 0113320 t i v e n u m b e r i f t 0113340 h e k e y i s " l e s s 0113360 t h a n " t h e e n t r y , 0113400 z e r o i f " e q u a l " 0113420 , \r / / o r a p o s i t i 0113440 v e n u m b e r i f " g r 0113460 e a t e r t h a n " . \r / / 0113500 I f t h e r e q u e s t e d 0113520 k e y i s f o u n d , B 0113540 i n a r y S e a r c h r e t u 0113560 r n s t h e i n d e x o f 0113600 t h e \r / / m a t c h i n g 0113620 e n t r y i n t h e t a 0113640 b 376 001 \0 303 $ l e . I f n o 0113660 t f o u n d , r e t u r n s 0113700 - i - 1 ( = n o t i ) , 0113720 \r / / w h e r e i i s t 0113740 h e i n d e x o f t h e 0113760 e n t r y b e f o r e w h i 0114000 c h t h e k e y s h o u l 0114020 d b e i n s e r t e d . \r [ 0114040 \r l e t l o w , h i g h = 0114060 0 , l e n T b l - 1 \r 0114100 [ \r i f h i g h l s 0114120 l o w r e s u l t i s n o t 0114140 l o w \r l e t p r o b 0114160 e = ( l o w + h i g h ) r 0114200 s h i f t 1 \r l e t r 0114220 = C o m p a r e ( k e y , 0114240 t b l , p 376 \0 s # } r o b e ) 0114260 \r i f r e q 0 r e 0114300 s u l t i s p r o b e \r 0114320 t e s t r l s 0 \r 0114340 i f s o h i g h = p r 0114360 o b e - 1 \r i f n o 0114400 t l o w = p r o b e + 1 \r 0114420 ] r e p e a t \r ] \r 377 \0 0114440 \0 K e y w o r d I n i t . b c p 0114460 l \0 373 231 \t 276 \t \0 \0 376 001 \0 7 265 / / 0114500 K e y w o r d I n i t . b c p 0114520 l - - i n i t i a l i z a t 0114540 i o n f o r k e y w o r d 0114560 t a b l e p a c k a g e , \r / 0114600 / \t \t c o n t a i n i n g p r 0114620 i m i t i v e s f o r c r e 0114640 a t i n g k e y w o r d t a 0114660 b l e s \r / / \t \t a n d i n s 0114700 e r t i n g a n d d e l e t 0114720 i n g k e y w o r d t a b l 0114740 e e n t r i e s . \r / / C o 0114760 p y r i g h t X e r o x C o 0115000 r p o r a t i o n 1 9 7 9 , 0115020 1 9 8 2 \r \r / / L a s t m o 0115040 d i f i e d M a y 1 2 , 1 0115060 9 8 2 5 : 2 4 P M b 376 001 0115100 \0 Y 311 y T a f t \r \r g e t " 0115120 K e y w o r d . d e c l " \r \r e 0115140 x t e r n a l \r [ \r / / o u t 0115160 g o i n g p r o c e d u r e s 0115200 \r C r e a t e K e y w o r d T a 0115220 b l e ; D e s t r o y K e y w 0115240 o r d T a b l e ; E n u m e r 0115260 a t e K e y w o r d T a b l e \r 0115300 L o o k u p K e y w o r d ; I 0115320 n s e r t K e y w o r d ; D e 0115340 l e t e K e y w o r d \r \r / / 0115360 f o r O E P d e c l a r a t 0115400 i o n o n l y \r K T I n s e r 0115420 t ; K T D e l e t e \r \r / / 0115440 i n c o m i n g p r o c e d u 0115460 r e s \r K T L o o k u p ; K T 0115500 E n u 376 001 \0 < 017 m e r a t e ; 0115520 K T D e s t r o y \r B i n a r y 0115540 S e a r c h ; C o m p a r e K 0115560 e y ; E x t r a c t S u b s t 0115600 r i n g \r D e f a u l t A r g s 0115620 ; A l l o c a t e ; F r e e 0115640 ; M o v e B l o c k ; Z e r 0115660 o ; S y s E r r \r C a l l 0 ; 0115700 C a l l 1 ; C a l l 2 ; C 0115720 a l l 3 ; C a l l 4 \r \r / / 0115740 i n c o m i n g s t a t i c s 0115760 \r s y s Z o n e \r ] \r \r s t a t 0116000 i c \r [ \r D e s t r o y K e y w 0116020 o r d T a b l e ; E n u m e r 0116040 a t e K e y w o r d T a b l e \r 0116060 L o o k u p K e y w o r d ; I 0116100 n s e r t K e y 376 001 \0 377 ( w o r 0116120 d ; D e l e t e K e y w o r d 0116140 \r ] \r \r s t r u c t u r e S t 0116160 r i n g : [ l e n g t h b 0116200 y t e ; c h a r ^ 1 , 2 5 5 0116220 b y t e ] \r \r / / - - - - - - 0116240 - - - - - - - - - - - - - - - - * 0116340 - - - - - \r l e t C r e a t e 0116360 K e y w o r d T a b l e ( m a x 0116400 E n t r i e s , l e n E n t r 0116420 y , z o n e ; n u m a r g s 0116440 n a ) = v a l o f \r / / - 0116460 - - - - - - - - - - - - - - - - 0116500 - - - - - - - - - - - - - 376 001 \0 0116520 353 j - - - - - - - - - - - - - - 0116540 - - - - - - - - - - - - - - - - 0116560 - - - - - - - - - - - - - - - \r 0116600 / / C r e a t e s a n d r 0116620 e t u r n s a k e y w o r d 0116640 t a b l e c a p a b l e o 0116660 f h o l d i n g a m a x i 0116700 m u m o f \r / / m a x E n t 0116720 r i e s e n t r i e s o f 0116740 l e n E n t r y w o r d s e 0116760 a c h \r [ \r D e f a u l t A r g 0117000 s ( l v n a , - 1 , 1 , 0117020 s y s Z o n e ) \r l e t l e n 0117040 K T E = o f f s e t K T E 0117060 . e n t r y / 1 6 + l e n E 0117100 n t r y \r l e t k t = A l 0117120 l o 376 001 \0 204 220 c a t e ( z o n e 0117140 , ( o f f s e t K T . k t e 0117160 ^ 0 ) / 1 6 + m a x E n t r 0117200 i e s * l e n K T E ) \r k t > > 0117220 K T . I n s e r t = K T I n 0117240 s e r t \r k t > > K T . D e l e 0117260 t e = K T D e l e t e \r k t 0117300 > > K T . L o o k u p = K T 0117320 L o o k u p \r k t > > K T . E n 0117340 u m e r a t e = K T E n u m 0117360 e r a t e \r k t > > K T . D e s 0117400 t r o y = K T D e s t r o y 0117420 \r k t > > K T . z o n e = z 0117440 o n e \r k t > > K T . n u m E n 0117460 t r i e s = 0 \r k t > > K T 0117500 . m a x E n t r i e s = m a 0117520 x E n t r i e 376 001 \0 ^ 246 s \r k t 0117540 > > K T . l e n K T E = l e 0117560 n K T E \r I n s e r t K e y w o 0117600 r d = C a l l 0 \r D e l e t 0117620 e K e y w o r d = C a l l 1 0117640 \r L o o k u p K e y w o r d = 0117660 C a l l 2 \r E n u m e r a t e 0117700 K e y w o r d T a b l e = C 0117720 a l l 3 \r D e s t r o y K e y w 0117740 o r d T a b l e = C a l l 4 0117760 \r r e s u l t i s k t \r ] \r \f 0120000 \r / / - - - - - - - - - - - - - 0120020 - - - - - - - - - - - - - - - - * 0120100 - - - - - - - - - - - - - - \r a 0120120 n d K T I n s e r t ( 376 001 \0 ] 0120140 p k t , k e y ) = v a l o 0120160 f \r / / - - - - - - - - - - - - 0120200 - - - - - - - - - - - - - - - - * 0120260 - - - - - - - - - - - - - - - \r 0120300 / / I n s e r t s a c o p 0120320 y o f t h e s u p p l i e 0120340 d k e y s t r i n g i n t 0120360 o t h e t a b l e k t \r / 0120400 / a n d r e t u r n s a 0120420 p o i n t e r t o t h e n 0120440 e w e n t r y ( w h i c h 0120460 h a s b e e n z e r o e d ) 0120500 . \r [ \r l e t i = n o t 0120520 B i n a r y S e a r c h ( k e y 0120540 , 376 001 \0 361 # k t , k t > > K 0120560 T . n u m E n t r i e s , C o 0120600 m p a r e K e y ) \r i f i l 0120620 s 0 t h e n S y s E r r ( 0120640 k t , e c K e y A l r e a d y 0120660 E x i s t s ) \r i f k t > > K 0120700 T . n u m E n t r i e s e q 0120720 k t > > K T . m a x E n t r i e 0120740 s t h e n S y s E r r ( k t 0120760 , e c K e y T a b l e F u l l 0121000 ) \r l e t k t e = G e t K 0121020 T E ( k t , i ) \r l e t p 0121040 = G e t K T E ( k t , k t > 0121060 > K T . n u m E n t r i e s ) - 0121100 1 \r w h i l e p g e k t e 0121120 d o [ p ! ( k t > > K T . 0121140 l e n K T E 376 001 \0 346 005 ) = p 0121160 ! 0 ; p = p - 1 ] \r k t 0121200 > > K T . n u m E n t r i e s 0121220 = k t > > K T . n u m E n t r 0121240 i e s + 1 \r Z e r o ( k t e , 0121260 k t > > K T . l e n K T E ) \r k 0121300 t e > > K T E . k e y = E x 0121320 t r a c t S u b s t r i n g ( k 0121340 e y , 0 , 0 , k t > > K T 0121360 . z o n e ) \r r e s u l t i s 0121400 l v k t e > > K T E . e n t r 0121420 y \r ] \r \r / / - - - - - - - - - 0121440 - - - - - - - - - - - - - - - - * 0121540 - - \r a n d K T D e 376 001 \0 211 m 0121560 l e t e ( k t , k e y ) b e 0121600 \r / / - - - - - - - - - - - - - 0121620 - - - - - - - - - - - - - - - - * 0121700 - - - - - - - - - - - - - - \r / 0121720 / D e l e t e s t h e e n 0121740 t r y m a t c h i n g k e y 0121760 f r o m t h e t a b l e . 0122000 \r [ \r l e t i = B i n a r 0122020 y S e a r c h ( k e y , k t , 0122040 k t > > K T . n u m E n t r i 0122060 e s , C o m p a r e K e y ) \r 0122100 i f i l s 0 t h e n S 0122120 y s E r r ( k t , e c K e y D 0122140 o e s n t E x i s t ) \r l e t 0122160 376 001 \0 351 025 k t e = G e t K T 0122200 E ( k t , i ) \r F r e e ( k t 0122220 > > K T . z o n e , k t e > > 0122240 K T E . k e y ) \r k t > > K T . 0122260 n u m E n t r i e s = k t > 0122300 > K T . n u m E n t r i e s - 1 0122320 \r / / t h i s m a y m o v 0122340 e z e r o w o r d s , b u 0122360 t t h a t ' s s u p p o s e 0122400 d t o b e o k \r M o v e B 0122420 l o c k ( k t e , k t e + k t 0122440 > > K T . l e n K T E , ( k t 0122460 > > K T . n u m E n t r i e s - 0122500 i ) * k t > > K T . l e n K T E 0122520 ) \r ] \r \r / / - - - - - - - - - 0122540 - - - - - - - - - - - - - - - - 0122560 - - - - - 376 \0 264 X J - - - - - - 0122600 - - - - - - - - - - - - - - - - * 0122640 - - - - - - - \r a n d G e t K 0122660 T E ( k t , i ) = l v k 0122700 t > > K T . k t e ^ 0 + i 0122720 * k t > > K T . l e n K T E \r 0122740 / / - - - - - - - - - - - - - - 0122760 - - - - - - - - - - - - - - - - * 0123040 - - - - - - - - - - - - - \r 377 \0 0123060 \0 K e y w o r d O E P . b c p l 0123100 \0 373 224 345 357 t \0 \0 376 001 \0 221 V / / 0123120 K e y w o r d O E P . b c p l 0123140 - - o v e r l a y e n t r y 0123160 p o i n t d e c l a r a t i 0123200 o n s f o r k e y w o r d 0123220 p a c k a g e \r / / C o p y r 0123240 i g h t X e r o x C o r p o 0123260 r a t i o n 1 9 7 9 \r \r / / \t 0123300 L a s t m o d i f i e d O c 0123320 t o b e r 7 , 1 9 7 7 2 0123340 : 5 4 P M \r \r e x t e r n a l 0123360 \r [ \r / / o u t g o i n g p r 0123400 o c e d u r e s \r I n i t K e y 0123420 w o r d O E P \r \r / / i n c o m 0123440 i n g p r o c e d u r e s \r D 0123460 e c l a r e O E P ; K T I n s 0123500 e r t ; K T D e l e t e 376 001 \0 0123520 p 372 ; K T L o o k u p ; K T 0123540 E n u m e r a t e ; K T D e s 0123560 t r o y ; C o m p a r e K e y 0123600 \r ] \r \r / / - - - - - - - - - - 0123620 - - - - - - - - - - - - - - - - * 0123720 - \r l e t I n i t K e y w o r 0123740 d O E P ( o e v ) b e \r / / - 0123760 - - - - - - - - - - - - - - - - * 0124060 - - - - - - - - - - \r D e 0124100 c l a r e O E P ( o e v , l v 0124120 K 376 \0 T 024 \t T I n s e r t , 0124140 l v K T D e l e t e , l v 0124160 K T L o o k u p , \r l v 0124200 K T E n u m e r a t e , l v 0124220 K T D e s t r o y , l v C 0124240 o m p a r e K e y ) \r 377 \0 \0 C m 0124260 d S c a n T e s t . b c p l \0 373 0124300 224 345 357 t \0 \0 376 001 \0 & 231 / / C m d 0124320 S c a n T e s t . b c p l \r / / 0124340 C o p y r i g h t X e r o x 0124360 C o r p o r a t i o n 1 9 7 0124400 9 \r \r g e t " C m d S c a n . 0124420 d e c l " \r \r e x t e r n a l \r 0124440 [ \r I n i t C m d ; B e g i n 0124460 D e f a u l t P h r a s e ; E 0124500 n d D e f a u l t P h r a s e ; 0124520 D e f a u l t P h r a s e \r E 0124540 n a b l e C a t c h ; E n d C 0124560 a t c h ; G e t N u m b e r ; 0124600 G e t F i l e ; G e t S t r 0124620 i n g ; C o n f i r m \r G e t 0124640 s ; P u t s ; C l o s e s ; 0124660 E n d o f s ; W s s ; W n 0124700 s ; F r e e ; O p 376 001 \0 344 y 0124720 e n F i l e \r T r u e P r e d i 0124740 c a t e ; F a l s e P r e d i 0124760 c a t e ; T e r m i n a t i n 0125000 g C h a r ; E r a s e P h r a 0125020 s e ; G e t P h r a s e \r C r 0125040 e a t e K e y w o r d T a b l e 0125060 ; D e s t r o y K e y w o r d 0125100 T a b l e ; I n s e r t K e y 0125120 w o r d ; G e t K e y w o r d 0125140 \r s y s Z o n e \r ] \r \r l e t 0125160 C m d S c a n T e s t ( ) b e 0125200 \r [ \r l e t k t = C r e a 0125220 t e K e y w o r d T a b l e ( 1 0125240 0 ) \r I n s e r t K e y w o r d 0125260 ( k t , " N u m b e r " ) ! 0 0125300 = 1 \r I n s e r t K e y w o 0125320 376 001 \0 354 223 r d ( k t , " C o p 0125340 y " ) ! 0 = 2 \r I n s e r t 0125360 K e y w o r d ( k t , " Q u i 0125400 t " ) ! 0 = 3 \r I n s e r t 0125420 K e y w o r d ( k t , " C o m 0125440 m e n t " ) ! 0 = 4 \r l e t 0125460 c s = n i l \r c s = I 0125500 n i t C m d ( 2 5 6 , 1 0 ) 0125520 r e p e a t u n t i l c s n 0125540 e 0 \r W s s ( c s , " * n * 0125560 * " ) \r s w i t c h o n G e t 0125600 K e y w o r d ( c s , k t ) ! 0125620 0 i n t o \r [ \r c 0125640 a s e 1 : / / n u m b e r 0125660 t e s t \r [ \r 0125700 P u t s ( c s , $ * s 0125720 ) \r 376 001 \0 * 204 l e t 0125740 n 1 = G e t N u m b e r ( 0125760 c s ) \r W s s ( c s 0126000 , " A n o t h e r : " ) \r 0126020 B e g i n D e f a u 0126040 l t P h r a s e ( c s ) \r 0126060 W n s ( c s , n 1 + 1 ) 0126100 \r E n d D e f a u l 0126120 t P h r a s e ( c s ) \r 0126140 l e t n 2 = G e t N u 0126160 m b e r ( c s ) \r i 0126200 f C o n f i r m ( c s ) t h 0126220 e n \r [ W s 0126240 s ( c s , " = " ) ; W n 0126260 s ( c s , n 1 ) ; W s s ( c 0126300 s , " , " ) ; W n s ( c s 0126320 , n 2 ) ] \r 376 001 \0 025 a 0126340 e n d c a s e \r 0126360 ] \r c a s e 2 : / 0126400 / f i l e t e s t \r 0126420 [ \r W s s ( c s , 0126440 " f i l e " ) \r 0126460 l e t s = n i l \r 0126500 i f E n a b l e C a t c 0126520 h ( c s ) t h e n [ i f 0126540 s n e 0 t h e n C l o s 0126560 e s ( s ) ; E n d C a t c h ( 0126600 c s ) ] \r s = 0126620 0 \r s = G e t F 0126640 i l e ( c s , k s T y p e R e 0126660 a d O n l y , c h a r I t e m 0126700 ) \r W s s ( c s , 0126720 " t o f i l e " ) \r 376 0126740 001 \0 d v D e f a u l t P 0126760 h r a s e ( c s , " f o o . b 0127000 a z " , $ * s ) \r 0127020 l e t s t r , s 2 = n i 0127040 l , n i l \r i f 0127060 E n a b l e C a t c h ( c s ) 0127100 t h e n \r [ \r 0127120 i f s t r 0127140 n e 0 t h e n F r e e ( s 0127160 y s Z o n e , s t r ) \r 0127200 i f s 2 n e 0 0127220 t h e n C l o s e s ( s 2 ) 0127240 \r E n d C a t 0127260 c h ( c s ) \r 0127300 ] \r s t r , s 2 0127320 = 0 , 0 \r s t r 0127340 = G 376 001 \0 360 027 e t S t r i n 0127360 g ( c s ) \r s 2 = 0127400 O p e n F i l e ( s t r , k 0127420 s T y p e W r i t e O n l y , 0127440 c h a r I t e m , v e r L a t 0127460 e s t ) \r W s s ( c 0127500 s , ( s 2 e q 0 ? " [ 0127520 N e w f i l e ] " , " [ O 0127540 l d f i l e ] " ) ) \r 0127560 G e t P h r a s e ( c s , 0127600 T r u e P r e d i c a t e , T 0127620 r u e P r e d i c a t e , F a 0127640 l s e P r e d i c a t e , W s 0127660 s , \r " r e t u r 0127700 n t o c o n f i r m , o r 0127720 t y p e a n o t h e r f i 0127740 l e n a m e " ) \r 376 001 \0 q + 0127760 i f T e r m i n a t i 0130000 n g C h a r ( c s ) n e $ * 0130020 n t h e n \r 0130040 E r a s e P h r a s e ( c s , 0130060 1 , 0 , T e r m i n a t i n 0130100 g C h a r ( c s ) ) \r 0130120 i f s 2 e q 0 t h e n 0130140 s 2 = O p e n F i l e ( s 0130160 t r , k s T y p e W r i t e O 0130200 n l y , c h a r I t e m ) \r 0130220 F r e e ( s y s Z o n 0130240 e , s t r ) \r u n 0130260 t i l E n d o f s ( s ) d o 0130300 P u t s ( s 2 , G e t s ( s 0130320 ) ) \r C l o s e s ( 0130340 s ) ; C l o s e s ( s 2 ) 376 001 0130360 \0 x 310 \r e n d c a s 0130400 e \r ] \r c a s 0130420 e 3 : / / q u i t \r 0130440 f i n i s h \r c a s 0130460 e 4 : / / c o m m e n t \r 0130500 [ \r P u 0130520 t s ( c s , $ * s ) \r 0130540 G e t P h r a s e ( c s , 0130560 0 , 0 , T r u e P r e d i c 0130600 a t e ) r e p e a t u n t i l 0130620 \r T e r m i n 0130640 a t i n g C h a r ( c s ) e q 0130660 $ * n \r e n d c a 0130700 s e \r ] \r ] \r 0130720 C l o s e s ( c s ) \r D e s t r 0130740 o y K e y w o r d T a b l e ( k 0130760 t ) \r 376 \0 \t 241 g ] r e p e a t 0131000 \r 377 \0 \0 L o a d C m d S c a n T 0131020 e s t . c m \0 373 224 345 357 t \0 \0 376 \0 0131040 | 230 204 b l d r c m d s c a n t 0131060 e s t c m d s c a n c m d s 0131100 c a n e d i t c m d s c a n d 0131120 i s p l a y c m d s c a n a u 0131140 x k e y w o r d k e y w o r 0131160 d i n i t a l t o t i m e r 0131200 c o n t e x t s t r i n g u t 0131220 i l a l t o b y t e b l t \r 377 0131240 \0 \0 C o m p i l e C m d S c a n 0131260 . c m \0 373 230 035 245 240 \0 \0 376 \0 251 b 345 0131300 B c p l / f o C m d S c a n . 0131320 b c p l C m d S c a n E d i t 0131340 . b c p l C m d S c a n D i s 0131360 p l a y . b c p l C m d S c a 0131400 n T t y . b c p l C m d S c a 0131420 n A u x . b c p l C m d S c a 0131440 n O E P . b c p l K e y w o r 0131460 d . b c p l K e y w o r d I n 0131500 i t . b c p l K e y w o r d O 0131520 E P . b c p l C m d S c a n T 0131540 e s t . b c p l \r 377 \0 \0 R e l e 0131560 a s e C m d S c a n . c m \0 373 227 0131600 l 365 n \0 \0 376 \0 350 352 \n F t p M a 0131620 x c c o n n / c A l t o d 0131640 u m p / c C m d S c a n . d m 0131660 C m d S c a n . d e c l C m 0131700 d S c a n . b r C m d S c a n 0131720 E d i t . b r C m d S c a n D 0131740 i s p l a y . b r C m d S c a 0131760 n T t y . b r C m d S c a n A 0132000 u x . b r C m d S c a n O E P 0132020 . b r K e y w o r d . b r K 0132040 e y w o r d I n i t . b r K e 0132060 y w o r d O E P . b r ^ \r c o 0132100 n n / c A l t o S o u r c e 0132120 d u m p / c C m d S c a n S o 0132140 u r c e . d m @ C m d S c a n 0132160 @ \r 377 \0 \0 C m d S c a n . c m \0 0132200 373 227 l 365 206 \0 \0 376 \0 374 224 A C m d S 0132220 c a n . d e c l C m d S c a n 0132240 . b c p l C m d S c a n E d i 0132260 t . b c p l C m d S c a n D i 0132300 s p l a y . b c p l C m d S c 0132320 a n T t y . b c p l C m d S c 0132340 a n A u x . b c p l C m d S c 0132360 a n O E P . b c p l K e y w o 0132400 r d . d e c l K e y w o r d . 0132420 b c p l K e y w o r d I n i t 0132440 . b c p l K e y w o r d O E P 0132460 . b c p l C m d S c a n T e s 0132500 t . b c p l L o a d C m d S c 0132520 a n T e s t . c m C o m p i l 0132540 e C m d S c a n . c m R e l e 0132560 a s e C m d S c a n . c m C m 0132600 d S c a n . c m 374 0132611