$ od -c -N 50000 [Indigo]<Chipmonk>gate>gate-sources.dm!4 0000000 377 \0 \0 r l d e f s . m e s a \0 373 0000020 227 366 q 236 \0 \0 376 001 \0 ? 267 - - d e 0000040 f i n i t i o n s m o d u l e 0000060 f o r r a n d o m l o g i 0000100 c l a y o u t s u b r o u t 0000120 i n e \r - - w r i t t e n b 0000140 y P e t i t , S e p t e m b 0000160 e r 2 6 , 1 9 8 1 6 : 3 0000200 5 P M \r \r D I R E C T O R Y \r 0000220 S e g m e n t D e f s , \r 0000240 p p d e f s ; \r r l d e f s : 0000260 D E F I N I T I O N S I M P 0000300 O R T S S e g m e n t D e f s 0000320 , p p d e f s = \r B E G 0000340 I N O P E N p p d e f s , 0000360 S e g m e n t D e f s ; \r \r \r - 0000400 - g a t e s t u f f : \r \r g 0000420 a t e C h a r a c : T 376 001 \0 ~ \f 0000440 Y P E = R E C O R D [ i n C 0000460 n t , n o r C n t : I N T E G E 0000500 R , - - n o r C n t i s m 0000520 a x C n t f o r S e q u e n 0000540 c e \r \t a n d s : S E Q U E N C 0000560 E C O M P U T E D C A R D I 0000600 N A L O F [ 0 . . 2 5 5 ] 0000620 ] ; \r \r g a t e : T Y P E = 0000640 R E C O R D [ n x t : L O N G 0000660 P O I N T E R T O g a t e 0000700 , \r \t c h a r a c : L O N G P 0000720 O I N T E R T O g a t e C h 0000740 a r a c , \r \t f i r s t I n T o 0000760 p A v a i l : B O O L E A N , \r 0001000 \t l S p a c , r S p a c : [ 0 . 0001020 . 7 ] , \r \t p a r m N u m : [ 0 0001040 376 001 \0 215 220 . . 2 5 5 ] , \r \t c e 0001060 l l : L O N G P O I N T E R 0001100 T O c L i s t , \r \t i n C n t 0001120 : I N T E G E R , - - t h i s 0001140 i s t h e m a x C o u n t 0001160 f o r t h e S e q u e n c 0001200 e \r \t g n d : P o i n t , \r \t f 0001220 i r s t I n T o p : P o i n t , 0001240 \r \t o u t : P o i n t , \r \t i n 0001260 s : S E Q U E N C E C O M P U 0001300 T E D C A R D I N A L O F 0001320 P o i n t ] ; \r \r G a t e L i 0001340 s t : T Y P E = R E C O R D 0001360 [ n x t : L O N G P O I N T E 0001400 R T O G a t e L i s t , \r \t 0001420 g a t : L O N G P O I N T E R 0001440 T O g 376 001 \0 330 270 a t e , \r \t 0001460 x , y : l o c N u m , \r \t o u t 0001500 N o d e : I N T E G E R , \r \t n 0001520 o d e s : S E Q U E N C E n o 0001540 d e C n t : C A R D I N A L O 0001560 F [ 0 . . 2 5 5 ] ] ; \r \r m 0001600 C o n t P r o c d : T Y P E = 0001620 P R O C E D U R E [ l C n t , 0001640 r C n t , x , y , m a x y : I N 0001660 T E G E R , \r \t l p : L O N G 0001700 P O I N T E R T O l i s t , 0001720 t o t I n s : I N T E G E R ] \r 0001740 \t R E T U R N S [ d x , w i d : 0001760 I N T E G E R , n l : L O N G 0002000 P O I N T E R T O l i s t ] 0002020 ; \r \r m A n d P r o c d : T Y P 0002040 E = P R O C E D 376 001 \0 ; O U 0002060 R E [ a C n t , x , y : I N T E 0002100 G E R , l p : L O N G P O I N 0002120 T E R T O l i s t , \r \t i n 0002140 p u t s : I N T E G E R , g a t 0002160 : L O N G P O I N T E R T O 0002200 g a t e , t o t I n s : I N T 0002220 E G E R ] \r \t R E T U R N S [ d 0002240 x , w i d : I N T E G E R , n l 0002260 : L O N G P O I N T E R T O 0002300 l i s t ] ; \r \r m T W P r o c 0002320 d : T Y P E = P R O C E D U 0002340 R E [ x : I N T E G E R , l p : 0002360 L O N G P O I N T E R T O 0002400 l i s t , t o t I n s : I N T E 0002420 G E R ] \r \t R E T U R N S [ d x 0002440 : I N T E G E R , n l : L O N 376 0002460 001 \0 204 374 G P O I N T E R T O 0002500 l i s t ] ; \r \r m P u P r o c 0002520 d : T Y P E = P R O C E D U 0002540 R E [ x 1 , x 2 , m x : I N T E 0002560 G E R , \r \t l p : L O N G P O 0002600 I N T E R T O l i s t , g a 0002620 t : L O N G P O I N T E R T 0002640 O g a t e , t o t I n s : I N 0002660 T E G E R ] \r \t R E T U R N S [ 0002700 d x : I N T E G E R , n l : L O 0002720 N G P O I N T E R T O l i 0002740 s t ] ; \r \r c a l c M y P r o c 0002760 d : T Y P E = P R O C E D U 0003000 R E [ g c : L O N G P O I N T 0003020 E R T O g a t e C h a r a c 0003040 ] \r \t R E T U R N S [ m y : I N 0003060 T E G E 376 001 \0 034 Y R ] ; \r \r p a 0003100 r m a C n t : T Y P E = [ 1 0003120 . . 5 ] ; \r \r g a t e T y p e R 0003140 e c o r d : T Y P E = R E C 0003160 O R D [ \r \t w W i d , m w W i d 0003200 : I N T E G E R , \r \t n o r W i 0003220 r e O f f : I N T E G E R , \r \t 0003240 s t a n d W i d t h : I N T E G 0003260 E R , \r \t s t r t Y , i n v O f 0003300 f : I N T E G E R , \r \t p u t W 0003320 i d , p u t L e n : I N T E G E 0003340 R , \r \t m a k A n d : m A n d P 0003360 r o c d , \r \t m a k P u : m P u 0003400 P r o c d , \r \t m a k C o n t s 0003420 : m C o n t P r o c d , \r \t m a 0003440 k T o p W i r e : m T W P r o c 0003460 d , \r \t c a l c M 376 001 \0 324 o a x 0003500 y : c a l c M y P r o c d ] ; 0003520 \r \r d o w n W i r e R e c : T Y 0003540 P E = R E C O R D [ \r \t n 0003560 o d e , x , y , t x , t y : I N 0003600 T E G E R , \r \t f i x e d : B O 0003620 O L E A N , l e f t E n d , r i 0003640 g h t E n d , a n d C n t : [ 0 0003660 . . 3 1 ] , \r \t w i r e d L e f 0003700 t , t o p W i r e a b l e : B O 0003720 O L E A N , d w L e f t : [ 0 . 0003740 . 3 7 7 7 7 B ] , \r \t w i r e d 0003760 R i g h t : B O O L E A N , d w 0004000 R i g h t : [ 0 . . 3 7 7 7 7 B 0004020 ] ] ; \r \r b l o c k a g e T y 0004040 p e : T Y P E = { n o n e , 0004060 m e t , p o l y , c e l l } 376 001 0004100 \0 } 243 ; \r \r h L i n e R e c : T 0004120 Y P E = R E C O R D [ \r \t 0004140 b t y p : b l o c k a g e T y p 0004160 e , d i s t a n c e : [ - 2 0 . 0004200 . 5 0 0 0 ] ] ; \r \r \r - - * 0004220 * * * * * S t u f f F r o m 0004240 r l g a t e . m e s a : \r \r 0004260 g e t G a t e : P R O C E D U R 0004300 E [ g c : L O N G P O I N T E 0004320 R T O g a t e C h a r a c , 0004340 p a r m s : I N T E G E R ] \r \t 0004360 R E T U R N S [ g a t : L O N G 0004400 P O I N T E R T O g a t e 0004420 ] ; \r \r \r - - * * * * * * 0004440 S t u f f F r o m r l i n 0004460 . m e s a : \r \r m y Z o n e : 0004500 U N C 376 \0 214 } 222 O U N T E D Z 0004520 O N E ; \r f i l e E r r : S 0004540 I G N A L ; \r a b b r t : S I 0004560 G N A L ; \r \r i n p u t C i r c 0004600 u i t : P R O C E D U R E R E 0004620 T U R N S [ p n t : L O N G P 0004640 O I N T E R T O G a t e L i 0004660 s t , \r \t d w C n t , m a x N N 0004700 : I N T E G E R ] ; \r \r \r E 0004720 N D . \r 377 \0 \0 r l g a t e . m e 0004740 s a \0 373 233 i O 206 \0 \0 376 001 \0 017 P - 0004760 - a p r o g r a m t o r 0005000 u n w i t h i n C h i p m o 0005020 n k \r \r - - l a s t m o d i 0005040 f i e d b y P e t i t , O 0005060 c t o b e r 8 , 1 9 8 1 0005100 2 : 2 0 P M \r - - w r i t t 0005120 e n b y P e t i t , O c t 0005140 o b e r 5 , 1 9 8 1 6 : 0005160 4 5 P M \r \r D I R E C T O R Y 0005200 \r p p d d e f s , \r p p 0005220 d e f s , \r r l d e f s , \r 0005240 p p d d d e f s , \r S t 0005260 r i n g D e f s ; \r \r r l g a t 0005300 e : P R O G R A M \r I M P 0005320 O R T S p p d d e f s , p p 0005340 d e f s , p p d d d e f s , 376 0005360 001 \0 263 N S t r i n g D e f s 0005400 E X P O R T S r l d e f s = 0005420 \r B E G I N O P E N p p 0005440 d d e f s , r l d e f s , p 0005460 p d e f s , p p d d d e f s , 0005500 S t r i n g D e f s ; \r \r \r - 0005520 - g a t e c r e a t i o n 0005540 r o u t i n e s : \r \r p a r m a 0005560 : A R R A Y p a r m a C n t 0005600 O F P O I N T E R T O g a 0005620 t e T y p e R e c o r d _ \r \t 0005640 [ @ g t r 1 , @ g t r 2 , @ g t 0005660 r 3 , @ g t r 4 , @ g t r 5 ] ; 0005700 \r \r c u r r e n t P a r a m e t 0005720 e r s : P O I N T E R T O g 0005740 a t e T y p e R e c o r d ; \r c 0005760 u r r e 376 001 \0 \f 266 n t P a r a m 0006000 N u m b e r : p a r m a C n t ; 0006020 \r \r g t r 1 : g a t e T y p e R 0006040 e c o r d _ [ \r \t w W i d : 0006060 4 , \r \t m w W i d : 8 , \r \t n o 0006100 r W i r e O f f : 2 , \r \t s t a 0006120 n d W i d t h : 1 6 , \r \t s t r 0006140 t Y : 3 0 , \r \t i n v O f f : 1 0006160 0 , \r \t p u t W i d : 4 , \r \t p 0006200 u t L e n : 4 , \r \t m a k A n d 0006220 : m A n d 1 , \r \t m a k P u : m 0006240 P u 1 , \r \t m a k C o n t s : m 0006260 C o n t 1 , \r \t m a k T o p W i 0006300 r e : m T W 1 , \r \t c a l c M a 0006320 x y : m C a l c 1 \r ] ; \r g t r 0006340 2 : g a t e T y p e R e c o r d 0006360 _ [ \r \t w W i 376 001 \0 r 222 d : 0006400 4 , \r \t m w W i d : 8 , \r \t n o 0006420 r W i r e O f f : 2 , \r \t s t a 0006440 n d W i d t h : 3 2 , \r \t s t r 0006460 t Y : 3 0 , \r \t i n v O f f : 1 0006500 0 , \r \t p u t W i d : 8 , \r \t p 0006520 u t L e n : 4 , \r \t m a k A n d 0006540 : m A n d 1 , \r \t m a k P u : m 0006560 P u 1 , \r \t m a k C o n t s : m 0006600 C o n t 1 , \r \t m a k T o p W i 0006620 r e : m T W 1 , \r \t c a l c M a 0006640 x y : m C a l c 1 \r ] ; \r g t r 0006660 3 : g a t e T y p e R e c o r d 0006700 _ [ \r \t w W i d : 4 , \r \t m 0006720 w W i d : 8 , \r \t n o r W i r e 0006740 O f f : 2 , \r \t s t a n d W i d 0006760 t h : 4 8 , \r \t s t r t Y : 376 001 0007000 \0 * 204 3 0 , \r \t i n v O f f : 1 0007020 0 , \r \t p u t W i d : 1 2 , \r \t 0007040 p u t L e n : 4 , \r \t m a k A n 0007060 d : m A n d 1 , \r \t m a k P u : 0007100 m P u 1 , \r \t m a k C o n t s : 0007120 m C o n t 1 , \r \t m a k T o p W 0007140 i r e : m T W 1 , \r \t c a l c M 0007160 a x y : m C a l c 1 \r ] ; \r g t 0007200 r 4 : g a t e T y p e R e c o r 0007220 d _ [ \r \t w W i d : 4 , \r \t 0007240 m w W i d : 8 , \r \t n o r W i r 0007260 e O f f : 2 , \r \t s t a n d W i 0007300 d t h : 8 , \r \t s t r t Y : 2 8 0007320 , - - p u t L e n + 2 0 \r \t 0007340 i n v O f f : 6 , \r \t p u t W i 0007360 d : 4 , \r \t p u t L e n : 8 , \r 0007400 \t m a 376 001 \0 323 001 k A n d : m A n 0007420 d 1 , \r \t m a k P u : m P u 2 , 0007440 \r \t m a k C o n t s : m C o n t 0007460 1 , \r \t m a k T o p W i r e : m 0007500 T W 1 , \r \t c a l c M a x y : m 0007520 C a l c 1 \r ] ; \r g t r 5 : g a 0007540 t e T y p e R e c o r d _ [ 0007560 \r \t w W i d : 4 , \r \t m w W i d 0007600 : 8 , \r \t n o r W i r e O f f : 0007620 2 , \r \t s t a n d W i d t h : 4 0007640 , \r \t s t r t Y : 3 6 , - - 0007660 p u t L e n + 2 0 \r \t i n v O f 0007700 f : 6 , \r \t p u t W i d : 4 , \r 0007720 \t p u t L e n : 1 6 , \r \t m a k 0007740 A n d : m A n d 1 , \r \t m a k P 0007760 u : m P u 2 , \r \t m a k C o n t 0010000 s : m C o n t 1 376 001 \0 336 \t , \r \t 0010020 m a k T o p W i r e : m T W 1 , 0010040 \r \t c a l c M a x y : m C a l c 0010060 1 \r ] ; \r \r g a t e L i s t : L 0010100 O N G P O I N T E R T O g 0010120 a t e _ N I L ; \r \r g e t G a t 0010140 e : P U B L I C P R O C E D U 0010160 R E [ g c : L O N G P O I N T 0010200 E R T O g a t e C h a r a c 0010220 , p a r m s : I N T E G E R ] \r 0010240 \t R E T U R N S [ g a t : L O N 0010260 G P O I N T E R T O g a t 0010300 e ] = \r B E G I N \r \t 0010320 g a t _ g a t e L i s t ; \r \t W 0010340 H I L E g a t # N I L D O \r 0010360 \t I F g a t . p a r m N u 0010400 m = p a r m s A N D 376 001 \0 0010420 v 217 g c S a m e [ g c , g a t 0010440 . c h a r a c ] T H E N R E 0010460 T U R N ; \r \t g a t _ g a t 0010500 . n x t ; \r \t E N D L O O P ; \r 0010520 \t g a t _ m a k e G a t e [ g c 0010540 , p a r m s ] ; \r \t g a t . n x 0010560 t _ g a t e L i s t ; \r \t g a t 0010600 e L i s t _ g a t ; \r E 0010620 N D ; \r g c S a m e : P R O C E 0010640 D U R E [ a , b : L O N G P O 0010660 I N T E R T O g a t e C h a 0010700 r a c ] R E T U R N S [ B O O 0010720 L E A N ] = \r B E G I 0010740 N \r \t I F a . i n C n t # b . 0010760 i n C n t O R a . n o r C n 0011000 t # b . n o r C n t T H E N 0011020 R E 376 001 \0 O 310 T U R N [ F A L S 0011040 E ] ; \r \t F O R i : I N T E G 0011060 E R I N [ 0 . . a . n o r C 0011100 n t ) D O \r \t I F a . a 0011120 n d s [ i ] # b . a n d s [ 0011140 i ] T H E N R E T U R N [ F 0011160 A L S E ] ; \r \t E N D L O O P ; 0011200 \r \t R E T U R N [ T R U E ] ; \r 0011220 E N D ; \r \r m a k e G a 0011240 t e : P R O C E D U R E [ g c : 0011260 L O N G P O I N T E R T O 0011300 g a t e C h a r a c , p a r m s 0011320 : p a r m a C n t ] \r \t R E T U 0011340 R N S [ g a t : L O N G P O I 0011360 N T E R T O g a t e ] = \r 0011400 B E G I N \r \t O P E N 0011420 c u r r e n t 376 001 \0 \0 265 P a r a 0011440 m e t e r s ; \r \t l p : L O N G 0011460 P O I N T E R T O l i s t 0011500 ; - - _ N I L ; \r \t o b : L O N 0011520 G P O I N T E R T O o b j 0011540 e c t ; \r \t c p : L O N G P O 0011560 I N T E R T O c L i s t ; \r 0011600 \t x : l o c N u m ; \r \t y : l o 0011620 c N u m ; \r \t i , i n I d x , a 0011640 c n t , m x , m a x y : I N T E 0011660 G E R ; \r \t t o p x 1 , t o p x 0011700 2 , d x , w i d t h , b o t x : 0011720 I N T E G E R ; \r \t c u r r e n 0011740 t P a r a m e t e r s _ p a r m 0011760 a [ p a r m s ] ; \r \t c u r r e 0012000 n t P a r a m N u m b e r _ p a 0012020 r m s ; \r \t g a t _ G e 376 001 \0 273 0012040 037 t S p a c e [ S I Z E [ g a t 0012060 e [ g c . i n C n t ] ] ] ; \r \t 0012100 g a t . i n C n t _ g c . i n C 0012120 n t ; \r \t g a t . n x t _ N I L 0012140 ; \r \t g a t . c h a r a c _ g c 0012160 ; \r \t g a t . p a r m N u m _ c 0012200 u r r e n t P a r a m N u m b e 0012220 r ; \r \t m x _ 0 ; \r \t y _ s t r 0012240 t Y ; \r \t m a x y _ y + c a l c 0012260 M a x y [ g c ] ; \r \t x _ - 2 ; 0012300 \r \t [ d x , , l p ] _ m a k C o 0012320 n t s [ 0 , g c . a n d s [ 0 ] 0012340 , x , y , m a x y , N I L , g c 0012360 . i n C n t ] ; \r \t x _ x + d x 0012400 ; \r \t b o t x _ 0 ; \r \t i n I d 0012420 x _ 0 ; \r \t F O R i I N [ 0012440 0 376 001 \0 004 312 . . g c . n o r C n 0012460 t ) D O \r \t a c n t _ g c 0012500 . a n d s [ i ] ; \r \t [ d x 0012520 , w i d t h , l p ] _ m a k A n 0012540 d [ a c n t , x , y , l p , i n 0012560 I d x , g a t , g c . i n C n t 0012600 ] ; \r \t i n I d x _ i n I d 0012620 x + a c n t ; \r \t m x _ M A 0012640 X [ m x , x + w i d t h ] ; \r \t 0012660 x _ x + d x ; \r \t I F 0012700 i = 0 T H E N t o p x 1 _ x 0012720 + n o r W i r e O f f ; \r \t 0012740 I F i M O D 2 = 0 T 0012760 H E N \r \t B E G I N \r \t 0013000 \t t o p x 2 _ x + n o r W i r e 0013020 O f f + w W i d ; \r \t \t [ d x , 0013040 l p ] _ m a 376 001 \0 020 C k T o p W 0013060 i r e [ x + n o r W i r e O f f 0013100 , l p , g c . i n C n t ] ; \r \t 0013120 \t x _ x + d x ; \r \t \t m x _ M A 0013140 X [ m x , t o p x 2 ] ; \r \t 0013160 E N D \r \t E L S E \r \t 0013200 B E G I N \r \t \t [ d x , w i 0013220 d t h , l p ] _ m a k C o n t s 0013240 [ a c n t , ( I F i = g c . n 0013260 o r C n t - 1 T H E N 0 \r \t 0013300 \t \t E L S E g c . a n d s [ i 0013320 + 1 ] ) , x , y , m a x y , l p 0013340 , g c . i n C n t ] ; \r \t \t b o 0013360 t x _ x + 2 ; \r \t \t m x _ M A X 0013400 [ m x , x + w i d t h ] ; \r \t \t 0013420 x _ x + d x ; \r \t E N D 0013440 ; \r \t E N D L O O P ; 376 001 \0 331 303 0013460 \r \t [ d x , l p ] _ m a k P u [ 0013500 t o p x 1 , t o p x 2 , m x , l 0013520 p , g a t , g c . i n C n t ] ; 0013540 \r \t m x _ M A X [ m x , d x ] ; 0013560 \r \t I F b o t x > 0 T H E N 0013600 \r \t B E G I N \r \t \t l p 0013620 _ i n s e r t L i s t [ l p , m 0013640 a k e L i s t [ m a k e W i r e 0013660 [ b o t x + m w W i d , 6 , m e 0013700 t ] \r \t \t \t , 0 , m a x y - 2 , 0013720 2 , 0 ] ] ; \r \t E N D ; 0013740 \r \t g a t . g n d _ [ b o t x + 0013760 2 , m a x y - 2 ] ; \r \t o b _ m 0014000 a k e C e l l [ m x , m a x y + 0014020 4 , 0 , l p ] ; \r \t c p _ a l o 0014040 c C L i s t [ ] ; \r \t c p . o b 0014060 376 001 \0 020 320 _ o b ; \r \t c p . n a 0014100 m e _ m a k e C e l l N a m e [ 0014120 g c ] ; \r \t o b . r e t u r n a 0014140 b l e _ F A L S E ; \r \t g a t . 0014160 c e l l _ c p ; \r \t c p . n x t 0014200 _ c e l l L i s t ; \r \t c e l l 0014220 L i s t _ c p ; \r E N D 0014240 ; \r \r m a k e C e l l N a m e : 0014260 P R O C E D U R E [ g c : L O N 0014300 G P O I N T E R T O g a t 0014320 e C h a r a c ] R E T U R N S 0014340 [ s : S T R I N G ] = \r 0014360 B E G I N \r \t s s : S T R I N 0014400 G _ [ 1 0 1 ] ; \r \t s s . l e n 0014420 g t h _ 0 ; \r \t A p p e n d S t 0014440 r i n g [ s s , " G A T E " ] ; 0014460 \r \t A p p 376 001 \0 372 376 e n d D e c 0014500 i m a l [ s s , c u r r e n t P 0014520 a r a m N u m b e r ] ; \r \t A p 0014540 p e n d C h a r [ s s , ' - ] ; 0014560 \r \t A p p e n d D e c i m a l [ 0014600 s s , g c . n o r C n t ] ; \r \t 0014620 F O R i : I N T E G E R I N 0014640 [ 0 . . g c . n o r C n t ) 0014660 D O \r \t I F s s . l e n g 0014700 t h > 9 2 T H E N B E G I N 0014720 A p p e n d S t r i n g [ s s 0014740 , " . E T C " ] ; E X I T ; E N 0014760 D ; \r \t I F g c . a n d s 0015000 [ i ] > 1 T H E N \r \t 0015020 B E G I N \r \t \t A p p e n d C h 0015040 a r [ s s , ' - ] ; \r \t \t A p p 0015060 e n d C h a r [ s s 376 001 \0 256 256 , 0015100 ( ' A + i ) ] ; \r \t \t A p p e n 0015120 d D e c i m a l [ s s , g c . a 0015140 n d s [ i ] ] ; \r \t E N 0015160 D ; \r \t E N D L O O P ; \r \t s _ 0015200 n e w S t r i n g [ s s ] ; \r 0015220 E N D ; \r \r m A n d 1 : m 0015240 A n d P r o c d = \r B 0015260 E G I N \r \t O P E N c u r r e 0015300 n t P a r a m e t e r s ; \r \t i 0015320 : I N T E G E R ; \r \t l l : L O 0015340 N G P O I N T E R T O l i 0015360 s t ; \r \t d x _ 0 ; \r \t g a t . 0015400 f i r s t I n T o p A v a i l _ 0015420 T R U E ; \r \t I F t o t I n s 0015440 = 1 T H E N \r \t B E G 0015460 I N \r \t \t y _ y + i n v O f f 376 0015500 001 \0 343 Z ; \r \t \t l l _ m a k e L 0015520 i s t [ m a k e X s t r [ s t a 0015540 n d W i d t h , c L e n g t h ] 0015560 , x , y - 4 , 0 , 0 ] ; \r \t \t l 0015600 p _ i n s e r t L i s t [ l p , 0015620 l l ] ; \r \t \t g a t . i n s [ 0 0015640 ] _ [ x , y ] ; \r \t \t g a t . f 0015660 i r s t I n T o p _ [ x - 2 , y 0015700 + 4 ] ; \r \t \t g a t . r S p a c 0015720 _ 2 ; \r \t \t g a t . l S p a c _ 0015740 3 ; \r \t \t d x _ s t a n d W i d 0015760 t h + 2 ; \r \t \t n l _ l p ; \r \t 0016000 \t w i d _ d x + 6 ; \r \t \t R E T 0016020 U R N ; \r \t E N D ; \r \t 0016040 I F i n p u t s = 0 T H E N 0016060 g a t . l S p a c _ g a t . r 0016100 S p a c 376 001 \0 200 363 _ 1 ; \r \t F O 0016120 R i I N [ 0 . . a C n t ) 0016140 D O \r \t l l _ m a k e L i 0016160 s t [ m a k e X s t r [ s t a n 0016200 d W i d t h * a C n t , c L e n 0016220 g t h ] , x + d x , y , 2 , 0 ] 0016240 ; \r \t l p _ i n s e r t L i 0016260 s t [ l p , l l ] ; \r \t g a 0016300 t . i n s [ i n p u t s + i ] _ 0016320 [ x + d x + 4 + c L e n g t h / 0016340 2 , y + s t a n d W i d t h * a 0016360 C n t + 6 ] ; \r \t I F i n 0016400 p u t s + i = 0 T H E N g a 0016420 t . f i r s t I n T o p _ [ x + 0016440 d x + 4 + c L e n g t h / 2 , y 0016460 + 2 ] ; \r \t d x _ d x + 8 ; 0016500 \r \t E N D L O O P 376 001 \0 @ 271 ; \r 0016520 \t n l _ l p ; \r \t w i d _ d x + 0016540 4 ; \r E N D ; \r m P u 1 0016560 : m P u P r o c d = \r 0016600 B E G I N \r \t O P E N c u r r 0016620 e n t P a r a m e t e r s ; \r \t 0016640 l p p : L O N G P O I N T E R 0016660 T O l i s t ; \r \t w i d : I 0016700 N T E G E R _ p u t W i d + 1 2 0016720 ; \r \t t : I N T E G E R _ x 2 - 0016740 w i d ; \r \t o x : I N T E G E R 0016760 _ m x + g a t . r S p a c * 2 ; 0017000 \r \t y : I N T E G E R _ 1 6 ; \r 0017020 \t I F t o t I n s = 1 T H E 0017040 N \r \t B E G I N \r \t \t x 0017060 2 _ x 1 ; \r \t \t x 1 _ x 1 - s t 0017100 a n d W i d t h ; \r \t \t t _ 376 001 0017120 \0 / x 2 - w i d ; \r \t \t y _ y 0017140 + i n v O f f ; \r \t E N 0017160 D ; \r \t I F t < x 1 T H E N 0017200 t _ M I N [ x 1 , m x - w i d 0017220 ] ; \r \t I F t < 0 T H E N 0017240 t _ 0 ; \r \t x 1 _ M I N [ t , x 0017260 1 ] ; \r \t x 2 _ M A X [ x 2 , t 0017300 + w i d ] ; \r \t l p p _ m a k e 0017320 L i s t [ m a k e W i r e [ x 2 0017340 - x 1 , w W i d , d i f ] , x 1 0017360 , y + 8 , 2 , 0 ] ; \r \t l p _ i 0017400 n s e r t L i s t [ l p , l p p 0017420 ] ; \r \t l p p _ m a k e L i s t 0017440 [ m a k e B u t c o n [ ] , t , 0017460 y , 0 , 0 ] ; \r \t l p _ i n s e 0017500 r t L i s t [ l p , l p p ] ; \r 0017520 \t l p 376 001 \0 210 006 p _ m a k e L i 0017540 s t [ m a k e D i f c o n [ M A 0017560 X [ 8 , p u t W i d ] ] , t + 1 0017600 2 , 0 , 2 , 0 ] ; \r \t l p _ i n 0017620 s e r t L i s t [ l p , l p p ] 0017640 ; \r \t d x _ M A X [ t + w i d + 0017660 4 , x 2 ] ; \r \t I F t + w i d 0017700 + 2 < o x T H E N \r \t 0017720 B E G I N \r \t \t d x _ M A X [ o 0017740 x + 2 , d x ] ; \r \t \t l p p _ m 0017760 a k e L i s t [ m a k e W i r e 0020000 [ o x - t - w i d , 4 , p o l ] 0020020 , t + w i d + 2 , y + 2 , 2 , 0 0020040 ] ; \r \t \t l p _ i n s e r t L i 0020060 s t [ l p , l p p ] ; \r \t \t g a 0020100 t . o u t _ [ o x + 2 , y + 2 ] 0020120 ; \r \t E 376 001 \0 214 202 N D \r 0020140 \t E L S E \r \t B E G I 0020160 N \r \t \t g a t . o u t _ [ t + w 0020200 i d + 4 , y + 2 ] ; \r \t 0020220 E N D ; \r \t l p p _ m a k e L i 0020240 s t [ m a k e W i r e [ y - 6 , 0020260 p u t W i d , d i f ] , t + 1 2 0020300 , 6 , 0 , 0 ] ; \r \t l p _ i n s 0020320 e r t L i s t [ l p , l p p ] ; 0020340 \r \t l p p _ m a k e L i s t [ m 0020360 a k e X s t r [ p u t W i d , p 0020400 u t L e n , T R U E ] , t + 8 , 0020420 y - 2 , 0 , 0 ] ; \r \t n l _ i n 0020440 s e r t L i s t [ l p , l p p ] 0020460 ; \r E N D ; \r m P u 2 : 0020500 m P u P r o c d = \r B 0020520 E G I N \r \t O P E N c u 376 001 \0 0020540 \v f r r e n t P a r a m e t e r 0020560 s ; \r \t l p p : L O N G P O I 0020600 N T E R T O l i s t ; \r \t w 0020620 i d : I N T E G E R = 1 0 ; \r \t 0020640 t : I N T E G E R _ x 2 - w i d 0020660 ; \r \t o x : I N T E G E R _ m x 0020700 + g a t . r S p a c * 2 ; \r \t y 0020720 : I N T E G E R _ s t r t Y - 1 0020740 2 ; \r \t I F t o t I n s = 1 0020760 T H E N \r \t B E G I N \r 0021000 \t \t x 2 _ x 1 ; \r \t \t x 1 _ x 1 0021020 - s t a n d W i d t h ; \r \t \t t 0021040 _ x 2 - w i d ; \r \t \t y _ y + i 0021060 n v O f f ; \r \t E N D ; 0021100 \r \t I F t < x 1 - 2 T H E N 0021120 t _ M I N [ x 1 - 2 , m x - w 0021140 i d 376 001 \0 213 N ] ; \r \t I F t < 0021160 0 T H E N t _ 0 ; \r \t x 1 _ 0021200 M I N [ t + 2 , x 1 ] ; \r \t x 2 0021220 _ M A X [ x 2 , t + w i d ] ; \r 0021240 \t l p p _ m a k e L i s t [ m a 0021260 k e W i r e [ x 2 - x 1 , w W i 0021300 d , d i f ] , x 1 , y + 6 , 2 , 0021320 0 ] ; \r \t l p _ i n s e r t L i 0021340 s t [ l p , l p p ] ; \r \t l p p 0021360 _ m a k e L i s t [ m a k e D i 0021400 f c o n [ 8 ] , t + 2 , 0 , 2 , 0021420 0 ] ; \r \t l p _ i n s e r t L i 0021440 s t [ l p , l p p ] ; \r \t d x _ 0021460 M A X [ t + w i d + 2 , x 2 ] ; 0021500 \r \t I F t + w i d < o x T H 0021520 E N \r \t B E G I N \r \t \t 0021540 d x _ M A X [ 376 001 \0 177 327 o x + 2 0021560 , d x ] ; \r \t \t l p p _ m a k e 0021600 L i s t [ m a k e W i r e [ o x 0021620 - t - w i d , 4 , p o l ] , t + 0021640 w i d + 2 , y , 2 , 0 ] ; \r \t \t 0021660 l p _ i n s e r t L i s t [ l p 0021700 , l p p ] ; \r \t \t g a t . o u t 0021720 _ [ o x + 2 , y ] ; \r \t 0021740 E N D \r \t E L S E \r \t 0021760 B E G I N \r \t \t g a t . o u t _ 0022000 [ t + w i d + 4 , y ] ; \r \t 0022020 E N D ; \r \t l p p _ m a k e 0022040 L i s t [ m a k e P u l l u p [ 0022060 p u t W i d , p u t L e n ] , t 0022100 , \r \t \t ( I F t o t I n s > 1 0022120 T H E N 8 E L S E i n v 0022140 O f f + 8 ) , 0 , 0 ] ; 376 001 \0 m 0022160 330 \r \t n l _ i n s e r t L i s t 0022200 [ l p , l p p ] ; \r \t I F t o 0022220 t I n s = 1 T H E N \r \t 0022240 B E G I N \r \t \t l p p _ m a k 0022260 e L i s t [ m a k e W i r e [ i 0022300 n v O f f + 4 , p u t W i d , d 0022320 i f ] , t + 4 , 6 , 0 , 0 ] ; \r 0022340 \t \t n l _ i n s e r t L i s t [ 0022360 n l , l p p ] ; \r \t E N 0022400 D ; \r E N D ; \r m T W 1 0022420 : m T W P r o c d = \r 0022440 B E G I N \r \t I F t o t I n s 0022460 = 1 T H E N { d x _ 1 0 ; n 0022500 l _ l p ; R E T U R N } ; \r \t n 0022520 l _ m a k e L i s t [ m a k e W 0022540 i r e [ 1 4 , c u r r e n t P a 0022560 r 376 001 \0 4 300 a m e t e r s . w W 0022600 i d , d i f ] , \r \t \t x , c u r 0022620 r e n t P a r a m e t e r s . s 0022640 t r t Y - 6 , 0 , 0 ] ; \r \t n l 0022660 _ i n s e r t L i s t [ l p , n 0022700 l ] ; \r \t d x _ c u r r e n t P 0022720 a r a m e t e r s . w W i d ; \r 0022740 E N D ; \r m C o n t 1 : 0022760 m C o n t P r o c d = \r 0023000 B E G I N \r \t O P E N c u r 0023020 r e n t P a r a m e t e r s ; \r 0023040 \t l h , r h , n y , c : I N T E 0023060 G E R ; \r \t l h _ s t a n d W i 0023100 d t h * l C n t ; \r \t r h _ s t 0023120 a n d W i d t h * r C n t ; \r \t 0023140 I F t o t I n s = 1 T H E N 0023160 \r \t 376 001 \0 { 9 B E G I N 0023200 \r \t \t x _ x + 6 ; \r \t \t y _ y - 0023220 2 + i n v O f f ; \r \t \t n y _ y 0023240 + 8 ; \r \t \t n l _ m a k e L 0023260 i s t [ m a k e D i f c o n [ 8 0023300 ] , x , n y , 0 , 0 ] ; \r \t \t l 0023320 p _ i n s e r t L i s t [ l p , 0023340 n l ] ; \r \t \t n l _ m a k e L i 0023360 s t [ m a k e W i r e [ l h , 4 0023400 , d i f ] , x , n y + 2 , 2 , 0 0023420 ] ; \r \t \t l p _ i n s e r t L i 0023440 s t [ l p , n l ] ; \r \t \t I F 0023460 m a x y - n y > 2 T H E N \r \t 0023500 \t B E G I N \r \t \t \t n l 0023520 _ m a k e L i s t [ m a k e W i 0023540 r e [ m a x y - n y + 2 , m w W 0023560 i d , m e t ] , x , n 376 001 \0 305 320 0023600 y + 2 , 0 , 0 ] ; \r \t \t \t n l _ 0023620 i n s e r t L i s t [ l p , n l 0023640 ] ; \r \t \t E N D ; \r \t \t 0023660 d x _ 2 ; \r \t \t w i d _ 2 ; \r \t 0023700 \t R E T U R N ; \r \t E N 0023720 D ; \r \t x _ x + 2 ; \r \t c _ I F 0023740 M A X [ r h , l h ] < 1 2 T 0023760 H E N 1 E L S E ( M A X [ 0024000 r h , l h ] - 8 ) / 1 6 + 1 ; \r 0024020 \t y _ y + 4 ; \r \t n y _ y + 0024040 ( ( M A X [ r h , l h ] - 8 ) M 0024060 O D 1 6 ) ; \r \t F O R i : I 0024100 N T E G E R I N [ 0 . . c ) 0024120 D O \r \t n l _ m a k e L i 0024140 s t [ m a k e D i f c o n [ 8 ] 0024160 , x , n y + i * 1 6 , 0 , 0 ] ; 0024200 376 001 \0 272 U \r \t l p _ i n s e 0024220 r t L i s t [ l p , n l ] ; \r \t 0024240 E N D L O O P ; \r \t n l _ m a k 0024260 e L i s t [ m a k e W i r e [ M 0024300 A X [ r h , l h ] , 4 , d i f ] 0024320 , x + 2 , y , 0 , 0 ] ; \r \t l p 0024340 _ i n s e r t L i s t [ l p , n 0024360 l ] ; \r \t n l _ m a k e L i s t 0024400 [ m a k e W i r e [ m a x y - n 0024420 y + 4 , m w W i d , m e t ] , x 0024440 , n y , 0 , 0 ] ; \r \t n l _ i n 0024460 s e r t L i s t [ l p , n l ] ; 0024500 \r \t d x _ 8 ; \r \t w i d _ 1 0 ; 0024520 \r E N D ; \r m C a l c 1 0024540 : c a l c M y P r o c d = \r 0024560 B E G I N \r \t m y _ 0 ; \r 0024600 \t F O R 376 \0 211 020 l i : I N T E 0024620 G E R I N [ 0 . . g c . n o 0024640 r C n t ) D O \r \t m y _ M 0024660 A X [ m y , g c . a n d s [ i ] 0024700 ] ; \r \t E N D L O O P ; \r \t m y 0024720 _ m y * c u r r e n t P a r a m 0024740 e t e r s . s t a n d W i d t h 0024760 + 8 ; \r E N D ; \r \r \r 0025000 E N D . - - o f r l g a 0025020 t e \r 377 \0 \0 r l i n . m e s a \0 0025040 373 227 366 204 260 \0 \0 376 001 \0 275 240 - - a 0025060 p r o g r a m t o r u n 0025100 w i t h i n C h i p m o n k \r 0025120 \r - - l a s t m o d i f i e 0025140 d b y P e t i t , O c t o 0025160 b e r 1 3 , 1 9 8 1 8 : 0025200 0 0 P M \r - - w r i t t e n 0025220 b y P e t i t , O c t o b 0025240 e r 9 , 1 9 8 1 2 : 0 4 0025260 P M \r \r D I R E C T O R Y \r 0025300 p p d d e f s , \r p p d e 0025320 f s , \r r l d e f s , \r 0025340 A l t o F i l e D e f s , \r 0025360 Z o n e A l l o c D e f s , \r 0025400 S t r e a m D e f s , \r D 0025420 i r e c t o r y D e f s , \r 0025440 S t r i n g D e f s ; \r 376 001 \0 324 0025460 242 \r r l i n : P R O G R A M \r 0025500 I M P O R T S p p d e f s 0025520 , S t r e a m D e f s , D i 0025540 r e c t o r y D e f s , r l d 0025560 e f s , S t r i n g D e f s \r 0025600 E X P O R T S r l d e f s 0025620 = \r B E G I N O P E N p 0025640 p d d e f s , r l d e f s , 0025660 S t r e a m D e f s , D i r e 0025700 c t o r y D e f s , p p d e f 0025720 s , S t r i n g D e f s ; \r \r 0025740 \r f H a n d l e : D i s k H 0025760 a n d l e ; \r f p : A l t o 0026000 F i l e D e f s . F P ; \r \r 0026020 m y Z o n e : P U B L I C U 0026040 N C O U N T E D Z O N E ; \r \r 0026060 376 001 \0 354 253 f i l e E r r : P 0026100 U B L I C S I G N A L = C O D 0026120 E ; \r a b b r t : P U B L I 0026140 C S I G N A L = C O D E ; \r \r 0026160 \r - - N E W F I L E F O R 0026200 M A T : \r \r - - e a c h g a 0026220 t e i s r e p r e s e n t e 0026240 d b y o n e l i n e o f 0026260 t e x t , t h u s : \r - - 0026300 < o u t p u t N o d e N 0026320 a m e > ( < # > ) : < 0026340 i n p u t S p e c > < s e p 0026360 > < i n p u t S p e c > . 0026400 . . < C R > \r - - W h e r e 0026420 < i n p u t S p e c > i s 0026440 e i t h e r < N o d e N a 0026460 m e > f 376 001 \0 x 207 o r a 0026500 s i n g l e n o r i n p u t 0026520 \r - - o r [ < N o d e N 0026540 a m e > < s e p > < N o d e 0026560 N a m e > . . . ] f o 0026600 r a n A N D n o r i n p 0026620 u t \r - - < s e p > i s e 0026640 i t h e r s p a c e o r c 0026660 o m m a . \r - - N o d e N a 0026700 m e s a r e i d e n t i f i 0026720 e r s ( s t r i n g s o f 0026740 < D i g i t > a n d / o r < 0026760 L e t t e r > ) \r - - T h e 0027000 " ( < # > ) " f o l l o w 0027020 i n g t h e < o u t p u t 0027040 N o d e N a m e > i s t h 0027060 e \r - - p a r a m e 376 001 \0 344 330 0027100 t e r ( p u l l u p s t r e 0027120 n g t h ) i n d e x . I t 0027140 i s o p t i o n a l , a n 0027160 d i f \r - - i t i s l e 0027200 f t o u t t h e c u r r e 0027220 n t d e f a u l t w i l l 0027240 b e u s e d . \r - - A l i 0027260 n e c o n s i s t i n g o f 0027300 o n l y : ( < # > ) < C R > 0027320 w i l l s e t t h e d 0027340 e f a u l t . \r - - N . B . : 0027360 i d e n t i f i e r s a r e 0027400 l i m i t e d t o 1 0 0 0027420 C h a r a c t e r s ! \r - - f 0027440 i l e e n d s w i t h a 0027460 l i n e c o n s i s t i n g 0027500 376 001 \0 6 265 o f @ \r \r - - < C 0027520 R > a n d ; a r e e q u 0027540 i v a l e n t . C o m m a 0027560 a n d s p a c e a r e e q 0027600 u i v a l e n t . \r - - a l 0027620 i n e s t a r t i n g w i t 0027640 h ( f i r s t n o n - b l a 0027660 n k c h r ) a m i n u s 0027700 ( - ) i s i g n o r e d . \r 0027720 \r \r i t e m T y p e : T Y P E 0027740 = { i d e n t , n u m , s e p 0027760 , l e n d , c o l o n , l p a r 0030000 , r p a r , l b r k , r b r k , 0030020 f e n d , c o m m t } ; \r p i n 0030040 T y p e : T Y P E = { o u t 0030060 , n o r , f i r s t A n d , a n 0030100 d } ; \r p 376 001 \0 @ 001 i n D e f : 0030120 T Y P E = R E C O R D [ n x 0030140 t : L O N G P O I N T E R T 0030160 O p i n D e f , n o d e : I N 0030200 T E G E R , t y p e : p i n T y 0030220 p e ] ; \r \r n o d e N a m e L i 0030240 s t : T Y P E = R E C O R D 0030260 [ n x t : L O N G P O I N T E 0030300 R T O n o d e N a m e L i s 0030320 t , \r \t n o d e : I N T E G E R 0030340 , n a m e : S T R I N G ] ; \r \r 0030360 t e r m C h a r : C H A R A C T 0030400 E R ; \r d u m m y t c : C H A R 0030420 A C T E R = 1 7 7 C ; \r p i 0030440 n s , p n p : L O N G P O I N 0030460 T E R T O p i n D e f ; \r s 0030500 a v e P D : L O N G 376 001 \0 362 1 0030520 P O I N T E R T O p i n D e 0030540 f _ N I L ; \r n n L i s t : L O 0030560 N G P O I N T E R T O n o 0030600 d e N a m e L i s t ; \r \r i n p 0030620 u t C i r c u i t : P U B L I C 0030640 P R O C E D U R E \r \t R E T U 0030660 R N S [ p n t : L O N G P O I 0030700 N T E R T O G a t e L i s t 0030720 , d w C n t , m a x N N : I N T 0030740 E G E R ] = \r B E G I 0030760 N \r \t s : S T R I N G ; \r \t o k 0031000 : B O O L E A N ; \r \t t y p : i 0031020 t e m T y p e ; \r \t g c : L O N 0031040 G P O I N T E R T O g a t 0031060 e C h a r a c ; \r \t g a t : L O 0031100 N G P O I N T E R T O g 376 0031120 001 \0 225 017 a t e ; \r \t g p , m o s 0031140 t R e c e n t : L O N G P O I 0031160 N T E R T O G a t e L i s t 0031200 ; \r \t n o r C n t , i n C n t , 0031220 i , a , p a r m : I N T E G E R 0031240 ; \r \t d e f p a r m : I N T E G 0031260 E R _ 1 ; - - d e f a u l t \r \t 0031300 [ o k , s , ] _ t y p e I n [ " 0031320 T y p e F i l e N a m e " L 0031340 , " W i t h E x t e n s i o n 0031360 " L , " " L ] ; \r \t I F N O T 0031400 o k T H E N S I G N A L 0031420 a b b r t ; \r \t o k _ o p e n F 0031440 [ s ] ; \r \t p n t _ N I L ; \r \t 0031460 p i n s _ N I L ; \r \t d w C n t 0031500 _ m a x N N _ 0 ; \r \t n n L i s 0031520 t _ N I 376 001 \0 270 356 L ; \r \t W H I 0031540 L E N O T o k D O \r \t 0031560 [ o k , s , ] _ t y p e I n [ " 0031600 N o S u c h F i l e " L , " 0031620 T y p e F i l e N a m e " L 0031640 , \r \t \t \t " W i t h E x t e n 0031660 s i o n " L ] ; \r \t I F N 0031700 O T o k T H E N S I G N A 0031720 L a b b r t ; \r \t o k _ o 0031740 p e n F [ s ] ; \r \t E N D L O O 0031760 P ; \r \r \t t e r m C h a r _ d u 0032000 m m y t c ; \r \t D O \r \t [ t 0032020 y p , s , a ] _ s c a n [ ] ; \r 0032040 \t I F t y p = f e n d T 0032060 H E N E X I T ; \r \t I F 0032100 t y p = c o m m t T H E N U 0032120 N T I L t y p = 376 001 \0 @ 216 l e 0032140 n d D O [ t y p , , ] _ s c 0032160 a n [ ] ; E N D L O O P ; \r \t 0032200 I F t y p = l e n d T H E 0032220 N L O O P ; \r \t I F t y 0032240 p = l p a r T H E N \r \t 0032260 B E G I N \r \t \t d e f p a r m 0032300 _ r e a d N u m [ ] ; \r \t \t c h 0032320 e c k F o r C h r [ ' ) ] ; \r \t 0032340 \t [ t y p , , ] _ s c a n [ ] ; 0032360 \r \t \t I F t y p # l e n d T 0032400 H E N S I G N A L f i l e E 0032420 r r ; \r \t E N D \r \t 0032440 E L S E I F t y p # i d e n 0032460 t T H E N S I G N A L f i 0032500 l e E r r \r \t E L S E \r \t 0032520 B E G I N \r \t \t p a r 376 001 0032540 \0 327 035 m _ d e f p a r m ; \r \t \t 0032560 e n t e r P i n [ o u t , s ] ; 0032600 \r \t \t [ t y p , , ] _ s c a n [ 0032620 ] ; \r \t \t I F t y p = l p a r 0032640 T H E N \r \t \t B E G I 0032660 N \r \t \t \t p a r m _ r e a d N u 0032700 m [ ] ; \r \t \t \t c h e c k F o r 0032720 C h r [ ' ) ] ; \r \t \t \t [ t y p 0032740 , , ] _ s c a n [ ] ; \r \t \t 0032760 E N D ; \r \t \t I F t y p # 0033000 c o l o n T H E N S I G N A 0033020 L f i l e E r r ; \r \t \t I F 0033040 N O T p a r m I N p a r m 0033060 a C n t T H E N S I G N A L 0033100 f i l e E r r ; \r \t \t n o r C 0033120 n t _ 0 ; \r \t \t D O \r \t \t [ 0033140 t y p 376 001 \0 _ k , s , a ] _ s c 0033160 a n [ ] ; \r \t \t I F t y p 0033200 = l b r k T H E N \r \t \t 0033220 B E G I N \r \t \t \t [ t y p , s 0033240 , a ] _ s c a n [ ] ; \r \t \t \t I 0033260 F t y p # i d e n t T H E N 0033300 S I G N A L f i l e E r r ; 0033320 \r \t \t \t e n t e r P i n [ f i r 0033340 s t A n d , s ] ; \r \t \t \t n o r 0033360 C n t _ n o r C n t + 1 ; \r \t \t 0033400 \t D O \r \t \t \t [ t y p , s , 0033420 a ] _ s c a n [ ] ; \r \t \t \t 0033440 I F t y p = r b r k T H E N 0033460 E X I T ; \r \t \t \t I F t 0033500 y p # i d e n t T H E N S I 0033520 G N A L f i l e E r r ; \r \t \t 0033540 \t e n t e r 376 001 \0 Y 320 P i n 0033560 [ a n d , s ] ; \r \t \t \t E N D L 0033600 O O P ; \r \t \t \t L O O P ; \r \t \t 0033620 E N D ; \r \t \t I F 0033640 t y p = l e n d T H E N E X 0033660 I T ; \r \t \t I F t y p # i 0033700 d e n t T H E N S I G N A L 0033720 f i l e E r r ; \r \t \t n o 0033740 r C n t _ n o r C n t + 1 ; \r \t 0033760 \t e n t e r P i n [ n o r , 0034000 s ] ; \r \t \t E N D L O O P ; \r \t 0034020 \t g c _ G e t S p a c e [ S I Z 0034040 E [ g a t e C h a r a c [ n o r 0034060 C n t ] ] ] ; \r \t \t g c . n o r 0034100 C n t _ n o r C n t ; \r \t \t i n 0034120 C n t _ i _ 0 ; \r \t \t p n p _ p 0034140 i n s ; \r \t \t W H I L E 376 001 \0 0034160 m 254 p n p # N I L D O \r \t \t 0034200 S E L E C T p n p . t y p e 0034220 F R O M \r \t \t \t o u t = > 0034240 { p n p _ p n p . n x t ; L O O 0034260 P } ; \r \t \t \t n o r = > { i 0034300 n C n t _ i n C n t + 1 ; g c . 0034320 a n d s [ i ] _ 1 ; i _ i + 1 ; 0034340 p n p _ p n p . n x t } ; \r \t \t 0034360 \t f i r s t A n d = > B E G 0034400 I N \r \t \t \t \t a _ 1 ; \r \t \t \t \t 0034420 i n C n t _ i n C n t + 1 ; \r \t 0034440 \t \t \t p n p _ p n p . n x t ; \r 0034460 \t \t \t \t W H I L E p n p # N I 0034500 L A N D p n p . t y p e = a 0034520 n d D O \r \t \t \t \t a _ a + 0034540 1 ; \r \t \t \t \t i n C n t _ i 0034560 n C 376 001 \0 310 376 n t + 1 ; \r \t \t \t 0034600 \t p n p _ p n p . n x t ; \r 0034620 \t \t \t \t E N D L O O P ; \r \t \t \t 0034640 \t g c . a n d s [ i ] _ a ; \r \t 0034660 \t \t \t i _ i + 1 ; \r \t \t \t 0034700 E N D ; \r \t \t \t E N D C A S E 0034720 ; \r \t \t E N D L O O P ; \r \t \t g 0034740 c . i n C n t _ i n C n t ; \r \t 0034760 \t g a t _ g e t G a t e [ g c , 0035000 p a r m ] ; \r \t \t g p _ g e t N 0035020 e w G a t e L i s t [ i n C n t 0035040 ] ; \r \t \t i _ 0 ; \r \t \t p n p _ 0035060 p i n s ; \r \t \t a _ p n p . n o 0035100 d e ; \r \t \t m a x N N _ M A X [ 0035120 m a x N N , a ] ; \r \t \t g p . o 0035140 u t N o d e _ a ; \r \t \t p n p _ 0035160 p n p . n x t 376 001 \0 M 006 ; \r \t \t 0035200 W H I L E p n p # N I L D O 0035220 \r \t \t a _ p n p . n o d e ; 0035240 \r \t \t g p . n o d e s [ i ] 0035260 _ a ; \r \t \t m a x N N _ M A 0035300 X [ m a x N N , a ] ; \r \t \t 0035320 i _ i + 1 ; \r \t \t p n p _ p 0035340 n p . n x t ; \r \t \t E N D L O O 0035360 P ; \r \t \t d w C n t _ d w C n t 0035400 + i n C n t + 1 ; \r \t \t g p . g 0035420 a t _ g a t ; \r \t \t g p . n x t 0035440 _ N I L ; \r \t \t I F p n t = N 0035460 I L T H E N p n t _ g p E 0035500 L S E m o s t R e c e n t . n 0035520 x t _ g p ; \r \t \t m o s t R e c 0035540 e n t _ g p ; \r \t \t f r e e u p 0035560 P i n s [ ] ; \r \t 376 001 \0 247 0035600 252 E N D ; \r \t E N D L O O P ; 0035620 \r E N D ; \r c h e c k F 0035640 o r C h r : P R O C E D U R E [ 0035660 c : C H A R A C T E R ] = \r 0035700 B E G I N \r \t c h r : C H 0035720 A R A C T E R ; \r \t W H I L E 0035740 ( c h r _ r e a d C h r [ ] ) 0035760 = ' O R c h r = ' , O 0036000 R c h r = 1 1 C D O E N D 0036020 L O O P ; \r \t I F c h r # c 0036040 T H E N S I G N A L f i l e 0036060 E r r ; \r E N D ; \r o p 0036100 e n F : P R O C E D U R E [ f 0036120 n a m e : S T R I N G ] \r \t R 0036140 E T U R N S [ B O O L E A N ] 0036160 = \r B E G I N \r \t I F 0036200 376 001 \0 g 323 N O T D i r e c t 0036220 o r y L o o k u p [ @ f p , f 0036240 n a m e , F A L S E ] T H E 0036260 N R E T U R N [ F A L S E ] ; 0036300 \r \t f H a n d l e _ N e w B 0036320 y t e S t r e a m [ f n a m e , 0036340 R e a d ] ; \r \t R E T U R N [ 0036360 T R U E ] ; \r E N D ; \r 0036400 r e a d C h r : P R O C E D U R 0036420 E R E T U R N S [ C H A R A C 0036440 T E R ] = \r B E G I N 0036460 \r \t c : C H A R A C T E R _ t e 0036500 r m C h a r ; \r \t t e r m C h a 0036520 r _ d u m m y t c ; \r \t I F c 0036540 # d u m m y t c T H E N R E 0036560 T U R N [ c ] ; \r \t I F N O T 0036600 f H a n d 376 001 \0 H 210 l e . e n 0036620 d o f [ f H a n d l e ] T H E 0036640 N R E T U R N [ f H a n d l e 0036660 . g e t [ f H a n d l e ] ] ; \r 0036700 \t R E T U R N [ 1 5 C ] ; \r 0036720 E N D ; \r r e a d N u m : P 0036740 R O C E D U R E R E T U R N S 0036760 [ i : I N T E G E R ] = \r 0037000 B E G I N \r \t c : C H A R A 0037020 C T E R ; \r \t i _ 0 ; \r \t W H I 0037040 L E ( c _ r e a d C h r [ ] ) 0037060 = ' O R c = ' , O R 0037100 c = 1 1 C D O E N D L O O 0037120 P ; \r \t W H I L E c I N [ 0037140 ' 0 . . ' 9 ] D O \r \t i _ 0037160 i * 1 0 + ( c - ' 0 ) ; \r \t 0037200 c _ r e a d C h r [ ] 376 001 \0 361 305 0037220 ; \r \t E N D L O O P ; \r \t t e r 0037240 m C h a r _ c ; \r E N D 0037260 ; \r s c a n : P R O C E D U R E 0037300 R E T U R N S [ t : i t e m T 0037320 y p e , s : S T R I N G , i : I 0037340 N T E G E R ] = \r B E 0037360 G I N \r \t c : C H A R A C T E R 0037400 ; \r \t s s : S T R I N G _ [ 1 0 0037420 0 ] ; \r \t i _ 0 ; \r \t s _ N I L 0037440 ; \r \t W H I L E ( c _ r e a d 0037460 C h r [ ] ) = ' O R c 0037500 = ' , O R c = 1 1 C D O 0037520 E N D L O O P ; \r \t t _ n u m ; 0037540 \r \t I F N O T ( c I N [ 0037560 ' 0 . . ' 9 ] O R c I N 0037600 [ ' a . . ' z ] O R c I N 0037620 376 001 \0 ' > [ ' A . . ' Z ] ) 0037640 T H E N \r \t B E G I N \r 0037660 \t \t S E L E C T c F R O M \r 0037700 \t \t \t ' , , ' = > t _ s e 0037720 p ; \r \t \t \t ' : = > t _ c o 0037740 l o n ; \r \t \t \t 1 5 C , ' ; = 0037760 > t _ l e n d ; \r \t \t \t ' ( 0040000 = > t _ l p a r ; \r \t \t \t ' [ 0040020 = > t _ l b r k ; \r \t \t \t ' 0040040 ] = > t _ r b r k ; \r \t \t \t 0040060 ' ) = > t _ r p a r ; \r \t \t 0040100 \t ' @ = > t _ f e n d ; \r \t 0040120 \t \t ' - = > t _ c o m m t ; 0040140 \r \t \t E N D C A S E = > S I 0040160 G N A L f i l e E r r ; \r \t \t 0040200 R E T U R N ; \r \t E N D 0040220 ; \r \t W H 376 001 \0 336 031 I L E c 0040240 I N [ ' 0 . . ' 9 ] O R c 0040260 I N [ ' a . . ' z ] O R 0040300 c I N [ ' A . . ' Z ] D O 0040320 \r \t I F t = n u m T H E 0040340 N \r \t B E G I N \r \t \t I 0040360 F c I N [ ' 0 . . ' 9 ] 0040400 T H E N i _ i * 1 0 + ( c - ' 0040420 0 ) \r \t \t E L S E t _ i d e 0040440 n t ; \r \t E N D ; \r \t 0040460 A p p e n d C h a r [ s s , c 0040500 ] ; \r \t c _ r e a d C h r [ 0040520 ] ; \r \t E N D L O O P ; \r \t s _ 0040540 n e w S t r i n g [ s s ] ; \r \t 0040560 t e r m C h a r _ c ; \r 0040600 E N D ; \r g e t N e w G a t e L 0040620 i s t : P R O C E D 376 001 \0 260 300 U 0040640 R E [ c n t : I N T E G E R ] 0040660 R E T U R N S [ L O N G P O I 0040700 N T E R T O G a t e L i s t 0040720 ] = \r B E G I N \r \t R 0040740 E T U R N [ m y Z o n e . N E W 0040760 [ G a t e L i s t [ c n t ] ] ] 0041000 ; \r E N D ; \r \r e n t e 0041020 r P i n : P R O C E D U R E [ t 0041040 y p : p i n T y p e , s : S T R 0041060 I N G ] = \r B E G I N 0041100 \r \t p : L O N G P O I N T E R 0041120 T O p i n D e f ; \r \t p p : 0041140 L O N G P O I N T E R T O 0041160 p i n D e f _ g e t P i n D e f 0041200 [ ] ; \r \t p p ^ _ [ N I L , e n 0041220 t e r N o d e N a m e [ s ] , 376 0041240 001 \0 \n 025 t y p ] ; \r \t I F p i 0041260 n s = N I L T H E N p i n s 0041300 _ p p \r \t E L S E \r \t 0041320 B E G I N \r \t \t p _ p i n s ; \r 0041340 \t \t W H I L E p . n x t # N I 0041360 L D O p _ p . n x t ; E N D 0041400 L O O P ; \r \t \t p . n x t _ p p 0041420 ; \r \t E N D ; \r 0041440 E N D ; \r g e t P i n D e f : P 0041460 R O C E D U R E R E T U R N S 0041500 [ p : L O N G P O I N T E R 0041520 T O p i n D e f ] = \r 0041540 B E G I N \r \t I F s a v e P 0041560 D = N I L T H E N R E T U R 0041600 N [ m y Z o n e . N E W [ p i n 0041620 D e f ] ] ; \r \t p _ s a v e P D 0041640 ; \r \t s 376 001 \0 & 213 a v e P D _ p 0041660 . n x t ; \r E N D ; \r f 0041700 r e e u p P i n s : P R O C E D 0041720 U R E = \r B E G I N \r 0041740 \t I F s a v e P D = N I L T 0041760 H E N { s a v e P D _ p i n s 0042000 ; p i n s _ N I L ; R E T U R N 0042020 } ; \r \t p n p _ s a v e P D ; \r 0042040 \t W H I L E p n p . n x t # N 0042060 I L D O p n p _ p n p . n x 0042100 t ; E N D L O O P ; \r \t p n p . 0042120 n x t _ p i n s ; \r \t p i n s _ 0042140 N I L ; \r E N D ; \r e n 0042160 t e r N o d e N a m e : P R O C 0042200 E D U R E [ s : S T R I N G ] 0042220 R E T U R N S [ I N T E G E R ] 0042240 = \r B E 376 001 \0 352 x G I 0042260 N \r \t n : I N T E G E R _ 0 ; \r 0042300 \t n n : L O N G P O I N T E R 0042320 T O n o d e N a m e L i s t 0042340 _ n n L i s t ; \r \t W H I L E 0042360 n n # N I L D O \r \t I F 0042400 E q u i v a l e n t S t r i n g 0042420 [ s , n n . n a m e ] T H E N 0042440 R E T U R N [ n n . n o d e ] 0042460 ; \r \t n _ M A X [ n , n n . 0042500 n o d e ] ; \r \t n n _ n n . 0042520 n x t ; \r \t E N D L O O P ; \r \t 0042540 n _ n + 1 ; \r \t n n _ m y Z o n 0042560 e . N E W [ n o d e N a m e L i 0042600 s t ] ; \r \t n n . n a m e _ s ; 0042620 \r \t n n . n o d e _ n ; \r \t n n 0042640 . n x t _ n n L i s t ; \r \t 376 \0 0042660 ; V 230 n n L i s t _ n n ; \r \t R 0042700 E T U R N [ n ] ; \r E N 0042720 D ; \r \r \r \r E N D . - - o f 0042740 r l i n \r 032 ( 1 7 9 2 ) \r 377 \0 0042760 \0 r l m a i n . m e s a \0 373 233 i 0043000 Q \0 \0 376 001 \0 220 024 - - a p r 0043020 o g r a m t o r u n w i t 0043040 h i n C h i p m o n k \r \r - - 0043060 l a s t m o d i f i e d b 0043100 y P e t i t , O c t o b e r 0043120 ? , 1 9 8 1 2 : 2 0 P 0043140 M \r - - w r i t t e n b y 0043160 P e t i t , O c t o b e r 9 0043200 , 1 9 8 1 2 : 0 4 P M \r 0043220 \r D I R E C T O R Y \r p p d 0043240 d e f s , \r p p d d d e f s 0043260 , \r p p d e f s , \r r l 0043300 d e f s , \r Z o n e A l l o 0043320 c D e f s , \r S t r i n g D 0043340 e f s ; \r \r r l m a i n : P R 0043360 O G R A M \r I M P O R T S 0043400 p p d d e f s , 376 001 \0 236 G p p 0043420 d e f s , Z o n e A l l o c D 0043440 e f s , p p d d d e f s , r 0043460 l d e f s \r - - E X P O R T S 0043500 r l d e f s - - = \r B E 0043520 G I N O P E N p p d d e f s 0043540 , r l d e f s , p p d d d e 0043560 f s , p p d e f s , S t r i 0043600 n g D e f s ; \r \r \r d o 0043620 w n W i r e A r r a y : T Y P E 0043640 = R E C O R D [ S E Q U E N 0043660 C E C O M P U T E D C A R D 0043700 I N A L O F d o w n W i r e 0043720 R e c ] ; \r d w A r : L O N 0043740 G P O I N T E R T O d o w 0043760 n W i r e A r r a y ; \r 0044000 n o d e A r r a y : T Y P E 376 001 0044020 \0 200 345 = R E C O R D [ S E Q 0044040 U E N C E C O M P U T E D C 0044060 A R D I N A L O F I N T E G 0044100 E R ] ; \r n o d e A r : L O 0044120 N G P O I N T E R T O n o 0044140 d e A r r a y ; \r h o r 0044160 L i n e A r r a y : T Y P E = 0044200 R E C O R D [ S E Q U E N C E 0044220 C O M P U T E D C A R D I N 0044240 A L O F h L i n e R e c ] ; 0044260 \r h l A r : L O N G P O I 0044300 N T E R T O h o r L i n e A 0044320 r r a y ; \r \r h L e v : I N 0044340 T E G E R ; \r d o w n W i r 0044360 e C n t , m a x N o d e N u m : 0044400 I N T E G E R ; \r m a x x , 0044420 m a x 376 001 \0 335 { y s , m i n y s 0044440 : I N T E G E R _ 0 ; \r m i 0044460 n e , l l : L O N G P O I N T 0044500 E R T O l i s t ; \r \r \r d o 0044520 S w i t c h : P R O C E D U R E 0044540 [ i , j : I N T E G E R ] = \r 0044560 B E G I N \r \t t : I N T 0044600 E G E R ; \r \t t _ d w A r [ i ] 0044620 . n o d e ; d w A r [ i ] . n o 0044640 d e _ d w A r [ j ] . n o d e ; 0044660 d w A r [ j ] . n o d e _ t ; \r 0044700 \t t _ d w A r [ i ] . d w L e f 0044720 t ; d w A r [ i ] . d w L e f t 0044740 _ d w A r [ j ] . d w L e f t ; 0044760 d w A r [ j ] . d w L e f t _ t 0045000 ; \r \t t _ d w A r [ i ] . d w R 0045020 i g h t ; d w A 376 001 \0 360 267 r [ i 0045040 ] . d w R i g h t _ d w A r [ j 0045060 ] . d w R i g h t ; d w A r [ j 0045100 ] . d w R i g h t _ t ; \r \t I F 0045120 ( t _ d w A r [ i ] . d w L e 0045140 f t ) # 0 T H E N d w A r [ 0045160 t ] . d w R i g h t _ i ; \r \t I 0045200 F ( t _ d w A r [ j ] . d w L 0045220 e f t ) # 0 T H E N d w A r 0045240 [ t ] . d w R i g h t _ j ; \r \t 0045260 I F ( t _ d w A r [ i ] . d w 0045300 R i g h t ) # 0 T H E N d w 0045320 A r [ t ] . d w L e f t _ i ; \r 0045340 \t I F ( t _ d w A r [ j ] . d 0045360 w R i g h t ) # 0 T H E N d 0045400 w A r [ t ] . d w L e f t _ j ; 0045420 \r E N D ; \r r u n 376 001 \0 0045440 g 301 L e n g t h : P R O C E D U 0045460 R E [ i : I N T E G E R ] R E 0045500 T U R N S [ I N T E G E R ] = 0045520 \r B E G I N \r \t l , r : 0045540 I N T E G E R ; \r \t l _ d w A r 0045560 [ i ] . d w L e f t ; \r \t r _ d 0045600 w A r [ i ] . d w R i g h t ; \r 0045620 \t I F l = 0 T H E N l _ i 0045640 E L S E \r \t U N T I L d w 0045660 A r [ l ] . d w L e f t = 0 D 0045700 O l _ d w A r [ l ] . d w L e 0045720 f t ; E N D L O O P ; \r \t I F 0045740 r = 0 T H E N r _ i E L S 0045760 E \r \t U N T I L d w A r [ r 0046000 ] . d w R i g h t = 0 D O r 0046020 _ d w A r [ r ] . d w R i g h t 0046040 ; E 376 001 \0 250 237 N D L O O P ; \r \t 0046060 U N T I L d w A r [ l ] . f i 0046100 x e d O R d w A r [ l ] . r 0046120 i g h t E n d = 0 O R d w A 0046140 r [ l + 1 ] . f i x e d D O 0046160 l _ l + 1 ; E N D L O O P ; \r \t 0046200 U N T I L d w A r [ r ] . f i 0046220 x e d O R d w A r [ r ] . l 0046240 e f t E n d = 0 O R d w A r 0046260 [ r - 1 ] . f i x e d D O r 0046300 _ r - 1 ; E N D L O O P ; \r \t R 0046320 E T U R N [ r - l ] ; \r 0046340 E N D ; \r \r m o v e D o w n : P 0046360 R O C E D U R E [ c u r , a m t 0046400 : I N T E G E R ] R E T U R N 0046420 S [ I N T E G E R ] = \r 0046440 B E G I N \r 376 001 \0 361 @ \t t : I 0046460 N T E G E R ; \r \t I F a m t = 0046500 0 T H E N \r \t B E G I 0046520 N \r \t \t a m t _ 1 0 0 0 0 ; \r \t 0046540 \t F O R i : I N T E G E R I 0046560 N [ 1 . . d o w n W i r e C n 0046600 t ] D O \r \t \t t _ h l A r 0046620 [ i ] . d i s t a n c e ; \r \t \t 0046640 I F t > = 0 A N D t < 0046660 a m t T H E N a m t _ t ; \r 0046700 \t \t E N D L O O P ; \r \t \t a m t 0046720 _ I F a m t = 1 0 0 0 0 T H 0046740 E N 1 E L S E a m t + 1 ; 0046760 \r \t E N D ; \r \t F O R 0047000 i : I N T E G E R I N [ 1 . 0047020 . d o w n W i r e C n t ] D O 0047040 \r \t I F h l A r [ 376 001 \0 231 0047060 % i ] . b t y p = n o n e T H 0047100 E N L O O P ; \r \t t _ h l 0047120 A r [ i ] . d i s t a n c e ; \r 0047140 \t t _ t - a m t ; \r \t I 0047160 F t < - 3 T H E N h l A r 0047200 [ i ] _ [ n o n e , - 5 ] \r \t 0047220 E L S E h l A r [ i ] . d 0047240 i s t a n c e _ t ; \r \t E N D L 0047260 O O P ; \r \t R E T U R N [ c u r 0047300 + a m t ] ; \r E N D ; \r 0047320 \r f i n d G a p : P R O C E D U 0047340 R E [ s t r t : I N T E G E R ] 0047360 R E T U R N S [ o k : B O O L 0047400 E A N , l e , r e : I N T E G E 0047420 R ] = \r B E G I N \r \t 0047440 o k _ T R U E ; \r \t U N T I L 0047460 s 376 001 \0 355 i t r t > d o w n W i 0047500 r e C n t O R h l A r [ s t 0047520 r t ] . d i s t a n c e < 0 D 0047540 O \r \t \t s t r t _ s t r t + 1 ; 0047560 E N D L O O P ; \r \t l e _ r e _ 0047600 s t r t ; \r \t I F s t r t > d 0047620 o w n W i r e C n t T H E N 0047640 B E G I N o k _ F A L S E ; R 0047660 E T U R N ; E N D ; \r \t U N T I 0047700 L s t r t > d o w n W i r e C 0047720 n t O R h l A r [ s t r t ] 0047740 . d i s t a n c e > = 0 D O \r 0047760 \t \t s t r t _ s t r t + 1 ; E N 0050000 D L O O P ; \r \t r e _ s t r t - 0050020 1 ; \r E N D ; \r \r w i r 0050040 e O n e : P R O C E D U R E [ l 0050060 e , r e : I 376 001 \0 7 333 N T E G E 0050100 R ] R E T U R N S [ g o t O n 0050120 e , a l l D o n e : B O O L E A 0050140 N ] = \r B E G I N \r \t 0050160 i , f a v , l e n , t , r e l L 0050200 e v , r r : I N T E G E R ; \r \t 0050220 p o l y W i r e : B O O L E A N 0050240 _ F A L S E ; \r \t f a v P o l y 0050260 , t b , w r b l : B O O L E A N 0050300 ; \r \t g o t O n e _ F A L S E ; 0050320 \r \t a l l D o n e _ T R U E ; \r 0050340 \t F O R i I N [ 1 . . d o 0050360 w n W i r e C n t ] D O \r \t 0050400 I F N O T ( d w A r [ i ] 0050420 . w i r e d L e f t A N D d 0050440 w A r [ i ] . w i r e d R i g h 0050460 t ) \r \t \t T H E N a 376 001 \0 \b { 0050500 l l D o n e _ F A L S E ; \r \t 0050520 [ w r b l , t b , t ] _ w i r 0050540 e a b l e [ i , l e , r e ] ; \r 0050560 \t I F w r b l A N D t 0050600 > 0 T H E N \r \t B E G 0050620 I N \r \t \t I F g o t O n e T 0050640 H E N \r \t \t B E G I N \r 0050660 \t \t \t I F t < l e n T H E N 0050700 { f a v _ i ; l e n _ t ; f a 0050720 v P o l y _ t b } ; \r \t \t 0050740 E N D \r \t \t E L S E \r \t \t 0050760 B E G I N \r \t \t \t f a v _ 0051000 i ; \r \t \t \t l e n _ t ; \r \t \t \t 0051020 f a v P o l y _ t b ; \r \t \t \t g 0051040 o t O n e _ T R U E ; \r \t \t 0051060 E N D ; \r \t E N D ; 0051100 376 001 \0 254 314 \r \t E N D L O O P ; \r 0051120 \t I F N O T g o t O n e T 0051140 H E N \r \t B E G I N \r \t 0051160 \t I F l e < = 1 A N D r e 0051200 > = d o w n W i r e C n t T H 0051220 E N a l l D o n e _ T R U E ; 0051240 \r \t \t R E T U R N ; \r \t 0051260 E N D ; \r \t i _ f i n a l D W [ 0051300 f a v ] ; \r \t r r _ i + l e n ; 0051320 \r \t p o l y W i r e _ f a v P o 0051340 l y ; \r \t I F i # f a v T H 0051360 E N d o S w i t c h [ i , f a 0051400 v ] ; \r \t I F p o l y W i r e 0051420 A N D d w A r [ r r ] . t o 0051440 p W i r e a b l e T H E N - 0051460 - a s s u m e s i i s o 0051500 u t p u t 376 001 \0 215 024 \r \t 0051520 B E G I N \r \t \t t _ d w A r [ i 0051540 ] . d w R i g h t ; \r \t \t d o T 0051560 o p W i r e s [ i , r r ] ; \r \t 0051600 \t d w A r [ r r ] . w i r e d L 0051620 e f t _ d w A r [ r r ] . w i r 0051640 e d R i g h t _ d w A r [ r r ] 0051660 . f i x e d _ T R U E ; \r \t \t d 0051700 w A r [ i ] . w i r e d L e f t 0051720 _ d w A r [ i ] . w i r e d R i 0051740 g h t _ d w A r [ i ] . f i x e 0051760 d _ T R U E ; \r \t \t I F d w A 0052000 r [ i ] . d w L e f t = 0 A N 0052020 D d w A r [ r r ] . d w R i g 0052040 h t = 0 T H E N R E T U R N 0052060 ; \r \t \t d w A r [ r r ] . w i r 0052100 e d L e f t _ d w A 376 001 \0 336 227 r 0052120 [ r r ] . w i r e d R i g h t _ 0052140 F A L S E ; \r \t \t t _ d w A r [ 0052160 i ] . d w L e f t ; \r \t \t d w A 0052200 r [ r r ] . d w L e f t _ t ; \r 0052220 \t \t I F t # 0 T H E N d w 0052240 A r [ t ] . d w R i g h t _ r r 0052260 ; \r \t \t R E T U R N ; \r \t 0052300 E N D ; \r \t r e l L e v _ 0 ; 0052320 \r \t F O R t I N [ i . . r 0052340 r ] D O \r \t S E L E C T 0052360 h l A r [ t ] . b t y p F R O 0052400 M \r \t \t m e t = > I F p o 0052420 l y W i r e T H E N r e l L 0052440 e v _ M A X [ r e l L e v , h l 0052460 A r [ t ] . d i s t a n c e + 2 0052500 ] \r \t \t \t E L S E r e l L e 376 0052520 001 \0 034 s v _ M A X [ r e l L e v 0052540 , h l A r [ t ] . d i s t a n c 0052560 e + 3 ] ; \r \t \t p o l y = > 0052600 r e l L e v _ M A X [ r e l L e 0052620 v , h l A r [ t ] . d i s t a n 0052640 c e + 2 ] ; \r \t \t c e l l = > 0052660 I F N O T p o l y W i r e 0052700 T H E N \r \t \t \t r e l L e v _ 0052720 M A X [ r e l L e v , h l A r [ 0052740 t ] . d i s t a n c e + 3 ] ; \r 0052760 \t E N D C A S E ; \r \t E N D 0053000 L O O P ; \r \t t _ i ; \r \t U N T 0053020 I L t = 0 D O \r \t r r _ 0053040 f i n a l D W [ t ] ; \r \t I 0053060 F t # r r T H E N d o S w 0053100 i t c h [ t , r r ] ; \r \t d 0053120 o D o w 376 001 \0 t 312 n W i r e [ r 0053140 r , r e l L e v , ( N O T p o 0053160 l y W i r e ) ] ; \r \t d w A 0053200 r [ r r ] . w i r e d L e f t _ 0053220 d w A r [ r r ] . w i r e d R i 0053240 g h t _ d w A r [ r r ] . f i x 0053260 e d _ T R U E ; \r \t I F p 0053300 o l y W i r e A N D t # i 0053320 T H E N E X I T ; \r \t t _ 0053340 d w A r [ r r ] . d w R i g h t 0053360 ; \r \t E N D L O O P ; \r \t d o H 0053400 W i r e [ i , r r , r e l L e v 0053420 , p o l y W i r e ] ; \r \t I F 0053440 p o l y W i r e T H E N \r \t 0053460 B E G I N \r \t \t I F d w 0053500 A r [ i ] . d w L e f t = 0 A 0053520 N D d w A r [ r 376 001 \0 o 260 r ] 0053540 . d w R i g h t = 0 T H E N 0053560 R E T U R N ; \r \t \t I F d w A 0053600 r [ r r ] . d w R i g h t # 0 0053620 O R d w A r [ r r ] . l e f t 0053640 E n d # 0 T H E N \r \t \t 0053660 B E G I N \r \t \t \t d w A r [ r 0053700 r ] . w i r e d L e f t _ d w A 0053720 r [ r r ] . w i r e d R i g h t 0053740 _ F A L S E ; \r \t \t \t t _ d w A 0053760 r [ i ] . d w L e f t ; \r \t \t \t 0054000 d w A r [ r r ] . d w L e f t _ 0054020 t ; \r \t \t \t I F t # 0 T H E 0054040 N d w A r [ t ] . d w R i g h 0054060 t _ r r ; \r \t \t \t I F d w A r 0054100 [ r r ] . l e f t E n d # 0 T 0054120 H E N d w A r [ r r ] . x 376 001 0054140 \0 326 213 _ d w A r [ r r ] . x - 4 0054160 ; \r \t \t E N D \r \t \t E 0054200 L S E \r \t \t B E G I N \r 0054220 \t \t \t d w A r [ i ] . w i r e d 0054240 L e f t _ d w A r [ i ] . w i r 0054260 e d R i g h t _ F A L S E ; \r \t 0054300 \t \t d w A r [ i ] . d w R i g h 0054320 t _ 0 ; \r \t \t E N D ; \r 0054340 \t E N D ; \r E N 0054360 D ; \r w i r e a b l e : P R O C 0054400 E D U R E [ i , l e , r e : I N 0054420 T E G E R ] R E T U R N S [ B 0054440 O O L E A N , B O O L E A N , I 0054460 N T E G E R ] = \r B E 0054500 G I N \r \t j : I N T E G E R _ i 0054520 ; \r \t I F d w A r [ i ] . w i 0054540 r e d 376 001 \0 023 360 R i g h t A N 0054560 D d w A r [ i ] . w i r e d L 0054600 e f t T H E N \r \t \t R E T U R 0054620 N [ F A L S E , F A L S E , 0 ] 0054640 ; \r \t I F d w A r [ i ] . d w 0054660 R i g h t = i + 1 T H E N \r \t 0054700 B E G I N \r \t \t I F i 0054720 + 1 > r e O R i < l e T H 0054740 E N R E T U R N [ F A L S E , 0054760 F A L S E , 0 ] ; \r \t \t R E T U 0055000 R N [ T R U E , T R U E , 1 ] ; 0055020 \r \t E N D ; \r \t I F d 0055040 w A r [ i ] . d w L e f t # 0 0055060 O R i + d w A r [ i ] . r i g 0055100 h t E n d < l e T H E N \r \t \t 0055120 R E T U R N [ F A L S E , F A L 0055140 S E , 0 ] ; \r \t 376 001 \0 362 210 I F 0055160 i - d w A r [ i ] . l e f t E n 0055200 d > r e T H E N R E T U R N 0055220 [ F A L S E , F A L S E , 0 ] ; 0055240 \r \t W H I L E d w A r [ j ] . 0055260 d w R i g h t # 0 D O j _ d 0055300 w A r [ j ] . d w R i g h t ; E 0055320 N D L O O P ; \r \t U N T I L d 0055340 w A r [ i ] . f i x e d O R 0055360 d w A r [ i ] . r i g h t E n d 0055400 = 0 O R d w A r [ i + 1 ] . 0055420 f i x e d D O \r \t \t i _ i + 1 0055440 ; E N D L O O P ; \r \t U N T I L 0055460 d w A r [ j ] . f i x e d O 0055500 R d w A r [ j ] . l e f t E n 0055520 d = 0 O R d w A r [ j - 1 ] 0055540 . f i x e d D O \r \t \t j 376 001 \0 0055560 035 273 _ j - 1 ; E N D L O O P ; \r 0055600 \t I F i < l e O R j > r e 0055620 T H E N R E T U R N [ F A L 0055640 S E , F A L S E , 0 ] ; \r \t R E 0055660 T U R N [ T R U E , F A L S E , 0055700 r u n L e n g t h [ i ] ] ; \r 0055720 E N D ; \r d o D o w n W i 0055740 r e : P R O C E D U R E [ d w , 0055760 l e v : I N T E G E R , c o n t 0056000 : B O O L E A N ] = \r 0056020 B E G I N \r \t c o f f : I N T E 0056040 G E R _ 2 ; \r \t l e v _ ( l e v 0056060 + h L e v ) * 2 ; \r \t l l _ m a 0056100 k e L i s t [ m a k e W i r e [ 0056120 l e v - d w A r [ d w ] . y + 4 0056140 , 4 , p o l ] \r \t \t , d w A r [ 0056160 d w 376 001 \0 271 m ] . x - 2 , d w A 0056200 r [ d w ] . y , 0 , 0 ] ; \r \t m 0056220 i n e _ i n s e r t L i s t [ m 0056240 i n e , l l ] ; \r \t m a x x _ M 0056260 A X [ m a x x , d w A r [ d w ] 0056300 . x + 2 ] ; \r \t I F c o n t 0056320 T H E N \r \t B E G I N \r 0056340 \t \t I F d w A r [ d w ] . d w 0056360 R i g h t = 0 \r \t \t O R ( d 0056400 w A r [ d w ] . d w L e f t # 0 0056420 A N D d w A r [ d w ] . r i 0056440 g h t E n d > 0 \r \t \t \t A N D 0056460 N O T d w A r [ d w + 1 ] . f 0056500 i x e d ) \r \t \t O R ( d w A 0056520 r [ d w ] . a n d C n t = 1 A 0056540 N D d w < d o w n W i r e C n 0056560 t A N D \r \t 376 001 \0 | 362 \t \t d w 0056600 A r [ d w + 1 ] . x - d w A r [ 0056620 d w ] . x < 1 2 ) T H E N c 0056640 o f f _ 6 ; \r \t \t I F d w A r 0056660 [ d w ] . a n d C n t = 1 A N 0056700 D d w > 1 A N D \r \t \t \t d w 0056720 A r [ d w ] . x - d w A r [ d w 0056740 - 1 ] . x < 1 2 T H E N c o 0056760 f f _ 2 ; \r \t \t l l _ m a k e L 0057000 i s t [ m a k e P o l y c o n [ 0057020 8 ] , d w A r [ d w ] . x - c o 0057040 f f , l e v , 0 , 0 ] ; \r \t \t m 0057060 i n e _ i n s e r t L i s t [ m 0057100 i n e , l l ] ; \r \t E N 0057120 D ; \r E N D ; \r d o H W 0057140 i r e : P R O C E D U R E [ l , 0057160 r , l e v : I N T E G E 376 001 \0 307 0057200 343 R , p o l y : B O O L E A N ] 0057220 = \r B E G I N \r \t l v 0057240 : I N T E G E R _ ( l e v + h L 0057260 e v ) * 2 ; \r \t l l _ m a k e L 0057300 i s t [ m a k e W i r e [ d w A 0057320 r [ r ] . x - d w A r [ l ] . x 0057340 , I F p o l y T H E N 4 0057360 E L S E 6 , \r \t \t I F p o l 0057400 y T H E N p o l E L S E 0057420 m e t ] , d w A r [ l ] . x , l 0057440 v , 2 , 0 ] ; \r \t m i n e _ i n 0057460 s e r t L i s t [ m i n e , l l 0057500 ] ; \r \t F O R i : I N T E G E 0057520 R I N [ l . . r ] D O \r \t 0057540 h l A r [ i ] _ I F p o l 0057560 y T H E N [ p o l y , l e v 0057600 + 376 001 \0 214 k 2 ] E L S E [ m 0057620 e t , l e v + 4 ] ; \r \t E N D L 0057640 O O P ; \r \t m a x y s _ M A X [ 0057660 m a x y s , l v + ( I F p o l 0057700 y T H E N 4 E L S E 8 ) 0057720 ] ; \r E N D ; \r d o T o 0057740 p W i r e s : P R O C E D U R E 0057760 [ l , r : I N T E G E R ] = \r 0060000 B E G I N \r \t l l _ m a 0060020 k e L i s t [ m a k e W i r e [ 0060040 A B S [ d w A r [ r ] . t y - d 0060060 w A r [ l ] . y ] , 4 , p o l ] 0060100 , d w A r [ l ] . x - 2 , \r \t \t 0060120 M I N [ d w A r [ r ] . t y , d 0060140 w A r [ l ] . y ] , 0 , 0 ] ; \r 0060160 \t m i n e _ i n s e r t L i s t 0060200 [ m i n e , 376 001 \0 244 215 l l ] ; \r 0060220 \t l l _ m a k e L i s t [ m a k 0060240 e W i r e [ d w A r [ r ] . t x 0060260 - d w A r [ l ] . x + 2 , 4 , p 0060300 o l ] \r \t \t , d w A r [ l ] . x 0060320 , M A X [ d w A r [ r ] . t y , 0060340 d w A r [ l ] . y ] - 4 , 2 , 0 0060360 ] ; \r \t m i n e _ i n s e r t L 0060400 i s t [ m i n e , l l ] ; \r 0060420 E N D ; \r f i n a l D W : P 0060440 R O C E D U R E [ i : I N T E G 0060460 E R ] R E T U R N S [ I N T E 0060500 G E R ] = \r B E G I N 0060520 \r \t I F d w A r [ i ] . f i x 0060540 e d T H E N R E T U R N [ i 0060560 ] ; \r \t I F d w A r [ i ] . d 0060600 w L e f t = 0 T H E 376 001 \0 F A 0060620 N { U N T I L d w A r [ i ] 0060640 . f i x e d O R \r \t \t d w A r 0060660 [ i ] . r i g h t E n d = 0 O 0060700 R d w A r [ i + 1 ] . f i x e 0060720 d D O i _ i + 1 ; E N D L O 0060740 O P ; R E T U R N [ i ] ; } ; \r 0060760 \t U N T I L d w A r [ i ] . f 0061000 i x e d O R d w A r [ i ] . 0061020 l e f t E n d = 0 O R d w A 0061040 r [ i - 1 ] . f i x e d D O 0061060 i _ i - 1 ; E N D L O O P ; \r \t 0061100 R E T U R N [ i ] ; \r E 0061120 N D ; \r \r c o n v : P R O C E D 0061140 U R E [ s : S T R I N G ] R E 0061160 T U R N S [ i : I N T E G E R ] 0061200 = \r B E G I N \r \t i _ 0061220 376 001 \0 254 244 0 ; \r \t F O R j : C 0061240 A R D I N A L I N [ 0 . . s 0061260 . l e n g t h ) D O \r \t I 0061300 F N O T s [ j ] I N [ ' 0061320 0 . . ' 9 ] T H E N { I F 0061340 s [ j ] # 1 5 C A N D s [ j 0061360 ] # 3 3 C T H E N \r \t \t i _ - 0061400 1 ; E X I T ; } ; \r \t i _ i 0061420 * 1 0 + ( s [ j ] - ' 0 ) ; \r \t 0061440 E N D L O O P ; \r E N D 0061460 ; \r \r \r - - M a i n 0061500 P r o g r a m \r \r 0061520 m y Z o n e _ Z o n e A 0061540 l l o c D e f s . G e t A n X M 0061560 Z o n e [ ] ; \r \r B E G I N 0061600 \r E N A B L E B E G I N 0061620 f i l e E 376 001 \0 I 302 r r = > 0061640 G O T O f l e r ; a b b r t 0061660 = > G O T O a b o r t s ; E 0061700 N D ; - - f o r e x i t 0061720 s \r \r o k , a l l D o n e , 0061740 d i d O n e , t w : B O O L E A 0061760 N ; \r i , j , k , a C n t , 0062000 a i : I N T E G E R ; \r l e 0062020 , r e : I N T E G E R ; \r g 0062040 p , t g p : L O N G P O I N T 0062060 E R T O G a t e L i s t ; \r 0062100 x x , y y : l o c N u m _ 0 0062120 ; \r \r m i n e _ N I L ; \r \r 0062140 [ g p , d o w n W i r e C n 0062160 t , m a x N o d e N u m ] _ i n 0062200 p u t C i r c u i t [ ] ; \r 0062220 I F g p = N I L 376 001 \0 | 204 T 0062240 H E N G O T O n o F i l e ; 0062260 \r \r t g p _ g p ; \r W H 0062300 I L E t g p # N I L D O \r \t 0062320 t g p . x _ x x ; \r \t t g p . y 0062340 _ y y ; \r \t m a x x _ M A X [ m 0062360 a x x , x x + t g p . g a t . c 0062400 e l l . o b . s i z e [ 0 ] ] ; 0062420 \r \t x x _ x x + t g p . g a t . 0062440 o u t . x + 2 ; \r \t I F t g p 0062460 . n x t # N I L T H E N x x 0062500 _ x x + t g p . n x t . g a t . 0062520 l S p a c * 2 ; \r \t i _ t g p . 0062540 g a t . c e l l . o b . s i z e 0062560 [ 1 ] ; \r \t m a x y s _ M A X [ 0062600 m a x y s , i ] ; \r \t m i n y s 0062620 _ I F m i n y s = 0 T H E 376 0062640 001 \0 320 ! N i E L S E M I N 0062660 [ m i n y s , i ] ; \r \t t g p _ 0062700 t g p . n x t ; \r E N D L O 0062720 O P ; \r \r t g p _ g p ; \r 0062740 W H I L E t g p # N I L D 0062760 O \r \t a n y C h a n g e s _ s i 0063000 n c e I O c h a n g e s _ T R U 0063020 E ; \r \t l l _ m a k e L i s t [ 0063040 t g p . g a t . c e l l . o b . 0063060 p . a n o t h e r m e [ t g p . 0063100 g a t . c e l l . o b ] \r \t \t , 0063120 t g p . x , t g p . y , 0 , 0 ] 0063140 ; \r \t m i n e _ i n s e r t L i 0063160 s t [ m i n e , l l ] ; \r \t I F 0063200 t g p . n x t # N I L T H E 0063220 N \r \t B E G I N \r \t \t i 0063240 _ y y + 376 001 \0 217 241 M I N [ t g p 0063260 . g a t . c e l l . o b . s i z 0063300 e [ 1 ] , t g p . n x t . g a t 0063320 . c e l l . o b . s i z e [ 1 ] 0063340 ] ; \r \t \t j _ t g p . x + t g p 0063360 . g a t . g n d . x ; \r \t \t l l 0063400 _ m a k e L i s t [ m a k e W i 0063420 r e [ t g p . n x t . x + 4 - j 0063440 , 6 , m e t ] , j , i - 6 , 2 , 0063460 0 ] ; \r \t \t m i n e _ i n s e r 0063500 t L i s t [ m i n e , l l ] ; \r 0063520 \t E N D ; \r \t t g p _ t 0063540 g p . n x t ; \r E N D L O O 0063560 P ; \r \r d w A r _ m y Z o n 0063600 e . N E W [ d o w n W i r e A r 0063620 r a y [ d o w n W i r e C n t + 0063640 1 ] ] ; \r t g 376 001 \0 \0 212 p _ 0063660 g p ; \r i _ 1 ; \r W H I 0063700 L E t g p # N I L D O \r \t j 0063720 _ 0 ; \r \t F O R k I N [ 0 0063740 . . t g p . g a t . c h a r a c 0063760 . n o r C n t ) D O \r \t a 0064000 C n t _ t g p . g a t . c h a r 0064020 a c . a n d s [ k ] ; \r \t F 0064040 O R a i I N [ 0 . . a C n 0064060 t ) D O \r \t d w A r [ 0064100 i ] . x _ t g p . x + t g p 0064120 . g a t . i n s [ j ] . x ; \r \t 0064140 d w A r [ i ] . y _ 0064160 t g p . y + t g p . g a t . i n 0064200 s [ j ] . y ; \r \t d w A 0064220 r [ i ] . n o d e _ t g p . 0064240 n o d e s [ j ] ; \r \t 376 001 0064260 \0 354 } d w A r [ i ] . f i x e 0064300 d _ a C n t = 1 ; \r \t 0064320 d w A r [ i ] . a n d C n t 0064340 _ a C n t ; \r \t d w A 0064360 r [ i ] . l e f t E n d _ a 0064400 i ; \r \t d w A r [ i ] . 0064420 r i g h t E n d _ a C n t - 0064440 a i - 1 ; \r \t d w A r [ 0064460 i ] . w i r e d L e f t _ d w A 0064500 r [ i ] . w i r e d R i g h t _ 0064520 F A L S E ; \r \t t w _ 0064540 j = 0 A N D t g p . g a t . 0064560 f i r s t I n T o p A v a i l ; 0064600 \r \t d w A r [ i ] . t o 0064620 p W i r e a b l e _ t w ; \r \t 0064640 I F t w T H E N \r \t 0064660 376 001 \0 235 211 B E G I N \r 0064700 \t \t d w A r [ i ] . t x _ t 0064720 g p . x + t g p . g a t . f i r 0064740 s t I n T o p . x ; \r \t \t d w A 0064760 r [ i ] . t y _ t g p . y + 0065000 t g p . g a t . f i r s t I n T 0065020 o p . y ; \r \t E N D 0065040 ; \r \t i _ i + 1 ; \r \t 0065060 j _ j + 1 ; \r \t E N D 0065100 L O O P ; \r \t E N D L O O P ; \r 0065120 \t d w A r [ i ] . x _ t g p 0065140 . x + t g p . g a t . o u t . x 0065160 ; \r \t d w A r [ i ] . y _ t 0065200 g p . y + t g p . g a t . o u t 0065220 . y ; \r \t d w A r [ i ] . n o d 0065240 e _ t g p . o u t N o d e ; 0065260 \r \t d w A r [ i 376 001 \0 274 331 ] . f 0065300 i x e d _ T R U E ; \r \t d w 0065320 A r [ i ] . a n d C n t _ 1 0065340 ; \r \t d w A r [ i ] . w i r e d 0065360 L e f t _ d w A r [ i ] . w i r 0065400 e d R i g h t _ F A L S E ; \r \t 0065420 i _ i + 1 ; \r \t t g p _ t g p . 0065440 n x t ; \r E N D L O O P ; \r 0065460 \r n o d e A r _ m y Z o n e 0065500 . N E W [ n o d e A r r a y [ m 0065520 a x N o d e N u m + 1 ] ] ; \r 0065540 F O R i I N [ 0 . . m a 0065560 x N o d e N u m ] D O n o d 0065600 e A r [ i ] _ 0 ; E N D L O O P 0065620 ; \r F O R i I N [ 1 . 0065640 . d o w n W i r e C n t ] D O 0065660 \r a i _ d w A r [ 376 001 \0 0065700 k 232 i ] . n o d e ; \r k 0065720 _ n o d e A r [ a i ] ; \r 0065740 d w A r [ i ] . d w L e f t _ 0065760 k ; \r I F k > 0 T H 0066000 E N d w A r [ k ] . d w R i g 0066020 h t _ i ; \r n o d e A r 0066040 [ a i ] _ i ; \r E N D L O O 0066060 P ; \r F O R i I N [ 0 0066100 . . m a x N o d e N u m ] D O 0066120 \r k _ n o d e A r [ i ] 0066140 ; \r I F k > 0 T H E 0066160 N d w A r [ k ] . d w R i g h 0066200 t _ 0 ; \r E N D L O O P ; \r 0066220 \r h l A r _ m y Z o n e . N 0066240 E W [ h o r L i n e A r r a y [ 0066260 d o w n W i r e C n t + 1 ] ] ; 0066300 \r 376 001 \0 366 } t g p _ g p ; \r 0066320 i _ 1 ; \r W H I L E t 0066340 g p # N I L D O \r \t j _ ( t g 0066360 p . y + t g p . g a t . c e l l 0066400 . o b . s i z e [ 1 ] ) / 2 ; \r 0066420 \t F O R k I N [ 0 . . t g 0066440 p . g a t . c h a r a c . n o r 0066460 C n t ) D O \r \t a C n t _ 0066500 t g p . g a t . c h a r a c . a 0066520 n d s [ k ] ; \r \t F O R a 0066540 i I N [ 0 . . a C n t ) D 0066560 O \r \t h l A r [ i ] . d 0066600 i s t a n c e _ j ; \r \t 0066620 h l A r [ i ] . b t y p _ 0066640 c e l l ; \r \t i _ i + 0066660 1 ; \r \t E N D L O O P ; \r \t 0066700 E N D L O O P 376 001 \0 356 303 ; \r \t h 0066720 l A r [ i ] . d i s t a n c e 0066740 _ - 3 ; \r \t h l A r [ i ] . b 0066760 t y p _ n o n e ; \r \t i _ i 0067000 + 1 ; \r \t t g p _ t g p . n x t 0067020 ; \r E N D L O O P ; \r h 0067040 L e v _ 0 ; \r \r F O R i 0067060 I N [ 1 . . d o w n W i r e C 0067100 n t ] D O \r I F ( d 0067120 w A r [ i ] . d w L e f t = i - 0067140 1 A N D i > 1 ) O R d w 0067160 A r [ i ] . d w R i g h t = i + 0067200 1 T H E N \r \t d w A r [ i ] . 0067220 f i x e d _ T R U E ; \r E N 0067240 D L O O P ; \r \r a l l D o n 0067260 e _ F A L S E ; \r U N T I L 0067300 a l l D o n e D O \r 376 001 \0 267 0067320 341 \t h L e v _ m o v e D o w n [ 0067340 h L e v , 0 ] ; \r \t [ o k , l e 0067360 , r e ] _ f i n d G a p [ 1 ] ; 0067400 \r \t W H I L E o k D O \r \t \t 0067420 [ d i d O n e , a l l D o n e ] 0067440 _ w i r e O n e [ l e , r e ] ; 0067460 \r \t \t I F N O T a l l D o n 0067500 e T H E N \r \t \t \t [ o k , l e 0067520 , r e ] _ f i n d G a p [ I F 0067540 d i d O n e T H E N l e E 0067560 L S E r e + 1 ] \r \t \t E L S 0067600 E E X I T ; \r \t E N D L O O P 0067620 \r E N D L O O P ; \r \r l 0067640 l _ m a k e L i s t [ m a k e W 0067660 i r e [ m a x x , 8 , m e t ] , 0067700 0 , 0 , 2 , 0 ] ; \r m i n e 0067720 _ 376 001 \0 203 \t i n s e r t L i s t 0067740 [ m i n e , l l ] ; \r \r l l 0067760 _ m a k e L i s t [ m a k e C e 0070000 l l [ m a x x , m a x y s , 0 , 0070020 m i n e ] , m a r k P n t . x , 0070040 m a r k P n t . y , 0 , 0 ] ; \r 0070060 m a s t e r L i s t _ i n s 0070100 e r t L i s t [ m a s t e r L i 0070120 s t , l l ] ; \r \r E X I T S 0070140 f l e r = > [ ] _ t y p e 0070160 I n C [ " S y n t a x e r r o 0070200 r i n f i l e " L , " T y p 0070220 e C R t o a b o r t " L , 0070240 " " L ] ; \r \t n o F i l e 0070260 = > [ ] _ t y p e I n C [ " N 0070300 o s u c h f i l e " L , " T 0070320 y p e C R 376 \0 217 364 323 t o a 0070340 b o r t " L , " " L ] ; \r \t 0070360 a b o r t s = > N U L L ; \r 0070400 E N D ; \r \r d C h a n g 0070420 e _ T R U E ; \r \r m y Z 0070440 o n e _ Z o n e A l l o c D 0070460 e f s . D e s t r o y A n X M Z 0070500 o n e [ m y Z o n e ] ; \r \r \r \r 0070520 E N D . - - o f r l m a i 0070540 n \r 032 ( 1 7 9 2 ) \r 377 \0 \0 g a t 0070560 e . c o n f i g \0 373 233 i Q 317 \0 \0 0070600 376 001 \0 325 ( - - g a t e . c o n 0070620 f i g \r - - w r i t t e n b 0070640 y P e t i t : O c t o b e 0070660 r 9 , 1 9 8 1 6 : 4 2 0070700 P M \r \r g a t e : C O N F I G 0070720 U R A T I O N \r I M P O R T S \r 0070740 p p d e f s , p p d d e f s 0070760 , p p d d d e f s , D i r e c t 0071000 o r y D e f s , S y s t e m D e 0071020 f s , P r o c e s s D e f s , \r 0071040 S e g m e n t D e f s , S t 0071060 r e a m D e f s , T r a p D e f 0071100 s , - - A l t o F i l e D e f s 0071120 , \r S t r i n g D e f s \r E 0071140 X P O R T S \r r l d e f s , 0071160 Z o n e A l l o c D e f s \r C O 0071200 N T R O L 376 \0 B O . \r r l g 0071220 a t e , r l i n , r l m a i n 0071240 = \r B E G I N \r S t o r a g e Z 0071260 o n e ; r l g a t e ; r l i n ; 0071300 r l m a i n \r E N D . \r 377 \0 \0 g 0071320 a t e - s o u r c e s . c m \0 373 0071340 227 366 - 221 \0 \0 376 \0 - # 230 r l d e f 0071360 s . m e s a r l g a t e . m e 0071400 s a r l i n . m e s a r l m 0071420 a i n . m e s a 377 \0 \0 g a t e - 0071440 s a v e . c m \0 373 227 366 / i \0 \0 376 0071460 \0 246 001 325 f t p i n d i g o c 0071500 o n n / c c h i p m o n k d 0071520 i r / c > g a t e s t / c 0071540 g a t e . c h i p b c d g a t 0071560 e . s y m b o l s d u m p / c 0071600 g a t e - s o u r c e s . d m 0071620 @ g a t e - s o u r c e s . c 0071640 m @ g a t e . c o n f i g g 0071660 a t e - s o u r c e s . c m g 0071700 a t e - s a v e . c m g a t e 0071720 - d e l e t e . c m 377 \0 \0 g a t 0071740 e - d e l e t e . c m \0 373 227 366 / 0071760 a \0 \0 376 \0 A } 022 d e l e t e @ 0072000 g a t e - s o u r c e s . c m @ 0072020 g a t e . c o n f i g g a t 0072040 e - s a v e . c m g a t e - d 0072060 e l e t e . c m \r 374 0072072