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