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