$ od -c -N 50000 [Indigo]<AltoSource>SIMPLEDISPLAYSTREAM.DM!2
0000000 377 \0 \0 S i m p l e D i s p l a y
0000020 S t r e a m . b c p l \0 373 230 343 .
0000040 346 \0 \0 376 001 \0 & 022 / / S i m p l
0000060 e D i s p l a y S t r e a m . b
0000100 c p l \r / / L a s t m o d i
0000120 f i e d A p r i l 1 3 , 1
0000140 9 8 2 1 0 : 4 9 A M b y
0000160 T a f t \r \r g e t " A l t o
0000200 D e f s . d " \r g e t " S t r
0000220 e a m s . d " \r \r e x t e r n a
0000240 l \r [ \r / / o u t g o i n g
0000260 p r o c e d u r e s \r C r e a t
0000300 e S i m p l e D s p S t r e a m
0000320 ; S i m p l e D s p S e t L M
0000340 a r g ; S i m p l e D s p S e
0000360 t R M a r g ; \r S i m p l e D s
0000400 p G e t L i n e P o s ; S i m
0000420 p l e D s p S e t L i n e P o s
0000440 \r S i m p l e D 376 001 \0 _ N s p G
0000460 e t B i t P o s ; S i m p l e
0000500 D s p S e t B i t P o s ; S i
0000520 m p l e D s p R e s e t L i n e
0000540 \r S i m p l e D s p E r a s e B
0000560 i t s ; S i m p l e D s p D C
0000600 B ; S i m p l e D s p C h a r
0000620 W i d t h \r \r / / f o r O E
0000640 P d e c l a r a t i o n o n
0000660 l y : \r S i m p l e D s p P u t
0000700 s ; S i m p l e D s p R e s e
0000720 t s ; S i m p l e D s p C l o
0000740 s e s \r \r / / i n c o m i n g
0000760 p r o c e d u r e s \r A l l o
0001000 c a t e ; F r e e ; Z e r o
0001020 ; S e t B l o c k ; D e f a
0001040 u l t A r g s \r P u t s ; 376 001 \0
0001060 ~ 001 R e s e t s ; B i t B l
0001100 t ; S y s E r r ; M i n ;
0001120 M a x \r \r / / i n c o m i n g
0001140 s t a t i c s \r s y s Z o n e
0001160 \r ] \r \r / / - - - - - - - - - -
0001200 - - - - - - - - - - - - - - - -
*
0001300 - \r s t r u c t u r e S D S :
0001320 \t \t / / S i m p l e D i s p
0001340 l a y S t r e a m \r / / - - -
0001360 - - - - - - - - - - - - - - - -
*
0001460 - - 376 001 \0 4 - - - - - - - \r [ \r
0001500 @ S T \r d c b @ D C B \r b b t
0001520 @ B B T \r z o n e w o r d \r
0001540 s t r i k e F o n t w o r d \r
0001560 x P o s T a b l e w o r d \t \t
0001600 / / - > s t r i k e F o n t
0001620 > > S t r i k e . x P o s T a b
0001640 l e \r l e f t M a r g i n w o
0001660 r d \t \t / / i n b i t s f
0001700 r o m l e f t e d g e o f
0001720 b i t m a p \r r i g h t M a
0001740 r g i n w o r d \t / / i n
0001760 b i t s f r o m l e f t e
0002000 d g e o f b i t m a p \r ]
0002020 \r m a n i f e s t l S D S =
0002040 s i z e S D S / 1 6 \r c o m
0002060 p i l e i f 376 001 \0 @ 316 ( o f f
0002100 s e t S D S . d c b & 3 7
0002120 B ) n e 0 % ( o f f s e
0002140 t S D S . b b t & 3 7 B )
0002160 n e 0 t h e n \r [
0002200 B a r f ( " D C B o r B B T
0002220 n o t e v e n - w o r d a
0002240 l i g n e d " ) ] \r \r / / - -
0002260 - - - - - - - - - - - - - - - -
*
0002360 - - - - - - - - - \r s t r u c t
0002400 u r e S t r i k e : \t / / S
0002420 t r i k e ( o l d - f o r m a
0002440 t ) f o n t \r / / - - - - - -
0002460 - - - - - - - - - - - - 376 001 \0 261
0002500 276 - - - - - - - - - - - - - - -
0002520 - - - - - - - - - - - - - - - -
*
0002560 - - - - - - - - - - \r [ \r o n e
0002600 B i t b i t \t \t / / = 1 t
0002620 o m e a n n e w s t y l e
0002640 f o n t \r i n d e x b i t \r
0002660 f i x e d b i t \r b l a n k
0002700 b i t 1 3 \r m i n w o r d \t
0002720 \t / / L o w e s t c h a r
0002740 c o d e \r m a x w o r d \t \t /
0002760 / H i g h e s t c h a r c
0003000 o d e \r m a x W i d t h w o r
0003020 d \t \t / / M a x i m u m w i
0003040 d t h \r \r / / T h e r e s t
0003060 i s c a l l e d t h e "
0003100 s 376 001 \0 321 3 t r i k e b o d y
0003120 " , a n d i n c l u d e s
0003140 o v e r h e a d , b i t m a p
0003160 , a n d x P o s T a b l e .
0003200 \r l e n g t h w o r d \t \t / /
0003220 N u m b e r o f w o r d s
0003240 i n s t r i k e b o d y \r
0003260 a s c e n t w o r d \t \t / /
0003300 a b o v e b a s e l i n e \r
0003320 d e s c e n t w o r d \t \t / /
0003340 b e l o w b a s e l i n e
0003360 \r x O f f s e t w o r d \t \t /
0003400 / f o r k e r n i n g (
0003420 n o t i m p l e m e n t e d ,
0003440 a l w a y s z e r o ) \r r a
0003460 s t e r w o r d \t \t / / #
0003500 w o r d s 376 001 \0 : 233 p e r s
0003520 c a n l i n e \r b i t m a p
0003540 w o r d 0 \t \t / / b i t m
0003560 a p b e g i n s h e r e :
0003600 r a s t e r * h e i g h t w o
0003620 r d s \r / / x P o s T a b l e
0003640 ^ m i n , m a x w o r d
0003660 / / x - c o o r d i n a t e s
0003700 o f t h e c h a r a c t e
0003720 r s i n t h e b i t m a
0003740 p \r ] \r \f \r / / P u b l i c
0003760 p r o c e d u r e s \r \r / / - -
0004000 - - - - - - - - - - - - - - - -
*
0004100 - - - - - - - - - \r l 376 001 \0 e 362
0004120 e t C r e a t e S i m p l e D
0004140 s p S t r e a m ( b i t m a p ,
0004160 w i d t h , h e i g h t ,
0004200 s t r i k e F o n t , \r
0004220 z o n e ; n u m a r g s n a
0004240 ) = v a l o f \r / / - - - -
0004260 - - - - - - - - - - - - - - - -
*
0004360 - - - - - - - \r / / b i t m a
0004400 p i s t h e b i t m a p
0004420 s t a r t i n g a d d r e s
0004440 s a n d m u s t b e e v
0004460 e n . \r / / w i d t h i s
0004500 i n w o r d s a n d m u s
0004520 376 001 \0 \f 376 t b e e v e n . \r
0004540 / / h e i g h t i s i n
0004560 s c a n l i n e s a n d m
0004600 u s t b e e v e n . \r / /
0004620 s t r i k e F o n t m u s t
0004640 b e a p o i n t e r t o
0004660 a . s t r i k e ( n o n - k
0004700 e r n e d ) f o n t . \r / /
0004720 C l i e n t i s r e s p o n
0004740 s i b l e f o r l i n k i n
0004760 g D C B i n t o t h e d
0005000 i s p l a y l i s t a s d
0005020 e s i r e d . \r [ \r D e f a u l
0005040 t A r g s ( l v n a , - 4 ,
0005060 s y s Z o n e ) \r l e t s d
0005100 s = A l l o c a t e ( z o n
0005120 e , l S 376 001 \0 265 \t D S , f a
0005140 l s e , t r u e ) / / e
0005160 v e n - w o r d a l i g n e d
0005200 \r Z e r o ( s d s , l S D S )
0005220 \r S e t B l o c k ( s d s , S
0005240 y s E r r , l S T ) \r s d s >
0005260 > S D S . p u t s = S i m p
0005300 l e D s p P u t s \r s d s > > S
0005320 D S . r e s e t = S i m p l
0005340 e D s p R e s e t s \r s d s > >
0005360 S D S . c l o s e = S i m p
0005400 l e D s p C l o s e s \r s d s >
0005420 > S D S . d c b . b i t m a p
0005440 = b i t m a p \r s d s > > S D
0005460 S . d c b . w i d t h = w i
0005500 d t h \r s d s > > S D S . d c b
0005520 . h e i g h t = 376 001 \0 205 004 h
0005540 e i g h t r s h i f t 1 \r s
0005560 d s > > S D S . b b t . d b c a
0005600 = b i t m a p \r s d s > > S
0005620 D S . b b t . d b m r = w i
0005640 d t h \r s d s > > S D S . r i g
0005660 h t M a r g i n = w i d t h
0005700 l s h i f t 4 \r s d s > > S
0005720 D S . b b t . d h = s t r i
0005740 k e F o n t > > S t r i k e . a
0005760 s c e n t + s t r i k e F o
0006000 n t > > S t r i k e . d e s c e
0006020 n t \r s d s > > S D S . b b t .
0006040 s b c a = l v s t r i k e
0006060 F o n t > > S t r i k e . b i t
0006100 m a p \r s d s > > S D S . b b t
0006120 . s b m r = s t r i k e F 376
0006140 001 \0 275 207 o n t > > S t r i k e .
0006160 r a s t e r \r s d s > > S D S .
0006200 z o n e = z o n e \r s d s >
0006220 > S D S . s t r i k e F o n t
0006240 = s t r i k e F o n t \r s d s
0006260 > > S D S . x P o s T a b l e
0006300 = l v s t r i k e F o n t >
0006320 > S t r i k e . b i t m a p +
0006340 \r ( s t r i k e F o n t > > S
0006360 t r i k e . r a s t e r * s
0006400 d s > > S D S . b b t . d h ) \r
0006420 R e s e t s ( s d s ) \r r e s u
0006440 l t i s s d s \r ] \r \r \r / /
0006460 S e t t i n g m a r g i n s :
0006500 \r / / M o v i n g m a r g i
0006520 n s i n f r o m t h e e
0006540 d g e s 376 001 \0 [ 327 o f t h e
0006560 b i t m a p c a u s e s
0006600 t h e r e g i o n s o u t s
0006620 i d e \r / / t h e m a r g i
0006640 n s n o t t o b e t o u
0006660 c h e d b y a n y s u b s
0006700 e q u e n t o p e r a t i o n
0006720 b e s i d e s R e s e t s .
0006740 \r / / T h i s m e a n s t
0006760 h a t t h e c l i e n t h
0007000 a s c o m p l e t e f r e e
0007020 d o m i n d e f i n i n g
0007040 t h e c o n t e n t s \r / /
0007060 o f t h e s e r e g i o n s
0007100 . \r \r / / - - - - - - - - - - -
0007120 - - - - - - - - - - - - - - - -
0007140 - - - - - - - - - 376 001 \0 234 237 - -
0007160 - - - - - - - - - - - - - - - -
*
0007220 - - - - - \r a n d S i m p l e
0007240 D s p S e t L M a r g ( s d s ,
0007260 m a r g i n ) b e s d s >
0007300 > S D S . l e f t M a r g i n
0007320 = m a r g i n \r / / - - - - -
0007340 - - - - - - - - - - - - - - - -
*
0007440 - - - - - - \r \r / / - - - - - -
0007460 - - - - - - - - - - - - - - - -
*
0007540 - - - - - - - - - - - - - - 376 001
0007560 \0 026 177 - - - - - - - \r a n d S
0007600 i m p l e D s p S e t R M a r g
0007620 ( s d s , m a r g i n ) b e
0007640 s d s > > S D S . r i g h t M
0007660 a r g i n = m a r g i n \r /
0007700 / - - - - - - - - - - - - - - -
0007720 - - - - - - - - - - - - - - - -
*
0010000 - - - - - - - - - - - - \r \r \r /
0010020 / T e x t l i n e o p e r
0010040 a t i o n s : \r / / T h e t
0010060 o p m o s t t e x t l i n e
0010100 i s n u m b e r e d z e r
0010120 o . N o b o u n d s c h
0010140 e c k s a r e d o n e . \r \r
0010160 / / - 376 001 \0 % 374 - - - - - - - -
0010200 - - - - - - - - - - - - - - - -
*
0010300 - - \r a n d S i m p l e D s p
0010320 G e t L i n e P o s ( s d s )
0010340 = s d s > > S D S . b b t . d
0010360 t y / s d s > > S D S . b b
0010400 t . d h \r / / - - - - - - - - -
0010420 - - - - - - - - - - - - - - - -
*
0010520 - - \r \r / / - - - - - - - - - -
0010540 - - - - - - - - - - - - - - - -
0010560 - - - - - - - - 376 001 \0 > 375 - - -
0010600 - - - - - - - - - - - - - - - -
*
0010640 - - - - - - \r a n d S i m p l
0010660 e D s p S e t L i n e P o s ( s
0010700 d s , l i n e ) b e \r / / -
0010720 - - - - - - - - - - - - - - - -
*
0011020 - - - - - - - - - - \r / / P o
0011040 s i t i o n s t o t h e l
0011060 e f t m a r g i n o f t h
0011100 e s p e c i f i e d l i n e
0011120 . \r / / D o e s n o t a c
0011140 t u a l l y m o d i f y t h
0011160 e l i n e . \r [ \r s d s 376 001 \0
0011200 n i > > S D S . b b t . d t y
0011220 = l i n e * s d s > > S D
0011240 S . b b t . d h \r s d s > > S D
0011260 S . b b t . d l x = s d s >
0011300 > S D S . l e f t M a r g i n \r
0011320 ] \r \f \r / / P u b l i c p r
0011340 o c e d u r e s ( c o n t ' d
0011360 ) \r \r / / B i t p o s i t i
0011400 o n s a r e r e l a t i v e
0011420 t o t h e l e f t e d g
0011440 e o f t h e b i t m a p
0011460 , n o t r e l a t i v e \r /
0011500 / t o t h e l e f t m a
0011520 r g i n . N o b o u n d s
0011540 c h e c k s a r e d o n e
0011560 . \r \r / / - - - - - - - - - - -
0011600 - - 376 001 \0 231 354 - - - - - - - - -
0011620 - - - - - - - - - - - - - - - -
*
0011700 - - - - - \r a n d S i m p l e
0011720 D s p G e t B i t P o s ( s d s
0011740 ) = s d s > > S D S . b b t
0011760 . d l x \r / / - - - - - - - - -
0012000 - - - - - - - - - - - - - - - -
*
0012100 - - \r \r / / - - - - - - - - - -
0012120 - - - - - - - - - - - - - - - -
*
0012200 - - - - - - - 376 001 \0 k X - - - -
0012220 - - - - - - \r a n d S i m p l
0012240 e D s p S e t B i t P o s ( s d
0012260 s , p o s ) b e s d s > >
0012300 S D S . b b t . d l x = p o
0012320 s \r / / - - - - - - - - - - - -
0012340 - - - - - - - - - - - - - - - -
*
0012420 - - - - - - - - - - - - - - - \r
0012440 \r / / - - - - - - - - - - - - -
0012460 - - - - - - - - - - - - - - - -
*
0012540 - - - - - - - - - - - - - - \r a
0012560 n d S i m p l e D s p R e s e
0012600 t L i n e ( s d s ) b 376 001 \0 B
0012620 372 e \r / / - - - - - - - - - - -
0012640 - - - - - - - - - - - - - - - -
*
0012740 \r / / E r a s e s t h e c
0012760 u r r e n t l i n e , a n d
0013000 l e a v e s t h e s t r e
0013020 a m p o s i t i o n e d a t
0013040 t h e l e f t m a r g i n
0013060 . \r [ \r s d s > > S D S . b b t
0013100 . d l x = s d s > > S D S .
0013120 r i g h t M a r g i n \r S i m p
0013140 l e D s p E r a s e B i t s ( s
0013160 d s , s d s > > S D S . l e f
0013200 t M a r g i n - s d s > > S
0013220 D 376 001 \0 : B S . r i g h t M a r
0013240 g i n ) \r ] \r \r / / - - - - - -
0013260 - - - - - - - - - - - - - - - -
*
0013360 - - - - - \r a n d S i m p l e
0013400 D s p E r a s e B i t s ( s d s
0013420 , n B i t s , f l a g ; n
0013440 u m a r g s n a ) b e \r / /
0013460 - - - - - - - - - - - - - - - -
*
0013560 - - - - - - - - - - - \r / / E
0013600 r a s e s n B i t s r e l a
0013620 t i v e t 376 001 \0 333 \v o t h e
0013640 c u r r e n t p o s i t i o
0013660 n ( p o s i t i v e = > r
0013700 i g h t , n e g a t i v e =
0013720 > l e f t ) \r / / a n d a
0013740 d j u s t s t h e c u r r e
0013760 n t p o s i t i o n b y n
0014000 B i t s . N o b o u n d s
0014020 c h e c k s a r e d o n e
0014040 . \r / / F l a g = 0 o r o
0014060 m i t t e d s e t s t h e
0014100 e r a s e d r e g i o n t o
0014120 z e r o ; f l a g = 1 s e
0014140 t s i t t o a l l o n e
0014160 s ; \r / / f l a g = - 1 c o
0014200 m p l e m e n t s t h e r e
0014220 g i o n . \r [ \r i f 376 001 \0 233 272
0014240 n a l s 3 t h e n f l a
0014260 g = 0 \r l e t n e w P o s
0014300 = s d s > > S D S . b b t .
0014320 d l x + n B i t s \r s d s >
0014340 > S D S . b b t . d l x = M
0014360 i n ( s d s > > S D S . b b t .
0014400 d l x , n e w P o s ) \r s d s
0014420 > > S D S . b b t . d w = M
0014440 a x ( n B i t s , - n B i t s
0014460 ) \r s d s > > S D S . b b t . f
0014500 u n c t i o n = f l a g l
0014520 s 0 ? 1 6 B , 1 4 B /
0014540 / i n v e r t , r e p l a c
0014560 e \r S e t B l o c k ( l v s d
0014600 s > > S D S . b b t . g r a y ,
0014620 f l a g n e 0 , 4 ) \r B
0014640 376 001 \0 366 i t B l t ( l v s d
0014660 s > > S D S . b b t ) \r Z e r o
0014700 ( l v s d s > > S D S . b b t
0014720 . g r a y , 4 ) \r s d s > > S
0014740 D S . b b t . d l x = n e w
0014760 P o s \r ] \r \r \r / / M i s c e
0015000 l l a n e o u s : \r \r / / - - -
0015020 - - - - - - - - - - - - - - - -
*
0015120 - - - - - - - - \r a n d S i m
0015140 p l e D s p D C B ( s d s ) =
0015160 l v s d s > > S D S . d c b
0015200 \r / / - - - - - - - - - - - - -
0015220 - - - - - - - - - - - - - - - -
0015240 - - - - - 376 001 \0 253 223 - - - - - -
0015260 - - - - - - - - - - - - - - - -
*
0015320 - - - \r / / R e t u r n s t
0015340 h e a d d r e s s o f t h
0015360 e D C B , w h i c h t h e
0015400 c a l l e r m a y f i d d
0015420 l e w i t h . \r \r / / - - - -
0015440 - - - - - - - - - - - - - - - -
*
0015540 - - - - - - - \r a n d S i m p
0015560 l e D s p C h a r W i d t h ( s
0015600 d s , c h a r ) = v a l o
0015620 f \r / / - - - - - - - - - - - -
0015640 - - - - - - - - - - 376 001 \0 377 310 -
0015660 - - - - - - - - - - - - - - - -
*
0015740 - - - - \r / / R e t u r n s
0015760 t h e w i d t h o f t h e
0016000 c h a r a c t e r i n t h
0016020 e f o n t a s s o c i a t e
0016040 d w i t h s d s . \r [ \r l e
0016060 t s t r i k e F o n t = s
0016100 d s > > S D S . s t r i k e F o
0016120 n t \r l e t x I n d e x =
0016140 c h a r - s t r i k e F o n
0016160 t > > S t r i k e . m i n \r
0016200 [ / / r e p e a t \r
0016220 i f x I n d e x l s 0 %
0016240 c h a r g r s t r i k e 376
0016260 001 \0 350 034 F o n t > > S t r i k e
0016300 . m a x t h e n \r
0016320 x I n d e x = s t r i k e F
0016340 o n t > > S t r i k e . m a x -
0016360 s t r i k e F o n t > > S t r i
0016400 k e . m i n + 1 \r l e t
0016420 w i d t h = ( s d s > > S D
0016440 S . x P o s T a b l e ) ! ( x I
0016460 n d e x + 1 ) - ( s d s > >
0016500 S D S . x P o s T a b l e ) ! x
0016520 I n d e x \r i f w i d t
0016540 h n e 0 t h e n r e s u
0016560 l t i s w i d t h \r x I
0016600 n d e x = - 1 \r ] r
0016620 e p e a t \r ] \r \f \r / / S t r
0016640 e a m o b j e c t o p e r a
0016660 t i o n 376 001 \0 \f 200 s \r \r / / - -
0016700 - - - - - - - - - - - - - - - -
*
0017000 - - - - - - - - - \r a n d S i
0017020 m p l e D s p P u t s ( s d s ,
0017040 c h a r ) b e \r / / - - - -
0017060 - - - - - - - - - - - - - - - -
*
0017160 - - - - - - - \r [ \r l e t s t
0017200 r i k e F o n t = s d s > >
0017220 S D S . s t r i k e F o n t \r s
0017240 w i t c h o n c h a r i n t
0017260 o \r [ \r 376 001 \0 020 A c
0017300 a s e $ * n : \r [
0017320 \r l e t n e w Y
0017340 = s d s > > S D S . b b t . d
0017360 t y + s d s > > S D S . b b
0017400 t . d h \r t e s t
0017420 ( n e w Y + s d s > > S D S
0017440 . b b t . d h ) g r ( s d s
0017460 > > S D S . d c b . h e i g h t
0017500 l s h i f t 1 ) \r
0017520 i f s o S c r o l l U
0017540 p ( s d s ) \r
0017560 i f n o t s d s > > S D S . b
0017600 b t . d t y = n e w Y \r
0017620 S i m p l e D s p R e s
0017640 e t L i n e ( s d s ) \r
0017660 e n d c a s e \r 376 001
0017700 \0 T 221 ] \r d e f a u l
0017720 t : \r [ \r
0017740 l e t x I n d e x = c h
0017760 a r - s t r i k e F o n t >
0020000 > S t r i k e . m i n \r
0020020 i f x I n d e x l s 0
0020040 % c h a r g r s t r i k
0020060 e F o n t > > S t r i k e . m a
0020100 x t h e n \r
0020120 x I n d e x = s t r i k e F
0020140 o n t > > S t r i k e . m a x -
0020160 s t r i k e F o n t > > S t r i
0020200 k e . m i n + 1 \r l
0020220 e t x O f f s e t = ( s d
0020240 s > > S D S . x P o s T a b l e
0020260 ) ! x I n d e x \r l
0020300 e t 376 001 \0 325 252 w i d t h =
0020320 ( s d s > > S D S . x P o s T a
0020340 b l e ) ! ( x I n d e x + 1 )
0020360 - x O f f s e t \r
0020400 i f w i d t h e q 0 t h
0020420 e n \r [ c h
0020440 a r = s t r i k e F o n t >
0020460 > S t r i k e . m a x + 1 ; d
0020500 o c a s e c h a r ] \r
0020520 i f ( s d s > > S D S .
0020540 b b t . d l x + w i d t h )
0020560 g r s d s > > S D S . r i g
0020600 h t M a r g i n t h e n \r
0020620 [ P u t s ( s d
0020640 s , $ * n ) ; d o c a s e
0020660 c h a r ] \r s d s
0020700 > > S D S . b b 376 001 \0 374 ; t . d
0020720 w = w i d t h \r
0020740 s d s > > S D S . b b t . s l x
0020760 = x O f f s e t \r
0021000 s d s > > S D S . b b t . f u
0021020 n c t i o n = 1 / / p
0021040 a i n t , f r o m s o u r c
0021060 e b l o c k \r B i
0021100 t B l t ( l v s d s > > S D S
0021120 . b b t ) \r s d s >
0021140 > S D S . b b t . d l x = s
0021160 d s > > S D S . b b t . d l x
0021200 + w i d t h \r e n
0021220 d c a s e \r ] \r
0021240 ] \r ] \r \r / / - - - - - - - -
0021260 - - - - - - - - - - - - - - - -
0021300 - - - - - - - - - - - - - 376 001 \0
0021320 223 216 - - - - - - - - - - - - - -
0021340 - - - - - - - - - - - - - - - -
0021360 - - - - - - - - \r a n d S i m
0021400 p l e D s p R e s e t s ( s d s
0021420 ) b e \r / / - - - - - - - - -
0021440 - - - - - - - - - - - - - - - -
*
0021540 - - \r [ \r Z e r o ( s d s > > S
0021560 D S . d c b . b i t m a p , s
0021600 d s > > S D S . d c b . w i d t
0021620 h * s d s > > S D S . d c b . h
0021640 e i g h t * 2 ) \r s d s > > S D
0021660 S . b b t . d l x = s d s >
0021700 > S D S . l e f t M a r g i n \r
0021720 s d 376 001 \0 . 306 s > > S D S . b b
0021740 t . d t y = 0 \r ] \r \r / / -
0021760 - - - - - - - - - - - - - - - -
*
0022060 - - - - - - - - - - \r a n d S
0022100 i m p l e D s p C l o s e s ( s
0022120 d s , c h a r ) b e \r / / -
0022140 - - - - - - - - - - - - - - - -
*
0022240 - - - - - - - - - - \r / / R e
0022260 m o v e s D C B f r o m t
0022300 h e d i s p l a y l i s t
0022320 ( i f p r e 376 001 \0 273 223 s e n t
0022340 ) a n d d e s t r o y s s
0022360 t r e a m . \r [ \r l e t d c b
0022400 = @ d i s p l a y L i s t H
0022420 e a d \r [ / / r e p e
0022440 a t \r i f d c b e q
0022460 0 t h e n b r e a k \r
0022500 i f d c b > > D C B . n e x t
0022520 e q l v s d s > > S D S .
0022540 d c b t h e n \r [
0022560 d c b > > D C B . n e x t =
0022600 s d s > > S D S . d c b . n e
0022620 x t ; b r e a k ] \r d
0022640 c b = d c b > > D C B . n e
0022660 x t \r ] r e p e a t \r F
0022700 r e e ( s d s > > S D S . z o n
0022720 e , s d s ) \r ] \r \f \r 376 001 \0 \t
0022740 \f / / I n t e r n a l p r o
0022760 c e d u r e s \r \r / / - - - - -
0023000 - - - - - - - - - - - - - - - -
*
0023100 - - - - - - \r a n d S c r o l
0023120 l U p ( s d s ) b e \r / / - -
0023140 - - - - - - - - - - - - - - - -
*
0023240 - - - - - - - - - \r [ \r l e t
0023260 b b t = v e c l B B T ;
0023300 b b t = ( b b t + 1 ) &
0023320 - 2 \r Z e r o ( b b t , l B B
0023340 T 376 001 \0 032 T ) \r b b t > > B B T
0023360 . d b c a = s d s > > S D S
0023400 . b b t . d b c a \r b b t > > B
0023420 B T . d b m r = s d s > > S
0023440 D S . b b t . d b m r \r b b t >
0023460 > B B T . d l x = s d s > >
0023500 S D S . l e f t M a r g i n \r b
0023520 b t > > B B T . d w = s d s
0023540 > > S D S . r i g h t M a r g i
0023560 n - s d s > > S D S . l e f
0023600 t M a r g i n \r b b t > > B B T
0023620 . d h = ( s d s > > S D S .
0023640 d c b . h e i g h t l s h i f
0023660 t 1 ) - s d s > > S D S .
0023700 b b t . d h \r b b t > > B B T .
0023720 s b c a = s d s > > S D S .
0023740 b b t . d b 376 \0 256 303 \v c a \r b b
0023760 t > > B B T . s b m r = s d
0024000 s > > S D S . b b t . d b m r \r
0024020 b b t > > B B T . s l x = s
0024040 d s > > S D S . l e f t M a r g
0024060 i n \r b b t > > B B T . s t y
0024100 = s d s > > S D S . b b t . d
0024120 h \r / / b b t > > B B T . f u
0024140 n c t i o n = 0 / / r
0024160 e p l a c e , f r o m s o u
0024200 r c e b l o c k \r B i t B l t
0024220 ( b b t ) \r ] \r \r 377 \0 \0 S i m p
0024240 l e D i s p l a y T e s t . b c
0024260 p l \0 373 230 343 / 331 \0 \0 376 001 \0 p \n /
0024300 / S i m p l e D i s p l a y T
0024320 e s t . b c p l \r / / L a s t
0024340 m o d i f i e d A p r i l
0024360 1 3 , 1 9 8 2 1 0 : 5 9
0024400 A M b y T a f t \r \r / / B
0024420 l d r S i m p l e D i s p l a
0024440 y T e s t S i m p l e D i s p
0024460 l a y S t r e a m G a c h a 1
0024500 0 S t r i k e \r \r g e t " A l
0024520 t o D e f s . d " \r g e t " S
0024540 t r e a m s . d " \r \r e x t e r
0024560 n a l \r [ \r C r e a t e S i m p
0024600 l e D s p S t r e a m ; S i m
0024620 p l e D s p D C B ; G a c h a
0024640 1 0 \r S i m p l e D s p S e t L
0024660 M a r g ; S i m p l e D s p 376
0024700 001 \0 q s S e t R M a r g ; S i
0024720 m p l e D s p S e t L i n e P o
0024740 s ; S i m p l e D s p R e s e
0024760 t L i n e \r S i m p l e D s p G
0025000 e t B i t P o s ; S i m p l e
0025020 D s p E r a s e B i t s ; S i
0025040 m p l e D s p C h a r W i d t h
0025060 \r G e t s ; P u t s ; C l o
0025100 s e s \r d s p ; k e y s \r ] \r
0025120 \r \r l e t T e s t ( ) b e \r
0025140 [ \r m a n i f e s t w i d t h
0025160 = 3 8 \r m a n i f e s t h
0025200 e i g h t = 4 0 0 \r l e t
0025220 b i t m a p = v e c w i d
0025240 t h * h e i g h t ; b i t m a
0025260 p = ( b i t m a p + 1 ) &
0025300 - 2 \r 376 001 \0 7 361 l e t s d s
0025320 = C r e a t e S i m p l e D
0025340 s p S t r e a m ( b i t m a p ,
0025360 w i d t h , h e i g h t ,
0025400 G a c h a 1 0 ) \r S i m p l e D
0025420 s p S e t L M a r g ( s d s ,
0025440 1 0 ) \r S i m p l e D s p S e t
0025460 R M a r g ( s d s , 1 6 * w i
0025500 d t h - 2 0 ) \r S i m p l e
0025520 D s p S e t L i n e P o s ( s d
0025540 s , 0 ) \r d s p > > D S . l d
0025560 c b > > D C B . n e x t = S
0025600 i m p l e D s p D C B ( s d s )
0025620 \r \r [ / / r e p e a t
0025640 \r l e t c h a r = G
0025660 e t s ( k e y s ) \r s w i
0025700 t c h o n c h a 376 001 \0 323 226 r
0025720 i n t o \r [ \r
0025740 c a s e 3 3 B : \r
0025760 b r e a k \r \r
0026000 c a s e 0 1 B : c a s
0026020 e 1 0 B : \r
0026040 i f S i m p l e D s p G e t B
0026060 i t P o s ( s d s ) g r 1 0
0026100 t h e n \r
0026120 S i m p l e D s p E r a s e
0026140 B i t s ( s d s , - S i m p l
0026160 e D s p C h a r W i d t h ( s d
0026200 s , $ * s ) ) \r
0026220 e n d c a s e \r \r
0026240 c a s e $ 0 t o $ 9 : \r
0026260 i f ( @ 1 7
0026300 7 0 3 7 B & 4 B ) e q 376 \0
0026320 374 H 377 0 t h e n \r
0026340 [ \r
0026360 S i m p l e D s p S e
0026400 t L i n e P o s ( s d s , c h
0026420 a r - $ 0 ) \r
0026440 S i m p l e D s p R e s e
0026460 t L i n e ( s d s ) \r
0026500 e n d c a s e \r
0026520 ] \r
0026540 / / f a l l i n
0026560 t o d e f a u l t c a s e \r
0026600 \r d e f a u l t : \r
0026620 P u t s ( s d
0026640 s , c h a r ) \r ]
0026660 \r ] r e p e a t \r \r C l
0026700 o s e s ( s d s ) \r ] \r \r \r \r 377
0026720 \0 \0 G a c h a 1 0 S t r i k e .
0026740 b r \0 373 230 333 235 212 \0 \0 376 001 \0 366 255 002
0026760 \0 002 K \0 \0 \0 024 \0 \0 \0 017 \0 \0 \0 033 \0
0027000 \0 \0 022 \0 \0 \0 023 \0 \0 \0 \0 \0 \0 \0 001 \0
0027020 001 \0 001 \0 \0 \0 \0 \0 001 \0 ` \0 \0 \a G a
0027040 c h a 1 0 002 / \0 \0 200 \0 \0 030 \0 ~ \0
0027060 \a 002 * \0 \t \0 003 \0 \0 \0 % \0 \0 \0 \0 \0
0027100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0027160 \0 \0 020 @ \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0027200 \0 \0 \0 \0 \0 \0 \0 205 024 " D \b 021 002 \0 \0
0027220 \0 002 p 207 034 023 307 > q 300 \0 \0 \0 030 p 216
0027240 034 363 357 234 213 347 " 202 ( 234 361 317 034 372 ( 242
0027260 212 / 234 201 300 \0 002 \0 002 \0 300 020 H 8 \0
0027300 \0 \0 \0 \0 \0 \0 \0 \0 \0 001 210 300 \0 \0 \0 \0
0027320 \0 205 024 u J \b 212 200 \0 \0 002 211 210 242 2
0027340 \b 202 212 \0 020 \b $ 210 211 " 212 \b " 210 376
0027360 001 \0 377 225 201 $ 202 , 242 212 ( 242 " ( 242 212
0027400 ! 020 200 @ \0 002 \0 002 001 \0 \b \b \0 \0
0027420 \0 \0 \0 020 \0 \0 \0 \0 002 \b \0 \0 \0 \0 \0
0027440 205 > 255 212 \b 207 \b \0 \0 004 232 210 202 2 \b
0027460 004 212 \0 004 $ 271 I 212 \b 210 201 (
0027500 203 l 242 212 ( 240 " ( 252 Q A 020 @ B \b b
0027520 307 032 q 006 254 q 311 \b 252 307 , j 307 < 212 *
0027540 242 213 342 \b 017 \0 \0 \0 \0 200 024 242 204 \0 @
0027560 J 210 \0 \0 004 250 201 \f S 313 004 r b \b C 302
0027600 004 251 O 213 317 370 201 0 203 j 242 212 ( 234
0027620 " ( 252 ! B 020 @ G 020 223 ( 246 213 311 262 020
0027640 J \b 373 ( 262 233 ( 220 212 * 224 210 B \b 017
0027660 \0 \0 \0 \0 200 024 q J 200 @ B > 003 300 \b 250
0027700 202 002 R , 210 211 242 \b 200 001 \b 251 H 240 212 \b
0027720 . 210 201 0 203 j 242 362 / 002 " % * 202 020
0027740 J 276 r ( " 371 \b 242 020 L \b 252 ( 242 212
0027760 & 020 211 J 376 001 \0 210 344 210 P 202 \b 017 \0
0030000 \0 \0 \0 200 > ) 252 200 @ @ \b \0 \0 \b 310 204
0030020 002 370 ( 210 210 \0 C 302 \b 273 350 240 212 \b "
0030040 210 201 ( 202 251 242 202 ) 002 " % 024 P 204 020
0030060 B 020 222 ( " 201 \b 242 020 J \b 252 ( 242 212 001
0030100 020 211 E \b P 214 \b 031 257 \0 \0 \0 \0 \0 024 252
0030120 251 \0 @ @ \b \0 \0 020 210 210 " 022 ( 220 212
0030140 \0 004 \0 202 ( 242 212 \b & 210 221 $ 202 251 242
0030160 202 ( 242 " " 024 210 204 020 020 B \b 223 ( 246 211
0030200 \t 242 020 I \b 252 ( 262 232 \b 222 230 205 024 Q 002
0030220 \b " 317 \0 \0 \0 \0 200 024 r F 200 @ @ \0 `
0030240 002 020 s 357 234 021 307 020 q 302 030 020 \b \b z /
0030260 034 363 350 032 213 356 " 372 250 234 201 310 234 ! 302 024
0030300 210 217 220 020 B \0 z 307 032 q 006 242 020 H 210 252
0030320 ' , j \a \f h 205 " # 342 \b 017 \0 \0 \0
0030340 \0 200 \0 \0 \0 200 \0 002 \0 \0 \0 \0 \0
0030360 \0 \0 \0 002 \b \0 \0 \b \0 376 001 \0 017 345 \0 \0
0030400 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 200 \0 \0 \0 \0 \0
0030420 \0 020 \0 @ \0 \0 \0 \0 \0 \0 200 \0 @ \0 \0 \0
0030440 \b \0 \0 \0 \0 \0 002 \b 017 \0 \0 \0 \0
0030460 \0 \0 \0 \0 \0 200 \0 @ \0 \0 \0 \0 \0 \0 \0
0030500 \0 \0 \0 020 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0030520 \0 \0 \0 \0 ` \0 \0 \0 \0 \0 \0 020 \0 @ \0 \0
0030540 \0 \0 \0 \b 200 004 @ \0 \0 \0 \b \0 \0 \0 \0
0030560 001 002 \b 017 \0 \0 376 \0 \0 \0 \0 \0 \0 021
0030600 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0030640 \0 \0 \0 \0 \0 034 001 300 \0 \0 \0 \0 \0 \a \0 003
0030660 200 \0 \0 \0 \b \0 \0 \0 \0 \0 300 001 210 300 017
0030700 \0 \0 \0 \0 \0 \a \0 \a \0 \a \0 \a \0 \a \0 \a
0030720 \0 \a \0 \a \0 \r \0 023 \0 031 \0 037 \0 % \0 +
0030740 \0 1 \0 7 \0 = \0 C \0 I \0 O \0 U \0 [
0030760 \0 a \0 g \0 m \0 s \0 y \0 177 \0 205 376 \0
0031000 226 i 231 \0 213 \0 221 \0 227 \0 235 \0 243 \0 251 \0
0031020 257 \0 265 \0 273 \0 301 \0 307 \0 315 \0 323 \0 331 \0
0031040 337 \0 345 \0 353 \0 361 \0 367 \0 375 001 003 001 \t 001
0031060 017 001 025 001 033 001 ! 001 ' 001 - 001 3 001 9 001
0031100 ? 001 E 001 K 001 Q 001 W 001 ] 001 c 001 i 001
0031120 o 001 u 001 { 001 201 001 207 001 207 001 215 001 223 001
0031140 231 001 237 001 245 001 253 001 261 001 267 001 275 001 303 001
0031160 311 001 317 001 325 001 333 001 341 001 347 001 355 001 363 001
0031200 371 001 377 002 005 002 \v 002 021 002 027 002 035 002 # 002
0031220 ) 002 / 002 5 002 ; 002 A 377 \0 \0 L o a d
0031240 S i m p l e D i s p l a y T e s
0031260 t . c m \0 373 230 332 \ 364 \0 \0 376 \0 9 030
0031300 C B l d r S i m p l e D i s p
0031320 l a y T e s t S i m p l e D i
0031340 s p l a y S t r e a m G a c h
0031360 a 1 0 S t r i k e \r 377 \0 \0 R e l
0031400 e a s e S i m p l e D i s p l a
0031420 y S t r e a m . c m \0 373 230 334 224 021
0031440 \0 \0 376 \0 ~ p m F t p M a x c
0031460 c o n n / c A l t o s t o r
0031500 e / c S i m p l e D i s p l a
0031520 y S t r e a m . b r ^ \r c
0031540 o n n / c A l t o S o u r c e
0031560 d u m p / c S i m p l e D i
0031600 s p l a y S t r e a m . d m @
0031620 S i m p l e D i s p l a y S t r
0031640 e a m @ \r 377 \0 \0 S i m p l e D i
0031660 s p l a y S t r e a m . c m \0 373
0031700 230 334 224 027 \0 \0 376 \0 217 1 _ S i m p l
0031720 e D i s p l a y S t r e a m . b
0031740 c p l S i m p l e D i s p l a
0031760 y T e s t . b c p l G a c h a
0032000 1 0 S t r i k e . b r L o a d
0032020 S i m p l e D i s p l a y T e s
0032040 t . c m R e l e a s e S i m p
0032060 l e D i s p l a y S t r e a m .
0032100 c m S i m p l e D i s p l a y
0032120 S t r e a m . c m 374
0032133