$ 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