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