$ 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