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