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