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