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