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