$ od -c -N 50000 [Indigo]<Dicentra>SCI>SCI.dm!3 0000000 377 \0 \0 S C I . d e c l \0 373 232 330 327 0000020 e \0 \0 376 001 \0 U y / / S C I . d 0000040 e c l \r / / L a s t m o d i 0000060 f i e d A p r i l 2 8 , 1 0000100 9 8 3 1 1 : 4 3 P M b y 0000120 B o g g s \r \r s t r u c t u r 0000140 e S t r i n g [ l e n g t 0000160 h b y t e ; c h a r ^ 1 , 2 0000200 5 5 b y t e ] \r \r s t r u c 0000220 t u r e B y t e ^ 0 , 8 0 b 0000240 y t e \r m a n i f e s t \r [ \r t 0000260 a p e S o c k e t = 4 4 b \r 0000300 \r / / T S P c o m m a n d s 0000320 \r c m d Y e s = 1 \r c m d N 0000340 o = 2 \r c m d V e r s i o n 0000360 = 3 \r c m d O p e n D r i v 0000400 e = 6 \r c m d C l o s e D r 0000420 i v e = 7 \r 376 \0 ] ` 324 c m d 0000440 W r i t e R e c o r d = 1 1 0000460 b \r c m d W r i t e E O F = 0000500 1 6 b \r c m d R e w i n d = 0000520 2 0 b \r c m d U n l o a d = 0000540 2 1 b \r c m d S e t S t a t u s 0000560 = 2 3 b \r \r ] \r 377 \0 \0 S C I 0000600 . b c p l \0 373 232 330 326 l \0 \0 376 001 \0 0000620 204 215 / / S C I . b c p l - - 0000640 T r a n s l a t e s R o u t 0000660 e o u t p u t t o S C I 0000700 i n p u t f o r m a t a n d 0000720 w r i t e s a t a p e . \r 0000740 / / L a s t m o d i f i e d 0000760 A p r i l 2 8 , 1 9 8 3 0001000 7 : 3 3 P M b y B o g g 0001020 s \r \r g e t " S C I . d e c l 0001040 " \r g e t " S t r e a m s . d 0001060 " \r \r e x t e r n a l \r [ \r / / 0001100 o u t g o i n g p r o c e d 0001120 u r e - - S C I \r T S P \r \r 0001140 / / i n c o m i n g p r o c 0001160 e d u r e s - - S C I \r W L 0001200 F i l e ; O t h e r F i l e \r 0001220 R e 376 001 \0 I U a d T o k e n ; 0001240 O u t P u t ; F l u s h B l o 0001260 c k \r \r / / i n c o m i n g 0001300 p r o c e d u r e s - - p a 0001320 c k a g e s \r I n i t i a l i z 0001340 e C o n t e x t ; B l o c k ; 0001360 C a l l C o n t e x t L i s t 0001400 \r E x t r a c t S u b s t r i n 0001420 g ; C o n c a t e n a t e S t 0001440 r i n g s \r I n i t P u p L e v 0001460 e l 1 ; G e t P a r t n e r ; 0001500 E n q u e u e ; P u t T e m 0001520 p l a t e ; B y t e B l t \r O 0001540 p e n L e v e l 1 S o c k e t ; 0001560 O p e n R T P S o c k e t ; 0001600 C r e a t e B S P S t r e a m \r 0001620 B S P W r i t 376 001 \0 ! 373 e B l o 0001640 c k ; B S P R e a d B l o c k 0001660 ; B S P F o r c e O u t p u t 0001700 \r \r / / i n c o m i n g p r 0001720 o c e d u r e s - - O S \r O 0001740 p e n F i l e ; C l o s e s ; 0001760 P u t s ; G e t s \r I n i t 0002000 i a l i z e Z o n e ; A d d T 0002020 o Z o n e ; A l l o c a t e ; 0002040 F r e e \r N o o p ; C a l l 0002060 S w a t ; M y F r a m e ; W 0002100 s s \r \r / / o u t g o i n g 0002120 s t a t i c s \r l f ; i n ; 0002140 o u t ; c p u T y p e \r t o k 0002160 e n ; b o a r d ; n u m B l 0002200 o c k s \r b l o c k ; b l o c 0002220 k C n t ; r e c o r d 376 001 \0 \0 0002240 325 ; r e c o r d C n t \r \r / / 0002260 i n c o m i n g s t a t i c 0002300 s - - O S \r s y s Z o n e ; 0002320 d s p ; k e y s \r l v S y s 0002340 Z o n e ; l v I d l e ; l v 0002360 U s e r F i n i s h P r o c \r \r 0002400 / / i n c o m i n g s t a t 0002420 i c s - - P u p p a c k a 0002440 g e \r o f f s e t B S P S t r ; 0002460 l B S P S o c \r ] \r \r m a n i 0002500 f e s t s t a c k L i m i t 0002520 = 3 3 5 b \r \r s t a t i c \r [ 0002540 \r l f ; i n ; o u t ; c p 0002560 u T y p e \r t o k e n ; b o a 0002600 r d ; n u m B l o c k s \r b l 0002620 o c k ; b l o c k C n t ; r 0002640 e 376 001 \0 l 311 c o r d ; r e c o 0002660 r d C n t \r \r t s ; s a v e d 0002700 U F P ; v e r s i o n T e x t 0002720 \r ] \r \f \r / / - - - - - - - - - 0002740 - - - - - - - - - - - - - - - - * 0003040 - - - - - - - - - - - - - - - \r 0003060 l e t S C I ( ) b e \r / / - 0003100 - - - - - - - - - - - - - - - - * 0003220 - - - - - - - \r [ \r v e r s i o 0003240 n T e x t 376 001 \0 327 d = " S C 0003260 I o f A p r i l 2 8 , 1 0003300 9 8 3 " \r W s s ( d s p , v e 0003320 r s i o n T e x t ) \r \r s a v e 0003340 d U F P = @ l v U s e r F i 0003360 n i s h P r o c ; @ l v U s e 0003400 r F i n i s h P r o c = F i 0003420 n i s h P r o c \r \r / / f r e 0003440 e s t o r a g e \r l e t f r 0003460 e e B e g i n = @ s t a c k 0003500 L i m i t \r l e t f r e e E n 0003520 d = M y F r a m e ( ) - 2 0003540 0 0 0 \r l e t l e n g t h = 0003560 f r e e E n d - f r e e B e g 0003600 i n \r i f l e n g t h u g r 0003620 7 7 7 7 6 b t h e n l e n 0003640 g t h = 7 7 7 7 6 376 001 \0 016 201 0003660 b \r @ s t a c k L i m i t = 0003700 f r e e B e g i n + l e n g 0003720 t h \r s y s Z o n e = I n i 0003740 t i a l i z e Z o n e ( f r e e 0003760 B e g i n , l e n g t h ) \r @ 0004000 l v S y s Z o n e = s y s Z 0004020 o n e \r \r t o k e n = A l l 0004040 o c a t e ( s y s Z o n e , 1 0004060 2 8 ) \t \t / / i n p u t i s 0004100 p a r s e d i n t o t o k 0004120 e n s \r r e c o r d = A l l 0004140 o c a t e ( s y s Z o n e , 1 0004160 2 8 ) \t \t / / t o k e n s a 0004200 r e p a c k e d i n t o r 0004220 e c o r d s \r b l o c k = A 0004240 l l o c a t e ( s y s Z o n e , 0004260 376 001 \0 033 233 2 0 4 8 ) \t \t / / 0004300 r e c o r d s a r e p a c k 0004320 e d i n t o b l o c k s \r \r 0004340 / / g e t b o a r d n a m 0004360 e \r i n = k e y s \r [ 0004400 \r W s s ( d s p , " * N 0004420 B o a r d n a m e ( e . g . 0004440 D C C P - r e v - H ( n o 0004460 e x t e n s i o n ) ) : " ) \r 0004500 R e a d T o k e n ( ) \r 0004520 ] r e p e a t u n t i l 0004540 t o k e n > > S t r i n g . l e 0004560 n g t h n e 0 \r b o a r d 0004600 = E x t r a c t S u b s t r i 0004620 n g ( t o k e n ) \r \r / / o p 0004640 e n l i s t i n g f i l e \r 0004660 l e t l 376 001 \0 Z 333 f N a m e 0004700 = C o n c a t e n a t e S t r 0004720 i n g s ( t o k e n , " . l s 0004740 " ) \r l f = O p e n F i l e 0004760 ( l f N a m e , k s T y p e W 0005000 r i t e O n l y , c h a r I t 0005020 e m ) \r i f l f e q 0 t 0005040 h e n C a l l S w a t ( " F a 0005060 i l e d t o o p e n l i s 0005100 t i n g f i l e " ) \r P u t T 0005120 e m p l a t e ( d s p , " * N 0005140 L i s t i n g t o f i l e 0005160 $ S " , l f N a m e ) \r F r e 0005200 e ( s y s Z o n e , l f N a m 0005220 e ) \r \r l e t c t x Q = v 0005240 e c 1 ; c t x Q ! 0 = 0 0005260 \r @ l v I d l e = 376 001 \0 ] \a 0005300 B l o c k \r I n i t P u p L e v 0005320 e l 1 ( s y s Z o n e , c t x 0005340 Q , 1 0 ) \r E n q u e u e ( c 0005360 t x Q , I n i t i a l i z e C 0005400 o n t e x t ( A l l o c a t e ( 0005420 s y s Z o n e , 1 0 0 0 ) , 0005440 1 0 0 0 , M a i n C t x ) ) \r 0005460 C a l l C o n t e x t L i s t ( 0005500 c t x Q ! 0 ) r e p e a t 0005520 / / f o r e v e r \r ] \r \r / / - 0005540 - - - - - - - - - - - - - - - - * 0005660 - - - - - - - \r a n d F i n 376 0005700 001 \0 * 241 i s h P r o c ( ) b e 0005720 \r / / - - - - - - - - - - - - - 0005740 - - - - - - - - - - - - - - - - * 0006040 - - - - - - - - - - - \r [ \r i f 0006060 l f n e 0 t h e n C l 0006100 o s e s ( l f ) \r @ l v I d l e 0006120 = N o o p \r @ l v U s e r F 0006140 i n i s h P r o c = s a v e 0006160 d U F P \r ] \r \f \r / / - - - - - 0006200 - - - - - - - - - - - - - - - - * 0006300 - - - - 376 001 \0 t ! - - - - - - - 0006320 - - - - - - - - \r a n d M a i 0006340 n C t x ( ) b e / / a c 0006360 o n t e x t \r / / - - - - - - - 0006400 - - - - - - - - - - - - - - - - * 0006520 - \r [ \r / / o p e n t a p e 0006540 \r l e t p o r t = v e c 0006560 3 \r [ \r W s s ( d s 0006600 p , " * N T a p e s e r v e 0006620 r n a m e ( < D E L > = > 0006640 n o t a p e ) : " ) \r 0006660 R e a d T o k e n ( ) \r 0006700 t e s t t o k e 376 001 \0 E L n > 0006720 > S t r i n g . l e n g t h e 0006740 q 0 \r i f s o [ 0006760 p o r t = 0 ; b r e a k 0007000 ] \r i f n o t i 0007020 f G e t P a r t n e r ( t o k 0007040 e n , d s p , p o r t , 0 0007060 , t a p e S o c k e t ) b r 0007100 e a k \r ] r e p e a t \r 0007120 i f p o r t n e 0 t h e 0007140 n \r [ \r W s s ( d s 0007160 p , " * N V A X o r P R I 0007200 M E f o r m a t ( V o r 0007220 P ) : " ) \r c p u T y p 0007240 e = G e t s ( k e y s ) & 0007260 1 3 7 b ; P u t s ( d s p , 0007300 c p u T y p e ) \r l 376 001 0007320 \0 315 o e t s o c = A l l o 0007340 c a t e ( s y s Z o n e , l B 0007360 S P S o c ) \r O p e n L e 0007400 v e l 1 S o c k e t ( s o c , 0007420 0 , p o r t ) \r i f O 0007440 p e n R T P S o c k e t ( s o c 0007460 ) t h e n t s = C r e a 0007500 t e B S P S t r e a m ( s o c ) 0007520 \r ] \r \r / / i n i t i a 0007540 l i z e t h e t a p e \r T S 0007560 P ( c m d V e r s i o n , 1 , 0007600 v e r s i o n T e x t ) \r i f 0007620 t s n e 0 t h e n \r 0007640 [ \r W s s ( d s p , " 0007660 * N T a p e u n i t n u m b 0007700 e r : " ) \r R e a d T o 0007720 k e n 376 001 \0 372 031 ( ) \r l e 0007740 t u n i t = t o k e n > > 0007760 S t r i n g . c h a r ^ 1 - 0010000 $ 0 \r i f t o k e n > > 0010020 S t r i n g . l e n g t h e q 0010040 1 & u n i t g e 0 & 0010060 u n i t l e 1 t h e n \r 0010100 [ T S P ( c m d O 0010120 p e n D r i v e , u n i t , 0010140 " " ) ; b r e a k ] \r 0010160 ] r e p e a t \r T S P ( c m d 0010200 S e t S t a t u s , 1 , 1 6 0010220 0 0 ) \r \r l e t v 1 = " V 0010240 O L 1 S C I 0010260 0010300 D % C 0010320 1 376 001 \0 266 034 0010340 0010360 3 " \r l e t h 1 = " 0010400 H D R 1 S C I . D A T 0010420 S C I 0 0 0 1 0 0010440 0 0 1 0 0 0 1 0 0 8 3 0 0 0 0010460 0 0 0 0 0 0 0 0 0 0 0 D E C F 0010500 I L E 1 1 A 0010520 " \r l e t h 2 = " H D R 2 0010540 D 0 2 0 4 8 0 0 0 7 9 0010560 0010600 A 0 0 0010620 0010640 " \r l e 0010660 t h 3 = " H D R 3 0 0 4 B 0010700 0 1 0 2 0 0 0 0 0 0 0 0 0 0 0 1 0010720 0 0 0 0 0 0 0 0 0 0 0 0 0 376 001 \0 0010740 331 211 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0010760 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0011000 0 " \r i 0011020 f c p u T y p e e q $ V 0011040 t h e n / / w r i t e A N 0011060 S I h e a d e r l a b e l s 0011100 \r [ \r T S P ( c m d 0011120 W r i t e R e c o r d , v 1 , 0011140 1 , 8 0 ) \r T S P ( c 0011160 m d W r i t e R e c o r d , h 0011200 1 , 1 , 8 0 ) \r T S P 0011220 ( c m d W r i t e R e c o r d , 0011240 h 2 , 1 , 8 0 ) \r T 0011260 S P ( c m d W r i t e R e c o r 0011300 d , h 3 , 1 , 8 0 ) \r 0011320 T S P ( c m d W r i t e E O F 0011340 ) \r 376 001 \0 202 ( ] \r \r / / 0011360 d o t h e w o r k \r o u t 0011400 = l v O u t P u t - o f 0011420 f s e t S T . p u t s / 1 6 \r 0011440 W L F i l e ( ) \r O t h e r F i 0011460 l e ( ) \r F l u s h B l o c k ( 0011500 ) \r \r i f c p u T y p e e q 0011520 $ V t h e n / / w r i t 0011540 e A N S I t r a i l e r l 0011560 a b e l s \r [ \r T S 0011600 P ( c m d W r i t e E O F ) \r 0011620 B y t e B l t ( h 1 , 1 , 0011640 " E O F " , 1 , 3 ) \r 0011660 B y t e B l t ( h 2 , 1 , 0011700 " E O F " , 1 , 3 ) \r 0011720 B y t e B l t ( h 3 , 1 , " 0011740 E O F " , 1 376 001 \0 231 326 , 3 ) 0011760 \r h 1 > > S t r i n g . c 0012000 h a r ^ 5 9 = n u m B l o c 0012020 k s / 1 0 + $ 0 \r h 1 > 0012040 > S t r i n g . c h a r ^ 6 0 0012060 = n u m B l o c k s r e m 0012100 1 0 + $ 0 \r T S P ( c m 0012120 d W r i t e R e c o r d , h 1 0012140 , 1 , 8 0 ) \r T S P ( 0012160 c m d W r i t e R e c o r d , 0012200 h 2 , 1 , 8 0 ) \r T S 0012220 P ( c m d W r i t e R e c o r d 0012240 , h 3 , 1 , 8 0 ) \r 0012260 ] \r \r T S P ( c m d W r i t e E 0012300 O F ) \r T S P ( c m d W r i t e 0012320 E O F ) \r T S P ( c m d U n l o 0012340 a d ) \r T S P ( c m d C 376 001 \0 A 0012360 d l o s e D r i v e ) \r i f t 0012400 s n e 0 t h e n C l o s 0012420 e s ( t s ) \r f i n i s h \r ] \r 0012440 \f \r / / - - - - - - - - - - - - 0012460 - - - - - - - - - - - - - - - - * 0012560 - - - - - - - - - - - - \r a n d 0012600 T S P ( c m d , a r g 0 , 0012620 a r g 1 , a r g 2 , a r g 3 0012640 ; n u m a r g s n a ) = 0012660 v a l o f \r / / - - - - - - - - 0012700 - - - - - - - - - - - - - - - - * 0012760 - 376 001 \0 232 320 - - - - - - - - - - 0013000 - - - - - - - - - - - - - - - - 0013020 - - - - - \r / / T a p e S e 0013040 r v e r P r o t o c o l \r [ \r 0013060 i f t s e q 0 r e s u l 0013100 t i s t r u e \r \r / / s e n 0013120 d c o m m a n d \r l e t m s 0013140 g = v e c 1 0 ; m s g ! 0013160 0 = 2 ; m s g ! 1 = c 0013200 m d \r s w i t c h o n c m d 0013220 i n t o \r [ \r c a s 0013240 e c m d R e w i n d : c a s 0013260 e c m d U n l o a d : c a s 0013300 e c m d C l o s e D r i v e : 0013320 c a s e c m d W r i t e E O 0013340 F : \r [ \r 0013360 B S P W r 376 001 \0 027 310 i t e B l 0013400 o c k ( t s , m s g , 0 , 0013420 4 ) \r e n d c a s e 0013440 \r ] \r c a s e 0013460 c m d V e r s i o n : c a s 0013500 e c m d O p e n D r i v e : \r 0013520 [ \r l e 0013540 t s l = a r g 1 > > S t r 0013560 i n g . l e n g t h r s h i f 0013600 t 1 + 1 \r m s g 0013620 ! 0 = 3 + s l \r 0013640 m s g ! 2 = a r g 0 \r 0013660 B S P W r i t e B l o 0013700 c k ( t s , m s g , 0 , 6 0013720 ) \r B S P W r i t e 0013740 B l o c k ( t s , a r g 1 , 0013760 0 , s l l s h i f 376 001 \0 267 | 0014000 t 1 ) \r e n d c a 0014020 s e \r ] \r c a 0014040 s e c m d W r i t e R e c o r 0014060 d : \r [ \r 0014100 m s g ! 0 = 3 + a r g 0014120 2 r s h i f t 1 \r 0014140 m s g ! 2 = a r g 2 \r 0014160 B S P W r i t e B l o c 0014200 k ( t s , m s g , 0 , 6 ) 0014220 \r B S P W r i t e B 0014240 l o c k ( t s , a r g 0 , a 0014260 r g 1 , a r g 2 ) \r 0014300 e n d c a s e \r ] 0014320 \r c a s e c m d S e t S 0014340 t a t u s : \r [ \r 0014360 m s g ! 0 = 4 \r 0014400 376 001 \0 366 204 m s g ! 2 0014420 = a r g 0 \r m s g 0014440 ! 3 = a r g 1 \r 0014460 B S P W r i t e B l o c k ( t s 0014500 , m s g , 0 , 8 ) \r 0014520 e n d c a s e \r 0014540 ] \r d e f a u l t : C 0014560 a l l S w a t ( " T S P : u n 0014600 k n o w n c o m m a n d " ) \r 0014620 ] \r B S P F o r c e O u t 0014640 p u t ( t s - o f f s e t B S P 0014660 S t r ) \r \r / / g e t r e s 0014700 p o n s e \r l e t y e s N o 0014720 = v e c ( 4 + 1 2 8 ) 0014740 / / l e n g t h + t y p e + c 0014760 o d e + s t a t u s + s t r i n 0015000 g \r B S P 376 001 \0 214 216 R e a d B l 0015020 o c k ( t s , y e s N o , 0 0015040 , 2 ) \r B S P R e a d B l o c 0015060 k ( t s , y e s N o + 1 , 0 0015100 , ( y e s N o ! 0 - 1 ) l s 0015120 h i f t 1 ) \r \r i f c m d 0015140 e q c m d V e r s i o n t h 0015160 e n \r [ \r i f y e 0015200 s N o ! 1 n e c m d V e r s 0015220 i o n % y e s N o ! 2 n e 0015240 0 t h e n C a l l S w a t 0015260 ( " T S P v e r s i o n i n 0015300 c o m p a t i b l e " ) \r 0015320 P u t T e m p l a t e ( d s p , 0015340 " * N $ S " , y e s N o + 3 0015360 ) \r r e s u l t i s t r 0015400 u e \r ] \r i f 376 \0 246 246 021 0015420 y e s N o ! 1 e q c m d Y e 0015440 s r e s u l t i s t r u e \r 0015460 i f y e s N o ! 1 e q c m 0015500 d N o t h e n \r P u t T 0015520 e m p l a t e ( d s p , " * N 0015540 [ N o ] c m d $ O c a u s 0015560 e $ O s t a t u s $ O $ 0015600 S " , c m d , y e s N o ! 2 0015620 , y e s N o ! 3 , y e s N o 0015640 + 4 ) \r r e s u l t i s f a l 0015660 s e \r ] \r 377 \0 \0 S C I 1 . b c p 0015700 l \0 373 233 002 r 231 \0 \0 376 001 \0 j 272 / / 0015720 S C I 1 . b c p l - - c o 0015740 m p a n i o n t o S C I . b 0015760 c p l \r / / L a s t m o d i 0016000 f i e d M a y 3 0 , 1 9 8 0016020 3 1 : 5 0 P M b y B o 0016040 g g s \r \r g e t " S C I . d e 0016060 c l " \r g e t " S t r e a m s 0016100 . d " \r \r e x t e r n a l \r [ \r 0016120 / / o u t g o i n g p r o c 0016140 e d u r e s \r W L F i l e ; O 0016160 t h e r F i l e \r R e a d T o k 0016200 e n ; O u t P u t ; F l u s 0016220 h B l o c k \r \r / / i n c o m 0016240 i n g p r o c e d u r e - - 0016260 S C I \r T S P \r \r / / i n c 0016300 o m i n g p r o c e d u r 376 001 0016320 \0 262 D e s - - p a c k a g e 0016340 s \r C o n c a t e n a t e S t r 0016360 i n g s ; S t r i n g C o m p 0016400 a r e \r P u t T e m p l a t e ; 0016420 E x t r a c t S u b s t r i n 0016440 g \r \r / / i n c o m i n g p 0016460 r o c e d u r e s - - O S \r 0016500 O p e n F i l e ; C l o s e s 0016520 ; G e t s ; P u t s ; E n 0016540 d o f s \r E r a s e B i t s ; 0016560 C h a r W i d t h ; W s s \r A 0016600 l l o c a t e ; F r e e ; C 0016620 a l l S w a t \r \r / / i n c o 0016640 m i n g s t a t i c s - - 0016660 O S \r s y s Z o n e ; d s p ; 0016700 k e y s \r \r / / i n c o m i 0016720 n g 376 001 \0 276 377 s t a t i c s 0016740 - - S C I \r l f ; i n ; o 0016760 u t ; c p u T y p e \r t o k e 0017000 n ; b o a r d ; n u m B l o 0017020 c k s \r b l o c k ; b l o c k 0017040 C n t ; r e c o r d ; r e c 0017060 o r d C n t \r ] \r \r s t a t i c 0017100 t e r m C h a r \r \f \r / / - - 0017120 - - - - - - - - - - - - - - - - * 0017240 - - - - - - \r l e t W L F i l 0017260 e ( ) b e \r / / - - - - - - - 0017300 - - - - - - - - - - - - - - - - 0017320 - - - - - - - - 376 001 \0 263 2 - - - 0017340 - - - - - - - - - - - - - - - - * 0017420 - - - - - - \r / / R e a d s 0017440 ' B o a r d . w l ' , t h e 0017460 w i r e l i s t p r o d u c e 0017500 d b y R o u t e , \r / / 0017520 a n d g e n e r a t e s t h 0017540 e P A R T S & N E T L I S 0017560 T s u b f i l e s f o r S 0017600 C I . \r [ \r l e t w l N a m e 0017620 = C o n c a t e n a t e S t 0017640 r i n g s ( b o a r d , " . w 0017660 l " ) \r l e t w l = O p e 0017700 n F i l e ( w l N a m e , k s 0017720 T y p e R e a d O n l y , 376 001 \0 0017740 h 311 c h a r I t e m ) \r F r e 0017760 e ( s y s Z o n e , w l N a m 0020000 e ) \r t e s t w l \r i f 0020020 s o [ P u t T e m p l a t e 0020040 ( d s p , " * N R e a d i n g 0020060 $ S . w l " , b o a r d ) ; 0020100 i n = w l ] \r i f 0020120 n o t [ P u t T e m p l a t 0020140 e ( d s p , " * N F a i l e d 0020160 t o o p e n $ S . w l " , 0020200 b o a r d ) ; r e t u r n 0020220 ] \r \r W s s ( d s p , " * N M 0020240 u l t i b u s o r D a n d e 0020260 l i o n b o a r d ( M o r 0020300 D ) : " ) \r l e t b o a r 0020320 d T y p e = G e t s ( k e y 0020340 s ) 376 001 \0 y 221 & 1 3 7 b ; 0020360 P u t s ( d s p , b o a r d T 0020400 y p e ) \r R e a d T o k e n ( ) 0020420 / / b o a r d t y p e . 0020440 d i s c a r d . \r \r / / M a k 0020460 e p a r t s l i s t \r W s s 0020500 ( o u t , " * N P A R T S " ) 0020520 \r l e t w i d t h , l e n g 0020540 t h , p i n s = n i l , 0020560 n i l , n i l \r [ \r 0020600 R e a d T o k e n ( ) / / 0020620 p a r t d e s i g n a t o r \r 0020640 i f t o k e n > > S t r 0020660 i n g . l e n g t h e q 0 0020700 % \r ( t o k e n > > S t 0020720 r i n g . l e n g t h e q 1 0020740 & t o k e 376 001 \0 331 304 n > > S 0020760 t r i n g . c h a r ^ 1 e q 0021000 $ @ ) b r e a k \r l e t 0021020 d e s i g = E x t r a c t 0021040 S u b s t r i n g ( t o k e n , 0021060 ( t o k e n > > S t r i n g . 0021100 c h a r ^ 1 e q $ # ? 2 , 0021120 1 ) ) \r R e a d T o k e 0021140 n ( ) \r l e t f i r s t 0021160 S l a s h , l a s t S l a s h 0021200 , l e n = 0 , 0 , t o 0021220 k e n > > S t r i n g . l e n g 0021240 t h \r f o r i = 1 0021260 t o l e n i f t o k e n > 0021300 > S t r i n g . c h a r ^ i e 0021320 q $ / t e s t f i r s t S 0021340 l a s h e q 0 \r 376 001 \0 367 0021360 302 i f s o f i r s t S 0021400 l a s h = i \r i 0021420 f n o t l a s t S l a s h = 0021440 i \r w i d t h = 3 ; 0021460 f o r i = l a s t S l a 0021500 s h + 1 t o l e n d o \r 0021520 i f I s N u m b e r 0021540 ( i , i ) t h e n w i d t 0021560 h = t o k e n > > S t r i n 0021600 g . c h a r ^ i - $ 0 \r 0021620 p i n s = 0 ; f o r i 0021640 = f i r s t S l a s h + 1 0021660 t o l a s t S l a s h - 1 d 0021700 o \r p i n s = p 0021720 i n s * 1 0 + ( t o k e n > 0021740 > S t r i n g . c h a r ^ i - 0021760 376 001 \0 T 264 $ 0 ) \r l e n 0022000 g t h = w i d t h e q 1 0022020 ? p i n s , p i n s / 2 \r 0022040 P u t T e m p l a t e ( o 0022060 u t , " * N H O L E M O D U 0022100 L E H M $ 2 F 0 D $ 2 F 0 D $ 0022120 2 F 0 D $ S " , w i d t h , 0022140 l e n g t h , p i n s , d 0022160 e s i g ) \r F r e e ( s y 0022200 s Z o n e , d e s i g ) \r 0022220 ] r e p e a t \r W s s ( o u 0022240 t , " * N E O S * N " ) \r \r / 0022260 / M a k e n e t l i s t \r 0022300 W s s ( o u t , " * N N E T 0022320 L I S T C O N T I N U E " ) \r 0022340 l e t f l u s h , n o d e C 0022360 n t , n e 376 001 \0 020 _ t N a m e 0022400 = f a l s e , 0 , 0 \r 0022420 [ / / m a i n l o o p 0022440 \r m a n i f e s t \t / / t 0022460 o k e n t y p e s \r 0022500 [ \r c a l i b r a 0022520 t e = 1 ; s i g n a l = 0022540 2 ; b o a r d L o c = 3 0022560 \r g n d = 4 ; 0022600 g n d N e t = 5 ; g n d N 0022620 u b = 6 \r v c c 0022640 = 7 ; v c c N e t = 8 0022660 ; v c c N u b = 9 \r 0022700 p o i n t y B r a c k e t 0022720 = 1 0 ; p a r e n t h e s 0022740 i s = 1 1 ; c u r l y B r 0022760 a c k e t = 1 2 \r 376 001 \0 ~ ^ 0023000 e d g e P i n = 0023020 1 3 ; c o n n P i n = 1 4 0023040 \r ] \r R e a d 0023060 T o k e n ( ) \r l e t l 0023100 e n = t o k e n > > S t r i 0023120 n g . l e n g t h ; i f l e 0023140 n e q 0 b r e a k \r 0023160 l e t t o k e n T y p e = 0023200 s i g n a l \r i f S t r 0023220 i n g C o m p a r e ( " C A L I 0023240 B R A T E " , t o k e n ) e 0023260 q 0 t h e n t o k e n T y 0023300 p e = c a l i b r a t e \r 0023320 i f S t r i n g C o m p a 0023340 r e ( " G N D " , t o k e n ) 0023360 e q 0 t h e n t o k e n 0023400 376 001 \0 356 331 T y p e = g n d \r 0023420 i f S t r i n g C o m p 0023440 a r e ( " G N D " , t o k e n 0023460 ) e q - 2 t e s t t o k 0023500 e n > > S t r i n g . c h a r ^ 0023520 4 e q $ - \r i f 0023540 s o i f I s N u m b e r ( 5 0023560 , l e n ) t h e n t o k e 0023600 n T y p e = g n d N e t \r 0023620 i f n o t i f I s 0023640 N u m b e r ( 4 , l e n ) t 0023660 h e n t o k e n T y p e = 0023700 t e r m C h a r e q $ : ? 0023720 g n d N e t , g n d N u b \r 0023740 i f S t r i n g C o m p a 0023760 r e ( " V C C " , t o k e n ) 0024000 e q 0 376 001 \0 . 020 t h e n 0024020 t o k e n T y p e = v c c \r 0024040 i f S t r i n g C o m p 0024060 a r e ( " V C C " , t o k e n 0024100 ) e q - 2 t e s t t o k 0024120 e n > > S t r i n g . c h a r ^ 0024140 4 e q $ - \r i f 0024160 s o i f I s N u m b e r ( 5 0024200 , l e n ) t h e n t o k e 0024220 n T y p e = v c c N e t \r 0024240 i f n o t i f I s 0024260 N u m b e r ( 4 , l e n ) t 0024300 h e n t o k e n T y p e = 0024320 t e r m C h a r e q $ : ? 0024340 v c c N e t , v c c N u b \r 0024360 l e t f i r s t C h a r , 0024400 l a s t C h a r 376 001 \0 204 363 = 0024420 t o k e n > > S t r i n g . c 0024440 h a r ^ 1 , t o k e n > > S t 0024460 r i n g . c h a r ^ l e n \r 0024500 i f f i r s t C h a r e q 0024520 $ ( & l a s t C h a r e 0024540 q $ ) t h e n t o k e n T 0024560 y p e = p a r e n t h e s i 0024600 s \r i f f i r s t C h a 0024620 r e q $ { & l a s t C h 0024640 a r e q $ } t h e n t o 0024660 k e n T y p e = c u r l y B 0024700 r a c k e t \r i f f i r 0024720 s t C h a r e q $ < & l 0024740 a s t C h a r e q $ > t h 0024760 e n t o k e n T y p e = p 0025000 o i n t y B r a c k e t \r 376 0025020 001 \0 027 246 i f ( f i r s t C h 0025040 a r e q $ E % f i r s t 0025060 C h a r e q $ C ) & I s 0025100 N u m b e r ( 2 , l e n ) t 0025120 h e n \r t o k e n T 0025140 y p e = f i r s t C h a r 0025160 e q $ E ? e d g e P i n , 0025200 c o n n P i n \r i f t o 0025220 k e n T y p e e q s i g n a 0025240 l & ( t e r m C h a r e q 0025260 $ * S % f i r s t C h a r 0025300 e q $ # ) t h e n t o k 0025320 e n T y p e = b o a r d L o 0025340 c \r \f \r / / N e t L i s 0025360 t ( c o n t ' d ) \r \r i 0025400 f t o k e n T y p e e q e 0025420 d g e P 376 001 \0 / 245 i n % t o 0025440 k e n T y p e e q c o n n P 0025460 i n % t o k e n T y p e e 0025500 q b o a r d L o c t h e n \r 0025520 [ \r i f 0025540 f l u s h l o o p \r 0025560 i f n o d e C n t r e m 0025600 5 e q 0 t e s t n o d 0025620 e C n t n e 0 & n o d e 0025640 C n t r e m 5 0 n e 0 \r 0025660 i f s o W s 0025700 s ( o u t , " $ * N " ) 0025720 \r i f n o t 0025740 P u t T e m p l a t e ( o u t , 0025760 " * N N N $ S " , n e t 0026000 N a m e ) \r n o d e 0026020 C n t = n o d 376 001 \0 F 265 e C 0026040 n t + 1 \r ] \r \r 0026060 s w i t c h o n t o k e n 0026100 T y p e i n t o \r 0026120 [ \r c a s e c a l 0026140 i b r a t e : [ f l u s h 0026160 = t r u e ; e n d c a s e 0026200 ] \r c a s e s i g 0026220 n a l : \r [ \r 0026240 i f n e t N 0026260 a m e n e 0 t h e n F r 0026300 e e ( s y s Z o n e , n e t N 0026320 a m e ) \r n e 0026340 t N a m e = E x t r a c t S 0026360 u b s t r i n g ( t o k e n ) \r 0026400 f l u s h , 0026420 n o d e C n t = f a l s 376 001 0026440 \0 i j e , 0 \r 0026460 e n d c a s e \r 0026500 ] \r c a s e g 0026520 n d N e t : t o k e n > > S t 0026540 r i n g . l e n g t h = 3 \r 0026560 c a s e g n d : 0026600 t e s t S t r i n g C o m p a 0026620 r e ( " G N D " , n e t N a m 0026640 e ) i f s o d o c a s e s 0026660 i g n a l i f n o t e n d c 0026700 a s e \r c a s e v 0026720 c c N e t : t o k e n > > S t 0026740 r i n g . l e n g t h = 3 \r 0026760 c a s e v c c : 0027000 t e s t S t r i n g C o m p a 0027020 r e ( " V C C " , n e t N a m 0027040 e ) 376 001 \0 277 337 i f s o d o c 0027060 a s e s i g n a l i f n o t 0027100 e n d c a s e \r c 0027120 a s e e d g e P i n : c a s 0027140 e c o n n P i n : \r 0027160 [ \r s 0027200 w i t c h o n b o a r d T y p 0027220 e i n t o \r 0027240 [ \r 0027260 c a s e $ M : [ M u l t 0027300 i b u s ( ) ; e n d c a s e 0027320 ] \r c a 0027340 s e $ D : t e s t t o k e 0027360 n T y p e e q e d g e P i n 0027400 \r 0027420 i f s o [ D a n d e l i o n 0027440 E ( ) ; e n d 376 001 \0 " ~ c a s 0027460 e ] \r 0027500 i f n o t [ D a n d e 0027520 l i o n C ( ) ; e n d c a s e 0027540 ] \r d 0027560 e f a u l t : [ U n i v e r 0027600 s a l ( ) ; e n d c a s e ] 0027620 \r ] \r 0027640 e n d c a s e \r 0027660 ] \r 0027700 c a s e b o a r d L o c : \r 0027720 [ \r 0027740 l e t d o t = 0 ; 0027760 f o r i = 1 t o l e 0030000 n d o \r 0030020 i f t o k e n > > S t r i n 0030040 g . c h a r ^ i e q $ 376 001 \0 0030060 274 003 . t h e n [ d o t = 0030100 i ; b r e a k ] \r 0030120 l e t f i r s t C h 0030140 a r = t o k e n > > S t r i 0030160 n g . c h a r ^ 1 e q $ # ? 0030200 2 , 1 \r f 0030220 o r i = f i r s t C h a r 0030240 t o d o t - 1 d o P u t 0030260 s ( o u t , t o k e n > > S t 0030300 r i n g . c h a r ^ i ) \r 0030320 P u t s ( o u t , 0030340 $ * S ) \r f o 0030360 r i = d o t + 1 t o l 0030400 e n - 1 d o P u t s ( o u t 0030420 , t o k e n > > S t r i n g . 0030440 c h a r ^ i ) \r 0030460 P 376 001 \0 336 267 u t s ( o u t , 0030500 $ * S ) \r e n 0030520 d c a s e \r ] 0030540 \r ] \r ] r e 0030560 p e a t \r W s s ( o u t , " * 0030600 N E O S * N " ) \r C l o s e s ( 0030620 w l ) \r ] \r \f \r / / - - - - - - 0030640 - - - - - - - - - - - - - - - - * 0030760 - - \r a n d U n i v e r s a l 0031000 ( ) b e \r / / - - - - - - - - 0031020 - - - - - - - - - - - - - - - - * 0031060 - - - - - - - 376 001 \0 \b C - - - - 0031100 - - - - - - - - - - - - - - - - * 0031140 - - - - - \r [ \r P u t s ( o u t 0031160 , t o k e n > > S t r i n g . 0031200 c h a r ^ 1 ) \r P u t s ( o u t 0031220 , $ * S ) \r f o r i = 2 0031240 t o t o k e n > > S t r i n 0031260 g . l e n g t h d o \r P 0031300 u t s ( o u t , t o k e n > > 0031320 S t r i n g . c h a r ^ i ) \r P 0031340 u t s ( o u t , $ * S ) \r ] \r 0031360 \r / / - - - - - - - - - - - - - 0031400 - - - - - - - - - - - - - - - - * 0031460 - - - - - - - - - - - - 376 001 \0 202 0031500 262 - - - - - - - - - - - - - - - 0031520 \r a n d D a n d e l i o n E ( 0031540 ) b e \r / / - - - - - - - - - 0031560 - - - - - - - - - - - - - - - - * 0031660 - - - - - - - - - - - - - - - \r 0031700 [ \r l e t n u m b e r = 0 0031720 \r f o r i = 2 t o t o 0031740 k e n > > S t r i n g . l e n g 0031760 t h d o \r n u m b e r 0032000 = n u m b e r * 1 0 + t o 0032020 k e n > > S t r i n g . c h a r 0032040 ^ i - $ 0 \r \r l e t c o n n 0032060 , s i d e , p i n = n i 0032100 l 376 001 \0 371 O , n i l , n i l 0032120 \r i f n u m b e r g e 1 0032140 & n u m b e r l e 5 0 t 0032160 h e n \r [ c o n n = 0032200 $ 2 ; s i d e = $ T ; p 0032220 i n = 5 1 - n u m b e r ] 0032240 \r i f n u m b e r g e 5 1 0032260 & n u m b e r l e 1 0 0 0032300 t h e n \r [ c o n n 0032320 = $ 1 ; s i d e = $ T ; 0032340 p i n = 1 0 1 - n u m b e 0032360 r ] \r i f n u m b e r g e 0032400 1 0 1 & n u m b e r l e 0032420 1 5 0 t h e n \r [ c 0032440 o n n = $ 2 ; s i d e = 0032460 $ B ; p i n = 1 5 1 - n 0032500 u m b e r 376 001 \0 330 246 ] \r i f 0032520 n u m b e r g e 1 5 1 & 0032540 n u m b e r l e 2 0 0 t h 0032560 e n \r [ c o n n = $ 0032600 1 ; s i d e = $ B ; p i 0032620 n = 2 0 1 - n u m b e r ] 0032640 \r \r P u t T e m p l a t e ( o u 0032660 t , " P $ C - $ C $ D " , 0032700 c o n n , s i d e , p i n 0032720 ) \r ] \r \r / / - - - - - - - - - 0032740 - - - - - - - - - - - - - - - - * 0033040 - - - - - - - - - - - - - - - \r 0033060 a n d D a n d e l i o n C ( ) 0033100 b e \r / / - - - - - 376 001 \0 & 003 0033120 - - - - - - - - - - - - - - - - * 0033240 - - - \r [ \r l e t n u m b e r 0033260 = 0 \r f o r i = 2 t 0033300 o t o k e n > > S t r i n g . 0033320 l e n g t h d o \r n u m 0033340 b e r = n u m b e r * 1 0 0033360 + t o k e n > > S t r i n g . 0033400 c h a r ^ i - $ 0 \r \r l e t 0033420 c o n n = n u m b e r l s 0033440 1 0 0 ? $ 1 , $ 2 \r l e t 0033460 p i n = n u m b e r l s 0033500 1 0 0 ? n u m b e r , n u 0033520 376 001 \0 A d m b e r - 1 0 0 \r \r P 0033540 u t T e m p l a t e ( o u t , 0033560 " J $ C $ D " , c o n n , 0033600 p i n ) \r ] \r \r / / - - - - - 0033620 - - - - - - - - - - - - - - - - * 0033740 - - - \r a n d M u l t i b u s 0033760 ( ) b e \r / / - - - - - - - - 0034000 - - - - - - - - - - - - - - - - * 0034120 \r [ \r t e 376 001 \0 002 266 s t t o k 0034140 e n > > S t r i n g . c h a r ^ 0034160 1 e q $ C \r i f s o 0034200 [ P u t s ( o u t , $ J ) ; 0034220 P u t s ( o u t , t o k e n 0034240 > > S t r i n g . c h a r ^ 2 0034260 - 2 ) ] \r i f n o t [ 0034300 P u t s ( o u t , $ P ) ; 0034320 P u t s ( o u t , t o k e n > 0034340 > S t r i n g . c h a r ^ 2 ) 0034360 ] \r W s s ( o u t , ( t o k e 0034400 n > > S t r i n g . c h a r ^ 4 0034420 & 1 ) n e 0 ? " - T 0034440 " , " - B " ) \r l e t n 0034460 = ( ( 1 0 * ( t o k e n > > S 0034500 t r i n g . c h a r ^ 3 - $ 0 0034520 ) ) + ( t o k e 376 001 \0 i 236 n 0034540 > > S t r i n g . c h a r ^ 4 0034560 - $ 0 ) + 1 ) / 2 \r P u t s ( 0034600 o u t , $ 0 + n / 1 0 ) \r 0034620 P u t s ( o u t , $ 0 + n 0034640 r e m 1 0 ) \r P u t s ( o u 0034660 t , $ * S ) \r ] \r \f \r / / - - 0034700 - - - - - - - - - - - - - - - - * 0035020 - - - - - - \r a n d O t h e r 0035040 F i l e ( ) b e \r / / - - - - 0035060 - - - - - - - - - - - - - - - - * 0035120 - - - - - - - - - - - - - - - 376 0035140 001 \0 273 022 - - - - - - - - - - - - 0035160 - - - - - - - - - - - - - - - - 0035200 - - - - - - - - - \r / / R e a 0035220 d s B o a r d . o t h e r a 0035240 n d w r i t e s i t u n m 0035260 o d i f i e d t o t a p e . 0035300 \r / / R e c o r d s a r e 0035320 d e l i m i t e d b y b a r 0035340 e c a r r i a g e r e t u r 0035360 n s . \r [ \r l e t o t h e r N 0035400 a m e = C o n c a t e n a t 0035420 e S t r i n g s ( b o a r d , 0035440 " . o t h e r " ) \r l e t o t 0035460 h e r = O p e n F i l e ( o 0035500 t h e r N a m e , k s T y p e 0035520 R e a d O n l y , c h a r I t 0035540 e m ) \r 376 001 \0 324 p F r e e ( s y 0035560 s Z o n e , o t h e r N a m e 0035600 ) \r t e s t o t h e r \r 0035620 i f s o [ P u t T e m p l a 0035640 t e ( d s p , " * N R e a d i 0035660 n g $ S . o t h e r " , b o 0035700 a r d ) ; i n = o t h e r 0035720 ] \r i f n o t [ P u 0035740 t T e m p l a t e ( d s p , " 0035760 * N F a i l e d t o o p e n 0036000 $ S . o t h e r " , b o a r 0036020 d ) ; r e t u r n ] \r \r u n 0036040 t i l E n d o f s ( o t h e r 0036060 ) d o P u t s ( o u t , G 0036100 e t s ( o t h e r ) ) \r \r P u t 0036120 s ( o u t , $ * N ) \r C l o s 0036140 e s ( o t h e r ) 376 001 \0 8 366 \r ] 0036160 \r \f \r / / - - - - - - - - - - - 0036200 - - - - - - - - - - - - - - - - * 0036300 - - - - - - - - - - - - - \r a n 0036320 d O u t P u t ( s t , c h a 0036340 r ) b e \r / / - - - - - - - - 0036360 - - - - - - - - - - - - - - - - * 0036500 \r / / S T . p u t s o p e r 0036520 a t i o n f o r t h e s t 0036540 r e a m ' o u t ' . \r / / 376 001 0036560 \0 $ 275 I t f e e d s c h a 0036600 r a c t e r s t o a p l a 0036620 i n t e x t l i s t i n g 0036640 f i l e a n d t o t h e 0036660 t a p e . \r / / C a r r i a g 0036700 e r e t u r n s a r e r e 0036720 p l a c e d b y r e c o r d 0036740 b o u n d a r i e s o n t 0036760 h e t a p e . \r [ \r P u t s ( 0037000 l f , c h a r ) \r P u t s ( d 0037020 s p , c h a r ) \r i f c h a 0037040 r n e $ * N t h e n \r 0037060 [ \r r e c o r d > > B y 0037100 t e ^ r e c o r d C n t = c 0037120 h a r \r r e c o r d C n t 0037140 = r e c o r d C n t + 1 \r 0037160 376 001 \0 032 y i f r e c o r 0037200 d C n t e q ( c p u T y p e 0037220 e q $ V ? 8 0 , 8 1 ) 0037240 t h e n C a l l S w a t ( " R 0037260 e c o r d t o o l o n g " ) 0037300 \r r e t u r n \r ] \r 0037320 \r / / e n d o f r e c o r 0037340 d \r t e s t c p u T y p e e 0037360 q $ V \r i f s o / / 0037400 R e c L e n = v a r , m a 0037420 x 7 4 , B l k L e n = 2 0037440 0 4 8 , F o r t r a n c a r 0037460 r i a g e c o n t r o l \r 0037500 [ \r i f r 0037520 e c o r d C n t e q 5 t h 0037540 e n r e c o r d C n t = 4 0037560 \r i 376 001 \0 247 025 f 2 0037600 0 4 8 - b l o c k C n t l s 0037620 r e c o r d C n t t h e n F 0037640 l u s h B l o c k ( ) \r 0037660 r e c o r d > > B y t e ^ 0 0037700 = $ 0 \r r e c o 0037720 r d > > B y t e ^ 1 = $ 0 \r 0037740 r e c o r d > > B y 0037760 t e ^ 2 = $ 0 + r e c o 0040000 r d C n t / 1 0 \r r 0040020 e c o r d > > B y t e ^ 3 = 0040040 $ 0 + r e c o r d C n t r 0040060 e m 1 0 \r r e c o 0040100 r d > > B y t e ^ 4 = $ * S 0040120 / / F o r t r a n c a r r 0040140 i a g e c o n t r o l ! \r 0040160 f o r i = 0 376 001 \0 0040200 ` 360 t o r e c o r d C n t - 0040220 1 d o \r b l 0040240 o c k > > B y t e ^ ( b l o c k 0040260 C n t + i ) = r e c o r d > 0040300 > B y t e ^ i \r b l 0040320 o c k C n t = b l o c k C n 0040340 t + r e c o r d C n t \r 0040360 r e c o r d C n t = 0040400 5 \r ] \r i f n 0040420 o t / / R e c L e n = 8 0040440 0 , B l k L e n = 8 0 0 0040460 ( P r i m e c o m p u t e r 0040500 s y s t e m ) \r [ 0040520 \r i f b l o c k C 0040540 n t e q 8 0 0 t h e n F 0040560 l u s h B l o c k ( ) \r 0040600 376 001 \0 027 \0 f o r i = 0 0040620 t o r e c o r d C n t - 1 0040640 d o \r b l o c 0040660 k > > B y t e ^ ( b l o c k C n 0040700 t + i ) = r e c o r d > > B 0040720 y t e ^ i \r f o r 0040740 i = r e c o r d C n t t o 0040760 7 9 d o \r 0041000 b l o c k > > B y t e ^ ( b l o 0041020 c k C n t + i ) = $ * S 0041040 / / p a d r e c o r d w i t 0041060 h $ * S \r b l o c 0041100 k C n t = b l o c k C n t 0041120 + 8 0 \r r e c o r 0041140 d C n t = 0 \r ] 0041160 \r ] \r \r / / - - - - - - - - - - 0041200 - - - - - - - 376 001 \0 322 254 - - - - 0041220 - - - - - - - - - - - - - - - - * 0041320 - - - \r a n d F l u s h B l o 0041340 c k ( ) b e \r / / - - - - - - 0041360 - - - - - - - - - - - - - - - - * 0041500 - - \r / / F l u s h e s t h 0041520 e c u r r e n t b l o c k 0041540 t o t a p e \r [ \r i f b l o 0041560 c k C n t e q 0 r e t u r 0041600 n \r t e s t c p u T y 376 001 \0 \t 0041620 177 p e e q $ V \r i f s 0041640 o \r [ \r 0041660 f o r i = b l o c k C n t 0041700 t o 2 0 4 7 d o b l o c 0041720 k > > B y t e ^ i = 1 3 6 b 0041740 / / p a d b l o c k w i 0041760 t h $ * 1 3 6 \r T 0042000 S P ( c m d W r i t e R e c o r 0042020 d , b l o c k , 0 , 2 0 4 0042040 8 ) \r ] \r i f 0042060 n o t \r [ \r 0042100 f o r i = b l o c k C 0042120 n t t o 7 9 9 d o b l o 0042140 c k > > B y t e ^ i = $ * S 0042160 / / p a d b l o c k w i 0042200 t h $ * S \r T S P 0042220 ( 376 001 \0 025 365 c m d W r i t e R e 0042240 c o r d , b l o c k , 0 , 0042260 8 0 0 ) \r ] \r n u m 0042300 B l o c k s = n u m B l o c 0042320 k s + 1 \r b l o c k C n t = 0042340 0 \r ] \r \f \r / / - - - - - - - 0042360 - - - - - - - - - - - - - - - - * 0042500 - \r a n d R e a d T o k e n ( 0042520 ) b e \r / / - - - - - - - - - 0042540 - - - - - - - - - - - - - - - - * 0042620 - - - - - - 376 001 \0 314 - - - - - - 0042640 - - - - - - - - - - - - - - - - 0042660 - - - - \r / / R e a d s a 0042700 t o k e n f r o m t h e ' 0042720 i n ' s t r e a m a n d p 0042740 u t s i t i n ' t o k e n 0042760 ' . \r / / N o t e t h a t 0043000 i t m a y h a v e 0 c h 0043020 a r a c t e r s i f E O F 0043040 ( d i s k s t r e a m ) o r 0043060 < D e l > ( k e y s t r e 0043100 a m ) . \r / / T e r m i n a t 0043120 i n g c h a r a c t e r i s 0043140 l e f t i n s t a t i c 0043160 ' t e r m C h a r ' . \r [ \r l e 0043200 t c o u n t = 0 \r u n t i 0043220 l E n d o f s ( i n 376 001 \0 @ 204 0043240 ) & i n n e k e y s d 0043260 o \r [ \r t e r m C h 0043300 a r = G e t s ( i n ) \r 0043320 s w i t c h o n t e r m C h 0043340 a r i n t o \r [ \r 0043360 c a s e $ * 0 0 1 0043400 : c a s e $ * 0 1 0 : \r 0043420 [ \r 0043440 i f c o u n t n e 0 0043460 & i n e q k e y s t h e 0043500 n \r [ \r 0043520 E r a s 0043540 e B i t s ( d s p , - C h a r 0043560 W i d t h ( d s p , t o k e n 0043600 > > S t r i n g . c h a r ^ c o 0043620 u n t ) ) \r 0043640 376 001 \0 6 # c o u n t = c 0043660 o u n t - 1 \r 0043700 ] \r e 0043720 n d c a s e \r 0043740 ] \r c a s e $ ; : 0043760 \t / / f l u s h i n p u t s 0044000 t r e a m u n t i l C R \r 0044020 u n t i l E n 0044040 d o f s ( i n ) % G e t s ( 0044060 i n ) e q $ * N l o o p 0044100 / / f a l l t h r o u g h \r 0044120 c a s e $ * N : 0044140 c a s e $ * S : c a s e $ 0044160 * T : c a s e $ : : \r 0044200 [ \r 0044220 i f c o u n t n e 0 b 0044240 r e a k \r 376 001 \0 314 z 0044260 e n d c a s e \r 0044300 ] \r c a s e 0044320 $ * 1 7 7 : \r 0044340 i f i n e q k e y s t 0044360 h e n \r 0044400 [ W s s ( d s p , " X X X 0044420 " ) ; c o u n t = 0 ; 0044440 b r e a k ] \r d e 0044460 f a u l t : \r 0044500 [ \r c o u n t 0044520 = c o u n t + 1 \r 0044540 i f t e r m C h a r 0044560 g e $ a & t e r m C h a 0044600 r l e $ z t h e n t e r 0044620 m C h a r = t e r m C h a r 0044640 & 1 3 7 b \r 376 001 \0 272 ] 0044660 i f t e r m C h a 0044700 r e q $ _ t h e n t e r 0044720 m C h a r = $ < \r 0044740 t o k e n > > S t r i n 0044760 g . c h a r ^ c o u n t = t 0045000 e r m C h a r \r 0045020 i f i n e q k e y s t 0045040 h e n P u t s ( d s p , t e 0045060 r m C h a r ) \r 0045100 e n d c a s e \r 0045120 ] \r ] \r ] 0045140 \r t o k e n > > S t r i n g . l 0045160 e n g t h = c o u n t \r ] \r 0045200 \r / / - - - - - - - - - - - - - 0045220 - - - - - - - - - - - - - - - - 0045240 - - - - - - - - - - - - - - - 376 0045260 001 \0 333 \f - - - - - - - - - - - - 0045300 - - - - - - - - - - - - - - - - * 0045340 \r a n d I s N u m b e r ( f i 0045360 r s t , l a s t ) = v a l 0045400 o f \r / / - - - - - - - - - - - 0045420 - - - - - - - - - - - - - - - - * 0045520 - - - - - - - - - - - - - \r [ \r 0045540 i f l a s t l s f i r s t 0045560 r e s u l t i s f a l s e \r 0045600 f o r i = f i r s t t o 0045620 l a s t d o \r i f t 0045640 o k e n > > S t r i n g . c h a 0045660 r ^ i 376 \0 B 271 016 l s $ 0 % 0045700 t o k e n > > S t r i n g . c 0045720 h a r ^ i g r $ 9 r e s u 0045740 l t i s f a l s e \r r e s u l 0045760 t i s t r u e \r ] \r 377 \0 \0 L o 0046000 a d S C I . c m \0 373 232 f 0 Z \0 \0 0046020 376 001 \0 ( 222 B L D R / L V S C I 0046040 S C I 1 ^ \r ^ \r P u p B S P 0046060 O p e n C l o s e P u p B S P 0046100 S t r e a m s P u p B S P P r 0046120 o t P u p B S P A P u p B S 0046140 P B l o c k ^ \r P u p R T P O 0046160 p e n C l o s e P u p R T P 0046200 P u p N a m e L o o k u p ^ \r 0046220 P u p 1 O p e n C l o s e P u 0046240 p 1 B P u p A l 1 A P u p R 0046260 o u t e P u p D u m m y G a t 0046300 e P u p 1 I n i t ^ \r P u p 0046320 A l E t h B P u p A l E t h A 0046340 P u p A l E t h I n i t ^ \r 0046360 ^ \r C o n t e x t I n i t C o 0046400 n t e x t ^ \r I n t e r r u p 0046420 t I n i t 376 \0 C 232 325 I n t e r 0046440 r u p t ^ \r A l t o B y t e B 0046460 l t A l t o Q u e u e A l t 0046500 o T i m e r ^ \r T e m p l a t 0046520 e S t r i n g U t i l \r 377 \0 \0 0046540 S C I . c m \0 373 232 330 315 > \0 \0 376 \0 0046560 - 240 023 S C I . d e c l S C I . 0046600 b c p l S C I 1 . b c p l L 0046620 o a d S C I . c m S C I . c m 0046640 374 0046641