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