$ od -c -N 50000 [Indigo]<Voice>LCSAudio>CATAudioMC.dm!1 0000000 377 \0 \0 c a t c o n s t s m c . m 0000020 u \0 376 001 \0 371 , ; C o n s t a n 0000040 t d e f i n i t i o n s f o 0000060 r A l t o I I C A T m i 0000100 c r o c o d e \r \r ; V e r s i o 0000120 n U 5 - R 4 - C \r \r # A l t o 0000140 C o n s t s 2 3 . m u ; \r \r $ R 0000160 M R \t $ L 2 0 0 1 3 , 0 0 0 0 0000200 0 , 1 2 4 0 0 0 ; \t S e t R 0000220 e s e t M o d e R e g i s t 0000240 e r . D F 1 = 1 3 \r \r ; 0000260 A C B i n d i c e s \r $ i d x 0000300 L i n k \t $ 0 ; \r $ i d x L e n 0000320 g t h \t $ 1 ; \r $ i d x C m d \t 0000340 $ 2 ; \r $ i d x D a t a \t $ 3 ; 0000360 \r $ i d x F 1 \t $ 4 ; \r $ i d x 0000400 F A c c 1 \t $ 5 ; \r $ i d x F 2 0000420 \t $ 6 ; \r $ i 376 001 \0 377 036 d x F A 0000440 c c 2 \t $ 7 ; \r $ i d x S a m p 0000460 l e s \t $ 1 0 ; \r \r $ c m d A d 0000500 c \t $ 1 ; \r $ c m d D a c \t $ 2 0000520 ; \r $ c m d T o n e \t $ 3 ; \r $ 0000540 c m d A d c P a c k e d \t $ 4 ; 0000560 \r $ c m d D a c P a c k e d \t $ 0000600 5 ; \r $ c m d A d c U 2 5 5 \t $ 0000620 6 ; \r $ c m d D a c U 2 5 5 \t $ 0000640 7 ; \r \r $ V e r s i o n \t $ 5 ; 0000660 \t " m a j o r " v e r s i o n 0000700 o n l y \r \r ; C o n s t a n 0000720 t s f o r C A T \r $ O R E M 0000740 a s k \t $ 4 0 0 0 ; \r $ D a t a 0000760 M a s k \t $ 1 7 0 0 0 0 ; \r $ S 0001000 t r o b e \t $ 1 ; \t c o m m a n 0001020 d w o r d s t r o b 376 001 \0 + 0001040 < e \r \r ; R - S r e g i s t 0001060 e r s \r $ A C 3 \t $ R 0 ; \r $ A 0001100 C 2 \t $ R 1 ; \r $ A C 1 \t $ R 2 0001120 ; \r $ A C 0 \t $ R 3 ; \r \r ; N 0001140 W W \t $ R 4 ; \t c o m m e n t s 0001160 r e p r e s e n t u n a v a 0001200 i l a b l e r e g i s t e r s 0001220 \r ; T E M P \t $ R 5 ; \r ; P 0001240 C \t $ R 6 ; \r ; ? ? \t $ R 7 - 0001260 1 0 ; \r ; I / O \t $ R 1 1 - 1 0001300 3 ; \t C L O C K T E M P ( R 1 0001320 1 ) i s a v a i l a b l e \r 0001340 $ R D a t a \t $ R 1 1 ; \t i n p 0001360 u t a s s e m b l y r e g i 0001400 s t e r \r \r $ T e m p \t $ R 1 4 0001420 ; \t t e m p , c a n r e c e 0001440 i 376 001 \0 k 261 v e o u t p u t 0001460 o f s h i f t e r \r $ u t V a 0001500 l \t $ R 1 4 ; \t T e m p \r \r ; 0001520 M e s a \t $ R 1 5 \r $ s t k p \t 0001540 $ R 1 6 ; \r ; M e s a \t $ R 1 0001560 7 ; \r ; D i s p l a y \t $ R 2 0001600 0 - 2 4 \r $ S i l 2 \t $ R 2 1 ; 0001620 \t o n c e u s e d b y d i 0001640 s p l a y ( C U R D A T A ) \r 0001660 \r $ M T E M P \t $ R 2 5 ; \t a v 0001700 a i l a b l e b e t w e e n 0001720 T A S K s w i t c h e s , c 0001740 a n r e c e i v e o u t p u 0001760 t o f s h i f t e r \r \r ; 0002000 D i s p l a y \t $ R 2 6 - 2 7 \r 0002020 $ S i l 1 \t $ R 2 6 ; \t o n c e 0002040 u s e d 376 001 \0 f 335 b y d i 0002060 s p l a y ( H T A B ) \r \r ; 0002100 D i s k \t $ R 3 0 - 3 4 \r ; B 0002120 i t B l t \t $ R 3 5 - 3 6 \r \r $ 0002140 M r t \t $ R 3 7 ; \r $ L A S T L 0002160 \t $ R 4 0 ; \t s a m e a s M 0002200 \r $ L a s t L \t $ R 4 0 ; \r \r ; 0002220 M e s a \t $ R 4 1 ; \r ; B i 0002240 t B l t \t $ R 4 2 - 4 3 ; \r ; 0002260 M e s a \t $ R 4 4 - 4 7 ; \r ; 0002300 B i t B l t \t $ R 5 0 ; \r ; M 0002320 e s a \t $ R 5 1 - 5 7 ; \r \r $ s 0002340 t k 0 \t $ R 6 0 ; \r $ s t k 1 \t 0002360 $ R 6 1 ; \r $ s t k 2 \t $ R 6 2 0002400 ; \r $ s t k 3 \t $ R 6 3 ; \r $ s 0002420 t k 4 \t $ R 6 4 ; \r $ s t k 5 \t 0002440 $ R 6 5 ; \r $ s t k 6 376 001 \0 $ 220 0002460 \t $ R 6 6 ; \r $ s t k 7 \t $ R 6 0002500 7 ; \r ; M e s a \t $ R 7 0 ; \r 0002520 \r $ A C B 1 \t $ R 7 1 ; \t C u r 0002540 r e n t A C B f o r l i s 0002560 t 1 \r $ A C B 2 \t $ R 7 2 ; \t 0002600 C u r r e n t A C B f o r 0002620 l i s t 2 \r $ I n d e x \t $ R 0002640 7 3 ; \t 0 f o r l i s t 1 0002660 , 1 f o r l i s t 2 \r $ 0002700 D a t a \t $ R 7 4 ; \t w o r k i 0002720 n g r e g i s t e r s f o r 0002740 p e r f o r m i n g a u d i 0002760 o t a s k f u n c t i o n s 0003000 \r $ S a m p l e s \t $ R 7 5 ; \r 0003020 $ A C B \t $ R 7 6 ; \t c u r r e 0003040 n t A C B , i n D o A u d 0003060 376 001 \0 200 032 i o R o u t i n e \r 0003100 $ u t E x p \t $ R 7 6 ; \t A C B 0003120 \r $ N C V a l u e \t $ R 7 7 ; \t 0003140 i n t e r m e d i a t e v a l 0003160 u e i n N C O t w o - t o 0003200 n e c o m p u t a t i o n \r $ 0003220 W D a t a \t $ R 7 7 ; \t o u t p 0003240 u t w o r d r e g i s t e r 0003260 \r $ u t S i g n \t $ R 7 7 ; \t N 0003300 C V a l u e \r \r $ L e f t M a s 0003320 k \t $ 1 7 7 4 0 0 ; \r \r ; ; D 0003340 C S , J u l y 2 1 , 1 9 7 0003360 8 1 1 : 5 5 A M , e x t 0003400 r a c t f r o m c o r r e s 0003420 p o n d i n g A u b u r n . . 0003440 . M c - . . . f i l e s \r ; ; 0003460 M a y 376 001 \0 7 d 2 1 , 1 9 0003500 7 9 9 : 0 7 A M , f o r 0003520 v e r s i o n R 4 - C \r ; ; 0003540 M a y 2 4 , 1 9 7 9 5 0003560 : 2 3 P M , u s e X M e s 0003600 a ' s v e r s i o n o f e 0003620 m u l a t o r e n t r y p o 0003640 i n t \r ; ; O c t o b e r 1 0003660 5 , 1 9 7 9 1 : 4 5 P M 0003700 a d d e d s i l e n c e r 0003720 e g i s t e r s \r ; ; L . S 0003740 t e w a r t , M a r c h 1 6 0003760 , 1 9 8 0 5 : 3 9 P M 0004000 a d d e d F o r m a t t i n g 0004020 \r ; ; L . S t e w a r t , 0004040 M a r c h 1 7 , 1 9 8 0 0004060 1 : 3 8 P M C A 376 001 \0 % 204 T 0004100 c o p y \r 032 ( 0 , 6 5 2 6 ) ( 0004120 1 , 1 1 2 6 4 ) \ f 1 5 3 5 f 0004140 0 1 f 1 9 f 0 1 f 1 9 f 0004160 0 1 f 1 9 f 0 1 f 1 7 4 0004200 f 0 1 f 1 9 f 0 1 f 1 1 0004220 3 f 0 1 f 1 8 1 f 0 1 f 1 0004240 6 7 f 0 1 f 1 1 0 f 0 1 0004260 f 1 1 2 f 0 1 f 1 2 9 f 0 0004300 1 f 1 4 4 f 0 1 f 1 9 3 0004320 f 0 1 f 1 4 1 f 0 1 f 1 0004340 3 0 f 0 1 f 1 1 2 f 0 1 f 0004360 1 3 6 f 0 1 f 1 3 0 f 0 0004400 1 f 1 3 0 f 0 1 f 1 1 5 f 0004420 0 1 f 1 1 1 f 0 1 f 1 1 0004440 1 f 0 1 f 1 1 1 f 0 1 f 1 0004460 1 1 f 0 1 f 1 1 1 f 0 376 0004500 \0 L z 321 1 f 1 1 1 f 0 1 f 1 0004520 1 1 f 0 1 f 1 1 2 f 0 1 0004540 f 1 1 2 f 0 1 f 1 3 4 f 0 0004560 1 f 1 3 5 f 0 1 f 1 3 8 0004600 f 0 1 f 1 6 8 f 0 1 f 1 \r 0004620 377 \0 \0 C A T I I M R T . m u \0 376 0004640 001 \0 B 033 ; C A T I I M R T . m 0004660 u D i a b l o P o r t A 0004700 u d i o T e r m i n a l M R 0004720 T f o r A l t o I I \r ; 0004740 L a s t m o d i f i e d 0004760 b y L . S t e w a r t D e 0005000 c e m b e r 2 9 , 1 9 7 9 0005020 8 : 4 7 P M \r ; t 0005040 o i n c l u d e c a l l t 0005060 o A u d i o T e s t . M o 0005100 u s e c o d e r e t u r n s 0005120 t o T X 0 , \r ; a 0005140 d d e d T A S K t o m o u 0005160 s e c o d e \r \r ; C P D i s 0005200 p M R T . m u - - M R T m 0005220 o d i f i e d t o r u n o 0005240 n C o 376 001 \0 301 310 m m P r o c - 0005260 b a s e d A l t o G a t e w 0005300 a y \r ; \t a n d t o a c c o 0005320 m p a n y r e w r i t t e n 0005340 d i s p l a y m i c r o c o d 0005360 e ( G a t e D i s p l a y . m 0005400 u ) \r \r ; * * * * M e m o r 0005420 y R e f r e s h t a s k * 0005440 * * * \r ; T h i s i s t h 0005460 e M R T f o r A l t o I 0005500 I s w i t h E x t e n d e d 0005520 M e m o r y ( 1 6 K c h i 0005540 p s ) . \r ; I t i s m o d 0005560 i f i e d t o a b o l i s h 0005600 t h e I n t e r v a l T i 0005620 m e r a n d e l i m i n a t 0005640 e C L O C K T E 376 001 \0 376 M P 0005660 , a n d \r ; d o a w a y 0005700 w i t h c u r s o r p r o c 0005720 e s s i n g ( n o w d o n e 0005740 b y t h e c u r s o r t 0005760 a s k i t s e l f ) . \r ; ( 0006000 A c t u a l l y , t h e r e 0006020 i s n o t h i n g a b o u t 0006040 t h i s M R T t h a t h 0006060 a s a n y t h i n g d i r e 0006100 c t l y t o \r ; d o w i t 0006120 h t h e C o m m P r o c , 0006140 b u t i t i s n a m e d 0006160 C P M R T t o d i s t i n g 0006200 u i s h i t f r o m \r ; E 0006220 I A M R T , w h i c h i s 0006240 s p e c i a l i z e d t o 376 001 0006260 \0 257 g t h e E I A b o a r 0006300 d . ) \r \r ! 1 7 , 2 0 , T X 0 , 0006320 T X 6 , T X 3 , T X 2 , T X 8 , 0006340 T X 5 , T X 1 , T X 7 , T X 4 , 0006360 , , , , , , ; \r \r ! 1 , 2 , N O 0006400 C L K , C L O C K ; \r \r $ M T E 0006420 M P \t $ R 2 5 ; \r $ R 3 7 \t $ R 0006440 3 7 ; \r $ R E F I I M S K \t $ 7 0006460 7 7 7 ; \r \r ; T h i s v e r 0006500 s i o n a s s u m e s M R T 0006520 A C T i s c l e a r e d b 0006540 y B L O C K , n o t M A R 0006560 _ R 3 7 \r ; R 3 7 [ 4 - 1 0006600 3 ] a r e t h e l o w b 0006620 i t s o f t h e T O D c 0006640 l o c k \r ; R 3 7 [ 8 - 1 4 0006660 ] a 376 001 \0 221 035 r e t h e r 0006700 e f r e s h a d d r e s s b 0006720 i t s \r ; E a c h t i m e 0006740 M R T r u n s , f o u r r 0006760 e f r e s h a d d r e s s e s 0007000 a r e g e n e r a t e d , 0007020 t h o u g h \r ; R 3 7 i s 0007040 i n c r e m e n t e d o n l y 0007060 o n c e . S p r i n k l e 0007100 d t h r o u g h o u t t h e 0007120 e x e c u t i o n \r ; o f 0007140 t h i s c o d e a r e t h 0007160 e f o l l o w i n g o p e r 0007200 a t i o n s h a v i n g t o 0007220 d o w i t h r e f r e s h 0007240 : \r ; \t M A R _ R 3 7 \r ; \t R 0007260 3 7 _ R 3 7 376 001 \0 271 o + 4 \t 0007300 N O T E T H A T R 3 7 [ 1 0007320 4 ] D O E S N O T C H A N 0007340 G E \r ; \t M A R _ R 3 7 X O 0007360 R 2 \t T O G G L E S B I T 0007400 1 4 \r ; \t M A R _ R 3 7 X O 0007420 R 2 0 0 \t T O G G L E S B I 0007440 T 8 \r ; \t M A R _ R 3 7 X 0007460 O R 2 0 2 \t T O G G L E S B 0007500 I T S 8 A N D 1 4 \r \r M R 0007520 T : \t M A R _ R 3 7 ; \t * * F 0007540 I R S T R E F R E S H C Y C 0007560 L E * * \r \t S I N K _ M O U S 0007600 E , B U S ; \t M O U S E D A 0007620 T A I S A N D E D W I T H 0007640 1 7 B \r M R T A : \t L _ T _ 0007660 - 2 , : T X 0 ; \t D I 376 001 \0 0007700 337 020 S P A T C H O N M O U S 0007720 E C H A N G E \r T X 0 : \t N O 0007740 P , : A u d i o T e s t ; \t C 0007760 a l l A u d i o c o d e . \r 0010000 A T D o n e : \t T _ R 3 7 ; \t 0010020 I N C R E M E N T C L O C K \r 0010040 \t T _ 3 + T + 1 ; \t I E . T 0010060 _ T + 4 . \r \t L _ R E F I 0010100 I M S K A N D T ; \t Z E R O 0010120 H I G H 4 B I T S \r \t R 3 0010140 7 _ L ; \t S T O R E U P D 0010160 A T E D C L O C K \r \t T _ 2 0010200 ; \t N O S T A T E A T T H 0010220 I S P O I N T I N P U B L 0010240 I C R E G S \r \t M A R _ R 3 0010260 7 X O R T , T _ R 3 7 ; \t 0010300 * * 376 001 \0 242 256 S E C O N D R E 0010320 F R E S H C Y C L E * * \r \t L 0010340 _ R E F Z E R O A N D T ; 0010360 \t O N L Y T H E C L O K C K 0010400 B I T S , P L E A S E \r \t S 0010420 H = 0 , T A S K ; \t T E S T 0010440 F O R C L O C K O V E R F L 0010460 O W \r \t : N O C L K ; \t [ N O C 0010500 L K , C L O C K ] \r N O C L K : 0010520 \t T _ 2 0 0 ; \r \t M A R _ 0010540 R 3 7 X O R T ; \t * * T H I 0010560 R D F E F R E S H C Y C L E 0010600 * * \r \t T _ 2 O R T , B 0010620 L O C K ; \t C L E A R S W A K 0010640 E U P R E Q U E S T F F \r \t 0010660 M A R _ R 3 7 X O R T ; \t 0010700 * * F O U R T 376 001 \0 t 327 H R E 0010720 F R E S H C Y C L E * * \r \t T 0010740 A S K ; \r \t : M R T ; \t E N D 0010760 O F M A I N L O O P \r ; M 0011000 e m o r y R e f r e s h T a 0011020 s k ( c o n t ' d ) \r \r C L O 0011040 C K : \t M A R _ C L O C K L O 0011060 C ; \t \t R 3 7 O V E R F L O W 0011100 E D . \r \t N O P ; \r \t L _ M D 0011120 + 1 ; \t \t I N C R E M E N T C 0011140 L O C K I M M E M O R Y \r \t 0011160 M A R _ C L O C K L O C ; \r \t 0011200 M T E M P _ L , T A S K ; \r 0011220 \t M D _ M T E M P , : N O C 0011240 L K ; \r \r ; A F T E R T H I S 0011260 D I S P A T C H , T W I L 0011300 L C O N T A I N X C 376 001 \0 K 0011320 x H A N G E , L W I L L C 0011340 O N T A I N Y C H A N G E - 1 0011360 \r \r T X 1 : \t L _ T _ O N E 0011400 + T , : M 0 0 ; \t \t Y = 0 , 0011420 X = 1 \r T X 2 : \t L _ T _ 0011440 A L L O N E S , : M 0 0 ; \t \t 0011460 Y = 0 , X = - 1 \r T X 3 : \t L 0011500 _ T _ 0 , : M 0 0 ; \t \t Y 0011520 = 1 , X = 0 \r T X 4 : \t L _ 0011540 T _ O N E A N D T , : M 0011560 0 0 ; \t \t Y = 1 , X = 1 \r T X 0011600 5 : \t L _ T _ A L L O N E S 0011620 X O R T , : M 0 0 ; \t Y = 0011640 1 , X = - 1 \r T X 6 : \t T _ 0011660 0 , : M 0 0 ; \t \t Y = - 1 , 0011700 X = 0 \r T X 7 : \t T _ O N E , 0011720 376 001 \0 272 005 : M 0 0 ; \t \t Y = - 0011740 1 , X = 1 \r T X 8 : \t T _ A 0011760 L L O N E S , : M 0 0 ; \t \t Y 0012000 = - 1 , X = - 1 \r \r M 0 0 : \t 0012020 M A R _ M O U S E L O C ; \t \t 0012040 S T A R T T H E F E T C H 0012060 O F T H E C O O R D I N A T 0012100 E S \r \t M T E M P _ L ; \t \t Y 0012120 C H A N G E - 1 \r \t L _ M D 0012140 + T ; \t \t X + X C H A N G E 0012160 \r \t T _ M D ; \t \t Y \r \t T _ 0012200 M T E M P + T + 1 ; \t \t Y + 0012220 ( Y C H A N G E - 1 ) + 1 \r 0012240 \t M T E M P _ L , L _ T ; 0012260 \r \t T _ R 3 7 ; \t \t S a v e 0012300 R 3 7 f o r u s e a s t 0012320 e m p \r \t M 376 \0 220 336 i A R _ M 0012340 O U S E L O C ; \t \t N O W R E 0012360 S T O R E T H E U P D A T E 0012400 D C O O R D I N A T E S \r \t R 0012420 3 7 _ L , L _ T ; \r \t M D 0012440 _ M T E M P ; \r \t M D _ R 3 0012460 7 , T A S K ; \r \t R 3 7 _ L 0012500 , : T X 0 ; \t \t R e s t o r e 0012520 R 3 7 \r 032 ( 0 , 5 3 7 6 ) ( 1 0012540 , 1 1 2 6 4 ) \ f 1 \r 377 \0 \0 c a 0012560 t m c . m u \0 376 001 \0 371 1 ; M i 0012600 c r o c o d e f o r r u n n 0012620 i n g A l t o I I C A T \r 0012640 \r ; ~ ~ e x t r a r u l e 0012660 : o n l y o n e l i s t 0012700 a t a t i m e m a y b e 0012720 i s s u i n g T o n e s ! \r 0012740 032 ( 0 , 5 3 7 6 ) ( 1 , 1 1 2 6 0012760 4 ) \ f 1 \r ; I n t e r f a c 0013000 e t o A u d i o T a s k \r 0013020 ; C l i e n t S p e c i f i 0013040 e s a n a c b l i s t u 0013060 s i n g A u d i o L i s t o 0013100 r M A u d i o L i s t ( s e 0013120 e b e l o w ) , s u p p l y 0013140 i n g a l i s t \r ; \t o f 0013160 a c b s a n d a n 376 001 \0 206 0013200 265 i n d e x . \r ; \t i n d e x 0013220 i s 0 o r 1 , a l l o 0013240 w i n g t w o p a r a l l e 0013260 l a c t i v i t i e s \r ; C 0013300 l i e n t c a n a u g m e n 0013320 t a l i s t u s i n g A 0013340 u d i o L i n k o r M A u d 0013360 i o L i n k ( s e e b e l o 0013400 w ) ; \r ; \t I f o l d A C B 0013420 h a s c o m p l e t e d ( # 0013440 s a m p l e s w o r d i s 0013460 0 ) , t h i s r e t u r n 0013500 s f a l s e \r ; A C B f o 0013520 r m a t : \r ; \t 0 \t i d x L i n 0013540 k \t - > n e x t A C B ( M 0013560 U S T B E O N E V E N W 0013600 O 376 001 \0 ' 255 R D B O U N D A R 0013620 Y ) \r ; \t 1 \t i d x L e n g t h 0013640 \t # o f s a m p l e s i n 0013660 t h i s b l o c k ( c l i 0013700 e n t i n i t i a l i z e s ) 0013720 \r ; \t 2 \t i d x C m d \t C o m m 0013740 a n d \r ; \t 3 \t i d x D a t a \t 0013760 A d d r e s s o f l a s t 0014000 w o r d o f d a t a b l o 0014020 c k ( 1 s t w o r d o f 0014040 w a v e f o r m b l o c k f 0014060 o r T o n e ) \r ; \t ( 4 \t i d 0014100 x F 1 \t F r e q u e n c y 1 0014120 f o r t o n e ) \r ; \t ( 5 \t i 0014140 d x F A c c 1 \t A c c u m u l a 0014160 t o r f o r s a m e - - 0014200 u s e d b 376 001 \0 243 356 y t a s 0014220 k o n l y ) \r ; \t ( 6 \t i d x 0014240 F 2 \t F r e q u e n c y 2 ) \r 0014260 ; \t ( 7 \t i d x F A c c 2 \t A c 0014300 c u m u l a t o r f o r s a 0014320 m e - - u s e d b y t a 0014340 s k o n l y ) \r ; \t 1 0 \t i d 0014360 x S a m p l e s \t # s a m p l 0014400 e s l e f t i n t h i s 0014420 b l o c k ( c l i e n t i n 0014440 i t s i f d e s i r e d , 0014460 t a s k r e i n i t s a n d 0014500 d e c r e m e n t s ) \r \r ; 0014520 C o m m a n d s : \r ; \t 1 \t A d 0014540 c \t I n p u t s a m p l e s 0014560 t o d a t a b l o c k , o 0014600 n e 1 6 - b i t ( 376 001 \0 i 351 0014620 1 2 s i g n i f i c a n t ) 0014640 s a m p l e p e r w o r d \r 0014660 ; \t 2 \t D a c \t O u t p u t s 0014700 a m p l e s f r o m d a t a 0014720 b l o c k , o n e 1 6 - b 0014740 i t s a m p l e p e r w o 0014760 r d \r ; \t 3 \t T o n e \t O u t 0015000 p u t @ i d x L e n g t h s 0015020 a m p l e s o f t h e s u 0015040 m o f t w o t o n e s , 0015060 w h o s e f r e q u e n c i e 0015100 s a n d \r ; \t \t \t s a m p l e 0015120 w a v e f o r m s a r e g 0015140 i v e n ( m o r e b e l o w 0015160 ) \r ; \t 4 \t A d c P a c k e d \t 0015200 I n p u t d a t a b l o c k 0015220 376 001 \0 ) , , t w o 8 - b i t 0015240 s a m p l e s p e r w o r 0015260 d - - @ i d x L e n g t h 0015300 m u s t b e e v e n \r ; \t 5 0015320 \t D a c P a c k e d \t O u t p u 0015340 t d a t a b l o c k , t w 0015360 o 8 - b i t s a m p l e s 0015400 p e r w o r d - - @ i d x 0015420 L e n g t h e v e n \r ; \t 6 \t 0015440 A d c U 2 5 5 \t I n p u t d a 0015460 t a b l o c k , t w o 8 - 0015500 b i t s a m p l e s p e r 0015520 w o r d \r ; \t \t \t i n u - 2 5 0015540 5 l a w c o d i n g - - 0015560 @ i d x L e n g t h m u s t 0015600 b e e v e n \r ; \t 7 \t D a c U 0015620 2 5 5 \t O 376 001 \0 253 322 u t p u t 0015640 d a t a b l o c k , t w o 0015660 8 - b i t s a m p l e s p e 0015700 r w o r d \r ; \t \t \t i n u - 0015720 2 5 5 l a w c o d i n g - 0015740 - @ i d x L e n g t h e v e 0015760 n \r 032 ( 0 , 3 8 7 2 ) ( 1 , 5 0 0016000 2 4 ) ( 2 , 7 8 0 8 ) \ f 1 \r ; 0016020 \f \r ! 1 , 2 , D o A u d i o 1 0016040 , N o A c t i v i t y 1 ; \r ! 0016060 1 , 2 , D o A u d i o 2 , A 0016100 u d i o I d l e 2 ; \r ! 1 , 2 , 0016120 D i s p a t c h , A d v a n 0016140 c e ; \r ! 1 , 2 , A u d i o I 0016160 d l e , R e t u r n F r o m 1 0016200 ; \r ! 1 , 2 , S a v e S i l 2 0016220 , S a v e S i l 1 ; 376 001 \0 377 H \r 0016240 ! 1 , 2 , S e t S p e c i f i 0016260 c 2 , S e t S p e c i f i c 1 0016300 ; \r ! 1 , 2 , S e t D i s p a 0016320 t c h , E m p t y ; \r \r ! 7 , 0016340 1 0 , I g l C m d , A d c , 0016360 D a c , T o n e , A d c P 0016400 a c k e d , D a c P a c k e d 0016420 , A d c U 2 5 5 , D a c U 2 0016440 5 5 ; \r \r A u d i o S t a r t : 0016460 \t L _ 0 ; \t N o a c t i v i t 0016500 y \r \t A C B 1 _ L ; \r \t A C B 2 0016520 _ L , T A S K ; \r \t W D a t a 0016540 _ L ; \r \r \t T _ 1 7 7 0 0 0016560 0 ; \t C l e a r r e a d y b 0016600 i t i n h a r d w a r e \r \t 0016620 M A R _ 1 6 + T ; \r \t 376 0016640 001 \0 024 C L _ S t r o b e ; \r 0016660 \t M D _ L a s t L ; \r \t M A 0016700 R _ 1 6 + T ; \r \t L _ 0016720 0 , T A S K ; \r \t M D _ 0016740 L a s t L , : M R T ; \r \r A u d 0016760 i o I d l e : \t T A S K , : I 0017000 d l e ; \r A u d i o I d l e 2 : 0017020 \t T A S K , : I d l e ; \r I d 0017040 l e : \t N O P , : A T D o n e 0017060 ; \r \r A u d i o R e a l : \t T _ 0017100 A C B 1 , B U S = 0 ; \r \t N O 0017120 P , : D o A u d i o 1 ; \t ! 1 , 0017140 2 , D o A u d i o 1 , N o A c 0017160 t i v i t y 1 ; \r R e t u r n F 0017200 r o m 1 : \r \t T _ A C B 2 , B 0017220 U S = 0 , : N o A c t i v i t 0017240 y ; \r N 376 001 \0 274 ~ o A c t i v i 0017260 t y 1 : \r \t T _ A C B 2 , B U 0017300 S = 0 ; \r N o A c t i v i t y : 0017320 \t N O P , : D o A u d i o 2 ; \t 0017340 ! 1 , 2 , D o A u d i o 2 , A 0017360 u d i o I d l e 2 ; \r \r ; T 0017400 = A C B , L = i n d e x \r D 0017420 o A u d i o 1 : \t M A R _ i d x 0017440 S a m p l e s + T ; \r \t L _ 0 , 0017460 : D o A u d i o ; \r D o A u d 0017500 i o 2 : \t M A R _ i d x S a m p 0017520 l e s + T ; \r \t L _ 0 + 1 ; \r D 0017540 o A u d i o : \t I n d e x _ L , 0017560 L _ T ; \r \t A C B _ L ; \r \t L 0017600 _ M D - 1 ; \r R e d i s p a t c 0017620 h : \t M A R _ i d x C m d + T ; 0017640 \r \t S a m p l e s 376 001 \0 * 020 _ L 0017660 , S H < 0 ; \r \t L _ M D , : 0017700 D i s p a t c h ; \t ! 1 , 2 , D 0017720 i s p a t c h , A d v a n c e 0017740 ; R e a d C m d \r D i s p a 0017760 t c h : \t T _ M D ; R e a d 0020000 D a t a \r \t T e m p _ L , L _ T 0020020 , T A S K ; \r \t D a t a _ L ; 0020040 \t * * ( * * ) \r ; \t S e e m e 0020060 d t o b e n o r e a s o 0020100 n n o t t o d o t h i s 0020120 r i g h t a w a y . \r \t T _ 0020140 A C B ; \r \t M A R _ i d x S a m 0020160 p l e s + T ; \r \t N O P , T A 0020200 S K ; \r \t M D _ S a m p l e s ; 0020220 \r \t S I N K _ T e m p , B U S 0020240 ; \r \t L _ T _ S a m p l e s 376 001 0020260 \0 233 [ , : I g l C m d ; [ I 0020300 g l C m d , A d c , D a c , 0020320 T o n e , . . . ] ; S 0020340 a m p l e s u s u a l l y n 0020360 e e d e d \r \r ; T h i s r 0020400 o u t i n e s i m p l i f i e 0020420 d b y m o v i n g S a m p 0020440 l e s u p d a t e i n t o 0020460 D i s p a t c h a b o v e . \r 0020500 R o u t D o n e : \t S I N K _ I 0020520 n d e x , B U S = 0 , T A S 0020540 K ; \r \t N O P , : A u d i o I 0020560 d l e ; \t ! 1 , 2 , A u d i o I 0020600 d l e , R e t u r n F r o m 1 0020620 ; * * \r \r A d v a n c e : \r ; 0020640 C o d e t o w r i t e t 0020660 o c 376 001 \0 241 333 u r s o r f o 0020700 r t e s t i n g \r ; \t T _ 2 ; 0020720 \r ; \t M A R _ C L O C K L O 0020740 C + T ; \r ; \t N O P ; \r ; \t M D 0020760 _ S i l 1 , T A S K ; \r ; \t M D 0021000 _ S i l 2 ; \r \t T _ i d x F 1 ; 0021020 \t s t o r a g e f o r s i l 0021040 e n c e d e t e c t i o n r 0021060 e s u l t \r \t M A R _ A C B + T 0021100 ; \t S a v e o l d s i l e n 0021120 c e r e g i s t e r a n d 0021140 c l e a r i t \r \t S I N K _ I 0021160 n d e x , B U S = 0 ; \r \t L _ 0 0021200 , : S a v e S i l 2 ; \t ! 1 , 2 0021220 , S a v e S i l 2 , S a v e S i 0021240 l 1 ; \r S a v e S i l 2 : \t M D 0021260 _ S i l 2 , T A 376 001 \0 376 R S K ; 0021300 \r \t S i l 2 _ L , : A d v C o m 0021320 ; \r S a v e S i l 1 : \t M D _ S 0021340 i l 1 , T A S K ; \r \t S i l 1 _ 0021360 L , : A d v C o m ; \r \r A d v C 0021400 o m : \t M A R _ A C B ; \r \t N O 0021420 P ; \r \t L _ M D , T A S K ; \r 0021440 \t A C B _ L ; * * \r S e t D a 0021460 t a : \t L _ T _ A C B ; \r \t M A 0021500 R _ i d x L e n g t h + T ; \r \t 0021520 S I N K _ I n d e x , B U S = 0021540 0 ; \r \t S H = 0 , : S e t S p 0021560 e c i f i c 2 ; \t ! 1 , 2 , S e 0021600 t S p e c i f i c 2 , S e t S 0021620 p e c i f i c 1 ; \r S e t S p e 0021640 c i f i c 1 : \t A C B 1 _ L , 0021660 : S e t D i s p a t c h ; 376 001 \0 0021700 ) 177 \t ! 1 , 2 , S e t D i s p a 0021720 t c h , E m p t y ; \r S e t S 0021740 p e c i f i c 2 : \t A C B 2 _ L 0021760 , : S e t D i s p a t c h ; \t 0022000 ! 1 , 2 , S e t D i s p a t c h 0022020 , E m p t y ; \r S e t D i s p 0022040 a t c h : \t L _ M D - 1 , : R 0022060 e d i s p a t c h ; \r \r E m p t 0022100 y : \t S I N K _ I n d e x , B 0022120 U S = 0 , T A S K ; \r \t N O P 0022140 , : A u d i o I d l e ; \t ! 1 0022160 , 2 , A u d i o I d l e , R e 0022200 t u r n F r o m 1 ; * * \r \f \r 0022220 ! 1 , 2 , D a c P l u s , D a c 0022240 M i n u s ; \r ! 1 , 2 , D a c C 0022260 o m 2 , D a c C o m 1 ; \r ! 1 , 0022300 2 , 376 001 \0 366 ! W r i t e N o w 0022320 , W r i t e C y c l e d ; \r ! 0022340 1 , 2 , J u s t W r i t e , 0022360 R e a d C y c l e W r i t e ; \r 0022400 ! 1 , 2 , e W r i t e N o w , e 0022420 W r i t e C y c l e d ; \r \r ; 0022440 D a c m u s t c o n v e r t 0022460 t h e w o r d f r o m m 0022500 e m o r y t o u - 2 5 5 a 0022520 n d l e a v e i t i n W 0022540 D a t a \r D a c : \t M A R _ D a 0022560 t a - T ; \r \t N O P ; \r \t L _ T 0022600 _ M D , : u t E n c o d e ; \r 0022620 ; C a l l u t E n c o d e 0022640 t o c o n v e r t t h e 0022660 1 2 b i t v a l u e l e f 0022700 t j u s t i 376 001 \0 $ + f i e d 0022720 i n L a n d T \r ; i 0022740 n t o a u 2 5 5 b y t e 0022760 l e f t j u s t i f i e d i 0023000 n T e m p = u t V a l . r 0023020 e t u r n t o u t S t o r e 0023040 . \r u t S t o r e : \t L _ T e m 0023060 p , T A S K ; \r \t W D a t a _ L 0023100 , : R o u t D o n e ; \r \r ; A 0023120 d c m u s t a c c e p t c 0023140 o n v e r t t h e w o r d 0023160 i n R D a t a t o l i n e 0023200 a r a n d s t o r e i t 0023220 i n m e m o r y \r A d c : \t L 0023240 _ R D a t a , T A S K ; \r 0023260 \t T e m p _ L L C Y 8 ; 0023300 \r \t L _ T e m p , : 376 001 \0 \v 0023320 201 u t D e c o d e ; \r ; R o 0023340 u t i n e u t D e c o d e l 0023360 o g i c a l l y g o e s h e 0023400 r e . I t i s c a l l e 0023420 d w i t h t h e u 2 5 5 0023440 b y t e \r ; r i g h t j u 0023460 s t i f i e d i n L . A 0023500 v a i l a b l e r e g i s t e 0023520 r s a r e \r ; T e m p ( 0023540 R ) , M T E M P ( R ) , N 0023560 C V a l u e ( S ) , A C B 0023600 ( S ) \r ; T e m p , A C B 0023620 , a n d N C V a l u e a r 0023640 e u s e d . \r ; u t D e c 0023660 o d e s h o u l d r e t u r 0023700 n t o u t S h i p i t w i 0023720 t 376 001 \0 310 362 h t h e 1 2 b 0023740 i t v a l u e l e f t j u 0023760 s t i f i e d \r ; i n u t 0024000 V a l = T e m p . \r u t S h i p 0024020 i t : \t T _ S a m p l e s ; \r \t 0024040 M A R _ D a t a - T ; \r \t N O P 0024060 ; \r \t T A S K ; \r \t M D _ T e m 0024100 p ; \r \t L _ T _ T e m p ; \r ; 0024120 E x p e c t s d a t a i n 0024140 b o t h L a n d T \r S D P 0024160 r o c : \t L _ 1 7 7 4 0 0 A N 0024200 D T , S H < 0 ; \r D a c C o m 0024220 : \t T e m p _ L L C Y 8 0024240 , : D a c P l u s ; \t ! 1 , 2 , 0024260 D a c P l u s , D a c M i n u s 0024300 ; \r D a c M i n u s : \t L _ 0 - 0024320 T ; \r \t T _ 376 001 \0 ' r L A S T L 0024340 ; \r \t L _ 1 7 7 4 0 0 A N D 0024360 T , T A S K , : D a c C o m ; \r 0024400 D a c P l u s : \t S I N K _ I n 0024420 d e x , B U S = 0 ; \r \t T _ T e 0024440 m p , : D a c C o m 2 ; \t ! 1 , 0024460 2 , D a c C o m 2 , D a c C o m 0024500 1 ; \r D a c C o m 1 : \t L _ S i 0024520 l 1 + T , T A S K ; \r \t S i l 1 0024540 _ L , : R o u t D o n e ; \r ; 0024560 T e s t c o d e , w r i t e 0024600 s t o c u r s o r \r ; \t T _ 0024620 4 ; \r ; \t M A R _ C L O C K L O 0024640 C + T ; \r ; \t N O P ; \r ; \t N O 0024660 P , T A S K ; \r ; \t M D _ T e m 0024700 p , : R o u t D o n e ; \r D a c 0024720 C o m 2 : \t L _ S i l 376 001 \0 214 256 0024740 2 + T , T A S K ; \r \t S i l 2 _ 0024760 L , : R o u t D o n e ; \r ; T 0025000 e s t c o d e , w r i t e s 0025020 t o c u r s o r \r ; \t T _ 5 0025040 ; \r ; \t M A R _ C L O C K L O C 0025060 + T ; \r ; \t N O P ; \r ; \t N O P 0025100 , T A S K ; \r ; \t M D _ T e m p 0025120 , : R o u t D o n e ; \r \r D a c 0025140 U 2 5 5 : \t T e m p _ L R S H 0025160 1 ; \t W o r d i n d e x f 0025200 o r n e x t s a m p l e \r \t 0025220 T _ T e m p ; \t S t a r t S t 0025240 o r e / F e t c h c y c l e \r 0025260 \t M A R _ D a t a - T ; \r \t T _ 0025300 O N E ; \t O d d o r E v e n 0025320 t o L \r \t L _ L A S T L A 0025340 376 001 \0 315 A N D T ; \r \t T _ L e 0025360 f t M a s k , S H = 0 ; \r \t L 0025400 _ M D , : W r i t e N o w ; \t 0025420 ! 1 , 2 , W r i t e N o w , W 0025440 r i t e C y c l e d ; \r ; W r 0025460 i t e O d d s a m p l e \r W 0025500 r i t e C y c l e d : \r \t T e m 0025520 p _ L L C Y 8 ; \r \t L _ T e 0025540 m p A N D T , T A S K , : 0025560 S h i p I t ; \r W r i t e N o w 0025600 : \t L _ L A S T L A N D T , 0025620 T A S K ; \r S h i p I t : \t W D 0025640 a t a _ L , : R o u t D o n e 0025660 ; \r \t \r A d c U 2 5 5 : \t T e m 0025700 p _ L R S H 1 ; \t W o r d 0025720 i n d e x f o r n e x t s 0025740 a m p l e 376 001 \0 X @ \r \t T _ O N 0025760 E ; \t O d d o r E v e n t 0026000 o L \r \t L _ L A S T L A N D 0026020 T ; \r \t T _ T e m p ; \t S t a 0026040 r t S t o r e / F e t c h c 0026060 y c l e \r \t M A R _ L _ D a t a 0026100 - T , S H = 0 ; \r \t N O P , 0026120 : J u s t W r i t e ; ! 1 , 2 0026140 , J u s t W r i t e , R e a d 0026160 C y c l e W r i t e ; \r J u s t 0026200 W r i t e : \t M D _ L _ T _ R D 0026220 a t a ; \t M D = S 1 , , 0 \r 0026240 \t N O P , T A S K ; \r \t T e m p 0026260 _ L , : A d c P a c k e d C o 0026300 m ; \r R e a d C y c l e W r i t 0026320 e : \r \t T _ R D a t a ; \t S 2 , 0026340 , 0 \r \t T e m p _ L 376 001 \0 355 356 ; 0026360 \t S a v e d a t a p o i n t 0026400 e r \r \t L _ T , T _ M D ; \t L 0026420 = S 2 , , 0 ; T = S 1 , , 0026440 0 \r \t M T E M P _ L L C Y 8 0026460 ; \t M T E M P = 0 , , S 2 \r 0026500 \t M A R _ T e m p ; \r \t T e m p 0026520 _ L ; \t S a v e S 2 , , 0 \r \t 0026540 L _ M T E M P + T , T A S K ; 0026560 \t L = S 1 , , S 2 \r \t M D _ 0026600 L A S T L ; \t * * \r ; T h e 0026620 b r a n c h t o S D P r o c 0026640 m u s t l o a d L a n d 0026660 T , f o r S H < 0 n e x 0026700 t c y c l e \r A d c P a c k e 0026720 d C o m : \r \t L _ T _ T e m p , 0026740 : S D P r o c ; \r \r ; D a c 376 0026760 001 \0 327 027 P a c k e d c a n g 0027000 e t t h e b y t e l e f t 0027020 j u s t i f i e d i n L 0027040 a n d \r ; c a l l u t E n c 0027060 o d e \r D a c P a c k e d : \t T 0027100 e m p _ L R S H 1 ; \t W o r 0027120 d i n d e x f o r n e x t 0027140 s a m p l e \r \t T _ T e m p ; 0027160 \t S t a r t S t o r e / F e t 0027200 c h c y c l e \r \t M A R _ D a 0027220 t a - T ; \r \t T _ O N E ; \t O d 0027240 d o r E v e n t o L \r \t 0027260 L _ L A S T L A N D T ; \r \t 0027300 T _ L e f t M a s k , S H = 0 0027320 ; \r \t L _ M D , : e W r i t e 0027340 N o w ; \t ! 1 , 2 , e W r i t e 0027360 N o w , 376 001 \0 \b k e W r i t e C 0027400 y c l e d ; \r ; W r i t e O 0027420 d d s a m p l e \r e W r i t e 0027440 C y c l e d : \r \t T e m p _ L 0027460 L C Y 8 ; \r \t L _ T _ T e m p 0027500 . T , : u t E n c o d e ; \r e 0027520 W r i t e N o w : \t L _ T _ L A 0027540 S T L . T , : u t E n c o d e 0027560 ; \r \r ; A d c P a c k e d w 0027600 i l l n e e d a n o t h e r 0027620 c o p y o f u t D e c o d 0027640 e , a n d t h e n c a l l 0027660 A d c U 2 5 5 \r ; T h e a 0027700 d d i t i o n a l c o p y o 0027720 f u t D e c o d e i s c a 0027740 l l e d u t t D e c o d e a 0027760 n d i s i n 376 001 \0 y 214 u t 0030000 t 2 5 5 . m u \r A d c P a c k e 0030020 d : \t L _ R D a t a , T A S K ; 0030040 \r \t T e m p _ L L C Y 8 ; \r 0030060 \t L _ T e m p , : u t t D e c o 0030100 d e ; \r u t t S h i p i t : \t T 0030120 _ L e f t M a s k ; \r \t L _ L A 0030140 S T L A N D T , T A S K ; \r 0030160 \t R D a t a _ L ; \r \t L _ T _ S 0030200 a m p l e s , : A d c U 2 5 5 ; 0030220 \r \r I g l C m d : \t N O P , : 0030240 R o u t D o n e ; \r \f \r ; T h 0030260 e r e c a n b e b u t o 0030300 n e o f t h e s e a t a 0030320 t i m e . F 1 , F 2 , F 0030340 A c c 1 - 2 a r e F r e q u 0030360 e n c i e s ; \r ; D a 376 001 0030400 \0 217 206 t a i s a d d r e s s 0030420 o f 3 2 w o r d w a v e 0030440 f o r m a t c o r r e c t 0030460 a m p l i t u d e , f i l l e 0030500 d l a s t t o f i r s t \r 0030520 ; F 1 , F 2 , F A c c 1 - 0030540 2 a r e e x p r e s s e d 0030560 a s f i x e d - p o i n t f 0030600 r a c t i o n s w i t h t h 0030620 e p o i n t b e t w e e n 0030640 b i t s 2 a n d 3 . \r ; 0030660 F 1 - 2 a r e e x p r e s s 0030700 e d a s f r a c t i o n s 0030720 o f t h e s a m p l e r a 0030740 t e . T h e a s s i g n m e 0030760 n t \r ; \t F A c c x = F A c 0031000 c x 376 001 \0 $ 333 + F x y i e 0031020 l d s t h e p h a s e o f 0031040 t h e n e x t s a m p l e 0031060 i n F A c c x . \r ; T h e 0031100 h i g h - o r d e r 5 b i 0031120 t s o f t h i s f r a c t 0031140 i o n ( b i t s 3 - 7 ) a 0031160 r e u s e d t o i n d e x 0031200 a w a v e f o r m s a m p 0031220 l e t a b l e . \r ; O p e n 0031240 c o d e b o t h f e t c h 0031260 e s \r \r T o n e : \t T _ A C B ; 0031300 \r \t M A R _ i d x F 1 + T ; \r \t 0031320 N O P ; \r \t T _ M D ; \r \t L _ M 0031340 D + T ; \r \t T _ A C B ; \r \t M A 0031360 R _ i d x F A c c 1 + T ; \r \t T 0031400 e m p _ L L C 376 001 \0 237 027 Y 8 0031420 ; \r \t T A S K ; \r \t M D _ L A S 0031440 T L ; \t * * \r \t T _ T e m p ; \r 0031460 \t T _ 3 7 . T ; \r \t M A R _ D a 0031500 t a + T ; \r \t T _ A C B ; \r \t L 0031520 _ M D ; \r \t N C V a l u e _ L ; 0031540 \r \t M A R _ i d x F 2 + T ; \r \t 0031560 N O P ; \r \t T _ M D ; \r \t L _ M 0031600 D + T ; \r \t T _ A C B ; \r \t M A 0031620 R _ i d x F A c c 2 + T ; \r \t T 0031640 e m p _ L L C Y 8 ; \r \t T A 0031660 S K ; \r \t M D _ L A S T L ; \t * 0031700 * \r \t T _ T e m p ; \r \t T _ 3 7 0031720 . T ; \r \t M A R _ D a t a + T ; 0031740 \r \t T _ N C V a l u e ; \r \t L _ 0031760 M D + T , : u t E n c o d e ; \r 0032000 \r ; T h i s c o d e 376 001 \0 0032020 k r u n s a s p a r t o 0032040 f M R T \r \r ! 1 , 2 , R e a d 0032060 y , N o t Y e t ; \r \r A u d i o 0032100 T e s t : \t T _ 1 7 7 0 0 0 0032120 ; \r \t M A R _ 3 0 + T ; 0032140 \r \t T _ O R E M a s k ; \t t 0032160 w o c y c l e s h e r e ! 0032200 ( c o m p u t e p o r t o u t 0032220 ? ) \r \t L _ T _ M D A 0032240 N D T ; \r \t L _ D a t a M 0032260 a s k A N D T , S H = 0 ; 0032300 \r \t R D a t a _ L , : R e a 0032320 d y ; \t ! 1 , 2 , R e a d y , N 0032340 o t Y e t ; \r \r ; A t t h i 0032360 s p o i n t , t h e f i r 0032400 s t i n c o m i n g n i b b 0032420 l e 376 001 \0 273 327 i s l e f t 0032440 j u s t i f i e d i n R D a 0032460 t a \r \r N o t Y e t : \t T A S K 0032500 ; \r \t N O P , : A T D o n e ; \t 0032520 b a c k t o M R T \r \r ; O 0032540 n e n t r y a t R e a d y 0032560 , t h e o u t g o i n g b 0032600 y t e i s e x p e c t e d 0032620 l e f t j u s t i f i e d i 0032640 n W D a t a \r ; \t ( w i t h 0032660 p o s s i b l e g a r b a g e 0032700 i n r i g h t h a l f ) \r 0032720 ; O n e x i t , t h e i 0032740 n c o m i n g b y t e i s 0032760 r e t u r n e d l e f t j u 0033000 s t i f i e d i n R D a t a 0033020 \r \r R e a d y 376 001 \0 N 270 : \t ; 0033040 w r i t e d a t a \r \t T _ 0033060 1 7 7 0 0 0 ; \r \t M A R _ 0033100 1 6 + T ; \r \t T _ 1 7 7 0033120 4 0 0 ; \r \t L _ W D a t a 0033140 A N D T ; \r \t M D _ L a s 0033160 t L , T A S K ; \r \t W D a t a 0033200 _ L ; \r \r \t ; S t r o b e 0033220 i t i n \r \t T _ 1 7 7 0 0033240 0 0 ; \r \t M A R _ 1 6 + 0033260 T ; \r \t L _ W D a t a + 0033300 1 ; \t w e k n o w 1 i s 0033320 S t r o b e \r \t M D _ L a s 0033340 t L ; \r \r ; N o w r e a 0033360 d n e x t n i b b l e \r \t M 0033400 A R _ 3 0 + T ; \t # 1 7 0033420 7 0 3 0 \r \t T _ D a 376 001 \0 214 0033440 203 t a M a s k ; \r \t L _ M D 0033460 A N D T , T A S K ; \r \t T e 0033500 m p _ L ; \r \r ; T h e s 0033520 e c o n d i n c o m i n g n 0033540 i b b l e i s l e f t j u 0033560 s t i f i e d i n T e m p . 0033600 \r \r ; T u r n o f f s t 0033620 r o b e \r \t T _ 1 7 7 0 0 0 0033640 ; \r \t M A R _ 1 6 + T ; 0033660 \r \t L _ T e m p ; \t S t a r 0033700 t s h i f t i n g T e m p \r 0033720 \t T e m p _ L R S H 1 ; 0033740 \r \t M D _ W D a t a ; \r \r \t 0033760 L _ T e m p , T A S K ; \r 0034000 \t T e m p _ L R S H 1 ; 0034020 \r \t L _ T e m p , T A S K 0034040 ; 376 \0 340 m 274 \r \t T e m p _ L 0034060 R S H 1 ; \r \t L _ T e m 0034100 p , T A S K ; \r \t T e m p _ 0034120 L R S H 1 ; \r \t T _ T 0034140 e m p ; \r \t L _ R D a t a 0034160 O R T , T A S K ; \r \t R D a 0034200 t a _ L , : A u d i o R e 0034220 a l ; \r \r ; ; M a r c h 1 7 0034240 , 1 9 8 0 1 2 : 2 2 P M 0034260 , L . S t e w a r t , M o 0034300 d i f i e d f r o m A u b u 0034320 r n M c - u 5 - r 4 . m u f o 0034340 r C A T . \r 032 ( 0 , 5 3 7 6 ) 0034360 ( 1 , 1 1 2 6 4 ) ( 2 , 6 5 5 3 0034400 5 ) \ f 1 \r 377 \0 \0 c a t m e s a 0034420 m c . m u \0 376 001 \0 204 } ; M e s a 0034440 - S p e c i f i c M i c r o c 0034460 o d e f o r r u n n i n g 0034500 A l t o I I C A T \r \r ; I 0034520 n t e n d e d f o r u s e 0034540 w i t h X M E S A 4 . 1 a 0034560 n d l a t e r r e l e a s e 0034600 s \r \r ; M i c r o c o d e c 0034620 o m m a n d f i l e f o r 0034640 A u d i o T e r m i n a l \r ; 0034660 M U / l C a t M e s a M c . 0034700 m u \r ; P a c k M u C a t M 0034720 e s a M c . m b A u b u r n M 0034740 e s a M c - U 5 - R 4 . b r 1 0034760 6 0 3 7 6 A u b u r n 5 4 I m 0035000 a g e \r \r ; T a s k a s s 0035020 i g n m e n t s \r % 1 376 001 \0 & 265 0035040 7 , 1 7 7 7 , 0 , N o v a B o 0035060 o t , L 1 , L 2 , L 3 , L 4 , 0035100 L 5 , L 6 , L 7 , A u d i o 0035120 S t a r t , D W T , C U R T 0035140 , D H T , D V T , L 1 5 , 0035160 L 1 6 , L 1 7 ; \r ; M E 0035200 S A e m u l a t o r - r o u t 0035220 i n e e n t r y p o i n t s 0035240 . \r % 1 7 , 1 7 7 7 , 6 0 0 , 0035260 S i l e n t B o o t , M A u 0035300 d i o P a r a m , M A u d i o 0035320 M u x , M A u d i o P h o n e 0035340 , M A u d i o R T o n e s , \r 0035360 \t M A u d i o S w i t c h , M 0035400 A u d i o L i s t , M A u d i 0035420 o L i n k , M A u d i o C u r 0035440 376 001 \0 213 \r r e n t , M A u d i 0035460 o V e r s i o n , \r \t M A u d i 0035500 o R P h o n e ; \r \r ; A d d r 0035520 e s s d e f i n i t i o n f 0035540 o r N o v a E m u l a t o r 0035560 m a i n l o o p i n R O 0035600 M 0 \r \r $ S T A R T \t $ L 0 0 4 0035620 0 2 0 , 0 0 0 0 0 0 , 0 0 0 0 0 0035640 0 ; \r \r # C a t C o n s t s M c 0035660 . m u ; \r \r L 1 : T A S K , 0035700 : L 1 ; - - b e s u r e 0035720 X M E S A s t a r t s a t 0035740 2 0 \r L 2 : T A S K , : L 2 0035760 ; \r L 3 : T A S K , : L 3 ; 0036000 \r L 4 : T A S K , : L 4 ; \r 0036020 L 5 : T A S K , : L 5 ; \r L 0036040 6 : T A 376 001 \0 ; 262 S K , : L 0036060 6 ; \r L 7 : T A S K , : L 7 0036100 ; \r ; L 1 0 : T A S K , : 0036120 L 1 0 ; \t M e m o r y r e f r 0036140 e s h t a s k \r ; L 1 1 : 0036160 T A S K , : L 1 1 ; \t D i s p 0036200 l a y W o r d T a s k \r ; 0036220 L 1 2 : T A S K , : L 1 2 ; 0036240 \t C u r s o r T a s k \r ; L 0036260 1 3 : T A S K , : L 1 3 ; \t 0036300 D i s p l a y h o r i z o n t 0036320 a l t a s k \r ; L 1 4 : T 0036340 A S K , : L 1 4 ; \t D i s p l 0036360 a y V e r t i c a l T a s k 0036400 \r L 1 5 : T A S K , : L 1 5 0036420 ; \r L 1 6 : T A S K , : L 1 0036440 6 ; \r L 1 7 : T A 376 001 \0 376 * S 0036460 K , : L 1 7 ; \r \r ; R e s e 0036500 r v e 7 7 4 - 1 0 0 3 f o r 0036520 R a m U t i l i t y A r e 0036540 a . \r \r % 7 , 1 7 7 7 , 7 7 0036560 4 , R U 7 7 4 , R U 7 7 5 , 0036600 R U 7 7 6 , R U 7 7 7 , R 0036620 U 1 0 0 0 , R U 1 0 0 1 , R 0036640 U 1 0 0 2 , R U 1 0 0 3 ; \r \r 0036660 ; F o r t h e m o m e n t 0036700 , j u s t t h r o w t h e 0036720 s e l o c a t i o n s a w a 0036740 y . T h i s i s d o n e 0036760 o n l y \r ; t o s q u e l 0037000 c h t h e " u n u s e d p 0037020 r e d e f " w a r n i n g s 0037040 t h a t w o u l d o t h e 376 0037060 001 \0 X f r w i s e o c c u r . 0037100 \r ; I f w e e v e r r u 0037120 n s h o r t o f R a m , 0037140 a s s i g n t h e s e t o 0037160 r e a l i n s t r u c t i o n 0037200 s s o m e w h e r e \r ; i n 0037220 m i c r o c o d e e x e c u 0037240 t e d o n l y b y t h e 0037260 E m u l a t o r . \r \r R U 7 7 4 0037300 : \t N O P ; \r R U 7 7 5 : \t N O 0037320 P ; \r R U 7 7 6 : \t N O P ; \r R 0037340 U 7 7 7 : \t N O P ; \r R U 1 0 0 0037360 0 : \t N O P ; \r R U 1 0 0 1 : \t 0037400 N O P ; \r R U 1 0 0 2 : \t N O P 0037420 ; \r R U 1 0 0 3 : \t N O P ; \r \r 0037440 # M e s a X R A M . m u ; \t - - 0037460 o v e 376 001 \0 ~ 357 r f l o w f 0037500 r o m M e s a R O M S f o 0037520 r X M M e s a \r # M e s a B 0037540 L T L R e a l . m u ; \r # I M E 0037560 c o d e . m u ; \r # A d p c m . 0037600 m u ; \r # u 2 5 5 . m u ; \r # C 0037620 a t u 2 5 5 . m u ; \r # C a t M 0037640 c . m u ; \r # C A T I I M R T . 0037660 m u ; \t c o n t a i n s M R T 0037700 \r # G a t e D i s p l a y . m u 0037720 ; \t c o n t a i n s D H T , 0037740 D V T , C U R T , D W T \r \r 0037760 ; W e a r e u s i n g N 0040000 o v a b o o t c o n v e n t 0040020 i o n s \r N o v a B o o t : \t S 0040040 W M O D E ; \r \t : S T A R T ; \r 0040060 \r ! 1 , 2 , M A 376 001 \0 347 213 u d 0040100 i o L i s t 2 , M A u d i o L 0040120 i s t 1 ; \r ! 1 , 2 , M S e t 0040140 L e f t , M A u d i o R e t 0 0040160 ; \r ! 1 , 2 , M L i n k , M 0040200 F a i l ; \r ! 1 , 2 , M c S t 0040220 a r t , M C u r r e n t 1 ; \r 0040240 032 ( 0 , 5 3 7 6 ) ( 1 , 1 1 2 6 0040260 4 ) \ f 1 \r ; M E S A E m u l 0040300 a t o r r o u t i n e s ( v 0040320 i a J R A M ) \r ; A r g 1 0040340 i n s t k 0 , A r g 2 i n 0040360 s t k 1 , r e s u l t i s 0040400 i n s t k 0 ( s t k p m u 0040420 s t b e a d j u s t e d ) \r 0040440 ; i n d i c e s a r e 0 0040460 f o r l i s t 1 , 1 376 001 0040500 \0 230 $ f o r l i s t 2 \r ; 0040520 R a m L o c a t i o n \t R o u 0040540 t i n e \r ; \t 6 0 0 \t S i l e n 0040560 t B o o t [ R M R ] - - d o 0040600 e s t h e S t a r t I O \r ; 0040620 \t 6 0 1 \t M A u d i o P a r a m 0040640 [ v a l ] - - N O P \r ; \t 6 0040660 0 2 \t A u d i o M u x [ v a l ] 0040700 - - N O P \r ; \t 6 0 3 \t A u 0040720 d i o P h o n e [ v a l ] - - 0040740 N O P \r ; \t 6 0 4 \t v a l _ 0040760 A u d i o R T o n e s [ ] - 0041000 - r e t u r n s 0 \r ; \t 6 0 0041020 5 \t A u d i o S w i t c h [ v a 0041040 l ] - - N O P \r ; \t 6 0 6 \t 0041060 A u d i o L i s t [ a c b , i 0041100 n d e 376 001 \0 264 N x ] - - r e 0041120 q u e s t t o i n t e r p r 0041140 e t a c b l i s t ( 0 t 0041160 o s t o p ) - - l i s t 0041200 1 o r 2 \r ; \t 6 0 7 \t s u c 0041220 c e s s _ A u d i o L i n k 0041240 [ n e w A c b , o l d A c b ] 0041260 - - l i n k i n n e w 0041300 A c b , f a i l s i f o l 0041320 d i s e m p t i e d \r ; \t 6 0041340 1 0 \t M A u d i o C u r r e n t 0041360 [ i n d e x ] - - r e t u r 0041400 n s c u r r e n t a c b , 0041420 o r N I L ( n o n e a c t 0041440 i v e t h i s l i s t ) \r ; 0041460 \t 6 1 1 \t v a l _ M A u d i 0041500 o V e r s i o n 376 001 \0 222 7 [ ] 0041520 - - r e t u r n s v e r s i 0041540 o n ( [ 0 - 9 ] , h a r d w 0041560 a r e ; [ 1 0 - 1 5 ] , m i 0041600 c r o c o d e ) \r ; \t 6 1 2 \t v 0041620 a l _ M A u d i o R T e l e 0041640 p h o n e [ ] - - r e t u r 0041660 n s 0 \r 032 ( 1 , 7 2 0 0 ) \ f 0041700 1 \r ; S i l e n t B o o t : 0041720 P R O C E D U R E [ r e s e t M 0041740 o d e R e g i s t e r : W O R 0041760 D ] \r ; S e t s t h e R e 0042000 s e t M o d e R e g i s t e 0042020 r a n d d o e s a s i l 0042040 e n t b o o t . \r ; F r o m 0042060 M e s a G a t e w a y M c \r \r 0042100 S i l e n t B o o t : \t R 376 001 \0 0042120 361 214 M R _ s t k 0 ; \t S e t R 0042140 M R f r o m a r g o n s 0042160 t a c k \r \t L _ s t k p - 1 , 0042200 T A S K ; \r \t s t k p _ L ; * 0042220 * \r \t S I N K _ 1 0 0 0 0 0 , 0042240 S T A R T F , : E m u l a t 0042260 o r ; B o o t t h e m a c 0042300 h i n e \r \r ; A c c e p t n 0042320 e w l i s t , s e t S a m 0042340 p l e s c o u n t f o r f 0042360 i r s t A C B \r ; S e t s 0042400 i l e n c e d e t e c t i o n 0042420 r e g i s t e r t o 0 \r ; 0042440 ~ ~ Q - - h o w l o n 0042460 g d o I h a v e b e f o 0042500 r e I m u s t t a s k ? \r 0042520 M A 376 001 \0 + 355 u d i o L i s t : 0042540 \r \t L _ s t k 0 ; \r \t T _ i d x 0042560 L e n g t h ; \r \t S I N K _ s t 0042600 k 1 , B U S = 0 ; \r \t M A R _ 0042620 s t k 0 + T , : M A u d i o L 0042640 i s t 2 ; \t ! 1 , 2 , M A u d i 0042660 o L i s t 2 , M A u d i o L i 0042700 s t 1 ; \r M A u d i o L i s t 1 0042720 : \r \t T _ 0 ; \r \t A C B 1 _ L , 0042740 L _ T , S H = 0 ; \r \t S i l 1 _ 0042760 L , : M S e t L e f t ; \t ! 1 0043000 , 2 , M S e t L e f t , M A u 0043020 d i o R e t 0 ; \r M A u d i o L 0043040 i s t 2 : \r \t T _ 0 ; \r \t A C B 0043060 2 _ L , L _ T , S H = 0 ; \r \t S 0043100 i l 2 _ L , : M S e t L e f t ; 0043120 \t ! 1 , 2 , M 376 001 \0 315 357 S e t L 0043140 e f t , M A u d i o R e t 0 ; 0043160 \r M S e t L e f t : \t L _ M D ; 0043200 \r \t T _ s t k 0 ; \r \t M A R _ i 0043220 d x S a m p l e s + T ; \r \t N O 0043240 P , T A S K ; \r \t M D _ L A S 0043260 T L , : M A u d i o R e t 0 ; 0043300 \t * * \r \r ; A u d i o L i n 0043320 k [ n e w A c b , o l d A c b 0043340 ] - - f a i l i f o l d 0043360 i s e m p t i e d , e l s 0043400 e s u c c e e d \r M A u d i o 0043420 L i n k : \r \t T _ i d x S a m p 0043440 l e s ; \r \t M A R _ s t k 1 + T 0043460 ; \r \t T _ 0 + 1 ; \r \t L _ M D , 0043500 B U S = 0 ; \r \t M A R _ s t k 0043520 1 , : M L i n k ; \t ! 376 001 \0 332 0043540 205 1 , 2 , M L i n k , M F a i 0043560 l ; \r M L i n k : \t L _ 0 - 1 ; 0043600 \t - - s u c c e s s \r \t M D _ 0043620 s t k 0 , : M c S 1 ; \r M F a 0043640 i l : \t T _ 0 + 1 , : M c S 1 0043660 ; \r \r ; r e t u r n s c u r 0043700 r e n t l y r u n n i n g A 0043720 C B f o r s u p p l i e d 0043740 i n d e x ( 0 = l i s t 1 0043760 , 1 = l i s t 2 ) \r M A u 0044000 d i o C u r r e n t : \r \t S I N 0044020 K _ s t k 0 , B U S = 0 ; \r \t 0044040 L _ A C B 2 , : M c S t a r t 0044060 ; \t ! 1 , 2 , M c S t a r t , 0044100 M C u r r e n t 1 ; \r M C u r r 0044120 e n t 1 : \t L _ A C B 1 , : M 0044140 c 376 001 \0 344 371 S t a r t ; \r \r M A 0044160 u d i o M u x : \r \t N O P , : 0044200 M A u d i o R e t 0 ; \r M A u d 0044220 i o P h o n e : \r \t N O P , : 0044240 M A u d i o R e t 0 ; \r M A u d 0044260 i o P a r a m : \r \t N O P , : 0044300 M A u d i o R e t 0 ; \r M A u d 0044320 i o S w i t c h : \r \t N O P , 0044340 : M A u d i o R e t 0 ; \r M A u 0044360 d i o S t o r e : \r \t N O P , 0044400 : M A u d i o R e t 0 ; \r M A u 0044420 d i o R e t 0 : \r \t L _ 0 , T 0044440 A S K ; \r M A u d i o R e t n : 0044460 \r \t s t k p _ L , : E m u l a 0044500 t o r ; * * \r E m u l a t o r 0044520 : \t S W M O D E ; \r \t : r o m n 0044540 e x t A ; 376 001 \0 347 347 # # \r M c 0044560 S t a r t : \t T _ 0 + 1 ; \r M c 0044600 S 1 : \t s t k 0 _ L , L _ T , 0044620 T A S K , : M A u d i o R e 0044640 t n ; \r M A u d i o R T o n e s 0044660 : \r \t L _ 0 , : M c S t a r t 0044700 ; \r M A u d i o V e r s i o n : 0044720 \r \t T _ 2 0 0 0 ; \t r e t u 0044740 r n s 2 2 0 5 B 032 ( 1 , 1 1 2 0044760 6 4 ) \ f 1 \r \t L _ 2 0 0 + 0045000 T ; 032 \ f 1 \r \t T _ L a s t 0045020 L ; 032 \ f 1 \r \t L _ 5 + T , 0045040 : M c S t a r t ; \r M A u d i o 0045060 R P h o n e : \r \t L _ 0 , : M 0045100 c S t a r t ; \r \r ; ; D C S , 0045120 J u l y 1 0 , 1 9 7 8 0045140 9 : 3 7 P M , e x 376 001 \0 304 016 0045160 t r a c t e d f r o m A u b 0045200 u r n M c - U 3 - R 2 - - m 0045220 u s t b e l a n g . - s p e 0045240 c i f i c \r ; ; J u l y 1 3 0045260 , 1 9 7 8 8 : 3 6 A M , 0045300 v e r s i o n U 4 - R 3 - B 0045320 b \r ; ; J u l y 1 7 , 1 9 0045340 7 8 9 : 0 8 P M , M A u 0045360 d i o S w i t c h : X O R ' d 0045400 r e s u l t s a v a i l a b 0045420 l e o n B U S i n a c t 0045440 i v e c y c l e \r ; ; J u l 0045460 y 2 1 , 1 9 7 8 1 1 : 5 0045500 9 A M , r e m o v e c o n 0045520 s t a n t s t o A u b u r n 0045540 C o n s t s M c - U 4 . . . , 0045560 376 001 \0 = 307 r e v i s e M U o 0045600 p s \r ; ; J a n u a r y 2 1 0045620 , 1 9 7 9 9 : 0 0 P M , 0045640 a d d M e s a X R A M - 0045660 - o v e r f l o w f r o m 0045700 R O M S f o r X M e s a \r ; 0045720 ; \t R e q u i r e d m o v i n 0045740 g a l l A u d i o J R A M 0045760 S f r o m 4 0 0 r a n g e 0046000 t o 6 0 0 r a n g e \r ; ; 0046020 M a y 2 1 , 1 9 7 9 9 0046040 : 2 7 A M , v e r s i o n 0046060 U 5 - R 4 , s u p p l y h a 0046100 r d w a r e v e r s i o n t 0046120 o o i n v e r s i o n - - 0046140 \r ; ; \t m i c r o c o d e v e 0046160 r s i o n 376 001 \0 N A o c c u p 0046200 i e s l o w 5 b i t s f 0046220 o r n o w \r ; ; M a y 2 4 0046240 , 1 9 7 9 5 : 2 3 P M , 0046260 u s e X M e s a ' s v e r 0046300 s i o n o f e m u l a t o r 0046320 e n t r y p o i n t \r ; ; 0046340 A u g u s t 1 6 , 1 9 7 9 0046360 1 : 1 3 P M L . S t e w 0046400 a r t . A d d e d A D P C 0046420 M . m u i n c l u d e . \r ; ; 0046440 S e p t e m b e r 2 2 , 1 0046460 9 7 9 3 : 3 0 P M L . 0046500 S t e w a r t . A d d e d 0046520 u 2 5 5 . m u i n c l u d e . 0046540 \r ; ; \t a n d t a s k u - 2 0046560 5 5 c o d e ( u 376 001 \0 e 317 t 0046600 2 5 5 . m u ) \r ; ; O c t o b 0046620 e r 1 5 , 1 9 7 9 1 : 2 0046640 4 P M L . S t e w a r t . 0046660 A d d e d i n c l u d e s 0046700 f o r C P D i s p M R T . m 0046720 u \r ; ; \t a n d G a t e D i s 0046740 p . m u i n o r d e r t o 0046760 g e t m o r e R r e g i 0047000 s t e r s f o r t h e \r ; ; 0047020 \t a u d i o t a s k . S e 0047040 e A u b u r n M c - u 5 - r 4 0047060 . m u . \r ; ; \t A d d e d s i 0047100 l e n c e d e t e c t i o n 0047120 i n l i s t i n i t i a l i 0047140 z a t i o n . \r ; ; O c t o b 0047160 e r 1 5 , 1 9 7 9 3 : 376 0047200 \0 360 377 , 5 7 P M L . S t e 0047220 w a r t . A d d e d i n c 0047240 l u d e s f o r I m e C o d 0047260 e . m u \r ; ; N o v e m b e r 0047300 5 , 1 9 7 9 1 2 : 3 4 0047320 A M L . S t e w a r t . 0047340 N o v a s t y l e s i l e n 0047360 t b o o t . \r ; ; M a r c h 0047400 1 6 , 1 9 8 0 5 : 1 4 0047420 P M L . S t e w a r t . 0047440 F o r m a t t i n g c h a n g 0047460 e s . \r ; ; M a r c h 1 7 , 0047500 1 9 8 0 1 2 : 1 2 P M 0047520 L . S t e w a r t . M o d 0047540 i f i e d f o r C A T . \r 032 0047560 \ f 1 \r 377 \0 \0 c a t u 2 5 5 . m 0047600 u \0 376 001 \0 I 277 ; - - - - - - - - 0047620 - - - - - - - - - - - - - - - - * 0047700 - - - - - - - - - \r ; c a t u 0047720 2 5 5 . m u - - M i c r o c 0047740 o d e s o u r c e f o r A 0047760 l t o r u n n i n g \r ; \t 6 4 0050000 K i l o b i t u - 2 5 5 l 0050020 a w c o d e d s p e e c h . 0050040 \r ; T h i s c o d e e x e 0050060 c u t e s a s p a r t o f 0050100 t h e a u d i o t a s k . 0050120 \r ; L a s t m o d i f i e d 0050140 b y L . S t e w a r t S 0050160 e p t e m b e r 2 2 , 1 9 7 0050200 9 5 : 2 0 376 001 \0 { h P M \r 0050220 ; O c t o b e r 1 5 , 1 9 0050240 7 9 2 : 3 0 P M s i l 0050260 e n c e d e t e c t i o n \r ; 0050300 M a r c h 1 7 , 1 9 8 0 0050320 1 2 : 1 5 P M C A T c o 0050340 p y , C a t U 2 5 5 . m u \r ; 0050360 - - - - - - - - - - - - - - - - * 0050460 - \r \r ; - - - - - - - - - - - - 0050500 - - - - - - - - - - - - - - - - * 0050560 - - - - - \r ; u - 2 5 5 0050600 l a w e n c o d i n g 376 001 \0 5 0050620 232 \r ; A s s u m e s l e 0050640 f t j u s t i f i e d 1 2 0050660 b i t t w o ' s c o m p l e 0050700 m e n t v a l u e i n L \r 0050720 ; u 2 5 5 v a l u e r 0050740 e t u r n e d r . j . i n 0050760 L a n d l . j . i n u t 0051000 V a l = T e m p \r ; - - - - - - 0051020 - - - - - - - - - - - - - - - - * 0051100 - - - - - - - - - - - \r ! 1 , 2 0051120 , u t E P l u s , u t E M i n u 0051140 s ; \r ! 1 , 2 , u t E S h i f t 0051160 , u t E O V ; \r ! 1 , 2 , u t E 0051200 D o n e , u t E M o r e ; \r ! 1 0051220 , 376 001 \0 M 020 2 , u t E M i n u s 0051240 1 , u t E P l u s 1 ; \r \r ; 0051260 F i r s t c o n v e r t t o 0051300 s i g n m a g n i t u d e \r 0051320 \r u t E n c o d e : \t u t V a l 0051340 _ L ; \r \t L _ 1 0 0 0 0 0 , S H 0051360 < 0 ; \r \t u t E x p _ L , : u t 0051400 E P l u s ; \t ! 1 , 2 , u t E P 0051420 l u s , u t E M i n u s ; \r \r u 0051440 t E P l u s : \t L _ 0 , T A S K 0051460 , : u t E C o m 1 ; \r \r u t E M 0051500 i n u s : \t L _ 0 - T ; \r \t u t 0051520 V a l _ L , T _ 0 - 1 , T A S K 0051540 , : u t E C o m 1 ; \r \r u t E C 0051560 o m 1 : \t u t S i g n _ L , : u 0051600 t A d d C o n s t ; \r \r ; N 0051620 o w a d d 376 001 \0 - 230 4 1 B 0051640 r e t u r n i n g m a x o n 0051660 o v e r f l o w \r u t A d d C 0051700 o n s t : \t T _ 2 0 3 + 1 ; \t L 0051720 u c k y c o n s t a n t v a 0051740 l u e \r \t L _ u t V a l + T ; \r 0051760 \t N O P , S H < 0 ; \r \t u t V a 0052000 l _ L R S H 1 , : u t E 0052020 S h i f t ; \t ! 1 , 2 , u t E S 0052040 h i f t , u t E O V ; \r \r u t E 0052060 O V : \t L _ 1 7 7 , T A S K ; \r 0052100 \t u t V a l _ L , : u t E A d d 0052120 S i g n ; \r \r ; N o w s h 0052140 i f t r i g h t b y 2 , 0052160 t o a l i g n t h e v a l 0052200 u e s o t h a t i t i s 0052220 r i g h t f o r 376 001 \0 343 j 0052240 t h e h i g h e s t \r ; e 0052260 x p o n e n t . \r \r u t E S h i 0052300 f t : \t L _ u t V a l , T A S K 0052320 ; \r \t u t V a l _ L R S H 0052340 1 ; \r \r ; N o w e n t e r 0052360 t h e m a i n l o o p o 0052400 f t h e c o n v e r s i o n 0052420 . \r \r u t E L o o p : \t T _ S T 0052440 R C W F S ; \t S T R C W F S = 1 0052460 0 0 0 0 \r \t L _ u t V a l A N 0052500 D T ; \r \t L _ u t E x p - T , 0052520 S H = 0 ; \r \t u t E x p _ L , : 0052540 u t E D o n e ; \t ! 1 , 2 , u t 0052560 E D o n e , u t E M o r e ; \r u 0052600 t E M o r e : \t L _ u t V a l , 0052620 T A S K ; \r \t u t V a l _ L L 0052640 376 001 \0 = 005 S H 1 , : u t E L o 0052660 o p ; \r \r ; N o w p a c k a 0052700 g e e v e r y t h i n g u p 0052720 \r \r u t E D o n e : \t T _ 7 4 0 0052740 0 ; \t 4 b i t m a s k \r \t T 0052760 _ u t V a l . T ; \r \t L _ u t E 0053000 x p O R T , T A S K ; \r \t u 0053020 t V a l _ L L C Y 8 ; \r \r ; 0053040 A d d i n s i g n ; \r u t 0053060 E A d d S i g n : \r \t S I N K _ 0053100 u t S i g n , B U S = 0 ; \r \t L 0053120 _ T _ u t V a l , : u t E M i n 0053140 u s 1 ; \t ! 1 , 2 , u t E M i n 0053160 u s 1 , u t E P l u s 1 ; \r u t 0053200 E M i n u s 1 : \t L _ 2 0 0 O 0053220 R T , : u t E P l u s 1 ; \r u 0053240 t E P l u 376 001 \0 C 267 s 1 : \t u t 0053260 V a l _ L L C Y 8 , : u t S 0053300 t o r e ; \r \r ; - - - - - - - - 0053320 - - - - - - - - - - - - - - - - * 0053400 - - - - - - - - - \r ; u - 0053420 2 5 5 l a w d e c o d i n g 0053440 \r ; A s s u m e s r i g 0053460 h t j u s t i f i e d 8 b 0053500 i t u - 2 5 5 v a l u e i 0053520 n L \r ; R e t u r n s 0053540 l i n e a r v a l u e i n 0053560 L a n d u t V a l = T e m p 0053600 \r ; - - - - - - - - - - - - - - 0053620 - - - - - - - - - - - - - - - - 0053640 - - - - - - - - - - 376 001 \0 254 f - 0053660 - - - - - - - - - - - - - - - - 0053700 - - - - - - - - \r ! 1 , 2 , u t 0053720 D L o o p , u t D D o n e ; \r ! 0053740 1 , 2 , u t D M i n u s , u t D 0053760 P l u s ; \r \r u t D e c o d e : 0054000 \r \r ; F i r s t s t e p , 0054020 s e p a r a t e c o m p o n 0054040 e n t s . \r \r \t u t V a l _ L ; 0054060 \r \t T _ 1 0 0 ; \r \t T _ 6 0 O 0054100 R T ; \t C o n s t r u c t c 0054120 o n s t a n t \r \t L _ u t V a l 0054140 A N D T , T A S K ; \r \t u t 0054160 E x p _ L ; \r \r \t T _ u t V a l 0054200 ; \r \t L _ 2 0 0 A N D T ; \r 0054220 \t u t S i g n _ L ; \t M i n u s 0054240 i f S i g n n o n - z e 376 0054260 001 \0 330 030 r o \r \t L _ 1 7 A N D 0054300 T , T A S K ; \r \t u t V a l _ 0054320 L L S H 1 ; \r \r ; B u i l 0054340 d f r a m e f o r d e c o 0054360 d i n g ; \r \t T _ u t V a l + 1 0054400 ; \r \t L _ 4 0 + T , T A S K ; \r 0054420 \t u t V a l _ L L S H 1 ; \r 0054440 \r ; T h e v a l u e i 0054460 s n o w 0 0 0 0 0 0 0 0054500 0 0 1 x x x x 1 0 i n b 0054520 i n a r y . \r ; W e n o 0054540 w m u s t s h i f t l e f 0054560 t ( E x p / 2 0 B ) + 1 p l 0054600 a c e s . \r \r u t D L o o p : \t 0054620 L _ u t V a l , T A S K ; \r \t u 0054640 t V a l _ L L S H 1 ; \r \t T 0054660 _ 2 0 ; 376 001 \0 376 336 \r \t L _ u t E 0054700 x p - T , B U S = 0 , T A S K ; 0054720 \r \t u t E x p _ L , : u t D L o 0054740 o p ; \t ! 1 , 2 , u t D L o o p 0054760 , u t D D o n e ; \r \r ; N 0055000 o w s u b t r a c t 2 0 4 B 0055020 ( s e e e n c o d e ) , t 0055040 h i s w i l l n e v e r u 0055060 n d e r f l o w . \r \r u t D D o 0055100 n e : \t T _ 2 0 3 + 1 ; \r \t L _ 0055120 u t V a l - T ; \r \t T _ 1 7 ; \r 0055140 \t L _ L A S T L A N D N O T 0055160 T , T A S K ; \t T r u n c a t 0055200 e t o w a r d s 0 . \r \t u t 0055220 V a l _ L ; \r \r ; H a n d l 0055240 e s i g n . \r \r \t S I N K _ u 0055260 t S i g n , B U S 376 001 \0 207 201 = 0 0055300 ; \r \t L _ T _ u t V a l , : u t 0055320 D M i n u s ; \t ! 1 , 2 , u t D 0055340 M i n u s , u t D P l u s ; \r u 0055360 t D M i n u s : \t L _ 0 - T ; \r 0055400 u t D P l u s : \t u t V a l _ L 0055420 , : u t S h i p i t ; \r \r ; - - 0055440 - - - - - - - - - - - - - - - - * 0055520 - - - - - - - - - - - - - - - \r 0055540 ; u - 2 5 5 l a w d e 0055560 c o d i n g \r ; A s s u m 0055600 e s r i g h t j u s t i f i 0055620 e d 8 b i t u - 2 5 5 v 0055640 a l u e i n L \r ; R e 0055660 t u r n s l i n e a r v 376 001 0055700 \0 312 X a l u e i n L a n d 0055720 u t V a l = T e m p \r ; - - - 0055740 - - - - - - - - - - - - - - - - * 0056020 - - - - - - - - - - - - - - \r ! 0056040 1 , 2 , u t t D L o o p , u t t 0056060 D D o n e ; \r ! 1 , 2 , u t t D 0056100 M i n u s , u t t D P l u s ; \r 0056120 \r u t t D e c o d e : \r \r ; 0056140 F i r s t s t e p , s e p a 0056160 r a t e c o m p o n e n t s . 0056200 \r \r \t u t V a l _ L ; \r \t T _ 1 0056220 0 0 ; \r \t T _ 6 0 O R T ; \t 0056240 C o n s t r u c t c o n s t a 0056260 n t \r \t L _ u t V a l A N D 0056300 T , T 376 001 \0 266 242 A S K ; \r \t u t 0056320 E x p _ L ; \r \r \t T _ u t V a l 0056340 ; \r \t L _ 2 0 0 A N D T ; \r 0056360 \t u t S i g n _ L ; \t M i n u s 0056400 i f S i g n n o n - z e r 0056420 o \r \t L _ 1 7 A N D T , T A 0056440 S K ; \r \t u t V a l _ L L S H 0056460 1 ; \r \r ; B u i l d f r a 0056500 m e f o r d e c o d i n g ; 0056520 \r \t T _ u t V a l + 1 ; \r \t L _ 0056540 4 0 + T , T A S K ; \r \t u t V a 0056560 l _ L L S H 1 ; \r \r ; 0056600 T h e v a l u e i s n o w 0056620 0 0 0 0 0 0 0 0 0 1 x 0056640 x x x 1 0 i n b i n a r y 0056660 . \r ; W e n o w m u s 0056700 t s h i f t 376 001 \0 4 G l e f 0056720 t ( E x p / 2 0 B ) + 1 p l 0056740 a c e s . \r \r u t t D L o o p : 0056760 \t L _ u t V a l , T A S K ; \r \t 0057000 u t V a l _ L L S H 1 ; \r \t 0057020 T _ 2 0 ; \r \t L _ u t E x p - T 0057040 , B U S = 0 , T A S K ; \r \t u t 0057060 E x p _ L , : u t t D L o o p ; 0057100 \t ! 1 , 2 , u t t D L o o p , u 0057120 t t D D o n e ; \r \r ; N o 0057140 w s u b t r a c t 2 0 4 B 0057160 ( s e e e n c o d e ) , t h 0057200 i s w i l l n e v e r u n 0057220 d e r f l o w . \r \r u t t D D o 0057240 n e : \t T _ 2 0 3 + 1 ; \r \t L _ 0057260 u t V a l - T ; \r \t T _ 1 7 ; \r 0057300 \t L _ L A S T L A N D 376 \0 306 0057320 247 264 N O T T , T A S K ; \t T r 0057340 u n c a t e t o w a r d s 0 0057360 . \r \t u t V a l _ L ; \r \r ; 0057400 H a n d l e s i g n . \r \r \t S 0057420 I N K _ u t S i g n , B U S = 0 0057440 ; \r \t L _ T _ u t V a l , : u t 0057460 t D M i n u s ; \t ! 1 , 2 , u t 0057500 t D M i n u s , u t t D P l u s 0057520 ; \r u t t D M i n u s : \t L _ 0 0057540 - T ; \r u t t D P l u s : \t u t 0057560 V a l _ L , : u t t S h i p i t 0057600 ; \r 032 ( 0 , 5 3 7 6 ) ( 1 , 1 1 0057620 2 6 4 ) \ f 1 \r 377 \0 \0 m u - c a 0057640 t . c m \0 376 \0 Q G + m u / l c 0057660 a t m e s a m c . m u \r p a c k 0057700 m u c a t m e s a m c . m b 0057720 A u b u r n M e s a M c - U 5 - 0057740 R 4 . b r 1 6 0 3 7 6 A u b 0057760 u r n 5 4 I m a g e \r 374 0057774