$ od -c -N 50000 [_CD8_]<doradosource>ReadMB.dm!1 0000000 377 \0 \0 R e a d M B . b c p l \0 373 0000020 236 351 351 350 \0 \0 376 001 \0 025 201 / / R e 0000040 a d M B . b c p l - - R e a 0000060 d M B f i l e \r / / L a s 0000100 t m o d i f i e d J u n e 0000120 2 6 , 1 9 8 5 3 : 3 8 P 0000140 M b y R u m p h \r / / 0000160 t a k e n f r o m L o a d M 0000200 B . b c p l \r / / L a s t 0000220 m o d i f i e d J u n e 2 0000240 5 , 1 9 8 2 6 : 1 8 P M 0000260 b y T a f t \r \r g e t " S 0000300 t r e a m s . d " \r g e t " A 0000320 l t o F i l e S y s . d " \r \r e 0000340 x t e r n a l \r [ \r / / i n c 0000360 o m i n g p r o c e d u r e s 0000400 \r S e t u p R e a d P a r a m ; 0000420 R e a d P a r a m ; 376 001 \0 257 351 0000440 E v a l P a r a m \r O p e n F 0000460 i l e ; C l o s e s ; R e a 0000500 d B l o c k ; W r i t e B l o 0000520 c k ; F i l e P o s ; S e t 0000540 F i l e P o s ; G e t C o m p 0000560 l e t e F a \r W s ; G e t s ; 0000600 P u t s ; R e s e t s ; R 0000620 e a d L e a d e r P a g e ; T 0000640 r u n c a t e D i s k S t r e a 0000660 m \r P u t T e m p l a t e ; E 0000700 n q u e u e \r Z e r o ; M o v 0000720 e B l o c k ; U s c ; C a l 0000740 l S w a t ; R e a d C a l e n 0000760 d a r ; A l l o c a t e \r \r / 0001000 / i n c o m i n g s t a t i 0001020 c s \r k e y s ; d s p ; s y 0001040 376 001 \0 302 { s Z o n e \r ] \r \r \r s 0001060 t r u c t u r e M B N a m e 0001100 ^ 0 , 0 b y t e / / t e 0001120 r m i n a t e s o n n u l l 0001140 b y t e \r s t r u c t u r e 0001160 S t r i n g [ l e n g t h 0001200 b y t e ; c h a r ^ 1 , 1 0001220 b y t e ] \r \r / / - - - - - - 0001240 - - - - - - - - - - - - - - - - * 0001340 - - - - - - \r s t r u c t u r e 0001360 M B : \t \t / / b l o c k f 0001400 o r m a t i n M B f i l e 0001420 \r / / - - - - - - - - - - - - - 0001440 - - - - - 376 001 \0 237 264 - - - - - - 0001460 - - - - - - - - - - - - - - - - * 0001540 - - - - \r [ \r w o r d 0 w o r 0001560 d = \r [ \r b l a n 0001600 k b y t e \t \t / / u s e d 0001620 i n M i d a s M B f i l e 0001640 s , b u t n o t i n n o 0001660 r m a l o n e s \r t y p 0001700 e b y t e \t \t / / b l o c k 0001720 t y p e \r ] \r d a t a : 0001740 \r [ \r s o u r c e L 0001760 i n e w o r d \t / / s o u r 0002000 c e l i n e n u m b e r \r 0002020 v a l u e ^ 0 , 0 w o r 0002040 d \t / / l e f t - 376 001 \0 224 371 a 0002060 d j u s t e d d a t a \r 0002100 ] = \r m e m o r y : \r [ 0002120 \r m e m o r y N u m w o 0002140 r d \t / / m e m o r y n u m 0002160 b e r \r l o c a t i o n 0002200 w o r d \t / / f i r s t l o 0002220 c a t i o n i n m e m o r y 0002240 \r ] = \r f i x u p : \r 0002260 [ \r m e m o r y N u m 0002300 w o r d \t / / m e m o r y 0002320 n u m b e r \r l o c a t i 0002340 o n w o r d \t / / l o c a t 0002360 i o n i n m e m o r y \r 0002400 f i r s t B i t b y t e \t / 0002420 / f i e l d t o b e s t 0002440 o r e d i n t o \r l a 376 0002460 001 \0 331 347 s t B i t b y t e \r 0002500 v a l u e w o r d \t \t / / 0002520 v a l u e t o b e s t o 0002540 r e d \r ] = \r m e m o r 0002560 y N a m e : \r [ \r m 0002600 e m o r y N u m w o r d \t / / 0002620 m e m o r y n u m b e r \r 0002640 w i d t h w o r d \t \t / / 0002660 m e m o r y w i d t h \r 0002700 n a m e @ M B N a m e \t \t / 0002720 / m e m o r y n a m e \r 0002740 ] = \r a d d r e s s : \r 0002760 [ \r m e m o r y N u m 0003000 w o r d \t / / m e m o r y n 0003020 u m b e r \r v a l u e w 0003040 o r d \t \t / / a d d r e s s 0003060 v a l u 376 001 \0 b 265 e \r n a 0003100 m e @ M B N a m e \t \t / / a 0003120 d d r e s s s y m b o l n a 0003140 m e \r ] = \r u n d e f i 0003160 n e d : \r [ \r m e m 0003200 o r y N u m w o r d \t / / m 0003220 e m o r y n u m b e r \r 0003240 l o c a t i o n w o r d \t / / 0003260 l o c a t i o n i n m e m 0003300 o r y \r f i r s t B i t 0003320 b y t e \t / / f i e l d t o 0003340 b e s t o r e d i n t o \r 0003360 l a s t B i t b y t e \r 0003400 n a m e @ M B N a m e \t 0003420 \t / / e x t e r n a l s y m 0003440 b o l n a m e \r ] \r ] \r 0003460 \r m a n i f e s t 376 001 \0 306 021 \r [ 0003500 \r / / b l o c k t y p e s \r 0003520 m b E n d = 0 \t \t / / e n 0003540 d o f M B f i l e \r m b D 0003560 a t a = 1 \t \t / / s t o r 0003600 e m e m o r y d a t a a n 0003620 d i n c r e m e n t l o c a 0003640 t i o n \r m b M e m o r y = 0003660 2 \t \t / / s e t m e m o r y 0003700 n u m b e r a n d l o c a 0003720 t i o n \r m b F i x u p = 3 0003740 \t \t / / f o r w a r d r e f 0003760 e r e n c e f i x u p \r m b M 0004000 e m o r y N a m e = 4 \t / / 0004020 c o r r e l a t e m e m o r 0004040 y n a m e a n d n u m b e 0004060 r \r m b A d d r e s s = 376 001 0004100 \0 h _ 5 \t \t / / d e f i n e 0004120 a d d r e s s s y m b o l \r m 0004140 b U n d e f i n e d = 6 \t \t 0004160 / / e x t e r n a l r e f e 0004200 r e n c e \r \r / / b l o c k 0004220 l e n g t h s \r l e n M B D a t 0004240 a = o f f s e t M B . d a 0004260 t a . v a l u e / 1 6 / / 0004300 + s i z e o f v a l u e \r 0004320 l e n M B M e m o r y = o f 0004340 f s e t M B . m e m o r y . l 0004360 o c a t i o n / 1 6 + 1 \r l e 0004400 n M B F i x u p = o f f s e 0004420 t M B . f i x u p . v a l u e 0004440 / 1 6 + 1 \r l e n M B M e m o 0004460 r y N a m e = o f f s e t 0004500 M B . 376 001 \0 S 032 m e m o r y N a 0004520 m e . n a m e / 1 6 / / + 0004540 s i z e o f n a m e \r l e 0004560 n M B A d d r e s s = o f f 0004600 s e t M B . a d d r e s s . n 0004620 a m e / 1 6 / / + s i z 0004640 e o f n a m e \r l e n M B U 0004660 n d e f i n e d = o f f s e 0004700 t M B . u n d e f i n e d . n 0004720 a m e / 1 6 / / + s i z 0004740 e o f n a m e \r \r m a x M e 0004760 m o r y N u m = 5 0 \r m a x 0005000 L e n N a m e = 1 2 7 \r ] \r 0005020 \r / / - - - - - - - - - - - - - 0005040 - - - - - - - - - - - - - - - - * 0005100 - - - - - - - - 376 001 \0 \f 347 - - - 0005120 - - - - - - - - - - - - - - - - 0005140 - - - - \r s t r u c t u r e I 0005160 M : \t \t / / I M w o r d , 0005200 i n M B f i l e o n l y \r 0005220 / / - - - - - - - - - - - - - - 0005240 - - - - - - - - - - - - - - - - * 0005320 - - - - - - - - - - - - - - \r [ 0005340 \r w o r d 0 w o r d = \r 0005360 [ R S T K b i t 4 ; A 0005400 L U F b i t 4 ; B S E L 0005420 b i t 3 ; L C b i t 3 ; 0005440 A S E L 0 1 b i t 2 ] 0005460 = \r [ R S T K 0 b i t 0005500 1 ; r e s t 0 b i t 376 001 \0 0005520 q W 1 5 ] \r w o r d 1 w o 0005540 r d = \r [ A S E L 2 0005560 b i t 1 ; B L K b i t 1 0005600 ; F F b i t 8 ; J C N 0 0005620 5 b i t 6 ] = \r [ 0005640 A S E L 2 B L K b i t 2 ; 0005660 r e s t 1 b i t 1 4 ] \r 0005700 w o r d 2 w o r d = \r 0005720 [ J C N 6 7 b i t 2 ; P 0005740 E 0 2 0 b i t 1 ; P E 2 1 0005760 3 1 b i t 1 ; b l a n k 0006000 b i t 1 2 ] \r w o r d 3 w 0006020 o r d = \r [ b l a n k 0006040 b i t 4 ; a b s o l u t e 0006060 A d d r b i t 1 2 ] \r ] \r 0006100 \r / / - - - - - - - - - - - - - 0006120 - - 376 001 \0 334 # - - - - - - - - - 0006140 - - - - - - - - - - - - - - - - * 0006220 - - - - \r s t r u c t u r e I 0006240 F U M : \t \t / / I F U M w o 0006260 r d , i n M B f i l e a 0006300 n d i n I t e m \r / / - - - 0006320 - - - - - - - - - - - - - - - - * 0006420 - - - - - - - - - \r [ \r w o r d 0006440 0 w o r d = \r [ b l 0006460 a n k b i t 5 ; P A b i 0006500 t 1 ; I F A D b i t 1 0 0006520 = [ I F 376 001 \0 333 % A D 0 1 0006540 b i t 2 ; I F A D 2 9 b 0006560 i t 8 ] ] \r w o r d 1 w 0006600 o r d = \r [ \r S G 0006620 N b i t 1 ; I P A R b i 0006640 t 3 = [ P 0 b i t ; 0006660 P 1 b i t ; P 2 b i t ] 0006700 ; L E N b i t 2 ; \r 0006720 R B A S E B b i t 1 ; M E 0006740 M B b i t 3 = [ M E M 0006760 B 0 b i t 1 ; M E M B 1 2 0007000 b i t 2 ] ; \r T Y P 0007020 E b i t 2 ; N b i t 4 0007040 \r ] \r ] \r \r m a n i f e s 0007060 t \r [ \r / / m a s k s d e f 0007100 i n i n g c o n t r i b u t i 0007120 o n o f e a c h w 376 001 \0 D 0007140 311 o r d t o e a c h p a r 0007160 i t y b i t \r i f u m W 0 P 0 0007200 = 1 4 0 0 B ; i f u m W 0 0007220 P 1 = 3 7 7 B ; i f u m W 0007240 0 P 2 = 2 0 0 0 B \r i f u m 0007260 W 1 P 0 = 3 1 7 B ; i f u 0007300 m W 1 P 1 = 0 B ; i f u m 0007320 W 1 P 2 = 1 0 7 4 6 0 B \r ] 0007340 \r \r / / - - - - - - - - - - - - 0007360 - - - - - - - - - - - - - - - - * 0007460 \r s t r u c t u r e R M : \t \t 0007500 / / R M w o r d , i n M 0007520 B f i l e a n d i n I t 0007540 e 376 001 \0 ] 322 m \r / / - - - - - - 0007560 - - - - - - - - - - - - - - - - * 0007660 - - - - - - \r [ \r w o r d 0 w 0007700 o r d \r ] \r \r / / - - - - - - - 0007720 - - - - - - - - - - - - - - - - * 0010020 - - - - - \r s t r u c t u r e 0010040 M e s a S t r i n g : [ l e 0010060 n g t h w o r d ; m a x L e 0010100 n g t h w o r d ; c h a r ^ 0010120 0 , 1 b y t e ] \r / / - - - 0010140 - - - - - - 376 001 \0 M , - - - - - 0010160 - - - - - - - - - - - - - - - - * 0010240 - - - - - - - - - - - - - - \r \r 0010260 / / - - - - - - - - - - - - - - 0010300 - - - - - - - - - - - - - - - - * 0010360 - - - - - - - - - - - - - - \r s 0010400 t r u c t u r e I n F i l e : 0010420 \t / / I n p u t f i l e d 0010440 e s c r i p t o r \r / / - - - - 0010460 - - - - - - - - - - - - - - - - * 0010540 - - - - - - - - - - - 376 001 \0 [ c 0010560 - - - - - - - - - - - - - \r [ \r 0010600 n e x t w o r d \r n a m e w 0010620 o r d \t \t / / - > c o m p l 0010640 e t e f i l e n a m e s t 0010660 r i n g \r c f a @ C F A \r s t 0010700 a r t A d d r w o r d \t \t / / 0010720 m i c r o c o d e s t a r t 0010740 i n g a d d r e s s f o r 0010760 t h i s o v e r l a y \r ] \r m 0011000 a n i f e s t l e n I n F i l 0011020 e = s i z e I n F i l e / 0011040 1 6 \r \r m a n i f e s t \r [ \r m 0011060 a x I t e m s = 4 0 9 6 + 1 0011100 0 2 4 + 2 5 6 + 1 / / I M 0011120 + I F U M + R M + E n d , e n 0011140 o u g h f o r o n e f u l 0011160 376 001 \0 5 302 l i m a g e \r ] \r \r 0011200 \r / / - - - - - - - - - - - - - 0011220 - - - - - - - - - - - - - - - - * 0011300 - - - - - - - - - - - - - - - \r 0011320 l e t R e a d M B ( ) b e \r 0011340 / / - - - - - - - - - - - - - - 0011360 - - - - - - - - - - - - - - - - * 0011440 - - - - - - - - - - - - - - \r [ 0011460 \r W s ( " * n R e a d M B o f 0011500 J u n e 2 6 , 1 9 8 5 " ) 0011520 \r \r l e t s t r i n g V e c , 0011540 s w i t c h V e c = v e c 0011560 5 0 , 376 001 \0 367 8 v e c 5 0 0011600 \r S e t u p R e a d P a r a m ( 0011620 s t r i n g V e c , s w i t c 0011640 h V e c ) \r \r l e t s t r e a 0011660 m O u t = 0 \r l e t o u t 0011700 N a m e = v e c 5 0 \r l e 0011720 t i n F i l e Q = v e c 0011740 1 ; i n F i l e Q ! 0 = 0 0011760 \r \r [ / / r e p e a t 0012000 \r i f R e a d P a r a m 0012020 ( 0 , 0 , 0 , 0 , t r u 0012040 e ) e q - 1 t h e n b r 0012060 e a k \r s w i t c h o n 0012100 s w i t c h V e c ! 0 i n t o 0012120 \r [ \r c 0012140 a s e 0 : \r 0012160 s w i t c h V e c ! 376 001 \0 003 W 1 0012200 = $ I / / f a l l t 0012220 h r u ( t r e a t a s i n 0012240 p u t f i l e n a m e ) \r 0012260 c a s e 1 : \r 0012300 s w i t c h o n s 0012320 w i t c h V e c ! 1 i n t o \r 0012340 [ \r 0012360 c a s e $ 0012400 I : c a s e $ i : \r 0012420 [ \r 0012440 l e t 0012460 i n N a m e = v e c 5 0 \r 0012500 l 0012520 e t s = E v a l P a r a m 0012540 ( s t r i n g V e c , " I W " 0012560 , " I n p u t M B f i l 376 0012600 001 \0 376 020 e n a m e : " , i 0012620 n N a m e ) \r 0012640 l e t i n F i l e 0012660 = A l l o c a t e ( s y s Z 0012700 o n e , l e n I n F i l e ) \r 0012720 l 0012740 e t l = i n N a m e > > S 0012760 t r i n g . l e n g t h r s h 0013000 i f t 1 + 1 \r 0013020 i n F i l e > > 0013040 I n F i l e . n a m e = A l 0013060 l o c a t e ( s y s Z o n e , 0013100 l ) \r 0013120 M o v e B l o c k ( i n F i 0013140 l e > > I n F i l e . n a m e , 0013160 i n N a m e , l ) \r 0013200 376 001 \0 * 302 0013220 G e t C o m p l e t e F a ( s , 0013240 l v i n F i l e > > I n F i 0013260 l e . c f a ) \r 0013300 C l o s e s ( s ) 0013320 \r 0013340 i n F i l e > > I n F i l e . s 0013360 t a r t A d d r = - 1 / 0013400 / h a v e n ' t s e e n s 0013420 t a r t a d d r e s s y e t 0013440 \r 0013460 E n q u e u e ( i n F i l e Q , 0013500 i n F i l e ) \r 0013520 e n d c a s e \r 0013540 ] 0013560 \r c a s 0013600 e $ O : c a s 376 001 \0 317 \b e 0013620 $ o : \r 0013640 s t r e a m O u t = E 0013660 v a l P a r a m ( s t r i n g V 0013700 e c , " O W " , " O u t p u 0013720 t f i l e n a m e : " , 0013740 o u t N a m e ) \r 0013760 e n d c a s e \r 0014000 d e f a 0014020 u l t : \r 0014040 F a i l ( " u n d e f i 0014060 n e d l o c a l s w i t c h 0014100 / $ C " , s w i t c h V e c 0014120 ! 1 ) \r 0014140 ] \r e n 0014160 d c a s e \r d e f a 0014200 u l t : \r 376 001 0014220 \0 O T F a i l ( " m u l t i p l 0014240 e l o c a l s w i t c h e s 0014260 " ) \r ] \r ] 0014300 r e p e a t \r \r i f i n F i l 0014320 e Q ! 0 e q 0 t h e n F 0014340 a i l ( " n o i n p u t f i 0014360 l e s p e c i f i e d " ) \r \r 0014400 i f s t r e a m O u t e q 0014420 0 t h e n \r [ / / 0014440 d e f a u l t o u t p u t f 0014460 i l e n a m e t o m a t c h 0014500 l a s t i n p u t f i l e 0014520 n a m e \r M o v e B l o c 0014540 k ( o u t N a m e , ( i n F i 0014560 l e Q ! 1 ) > > I n F i l e . n 0014600 a m e , 5 0 ) \r f o r 0014620 i = 376 001 \0 313 033 1 t o o u 0014640 t N a m e > > S t r i n g . l e 0014660 n g t h d o \r i f 0014700 o u t N a m e > > S t r i n g 0014720 . c h a r ^ i e q $ . t h 0014740 e n o u t N a m e > > S t r i 0014760 n g . l e n g t h = i - 1 \r 0015000 l e t i = o u t N a 0015020 m e > > S t r i n g . l e n g t 0015040 h \r o u t N a m e > > S t 0015060 r i n g . c h a r ^ ( i + 1 ) 0015100 = $ . \r o u t N a m e > 0015120 > S t r i n g . c h a r ^ ( i + 0015140 2 ) = $ l \r o u t N a 0015160 m e > > S t r i n g . c h a r ^ 0015200 ( i + 3 ) = $ s \r o u 0015220 t N a m e > > S 376 001 \0 277 M t r i 0015240 n g . l e n g t h = i + 3 \r 0015260 s t r e a m O u t = O 0015300 p e n F i l e ( o u t N a m e , 0015320 k s T y p e W r i t e O n l y 0015340 , c h a r I t e m ) \r ] 0015360 \r \r l e t i n F i l e = i 0015400 n F i l e Q ! 0 \r w h i l e i 0015420 n F i l e n e 0 d o \r 0015440 [ \r l e t s t r e a m 0015460 M B = O p e n F i l e ( i n 0015500 F i l e > > I n F i l e . n a m 0015520 e , k s T y p e R e a d O n l 0015540 y , c h a r I t e m , 0 , \r 0015560 l v i n F i l e > > I 0015600 n F i l e . c f a . f p ) \r 0015620 i f s t r e a m M B 376 001 \0 0015640 260 331 e q 0 t h e n C a l l 0015660 S w a t ( " F a i l e d t o 0015700 o p e n e x i s t i n g f i 0015720 l e " ) \r R e a d M B F i 0015740 l e ( s t r e a m M B , s t r 0015760 e a m O u t ) \r C l o s e 0016000 s ( s t r e a m M B ) \r i 0016020 n F i l e = i n F i l e > > 0016040 I n F i l e . n e x t \r ] 0016060 \r \r l e t p o s = v e c 0016100 1 ; F i l e P o s ( s t r e a 0016120 m O u t , p o s ) \r C l o s e 0016140 s ( s t r e a m O u t ) \r P u t 0016160 T e m p l a t e ( d s p , " * 0016200 n $ E D b y t e s w r i t t 0016220 e n o n $ S . " , p o s , 0016240 o 376 001 \0 L 321 u t N a m e ) \r f 0016260 i n i s h \r ] \r \r / / - - - - - 0016300 - - - - - - - - - - - - - - - - * 0016400 - - - - - - - \r a n d F a i l 0016420 ( s t r i n g , p a r 1 , p 0016440 a r 2 , p a r 3 ) b e \r / / 0016460 - - - - - - - - - - - - - - - - * 0016560 - - - - - - - - - - - - \r [ \r W 0016600 s ( " * n C o m m a n d e r r 0016620 o r : " ) \r P u t T e m p l a 0016640 t e ( d s p , 376 001 \0 j 246 s t r 0016660 i n g , p a r 1 , p a r 2 , 0016700 p a r 3 ) \r W s ( " * n " ) \r 0016720 a b o r t \r ] \r \r / / - - - - - 0016740 - - - - - - - - - - - - - - - - * 0017040 - - - - - - - \r a n d R e a d 0017060 M B F i l e ( s t r e a m , s 0017100 t r e a m O u t ) b e \r / / - 0017120 - - - - - - - - - - - - - - - - * 0017220 - - - - - - - - - - - \r [ \r m a 0017240 n i f e s t l e n B u 376 001 \0 ; 0017260 201 f = 1 0 2 4 \r m a n i f e 0017300 s t m i n L e n B u f = 1 0017320 2 8 \r l e t m b B u f = v 0017340 e c l e n B u f \r l e t m b 0017360 = m b B u f \r l e t e n d 0017400 B u f = m b B u f \r l e t 0017420 m e m o r y N u m I M = - 2 0017440 \r l e t m e m o r y N u m I F 0017460 U M = - 2 \r l e t m e m o 0017500 r y N u m R M = - 2 \r l e t 0017520 m e m o r y N u m = - 1 \r 0017540 l e t a d d r = n i l \r l 0017560 e t m e m o r y W i d t h s 0017600 = v e c m a x M e m o r y N 0017620 u m ; Z e r o ( m e m o r y W 0017640 i d t h s , m a x M e m o r y 0017660 N 376 001 \0 V \a u m ) \r l e t n a 0017700 m e = v e c m a x L e n N 0017720 a m e \r l e t a d d r V a l u 0017740 e = 0 \r \r [ / / r 0017760 e p e a t \r i f ( e n d 0020000 B u f - m b ) l s m i n L e 0020020 n B u f t h e n \r 0020040 [ \r l e t w o r d 0020060 s R e m a i n i n g = e n d 0020100 B u f - m b \r M o v 0020120 e B l o c k ( m b B u f , m b 0020140 , w o r d s R e m a i n i n g 0020160 ) \r m b = m b B 0020200 u f \r w o r d s R e 0020220 m a i n i n g = w o r d s R 0020240 e m a i n i n g + \r 0020260 R e a d 376 001 \0 324 9 B l o c k 0020300 ( s t r e a m , m b + w o r d 0020320 s R e m a i n i n g , l e n B 0020340 u f - w o r d s R e m a i n i n 0020360 g ) \r i f w o r d 0020400 s R e m a i n i n g l e 0 0020420 t h e n C a l l S w a t ( " M 0020440 i s s i n g E n d b l o c k 0020460 i n M B f i l e " ) \r 0020500 e n d B u f = m b B 0020520 u f + w o r d s R e m a i n i n 0020540 g \r ] \r \r s w 0020560 i t c h o n m b > > M B . t y 0020600 p e i n t o \r [ \r 0020620 c a s e m b E n d 0020640 : \r b r e a k 0020660 \r \r c a s 376 001 \0 346 \r 0020700 e m b D a t a : \r 0020720 [ \r a d 0020740 d r = a d d r + 1 \r 0020760 m b = m b + l 0021000 e n M B D a t a + m e m o r 0021020 y W i d t h s ! m e m o r y N u 0021040 m \r e n d c a 0021060 s e \r ] \r \r 0021100 c a s e m b M e m o 0021120 r y : \r m e m 0021140 o r y N u m = m b > > M B . 0021160 m e m o r y . m e m o r y N u m 0021200 \r i f m e m 0021220 o r y W i d t h s ! m e m o r y 0021240 N u m e q 0 t h e n \r 0021260 C a l l S w 0021300 376 001 \0 7 Y a t ( " U n d e f i n 0021320 e d m e m o r y " ) \r 0021340 a d d r = m b > > 0021360 M B . m e m o r y . l o c a t i 0021400 o n \r m b = 0021420 m b + l e n M B M e m o r 0021440 y \r e n d c a 0021460 s e \r \r c a s e m 0021500 b F i x u p : \r 0021520 C a l l S w a t ( " F i x u p 0021540 b l o c k e n c o u n t e r 0021560 e d i n M B f i l e " ) \r 0021600 \r c a s e m b M e 0021620 m o r y N a m e : \r 0021640 [ \r l e 0021660 t n e w M e m o r y N u m = 0021700 m b > > 376 001 \0 & 253 M B . m e m 0021720 o r y N a m e . m e m o r y N u 0021740 m \r i f U s 0021760 c ( n e w M e m o r y N u m , 0022000 m a x M e m o r y N u m ) g r 0022020 0 t h e n \r 0022040 C a l l S w a t ( " M e 0022060 m o r y n u m b e r o u t 0022100 o f b o u n d s " ) \r 0022120 m e m o r y W i d t h 0022140 s ! n e w M e m o r y N u m = 0022160 ( m b > > M B . m e m o r y N 0022200 a m e . w i d t h + 1 5 ) r 0022220 s h i f t 4 \r 0022240 l e t l e n N a m e = R 0022260 e a d N a m e ( l v m b > > M 0022300 B . m e m o r y N a 376 001 \0 331 321 m 0022320 e . n a m e , n a m e ) \r 0022340 P u t T e m p l a 0022360 t e ( s t r e a m O u t , " $ 0022400 S * n " , n a m e ) \r 0022420 m b = m b + l 0022440 e n M B M e m o r y N a m e + 0022460 l e n N a m e \r 0022500 e n d c a s e \r 0022520 ] \r \r c a s e 0022540 m b A d d r e s s : \r 0022560 a d d r V a l u e = 0022600 m b > > M B . a d d r e s s . 0022620 v a l u e \r m 0022640 b = m b + l e n M B A d 0022660 d r e s s + R e a d N a m e 0022700 ( l v m b > > M B . a d d r 376 0022720 001 \0 244 214 e s s . n a m e , n a 0022740 m e ) \r P u t 0022760 T e m p l a t e ( s t r e a m O 0023000 u t , " $ S : * t $ U O 0023020 * n " , n a m e , a d d r V 0023040 a l u e ) \r e 0023060 n d c a s e \r \r c a 0023100 s e m b U n d e f i n e d : \r 0023120 C a l l S w a 0023140 t ( " U n d e f i n e d s y m 0023160 b o l b l o c k e n c o u n 0023200 t e r e d i n M B f i l e 0023220 " ) \r \r d e f a u l 0023240 t : \r C a l l 0023260 S w a t ( " U n k n o w n b l 0023300 o c k t y p e i n M B f 0023320 i l e " 376 001 \0 321 361 ) \r 0023340 ] \r ] r e p e a t \r ] 0023360 \r \r / / - - - - - - - - - - - - 0023400 - - - - - - - - - - - - - - - - * 0023500 \r a n d R e a d N a m e ( m b 0023520 N a m e , s t r i n g N a m e 0023540 ) = v a l o f \r / / - - - - 0023560 - - - - - - - - - - - - - - - - * 0023660 - - - - - - - - \r / / C o n v 0023700 e r t s f r o m t h e M B 0023720 n a m e f o r 376 001 \0 m 330 m a 0023740 t t o a n o r m a l s t 0023760 r i n g . \r / / R e t u r n s 0024000 t h e n u m b e r o f w 0024020 o r d s o c c u p i e d b y 0024040 m b N a m e . \r [ \r l e t i 0024060 = 0 \r [ / / r e p 0024100 e a t \r l e t c h a r 0024120 = m b N a m e > > M B N a m e 0024140 ^ i \r i f c h a r e q 0024160 0 t h e n b r e a k \r 0024200 s t r i n g N a m e > > S t r 0024220 i n g . c h a r ^ ( i + 1 ) = 0024240 c h a r \r i = i + 1 0024260 \r ] r e p e a t \r s t r 0024300 i n g N a m e > > S t r i n g . 0024320 l e n g t h = i \r r e s 376 001 0024340 \0 315 F u l t i s i r s h i f 0024360 t 1 + 1 \r ] \r \r / / - - - - 0024400 - - - - - - - - - - - - - - - - * 0024500 - - - - - - - - \r a n d S t r 0024520 i n g E q ( s 1 , s 2 ) = 0024540 v a l o f \r / / - - - - - - - - 0024560 - - - - - - - - - - - - - - - - * 0024660 - - - - \r [ \r l e t l e n g t 0024700 h = s 1 > > S t r i n g . l 0024720 e n g t h \r i f l e n g t h 0024740 n e 376 001 \0 f | s 2 > > S t r i 0024760 n g . l e n g t h r e s u l t 0025000 i s f a l s e \r f o r i = 0025020 1 t o l e n g t h d o \r 0025040 [ \r l e t c 1 , 0025060 c 2 = s 1 > > S t r i n g . 0025100 c h a r ^ i , s 2 > > S t r i 0025120 n g . c h a r ^ i \r i f 0025140 c 1 n e c 2 t h e n \r 0025160 u n l e s s ( c 1 x 0025200 o r 4 0 B ) e q c 2 & \r 0025220 U s c ( ( c 1 & 0025240 1 3 7 B ) - $ A , $ Z - $ A 0025260 ) l e 0 r e s u l t i s 0025300 f a l s e \r ] \r r e s u l 0025320 t i s t r u e \r ] \r \r / / - - 0025340 - - - - - - - - 376 001 \0 o 207 - - - 0025360 - - - - - - - - - - - - - - - - * 0025440 - - - - - - - - - - - - - - - \r 0025460 a n d M e s a F r o m B C P L 0025500 S t r i n g ( m e s a S t r i n 0025520 g , b c p l S t r i n g ) = 0025540 v a l o f \r / / - - - - - - - 0025560 - - - - - - - - - - - - - - - - * 0025660 - - - - - \r / / R e t u r n s 0025700 t h e n u m b e r o f w 0025720 o r d s o c c u p i e d b y 0025740 t h e m e s a S t r i 376 001 \0 0025760 005 @ n g \r [ \r l e t l e n g t 0026000 h = b c p l S t r i n g > > 0026020 S t r i n g . l e n g t h \r m e 0026040 s a S t r i n g > > M e s a S t 0026060 r i n g . l e n g t h = l e 0026100 n g t h \r m e s a S t r i n g > 0026120 > M e s a S t r i n g . m a x L 0026140 e n g t h = ( l e n g t h + 0026160 1 ) & - 2 \r f o r i = 0026200 1 t o l e n g t h d o m 0026220 e s a S t r i n g > > M e s a S 0026240 t r i n g . c h a r ^ ( i - 1 ) 0026260 = b c p l S t r i n g > > S 0026300 t r i n g . c h a r ^ i \r r e s 0026320 u l t i s ( o f f s e t M e 0026340 s a S t r i n g . c h a r ^ 0 0026360 / 376 \0 034 023 256 1 6 ) + ( l e 0026400 n g t h + 1 ) r s h i f t 1 0026420 \r ] \r 377 \0 \0 L o a d R e a d M B 0026440 . c m \0 373 236 351 331 205 \0 \0 376 \0 % ' L 0026460 B l d r / L V R e a d M B G 0026500 P T e m p l a t e A l t o Q 0026520 u e u e \r 377 \0 \0 R e a d M B . c 0026540 m \0 373 236 351 331 230 \0 \0 376 \0 $ 345 375 R e 0026560 a d M B . b c p l L o a d R e 0026600 a d M B . c m R e a d M B . c 0026620 m \r 374 0026623