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