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