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