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