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