$ 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