$ od -c -N 50000 [_CD6_]<tapeserver>SoftwareSources>TapeServerSources.dm!6 0000000 377 \0 \0 T S P . d e c l \0 376 001 \0 223 0000020 003 \r / / t s p . d e c l d 0000040 e c l a r a t i o n s f o r 0000060 T a p e S e r v e r P r o t 0000100 o c o l \r / / G . K r a 0000120 s n e r N o v e m b e r 1 9 0000140 , 1 9 7 9 \r / / L a s t 0000160 m o d i f i e d b y T i m 0000200 D i e b e r t , J u n e 0000220 2 , 1 9 8 0 1 0 : 2 8 A 0000240 M \r \r m a n i f e s t \r [ \r 0000260 r w B l o c k L e n g t h = 0000300 1 6 3 8 4 + 4 + 2 0 0000320 / / m a x l e n g t h 0000340 o f t h i s b l o c k ( 1 0000360 6 K + 4 w o r d h e a d e r + 0000400 2 0 w o r d s l o p f o r 0000420 u 376 001 \0 202 365 c o d e ) \r c 0000440 m d B l o c k L e n g t h = 0000460 1 2 8 / / m a x l e n g 0000500 t h o f t y p i c a l c m 0000520 d B l o c k \r m a x S e r 0000540 v e r s = 2 / / m a 0000560 x n u m b e r o f s e r v 0000600 e r s a l l o w e d \r m 0000620 a x D r i v e s = 2 0000640 / / m a x n u m b e r 0000660 o f d r i v e s a l l o w e 0000700 d \r l e n S e r v i c e 0000720 = 9 / / n i n e 0000740 w o r d s i n S e r v i c e 0000760 b l o c k \r m u c h c o 0001000 r e = # 7 7 0 0 0 / / 0001020 m a x a m 376 001 \0 220 \b o u n t 0001040 o f c o r e \r t a p e S 0001060 o c k e t = # 4 4 / / 0001100 T a p e s e r v e r r e n d 0001120 e z v o u s s o c k e t \r / 0001140 / V e r s i o n i n f o r m a 0001160 t i o n \r c u r r e n t V 0001200 e r s i o n = 0 / / c 0001220 u r r e n t l y v e r s i o n 0001240 0 \r / / w h e n 0001260 c h a n g i n g c u r r e n t 0001300 V e r s i o n , b e s u r e 0001320 t o a l s o c h a n g e \r 0001340 / / c u r r e n t V 0001360 e r s i o n S t r i n g i n 0001400 t s p s e r v e r . b c p l \r / 0001420 / c o m m a n d ( m 376 001 \0 347 242 0001440 e s s a g e ) t y p e s : \r 0001460 c m d Y e s = # 1 \r 0001500 c m d N o = # 2 \r c 0001520 m d V e r s i o n = # 3 \r 0001540 c m d S e n d T e x t = 0001560 # 4 \r c m d G e t T e x t 0001600 = # 5 \r c m d O p e n 0001620 D r i v e = # 6 \r c m 0001640 d C l o s e D r i v e = # 7 0001660 \r c m d R e a d R e c o r 0001700 d = # 1 0 \r c m d W r 0001720 i t e R e c o r d = # 1 1 \r 0001740 c m d F w d S p a c e R e 0001760 c o r d = # 1 2 \r c m 0002000 d B a c k S p a c e R e c o r d 0002020 = # 1 3 \r c m d F w d 0002040 376 001 \0 021 036 S p a c e F i l e = 0002060 # 1 4 \r c m d B a c k S 0002100 p a c e F i l e = # 1 5 \r 0002120 c m d W r i t e E O F = 0002140 # 1 6 \r c m d W r i t e B 0002160 l a n k T a p e = # 1 7 \r 0002200 c m d R e w i n d = # 2 0002220 0 \r c m d U n l o a d = 0002240 # 2 1 \r c m d G e t S t 0002260 a t u s = # 2 2 \r c m 0002300 d S e t S t a t u s = # 2 3 0002320 \r c m d H e r e I s T e x 0002340 t = # 2 4 \r c m d H e 0002360 r e I s R e c o r d = # 2 5 0002400 \r c m d H e r e I s S t a 0002420 t u s = # 2 6 \r / / M e s 0002440 s a g e 376 001 \0 b # s e l e c t 0002460 o r s f o r R e p l y N o \r 0002500 d o n e O p e r a t i o n 0002520 = 0 \r n o G o o d M e 0002540 s s a g e = 1 \r o p e 0002560 n A l r e a d y = 2 \r 0002600 d r i v e I n U s e = 3 \r 0002620 b a d D r i v e = 4 \r 0002640 b a d D r i v e N o = 5 0002660 \r d r i v e N o t O p e n 0002700 e d = 6 \r n o V e r s 0002720 i o n = 7 \r b a d S t 0002740 a t u s S e l e c t o r = 8 0002760 \r b a d R e t r y S e t t 0003000 i n g = 9 \r w r i t e 0003020 P r o t e c t e d = 1 0 \r 0003040 b a d S p e e d 376 001 \0 025 > S 0003060 e t t i n g = 1 1 \r / / S 0003100 t a t u s s e l e c t o r s \r 0003120 s e t R e t r i e s = 0003140 0 / / s e t n u m b e r 0003160 o f r e t r i e s a l l o 0003200 w e d f o r r e a d s / w r 0003220 i t e s \r s e t S p e e d 0003240 = 1 / / u n u s e d 0003260 f o r n o w , c o u l d b 0003300 e s e t s p e e d f o r 0003320 d r i v e \r ] \r \r s t r u c t u 0003340 r e S e r v i c e : / / 0003360 S e r v i c e b l o c k f o 0003400 r S e r v e r \r [ \r i d n u m 0003420 b e r w o r d / / u 0003440 n i q u e i d f o r t h 376 0003460 001 \0 002 372 i s i n s t a n c e \r 0003500 b s p S o c w o r d 0003520 / / B S P s o c k e t \r 0003540 b s p S t r w o r d 0003560 / / B S P s t r e a m \r 0003600 c m d B l o c k w o r d 0003620 / / b l o c k a l l o c a 0003640 t e d f o r c o m m a n d s 0003660 f o r t h i s i n s t a n 0003700 c e \r / / a b o v e a r 0003720 e a l l o c a t e d b y C 0003740 o n n e c t o r , \r / / b 0003760 e l o w a r e u s e d l o 0004000 c a l l y b y a S e r v e 0004020 r \r t a p e w o r d 0004040 / / p o i n t e r t o 0004060 a t a 376 001 \0 224 x p e o b j e 0004100 c t ( r e t u r n e d b y 0004120 O p e n T a p e ) \r b l k 0004140 w o r d / / c u r r 0004160 e n t b l o c k u s e d ( 0004200 e i t h e r c m d B l o c k 0004220 o r r w B l o c k ) \r d r i v 0004240 e w o r d / / 0004260 c u r r e n t t a p e d r i 0004300 v e n u m b e r o r - 1 0004320 i f u n o p e n e d \r r e t r 0004340 i e s w o r d 0004360 / / n u m b e r o f r e t r 0004400 i e s a l l o w e d \r s p e e 0004420 d w o r d / / 0004440 s p e e d o f t h i s d r 0004460 i v e ( I P S 4 376 001 \0 252 Z 5 , 0004500 I P S 1 2 5 ) \r ] \r \r s t r u c 0004520 t u r e M e s s a g e : 0004540 / / g e n e r a l m e s s a 0004560 g e s t r u c t u r e ( a l 0004600 s o u s e d b y m s g s 0004620 w i t h n o p a r a m s ) \r 0004640 [ \r l e n g t h w o r d 0004660 / / l e n g t h i n w o r 0004700 d s i n c l u d i n g o v e 0004720 r h e a d \r t y p e w o r d 0004740 / / c o m m a n d / r e s 0004760 p o n s e t y p e \r / / c o 0005000 n t e n t s ^ 0 , 0 w o r d \r 0005020 ] \r \r s t r u c t u r e G M e 0005040 s s a g e : / / G e n e r 0005060 a l M e s s a g e s t r 376 001 0005100 \0 205 4 u c t u r e \r [ \r @ M e s 0005120 s a g e / / l e n g t h 0005140 a n d t y p e \r d a t a w o 0005160 r d / / f i r s t d a t 0005200 a w o r d \r ] \r \r s t r u c t 0005220 u r e Y e s N o : / / Y 0005240 e s a n d N o c o m m a n 0005260 d s \r [ \r @ M e s s a g e \r c a 0005300 u s e w o r d / / w h a 0005320 t c a u s e d t h i s y e 0005340 s o r n o \r c o d e w o r 0005360 d / / a n i n t e g e r 0005400 \r s t r @ S t r i n g / 0005420 / a s t r i n g \r ] \r \r s t 0005440 r u c t u r e V e r s i o n : 0005460 / / V e r s i o n c o 0005500 m m a 376 001 \0 { 327 n d \r [ \r @ M e 0005520 s s a g e \r v e r s n o w o r 0005540 d / / a n i n t e g e 0005560 r \r v e r s t e x t @ S t r i 0005600 n g / / B c p l s t r 0005620 i n g \r ] \r \r s t r u c t u r e 0005640 S e n d T e x t : / / 0005660 S e n d T e x t c o m m a n d 0005700 \r [ \r @ M e s s a g e \r t e x t 0005720 @ S t r i n g \r ] \r \r s t r u 0005740 c t u r e G e t T e x t : 0005760 / / G e t T e x t c o m m a 0006000 n d \r [ \r @ M e s s a g e \r ] 0006020 \r \r s t r u c t u r e O p e n 0006040 D r i v e : / / O p e n 0006060 D r i v e c o m m a n d \r [ \r 0006100 @ M e s s a g e 376 001 \0 224 h \r d r 0006120 i v e N u m b e r w o r d 0006140 / / a n i n t e g e r \r u 0006160 s e r I D @ S t r i n g 0006200 / / B c p l s t r i n g \r ] 0006220 \r \r s t r u c t u r e C l o s 0006240 e D r i v e : / / C l o 0006260 s e D r i v e c o m m a n d 0006300 \r [ \r @ M e s s a g e \r ] \r \r 0006320 s t r u c t u r e R e a d R e 0006340 c o r d : / / R e a d R 0006360 e c o r d c o m m a n d \r [ 0006400 \r @ M e s s a g e \r ] \r \r s t r 0006420 u c t u r e W r i t e R e c o 0006440 r d : / / W r i t e R e 0006460 c o r d c o m m a n d \r [ \r @ 0006500 M e s s a g e \r r e c o r 376 001 \0 0006520 y 271 d L e n g t h w o r d 0006540 / / i n b y t e s \r r e c 0006560 o r d ^ 0 , 0 b y t e \r ] \r \r 0006600 s t r u c t u r e F w d S p a 0006620 c e R e c o r d : / / F 0006640 w d S p a c e R e c o r d 0006660 c o m a n d \r [ \r @ M e s s a 0006700 g e \r ] \r \r s t r u c t u r e 0006720 B a c k S p a c e R e c o r d : 0006740 / / B a c k S p a c e 0006760 R e c o r d c o m a n d \r 0007000 [ \r @ M e s s a g e \r ] \r \r s t 0007020 r u c t u r e F w d S p a c e 0007040 F i l e : / / F w d S 0007060 p a c e F i l e c o m a n d 0007100 \r [ \r @ M e s s a g e \r ] \r \r 0007120 s t 376 001 \0 276 370 r u c t u r e B 0007140 a c k S p a c e F i l e : 0007160 / / B a c k S p a c e F i 0007200 l e c o m a n d \r [ \r @ M e 0007220 s s a g e \r ] \r \r s t r u c t u 0007240 r e W r i t e E n d O f F i l 0007260 e : / / W r i t e E n 0007300 d O f F i l e c o m a n d 0007320 \r [ \r @ M e s s a g e \r ] \r \r 0007340 s t r u c t u r e W r i t e B 0007360 l a n k T a p e : / / W 0007400 r i t e B l a n k T a p e c o 0007420 m m a n d \r [ \r @ M e s s a g e 0007440 \r g a p w o r d / / i 0007460 n i n c h e s \r ] \r \r s t r u 0007500 c t u r e R e w i n d : 0007520 / / R e w i 376 001 \0 235 h n d c 0007540 o m a n d \r [ \r @ M e s s a g 0007560 e \r ] \r \r s t r u c t u r e U 0007600 n l o a d : / / U n l o 0007620 a d c o m a n d \r [ \r @ M e 0007640 s s a g e \r ] \r \r s t r u c t u 0007660 r e G e t S t a t u s : 0007700 / / G e t S t a t u s c o 0007720 m a n d \r [ \r @ M e s s a g e 0007740 \r ] \r \r s t r u c t u r e S e 0007760 t S t a t u s : / / S e 0010000 t S t a t u s c o m m a n d \r 0010020 [ \r @ M e s s a g e \r s e l e c 0010040 t o r w o r d / / s e 0010060 l e c t o r o f w h i c h 0010100 p a r a m e t e r t o s e t 0010120 \r n e w s e t t i n g 376 001 \0 016 0010140 035 w o r d / / n e w s e t 0010160 t i n g f o r t h a t s e 0010200 l e c t o r \r ] \r \r s t r u c t 0010220 u r e H e r e I s T e x t : 0010240 / / H e r e I s T e x t 0010260 c o m m a n d \r [ \r @ M e s s a 0010300 g e \r t e x t @ S t r i n g \r 0010320 ] \r \r s t r u c t u r e H e r 0010340 e I s R e c o r d : / / 0010360 H e r e I s R e c o r d c o m 0010400 m a n d \r [ \r @ M e s s a g e \r 0010420 e n d i n g S t a t u s w o r 0010440 d / / t a p e d r i v e 0010460 e n d i n g s t a t u s \r r 0010500 e c o r d L e n g t h w o r d 0010520 / / i n b y t e s \r r 0010540 e 376 001 \0 353 252 c o r d ^ 0 , 0 b 0010560 y t e \r ] \r \r s t r u c t u r e 0010600 H e r e I s S t a t u s : 0010620 / / H e r e I s S t a t u s 0010640 c o m m a n d \r [ \r @ M e s s 0010660 a g e \r d r i v e w o r d 0010700 / / d r i v e n u m b e r 0010720 i f o p e n , - 1 i f n 0010740 o t \r t s t a t u s w o r d 0010760 / / t a p e s t a t u s 0011000 b i t s i f o p e n , d o 0011020 n t c a r e o t h e r w i s 0011040 e \r r e t r i e s w o r d 0011060 / / n u m b e r o f r e t 0011100 r i e s c u r r e n t l y i 0011120 n f o r c e , e l s e d o 0011140 n t c a r 376 \0 4 250 [ e \r s p e 0011160 e d w o r d / / t a 0011200 p e s p e e d , 0 = i p s 4 0011220 5 , 1 = i p s 1 2 5 \r ] \r \r 377 0011240 \0 \0 T a p e S e r v e r . b c p 0011260 l \0 376 001 \0 352 034 \r / / t s p 0011300 s e r v e r . b c p l T a p e 0011320 S e r v e r , t o p l e v e 0011340 l \r / / \r / / g . k 0011360 r a s n e r N o v e m b e r 0011400 1 9 , 1 9 7 9 \r / / l a 0011420 s t m o d i f i e d b y T 0011440 i m D i e b e r t , J u n e 0011460 2 , 1 9 8 0 1 0 : 0 2 0011500 A M \r / / t o p r o v i 0011520 d e f o r n e w l o w l 0011540 e v e l s o f t w a r e \r / 0011560 / \r g e t " p u p . d e c 0011600 l " \r g e t " t a p e s . 0011620 d " \r g e t " a l t o d e 0011640 f s . d " \r g e t " t s p 0011660 . d e c l " \r 376 001 \0 372 322 \r / / - 0011700 - - - - - - - - - - - - - - - - * 0011760 - - - - - - - - - - - - - - \r e 0012000 x t e r n a l \r / / - - - - - - 0012020 - - - - - - - - - - - - - - - - * 0012100 - - - - - - - - - \r [ \r / / F r 0012120 o m T S P D O s \r D o O 0012140 p e n D r i v e ; D o C l o s 0012160 e D r i v e ; D o R e a d R e 0012200 c o r d ; D o W r i t e R e c 0012220 o r d \r D o F w d S p a c 0012240 e R e c o r d ; D o B a c k S 0012260 p a c e R e c o r d ; 376 001 \0 021 0012300 262 D o F w d S p a c e F i l e \r 0012320 D o B a c k S p a c e F i 0012340 l e ; D o W r i t e E O F ; 0012360 D o W r i t e B l a n k T a p e 0012400 ; D o R e w i n d \r D o 0012420 U n l o a d ; D o G e t S t a 0012440 t u s ; D o S e t S t a t u s 0012460 ; D o S e n d T e x t ; D o 0012500 G e t T e x t \r R e p l y 0012520 N o \r / / F r o m ' S y s t e 0012540 m ' \r G e t s ; R e s e 0012560 t s ; L o a d R a m ; C a l 0012600 l S w a t ; l v U s e r F i n 0012620 i s h P r o c ; l v S w a t C 0012640 o n t e x t P r o c \r F i 0012660 x e d L e f t ; U s c ; A d 0012700 d 376 001 \0 H d T o Z o n e ; s y 0012720 s Z o n e ; G e t F i x e d ; 0012740 S e t B L V ; S t a r t I O 0012760 \r A l l o c a t e ; I n 0013000 i t i a l i z e Z o n e ; E n 0013020 q u e u e ; I n i t i a l i z 0013040 e C o n t e x t ; C a l l C o 0013060 n t e x t L i s t \r B l o 0013100 c k ; U n q u e u e ; D e q 0013120 u e u e ; M o v e B l o c k ; 0013140 F r e e ; W s \r / / F r o m 0013160 T a p e s \r X M T a p e 0013200 I m a g e ; T a p e T f s S w 0013220 a t P r o c ; C l o s e T a p 0013240 e \r / / T o T a p e s \r 0013260 T a p e W a i t Q u i e t \r / 0013300 / F r o m 376 001 \0 345 226 P u p \r 0013320 I n i t P u p L e v e l 1 ; 0013340 O p e n L e v e l 1 S o c k e 0013360 t ; O p e n R T P S o c k e t 0013400 ; C r e a t e B S P S t r e a 0013420 m \r B S P R e a d B l o c 0013440 k ; B S P W r i t e B l o c k 0013460 ; B S P F o r c e O u t p u t 0013500 ; E x c h a n g e P o r t s \r 0013520 R e l e a s e P B I ; C 0013540 o m p l e t e P u p ; A p p e 0013560 n d S t r i n g T o P u p ; B 0013600 S P G e t M a r k \r / / F r o m 0013620 S t r e a m s \r W o ; 0013640 E n d o f s ; C l o s e s ; 0013660 k e y s \r / / E x p o r t e d 0013700 G l o b a l s \r 376 001 \0 336 354 0013720 r w B l o c k ; k b d K e y 0013740 ; r w K e y ; u s e d i d n 0013760 o s ; u s e d d r i v e s ; 0014000 c t x Q ; c u r r e n t V e r 0014020 s i o n S t r i n g \r ] \r \r / / 0014040 - - - - - - - - - - - - - - - - * 0014120 - - - - - - - - - - - - - - - \r 0014140 s t a t i c \r / / - - - - - - - 0014160 - - - - - - - - - - - - - - - - * 0014240 - - - - - - - - \r [ r w B 0014260 l o c k / / s h a r e d 0014300 r e a d / w r i t e b l o c k 0014320 376 001 \0 321 O \r r w K e y 0014340 / / k e y t o a c c 0014360 e s s t h e b l o c k \r 0014400 k b d K e y / / k 0014420 e y t o r e a d f r o m 0014440 o p e r a t o r ' s k b d \r 0014460 u s e d i d n o s / / 0014500 v e c t o r o f i d n u m 0014520 b e r s u s e d \r u s e 0014540 d d r i v e s / / v e c t 0014560 o r o f d r i v e s w i t 0014600 h s e r v e r s \r c t x 0014620 Q / / c o n t e x t 0014640 q u e u e \r c u r r e n 0014660 t V e r s i o n S t r i n g 0014700 / / s t r i n g s e n d w 0014720 i t h [ 376 001 \0 # 264 V e r s i o 0014740 n ] m e s s a g e \r T a 0014760 p e T r i d e n t U F P / 0015000 / g l o b a l s t r e a m o 0015020 b j e c t \r b s p S o c k 0015040 e t s / / v e c t o r o 0015060 f a l l o c a t e d b s p S 0015100 o c k e t s \r s e r v i c 0015120 e B l o c k s / / v e c t 0015140 o r o f a l l o c a t e d 0015160 S e r v i c e B l o c k s \r 0015200 s e r v e r C o n t e x t s 0015220 / / v e c t o r o f c 0015240 o n t e x t s , o n e p e r 0015260 i n s t a n c e o f S e r 0015300 v e r \r r v S o c k e t 0015320 / / g l o b a l 376 001 \0 ( 030 0015340 s o c k e t f o r r e n d e 0015360 z v o u s e s \r ] \r \r / / - - - 0015400 - - - - - - - - - - - - - - - - * 0015460 - - - - - - - - - - - - \r l e t 0015500 S t a r t S e r v i n g ( ) 0015520 b e \r / / - - - - - - - - - - - 0015540 - - - - - - - - - - - - - - - - * 0015620 - - - - \r [ \r / / I n i t t 0015640 h e t r i d e n t / t a p e 0015660 m i c r o c o d e , s e t u 0015700 p c o d e t o r e t u r n 0015720 t a s k s t o R O M w 376 0015740 001 \0 240 273 h e n d o n e . \r 0015760 i f L o a d R a m ( X M T a 0016000 p e I m a g e , t r u e ) n 0016020 e 0 d o \r C a l 0016040 l S w a t ( " L o a d R a m ( ) 0016060 f a i l e d . " ) \r T a 0016100 p e T r i d e n t U F P = @ l v 0016120 U s e r F i n i s h P r o c \r 0016140 @ l v U s e r F i n i s h P 0016160 r o c = T a p e T r i d e n t B 0016200 o o t \r @ l v S w a t C o 0016220 n t e x t P r o c = T a p e T f 0016240 s S w a t P r o c \r / / s e t 0016260 u p s e r v e r v a r i a 0016300 b l e s \r l e t i = 0016320 0 \r r w K e y = - 1 0016340 / / 376 001 \0 240 / n o b o d y 0016360 o w n s r w B l o c k y e t 0016400 \r k b d K e y = - 1 0016420 / / n o b o d y o w n s 0016440 k b d y e t \r l e t v 0016460 = v e c m a x S e r v e r 0016500 s / / v i s t e 0016520 m p v e c t o r \r u s e 0016540 d i d n o s = v 0016560 / / v e c t o r o f i 0016600 d n u m b e r s u s e d \r 0016620 l e t v = v e c m a 0016640 x S e r v e r s / / o p e 0016660 n s o c k e t f o r e a c 0016700 h s e r v e r \r b s p S 0016720 o c k e t s = v \r l e 0016740 t v = v e c 376 001 \0 024 020 m 0016760 a x S e r v e r s \r s e r 0017000 v i c e B l o c k s = v 0017020 / / a l l o c a t e S 0017040 e r v i c e B l o c k s \r 0017060 l e t v = v e c m a x 0017100 S e r v e r s \r s e r v e 0017120 r C o n t e x t s = v 0017140 / / a n d c o n t e x t 0017160 s \r l e t v = v e c 0017200 m a x D r i v e s \r u s 0017220 e d d r i v e s = v 0017240 / / v e c t o r o f 0017260 d r i v e s w i t h s e r 0017300 v e r s \r f o r i = 0017320 0 t o m a x D r i v e s - 1 0017340 d o u s e d d r i v e s 376 001 0017360 \0 027 237 ! i = f a l s e / / 0017400 n o d r i v e w i t h a n 0017420 y s e r v e r \r c u r r 0017440 e n t V e r s i o n S t r i n g 0017460 = " T a p e S e r v e r 0017500 P r o t o c o l , V 0 . 3 " \r 0017520 W s ( c u r r e n t V e r 0017540 s i o n S t r i n g ) \r \r / / 0017560 s e t u p l a r g e s y s 0017600 Z o n e r e g i o n \r v 0017620 = F i x e d L e f t ( ) - 2 0 0 0017640 0 \r v = ( U s c ( v , 0017660 m u c h c o r e ) e q 1 ) 0017700 ? m u c h c o r e , v \r 0017720 A d d T o Z o n e ( s y s Z 0017740 o n e , G e t F i x e d ( v ) 0017760 , v 376 001 \0 241 1 ) \r / / s e t 0020000 u p r w B l o c k \r r 0020020 w B l o c k = A l l o c a t 0020040 e ( s y s Z o n e , r w B l o c 0020060 k L e n g t h ) \r / / I n i t 0020100 i a l i z e B S P s o c k e 0020120 t ( L e v e l 1 o n l y ) 0020140 \r l e t m y Z o n e = 0020160 v e c ( 2 0 0 0 * m a x S e 0020200 r v e r s ) \r I n i t i 0020220 a l i z e Z o n e ( m y Z o n e 0020240 , ( 2 0 0 0 * m a x S e r v e 0020260 r s ) ) \r l e t q = 0020300 v e c 1 ; c t x Q = q ; 0020320 c t x Q ! 0 = 0 \r 0020340 I n i t P u p L e v e l 1 ( m y 0020360 Z o n e , c t x 376 001 \0 037 F Q , ( 0020400 5 * m a x S e r v e r s ) ) \r 0020420 r v S o c k e t = A l 0020440 l o c a t e ( s y s Z o n e , l 0020460 e n B S P S o c ) \r O p 0020500 e n L e v e l 1 S o c k e t ( r 0020520 v S o c k e t , t a b l e [ 0020540 0 ; 0 ; t a p e S o c k e t 0020560 ] ) / / s e t u p t o 0020600 l i s t e n a t s o c k e 0020620 t 4 4 b \r / / I n i t i a l i 0020640 z e g l o b a l s f o r e 0020660 a c h S e r v e r i n s t a 0020700 n c e \r f o r i = 0 0020720 t o m a x S e r v e r s - 1 0020740 d o \r [ u s e d 0020760 i d n o s ! i = f a l 376 001 \0 0021000 \b r s e / / n o s e r v 0021020 e r w i t h a n y i d \r 0021040 b s p S o c k e t s ! 0021060 i = A l l o c a t e ( s y s 0021100 Z o n e , l e n B S P S o c ) 0021120 / / a l l o c a t e s o c 0021140 k e t b l o c k \r 0021160 s e r v i c e B l o c k s ! i 0021200 = A l l o c a t e ( s y s Z o 0021220 n e , l e n S e r v i c e ) 0021240 / / a l l o c a t e S e r v 0021260 i c e b l o c k \r 0021300 ( s e r v i c e B l o c k s ! i 0021320 ) > > S e r v i c e . b l k = 0021340 A l l o c a t e ( s y s Z o n 0021360 e , c m d B l o c k L e n g t h 0021400 ) \r 376 001 \0 357 332 s e r 0021420 v e r C o n t e x t s ! i = 0021440 A l l o c a t e ( s y s Z o n e 0021460 , 2 0 0 ) / / a l l o c a 0021500 t e a c o n t e x t f o r 0021520 S e r v e r \r ] \r 0021540 l e t v = v e c 3 0 0 \r 0021560 E n q u e u e ( c t x Q , 0021600 I n i t i a l i z e C o n t e 0021620 x t ( v , 3 0 0 , C o n n e 0021640 c t o r ) ) \r l e t v 0021660 = v e c 3 0 0 \r E n q 0021700 u e u e ( c t x Q , I n i t i 0021720 a l i z e C o n t e x t ( v , 0021740 3 0 0 , D i s C o n n e c t o 0021760 r ) ) \r C a l l C o n t e 0022000 x t L i s t ( 376 001 \0 032 \n c t x Q 0022020 ! 0 ) r e p e a t \r ] \r \r / 0022040 / - - - - - - - - - - - - - - - 0022060 - - - - - - - - - - - - - - - - * 0022140 \r a n d C o n n e c t o r ( ) 0022160 b e \r / / - - - - - - - - - - 0022200 - - - - - - - - - - - - - - - - * 0022260 - - - - - \r [ B l o c k 0022300 ( ) / / l e t s o m e o 0022320 n e e l s e h a v e a g 0022340 o \r l e t i = 0 ; 0022360 l e t s o c = 0 / / 0022400 t e m p s \r l e t 376 001 \0 ! 0022420 323 p b i = D e q u e u e ( 0022440 l v r v S o c k e t > > P u p 0022460 S o c . i Q ) / / g e t 0022500 p a c k e t \r u n l e s s 0022520 p b i d o [ l o o p ] 0022540 \r i f p b i > > P B I . 0022560 p u p . t y p e n e t y p e 0022600 R F C % p b i > > P B I . p 0022620 u p . d P o r t . h o s t e q 0022640 0 t h e n \r [ 0022660 R e l e a s e P B I ( p b i ) ; 0022700 l o o p ] \r \r / / d e f a u 0022720 l t n e t f i e l d o f 0022740 c o n n e c t i o n p o r t \r 0022760 i f p b i > > P B I . p 0023000 u p . b y t e s ^ 1 e q 0 0023020 t 376 001 \0 f 323 h e n \r 0023040 p b i > > P B I . p u p . b y t 0023060 e s ^ 1 = p b i > > P B I . 0023100 p u p . s P o r t . n e t \r \r / 0023120 / c h e c k e x i s t i n g 0023140 s o c k e t s f o r d u p l 0023160 i c a t e e n t r y \r f 0023200 o r i = 0 t o m a x S 0023220 e r v e r s - 1 d o \r 0023240 i f u s e d i d n o s ! i 0023260 t h e n / / f o r e a 0023300 c h e x i s t i n g s o c k 0023320 e t \r [ \r 0023340 s o c = b s p S o c 0023360 k e t s ! i \r 0023400 i f s o c n e 0 & \r 0023420 376 001 \0 324 277 0023440 ( ( l v s o c > > R T P 0023460 S o c . f r n P o r t ) ! 0 e 0023500 q ( l v p b i > > P B I . p 0023520 u p . w o r d s ) ! 0 \r 0023540 & ( l v 0023560 s o c > > R T P S o c . f r n 0023600 P o r t ) ! 1 e q ( l v p 0023620 b i > > P B I . p u p . w o r d 0023640 s ) ! 1 \r 0023660 & ( l v s o c > > R 0023700 T P S o c . f r n P o r t ) ! 2 0023720 e q ( l v p b i > > P B I 0023740 . p u p . w o r d s ) ! 2 ) \r 0023760 & ( 0024000 ( l v s o c > > R T P S o c 0024020 . c o n n I D ) ! 0 376 001 \0 357 022 0024040 e q ( l v p b i > > P B I . 0024060 p u p . i d ) ! 0 \r 0024100 & ( l v s 0024120 o c > > R T P S o c . c o n n I 0024140 D ) ! 1 e q ( l v p b i > 0024160 > P B I . p u p . i d ) ! 1 ) 0024200 \r t h e n 0024220 / / a t l a s t , a d u 0024240 p l i c a t e \r 0024260 [ S e n d R F C ( p b i 0024300 , s o c ) ; l o o p ] 0024320 / / s e n d i t b a c k \r 0024340 ] \r \r / / f i n d 0024360 a n o p e n i d n u m b e 0024400 r \r l e t i d n o = 0024420 - 1 / / i d n u m b e r 0024440 376 001 \0 233 \f t e m p \r i 0024460 = 0 \r w h i l e i l 0024500 s m a x S e r v e r s d o \r 0024520 [ t e s t u s e d 0024540 i d n o s ! i \r i 0024560 f n o t [ i d n o = i ; 0024600 i = m a x S e r v e r s + 0024620 1 ] \r i f s o i 0024640 = i + 1 \r ] \r / 0024660 / i d n o i s - 1 i f d 0024700 i d n o t f i n d o n e \r 0024720 i f i d n o l s 0 0024740 t h e n \r [ p b i 0024760 > > P B I . p u p . w o r d s ^ 0025000 1 = 0 / / d i d n o 0025020 t f i n d o n e , s e n d 0025040 \r 376 001 \0 244 n A p p e 0025060 n d S t r i n g T o P u p ( p b 0025100 i , 3 , " T a p e S e r v e r 0025120 f u l l , t r y l a t e r " 0025140 ) / / a b o r t \r 0025160 E x c h a n g e P o r t s ( 0025200 p b i ) / / m e s s 0025220 a g e \r C o m p l e 0025240 t e P u p ( p b i , t y p e A b 0025260 o r t ) \r l o o p \r 0025300 ] \r \r / / f o u n d o p 0025320 e n i d n u m b e r , o p e 0025340 n a B S P c o n n e c t i 0025360 o n f o r i t \r l e t 0025400 b s p S o c = b s p S o c 0025420 k e t s ! i d n o / 0025440 / u s e a p p r o 376 001 \0 302 ' p 0025460 r i a t e s o c k e t \r 0025500 O p e n L e v e l 1 S o c k e t 0025520 ( b s p S o c , 0 , l v p 0025540 b i > > P B I . p u p . w o r d 0025560 s ) / / a n d o p e n 0025600 l e v e l 1 w i t h p b i 0025620 t h a t c a m e i n \r 0025640 O p e n R T P S o c k e t ( b 0025660 s p S o c , c t x Q , m o d 0025700 e I m m e d i a t e O p e n , 0025720 l v p b i > > P B I . p u p . 0025740 i d ) \r S e n d R F C ( p 0025760 b i , b s p S o c ) 0026000 / / r e p l y t o i t s r 0026020 f c w i t h o n e o f o 0026040 u r o w n \r I n i t i 376 0026060 001 \0 300 352 a l i z e S e r v e r ( 0026100 i d n o ) / / s e t 0026120 u p S e r v i c e b l o c 0026140 k a n d e n q u e u e S e 0026160 r v e r \r 0026200 / / f o r t h i 0026220 s c o n n e c t i o n \r ] r 0026240 e p e a t \r \r / / - - - - - - - 0026260 - - - - - - - - - - - - - - - - * 0026340 - - - - - - - - \r a n d I n i 0026360 t i a l i z e S e r v e r ( i d 0026400 n o ) b e \r / / - - - - - - - 0026420 - - - - - - - - - - - - - - - - * 0026460 - - - - 376 001 \0 H 253 - - - - - - - 0026500 - - - - - - - - - - - - - \r [ \r 0026520 l e t b s p S o c = 0026540 b s p S o c k e t s ! i d n o 0026560 / / s o c k e t a l r e a 0026600 d y s e t u p \r l e t 0026620 b s p S t r = C r e a t e 0026640 B S P S t r e a m ( b s p S o c 0026660 ) \r W s ( " C o n n n e c 0026700 t i o n o p e n " ) ; W o 0026720 ( i d n o ) \r / / M a d e c 0026740 o n n e c t i o n , s e t u 0026760 p S e r v i c e b l o c k 0027000 a n d e n q u e u e i n s t 0027020 a n c e o f S e r v e r \r 0027040 u s e d i d n o s ! i d n o 0027060 = t r u e 376 001 \0 255 367 0027100 / / m a r k t h i s i 0027120 d n o a s b e i n g u s e 0027140 d \r l e t s e r = s 0027160 e r v i c e B l o c k s ! i d n 0027200 o \r s e r > > S e r v i c 0027220 e . i d n u m b e r = i d n 0027240 o / / a n d s e t 0027260 i t u p \r s e r > > S 0027300 e r v i c e . b s p S o c = 0027320 b s p S o c \r s e r > > S 0027340 e r v i c e . b s p S t r = 0027360 b s p S t r \r s e r > > S 0027400 e r v i c e . t a p e = f a 0027420 l s e \r s e r > > S e r v 0027440 i c e . b l k = f a l s e \r 0027460 s e r > > S e r v i c 376 001 0027500 \0 S 036 e . d r i v e = - 1 \r 0027520 s e r > > S e r v i c e . 0027540 r e t r i e s = 4 / / 0027560 d e f a u l t t o 4 r e t 0027600 r i e s \r s e r > > S e r 0027620 v i c e . s p e e d = I P S 0027640 1 2 5 / / d e f a u l t 0027660 t o 1 2 5 i p s \r l e 0027700 t i = s e r v e r C o n t 0027720 e x t s ! i d n o / 0027740 / p o i n t t o t h i s c 0027760 o n t e x t \r I n i t i a 0030000 l i z e C o n t e x t ( i , 2 0 0030020 0 , S e r v e r , 1 ) 0030040 / / i n i t c o n t e x t 0030060 w i t h o n e p a r a m e t 0030100 e r \r 376 001 \0 216 343 i ! 3 = 0030120 s e r / / m a k e 0030140 p a r a m e t e r p o i n t 0030160 t o t h i s S e r v i c e 0030200 b l o c k \r E n q u e u 0030220 e ( c t x Q , i ) / / s t 0030240 a r t u p S e r v e r i n s 0030260 t a n c e \r ] \r \r / / - - - - 0030300 - - - - - - - - - - - - - - - - * 0030360 - - - - - - - - - - - \r a n d 0030400 S e n d R F C ( p b i , s o c 0030420 ) b e \r / / - - - - - - - - - 0030440 - - - - - - - - - - - - - - - - * 0030500 - - - - - - - - 376 001 \0 257 321 - - - 0030520 - - - - - - - - - - - \r [ \r 0030540 M o v e B l o c k ( l v p b 0030560 i > > P B I . p u p . w o r d s 0030600 , l v s o c > > P u p S o c 0030620 . l c l P o r t , l e n P o r 0030640 t ) \r E x c h a n g e P o 0030660 r t s ( p b i ) \r C o m p 0030700 l e t e P u p ( p b i , t y p 0030720 e R F C , p u p O v B y t e s 0030740 + 6 ) \r ] \r \r / / - - - - - - - 0030760 - - - - - - - - - - - - - - - - * 0031040 - - - - - - - - \r a n d D i s 0031060 C o n n e c t o r ( ) b e \r 0031100 / / - - - - - - - - - - - 376 001 \0 0031120 302 036 - - - - - - - - - - - - - - 0031140 - - - - - - - - - - - - - - - - * 0031200 - - - - - - \r [ / / C h e 0031220 c k f o r c l o s e d s o 0031240 c k e t s , a n d p o o l 0031260 t h e i r c o r r e s p o n d 0031300 i n g s t u f f \r l e t 0031320 i = 0 ; l e t v = 0031340 0 \r f o r i = 0 t 0031360 o m a x S e r v e r s - 1 0031400 d o / / m o n i t o r 0031420 f o r d i s c o n n e c t i 0031440 o n \r [ B l o c k ( 0031460 ) \r i f ( u s e d 0031500 i d n o s ! i ) & ( ( b s p 0031520 S o 376 001 \0 K 0 c k e t s ! i ) > 0031540 > B S P S o c . s t a t e n e 0031560 s t a t e O p e n ) t h e n 0031600 \r [ / / 0031620 m u s t c l o s e t h i s 0031640 u s e d a n d o p e n s o 0031660 c k e t \r 0031700 W s ( " C o n n e c t i o n 0031720 C l o s e d = " ) ; W o ( i 0031740 ) \r v 0031760 = s e r v i c e B l o c k s ! 0032000 i \r i f 0032020 v > > S e r v i c e . t a p e 0032040 t h e n C l o s e T a p e ( 0032060 v > > S e r v i c e . t a p e ) 0032100 \r i f 0032120 ( v > > S e r 376 001 \0 272 232 v i c e 0032140 . d r i v e g e 0 ) t h e 0032160 n u s e d d r i v e s ! ( v > 0032200 > S e r v i c e . d r i v e ) 0032220 = f a l s e \r 0032240 U n q u e u e ( c t x Q 0032260 , s e r v e r C o n t e x t s ! 0032300 i ) \r i 0032320 f r w K e y e q i t h e 0032340 n r w K e y = - 1 \r 0032360 i f k b d K 0032400 e y e q i t h e n k b d 0032420 K e y = - 1 \r 0032440 C l o s e s ( v > > S 0032460 e r v i c e . b s p S t r ) 0032500 / / c l o s e t h i s B S 0032520 P s t u f f \r 376 001 \0 s 0032540 " u s e d i d n 0032560 o s ! i = f a l s e \r 0032600 ] \r ] \r ] r 0032620 e p e a t \r \r / / - - - - - - - 0032640 - - - - - - - - - - - - - - - - * 0032720 - - - - - - - - \r a n d S e r 0032740 v e r ( C t x ) b e \r / / - - 0032760 - - - - - - - - - - - - - - - - * 0033040 - - - - - - - - - - - - - \r [ \r 0033060 l e t s e r = C t x 0033100 ! 3 / / g e t S e 0033120 r v i c e b l o c k f r o m 0033140 376 001 \0 313 263 c o n t e x t \r 0033160 s e r > > S e r v i c e . b l 0033200 k = G e t C o m m a n d ( s 0033220 e r ) \r l e t b l k = 0033240 s e r > > S e r v i c e . b l 0033260 k \r / / g e t v e r s i o n 0033300 m e s s a g e f i r s t \r 0033320 w h i l e ( b l k > > G M 0033340 e s s a g e . t y p e n e c 0033360 m d V e r s i o n ) d o \r 0033400 [ \r R e p l y N o 0033420 ( s e r , n o V e r s i o n ) \r 0033440 i f r w K e y e 0033460 q s e r > > S e r v i c e . i 0033500 d n u m b e r t h e n r w K 0033520 e y = - 1 \r i f 0033540 k b d K e 376 001 \0 235 E y e q 0033560 s e r > > S e r v i c e . i d n 0033600 u m b e r t h e n k b d K e 0033620 y = - 1 \r b l k 0033640 = G e t C o m m a n d ( s e 0033660 r ) ; s e r > > S e r v i c e 0033700 . b l k = b l k \r ] \r 0033720 R e p l y V e r s i o n ( 0033740 s e r ) / / s e n d v e 0033760 r s i o n r e p l y \r / / r 0034000 e p e a t t h i s l o o p 0034020 f o r e a c h c o m m a n d 0034040 , u n t i l c o n n e c t i 0034060 o n i s \r / / t e r m i n a 0034100 t e d b y h i g h e r a u 0034120 t h o r i t y \r l e t c 0034140 m d = 0 376 001 \0 277 : 0034160 / / c o m m a n d t e m p \r 0034200 w h i l e t r u e d o 0034220 \r [ B l o c k ( ) 0034240 / / L e t s o m e 0034260 o n e e l s e h a v e a 0034300 g o \r b l k = G 0034320 e t C o m m a n d ( s e r ) ; 0034340 s e r > > S e r v i c e . b l k 0034360 = b l k \r c m d 0034400 = b l k > > G M e s s a g e 0034420 . t y p e \r s w i t 0034440 c h o n c m d i n t o \r 0034460 [ \r c a s e 0034500 c m d O p e n D r i v e : 0034520 D o O p e n D r i v e ( 0034540 s e r ) ; e n d c a s e \r 0034560 376 001 \0 " 350 c a s e c m 0034600 d C l o s e D r i v e : 0034620 D o C l o s e D r i v e ( s 0034640 e r ) ; e n d c a s e \r 0034660 c a s e c m d R e a d R 0034700 e c o r d : D o R e 0034720 a d R e c o r d ( s e r ) ; e 0034740 n d c a s e \r c a s 0034760 e c m d W r i t e R e c o r d 0035000 : D o W r i t e R e 0035020 c o r d ( s e r ) ; e n d c a 0035040 s e \r c a s e c m 0035060 d F w d S p a c e R e c o r d : 0035100 D o F w d S p a c e R e c 0035120 o r d ( s e r ) ; e n d c a s 0035140 e \r c a s e c m d 0035160 B a c k S 376 001 \0 > | p a c e R e 0035200 c o r d : D o B a c k S p 0035220 a c e R e c o r d ( s e r ) ; 0035240 e n d c a s e \r c a 0035260 s e c m d F w d S p a c e F i 0035300 l e : D o F w d S p a c e 0035320 F i l e ( s e r ) ; e n d c a 0035340 s e \r c a s e c m 0035360 d B a c k S p a c e F i l e : 0035400 D o B a c k S p a c e F i l 0035420 e ( s e r ) ; e n d c a s e \r 0035440 c a s e c m d W r 0035460 i t e E O F : D o W 0035500 r i t e E O F ( s e r ) ; e n 0035520 d c a s e \r c a s e 0035540 c m d W r i t e B l a n k T a 0035560 p e : D o W r 376 001 \0 275 331 i 0035600 t e B l a n k T a p e ( s e r ) 0035620 ; e n d c a s e \r 0035640 c a s e c m d R e w i n d : 0035660 D o R e w i n d ( s e 0035700 r ) ; e n d c a s e \r 0035720 c a s e c m d U n l o a d 0035740 : D o U n l o a d ( 0035760 s e r ) ; e n d c a s e \r 0036000 c a s e c m d G e t S 0036020 t a t u s : D o G e 0036040 t S t a t u s ( s e r ) ; e n 0036060 d c a s e \r c a s e 0036100 c m d S e t S t a t u s : 0036120 D o S e t S t a t u s ( 0036140 s e r ) ; e n d c a s e \r 0036160 c a s e c m d S e n 376 0036200 001 \0 342 m d T e x t : 0036220 D o S e n d T e x t ( s e r ) ; 0036240 e n d c a s e \r c 0036260 a s e c m d G e t T e x t : 0036300 D o G e t T e x t ( s 0036320 e r ) ; e n d c a s e \r 0036340 d e f a u l t : 0036360 R e p l y N o ( s e r , 0036400 n o G o o d M e s s a g e ) ; 0036420 e n d c a s e \r ] \r 0036440 i f r w K e y e 0036460 q s e r > > S e r v i c e . i 0036500 d n u m b e r t h e n r w K 0036520 e y = - 1 / / r e t u 0036540 r n k e y \r i f 0036560 k b d K e y e q s e r > > S 0036600 e r v i 376 001 \0 \b 333 c e . i d n u 0036620 m b e r t h e n k b d K e y 0036640 = - 1 / / r e t u r n 0036660 k e y \r ] \r ] \r \r / / - 0036700 - - - - - - - - - - - - - - - - * 0036760 - - - - - - - - - - - - - - \r a 0037000 n d G e t C o m m a n d ( s e 0037020 r ) = v a l o f \r / / - - - 0037040 - - - - - - - - - - - - - - - - * 0037120 - - - - - - - - - - - - \r [ \r 0037140 l e t l b y t = G e t 0037160 N o n M a r k ( s e r ) ; l e 0037200 t r b y t = 376 001 \0 214 270 G e 0037220 t N o n M a r k ( s e r ) \r 0037240 l e t l e n = r b y t 0037260 + ( l b y t l s h i f t 8 0037300 ) \r i f l b y t e q 0037320 - 1 % r b y t e q - 1 0037340 t h e n l e n = 2 / 0037360 / b a d l e n g t h = 2 \r 0037400 l b y t = G e t N o n 0037420 M a r k ( s e r ) ; r b y t 0037440 = G e t N o n M a r k ( s e r 0037460 ) \r l e t c m d = r 0037500 b y t + ( l b y t l s h i 0037520 f t 8 ) \r i f l b y t 0037540 e q - 1 % r b y t e q 0037560 - 1 t h e n c m d = - 0037600 1 / / b a d l e n g 376 001 0037620 \0 212 220 t h = 2 \r l e t 0037640 b l k = s e r > > S e r v 0037660 i c e . c m d B l o c k \r 0037700 l e t m a x l e n = c m d 0037720 B l o c k L e n g t h \r i 0037740 f c m d e q c m d R e a d 0037760 R e c o r d % c m d e q 0040000 c m d W r i t e R e c o r d t 0040020 h e n \r [ \r b 0040040 l k = r w B l o c k / 0040060 / u s e r w B l o c k f o r 0040100 R e a d / W r i t e s \r 0040120 w h i l e r w K e y g 0040140 e 0 d o B l o c k ( ) 0040160 / / w a i t f o r k e y \r 0040200 r w K e y = s e 0040220 r > > 376 001 \0 3 F S e r v i c e . 0040240 i d n u m b e r / / t a k 0040260 e k e y \r m a x l 0040300 e n = r w B l o c k L e n g 0040320 t h \r ] \r i f l e 0040340 n g r m a x l e n t h e n 0040360 / / g i v e b a d c o 0040400 m m a n d , d o n ' t r e a 0040420 d a n y m o r e \r [ 0040440 c m d = - 1 ; l e n 0040460 = 2 ; R e s e t s ( s e r 0040500 > > S e r v i c e . b s p S t r 0040520 ) ] \r b l k > > G 0040540 M e s s a g e . l e n g t h = 0040560 l e n \r b l k > > G M e 0040600 s s a g e . t y p e = c m d 0040620 \r / / g e t t 376 001 \0 & 005 h e 0040640 b l o c k o f d a t a , m 0040660 a r k b y t e s o r o t h 0040700 e r w i s e j u s t e n d s 0040720 b l o c k , \r / / n o c 0040740 h a n g e t o l e n g t h 0040760 i s m a d e h e r e \r 0041000 B S P R e a d B l o c k ( s e r 0041020 > > S e r v i c e . b s p S t r 0041040 , l v b l k > > G M e s s a g 0041060 e . d a t a , 0 , l e n + l e n 0041100 - 4 ) \r r e s u l t i s 0041120 b l k / / r e t u r n b 0041140 l o c k p o i n t e r \r ] \r \r 0041160 / / - - - - - - - - - - - - - - 0041200 - - - - - - - - - - - - - - - - 0041220 - - - - - - - - - - - - - 376 001 \0 0041240 303 S - - - - - - - - - - - - - - 0041260 - - - - - - \r a n d G e t N o 0041300 n M a r k ( s e r ) = v a l 0041320 o f \r / / - - - - - - - - - - - 0041340 - - - - - - - - - - - - - - - - * 0041420 - - - - \r [ / / g e t n 0041440 e x t b y t e , - 1 i f 0041460 m a r k b y t e \r l e t 0041500 v = - 1 ; l e t d o n 0041520 e = f a l s e \r u n t 0041540 i l d o n e d o \r [ 0041560 B l o c k ( ) \r 0041600 v = G e t s ( s e r > > S e 0041620 r v i c e . b s p S t r ) \r 0041640 376 001 \0 247 032 i f v e 0041660 q - 1 & ( ( s e r > > S e 0041700 r v i c e . b s p S o c ) > > B 0041720 S P S o c . m a r k P e n d i n 0041740 g ) t h e n \r [ 0041760 B S P G e t M a r k ( s e r 0042000 > > S e r v i c e . b s p S o c 0042020 ) / / d e q u e u e t h 0042040 i s m a r k b y t e \r 0042060 d o n e = t r u 0042100 e \r ] \r 0042120 i f v g e 0 t h e n 0042140 d o n e = t r u e / / 0042160 g o t b y t e \r ] \r 0042200 r e s u l t i s v \r ] \r \r / 0042220 / - - - - - - - - - - - - - - - 0042240 - - - - - - - 376 001 \0 H 207 - - - - 0042260 - - - - - - - - - - - - - - - - * 0042320 - - - - - \r a n d R e p l y V 0042340 e r s i o n ( s e r ) b e \r / 0042360 / - - - - - - - - - - - - - - - 0042400 - - - - - - - - - - - - - - - - * 0042460 \r [ \r l e t b l k = 0042500 s e r > > S e r v i c e . b l k 0042520 / / g e t c o m m a n d 0042540 b l o c k \r b l k > > V 0042560 e r s i o n . t y p e = c m 0042600 d V e r s i o n \r b l k > 0042620 > V e r s i o n . v e r s n o 0042640 = c u r r e n t V e r 376 001 \0 217 0042660 037 s i o n \r l e t s t r 0042700 = c u r r e n t V e r s i o 0042720 n S t r i n g / / m e s s 0042740 a g e f o r v e r s i o n \r 0042760 l e t i = 0 \r 0043000 b l k > > V e r s i o n . l e n 0043020 g t h = 3 + ( ( s t r > 0043040 > S t r i n g . l e n g t h + 0043060 2 ) / 2 ) \r f o r 0043100 i = 0 t o b l k > > V e 0043120 r s i o n . l e n g t h - 4 0043140 d o \r [ ( l v b 0043160 l k > > V e r s i o n . v e r s 0043200 t e x t ) ! i = s t r ! i 0043220 / / c o p y s t r i n g \r 0043240 ] \r / / a n d s e 0043260 n 376 001 \0 316 234 d b l o c k o u 0043300 t \r B S P W r i t e B l o 0043320 c k ( s e r > > S e r v i c e . 0043340 b s p S t r , b l k , 0 , 2 * b 0043360 l k > > V e r s i o n . l e n g 0043400 t h ) \r B S P F o r c e O 0043420 u t p u t ( s e r > > S e r v i 0043440 c e . b s p S o c ) \r ] \r \r / / 0043460 - - - - - - - - - - - - - - - - * 0043540 - - - - - - - - - - - - - - - \r 0043560 a n d T a p e T r i d e n t B 0043600 o o t ( ) b e \r / / - - - - - 0043620 - - - - - - - - - - - - - - - - * 0043660 - - - - - - 376 001 \0 260 226 - - - - - 0043700 - - - - - - - - - - - - - - - \r 0043720 [ \r S e t B L V ( # 1 7 7 0043740 7 7 6 ) / / a l l 0043760 b u t t a s k 0 b a c k 0044000 i n t o R O M \r S t a 0044020 r t I O ( # 1 0 0 0 0 0 ) 0044040 / / b o o t ! \r @ 0044060 l v U s e r F i n i s h P r o c 0044100 = T a p e T r i d e n t U F P \r 0044120 ] \r \r / / - - - - - - - - - - - 0044140 - - - - - - - - - - - - - - - - * 0044220 - - - - \r a n d T a p e W a i 0044240 t Q u i e t ( ) = B l o c k 0044260 ( ) \r / / - - - - - - 376 \0 J ^ r 0044300 - - - - - - - - - - - - - - - - * 0044360 - - - - - - - - - \r 032 ( 6 3 5 ) 0044400 \r \r 032 ( 1 7 9 2 ) \r 377 \0 \0 T S P 0044420 D O s . b c p l \0 376 001 \0 260 " / / 0044440 t s p d o s . b c p l T a 0044460 p e S e r v e r D o * c o 0044500 m m a n d p r o c e d u r e s 0044520 \r / / g . k r a s n e r 0044540 N o v e m b e r 1 9 , 1 0044560 9 7 9 \r / / L a s t m o 0044600 d i f i e d b y T i m D i 0044620 e b e r t , O c t o b e r 1 0044640 0 , 1 9 8 0 1 1 : 0 0 A 0044660 M \r / / \r g e t " T a p e 0044700 s . d " \r g e t " P U P . 0044720 d e c l " \r g e t " T S P 0044740 . d e c l " \r \r / / - - - - - - 0044760 - - - - - - - - - - - - - - - - * 0045020 - - - - - - - - - - - - - - 376 001 0045040 \0 030 006 - - - - - - - - - - - \r e 0045060 x t e r n a l \r / / - - - - - - 0045100 - - - - - - - - - - - - - - - - * 0045160 - - - - - - - - - \r [ \r / / I m 0045200 p o r t s \r / / F r o m 0045220 T a p e s \r O p e 0045240 n T a p e ; C l o s e T a p e 0045260 ; T a p e R e w i n d ; T a 0045300 p e U n l o a d ; T a p e E O 0045320 F \r T a p e S t a t u s 0045340 ; A c t O n T a p e ; P e r 0045360 f o r m V T C B \r F i l 0045400 e S k i p F w d ; F i l e S k 0045420 i p R e v ; R e c S k i p F w 0045440 d ; 376 001 \0 313 216 R e c S k i p R 0045460 e v ; E r a s e I n c h e s \r 0045500 / / F r o m ' S y s t e 0045520 m ' \r W s ; W o ; E 0045540 n d o f s ; k e y s ; B l o 0045560 c k ; G e t s ; C a l l S w 0045600 a t \r / / F r o m B S P 0045620 \r B S P W r i t e B l o 0045640 c k ; B S P F o r c e O u t p 0045660 u t \r / / I m p o r t e d G l 0045700 o b a l s \r r w B l o c k 0045720 ; r w K e y ; k b d K e y ; 0045740 u s e d i d n o s ; u s e d 0045760 d r i v e s ; c t x Q \r 0046000 c u r r e n t V e r s i o n S t 0046020 r i n g \r / / E x p o r t s ( 0046040 t o T S P S e 376 001 \0 265 030 r v e 0046060 r ) \r R e p l y N o ; R 0046100 e p l y Y e s \r D o O p e 0046120 n D r i v e ; D o C l o s e D 0046140 r i v e ; D o R e a d R e c o 0046160 r d ; D o W r i t e R e c o r 0046200 d \r D o F w d S p a c e R 0046220 e c o r d ; D o B a c k S p a 0046240 c e R e c o r d ; D o F w d S 0046260 p a c e F i l e \r D o B a 0046300 c k S p a c e F i l e ; D o W 0046320 r i t e E O F ; D o W r i t e 0046340 B l a n k T a p e \r D o R 0046360 e w i n d ; D o U n l o a d ; 0046400 D o G e t S t a t u s ; D o 0046420 S e t S t a t u s \r D o S 0046440 e n d T e x t ; D o G e 376 001 \0 0046460 W 247 t T e x t \r ] \r \r / / 0046500 C o m m a n d P r o c e s s o 0046520 r s : D o * ( ) \r / / T h e s 0046540 e r o u t i n e s h a n d l 0046560 e t h e p r o c e s s i n g 0046600 f o r a r e c e i v e d 0046620 c o m m a n d . M o s t \r / 0046640 / v e r i f y t h a t t h e 0046660 r e i s a d r i v e o p 0046700 e n ( S e r v i c e . d r i v 0046720 e s = - 1 ) . \r / / E r r o 0046740 r r e c o v e r y a n d R 0046760 e p l y i n g a r e a l l 0047000 d o n e a t t h i s l e v 0047020 e l . \r \r / / - - - - - - - - - 0047040 - - - - - - - - - - - - - - - - 0047060 - - 376 001 \0 326 X - - - - - - - - - 0047100 - - - - - - - - - - - - - - - - 0047120 - - - - - - - - - - - \r l e t 0047140 D o O p e n D r i v e ( s e r ) 0047160 b e \r / / - - - - - - - - - - 0047200 - - - - - - - - - - - - - - - - * 0047260 - - - - - \r [ \r l e t b 0047300 l k = s e r > > S e r v i c 0047320 e . b l k \r / / p r o c e s s 0047340 t h e O p e n D r i v e c 0047360 o m m a n d , o p e n i n g 0047400 t h e g i v e n d r i v e 0047420 i f a l l o w e d . \r t 0047440 e s t s e r > > S e r v i c e 0047460 . d r i v e 376 001 \0 322 326 g e 0 0047500 \r i f s o / / t h i 0047520 s S e r v e r h a s a d 0047540 r i v e o p e n a l r e a d 0047560 y \r R e p l y N o ( 0047600 s e r , o p e n A l r e a d y ) 0047620 \r i f n o t \r [ \r 0047640 l e t d r = b l 0047660 k > > O p e n D r i v e . d r i 0047700 v e N u m b e r \r t 0047720 e s t d r l s m a x D r i 0047740 v e s \r i f n o t 0047760 R e p l y N o ( s e r , b a 0050000 d D r i v e N o ) \r 0050020 i f s o t e s t u s e 0050040 d d r i v e s ! d r \r 0050060 i f s o R 376 001 \0 326 0050100 272 e p l y N o ( s e r , d r i v 0050120 e I n U s e ) \r 0050140 i f n o t \r 0050160 [ \r l e 0050200 t t a p e = O p e n T a p 0050220 e ( d r , s e r > > S e r v i c 0050240 e . s p e e d , D o E r r o r P 0050260 r o c ) \r 0050300 t e s t t a p e \r 0050320 i f n o t R 0050340 e p l y N o ( s e r , b a d D r 0050360 i v e ) \r 0050400 i f s o \r 0050420 [ / / A l l w e n t 0050440 w e l l ! ! \r 0050460 s e r > > S e r v 0050500 i 376 001 \0 I 220 c e . t a p e = 0050520 t a p e \r 0050540 s e r > > S e r v i c e 0050560 . d r i v e = d r \r 0050600 u s e d d 0050620 r i v e s ! d r = t r u e \r 0050640 R 0050660 e p l y Y e s ( s e r , c m d O 0050700 p e n D r i v e ) \r 0050720 ] \r 0050740 ] \r ] \r ] \r \r / / - - - 0050760 - - - - - - - - - - - - - - - - * 0051040 - - - - - - - - - - - - \r a n d 0051060 D o C l o s e D r i v e ( s e 0051100 r ) b e \r 376 001 \0 227 321 / / - - - 0051120 - - - - - - - - - - - - - - - - * 0051200 - - - - - - - - - - - - \r [ 0051220 i f V e r i f y O p e n ( s 0051240 e r ) t h e n / / d r i 0051260 v e i s o p e n , c l o s 0051300 e i t \r [ l e t 0051320 d r = s e r > > S e r v i c 0051340 e . d r i v e \r u s 0051360 e d d r i v e s ! d r = f a 0051400 l s e \r C l o s e T 0051420 a p e ( s e r > > S e r v i c e 0051440 . t a p e ) \r s e r 0051460 > > S e r v i c e . t a p e = 0051500 f a l s e \r 376 001 \0 & # 0051520 s e r > > S e r v i c e . d 0051540 r i v e = - 1 \r 0051560 R e p l y Y e s ( s e r , c m d 0051600 C l o s e D r i v e ) \r ] 0051620 \r ] \r \r / / - - - - - - - - - - 0051640 - - - - - - - - - - - - - - - - * 0051720 - - - - - \r a n d D o R e a d 0051740 R e c o r d ( s e r ) b e \r / 0051760 / - - - - - - - - - - - - - - - 0052000 - - - - - - - - - - - - - - - - * 0052060 \r [ / / R e a d a r e 0052100 c o r d f r o m t a p e \r 0052120 376 001 \0 t " i f V e r i f y 0052140 O p e n ( s e r ) t h e n \r 0052160 [ / / D o r e a d , 0052200 a n d r e t u r n s t a t 0052220 u s a s w e l l \r 0052240 l e t b l k = s e r > > 0052260 S e r v i c e . b l k / / 0052300 g e t c o m m a n d b l o c 0052320 k \r l e t c o u n 0052340 t = A c t O n T a p e ( s e 0052360 r > > S e r v i c e . t a p e , 0052400 R e a d T a p e , l v b l k > 0052420 > H e r e I s R e c o r d . r e 0052440 c o r d , r w B l o c k L e n g 0052460 t h , 0 , 0 , s e r > > S e r v 0052500 i c e . r e t r i e s ) \r 0052520 i f 376 001 \0 m , c o u n t 0052540 l e 0 t h e n c o u n t 0052560 = 0 \r i f c o 0052600 u n t g r r w B l o c k L e 0052620 n g t h - 2 4 \r 0052640 t h e n c o u n t = r 0052660 w B l o c k L e n g t h - 2 4 0052700 / / t r u n c a t e t o 0052720 f i t \r b l k > > H 0052740 e r e I s R e c o r d . r e c o 0052760 r d L e n g t h = c o u n t 0053000 \r b l k > > H e r e 0053020 I s R e c o r d . e n d i n g S 0053040 t a t u s = ( s e r > > S e 0053060 r v i c e . t a p e ) > > T C B 0053100 . F l a g s \r b l k 0053120 > > H e r e I s R e 376 001 \0 251 330 c 0053140 o r d . t y p e = c m d H e 0053160 r e I s R e c o r d \r 0053200 b l k > > H e r e I s R e c o 0053220 r d . l e n g t h = 4 + ( c 0053240 o u n t + 1 ) / 2 \r 0053260 c o u n t = 2 * b l k > 0053300 > H e r e I s R e c o r d . l e 0053320 n g t h \r B S P W r 0053340 i t e B l o c k ( s e r > > S e 0053360 r v i c e . b s p S t r , b l k 0053400 , 0 , c o u n t ) \r 0053420 B S P F o r c e O u t p u t ( s 0053440 e r > > S e r v i c e . b s p S 0053460 o c ) \r ] \r ] \r \r / / - - 0053500 - - - - - - - - - - - - - - - - 0053520 - - - - - - - - - - - - - - - 376 0053540 001 \0 321 2 - - - - - - - - - - - - 0053560 - - - - - - - - - - - - - - - - 0053600 - - \r a n d D o W r i t e R e 0053620 c o r d ( s e r ) b e \r / / - 0053640 - - - - - - - - - - - - - - - - * 0053720 - - - - - - - - - - - - - - \r [ 0053740 / / W r i t e a r e c 0053760 o r d t o t a p e \r i 0054000 f V e r i f y O p e n ( s e r 0054020 ) t h e n \r i f O k T 0054040 o W r i t e ( s e r ) t h e n 0054060 \r [ l e t b l k 0054100 = s e r > > S e r v i c e . b 0054120 l k \r i f b l k > 0054140 > W r i 376 001 \0 321 254 t e R e c o r 0054160 d . r e c o r d L e n g t h g 0054200 r r w B l o c k L e n g t h - 0054220 2 4 \r t h e n 0054240 b l k > > W r i t e R e c o r d 0054260 . r e c o r d L e n g t h = 0054300 r w B l o c k L e n g t h - 2 4 0054320 \r A c t O n T a p e 0054340 ( s e r > > S e r v i c e . t a 0054360 p e , W r i t e T a p e , 0 , 0 0054400 , l v b l k > > W r i t e R e 0054420 c o r d . r e c o r d , b l k > 0054440 > W r i t e R e c o r d . r e c 0054460 o r d L e n g t h , s e r > > S 0054500 e r v i c e . r e t r i e s ) \r 0054520 R e p l y S t a t u 0054540 s ( s e r , c m d 376 001 \0 003 y W r 0054560 i t e R e c o r d ) \r ] \r 0054600 ] \r \r / / - - - - - - - - - - - 0054620 - - - - - - - - - - - - - - - - * 0054700 - - - - \r a n d D o F w d S p 0054720 a c e R e c o r d ( s e r ) b 0054740 e \r / / - - - - - - - - - - - - 0054760 - - - - - - - - - - - - - - - - * 0055040 - - - \r [ i f V e r i f 0055060 y O p e n ( s e r ) t h e n \r 0055100 [ R e c S k i p F w 0055120 d ( s e r > > S e r v i c e . t 0055140 a p e ) / / S p a c e 376 001 0055160 \0 017 / F o r w a r d \r 0055200 R e p l y S t a t u s ( s e 0055220 r , c m d F w d S p a c e R e c 0055240 o r d ) / / r e p l y w 0055260 i t h e n d i n g s t a t u 0055300 s \r ] \r ] \r \r / / - - - - 0055320 - - - - - - - - - - - - - - - - * 0055400 - - - - - - - - - - - \r a n d 0055420 D o B a c k S p a c e R e c o r 0055440 d ( s e r ) b e \r / / - - - - 0055460 - - - - - - - - - - - - - - - - * 0055540 - - - - - - - - - - - \r [ 0055560 i f 376 001 \0 { 1 V e r i f y O p 0055600 e n ( s e r ) t h e n \r 0055620 [ R e c S k i p R e v ( s 0055640 e r > > S e r v i c e . t a p e 0055660 ) / / S p a c e B a c k 0055700 \r R e p l y S t a t 0055720 u s ( s e r , c m d B a c k S p 0055740 a c e R e c o r d ) / / r 0055760 e p l y w i t h e n d i n g 0056000 s t a t u s \r ] \r ] \r \r 0056020 / / - - - - - - - - - - - - - - 0056040 - - - - - - - - - - - - - - - - * 0056120 - \r a n d D o F w d S p a c e 0056140 F i l e ( s e r ) b e \r / / - 0056160 - - - - - - - - 376 001 \0 320 332 - - - 0056200 - - - - - - - - - - - - - - - - * 0056260 - - - \r [ i f V e r i f 0056300 y O p e n ( s e r ) t h e n \r 0056320 [ F i l e S k i p F 0056340 w d ( s e r > > S e r v i c e . 0056360 t a p e ) / / S k i p F 0056400 i l e F o r w a r d \r 0056420 R e p l y S t a t u s ( s e 0056440 r , c m d F w d S p a c e F i l 0056460 e ) / / r e p l y w i t 0056500 h e n d i n g s t a t u s \r 0056520 ] \r ] \r \r / / - - - - - - 0056540 - - - - - - - - - - - - - - - - 0056560 - - - - - - - - - - - - - 376 001 \0 0056600 * P - - - - - - - - - - - - - - 0056620 - - - - - - - - - - - - - - \r a 0056640 n d D o B a c k S p a c e F i 0056660 l e ( s e r ) b e \r / / - - - 0056700 - - - - - - - - - - - - - - - - * 0056760 - - - - - - - - - - - - \r [ 0057000 i f V e r i f y O p e n ( s 0057020 e r ) t h e n \r [ 0057040 F i l e S k i p R e v ( s e r > 0057060 > S e r v i c e . t a p e ) 0057100 / / S k i p F i l e B a c 0057120 k w a r d \r R e p l 0057140 y S t a t u s ( s e r , c m d B 0057160 a c k S p a c e F i l e ) 0057200 / / 376 001 \0 8 001 r e p l y w i t 0057220 h e n d i n g s t a t u s \r 0057240 ] \r ] \r \r / / - - - - - - 0057260 - - - - - - - - - - - - - - - - * 0057340 - - - - - - - - - \r a n d D o 0057360 W r i t e E O F ( s e r ) b e 0057400 \r / / - - - - - - - - - - - - - 0057420 - - - - - - - - - - - - - - - - * 0057500 - - \r [ i f V e r i f y 0057520 O p e n ( s e r ) t h e n \r 0057540 i f O k T o W r i t e ( s 0057560 e r ) t h e n \r [ 0057600 T a p e E O F 376 001 \0 216 g ( s e r 0057620 > > S e r v i c e . t a p e ) 0057640 / / W r i t e a n E O F 0057660 \r R e p l y S t a t 0057700 u s ( s e r , c m d W r i t e E 0057720 O F ) / / r e p l y w i 0057740 t h e n d i n g s t a t u s 0057760 \r ] \r ] \r \r / / - - - - - 0060000 - - - - - - - - - - - - - - - - * 0060060 - - - - - - - - - - \r a n d D 0060100 o W r i t e B l a n k T a p e ( 0060120 s e r ) b e \r / / - - - - - - 0060140 - - - - - - - - - - - - - - - - * 0060200 - - - - - - - - - - - - 376 001 \0 204 0060220 V - - - - - - - - - - - - - \r [ 0060240 i f V e r i f y O p e n 0060260 ( s e r ) t h e n \r i f 0060300 O k T o W r i t e ( s e r ) 0060320 t h e n \r [ l e t 0060340 b l k = s e r > > S e r v i 0060360 c e . b l k \r l e t 0060400 i n c h e s = b l k > > W 0060420 r i t e B l a n k T a p e . g a 0060440 p / / g e t g a p s i 0060460 z e \r E r a s e I n 0060500 c h e s ( s e r > > S e r v i c 0060520 e . t a p e , i n c h e s ) 0060540 / / W r i t e i n c h e s 0060560 o f b l a n k t a p e \r 0060600 R e p l y S t a t u s ( 0060620 s 376 001 \0 246 250 e r , c m d W r i t 0060640 e B l a n k T a p e ) / / 0060660 r e p l y w i t h e n d i n 0060700 g s t a t u s \r ] \r ] \r 0060720 \r / / - - - - - - - - - - - - - 0060740 - - - - - - - - - - - - - - - - * 0061020 - - \r a n d D o R e w i n d ( 0061040 s e r ) b e \r / / - - - - - - 0061060 - - - - - - - - - - - - - - - - * 0061140 - - - - - - - - - \r [ i f 0061160 V e r i f y O p e n ( s e r ) 0061200 t h e n \r [ P e r f 0061220 o r m V T C 376 001 \0 v 205 B ( s e r 0061240 > > S e r v i c e . t a p e , 0061260 R e w i n d ) / / i n i t 0061300 i a t e r e w i n d \r 0061320 R e p l y Y e s ( s e r , 0061340 c m d R e w i n d ) / / r 0061360 e p l y b e f o r e r e w i 0061400 n d c o m p l e t e \r ] 0061420 \r ] \r \r / / - - - - - - - - - - 0061440 - - - - - - - - - - - - - - - - * 0061520 - - - - - \r a n d D o U n l o 0061540 a d ( s e r ) b e \r / / - - - 0061560 - - - - - - - - - - - - - - - - * 0061620 - - - - - - - - - - - 376 001 \0 C ^ 0061640 - - - - - - - - - - - - - - - - 0061660 - \r [ i f V e r i f y O 0061700 p e n ( s e r ) t h e n \r 0061720 [ P e r f o r m V T C B ( 0061740 s e r > > S e r v i c e . t a p 0061760 e , U n l o a d ) / / i 0062000 n i t i a t e U n l o a d \r 0062020 R e p l y Y e s ( s 0062040 e r , c m d U n l o a d ) 0062060 / / r e p l y b e f o r e r 0062100 e w i n d c o m p l e t e \r 0062120 ] \r ] \r \r / / - - - - - - - 0062140 - - - - - - - - - - - - - - - - * 0062220 - - - - - - - - \r a n d D o G 0062240 376 001 \0 323 \0 e t S t a t u s ( s e 0062260 r ) b e \r / / - - - - - - - - 0062300 - - - - - - - - - - - - - - - - * 0062360 - - - - - - - \r [ l e t 0062400 b l k = s e r > > S e r v i 0062420 c e . b l k \r l e t t a 0062440 p e = s e r > > S e r v i c 0062460 e . t a p e \r b l k > > H 0062500 e r e I s S t a t u s . l e n g 0062520 t h = 6 \r b l k > > H 0062540 e r e I s S t a t u s . t y p e 0062560 = c m d H e r e I s S t a t 0062600 u s \r b l k > > H e r e I 0062620 s S t a t u s . d r i v e = 0062640 s e r > > 376 001 \0 230 j S e r v i c 0062660 e . d r i v e \r b l k > > 0062700 H e r e I s S t a t u s . r e t 0062720 r i e s = s e r > > S e r v 0062740 i c e . r e t r i e s \r b 0062760 l k > > H e r e I s S t a t u s 0063000 . s p e e d = s e r > > S e 0063020 r v i c e . s p e e d \r i 0063040 f s e r > > S e r v i c e . d 0063060 r i v e g e 0 t h e n 0063100 / / o p e n t a p e \r 0063120 [ b l k > > H e r e I s S 0063140 t a t u s . t s t a t u s = 0063160 T a p e S t a t u s ( t a p e ) 0063200 \r ] \r / / S e n d 0063220 m e s s a g e \r B S P W r 0063240 i t e B l o c k ( s 376 001 \0 322 031 e 0063260 r > > S e r v i c e . b s p S t 0063300 r , b l k , 0 , 1 2 ) \r B 0063320 S P F o r c e O u t p u t ( s e 0063340 r > > S e r v i c e . b s p S o 0063360 c ) \r ] \r \r / / - - - - - - - - 0063400 - - - - - - - - - - - - - - - - * 0063460 - - - - - - - \r a n d D o S e 0063500 t S t a t u s ( s e r ) b e \r 0063520 / / - - - - - - - - - - - - - - 0063540 - - - - - - - - - - - - - - - - * 0063620 - \r [ l e t b l k = 0063640 s e r > > S e r v i c e . b l 376 0063660 001 \0 344 B k \r l e t w h i 0063700 c h = b l k > > S e t S t a 0063720 t u s . s e l e c t o r / 0063740 / g e t s e l e c t o r \r 0063760 l e t s e t = b l k > > 0064000 S e t S t a t u s . n e w s e t 0064020 t i n g \r s w i t c h o n 0064040 w h i c h i n t o \r [ 0064060 \r c a s e s e t R e t r 0064100 i e s : \r [ t e s 0064120 t ( s e t g e 0 & s e 0064140 t l e 8 ) \r 0064160 i f s o [ s e r > > 0064200 S e r v i c e . r e t r i e s 0064220 = s e t \r 0064240 R e p l y Y e s ( s e r , c m 0064260 d S e t 376 001 \0 212 217 S t a t u s ) 0064300 ] \r i f n o t 0064320 R e p l y N o ( s e r , b 0064340 a d R e t r y S e t t i n g ) \r 0064360 e n d c a s e 0064400 \r ] \r c a s e 0064420 s e t S p e e d : \r 0064440 [ t e s t s e r > > S e r 0064460 v i c e . d r i v e l s 0 0064500 / / o n l y s e t s p 0064520 e e d i f n o t o p e n \r 0064540 i f s o \r 0064560 [ s w i t c h o 0064600 n s e t i n t o \r 0064620 [ \r 0064640 c a s e 0 : s 0064660 e r > > S e r v i 376 001 \0 242 021 c e 0064700 . s p e e d = I P S 4 5 ; 0064720 R e p l y Y e s ( s e r , c m d 0064740 S e t S t a t u s ) ; e n d c 0064760 a s e \r 0065000 c a s e 1 : s e r > > S 0065020 e r v i c e . s p e e d = I 0065040 P S 1 2 5 ; R e p l y Y e s ( 0065060 s e r , c m d S e t S t a t u s 0065100 ) ; e n d c a s e \r 0065120 d e f a u l t : 0065140 R e p l y N o ( s e r , b a 0065160 d S p e e d S e t t i n g ) ; 0065200 e n d c a s e \r 0065220 ] \r ] 0065240 \r i f n o t 0065260 R e p l y N o ( s e r , o p 376 001 0065300 \0 g 336 e n A l r e a d y ) \r 0065320 e n d c a s e \r 0065340 ] \r d e f a u l 0065360 t : R e p l y N o ( s e r 0065400 , b a d S t a t u s S e l e c t 0065420 o r ) ; e n d c a s e \r 0065440 ] \r ] \r \r / / - - - - - - - - - 0065460 - - - - - - - - - - - - - - - - * 0065540 - - - - - - \r a n d D o S e n 0065560 d T e x t ( s e r ) b e \r / / 0065600 - - - - - - - - - - - - - - - - * 0065660 - - - - - - - - - - - - - - - \r 0065700 [ 376 001 \0 356 P / / d i s p l 0065720 a y t e x t s t r i n g t 0065740 o o p e r a t o r \r l e 0065760 t b l k = s e r > > S e r 0066000 v i c e . b l k \r W s ( l 0066020 v b l k > > S e n d T e x t . 0066040 t e x t ) \r R e p l y Y e 0066060 s ( s e r , c m d S e n d T e x 0066100 t ) \r ] \r \r / / - - - - - - - - 0066120 - - - - - - - - - - - - - - - - * 0066200 - - - - - - - \r a n d D o G e 0066220 t T e x t ( s e r ) b e \r / / 0066240 - - - - - - - - - - - - - - - - * 0066300 - - - - - - - - 376 001 \0 237 252 - - - 0066320 - - - - - - - - - - - - - - - - 0066340 - - - - \r [ / / G e t a 0066360 l i n e o f T e x t f r 0066400 o m o p e r a t o r ( t e r 0066420 m i n a t e d b y c r ) \r 0066440 w h i l e k b d K e y g 0066460 e 0 d o B l o c k ( ) 0066500 / / w a i t f o r k e y b 0066520 o a r d \r k b d K e y = 0066540 s e r > > S e r v i c e . i d 0066560 n u m b e r / / t a k e 0066600 k e y b o a r d \r W s ( " 0066620 * n R e p l y ? " ) / / 0066640 p r o m p t \r l e t b l 0066660 k = s e r > > S e r v i c e 0066700 . b l k \r b l k > > 376 001 \0 0066720 362 365 H e r e I s T e x t . t y p 0066740 e = c m d H e r e I s T e x 0066760 t \r l e t s t r = l 0067000 v b l k > > H e r e I s T e x 0067020 t . t e x t \r l e t e c 0067040 h o = " x " ; l e t i 0067060 = 1 ; l e t c h r = 0 0067100 \r u n t i l c h r e q 0067120 1 3 d o / / u n t i l 0067140 c r \r [ w h i l e 0067160 E n d o f s ( k e y s ) d o 0067200 B l o c k ( ) / / w a i 0067220 t f o r k e y \r 0067240 c h r = G e t s ( k e y s ) 0067260 \r i f c h r e q 0067300 8 t h e n \r [ 0067320 i f 376 001 \0 ) 006 i g r 1 t 0067340 h e n \r [ 0067360 / / b a c k s p a c e , e c 0067400 h o \ < l a s t c h a r > a 0067420 n d b a c k u p i \r 0067440 i = i - 1 \r 0067460 e c h o > > S t r i 0067500 n g . c h a r ^ 1 = $ \ ; W 0067520 s ( e c h o ) \r 0067540 e c h o > > S t r i n g . c h 0067560 a r ^ 1 = s t r > > S t r i 0067600 n g . c h a r ^ i ; W s ( e c h 0067620 o ) \r ] \r 0067640 l o o p \r 0067660 ] \r i f i l 0067700 s ( c m d B l o c k L e n g t 0067720 h - 2 ) / 2 376 001 \0 202 V t h e n 0067740 \r [ s t r 0067760 > > S t r i n g . c h a r ^ i 0070000 = c h r ; i = i + 1 \r 0070020 e c h o > > 0070040 S t r i n g . c h a r ^ 1 = 0070060 c h r ; W s ( e c h o ) ] \r 0070100 ] \r s t r > > S t r i 0070120 n g . l e n g t h = i - 1 \r 0070140 b l k > > H e r e I s T e 0070160 x t . l e n g t h = 2 + ( i 0070200 + 1 ) / 2 / / f u l l w 0070220 o r d s p l u s h e a d e r 0070240 \r B S P W r i t e B l o c 0070260 k ( s e r > > S e r v i c e . b 0070300 s p S t r , b l k , 0 , b l k > 0070320 > H e r e I s T e x t . 376 001 \0 7 0070340 s l e n g t h * 2 ) \r B S 0070360 P F o r c e O u t p u t ( s e r 0070400 > > S e r v i c e . b s p S o c 0070420 ) \r W s ( " s e n t " ) \r 0070440 k b d K e y = - 1 0070460 / / r e l e a s e b e 0070500 y b o a r d \r ] \r \r / / - - - - 0070520 - - - - - - - - - - - - - - - - * 0070600 - - - - - - - - - - - \r a n d 0070620 V e r i f y O p e n ( s e r ) 0070640 = v a l o f \r / / - - - - - - 0070660 - - - - - - - - - - - - - - - - * 0070740 - 376 001 \0 d 9 - - - - - - - - \r [ 0070760 i f s e r > > S e r v i 0071000 c e . d r i v e g e 0 t h 0071020 e n r e s u l t i s t r u e 0071040 \r R e p l y N o ( s e r , 0071060 d r i v e N o t O p e n e d ) \r 0071100 r e s u l t i s f a l s 0071120 e \r ] \r \r / / - - - - - - - - - 0071140 - - - - - - - - - - - - - - - - * 0071220 - - - - - - \r a n d O k T o W 0071240 r i t e ( s e r ) = v a l o 0071260 f \r / / - - - - - - - - - - - - 0071300 - - - - - - - - - - - - - - - - * 0071340 - - - - - - 376 001 \0 270 274 - - - - - 0071360 - - - - - - - - \r [ l e t 0071400 s t a t = T a p e S t a t 0071420 u s ( s e r > > S e r v i c e . 0071440 t a p e ) / / t a p e m 0071460 u s t b e o p e n ! ! \r 0071500 u n l e s s s t a t < < S t 0071520 a t u s . F P T t h e n r e 0071540 s u l t i s t r u e \r R 0071560 e p l y N o ( s e r , w r i t e 0071600 P r o t e c t e d ) \r r e 0071620 s u l t i s f a l s e \r ] \r \r 0071640 / / - - - - - - - - - - - - - - 0071660 - - - - - - - - - - - - - - - - * 0071740 - \r a n d R e p l y 376 001 \0 275 265 0071760 Y e s ( s e r , c o d e ) b e 0072000 \r / / - - - - - - - - - - - - - 0072020 - - - - - - - - - - - - - - - - * 0072100 - - \r [ / / S e n d s b 0072120 a c k Y e s r e p l y , n 0072140 o t s w i t c h o n c o d e 0072160 f o r s t r i n g y e t \r 0072200 l e t b l k = s e r 0072220 > > S e r v i c e . b l k 0072240 / / g e t c o m m a n d b l 0072260 o c k \r b l k > > Y e s N 0072300 o . t y p e = c m d Y e s \r 0072320 b l k > > Y e s N o . c a 0072340 u s e = d o n e O p e r a t 0072360 376 001 \0 371 363 i o n \r l e t 0072400 s t a t = ( s e r > > S e r 0072420 v i c e . t a p e ) > > T C B . 0072440 F l a g s / / g e t t a 0072460 p e s t a t u s \r b l k 0072500 > > Y e s N o . c o d e = s 0072520 t a t \r l e t s t r = 0072540 " G o o d C o m m a n d " \r 0072560 Y e s N o M e s s a g e ( 0072600 b l k , s t r , s e r ) / 0072620 / s e t u p s t r i n g a 0072640 n d s e n d o u t \r ] \r \r / 0072660 / - - - - - - - - - - - - - - - 0072700 - - - - - - - - - - - - - - - - * 0072760 \r a n d 376 001 \0 M ' R e p l y N 0073000 o ( s e r , c o d e ) b e \r / 0073020 / - - - - - - - - - - - - - - - 0073040 - - - - - - - - - - - - - - - - * 0073120 \r [ / / S e n d s b a c 0073140 k N o b l o c k , w i t h 0073160 c o r r e c t s t r i n g \r 0073200 l e t s t r = " " 0073220 \r s w i t c h o n c o d 0073240 e i n t o \r [ \r c 0073260 a s e n o V e r s i o n : 0073300 s t r = " V e r s i 0073320 o n C h e c k U n m a d e " 0073340 ; e n d c a s e \r c a s 0073360 e n o G o o d M e 376 001 \0 221 370 s 0073400 s a g e : s t r = " I 0073420 l l e g a l C o m m a n d " ; 0073440 e n d c a s e \r c a s e 0073460 o p e n A l r e a d y : 0073500 s t r = " D r i v e A l r 0073520 e a d y O p e n " ; e n d c 0073540 a s e \r c a s e d r i v 0073560 e I n U s e : s t r 0073600 = " D r i v e I n U s e 0073620 " ; e n d c a s e \r c a 0073640 s e b a d D r i v e : 0073660 s t r = " D r i v e B 0073700 a d " ; e n d c a s e \r 0073720 c a s e b a d D r i v e N o : 0073740 s t r = " B a d D r 0073760 i v e N u m b e r " ; e n 376 0074000 001 \0 Y U d c a s e \r c a s 0074020 e d r i v e N o t O p e n e d 0074040 : s t r = " D r 0074060 i v e N o t O p e n " ; e 0074100 n d c a s e \r c a s e b 0074120 a d S t a t u s S e l e c t o r 0074140 : s t r = " C a n n o 0074160 t s e t t h a t S t a t u 0074200 s " ; e n d c a s e \r c 0074220 a s e b a d R e t r y S e t t 0074240 i n g : s t r = " B a 0074260 d S e t t i n g f o r R e 0074300 t r i e s " ; e n d c a s e \r 0074320 c a s e w r i t e P r o 0074340 t e c t e d : s t r = 0074360 " T a p e W r i t e P r o t 0074400 e c t e 376 001 \0 001 212 d " ; e n d 0074420 c a s e \r c a s e b a d 0074440 S p e e d S e t t i n g : 0074460 s t r = " I l l e g a l S 0074500 p e e d S e t t i n g " ; e 0074520 n d c a s e \r d e f a u l 0074540 t : s t r = 0074560 " I l l e g a l C o m m a n 0074600 d " ; e n d c a s e \r ] 0074620 \r l e t b l k = s e 0074640 r > > S e r v i c e . b l k 0074660 / / g e t c o m m a n d b 0074700 l o c k \r b l k > > Y e s 0074720 N o . t y p e = c m d N o \r 0074740 b l k > > Y e s N o . c a 0074760 u s e = c o d e \r l e 0075000 t s t a t = 376 001 \0 W Q ( s 0075020 e r > > S e r v i c e . t a p e 0075040 ) > > T C B . F l a g s / 0075060 / g e t t a p e s t a t u s 0075100 \r b l k > > Y e s N o . c 0075120 o d e = s t a t \r Y e 0075140 s N o M e s s a g e ( b l k , s 0075160 t r , s e r ) / / s e t 0075200 u p s t r i n g a n d s e 0075220 n d o u t \r ] \r \r / / - - - - 0075240 - - - - - - - - - - - - - - - - * 0075320 - - - - - - - - - - - \r a n d 0075340 R e p l y S t a t u s ( s e r , 0075360 c m d ) b e \r / / - - - - - - 0075400 - - - - - - - - - - - - - - 376 001 0075420 \0 217 * - - - - - - - - - - - - - 0075440 - - - - - - - - - - - - - - - - 0075460 - - - - - - - - - - - - - - \r [ 0075500 / / S e n d b a c k t 0075520 h e e n d i n g s t a t u s 0075540 o f t h e t a p e d r i 0075560 v e \r / / u s e d b 0075600 y m o s t a c t i o n c o 0075620 m m a n d s \r l e t b l 0075640 k = s e r > > S e r v i c e 0075660 . b l k \r l e t s t a t 0075700 = ( s e r > > S e r v i c e 0075720 . t a p e ) > > T C B . F l a g 0075740 s / / g e t t a p e s 0075760 t a t u s \r b l k > > Y e 0076000 s N o . c a u s e = d o n e 0076020 O p e 376 001 \0 244 277 r a t i o n \r 0076040 b l k > > Y e s N o . c o d 0076060 e = s t a t / / 0076100 r e t u r n s t a t u s b i 0076120 t s \r b l k > > Y e s N o 0076140 . t y p e = c m d Y e s 0076160 / / a s s u m e Y e s \r 0076200 / / a l w a y s n o 0076220 i f n o t o n l i n e o r 0076240 n o t r e a d y o r e r 0076260 r o r \r u n l e s s s t 0076300 a t < < S t a t u s . R D Y t 0076320 h e n b l k > > Y e s N o . t 0076340 y p e = c m d N o \r u 0076360 n l e s s s t a t < < S t a t 0076400 u s . O N L t h e n b l k > 0076420 > Y e s N o . t 376 001 \0 ( L y p e 0076440 = c m d N o \r l e t 0076460 e r r o r = s t a t & T 0076500 a p e E r r \r i f e r r 0076520 o r t h e n b l k > > Y e s 0076540 N o . t y p e = c m d N o \r 0076560 s w i t c h o n c m d 0076600 i n t o / / o t h e r c 0076620 h a n g e s t o N o d e p 0076640 e n d o n c o m m a n d \r 0076660 [ \r c a s e c m d W 0076700 r i t e R e c o r d : \r 0076720 [ / / N o i f w r 0076740 i t e p r o t e c t e d \r 0076760 i f s t a t < 0077000 < S t a t u s . F P T t h e 0077020 n b l k > > Y e s N o . 376 001 \0 0077040 W 332 t y p e = c m d N o \r 0077060 e n d c a s e 0077100 ] \r c a s e c m d F w d 0077120 S p a c e R e c o r d : \r 0077140 [ / / N o s p e c 0077160 i a l n o \r 0077200 e n d c a s e ] \r c a s 0077220 e c m d B a c k S p a c e R e 0077240 c o r d : \r [ 0077260 / / N o s p e c i a l n o \r 0077300 e n d c a s e 0077320 ] \r c a s e c m d F w 0077340 d S p a c e F i l e : \r 0077360 [ / / N o s p e c i 0077400 a l n o \r e 0077420 n d c a s e ] \r c a s e 0077440 c 376 001 \0 266 ; m d B a c k S p a 0077460 c e F i l e : \r [ 0077500 / / N o s p e c i a l n 0077520 o \r e n d c a 0077540 s e ] \r c a s e c m d 0077560 W r i t e E O F : \r 0077600 [ / / N o i f n o t 0077620 E O F \r u n 0077640 l e s s s t a t < < S t a t u 0077660 s . E O F t h e n b l k > > 0077700 Y e s N o . t y p e = c m d 0077720 N o \r e n d c 0077740 a s e ] \r c a s e c m 0077760 d W r i t e B l a n k T a p e : 0100000 \r [ / / N o 0100020 s p e c i a l n o \r 0100040 e n d 376 001 \0 300 350 c a s e 0100060 ] \r ] \r / / p u t 0100100 i n s t r i n g o f g o 0100120 o d o r b a d o p e r a t 0100140 i o n \r l e t s t r = 0100160 " G o o d O p e r a t i o n 0100200 " \r i f b l k > > Y e s 0100220 N o . t y p e e q c m d N o 0100240 t h e n s t r = " B a d 0100260 E n d i n g S t a t u s " \r 0100300 Y e s N o M e s s a g e ( 0100320 b l k , s t r , s e r ) / 0100340 / s e t u p s t r i n g a 0100360 n d s e n d o u t \r ] \r \r / 0100400 / - - - - - - - - - - - - - - - 0100420 - - - - - - - - - - - - - - - - 0100440 - - - - - - - - - - - - 376 001 \0 260 0100460 x - - - - - - - - - - - - - - - 0100500 - - - - - \r a n d Y e s N o M 0100520 e s s a g e ( b l k , s t r , s 0100540 e r ) b e \r / / - - - - - - - 0100560 - - - - - - - - - - - - - - - - * 0100640 - - - - - - - - \r [ l e t 0100660 i = 0 \r b l k > > Y 0100700 e s N o . l e n g t h = 5 0100720 + ( ( s t r > > S t r i n g . 0100740 l e n g t h + 2 ) / 2 ) 0100760 \r f o r i = 0 t o 0101000 b l k > > Y e s N o . l e n g 0101020 t h - 4 d o \r [ 0101040 ( l v b l k > > Y e s N o . 0101060 s 376 001 \0 023 212 t r ) ! i = s t 0101100 r ! i / / c o p y s t r 0101120 i n g \r ] \r / / a n 0101140 d s e n d b l o c k o u t 0101160 \r B S P W r i t e B l o c 0101200 k ( s e r > > S e r v i c e . b 0101220 s p S t r , b l k , 0 , 2 * b l 0101240 k > > Y e s N o . l e n g t h ) 0101260 \r B S P F o r c e O u t p 0101300 u t ( s e r > > S e r v i c e . 0101320 b s p S o c ) \r ] \r \r \r / / - - 0101340 - - - - - - - - - - - - - - - - * 0101420 - - - - - - - - - - - - - \r a n 0101440 d D o E r r o r P r o c ( s t 0101460 r ) b e \r 376 \0 Q 326 246 / / - - - 0101500 - - - - - - - - - - - - - - - - * 0101560 - - - - - - - - - - - - \r [ \r 0101600 W s ( s t r ) \r ] \r 377 \0 \0 T 0101620 a p e S e r v e r . b r \0 376 001 \0 0101640 001 200 002 002 \b 025 \0 \0 \0 017 \0 \0 002 220 \0 \0 0101660 002 247 \0 \0 \a 303 \0 \0 \b 024 \0 \0 \0 \0 \0 \0 0101700 \0 P \0 \0 \0 \a r w B l o c k \0 0101720 \0 \0 005 r w K e y \0 \0 \0 006 k b d 0101740 K e y \0 \0 \0 \0 \t u s e d i d n 0101760 o s \0 \0 \0 \n u s e d d r i v e 0102000 s \0 \0 \0 \0 004 c t x Q \0 \0 \0 \0 0102020 024 c u r r e n t V e r s i o n S 0102040 t r i n g \0 \0 ! \0 \0 016 T a p e T 0102060 r i d e n t U F P \0 \0 ! \0 \0 \n b 0102100 s p S o c k e t s \0 \0 ! \0 \0 \r s 0102120 e r v i c e B l o c k s \0 ! \0 \0 0102140 016 s e r v e r C o n t e x t s \0 0102160 \0 ! \0 \0 \b r v S o c k e t \0 \0 A 0102200 \0 001 \f S t a r t S e r v i n g \0 0102220 \0 A \0 002 \t C o n n e c t o r \0 A 0102240 \0 003 376 001 \0 262 203 020 I n i t i a l i 0102260 z e S e r v e r \0 \0 A \0 004 \a S e 0102300 n d R F C \0 A \0 005 \f D i s C o n 0102320 n e c t o r \0 \0 A \0 006 006 S e r v 0102340 e r \0 \0 A \0 \a \n G e t C o m m a 0102360 n d \0 \0 A \0 \b \n G e t N o n M a 0102400 r k \0 \0 A \0 \t \f R e p l y V e r 0102420 s i o n \0 \0 A \0 \n 017 T a p e T r 0102440 i d e n t B o o t \0 @ \0 \v \r T a 0102460 p e W a i t Q u i e t \0 \0 \0 \0 \a 0102500 L o a d R a m \0 \0 \0 \0 \v X M T a 0102520 p e I m a g e \0 \0 \0 \0 \b C a l l 0102540 S w a t \0 \0 \0 \0 \0 020 l v U s e r 0102560 F i n i s h P r o c \0 \0 \0 \0 \0 021 0102600 l v S w a t C o n t e x t P r o 0102620 c \0 \0 \0 \0 017 T a p e T f s S w a 0102640 t P r o c \0 \0 376 001 \0 251 324 \0 \0 002 W 0102660 s \0 \0 \0 \0 \0 \t F i x e d L e f t 0102700 \0 \0 \0 \0 003 U s c \0 \0 \0 \0 \t A d d 0102720 T o Z o n e \0 \0 \0 \0 \a s y s Z o 0102740 n e \0 \0 \0 \0 \b G e t F i x e d \0 0102760 \0 \0 \0 \0 \b A l l o c a t e \0 \0 \0 0103000 \0 \0 016 I n i t i a l i z e Z o n 0103020 e \0 \0 \0 \0 \0 \r I n i t P u p L e 0103040 v e l 1 \0 \0 \0 \0 020 O p e n L e v 0103060 e l 1 S o c k e t \0 \0 \0 \0 \0 \a E 0103100 n q u e u e \0 \0 \0 \0 021 I n i t i 0103120 a l i z e C o n t e x t \0 \0 \0 \0 0103140 017 C a l l C o n t e x t L i s t 0103160 \0 \0 \0 \0 005 B l o c k \0 \0 \0 \0 \a D 0103200 e q u e u e \0 \0 \0 \0 \n R e l e a 0103220 s e P B I \0 \0 \0 \0 \0 021 A p p e n 0103240 d S t r i n g T o P u p 376 001 \0 z 0103260 273 \0 \0 \0 \0 \r E x c h a n g e P o 0103300 r t s \0 \0 \0 \0 \v C o m p l e t e 0103320 P u p \0 \0 \0 \0 \r O p e n R T P S 0103340 o c k e t \0 \0 \0 \0 017 C r e a t e 0103360 B S P S t r e a m \0 \0 \0 \0 002 W o 0103400 \0 \0 \0 \0 \0 \t M o v e B l o c k \0 0103420 \0 \0 \0 \t C l o s e T a p e \0 \0 \0 0103440 \0 \a U n q u e u e \0 \0 \0 \0 006 C l 0103460 o s e s \0 \0 \0 \0 \0 \a R e p l y N 0103500 o \0 \0 \0 \0 \v D o O p e n D r i v 0103520 e \0 \0 \0 \0 \f D o C l o s e D r i 0103540 v e \0 \0 \0 \0 \0 \f D o R e a d R e 0103560 c o r d \0 \0 \0 \0 \0 \r D o W r i t 0103600 e R e c o r d \0 \0 \0 \0 020 D o F w 0103620 d S p a c e R e c o r d \0 \0 \0 \0 0103640 \0 021 D o B a c k S p a c e R e c 0103660 o 376 001 \0 2 | r d \0 \0 \0 \0 016 D o F 0103700 w d S p a c e F i l e \0 \0 \0 \0 \0 0103720 017 D o B a c k S p a c e F i l e 0103740 \0 \0 \0 \0 \n D o W r i t e E O F \0 0103760 \0 \0 \0 \0 020 D o W r i t e B l a n 0104000 k T a p e \0 \0 \0 \0 \0 \b D o R e w 0104020 i n d \0 \0 \0 \0 \0 \b D o U n l o a 0104040 d \0 \0 \0 \0 \0 \v D o G e t S t a t 0104060 u s \0 \0 \0 \0 \v D o S e t S t a t 0104100 u s \0 \0 \0 \0 \n D o S e n d T e x 0104120 t \0 \0 \0 \0 \0 \t D o G e t T e x t 0104140 \0 \0 \0 \0 006 R e s e t s \0 \0 \0 \0 \0 0104160 \f B S P R e a d B l o c k \0 \0 \0 0104200 \0 \0 004 G e t s \0 \0 \0 \0 \0 \n B S P 0104220 G e t M a r k \0 \0 \0 \0 \0 \r B S P 0104240 W r i t e B l o c k \0 \0 \0 \0 016 B 0104260 S P F o r c 376 001 \0 267 373 e O u t p 0104300 u t \0 \0 \0 \0 \0 006 S e t B L V \0 \0 0104320 \0 \0 \0 \a S t a r t I O \0 \v \0 \r \0 0104340 001 \0 016 001 + \0 017 002 5 \0 020 002 235 \0 021 002 0104360 266 \0 022 003 5 \0 023 004 004 \0 024 004 ~ \0 025 004 0104400 257 \0 026 004 375 \0 027 005 016 005 033 005 033 Z 001 \f 0104420 370 022 ! \f 367 % > 254 \0 i = \0 002 202 \r 001 0104440 016 \t \n 021 L o a d R a m ( ) f a 0104460 i l e d . 342 \0 i X \0 001 = W ; \0 ] 0104500 V % V = S C \0 % T = T C \0 375 \0 Z 0104520 004 374 \0 ] P 374 \0 ] O ! O 306 \0 B 005 : 0104540 005 ] L ! L 306 \0 B 006 : 006 ] I ! I 306 0104560 \0 B \a : \a ] F ! F 306 \0 B \b : \b ] 0104600 H ! H 306 \0 B \t : \t ] E 375 \0 Z \n 001 0104620 \v \0 \0 \0 \0 205 \0 * \n = = 276 \0 C \0 " 0104640 \n 203 \0 B \n " \n 375 P 344 J 001 365 \t 017 032 0104660 T a p e S e r v e r 376 001 \0 274 276 0104700 P r o t o c o l , V 0 . 3 \0 0104720 ] \ % [ i [ \0 001 i Z \0 \0 9 Y 345 \0 0104740 B \t " \t ) V i V \0 002 001 020 \0 \0 \0 \0 0104760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 025 \0 \0 0105000 \0 030 \0 \0 \0 033 \0 \0 \0 036 375 P 345 \f 001 006 0105020 ! @ 001 006 \0 \0 \0 ! \0 \0 " \t 001 001 B \t 0105040 = = Z \v " \t i _ \0 001 : \t Z 003 212 \0 0105060 " \v i Z \0 003 % 2 ) X i X \0 002 E W 0105100 ! W 306 \0 B \n " \n ) T i T \0 002 ! S 0105120 306 \0 B \v : \v ] P 205 \0 = N C \0 9 M 0105140 Z 003 " \n - I i J \0 003 % 030 ) H i > 0105160 \0 002 E f \t 004 \0 \0 \0 \0 \0 $ 342 \0 212 \0 0105200 % _ i _ \0 002 001 \a \0 \0 \0 \0 \0 \0 \a 320 0105220 ~ \0 \0 \0 375 \0 Z \f 001 : \0 \0 205 \0 * \f 0105240 = 257 276 \0 C \0 % 372 ) * i \0 002 * \f 0105260 = 251 276 \0 C \0 % 362 ) T i 030 \0 002 * \f 0105300 376 001 \0 \r 232 = 243 276 \0 C \0 % 352 ) M i 0105320 020 \0 002 * \f = 233 276 \0 + \0 272 \0 C 005 % 0105340 340 ) Y i 006 \0 002 001 016 \0 \0 \0 \0 @ 030 \0 0105360 \0 \0 \0 \0 $ 017 240 \0 \0 017 305 \0 \0 \0 \n \0 0105400 \0 \0 G * \f = 212 276 \0 C \0 " \f 203 \0 B 0105420 \f " \f 375 P 344 J 001 305 ! O 306 \0 B \f = 0105440 356 Z 016 = K Z 003 " \f ) I i I \0 003 212 0105460 \0 " 016 i F \0 002 ! E 306 \0 B \r = 337 Z 0105500 017 001 003 \0 \0 \0 \0 = Q Z 003 " \r ) 7 i 0105520 7 \0 003 212 \0 " 017 i 4 \0 002 = 320 # \0 i 0105540 F \0 001 001 374 \0 \t \0 200 \f 366 Z 001 \f 370 \0 0105560 017 \f 367 i ` \0 \0 375 \0 Z 004 375 \0 Z 005 % 0105600 342 9 Z 346 \0 i Y \0 001 B 006 : 006 372 \f 001 0105620 003 001 361 \0 310 : 006 # \n 9 P 347 \0 9 O 345 0105640 \f 001 \a : 006 # \r 9 I 347 \0 202 \f 001 \v " 0105660 006 i F \0 001 001 337 017 307 \0 \0 001 , \0 \0 \0 0105700 \0 020 364 : 006 376 001 \0 353 301 # 023 9 e 347 300 0105720 202 \f 001 \v : 006 # 020 9 _ 347 300 * 006 9 ] 0105740 356 \0 202 300 \f 360 377 \0 375 \0 Z \a 001 g \0 \0 0105760 \0 \0 " \a = U 236 \0 # \0 202 \r 001 \ " \a 0106000 = R 236 \0 # \0 B 005 " 005 202 \r 001 T " 005 0106020 9 030 346 \0 232 \0 # \0 * 006 9 ? 356 \0 272 \0 0106040 + \0 245 \f 001 H " 005 9 \f 346 \0 232 \0 # 001 0106060 * 006 9 3 356 \0 001 \a \0 \0 \0 \v \0 \0 \0 377 0106100 \0 \b \0 \0 272 \0 + 001 245 \f 001 5 " 005 9 371 0106120 346 \0 232 \0 # 002 * 006 9 356 \0 272 \0 + 002 0106140 245 \f 001 ) " 005 9 h 346 \0 232 \0 # \0 * 006 0106160 9 345 356 \0 272 \0 + \0 245 \f 001 035 " 005 9 \ 0106200 346 \0 232 \0 # 001 * 006 9 331 356 \0 272 \0 + 001 0106220 245 \f 001 021 001 \v 377 \0 \0 023 \f 355 \0 017 \0 w 0106240 \f 355 \0 \t \0 y \f 355 \0 006 " 006 * 005 i F 0106260 \0 002 001 001 " \a 203 \0 B \a " \a 375 P 344 J 0106300 001 231 374 \0 Z \a 375 \0 Z 004 376 001 \0 314 212 001 0106320 017 " 004 = 350 236 \0 # \0 202 \r 001 005 " 004 203 0106340 \0 B 004 001 005 : 004 Z \a 9 M Z 004 " 004 9 0106360 K 345 J 001 357 " \a 202 K 001 $ 205 \0 : 006 C 0106400 023 \t 017 032 T a p e S e r v e r f 0106420 u l l , t r y l a t e r \0 342 0106440 \0 B 003 " 006 ) / i _ \0 003 " 006 i ] \0 0106460 001 " 006 ) [ i [ \0 002 001 002 \0 017 001 X \0 0106500 \0 " \a = 263 236 \0 # \0 B \b " 006 9 250 346 0106520 \0 B 003 " \b 255 \0 i M \0 003 9 L Z \f " 0106540 006 9 J 346 \0 B \r 9 A Z 003 " \b - g i 0106560 g \0 004 " 006 * \b i 344 \0 002 " \a i a \0 0106600 001 001 6 \0 003 \0 002 \f 366 Z 001 \f 370 \0 017 \f 0106620 367 " 004 = 213 236 \0 # \0 B 005 " 005 i R \0 0106640 001 B 006 \t \n 021 C o n n n e c t i o 0106660 n o p e n 342 \0 i M \0 001 " 004 i 0106700 K \0 001 204 \0 * 004 = H 276 \0 C \0 " 004 376 0106720 001 \0 / 223 = ] 236 \0 # \0 B \a " 004 : \a 0106740 C \0 " 005 : \a C 001 001 \n \0 \0 \0 \0 \0 \t 0106760 \0 \0 \f 355 376 307 001 030 \0 004 \0 \v " 006 : \a 0107000 C 002 205 \0 : \a C 004 205 \0 : \a C 005 204 \0 0107020 : \a C 006 ! 362 : \a C \a 205 P : \a C \b 0107040 " 004 = b 236 \0 # \0 B \b = _ Z \f 375 P 0107060 Z \r 9 336 Z 003 " \b ) Y i Y \0 004 001 005 0107100 \0 363 \0 \0 \0 \0 \0 \0 " \a : \b C 003 % 371 0107120 * \b i N \0 002 \f 366 \0 275 \0 \0 001 302 Z 001 0107140 \f 370 \0 \v \f 367 " 004 9 D 346 \0 * 005 9 c 0107160 356 \0 9 213 Z 003 i ` \0 003 " 004 i 270 \0 001 0107200 9 \ Z 003 " 004 ) Z i 264 \0 003 \f 366 \0 { 0107220 Z 001 \f 370 \0 \v \f 367 375 \0 Z 004 375 \0 Z 005 0107240 375 \0 Z 006 001 k i M \0 \0 " 006 = 330 236 \0 0107260 # \0 202 \r 001 ` " 006 = f 236 \0 # \0 232 \0 0107300 # 016 9 b 347 \0 9 a 345 \r 001 U \t \v 023 0107320 C o n n 376 001 \0 214 , e c t i o n 0107340 C l o s e d = 342 \0 001 \a \0 202 \0 \0 \0 0107360 310 001 T 001 U \0 023 i 263 \0 001 " 006 i 261 \0 0107400 001 " 006 = 310 236 \0 # \0 B 005 : 005 ; 004 372 0107420 \r 001 005 : 005 # 004 i N \0 001 : 005 # 006 202 0107440 J 001 \a 205 \0 : 005 + 006 = F 276 \0 C \0 " 0107460 006 = 335 236 \0 # \0 001 \b \0 005 \0 \0 \0 034 \0 0107500 \b \f 355 \0 036 001 217 212 \0 % [ i [ \0 002 % 0107520 Z : 006 345 \f 001 003 374 \0 ] U % U : 006 345 0107540 \f 001 003 374 \0 ] P : 005 # 002 i N \0 001 205 0107560 \0 * 006 = K 276 \0 C \0 " 006 203 \0 B 006 " 0107600 006 375 P 344 J 001 223 001 004 001 305 \0 377 \0 003 001 0107620 207 \f 366 Z 001 \f 370 \0 \f \f 367 : 004 ; 003 Z 0107640 005 " 005 i E \0 001 : 005 C 005 : 005 ; 005 Z 0107660 006 001 034 \0 \0 \0 204 " 005 ) C i G \0 002 % 0107700 " : 005 ; \0 345 \f 001 003 374 \0 ] 034 % 034 : 0107720 005 ; \0 345 \f 001 003 374 \0 376 001 \0 & p ] 026 0107740 " 005 i ( \0 001 B 006 " 006 : 005 C 005 : 006 0107760 # 001 9 320 345 \f 001 343 " 005 i ? \0 001 375 \0 0110000 Z \a 001 @ 002 216 \0 \0 \0 t \0 u \0 \0 002 234 0110020 i 235 \0 \0 " 005 i 016 \0 001 B 006 " 006 : 005 0110040 C 005 : 006 ; 001 Z \a 001 U " 005 i ? \0 001 0110060 001 s \0 \0 " 005 i A \0 001 001 n " 005 i B 0110100 \0 001 001 j \0 \a " 005 i C \0 001 001 e \0 \0 0110120 " 005 i B \0 001 001 ` " 005 i ? \0 001 001 \ 0110140 " 005 i < \0 001 001 X " 005 i 9 \0 001 001 T 0110160 " 005 i 6 \0 001 001 P \0 \0 " 005 i 2 \0 001 0110200 001 K \f 355 \0 W " 005 i - \0 001 001 E " 005 0110220 i * \0 001 001 A " 005 i ' \0 001 001 = " 005 0110240 i $ \0 001 001 9 \f 355 \0 025 \0 \0 " 005 i 036 0110260 \0 001 001 2 \f 355 \0 0 \0 \0 " 005 i 030 \0 001 0110300 001 + \0 \0 " 005 255 P i 303 \0 002 001 % \0 \0 0110320 001 # " \a 001 \r \0 \0 \0 \0 \0 \0 \0 \0 376 001 0110340 \0 030 N \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0110360 \0 \0 \0 \f 350 \0 023 \0 020 377 325 377 320 377 313 377 0110400 306 377 277 377 271 377 264 377 257 377 252 377 245 377 237 377 0110420 231 377 224 377 216 377 325 377 315 001 330 % P : 005 ; 0110440 \0 345 \f 001 003 374 \0 ] J % J : 005 ; \0 345 0110460 \f 001 003 374 \0 ] D 001 D \f 366 Z 001 \f 370 \0 0110500 021 \f 367 " 004 i f \0 001 B 005 " 004 i b \0 0110520 001 B 006 " 005 9 _ 347 300 * 006 216 \0 J \a " 0110540 005 200 \r 001 004 " 006 200 \f 001 003 9 U Z \a " 0110560 004 i P \0 001 B 005 " 004 i L \0 001 B 006 " 0110600 005 9 I 347 300 * 006 216 \0 J \b " 005 200 \r 001 0110620 004 " 006 200 \f 001 003 374 \0 Z \b : 004 ; 003 Z 0110640 \t 9 E Z \n " \b 9 M 345 \r 001 005 " \b 9 0110660 J 345 \f 001 022 = H Z \t 001 \a 003 m 003 n \f 0110700 355 377 * i c \0 \0 % 372 202 K 001 374 : 004 ; 0110720 \0 ] 365 9 \ Z \n " \a : \n 344 J 001 \t 374 0110740 \0 Z \b 376 001 \0 215 303 9 031 Z \a : 004 # 002 0110760 i Q \0 001 " \a : \t C \0 " \b : \t C 001 0111000 " \t 9 \f 346 \0 375 \0 Z 016 * \a : \a 356 \0 0111020 9 h 355 \0 001 004 \0 \0 \0 377 \0 002 J 017 9 b 0111040 Z 003 212 \0 : 004 # 002 i ^ \0 004 " \t 001 002 0111060 \0 200 \f 366 Z 001 \f 370 \0 \n \f 367 374 \0 Z 005 0111100 375 \0 Z 006 001 \0 \b \0 \t \0 356 i ! \0 \0 0111120 : 004 # 002 i J \0 001 B 005 " 005 200 \f 001 016 0111140 : 004 ; 001 # 2 202 @ 205 p 202 \r 001 \a : 004 0111160 # 001 i _ \0 001 374 \0 Z 006 " 005 202 J 001 003 0111200 374 \0 Z 006 : 006 372 \r 001 342 " 005 001 004 003 016 0111220 @ 030 \0 \0 \f 366 Z 001 \f 370 \0 016 \f 367 : 004 0111240 ; 005 Z 005 ! U : 005 C 001 205 \0 : 005 C 002 0111260 = P Z 006 375 \0 Z \a : 006 # \0 9 K 347 300 0111300 9 255 346 \0 ) 253 \f 344 9 C 356 \0 : 005 K \0 0111320 375 \0 Z \b : 005 # \0 9 004 345 \0 B \t 001 004 0111340 \0 004 \0 \v \0 \0 001 017 376 001 \0 " 236 \0 \0 " 0111360 \b : 006 236 \0 # \0 * 005 9 - 356 \0 : \b 276 0111400 \0 C \0 " \b 203 \0 B \b " \b : \t 344 J 001 0111420 360 375 \0 Z \v : 005 # \0 202 P B \f 9 227 Z 0111440 003 : 004 # 002 * 005 i \0 004 : 004 # 001 i 0111460 035 \0 001 \f 366 \0 \0 Z 001 \f 370 \0 \a \f 367 204 0111500 P i 025 \0 001 205 220 i 023 \0 001 % 022 = 022 C 0111520 \0 \f 366 \0 003 \0 274 377 \0 Z 001 \f 370 \0 006 \f 0111540 367 i 231 \0 \0 \f 366 \0 \0 \0 \0 \0 \0 \0 \0 \0 0111560 p \0 o \0 P 004 211 004 D 004 E 003 p 003 F 003 0111600 k 005 \f 005 031 003 0 002 265 002 341 001 027 \0 \0 001 0111620 R 002 220 002 020 001 j 002 342 003 202 004 o 003 245 \0 0111640 q \0 \0 \0 D \0 C \0 n 005 032 \0 s \0 r 002 0111660 232 \0 276 \0 301 \0 353 \0 305 \0 352 \0 355 \0 361 \0 0111700 365 002 i 002 345 002 344 001 k 004 253 001 221 001 224 002 0111720 c 002 d 002 f 002 217 002 221 002 233 003 \t 003 E 003 0111740 l 003 o 003 220 003 276 003 305 003 312 003 320 376 \0 * 0111760 V \r 003 324 003 325 003 326 003 327 003 330 003 331 003 332 0112000 003 333 003 334 003 335 003 336 003 337 004 255 004 326 004 330 0112020 004 374 005 025 005 026 005 027 005 030 \0 \0 377 \0 \0 T 0112040 S P D O s . b r \0 376 001 \0 245 336 002 002 0112060 006 275 \0 \0 \0 017 \0 \0 001 _ \0 \0 001 216 \0 \0 0112100 006 220 \0 \0 006 274 \0 \0 \0 \0 \0 \0 \0 + \0 @ 0112120 \0 001 \v D o O p e n D r i v e \0 @ 0112140 \0 002 \f D o C l o s e D r i v e \0 0112160 \0 @ \0 003 \f D o R e a d R e c o r 0112200 d \0 \0 @ \0 004 \r D o W r i t e R e 0112220 c o r d \0 @ \0 005 020 D o F w d S p 0112240 a c e R e c o r d \0 \0 @ \0 006 021 D 0112260 o B a c k S p a c e R e c o r d 0112300 \0 @ \0 \a 016 D o F w d S p a c e F 0112320 i l e \0 \0 @ \0 \b 017 D o B a c k S 0112340 p a c e F i l e \0 @ \0 \t \n D o W 0112360 r i t e E O F \0 \0 @ \0 \n 020 D o W 0112400 r i t e B l a n k T a p e \0 \0 @ 0112420 \0 \v \b D o R e w i n d \0 \0 @ \0 \f 0112440 \b D o U n l o a d \0 \0 @ \0 \r 376 001 0112460 \0 { 362 \v D o G e t S t a t u s \0 0112500 @ \0 016 \v D o S e t S t a t u s \0 0112520 @ \0 017 \n D o S e n d T e x t \0 \0 0112540 @ \0 020 \t D o G e t T e x t \0 A \0 0112560 021 \n V e r i f y O p e n \0 \0 A \0 0112600 022 \t O k T o W r i t e \0 @ \0 023 \b 0112620 R e p l y Y e s \0 \0 @ \0 024 \a R e 0112640 p l y N o \0 A \0 025 \v R e p l y S 0112660 t a t u s \0 A \0 026 \f Y e s N o M 0112700 e s s a g e \0 \0 A \0 027 \v D o E r 0112720 r o r P r o c \0 \0 \0 \0 \n u s e d 0112740 d r i v e s \0 \0 \0 \0 \0 \b O p e n 0112760 T a p e \0 \0 \0 \0 \0 \t C l o s e T 0113000 a p e \0 \0 \0 \0 \t A c t O n T a p 0113020 e \0 \0 \0 \0 \r B S P W r i t e B l 0113040 o c k \0 \0 \0 \0 016 B S P F o r c e 0113060 O u t 376 001 \0 307 327 p u t \0 \0 \0 \0 \0 0113100 \n R e c S k i p F w d \0 \0 \0 \0 \0 0113120 \n R e c S k i p R e v \0 \0 \0 \0 \0 0113140 \v F i l e S k i p F w d \0 \0 \0 \0 0113160 \v F i l e S k i p R e v \0 \0 \0 \0 0113200 \a T a p e E O F \0 \0 \0 \0 \v E r a 0113220 s e I n c h e s \0 \0 \0 \0 \v P e r 0113240 f o r m V T C B \0 \0 \0 \0 \n T a p 0113260 e S t a t u s \0 \0 \0 \0 \0 002 W s \0 0113300 \0 \0 \0 \0 006 k b d K e y \0 \0 \0 \0 \0 0113320 005 B l o c k \0 \0 \0 \0 006 E n d o f 0113340 s \0 \0 \0 \0 \0 004 k e y s \0 \0 \0 \0 \0 0113360 004 G e t s \0 \0 027 \0 001 \0 001 \0 002 \0 H 0113400 \0 003 \0 m \0 004 \0 313 \0 005 001 002 \0 006 001 026 0113420 \0 \a 001 ) \0 \b 001 ; \0 \t 001 O \0 \n 001 i 0113440 \0 \v 001 215 \0 \f 001 241 \0 \r 001 266 \0 016 001 362 0113460 \0 017 002 b \0 020 002 s 376 001 \0 375 ; \0 021 003 0113500 022 \0 022 003 $ \0 023 003 > \0 024 003 f \0 025 004 0113520 4 \0 026 004 265 \0 027 004 362 005 001 005 001 Z 001 \f 0113540 370 \0 \f \f 367 : 004 ; 005 Z 005 : 004 # 006 202 0113560 J 001 006 " 004 ) [ i [ \0 002 001 7 : 005 ; 0113600 002 Z 006 " 006 9 S 345 K 001 , " 006 = Q 236 0113620 \0 # \0 202 \r 001 006 " 004 ) L i I \0 002 001 0113640 = I Z 003 " 006 : 004 + \b i f \0 003 B 0113660 \a : \a 372 \r 001 021 " \a : 004 C 004 " 006 : 0113700 004 C 006 204 \0 * 006 = 4 276 \0 C \0 " 004 ) 0113720 U i U \0 002 001 005 " 004 ) R i ) \0 002 001 0113740 005 " 004 ) N i $ \0 002 \f 366 Z 001 \f 370 \0 0113760 \n \f 367 " 004 i i \0 001 202 \r 001 027 : 004 ; 0114000 006 Z 005 205 \0 * 005 = 024 276 \0 C \0 : 004 # 0114020 004 i \ \0 001 205 \0 : 004 C 004 204 \0 : 004 C 0114040 006 " 004 ) T i + \0 002 \f 366 \0 002 \0 \0 \0 0114060 \0 \0 003 \0 \0 Z 001 \f 370 \0 017 \f 367 376 001 \0 0114100 x 225 " 004 i D \0 001 202 \r 001 T : 004 ; 005 0114120 Z 005 " 005 9 027 346 \0 B \t 9 M Z \n 375 \0 0114140 Z \v 375 \0 Z \f : 004 ; \a Z \r 9 \t Z 003 0114160 : 004 # 004 ) 336 i h \0 \a 001 006 \0 \0 \0 006 0114200 \0 \0 \0 004 \0 005 B 006 " 006 201 J 001 003 375 \0 0114220 Z 006 " 006 9 Z 344 J 001 003 9 W Z 006 " 006 0114240 : 005 C 003 : 004 ; 004 # \v : 005 C 002 ! N 0114260 : 005 C 001 " 006 203 \0 ) 274 \f 344 9 343 356 \0 0114300 : 005 K \0 : 005 # \0 202 P 001 004 \0 \0 \0 \0 0114320 \0 \a B 006 375 \0 Z \n : 006 Z \v 9 372 Z 003 0114340 : 004 # 002 * 005 i Q \0 004 : 004 # 001 i N 0114360 \0 001 \f 366 @ 030 Z 001 \f 370 \0 017 \f 367 " 004 0114400 i 346 \0 001 202 \r 001 . " 004 i S \0 001 202 \r 0114420 001 ) : 004 ; 005 Z 005 : 005 # 002 9 026 344 J 0114440 001 004 ! 023 : 005 C 002 375 \0 Z \t 375 \0 Z \n 0114460 " 005 9 202 346 \0 B \v : 005 ; 002 Z \f : 004 0114500 ; \a 376 001 \0 246 243 Z \r 001 004 \0 \0 @ \0 \0 0114520 025 9 231 Z 003 : 004 # 004 ) 227 i 370 \0 \a " 0114540 004 ) O i O \0 002 \f 366 Z 001 \f 370 \0 \t \f 0114560 367 " 004 i 257 \0 001 202 \r 001 \t : 004 # 004 i 0114600 Y \0 001 " 004 ) W i = \0 002 \f 366 \0 \0 \0 0114620 \0 Z 001 \f 370 \0 \t \f 367 " 004 i 233 \0 001 202 0114640 \r 001 \t : 004 # 004 i G \0 001 " 004 ) c i 0114660 ) \0 002 \f 366 \0 \0 Z 001 \f 370 \0 \t \f 367 " 0114700 004 i 210 \0 001 202 \r 001 \t : 004 # 004 i T \0 0114720 001 " 004 ) R i 026 \0 002 \f 366 Z 001 \f 370 \0 0114740 \t \f 367 " 004 i J \0 001 202 \r 001 \t : 004 # 0114760 004 i E \0 001 " 004 ) W i 004 \0 002 \f 366 \0 0115000 \t \0 \0 Z 001 \f 370 \0 \t \f 367 " 004 i 6 \0 0115020 001 202 \r 001 016 " 004 i 317 \0 001 202 \r 001 \t : 0115040 004 # 004 i U \0 001 " 004 ) S i 353 \0 002 \f 0115060 366 \0 \0 \0 \n \0 \0 Z 001 \f 370 \0 \v \f 367 " 0115100 004 i 034 \0 001 202 \r 376 001 \0 310 m 001 033 " 004 0115120 i 265 \0 001 202 \r 001 026 : 004 ; 005 Z 005 : 005 0115140 ; 002 Z 006 : 004 # 004 * 006 i g \0 002 " 004 0115160 ) e i 312 \0 002 001 006 \0 \v \0 \0 \0 \f \0 266 0115200 \0 \0 \f 366 Z 001 \f 370 \0 \t \f 367 " 004 i 370 0115220 \0 001 202 \r 001 \n : 004 # 004 ) Q i Q \0 002 0115240 " 004 ) O i O \0 002 \f 366 \0 \r Z 001 \f 370 0115260 \0 \t \f 367 " 004 i 344 \0 001 202 \r 001 \n : 004 0115300 # 004 ) 241 i = \0 002 " 004 ) P i ; \0 002 0115320 \f 366 \0 \0 \0 016 Z 001 \f 370 \0 \r \f 367 : 004 0115340 ; 005 Z 005 : 004 ; 004 Z 006 ! P : 005 C \0 0115360 ! N : 005 C 001 : 004 # 006 : 005 C 002 : 004 0115400 # \a : 005 C 004 : 004 # \b : 005 C 005 : 004 0115420 # 006 202 J 001 006 " 006 i E \0 001 : 005 C 003 0115440 375 \0 Z \n 9 254 Z \v 9 F Z 003 : 004 # 002 0115460 * 005 i B \0 004 001 \a \0 \0 \0 017 \0 \b \0 \0 0115500 \0 020 \0 220 : 004 # 001 i E \0 001 376 001 \0 242 0115520 304 \f 366 Z 001 \f 370 \0 \f \f 367 : 004 ; 005 Z 0115540 005 : 005 ; 002 Z 006 : 005 ; 003 Z \a 001 X \0 0115560 021 " \a 202 J 001 017 " \a 9 344 344 K 001 \v " 0115600 \a : 004 C \a " 004 ) . i 337 \0 002 001 \a \0 0115620 006 \0 026 " 004 ) ( i ( \0 002 001 K : 004 # 0115640 006 202 K 001 2 001 033 \0 \0 205 \0 : 004 C \b " 0115660 004 ) 031 i 312 \0 002 001 ' \0 \a 001 024 205 P : 0115700 004 C \b " 004 ) 017 i 300 \0 002 001 035 " 004 ) 0115720 023 i \v \0 002 001 030 001 025 001 026 " \a 001 \r \f 0115740 355 \0 036 \0 023 \0 \t \0 i \f 355 \0 # \f 355 \0 0115760 \f \f 355 \0 \t \0 \v \f 351 \0 002 \0 001 377 340 \0 0116000 \0 377 324 001 345 001 005 " 004 ) \f i 356 \0 002 001 0116020 021 " 004 ) 227 i 351 \0 002 001 \f 001 \v " 006 001 0116040 002 \0 002 \f 351 \0 002 \0 001 377 272 \0 \0 377 242 001 0116060 361 \f 366 Z 001 \f 370 \0 \n \f 367 : 004 ; 005 Z 0116100 005 " 005 9 357 346 \0 i Y \0 001 " 004 ) W i 0116120 W 376 001 \0 M 030 \0 002 \f 366 Z 001 \f 370 \0 020 0116140 \f 367 001 003 i P \0 \0 % O 202 K 001 374 : 004 0116160 ; \0 ] J \t 006 \b \r R e p l y ? \0 0116200 342 \0 i > \0 001 : 004 ; 005 Z 005 ! g : 005 0116220 C 001 " 005 9 311 346 \0 B 006 \t 002 001 x 342 \0 0116240 B \a 375 P Z \b 375 \0 Z \t 001 B 001 003 i + 0116260 \0 \0 % U i U \0 001 202 \f 001 372 % P i Q 0116300 \0 001 B \t " \t 9 N 345 \f 001 037 " \b 375 P 0116320 344 J 001 025 " \b 375 P 345 \0 B \b ! ] * \a 0116340 \f 360 \0 377 " \a i \f \0 001 " 006 * \b \f 362 0116360 * \a \f 360 \0 377 " \a i 003 \0 001 001 031 \0 \0 0116400 \0 004 001 354 \0 \0 \0 \0 " \b 9 Q 345 K 001 020 0116420 : \t Z 003 " 006 * \b \f 364 " \b 203 \0 B \b 0116440 " \t * \a \f 360 \0 377 " \a i 352 \0 001 " \t 0116460 9 W 345 \f 001 274 " \b 375 P 345 \0 * 006 202 300 0116500 \f 360 377 \0 " \b 203 \0 ) L \f 344 9 J 356 \0 0116520 : 005 K \0 375 \0 376 001 \0 Z 206 Z \r 001 006 \0 0116540 024 \0 \0 \0 \0 \0 \0 \0 \b : 005 # \0 202 P B 0116560 016 9 g Z 003 : 004 # 002 * 005 i c \0 004 : 0116600 004 # 001 i ` \0 001 \t 004 004 s e n t \0 342 0116620 \0 i 271 \0 001 374 \0 ] 272 \f 366 \0 \ Z 001 \f 0116640 370 \0 \t \f 367 : 004 # 006 202 J 001 004 204 \0 001 0116660 \b \0 ? " 004 ) Q i Q \0 002 205 \0 001 001 \f 0116700 366 Z 001 \f 370 \0 \n \f 367 : 004 # 004 i U \0 0116720 001 B 005 " 005 9 R 347 004 205 P 202 \f 001 005 204 0116740 \0 001 \t \0 \r \0 002 " 004 ) + i 7 \0 002 205 0116760 \0 001 001 \f 366 Z 001 \f 370 \0 016 \f 367 : 004 ; 0117000 005 Z 006 205 P : 006 C 001 205 \0 : 006 C 002 : 0117020 004 ; 004 # \v B \a " \a : 006 C 003 \t \b \f 0117040 G o o d C o m m a n d \0 342 \0 B 0117060 \b : 004 Z 003 " 006 * \b i K \0 003 \f 366 \0 0117100 \n 002 & 002 4 Z 001 \f 370 \0 016 \f 367 \t 002 001 0117120 342 \0 B 006 001 U \0 006 002 < 376 001 \0 327 x 0117140 \t \f 024 V e r s i o n C h e c k 0117160 U n m a d e \0 Z 006 001 V 002 034 020 \0 0117200 \t \t 017 I l l e g a l C o m m a 0117220 n d Z 006 001 I \t \v 022 D r i v e A 0117240 l r e a d y O p e n \0 Z 006 001 < 0117260 \t \b \f D r i v e I n U s e \0 0117300 Z 006 001 { \t 006 \t D r i v e B a d 0117320 Z 006 001 s \0 \0 \t \n 020 B a d D r i 0117340 v e N u m b e r \0 Z 006 001 f \t \t 0117360 016 D r i v e N o t O p e n \0 0117400 Z 006 001 [ \f 355 \0 I \t \r 026 C a n n o 0117420 t s e t t h a t S t a t u 0117440 s \0 Z 006 001 J \f 355 \0 H \t \r 027 B a d 0117460 S e t t i n g f o r R e t 0117500 r i e s Z 006 001 9 \t \f 024 T a p e 0117520 W r i t e P r o t e c t e d \0 0117540 376 001 \0 274 024 Z 006 001 + \t \f 025 I l l e 0117560 g a l S p e e d S e t t i n 0117600 g Z 006 001 035 \t \t 017 I l l e g a l 0117620 C o m m a n d Z 006 001 022 001 021 " 005 \f 0117640 350 \0 \v \0 \v 377 342 377 323 377 303 377 261 377 \ 377 0117660 242 377 225 377 213 377 200 377 r 377 f 001 345 : 004 ; 0117700 005 Z \a ! N : \a C 001 " 005 : \a C 002 : 0117720 004 ; 004 # \v B \b " \b : \a C 003 : 004 Z 0117740 003 " \a * 006 i L \0 003 \f 366 Z 001 \f 370 \0 0117760 017 \f 367 : 004 ; 005 Z 006 : 004 ; 004 # \v B 0120000 \a 205 \0 : 006 C 002 " \a : 006 C 003 205 P : 0120020 006 C 001 " \a 202 @ 205 p 202 \f 001 004 ! ! : 0120040 006 C 001 " \a 9 1 347 004 205 P 202 \f 001 004 ! 0120060 030 : 006 C 001 " \a 9 ) 347 \0 B \b : \b 372 0120100 \r 001 004 ! 016 : 006 C 001 001 035 " \a 9 037 347 0120120 004 205 P 202 \r 001 004 ! 004 : 006 C 001 001 & \0 0120140 002 001 $ 001 # 376 001 \0 250 320 001 " 001 ! " \a 0120160 9 023 347 004 205 P 202 \f 001 004 ! 365 : 006 C 001 0120200 001 027 003 253 001 025 001 024 " 005 001 \a @ \0 \0 374 0120220 020 \0 \f 355 \0 \r 002 \0 \f 350 \0 017 \0 \a 377 363 0120240 377 347 377 345 377 343 377 341 377 337 377 323 001 001 \t \t 0120260 016 G o o d O p e r a t i o n \0 0120300 342 \0 B \t : 006 # 001 9 316 345 \f 001 \f \t \n 0120320 021 B a d E n d i n g S t a t 0120340 u s Z \t : 004 Z 003 " 006 * \t i 313 \0 003 0120360 \f 366 Z 001 \f 370 \0 016 \f 367 375 \0 Z \a : 005 0120400 # \0 9 = 347 300 9 257 346 \0 ) 255 \f 344 9 8 0120420 356 \0 : 004 K \0 375 \0 Z \b : 004 # \0 9 1 0120440 345 \0 B \t 001 016 " \b : 005 236 \0 # \0 * 004 0120460 9 ( 356 \0 : \b 276 \0 C \0 " \b 203 \0 B \b 0120500 " \b : \t 344 J 001 360 375 \0 Z \v : 004 # \0 0120520 202 P B \f 9 027 Z 003 : 006 # 002 * 004 i 023 0120540 \0 004 : 006 # 001 i 020 \0 001 376 \0 z ` J \f 0120560 366 Z 001 \f 370 \0 \b \f 367 " 004 i \t \0 001 \f 0120600 366 377 \0 \0 005 \0 004 \0 \b 003 d 003 e 002 305 \0 0120620 + \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0120640 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0120660 \0 001 212 001 ( 002 307 003 p 001 N 004 } \0 l \0 0120700 j \0 216 \0 267 \0 363 004 376 004 377 001 f 001 h 001 0120720 210 001 213 001 264 001 347 001 352 003 177 005 \0 002 311 002 0120740 310 002 365 002 364 002 366 \0 \0 377 \0 \0 L i n k 0120760 T a p e S e r v e r . c m \0 376 001 0121000 \0 177 001 b l d r / f 4 7 0 / w 0121020 T a p e S e r v e r T S P D O 0121040 s T a p e I O L o a d R a m 0121060 T a p e T f s S w a t P u p 0121100 1 b P u p 1 I n i t P u p 1 0121120 O p e n C l o s e P u p A l 1 0121140 a P u p A l E t h a P u p A 0121160 l E t h b P u p A l E t h I n 0121200 i t A l t o B y t e B l t A 0121220 l t o Q u e u e A l t o T i m 0121240 e r P u p B S P a P u p B S 0121260 P B l o c k P u p B S P O p e 0121300 n C l o s e P u p B S P P r o 0121320 t P u p B S P S t r e a m s 0121340 C o n t e x t C o n t e x t I 0121360 n i t P u p D u m m y G a t e 0121400 I n 376 \0 V 205 z t e r r u p t 0121420 I n t e r r u p t I n i t P u 0121440 p N a m e L o o k u p P u p R 0121460 o u t e P u p R T P P u p R 0121500 T P O p e n C l o s e T a p e 0121520 M i c r o c o d e X M \r 377 \0 0121540 \0 D u m p T a p e S e r v e r S 0121560 o u r c e s . c m \0 376 \0 266 263 334 f 0121600 t p i v y c o n n / c T a 0121620 p e S e r v e r d i r / c > 0121640 S o f t w a r e S o u r c e s > 0121660 d u m p / c T a p e S e r v 0121700 e r S o u r c e s . d m T S P 0121720 . d e c l T a p e S e r v e r 0121740 . b c p l T S P D O s . b c p 0121760 l T a p e S e r v e r . b r 0122000 T S P D O s . b r L i n k T a 0122020 p e S e r v e r . c m D u m p 0122040 T a p e S e r v e r S o u r c e 0122060 s . c m \r 374 0122066