$ od -c -N 50000 [Indigo]<Chipmonk>celllibrarian>celllibrarian-sources.dm!16
0000000 377 \0 \0 c e l l l i b r a r i a n
0000020 m a i n . m e s a \0 373 232 / 277 242 \0
0000040 \0 376 001 \0 360 227 - - C e l l L i b
0000060 r a r i a n M a i n . m e s a \r
0000100 - - a p r o g r a m t o
0000120 r u n w i t h i n C h i p m
0000140 o n k \r \r - - w r i t t e n
0000160 b y E . M c C r e i g h t ,
0000200 A u g u s t 2 7 , 1 9 8 1
0000220 3 : 5 0 P M \r - - r e p
0000240 l a c e - c e l l s - f r o m -
0000260 f i l e w r i t t e n b y
0000300 R . P a s c o , J a n u a r
0000320 y 2 5 , 1 9 8 2 \r - - l a
0000340 s t m o d i f i e d b y E
0000360 . M c C r e i g h t , D e c
0000400 e m b e r 2 1 , 1 9 8 2
0000420 5 : 1 5 P M \r \r D I R E C T O
0000440 R Y \r C 376 001 \0 x 272 h i p U s
0000460 e r I n t , \r I n l i n e D
0000500 e f s , \r p p d d d e f s :
0000520 F R O M " p p d d d e f s "
0000540 U S I N G [ A d j u s t C a
0000560 l l e r s B B o x e s ] , \r
0000600 p p d d e f s , \r p p d e f
0000620 s , \r S t r i n g D e f s ;
0000640 \r \r C e l l L i b r a r i a n M
0000660 a i n : P R O G R A M \r I
0000700 M P O R T S C h i p U s e r I
0000720 n t , I n l i n e D e f s ,
0000740 p p d d d e f s , \r p p
0000760 d d e f s , p p d e f s , S
0001000 t r i n g D e f s = \r B E
0001020 G I N O P E N C h i p U s e
0001040 r I n t , p p d d e 376 001 \0 203 317
0001060 f s , p p d e f s , S t r i
0001100 n g D e f s ; \r \r \r u z :
0001120 P U B L I C U N C O U N T E D
0001140 Z O N E _ N I L ; \r \r \r
0001160 m a x S t a r s : I N T E G
0001200 E R = 8 ; \r s p n t A r
0001220 : T Y P E = A R R A Y [
0001240 0 . . m a x S t a r s ) O F
0001260 s s I n d ; \r s s I n d :
0001300 T Y P E = R E C O R D [ s t
0001320 , e n d : [ 0 . . 2 5 5 ] ]
0001340 ; \r - - s p e c i f i
0001360 e s a s u b s t r i n g :
0001400 c h r s [ s t . . e n d ) \r \r
0001420 \r - - G e n e r
0001440 a l l y - U s e
0001460 376 001 \0 021 j f u l P r
0001500 o c e d u r e s
0001520 \r \r \r C a l c B B o x : P
0001540 R O C [ o b : o b P t r ]
0001560 R E T U R N S [ n o C h a n g
0001600 e : B O O L E A N ] = \r
0001620 { R E T U R N [ T R U E ] }
0001640 ; \r - - T h i s i s a
0001660 s t u b t o b e r e p l
0001700 a c e d b y t h e s a m e
0001720 r o u t i n e i n \r - -
0001740 C h i p m o n k w h e n i
0001760 t i s r e p a i r e d a n
0002000 d e x p o r t e d . \r \r L
0002020 i b r a r i a n E x p l a i n :
0002040 P R O C E D U R E [ w h y :
0002060 S T R I 376 001 \0 265 217 N G , \r
0002100 e x p l a n a t i o n , w
0002120 h a t : S T R I N G _ N I
0002140 L ] = \r B E G I N \r
0002160 I F w h a t = N I L
0002200 T H E N w h a t _ " C a
0002220 n ' t r u n C e l l L i b r
0002240 a r i a n [ C o n f i r m ] "
0002260 ; \r E x p l a i n [ w h
0002300 y , e x p l a n a t i o n ,
0002320 w h a t ] ; \r E N D ; \r
0002340 \r \r M a r k L i s t : P R
0002360 O C E D U R E [ h e a d : l i
0002400 s t P t r , \r s e l e c
0002420 t e d O n l y : B O O L E A N
0002440 _ F A L S E ] = \r
0002460 B E G I N \r 376 001 \0 030 300 F
0002500 O R l p : l i s t P t r _
0002520 h e a d , l p . n x t W H
0002540 I L E l p # N I L D O \r
0002560 I F l p . s e l e c t
0002600 e d O R N O T s e l e c t
0002620 e d O n l y T H E N \r
0002640 M a r k O b j e c t [ l
0002660 p . o b ] ; \r E N D
0002700 L O O P ; \r E N D ; \r \r
0002720 \r M a r k O b j e c t : P
0002740 R O C E D U R E [ o b : o b P
0002760 t r ] = \r B E G I N \r
0003000 o b . m a r k e d _
0003020 T R U E ; \r W I T H d
0003040 o b : o b S E L E C T F R
0003060 O M \r c e l l = 376
0003100 001 \0 B h > M a r k L i s t [ d
0003120 o b . p t r ] ; \r E
0003140 N D C A S E = > N U L L ; \r
0003160 E N D ; \r \r \r B B L
0003200 i s t : P R O C E D U R E [ h
0003220 e a d : l i s t P t r ] = \r
0003240 B E G I N \r F O
0003260 R l p : l i s t P t r _
0003300 h e a d , l p . n x t W H I
0003320 L E l p # N I L D O \r
0003340 l p . r i d x _ I n l
0003360 i n e D e f s . B I T X O R [ l
0003400 p . i d x , 1 ] ; \r
0003420 B B O b j e c t [ l p . o b ]
0003440 ; \r E N D L O O P ;
0003460 \r E N D ; \r \r \r B B
0003500 O b j e 376 001 \0 351 B c t : P R O
0003520 C E D U R E [ o b : o b P t r
0003540 ] = \r B E G I N \r
0003560 I F o b . m a r k e d T
0003600 H E N \r B E G I N \r
0003620 o b . m a r k e d
0003640 _ F A L S E ; \r o
0003660 b . s i z e [ 2 ] _ o b . s
0003700 i z e [ 0 ] ; \r W I
0003720 T H d o b : o b S E L E C
0003740 T F R O M \r c
0003760 e l l = > B B L i s t [ d o
0004000 b . p t r ] ; \r
0004020 E N D C A S E = > N U L L ;
0004040 \r [ ] _ C a l c
0004060 B B o x [ o b ] ; \r
0004100 E N D ; \r 376 001 \0 210 305 E N
0004120 D ; \r \r \r U n l i s t U n m
0004140 a r k e d C e l l s : P R O C
0004160 E D U R E [ l p p : L O N G
0004200 P O I N T E R T O l i s t P
0004220 t r , k e e p O n l y S e l e
0004240 c t e d : B O O L E A N _
0004260 F A L S E ] = \r B E G
0004300 I N \r W H I L E l p p
0004320 ^ # N I L D O \r o
0004340 b : L O N G P O I N T E R
0004360 T O o b j e c t _ l p p ^
0004400 . o b ; \r I F ( o
0004420 b . o t y p = c e l l A N D
0004440 N O T o b . m a r k e d ) O
0004460 R \r ( k e e p O
0004500 n l y S e l e c t e d A N 376 001
0004520 \0 360 321 D N O T l p p ^ . s e
0004540 l e c t e d ) T H E N \r
0004560 l p p ^ _ l p
0004600 p ^ . n x t E L S E l p p
0004620 _ @ l p p ^ . n x t ; \r
0004640 E N D L O O P ; \r
0004660 E N D ; \r \r \r R e S i z e C
0004700 e l l s : P R O C E D U R E [
0004720 l p p : L O N G P O I N T E
0004740 R T O l i s t P t r , k e
0004760 e p O n l y S e l e c t e d :
0005000 B O O L E A N _ F A L S E ]
0005020 = \r B E G I N \r
0005040 W H I L E l p p ^ # N I L
0005060 D O \r o b : L O N
0005100 G P O I N T E R T O o b j
0005120 e c t 376 001 \0 370 H _ l p p ^ .
0005140 o b ; \r I F ( o b
0005160 . o t y p = c e l l A N D N
0005200 O T o b . m a r k e d ) O R
0005220 \r ( k e e p O n
0005240 l y S e l e c t e d A N D N
0005260 O T l p p ^ . s e l e c t e d
0005300 ) T H E N \r
0005320 l p p ^ _ l p p ^ . n x t
0005340 E L S E l p p _ @ l p p
0005360 ^ . n x t ; \r E N D
0005400 L O O P ; \r E N D ; \r \r
0005420 \r C a p i t a l i z e : P
0005440 R O C E D U R E [ s : S T R I
0005460 N G ] = \r B E G I N \r
0005500 I F s # N I L T H E
0005520 N F O R i : 376 001 \0 K 032 C A
0005540 R D I N A L I N [ 0 . . s .
0005560 l e n g t h ) D O \r
0005600 s [ i ] _ U p p e r C a s
0005620 e [ s [ i ] ] ; \r E
0005640 N D L O O P ; \r E N D ;
0005660 \r \r \r s t a r C o u n t :
0005700 P R O C E D U R E [ s : S T R
0005720 I N G ] R E T U R N S [ c :
0005740 I N T E G E R ] = \r B
0005760 E G I N \r c _ 0 ; \r
0006000 F O R i : C A R D I N A
0006020 L I N [ 0 . . s . l e n g t
0006040 h ) D O \r I F s
0006060 [ i ] = ' * T H E N c _ c +
0006100 1 ; \r E N D L O O P
0006120 ; \r E N D ; \r \r \r 376 001 \0
0006140 374 001 n a m e s M a t c h :
0006160 P R O C E D U R E [ s 1 , s 2
0006200 : S T R I N G , c 1 , c 2
0006220 : C A R D I N A L ] \r
0006240 R E T U R N S [ B O O L E A N ,
0006260 s p n t A r ] = \r B
0006300 E G I N - - o n l y s 1
0006320 c a n h a v e s t a r s \r
0006340 m y A r , o t h e r A r
0006360 : s p n t A r ; \r b :
0006400 B O O L E A N ; \r n e
0006420 w c 1 : C A R D I N A L _
0006440 c 1 + 1 ; \r m y A r [ 0
0006460 ] _ [ c 2 , c 2 ] ; \r
0006500 S E L E C T T R U E F R O
0006520 M \r c 1 = s 1 . l e
0006540 n g 376 001 \0 362 i t h = > R E T
0006560 U R N [ c 2 = s 2 . l e n g t h
0006600 , m y A r ] ; \r \r
0006620 c 2 = s 2 . l e n g t h = > \r
0006640 R E T U R N [ n
0006660 e w c 1 = s 1 . l e n g t h A
0006700 N D s 1 [ c 1 ] = ' * , m y
0006720 A r ] ; \r \r s 1 [ c
0006740 1 ] = ' * = > \r
0006760 F O R i : C A R D I N A L
0007000 I N [ c 2 . . s 2 . l e n g
0007020 t h ] D O \r
0007040 m y A r [ 0 ] . e n d _ i
0007060 ; \r [ b , o
0007100 t h e r A r ] _ n a m e s M
0007120 a t c h [ s 1 , s 2 , n e w c 1
0007140 , i ] ; \r 376 001 \0 \0 "
0007160 I F b T H E N \r
0007200 B E G I N \r
0007220 F O R
0007240 j : I N T E G E R I N [ 1
0007260 . . m a x S t a r s ) D O \r
0007300 m y A
0007320 r [ j ] _ o t h e r A r [ j
0007340 - 1 ] ; \r
0007360 E N D L O O P ; \r
0007400 R E T U R N [ T
0007420 R U E , m y A r ] ; \r
0007440 E N D ; \r
0007460 E N D L O O P ; \r \r
0007500 s 2 [ c 2 ] = s 1 [
0007520 c 1 ] = > \r B
0007540 E G I N \r 376 001 \0 356
0007560 340 [ b , m y A r ] _ n a m
0007600 e s M a t c h [ s 1 , s 2 , n e
0007620 w c 1 , c 2 + 1 ] ; \r
0007640 R E T U R N [ b , m y A r
0007660 ] ; \r E N D ; \r
0007700 \r E N D C A S E =
0007720 > N U L L ; \r \r R E T
0007740 U R N [ F A L S E , m y A r ]
0007760 ; \r E N D ; \r \r \r r
0010000 e p l a c e N a m e : P R O C
0010020 E D U R E [ c e l l : L O N G
0010040 P O I N T E R T O c L i s
0010060 t , \r a r : s p n t A
0010100 r , n s : S T R I N G ] =
0010120 \r B E G I N \r n
0010140 e w N a m e : S T R I N G _
0010160 376 001 \0 214 304 [ 4 0 0 ] ; \r
0010200 g r p C n t : I N T E G E R
0010220 _ 0 ; \r o l d N a m
0010240 e : S T R I N G _ c e l l .
0010260 n a m e ; \r \r F O R i
0010300 : C A R D I N A L I N [ 0
0010320 . . n s . l e n g t h ) D O \r
0010340 I F n s [ i ] = '
0010360 * T H E N \r B
0010400 E G I N \r F O R
0010420 j : I N T E G E R I N [
0010440 a r [ g r p C n t ] . s t . . a
0010460 r [ g r p C n t ] . e n d ) D
0010500 O \r A p p e
0010520 n d C h a r [ n e w N a m e , o
0010540 l d N a m e [ j ] ] ; \r
0010560 376 001 \0 > 330 E N D L O
0010600 O P ; \r g r p C
0010620 n t _ g r p C n t + 1 ; \r
0010640 E N D \r
0010660 E L S E A p p e n d C h a r
0010700 [ n e w N a m e , n s [ i ] ] ;
0010720 \r E N D L O O P ; \r
0010740 \r F O R c 2 : L O N
0010760 G P O I N T E R T O c L i
0011000 s t _ c e l l L i s t , c
0011020 2 . n x t \r W H I L
0011040 E c 2 # N I L D O \r
0011060 I F S t r i n g D e f s .
0011100 E q u i v a l e n t S t r i n g
0011120 [ n e w N a m e , c 2 . n a m
0011140 e ] T H E N \r
0011160 B E G I N \r 376 001 \0 370 027
0011200 E x p l a i n [ n e w N a
0011220 m e , " a l r e a d y i n u
0011240 s e . [ C o n f i r m ] " , \r
0011260 " N o r e
0011300 p l a c e m e n t d o n e . "
0011320 ] ; \r E X I T ;
0011340 \r E N D ; \r
0011360 R E P E A T \r
0011400 F I N I S H E D = > \r
0011420 B E G I N -
0011440 - n o b o d y e x i s t s
0011460 b y n e w n a m e \r
0011500 - - f o r n o w
0011520 : \r E x p l
0011540 a i n [ c e l l . n a m e , " b
0011560 e c o m e s [ C o n f i r m ]
0011600 376 001 \0 i 225 " , n e w N a m e ]
0011620 ; \r F r e e
0011640 S t r i n g [ c e l l . n a m e
0011660 ] ; \r c e l
0011700 l . n a m e _ n e w S t r i
0011720 n g [ n e w N a m e ] ; \r
0011740 E N D ; \r
0011760 E N D L O O P ; \r
0012000 E N D ; \r \r \r - - O p
0012020 e r a t o r b
0012040 o d i e s \r \r \r R
0012060 e n a m e C e l l s : P R O C
0012100 E D U R E = \r B E G I
0012120 N \r n a m e , n e w n
0012140 : S T R I N G _ N I L ; \r
0012160 \r R e t u r n S t r i n
0012200 g : P R 376 001 \0 337 355 O C E D U R
0012220 E [ s : L O N G P O I N T E
0012240 R T O S T R I N G ] = \r
0012260 { I F s ^ # N I L
0012300 T H E N { F r e e S t r i n g
0012320 [ s ^ ] ; s ^ _ N I L } }
0012340 ; \r \r B E G I N E
0012360 N A B L E U N W I N D = > \r
0012400 { R e t u r n S
0012420 t r i n g [ @ n a m e ] ; R e
0012440 t u r n S t r i n g [ @ n e w n
0012460 ] } ; \r n a m e S C
0012500 , n e w n S C : I N T E G E
0012520 R ; \r \r t h e A r :
0012540 s p n t A r ; \r m
0012560 a t c h : B O O L E A N ; \r \r
0012600 s t N u 376 001 \0 h 022 m
0012620 M e s : S T R I N G _ [ 2
0012640 0 ] ; \r s t N u m M
0012660 e s . l e n g t h _ 0 ; \r
0012700 A p p e n d S t r i n
0012720 g [ s t N u m M e s , " ( u p
0012740 t o " ] ; \r A p p
0012760 e n d D e c i m a l [ s t N u m
0013000 M e s , m a x S t a r s ] ; \r
0013020 A p p e n d S t r i n
0013040 g [ s t N u m M e s , " s t a
0013060 r s ) " ] ; \r \r n a
0013100 m e _ R e q u e s t S t r i
0013120 n g [ s 1 : " O l d n a m e
0013140 : " , s 2 : s t N u m M e s
0013160 , \r s 3 : " (
0013200 C R o r C a n c e l t o 376
0013220 001 \0 336 p e x i t ) " ] ; \r
0013240 n a m e S C _ s t a
0013260 r C o u n t [ n a m e ] ; \r
0013300 W H I L E n a m e S C
0013320 > m a x S t a r s D O \r
0013340 R e t u r n S t r i n
0013360 g [ @ n a m e ] ; \r
0013400 n a m e _ R e q u e s t
0013420 S t r i n g [ s 1 : " O l d
0013440 n a m e : " , s 2 : s t N u
0013460 m M e s , \r
0013500 s 3 : " ( t o o m a n y s
0013520 t a r s ; t r y a g a i n !
0013540 ) " ] ; \r n a m
0013560 e S C _ s t a r C o u n t [
0013600 n a m e ] ; \r E
0013620 N D L O 376 001 \0 T v O P ; \r \r
0013640 W H I L E n a m e # N
0013660 I L A N D n a m e . l e n g
0013700 t h > 0 D O \r
0013720 n e w n _ R e q u e s t S t
0013740 r i n g [ s 1 : " N e w n a
0013760 m e : " , s 2 : s t N u m M
0014000 e s ] ; \r n e w
0014020 n S C _ s t a r C o u n t [
0014040 n e w n ] ; \r W
0014060 H I L E n e w n S C > m a x S
0014100 t a r s D O \r
0014120 R e t u r n S t r i n g [ @
0014140 n e w n ] ; \r
0014160 n e w n _ R e q u e s t S
0014200 t r i n g [ s 1 : " N e w n
0014220 a m e : " , s 2 376 001 \0 024 233 :
0014240 s t N u m M e s , \r
0014260 s 3 : " ( t o o
0014300 m a n y s t a r s ; t r y
0014320 a g a i n ! ) " ] ; \r
0014340 n e w n S C _ s t
0014360 a r C o u n t [ n e w n ] ; \r
0014400 E N D L O O P
0014420 ; \r \r I F n e
0014440 w n = N I L O R n e w n . l
0014460 e n g t h = 0 T H E N E X I
0014500 T ; \r \r C a p i
0014520 t a l i z e [ n a m e ] ; C a
0014540 p i t a l i z e [ n e w n ] ; \r
0014560 F O R c e l l
0014600 : L O N G P O I N T E R T
0014620 O c L i s t _ c e l l 376 001
0014640 \0 263 317 L i s t , c e l l . n x
0014660 t \r W H I L
0014700 E c e l l # N I L D O \r
0014720 [ m a t c h , t
0014740 h e A r ] _ n a m e s M a t
0014760 c h [ n a m e , c e l l . n a m
0015000 e , 0 , 0 ] ; \r
0015020 I F m a t c h T H E N
0015040 r e p l a c e N a m e [ c e l l
0015060 , t h e A r , n e w n ] ; \r
0015100 E N D L O O P ;
0015120 \r \r n a m e _
0015140 R e q u e s t S t r i n g [ s
0015160 1 : " O l d n a m e : " ,
0015200 s 2 : s t N u m M e s , \r
0015220 s 3 : " ( C R
0015240 o r 376 001 \0 217 ! C a n c e l
0015260 t o e x i t ) " ] ; \r
0015300 n a m e S C _ s t a
0015320 r C o u n t [ n a m e ] ; \r
0015340 W H I L E n a m e
0015360 S C > m a x S t a r s D O \r
0015400 R e t u r n S
0015420 t r i n g [ @ n a m e ] ; \r
0015440 n a m e _ R
0015460 e q u e s t S t r i n g [ s 1 :
0015500 " O l d n a m e : " , s 2
0015520 : s t N u m M e s , \r
0015540 s 3 : " ( t o
0015560 o m a n y s t a r s ; t r
0015600 y a g a i n ! ) " ] ; \r
0015620 n a m e S C _
0015640 s t a r C o u n 376 001 \0 351 363 t [ n
0015660 a m e ] ; \r
0015700 E N D L O O P ; \r
0015720 E N D L O O P ; \r
0015740 E N D ; \r R e t u r n S
0015760 t r i n g [ @ n a m e ] ; R e
0016000 t u r n S t r i n g [ @ n e w n
0016020 ] ; \r E N D ; - - o
0016040 f R e n a m e C e l l s \r \r \r
0016060 P u r g e U n u s e d C e l
0016100 l s : P R O C E D U R E \r
0016120 [ k e e p O n l y S e l e c
0016140 t e d , p r o m p t : B O O
0016160 L E A N _ F A L S E ] = \r
0016200 B E G I N \r F O
0016220 R c e l l : L O N G P O I
0016240 N T E R T O c L i s t 376 001 \0
0016260 _ 4 _ c e l l L i s t , c
0016300 e l l . n x t \r W H
0016320 I L E c e l l # N I L D O \r
0016340 c e l l . o b . m a
0016360 r k e d _ F A L S E ; \r
0016400 E N D L O O P ; \r
0016420 F O R c e l l : L O N G
0016440 P O I N T E R T O c e l l
0016460 o b j e c t _ G e t C e l l
0016500 S u p e r [ ] , \r c
0016520 e l l . s u p e r W H I L E
0016540 c e l l # N I L D O \r
0016560 c e l l . m a r k e d _
0016600 F A L S E ; \r E N D
0016620 L O O P ; \r \r M a r k L
0016640 i s t [ m a s t e r L i s t ,
0016660 k e 376 001 \0 ' 307 e p O n l y S e l
0016700 e c t e d ] ; \r \r I F
0016720 p r o m p t T H E N \r
0016740 F O R c e l l : L O N G
0016760 P O I N T E R T O c L i s
0017000 t _ c e l l L i s t , c e
0017020 l l . n x t \r W
0017040 H I L E c e l l # N I L D O
0017060 \r I F N O T
0017100 c e l l . o b . m a r k e d A
0017120 N D H e S a y s Y e s [ c e l
0017140 l . n a m e , \r
0017160 " S h a l l I k e e p
0017200 t h i s c e l l t y p e ? "
0017220 ] T H E N \r
0017240 B E G I N \r
0017260 c e l l . o 376 001 \0 + 366 b . m a
0017300 r k e d _ T R U E ; \r
0017320 W I T H c : c
0017340 e l l . o b S E L E C T F R
0017360 O M \r c
0017400 e l l = > M a r k L i s t [
0017420 c . p t r ] ; \r
0017440 E N D C A S E = > N
0017460 U L L ; \r E
0017500 N D ; \r E N D L
0017520 O O P ; \r \r U n
0017540 l i s t U n m a r k e d C e l l
0017560 s [ @ m a s t e r L i s t , k
0017600 e e p O n l y S e l e c t e d ]
0017620 ; \r - - t a k e
0017640 u n r e f e r e n c e d c e l
0017660 l s \r - - 376 001 \0 200
0017700 L o u t o f p i c t u r e s
0017720 a t t h i s a n d h i g
0017740 h e r l e v e l s \r F
0017760 O R c s p : L O N G P O I
0020000 N T E R T O c e l l S E _
0020020 c e l l S t a c k , c s p .
0020040 n x t \r W H I L E
0020060 c s p # N I L D O \r
0020100 U n l i s t U n m a r k e d C
0020120 e l l s [ @ c s p . l p ] ; \r
0020140 E N D L O O P ; \r \r
0020160 B E G I N - - f r e e
0020200 n a m e s o f u n r e f e
0020220 r e n c e d n a m e d o b j
0020240 e c t s \r p r e v :
0020260 L O N G P O I N T E R T O
0020300 376 001 \0 325 1 L O N G P O I N T
0020320 E R T O c L i s t _ \r
0020340 @ c e l l L i s t ;
0020360 \r c e l l : L O N
0020400 G P O I N T E R T O c L i
0020420 s t _ p r e v ^ ; \r
0020440 W H I L E c e l l # N I L
0020460 D O \r I F
0020500 c e l l . o b . m a r k e d T
0020520 H E N p r e v _ @ c e l l
0020540 . n x t E L S E \r
0020560 B E G I N \r
0020600 F r e e S t r i n g [ c
0020620 e l l . n a m e ] ; \r
0020640 p r e v ^ _ c e l
0020660 l . n x t ; \r
0020700 F r e e S 376 001 \0 > T p a c e [
0020720 c e l l ] ; \r
0020740 E N D ; \r c e
0020760 l l _ p r e v ^ ; \r
0021000 E N D L O O P ; \r
0021020 E N D ; \r \r
0021040 B E G I N - - f r e e a
0021060 l l u n r e f e r e n c e d
0021100 c e l l s . T h i s w i l l
0021120 l e a v e b e h i n d \r
0021140 - - o r p h a n e
0021160 d o b j e c t s a n d l i
0021200 s t s , b u t t h e y w o
0021220 n ' t b e w r i t t e n i
0021240 n \r - - t h e
0021260 o u t p u t f i l e . \r
0021300 n e x t C e l 376 001 \0 4 j
0021320 l : L O N G P O I N T E R
0021340 T O c e l l o b j e c t ; \r
0021360 F O R c e l l :
0021400 L O N G P O I N T E R T O
0021420 c e l l o b j e c t _ G e
0021440 t C e l l S u p e r [ ] , \r
0021460 n e x t C e l l W
0021500 H I L E c e l l # N I L D O
0021520 \r n e x t C e l
0021540 l _ c e l l . s u p e r ; \r
0021560 I F N O T c
0021600 e l l . m a r k e d T H E N
0021620 f r e e C e l l [ c e l l ] ; \r
0021640 E N D L O O P ;
0021660 \r E N D ; \r \r
0021700 - - A t t h i s p o i n
0021720 376 001 \0 253 B t , a l l u n r e
0021740 f e r e n c e d c e l l s a
0021760 r e g o n e a n d a l l \r
0022000 - - r e f e r e n c e
0022020 d c e l l s a r e m a r k
0022040 e d . A d j u s t t h e
0022060 b o u n d i n g b o x e s f
0022100 o r \r - - c o n s i s
0022120 t e n c y . \r B B L i s
0022140 t [ m a s t e r L i s t ] ; \r
0022160 E N D ; - - o f P u
0022200 r g e U n u s e d C e l l s \r \r
0022220 \r R e p l a c e C e l l s F
0022240 r o m F i l e : P R O C E D U
0022260 R E [ p r o m p t : B O O L
0022300 E A N ] = \r B E G I N
0022320 \r 376 001 \0 373 ? o l d C e l
0022340 l L i s t : L O N G P O I N
0022360 T E R T O c L i s t _ c
0022400 e l l L i s t ; \r n e w
0022420 C e l l , o l d C e l l , n
0022440 e x t N e w , n e x t O l d :
0022460 \r L O N G P O I N
0022500 T E R T O c L i s t _ N
0022520 I L ; \r \r r e R e f e r
0022540 e n c e : P R O C E D U R E
0022560 [ o l d , n e w : o b P t r
0022600 ] = \r - - c h a n
0022620 g e a l l c a l l s t o
0022640 " o l d " i n t o c a l l s
0022660 t o " n e w " \r
0022700 B E G I N \r \r s u b
0022720 s t R e f s I n L i 376 001 \0 326 307 s
0022740 t : P R O C E D U R E [ h e
0022760 a d : l i s t P t r ] = \r
0023000 B E G I N \r
0023020 F O R l p : l i s
0023040 t P t r _ h e a d , l p .
0023060 n x t U N T I L l p = N I L
0023100 D O \r l p
0023120 . o b _ s u b s t R e f s I
0023140 n O b [ l p . o b ] ; \r
0023160 E N D L O O P ; \r
0023200 E N D ; \r \r
0023220 s u b s t R e f s I n O b
0023240 : P R O C E D U R E [ o b :
0023260 o b P t r ] R E T U R N S
0023300 [ o b P t r ] = \r
0023320 B E G I N \r 376
0023340 001 \0 333 254 W I T H d o b : o
0023360 b S E L E C T F R O M \r
0023400 E N D C A S E
0023420 = > N U L L ; \r
0023440 I F o b = o l d T H E N \r
0023460 B E G I N \r
0023500 o l d ^ . r
0023520 e f C n t _ o l d ^ . r e f
0023540 C n t - 1 ; \r
0023560 n e w ^ . r e f C n t _
0023600 n e w ^ . r e f C n t + 1
0023620 ; \r R E T U
0023640 R N [ n e w ] \r
0023660 E N D \r E L
0023700 S E R E T U R N [ o b ] ; \r
0023720 E N D ; \r \r
0023740 F 376 001 \0 322 367 O R s : L
0023760 O N G P O I N T E R T O c
0024000 e l l o b j e c t _ G e t
0024020 C e l l S u p e r [ ] , \r
0024040 s . s u p e r U N T
0024060 I L s = N I L D O \r
0024100 s u b s t R e f s I n L
0024120 i s t [ s . p t r ] ; \r
0024140 E N D L O O P ; \r
0024160 s u b s t R e f s I n L i
0024200 s t [ m a s t e r L i s t ] ; \r
0024220 p p d d d e f s . A
0024240 d j u s t C a l l e r s B B o x
0024260 e s [ n e w ] ; \r E
0024300 N D ; - - o f r e R e f e
0024320 r e n c e \r \r r e m o v
0024340 e : P R O C E D 376 001 \0 305 > U R
0024360 E [ c e l l : L O N G P O
0024400 I N T E R T O c L i s t , \r
0024420 f r o m : L O N G
0024440 P O I N T E R T O L O N G
0024460 P O I N T E R T O c L i s
0024500 t ] = \r B E G I N
0024520 \r f o u n d : B O
0024540 O L E A N _ F A L S E ; \r
0024560 s u p e r : L O N G
0024600 P O I N T E R T O c e l l
0024620 o b j e c t _ \r
0024640 L O O P H O L E [ c e l l .
0024660 o b , L O N G P O I N T E R
0024700 T O c e l l o b j e c t ]
0024720 ; \r l i s t : l i
0024740 s t P t r _ s u p e r . 376 001
0024760 \0 4 370 p t r ; \r f l
0025000 u s h D e l [ l i s t ] ; \r
0025020 f r e e C e l l [ s u p
0025040 e r ] ; \r - - n o
0025060 w u n l i n k c e l l \r
0025100 I F c e l l = f r o m
0025120 ^ T H E N - - h e a d
0025140 c e l l \r B E G
0025160 I N \r f r o m ^
0025200 _ c e l l . n x t ; \r
0025220 f o u n d _ T R U
0025240 E ; \r E N D \r
0025260 E L S E - - e l
0025300 s e w h e r e i n l i s t \r
0025320 B E G I N \r
0025340 F O R c : L O N
0025360 G P 376 001 \0 006 J O I N T E R T
0025400 O c L i s t _ f r o m ^ ,
0025420 c . n x t \r
0025440 U N T I L c = N I L D
0025460 O \r I F c
0025500 . n x t = c e l l T H E N
0025520 \r B E G
0025540 I N \r c
0025560 . n x t _ c e l l . n x t ;
0025600 \r f o u
0025620 n d _ T R U E ; \r
0025640 E X I T ; \r
0025660 E N D ; \r
0025700 E N D L O O P ;
0025720 \r E N D ; \r
0025740 I F f o u n d T H E
0025760 N F r e e S p 376 001 \0 ~ 371 a c e
0026000 [ c e l l ] E L S E E R R O
0026020 R ; \r E N D ; - -
0026040 o f r e m o v e \r \r
0026060 c e l l L i s t _ N I L ; \r
0026100 F r e e S t r i n g [ R
0026120 e q u e s t S t r i n g [ " D o
0026140 a c t l - t a b - i n o w
0026160 f o r t h e " , \r
0026200 " f i l e y o u w a n t
0026220 t o m e r g e i n . T h e
0026240 n c o n f i r m " , \r
0026260 " t h i s p r o m p t w
0026300 i t h C R . " ] ] ; \r
0026320 F O R o l d C e l l _ o l
0026340 d C e l l L i s t , n e x t O
0026360 l d W H I L E o l d C 376 001 \0
0026400 W T e l l # N I L D O \r
0026420 n e x t O l d _ o l d
0026440 C e l l . n x t ; - - s a
0026460 v e i n c a s e w e r e
0026500 m o v e t h e o l d c e l
0026520 l \r F O R n e w C
0026540 e l l _ c e l l L i s t ,
0026560 n e x t N e w W H I L E n e
0026600 w C e l l # N I L D O \r
0026620 n e x t N e w _ n
0026640 e w C e l l . n x t ; \r
0026660 - - s a v e i n
0026700 c a s e w e r e m o v e
0026720 t h e n e w c e l l \r
0026740 I F S t r i n g D e
0026760 f s . E q u i v a l e n t S t r
0027000 i n 376 001 \0 \n 364 g [ o l d C e l l
0027020 . n a m e , n e w C e l l . n a
0027040 m e ] \r T H
0027060 E N \r I F
0027100 ~ p r o m p t O R H e S a y
0027120 s Y e s [ " R e p l a c e " , o
0027140 l d C e l l . n a m e ] T H E
0027160 N \r B E
0027200 G I N \r
0027220 - - c h a n g e a l l r e
0027240 f s t o o l d C e l l i n
0027260 t o r e f s t o n e w C e
0027300 l l \r r
0027320 e R e f e r e n c e [ o l d C e
0027340 l l . o b , n e w C e l l . o b
0027360 ] ; \r -
0027400 - d e l e t 376 001 \0 222 201 e o l
0027420 d C e l l f r o m i t s l
0027440 i s t \r
0027460 r e m o v e [ o l d C e l l , @
0027500 o l d C e l l L i s t ] ; \r
0027520 E N D \r
0027540 E L S E \r
0027560 B E G I N \r
0027600 - - c h
0027620 a n g e a l l r e f s t o
0027640 n e w C e l l i n t o r e
0027660 f s t o o l d C e l l \r
0027700 r e R e f e
0027720 r e n c e [ n e w C e l l . o b
0027740 , o l d C e l l . o b ] ; \r
0027760 - - d e l
0030000 e t e n e w C e l l 376 001 \0 357
0030020 206 f r o m i t s l i s t \r
0030040 r e m o v
0030060 e [ n e w C e l l , @ c e l l L
0030100 i s t ] ; \r
0030120 E N D ; \r E
0030140 N D L O O P ; \r E N
0030160 D L O O P ; \r - - c o n
0030200 c a t e n a t e n e w c e l
0030220 l l i s t o n t o e n d
0030240 o f o l d \r I F o l
0030260 d C e l l L i s t # N I L T H
0030300 E N \r B E G I N \r
0030320 F O R o l d C e l l
0030340 _ o l d C e l l L i s t , o
0030360 l d C e l l . n x t \r
0030400 U N T I L o l d C e l l
0030420 . 376 001 \0 232 241 n x t = N I L
0030440 D O \r E N D L O
0030460 O P ; \r o l d C e l
0030500 l . n x t _ c e l l L i s t
0030520 ; \r c e l l L i s t
0030540 _ o l d C e l l L i s t ; \r
0030560 E N D ; \r E
0030600 N D ; - - o f R e p l a c
0030620 e C e l l s F r o m F i l e \r \r
0030640 \r - - M a i n
0030660 P r o g r a m \r \r
0030700 B E G I N E N A B L E P u
0030720 n t = > G O T O E x i t ;
0030740 - - f o r e x i t s \r
0030760 t r y A g a i n : B O O L E
0031000 A N _ T R U E ; \r \r W H
0031020 I L E t r 376 001 \0 033 \b y A g a i
0031040 n D O \r t r y A g a i
0031060 n _ F A L S E ; \r S
0031100 E L E C T T R U E F R O M \r
0031120 H e S a y s Y e s [
0031140 " S h a l l I p u r g e A
0031160 L L u n r e f e r e n c e d
0031200 c e l l s ? " , \r
0031220 " ( t h i s i s w h a
0031240 t p e o p l e u s u a l l y
0031260 w a n t ) " ] = > \r
0031300 P u r g e U n u s e d C
0031320 e l l s [ ] ; \r \r H
0031340 e S a y s Y e s [ " S h a l l
0031360 I r e p l a c e c e l l s
0031400 f r o m a f i l e ? " ] =
0031420 > \r R 376 001 \0 340 O
0031440 e p l a c e C e l l s F r o m F
0031460 i l e [ p r o m p t : H e S a
0031500 y s Y e s [ \r
0031520 " S h a l l I a s k b e
0031540 f o r e r e p l a c i n g e
0031560 a c h c e l l t y p e ? " ]
0031600 ] ; \r \r H e S a y s
0031620 Y e s [ " S h a l l I r e n
0031640 a m e s o m e c e l l s f
0031660 o r y o u ? " ] = > \r
0031700 R e n a m e C e l l s
0031720 [ ] ; \r \r H e S a y
0031740 s Y e s [ " S h a l l I p u
0031760 r g e S O M E u n r e f e r
0032000 e n c e d c e l l s ? " ] =
0032020 > \r P u r g e U
0032040 376 001 \0 032 220 n u s e d C e l l s [
0032060 \r k e e p O
0032100 n l y S e l e c t e d : H e S
0032120 a y s Y e s [ \r
0032140 " S h a l l I e r a
0032160 s e t h e u n s e l e c t e
0032200 d i t e m s i n t h e d
0032220 e s i g n ? " , \r
0032240 " ( C A R E F U L N
0032260 O W ! ! ) " ] , \r
0032300 p r o m p t : H e S a y
0032320 s Y e s [ \r
0032340 " B e f o r e I p u r g
0032360 e a c e l l t y p e , s
0032400 h o u l d I a s k y o u
0032420 a b o u t i t ? " ] ] ; \r \r
0032440 376 \0 z 020 = E N D C A S
0032460 E = > t r y A g a i n _
0032500 T R U E ; \r E N D L O O
0032520 P ; \r \r E X I T S E x i t
0032540 = > N U L L ; \r E N D ;
0032560 \r \r d C h a n g e _ T R
0032600 U E ; \r \r E N D . - - o
0032620 f C e l l L i b r a r i a n M
0032640 a i n \r 377 \0 \0 c e l l l i b r a
0032660 r i a n . c o n f i g \0 373 231 u 212
0032700 347 \0 \0 376 001 \0 274 346 - - C e l l L
0032720 i b r a r i a n . c o n f i g \r
0032740 - - w r i t t e n b y M c
0032760 C r e i g h t : O c t o b e
0033000 r 8 , 1 9 8 1 6 : 2 4
0033020 P M \r - - l a s t e d i t
0033040 b y M c C r e i g h t : A u
0033060 g u s t 2 , 1 9 8 2 1 2
0033100 : 2 8 P M \r \r C e l l L i b r
0033120 a r i a n : C O N F I G U R A
0033140 T I O N \r I M P O R T S \r p
0033160 p d d d e f s , p p d d e f s ,
0033200 p p d e f s , C h i p U s e r I
0033220 n t , S t r i n g D e f s \r C O
0033240 N T R O L \r C e l l L i b r
0033260 a r i a n M a i n = \r B E G I
0033300 N \r C e l l L i 376 \0 022 364 336 b r a
0033320 r i a n M a i n ; \r E N D . \r 377
0033340 \0 \0 c e l l l i b r a r i a n -
0033360 s a v e . c m \0 373 232 / 300 031 \0 \0 376
0033400 001 \0 361 334 f t p i n d i g o c
0033420 o n n / c c h i p m o n k d
0033440 i r / c > x c e l l l i b r a
0033460 r i a n s t / c c e l l l i
0033500 b r a r i a n . c h i p b c d
0033520 c e l l l i b r a r i a n . s y
0033540 m b o l s d u m p / c c e l
0033560 l l i b r a r i a n - s o u r c
0033600 e s . d m c e l l l i b r a r
0033620 i a n m a i n . m e s a c e l
0033640 l l i b r a r i a n . c o n f i
0033660 g c e l l l i b r a r i a n -
0033700 s a v e . c m c e l l l i b r
0033720 a r i a n - d e l e t e . c m
0033740 C o m p i l e C e l l L i b r a
0033760 r i a n . c m B i n d C e l l
0034000 L i b r 376 \0 \t 234 w a r i a n . c
0034020 m \r 377 \0 \0 c e l l l i b r a r i
0034040 a n - d e l e t e . c m \0 373 227 355
0034060 374 2 \0 \0 376 \0 361 342 371 d e l e t e
0034100 c e l l l i b r a r i a n m a i
0034120 n . m e s a c e l l l i b r a
0034140 r i a n m a i n . b c d c e l
0034160 l l i b r a r i a n . c o n f i
0034200 g r o m m a k e r d e f s . b
0034220 c d r o m m a k e r c o m m o
0034240 n . b c d c e l l l i b r a r
0034260 i a n - s a v e . c m c e l l
0034300 l i b r a r i a n - d e l e t e
0034320 . c m \r @ . s y m b o l s . . .
0034340 @ d e l e t e c e l l l i b
0034360 r a r i a n . s y m b o l s \r @
0034400 . c h i p b c d . . . @ d e l
0034420 e t e c e l l l i b r a r i a
0034440 n . c h i p b c d \r 377 \0 \0 C o m
0034460 p i l e C e l l L i b r a r i a
0034500 n . c m \0 373 230 | 314 324 \0 \0 376 \0 036 t
0034520 017 C o m p i l e r C e l l L i
0034540 b r a r i a n M a i n / b l n 377
0034560 \0 \0 B i n d C e l l L i b r a r
0034600 i a n . c m \0 373 230 | 313 363 \0 \0 376 \0
0034620 0 246 372 b i n d e r C e l l L i
0034640 b r a r i a n . c h i p b c d
0034660 _ C e l l L i b r a r i a n /
0034700 c s \r 374
0034704