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