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