$ od -c -N 50000 [Indigo]<Maxc>MEMBASH.DM!1
0000000 377 \0 \0 M e m B a s h . b c p l \0
0000020 376 001 \0 o 362 / / M e m B a s h .
0000040 b c p l - - M a x c 2 m e
0000060 m o r y c o n t e n t i o n
0000100 d i a g n o s t i c \r / / \t A s
0000120 s u m e s a m e m o r y d
0000140 i a g n o s t i c ( e . g . ,
0000160 D G M R ) r u n n i n g o
0000200 n M a x c \r \r / / \t L a s t
0000220 m o d i f i e d J u n e 4 ,
0000240 1 9 7 8 5 : 5 1 P M \r \r
0000260 g e t " s t r e a m s . d " \r
0000300 \r e x t e r n a l \r [ \r W s ;
0000320 W s s ; G e t s ; P u t s ;
0000340 E n d o f s ; R e s e t s ;
0000360 N o o p ; M o v e B l o c k
0000400 ; Z e r o \r C r e a t e D i s
0000420 p l a y S 376 001 \0 4 343 t r e a m ;
0000440 S h o w D i s p l a y S t r e
0000460 a m ; S t a r t I O \r M e m R
0000500 e a d ; M e m W r i t e ; M
0000520 e m R M W \r I n p u t S M I ;
0000540 O u t p u t S M I ; O u t p u
0000560 t S M I P u l s e \r I n p u t S
0000600 M I E r r o r s ; O u t p u t
0000620 S M I T e s t ; E x e c u t e
0000640 M i c r o I n s t r u c t i o n
0000660 ; L o a d B u s ; R e a d B
0000700 u s \r L o a d R a m ; S e t B
0000720 L V ; U S e t B L V \r \r R a m
0000740 I m a g e ; d s p ; k e y s
0000760 ; l v U s e r F i n i s h P r
0001000 o c ; a d r M T B S \r ] \r \r s
0001020 t a t i c \r [ \r A l 376 001 \0 300 220 t
0001040 o O p e r a t i o n ; N e x t
0001060 A d r \r a l t o N u m b e r ;
0001100 m a x c N u m b e r ; n u m b
0001120 e r T y p e d ; a l t o C o d
0001140 e ; t e s t A d r \r d i s p l
0001160 a y E n a b l e d = t r u e
0001200 \r s t a r t A d r = # 2 1 \r
0001220 s a v e d U s e r F i n i s h P
0001240 r o c \r f a t a l S E = f a
0001260 l s e ; f a t a l P B F =
0001300 f a l s e \r a d r M T B S /
0001320 / e x t e r n a l w a n t e d
0001340 b y A l t I O U t i l a . a
0001360 s m \r ] \r \r \r m a n i f e s t \r
0001400 [ \r / / M a x c p r o c e s s
0001420 o r s t a t e s ( s o f t 376
0001440 001 \0 w v w a r e c o n v e n t
0001460 i o n ) \r s t a t e R u n n i n
0001500 g = 0 \t / / p r o c e s s o
0001520 r r u n n i n g \r s t a t e B
0001540 r e a k p o i n t = 1 \t / /
0001560 a t m i c r o - b r e a k p o
0001600 i n t \r s t a t e L o c a l M e
0001620 m P E = 2 \t / / l o c a l
0001640 m e m o r y p a r i t y e r
0001660 r o r \r s t a t e M a i n B u s
0001700 P E = 3 \t / / m a i n m e
0001720 m o r y b u s p a r i t y
0001740 e r r o r \r s t a t e H a l t e
0001760 d = 4 \t \t / / h a l t e d
0002000 f o r o t h e r r e a s o n
0002020 \r \r / / S M I i n p u t a d
0002040 d r e s 376 001 \0 331 275 s e s \r s m i
0002060 R U N = # 2 0 0 \t / / p r o
0002100 c e s s o r r u n s t a t u
0002120 s \r s m i B 0 = # 2 0 3 \t /
0002140 / p r o c e s s o r b u s \r s
0002160 m i B 1 = # 2 0 2 \r s m i B
0002200 2 = # 2 0 1 \r s m i J K E R
0002220 R S = # 4 3 \t / / m e m o r
0002240 y e r r o r s f o r q u a
0002260 d r a n t s J a n d K \r s
0002300 m i L M E R R S = # 4 4 \t /
0002320 / m e m o r y e r r o r s f
0002340 o r q u a d r a n t s L a
0002360 n d M \r \r / / S M I o u t p
0002400 u t a d d r e s s e s \r s m i
0002420 B R 0 = # 2 1 3 \t / / p r o
0002440 c e s s o r b u 376 001 \0 2 341 s \r
0002460 s m i B R 1 = # 2 1 2 \r s m
0002500 i B R 2 = # 2 1 1 \r s m i P
0002520 I R 0 = # 2 1 7 \r s m i P I
0002540 R 1 = # 2 1 6 \t / / p s e u
0002560 d o - i n s t r u c t i o n r
0002600 e g i s t e r \r s m i P I R 2
0002620 = # 2 1 5 \r s m i P I R 3 =
0002640 # 2 1 4 \r s m i C R = # 2
0002660 1 0 \t / / c o n t r o l r e g
0002700 i s t e r \r s m i P L M R =
0002720 # 4 0 \t / / p h y s i c a l / l
0002740 o g i c a l m e m o r y m o
0002760 d u l e r e g i s t e r \r s m
0003000 i C O N F R = # 4 1 \t / / m
0003020 e m o r y c o n f i g u r a t
0003040 i o n r e g i s t e r \r s 376 001
0003060 \0 230 n m i R E S R = # 4 2 \t
0003100 / / m e m o r y e r r o r r
0003120 e s e t r e g i s t e r \r ] \r
0003140 \r s t r u c t u r e R U N : \t
0003160 / / p r o c e s s o r r u n
0003200 s t a t u s \r [ \r b
0003220 l a n k b i t 8 \r r u
0003240 n n i n g b i t \t \t / / p r o
0003260 c e s s o r i s r u n n i n
0003300 g \r n o t B r e a k p o i
0003320 n t b i t \t / / n o t a t
0003340 m i c r o b r e a k p o i n t
0003360 \r l o c a l P E b i t \t
0003400 \t / / l o c a l m e m o r y
0003420 p a r i t y e r r o r \r
0003440 m a i n P E b i t \t \t / / m a
0003460 i n 376 001 \0 5 \0 m e m o r y d
0003500 a t a b u s p a r i t y e
0003520 r r o r \r ] \r \r s t r u c
0003540 t u r e Q E r r ^ 0 , 3 b y
0003560 t e \t / / m e m o r y e r r o
0003600 r r e g i s t e r ( 2 w o
0003620 r d s ) \r m a n i f e s t \t \t /
0003640 / l a y o u t a s s u m i n g
0003660 b y t e r i g h t - j u s t
0003700 i f i e d \r [ \r q e
0003720 T i m e o u t = # 4 0 \r
0003740 q e D I P = # 2 0 \r
0003760 q e A P E = # 1 0 \r q
0004000 e P B F = # 4 \r q e D
0004020 E = # 2 \r q e S E =
0004040 # 1 \r ] \r \r m a n i f e
0004060 s t \t / / p r o 376 001 \0 003 227 c e s
0004100 s o r c o n t r o l r e g i
0004120 s t e r \r [ \r c r E I C = #
0004140 1 0 0 0 0 0 \t / / e n a b l e
0004160 i n s t r u c t i o n c o n t
0004200 r o l l e d c h a n g e s \r c
0004220 r E B = # 4 0 0 0 0 \t / / e
0004240 n a b l e c h a n g e s t o
0004260 b r a n c h c o n d i t i o
0004300 n s \r c r E I M A = # 2 0 0
0004320 0 0 \t / / e n a b l e c h a n
0004340 g e s t o I M A \r c r E N P
0004360 C = # 1 0 0 0 0 \t / / e n a
0004400 b l e c h a n g e s t o N
0004420 P C \r c r N O T S S = # 4 0
0004440 0 0 \t / / d o n ' t s i n g l
0004460 e s t e p \r c r S e t R 376 001 \0
0004500 325 c u n = # 2 0 0 0 / / s
0004520 e t t h e r u n f l i p f
0004540 l o p \r c r R e s e t = # 1
0004560 0 0 0 \t / / r e s e t p r o c
0004600 e s s o r - m e m o r y i n t
0004620 e r f a c e \r c r E P I R =
0004640 # 4 0 0 \t / / e x e c u t e i
0004660 n s t r u c t i o n s f r o m
0004700 P I R r a t h e r t h a n
0004720 I M \r c r R e g T o B = #
0004740 2 0 0 \t / / p u t B R r e g
0004760 i s t e r o n p r o c e s s
0005000 o r b u s \r c r I n t O n =
0005020 # 1 0 0 \t / / e n a b l e m
0005040 i c r o - i n t e r r u p t s \r
0005060 c r S t r o b e = # 4 0 \t /
0005100 / g 376 001 \0 R 003 e n e r a t e i
0005120 n t e r p r o c e s s o r s i
0005140 g n a l \r \r / / n o r m a l v
0005160 a l u e s e n t t o C R
0005200 ( e . g . , w h e n s e t t
0005220 i n g S t r o b e ) \r c r N o
0005240 r m a l = c r E I C + c r E
0005260 B + c r E I M A + c r E N P C +
0005300 c r N O T S S + c r I n t O n \r
0005320 ] \r \r s t r u c t u r e P L M
0005340 R : \t / / p h y s i c a l / l o
0005360 g i c a l m o d u l e r e g
0005400 i s t e r \r [ \r b l
0005420 a n k b i t 7 \r d i s
0005440 a b l e C o r r e c t i o n b
0005460 i t \r l o g i c a l M o d
0005500 u l e b i t 376 001 \0 354 024 3 \r
0005520 p h y s i c a l M o d u l e
0005540 b i t 3 \r q u a d r a
0005560 n t b i t 2 \r ] \r \r s
0005600 t r u c t u r e C O N F R :
0005620 / / c o n f i g u r a t i o n
0005640 r e g i s t e r \r [ \r
0005660 b l a n k b i t 4 \r
0005700 e F E R b i t \t / / e n a b
0005720 l e r e p o r t i n g o f
0005740 f a t a l e r r o r s \r
0005760 c o n f i g u r a t i o n b i
0006000 t 3 / / a d d r e s s / q
0006020 u a d r a n t m a p \r j
0006040 S E F b i t \t / / q u a d r a
0006060 n t J s i n g l e e r r o
0006100 r s f a t a l \r 376 001 \0 202
0006120 020 j P B F F b i t \t / / q u a
0006140 d r a n t J p a r i t y b
0006160 i t f a i l u r e s f a t a
0006200 l \r k S E F b i t \r
0006220 k P B F F b i t \r l S
0006240 E F b i t \r l P B F F
0006260 b i t \r m S E F b i t \r
0006300 m P B F F b i t \r
0006320 ] \r m a n i f e s t a l l S E
0006340 F = # 2 5 2 \r m a n i f e s
0006360 t a l l P B F F = # 1 2 5
0006400 \r m a n i f e s t e n a b l e
0006420 F E R = # 4 0 0 0 \r \r s t r
0006440 u c t u r e R E S R : / /
0006460 e r r o r r e s e t r e g i
0006500 s t e r ( a l l b i t s c
0006520 o 376 001 \0 221 264 m p l e m e n t e d
0006540 ) \r [ \r b l a n k
0006560 b i t 8 \r j R e s e t E
0006600 r r o r s b i t / / r e s
0006620 e t e r r o r s i n q u a
0006640 d r a n t J \r j R e s e
0006660 t Q u a d r a n t b i t /
0006700 / c o m p l e t e l y r e s e
0006720 t q u a d r a n t J \r
0006740 k R e s e t E r r o r s b i t
0006760 \r k R e s e t Q u a d r a
0007000 n t b i t \r l R e s e t
0007020 E r r o r s b i t \r l R
0007040 e s e t Q u a d r a n t b i t
0007060 \r m R e s e t E r r o r s
0007100 b i t \r m R e s e t Q u
0007120 a d r a n t 376 001 \0 374 033 b i t \r
0007140 ] \r m a n i f e s t a l
0007160 l R e s e t E r r o r s = #
0007200 1 2 5 \r m a n i f e s t a l l
0007220 R e s e t Q u a d r a n t =
0007240 # 2 5 2 \r \r s t r u c t u r e
0007260 S M I E r r : / / S M I e
0007300 r r o r r e g i s t e r \r
0007320 [ \r b l a n k b i t
0007340 1 1 \r c o m b b i t \t /
0007360 / c o m m u n i c a t i o n s
0007400 t r o b e B ( u n u s e d )
0007420 \r c o m a b i t \t / / c
0007440 o m m u n i c a t i o n s t r
0007460 o b e A \r n f e r b i
0007500 t \t / / n o n - f a t a l e r
0007520 r o r \r f e r 376 001 \0 344 216
0007540 b i t \t / / f a t a l e r r o
0007560 r \r b l a n k b i t \r
0007600 ] \r m a n i f e s t s m i
0007620 E r r o r M a s k = # 1 2
0007640 / / b i t s t h a t w e
0007660 c a r e a b o u t ( c o m a
0007700 , f e r ) \r \r \r \r / / - - -
0007720 - - - - - - - - - - - - - - - -
*
0010020 - - - - - - - - \r l e t M e m
0010040 B a s h ( ) b e \r / / - - -
0010060 - - - - - - - - - - - - - - - -
*
0010140 376 001 \0 274 1 - - - - - - - - - - -
0010160 - - - - - - - - - - - - - \r [ \r
0010200 W s ( " M e m B a s h o f J
0010220 u n e 4 , 1 9 7 8 " ) \r \r /
0010240 / l o a d t h e s p e c i a
0010260 l R a m m i c r o c o d e \r
0010300 R a m I m a g e ! 0 = # 0 7
0010320 7 3 7 6 / / r u n t a s k
0010340 s 0 , 1 0 , 1 7 i n R
0010360 a m \r l e t r e s = L o a
0010400 d R a m ( R a m I m a g e , t
0010420 r u e ) / / l o a d a n d
0010440 b o o t \r i f r e s l s
0010460 0 t h e n \r W s ( " * n
0010500 F a i l e d t o l o a d A
0010520 l t o R a m - - R a m o
0010540 r E t h 376 001 \0 G 203 e r n e t
0010560 b o a r d b r o k e n " ) \r i
0010600 f r e s g r 0 t h e n
0010620 W s ( " * n M i c r o c o d e
0010640 c o n s t a n t s w r o n g ,
0010660 b e w a r e ! " ) \r s a v e d
0010700 U s e r F i n i s h P r o c =
0010720 @ l v U s e r F i n i s h P r
0010740 o c \r @ l v U s e r F i n i s h
0010760 P r o c = M y F i n i s h P
0011000 r o c \r \r W s ( " * n A l t o
0011020 M I S t a t e A d d r e s
0011040 s M a x c S t a t e
0011060 M A R K M A R
0011100 M e m o r y S t a t e "
0011120 ) \r \r l e t d s = v e c
0011140 1 5 0 0 0 \r d s = 376 001 \0 006 311
0011160 C r e a t e D i s p l a y S t r
0011200 e a m ( 3 0 , d s , 1 5 0 0
0011220 0 ) \r S h o w D i s p l a y S t
0011240 r e a m ( d s ) \r d s p = d
0011260 s \r \r O u t p u t S M I T e s t
0011300 ( # 1 6 ) \r C o n f i g u r e M
0011320 e m o r y ( 0 , 0 ) \r \r l e t
0011340 v = v e c 2 ; m a x c
0011360 N u m b e r = v \r l e t v
0011400 = v e c 1 ; t e s t A d
0011420 r = v ; Z e r o ( t e s t
0011440 A d r , 2 ) \r A l t o O p e r
0011460 a t i o n = M e m R e a d \r
0011500 N e x t A d r = I n c r e m
0011520 e n t A d r \r C o m m a n d ( )
0011540 \r ] \r \r \r / / - - - - - - - 376
0011560 001 \0 225 346 - - - - - - - - - - - -
0011600 - - - - - - - - - - - - - - - -
*
0011660 - - - - - - - - \r a n d C o m
0011700 m a n d ( ) b e \r / / - - -
0011720 - - - - - - - - - - - - - - - -
*
0012020 - - - - - - - - \r [ \r W s ( " *
0012040 n * * " ) \r l e t c h a r =
0012060 G e t K e y s ( ) \r s w i t c
0012100 h o n c h a r i n t o \r
0012120 [ \r c a s e $ G : c
0012140 a s e $ g : \r [ \r
0012160 376 001 \0 W A i f C o
0012200 n f i r m ( " G o " ) t h e n
0012220 D o T e s t ( ) \r
0012240 e n d c a s e \r ] \r
0012260 c a s e $ A : c a s e
0012300 $ a : \r [ \r
0012320 W s ( " A l t o o p e r
0012340 a t i o n = " ) \r
0012360 s w i t c h o n G e t K e y
0012400 s ( ) i n t o \r
0012420 [ \r c a s
0012440 e $ R : c a s e $ r : \r
0012460 [ W s (
0012500 " R e a d " ) ; A l t o O p e
0012520 r a t i o n = M e m R e a d
0012540 ; e n d c a s e ] \r
0012560 c a s e 376 001 \0 344 E $
0012600 W : c a s e $ w : \r
0012620 [ W s ( " W r
0012640 i t e " ) ; A l t o O p e r a
0012660 t i o n = M e m W r i t e ;
0012700 e n d c a s e ] \r
0012720 c a s e $ M : c a s
0012740 e $ m : \r
0012760 [ W s ( " M o d i f y " )
0013000 ; A l t o O p e r a t i o n
0013020 = M e m R M W ; e n d c a s
0013040 e ] \r c a s
0013060 e $ ? : \r
0013100 [ W s ( " ? R e a d ,
0013120 W r i t e , M o d i f y " ) ;
0013140 l o o p ] \r
0013160 d e f a u l t : \r 376 001
0013200 \0 235 0 [ O o p
0013220 ( ) ; l o o p ] \r
0013240 ] \r W s ( "
0013260 , a d d r e s s s e q u e n
0013300 c e = " ) \r s w
0013320 i t c h o n G e t K e y s ( )
0013340 i n t o \r [
0013360 \r c a s e $
0013400 S : c a s e $ s : \r
0013420 [ W s ( " S e
0013440 q u e n t i a l " ) ; N e x t
0013460 A d r = I n c r e m e n t A
0013500 d r ; e n d c a s e ] \r
0013520 c a s e $ R :
0013540 c a s e $ r : \r
0013560 [ \r
0013600 376 001 \0 021 304 W s ( " R e p e
0013620 a t a t a d d r e s s : "
0013640 ) \r t e
0013660 s t G e t N u m b e r ( ) e
0013700 q $ * n & n u m b e r T y
0013720 p e d \r
0013740 i f s o M o v e B l o c
0013760 k ( t e s t A d r , m a x c N
0014000 u m b e r + 1 , 2 ) \r
0014020 i f n o t
0014040 [ O o p ( ) ; l o o p ]
0014060 \r N e x
0014100 t A d r = N o o p \r
0014120 e n d c a s e \r
0014140 ] \r
0014160 c a s e $ ? : \r
0014200 376 001 \0 253 *
0014220 [ W s ( " ? S e q u e n t
0014240 i a l , R e p e a t " ) ; l
0014260 o o p ] \r d
0014300 e f a u l t : \r
0014320 [ O o p ( ) ; l o o
0014340 p ] \r ] \r
0014360 e n d c a s e \r
0014400 ] \r c a s e $ M :
0014420 c a s e $ m : \r
0014440 [ \r W s ( " M a x c
0014460 s t a r t a d d r e s s =
0014500 " ) \r t e s t G
0014520 e t N u m b e r ( ) e q $ *
0014540 n & n u m b e r T y p e d \r
0014560 i f s o s t
0014600 a r t A d r = a l t o 376 001 \0
0014620 255 234 N u m b e r \r
0014640 i f n o t O o p ( ) \r
0014660 e n d c a s e \r
0014700 ] \r c a s e $ D :
0014720 c a s e $ d : \r [
0014740 \r i f C o n f i r
0014760 m ( d i s p l a y E n a b l e d
0015000 ? \r " D o n ' t
0015020 d i s p l a y e r r o r s " ,
0015040 " D i s p l a y e r r o r s
0015060 " ) t h e n \r
0015100 d i s p l a y E n a b l e d
0015120 = n o t d i s p l a y E n a
0015140 b l e d \r e n d c a
0015160 s e \r ] \r c a
0015200 s e $ Z : c a s e $ z : \r
0015220 376 001 \0 f 362 [ \r
0015240 i f C o n f i r m ( " Z
0015260 a p m e m o r y " ) t h e n
0015300 R e s e t M e m o r y ( ) \r
0015320 e n d c a s e \r
0015340 ] \r c a s e $ Q :
0015360 c a s e $ q : \r
0015400 [ \r i f C o n f i
0015420 r m ( " Q u i t " ) t h e n
0015440 f i n i s h \r e n d
0015460 c a s e \r ] \r
0015500 c a s e $ ? : \r [
0015520 \r W s ( " ? A l t
0015540 o o p e r a t i o n , M a x
0015560 c s t a r t a d r , G o ,
0015600 D i s p l a y , Z a p , Q
0015620 u i t " ) \r 376 001 \0 323 351
0015640 e n d c a s e \r ]
0015660 \r c a s e $ * n : c a
0015700 s e $ * s : \r e n
0015720 d c a s e \r d e f a u l t
0015740 : \r O o p ( c h a r
0015760 ) \r ] \r ] r e p e a t \r
0016000 \r \r / / - - - - - - - - - - -
0016020 - - - - - - - - - - - - - - - -
*
0016120 \r a n d D o T e s t ( ) b e
0016140 \r / / - - - - - - - - - - - -
0016160 - - - - - - - - - - - - - - - -
*
0016220 - - - - - - - - - - - - 376 001 \0 332
0016240 243 - - - - - - - - - - - - - - -
0016260 - - - - \r [ \r W s ( " * n T e s
0016300 t r u n n i n g , h i t a
0016320 n y k e y t o s t o p " )
0016340 \r S t a r t M a x c ( s t a r t
0016360 A d r ) \r [ \r Z e r
0016400 o ( m a x c N u m b e r , 3 )
0016420 \r a l t o C o d e = A
0016440 l t o O p e r a t i o n ( t e s
0016460 t A d r , m a x c N u m b e r
0016500 ) \r l e t s m i E r r
0016520 = I n p u t S M I E r r o r s
0016540 ( ) \r i f a l t o C o d
0016560 e n e 0 % s m i E r r <
0016600 < S M I E r r . f e r t h e n
0016620 \r [ \r t
0016640 e 376 001 \0 024 ` s t d i s p l a y
0016660 E n a b l e d \r
0016700 i f s o D i s p l a y E r r
0016720 o r s ( ) \r i
0016740 f n o t P u t s ( d s p , $
0016760 ? ) \r i f s m i E
0017000 r r < < S M I E r r . f e r t
0017020 h e n S t a r t M a x c ( s t
0017040 a r t A d r ) \r ] \r
0017060 N e x t A d r ( ) \r
0017100 ] r e p e a t w h i l e E n
0017120 d o f s ( k e y s ) \r S t o p M
0017140 a x c F o r c e f u l l y ( ) \r
0017160 G e t s ( k e y s ) \r ] \r \r \r /
0017200 / - - - - - - - - - - - - - -
0017220 - - - - - - - - - - - - - - - -
0017240 - - - - - - 376 001 \0 233 246 - - - - -
0017260 - - - - - - - - - - - - - - - -
*
0017320 - - \r a n d I n c r e m e n t
0017340 A d r ( ) b e \r / / - - - -
0017360 - - - - - - - - - - - - - - - -
*
0017460 - - - - - - - \r [ \r t e s t A d
0017500 r ! 1 = ( t e s t A d r ! 1
0017520 + # 1 0 0 0 0 ) & # 1 7 0 0
0017540 0 0 \r i f t e s t A d r ! 1
0017560 e q 0 t h e n t e s t A d
0017600 r ! 0 = ( t e s t A d r ! 0
0017620 + 1 ) & # 3 7 7 7 7 \r ] \r \r
0017640 \r / / - - - - - - - 376 001 \0 [ 235
0017660 - - - - - - - - - - - - - - - -
*
0017760 - - - - \r a n d D i s p l a y
0020000 2 0 B i t ( s t r , a d r ) b
0020020 e P r i n t O c t a l F i e l
0020040 d ( s t r , a d r , 0 , 1 9 ) \r
0020060 / / - - - - - - - - - - - - -
0020100 - - - - - - - - - - - - - - - -
*
0020160 - - - - - - - - - - - - - - \r \r
0020200 / / - - - - - - - - - - - - -
0020220 - - - - - - - - - - - - - - - -
*
0020260 376 001 \0 * p - - - - - - - - - - -
0020300 - - - - - - - - - - - - - - - -
0020320 - - - \r a n d D i s p l a y 3
0020340 6 B i t ( s t r , a d r ) b e
0020360 \r / / - - - - - - - - - - - -
0020400 - - - - - - - - - - - - - - - -
*
0020460 - - - - - - - - - - - - - - - \r
0020500 [ \r P r i n t O c t a l F i e l
0020520 d ( s t r , a d r , 0 , 1 7 ) \r
0020540 P u t s ( s t r , $ * s ) \r P r
0020560 i n t O c t a l F i e l d ( s t
0020600 r , a d r , 1 8 , 3 5 ) \r ] \r \r
0020620 / / - - - - - - - - - - - - -
0020640 - - - - - - - - - - - - - - - -
0020660 - - - - - 376 001 \0 M 336 - - - - - -
0020700 - - - - - - - - - - - - - - - -
*
0020740 - - - \r a n d D i s p l a y 4
0020760 0 B i t ( s t r , a d r ) b e
0021000 \r / / - - - - - - - - - - - -
0021020 - - - - - - - - - - - - - - - -
*
0021100 - - - - - - - - - - - - - - - \r
0021120 [ \r t e s t ( a d r ! 2 &
0021140 # 7 4 0 0 ) n e 0 \r i
0021160 f s o P r i n t O c t a l F i
0021200 e l d ( s t r , a d r , 3 6 , 3
0021220 9 ) \r i f n o t W s s (
0021240 s t r , " " ) \r P u t s ( s
0021260 t r , $ * s ) \r D i 376 001 \0 271 " s
0021300 p l a y 3 6 B i t ( s t r , a d
0021320 r ) \r ] \r \r \r / / - - - - - -
0021340 - - - - - - - - - - - - - - - -
*
0021440 - - - - - \r a n d P r i n t O
0021460 c t a l F i e l d ( s t r , a d
0021500 r , f i r s t B i t , l a s t B
0021520 i t ) b e \r / / - - - - - -
0021540 - - - - - - - - - - - - - - - -
*
0021640 - - - - - \r [ \r l e t r =
0021660 ( l a s t B i t - f i r s t B 376
0021700 001 \0 u 207 i t ) r e m 3 \r f i
0021720 r s t B i t = f i r s t B i
0021740 t + r \r l e t m a s k = (
0021760 2 l s h i f t r ) - 1 \r
0022000 [ \r l e t q , r =
0022020 f i r s t B i t r s h i f t
0022040 4 , f i r s t B i t & # 1 7 \r
0022060 P u t s ( s t r , $ 0 +
0022100 ( ( a d r ! ( q - 1 ) l s h
0022120 i f t ( 1 + r ) + \r
0022140 a d r ! q r s h i f t ( 1 5
0022160 - r ) ) & m a s k ) ) \r
0022200 f i r s t B i t = f i r s
0022220 t B i t + 3 \r m a s k =
0022240 7 \r ] r e p e a t u n
0022260 t i l f i r s t B i t g r
0022300 l a s t 376 001 \0 222 L B i t \r ] \r \r
0022320 \r / / - - - - - - - - - - - -
0022340 - - - - - - - - - - - - - - - -
*
0022420 - - - - - - - - - - - - - - - \r
0022440 a n d D i s p l a y E r r o r
0022460 s ( ) b e \r / / - - - - - -
0022500 - - - - - - - - - - - - - - - -
*
0022600 - - - - - \r [ \r P u t s ( d s p
0022620 , $ * n ) \r W s ( s e l e c t
0022640 o n a l t o C o d e i n t o
0022660 \r [ \r c a s e 0 :
0022700 " 376 001 \0 M k
0022720 " \r c a s e 1
0022740 : " M e m b u s P E
0022760 " \r c a s e 2 : \r
0023000 c a s e 3 : " T i m e d
0023020 o u t " \r d e f
0023040 a u l t : " I m p o s s i b l
0023060 e " \r ] ) \r W s ( "
0023100 " ) \r D i s p l a y 2 0 B i
0023120 t ( d s p , t e s t A d r ) \r
0023140 W s ( " " ) \r l e t s t a
0023160 t e = M a x c S t a t e ( )
0023200 \r W s ( s e l e c t o n s t a
0023220 t e i n t o \r [ \r
0023240 c a s e s t a t e R u n n i n
0023260 g : " R u n n i n g
0023300 " \r c a s e s 376 001
0023320 \0 364 [ t a t e B r e a k p o i n
0023340 t : " B r e a k p o i n t
0023360 " \r c a s e s t a t e L
0023400 o c a l M e m P E : " L o c a
0023420 l m e m P E " \r c a s
0023440 e s t a t e M a i n B u s P E
0023460 : " M e m b u s P E
0023500 " \r c a s e s t a t e H
0023520 a l t e d : " H a l t
0023540 e d " \r ] ) \r
0023560 W s ( " " ) \r i f s t a t
0023600 e e q s t a t e R u n n i n
0023620 g t h e n S t o p M a x c F
0023640 o r c e f u l l y ( ) \r l e t
0023660 m a x c D a t a = v e c 2
0023700 \r E x e c u t e M i c r o I n s
0023720 t r u 376 001 \0 023 + c t i o n ( t
0023740 a b l e / / B _ M A R \r
0023760 [ # 0 4 0 1 0 2 ; # 0 7
0024000 7 5 4 6 ; # 1 2 0 0 0 1 ; #
0024020 0 0 0 0 0 0 ; # 0 0 3 4 0 0
0024040 ] ) \r R e a d B u s ( m a x c D
0024060 a t a ) \r D i s p l a y 2 0 B i
0024100 t ( d s p , m a x c D a t a +
0024120 1 ) \r W s ( " " ) \r E x e c
0024140 u t e M i c r o I n s t r u c t
0024160 i o n ( t a b l e / / B
0024200 _ K M A R \r [ # 0 4 0 1
0024220 0 2 ; # 0 7 7 5 4 6 ; # 1 6
0024240 0 0 0 1 ; # 0 0 0 0 0 0 ; #
0024260 0 0 3 4 0 0 ] ) \r R e a d B u
0024300 s ( m a x c D a t a ) \r D i s p
0024320 l a y 2 0 B i t 376 001 \0 c i ( d s
0024340 p , m a x c D a t a + 1 ) \r i
0024360 f s t a t e e q s t a t e
0024400 R u n n i n g t h e n S t a
0024420 r t M a x c ( ) \r P u t s ( d s
0024440 p , $ * s ) \r \r l e t q E r
0024460 r = v e c 1 \r q E r r ! 0
0024500 = I n p u t S M I ( s m i J
0024520 K E R R S ) \r q E r r ! 1 =
0024540 I n p u t S M I ( s m i L M E R
0024560 R S ) \r O u t p u t S M I ( s m
0024600 i R E S R , a l l R e s e t E
0024620 r r o r s ) \r f o r i = 0
0024640 t o 5 d o \r [ \r
0024660 l e t m a s k = # 4 0 1
0024700 l s h i f t i \r i f
0024720 ( q E r r ! 0 & m a s 376 001 \0
0024740 n 301 k ) n e 0 % ( q E r
0024760 r ! 1 & m a s k ) n e 0
0025000 t h e n \r [ \r
0025020 W s ( s e l e c t o n
0025040 i i n t o \r
0025060 [ \r c a s e
0025100 0 : " S E : " \r
0025120 c a s e 1 : " D E
0025140 : " \r c a s
0025160 e 2 : " P B F : " \r
0025200 c a s e 3 : "
0025220 A P E : " \r
0025240 c a s e 4 : " D I P :
0025260 " \r c a s e
0025300 5 : " T i m e o u t : " \r
0025320 ] ) \r
0025340 376 001 \0 236 q f o r q = 0
0025360 t o 3 d o \r
0025400 i f ( q E r r > > Q E r r
0025420 ^ q & m a s k ) n e 0
0025440 t h e n P u t s ( d s p , $ J
0025460 + q ) \r ] \r ]
0025500 \r ] \r \r \r / / - - - - - - - -
0025520 - - - - - - - - - - - - - - - -
*
0025620 - - - \r a n d S t a r t M a x
0025640 c ( m i c r o A d r ; n u m a
0025660 r g s n a ) b e \r / / - -
0025700 - - - - - - - - - - - - - - - -
*
0025740 - - - - - - - 376 001 \0 \0 273 - - - -
0025760 - - - - - - - - - - - - - - - -
0026000 - - - - - - - - - - - - - - \r /
0026020 / s t a r t M a x c r u n n
0026040 i n g a t t h e s p e c i
0026060 f i e d m i c r o - a d d r e
0026100 s s , o r j u s t \r / / r e
0026120 s u m e i t i f m i c r o
0026140 A d r i s n o t s p e c i
0026160 f i e d \r [ \r i f n a g r
0026200 0 t h e n \r [ \r l
0026220 e t m a x c D a t a = v e
0026240 c 3 \r m a x c D a t a !
0026260 0 = 0 \r m a x c D a t
0026300 a ! 1 = m i c r o A d r r
0026320 s h i f t 4 \r m a x c D
0026340 a t a ! 2 = m i c r 376 001 \0 213
0026360 251 o A d r l s h i f t 1 2 \r
0026400 L o a d B u s ( m a x c D
0026420 a t a ) \r E x e c u t e M
0026440 i c r o I n s t r u c t i o n (
0026460 / / N P C _ B R , E N P
0026500 C \r t a b l e [ # 0
0026520 4 0 1 0 2 ; # 0 7 7 5 4 6 ;
0026540 # 0 0 0 0 0 0 ; # 0 2 0 0 0 0
0026560 ; # 1 1 3 6 0 0 ] ) \r
0026600 m a x c D a t a ! 2 = ( m a
0026620 x c D a t a ! 2 + # 1 0 0 0 0 )
0026640 & # 1 7 0 0 0 0 \r i f
0026660 m a x c D a t a ! 2 e q 0
0026700 t h e n m a x c D a t a ! 1
0026720 = m a x c D a t a ! 1 +
0026740 1 \r L o a d B u s ( m a x
0026760 c 376 001 \0 201 037 D a t a ) \r E
0027000 x e c u t e M i c r o I n s t r
0027020 u c t i o n ( / / N P C _
0027040 B R , E N P C , E I M A \r
0027060 t a b l e [ # 0 4 0 1
0027100 0 2 ; # 0 7 7 5 4 6 ; # 0 0
0027120 0 0 0 0 ; # 0 2 0 0 0 0 ; #
0027140 1 3 3 6 0 0 ] ) \r E x e
0027160 c u t e M i c r o I n s t r u c
0027200 t i o n ( / / I R E T ,
0027220 I N H I N T \r t a b l e
0027240 [ # 0 4 0 1 0 2 ; # 0 7 7
0027260 5 4 6 ; # 0 0 0 1 5 2 ; # 0
0027300 0 0 0 0 0 ; # 1 0 3 4 0 0 ]
0027320 ) \r ] \r E x e c u t e M i
0027340 c r o I n s t r u c t i o n (
0027360 / / W R 376 001 \0 022 324 E S T A R
0027400 T , K W R E S T A R T \r t a
0027420 b l e [ # 0 4 0 1 0 2 ; #
0027440 0 7 7 5 4 6 ; # 0 0 0 1 1 0 ;
0027460 # 1 6 0 0 0 0 ; # 1 0 3 4 0
0027500 0 ] ) \r E x e c u t e M i c r
0027520 o I n s t r u c t i o n ( /
0027540 / F R Z B A L U B C , E I C
0027560 , E B , E N P C , E I M A
0027600 , N O T S S , S t r o b e \r
0027620 t a b l e [ # 0 4 0 1 0 2
0027640 ; # 0 7 7 5 4 6 ; # 0 0 0 1
0027660 5 5 ; # 0 0 0 0 0 0 ; # 1 7
0027700 7 1 4 0 ] ) \r I n p u t S M I
0027720 E r r o r s ( ) \r ] \r \r \r / /
0027740 - - - - - - - - - - - - - - - -
0027760 - - - - - - - - - - - 376 001 \0 L 2
0030000 - - - - - - - - - - - - - - - -
*
0030060 \r a n d S t o p M a x c F o r
0030100 c e f u l l y ( ) b e \r / /
0030120 - - - - - - - - - - - - - - - -
*
0030220 - - - - - - - - - - - \r O
0030240 u t p u t S M I ( s m i C R , n
0030260 o t ( c r E I C + c r E B + c
0030300 r E I M A + c r E N P C + c r I
0030320 n t O n ) ) \r \r \r / / - - - -
0030340 - - - - - - - - - - - - - - - -
*
0030400 376 001 \0 [ 346 - - - - - - - - - - -
0030420 - - - - - - - - - - - - - - - -
0030440 - - - - - - - - - - - - \r a n d
0030460 M a x c S t a t e ( ) = v
0030500 a l o f \r / / - - - - - - - -
0030520 - - - - - - - - - - - - - - - -
*
0030620 - - - \r [ \r l e t r u n R e g
0030640 = I n p u t S M I ( s m i R
0030660 U N ) \r i f r u n R e g < < R
0030700 U N . r u n n i n g r e s u l
0030720 t i s s t a t e R u n n i n g
0030740 \r u n l e s s r u n R e g < <
0030760 R U N . n o t B r e a k p o i n
0031000 t r e s 376 001 \0 T 357 u l t i s
0031020 s t a t e B r e a k p o i n t \r
0031040 i f r u n R e g < < R U N . l
0031060 o c a l P E r e s u l t i s
0031100 s t a t e L o c a l M e m P E \r
0031120 i f r u n R e g < < R U N . m
0031140 a i n P E r e s u l t i s s
0031160 t a t e M a i n B u s P E \r r e
0031200 s u l t i s s t a t e H a l t
0031220 e d \r ] \r \r \r / / - - - - - -
0031240 - - - - - - - - - - - - - - - -
*
0031340 - - - - - \r a n d R e s e t M
0031360 e m o r y ( ) b e \r / / - -
0031400 - - - - - - - - - - 376 001 \0 | 210 -
0031420 - - - - - - - - - - - - - - - -
*
0031500 - - - - - - - - - - - - - - \r [
0031520 \r O u t p u t S M I ( s m i R E
0031540 S R , 0 ) / / f u l l r
0031560 e s e t \r C o n f i g u r e M e
0031600 m o r y ( 0 , 0 ) \r ] \r \r \r /
0031620 / - - - - - - - - - - - - - -
0031640 - - - - - - - - - - - - - - - -
*
0031720 - - - - - - - - - - - - - \r a n
0031740 d C o n f i g u r e M e m o r
0031760 y ( m a p , f a t a l i t y )
0032000 b e \r / / - - - - - - - - - 376
0032020 001 \0 { 266 - - - - - - - - - - - -
0032040 - - - - - - - - - - - - - - - -
*
0032120 - - - - - - \r / / s e t u p t
0032140 h e m e m o r y s y s t e m
0032160 w i t h t h e l o g i c a
0032200 l - p h y s i c a l m a p p i
0032220 n g \r / / d e f i n e d b y
0032240 " m a p " , w h i c h i s
0032260 i n t h e f o l l o w i n g
0032300 f o r m ( s e e M a x c
0032320 1 1 . 6 ) : \r / / \t B 0 : \t d i
0032340 s a b l e e r r o r c o r r
0032360 e c t i o n f o r m o d u l
0032400 e 0 \r / / \t B 1 - 3 : \t l o g
0032420 i c a l 376 001 \0 ` 257 m o d u l e
0032440 a s s i g n m e n t f o r
0032460 m o d u l e 0 \r / / \t B 4 : \t
0032500 d i s a b l e e r r o r c o
0032520 r r e c t i o n f o r m o d
0032540 u l e 1 \r / / \t e t c . \r / /
0032560 " f a t a l i t y " d e t e r
0032600 m i n e s w h e t h e r S E
0032620 a n d P B F a r e f a t
0032640 a l : \r / / \t B 0 : \t S E f a
0032660 t a l \r / / \t B 1 : \t P B F f
0032700 a t a l \r [ \r / / s e t s t a
0032720 n d a r d q u a d r a n t c
0032740 o n f i g u r a t i o n ( 0 )
0032760 a n d f a t a l i t y a s
0033000 s p e c i f i e d \r f a t a l
0033020 S E = ( f a t 376 001 \0 350 352 a l
0033040 i t y & # 1 0 0 0 0 0 ) n
0033060 e 0 \r f a t a l P B F = (
0033100 f a t a l i t y & # 4 0 0 0
0033120 0 ) n e 0 \r O u t p u t S M
0033140 I ( s m i C O N F R , e n a b
0033160 l e F E R + ( a l l S E F & f a
0033200 t a l S E ) + ( a l l P B F F &
0033220 f a t a l P B F ) ) \r \r / / s e
0033240 t l o g i c a l - p h y s i c
0033260 a l m a p f o r e a c h
0033300 m o d u l e i n e a c h q
0033320 u a d r a n t \r i f m a p e
0033340 q 0 t h e n m a p = #
0033360 0 4 0 1 4 2 / / s t a n d a
0033400 r d c o n f i g u r a t i o n
0033420 \r f o r m = 0 t o 376 001
0033440 \0 | 251 3 d o f o r q =
0033460 0 t o 3 d o \r [ \r
0033500 l e t p l m r = m a p
0033520 r s h i f t ( 7 - 4 * m )
0033540 / / p o s i t i o n e c a
0033560 n d l o g m o d n u m b e
0033600 r \r p l m r < < P L M R .
0033620 p h y s i c a l M o d u l e =
0033640 m \r p l m r < < P L M R
0033660 . q u a d r a n t = q \r
0033700 O u t p u t S M I P u l s e (
0033720 s m i P L M R , p l m r ) \r
0033740 ] \r O u t p u t S M I ( s m i
0033760 R E S R , a l l R e s e t E r
0034000 r o r s ) \r ] \r \r \r / / - - -
0034020 - - - - - - - - - - - - - - - -
0034040 - - - 376 001 \0 h 367 - - - - - - - -
0034060 - - - - - - - - - - - - - - - -
*
0034120 - - - - - - - - - - - - - \r a n
0034140 d G e t N u m b e r ( ) =
0034160 v a l o f \r / / - - - - - - -
0034200 - - - - - - - - - - - - - - - -
*
0034300 - - - - \r / / i n p u t s a n
0034320 o c t a l n u m b e r f r
0034340 o m t h e k e y b o a r d ,
0034360 i g n o r i n g s p a c e s
0034400 . \r / / r e t u r n s a 1 6
0034420 - b i t r e s u l t i n a
0034440 l t o N u m b e 376 001 \0 - o r a
0034460 n d a 4 0 - b i t r e s u
0034500 l t \r / / i n m a x c N u m b
0034520 e r . n u m b e r T y p e d
0034540 w i l l b e t r u e i f
0034560 f a n u m b e r w a s t
0034600 y p e d \r [ \r a l t o N u m b e
0034620 r = 0 \r Z e r o ( m a x c N
0034640 u m b e r , 3 ) \r n u m b e r T
0034660 y p e d = f a l s e \r
0034700 [ \r l e t c h a r =
0034720 G e t K e y s ( ) \r i f
0034740 c h a r e q $ * s t h e n
0034760 [ P u t s ( d s p , c h a r
0035000 ) ; l o o p ] \r i f
0035020 c h a r l s $ 0 % c h a
0035040 r g r $ 7 t h e n 376 001 \0
0035060 350 1 r e s u l t i s c h a r \r
0035100 n u m b e r T y p e d =
0035120 t r u e \r P u t s ( d s
0035140 p , c h a r ) \r a l t o N
0035160 u m b e r = a l t o N u m b
0035200 e r l s h i f t 3 + c h
0035220 a r - $ 0 \r l e t o v e
0035240 r f l o w = m a x c N u m b
0035260 e r ! 0 r s h i f t 1 3 \r
0035300 m a x c N u m b e r ! 0 =
0035320 m a x c N u m b e r ! 0 l s
0035340 h i f t 3 + m a x c N u m
0035360 b e r ! 1 r s h i f t 1 3 \r
0035400 m a x c N u m b e r ! 1
0035420 = m a x c N u m b e r ! 1 l
0035440 s h i f t 3 + m a x c N u
0035460 m b 376 001 \0 024 203 e r ! 2 r s h i
0035500 f t 1 3 \r m a x c N u m
0035520 b e r ! 2 = ( m a x c N u m
0035540 b e r ! 2 & # 0 1 0 4 0 0 )
0035560 l s h i f t 3 + \r
0035600 ( c h a r - $ 0 ) l s h i f t
0035620 1 2 + o v e r f l o w l
0035640 s h i f t 8 \r ] r e p
0035660 e a t \r ] \r \r \r / / - - - - -
0035700 - - - - - - - - - - - - - - - -
*
0036000 - - - - - - \r a n d C o n f i
0036020 r m ( p r o m p t ; n u m a r
0036040 g s n a ) = v a l o f \r /
0036060 / - - - - - 376 001 \0 201 270 - - - -
0036100 - - - - - - - - - - - - - - - -
*
0036200 - - \r [ \r i f n a g r 0
0036220 t h e n W s ( p r o m p t ) \r
0036240 W s ( " [ c o n f i r m ] "
0036260 ) \r [ \r s w i t c h
0036300 o n G e t K e y s ( ) i n t
0036320 o \r [ \r
0036340 c a s e $ Y : c a s e $ y
0036360 : c a s e $ * n : c a s e
0036400 $ . : \r [
0036420 W s ( " Y e s . " ) ; r e s u
0036440 l t i s t r u e ] \r
0036460 c a s e $ N : c 376 001 \0 k
0036500 220 a s e $ n : c a s e $ *
0036520 1 7 7 : \r [
0036540 W s ( " N o . " ) ; r e s u l
0036560 t i s f a l s e ] \r
0036600 ] \r O o p ( ) \r
0036620 ] r e p e a t \r ] \r \r \r / /
0036640 - - - - - - - - - - - - - - - -
*
0036740 - - - - - - - - - - - \r a n d
0036760 O o p ( c h a r ; n u m a r g
0037000 s n a ) b e \r / / - - - -
0037020 - - - - - - - - - - - - - - - -
*
0037100 - 376 001 \0 327 252 - - - - - - - - - -
0037120 - - - - - - - - - - - - \r [ \r i
0037140 f n a g r 0 t h e n P
0037160 u t s ( d s p , c h a r ) \r W s
0037200 ( " ? " ) \r R e s e t s ( k
0037220 e y s ) \r ] \r \r \r / / - - - -
0037240 - - - - - - - - - - - - - - - -
*
0037340 - - - - - - - \r a n d G e t K
0037360 e y s ( ) = G e t s ( k e y
0037400 s ) \r / / - - - - - - - - - -
0037420 - - - - - - - - - - - - - - - -
*
0037500 - - - - - - 376 001 \0 274 335 - - - - -
0037520 - - - - - - \r \r \r / / - - - -
0037540 - - - - - - - - - - - - - - - -
*
0037640 - - - - - - - \r a n d M y F i
0037660 n i s h P r o c ( ) b e \r / /
0037700 - - - - - - - - - - - - - - -
0037720 - - - - - - - - - - - - - - - -
*
0040000 - - - - - - - - - - - - \r [ \r @
0040020 l v U s e r F i n i s h P r o c
0040040 = s a v e d U s e r F i n i
0040060 s h P r o c \r U S e t B L V ( #
0040100 1 7 7 7 7 6 ) \r S t a 376 \0 323 177 F
0040120 r t I O ( # 1 0 0 0 0 0 ) \r ] \r
0040140 \r \r / / - - - - - - - - - - -
0040160 - - - - - - - - - - - - - - - -
*
0040260 \r a n d W s ( s t r i n g )
0040300 b e W s s ( d s p , s t r i
0040320 n g ) \r / / - - - - - - - - -
0040340 - - - - - - - - - - - - - - - -
*
0040440 - - \r 377 \0 \0 L o a d M e m B a s
0040460 h . c m \0 376 \0 : 244 v B l d r / L
0040500 / V M e m B a s h A l t I O
0040520 U t i l A T e m p l a t e L
0040540 o a d R a m M a x c A l t o C
0040560 o d e \r 377 \0 \0 D u m p M e m B a
0040600 s h . c m \0 376 \0 ? 251 004 D u m p /
0040620 c M e m B a s h . d m @ M e
0040640 m B a s h . c m @ S t o r e /
0040660 c M e m B a s h . r u n M e
0040700 m B a s h . s y m s 377 \0 \0 M e m
0040720 B a s h . c m \0 376 \0 5 005 177 M e m
0040740 B a s h . b c p l L o a d M e
0040760 m B a s h . c m D u m p M e m
0041000 B a s h . c m M e m B a s h .
0041020 c m 374
0041023