$ od -c -N 50000 [Indigo]<DLion>Release>DLionMicrocode>Private>Phase0.mc!1 0000000 { F i l e n a m e : P h a 0000020 s e 0 . m c \r D e s c r i p t 0000040 i o n : P R O M u C o d e 0000060 u s e d i n s t a r t i n g 0000100 b o o t i n g s e q u e n c 0000120 e , \r D e n n i s G r u n d 0000140 l e r : 2 - S e p - 8 4 1 0000160 5 : 5 2 : 1 6 , a d d c o p 0000200 y r i g h t n o t i c e . \r L 0000220 a s t E d i t e d : D a n 0000240 D a v i e s , F e b r u a r y 0000260 1 7 , 1 9 8 2 1 0 : 2 3 0000300 A M : C l a r i f y c o d 0000320 e , e l i m i n a t e u n m 0000340 a s k e d b r a n c h e s , 0000360 f i x r e c a l c o d e \r \t 0000400 f o r Q u a n t u m d r i v 0000420 e ( r e c a l o v e r 5 7 0000440 6 c y l i n d e r s i n , 0000460 n o t 5 1 2 ) . \r L a s t E 0000500 d i t e d : A m y F a s n a 0000520 c h t , J a n u a r y 2 1 , 0000540 1 9 8 2 3 : 5 7 P M : 0000560 C h a n g e b o o t f i l e 0000600 n u m b e r s t o 3 - w o 0000620 r d q u a n t i t y . \r L a s 0000640 t E d i t e d : A m y F a 0000660 s n a c h t , J a n u a r y 0000700 1 2 , 1 9 8 2 4 : 3 3 P 0000720 M : C h a n g e u B o o t F 0000740 i l e T y p e v a l u e s . \r 0000760 L a s t E d i t e d : A m y 0001000 F a s n a c h t , J a n u a 0001020 r y 1 2 , 1 9 8 2 9 : 0 0001040 8 A M : C h a n g e c o m 0001060 m e n t s t o j i v e w i 0001100 t h n e w b o o t D e v i c 0001120 e v a l u e s . \r L a s t E 0001140 d i t e d : J o z e f F u r 0001160 s t , J a n u a r y 7 , 1 0001200 9 8 2 9 : 5 4 A M : C h 0001220 a n g e r e g i s t e r r E 0001240 t o R A d r i n l a s t 0001260 c l i c k . \r L a s t E d i 0001300 t e d : A m y F a s n a c h 0001320 t , J a n u a r y 5 , 1 9 0001340 8 2 9 : 5 4 A M : C h a 0001360 n g e B o o t D e v i c e v 0001400 a l u e s . \r L a s t E d i t 0001420 e d : A m y F a s n a c h t 0001440 , J a n u a r y 5 , 1 9 8 0001460 2 9 : 0 6 A M : C h a n 0001500 g e o r d e r i n g . \r L a s 0001520 t E d i t e d : A m y F a 0001540 s n a c h t , D e c e m b e r 0001560 2 1 , 1 9 8 1 4 : 0 0 0001600 P M : A d d T a s k 4 t 0001620 o c h e c k f o r d i s k 0001640 t y p e . \r L a s t E d i t 0001660 e d : J o z e f F u r s t , 0001700 D e c e m b e r 1 8 , 1 9 0001720 8 1 2 : 5 6 P M : T r i 0001740 d e n t p o w e r r e s e t 0001760 a d d e d . \r L a s t E d i 0002000 t e d : J o z e f F u r s t 0002020 , D e c e m b e r 1 1 , 1 0002040 9 8 1 1 1 : 5 5 A M : T 0002060 r i d e n t 2 & 3 a d d e 0002100 d . \r L a s t E d i t e d : 0002120 J o z e f F u r s t , D e c 0002140 e m b e r 3 , 1 9 8 1 3 0002160 : 2 5 P M : T e s t f o r 0002200 S A X 0 0 0 / T r i d e n t 0002220 a d d e d . \r L a s t E d i t 0002240 e d : J i m F r a n d e e n 0002260 , N o v e m b e r 2 4 , 1 0002300 9 8 1 5 : 1 4 P M : C h 0002320 a n g e r D t o r E f o 0002340 r T r i d e n t B o o t 0 . \r 0002360 L a s t E d i t e d : A m y 0002400 F a s n a c h t , N o v e m 0002420 b e r 2 4 , 1 9 8 1 9 : 0002440 5 7 A M : A d d b o o t D 0002460 e v i c e = 7 c o d e \r L 0002500 a s t E d i t e d : A m y 0002520 F a s n a c h t , N o v e m b 0002540 e r 1 6 , 1 9 8 1 1 0 : 0002560 1 5 A M : D e l e t e s e 0002600 t t i n g o f K C t l r e 0002620 g i s t e r \r L a s t E d i t 0002640 e d : A m y F a s n a c h t 0002660 , N o v e m b e r 1 3 , 1 0002700 9 8 1 1 0 : 5 9 A M : R 0002720 e d u c e c o d e b y 1 3 0002740 i n s t r u c t i o n s \r L a 0002760 s t E d i t e d : A m y F 0003000 a s n a c h t , N o v e m b e 0003020 r 9 , 1 9 8 1 4 : 1 3 0003040 P M : F i x a l l o c a t i 0003060 o n e r r o r c a u s e d 0003100 b y a d d i t i o n o f T 0003120 r i d e n t \r L a s t E d i t 0003140 e d : J o z e f F u r s t , 0003160 N o v e m b e r 4 , 1 9 8 0003200 1 2 : 0 8 P M : T r i d 0003220 e n t b o o t m i c r o c o 0003240 d e a d d e d \r L a s t E d 0003260 i t e d : A m y F a s n a c 0003300 h t , S e p t e m b e r 1 4 0003320 , 1 9 8 1 1 2 : 1 9 P M 0003340 : C h a n g e c l o c k a 0003360 n d r e t r y c o u n t t 0003400 o R r e g i s t e r s \r L a 0003420 s t E d i t e d : J i m F 0003440 r a n d e e n , S e p t e m b 0003460 e r 1 0 , 1 9 8 1 1 : 2 0003500 8 P M : A d d E t h e r 0003520 b o o t i n g \r L a s t E d i 0003540 t e d : O g u s , J u l y 0003560 1 0 , 1 9 8 1 1 2 : 5 5 0003600 P M \r L a s t E d i t e d : 0003620 J a r v i s , M a r c h 1 9 0003640 , 1 9 8 1 6 : 3 3 P M \r 0003660 A u t h o r : J a r v i s , \r 0003700 C r e a t e d : A u g u s t 0003720 2 5 , 1 9 8 0 , \r } \r \r { \t 0003740 C o p y r i g h t ( C ) 1 9 0003760 8 0 , 1 9 8 1 , 1 9 8 2 b 0004000 y X e r o x C o r p o r a t 0004020 i o n . A l l r i g h t s 0004040 r e s e r v e d . } \r \r \r { I 0004060 O P a n d C P u s e r e 0004100 a l m e m o r y l o c a t i 0004120 o n s 0 a n d 1 f o r 0004140 c o m m u n i c a t i o n d u 0004160 r i n g b o o t i n g . A 0004200 n y b o o t m i c r o c o d 0004220 e m u s t f i r s t d i s 0004240 a b l e t h e I O P a n d 0004260 c l e a r t h o s e l o c 0004300 a t i o n s . T h e C P 0004320 u s e s l o c a t i o n 0 0004340 t o i n d i c a t e w h i c 0004360 h d e v i c e s f o r b o 0004400 o t i n g a r e p r e s e n 0004420 t . D e v i c e s a r e 0004440 c o d e d o n e b i t p e 0004460 r d e v i c e ( 0 i n d i 0004500 c a t e s n o t i n i t i a 0004520 l i z e d ) \r \r \t 1 \t S A 4 0 0 0004540 0 \r \t 2 \t S A 1 0 0 0 \r \t 4 \t E 0004560 t h e r n e t \r \t 8 \t T r i d e 0004600 n t \r \r A f t e r i n i t i a 0004620 l i z i n g l o c a t i o n 0004640 0 , t h e C P e n a b l e 0004660 s t h e I O P t a s k a 0004700 n d w a i t s f o r t h e 0004720 I O P t o p r e l o a d 0004740 t h e n e c e s s a r y U 0004760 r e g i s t e r s . A f t e 0005000 r t h e I O P l o a d s 0005020 U r e g i s t e r s , t h e 0005040 I O P t a s k r e c i e v 0005060 e s t h e b o o t d e v i 0005100 c e f r o m t h e I O P . 0005120 T h e C P t h e n e n 0005140 a b l e s t h e b o o t d 0005160 e v i c e a n d l o a d s 0005200 t h e b o o t f i l e i n 0005220 t o m a i n s t o r a g e 0005240 s t a r t i n g a t l o c a 0005260 t i o n 1 0 0 . I f f l 0005300 o p p y b o o t i n g i s 0005320 s p e c i f i e d , t h e C 0005340 P j u s t l o o p s i n 0005360 t 350 e p r o t e c t e d a r 0005400 e a . \r \r A f t e r t h e C 0005420 P l o a d s t h e b o o t 0005440 f i l e , t h e l o c a t 0005460 i o n 1 g e t s n o n - z 0005500 e r o t o i n d i c a t e 0005520 t h e c o m p l e t i o n c 0005540 o d e ( b o o t f i l e l 0005560 o a d e d o r e r r o r ) . 0005600 I f t h e h i g h b y 0005620 t e i s n o n - z e r o , 0005640 l o c a t i o n 1 i s t h 0005660 e r e a l a d d r e s s o 0005700 f t h e b o o t f i l e . 0005720 I f t h e 350 i g h b y 0005740 t e i s z e r o , t h e 0005760 l o w b y t e c o n t a i n 0006000 s a n e r r o r c o d e . 0006020 T h e b o o t t i m e 0006040 e r r o r c o d e s i n c l 0006060 u d e \r \r \t 1 \t d e v i c e e 0006100 r r o r \r \t 2 \t n u l l g e r 0006120 m \r \t 3 \t b r o k e n b o o t 0006140 c h a i n \r \t 4 \t i l l e g a 0006160 l c o m m a n d s e n t t 0006200 o I O P \r \t 5 \t p r o c e s s 0006220 o r e r r o r t r a p p e d 0006240 t h r o u g h c o n t r o l 0006260 s t o r e l o c a t i o n 0006300 0 \r \r A f t e r c o m p l e t 0006320 i n g t h e b o o t f i l 0006340 e l o a d i n g t h e C P 0006360 l o o p s i n f i n i t e l 0006400 y i n t h e p r o t e c t 0006420 e d a r e a . } \r \r { D E F I 0006440 N I T I O N S } \r \r R e s e r v 0006460 e [ P r o t e c t S t a r t , 0006500 P r o t e c t F e n c e ] , R 0006520 e s e r v e [ 0 F E 0 , 0 F F 0006540 F ] ; \t { s a v e r o o m f 0006560 o r b o o t k e r n e l } \r 0006600 \t { \r \t P h a s e 0 P r o t e c 0006620 t e d ( P r o t e c t e d . m 0006640 c , I O P B o o t . m c ) r 0006660 e s i d e s i n 0 - 0 0 0006700 F F \r \t P h a s e 0 ( P h a s 0006720 e 0 . m c , D i s k B o o t D 0006740 L i o n . m c , E t h e r B o 0006760 o t . m c ) r e s i d e s i 0007000 n 0 1 0 0 - 0 F D F \r \t T 0007020 h e B o o t K e r n e l r e 0007040 s i d e s i n 0 F E 0 - 0007060 0 F F F \r \t P a r t o f t h 0007100 e B o o t K e r n e l t h a 0007120 t c a n b e o v e r l a i 0007140 d r e s i d e s i n 0 F D 0007160 8 - 0 F D F \r \t } \r \r { N o 0007200 t e t h e D i s k B o o t D 0007220 l i o n c o d e f o r t h 0007240 e S h u g a r t d i s k s 0007260 u s e s L i n k r e g i s t 0007300 e r s 4 a n d 5 . } \r \r S 0007320 e t T a s k [ 0 ] , S t a r t 0007340 A d d r e s s [ g o ] ; \r \r \f \r 0007360 { T h e b o o t k e r n e l 0007400 r e s e t s t h e C P I 0007420 / O r e g i s t e r s a n d 0007440 e n a b l e s m e m o r y 0007460 r e f r e s h } \r g o : \t I O P 0007500 C t l 254 0 , r D 254 0 , 0007520 r D r h 254 0 , C A N C E 0007540 L B R [ $ , 0 F ] , \t c 1 ; 0007560 { d i s a b l e I O P p o r 0007600 t } \r \t d b U S t a t u s 254 0007620 0 , r E 254 0 , \t c 2 ; 0007640 { c l e a r d i s k s t a t 0007660 u s r e g i s t e r } \r \t r E 0007700 r h 254 1 , \t c 3 ; \r \r { c l 0007720 e a r t h e f i r s t 1 2 0007740 8 K o f m e m o r y , i n 0007760 c l u d e s t h e I O p a 0010000 g e , t a k e s 5 4 m s e 0010020 c } \r c l e a r 0 : \t M A R 254 0010040 [ r D r h , r D + 0 ] , \t c 0010060 1 ; \r \t M D R 254 r E , r D 0010100 254 r D + 1 , Z e r o B 0010120 r , \t c 2 ; \r \t p a s s T r a p 0010140 s 254 r E , B R A N C H [ c 0010160 l e a r 0 , $ ] , \t c 3 ; { 0010200 d i e o n f a u l t s } \r \r 0010220 \t M A R 254 [ r E r h , r E 0010240 + 0 ] , G O T O [ c l e a 0010260 r 2 ] , \t c 1 ; \r \r c l e a r 1 0010300 : \t M A R 254 [ r E r h , r E 0010320 + 0 ] , \t c 1 ; \r c l e a r 2 : 0010340 \t M D R 254 r D , r E 254 r E 0010360 + 1 , Z e r o B r , \t c 2 ; \r 0010400 \t b o o t D e v i c e 254 0 , 0010420 B R A N C H [ c l e a r 1 , 0010440 T r i d e n t / S A ] , \t c 3 ; 0010460 \r \r { T e s t f o r c o n t 0010500 r o l l e r t y p e . N O 0010520 T E : A n y H S I O b o a 0010540 r d s u s i n g t h i s c 0010560 o d e m u s t h a v e t h 0010600 e H S I O - e e n g i n e e 0010620 r i n g c h a n g e . I f 0010640 i t i s \r n o t p r e s 0010660 e n t , t h e c o d e m a 0010700 y m i s t a k e a S h u g 0010720 a r t o r Q u a n t u m d 0010740 r i v e f o r a T r i d e 0010760 n t . T h i s i s b e c 0011000 a u s e t h e W r i t e G a 0011020 t e b i t i s \r t h e o 0011040 n e t e s t e d a n d b o 0011060 a r d s w i t h o u t t h e 0011100 f i x M A Y c o m e u p 0011120 w i t h W r i t e G a t e 0011140 a c t i v e . } \r T r i d e n t 0011160 / S A : \t X b u s 254 K T e s 0011200 t , X D i s p , \t c 1 ; \r \t u 0011220 E t h e r B o o t D o n e 254 0011240 0 , D I S P 4 [ d i s k T y p 0011260 e , 0 E ] , \t c 2 ; \r T r i d 0011300 e n t : \t r E 254 0 C , G O 0011320 T O [ e n a b l e I O P ] , \t c 0011340 3 , a t [ 0 F , 1 0 , d i s k 0011360 T y p e ] ; \r S A : \t G O T O [ 0011400 p o l l D e v i c e s ] , \t c 3 0011420 , a t [ 0 E , 1 0 , d i s k T 0011440 y p e ] ; \r \r p o l l D e v i c 0011460 e s : \t X b u s 254 K S t a t 0011500 u s , X w d D i s p , \t c 1 ; 0011520 { S A 4 0 0 0 o r S A 1 0 0011540 0 0 ? } \r \t r C 254 2 0 , { 0011560 s e t u p f o r d i s k 0011600 l o o p } B R A N C H [ S A 1 0011620 0 0 0 , S A 4 0 0 0 , 2 ] , 0011640 \t c 2 ; \r \r S A 4 0 0 0 : \t r E 0011660 254 5 { S A 4 0 0 0 = E 0011700 t h e r n e t } , G O T O [ e 0011720 n a b l e I O P ] , \t c 3 , a 0011740 t [ 3 , 4 , S A 4 0 0 0 ] ; 0011760 \r S A 1 0 0 0 : \t r E 254 6 0012000 { S A 1 0 0 0 = E t h e r n 0012020 e t } , G O T O [ e n a b l e 0012040 I O P ] , \t c 3 , a t [ 2 , 0012060 4 , S A 4 0 0 0 ] ; \r \r \r e n 0012100 a b l e I O P : \t M A R 254 [ 0012120 r D r h , r D + 0 ] , \t c 0012140 1 ; { n o n - z e r o i n 0012160 z e r o = > r e a d y } \r \t M 0012200 D R 254 C P B o o t D e v i c 0012220 e 254 r E , \t c 2 ; \r \t I O P 0012240 C t l 254 I O P I n M o d e , 0012260 \t c 3 ; \r \r { W a i t f o r 0012300 t h e I O P t o i n f o 0012320 r m t h e C P w h a t t 0012340 h e B o o t D e v i c e i s 0012360 . U - r e g i s t e r b o 0012400 o t D e v i c e w i l l b e 0012420 c o m e n o n z e r o . \r b o 0012440 o t D e v i c e = 0 ( n o 0012460 t v a l i d y e t ) , = 0012500 1 ( S A 4 X X X ) , = 2 0012520 ( S A 1 0 0 X ) , = 3 ( E 0012540 t h e r n e t ) , = 4 ( F 0012560 l o p p y ) , = 5 ( A l t 0012600 . E t h e r n e t ) , = 6 0012620 ( T r i d e n t 0 ) , = 7 0012640 ( T r i d e n t 1 ) , = 8 0012660 ( T r i d e n t 2 ) , = 9 0012700 ( T r i d e n t 3 ) . } \r \r h 0012720 e r e : \t r G 254 0 F F , { 0012740 s o P r o t e c t e d w o n 0012760 ' t t i m e o u t r i g h t 0013000 a w a y } \t c 1 , a t [ 0 , 0013020 1 0 , h e r e ] ; \r \t X b u 0013040 s 254 b o o t D e v i c e , 0013060 X D i s p , \t c 2 ; \r \t u T i m 0013100 e o u t 254 0 , D I S P 4 [ 0013120 h e r e ] , \t c 3 ; \r \r { S e t 0013140 u p t h e t h i r d w o 0013160 r d o f t h e 3 - w o r d 0013200 b o o t f i l e n u m b e 0013220 r o f t h e f i l e b e 0013240 i n g r e q u e s t e d . } \r 0013260 \r \t r E 254 0 , G O T O [ E 0013300 t h e r B o o t ] , \t c 1 , a 0013320 t [ 3 , 1 0 , h e r e ] ; \r 0013340 \t r E 254 1 , G O T O [ E t 0013360 h e r B o o t ] , \t c 1 , a t 0013400 [ 5 , 1 0 , h e r e ] ; \r E 0013420 t h e r B o o t : \t r E t h e r 0013440 B o o t R e t r i e s 254 0 , 0013460 u E t h e r B o o t S t a t u 0013500 s 254 0 , \t c 2 ; \r \t u F i l 0013520 e N u m b e r 2 254 r E , \t c 0013540 3 ; \r \r N o t i f y E t h e r B 0013560 o o t : \r \t { N o t i f y E t 0013600 h e r T a s k b y s e n d i 0013620 n g A t t e n t i o n t h a 0013640 t i t s h o u l d s t a r 0013660 t o r r e s t a r t } \r \t E 0013700 I C t l 254 2 { N o t i f y 0013720 t h e E t h e r T a s k } , 0013740 C A N C E L B R [ $ , 1 ] , \t 0013760 c 1 ; \r T e s t T i m e o u t : 0014000 \t Y b u s 254 u T i m e o u t 0014020 , N Z e r o B r , C A N C E 0014040 L B R [ $ , 1 ] , \t c 2 ; \r \t Y 0014060 b u s 254 u E t h e r B o o t 0014100 D o n e , Z e r o B r , B R 0014120 A N C H [ $ , N o t i f y E t 0014140 h e r B o o t ] , \t c 3 ; \r \r \t 0014160 Y b u s 254 u E t h e r B o o 0014200 t S t a t u s , N Z e r o B r 0014220 , B R A N C H [ $ , T e s t 0014240 T i m e o u t ] , \t c 1 ; \r \t N 0014260 o o p , B R A N C H [ E t h e 0014300 r B o o t S u c c e s s f u l , 0014320 E t h e r B o o t F a i l e d 0014340 ] , \t c 2 ; \r E t h e r B o o t 0014360 S u c c e s s f u l : \r \t d b U 0014400 S t a t u s 254 0 , G O T O 0014420 [ F i l e R e a d y ] , \t c 3 ; 0014440 \r E t h e r B o o t F a i l e d 0014460 : \r \t a c R 254 b o o t D e v 0014500 i c e E r r o r , G O T O A B 0014520 S [ M a i n t e n a n c e 1 L o 0014540 c ] , \t c 3 ; \r \r \r f l o p p y 0014560 B o o t : \t G O T O A B S [ I d 0014600 l e L o c ] , \t c 1 , a t [ 4 0014620 , 1 0 , h e r e ] ; \r \r d i 0014640 s k B o o t 4 : \t r E 254 f a 0014660 u l t C l e a r C m d , { b o 0014700 o t f r o m S A 4 0 0 0 } , 0014720 \t c 1 , a t [ 1 , 1 0 , h 0014740 e r e ] ; \r \t K C t l 254 r E 0014760 L R o t 8 , \t c 2 ; \r \t K C t 0015000 l 254 0 , G O T O [ d i s k 0015020 B o o t 1 ] , \t c 3 ; \r \r d i s 0015040 k B o o t 1 : \t X b u s 254 K 0015060 S t a t u s , X R e f B r , \t 0015100 c 1 , a t [ 2 , 1 0 , h e 0015120 r e ] ; \r \t r E 254 d r i v e 0015140 S e l e c t B i t , B R A N C 0015160 H [ $ , r e c a l i b r a t e 0015200 ] , \t c 2 ; { c h e c k f o 0015220 r d r i v e r e a d y } \r \t 0015240 r E 254 K C t l 254 r E L 0015260 R o t 8 , G O T O [ d i s k B 0015300 o o t 1 ] , \t c 3 ; \r \r { d i s 0015320 k i s r e a d y } \r r e c a 0015340 l i b r a t e : \t r E 254 d r 0015360 i v e S e l e c t B i t , \t c 3 0015400 ; { s t e p i n f i r s t 0015420 } \r \t r E 254 r E L R o t 8 0015440 , \t c 1 ; \r \t r E 254 r E o 0015460 r i n B i t , \t c 2 ; \r \t K C 0015500 t l 254 r E L R o t 0 , \t c 0015520 3 ; \r \r { S t e p b i t m u 0015540 s t b e h i g h f o r a 0015560 t l e a s t o n e m i c r 0015600 o s e c o n d a n d t h e n 0015620 l o w f o r a t l e a s 0015640 t o n e m i c r o s e c o n 0015660 d . S i n c e a c l i c 0015700 k i s 4 1 1 n s , s t e 0015720 p B i t c a n c h a n g e 0015740 o n l y o n c e e v e r y 0015760 t h i r d c l i c k . } \r \r W 0016000 a i t F o r S e e k C o m p l e 0016020 t e : \r \t r D 254 ~ K S t a t 0016040 u s , C A N C E L B R [ $ , 0016060 1 ] , \t c 1 , a t [ 0 B , 1 0016100 0 , W a i t F o r S e e k C o 0016120 m p l e t e ] ; \r \t r D 254 r 0016140 D L R o t 8 , X D i s p , \t 0016160 c 2 ; { c h e c k f o r s 0016200 e e k c o m p l e t e } \r \t Y 0016220 b u s 254 r D a n d 2 , 0016240 Z e r o B r , D I S P 4 [ W a 0016260 i t F o r S e e k C o m p l e t 0016300 e , 0 B ] , \t c 3 ; { c h e 0016320 c k f o r C y l i n d e r 0016340 0 f l a g , l o o p \r \t \t \t 0016360 w a i t i n g f o r S 0016400 e e k C o m p l e t e . } \r \r { 0016420 H e a d s a r e n o w s t 0016440 e a d y , i f n o w a t 0016460 C y l i n d e r 0 , s t a r 0016500 t d i s k m i c r o c o d e 0016520 . O t h e r w i s e s t e 0016540 p t h e h e a d s i n o 0016560 r o u t . } \r s e e k C o m p 0016600 l e t e : \t r E 254 r E o r 0016620 s t e p B i t , B R A N C H 0016640 [ a t 0 0 , $ ] , \t c 1 , a 0016660 t [ 0 F , 1 0 , W a i t F o 0016700 r S e e k C o m p l e t e ] ; \r 0016720 \t K C t l 254 r E L R o t 0 0016740 , \t c 2 ; \r \t r D 254 3 , \t c 0016760 3 ; \r \r { W a i t 3 c l i c 0017000 k s s o S t e p p u l s e 0017020 i s a c t i v e l o n g 0017040 e n o u g h . } \r s t e p W a i 0017060 t : \t r E 254 r E a n d ~ 0017100 s t e p B i t , C A N C E L B 0017120 R [ $ , 1 ] , \t c 1 ; \r \t r D 0017140 254 r D - 1 , Z e r o B 0017160 r , \t c 2 ; \r \t Y b u s 254 r 0017200 C , Z e r o B r , B R A N C 0017220 H [ s t e p W a i t , $ ] , \t 0017240 c 3 ; { S e e i f f i n i 0017260 s h e d s t e p p i n g i n 0017300 \r \t \t \t t h i s d i r e 0017320 c t i o n ( r C = 0 ) } \r \r \t 0017340 K C t l 254 r E L R o t 0 , 0017360 B R A N C H [ $ , c o u n t 0017400 e d I n ] , \t c 1 ; { l o w e 0017420 r s t e p l i n e a n d 0017440 c o n t i n u e \r \t \t \t o 0017460 n l y i f t h e r e i s 0017500 m o r e t o g o . } \r \t r C 0017520 254 r C - 1 , \t c 2 ; \r \t 0017540 G O T O [ W a i t F o r S e e k 0017560 C o m p l e t e ] , \t c 3 ; \r \r 0017600 { A t t h i s p o i n t , 0017620 w e h a v e g o n e a s 0017640 f a r a s n e c e s s a r y 0017660 i n t h e c u r r e n t 0017700 d i r e c t i o n . I f t 0017720 h i s i s t h e f i r s t 0017740 t i m e t h r o u g h , w 0017760 e h a v e m o v e d t h e 0020000 h e a d s f a r e n o u g 0020020 h t o w a r d s t h e c e 0020040 n t e r o f t h e d i s k 0020060 t h a t C y l i n d e r 0 0020100 m u s t b e o u t f r o 0020120 m h e r e . I f t h i s 0020140 i s t h e s e c o n d t 0020160 i m e t h r o u g h , C y l 0020200 i n d e r 0 c a n ' t b e 0020220 f o u n d ( w e h a v e 0020240 g o n e 3 2 C y l i n d e r 0020260 i n w a r d s a n d 5 6 2 0020300 c y l i n d e r s o u t ) 0020320 s o g i v e u p . } \r c o u 0020340 n t e d I n : \t r D 254 r E 0020360 a n d i n B i t , \t c 2 ; { 0020400 s e l e c t D i r e c t i o n 0020420 I n b i t } \r \t Y b u s 254 0020440 r D , Z e r o B r , \t c 3 ; 0020460 { d i d w e j u s t f i n 0020500 i s h g o i n g i n ? } \r \r 0020520 \t r E 254 r E x o r i n B 0020540 i t , B R A N C H [ $ , r e 0020560 c a l L o s t ] , \t c 1 ; { f 0020600 l i p d i r e c t i o n , q 0020620 u i t i f w e w e r e \r \t 0020640 \t \t g o i n g o u t } \r 0020660 \t r C 254 0 F F + 1 , { 0020700 m a x i s 2 5 6 c y l i n 0020720 d e r s f o r S A 1 0 0 0 0020740 } \t c 2 ; \r \t r C 254 L S h i 0020760 f t 1 r C o r 2 0 , G O 0021000 T O [ W a i t F o r S e e k C o 0021020 m p l e t e ] , \t c 3 ; { m a 0021040 k e s u r e w e g o f a 0021060 r e n o u g h o u t \r \t \t \t 0021100 f o r a 5 1 2 C y l 0021120 i n d e r Q u a n t u m d r 0021140 i v e . \r \t \t \t U s e " 0021160 o r " i n s t e a d o f " 0021200 + " f o r t i m i n g \r \t \t 0021220 \t r e a s o n s . } \r \r r 0021240 e c a l L o s t : \t a c R 254 0021260 b o o t D e v i c e E r r o r , 0021300 G O T O A B S [ M a i n t e n 0021320 a n c e 2 L o c ] , \t c 2 ; \r \r 0021340 { H e r e r e c a l i b r a t 0021360 i o n h a s b e e n s u c 0021400 c e s s f u l . W e t u r 0021420 n o n t h e d i s k m i 0021440 c r o c o d e a n d w a i t 0021460 f o r i t t o c o m p l 0021500 e t e . } \r a t 0 0 : \t r D 254 0021520 f i r m w a r e E n a b l e , 0021540 \t c 2 ; \r \t K C t l 254 r D 0021560 L R o t 0 , \t c 3 ; \r \r t r a n 0021600 s f e r W a i t : \t r D 254 ~ 0021620 K S t a t u s , \t c 1 , a t [ 0021640 0 F , 1 0 , t r a n s f e r 0021660 W a i t ] ; \r \t X b u s 254 r 0021700 D L R o t 8 , X D i s p , \t 0021720 c 2 ; { t e s t f i r m w a 0021740 r e b u s y } \r \t r D r h 254 0021760 0 , B R A N C H [ F i l e R 0022000 e a d y , t r a n s f e r W a 0022020 i t , 0 E ] , \t c 3 ; \r \r \r { 0022040 T h i s s e c t i o n o f 0022060 t h e c o d e i s f o r 0022100 T r i d e n t d e v i c e 0 0022120 , 1 , 2 a n d 3 . } \r T 0022140 r i d e n t B o o t 0 : \t r E 0022160 254 0 F 8 , G O T O [ T r i d e 0022200 n t C o n t ] , \t c 1 , a t [ 0022220 6 , 1 0 , h e r e ] ; \r \r T 0022240 r i d e n t B o o t 1 : \t r E 0022260 254 0 F 4 , G O T O [ T r i d 0022300 e n t C o n t ] , \t c 1 , a t 0022320 [ 7 , 1 0 , h e r e ] ; \r T 0022340 r i d e n t B o o t 2 : \t r E 0022360 254 0 F 2 , G O T O [ T r i d 0022400 e n t C o n t ] , \t c 1 , a t 0022420 [ 8 , 1 0 , h e r e ] ; \r \r 0022440 T r i d e n t B o o t 3 : \t r E 0022460 254 0 F 1 , \t c 1 , a t [ 9 0022500 , 1 0 , h e r e ] ; \r T r i 0022520 d e n t C o n t : \t K C t l 254 0022540 r E 254 r E L R o t 8 , \t 0022560 c 2 ; \r \t K C m d 254 b U 0 C 0022600 0 0 , \t c 3 ; \r \r { T e s t f 0022620 o r f i r m w a r e b u s y 0022640 . I f n o t b u s y f 0022660 i n i s h p h a s e 0 b o o 0022700 t s e q u e n c e . } \r T r i 0022720 d e n t W a i t : \t r D 254 ~ 0022740 K T e s t , \t c 1 , a t [ 0 F 0022760 , 1 0 , T r i d e n t W a i 0023000 t ] ; \r \t [ ] 254 r D L R o 0023020 t 4 , X D i s p , \t c 2 ; \r \t 0023040 b U B i t S i g n A d r 254 r 0023060 E , B R A N C H [ T r i d e n 0023100 t E n d , T r i d e n t W a i 0023120 t , 0 E ] , \t c 3 ; \r \r T r i 0023140 d e n t E n d : \t r E 254 d b U 0023160 S t a t u s , Z e r o B r , G 0023200 O T O [ E t h e r B o o t C o n 0023220 t ] \t c 1 , a t [ 0 E , 1 0 0023240 , T r i d e n t W a i t ] ; \r 0023260 \r F i l e R e a d y : \t r E 254 0023300 d b U S t a t u s , Z e r o B 0023320 r , G O T O [ E t h e r B o o t 0023340 C o n t ] \t c 1 , a t [ 0 E , 0023360 1 0 , t r a n s f e r W a i t ] 0023400 ; \r \r E t h e r B o o t C o n t 0023420 : \t r D 254 1 , B R A N C H 0023440 [ $ , s e t R e a d y ] , \t c 0023460 2 ; \r \t a c R 254 b o o t 0023500 D e v i c e E r r o r , G O T 0023520 O A B S [ M a i n t e n a n c e 0023540 1 L o c ] , \t c 3 ; \r s e t R e 0023560 a d y : \t a c R 254 0 F F + 1 0023600 , \t c 3 ; { f i r s t l o c 0023620 a t i o n o f b o o t f i 0023640 l e } \r \t M A R 254 [ r D r h 0023660 , r D + 0 ] , \t c 1 ; { 0023700 i n d i c a t e b o o t f i 0023720 l e r e a d } \r \t M D R 254 0023740 a c R , G O T O A B S [ I d l 0023760 e L o c ] , \t c 2 ; \r \r \r { D e 0024000 t e r m i n e t h e d i s k 0024020 t y p e a n d j u m p t 0024040 o t h e s t a r t i n g a 0024060 d d r e s s o f e i t h e r 0024100 D i s k B o o t D L i o n o 0024120 r T r i d e n t B o o t D L i 0024140 o n a c c o r d i n g l y . 0024160 W e m u s t t e s t t h 0024200 i s h e r e b e c a u s e 0024220 w e c a n n o t h a v e t 0024240 w o d i f f e r e n t s t a 0024260 r t i n g a d d r e s s e s 0024300 f o r T a s k 4 . W h e 0024320 n w e a r r i v e h e r e 0024340 , C P B o o t D e v i c e i 0024360 s 5 o r 6 f o r a S 0024400 h u g a r t d i s k a n d 0024420 0 C f o r a T r i d e n t 0024440 . } \r \r S e t T a s k [ 4 ] , 0024460 S t a r t A d d r e s s [ F i n 0024500 d D i s k T y p e ] ; \r \r F i n 0024520 d D i s k T y p e : \t R A d r 0024540 254 C P B o o t D e v i c e , 0024560 C A N C E L B R [ $ , 0 F ] , 0024600 \t c 1 ; \r \t Y b u s 254 R A d 0024620 r , Y D i s p , \t c 2 ; \r \t B 0024640 R A N C H [ D i s k S t a r t , 0024660 { S A x 0 0 0 } S t a r t B 0024700 o o t , { T r i d e n t } 7 0024720 ] , \t c 3 ; \r \r 0024730