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