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