$ od -c -N 50000 [eris]<Lisp>JCAI>library>EDITBITMAP.tedit!1 0000000 E D I T B I T M A P d o c u m 0000020 e n t a t i o n \r D . A u s t 0000040 i n H e n d e r s o n , J r 0000060 . \r I n i t i a l l y r e l e 0000100 a s e d : A p r i l 1 0 , 0000120 1 9 8 3 \r L a s t r e v i s 0000140 e d : A p r i l 2 3 , 1 9 0000160 8 3 \r < L I S P U S E R S > E D 0000200 I T B I T M A P ( a n d . D 0000220 C O M ) p r o v i d e s a n 0000240 i n t e r f a c e ( E D I T 0000260 . B I T M A P ) f o r m a n 0000300 i p u l a t i n g b i t m a p 0000320 s . I t p u t s u p a 0000340 m e n u o f b i t m a p m 0000360 a n i p u l a t i o n c o m m 0000400 a n d s , o n e o f w h i 0000420 c h i s H A N D . E D I T 0000440 w h i c h a c c e s s e s E 0000460 D I T B M , t h e I n t e r 0000500 l i s p - D b i t m a p e d 0000520 i t o r . O t h e r c o m m 0000540 a n d s i n c l u d e s h i 0000560 f t i n g ( i n f o u r d 0000600 i r e c t i o n s ) , r o t a 0000620 t i o n ( l e f t a n d r 0000640 i g h t 9 0 d e g r e e ) , 0000660 i n v e r t i n g ( h o r i 0000700 z o n t a l l y , v e r t i c 0000720 a l l y , a b o u t d i a g 0000740 o n a l s ) , i n t e r c h a 0000760 n g i n g b l a c k a n d 0001000 w h i t e , a d d i n g a 0001020 b o r d e r . A s e q u e n 0001040 c e o f c o m m a n d s t 0001060 e r m i n a t e d b y Q U I 0001100 T p r o d u c e s a n e w 0001120 b i t m a p ; t h e o r i 0001140 g i n a l b i t m a p i s 0001160 n o t e f f e c t e d . U N 0001200 D O p e r m i t s b a c k i 0001220 n g u p . A l s o w o r k 0001240 s o n c u r s o r s ( p r 0001260 o d u c e s n e w c u r s o 0001300 r ) a n d A T O M S ( w o 0001320 r k s o n t h e i r v a l 0001340 u e s a n d r e s e t s t 0001360 h e v a l u e w i t h t h 0001400 e r e s u l t ) . C o m m e 0001420 n t s o n b o t h i n t e 0001440 r f a c e a n d f u n c t i 0001460 o n a l i t y a r e w e l c 0001500 o m e d . \r E D I T . B I T M A 0001520 P ( B I T M A P ) B I T M A 0001540 P m a y b e a b i t m a 0001560 p , a c u r s o r o r a 0001600 n A T O M . R e t u r n s : 0001620 i f B I T A M P i s a 0001640 b i t m a p , t h e n a n 0001660 e w b i t m a p ; i f a 0001700 c u r s o r , t h e n a n 0001720 e w c u r s o r ; i f a n 0001740 A T O M , t h e n t h e 0001760 A T O M w h o s e b v a l u 0002000 e w i l l h a v e b e e n 0002020 r e s e t w i t h t h e 0002040 r e s u l t o f c a l l i n 0002060 g E D I T . B I T M A P o n 0002100 t h e v a l u e o f t h 0002120 a t a t o m . \r T h e i n t 0002140 e r n a l f u n c t i o n s 0002160 u s e d b y t h i s p a c 0002200 k a g e a r e a l s o a v 0002220 a i l a b l e f o r u s e . 0002240 T h e y a r e : \r A D D . B 0002260 O R D E R . T O . B I T M A P 0002300 ( B I T M A P N B I T S T E 0002320 X T U R E ) R e t u r n s a 0002340 n e w b i t m a p w h i c 0002360 h i s B I T M A P e x t e 0002400 n d e d b y N B I T S i n 0002420 a l l f o u r d i r e c t 0002440 i o n s , t h e b o r d e r 0002460 b e i n g f i l l e d i n 0002500 w i t h T E X T U R E . \r B 0002520 I T . I N . C O L U M N ( B I 0002540 T M A P C O L U M N ) R e t 0002560 u r n s T i f a n y b i 0002600 t i n c o l u m n n u m b 0002620 e r e d C O L U M N ( l e f 0002640 t = 0 ) i s n o t 0 , 0002660 N I L o t h e r w i s e . \r 0002700 B I T . I N . R O W ( B I T M 0002720 A P R O W ) R e t u r n s 0002740 T i f a n y b i t i n 0002760 r o w n u m b e r e d R O W 0003000 ( b o t t o m = 0 ) i s 0003020 n o t 0 , N I L o t h e 0003040 r w i s e . \r I N V E R T . B I 0003060 T M A P . B / W ( B I T M A P 0003100 ) R e t u r n s a n e w 0003120 b i t m a p w h i c h i s 0003140 B I T M A P w i t h a l l 0003160 i t s b i t s i n v e r t e 0003200 d ( b l a c k f o r w h i 0003220 t e ) . \r I N V E R T . B I T M 0003240 A P . D I A G O N A L L Y ( B 0003260 I T M A P ) R e t u r n s a 0003300 n e w b i t m a p w h i c 0003320 h i s B I T M A P f l i p 0003340 p e d a b o u t X = Y d i 0003360 a g o n a l . ( T h e r e s 0003400 u l t i n g b i t m a p ' s 0003420 w i d t h w i l l b e B I 0003440 T M A P ' s h e i g h t . ) \r 0003460 I N V E R T . B I T M A P . H O 0003500 R I Z O N T A L L Y ( B I T M 0003520 A P ) R e t u r n s a n e 0003540 w b i t m a p w h i c h i 0003560 s B I T M A P f l i p p e d 0003600 a b o u t i t s v e r t i 0003620 c a l c e n t e r l i n e . 0003640 \r I N V E R T . B I T M A P . V 0003660 E R T I C A L L Y ( B I T M A 0003700 P ) R e t u r n s a n e w 0003720 b i t m a p w h i c h i s 0003740 B I T M A P f l i p p e d 0003760 a b o u t i t s h o r i z o 0004000 n t a l c e n t e r l i n e . 0004020 \r R O T A T E . B I T M A P . 0004040 L E F T ( B I T M A P ) R e 0004060 t u r n s a n e w b i t m 0004100 a p w h i c h i s B I T M 0004120 A P r o t a t e d 9 0 d e 0004140 g r e e s c o u n t e r - c l 0004160 o c k w i s e . ( T h e r e 0004200 s u l t i n g b i t m a p ' s 0004220 w i d t h w i l l b e B 0004240 I T M A P ' s h e i g h t . ) 0004260 . \r R O T A T E . B I T M A P . 0004300 R I G H T ( B I T M A P ) R 0004320 e t u r n s a n e w b i t 0004340 m a p w h i c h i s B I T 0004360 M A P r o t a t e d 9 0 d 0004400 e g r e e s c l o c k w i s e 0004420 . ( T h e r e s u l t i n g 0004440 b i t m a p ' s w i d t h 0004460 w i l l b e B I T M A P ' s 0004500 h e i g h t . ) . \r S H I F T 0004520 . B I T M A P . D O W N ( B I 0004540 T M A P N B I T S ) R e t u 0004560 r n s a n e w b i t m a p 0004600 w h i c h i s B I T M A P 0004620 e x t e n d e d b y N B I 0004640 T S i n t h e u p w a r d 0004660 d i r e c t i o n , t h e 0004700 n e w s p a c e b e i n g 0004720 f i l l e d i n w i t h w 0004740 h i t e . \r S H I F T . B I T M 0004760 A P . U P ( B I T M A P N B 0005000 I T S ) R e t u r n s a n 0005020 e w b i t m a p w h i c h 0005040 i s B I T M A P e x t e n d 0005060 e d b y N B I T S i n t 0005100 h e d o w n w a r d s d i r 0005120 e c t i o n , t h e n e w 0005140 s p a c e b e i n g f i l l 0005160 e d i n w i t h w h i t e 0005200 . \r S H I F T . B I T M A P . L 0005220 E F T ( B I T M A P N B I T 0005240 S ) R e t u r n s a n e w 0005260 b i t m a p w h i c h i s 0005300 B I T M A P e x t e n d e d 0005320 b y N B I T S t o t h e 0005340 r i g h t , t h e n e w 0005360 s p a c e b e i n g f i l l 0005400 e d i n w i t h w h i t e 0005420 . \r S H I F T . B I T M A P . R 0005440 I G H T ( B I T M A P N B I 0005460 T S ) R e t u r n s a n e 0005500 w b i t m a p w h i c h i 0005520 s B I T M A P e x t e n d e 0005540 d b y N B I T S t o t h 0005560 e l e f t , t h e n e w 0005600 s p a c e b e i n g f i l l 0005620 e d i n w i t h w h i t e 0005640 . \r T R I M . B I T M A P ( B 0005660 I T M A P ) R e t u r n s a 0005700 n e w b i t m a p w h i c 0005720 h i s B I T M A P t r i m 0005740 m e d a t a l l f o u r 0005760 e d g e s o f a l l c o m 0006000 p l e t e l y w h i t e ( 0 0006020 ) c o l u m n s a n d r o 0006040 w s . \r \0 \0 \0 \0 \0 005 \0 004 \0 ) \0 U 0006060 \0 U 002 023 \0 022 \0 \0 \0 004 003 004 \0 3 \0 \0 0006100 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006120 \0 \0 \0 \0 \0 \0 ) \0 U \0 U 002 023 \0 024 \0 0006140 \0 \0 004 003 004 \0 3 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006160 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 ) 0006200 \0 U \0 U 002 023 \0 \b \0 \0 \0 004 003 004 \0 3 0006220 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006240 \0 \0 \0 \0 \0 \0 \0 \0 & \0 \0 \0 \0 \0 \0 \0 0006260 \0 \0 \0 \0 \0 002 001 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006300 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 0006320 \0 \0 004 \0 004 \0 030 \0 \n T I M E S R O 0006340 M A N \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 023 \0 0006360 005 G A C H A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 0006400 \0 A \0 1 ( D E F A U L T F O N T 0006420 1 ( G A C H A 1 2 ) ( G 0006440 A C H A 1 0 ) ( T E R M I N 0006460 A L 1 0 ) ) \0 \n \0 \0 \0 \0 \0 \0 \0 0006500 \0 \0 030 \0 \n T I M E S R O M A N \0 0006520 \n \0 \0 \0 \0 \0 \0 002 \0 \0 \0 \0 \0 \0 002 \0 0006540 003 \0 \0 \0 030 \0 \0 \0 \0 004 \0 \0 \0 001 \0 \0 0006560 \0 \0 003 \0 \0 \0 \0 \0 002 \0 003 \0 \0 \0 Y \0 0006600 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 0006620 \0 \0 002 \0 002 \0 \0 \0 025 \0 \0 \0 \0 004 \0 \0 0006640 \0 006 \0 \0 \0 \0 001 \0 \0 \0 005 \0 \0 \0 \0 004 0006660 \0 \0 002 262 \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 0006700 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 024 \0 \0 0006720 \0 \0 004 \0 \0 \0 376 \0 \0 \0 \0 001 \0 \0 \0 001 0006740 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 0006760 Q \0 \0 \0 \0 002 \0 \0 \0 001 \0 \0 \0 \0 003 \0 0007000 \0 \0 \0 \0 002 \0 001 \0 \0 \0 + \0 \0 \0 \0 004 0007020 \0 \0 \0 x \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 0007040 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 035 \0 \0 0007060 \0 \0 004 \0 \0 \0 S \0 \0 \0 \0 001 \0 \0 \0 001 0007100 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 0007120 027 \0 \0 \0 \0 004 \0 \0 \0 O \0 \0 \0 \0 001 \0 0007140 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 0007160 \0 \0 \0 032 \0 \0 \0 \0 004 \0 \0 \0 S \0 \0 \0 0007200 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 0007220 002 \0 001 \0 \0 \0 ! \0 \0 \0 \0 004 \0 \0 \0 y 0007240 \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 0007260 \0 \0 \0 002 \0 001 \0 \0 \0 # \0 \0 \0 \0 004 \0 0007300 \0 \0 M \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 0007320 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 ! \0 \0 \0 0007340 \0 004 \0 \0 \0 O \0 \0 \0 \0 001 \0 \0 \0 001 \0 0007360 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 033 0007400 \0 \0 \0 \0 004 \0 \0 \0 204 \0 \0 \0 \0 001 \0 \0 0007420 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 0007440 \0 \0 034 \0 \0 \0 \0 004 \0 \0 \0 | \0 \0 \0 \0 0007460 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 0007500 \0 001 \0 \0 \0 \0 \0 \0 \0 004 \0 \0 \0 z \0 0007520 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \0 0007540 \0 \0 002 \0 001 \0 \0 \0 036 \0 \0 \0 \0 004 \0 \0 0007560 \0 } \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 \0 \0 003 0007600 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 \0 \0 \0 \0 0007620 004 \0 \0 \0 o \0 \0 \0 \0 001 \0 \0 \0 001 \0 \0 0007640 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 \0 ! \0 0007660 \0 \0 \0 004 \0 \0 \0 n \0 \0 \0 \0 001 \0 \0 \0 0007700 001 \0 \0 \0 \0 003 \0 \0 \0 \0 \0 002 \0 001 \0 \0 0007720 \0 024 \0 \0 \0 \0 004 \0 \0 \0 m \0 \0 \0 \0 001 0007740 \0 \0 \0 001 \0 \0 \0 \0 003 \0 \0 \f $ \0 K z 0007760 272 0007761