$ 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