$ 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