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