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