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