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