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