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