$ 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