$ 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