$ od -c -N 50000 [eris]<LispCore>SOURCES>ADDARITH!27
0000000 ( D E F I N E - F I L E - I N F
0000020 O 247 R E A D T A B L E " X C
0000040 L " 247 P A C K A G E " I N T
0000060 E R L I S P " ) \r 006 001 ( f i l e
0000100 c r e a t e d " 4 - N o v -
0000120 8 6 1 3 : 2 1 : 1 4 " 006 004 {
0000140 e r i s } < l i s p c o r e > s
0000160 o u r c e s > a d d a r i t h .
0000200 \ ; 2 7 006 001 3 4 1 3 1 \r \r
0000220 | c h a n g e s |
0000240 | t o : | ( v a r s a d d
0000260 a r i t h c o m s ) \r \r
0000300 | p r e v i o u s | | d a
0000320 t e : | " 3 - N o v - 8 6
0000340 1 1 : 5 5 : 3 2 " { e r i s }
0000360 < l i s p c o r e > s o u r c e
0000400 s > a d d a r i t h . \ ; 2 6 )
0000420 \r \r \r ; C o p y r i g h t (
0000440 c ) 1 9 8 2 , 1 9 8 3 , 1
0000460 9 8 4 , 1 9 8 5 , 1 9 8 6
0000500 b y X e r o x C o r p o r a
0000520 t i o n . A l l r i g h t
0000540 s r e s e r v e d . \r \r ( p r
0000560 e t t y c o m p r i n t a d d
0000600 a r i t h c o m s ) \r \r ( r p a
0000620 q q 006 002 a d d a r i t h c o m
0000640 s 006 001 ( ( l o c a l v a r s
0000660 . t ) \r
0000700 ( * \ ;
0000720 " O K " ) \r
0000740 ( m a c r
0000760 o s m a s k . 1 \ ' s m a s
0001000 k . 0 \ ' s b i t t e s t b
0001020 i t s e t b i t c l e a r ) \r
0001040
0001060 ( c o m s ( o p t i
0001100 m i z e r s l o g n o t ) \r
0001120
0001140 ( f n s l
0001160 o g n o t ) ) \r
0001200 ( c o
0001220 m s ( * \ ; " B Y T E h
0001240 a c k i n g f u n c t i o n s
0001260 " ) \r
0001300 ( r
0001320 e c o r d s b y t e s p e c )
0001340 \r
0001360 ( m a c
0001400 r o s l o a d b y t e d e p
0001420 o s i t b y t e ) \r
0001440
0001460 ( * \ ; " N O T
0001500 O K Y E T " ) \r
0001520
0001540 ( o p t i m i z e r s
0001560 b y t e d p b l d b ) \r
0001600
0001620 ( m a c r o s
0001640 b y t e s i z e b y t e p o
0001660 s i t i o n ) \r
0001700
0001720 ( f n s l d b d p b
0001740 b y t e ) \r
0001760
0002000 ( f n s \ \ l d b e x p a n
0002020 d e r \ \ d p b e x p a n d e
0002040 r ) ) \r
0002060 ( c o m s (
0002100 o p t i m i z e r s i m o d )
0002120 \r
0002140 ( f n s
0002160 i m o d l e s s p ) \r
0002200
0002220 ( m a c r o s i
0002240 m o d p l u s i m o d d i f f
0002260 e r e n c e ) ) \r
0002300 ( c
0002320 o m s ( f n s r o t ) \r
0002340
0002360 ( m a c r o s
0002400 . r o t . ) ) \r
0002420 ( c
0002440 o m s ( * | ; ; | " P r i
0002460 m i t i v e F u n c t i o n s
0002500 f o r e x t r a c t i n g
0002520 f i e l d s a s i n t e g e
0002540 r s " ) \r
0002560
0002600 ( m a c r o s \ \ x l o a d b
0002620 y t e w o r d ) \r
0002640
0002660 ( f n s \ \ p u t b a
0002700 s e b i t s ) \r
0002720
0002740 ( * | ; ; | \r
0002760
0003000 " P r i m i
0003020 t i v e f u n c t i o n s ,
0003040 e s p e c i a l l y n e e d e
0003060 d f o r C o m m o n L i s p
0003100 a r r a y p a c k a g e . "
0003120 ) \r
0003140 ( d e
0003160 c l a r e \ : d o n t c o p y
0003200 ( m a c r o s . h i h a l f
0003220 w o r d l o . . h i h a l f w
0003240 o r d h i . . l o h a l f w o
0003260 r d l o . \r
0003300
*
0003340 . l o
0003360 h a l f w o r d h i . ) ) ) \r
0003400
0003420 ( c o m s ( * | ; ;
0003440 | \r
0003460 " B e g i n n i n g o f
0003500 r e w r i t e o f s o m e
0003520 L L A R I T H t h i n g s ,
0003540 m o d u l a r l y u s i n g
0003560 t h e m a c r o s o f t h
0003600 i s f i l e " \r
0003620
0003640 ) \r
0003660
0003700 ( d e c l a r e \ : d
0003720 o n t c o p y ( e x p o r t
0003740 ( c o n s t a n t s m a s k 0
0003760 w o r d 1 \ ' s m a s k 1 w o
0004000 r d 0 \ ' s \r
0004020
*
0004100 m a s k w o r d 1 \
0004120 ' s m a s k h a l f w o r d 1
0004140 \ ' s \r
0004160
*
0004240 b i t s p e r h a l f w o
0004260 r d ) \r
0004300
*
0004340 ( m a c r o
0004360 s e q z e r o p ) \r
0004400
*
0004460 ( m a c r o s \ \ m o v e t
0004500 o b o x . x u n b o x . . x
0004520 l l s h . . x l l s h 1 . \r
0004540
*
0004620 . x l
0004640 r s h . . a d d . 2 w o r d .
0004660 i n t e g e r s . \r
0004700
*
0004760 . s u b . 2 w o
0005000 r d . i n t e g e r s . . 3 2
0005020 b i t m u l . ) \r
0005040
*
0005100 (
0005120 m a c r o s . s u m s m a l l
0005140 m o d . . d i f f e r e n c e
0005160 s m a l l m o d . ) ) \r
0005200
0005220 ( m
0005240 a c r o s . a d d . 2 w o r d
0005260 . i n t e g e r s . . s u b .
0005300 2 w o r d . i n t e g e r s .
0005320 . 3 2 b i t m u l . ) \r
0005340
0005360 ( m
0005400 a c r o s \ \ g e t b a s e n
0005420 i b b l e \ \ p u t b a s e n
0005440 i b b l e \ \ g e t b a s e b
0005460 i t \ \ p u t b a s e b i t )
0005500 ) \r
0005520 ) \r
0005540
0005560 ( p r o p f i l e t y
0005600 p e a d d a r i t h ) ) ) \r (
0005620 d e c l a r e \ : d o e v a l
0005640 @ c o m p i l e d o n t c o p
0005660 y \r \r ( l o c a l v a r s .
0005700 t ) \r ) \r \r \r \r 006 004 ( * \ ;
0005720 " O K " ) 006 001 \r \r ( d e c l a r
0005740 e \ : e v a l @ c o m p i l e
0005760 \r \r ( p u t p r o p s m a s
0006000 k . 1 \ ' s m a c r o ( o p
0006020 e n l a m b d a ( p o s i t i
0006040 o n s i z e ) \r
0006060
0006100 ( l s h (
0006120 s u b 1 ( l s h 1 s i z e
0006140 ) ) \r
0006160
0006200 p o s i t i o
0006220 n ) ) ) \r ( p u t p r o p s m
0006240 a s k . 0 \ ' s m a c r o (
0006260 o p e n l a m b d a ( p o s i
0006300 t i o n s i z e ) \r
0006320
0006340 ( l o g
0006360 n o t ( m a s k . 1 \ ' s p
0006400 o s i t i o n s i z e ) ) ) )
0006420 \r ( p u t p r o p s b i t t e
0006440 s t m a c r o ( ( n m a s
0006460 k ) \r
0006500 ( n e q
0006520 0 ( l o g a n d n m a s
0006540 k ) ) ) ) \r ( p u t p r o p s
0006560 b i t s e t m a c r o ( =
0006600 . l o g o r ) ) \r ( p u t p r
0006620 o p s b i t c l e a r m a c
0006640 r o ( ( x m a s k ) \r
0006660
0006700 ( l o g a n d x
0006720 ( l o g n o t m a s k ) ) )
0006740 ) \r ) \r ( d e f o p t i m i z e
0006760 r l o g n o t ( i n t e g e
0007000 r ) \r ` ( l o g x
0007020 o r - 1 , i n t e g e r ) )
0007040 \r ( d e f i n e q \r \r ( 006 004 l o
0007060 g n o t 006 001 \r ( l a m b d a
0007100 ( i n t e g e r )
0007120
*
0007160 ( * | k b r : | " 1
0007200 2 - J u l - 8 6 1 7 : 0 5 " )
0007220 \r ( l o g x o r - 1
0007240 i n t e g e r ) ) ) \r ) \r \r \r \r
0007260 006 004 ( * \ ; " B Y T E h a
0007300 c k i n g f u n c t i o n s "
0007320 ) 006 001 \r \r ( d e c l a r e \ :
0007340 e v a l @ c o m p i l e \r \r ( t
0007360 y p e r e c o r d 006 002 b y t e
0007400 s p e c 006 001 ( b y t e s p e c
0007420 . s i z e b y t e s p e c . p
0007440 o s i t i o n ) ) \r ) \r ( d e c
0007460 l a r e \ : e v a l @ c o m p
0007500 i l e \r \r ( p u t p r o p s
0007520 l o a d b y t e m a c r o (
0007540 ( n p o s s i z e ) \r
0007560
0007600 ( l o g a n d (
0007620 r s h n p o s ) \r
0007640
0007660 ( m a s
0007700 k . 1 \ ' s 0 s i z e ) ) )
0007720 ) \r ( p u t p r o p s d e p o
0007740 s i t b y t e m a c r o ( o
0007760 p e n l a m b d a ( n p o s
0010000 s i z e v a l ) \r
0010020
0010040 ( l
0010060 o g o r ( b i t c l e a r n
0010100 ( m a s k . 1 \ ' s p o s
0010120 s i z e ) ) \r
0010140
*
0010200 ( l s h ( l o g a n d v a
0010220 l ( m a s k . 1 \ ' s 0 s
0010240 i z e ) ) \r
0010260
*
0010320 p o s ) ) ) ) \r ) \r \r
0010340 \r \r 006 004 ( * \ ; " N O T O
0010360 K Y E T " ) 006 001 \r \r ( d e f o
0010400 p t i m i z e r b y t e ( &
0010420 r e s t x ) \r (
0010440 p r o g ( ( s i z e ( l i s
0010460 p f o r m . s i m p l i f y (
0010500 c a r x ) \r
0010520
0010540 t ) ) \r
0010560 ( p o s i t i o n ( l
0010600 i s p f o r m . s i m p l i f y
0010620 ( c a d r x ) \r
0010640
0010660 t ) ) ) \r
0010700 ( r e t u
0010720 r n ( c o n d ( ( a n d (
0010740 f i x p p o s i t i o n ) \r
0010760
*
0011020 ( f i x p s i z e ) ) \r
0011040
0011060 ( k w o t e
0011100 ( | c r e a t e | b y t e s p
0011120 e c b y t e s p e c . s i z e
0011140 _ s i z e b y t e s p e c
0011160 . p o s i t i o n _ \r
0011200
*
0011240 p o s i t i o n )
0011260 ) ) \r
0011300 ( t
0011320 ` ( | c r e a t e | b y t e
0011340 s p e c b y t e s p e c . s i
0011360 z e _ , s i z e b y t e s
0011400 p e c . p o s i t i o n _ \r
0011420
*
0011460 , p o s i t i o n ) )
0011500 ) ) ) ) \r ( d e f o p t i m i z
0011520 e r d p b ( & r e s t x )
0011540 \r ( \ \ d p b e x
0011560 p a n d e r x ) ) \r ( d e f o
0011600 p t i m i z e r l d b ( & r
0011620 e s t x ) \r ( \
0011640 \ l d b e x p a n d e r x ) )
0011660 \r ( d e c l a r e \ : e v a l
0011700 @ c o m p i l e \r \r ( p u t p
0011720 r o p s b y t e s i z e m a
0011740 c r o ( ( b y t e s p e c ) \r
0011760
0012000 ( | f e t c
0012020 h | b y t e s p e c . s i z e
0012040 | o f | b y t e s p e c ) )
0012060 ) \r ( p u t p r o p s b y t e
0012100 p o s i t i o n m a c r o (
0012120 ( b y t e s p e c ) \r
0012140
0012160 ( | f e t c h
0012200 | b y t e s p e c . p o s i t
0012220 i o n | o f | b y t e s p e
0012240 c ) ) ) \r ) \r ( d e f i n e q \r
0012260 \r ( 006 004 l d b 006 001 \r ( l a m
0012300 b d a ( b y t e s p e c i n
0012320 t e g e r )
0012340
0012360 ( * | k b r : |
0012400 " 1 2 - J u l - 8 6 1 7 : 1
0012420 0 " ) \r ( l o a d b y t
0012440 e i n t e g e r ( 006 002 | f e
0012460 t c h | 006 001 ( b y t e s p e c
0012500 b y t e s p e c . p o s i t i
0012520 o n ) 006 002 | o f | 006 001 b y t
0012540 e s p e c ) \r
0012560 ( 006 002 | f e t c h | 006 001 (
0012600 b y t e s p e c b y t e s p e
0012620 c . s i z e ) 006 002 | o f | 006 001
0012640 b y t e s p e c ) ) ) ) \r \r (
0012660 006 004 d p b 006 001 \r ( l a m b d
0012700 a ( n e w b y t e b y t e s
0012720 p e c i n t e g e r )
0012740
0012760 ( * | k b r : | "
0013000 1 2 - J u l - 8 6 1 7 : 1 8 "
0013020 ) \r ( d e p o s i t b y
0013040 t e i n t e g e r ( 006 002 | f
0013060 e t c h | 006 001 ( b y t e s p e
0013100 c b y t e s p e c . p o s i t
0013120 i o n ) 006 002 | o f | 006 001 b y
0013140 t e s p e c ) \r
0013160 ( 006 002 | f e t c h | 006 001
0013200 ( b y t e s p e c b y t e s p
0013220 e c . s i z e ) 006 002 | o f | 006
0013240 001 b y t e s p e c ) \r
0013260 n e w b y t e ) )
0013300 ) \r \r ( 006 004 b y t e 006 001 \r (
0013320 l a m b d a ( s i z e p o s
0013340 i t i o n )
0013360
0013400 ( * | k b
0013420 r : | " 1 4 - A u g - 8 6 1
0013440 4 : 1 8 " ) \r ( 006 002 | c
0013460 r e a t e | 006 001 b y t e s p e
0013500 c \r b y t
0013520 e s p e c . s i z e _ s i z
0013540 e \r b y t
0013560 e s p e c . p o s i t i o n _
0013600 p o s i t i o n ) ) ) \r ) \r (
0013620 d e f i n e q \r \r ( 006 004 \ \ l d
0013640 b e x p a n d e r 006 001 \r ( l
0013660 a m b d a ( x )
0013700
*
0013740 ( * | k b r
0013760 : | " 1 4 - A u g - 8 6 1 4
0014000 : 2 7 " ) \r ( p r o g
0014020 ( b s w o r d t e m n s
0014040 i z e p o s i t i o n )
0014060
0014100 ( * x = ( b y t e s
0014120 p e c i n t e g e r ) * ) \r
0014140 ( s e t q
0014160 b s ( l i s p f o r m . s i m
0014200 p l i f y ( c a r x ) \r
0014220
0014240 t ) ) \r
0014260 ( s e t q w o r d
0014300 ( c a d r x ) ) \r
0014320 ( r e t u r n ( c o
0014340 n d \r
0014360 ( ( a n d ( s
0014400 e t q t e m ( c a r ( e v
0014420 a l u a b l e . c o n s t a n t
0014440 p b s ) ) ) \r
0014460
0014500 ( 006 002 | t y p e ? | 006 001
0014520 b y t e s p e c t e m ) ) \r
0014540
0014560 ( l i s t ' l o a d
0014600 b y t e w o r d ( k w o t e
0014620 ( b y t e p o s i t i o n t
0014640 e m ) ) \r
0014660
0014700 ( k w o t e ( b y t e s i z
0014720 e t e m ) ) ) ) \r
0014740 (
0014760 t ( s e t q n ( l i s p f
0015000 o r m . s i m p l i f y w o r
0015020 d t ) ) \r
0015040 ( c
0015060 o n d \r
0015100 (
0015120 ( a n d ( l i s t p b s ) \r
0015140
*
0015200 ( e q ( c a r b s ) \r
0015220
*
0015260 ' b y t e ) ) \r
0015300
0015320 ( s e t q s i z
0015340 e ( c a d r b s ) ) \r
0015360
0015400 ( s e t q p
0015420 o s i t i o n ( c a d d r b
0015440 s ) ) \r
0015460
0015500 ( c o n d \r
0015520
0015540 ( ( o r ( e v a l u
0015560 a b l e . c o n s t a n t . f i
0015600 x p n ) \r
0015620
0015640 ( a n d (
0015660 a r g s . c o m m u t a b l e p
0015700 n s i z e ) \r
0015720
*
0015760 ( a r g s . c o m m u t a b
0016000 l e p n p o s i t i o n ) \r
0016020
*
0016060 ( a r g s . c
0016100 o m m u t a b l e p s i z e
0016120 p o s i t i o n ) ) ) \r
0016140
0016160 ` ( l o
0016200 a d b y t e , w o r d , p o
0016220 s i t i o n , s i z e ) ) \r
0016240
0016260 ( t
0016300 ` ( ( l a m b d a ( | \ \ B
0016320 y t e s i z e | | \ \ B y t e
0016340 p o s i t i o n | ) \r
0016360
*
0016420 ( 006 002 d e c l a r e 006 001 ( l
0016440 o c a l v a r s | \ \ B y t e
0016460 s i z e | | \ \ B y t e p o s
0016500 i t i o n | ) ) \r
0016520
0016540 (
0016560 l o a d b y t e \ , w o r d
0016600 | \ \ B y t e p o s i t i o n
0016620 | | \ \ B y t e s i z e | ) )
0016640 \r
0016660
0016700 \ , s i z e \ ,
0016720 p o s i t i o n ) ) ) ) \r
0016740
0016760 ( ( a n d ( l
0017000 i t a t o m b s ) \r
0017020
0017040 ( o r
0017060 ( e v a l u a b l e . c o n s t
0017100 a n t . f i x p n ) \r
0017120
*
0017160 ( a r g s . c o m m u t a b l
0017200 e p b s n ) ) ) \r
0017220
0017240 ` ( l o a d b y t
0017260 e \ , w o r d ( b y t e p
0017300 o s i t i o n \ , b s ) \r
0017320
*
0017360 ( b y t e s i z e \ ,
0017400 b s ) ) ) \r
0017420
0017440 ( t ` ( ( l a m b d a ( |
0017460 \ \ P o s i t i o n S i z e | )
0017500 \r
0017520
0017540 ( 006 002 d e c l a r e 006 001
0017560 ( l o c a l v a r s | \ \ P o
0017600 s i t i o n S i z e | ) ) \r
0017620
*
0017660 ( l o a d b y t e \ , w o r
0017700 d ( b y t e p o s i t i o n
0017720 | \ \ P o s i t i o n S i z e |
0017740 ) \r
0017760
0020000 ( b y t e
0020020 s i z e | \ \ P o s i t i o n
0020040 S i z e | ) ) ) \r
0020060
0020100 \ , b s ) )
0020120 ) ) ) ) ) ) ) \r \r ( 006 004 \ \ d p
0020140 b e x p a n d e r 006 001 \r ( l
0020160 a m b d a ( x )
0020200
*
0020240 ( * | J o n
0020260 L | " 2 5 - F E B - 8 3 2 0
0020300 : 4 9 " ) \r ( p r o g
0020320 ( ( n e w b y t e ( c a r x
0020340 ) ) \r ( b
0020360 s ( l i s p f o r m . s i m p
0020400 l i f y ( c a d r x ) \r
0020420
0020440 t ) ) \r
0020460 ( w o r d ( l i s p f o
0020500 r m . s i m p l i f y ( c a d
0020520 d r x ) \r
0020540 t )
0020560 ) \r s i z
0020600 e p o s x y | B a g B i
0020620 t e r P | n b y t e f o r m
0020640 d e p o s i t f o r m c b s
0020660 p t e m ) \r
0020700 ( 006 002 | i f | 006 001 ( a n d
0020720 ( l i s t p b s ) \r
0020740
0020760 ( e q ( c a r b s ) \r
0021000
0021020 ' c o n s ) \r
0021040
0021060 ( e q u a l ( c a d r b
0021100 s ) \r
0021120 '
0021140 ' b y t e s p e c ) \r
0021160
0021200 ( l i s t p ( s e t q t e m
0021220 ( c a d d r b s ) ) ) \r
0021240
0021260 ( e q ( c a r t e m )
0021300 \r
0021320 ' l i s t )
0021340 ) \r
0021360 006 002 | t h e n | 006 001 \r
0021400 \r
0021420 ( * | W h a t | \ a | c
0021440 r a p p y | | t h i n g | |
0021460 t o | | d o | | i n | | o
0021500 r d e r | | t o | | t r y |
0021520 | t o | \r
0021540 | d e - c o m p i l e | | t
0021560 h e | | e x p a n d e d | |
0021600 f o r m | | o f | \r
0021620 ( b y t e | < s i z
0021640 e > | | < p o s i t i o n > |
0021660 ) ) \r \r
0021700 ( 006 002 | p o p |
0021720 006 001 t e m ) \r
0021740 ( s e t
0021760 q s i z e ( 006 002 | p o p | 006
0022000 001 t e m ) ) \r
0022020 ( s e t
0022040 q p o s ( 006 002 | p o p | 006 001
0022060 t e m ) ) \r
0022100 ( s e t q
0022120 c b s p ( a n d ( e v a l
0022140 u a b l e . c o n s t a n t p
0022160 s i z e ) \r
0022200
0022220 ( e v a l u
0022240 a b l e . c o n s t a n t p p
0022260 o s ) ) ) \r
0022300 006 002 | e l s e i f | 006 001 (
0022320 a n d ( s e t q t e m ( c
0022340 a r ( e v a l u a b l e . c o
0022360 n s t a n t p b s ) ) ) \r
0022400
0022420 ( 006 002 | t y p e
0022440 ? | 006 001 b y t e s p e c t e
0022460 m ) ) \r
0022500 006 002 | t h e n | 006 001 ( s e
0022520 t q s i z e ( k w o t e (
0022540 b y t e s i z e t e m ) ) ) \r
0022560
0022600 ( s e t q p o s ( k
0022620 w o t e ( b y t e p o s i t i
0022640 o n t e m ) ) ) \r
0022660 ( s
0022700 e t q c b s p t ) ) \r
0022720 ( s e t q n (
0022740 l i s p f o r m . s i m p l i f
0022760 y n e w b y t e t ) ) \r
0023000 ( s e t q | B
0023020 a g B i t e r P | ( o r ( n
0023040 o t ( a r g s . c o m m u t a
0023060 b l e p n w o r d ) ) \r
0023100
0023120 ( a
0023140 n d ( n o t c b s p ) \r
0023160
*
0023220 ( n o t ( a r g s . c o
0023240 m m u t a b l e p n b s ) )
0023260 ) ) ) \r ( s
0023300 e t q b y t e f o r m ( 006 002
0023320 | i f | 006 001 | B a g B i t e r
0023340 P | \r
0023360
0023400 006 002 | t h e n | 006 001 ' | \ \ N
0023420 e w B y t e | \r
0023440
0023460 006 002 | e l s e | 006 001 n e
0023500 w b y t e ) ) \r
0023520 ( s e t q d e p o s i t f
0023540 o r m \r (
0023560 006 002 | i f | 006 001 ( a n d s i
0023600 z e p o s ) \r
0023620 006 002 | t h e n | 006
0023640 001
0023660
0023700 ( * | t h e
0023720 | s i z e | a n d | p o s
0023740 i t i o n \r
0023760
*
0024040 | s p e c i f i e r s |
0024060 | a r e | | s o m e h o w |
0024100 \r
0024120
*
0024160 |
0024200 e x t r a c t a b l e . | ) \r
0024220
0024240 ( 006 002 | i f | 006 001 ( o
0024260 r c b s p ( a n d ( a r g
0024300 s . c o m m u t a b l e p s i
0024320 z e p o s ) \r
0024340
*
0024400 ( a r g s . c o m m u t a b l
0024420 e p w o r d b s ) ) ) \r
0024440
0024460 006 002 | t h e n | 006
0024500 001
0024520 (
0024540 * | C a s e | | w i t h |
0024560 \ a | d e t e c t e d | \r
0024600
*
0024660 | c o n
0024700 s t a n t | | f o r | | b y
0024720 t e s p e c i f i e r | ) \r
0024740
0024760 ` ( d
0025000 e p o s i t b y t e \ , w o
0025020 r d \ , p o s \ , s i z
0025040 e \ , b y t e f o r m ) \r
0025060
0025100 006 002 | e l s e | 006 001
0025120 ` ( ( l a m b d a ( | \ \ B
0025140 y t e s i z e | | \ \ B y t e
0025160 p o s i t i o n | ) \r
0025200
0025220 ( 006 002
0025240 d e c l a r e 006 001 ( l o c a l
0025260 v a r s | \ \ B y t e s i z e
0025300 | | \ \ B y t e p o s i t i o
0025320 n | ) ) \r
0025340
0025360 ( d e p o s i t b
0025400 y t e \ , w o r d | \ \ B
0025420 y t e p o s i t i o n | | \ \
0025440 B y t e s i z e | \ , b y t
0025460 e f o r m ) ) \r
0025500
0025520 \ , s i z e
0025540 \ , p o s ) ) \r
0025560 006 002 | e l s e | 006 001
0025600 ( 006 002 | i f | 006 001 ( a n d
0025620 ( l i t a t o m b s ) \r
0025640
0025660 ( a r g
0025700 s . c o m m u t a b l e p w o
0025720 r d b s ) ) \r
0025740
0025760 006 002 | t h e n | 006 001 ` ( d e p
0026000 o s i t b y t e \ , w o r d
0026020 ( b y t e p o s i t i o n \
0026040 , b s ) \r
0026060
0026100 ( b y
0026120 t e s i z e \ , b s ) \r
0026140
*
0026200 \ , b y t e f o r m
0026220 ) \r
0026240 006 002 | e l s e |
0026260 006 001 ( s e t q | B a g B i t
0026300 e r P | t ) \r
0026320
0026340 ` ( ( l a m b d a ( |
0026360 \ \ B y t e S p e c | ) \r
0026400
0026420 ( 006 002
0026440 d e c l a r e 006 001 ( l o c a l
0026460 v a r s | \ \ B y t e S p e c
0026500 | ) ) \r
0026520
0026540 ( d e p o s i t b y t e
0026560 \ , w o r d ( b y t e p o
0026600 s i t i o n | \ \ B y t e S p
0026620 e c | ) \r
0026640
0026660 ( b y t
0026700 e s i z e | \ \ B y t e S p e
0026720 c | ) \r
0026740
0026760 | \ \ N e
0027000 w B y t e | ) ) \r
0027020
0027040 \ , b s ) ) ) )
0027060 \r ( r e t u
0027100 r n ( 006 002 | i f | 006 001 | B a
0027120 g B i t e r P | \r
0027140 006
0027160 002 | t h e n | 006 001 ` ( ( l a m
0027200 b d a ( | \ \ N e w B y t e |
0027220 ) \r
0027240
0027260 ( 006 002 d e c l a r e 006 001
0027300 ( l o c a l v a r s | \ \ N e
0027320 w B y t e | ) ) \r
0027340
0027360 \ , d e p
0027400 o s i t f o r m ) \r
0027420
0027440 \ , n e w b
0027460 y t e ) \r
0027500 006 002 | e l s e
0027520 | 006 001 d e p o s i t f o r m )
0027540 ) ) ) ) \r ) \r ( d e f o p t i m
0027560 i z e r i m o d ( & r e s t
0027600 l ) \r ( p r o g
0027620 ( ( n ( c o n s t a n t e x
0027640 p r e s s i o n p ( c a d r
0027660 l ) ) ) ) \r
0027700 ( | i f | ( n u l l n
0027720 ) \r
0027740 | t h e n | \r
0027760 (
0030000 r e t u r n ' i g n o r e m a
0030020 c r o ) ) \r
0030040 ( s e t q n ( c a r
0030060 n ) ) \r
0030100 ( r e t u r n ( c o n d (
0030120 ( n o t ( p o w e r o f t w o
0030140 p n ) ) \r
0030160
0030200 ' i g n o r e m a c r o ) \r
0030220
0030240 ( t ( l
0030260 i s t ' l o g a n d ( c a r
0030300 l ) \r
0030320
0030340 ( s u b 1 n )
0030360 ) ) ) ) ) ) \r ( d e f i n e q \r
0030400 \r ( 006 004 i m o d l e s s p 006 001 \r
0030420 ( l a m b d a ( x y m
0030440 o d u l u s )
0030460
0030500 ( *
0030520 | l m m | " 1 2 - A p r - 8 5
0030540 1 2 : 4 3 " ) \r ( i l
0030560 e s s p ( i m o d d i f f e r
0030600 e n c e y x m o d u l u s
0030620 ) \r ( f o
0030640 l d h i m o d u l u s 2 ) )
0030660 ) ) \r ) \r ( d e c l a r e \ :
0030700 e v a l @ c o m p i l e \r \r (
0030720 p u t p r o p s i m o d p l u
0030740 s m a c r o ( ( x y m o
0030760 d u l u s ) \r
0031000
0031020 ( i m o d ( i p l u s x
0031040 y ) \r
0031060
0031100 m o d u l u s ) ) ) \r ( p
0031120 u t p r o p s i m o d d i f f
0031140 e r e n c e m a c r o ( ( x
0031160 y m o d u l u s ) \r
0031200
0031220 ( i m o
0031240 d ( i d i f f e r e n c e x
0031260 y ) \r
0031300
0031320 m o d u l u
0031340 s ) ) ) \r ) \r ( d e f i n e q \r
0031360 \r ( 006 004 r o t 006 001 \r ( l a m
0031400 b d a ( x n f i e l d s i
0031420 z e )
0031440
0031460 ( * | P a v e l
0031500 | " 7 - O c t - 8 6 1 5 :
0031520 2 6 " ) \r
0031540
*
0031600 ( * | ; ; | "
0031620 N o r m a l i z e N , t h e
0031640 s h i f t f a c t o r , i
0031660 n t o t h e h a l f - o p e
0031700 n i n t e r v a l o f 0
0031720 t o F I E L D S I Z E a n d
0031740 t r a n s f o r m a n e g
0031760 a t i v e N ( r o t a t i n
0032000 g r i g h t w a r d s ) i n
0032020 t o a p o s i t i v e f o
0032040 r m . " ) \r ( l e t *
0032060 ( ( n ( i m o d n f i e l
0032100 d s i z e ) ) \r
0032120 ( n . b ( i d i f f e r
0032140 e n c e f i e l d s i z e n
0032160 ) ) ) \r ( d
0032200 e p o s i t b y t e ( l o a d
0032220 b y t e x n . b n ) \r
0032240 n
0032260 n . b x ) ) ) ) \r ) \r ( d e
0032300 c l a r e \ : e v a l @ c o m
0032320 p i l e \r \r ( p u t p r o p s
0032340 . r o t . m a c r o ( ( x
0032360 f o r m n f i e l d s i z e
0032400 ) \r
0032420 ( ( o p e n l
0032440 a m b d a ( x ) \r
0032460
0032500 ( d e p o s i
0032520 t b y t e ( l o a d b y t e
0032540 x ( i d i f f e r e n c e f
0032560 i e l d s i z e n ) \r
0032600
*
0032640 n
0032660 ) \r
0032700
0032720 n \r
0032740
*
0033000 ( i d i f f e r e n c e f i e
0033020 l d s i z e n ) \r
0033040
*
0033100 x ) ) \r
0033120 x f o r
0033140 m ) ) ) \r ) \r \r \r \r 006 004 ( * |
0033160 ; ; | " P r i m i t i v e F
0033200 u n c t i o n s f o r e x t
0033220 r a c t i n g f i e l d s a
0033240 s i n t e g e r s " ) 006 001 \r \r
0033260 ( d e c l a r e \ : e v a l @
0033300 c o m p i l e \r \r ( p u t p r
0033320 o p s \ \ x l o a d b y t e w
0033340 o r d d m a c r o ( ( n p
0033360 o s s i z e ) \r
0033400
0033420 ( * n
0033440 | i s | | c o n s t r a i n e
0033460 d | | t o | | b e | \ a
0033500 s m a l l p ) \r
0033520
0033540 ( l o g a n
0033560 d ( \ \ x l r s h w o r d n
0033600 p o s ) \r
0033620
0033640 (
0033660 m a s k . 1 \ ' s 0 ( i m i
0033700 n b i t s p e r w o r d s i
0033720 z e ) ) ) ) ) \r ) \r ( d e f i n
0033740 e q \r \r ( 006 004 \ \ p u t b a s e
0033760 b i t s 006 001 \r ( l a m b d a
0034000 ( a d d r p o s i t i o n
0034020 s i z e v a l )
0034040
0034060 ( * | l m m | " 1 2
0034100 - A p r - 8 5 1 5 : 1 8 " ) \r
0034120 ( 006 002 | i f | 006 001 ( g
0034140 r e a t e r p p o s i t i o n
0034160 b i t s p e r w o r d ) \r
0034200 006 002 | t h e n | 006 001
0034220 ( 006 002 \ \ p u t b a s e b i t
0034240 s 006 001 ( \ \ a d d b a s e a
0034260 d d r ( f o l d l o p o s i
0034300 t i o n b i t s p e r w o r d
0034320 ) ) \r
0034340 ( i m o d p
0034360 o s i t i o n b i t s p e r w
0034400 o r d ) \r
0034420 s i z e
0034440 v a l ) \r 006 002 | e l
0034460 s e i f | 006 001 ( g r e a t e r
0034500 p s i z e ( d i f f e r e n
0034520 c e b i t s p e r w o r d p
0034540 o s i t i o n ) ) \r
0034560 006 002 | t h e n | 006 001
0034600
*
0034640 ( * | m
0034660 o r e | | t h a n | | o n e
0034700 | | w o r d | ) \r
0034720 ( 006 002 \ \ p u t
0034740 b a s e b i t s 006 001 a d d r
0034760 p o s i t i o n ( d i f f e r
0035000 e n c e b i t s p e r w o r d
0035020 p o s i t i o n ) \r
0035040
0035060 ( r s h v a l ( s e t q s
0035100 i z e ( d i f f e r e n c e
0035120 s i z e ( d i f f e r e n c e
0035140 b i t s p e r w o r d p o s
0035160 i t i o n ) ) ) ) ) \r
0035200 ( 006 002 \ \ p u
0035220 t b a s e b i t s 006 001 ( \ \ a
0035240 d d b a s e a d d r 1 ) \r
0035260
0035300 0 s i z e v a l ) \r
0035320 006 002 | e l s e | 006 001
0035340
*
0035420 ( * \ a | s i n g l e |
0035440 | w o r d | ) \r
0035460 ( \ \ p u t b a s e a
0035500 d d r 0 ( d e p o s i t b y
0035520 t e ( \ \ g e t b a s e a d
0035540 d r 0 ) \r
0035560
0035600 ( d i f f
0035620 e r e n c e ( s u b 1 b i t
0035640 s p e r w o r d ) \r
0035660
*
0035720 p o s i t i o n ) \r
0035740
*
0036000 s i z e v a l ) ) )
0036020 ) ) \r ) \r \r \r \r 006 004 ( * | ; ;
0036040 | " P r i m i t i v e f u n
0036060 c t i o n s , e s p e c i a l
0036100 l y n e e d e d f o r C o
0036120 m m o n L i s p a r r a y p
0036140 a c k a g e . " ) 006 001 \r \r ( d e
0036160 c l a r e \ : d o n t c o p y
0036200 \r ( d e c l a r e \ : e v a
0036220 l @ c o m p i l e \r \r ( p u t
0036240 p r o p s . h i h a l f w o r
0036260 d l o . m a c r o ( ( x ) \r
0036300
*
0036340 ( l r s h x b i t s p e r h
0036360 a l f w o r d ) ) ) \r ( p u t p
0036400 r o p s . h i h a l f w o r d
0036420 h i . m a c r o ( ( x ) \r
0036440
0036460 (
0036500 l o g a n d x ( c o n s t a
0036520 n t ( l s h m a s k h a l f
0036540 w o r d 1 \ ' s b i t s p e r
0036560 h a l f w o r d ) ) ) ) ) \r ( p
0036600 u t p r o p s . l o h a l f w
0036620 o r d l o . m a c r o ( ( x
0036640 ) \r
0036660
0036700 ( l o g a n d x m a s k
0036720 h a l f w o r d 1 \ ' s ) ) ) \r
0036740 ( p u t p r o p s . l o h a l
0036760 f w o r d h i . m a c r o (
0037000 ( x ) \r
0037020
0037040 ( l l s h ( l o g a n
0037060 d x m a s k h a l f w o r d
0037100 1 \ ' s ) \r
0037120
0037140 b i t s
0037160 p e r h a l f w o r d ) ) ) \r )
0037200 \r ) \r \r \r \r 006 004 ( * | ; ; |
0037220 " B e g i n n i n g o f r e
0037240 w r i t e o f s o m e L L
0037260 A R I T H t h i n g s , m o
0037300 d u l a r l y u s i n g t h
0037320 e m a c r o s o f t h i s
0037340 f i l e " ) 006 001 \r \r ( d e c l
0037360 a r e \ : d o n t c o p y \r
0037400 ( * " F O L L O W I N G D E
0037420 F I N I T I O N S E X P O R T
0037440 E D " ) \r \r ( d e c l a r e \ :
0037460 e v a l @ c o m p i l e \r \r
0037500 ( r p a q q 006 002 m a s k 0 w o
0037520 r d 1 \ ' s 006 001 3 2 7 6 7 ) \r
0037540 \r ( r p a q q 006 002 m a s k 1 w
0037560 o r d 0 \ ' s 006 001 3 2 7 6 8 )
0037600 \r \r ( r p a q q 006 002 m a s k w
0037620 o r d 1 \ ' s 006 001 6 5 5 3 5 )
0037640 \r \r ( r p a q q 006 002 m a s k h
0037660 a l f w o r d 1 \ ' s 006 001 2 5
0037700 5 ) \r \r ( r p a q q 006 002 b i t
0037720 s p e r h a l f w o r d 006 001 8
0037740 ) \r \r ( c o n s t a n t s m a
0037760 s k 0 w o r d 1 \ ' s m a s k
0040000 1 w o r d 0 \ ' s m a s k w o
0040020 r d 1 \ ' s m a s k h a l f w
0040040 o r d 1 \ ' s b i t s p e r h
0040060 a l f w o r d ) \r ) \r ( d e c l
0040100 a r e \ : e v a l @ c o m p i
0040120 l e \r \r ( p u t p r o p s e
0040140 q z e r o p m a c r o ( ( x
0040160 ) \r
0040200 ( e q 0
0040220 x ) ) ) \r ) \r ( d e c l a r e
0040240 \ : e v a l @ c o m p i l e
0040260 \r \r ( p u t p r o p s \ \ m o
0040300 v e t o b o x d m a c r o (
0040320 o p e n l a m b d a ( n d )
0040340 \r
0040360
0040400 ( s e l e c t c ( n
0040420 t y p x n ) \r
0040440
*
0040500 ( \ \ s m a l l p ( | r
0040520 e p l a c e | ( f i x p h i
0040540 n u m ) \r
0040560
*
0040640 | o f | d | w i t h | 0
0040660 ) \r
0040700
*
0040740 ( | r e p l a c e | (
0040760 f i x p l o n u m ) \r
0041000
*
0041060 | o f | d | w i t
0041100 h | n ) ) \r
0041120
*
0041160 ( \ \ f i x p ( | r e p l
0041200 a c e | ( f i x p h i n u m
0041220 ) \r
0041240
*
0041300 | o f |
0041320 d | w i t h | ( | f e t c
0041340 h | ( f i x p h i n u m ) \r
0041360
*
0041460 |
0041500 o f | n ) ) \r
0041520
*
0041560 ( | r e p l
0041600 a c e | ( f i x p l o n u m
0041620 ) \r
0041640
*
0041700 | o f |
0041720 d | w i t h | ( | f e t c h
0041740 | ( f i x p l o n u m ) \r
0041760
*
0042060 | o f
0042100 | n ) ) ) \r
0042120
*
0042160 ( \ \ i l l e g a l . a r g
0042200 n ) ) ) ) \r ( p u t p r o p s
0042220 . x u n b o x . m a c r o
0042240 ( ( x h x l x ) \r
0042260
0042300 ( | u n t i l | ( s
0042320 e t q l x ( s e l e c t c
0042340 ( n t y p x x ) \r
0042360
*
0042420 ( \ \
0042440 s m a l l p ( c o n d ( ( i
0042460 g e q x 0 ) \r
0042500
*
0042560 ( s e
0042600 t q h x 0 ) \r
0042620
*
0042700 x ) \r
0042720
*
0043020 ( t ( s e t q h x m
0043040 a s k w o r d 1 \ ' s ) \r
0043060
*
0043160 ( \ \ l o l o c x ) ) )
0043200 ) \r
0043220
*
0043260 ( \ \ f i x p ( s e
0043300 t q h x ( | f e t c h | (
0043320 f i x p h i n u m ) \r
0043340
*
0043440 | o f | x ) ) \r
0043460
*
0043540 ( | f e t c
0043560 h | ( f i x p l o n u m ) \r
0043600
*
0043700 | o f | x ) ) \r
0043720
*
0043760 n i l
0044000 ) ) \r
0044020
0044040 | d o | \r
0044060
0044100 ( s e t q
0044120 x ( l i s p e r r o r " I L
0044140 L E G A L A R G " x t ) )
0044160 ) ) ) \r ( p u t p r o p s . x
0044200 l l s h . m a c r o ( ( h i
0044220 l o n ) \r
0044240
0044260 ( | i f | ( i g e q n b i
0044300 t s p e r w o r d ) \r
0044320
0044340 | t h e n |
0044360 \r
0044400
0044420 ( * | J u m p | 1 6 | b i
0044440 t s | | i n | \ a | s i n
0044460 g l e | | b o u n d ! | ) \r
0044500
0044520 ( s
0044540 e t q h i l o ) \r
0044560
0044600 ( s e t q
0044620 l o 0 ) \r
0044640
0044660 ( s e t q n ( i d
0044700 i f f e r e n c e n b i t s
0044720 p e r w o r d ) ) ) \r
0044740
0044760 ( | i f | ( i g e q
0045000 n b i t s p e r h a l f w o r
0045020 d ) \r
0045040
0045060 | t h e n | \r
0045100
0045120 ( * | J u m p
0045140 | 8 | b i t s | | i n |
0045160 \ a | s i n g l e | | b o u
0045200 n d ! | ) \r
0045220
0045240 ( s e t q h i ( l
0045260 o g o r ( . l o h a l f w o r
0045300 d h i . h i ) \r
0045320
*
0045360 ( . h i h a l f
0045400 w o r d l o . l o ) ) ) \r
0045420
0045440 ( s e
0045460 t q l o ( . l o h a l f w o
0045500 r d h i . l o ) ) \r
0045520
0045540 ( s e t q
0045560 n ( i d i f f e r e n c e n
0045600 b i t s p e r h a l f w o r d
0045620 ) ) ) \r
0045640 ( | i
0045660 f | ( i g e q n 4 ) \r
0045700
0045720 | t h
0045740 e n | \r
0045760
0046000 ( * | J u m p | 4 |
0046020 b i t s | | i n | \ a | s
0046040 i n g l e | | b o u n d ! | )
0046060 \r
0046100
0046120 ( s e t q h i ( l o g o r
0046140 ( l r s h l o ( c o n s t a
0046160 n t ( i d i f f e r e n c e
0046200 b i t s p e r w o r d 4 ) ) )
0046220 \r
0046240
*
0046300 ( l l s h ( l o g a n d h i
0046320 ( c o n s t a n t ( m a s k
0046340 . 1 \ ' s 0 \r
0046360
*
0046460 ( i d i f f e
0046500 r e n c e \r
0046520
*
0046620 b
0046640 i t s p e r w o r d 4 \r
0046660
*
0047000 ) ) ) ) \r
0047020
*
0047060 4
0047100 ) ) ) \r
0047120
0047140 ( s e t q l o ( l l s
0047160 h ( l o g a n d l o ( c o
0047200 n s t a n t ( m a s k . 1 \ '
0047220 s 0 ( i d i f f e r e n c e
0047240 \r
0047260
*
0047360 b i t s p e r
0047400 w o r d 4 ) \r
0047420
*
0047520 ) ) ) \r
0047540
*
0047600 4 ) ) \r
0047620
0047640 ( s e t q n (
0047660 i d i f f e r e n c e n 4 )
0047700 ) ) \r
0047720 ( * m
0047740 a s k 0 w o r d 1 \ ' s | s h
0047760 o u l d | | b e | | s a m e
0050000 | | a s | ( s u b 1 ( l s
0050020 h 1 ( s u b 1 b i t s p e
0050040 r w o r d ) ) ) \r
0050060
0050100 ) \r
0050120
0050140 ( f r p t q n ( s e t q h
0050160 i ( l l s h ( l o g a n d
0050200 h i m a s k 0 w o r d 1 \ ' s
0050220 ) \r
0050240
*
0050300 1 ) ) \r
0050320
0050340 ( s e t q l o
0050360 ( l l s h ( | i f | ( i g e
0050400 q l o m a s k 1 w o r d 0 \
0050420 ' s ) \r
0050440
*
0050500 | t h e n | \r
0050520
*
0050600 ( | a d d | h i 1
0050620 ) \r
0050640
*
0050700 ( l o g a n d l
0050720 o m a s k 0 w o r d 1 \ ' s )
0050740 \r
0050760
*
0051020 | e l s e | l o )
0051040 \r
0051060
*
0051120 1 ) ) ) ) ) \r ( p u t p r o p s
0051140 . x l l s h 1 . m a c r o
0051160 ( ( h i l o ) \r
0051200
0051220 ( s e t q h i ( l l s
0051240 h ( l o g a n d h i m a s
0051260 k 0 w o r d 1 \ ' s ) \r
0051300
*
0051340 1 ) ) \r
0051360
0051400 ( s e t q l o ( l s h
0051420 ( c o n d ( ( i g e q l o
0051440 m a s k 1 w o r d 0 \ ' s ) \r
0051460
*
0051520 (
0051540 s e t q h i ( l o g o r h
0051560 i 1 ) ) \r
0051600
*
0051640 ( l o g a n d l o
0051660 m a s k 0 w o r d 1 \ ' s ) ) \r
0051700
*
0051740 ( t
0051760 l o ) ) \r
0052000
0052020 1 )
0052040 ) ) ) \r ( p u t p r o p s . x
0052060 l r s h . m a c r o ( ( h i
0052100 l o n ) \r
0052120
0052140 ( | i f | ( i g e q n b i
0052160 t s p e r w o r d ) \r
0052200
0052220 | t h e n |
0052240 \r
0052260
0052300 ( * | J u m p | 1 0 | b i
0052320 t s | | i n | \ a | s i n
0052340 g l e | | b o u n d ! | ) \r
0052360
0052400 ( s
0052420 e t q l o h i ) \r
0052440
0052460 ( s e t q
0052500 h i 0 ) \r
0052520
0052540 ( s e t q n ( i d
0052560 i f f e r e n c e n b i t s
0052600 p e r w o r d ) ) ) \r
0052620
0052640 ( | i f | ( i g e q
0052660 n b i t s p e r h a l f w o r
0052700 d ) \r
0052720
0052740 | t h e n | \r
0052760
0053000 ( * | J u m p
0053020 | 8 | b i t s | | i n |
0053040 \ a | s i n g l e | | b o u
0053060 n d ! | ) \r
0053100
0053120 ( s e t q l o ( l
0053140 o g o r ( . h i h a l f w o r
0053160 d l o . l o ) \r
0053200
*
0053240 ( . l o h a l f
0053260 w o r d h i . h i ) ) ) \r
0053300
0053320 ( s e
0053340 t q h i ( . h i h a l f w o
0053360 r d l o . h i ) ) \r
0053400
0053420 ( s e t q
0053440 n ( i d i f f e r e n c e n
0053460 b i t s p e r h a l f w o r d
0053500 ) ) ) \r
0053520 ( | i
0053540 f | ( i g e q n 4 ) \r
0053560
0053600 | t h
0053620 e n | \r
0053640
0053660 ( * | J u m p | 4 |
0053700 b i t s | | i n | \ a | s
0053720 i n g l e | | b o u n d ! | )
0053740 \r
0053760
0054000 ( s e t q l o ( l o g o r
0054020 ( l l s h ( l o g a n d h i
0054040 ( c o n s t a n t ( m a s k
0054060 . 1 \ ' s 0 4 ) ) ) \r
0054100
*
0054160 ( c o n s t a n t ( i d i
0054200 f f e r e n c e b i t s p e r
0054220 w o r d 4 ) ) ) \r
0054240
*
0054300 ( l r s h l
0054320 o 4 ) ) ) \r
0054340
0054360 ( s e t q h i (
0054400 l r s h h i 4 ) ) \r
0054420
0054440 ( s e t q
0054460 n ( i d i f f e r e n c e
0054500 n 4 ) ) ) \r
0054520
0054540 ( * m a s k 1 w o r d 0 \ ' s
0054560 | s h o u l d | | b e | |
0054600 s a m e | | a s | \ \ s i g
0054620 n b i t ) \r
0054640 (
0054660 f r p t q n ( s e t q l o
0054700 ( | i f | ( o d d p h i )
0054720 \r
0054740
*
0055000 | t h e n | \r
0055020
*
0055060 ( l o g o r
0055100 ( l r s h l o 1 ) \r
0055120
*
0055200 m a s k 1 w o r d 0 \
0055220 ' s ) \r
0055240
*
0055300 | e l s e | \r
0055320
*
0055360 ( l r
0055400 s h l o 1 ) ) ) \r
0055420
0055440 ( s e t q
0055460 h i ( l r s h h i 1 ) )
0055500 ) ) ) \r ( p u t p r o p s . a
0055520 d d . 2 w o r d . i n t e g e r
0055540 s . m a c r o ( ( h x l x
0055560 h y l y ) \r
0055600
0055620 ( *
0055640 | I g n o r e s | | c a r r
0055660 y | | o u t | | o f | | h
0055700 i g h - o r d e r | | w o r d
0055720 | ) \r
0055740
0055760 ( s e t q h
0056000 x ( . s u m s m a l l m o d .
0056020 h x h y ) ) \r
0056040
0056060 (
0056100 s e t q l x ( . s u m s m a
0056120 l l m o d . l x l y ( s e
0056140 t q h x \r
0056160
*
0056260 ( | i f | ( e q h x \r
0056300
*
0056420 m a x . s m a l l . i n t e
0056440 g e r \r
0056460
*
0056560 ) \r
0056600
*
0056700 | t h e n |
0056720 0 | e l s e | \r
0056740
*
0057040 ( a d d 1
0057060 h x ) ) ) ) ) ) ) \r ( p u t p r
0057100 o p s . s u b . 2 w o r d . i
0057120 n t e g e r s . m a c r o (
0057140 ( h x l x h y l y ) \r
0057160
*
0057220 ( * | I g n o r e s |
0057240 | c a r r y | | o u t | |
0057260 o f | | h i g h - o r d e r |
0057300 | w o r d | ) \r
0057320
0057340 (
0057360 s e t q h x ( . d i f f e r
0057400 e n c e s m a l l m o d . h x
0057420 h y ) ) \r
0057440
0057460 ( s e t
0057500 q l x ( . d i f f e r e n c
0057520 e s m a l l m o d . l x l y
0057540 \r
0057560
*
0057620 ( s e t q h x
0057640 ( | i f | ( e q h x 0 ) \r
0057660
*
0057760 | t h e n | m a x .
0060000 s m a l l . i n t e g e r | e
0060020 l s e | \r
0060040
*
0060120 ( s u b 1
0060140 h x ) ) ) ) ) ) ) \r ( p u t p r
0060160 o p s . 3 2 b i t m u l . m
0060200 a c r o ( ( h r l r x y
0060220 ) \r
0060240 ( p
0060260 r o g ( h x l x h y l y
0060300 ) \r
0060320
0060340 ( | i f | ( i l e s s
0060360 p x y ) \r
0060400
0060420 |
0060440 t h e n | \r
0060460
0060500 ( |
0060520 s w a p | x y ) ) \r
0060540
0060560 ( *
0060600 y | i s | | t h e | | l
0060620 e s s e r | | o f | | t h e
0060640 | | t w o | | n o w | ) \r
0060660
*
0060720 ( . x u n b o x . x h x
0060740 l x ) \r
0060760
0061000 ( . x u n b o x .
0061020 y h y l y ) \r
0061040
0061060 l p \r
0061100
*
0061140 ( | i f | ( o d d p l y ) \r
0061160
*
0061220 | t h e n | \r
0061240
*
0061300 ( . a d d . 2 w o
0061320 r d . i n t e g e r s . h r
0061340 l r h x l x ) ) \r
0061360
0061400 ( | i
0061420 f | ( e q h y 0 ) \r
0061440
*
0061500 | t h e n | \r
0061520
*
0061560 ( s e t q l y ( l r
0061600 s h l y 1 ) ) \r
0061620
*
0061660 ( | i f | ( e q l y 0
0061700 ) \r
0061720
*
0061760 | t h e n | \r
0062000
*
0062040 ( r e t u r n ) ) \r
0062060
*
0062120 | e l s e | \r
0062140
*
0062200 ( . l r s h 1 . h
0062220 y l y ) ) \r
0062240
0062260 ( * | T r i
0062300 m | | o f f | | h i g h e s
0062320 t | | b i t s , | | s o |
0062340 | t h a t | | l e f t - s h i
0062360 f t i n g | \r
0062400
0062420 | d o
0062440 e s n ' t | | g e n e r a t e
0062460 | f i x p \ s ) \r
0062500
0062520 ( s e t
0062540 q h x ( l o g a n d h x
0062560 m a s k 0 w o r d 1 \ ' s ) ) \r
0062600
*
0062640 ( . l l s h 1 . h x l x
0062660 ) \r
0062700
0062720 ( g o l p ) ) ) ) \r )
0062740 \r ( d e c l a r e \ : e v a l
0062760 @ c o m p i l e \r \r ( p u t p
0063000 r o p s . s u m s m a l l m o
0063020 d . m a c r o ( ( x y o
0063040 v e r f l o w f o r m ) \r
0063060
0063100 ( ( l a
0063120 m b d a ( | \ \ S u m S m a l
0063140 l M o d V a r | ) \r
0063160
*
0063220 ( d e c l a r e ( l o c a l
0063240 v a r s | \ \ S u m S m a l l
0063260 M o d V a r | ) ) \r
0063300
*
0063340 ( i f ( i l e q x | \ \
0063360 S u m S m a l l M o d V a r | )
0063400 \r
0063420
0063440 t h e n
0063460 \r
0063500
0063520 ( i p l
0063540 u s x y ) \r
0063560
*
0063620 e l s e o v e r f l o w
0063640 f o r m ( i d i f f e r e n c
0063660 e x ( a d d 1 | \ \ S u m
0063700 S m a l l M o d V a r | ) \r
0063720
*
0064020 ) ) ) \r
0064040
0064060 ( i d i f f e r e n
0064100 c e m a x . s m a l l . i n t
0064120 e g e r y ) ) ) ) \r ( p u t p
0064140 r o p s . d i f f e r e n c e
0064160 s m a l l m o d . m a c r o
0064200 ( ( x y b o r r o w f o r m
0064220 ) \r
0064240
0064260 ( i f ( n o t
0064300 ( i g r e a t e r p y x )
0064320 ) \r
0064340
0064360 t h e n
0064400 \r
0064420
0064440 ( i d i f
0064460 f e r e n c e x y ) \r
0064500
*
0064540 e l s e b o r r
0064560 o w f o r m ( a d d 1 ( i d
0064600 i f f e r e n c e m a x . s m
0064620 a l l . i n t e g e r \r
0064640
*
0064740 ( i d i f f e r e n c e
0064760 y x ) ) ) ) ) ) \r ) \r \r ( *
0065000 " E N D E X P O R T E D D E
0065020 F I N I T I O N S " ) \r \r \r ( d
0065040 e c l a r e \ : e v a l @ c o
0065060 m p i l e \r \r ( p u t p r o p
0065100 s . a d d . 2 w o r d . i n t
0065120 e g e r s . m a c r o ( ( h
0065140 x l x h y l y ) \r
0065160
*
0065220 ( * | I g n o r e s | |
0065240 c a r r y | | o u t | | o f
0065260 | | h i g h - o r d e r | |
0065300 w o r d | ) \r
0065320
0065340 ( s e
0065360 t q h x ( . s u m s m a l l
0065400 m o d . h x h y ) ) \r
0065420
*
0065460 ( s e t q l x ( . s u
0065500 m s m a l l m o d . l x l y
0065520 ( s e t q h x \r
0065540
*
0065640 ( | i f | ( e q h x
0065660 \r
0065700
*
0066000 m a x . s m a l l .
0066020 i n t e g e r \r
0066040
*
0066140 ) \r
0066160
*
0066260 | t
0066300 h e n | 0 | e l s e | \r
0066320
*
0066420 ( a
0066440 d d 1 h x ) ) ) ) ) ) ) \r ( p
0066460 u t p r o p s . s u b . 2 w o
0066500 r d . i n t e g e r s . m a c
0066520 r o ( ( h x l x h y l y
0066540 ) \r
0066560
0066600 ( * | I g n o
0066620 r e s | | c a r r y | | o u
0066640 t | | o f | | h i g h - o r
0066660 d e r | | w o r d | ) \r
0066700
*
0066740 ( s e t q h x ( . d i
0066760 f f e r e n c e s m a l l m o d
0067000 . h x h y ) ) \r
0067020
*
0067060 ( s e t q l x ( . d i f f e
0067100 r e n c e s m a l l m o d . l
0067120 x l y \r
0067140
*
0067200 ( s e t q
0067220 h x ( | i f | ( e q h x
0067240 0 ) \r
0067260
*
0067340 | t h e n |
0067360 m a x . s m a l l . i n t e g e
0067400 r | e l s e | \r
0067420
*
0067500 ( s
0067520 u b 1 h x ) ) ) ) ) ) ) \r ( p
0067540 u t p r o p s . 3 2 b i t m u
0067560 l . m a c r o ( ( h r l r
0067600 x y ) \r
0067620
0067640 ( p r o g ( h x l x h
0067660 y l y ) \r
0067700
0067720 ( | i f | ( i
0067740 l e s s p x y ) \r
0067760
*
0070020 | t h e n | \r
0070040
*
0070100 ( | s w a p | x y ) ) \r
0070120
*
0070160 ( * y | i s | | t h e
0070200 | | l e s s e r | | o f |
0070220 | t h e | | t w o | | n o w
0070240 | ) \r
0070260
0070300 ( . x u n b o x . x
0070320 h x l x ) \r
0070340
0070360 ( . x u n b
0070400 o x . y h y l y ) \r
0070420
0070440 l
0070460 p \r
0070500
0070520 ( | i f | ( o d d p
0070540 l y ) \r
0070560
0070600 | t h e
0070620 n | \r
0070640
0070660 ( . a d d
0070700 . 2 w o r d . i n t e g e r s .
0070720 h r l r h x l x ) ) \r
0070740
*
0071000 ( | i f | ( e q h y 0 )
0071020 \r
0071040
0071060 | t h e n | \r
0071100
*
0071140 ( s e t q l y
0071160 ( l r s h l y 1 ) ) \r
0071200
*
0071240 ( | i f | ( e q
0071260 l y 0 ) \r
0071300
*
0071340 | t h e n | \r
0071360
*
0071420 ( r e t u r n
0071440 ) ) \r
0071460
0071500 | e l s e
0071520 | \r
0071540
0071560 ( . l r s h
0071600 1 . h y l y ) ) \r
0071620
0071640 ( *
0071660 | T r i m | | o f f | | h i
0071700 g h e s t | | b i t s , | |
0071720 s o | | t h a t | | l e f t
0071740 - s h i f t i n g | \r
0071760
*
0072020 | d o e s n ' t | | g e n e
0072040 r a t e | f i x p \ s ) \r
0072060
*
0072120 ( s e t q h x ( l o g a n d
0072140 h x m a s k 0 w o r d 1 \ '
0072160 s ) ) \r
0072200
0072220 ( . l l s h 1 . h
0072240 x l x ) \r
0072260
0072300 ( g o l p ) )
0072320 ) ) \r ) \r \r ( d e c l a r e \ :
0072340 e v a l @ c o m p i l e \r \r
0072360 ( p u t p r o p s \ \ g e t b
0072400 a s e n i b b l e d m a c r o
0072420 ( o p e n l a m b d a ( b a
0072440 s e o f f s t ) \r
0072460
*
0072520 ( ( l a m b d a ( | \ \ B
0072540 y t e | ) \r
0072560
*
0072620 ( d e c l a r e (
0072640 l o c a l v a r s | \ \ B y t
0072660 e | ) ) \r
0072700
*
0072740 ( | i f | ( o d d p
0072760 o f f s t ) \r
0073000
*
0073040 | t
0073060 h e n | \r
0073100
*
0073140 ( l o g a
0073160 n d | \ \ B y t e | ( c o n
0073200 s t a n t ( m a s k . 1 \ ' s
0073220 0 \r
0073240
*
0073340 b i t s
0073360 p e r n i b b l e \r
0073400
*
0073520 ) ) ) \r
0073540
*
0073600 | e l s
0073620 e | \r
0073640
*
0073700 ( l r s h |
0073720 \ \ B y t e | b i t s p e r n
0073740 i b b l e ) ) ) \r
0073760
*
0074020 ( \ \ g e t b a s e b y t e
0074040 b a s e ( f o l d l o o f
0074060 f s t n i b b l e s p e r b y
0074100 t e ) ) ) ) ) \r ( p u t p r o p
0074120 s \ \ p u t b a s e n i b b l
0074140 e d m a c r o \r
0074160 ( o p e n l a m b d a ( b a s
0074200 e o f f s t v a l ) \r
0074220 ( ( l a m
0074240 b d a ( | \ \ B y t e N o | )
0074260 \r
0074300 ( d e c l a r e
0074320 ( l o c a l v a r s | \ \ B y
0074340 t e N o | ) ) \r
0074360 ( (
0074400 l a m b d a ( | \ \ B y t e |
0074420 ) \r
0074440
0074460 ( d e c l a r e ( l o c a l v
0074500 a r s | \ \ B y t e | ) ) \r
0074520
0074540 ( \ \
0074560 p u t b a s e b y t e b a s e
0074600 | \ \ B y t e N o | \r
0074620
*
0074660 ( | i f | ( o d d p o f f
0074700 s t ) \r
0074720
0074740 |
0074760 t h e n | \r
0075000
*
0075040 ( l o g o r ( l o g a n d
0075060 | \ \ B y t e | ( c o n s t a
0075100 n t ( m a s k . 1 \ ' s b i
0075120 t s p e r n i b b l e \r
0075140
*
0075260 b i t s p e r n i b b l e ) )
0075300 ) \r
0075320
*
0075360 v a l ) \r
0075400
*
0075440 | e l s e | \r
0075460
*
0075520 ( l o g o r ( l o
0075540 g a n d | \ \ B y t e | ( c
0075560 o n s t a n t ( m a s k . 1 \
0075600 ' s 0 \r
0075620
*
0075720 b i t s p e
0075740 r n i b b l e ) ) ) \r
0075760
*
0076020 ( l l
0076040 s h v a l b i t s p e r n i
0076060 b b l e ) ) ) ) ) \r
0076100
0076120 ( \ \ g e t b a s e b y t e
0076140 b a s e | \ \ B y t e N o | )
0076160 ) ) \r
0076200 ( f o l d l o o f f s t
0076220 n i b b l e s p e r b y t e ) )
0076240 ) ) \r ( p u t p r o p s \ \ g
0076260 e t b a s e b i t d m a c r o
0076300 ( o p e n l a m b d a ( b a
0076320 s e o f f s t ) \r
0076340
0076360 (
0076400 ( l a m b d a ( | \ \ B y t e
0076420 N o | | \ \ B i t M a s k | )
0076440 \r
0076460
0076500 ( d
0076520 e c l a r e ( l o c a l v a r
0076540 s | \ \ B y t e N o | | \ \
0076560 B i t M a s k | ) ) \r
0076600
*
0076640 ( | i f | ( e
0076660 q 0 ( l o g a n d | \ \ B
0076700 i t M a s k | ( \ \ g e t b a
0076720 s e b y t e b a s e \r
0076740
*
0077060 | \ \ B y t e N o | ) ) ) \r
0077100
*
0077160 | t h e n | 0 | e l s e
0077200 | 1 ) ) \r
0077220
0077240 ( f o l
0077260 d l o o f f s t b i t s p e
0077300 r b y t e ) \r
0077320
0077340 ( m a
0077360 s k . 1 \ ' s ( i d i f f e r
0077400 e n c e ( c o n s t a n t (
0077420 s u b 1 b i t s p e r b y t e
0077440 ) ) \r
0077460
*
0077520 ( i m o d
0077540 o f f s t b i t s p e r b y
0077560 t e ) ) \r
0077600
*
0077640 1 ) ) ) ) \r ( p u t p r o p
0077660 s \ \ p u t b a s e b i t d
0077700 m a c r o ( o p e n l a m b d
0077720 a ( b a s e o f f s t v a
0077740 l ) \r
0077760
0100000 ( ( l a m b d a
0100020 ( | \ \ B y t e N o | | \ \
0100040 B i t M a s k | | \ \ B y t e
0100060 | ) \r
0100100
*
0100140 ( d e c l a r e ( l o c a l v
0100160 a r s | \ \ B y t e N o | |
0100200 \ \ B i t M a s k | | \ \ B y
0100220 t e | ) ) \r
0100240
*
0100300 ( s e t q | \ \ B y t e
0100320 | ( \ \ g e t b a s e b y t e
0100340 b a s e | \ \ B y t e N o |
0100360 ) ) \r
0100400
*
0100440 ( | i f | ( | i f | ( e q
0100460 0 ( l o g a n d | \ \ B i t
0100500 M a s k | | \ \ B y t e | ) )
0100520 \r
0100540
*
0100600 | t h e n |
0100620 \r
0100640
*
0100700 ( n o t (
0100720 e q 0 v a l ) ) \r
0100740
*
0101020 | e l s e | \r
0101040
*
0101120 ( e q 0 v a l ) ) \r
0101140
*
0101220 | t h e n | \r
0101240
*
0101300 ( \ \
0101320 p u t b a s e b y t e b a s e
0101340 | \ \ B y t e N o | ( l o g
0101360 x o r | \ \ B i t M a s k |
0101400 \r
0101420
*
0101520 | \ \ B y t
0101540 e | ) ) ) \r
0101560
*
0101620 v a l ) \r
0101640
0101660 ( f
0101700 o l d l o o f f s t b i t s
0101720 p e r b y t e ) \r
0101740
0101760 (
0102000 m a s k . 1 \ ' s ( i d i f f
0102020 e r e n c e ( c o n s t a n t
0102040 ( s u b 1 b i t s p e r b y
0102060 t e ) ) \r
0102100
*
0102140 ( i m
0102160 o d o f f s t b i t s p e r
0102200 b y t e ) ) \r
0102220
*
0102260 1 ) ) ) ) \r ) \r ) \r \r (
0102300 p u t p r o p s 006 002 a d d a r
0102320 i t h f i l e t y p e 006 001 c
0102340 l : c o m p i l e - f i l e ) \r
0102360 ( p u t p r o p s a d d a r i
0102400 t h c o p y r i g h t ( " X
0102420 e r o x C o r p o r a t i o n
0102440 " 1 9 8 2 1 9 8 3 1 9 8 4
0102460 1 9 8 5 1 9 8 6 ) ) \r ( d e
0102500 c l a r e \ : d o n t c o p y
0102520 \r ( f i l e m a p ( n i l
0102540 ( 3 6 1 7 3 7 5 6 ( l o g
0102560 n o t 3 6 2 7 . 3 7 5 4 )
0102600 ) ( 5 2 8 7 6 0 3 0 ( l d
0102620 b 5 2 9 7 . 5 5 4 9 ) (
0102640 d p b 5 5 5 1 . 5 8 2 5 )
0102660 ( b y t e \r 5 8 2 7 . 6
0102700 0 2 8 ) ) ( 6 0 3 1 1 2 1 3
0102720 4 ( \ \ l d b e x p a n d e r
0102740 6 0 4 1 . 8 2 7 9 ) ( \
0102760 \ d p b e x p a n d e r 8 2 8
0103000 1 . 1 2 1 3 2 ) ) ( 1 2 5
0103020 3 5 1 2 7 2 4 ( \r i m o d l
0103040 e s s p 1 2 5 4 5 . 1 2 7
0103060 2 2 ) ) ( 1 3 0 3 1 1 3 5 0
0103100 0 ( r o t 1 3 0 4 1 . 1
0103120 3 4 9 8 ) ) ( 1 4 2 9 8 1 5
0103140 3 8 0 ( \ \ p u t b a s e b i
0103160 t s 1 4 3 0 8 . 1 5 3 7 8
0103200 ) \r ) ) ) ) \r s t o p \r
0103214