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