$ 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