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