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