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