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