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