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