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