$ 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