$ od -c -N 50000 [IO]<DoradoLogic>routepclb.dm!2
0000000 377 \0 \0 r o u t e p c l b 1 . b c
0000020 p l \0 373 235 256 351 315 \0 \0 376 001 \0 Y { /
0000040 / r o u t e p c l b 1 . b c p l
0000060 \r \r / / B o a r d - s p e c i
0000100 f i c R o u t e r o u t i n
0000120 e s f o r t h e P C v e
0000140 r s i o n o f t h e \r / /
0000160 D o r a d o M a i n L o g i
0000200 c B o a r d \r \r / / p a r t
0000220 1 o f 3 \r \r / / \t l a s t
0000240 m o d i f i e d b y D .
0000260 R u m p h , O c t o b e r 3
0000300 0 , 1 9 8 4 5 : 1 3 P M
0000320 \r / / \t \t t o a d d k n o w
0000340 l e d g e o f I C C l a s s
0000360 E 4 W \r / / l a s t m o d
0000400 i f i e d b y E . M c C r
0000420 e i g h t , J u l y 7 , 376
0000440 001 \0 031 254 1 9 8 1 4 : 2 0 P
0000460 M \r / / \t \t t o s h o r t e n
0000500 b y p a s s c a p n a m e
0000520 s \r / / m o d i f i e d b y
0000540 E . M c C r e i g h t , J
0000560 u l y 7 , 1 9 8 1 2 : 4
0000600 6 P M \r / / \t \t t o c o r r
0000620 e c t p o s i t i o n o f
0000640 G N D p i n s a t c o n n
0000660 e c t o r s t o 5 0 - m i l
0000700 c t r s \r / / m o d i f i e
0000720 d b y E . M c C r e i g h
0000740 t , J u n e 2 4 , 1 9 8 1
0000760 5 : 4 5 P M \r / / \t \t t o
0001000 m o v e t h e l i n e o
0001020 f h o l e s u n d e r t h
0001040 e D I 376 001 \0 254 251 P p a t t e
0001060 r n s , a n d i n s e r t \r
0001100 / / \t \t a l l b y p a s s c
0001120 a p s t h a t f i t \r \r / /
0001140 S o m e g e n e r a l c o
0001160 m m e n t s : \r \r / / \t A s o
0001200 c k e t p o s i t i o n i s
0001220 m a d e u p o f a l o
0001240 w e r - c a s e l e t t e r
0001260 f o l l o w e d b y a \r / /
0001300 \t n u m b e r , l i k e a 1
0001320 3 o r h 4 1 . T h e l e
0001340 t t e r d e s i g n a t e s
0001360 t h e c o l u m n , o r t
0001400 h e \r / / \t x o r f i r s t
0001420 c o - o r d i n a t e . I n
0001440 c r e a s i n g 376 001 \0 372 316 l e
0001460 t t e r s c o r r e s p o n d
0001500 t o i n c r e a s i n g x
0001520 v a l u e s . \r / / \t T h e
0001540 n u m b e r i n a s o c k
0001560 e t p o s i t i o n d e s i
0001600 g n a t e s t h e r o w ,
0001620 o r y , o r s e c o n d \r
0001640 / / \t c o - o r d i n a t e .
0001660 I n c r e a s i n g n u m b e
0001700 r s c o r r e s p o n d t o
0001720 i n c r e a s i n g y v a
0001740 l u e s . \r \r / / \t I n s t a
0001760 n d a r d o r i e n t a t i o
0002000 n t h e b o a r d h a s
0002020 t h e c o m p o n e n t ( n
0002040 o n - w i r i n g ) s i d 376 001
0002060 \0 277 8 e \r / / \t u p , a n d
0002100 t h e c o n n e c t o r c u
0002120 t o u t s t o t h e l e f
0002140 t . S o c k e t a 0 1 i s
0002160 i n t h e t o p l e f t
0002200 , \r / / \t l 0 1 i n t h e
0002220 t o p r i g h t , a 2 4 i
0002240 n t h e b o t t o m l e f
0002260 t , a n d l 2 4 i n t h
0002300 e b o t t o m r i g h t . \r
0002320 / / \t T h e x c o - o r d i
0002340 n a t e i n c r e a s e s t
0002360 o t h e r i g h t , a n d
0002400 t h e y c o - o r d i n a
0002420 t e i n c r e a s e s \r / / \t
0002440 d o w n w a r d . I n s t a
0002460 n d a 376 001 \0 c 036 r d o r i e n
0002500 t a t i o n p i n 1 o f
0002520 e a c h s o c k e t i s t
0002540 h e t o p r i g h t \r / / \t
0002560 p i n o f t h e s o c k e
0002600 t . T h e p i n n u m b e
0002620 r i n g g o e s l e f t w a
0002640 r d , t h e n d o w n , t
0002660 h e n \r / / \t r i g h t w a r d
0002700 . \r \r / / \t W i t h c e r t a
0002720 i n e x c e p t i o n s , a
0002740 g i v e n f u n c t i o n a
0002760 l l y e q u i v a l e n t g
0003000 r o u p o f p i n s \r / / \t
0003020 i s o r d e r e d f i r s t
0003040 d o w n w a r d a n d t h
0003060 e n r i g h t 376 001 \0 333 235 w a r
0003100 d . F o r e x a m p l e ,
0003120 i f w e h a d \r / / \t G N D
0003140 p i n s o f a c e r t a
0003160 i n k i n d a t { x 0 , y
0003200 0 } , { x 1 , y 1 } , { x 1
0003220 , y 0 } , a n d { x 0 , y 1
0003240 } , \r / / \t w h e r e x 0 <
0003260 x 1 a n d y 0 < y 1 , t h
0003300 e n t h e y w o u l d a p
0003320 p e a r i n t h e G N D
0003340 p s e u d o - \r / / \t n e t i
0003360 n t h e f o l l o w i n g
0003400 o r d e r : \r / / \t \t . . . { x
0003420 0 , y 0 } . . . { x 0 , y 1 } .
0003440 . . { x 1 , y 0 } . . . { x 1 ,
0003460 y 1 } . . . \r \r / / \t T h 376 001 \0
0003500 326 2 i s m e a n s t h a t
0003520 t h e p s e u d o - n e t p
0003540 i n n u m b e r i s u s u
0003560 a l l y c o m p u t e d a s
0003600 \r / / \t \t ( x ( h o r i z o n
0003620 t a l ) r e p e a t ) * ( p i
0003640 n s P e r C o l u m n ) + ( y
0003660 ( v e r t i c a l ) r e p e a
0003700 t ) + f i r s t P i n N o \r \r /
0003720 / \t S i m i l a r l y t h e
0003740 h o r i z o n t a l a n d v
0003760 e r t i c a l r e p e a t s
0004000 a r e u s u a l l y c o m p
0004020 u t e d a s \r / / \t \t c o l u
0004040 m n = x R e p e a t = (
0004060 p s e u d o - n e t p i n n
0004100 u m 376 001 \0 204 [ b e r - f i r
0004120 s t P i n N o ) / p i n s P e r
0004140 C o l u m n \r / / \t \t r o w =
0004160 y R e p e a t = ( p s e u
0004200 d o - n e t p i n n u m b e
0004220 r - f i r s t P i n N o )
0004240 r e m p i n s P e r C o l u m
0004260 n \r \r g e t " r o u t e . d e
0004300 f s " \r \r e x t e r n a l [
0004320 P i n 1 o f 1 6 ] \r \r m a n i
0004340 f e s t \r [ 032 ( 6 3 5 ) \ f 1 \r
0004360 r e p e a t R o w s = 1 2 \r
0004400 r e p e a t C o l s = 6 \r f
0004420 u l l R e p e a t C o l s =
0004440 4 \r r e p e a t s = r e p e
0004460 a t R o w s * r e p e a t C o l
0004500 s \r f u l l R 376 001 \0 \ 376 e p e a
0004520 t s = r e p e a t R o w s *
0004540 f u l l R e p e a t C o l s \r r
0004560 o w O f f s e t = 1 6 \r l e
0004600 f t C o l s O f f s e t = 0
0004620 \r r i g h t C o l s O f f s e t
0004640 = 2 4 6 \r r o w H e i g h t
0004660 = 4 2 \r f u l l C o l W i d
0004700 t h = 1 1 2 \r p a t t e r n
0004720 G r o u n d s = 3 * r e p e
0004740 a t s + 6 * f u l l R e p e a t
0004760 s \r S o c k e t s 1 6 p i n =
0005000 6 * f u l l R e p e a t s \r S
0005020 o c k e t s 2 4 p i n = 2 *
0005040 f u l l R e p e a t s \r S o c k
0005060 e t s 5 0 p i n = f u l l R
0005100 e p e a t s \r S o c k e 376 001 \0 203
0005120 t t s S i p = 3 * f u l l R
0005140 e p e a t s 032 l 4 2 6 9 \ f 1 \r
0005160 ] \r \r s t a t i c \r [ 032 \ f 1 \r
0005200 m a x I C s = 8 2 0 \r b o a
0005220 r d I n t e r f a c e V e r s i
0005240 o n = i n t e r f a c e V e
0005260 r s i o n \r V C C C a p \r V C C
0005300 2 C a p \r V E E C a p \r V T T C
0005320 a p 032 l 4 2 6 9 \ f 1 \r ] \r \r l
0005340 e t D e c l a r e I n i t i a
0005360 l N e t s ( B u i l d T W N e t
0005400 , B u i l d T e r m N e t ,
0005420 B u i l d C o n n e c t o r )
0005440 b e \r [ 032 \ f 1 \r B u i l d C o
0005460 n n e c t o r ( " E " , 1 8 9
0005500 , E P i n P o s ) \r B u i l d
0005520 C 376 001 \0 D 254 o n n e c t o r ( "
0005540 C " , 1 8 9 , C P i n P o s
0005560 ) \r B u i l d T W N e t ( " G N
0005600 D " , 6 * f u l l R e p e a t
0005620 s + 3 * r e p e a t s + 2 * 9 2
0005640 , G N D P i n P o s ) \r B u i
0005660 l d T W N e t ( " V E E " , 4
0005700 * f u l l R e p e a t s + 2 * r
0005720 e p e a t s , V E E P i n P o
0005740 s ) \r B u i l d T W N e t ( " V
0005760 T T " , 3 * f u l l R e p e a
0006000 t s , V T T P i n P o s ) \r B
0006020 u i l d T W N e t ( " V C C " ,
0006040 r e p e a t s , V C C P i n
0006060 P o s ) \r B u i l d T W N e t (
0006100 " V D D " , r e p e a t s ,
0006120 V D D P i n 376 001 \0 002 270 P o s ) \r
0006140 V C C C a p = D e f i n e B
0006160 y p a s s T y p e ( " V C C B y
0006200 p a s s " , V C C B y p a s s
0006220 V o l t a g e s ) \r V C C 2 C a
0006240 p = D e f i n e B y p a s s
0006260 T y p e ( " V C C 2 B y p a s s
0006300 " , V C C 2 B y p a s s V o l
0006320 t a g e s ) \r V E E C a p =
0006340 D e f i n e B y p a s s T y p e
0006360 ( " V E E B y p a s s " , V E
0006400 E B y p a s s V o l t a g e s )
0006420 \r V T T C a p = D e f i n e
0006440 B y p a s s T y p e ( " V T T B
0006460 y p a s s " , V T T B y p a s
0006500 s V o l t a g e s ) \r B u i l d
0006520 T e r m N e t ( " T e 376 001 \0 270 231
0006540 r m 1 0 0 / 8 / T e r m 1 0 0 "
0006560 , 8 , " T e r m 1 0 0 " ,
0006600 1 0 0 8 , A u t o T e r m P i
0006620 n P o s , " T " ) \r l e t c
0006640 = T r y F i n d i n g N a m e
0006660 e ( " F 1 0 0 K " , t y p e I
0006700 c c l a s s ) \r i f c n e
0006720 e m p t y t h e n c > > i c
0006740 c l a s s . P i n O f f s e t
0006760 = D I P 4 5 W i d e 032 l 4 2 6
0007000 9 \ f 1 \r c = T r y F i n d
0007020 i n g N a m e e ( " E 4 W " ,
0007040 t y p e I c c l a s s ) \r i f
0007060 c n e e m p t y t h e n
0007100 c > > i c c l a s s . P i n O f
0007120 f s e t = D I P 4 5 W i d e
0007140 376 001 \0 n E 032 l 4 2 6 9 \ f 1 \r ]
0007160 \r \r a n d D I P 4 5 W i d e (
0007200 i c i n s t , p i n N o , p
0007220 v , p h ) = v a l o f \r [
0007240 032 \ f 1 \r l e t r e s u l t
0007260 = D I P 3 W i d e ( i c i n s
0007300 t , p i n N o , p v , p h
0007320 ) \r i f @ p h n e 0 t h
0007340 e n @ p h = @ p h + 6 \r r
0007360 e s u l t i s r e s u l t 032 l
0007400 4 2 6 9 \ f 1 \r ] \r \r a n d Z
0007420 e r o T a b l e P o i n t ( p o
0007440 i n t ) = s e l e c t o n
0007460 p o i n t i n t o \r [ 032 \ f 1
0007500 \r c a s e 0 : " L " / /
0007520 b o a r d t y p e \r c a s e
0007540 1 : " C 376 001 \0 ( ; 1 8 8 " \r c
0007560 a s e 2 : " E 6 " \r c a s e
0007600 3 : " E 1 8 7 " \r c a s e
0007620 4 : " C 5 " \r d e f a u l t :
0007640 e m p t y 032 l 4 2 6 9 \ f 1 \r
0007660 ] \r \r a n d L e v e l T r a n
0007700 s f o r m ( l e v e l , x ,
0007720 y , p x , p y , p N a m e
0007740 , p P u l l C o m p o n e n t
0007760 s , p W i r e ; n u m a r g
0010000 s n a ) = v a l o f \r [ 032
0010020 \ f 1 \r D e f a u l t A r g s (
0010040 l v n a , - 1 , 0 , 0 ,
0010060 l v n a , l v n a , l
0010100 v n a , l v n a , l v
0010120 n a ) \r s w i t c h o n l e v
0010140 e l i n t o \r [ 032 376 001 \0 367 a l
0010160 4 2 6 9 \ f 1 \r c a s e T o p
0010200 L e v e l : 032 l 5 5 3 9 \ f 1 \r
0010220 @ p x = x \r @ p y = 5 2
0010240 4 - y \r @ p N a m e = " C o
0010260 m p o n e n t s i d e " \r @ p
0010300 P u l l C o m p o n e n t s =
0010320 t r u e \r @ p W i r e = f
0010340 a l s e \r r e s u l t i s t r
0010360 u e 032 l 6 8 0 9 \ f 1 \r \r c a s
0010400 e B o t t o m L e v e l : 032 l
0010420 5 5 3 9 \ f 1 \r @ p x = x \r
0010440 @ p y = y \r @ p N a m e =
0010460 " W i r i n g s i d e " \r @
0010500 p P u l l C o m p o n e n t s
0010520 = f a l s e \r @ p W i r e =
0010540 t r u e \r r e s u l t i s 376
0010560 001 \0 002 W t r u e 032 l 6 8 0 9 \ f
0010600 1 \r \r d e f a u l t : r e s u
0010620 l t i s f a l s e 032 l 5 5 3 9
0010640 \ f 1 \r ] 032 l 4 2 6 9 \ f 1 \r ]
0010660 \r \r a n d D e f i n e B y p a
0010700 s s T y p e ( c l a s s , I n
0010720 i t i a l W i r i n g ) = v
0010740 a l o f \r [ 032 \ f 1 \r S e t u p
0010760 I C c l a s s ( c l a s s , p
0011000 r i n t U s e d L i s t , D I
0011020 P 3 W i d e , N u l l A t t r
0011040 i b u t e s , I n i t i a l W
0011060 i r i n g , 2 ) \r l e t t y
0011100 p e = v e c 5 0 \r E x p a
0011120 n d T e m p l a t e ( t y p e ,
0011140 " $ S / 2 / $ S " , c l a s
0011160 s , c 376 001 \0 A 354 l a s s ) \r l
0011200 e t i c t y p e = D e f i
0011220 n e N a m e e ( t y p e , t y
0011240 p e I c t y p e ) \r i c t y p e
0011260 > > i c t y p e . i c c l a s s
0011300 = M u s t F i n d N a m e e
0011320 ( c l a s s , t y p e I c c l
0011340 a s s ) \r i c t y p e > > i c t
0011360 y p e . n p i n s = 2 \r r e
0011400 s u l t i s i c t y p e 032 l 4
0011420 2 6 9 \ f 1 \r ] \r \r a n d V C
0011440 C B y p a s s V o l t a g e s (
0011460 i c i n s t ) b e \r [ 032 \ f 1
0011500 \r l e t s t r = F i n d N
0011520 a m e e s S t r i n g ( i c i n
0011540 s t ) \r P u t T e m p l a t e (
0011560 I m p l i c i t F 376 001 \0 003 - i l
0011600 e , " * n V C C : $ S . 1 p
0011620 * n G N D : $ S . 2 p " , s
0011640 t r , s t r ) 032 l 4 2 6 9 \ f
0011660 1 \r ] \r \r a n d V C C 2 B y p
0011700 a s s V o l t a g e s ( i c i n
0011720 s t ) b e \r [ 032 \ f 1 \r l e t
0011740 s t r = F i n d N a m e e
0011760 s S t r i n g ( i c i n s t ) \r
0012000 P u t T e m p l a t e ( I m p l
0012020 i c i t F i l e , " * n G N D
0012040 : $ S . 1 p * n V C C : $ S
0012060 . 2 p " , s t r , s t r ) 032
0012100 l 4 2 6 9 \ f 1 \r ] \r \r a n d
0012120 V E E B y p a s s V o l t a g e
0012140 s ( i c i n s t ) b e \r [ 032 \
0012160 f 1 \r l e t s t r = F 376 001
0012200 \0 265 352 i n d N a m e e s S t r i
0012220 n g ( i c i n s t ) \r P u t T e
0012240 m p l a t e ( I m p l i c i t F
0012260 i l e , " * n V E E : $ S .
0012300 1 p * n G N D : $ S . 2 p " ,
0012320 s t r , s t r ) 032 l 4 2 6 9
0012340 \ f 1 \r ] \r \r a n d V T T B y
0012360 p a s s V o l t a g e s ( i c i
0012400 n s t ) b e \r [ 032 \ f 1 \r l e
0012420 t s t r = F i n d N a m e
0012440 e s S t r i n g ( i c i n s t )
0012460 \r P u t T e m p l a t e ( I m p
0012500 l i c i t F i l e , " * n G N
0012520 D : $ S . 1 p * n V T T : $
0012540 S . 2 p " , s t r , s t r )
0012560 032 l 4 2 6 9 \ f 1 \r ] \r \r a n d
0012600 A d 376 001 \0 023 I d D e c o u p l
0012620 i n g C a p s ( ) b e \r [ 032 \
0012640 f 1 \r f o r r o w = 1 t
0012660 o 2 3 b y 2 d o \r [ 032 l
0012700 4 2 6 9 \ f 1 \r f o r c o l
0012720 = $ a t o $ g b y ( $
0012740 g - $ a ) d o \r [ 032 l 5 5 3 9
0012760 \ f 1 \r A d d C a p ( V C C C a
0013000 p , " 9 " , c o l , r o w
0013020 ) \r A d d C a p ( V E E C a p ,
0013040 " 8 " , c o l , r o w ) \r
0013060 A d d C a p ( V C C 2 C a p ,
0013100 " 9 " , c o l , r o w + 1 )
0013120 \r A d d C a p ( V E E C a p ,
0013140 " 8 " , c o l , r o w + 1 )
0013160 032 l 6 8 0 9 \ f 1 \r ] \r f o r
0013200 c o l = $ c 376 001 \0 % 271 t o
0013220 $ l b y ( $ f - $ c ) d
0013240 o \r [ 032 l 5 5 3 9 \ f 1 \r A d d
0013260 C a p ( V C C C a p , " - 1 "
0013300 , c o l , r o w ) \r A d d C
0013320 a p ( V E E C a p , " - 2 " ,
0013340 c o l , r o w ) \r f o r s
0013360 u b c o l = - 2 t o - 1
0013400 d o \r A d d C a p ( V T T
0013420 C a p , " - 1 _ 3 " , c o l
0013440 + s u b c o l , r o w ) \r A d
0013460 d C a p ( V C C 2 C a p , " -
0013500 1 " , c o l , r o w + 1 ) \r
0013520 A d d C a p ( V E E C a p , "
0013540 - 2 " , c o l , r o w + 1 )
0013560 032 l 6 8 0 9 \ f 1 \r ] 032 l 5 5 3
0013600 9 \ f 1 \r ] 032 l 4 2 6 9 \ 376 001 \0
0013620 325 250 f 1 \r ] \r \r a n d A d d C
0013640 a p ( c a p T y p e , o f f s
0013660 e t S t r , c o l , r o w )
0013700 b e \r [ 032 \ f 1 \r l e t s
0013720 = v e c 2 0 \r E x p a n d T
0013740 e m p l a t e ( s , " # $ S $
0013760 C $ 2 F 0 D " , o f f s e t S
0014000 t r , c o l , r o w ) \r I n
0014020 s e r t D e v i c e I f P o s s
0014040 i b l e ( s , c a p T y p e ,
0014060 t r u e ) / / s u p p r e s
0014100 s w a r n i n g s 032 l 4 2 6 9
0014120 \ f 1 \r ] \r \r a n d E P i n P
0014140 o s ( i c i n s t , p i n ,
0014160 p x , p y ) = v a l o f \r
0014200 [ 032 \ f 1 \r i f ( p i n l s
0014220 5 376 001 \0 315 Z ) % ( p i n
0014240 g r 1 8 8 ) t h e n r e s
0014260 u l t i s i l l e g a l \r @ p
0014300 y = 5 2 4 \r l e t p g =
0014320 ( p i n - 1 ) r e m 4 \r i
0014340 f ( p g e q 0 ) % ( p g
0014360 e q 3 ) t h e n r e s u l
0014400 t i s i l l e g a l \r l e t
0014420 x C o l = ( p i n - 5 ) / 2
0014440 \r @ p x = 2 2 + 4 * x C o l
0014460 + 2 * ( x C o l / 2 ) \r r e s u
0014500 l t i s a b s o l u t e 032 l 4
0014520 2 6 9 \ f 1 \r ] \r \r a n d C P
0014540 i n P o s ( i c i n s t , p i
0014560 n , p x , p y ) = v a l
0014600 o f \r [ 032 \ f 1 \r i f ( p i n
0014620 l s 5 ) 376 001 \0 274 5 % ( p
0014640 i n g r 1 8 8 ) t h e n
0014660 r e s u l t i s i l l e g a l
0014700 \r @ p y = 0 \r l e t p g
0014720 = ( p i n - 1 ) r e m 4 \r
0014740 i f ( p g e q 1 ) % ( p g
0014760 e q 2 ) t h e n r e s u
0015000 l t i s i l l e g a l \r l e t
0015020 x C o l = ( 1 8 8 - p i n
0015040 ) / 2 \r @ p x = 2 2 + 4 * x
0015060 C o l + 2 * ( x C o l / 2 ) \r r
0015100 e s u l t i s a b s o l u t e
0015120 032 l 4 2 6 9 \ f 1 \r ] \r \r a n d
0015140 G N D P i n P o s ( i c i n s
0015160 t , p i n , p x , p y ,
0015200 p I n f o ; n u m a r g s n
0015220 a ) = v a l o f \r [ 376 001 \0 214
0015240 a 032 \ f 1 \r D e f a u l t A r g
0015260 s ( l v n a , - 4 , l v
0015300 n a ) \r @ p I n f o = n o D
0015320 i s c o n n e c t + n o R e c o
0015340 n n e c t + B o t t o m L e v e
0015360 l \r i f p i n l e 0 t h
0015400 e n r e s u l t i s i l l e
0015420 g a l \r i f p i n l e p a
0015440 t t e r n G r o u n d s t h e
0015460 n \r [ 032 l 4 2 6 9 \ f 1 \r R e p
0015500 e a t ( l v p i n , 3 , 6
0015520 , p x , p y ) \r l e t x t
0015540 a b l e = t a b l e [ 0
0015560 ; 0 ; 4 ; 4 0 ; 4 0 ; 7 2 ; 7 6
0015600 ; 7 6 ; 1 0 8 ] \r @ p x =
0015620 @ p x + x t a b l e ! p i n \r l
0015640 e 376 001 \0 \0 q t y t a b l e =
0015660 t a b l e [ 1 2 ; 2 4 ; 3
0015700 6 ; 0 ; 1 2 ; 1 2 ; 0 ; 1 2 ; 3
0015720 6 ] \r @ p y = @ p y + y t
0015740 a b l e ! p i n \r r e s u l t i
0015760 s a b s o l u t e 032 l 5 5 3 9
0016000 \ f 1 \r ] \r p i n = p i n -
0016020 p a t t e r n G r o u n d s \r i
0016040 f p i n l e 2 * 9 2 t h
0016060 e n \r [ 032 l 4 2 6 9 \ f 1 \r p i
0016100 n = p i n - 1 \r @ p y =
0016120 p i n l s 9 2 ? 0 + 4 ,
0016140 5 2 4 - 4 \r l e t s e q =
0016160 p i n r e m 9 2 \r @ p x =
0016200 2 2 + 4 * s e q + 2 * ( s e q
0016220 / 2 ) \r r e s u l t i s a b s
0016240 o l u t e 032 376 001 \0 O n l 5 5 3 9
0016260 \ f 1 \r ] \r r e s u l t i s i
0016300 l l e g a l 032 l 4 2 6 9 \ f 1 \r
0016320 ] \r \r a n d V E E P i n P o s
0016340 ( i c i n s t , p i n , p x
0016360 , p y , p I n f o ; n u m
0016400 a r g s n a ) = v a l o f
0016420 \r [ 032 \ f 1 \r D e f a u l t A r
0016440 g s ( l v n a , - 4 , l v
0016460 n a ) \r @ p I n f o = n o
0016500 D i s c o n n e c t + n o R e c
0016520 o n n e c t + B o t t o m L e v
0016540 e l \r i f p i n l e 0 t
0016560 h e n r e s u l t i s i l l
0016600 e g a l \r i f p i n l e 4
0016620 * f u l l R e p e a t s + 2 * r
0016640 e p e a t s t h e n 376 001 \0 216 214
0016660 \r [ 032 l 4 2 6 9 \ f 1 \r R e p e
0016700 a t ( l v p i n , 2 , 4 ,
0016720 p x , p y ) \r l e t x t a
0016740 b l e = t a b l e [ 4 ;
0016760 4 4 ; 8 0 ] \r @ p x = @ p
0017000 x + x t a b l e ! ( p i n / 2 )
0017020 \r @ p y = @ p y + 2 4 * ( p
0017040 i n r e m 2 ) \r r e s u l t
0017060 i s a b s o l u t e 032 l 5 5 3
0017100 9 \ f 1 \r ] \r r e s u l t i s
0017120 i l l e g a l 032 l 4 2 6 9 \ f 1
0017140 \r ] \r \r a n d V T T P i n P o
0017160 s ( i c i n s t , p i n , p
0017200 x , p y , p I n f o ; n u
0017220 m a r g s n a ) = v a l o
0017240 f \r [ 032 \ f 1 \r D e f a u l t A
0017260 376 001 \0 d 223 r g s ( l v n a ,
0017300 - 4 , l v n a ) \r @ p I n f
0017320 o = n o D i s c o n n e c t
0017340 + n o R e c o n n e c t + B o t
0017360 t o m L e v e l \r i f p i n
0017400 l e 0 t h e n r e s u l t
0017420 i s i l l e g a l \r i f p i
0017440 n l e 3 * f u l l R e p e a
0017460 t s t h e n \r [ 032 l 4 2 6 9 \
0017500 f 1 \r R e p e a t ( l v p i n
0017520 , 0 , 3 , p x , p y ) \r
0017540 l e t x t a b l e = t a b
0017560 l e [ 4 0 ; 7 6 ; 1 0 8 ]
0017600 \r @ p x = @ p x + x t a b l
0017620 e ! p i n \r l e t y t a b l e
0017640 = t a b l e [ 2 4 ; 2 4
0017660 ; 1 8 ] 376 001 \0 004 331 \r @ p y =
0017700 @ p y + y t a b l e ! p i n \r
0017720 r e s u l t i s a b s o l u t
0017740 e 032 l 5 5 3 9 \ f 1 \r ] \r r e s
0017760 u l t i s i l l e g a l 032 l 4
0020000 2 6 9 \ f 1 \r ] \r \r a n d V D
0020020 D P i n P o s ( i c i n s t ,
0020040 p i n , p x , p y , p I n
0020060 f o ; n u m a r g s n a )
0020100 = v a l o f \r [ 032 \ f 1 \r D e
0020120 f a u l t A r g s ( l v n a ,
0020140 - 4 , l v n a ) \r @ p I n
0020160 f o = n o D i s c o n n e c
0020200 t + n o R e c o n n e c t + B o
0020220 t t o m L e v e l \r i f p i n
0020240 l e 0 t h e n r e s u l
0020260 t i s i l l e g a 376 001 \0 x 207 l
0020300 \r i f p i n l e r e p e a
0020320 t s t h e n \r [ 032 l 4 2 6 9 \
0020340 f 1 \r R e p e a t ( l v p i n
0020360 , 1 , 0 , p x , p y ) \r
0020400 @ p x = @ p x + 4 \r @ p y
0020420 = @ p y + 1 8 \r r e s u l t i
0020440 s a b s o l u t e 032 l 5 5 3 9
0020460 \ f 1 \r ] \r r e s u l t i s i
0020500 l l e g a l 032 l 4 2 6 9 \ f 1 \r
0020520 ] \r \r a n d V C C P i n P o s
0020540 ( i c i n s t , p i n , p x
0020560 , p y , p I n f o ; n u m
0020600 a r g s n a ) = v a l o f
0020620 \r [ 032 \ f 1 \r D e f a u l t A r
0020640 g s ( l v n a , - 4 , l v
0020660 n a ) \r @ p I n f o = n 376
0020700 001 \0 373 242 o D i s c o n n e c t +
0020720 n o R e c o n n e c t + B o t t
0020740 o m L e v e l \r i f p i n l
0020760 e 0 t h e n r e s u l t i
0021000 s i l l e g a l \r i f p i n
0021020 l e r e p e a t s t h e n
0021040 \r [ 032 l 4 2 6 9 \ f 1 \r R e p e
0021060 a t ( l v p i n , 1 , 0 ,
0021100 p x , p y ) \r @ p y = @
0021120 p y + 3 6 \r r e s u l t i s a
0021140 b s o l u t e 032 l 5 5 3 9 \ f 1
0021160 \r ] \r r e s u l t i s i l l e
0021200 g a l 032 l 4 2 6 9 \ f 1 \r ] \r \r
0021220 a n d A u t o T e r m P i n P
0021240 o s ( i c i n s t , p i n ,
0021260 p x , p y , p I n f o , p
0021300 i n N a 376 001 \0 037 200 m e ; n u m
0021320 a r g s n a ) = v a l o f
0021340 \r [ 032 \ f 1 \r D e f a u l t A r
0021360 g s ( l v n a , - 4 , l v
0021400 n a , 0 ) \r i f p i n l
0021420 e 0 t h e n r e s u l t i
0021440 s i l l e g a l \r i f p i n
0021460 l e 1 0 0 8 t h e n \r [ 032
0021500 l 4 2 6 9 \ f 1 \r p i n = p i n
0021520 - 1 \r l e t p a c k a g e =
0021540 p i n / 7 \r p i n = p i n
0021560 r e m 7 \r P i n 1 o f 8 ( p
0021600 a c k a g e r e m 1 2 , p
0021620 a c k a g e / 1 2 , p x , p
0021640 y ) \r @ p x = @ p x - 4 - 4
0021660 * p i n \r i f p i n N a m e
0021700 n e 0 t h e n 376 001 \0 \f > 032 l
0021720 5 5 3 9 \ f 1 \r E x p a n d T e
0021740 m p l a t e ( p i n N a m e ,
0021760 " $ C $ D . $ D " , $ a + p a
0022000 c k a g e / 1 2 , \r 4 1 + ( p
0022020 a c k a g e r e m 1 2 ) ,
0022040 p i n + 2 ) \r r e s u l t i s
0022060 a b s o l u t e 032 l 5 5 3 9 \ f
0022100 1 \r ] \r r e s u l t i s i l l
0022120 e g a l 032 l 4 2 6 9 \ f 1 \r ] \r
0022140 \r a n d F i n d C o o r d F r
0022160 o m S t r i n g ( s , p x ,
0022200 p y , v o p 1 , h o p 1 ;
0022220 n u m a r g s n a ) = v a
0022240 l o f \r [ / / v o p 1 i s
0022260 t h e " v e r t i c a l "
0022300 f r o m p i n 1 , t h 376 001
0022320 \0 F b a t i s , t h e o f
0022340 f s e t a l o n g t h e 0
0022360 . 1 " \r / / s p a c i n g ;
0022400 h o p 1 i s t h e " h o r
0022420 i z o n t a l o f f s e t "
0022440 f r o m p i n 1 . I n a
0022460 s t a n d a r d 1 6 - p i n
0022500 \r / / D I P , f o r p i n
0022520 2 v o p 1 = 4 a n d h o
0022540 p 1 = 0 , a n d f o r p i
0022560 n 1 6 , v o p 1 = 0 a n d
0022600 h o p 1 = 1 2 . F o r \r / /
0022620 t h i s b o a r d , v o p
0022640 1 g r o w s i n t h e -
0022660 x d i r e c t i o n , a n d
0022700 h o p 1 g r o w s i n t
0022720 h e 376 001 \0 311 q + y d i r e c
0022740 t i o n . \r \r / / s c a n
0022760 b e o f t h e f o r m <
0023000 l o w e r - c a s e l e t t e
0023020 r > < n u m b e r > o r \r / /
0023040 \t < n u m b e r > s ( m e a
0023060 n i n g v e r t i c a l l y
0023100 o f f s e t < n u m b e r > *
0023120 0 . 1 " ) o r \r / / \t ^ < n u
0023140 m b e r > s ( m e a n i n g
0023160 v e r t i c a l l y o f f s
0023200 e t < n u m b e r > * 0 . 1 "
0023220 ) o r \r / / _ < n u m b e r
0023240 > s ( m e a n i n g h o r
0023260 i z o n t a l l y o f f s e t
0023300 < n u m b e r > * 0 . 1 " )
0023320 o r \r / / # 376 001 \0 \t 264 s \r 032
0023340 \ f 1 \r D e f a u l t A r g s (
0023360 l v n a , - 3 , 0 , 0 )
0023400 \r \r l e t b p V O f f s e t ,
0023420 b p H O f f s e t = 0 , 0
0023440 \r l e t i = 0 \r l e t c =
0023460 $ # \r l e t o f f s e t I s
0023500 V e r t i c a l = t r u e \r
0023520 l e t s i g n = 1 \r \r w h
0023540 i l e i l e s > > s t r .
0023560 l e n g t h & ( c l s $
0023600 a % c g r $ z ) d o \r
0023620 [ 032 l 4 2 6 9 \ f 1 \r i f c
0023640 e q $ ^ % c e q $ _
0023660 % c e q $ # % c e q
0023700 $ - t h e n \r [ 032 l 5 5 3 9
0023720 \ f 1 \r t e s t c e q 376 001 \0
0023740 334 V $ - \r i f s o s i g n
0023760 = - s i g n \r i f n o t o f
0024000 f s e t I s V e r t i c a l =
0024020 n o t ( c e q $ _ ) \r \r
0024040 i = i + 1 \r c = s > > s t r
0024060 . c h a r ^ i \r l o o p 032 l 6 8
0024100 0 9 \ f 1 \r ] \r \r i f c g e
0024120 $ 0 & c l e $ 9 t h
0024140 e n \r [ 032 l 5 5 3 9 \ f 1 \r l e
0024160 t b p O f f s e t = 0 \r w
0024200 h i l e i l e s > > s t r
0024220 . l e n g t h & c g e $
0024240 0 & c l e $ 9 d o \r [
0024260 032 l 6 8 0 9 \ f 1 \r b p O f f s
0024300 e t = 1 0 * b p O f f s e t
0024320 + c - $ 0 \r i = i + 1 \r c
0024340 = 376 001 \0 277 340 s > > s t r . c h
0024360 a r ^ i 032 l 8 0 7 9 \ f 1 \r ] \r
0024400 @ ( o f f s e t I s V e r t i c
0024420 a l ? l v b p V O f f s e t
0024440 , l v b p H O f f s e t )
0024460 = \r s i g n * b p O f f s e t
0024500 \r o f f s e t I s V e r t i c a
0024520 l = t r u e \r s i g n =
0024540 1 \r l o o p 032 l 6 8 0 9 \ f 1 \r
0024560 ] \r \r r e s u l t i s i l l e
0024600 g a l 032 l 5 5 3 9 \ f 1 \r ] \r \r
0024620 v o p 1 = v o p 1 + 4 * b p
0024640 V O f f s e t \r h o p 1 = h
0024660 o p 1 + 4 * b p H O f f s e t \r
0024700 \r / / I C p o s i t i o n
0024720 o f t h e f o r m < l e t
0024740 t e r > < n u 376 001 \0 C 271 m b e r
0024760 > \r \r i f i g r s > > s t
0025000 r . l e n g t h % c l s
0025020 $ a % c g r $ z t h e
0025040 n r e s u l t i s i l l e g
0025060 a l \r l e t a l p h = c \r
0025100 \r l e t n u m = 0 \r w h i
0025120 l e i l s s > > s t r . l
0025140 e n g t h d o \r [ 032 l 4 2 6 9
0025160 \ f 1 \r i = i + 1 \r c = s >
0025200 > s t r . c h a r ^ i \r i f (
0025220 c l s $ 0 ) % ( c g r
0025240 $ 9 ) t h e n r e s u l t
0025260 i s i l l e g a l \r n u m =
0025300 1 0 * n u m + ( c - $ 0 ) 032 l
0025320 5 5 3 9 \ f 1 \r ] \r \r i f ( n
0025340 u m g e 1 ) & ( n u 376 001 \0 366
0025360 030 m l e 2 4 ) t h e n \r [
0025400 032 l 4 2 6 9 \ f 1 \r u n l e s s
0025420 P i n 1 o f 1 6 ( n u m - 1 ,
0025440 a l p h - $ a , p x , p y
0025460 ) d o r e s u l t i s i l
0025500 l e g a l \r @ p x = @ p x - v o
0025520 p 1 \r @ p y = @ p y + h o p
0025540 1 \r r e s u l t i s a b s o l
0025560 u t e 032 l 5 5 3 9 \ f 1 \r ] \r \r
0025600 i f ( n u m g e 4 1 ) &
0025620 ( n u m l e 5 2 ) t h e
0025640 n \r [ 032 l 4 2 6 9 \ f 1 \r u n l
0025660 e s s P i n 1 o f 8 ( n u m -
0025700 4 1 , a l p h - $ a , p x ,
0025720 p y ) d o r e s u l t i s
0025740 i l l e g a l \r @ p x = @ p x
0025760 - 376 001 \0 V ? v o p 1 \r @ p y = @
0026000 p y + h o p 1 \r r e s u l t i s
0026020 a b s o l u t e 032 l 5 5 3 9 \
0026040 f 1 \r ] \r \r l e t c o l =
0026060 s e l e c t o n a l p h i n
0026100 t o \r [ 032 l 4 2 6 9 \ f 1 \r c a
0026120 s e $ b : 0 \r c a s e $ c
0026140 : 1 \r c a s e $ e : 2 \r c
0026160 a s e $ f : 3 \r c a s e $
0026200 h : 4 \r c a s e $ i : 5 \r
0026220 c a s e $ k : 6 \r c a s e
0026240 $ l : 7 \r d e f a u l t : -
0026260 1 032 l 5 5 3 9 \ f 1 \r ] \r l e t
0026300 r o w = s e l e c t o n
0026320 n u m i n t o \r [ 032 l 4 2 6 9
0026340 \ f 1 \r c a s e 6 0 : 1 \r c
0026360 a s e 6 1 376 001 \0 F \ : 4 \r c
0026400 a s e 6 2 : 7 \r c a s e 6
0026420 3 : 1 0 \r \r c a s e 6 4 :
0026440 0 \t / / n e w n u m b e r s
0026460 \r c a s e 6 5 : 2 \r c a s e
0026500 6 6 : 3 \r c a s e 6 7 :
0026520 5 \r c a s e 6 8 : 6 \r c a s
0026540 e 6 9 : 8 \r c a s e 7 0 :
0026560 9 \r c a s e 7 1 : 1 1 \r \r
0026600 d e f a u l t : - 1 032 l 5 5 3
0026620 9 \ f 1 \r ] \r \r u n l e s s P
0026640 i n 1 o f 2 4 ( r o w , c o l
0026660 , p x , p y ) d o r e s
0026700 u l t i s i l l e g a l \r @ p
0026720 x = @ p x - v o p 1 \r @ p y
0026740 = @ p y + h o p 1 032 l 4 2 6
0026760 9 \ f 1 \r r e s u l t 376 001 \0 240 223
0027000 i s a b s o l u t e 032 l 4 2 6
0027020 9 \ f 1 \r ] \r \r a n d P i n 1
0027040 o f 1 6 ( r o w , c o l , p
0027060 x , p y ) = v a l o f \r [
0027100 032 \ f 1 \r u n l e s s O f f s
0027120 e t L e g a l ( r o w , 1 ,
0027140 0 , 2 3 ) & O f f s e t L e g
0027160 a l ( c o l , 1 , $ a - $ a
0027200 , $ l - $ a ) d o \r r e s
0027220 u l t i s f a l s e \r \r B a s
0027240 i c P a t t e r n ( r o w / 2 ,
0027260 c o l / 3 + c o l / 6 , p x
0027300 , p y ) \r @ p y = @ p y + 2 4
0027320 * ( r o w r e m 2 ) \r @ p x
0027340 = @ p x + 3 6 + 3 6 * ( c o l
0027360 r e m 3 ) \r r e s u l t i s
0027400 376 001 \0 ~ 7 t r u e 032 l 4 2 6 9 \
0027420 f 1 \r ] \r \r a n d P i n 1 o f
0027440 8 ( r o w , c o l , p x ,
0027460 p y ) = v a l o f \r [ 032 \ f
0027500 1 \r u n l e s s O f f s e t L
0027520 e g a l ( r o w , 1 , 0 ,
0027540 1 1 ) & O f f s e t L e g a l (
0027560 c o l , 1 , $ a - $ a , $
0027600 l - $ a ) d o \r r e s u l t
0027620 i s f a l s e \r \r B a s i c P
0027640 a t t e r n ( r o w , c o l /
0027660 3 + c o l / 6 , p x , p y )
0027700 \r @ p y = @ p y + 1 8 \r @ p x =
0027720 @ p x + 3 6 + 3 6 * ( c o l r
0027740 e m 3 ) \r r e s u l t i s t
0027760 r u e 032 l 4 2 6 9 \ f 1 \r ] \r \r
0030000 a n d P 376 001 \0 376 243 i n 1 o f 2
0030020 4 ( r o w , c o l , p x ,
0030040 p y ) = v a l o f \r [ 032 \ f
0030060 1 \r u n l e s s O f f s e t L
0030100 e g a l ( r o w , 1 , 0 ,
0030120 1 1 ) & O f f s e t L e g a l (
0030140 c o l , 1 , 0 , 7 ) d o
0030160 r e s u l t i s f a l s e \r
0030200 \r B a s i c P a t t e r n ( r o
0030220 w , c o l / 2 + c o l / 4 ,
0030240 p x , p y ) \r @ p y = @ p y +
0030260 8 \r @ p x = @ p x + 5 2 + 5 6 *
0030300 ( c o l r e m 2 ) \r r e s u
0030320 l t i s t r u e 032 l 4 2 6 9 \
0030340 f 1 \r ] \r 032 \ f 1 \r a n d P i
0030360 n 1 o f 5 0 ( r o w , c o l ,
0030400 p x , p y ) = 376 001 \0 6 M
0030420 P i n 1 o f 2 4 ( r o w , 2 *
0030440 c o l , p x , p y ) \r \r a n
0030460 d R e p e a t ( p p i n , p
0030500 i n s P e r B a s i c R e p e a
0030520 t , e x t r a P i n s P e r F
0030540 u l l R e p e a t , p x , p
0030560 y ) b e \r [ 032 \ f 1 \r l e t
0030600 p i n = @ p p i n - 1 \r l e
0030620 t p i n s P e r S i d e =
0030640 r e p e a t R o w s * \r ( ( r
0030660 e p e a t C o l s / 2 ) * p i n
0030700 s P e r B a s i c R e p e a t +
0030720 \r ( f u l l R e p e a t C o
0030740 l s / 2 ) * e x t r a P i n s P
0030760 e r F u l l R e p e a t ) \r l e
0031000 t s i d e = p i n / p i 376
0031020 001 \0 * { n s P e r S i d e \r p i
0031040 n = p i n r e m p i n s
0031060 P e r S i d e \r l e t p i n s
0031100 P e r F u l l C o l = r e p
0031120 e a t R o w s * ( p i n s P e r
0031140 B a s i c R e p e a t + e x t r
0031160 a P i n s P e r F u l l R e p e
0031200 a t ) \r l e t c o l = p i
0031220 n / p i n s P e r F u l l C o l
0031240 \r p i n = p i n r e m p
0031260 i n s P e r F u l l C o l \r l e
0031300 t p i n s P e r R e p e a t
0031320 = p i n s P e r B a s i c R e
0031340 p e a t + \r ( c o l l s f
0031360 u l l R e p e a t C o l s / 2 ?
0031400 e x t r a P i n s P e r F u l
0031420 l R e p 376 001 \0 302 177 e a t , 0 )
0031440 \r l e t r o w = p i n / p
0031460 i n s P e r R e p e a t \r @ p p
0031500 i n = p i n r e m p i n
0031520 s P e r R e p e a t \r B a s i c
0031540 P a t t e r n ( r o w , 3 * s
0031560 i d e + c o l , p x , p y )
0031600 032 l 4 2 6 9 \ f 1 \r ] \r \r a n d
0031620 B a s i c P a t t e r n ( r o
0031640 w , c o l , p x , p y )
0031660 b e \r [ 032 \ f 1 \r @ p y = r
0031700 o w O f f s e t + r o w H e i g
0031720 h t * r o w \r @ p x = ( c
0031740 o l l s 3 ? l e f t C o l
0031760 s O f f s e t , r i g h t C o
0032000 l s O f f s e t ) + \r f u l l
0032020 C o l W i d t h * 376 \0 034 L 370 ( c
0032040 o l r e m 3 ) 032 l 4 2 6 9 \
0032060 f 1 \r ] \r 032 \ f 1 \r 377 \0 \0 r o u
0032100 t e p c l b 2 . b c p l \0 373 227 {
0032120 241 336 \0 \0 376 001 \0 = ` / / r o u t e
0032140 p c l b 2 . b c p l \r \r / / B
0032160 o a r d - s p e c i f i c R o
0032200 u t e r o u t i n e s f o r
0032220 t h e P C v e r s i o n
0032240 o f t h e \r / / D o r a d o
0032260 M a i n L o g i c B o a r
0032300 d \r \r / / p a r t 2 o f
0032320 3 \r \r / / l a s t m o d i f
0032340 i e d b y E . M c C r e i
0032360 g h t , J u l y 1 4 , 1 9
0032400 8 1 6 : 3 7 P M \r / / \t \t
0032420 t o m o v e t h e l i n e
0032440 o f h o l e s u n d e r
0032460 t h e D I P p a t t e r n s
0032500 \r \r / / a l l c o - o r d i
0032520 n a t e s a r e 376 001 \0 221 352 d
0032540 e s c r i b e d w i t h r e
0032560 s p e c t t o t h e b o t
0032600 t o m o r \r / / w i r i n g
0032620 s i d e o f t h e b o a
0032640 r d . L e v e l T r a n s f o
0032660 r m f i x e s t h e s e a
0032700 s n e c e s s a r y . \r \r g e
0032720 t " r o u t e . d e f s " \r \r
0032740 m a n i f e s t \r [ 032 ( 6 3 5 )
0032760 \ f 1 \r r e p e a t R o w s =
0033000 1 2 \r r e p e a t C o l s P e
0033020 r S i d e = 3 \r r e p e a t
0033040 C o l s = 2 * r e p e a t C
0033060 o l s P e r S i d e \r f u l l R
0033100 e p e a t C o l s P e r S i d e
0033120 = 2 \r f u l l R e p e a 376 001
0033140 \0 027 002 t C o l s = 2 * f u l
0033160 l R e p e a t C o l s P e r S i
0033200 d e \r r e p e a t s = r e p
0033220 e a t R o w s * r e p e a t C o
0033240 l s \r f u l l R e p e a t s =
0033260 r e p e a t R o w s * f u l l
0033300 R e p e a t C o l s \r r o w O f
0033320 f s e t = 1 6 \r l e f t C o
0033340 l s O f f s e t = 0 \r r i g
0033360 h t C o l s O f f s e t = 2
0033400 4 6 \r r o w H e i g h t = 4
0033420 2 \r f u l l C o l W i d t h =
0033440 1 1 2 \r p a t t e r n G r o u
0033460 n d s = 3 * r e p e a t s +
0033500 6 * f u l l R e p e a t s \r S o
0033520 c k e t s 1 6 p i n = 6 * f
0033540 u l l 376 001 \0 } 030 R e p e a t s \r
0033560 S o c k e t s 2 4 p i n = 2
0033600 * f u l l R e p e a t s \r S o c
0033620 k e t s 5 0 p i n = f u l l
0033640 R e p e a t s \r S o c k e t s S
0033660 i p = 3 * f u l l R e p e a
0033700 t s 032 l 4 2 6 9 \ f 1 \r ] \r \r s
0033720 t a t i c [ b o a r d I n t
0033740 e r f a c e V e r s i o n =
0033760 i n t e r f a c e V e r s i o n
0034000 ] \r \r l e t F i n d I n d e
0034020 x F r o m C o o r d ( x , y ,
0034040 p i c c l a s s , p P i n N
0034060 o ; n u m a r g s n a ) =
0034100 v a l o f \r [ 032 \ f 1 \r s t a
0034120 t i c [ h o t I n d e x =
0034140 - 1 ; f i r 376 001 \0 S \a s t U
0034160 n u s e d P i n = 0 ] \r \r
0034200 D e f a u l t A r g s ( l v n
0034220 a , - 2 , l v n a , l v
0034240 n a ) \r \r i f f i r s t U n
0034260 u s e d P i n e q 0 t h e
0034300 n f i r s t U n u s e d P i n
0034320 = F I F C ( - 1 , - 1 ) \r l
0034340 e t r e s u l t = F I F C
0034360 ( x , y , p i c c l a s s ,
0034400 p P i n N o ) \r i f r e s u
0034420 l t l s 0 % r e s u l t
0034440 g r f i r s t U n u s e d P
0034460 i n t h e n C a l l S w a t
0034500 ( " I l l e g a l i n d e x .
0034520 . " ) \r i f r e s u l t e q
0034540 h o t I n d e x t h e 376 001 \0
0034560 I 217 n C a l l S w a t ( " H o
0034600 t i n d e x c o m p u t e d
0034620 . . . " ) \r r e s u l t i s r
0034640 e s u l t 032 l 4 2 6 9 \ f 1 \r ]
0034660 \r \r a n d F I F C ( x , y ,
0034700 p i c c l a s s , p P i n N
0034720 o ; n u m a r g s n a ) =
0034740 v a l o f \r [ 032 \ f 1 \r / /
0034760 t h i s i s m o d i f i e d
0035000 f r o m t h e s t i t c h
0035020 w e l d a n d m u l t i w i
0035040 r e f o r m a t t o i n t
0035060 r o d u c e \r / / t w o r o
0035100 w s o f h o l e s u n d e
0035120 r t h e I C ' s i n s t e
0035140 a d o f o n e \r \r m a n i f
0035160 e s 376 001 \0 003 247 t \r [ 032 l 4 2 6 9
0035200 \ f 1 \r f i r s t E P i n =
0035220 1 \r f i r s t S o c k e t G r o
0035240 u n d = f i r s t E P i n +
0035260 9 2 + 9 2 \r f i r s t P a t t e
0035300 r n P i n = f i r s t S o c
0035320 k e t G r o u n d + 9 2 + 9 2 \r
0035340 f i r s t U n u s e d P i n =
0035360 f i r s t P a t t e r n P i n
0035400 + r e p e a t R o w s * 7 * ( f
0035420 u l l R e p e a t C o l s * 2 6
0035440 + \r r e p e a t C o l s * 2 )
0035460 032 l 5 5 3 9 \ f 1 \r ] \r \r i f
0035500 x e q - 1 & y e q -
0035520 1 t h e n r e s u l t i s
0035540 f i r s t U n u s e d P i n \r \r
0035560 D e f a u l t 376 001 \0 % 271 A r g s
0035600 ( l v n a , - 2 , l v n
0035620 a , l v n a ) \r \r u n l e s
0035640 s O f f s e t L e g a l ( x ,
0035660 1 , 0 , 4 7 6 ) & O f f s
0035700 e t L e g a l ( y , 1 , 0 ,
0035720 5 2 4 ) d o r e s u l t i
0035740 s 0 \r \r i f y e q 0 %
0035760 y e q 5 2 4 t h e n /
0036000 / . . c o n n e c t o r s i
0036020 g n a l p i n \r [ 032 l 4 2 6 9
0036040 \ f 1 \r l e t c o n n C l a s
0036060 s = ( x - 2 2 ) r e m 1
0036100 0 \r i f ( c o n n C l a s s
0036120 n e 0 ) & ( c o n n C l a
0036140 s s n e 4 ) t h e n r e
0036160 s u l t i s 0 \r l e t 376 001 \0 340
0036200 026 v p i n = 2 * ( ( x - 2
0036220 2 ) / 1 0 ) + ( c o n n C l a s
0036240 s / 4 ) \r u n l e s s O f f s
0036260 e t L e g a l ( v p i n , 1 ,
0036300 0 , 9 1 ) d o r e s u l
0036320 t i s 0 \r r e s u l t i s v
0036340 p i n + 9 2 * ( y / 5 2 4 ) + f
0036360 i r s t E P i n 032 l 5 5 3 9 \ f
0036400 1 \r ] \r \r i f y e q 4 %
0036420 y e q 5 2 0 t h e n /
0036440 / . . c o n n e c t o r g r
0036460 o u n d p i n \r [ 032 l 4 2 6 9
0036500 \ f 1 \r l e t c o n n C l a s
0036520 s = ( x - 2 2 ) r e m 1
0036540 0 \r i f ( c o n n C l a s s
0036560 n e 0 ) & ( c o n n C l a
0036600 s 376 001 \0 D 033 s n e 4 ) t h
0036620 e n r e s u l t i s 0 \r l e
0036640 t v p i n = 2 * ( ( x - 2
0036660 2 ) / 1 0 ) + ( c o n n C l a s
0036700 s / 4 ) \r u n l e s s O f f s
0036720 e t L e g a l ( v p i n , 1 ,
0036740 0 , 9 1 ) d o r e s u l
0036760 t i s 0 \r l e t c g p =
0037000 v p i n + 9 2 * ( y / 5 2 0 ) \r
0037020 @ p i c c l a s s = M u s t
0037040 F i n d N a m e e ( " G N D " ,
0037060 t y p e I c c l a s s ) \r @ p
0037100 P i n N o = p a t t e r n G
0037120 r o u n d s + 1 + c g p \r r e s
0037140 u l t i s c g p + f i r s t S
0037160 o c k e t G r o u n d 032 l 5 5 3
0037200 9 \ f 1 \r ] 376 001 \0 1 x \r \r l e t
0037220 s i d e = 0 \r i f x g
0037240 e r i g h t C o l s O f f s e
0037260 t t h e n \r [ 032 l 4 2 6 9 \ f
0037300 1 \r s i d e = 1 \r x = x
0037320 - ( r i g h t C o l s O f f s e
0037340 t - l e f t C o l s O f f s e t
0037360 ) 032 l 5 5 3 9 \ f 1 \r ] \r l e t
0037400 x O f f s e t = x - l e f
0037420 t C o l s O f f s e t \r u n l e
0037440 s s O f f s e t L e g a l ( x
0037460 O f f s e t , 4 , 0 , 5 7
0037500 ) d o r e s u l t i s 0 \r
0037520 l e t x R e p e a t = r e
0037540 p e a t C o l s P e r S i d e *
0037560 s i d e + ( x O f f s e t / f u
0037600 l l C o l W i d t h ) 376 001 \0 @ 177
0037620 \r x O f f s e t = x O f f s
0037640 e t r e m f u l l C o l W i
0037660 d t h \r u n l e s s O f f s e
0037700 t L e g a l ( x O f f s e t ,
0037720 4 , 0 , 2 7 ) d o r e s
0037740 u l t i s 0 \r l e t y O f f
0037760 s e t = y - r o w O f f s e
0040000 t \r l e t y R e p e a t =
0040020 y O f f s e t / r o w H e i g h
0040040 t \r y O f f s e t = y O f f
0040060 s e t r e m r o w H e i g h
0040100 t \r u n l e s s O f f s e t L
0040120 e g a l ( y R e p e a t , 1 ,
0040140 0 , 1 1 ) d o \r r e s u
0040160 l t i s 0 \r \r l e t p i n I
0040200 n G r o u p = 1 \r l e t p
0040220 376 001 \0 361 367 r e v G r o u p s =
0040240 r e p e a t R o w s * x R e p
0040260 e a t + y R e p e a t \r l e t
0040300 p r e v F u l l G r o u p s =
0040320 r e p e a t R o w s * ( x R e
0040340 p e a t - ( x R e p e a t / r e
0040360 p e a t C o l s P e r S i d e )
0040400 ) + \r ( x R e p e a t r e m
0040420 r e p e a t C o l s P e r S i
0040440 d e n e f u l l R e p e a t
0040460 C o l s P e r S i d e ? y R e
0040500 p e a t , 0 ) \r \r s w i t c h
0040520 o n y O f f s e t i n t o \r
0040540 [ 032 l 4 2 6 9 \ f 1 \r c a s e
0040560 0 : 032 l 5 5 3 9 \ f 1 \r s w i t
0040600 c h o n x O f f s e t i n t
0040620 o \r [ 032 l 376 001 \0 213 \f 6 8 0 9 \ f
0040640 1 \r c a s e 8 0 : p i n I n
0040660 G r o u p = p i n I n G r o
0040700 u p + 2 \r c a s e 4 4 : p i
0040720 n I n G r o u p = p i n I n
0040740 G r o u p + 2 \r c a s e 4 : 032
0040760 l 8 0 7 9 \ f 1 \r @ p i c c l a
0041000 s s = M u s t F i n d N a m
0041020 e e ( " V E E " , t y p e I c
0041040 c l a s s ) \r @ p P i n N o =
0041060 2 * p r e v G r o u p s + 4 *
0041100 p r e v F u l l G r o u p s + \r
0041120 p i n I n G r o u p \r e n d c
0041140 a s e 032 l 9 3 4 9 \ f 1 \r \r c a
0041160 s e 7 6 : p i n I n G r o u
0041200 p = p i n I n G r o u p + 3
0041220 \r c a s e 4 0 : 032 376 001 \0 \ K l
0041240 8 0 7 9 \ f 1 \r p i n I n G r o
0041260 u p = p i n I n G r o u p +
0041300 3 \r @ p i c c l a s s = M u
0041320 s t F i n d N a m e e ( " G N D
0041340 " , t y p e I c c l a s s ) \r
0041360 @ p P i n N o = 3 * p r e v
0041400 G r o u p s + 6 * p r e v F u l
0041420 l G r o u p s + \r p i n I n G
0041440 r o u p \r e n d c a s e \r 032 l 9
0041460 3 4 9 \ f 1 \r d e f a u l t : 032
0041500 l 8 0 7 9 \ f 1 \r ] \r e n d c a
0041520 s e 032 l 6 8 0 9 \ f 1 \r \r c a s
0041540 e 8 : 032 l 5 5 3 9 \ f 1 \r c a
0041560 s e 3 2 : 032 l 5 5 3 9 \ f 1 \r
0041600 e n d c a s e 032 l 6 8 0 9 \ f 1
0041620 \r \r c a s e 1 2 : 032 l 5 5 3 376
0041640 001 \0 k 353 9 \ f 1 \r s w i t c h o
0041660 n x O f f s e t i n t o \r [
0041700 032 l 6 8 0 9 \ f 1 \r c a s e 7
0041720 6 : p i n I n G r o u p =
0041740 p i n I n G r o u p + 2 \r c a s
0041760 e 7 2 : p i n I n G r o u p
0042000 = p i n I n G r o u p + 1 \r
0042020 c a s e 4 0 : p i n I n G r
0042040 o u p = p i n I n G r o u p
0042060 + 4 \r c a s e 0 : 032 l 8 0 7 9
0042100 \ f 1 \r @ p i c c l a s s =
0042120 M u s t F i n d N a m e e ( " G
0042140 N D " , t y p e I c c l a s s
0042160 ) \r @ p P i n N o = 3 * p r
0042200 e v G r o u p s + 6 * p r e v F
0042220 u l l G r o u p s + \r p i n I
0042240 n G r o 376 001 \0 254 F u p \r e n d c
0042260 a s e \r 032 l 9 3 4 9 \ f 1 \r d e
0042300 f a u l t : 032 l 8 0 7 9 \ f 1 \r
0042320 ] \r e n d c a s e 032 l 6 8 0 9 \
0042340 f 1 \r \r c a s e 1 8 : 032 l 5 5
0042360 3 9 \ f 1 \r s w i t c h o n x
0042400 O f f s e t i n t o \r [ 032 l 6
0042420 8 0 9 \ f 1 \r c a s e 4 : 032 l
0042440 8 0 7 9 \ f 1 \r @ p i c c l a s
0042460 s = M u s t F i n d N a m e
0042500 e ( " V D D " , t y p e I c c
0042520 l a s s ) \r @ p P i n N o =
0042540 p r e v G r o u p s + p i n I n
0042560 G r o u p \r e n d c a s e 032 l 9
0042600 3 4 9 \ f 1 \r \r c a s e 1 0 8
0042620 : 032 l 8 0 7 9 \ f 1 \r p i n I n
0042640 G r o u p = p 376 001 \0 L M i n
0042660 I n G r o u p + 2 \r @ p i c c l
0042700 a s s = M u s t F i n d N a
0042720 m e e ( " V T T " , t y p e I
0042740 c c l a s s ) \r @ p P i n N o
0042760 = 3 * p r e v F u l l G r o u
0043000 p s + p i n I n G r o u p \r e n
0043020 d c a s e \r 032 l 9 3 4 9 \ f 1 \r
0043040 d e f a u l t : 032 l 8 0 7 9 \ f
0043060 1 \r ] \r e n d c a s e 032 l 6 8 0
0043100 9 \ f 1 \r \r c a s e 2 4 : 032 l
0043120 5 5 3 9 \ f 1 \r s w i t c h o n
0043140 x O f f s e t i n t o \r [ 032
0043160 l 6 8 0 9 \ f 1 \r c a s e 0 :
0043200 032 l 8 0 7 9 \ f 1 \r p i n I n G
0043220 r o u p = p i n I n G r o u
0043240 p + 1 \r @ p i c c l a s s 376 001
0043260 \0 327 O = M u s t F i n d N a m
0043300 e e ( " G N D " , t y p e I c
0043320 c l a s s ) \r @ p P i n N o =
0043340 3 * p r e v G r o u p s + 6 *
0043360 p r e v F u l l G r o u p s + \r
0043400 p i n I n G r o u p \r e n d c
0043420 a s e 032 l 9 3 4 9 \ f 1 \r \r c a
0043440 s e 8 0 : p i n I n G r o u
0043460 p = p i n I n G r o u p + 2
0043500 \r c a s e 4 4 : p i n I n G
0043520 r o u p = p i n I n G r o u
0043540 p + 2 \r c a s e 4 : 032 l 8 0 7
0043560 9 \ f 1 \r p i n I n G r o u p
0043600 = p i n I n G r o u p + 1 \r @
0043620 p i c c l a s s = M u s t F
0043640 i n d N a m e e ( " V E E " ,
0043660 t y p 376 001 \0 362 264 e I c c l a s s
0043700 ) \r @ p P i n N o = 2 * p r
0043720 e v G r o u p s + 4 * p r e v F
0043740 u l l G r o u p s + \r p i n I
0043760 n G r o u p \r e n d c a s e 032 l
0044000 9 3 4 9 \ f 1 \r \r c a s e 7 6
0044020 : p i n I n G r o u p = p
0044040 i n I n G r o u p + 1 \r c a s e
0044060 4 0 : 032 l 8 0 7 9 \ f 1 \r @ p
0044100 i c c l a s s = M u s t F i
0044120 n d N a m e e ( " V T T " , t
0044140 y p e I c c l a s s ) \r @ p P i
0044160 n N o = 3 * p r e v F u l l
0044200 G r o u p s + p i n I n G r o u
0044220 p \r e n d c a s e \r 032 l 9 3 4 9
0044240 \ f 1 \r d e f a u l t : 032 l 8 0
0044260 7 9 \ f 1 \r ] \r 376 001 \0 . 247 e n d
0044300 c a s e 032 l 6 8 0 9 \ f 1 \r \r c
0044320 a s e 3 6 : 032 l 5 5 3 9 \ f 1
0044340 \r s w i t c h o n x O f f s e
0044360 t i n t o \r [ 032 l 6 8 0 9 \ f
0044400 1 \r c a s e 0 : 032 l 8 0 7 9 \
0044420 f 1 \r @ p i c c l a s s = M
0044440 u s t F i n d N a m e e ( " V C
0044460 C " , t y p e I c c l a s s )
0044500 \r @ p P i n N o = p r e v G
0044520 r o u p s + p i n I n G r o u p
0044540 \r e n d c a s e 032 l 9 3 4 9 \ f
0044560 1 \r \r c a s e 1 0 8 : p i n
0044600 I n G r o u p = p i n I n G
0044620 r o u p + 6 \r c a s e 4 : 032 l
0044640 8 0 7 9 \ f 1 \r p i n I n G r o
0044660 u p = p i n I n G r o 376 001 \0
0044700 370 031 u p + 2 \r @ p i c c l a s s
0044720 = M u s t F i n d N a m e e
0044740 ( " G N D " , t y p e I c c l
0044760 a s s ) \r @ p P i n N o = 3
0045000 * p r e v G r o u p s + 6 * p r
0045020 e v F u l l G r o u p s + \r p
0045040 i n I n G r o u p \r e n d c a s
0045060 e \r 032 l 9 3 4 9 \ f 1 \r d e f a
0045100 u l t : 032 l 8 0 7 9 \ f 1 \r ] \r
0045120 e n d c a s e 032 l 6 8 0 9 \ f 1
0045140 \r \r d e f a u l t : r e s u l
0045160 t i s 0 032 l 5 5 3 9 \ f 1 \r ]
0045200 \r \r l e t c o l B a s e =
0045220 7 * ( ( x R e p e a t / 3 ) * r
0045240 e p e a t R o w s * ( ( f u l l
0045260 R e p e a t C o l s / 2 ) * 2 6
0045300 + \r 376 001 \0 263 263 ( r e p e a t C
0045320 o l s / 2 ) * 2 ) + ( x R e p e
0045340 a t r e m 3 ) * r e p e a t
0045360 R o w s * 2 8 ) \r l e t r o w
0045400 B a s e = 7 * y R e p e a t
0045420 * ( ( x R e p e a t r e m 3
0045440 e q 2 ) ? 2 , 2 8 ) \r \r
0045460 r e s u l t i s ( ( ( s i d e
0045500 * 1 2 ) + y R e p e a t ) * 7 +
0045520 ( s e l e c t o n y O f f s e
0045540 t i n t o \r [ 032 l 4 2 6 9 \ f
0045560 1 \r c a s e 0 : 0 \r c a s e
0045600 8 : 1 \r c a s e 1 2 : 2
0045620 \r c a s e 1 8 : 3 \r c a s e
0045640 2 4 : 4 \r c a s e 3 2 :
0045660 5 \r c a s e 3 6 : 6 032 l 5 5
0045700 3 9 \ f 1 \r ] 376 \0 , E c ) ) * 5
0045720 7 + ( x / 4 ) + f i r s t P a t
0045740 t e r n P i n 032 l 4 2 6 9 \ f 1
0045760 \r ] \r 032 \ f 1 \r 377 \0 \0 r o u t e
0046000 p c l b 3 . b c p l \0 373 227 { 242 016
0046020 \0 \0 376 001 \0 & M / / r o u t e p
0046040 c l b 3 . b c p l \r \r / / B o
0046060 a r d - s p e c i f i c R o u
0046100 t e r o u t i n e s f o r
0046120 t h e P C v e r s i o n o
0046140 f t h e \r / / D o r a d o
0046160 M a i n L o g i c B o a r d
0046200 \r \r / / p a r t 3 o f 3
0046220 \r \r / / l a s t m o d i f i
0046240 e d b y E . M c C r e i g
0046260 h t , J u l y 1 4 , 1 9 8
0046300 1 6 : 4 0 P M \r \r g e t
0046320 " r o u t e . d e f s " \r \r e x
0046340 t e r n a l [ P i n 1 o f 1
0046360 6 ] \r \r s t a t i c [ b o
0046400 a r d I n t e r f a c e V e r s
0046420 i o n = i 376 001 \0 005 [ n t e r
0046440 f a c e V e r s i o n ] \r \r
0046460 \r l e t C o m p u t e P C C o
0046500 o r d s ( p x , p y , i s M
0046520 i l s ) b e \r [ 032 ( 6 3 5 ) \
0046540 f 1 \r u n l e s s i s M i l s
0046560 d o \r [ 032 l 4 2 6 9 \ f 1 \r @
0046600 p x = 2 5 * @ p x \r @ p y
0046620 = 2 5 * @ p y 032 l 5 5 3 9 \ f
0046640 1 \r ] \r \r / / T h e b o a r
0046660 d i n s t a n d a r d o r
0046700 i e n t a t i o n w i t h t
0046720 h e c o m p o n e n t s i d
0046740 e v i s i b l e , \r / / h a
0046760 s a 0 1 a t t o p l e f
0047000 t a n d l 0 1 a t t o p
0047020 \r / / r i g h t , a 376 001 \0 200
0047040 n n d i s d e s c r i b e d
0047060 w i t h y i n c r e a s i
0047100 n g u p w a r d a n d x
0047120 i n c r e a s i n g \r / / t o
0047140 t h e r i g h t a n d t
0047160 h e 0 , 0 o r i g i n a t
0047200 b o t t o m l e f t o f f
0047220 t h e b o a r d . T h i s
0047240 \r / / m e a n s t h a t p
0047260 i n 1 o f a n I C i s
0047300 l o c a t e d a t t h e
0047320 m a x - x , m a x - y v a l
0047340 u e \r / / c o m p a r e d w
0047360 i t h a n y o t h e r p i
0047400 n o f t h a t I C . \r \r @
0047420 p x = 1 1 0 0 + @ p x \t / /
0047440 376 001 \0 222 004 o f f s e t t h e
0047460 x c o - o r d i n a t e b
0047500 y 1 . 1 i n c h e s \r @ p y
0047520 = 1 4 4 0 0 - @ p y \t / /
0047540 r e v e r s e t h e y c o
0047560 - o r d i n a t e a n d o f
0047600 f s e t 1 4 . 4 i n c h e s
0047620 \r \r / / L o c a t i o n a
0047640 0 1 p i n 1 i s n o w
0047660 a t x = 2 0 0 0 , y = 1 4 0
0047700 0 0 \r \r i f ( @ p x r e m
0047720 5 0 ) n e 0 % ( @ p y
0047740 r e m 5 0 ) n e 0 t h
0047760 e n \r C a l l S w a t ( " P
0050000 i n n o t o n 5 0 - m i l
0050020 g r i d " ) 032 l 4 2 6 9 \ f
0050040 1 \r ] \r \r a 376 001 \0 372 373 n d O t
0050060 h e r P C H o l e s ( i s P r o
0050100 t o t y p e , P r i n t P C S i
0050120 t e ) b e \r [ 032 \ f 1 \r l e t
0050140 x , y = n i l , n i l \r l
0050160 e t s = v e c 6 \r \r i f
0050200 i s P r o t o t y p e \r t h e
0050220 n \r [ 032 l 4 2 6 9 \ f 1 \r f o r
0050240 x = 0 t o 5 9 9 b y 2
0050260 d o f o r y = 0 t o 5
0050300 9 9 b y 2 d o \r i f F
0050320 i n d I n d e x F r o m C o o r
0050340 d ( x , y ) n e 0 t h e n
0050360 \r [ 032 l 5 5 3 9 \ f 1 \r l e t
0050400 c l a s s , p i n = e m p t
0050420 y , 0 \r F i n d I n d e x F r o
0050440 m C o o r d ( x , y 376 001 \0 242 317
0050460 , l v c l a s s , l v p
0050500 i n ) \r P r i n t P C S i t e (
0050520 x , y , y l e 4 % y
0050540 g e 5 2 0 ) / / m u s t
0050560 d r i l l e d g e f i n g
0050600 e r s 032 l 6 8 0 9 \ f 1 \r ] \r \r
0050620 / / d e s c r i b e t h e
0050640 v i a s i t e s \r \r F i n d C
0050660 o o r d F r o m S t r i n g ( "
0050700 a 0 1 " , l v x , l v y
0050720 , 4 * 3 , 4 * - 2 ) \r f o r
0050740 r o w = 0 t o 1 d o
0050760 f o r c o l = 0 t o
0051000 1 1 2 d o \r P r i n t P C S
0051020 i t e ( x + 4 * c o l , y + 4
0051040 * r o w , f a l s e ) / /
0051060 376 001 \0 z 232 a l o n g t h e t
0051100 o p \r \r f o r r o w = 1 t o
0051120 2 3 b y 2 d o \r [ 032 l 5
0051140 5 3 9 \ f 1 \r E x p a n d T e m
0051160 p l a t e ( s , " f $ D " ,
0051200 r o w ) \r F i n d C o o r d F r
0051220 o m S t r i n g ( s , l v x
0051240 , l v y , 4 * - 3 , 0 )
0051260 \r f o r s u b r o w = 0
0051300 t o 9 d o f o r c o l
0051320 = 0 t o 2 d o \r P r i
0051340 n t P C S i t e ( x + 4 * c o l
0051360 , y + 4 * s u b r o w , f a
0051400 l s e ) / / d o w n t h e
0051420 c e n t e r 032 l 6 8 0 9 \ f 1
0051440 \r ] \r \r f o r r o w = 1 t o
0051460 2 4 d 376 001 \0 i r o f o r
0051500 c o l = $ a t o $ g b y
0051520 ( $ g - $ a ) d o \r [ 032 l 5 5
0051540 3 9 \ f 1 \r E x p a n d T e m p
0051560 l a t e ( s , " $ C $ D " ,
0051600 c o l , r o w ) \r F i n d C o
0051620 o r d F r o m S t r i n g ( s ,
0051640 l v x , l v y , 4 * 9
0051660 , 4 * 1 ) \r f o r s u b c o
0051700 l = 0 t o 5 7 d o \r
0051720 P r i n t P C S i t e ( x + 4 *
0051740 s u b c o l , y , f a l s e
0051760 ) / / u n d e r t h e D
0052000 I P ' s 032 l 6 8 0 9 \ f 1 \r ] \r
0052020 \r f o r r o w = 1 t o 2 3
0052040 b y 2 d o \r [ 032 l 5 5 3 9
0052060 \ f 1 \r E x p a n d 376 001 \0 251 037 T
0052100 e m p l a t e ( s , " l $ D "
0052120 , r o w ) \r F i n d C o o r d
0052140 F r o m S t r i n g ( s , l v
0052160 x , l v y , 4 * - 3 ,
0052200 4 * 3 ) \r P r i n t P C S i t e
0052220 ( x , y , t r u e , " V D D
0052240 " ) \r / / V D D s t r i p
0052260 f e e d - t h r u h o l e s
0052300 \r \r E x p a n d T e m p l a t e
0052320 ( s , " a $ D " , r o w ) \r
0052340 F i n d C o o r d F r o m S t r
0052360 i n g ( s , l v x , l v
0052400 y , 4 * 1 0 , 4 * 4 + 2 ) \r
0052420 P r i n t P C S i t e ( x , y
0052440 , t r u e , " V T T " ) \r
0052460 / / V T T s t r i p f e 376
0052500 001 \0 232 312 e d - t h r u h o l e
0052520 s 032 l 6 8 0 9 \ f 1 \r ] \r \r l e
0052540 t x m i n , y m i n , x m a x
0052560 , y m a x = n i l , n i l ,
0052600 n i l , n i l \r F i n d C o o r
0052620 d F r o m S t r i n g ( " a 0 1
0052640 " , l v x m i n , l v y
0052660 m i n , 4 * 1 5 , 4 * - 4 )
0052700 \r F i n d C o o r d F r o m S t
0052720 r i n g ( " l 2 4 " , l v x
0052740 m a x , l v y m a x , 4 *
0052760 - 5 , 4 * 4 + 2 ) \r \r f o r
0053000 c o l = 0 t o 1 d o \r f
0053020 o r r o w = 0 t o 1 d o
0053040 \r [ 032 l 5 5 3 9 \ f 1 \r l e t
0053060 x = c o l e q 0 ? x m
0053100 i n , 376 001 \0 M 234 x m a x \r l e
0053120 t y = r o w e q 0 ?
0053140 y m i n , y m a x \r f o r h
0053160 o l e R o w = 0 t o 1
0053200 d o \r f o r h o l e C o l
0053220 = 0 t o ( x e q x m
0053240 i n ? 4 , 2 ) d o \r
0053260 P r i n t P C S i t e ( x + h o
0053300 l e C o l * 4 , y + h o l e R
0053320 o w * 4 , t r u e , \r
0053340 ( ( x e q x m i n ) ? ( (
0053360 y e q y m i n ) ? " V T T
0053400 " , " V E E " ) , \r
0053420 ( ( y e q y m i n ) ? "
0053440 V D D " , " V C C " ) ) ) \r
0053460 / / p o w e r b u s f e e
0053500 d - t h r u h o 376 \0 304 367 034 l e
0053520 s 032 l 6 8 0 9 \ f 1 \r ] \r \r f o
0053540 r r o w = 0 t o 4 d o \r
0053560 [ 032 l 5 5 3 9 \ f 1 \r P r i n t
0053600 P C S i t e ( x m i n - 6 , y
0053620 m i n + 2 2 + r o w * 1 2 0 ,
0053640 t r u e , " T O O L I N G " )
0053660 \r P r i n t P C S i t e ( x m a
0053700 x + 4 , y m i n + 2 2 + r o w
0053720 * 1 2 0 , t r u e , " T O O
0053740 L I N G " ) 032 l 6 8 0 9 \ f 1 \r
0053760 ] 032 l 5 5 3 9 \ f 1 \r ] 032 l 4 2
0054000 6 9 \ f 1 \r ] 032 \ f 1 \r \r 032 \ f
0054020 1 \r 374
0054023