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