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