$ 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