$ od -c -N 50000 [Indigo]<Chipmonk>xgate>gate-sources.dm!1
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 234 224 336 302 \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 a ; 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 , p p d e f s . s t r
0020420 o n g D e p l e t i o n ] , t +
0020440 8 , y - 2 , 0 , 0 ] ; \r \t n l _
0020460 i n s e r t L i s t [ l p , l p
0020500 p ] ; \r E N D ; \r m P u
0020520 2 : m P u P r o c d = \r 376 001 \0
0020540 242 7 B E G I N \r \t O P E
0020560 N c u r r e n t P a r a m e t
0020600 e r s ; \r \t l p p : L O N G P
0020620 O I N T E R T O l i s t ; \r
0020640 \t w i d : I N T E G E R = 1 0 ;
0020660 \r \t t : I N T E G E R _ x 2 - w
0020700 i d ; \r \t o x : I N T E G E R _
0020720 m x + g a t . r S p a c * 2 ; \r
0020740 \t y : I N T E G E R _ s t r t Y
0020760 - 1 2 ; \r \t I F t o t I n s =
0021000 1 T H E N \r \t B E G I
0021020 N \r \t \t x 2 _ x 1 ; \r \t \t x 1 _
0021040 x 1 - s t a n d W i d t h ; \r \t
0021060 \t t _ x 2 - w i d ; \r \t \t y _ y
0021100 + i n v O f f ; \r \t E N
0021120 D ; \r \t I F t < x 1 - 2 T H
0021140 E N 376 001 \0 024 " t _ M I N [ x 1
0021160 - 2 , m x - w i d ] ; \r \t I F
0021200 t < 0 T H E N t _ 0 ; \r \t x
0021220 1 _ M I N [ t + 2 , x 1 ] ; \r \t
0021240 x 2 _ M A X [ x 2 , t + w i d ]
0021260 ; \r \t l p p _ m a k e L i s t [
0021300 m a k e W i r e [ x 2 - x 1 , w
0021320 W i d , d i f ] , x 1 , y + 6 ,
0021340 2 , 0 ] ; \r \t l p _ i n s e r t
0021360 L i s t [ l p , l p p ] ; \r \t l
0021400 p p _ m a k e L i s t [ m a k e
0021420 D i f c o n [ 8 ] , t + 2 , 0 ,
0021440 2 , 0 ] ; \r \t l p _ i n s e r t
0021460 L i s t [ l p , l p p ] ; \r \t d
0021500 x _ M A X [ t + w i d + 2 , x 2
0021520 ] ; \r \t I F t + w i d < o x
0021540 T H E N \r \t 376 001 \0 375 275 B
0021560 E G I N \r \t \t d x _ M A X [ o x
0021600 + 2 , d x ] ; \r \t \t l p p _ m a
0021620 k e L i s t [ m a k e W i r e [
0021640 o x - t - w i d , 4 , p o l ] ,
0021660 t + w i d + 2 , y , 2 , 0 ] ; \r
0021700 \t \t l p _ i n s e r t L i s t [
0021720 l p , l p p ] ; \r \t \t g a t . o
0021740 u t _ [ o x + 2 , y ] ; \r \t
0021760 E N D \r \t E L S E \r \t
0022000 B E G I N \r \t \t g a t . o u
0022020 t _ [ t + w i d + 4 , y ] ; \r \t
0022040 E N D ; \r \t l p p _ m a
0022060 k e L i s t [ m a k e P u l l u
0022100 p [ p u t W i d , p u t L e n ]
0022120 , t , \r \t \t ( I F t o t I n s
0022140 > 1 T H E N 8 E L 376 001 \0 211
0022160 017 S E i n v O f f + 8 ) , 0 ,
0022200 0 ] ; \r \t n l _ i n s e r t L i
0022220 s t [ l p , l p p ] ; \r \t I F
0022240 t o t I n s = 1 T H E N \r \t
0022260 B E G I N \r \t \t l p p _ m
0022300 a k e L i s t [ m a k e W i r e
0022320 [ i n v O f f + 4 , p u t W i d
0022340 , d i f ] , t + 4 , 6 , 0 , 0 ]
0022360 ; \r \t \t n l _ i n s e r t L i s
0022400 t [ n l , l p p ] ; \r \t
0022420 E N D ; \r E N D ; \r m T
0022440 W 1 : m T W P r o c d = \r
0022460 B E G I N \r \t I F t o t I
0022500 n s = 1 T H E N { d x _ 1 0
0022520 ; n l _ l p ; R E T U R N } ; \r
0022540 \t n l _ m a k e L i s t [ m a k
0022560 e 376 001 \0 Z 344 W i r e [ 1 4 , c u
0022600 r r e n t P a r a m e t e r s .
0022620 w W i d , d i f ] , \r \t \t x , c
0022640 u r r e n t P a r a m e t e r s
0022660 . s t r t Y - 6 , 0 , 0 ] ; \r \t
0022700 n l _ i n s e r t L i s t [ l p
0022720 , n l ] ; \r \t d x _ c u r r e n
0022740 t P a r a m e t e r s . w W i d
0022760 ; \r E N D ; \r m C o n t
0023000 1 : m C o n t P r o c d = \r
0023020 B E G I N \r \t O P E N c
0023040 u r r e n t P a r a m e t e r s
0023060 ; \r \t l h , r h , n y , c : I N
0023100 T E G E R ; \r \t l h _ s t a n d
0023120 W i d t h * l C n t ; \r \t r h _
0023140 s t a n d W i d t h * r C n t ;
0023160 \r \t I F t 376 001 \0 260 L o t I n s
0023200 = 1 T H E N \r \t B E G
0023220 I N \r \t \t x _ x + 6 ; \r \t \t y _
0023240 y - 2 + i n v O f f ; \r \t \t n y
0023260 _ y + 8 ; \r \t \t n l _ m a k
0023300 e L i s t [ m a k e D i f c o n
0023320 [ 8 ] , x , n y , 0 , 0 ] ; \r \t
0023340 \t l p _ i n s e r t L i s t [ l
0023360 p , n l ] ; \r \t \t n l _ m a k e
0023400 L i s t [ m a k e W i r e [ l h
0023420 , 4 , d i f ] , x , n y + 2 , 2
0023440 , 0 ] ; \r \t \t l p _ i n s e r t
0023460 L i s t [ l p , n l ] ; \r \t \t I
0023500 F m a x y - n y > 2 T H E N
0023520 \r \t \t B E G I N \r \t \t \t
0023540 n l _ m a k e L i s t [ m a k e
0023560 W i r e [ m a x y - n 376 001 \0 z r
0023600 y + 2 , m w W i d , m e t ] , x
0023620 , n y + 2 , 0 , 0 ] ; \r \t \t \t n
0023640 l _ i n s e r t L i s t [ l p ,
0023660 n l ] ; \r \t \t E N D ; \r
0023700 \t \t d x _ 2 ; \r \t \t w i d _ 2 ;
0023720 \r \t \t R E T U R N ; \r \t
0023740 E N D ; \r \t x _ x + 2 ; \r \t c _
0023760 I F M A X [ r h , l h ] < 1 2
0024000 T H E N 1 E L S E ( M A
0024020 X [ r h , l h ] - 8 ) / 1 6 + 1
0024040 ; \r \t y _ y + 4 ; \r \t n y _ y
0024060 + ( ( M A X [ r h , l h ] - 8
0024100 ) M O D 1 6 ) ; \r \t F O R i
0024120 : I N T E G E R I N [ 0 . .
0024140 c ) D O \r \t n l _ m a k e
0024160 L i s t [ m a k e D i f c o n [
0024200 376 001 \0 344 244 8 ] , x , n y + i * 1
0024220 6 , 0 , 0 ] ; \r \t l p _ i n
0024240 s e r t L i s t [ l p , n l ] ;
0024260 \r \t E N D L O O P ; \r \t n l _ m
0024300 a k e L i s t [ m a k e W i r e
0024320 [ M A X [ r h , l h ] , 4 , d i
0024340 f ] , x + 2 , y , 0 , 0 ] ; \r \t
0024360 l p _ i n s e r t L i s t [ l p
0024400 , n l ] ; \r \t n l _ m a k e L i
0024420 s t [ m a k e W i r e [ m a x y
0024440 - n y + 4 , m w W i d , m e t ]
0024460 , x , n y , 0 , 0 ] ; \r \t n l _
0024500 i n s e r t L i s t [ l p , n l
0024520 ] ; \r \t d x _ 8 ; \r \t w i d _ 1
0024540 0 ; \r E N D ; \r m C a l
0024560 c 1 : c a l c M y P r o c d =
0024600 \r 376 \0 233 @ 230 B E G I N \r
0024620 \t m y _ 0 ; \r \t F O R i : I N
0024640 T E G E R I N [ 0 . . g c .
0024660 n o r C n t ) D O \r \t m y
0024700 _ M A X [ m y , g c . a n d s [
0024720 i ] ] ; \r \t E N D L O O P ; \r \t
0024740 m y _ m y * c u r r e n t P a r
0024760 a m e t e r s . s t a n d W i d
0025000 t h + 8 ; \r E N D ; \r \r
0025020 \r E N D . - - o f r l
0025040 g a t e \r 377 \0 \0 r l i n . m e s
0025060 a \0 373 227 366 204 260 \0 \0 376 001 \0 275 240 - -
0025100 a p r o g r a m t o r u
0025120 n w i t h i n C h i p m o n
0025140 k \r \r - - l a s t m o d i f
0025160 i e d b y P e t i t , O c
0025200 t o b e r 1 3 , 1 9 8 1
0025220 8 : 0 0 P M \r - - w r i t t
0025240 e n b y P e t i t , O c t
0025260 o b e r 9 , 1 9 8 1 2 :
0025300 0 4 P M \r \r D I R E C T O R Y
0025320 \r p p d d e f s , \r p p
0025340 d e f s , \r r l d e f s , \r
0025360 A l t o F i l e D e f s , \r
0025400 Z o n e A l l o c D e f s ,
0025420 \r S t r e a m D e f s , \r
0025440 D i r e c t o r y D e f s , \r
0025460 S t r i n g D e f s ; \r 376 001
0025500 \0 324 242 \r r l i n : P R O G R A
0025520 M \r I M P O R T S p p d e
0025540 f s , S t r e a m D e f s ,
0025560 D i r e c t o r y D e f s , r
0025600 l d e f s , S t r i n g D e f
0025620 s \r E X P O R T S r l d e f
0025640 s = \r B E G I N O P E N
0025660 p p d d e f s , r l d e f s
0025700 , S t r e a m D e f s , D i
0025720 r e c t o r y D e f s , p p d
0025740 e f s , S t r i n g D e f s ;
0025760 \r \r \r f H a n d l e : D i s
0026000 k H a n d l e ; \r f p : A l
0026020 t o F i l e D e f s . F P ; \r \r
0026040 m y Z o n e : P U B L I C
0026060 U N C O U N T E D Z O N E ;
0026100 \r \r 376 001 \0 354 253 f i l e E r r
0026120 : P U B L I C S I G N A L = C
0026140 O D E ; \r a b b r t : P U B
0026160 L I C S I G N A L = C O D E ;
0026200 \r \r \r - - N E W F I L E F
0026220 O R M A T : \r \r - - e a c h
0026240 g a t e i s r e p r e s e n
0026260 t e d b y o n e l i n e
0026300 o f t e x t , t h u s : \r -
0026320 - < o u t p u t N o d e
0026340 N a m e > ( < # > ) :
0026360 < i n p u t S p e c > < s
0026400 e p > < i n p u t S p e c >
0026420 . . . < C R > \r - - W h e
0026440 r e < i n p u t S p e c >
0026460 i s e i t h e r < N o d e
0026500 N a m e > f 376 001 \0 x 207 o r
0026520 a s i n g l e n o r i n p
0026540 u t \r - - o r [ < N o d e
0026560 N a m e > < s e p > < N o
0026600 d e N a m e > . . . ]
0026620 f o r a n A N D n o r i
0026640 n p u t \r - - < s e p > i s
0026660 e i t h e r s p a c e o r
0026700 c o m m a . \r - - N o d e
0026720 N a m e s a r e i d e n t i
0026740 f i e r s ( s t r i n g s o
0026760 f < D i g i t > a n d / o r
0027000 < L e t t e r > ) \r - - T h
0027020 e " ( < # > ) " f o l l
0027040 o w i n g t h e < o u t p u
0027060 t N o d e N a m e > i s
0027100 t h e \r - - p a r a m e 376 001 \0
0027120 344 330 t e r ( p u l l u p s t
0027140 r e n g t h ) i n d e x .
0027160 I t i s o p t i o n a l ,
0027200 a n d i f \r - - i t i s
0027220 l e f t o u t t h e c u r
0027240 r e n t d e f a u l t w i l
0027260 l b e u s e d . \r - - A
0027300 l i n e c o n s i s t i n g
0027320 o f o n l y : ( < # > ) < C
0027340 R > w i l l s e t t h e
0027360 d e f a u l t . \r - - N . B
0027400 . : i d e n t i f i e r s a
0027420 r e l i m i t e d t o 1 0
0027440 0 C h a r a c t e r s ! \r - -
0027460 f i l e e n d s w i t h
0027500 a l i n e c o n s i s t i n
0027520 g 376 001 \0 6 265 o f @ \r \r - -
0027540 < C R > a n d ; a r e e
0027560 q u i v a l e n t . C o m m
0027600 a a n d s p a c e a r e
0027620 e q u i v a l e n t . \r - - a
0027640 l i n e s t a r t i n g w
0027660 i t h ( f i r s t n o n - b
0027700 l a n k c h r ) a m i n u
0027720 s ( - ) i s i g n o r e d
0027740 . \r \r \r i t e m T y p e : T Y P
0027760 E = { i d e n t , n u m , s
0030000 e p , l e n d , c o l o n , l p
0030020 a r , r p a r , l b r k , r b r
0030040 k , f e n d , c o m m t } ; \r p
0030060 i n T y p e : T Y P E = { o
0030100 u t , n o r , f i r s t A n d ,
0030120 a n d } ; \r p 376 001 \0 @ 001 i n D e
0030140 f : T Y P E = R E C O R D [
0030160 n x t : L O N G P O I N T E R
0030200 T O p i n D e f , n o d e :
0030220 I N T E G E R , t y p e : p i n
0030240 T y p e ] ; \r \r n o d e N a m e
0030260 L i s t : T Y P E = R E C O
0030300 R D [ n x t : L O N G P O I N
0030320 T E R T O n o d e N a m e L
0030340 i s t , \r \t n o d e : I N T E G
0030360 E R , n a m e : S T R I N G ] ;
0030400 \r \r t e r m C h a r : C H A R A
0030420 C T E R ; \r d u m m y t c : C H
0030440 A R A C T E R = 1 7 7 C ; \r
0030460 p i n s , p n p : L O N G P O
0030500 I N T E R T O p i n D e f ;
0030520 \r s a v e P D : L O N G 376 001 \0 362
0030540 1 P O I N T E R T O p i n
0030560 D e f _ N I L ; \r n n L i s t :
0030600 L O N G P O I N T E R T O
0030620 n o d e N a m e L i s t ; \r \r i
0030640 n p u t C i r c u i t : P U B L
0030660 I C P R O C E D U R E \r \t R E
0030700 T U R N S [ p n t : L O N G P
0030720 O I N T E R T O G a t e L i
0030740 s t , d w C n t , m a x N N : I
0030760 N T E G E R ] = \r B E
0031000 G I N \r \t s : S T R I N G ; \r \t
0031020 o k : B O O L E A N ; \r \t t y p
0031040 : i t e m T y p e ; \r \t g c : L
0031060 O N G P O I N T E R T O g
0031100 a t e C h a r a c ; \r \t g a t :
0031120 L O N G P O I N T E R T O
0031140 g 376 001 \0 225 017 a t e ; \r \t g p , m
0031160 o s t R e c e n t : L O N G P
0031200 O I N T E R T O G a t e L i
0031220 s t ; \r \t n o r C n t , i n C n
0031240 t , i , a , p a r m : I N T E G
0031260 E R ; \r \t d e f p a r m : I N T
0031300 E G E R _ 1 ; - - d e f a u l t
0031320 \r \t [ o k , s , ] _ t y p e I n
0031340 [ " T y p e F i l e N a m e
0031360 " L , " W i t h E x t e n s i
0031400 o n " L , " " L ] ; \r \t I F N
0031420 O T o k T H E N S I G N A
0031440 L a b b r t ; \r \t o k _ o p e
0031460 n F [ s ] ; \r \t p n t _ N I L ;
0031500 \r \t p i n s _ N I L ; \r \t d w C
0031520 n t _ m a x N N _ 0 ; \r \t n n L
0031540 i s t _ N I 376 001 \0 270 356 L ; \r \t W
0031560 H I L E N O T o k D O \r \t
0031600 [ o k , s , ] _ t y p e I n
0031620 [ " N o S u c h F i l e " L
0031640 , " T y p e F i l e N a m e
0031660 " L , \r \t \t \t " W i t h E x t
0031700 e n s i o n " L ] ; \r \t I F
0031720 N O T o k T H E N S I G
0031740 N A L a b b r t ; \r \t o k
0031760 _ o p e n F [ s ] ; \r \t E N D L
0032000 O O P ; \r \r \t t e r m C h a r _
0032020 d u m m y t c ; \r \t D O \r \t
0032040 [ t y p , s , a ] _ s c a n [ ]
0032060 ; \r \t I F t y p = f e n d
0032100 T H E N E X I T ; \r \t I
0032120 F t y p = c o m m t T H E N
0032140 U N T I L t y p = 376 001 \0 @ 216
0032160 l e n d D O [ t y p , , ] _
0032200 s c a n [ ] ; E N D L O O P ; \r
0032220 \t I F t y p = l e n d T
0032240 H E N L O O P ; \r \t I F
0032260 t y p = l p a r T H E N \r \t
0032300 B E G I N \r \t \t d e f p a
0032320 r m _ r e a d N u m [ ] ; \r \t \t
0032340 c h e c k F o r C h r [ ' ) ] ;
0032360 \r \t \t [ t y p , , ] _ s c a n [
0032400 ] ; \r \t \t I F t y p # l e n d
0032420 T H E N S I G N A L f i l
0032440 e E r r ; \r \t E N D \r \t
0032460 E L S E I F t y p # i d
0032500 e n t T H E N S I G N A L
0032520 f i l e E r r \r \t E L S E \r
0032540 \t B E G I N \r \t \t p a r
0032560 376 001 \0 327 035 m _ d e f p a r m ; \r
0032600 \t \t e n t e r P i n [ o u t , s
0032620 ] ; \r \t \t [ t y p , , ] _ s c a
0032640 n [ ] ; \r \t \t I F t y p = l p
0032660 a r T H E N \r \t \t B E
0032700 G I N \r \t \t \t p a r m _ r e a d
0032720 N u m [ ] ; \r \t \t \t c h e c k F
0032740 o r C h r [ ' ) ] ; \r \t \t \t [ t
0032760 y p , , ] _ s c a n [ ] ; \r \t \t
0033000 E N D ; \r \t \t I F t y
0033020 p # c o l o n T H E N S I G
0033040 N A L f i l e E r r ; \r \t \t I
0033060 F N O T p a r m I N p a
0033100 r m a C n t T H E N S I G N
0033120 A L f i l e E r r ; \r \t \t n o
0033140 r C n t _ 0 ; \r \t \t D O \r \t \t
0033160 [ t y p 376 001 \0 _ k , s , a ] _
0033200 s c a n [ ] ; \r \t \t I F t
0033220 y p = l b r k T H E N \r \t \t
0033240 B E G I N \r \t \t \t [ t y p
0033260 , s , a ] _ s c a n [ ] ; \r \t \t
0033300 \t I F t y p # i d e n t T H
0033320 E N S I G N A L f i l e E r
0033340 r ; \r \t \t \t e n t e r P i n [ f
0033360 i r s t A n d , s ] ; \r \t \t \t n
0033400 o r C n t _ n o r C n t + 1 ; \r
0033420 \t \t \t D O \r \t \t \t [ t y p ,
0033440 s , a ] _ s c a n [ ] ; \r \t \t \t
0033460 I F t y p = r b r k T H
0033500 E N E X I T ; \r \t \t \t I F
0033520 t y p # i d e n t T H E N
0033540 S I G N A L f i l e E r r ; \r
0033560 \t \t \t e n t e r 376 001 \0 Y 320 P
0033600 i n [ a n d , s ] ; \r \t \t \t E N
0033620 D L O O P ; \r \t \t \t L O O P ; \r
0033640 \t \t E N D ; \r \t \t I
0033660 F t y p = l e n d T H E N
0033700 E X I T ; \r \t \t I F t y p
0033720 # i d e n t T H E N S I G N
0033740 A L f i l e E r r ; \r \t \t
0033760 n o r C n t _ n o r C n t + 1 ;
0034000 \r \t \t e n t e r P i n [ n o
0034020 r , s ] ; \r \t \t E N D L O O P ;
0034040 \r \t \t g c _ G e t S p a c e [ S
0034060 I Z E [ g a t e C h a r a c [ n
0034100 o r C n t ] ] ] ; \r \t \t g c . n
0034120 o r C n t _ n o r C n t ; \r \t \t
0034140 i n C n t _ i _ 0 ; \r \t \t p n p
0034160 _ p i n s ; \r \t \t W H I L E 376
0034200 001 \0 m 254 p n p # N I L D O \r \t
0034220 \t S E L E C T p n p . t y
0034240 p e F R O M \r \t \t \t o u t =
0034260 > { p n p _ p n p . n x t ; L
0034300 O O P } ; \r \t \t \t n o r = >
0034320 { i n C n t _ i n C n t + 1 ; g
0034340 c . a n d s [ i ] _ 1 ; i _ i +
0034360 1 ; p n p _ p n p . n x t } ; \r
0034400 \t \t \t f i r s t A n d = > B
0034420 E G I N \r \t \t \t \t a _ 1 ; \r \t \t
0034440 \t \t i n C n t _ i n C n t + 1 ;
0034460 \r \t \t \t \t p n p _ p n p . n x t
0034500 ; \r \t \t \t \t W H I L E p n p #
0034520 N I L A N D p n p . t y p e
0034540 = a n d D O \r \t \t \t \t a _
0034560 a + 1 ; \r \t \t \t \t i n C n t
0034600 _ i n C 376 001 \0 310 376 n t + 1 ; \r \t
0034620 \t \t \t p n p _ p n p . n x t
0034640 ; \r \t \t \t \t E N D L O O P ; \r \t
0034660 \t \t \t g c . a n d s [ i ] _ a ;
0034700 \r \t \t \t \t i _ i + 1 ; \r \t \t \t
0034720 E N D ; \r \t \t \t E N D C A
0034740 S E ; \r \t \t E N D L O O P ; \r \t
0034760 \t g c . i n C n t _ i n C n t ;
0035000 \r \t \t g a t _ g e t G a t e [ g
0035020 c , p a r m ] ; \r \t \t g p _ g e
0035040 t N e w G a t e L i s t [ i n C
0035060 n t ] ; \r \t \t i _ 0 ; \r \t \t p n
0035100 p _ p i n s ; \r \t \t a _ p n p .
0035120 n o d e ; \r \t \t m a x N N _ M A
0035140 X [ m a x N N , a ] ; \r \t \t g p
0035160 . o u t N o d e _ a ; \r \t \t p n
0035200 p _ p n p . n x t 376 001 \0 M 006 ; \r
0035220 \t \t W H I L E p n p # N I L
0035240 D O \r \t \t a _ p n p . n o d
0035260 e ; \r \t \t g p . n o d e s [
0035300 i ] _ a ; \r \t \t m a x N N _
0035320 M A X [ m a x N N , a ] ; \r \t \t
0035340 i _ i + 1 ; \r \t \t p n p
0035360 _ p n p . n x t ; \r \t \t E N D L
0035400 O O P ; \r \t \t d w C n t _ d w C
0035420 n t + i n C n t + 1 ; \r \t \t g p
0035440 . g a t _ g a t ; \r \t \t g p . n
0035460 x t _ N I L ; \r \t \t I F p n t
0035500 = N I L T H E N p n t _ g p
0035520 E L S E m o s t R e c e n t
0035540 . n x t _ g p ; \r \t \t m o s t R
0035560 e c e n t _ g p ; \r \t \t f r e e
0035600 u p P i n s [ ] ; \r \t 376 001
0035620 \0 247 252 E N D ; \r \t E N D L O O
0035640 P ; \r E N D ; \r c h e c
0035660 k F o r C h r : P R O C E D U R
0035700 E [ c : C H A R A C T E R ] =
0035720 \r B E G I N \r \t c h r :
0035740 C H A R A C T E R ; \r \t W H I L
0035760 E ( c h r _ r e a d C h r [ ]
0036000 ) = ' O R c h r = ' ,
0036020 O R c h r = 1 1 C D O E
0036040 N D L O O P ; \r \t I F c h r #
0036060 c T H E N S I G N A L f i
0036100 l e E r r ; \r E N D ; \r
0036120 o p e n F : P R O C E D U R E
0036140 [ f n a m e : S T R I N G ] \r
0036160 \t R E T U R N S [ B O O L E A
0036200 N ] = \r B E G I N \r \t
0036220 I F 376 001 \0 g 323 N O T D i r e
0036240 c t o r y L o o k u p [ @ f p ,
0036260 f n a m e , F A L S E ] T
0036300 H E N R E T U R N [ F A L S E
0036320 ] ; \r \t f H a n d l e _ N e
0036340 w B y t e S t r e a m [ f n a m
0036360 e , R e a d ] ; \r \t R E T U R
0036400 N [ T R U E ] ; \r E N D
0036420 ; \r r e a d C h r : P R O C E D
0036440 U R E R E T U R N S [ C H A R
0036460 A C T E R ] = \r B E G
0036500 I N \r \t c : C H A R A C T E R _
0036520 t e r m C h a r ; \r \t t e r m C
0036540 h a r _ d u m m y t c ; \r \t I F
0036560 c # d u m m y t c T H E N
0036600 R E T U R N [ c ] ; \r \t I F N
0036620 O T f H a n d 376 001 \0 H 210 l e .
0036640 e n d o f [ f H a n d l e ] T
0036660 H E N R E T U R N [ f H a n d
0036700 l e . g e t [ f H a n d l e ] ]
0036720 ; \r \t R E T U R N [ 1 5 C ] ; \r
0036740 E N D ; \r r e a d N u m
0036760 : P R O C E D U R E R E T U R
0037000 N S [ i : I N T E G E R ] = \r
0037020 B E G I N \r \t c : C H A
0037040 R A C T E R ; \r \t i _ 0 ; \r \t W
0037060 H I L E ( c _ r e a d C h r [
0037100 ] ) = ' O R c = ' ,
0037120 O R c = 1 1 C D O E N D L
0037140 O O P ; \r \t W H I L E c I N
0037160 [ ' 0 . . ' 9 ] D O \r \t
0037200 i _ i * 1 0 + ( c - ' 0 ) ; \r \t
0037220 c _ r e a d C h r [ ] 376 001 \0
0037240 361 305 ; \r \t E N D L O O P ; \r \t t
0037260 e r m C h a r _ c ; \r E
0037300 N D ; \r s c a n : P R O C E D U
0037320 R E R E T U R N S [ t : i t e
0037340 m T y p e , s : S T R I N G , i
0037360 : I N T E G E R ] = \r
0037400 B E G I N \r \t c : C H A R A C T
0037420 E R ; \r \t s s : S T R I N G _ [
0037440 1 0 0 ] ; \r \t i _ 0 ; \r \t s _ N
0037460 I L ; \r \t W H I L E ( c _ r e
0037500 a d C h r [ ] ) = ' O R
0037520 c = ' , O R c = 1 1 C D
0037540 O E N D L O O P ; \r \t t _ n u
0037560 m ; \r \t I F N O T ( c I N
0037600 [ ' 0 . . ' 9 ] O R c I
0037620 N [ ' a . . ' z ] O R c
0037640 I N 376 001 \0 ' > [ ' A . . ' Z ]
0037660 ) T H E N \r \t B E G I
0037700 N \r \t \t S E L E C T c F R O
0037720 M \r \t \t \t ' , , ' = > t _
0037740 s e p ; \r \t \t \t ' : = > t _
0037760 c o l o n ; \r \t \t \t 1 5 C , ' ;
0040000 = > t _ l e n d ; \r \t \t \t '
0040020 ( = > t _ l p a r ; \r \t \t \t
0040040 ' [ = > t _ l b r k ; \r \t \t
0040060 \t ' ] = > t _ r b r k ; \r \t
0040100 \t \t ' ) = > t _ r p a r ; \r
0040120 \t \t \t ' @ = > t _ f e n d ;
0040140 \r \t \t \t ' - = > t _ c o m m
0040160 t ; \r \t \t E N D C A S E = >
0040200 S I G N A L f i l e E r r ; \r
0040220 \t \t R E T U R N ; \r \t E
0040240 N D ; \r \t W H 376 001 \0 336 031 I L E
0040260 c I N [ ' 0 . . ' 9 ] O R
0040300 c I N [ ' a . . ' z ] O
0040320 R c I N [ ' A . . ' Z ]
0040340 D O \r \t I F t = n u m T
0040360 H E N \r \t B E G I N \r \t
0040400 \t I F c I N [ ' 0 . . ' 9
0040420 ] T H E N i _ i * 1 0 + ( c
0040440 - ' 0 ) \r \t \t E L S E t _ i
0040460 d e n t ; \r \t E N D ; \r
0040500 \t A p p e n d C h a r [ s s
0040520 , c ] ; \r \t c _ r e a d C h
0040540 r [ ] ; \r \t E N D L O O P ; \r \t
0040560 s _ n e w S t r i n g [ s s ] ;
0040600 \r \t t e r m C h a r _ c ; \r
0040620 E N D ; \r g e t N e w G a t
0040640 e L i s t : P R O C E D 376 001 \0 260
0040660 300 U R E [ c n t : I N T E G E R
0040700 ] R E T U R N S [ L O N G P
0040720 O I N T E R T O G a t e L i
0040740 s t ] = \r B E G I N \r
0040760 \t R E T U R N [ m y Z o n e . N
0041000 E W [ G a t e L i s t [ c n t ]
0041020 ] ] ; \r E N D ; \r \r e n
0041040 t e r P i n : P R O C E D U R E
0041060 [ t y p : p i n T y p e , s : S
0041100 T R I N G ] = \r B E G
0041120 I N \r \t p : L O N G P O I N T
0041140 E R T O p i n D e f ; \r \t p
0041160 p : L O N G P O I N T E R T
0041200 O p i n D e f _ g e t P i n D
0041220 e f [ ] ; \r \t p p ^ _ [ N I L ,
0041240 e n t e r N o d e N a m e [ s ]
0041260 , 376 001 \0 \n 025 t y p ] ; \r \t I F
0041300 p i n s = N I L T H E N p i
0041320 n s _ p p \r \t E L S E \r \t
0041340 B E G I N \r \t \t p _ p i n s
0041360 ; \r \t \t W H I L E p . n x t #
0041400 N I L D O p _ p . n x t ; E
0041420 N D L O O P ; \r \t \t p . n x t _
0041440 p p ; \r \t E N D ; \r
0041460 E N D ; \r g e t P i n D e f
0041500 : P R O C E D U R E R E T U R
0041520 N S [ p : L O N G P O I N T E
0041540 R T O p i n D e f ] = \r
0041560 B E G I N \r \t I F s a v
0041600 e P D = N I L T H E N R E T
0041620 U R N [ m y Z o n e . N E W [ p
0041640 i n D e f ] ] ; \r \t p _ s a v e
0041660 P D ; \r \t s 376 001 \0 & 213 a v e P D
0041700 _ p . n x t ; \r E N D ;
0041720 \r f r e e u p P i n s : P R O C
0041740 E D U R E = \r B E G I
0041760 N \r \t I F s a v e P D = N I L
0042000 T H E N { s a v e P D _ p i
0042020 n s ; p i n s _ N I L ; R E T U
0042040 R N } ; \r \t p n p _ s a v e P D
0042060 ; \r \t W H I L E p n p . n x t
0042100 # N I L D O p n p _ p n p .
0042120 n x t ; E N D L O O P ; \r \t p n
0042140 p . n x t _ p i n s ; \r \t p i n
0042160 s _ N I L ; \r E N D ; \r
0042200 e n t e r N o d e N a m e : P R
0042220 O C E D U R E [ s : S T R I N G
0042240 ] R E T U R N S [ I N T E G E
0042260 R ] = \r B E 376 001 \0 352 x
0042300 G I N \r \t n : I N T E G E R _ 0
0042320 ; \r \t n n : L O N G P O I N T
0042340 E R T O n o d e N a m e L i
0042360 s t _ n n L i s t ; \r \t W H I L
0042400 E n n # N I L D O \r \t I
0042420 F E q u i v a l e n t S t r i
0042440 n g [ s , n n . n a m e ] T H
0042460 E N R E T U R N [ n n . n o d
0042500 e ] ; \r \t n _ M A X [ n , n
0042520 n . n o d e ] ; \r \t n n _ n
0042540 n . n x t ; \r \t E N D L O O P ;
0042560 \r \t n _ n + 1 ; \r \t n n _ m y Z
0042600 o n e . N E W [ n o d e N a m e
0042620 L i s t ] ; \r \t n n . n a m e _
0042640 s ; \r \t n n . n o d e _ n ; \r \t
0042660 n n . n x t _ n n L i s t ; \r \t
0042700 376 \0 ; V 230 n n L i s t _ n n ; \r
0042720 \t R E T U R N [ n ] ; \r
0042740 E N D ; \r \r \r \r E N D . - -
0042760 o f r l i n \r 032 ( 1 7 9 2 ) \r
0043000 377 \0 \0 r l m a i n . m e s a \0 373
0043020 233 i Q \0 \0 376 001 \0 220 024 - - a
0043040 p r o g r a m t o r u n w
0043060 i t h i n C h i p m o n k \r \r
0043100 - - l a s t m o d i f i e d
0043120 b y P e t i t , O c t o b
0043140 e r ? , 1 9 8 1 2 : 2 0
0043160 P M \r - - w r i t t e n b
0043200 y P e t i t , O c t o b e r
0043220 9 , 1 9 8 1 2 : 0 4 P
0043240 M \r \r D I R E C T O R Y \r p
0043260 p d d e f s , \r p p d d d e
0043300 f s , \r p p d e f s , \r
0043320 r l d e f s , \r Z o n e A l
0043340 l o c D e f s , \r S t r i n
0043360 g D e f s ; \r \r r l m a i n :
0043400 P R O G R A M \r I M P O R T
0043420 S p p d d e f s , 376 001 \0 236 G
0043440 p p d e f s , Z o n e A l l o
0043460 c D e f s , p p d d d e f s ,
0043500 r l d e f s \r - - E X P O R
0043520 T S r l d e f s - - = \r
0043540 B E G I N O P E N p p d d e
0043560 f s , r l d e f s , p p d d
0043600 d e f s , p p d e f s , S t
0043620 r i n g D e f s ; \r \r \r
0043640 d o w n W i r e A r r a y : T Y
0043660 P E = R E C O R D [ S E Q U
0043700 E N C E C O M P U T E D C A
0043720 R D I N A L O F d o w n W i
0043740 r e R e c ] ; \r d w A r : L
0043760 O N G P O I N T E R T O d
0044000 o w n W i r e A r r a y ; \r
0044020 n o d e A r r a y : T Y P E
0044040 376 001 \0 200 345 = R E C O R D [ S
0044060 E Q U E N C E C O M P U T E D
0044100 C A R D I N A L O F I N T
0044120 E G E R ] ; \r n o d e A r :
0044140 L O N G P O I N T E R T O
0044160 n o d e A r r a y ; \r h
0044200 o r L i n e A r r a y : T Y P E
0044220 = R E C O R D [ S E Q U E N
0044240 C E C O M P U T E D C A R D
0044260 I N A L O F h L i n e R e c
0044300 ] ; \r h l A r : L O N G P
0044320 O I N T E R T O h o r L i n
0044340 e A r r a y ; \r \r h L e v :
0044360 I N T E G E R ; \r d o w n W
0044400 i r e C n t , m a x N o d e N u
0044420 m : I N T E G E R ; \r m a x
0044440 x , m a x 376 001 \0 335 { y s , m i n
0044460 y s : I N T E G E R _ 0 ; \r
0044500 m i n e , l l : L O N G P O I
0044520 N T E R T O l i s t ; \r \r \r
0044540 d o S w i t c h : P R O C E D U
0044560 R E [ i , j : I N T E G E R ]
0044600 = \r B E G I N \r \t t : I
0044620 N T E G E R ; \r \t t _ d w A r [
0044640 i ] . n o d e ; d w A r [ i ] .
0044660 n o d e _ d w A r [ j ] . n o d
0044700 e ; d w A r [ j ] . n o d e _ t
0044720 ; \r \t t _ d w A r [ i ] . d w L
0044740 e f t ; d w A r [ i ] . d w L e
0044760 f t _ d w A r [ j ] . d w L e f
0045000 t ; d w A r [ j ] . d w L e f t
0045020 _ t ; \r \t t _ d w A r [ i ] . d
0045040 w R i g h t ; d w A 376 001 \0 360 267 r
0045060 [ i ] . d w R i g h t _ d w A r
0045100 [ j ] . d w R i g h t ; d w A r
0045120 [ j ] . d w R i g h t _ t ; \r \t
0045140 I F ( t _ d w A r [ i ] . d w
0045160 L e f t ) # 0 T H E N d w A
0045200 r [ t ] . d w R i g h t _ i ; \r
0045220 \t I F ( t _ d w A r [ j ] . d
0045240 w L e f t ) # 0 T H E N d w
0045260 A r [ t ] . d w R i g h t _ j ;
0045300 \r \t I F ( t _ d w A r [ i ] .
0045320 d w R i g h t ) # 0 T H E N
0045340 d w A r [ t ] . d w L e f t _ i
0045360 ; \r \t I F ( t _ d w A r [ j ]
0045400 . d w R i g h t ) # 0 T H E N
0045420 d w A r [ t ] . d w L e f t _
0045440 j ; \r E N D ; \r r u n 376
0045460 001 \0 g 301 L e n g t h : P R O C E
0045500 D U R E [ i : I N T E G E R ]
0045520 R E T U R N S [ I N T E G E R ]
0045540 = \r B E G I N \r \t l ,
0045560 r : I N T E G E R ; \r \t l _ d w
0045600 A r [ i ] . d w L e f t ; \r \t r
0045620 _ d w A r [ i ] . d w R i g h t
0045640 ; \r \t I F l = 0 T H E N l
0045660 _ i E L S E \r \t U N T I L
0045700 d w A r [ l ] . d w L e f t = 0
0045720 D O l _ d w A r [ l ] . d w
0045740 L e f t ; E N D L O O P ; \r \t I
0045760 F r = 0 T H E N r _ i E
0046000 L S E \r \t U N T I L d w A r
0046020 [ r ] . d w R i g h t = 0 D O
0046040 r _ d w A r [ r ] . d w R i g
0046060 h t ; E 376 001 \0 250 237 N D L O O P ;
0046100 \r \t U N T I L d w A r [ l ] .
0046120 f i x e d O R d w A r [ l ]
0046140 . r i g h t E n d = 0 O R d
0046160 w A r [ l + 1 ] . f i x e d D
0046200 O l _ l + 1 ; E N D L O O P ;
0046220 \r \t U N T I L d w A r [ r ] .
0046240 f i x e d O R d w A r [ r ]
0046260 . l e f t E n d = 0 O R d w
0046300 A r [ r - 1 ] . f i x e d D O
0046320 r _ r - 1 ; E N D L O O P ; \r
0046340 \t R E T U R N [ r - l ] ; \r
0046360 E N D ; \r \r m o v e D o w n
0046400 : P R O C E D U R E [ c u r , a
0046420 m t : I N T E G E R ] R E T U
0046440 R N S [ I N T E G E R ] = \r
0046460 B E G I N \r 376 001 \0 361 @ \t t
0046500 : I N T E G E R ; \r \t I F a m
0046520 t = 0 T H E N \r \t B E
0046540 G I N \r \t \t a m t _ 1 0 0 0 0 ;
0046560 \r \t \t F O R i : I N T E G E R
0046600 I N [ 1 . . d o w n W i r e
0046620 C n t ] D O \r \t \t t _ h l
0046640 A r [ i ] . d i s t a n c e ; \r
0046660 \t \t I F t > = 0 A N D
0046700 t < a m t T H E N a m t _ t
0046720 ; \r \t \t E N D L O O P ; \r \t \t a
0046740 m t _ I F a m t = 1 0 0 0 0
0046760 T H E N 1 E L S E a m t +
0047000 1 ; \r \t E N D ; \r \t F O
0047020 R i : I N T E G E R I N [
0047040 1 . . d o w n W i r e C n t ]
0047060 D O \r \t I F h l A r [ 376 001
0047100 \0 231 % i ] . b t y p = n o n e
0047120 T H E N L O O P ; \r \t t _
0047140 h l A r [ i ] . d i s t a n c e
0047160 ; \r \t t _ t - a m t ; \r \t
0047200 I F t < - 3 T H E N h l
0047220 A r [ i ] _ [ n o n e , - 5 ] \r
0047240 \t E L S E h l A r [ i ]
0047260 . d i s t a n c e _ t ; \r \t E N
0047300 D L O O P ; \r \t R E T U R N [ c
0047320 u r + a m t ] ; \r E N D
0047340 ; \r \r f i n d G a p : P R O C E
0047360 D U R E [ s t r t : I N T E G E
0047400 R ] R E T U R N S [ o k : B O
0047420 O L E A N , l e , r e : I N T E
0047440 G E R ] = \r B E G I N
0047460 \r \t o k _ T R U E ; \r \t U N T I
0047500 L s 376 001 \0 355 i t r t > d o w n
0047520 W i r e C n t O R h l A r [
0047540 s t r t ] . d i s t a n c e < 0
0047560 D O \r \t \t s t r t _ s t r t +
0047600 1 ; E N D L O O P ; \r \t l e _ r
0047620 e _ s t r t ; \r \t I F s t r t
0047640 > d o w n W i r e C n t T H E
0047660 N B E G I N o k _ F A L S E
0047700 ; R E T U R N ; E N D ; \r \t U N
0047720 T I L s t r t > d o w n W i r
0047740 e C n t O R h l A r [ s t r
0047760 t ] . d i s t a n c e > = 0 D
0050000 O \r \t \t s t r t _ s t r t + 1 ;
0050020 E N D L O O P ; \r \t r e _ s t r
0050040 t - 1 ; \r E N D ; \r \r w
0050060 i r e O n e : P R O C E D U R E
0050100 [ l e , r e : I 376 001 \0 7 333 N T E
0050120 G E R ] R E T U R N S [ g o t
0050140 O n e , a l l D o n e : B O O L
0050160 E A N ] = \r B E G I N
0050200 \r \t i , f a v , l e n , t , r e
0050220 l L e v , r r : I N T E G E R ;
0050240 \r \t p o l y W i r e : B O O L E
0050260 A N _ F A L S E ; \r \t f a v P o
0050300 l y , t b , w r b l : B O O L E
0050320 A N ; \r \t g o t O n e _ F A L S
0050340 E ; \r \t a l l D o n e _ T R U E
0050360 ; \r \t F O R i I N [ 1 . .
0050400 d o w n W i r e C n t ] D O \r
0050420 \t I F N O T ( d w A r [
0050440 i ] . w i r e d L e f t A N D
0050460 d w A r [ i ] . w i r e d R i
0050500 g h t ) \r \t \t T H E N a 376 001 \0
0050520 \b { l l D o n e _ F A L S E ; \r
0050540 \t [ w r b l , t b , t ] _ w
0050560 i r e a b l e [ i , l e , r e ]
0050600 ; \r \t I F w r b l A N D
0050620 t > 0 T H E N \r \t B
0050640 E G I N \r \t \t I F g o t O n e
0050660 T H E N \r \t \t B E G I
0050700 N \r \t \t \t I F t < l e n T H
0050720 E N { f a v _ i ; l e n _ t ;
0050740 f a v P o l y _ t b } ; \r \t \t
0050760 E N D \r \t \t E L S E \r \t
0051000 \t B E G I N \r \t \t \t f a
0051020 v _ i ; \r \t \t \t l e n _ t ; \r \t
0051040 \t \t f a v P o l y _ t b ; \r \t \t
0051060 \t g o t O n e _ T R U E ; \r \t \t
0051100 E N D ; \r \t E N
0051120 D ; 376 001 \0 254 314 \r \t E N D L O O P
0051140 ; \r \t I F N O T g o t O n e
0051160 T H E N \r \t B E G I N
0051200 \r \t \t I F l e < = 1 A N D
0051220 r e > = d o w n W i r e C n t
0051240 T H E N a l l D o n e _ T R U
0051260 E ; \r \t \t R E T U R N ; \r \t
0051300 E N D ; \r \t i _ f i n a l D
0051320 W [ f a v ] ; \r \t r r _ i + l e
0051340 n ; \r \t p o l y W i r e _ f a v
0051360 P o l y ; \r \t I F i # f a v
0051400 T H E N d o S w i t c h [ i ,
0051420 f a v ] ; \r \t I F p o l y W i
0051440 r e A N D d w A r [ r r ] .
0051460 t o p W i r e a b l e T H E N
0051500 - - a s s u m e s i i s
0051520 o u t p u t 376 001 \0 215 024 \r \t
0051540 B E G I N \r \t \t t _ d w A r
0051560 [ i ] . d w R i g h t ; \r \t \t d
0051600 o T o p W i r e s [ i , r r ] ;
0051620 \r \t \t d w A r [ r r ] . w i r e
0051640 d L e f t _ d w A r [ r r ] . w
0051660 i r e d R i g h t _ d w A r [ r
0051700 r ] . f i x e d _ T R U E ; \r \t
0051720 \t d w A r [ i ] . w i r e d L e
0051740 f t _ d w A r [ i ] . w i r e d
0051760 R i g h t _ d w A r [ i ] . f i
0052000 x e d _ T R U E ; \r \t \t I F d
0052020 w A r [ i ] . d w L e f t = 0
0052040 A N D d w A r [ r r ] . d w R
0052060 i g h t = 0 T H E N R E T U
0052100 R N ; \r \t \t d w A r [ r r ] . w
0052120 i r e d L e f t _ d w A 376 001 \0 336
0052140 227 r [ r r ] . w i r e d R i g h
0052160 t _ F A L S E ; \r \t \t t _ d w A
0052200 r [ i ] . d w L e f t ; \r \t \t d
0052220 w A r [ r r ] . d w L e f t _ t
0052240 ; \r \t \t I F t # 0 T H E N
0052260 d w A r [ t ] . d w R i g h t _
0052300 r r ; \r \t \t R E T U R N ; \r \t
0052320 E N D ; \r \t r e l L e v _
0052340 0 ; \r \t F O R t I N [ i .
0052360 . r r ] D O \r \t S E L E C
0052400 T h l A r [ t ] . b t y p F
0052420 R O M \r \t \t m e t = > I F
0052440 p o l y W i r e T H E N r e
0052460 l L e v _ M A X [ r e l L e v ,
0052500 h l A r [ t ] . d i s t a n c e
0052520 + 2 ] \r \t \t \t E L S E r e l L
0052540 e 376 001 \0 034 s v _ M A X [ r e l L
0052560 e v , h l A r [ t ] . d i s t a
0052600 n c e + 3 ] ; \r \t \t p o l y =
0052620 > r e l L e v _ M A X [ r e l
0052640 L e v , h l A r [ t ] . d i s t
0052660 a n c e + 2 ] ; \r \t \t c e l l
0052700 = > I F N O T p o l y W i
0052720 r e T H E N \r \t \t \t r e l L e
0052740 v _ M A X [ r e l L e v , h l A
0052760 r [ t ] . d i s t a n c e + 3 ]
0053000 ; \r \t E N D C A S E ; \r \t E
0053020 N D L O O P ; \r \t t _ i ; \r \t U
0053040 N T I L t = 0 D O \r \t r
0053060 r _ f i n a l D W [ t ] ; \r \t
0053100 I F t # r r T H E N d o
0053120 S w i t c h [ t , r r ] ; \r \t
0053140 d o D o w 376 001 \0 t 312 n W i r e
0053160 [ r r , r e l L e v , ( N O T
0053200 p o l y W i r e ) ] ; \r \t d
0053220 w A r [ r r ] . w i r e d L e f
0053240 t _ d w A r [ r r ] . w i r e d
0053260 R i g h t _ d w A r [ r r ] . f
0053300 i x e d _ T R U E ; \r \t I F
0053320 p o l y W i r e A N D t #
0053340 i T H E N E X I T ; \r \t
0053360 t _ d w A r [ r r ] . d w R i g
0053400 h t ; \r \t E N D L O O P ; \r \t d
0053420 o H W i r e [ i , r r , r e l L
0053440 e v , p o l y W i r e ] ; \r \t I
0053460 F p o l y W i r e T H E N \r
0053500 \t B E G I N \r \t \t I F
0053520 d w A r [ i ] . d w L e f t = 0
0053540 A N D d w A r [ r 376 001 \0 o 260
0053560 r ] . d w R i g h t = 0 T H E
0053600 N R E T U R N ; \r \t \t I F d
0053620 w A r [ r r ] . d w R i g h t #
0053640 0 O R d w A r [ r r ] . l e
0053660 f t E n d # 0 T H E N \r \t \t
0053700 B E G I N \r \t \t \t d w A r
0053720 [ r r ] . w i r e d L e f t _ d
0053740 w A r [ r r ] . w i r e d R i g
0053760 h t _ F A L S E ; \r \t \t \t t _ d
0054000 w A r [ i ] . d w L e f t ; \r \t
0054020 \t \t d w A r [ r r ] . d w L e f
0054040 t _ t ; \r \t \t \t I F t # 0 T
0054060 H E N d w A r [ t ] . d w R i
0054100 g h t _ r r ; \r \t \t \t I F d w
0054120 A r [ r r ] . l e f t E n d # 0
0054140 T H E N d w A r [ r r ] . x
0054160 376 001 \0 326 213 _ d w A r [ r r ] . x
0054200 - 4 ; \r \t \t E N D \r \t \t
0054220 E L S E \r \t \t B E G I
0054240 N \r \t \t \t d w A r [ i ] . w i r
0054260 e d L e f t _ d w A r [ i ] . w
0054300 i r e d R i g h t _ F A L S E ;
0054320 \r \t \t \t d w A r [ i ] . d w R i
0054340 g h t _ 0 ; \r \t \t E N D
0054360 ; \r \t E N D ; \r
0054400 E N D ; \r w i r e a b l e : P R
0054420 O C E D U R E [ i , l e , r e :
0054440 I N T E G E R ] R E T U R N S
0054460 [ B O O L E A N , B O O L E A N
0054500 , I N T E G E R ] = \r
0054520 B E G I N \r \t j : I N T E G E R
0054540 _ i ; \r \t I F d w A r [ i ] .
0054560 w i r e d 376 001 \0 023 360 R i g h t
0054600 A N D d w A r [ i ] . w i r e
0054620 d L e f t T H E N \r \t \t R E T
0054640 U R N [ F A L S E , F A L S E ,
0054660 0 ] ; \r \t I F d w A r [ i ] .
0054700 d w R i g h t = i + 1 T H E N
0054720 \r \t B E G I N \r \t \t I F
0054740 i + 1 > r e O R i < l e
0054760 T H E N R E T U R N [ F A L S
0055000 E , F A L S E , 0 ] ; \r \t \t R E
0055020 T U R N [ T R U E , T R U E , 1
0055040 ] ; \r \t E N D ; \r \t I F
0055060 d w A r [ i ] . d w L e f t #
0055100 0 O R i + d w A r [ i ] . r
0055120 i g h t E n d < l e T H E N \r
0055140 \t \t R E T U R N [ F A L S E , F
0055160 A L S E , 0 ] ; \r \t 376 001 \0 362 210 I
0055200 F i - d w A r [ i ] . l e f t
0055220 E n d > r e T H E N R E T U
0055240 R N [ F A L S E , F A L S E , 0
0055260 ] ; \r \t W H I L E d w A r [ j
0055300 ] . d w R i g h t # 0 D O j
0055320 _ d w A r [ j ] . d w R i g h t
0055340 ; E N D L O O P ; \r \t U N T I L
0055360 d w A r [ i ] . f i x e d O
0055400 R d w A r [ i ] . r i g h t E
0055420 n d = 0 O R d w A r [ i + 1
0055440 ] . f i x e d D O \r \t \t i _ i
0055460 + 1 ; E N D L O O P ; \r \t U N T
0055500 I L d w A r [ j ] . f i x e d
0055520 O R d w A r [ j ] . l e f t
0055540 E n d = 0 O R d w A r [ j -
0055560 1 ] . f i x e d D O \r \t \t j 376
0055600 001 \0 035 273 _ j - 1 ; E N D L O O P
0055620 ; \r \t I F i < l e O R j >
0055640 r e T H E N R E T U R N [ F
0055660 A L S E , F A L S E , 0 ] ; \r \t
0055700 R E T U R N [ T R U E , F A L S
0055720 E , r u n L e n g t h [ i ] ] ;
0055740 \r E N D ; \r d o D o w n
0055760 W i r e : P R O C E D U R E [ d
0056000 w , l e v : I N T E G E R , c o
0056020 n t : B O O L E A N ] = \r
0056040 B E G I N \r \t c o f f : I N
0056060 T E G E R _ 2 ; \r \t l e v _ ( l
0056100 e v + h L e v ) * 2 ; \r \t l l _
0056120 m a k e L i s t [ m a k e W i r
0056140 e [ l e v - d w A r [ d w ] . y
0056160 + 4 , 4 , p o l ] \r \t \t , d w A
0056200 r [ d w 376 001 \0 271 m ] . x - 2 , d
0056220 w A r [ d w ] . y , 0 , 0 ] ; \r
0056240 \t m i n e _ i n s e r t L i s t
0056260 [ m i n e , l l ] ; \r \t m a x x
0056300 _ M A X [ m a x x , d w A r [ d
0056320 w ] . x + 2 ] ; \r \t I F c o n
0056340 t T H E N \r \t B E G I
0056360 N \r \t \t I F d w A r [ d w ] .
0056400 d w R i g h t = 0 \r \t \t O R
0056420 ( d w A r [ d w ] . d w L e f t
0056440 # 0 A N D d w A r [ d w ] .
0056460 r i g h t E n d > 0 \r \t \t \t A N
0056500 D N O T d w A r [ d w + 1 ]
0056520 . f i x e d ) \r \t \t O R ( d
0056540 w A r [ d w ] . a n d C n t = 1
0056560 A N D d w < d o w n W i r e
0056600 C n t A N D \r \t 376 001 \0 | 362 \t \t
0056620 d w A r [ d w + 1 ] . x - d w A
0056640 r [ d w ] . x < 1 2 ) T H E N
0056660 c o f f _ 6 ; \r \t \t I F d w
0056700 A r [ d w ] . a n d C n t = 1
0056720 A N D d w > 1 A N D \r \t \t \t
0056740 d w A r [ d w ] . x - d w A r [
0056760 d w - 1 ] . x < 1 2 T H E N
0057000 c o f f _ 2 ; \r \t \t l l _ m a k
0057020 e L i s t [ m a k e P o l y c o
0057040 n [ 8 ] , d w A r [ d w ] . x -
0057060 c o f f , l e v , 0 , 0 ] ; \r \t
0057100 \t m i n e _ i n s e r t L i s t
0057120 [ m i n e , l l ] ; \r \t
0057140 E N D ; \r E N D ; \r d o
0057160 H W i r e : P R O C E D U R E [
0057200 l , r , l e v : I N T E G E 376 001
0057220 \0 307 343 R , p o l y : B O O L E A
0057240 N ] = \r B E G I N \r \t
0057260 l v : I N T E G E R _ ( l e v +
0057300 h L e v ) * 2 ; \r \t l l _ m a k
0057320 e L i s t [ m a k e W i r e [ d
0057340 w A r [ r ] . x - d w A r [ l ]
0057360 . x , I F p o l y T H E N
0057400 4 E L S E 6 , \r \t \t I F p
0057420 o l y T H E N p o l E L S
0057440 E m e t ] , d w A r [ l ] . x
0057460 , l v , 2 , 0 ] ; \r \t m i n e _
0057500 i n s e r t L i s t [ m i n e ,
0057520 l l ] ; \r \t F O R i : I N T E
0057540 G E R I N [ l . . r ] D O
0057560 \r \t h l A r [ i ] _ I F p
0057600 o l y T H E N [ p o l y , l
0057620 e v + 376 001 \0 214 k 2 ] E L S E
0057640 [ m e t , l e v + 4 ] ; \r \t E N
0057660 D L O O P ; \r \t m a x y s _ M A
0057700 X [ m a x y s , l v + ( I F p
0057720 o l y T H E N 4 E L S E
0057740 8 ) ] ; \r E N D ; \r d o
0057760 T o p W i r e s : P R O C E D U
0060000 R E [ l , r : I N T E G E R ]
0060020 = \r B E G I N \r \t l l _
0060040 m a k e L i s t [ m a k e W i r
0060060 e [ A B S [ d w A r [ r ] . t y
0060100 - d w A r [ l ] . y ] , 4 , p o
0060120 l ] , d w A r [ l ] . x - 2 , \r
0060140 \t \t M I N [ d w A r [ r ] . t y
0060160 , d w A r [ l ] . y ] , 0 , 0 ]
0060200 ; \r \t m i n e _ i n s e r t L i
0060220 s t [ m i n e , 376 001 \0 244 215 l l ]
0060240 ; \r \t l l _ m a k e L i s t [ m
0060260 a k e W i r e [ d w A r [ r ] .
0060300 t x - d w A r [ l ] . x + 2 , 4
0060320 , p o l ] \r \t \t , d w A r [ l ]
0060340 . x , M A X [ d w A r [ r ] . t
0060360 y , d w A r [ l ] . y ] - 4 , 2
0060400 , 0 ] ; \r \t m i n e _ i n s e r
0060420 t L i s t [ m i n e , l l ] ; \r
0060440 E N D ; \r f i n a l D W
0060460 : P R O C E D U R E [ i : I N T
0060500 E G E R ] R E T U R N S [ I N
0060520 T E G E R ] = \r B E G
0060540 I N \r \t I F d w A r [ i ] . f
0060560 i x e d T H E N R E T U R N
0060600 [ i ] ; \r \t I F d w A r [ i ]
0060620 . d w L e f t = 0 T H E 376 001 \0
0060640 F A N { U N T I L d w A r [
0060660 i ] . f i x e d O R \r \t \t d w
0060700 A r [ i ] . r i g h t E n d = 0
0060720 O R d w A r [ i + 1 ] . f i
0060740 x e d D O i _ i + 1 ; E N D
0060760 L O O P ; R E T U R N [ i ] ; }
0061000 ; \r \t U N T I L d w A r [ i ]
0061020 . f i x e d O R d w A r [ i
0061040 ] . l e f t E n d = 0 O R d
0061060 w A r [ i - 1 ] . f i x e d D
0061100 O i _ i - 1 ; E N D L O O P ;
0061120 \r \t R E T U R N [ i ] ; \r
0061140 E N D ; \r \r c o n v : P R O C
0061160 E D U R E [ s : S T R I N G ]
0061200 R E T U R N S [ i : I N T E G E
0061220 R ] = \r B E G I N \r \t
0061240 i _ 376 001 \0 254 244 0 ; \r \t F O R j
0061260 : C A R D I N A L I N [ 0 .
0061300 . s . l e n g t h ) D O \r \t
0061320 I F N O T s [ j ] I N
0061340 [ ' 0 . . ' 9 ] T H E N { I
0061360 F s [ j ] # 1 5 C A N D s
0061400 [ j ] # 3 3 C T H E N \r \t \t i
0061420 _ - 1 ; E X I T ; } ; \r \t i
0061440 _ i * 1 0 + ( s [ j ] - ' 0 ) ;
0061460 \r \t E N D L O O P ; \r E
0061500 N D ; \r \r \r - - M a i n
0061520 P r o g r a m
0061540 \r \r m y Z o n e _ Z o n
0061560 e A l l o c D e f s . G e t A n
0061600 X M Z o n e [ ] ; \r \r B E G
0061620 I N \r E N A B L E B E G I
0061640 N f i l e E 376 001 \0 I 302 r r =
0061660 > G O T O f l e r ; a b b r
0061700 t = > G O T O a b o r t s
0061720 ; E N D ; - - f o r e x
0061740 i t s \r \r o k , a l l D o n
0061760 e , d i d O n e , t w : B O O L
0062000 E A N ; \r i , j , k , a C n
0062020 t , a i : I N T E G E R ; \r
0062040 l e , r e : I N T E G E R ; \r
0062060 g p , t g p : L O N G P O I
0062100 N T E R T O G a t e L i s t
0062120 ; \r x x , y y : l o c N u m
0062140 _ 0 ; \r \r m i n e _ N I L ;
0062160 \r \r [ g p , d o w n W i r e
0062200 C n t , m a x N o d e N u m ] _
0062220 i n p u t C i r c u i t [ ] ; \r
0062240 I F g p = N I L 376 001 \0 |
0062260 204 T H E N G O T O n o F i l
0062300 e ; \r \r t g p _ g p ; \r
0062320 W H I L E t g p # N I L D O
0062340 \r \t t g p . x _ x x ; \r \t t g p
0062360 . y _ y y ; \r \t m a x x _ M A X
0062400 [ m a x x , x x + t g p . g a t
0062420 . c e l l . o b . s i z e [ 0 ]
0062440 ] ; \r \t x x _ x x + t g p . g a
0062460 t . o u t . x + 2 ; \r \t I F t
0062500 g p . n x t # N I L T H E N
0062520 x x _ x x + t g p . n x t . g a
0062540 t . l S p a c * 2 ; \r \t i _ t g
0062560 p . g a t . c e l l . o b . s i
0062600 z e [ 1 ] ; \r \t m a x y s _ M A
0062620 X [ m a x y s , i ] ; \r \t m i n
0062640 y s _ I F m i n y s = 0 T H
0062660 E 376 001 \0 320 ! N i E L S E M
0062700 I N [ m i n y s , i ] ; \r \t t g
0062720 p _ t g p . n x t ; \r E N D
0062740 L O O P ; \r \r t g p _ g p ;
0062760 \r W H I L E t g p # N I L
0063000 D O \r \t a n y C h a n g e s _
0063020 s i n c e I O c h a n g e s _ T
0063040 R U E ; \r \t l l _ m a k e L i s
0063060 t [ t g p . g a t . c e l l . o
0063100 b . p . a n o t h e r m e [ t g
0063120 p . g a t . c e l l . o b ] \r \t
0063140 \t , t g p . x , t g p . y , 0 ,
0063160 0 ] ; \r \t m i n e _ i n s e r t
0063200 L i s t [ m i n e , l l ] ; \r \t
0063220 I F t g p . n x t # N I L T
0063240 H E N \r \t B E G I N \r \t
0063260 \t i _ y y + 376 001 \0 217 241 M I N [ t
0063300 g p . g a t . c e l l . o b . s
0063320 i z e [ 1 ] , t g p . n x t . g
0063340 a t . c e l l . o b . s i z e [
0063360 1 ] ] ; \r \t \t j _ t g p . x + t
0063400 g p . g a t . g n d . x ; \r \t \t
0063420 l l _ m a k e L i s t [ m a k e
0063440 W i r e [ t g p . n x t . x + 4
0063460 - j , 6 , m e t ] , j , i - 6 ,
0063500 2 , 0 ] ; \r \t \t m i n e _ i n s
0063520 e r t L i s t [ m i n e , l l ]
0063540 ; \r \t E N D ; \r \t t g p
0063560 _ t g p . n x t ; \r E N D L
0063600 O O P ; \r \r d w A r _ m y Z
0063620 o n e . N E W [ d o w n W i r e
0063640 A r r a y [ d o w n W i r e C n
0063660 t + 1 ] ] ; \r t g 376 001 \0 \0 212
0063700 p _ g p ; \r i _ 1 ; \r W
0063720 H I L E t g p # N I L D O \r
0063740 \t j _ 0 ; \r \t F O R k I N
0063760 [ 0 . . t g p . g a t . c h a r
0064000 a c . n o r C n t ) D O \r \t
0064020 a C n t _ t g p . g a t . c h
0064040 a r a c . a n d s [ k ] ; \r \t
0064060 F O R a i I N [ 0 . . a
0064100 C n t ) D O \r \t d w A
0064120 r [ i ] . x _ t g p . x + t
0064140 g p . g a t . i n s [ j ] . x ;
0064160 \r \t d w A r [ i ] . y
0064200 _ t g p . y + t g p . g a t .
0064220 i n s [ j ] . y ; \r \t d
0064240 w A r [ i ] . n o d e _ t g
0064260 p . n o d e s [ j ] ; \r \t
0064300 376 001 \0 354 } d w A r [ i ] . f i
0064320 x e d _ a C n t = 1 ; \r \t
0064340 d w A r [ i ] . a n d C n
0064360 t _ a C n t ; \r \t d
0064400 w A r [ i ] . l e f t E n d _
0064420 a i ; \r \t d w A r [ i
0064440 ] . r i g h t E n d _ a C n
0064460 t - a i - 1 ; \r \t d w A
0064500 r [ i ] . w i r e d L e f t _ d
0064520 w A r [ i ] . w i r e d R i g h
0064540 t _ F A L S E ; \r \t t w
0064560 _ j = 0 A N D t g p . g a
0064600 t . f i r s t I n T o p A v a i
0064620 l ; \r \t d w A r [ i ] .
0064640 t o p W i r e a b l e _ t w ; \r
0064660 \t I F t w T H E N \r
0064700 \t 376 001 \0 235 211 B E G I
0064720 N \r \t \t d w A r [ i ] . t x _
0064740 t g p . x + t g p . g a t . f
0064760 i r s t I n T o p . x ; \r \t \t d
0065000 w A r [ i ] . t y _ t g p .
0065020 y + t g p . g a t . f i r s t I
0065040 n T o p . y ; \r \t E
0065060 N D ; \r \t i _ i + 1 ; \r
0065100 \t j _ j + 1 ; \r \t E
0065120 N D L O O P ; \r \t E N D L O O P
0065140 ; \r \t d w A r [ i ] . x _ t
0065160 g p . x + t g p . g a t . o u t
0065200 . x ; \r \t d w A r [ i ] . y _
0065220 t g p . y + t g p . g a t . o
0065240 u t . y ; \r \t d w A r [ i ] . n
0065260 o d e _ t g p . o u t N o d
0065300 e ; \r \t d w A r [ i 376 001 \0 274 331 ]
0065320 . f i x e d _ T R U E ; \r \t
0065340 d w A r [ i ] . a n d C n t _
0065360 1 ; \r \t d w A r [ i ] . w i r
0065400 e d L e f t _ d w A r [ i ] . w
0065420 i r e d R i g h t _ F A L S E ;
0065440 \r \t i _ i + 1 ; \r \t t g p _ t g
0065460 p . n x t ; \r E N D L O O P
0065500 ; \r \r n o d e A r _ m y Z o
0065520 n e . N E W [ n o d e A r r a y
0065540 [ m a x N o d e N u m + 1 ] ] ;
0065560 \r F O R i I N [ 0 . .
0065600 m a x N o d e N u m ] D O n
0065620 o d e A r [ i ] _ 0 ; E N D L O
0065640 O P ; \r F O R i I N [
0065660 1 . . d o w n W i r e C n t ]
0065700 D O \r a i _ d w A r [ 376
0065720 001 \0 k 232 i ] . n o d e ; \r
0065740 k _ n o d e A r [ a i ] ; \r
0065760 d w A r [ i ] . d w L e f
0066000 t _ k ; \r I F k > 0
0066020 T H E N d w A r [ k ] . d w R
0066040 i g h t _ i ; \r n o d e
0066060 A r [ a i ] _ i ; \r E N D L
0066100 O O P ; \r F O R i I N
0066120 [ 0 . . m a x N o d e N u m ]
0066140 D O \r k _ n o d e A r [
0066160 i ] ; \r I F k > 0 T
0066200 H E N d w A r [ k ] . d w R i
0066220 g h t _ 0 ; \r E N D L O O P
0066240 ; \r \r h l A r _ m y Z o n e
0066260 . N E W [ h o r L i n e A r r a
0066300 y [ d o w n W i r e C n t + 1 ]
0066320 ] ; \r 376 001 \0 366 } t g p _ g p
0066340 ; \r i _ 1 ; \r W H I L E
0066360 t g p # N I L D O \r \t j _ (
0066400 t g p . y + t g p . g a t . c e
0066420 l l . o b . s i z e [ 1 ] ) / 2
0066440 ; \r \t F O R k I N [ 0 . .
0066460 t g p . g a t . c h a r a c . n
0066500 o r C n t ) D O \r \t a C n
0066520 t _ t g p . g a t . c h a r a c
0066540 . a n d s [ k ] ; \r \t F O R
0066560 a i I N [ 0 . . a C n t )
0066600 D O \r \t h l A r [ i ]
0066620 . d i s t a n c e _ j ; \r \t
0066640 h l A r [ i ] . b t y p
0066660 _ c e l l ; \r \t i _
0066700 i + 1 ; \r \t E N D L O O P ;
0066720 \r \t E N D L O O P 376 001 \0 356 303 ; \r
0066740 \t h l A r [ i ] . d i s t a n c
0066760 e _ - 3 ; \r \t h l A r [ i ]
0067000 . b t y p _ n o n e ; \r \t i
0067020 _ i + 1 ; \r \t t g p _ t g p . n
0067040 x t ; \r E N D L O O P ; \r
0067060 h L e v _ 0 ; \r \r F O R
0067100 i I N [ 1 . . d o w n W i r
0067120 e C n t ] D O \r I F
0067140 ( d w A r [ i ] . d w L e f t =
0067160 i - 1 A N D i > 1 ) O R
0067200 d w A r [ i ] . d w R i g h t =
0067220 i + 1 T H E N \r \t d w A r [ i
0067240 ] . f i x e d _ T R U E ; \r
0067260 E N D L O O P ; \r \r a l l D
0067300 o n e _ F A L S E ; \r U N T
0067320 I L a l l D o n e D O \r 376 001
0067340 \0 267 341 \t h L e v _ m o v e D o w
0067360 n [ h L e v , 0 ] ; \r \t [ o k ,
0067400 l e , r e ] _ f i n d G a p [ 1
0067420 ] ; \r \t W H I L E o k D O \r
0067440 \t \t [ d i d O n e , a l l D o n
0067460 e ] _ w i r e O n e [ l e , r e
0067500 ] ; \r \t \t I F N O T a l l D
0067520 o n e T H E N \r \t \t \t [ o k ,
0067540 l e , r e ] _ f i n d G a p [ I
0067560 F d i d O n e T H E N l e
0067600 E L S E r e + 1 ] \r \t \t E
0067620 L S E E X I T ; \r \t E N D L O
0067640 O P \r E N D L O O P ; \r \r
0067660 l l _ m a k e L i s t [ m a k
0067700 e W i r e [ m a x x , 8 , m e t
0067720 ] , 0 , 0 , 2 , 0 ] ; \r m i
0067740 n e _ 376 001 \0 203 \t i n s e r t L i
0067760 s t [ m i n e , l l ] ; \r \r
0070000 l l _ m a k e L i s t [ m a k e
0070020 C e l l [ m a x x , m a x y s ,
0070040 0 , m i n e ] , m a r k P n t .
0070060 x , m a r k P n t . y , 0 , 0 ]
0070100 ; \r m a s t e r L i s t _ i
0070120 n s e r t L i s t [ m a s t e r
0070140 L i s t , l l ] ; \r \r E X I
0070160 T S f l e r = > [ ] _ t y
0070200 p e I n C [ " S y n t a x e r
0070220 r o r i n f i l e " L , " T
0070240 y p e C R t o a b o r t "
0070260 L , " " L ] ; \r \t n o F i l
0070300 e = > [ ] _ t y p e I n C [
0070320 " N o s u c h f i l e " L ,
0070340 " T y p e C R 376 \0 217 364 323 t o
0070360 a b o r t " L , " " L ] ; \r
0070400 \t a b o r t s = > N U L L
0070420 ; \r E N D ; \r \r d C h a
0070440 n g e _ T R U E ; \r \r m
0070460 y Z o n e _ Z o n e A l l o
0070500 c D e f s . D e s t r o y A n X
0070520 M Z o n e [ m y Z o n e ] ; \r \r
0070540 \r \r E N D . - - o f r l m
0070560 a i n \r 032 ( 1 7 9 2 ) \r 377 \0 \0 g
0070600 a t e . c o n f i g \0 373 233 i Q 317
0070620 \0 \0 376 001 \0 325 ( - - g a t e . c
0070640 o n f i g \r - - w r i t t e n
0070660 b y P e t i t : O c t o
0070700 b e r 9 , 1 9 8 1 6 : 4
0070720 2 P M \r \r g a t e : C O N F
0070740 I G U R A T I O N \r I M P O R T
0070760 S \r p p d e f s , p p d d e
0071000 f s , p p d d d e f s , D i r e
0071020 c t o r y D e f s , S y s t e m
0071040 D e f s , P r o c e s s D e f s
0071060 , \r S e g m e n t D e f s ,
0071100 S t r e a m D e f s , T r a p D
0071120 e f s , - - A l t o F i l e D e
0071140 f s , \r S t r i n g D e f s
0071160 \r E X P O R T S \r r l d e f
0071200 s , Z o n e A l l o c D e f s \r
0071220 C O N T R O L 376 \0 B O . \r r
0071240 l g a t e , r l i n , r l m a i
0071260 n = \r B E G I N \r S t o r a g
0071300 e Z o n e ; r l g a t e ; r l i
0071320 n ; r l m a i n \r E N D . \r 377 \0
0071340 \0 g a t e - s o u r c e s . c m
0071360 \0 373 227 366 - 221 \0 \0 376 \0 - # 230 r l d
0071400 e f s . m e s a r l g a t e .
0071420 m e s a r l i n . m e s a r
0071440 l m a i n . m e s a 377 \0 \0 g a t
0071460 e - s a v e . c m \0 373 234 224 337 ~ \0
0071500 \0 376 \0 250 336 260 f t p i n d i g o
0071520 c o n n / c c h i p m o n k
0071540 > d i r / c > x g a t e s
0071560 t / c g a t e . c h i p b c d
0071600 g a t e . s y m b o l s d u
0071620 m p / c g a t e - s o u r c e
0071640 s . d m @ g a t e - s o u r c
0071660 e s . c m @ g a t e . c o n f
0071700 i g g a t e - s o u r c e s .
0071720 c m g a t e - s a v e . c m
0071740 g a t e - d e l e t e . c m 377 \0
0071760 \0 g a t e - d e l e t e . c m \0
0072000 373 227 366 / a \0 \0 376 \0 A } 022 d e l e
0072020 t e @ g a t e - s o u r c e s
0072040 . c m @ g a t e . c o n f i g
0072060 g a t e - s a v e . c m g a
0072100 t e - d e l e t e . c m \r 374
0072116