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