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