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