$ od -c -N 50000 [eris]<LispCore>SOURCES>ADDARITH!25
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 " I N
0000040 T E R L I S P " 247 P A C K A G
0000060 E " I N T E R L I S P " ) \r 006
0000100 001 ( F I L E C R E A T E D " 2
0000120 4 - O c t - 8 6 2 0 : 0 2 : 5
0000140 7 " 006 004 { E R I S } < L I S P
0000160 C O R E > S O U R C E S > A D D
0000200 A R I T H . ; 2 5 006 001 3 2 6 8
0000220 9 \r \r c h a n g
0000240 e s t o % : ( M A C R O S
0000260 \ G E T B A S E N I B B L E
0000300 \ P U T B A S E N I B B L E \
0000320 G E T B A S E B I T \ P U T B
0000340 A S E B I T L O A D B Y T E
0000360 \r
0000400 D E P O
0000420 S I T B Y T E ) \r
0000440 ( V A
0000460 R S A D D A R I T H C O M S )
0000500 \r
0000520 ( F N S \ R T I M E
0000540 S 2 \ R A T I O N A L I Z E
0000560 \ R P L U S 2 \ R M I N U S
0000600 C R E A T E R A T I O N A L R
0000620 A T I O N A L T O I N T E G E R
0000640 ) \r
0000660 ( R E C O R D S R
0000700 A T I O N A L ) \r \r
0000720 p r e v i o u s d a t e % :
0000740 " 7 - O c t - 8 6 1 5 : 4 8
0000760 : 4 1 " { E R I S } < L I S P
0001000 C O R E > S O U R C E S > A D D
0001020 A R I T H . ; 2 4 ) \r \r \r ( *
0001040 " \r C o p y r i g h t ( c )
0001060 1 9 8 2 , 1 9 8 3 , 1 9 8 4
0001100 , 1 9 8 5 , 1 9 8 6 b y
0001120 X e r o x C o r p o r a t i o
0001140 n . A l l r i g h t s r
0001160 e s e r v e d . \r " ) \r \r ( P R
0001200 E T T Y C O M P R I N T A D D
0001220 A R I T H C O M S ) \r \r ( R P A
0001240 Q Q 006 002 A D D A R I T H C O M
0001260 S 006 001 ( ( L O C A L V A R S
0001300 . T ) \r
0001320 ( * ; "
0001340 O K " ) \r
0001360 ( M A C R O
0001400 S M A S K . 1 ' S M A S K .
0001420 0 ' S B I T T E S T B I T S
0001440 E T B I T C L E A R ) \r
0001460
0001500 ( C O M S ( O P T I M I Z
0001520 E R S C L : L O G N O T ) \r
0001540
0001560 ( F N S C
0001600 L : L O G N O T ) ) \r
0001620
0001640 ( C O M S ( * ; " B Y T E
0001660 h a c k i n g f u n c t i o
0001700 n s " ) \r
0001720
0001740 ( R E C O R D S B Y T E S P E
0001760 C ) \r
0002000 ( M
0002020 A C R O S L O A D B Y T E D
0002040 E P O S I T B Y T E ) \r
0002060
0002100 ( * ; " N O T
0002120 O K Y E T " ) \r
0002140
0002160 ( O P T I M I Z E R S
0002200 B Y T E D P B L D B ) \r
0002220
0002240 ( M A C R O
0002260 S B Y T E S I Z E B Y T E P
0002300 O S I T I O N ) \r
0002320
0002340 ( F N S L D B D P B
0002360 B Y T E ) \r
0002400
0002420 ( F N S \ L D B E X P A N
0002440 D E R \ D P B E X P A N D E R
0002460 ) ) \r
0002500 ( C O M S ( O
0002520 P T I M I Z E R S I M O D ) \r
0002540
0002560 ( F N S
0002600 I M O D L E S S P ) \r
0002620
0002640 ( M A C R O S I M
0002660 O D P L U S I M O D D I F F E
0002700 R E N C E ) ) \r
0002720 ( C O
0002740 M S ( F N S R O T ) \r
0002760
0003000 ( M A C R O S
0003020 . R O T . ) ) \r
0003040 ( C O
0003060 M S ( * ; ; " P r i m i t
0003100 i v e F u n c t i o n s f o
0003120 r e x t r a c t i n g f i e
0003140 l d s a s i n t e g e r s "
0003160 ) \r
0003200 ( M A
0003220 C R O S \ X L O A D B Y T E W
0003240 O R D ) \r
0003260
0003300 ( F N S \ P U T B A S E B I T
0003320 S ) \r
0003340 ( *
0003360 ; ; \r
0003400
0003420 " P r i m i t i v e f u
0003440 n c t i o n s , e s p e c i a
0003460 l l y n e e d e d f o r C
0003500 o m m o n L i s p a r r a y
0003520 p a c k a g e . " ) \r
0003540
0003560 ( D E C L A R E % :
0003600 D O N T C O P Y ( M A C R O
0003620 S . H I H A L F W O R D L O .
0003640 . H I H A L F W O R D H I .
0003660 . L O H A L F W O R D L O . \r
0003700
*
0003760 . L O H A L F W O R
0004000 D H I . ) \r
0004020
0004040 ( M A C R O S
0004060 \ G E T B A S E N I B B L E \
0004100 P U T B A S E N I B B L E \ G
0004120 E T B A S E B I T \ P U T B A
0004140 S E B I T ) ) ) \r
0004160 ( C
0004200 O M S ( * ; ; \r
0004220 " B e g i n
0004240 n i n g o f r e w r i t e
0004260 o f s o m e L L A R I T H
0004300 t h i n g s , m o d u l a r l
0004320 y u s i n g t h e m a c r
0004340 o s o f t h i s f i l e "
0004360 \r
0004400 )
0004420 \r
0004440 ( D E C
0004460 L A R E % : D O N T C O P Y
0004500 ( E X P O R T ( C O N S T A N
0004520 T S M A S K 0 W O R D 1 ' S
0004540 M A S K 1 W O R D 0 ' S \r
0004560
*
0004640 M A S K
0004660 W O R D 1 ' S M A S K H A L F
0004700 W O R D 1 ' S \r
0004720
*
0005000 B I T S P E R H A
0005020 L F W O R D ) \r
0005040
*
0005100 ( M
0005120 A C R O S E Q Z E R O P ) \r
0005140
*
0005220 ( M A C R O S \ M O
0005240 V E T O B O X . X U N B O X .
0005260 . X L L S H . . X L L S H 1
0005300 . \r
0005320
*
0005400 . X L R S H . . A D D . 2 W O
0005420 R D . I N T E G E R S . \r
0005440
*
0005520 . S U B .
0005540 2 W O R D . I N T E G E R S .
0005560 . 3 2 B I T M U L . ) \r
0005600
*
0005660 ( M A C R O S . S U M S M
0005700 A L L M O D . . D I F F E R E
0005720 N C E S M A L L M O D . ) ) \r
0005740
*
0006000 ( M A C R O S . A D D . 2 W
0006020 O R D . I N T E G E R S . . S
0006040 U B . 2 W O R D . I N T E G E R
0006060 S . . 3 2 B I T M U L . ) ) )
0006100 \r
0006120 ( P R O P F I L E
0006140 T Y P E A D D A R I T H ) ) )
0006160 \r ( D E C L A R E % : D O E V
0006200 A L @ C O M P I L E D O N T C
0006220 O P Y \r \r ( L O C A L V A R S
0006240 . T ) \r ) \r \r \r \r 006 004 ( * ;
0006260 " O K " ) 006 001 \r \r ( D E C L A
0006300 R E % : E V A L @ C O M P I L
0006320 E \r \r ( P U T P R O P S M A
0006340 S K . 1 ' S M A C R O ( O P
0006360 E N L A M B D A ( P O S I T I
0006400 O N S I Z E ) \r
0006420
0006440 ( L S H ( S
0006460 U B 1 ( L S H 1 S I Z E )
0006500 ) \r
0006520
0006540 P O S I T I O N )
0006560 ) ) \r [ P U T P R O P S M A S
0006600 K . 0 ' S M A C R O ( O P E
0006620 N L A M B D A ( P O S I T I O
0006640 N S I Z E ) \r
0006660
0006700 ( C L : L O G N
0006720 O T ( M A S K . 1 ' S P O S
0006740 I T I O N S I Z E ] \r [ P U T
0006760 P R O P S B I T T E S T M A
0007000 C R O ( ( N M A S K ) \r
0007020
0007040 ( N E Q 0 ( L
0007060 O G A N D N M A S K ] \r ( P
0007100 U T P R O P S B I T S E T M
0007120 A C R O ( = . L O G O R )
0007140 ) \r [ P U T P R O P S B I T C
0007160 L E A R M A C R O ( ( X M
0007200 A S K ) \r
0007220 (
0007240 L O G A N D X ( C L : L O G
0007260 N O T M A S K ] \r ) \r ( D E F
0007300 O P T I M I Z E R 006 002 C L : L
0007320 O G N O T 006 001 ( C L : I N T E
0007340 G E R ) ` ( L O G X O R - 1
0007360 , C L : I N T E G E R ) ) \r \r
0007400 ( D E F I N E Q \r \r ( 006 004 C L :
0007420 L O G N O T 006 001 \r [ L A M B
0007440 D A ( C L : I N T E G E R ) 006
0007460 003 006 001
0007500
0007520 006 003 ( * k
0007540 b r % : " 1 2 - J u l - 8 6
0007560 1 7 : 0 5 " ) 006 001 \r ( L
0007600 O G X O R - 1 C L : I N T E
0007620 G E R ] ) \r ) \r \r \r \r 006 004 ( *
0007640 ; " B Y T E h a c k i n g
0007660 f u n c t i o n s " ) 006 001 \r \r (
0007700 D E C L A R E % : E V A L @ C
0007720 O M P I L E \r \r ( T Y P E R E C
0007740 O R D 006 002 B Y T E S P E C 006 001
0007760 ( B Y T E S P E C . S I Z E
0010000 B Y T E S P E C . P O S I T I O
0010020 N ) ) \r ) \r ( D E C L A R E % :
0010040 E V A L @ C O M P I L E \r \r
0010060 [ P U T P R O P S L O A D B Y
0010100 T E M A C R O ( ( N P O S
0010120 S I Z E ) \r
0010140
0010160 ( L O G A N D ( R S H N
0010200 P O S ) \r
0010220
0010240 ( M A S K . 1 ' S
0010260 0 S I Z E ] \r [ P U T P R O P
0010300 S D E P O S I T B Y T E M A
0010320 C R O ( O P E N L A M B D A
0010340 ( N P O S S I Z E V A L )
0010360 \r
0010400
0010420 ( L O G O R ( B I T C
0010440 L E A R N ( M A S K . 1 ' S
0010460 P O S S I Z E ) ) \r
0010500
*
0010540 ( L S H ( L O G A
0010560 N D V A L ( M A S K . 1 ' S
0010600 0 S I Z E ) ) \r
0010620
*
0010660 P O S ] \r ) \r
0010700 \r \r \r 006 004 ( * ; " N O T O
0010720 K Y E T " ) 006 001 \r \r ( D E F O
0010740 P T I M I Z E R 006 002 B Y T E 006
0010760 001 ( & R E S T X ) ( P R O
0011000 G ( ( S I Z E ( L I S P F O
0011020 R M . S I M P L I F Y ( C A R
0011040 X ) \r
0011060
*
0011120 T ) ) \r
0011140
0011160 ( P O
0011200 S I T I O N ( L I S P F O R M
0011220 . S I M P L I F Y ( C A D R
0011240 X ) \r
0011260
*
0011320 T ) ) ) \r
0011340
*
0011400 ( R E T U R N ( C O N D \r
0011420
*
0011460 ( ( A N
0011500 D ( F I X P P O S I T I O N
0011520 ) \r
0011540
*
0011600 ( F I X P S I Z E
0011620 ) ) \r
0011640
*
0011700 ( K W O T E ( 006 002 c r e a
0011720 t e 006 001 B Y T E S P E C \r
0011740
*
0012020 B Y T E S
0012040 P E C . S I Z E _ S I Z E \r
0012060
*
0012140 B Y T
0012160 E S P E C . P O S I T I O N _
0012200 P O S I T I O N ) ) ) \r
0012220
*
0012260 ( T ` (
0012300 006 002 c r e a t e 006 001 B Y T E S
0012320 P E C \r
0012340
*
0012400 B Y T
0012420 E S P E C . S I Z E _ , S I
0012440 Z E \r
0012460
*
0012520 B Y T E
0012540 S P E C . P O S I T I O N _
0012560 , P O S I T I O N ) ) ) ) ) ) \r
0012600 \r ( D E F O P T I M I Z E R 006
0012620 002 D P B 006 001 ( & R E S T X )
0012640 ( \ D P B E X P A N D E R X
0012660 ) ) \r \r ( D E F O P T I M I Z E
0012700 R 006 002 L D B 006 001 ( & R E S T
0012720 X ) ( \ L D B E X P A N D E
0012740 R X ) ) \r \r ( D E C L A R E %
0012760 : E V A L @ C O M P I L E \r
0013000 \r ( P U T P R O P S B Y T E S
0013020 I Z E M A C R O ( ( B Y T E
0013040 S P E C ) \r
0013060
0013100 ( f e t c h B Y T E S P E C .
0013120 S I Z E o f B Y T E S P E C
0013140 ) ) ) \r ( P U T P R O P S B Y
0013160 T E P O S I T I O N M A C R O
0013200 ( ( B Y T E S P E C ) \r
0013220
0013240 ( f e t c
0013260 h B Y T E S P E C . P O S I T
0013300 I O N o f B Y T E S P E C )
0013320 ) ) \r ) \r ( D E F I N E Q \r \r (
0013340 006 004 L D B 006 001 \r [ L A M B D
0013360 A ( B Y T E S P E C C L : I
0013400 N T E G E R ) 006 003 006 001
0013420
0013440 006 003 ( * k b
0013460 r % : " 1 2 - J u l - 8 6 1
0013500 7 : 1 0 " ) 006 001 \r ( L O
0013520 A D B Y T E C L : I N T E G E
0013540 R ( 006 002 f e t c h 006 001 ( B Y
0013560 T E S P E C B Y T E S P E C .
0013600 P O S I T I O N ) 006 002 o f 006 001
0013620 B Y T E S P E C ) \r
0013640 ( 006 002 f e t c h 006 001
0013660 ( B Y T E S P E C B Y T E S
0013700 P E C . S I Z E ) 006 002 o f 006 001
0013720 B Y T E S P E C ] ) \r \r ( 006 004
0013740 D P B 006 001 \r [ L A M B D A
0013760 ( N E W B Y T E B Y T E S P E
0014000 C C L : I N T E G E R ) 006 003 006
0014020 001
0014040 006 003 ( * k b r %
0014060 : " 1 2 - J u l - 8 6 1 7 :
0014100 1 8 " ) 006 001 \r ( D E P O
0014120 S I T B Y T E C L : I N T E G
0014140 E R ( 006 002 f e t c h 006 001 ( B
0014160 Y T E S P E C B Y T E S P E C
0014200 . P O S I T I O N ) 006 002 o f 006
0014220 001 B Y T E S P E C ) \r
0014240 ( 006 002 f e t c h 006
0014260 001 ( B Y T E S P E C B Y T E
0014300 S P E C . S I Z E ) 006 002 o f 006
0014320 001 B Y T E S P E C ) \r
0014340 N E W B Y T E ] )
0014360 \r \r ( 006 004 B Y T E 006 001 \r [ L
0014400 A M B D A ( S I Z E P O S I
0014420 T I O N ) 006 003 006 001
0014440
0014460 006 003 (
0014500 * k b r % : " 1 4 - A u g -
0014520 8 6 1 4 : 1 8 " ) 006 001 \r
0014540 ( 006 002 c r e a t e 006 001 B Y T
0014560 E S P E C \r
0014600 B Y T E S P E C . S I Z E _
0014620 S I Z E \r
0014640 B Y T E S P E C . P O S I T I
0014660 O N _ P O S I T I O N ] ) \r
0014700 ) \r ( D E F I N E Q \r \r ( 006 004 \
0014720 L D B E X P A N D E R 006 001 \r
0014740 [ L A M B D A ( X ) 006 003 006 001
0014760
*
0015020 006
0015040 003 ( * k b r % : " 1 4 - A u
0015060 g - 8 6 1 4 : 2 7 " ) 006 001 \r
0015100 ( P R O G ( B S W O R
0015120 D T E M N S I Z E P O S
0015140 I T I O N )
0015160 006 003 ( *
0015200 X = ( B Y T E S P E C C
0015220 L : I N T E G E R ) * ) 006 001 \r
0015240 ( S E T Q
0015260 B S ( L I S P F O R M . S I M
0015300 P L I F Y ( C A R X ) \r
0015320
0015340 T ) ) \r
0015360 ( S E T Q W O R D
0015400 ( C A D R X ) ) \r
0015420 ( R E T U R N ( C O
0015440 N D \r
0015460 [ ( A N D ( S
0015500 E T Q T E M ( C A R ( E V
0015520 A L U A B L E . C O N S T A N T
0015540 P B S ) ) ) \r
0015560
0015600 ( 006 002 t y p e ? 006 001 B Y
0015620 T E S P E C T E M ) ) \r
0015640
0015660 ( L I S T ' L O A D B Y
0015700 T E W O R D ( K W O T E (
0015720 B Y T E P O S I T I O N T E M
0015740 ) ) \r
0015760 (
0016000 K W O T E ( B Y T E S I Z E
0016020 T E M ] \r
0016040 ( T ( S E
0016060 T Q N ( L I S P F O R M . S
0016100 I M P L I F Y W O R D T ) )
0016120 \r
0016140 ( C O N D \r
0016160
0016200 [ ( A N D
0016220 ( L I S T P B S ) \r
0016240
0016260 ( E Q
0016300 ( C A R B S ) \r
0016320
0016340 ' B
0016360 Y T E ) ) \r
0016400
0016420 ( S E T Q S I Z E ( C A
0016440 D R B S ) ) \r
0016460
0016500 ( S E T Q P O S I T I
0016520 O N ( C A D D R B S ) ) \r
0016540
0016560 ( C O N D
0016600 \r
0016620
0016640 [ ( O R ( E V A L U A B L E .
0016660 C O N S T A N T . F I X P N )
0016700 \r
0016720
0016740 ( A N D ( A R G S .
0016760 C O M M U T A B L E P N S I
0017000 Z E ) \r
0017020
0017040 ( A R
0017060 G S . C O M M U T A B L E P N
0017100 P O S I T I O N ) \r
0017120
*
0017160 ( A R G S . C O M M U T
0017200 A B L E P S I Z E P O S I T
0017220 I O N ) ) ) \r
0017240
0017260 ` ( L O A D B Y T
0017300 E , W O R D , P O S I T I O
0017320 N , S I Z E ] \r
0017340
0017360 ( T ` ( [ L A
0017400 M B D A ( \ B y t e s i z e
0017420 \ B y t e p o s i t i o n ) \r
0017440
*
0017500 ( 006 002 D E C L A R E 006
0017520 001 ( L O C A L V A R S \ B y
0017540 t e s i z e \ B y t e p o s i
0017560 t i o n ) ) \r
0017600
0017620 ( L O
0017640 A D B Y T E % , W O R D \
0017660 B y t e p o s i t i o n \ B y
0017700 t e s i z e ] \r
0017720
0017740 % , S
0017760 I Z E % , P O S I T I O N ]
0020000 \r
0020020 [ ( A N
0020040 D ( L I T A T O M B S ) \r
0020060
*
0020120 ( O R ( E V A L U A B L E . C
0020140 O N S T A N T . F I X P N ) \r
0020160
*
0020220 ( A R G S . C O M M U
0020240 T A B L E P B S N ) ) ) \r
0020260
0020300 ` ( L O A
0020320 D B Y T E % , W O R D ( B
0020340 Y T E P O S I T I O N % , B
0020360 S ) \r
0020400
0020420 ( B Y T E S I Z E
0020440 % , B S ] \r
0020460
0020500 ( T ` ( [ L A M B D A
0020520 ( \ P o s i t i o n S i z e ) \r
0020540
*
0020600 ( 006 002 D E C L A R E 006 001 (
0020620 L O C A L V A R S \ P o s i t
0020640 i o n S i z e ) ) \r
0020660
0020700 ( L O A
0020720 D B Y T E % , W O R D ( B
0020740 Y T E P O S I T I O N \ P o s
0020760 i t i o n S i z e ) \r
0021000
*
0021040 ( B Y T E S I Z E \ P
0021060 o s i t i o n S i z e ] \r
0021100
0021120 % ,
0021140 B S ] ) \r \r ( 006 004 \ D P B E X P
0021160 A N D E R 006 001 \r [ L A M B D
0021200 A ( X ) 006 003 006 001
0021220
*
0021260 006 003 ( * J o
0021300 n L " 2 5 - F E B - 8 3 2 0
0021320 : 4 9 " ) 006 001 \r ( P R O
0021340 G ( ( N E W B Y T E ( C A R
0021360 X ) ) \r
0021400 ( B S ( L I S P F O R M . S I
0021420 M P L I F Y ( C A D R X ) \r
0021440
0021460 T ) ) \r
0021500 ( W O R D ( L I S P
0021520 F O R M . S I M P L I F Y ( C
0021540 A D D R X ) \r
0021560
0021600 T ) ) \r S
0021620 I Z E P O S X Y B a g B
0021640 i t e r P N B Y T E F O R M
0021660 D E P O S I T F O R M C B S
0021700 P T E M ) \r
0021720 ( 006 002 i f 006 001 ( A N D ( L
0021740 I S T P B S ) \r
0021760 ( E Q
0022000 ( C A R B S ) \r
0022020
0022040 ' C O N S ) \r
0022060 ( E Q U A L
0022100 ( C A D R B S ) \r
0022120
0022140 ' ' B Y T E S P E C )
0022160 \r
0022200 ( L I S T P ( S E T Q
0022220 T E M ( C A D D R B S ) )
0022240 ) \r
0022260 ( E Q ( C A R T E
0022300 M ) \r
0022320 ' L I S T )
0022340 ) \r
0022360 006 002 t h e n 006 001 \r
0022400 \r 006
0022420 003 ( * W h a t a c r a p p
0022440 y t h i n g t o d o i n
0022460 o r d e r t o t r y t o
0022500 d e - c o m p i l e t h e
0022520 e x p a n d e d f o r m o f
0022540 \r 006 001 006 003 (
0022560 B Y T E < s i z e > < p o s
0022600 i t i o n > ) ) 006 001 \r \r
0022620 (
0022640 006 002 p o p 006 001 T E M ) \r
0022660
0022700 ( S E T Q S I Z E ( 006 002 p o
0022720 p 006 001 T E M ) ) \r
0022740 ( S E
0022760 T Q P O S ( 006 002 p o p 006 001
0023000 T E M ) ) \r
0023020 ( S E T Q C
0023040 B S P ( A N D ( E V A L U A
0023060 B L E . C O N S T A N T P S I
0023100 Z E ) \r
0023120
0023140 ( E V A L U A B L
0023160 E . C O N S T A N T P P O S )
0023200 ) ) \r 006
0023220 002 e l s e i f 006 001 ( A N D (
0023240 S E T Q T E M ( C A R ( E
0023260 V A L U A B L E . C O N S T A N
0023300 T P B S ) ) ) \r
0023320
0023340 ( 006 002 t y p e ? 006 001 B Y T E
0023360 S P E C T E M ) ) \r
0023400 006 002 t h e n 006
0023420 001 ( S E T Q S I Z E ( K W
0023440 O T E ( B Y T E S I Z E T E
0023460 M ) ) ) \r
0023500 ( S E T Q P O
0023520 S ( K W O T E ( B Y T E P O
0023540 S I T I O N T E M ) ) ) \r
0023560
0023600 ( S E T Q C B S P T ) ) \r
0023620 ( S E T Q
0023640 N ( L I S P F O R M . S I M P
0023660 L I F Y N E W B Y T E T ) )
0023700 \r [ S E T Q
0023720 B a g B i t e r P ( O R (
0023740 N O T ( A R G S . C O M M U T
0023760 A B L E P N W O R D ) ) \r
0024000
0024020 ( A N
0024040 D ( N O T C B S P ) \r
0024060
*
0024120 ( N O T ( A R G S . C O M M U
0024140 T A B L E P N B S ] \r
0024160 ( S E T Q B Y T
0024200 E F O R M ( 006 002 i f 006 001 B a
0024220 g B i t e r P \r
0024240
0024260 006 002 t h e n 006 001 ' \
0024300 N e w B y t e \r
0024320
0024340 006 002 e l s e 006 001 N E W B
0024360 Y T E ) ) \r
0024400 [ S E T Q D E P O S I T F O R
0024420 M \r ( 006 002
0024440 i f 006 001 ( A N D S I Z E P
0024460 O S ) \r
0024500 006 002 t h e n 006 001
0024520
*
0024560 006 003 ( * t h e S I
0024600 Z E a n d P O S I T I O N
0024620 s p e c i f i e r s \r 006 001
0024640
*
0024720 006 003 a r e
0024740 s o m e h o w e x t r a c t
0024760 a b l e . ) 006 001 \r
0025000 ( 006 002
0025020 i f 006 001 ( O R C B S P ( A
0025040 N D ( A R G S . C O M M U T A
0025060 B L E P S I Z E P O S ) \r
0025100
*
0025140 ( A R G S . C O M M U
0025160 T A B L E P W O R D B S ) )
0025200 ) \r
0025220 006 002 t h e n
0025240 006 001
0025260
0025300 006 003 ( * C a s e w i t
0025320 h a d e t e c t e d c o n
0025340 s t a n t f o r \r 006 001
0025360
*
0025440 006 003 b y t e
0025460 s p e c i f i e r ) 006 001 \r
0025500
0025520 ` ( D E P O
0025540 S I T B Y T E % , W O R D
0025560 % , P O S % , S I Z E %
0025600 , B Y T E F O R M ) \r
0025620
0025640 006 002 e l s e 006 001 ` ( [ L A
0025660 M B D A ( \ B y t e s i z e
0025700 \ B y t e p o s i t i o n ) \r
0025720
0025740 ( 006
0025760 002 D E C L A R E 006 001 ( L O C A
0026000 L V A R S \ B y t e s i z e
0026020 \ B y t e p o s i t i o n ) ) \r
0026040
0026060 (
0026100 D E P O S I T B Y T E % , W
0026120 O R D \ B y t e p o s i t i o
0026140 n \ B y t e s i z e % , B
0026160 Y T E F O R M ] \r
0026200
0026220 % , S I Z E % ,
0026240 P O S ) ) \r
0026260 006 002 e l s e 006 001 ( 006 002
0026300 i f 006 001 ( A N D ( L I T A T
0026320 O M B S ) \r
0026340
0026360 ( A R G S . C O M M U T A B
0026400 L E P W O R D B S ) ) \r
0026420
0026440 006 002 t h e n 006 001 ` ( D
0026460 E P O S I T B Y T E % , W O
0026500 R D ( B Y T E P O S I T I O N
0026520 % , B S ) \r
0026540
0026560 ( B Y T E
0026600 S I Z E % , B S ) \r
0026620
0026640 %
0026660 , B Y T E F O R M ) \r
0026700
0026720 006 002 e l s e 006 001 ( S E T Q B
0026740 a g B i t e r P T ) \r
0026760
0027000 ` ( [ L A M B D A (
0027020 \ B y t e S p e c ) \r
0027040
0027060 ( 006 002 D E C L A
0027100 R E 006 001 ( L O C A L V A R S
0027120 \ B y t e S p e c ) ) \r
0027140
0027160 ( D E P O S I
0027200 T B Y T E % , W O R D ( B
0027220 Y T E P O S I T I O N \ B y t
0027240 e S p e c ) \r
0027260
0027300 ( B Y T E
0027320 S I Z E \ B y t e S p e c ) \r
0027340
*
0027400 \ N e w B y t e ] \r
0027420
0027440 % , B S ] \r
0027460 ( R E T U R
0027500 N ( 006 002 i f 006 001 B a g B i t
0027520 e r P \r
0027540 006 002 t h e n
0027560 006 001 ` ( [ L A M B D A ( \ N
0027600 e w B y t e ) \r
0027620
0027640 ( 006 002 D E C L A R
0027660 E 006 001 ( L O C A L V A R S \
0027700 N e w B y t e ) ) \r
0027720
0027740 % , D E P O
0027760 S I T F O R M ] \r
0030000
0030020 % , N E W B Y T E
0030040 ) \r
0030060 006 002 e l s e 006 001 D
0030100 E P O S I T F O R M ] ) \r ) \r (
0030120 D E F O P T I M I Z E R 006 002 I
0030140 M O D 006 001 ( & R E S T L )
0030160 ( P R O G ( ( N ( C O N S T
0030200 A N T E X P R E S S I O N P (
0030220 C A D R L ) ) ) ) \r
0030240
0030260 ( 006
0030300 002 i f 006 001 ( N U L L N ) \r
0030320
*
0030360 006 002 t h e n 006 001 (
0030400 R E T U R N ' I G N O R E M A
0030420 C R O ) ) \r
0030440
0030460 ( S E T Q N
0030500 ( C A R N ) ) \r
0030520
0030540 ( R E
0030560 T U R N ( C O N D \r
0030600
*
0030640 ( ( N O T (
0030660 P O W E R O F T W O P N ) ) \r
0030700
*
0030740 '
0030760 I G N O R E M A C R O ) \r
0031000
*
0031040 ( T ( L
0031060 I S T ' L O G A N D ( C A R
0031100 L ) \r
0031120
*
0031160 ( S U B 1
0031200 N ) ) ) ) ) ) ) \r \r ( D E F I
0031220 N E Q \r \r ( 006 004 I M O D L E S S
0031240 P 006 001 \r [ L A M B D A ( X
0031260 Y M O D U L U S ) 006 003 006 001
0031300
*
0031340 006 003 ( * l m m " 1
0031360 2 - A p r - 8 5 1 2 : 4 3 " )
0031400 006 001 \r ( I L E S S P (
0031420 I M O D D I F F E R E N C E Y
0031440 X M O D U L U S ) \r
0031460 ( F O L D H I M
0031500 O D U L U S 2 ] ) \r ) \r ( D E
0031520 C L A R E % : E V A L @ C O M
0031540 P I L E \r \r ( P U T P R O P S
0031560 I M O D P L U S M A C R O
0031600 ( ( X Y M O D U L U S ) \r
0031620
0031640 ( I M O D (
0031660 I P L U S X Y ) \r
0031700
0031720 M O D U L
0031740 U S ) ) ) \r ( P U T P R O P S
0031760 I M O D D I F F E R E N C E M
0032000 A C R O ( ( X Y M O D U L
0032020 U S ) \r
0032040
0032060 ( I M O D ( I D I F F
0032100 E R E N C E X Y ) \r
0032120
*
0032160 M O D U L U S ) ) ) \r ) \r (
0032200 D E F I N E Q \r \r ( 006 004 R O T 006
0032220 001 \r [ L A M B D A ( X N
0032240 F I E L D S I Z E ) 006 003 006 001
0032260
*
0032320 006 003 ( * P a v e l "
0032340 7 - O c t - 8 6 1 5 : 2 6 " )
0032360 006 001 006 003 006 001 \r
0032400
*
0032440 006 003 ( * ; ;
0032460 " N o r m a l i z e N , t
0032500 h e s h i f t f a c t o r ,
0032520 i n t o t h e h a l f - o
0032540 p e n i n t e r v a l o f
0032560 0 t o F I E L D S I Z E a
0032600 n d t r a n s f o r m a n
0032620 e g a t i v e N ( r o t a t
0032640 i n g r i g h t w a r d s )
0032660 i n t o a p o s i t i v e
0032700 f o r m . " ) 006 001 \r ( L
0032720 E T * ( ( N ( I M O D N
0032740 F I E L D S I Z E ) ) \r
0032760 ( N . B ( I D I
0033000 F F E R E N C E F I E L D S I
0033020 Z E N ) ) ) \r
0033040 ( D E P O S I T B Y T E (
0033060 L O A D B Y T E X N . B N
0033100 ) \r
0033120 N N . B X ] ) \r ) \r (
0033140 D E C L A R E % : E V A L @ C
0033160 O M P I L E \r \r ( P U T P R O
0033200 P S . R O T . M A C R O (
0033220 ( X F O R M N F I E L D S I
0033240 Z E ) \r
0033260 ( ( O P E
0033300 N L A M B D A ( X ) \r
0033320
0033340 ( D E P O
0033360 S I T B Y T E ( L O A D B Y T
0033400 E X ( I D I F F E R E N C E
0033420 F I E L D S I Z E N ) \r
0033440
*
0033520 N ) \r
0033540
0033560 N \r
0033600
*
0033640 ( I D I F F E R E N C E F
0033660 I E L D S I Z E N ) \r
0033700
*
0033740 X ) ) \r
0033760 X F
0034000 O R M ) ) ) \r ) \r \r \r \r 006 004 ( *
0034020 ; ; " P r i m i t i v e F
0034040 u n c t i o n s f o r e x t
0034060 r a c t i n g f i e l d s a
0034100 s i n t e g e r s " ) 006 001 \r \r
0034120 ( D E C L A R E % : E V A L @
0034140 C O M P I L E \r \r [ P U T P R
0034160 O P S \ X L O A D B Y T E W O
0034200 R D D M A C R O ( ( N P O
0034220 S S I Z E ) \r
0034240
0034260 ( * N i s
0034300 c o n s t r a i n e d t o
0034320 b e a S M A L L P ) \r
0034340
0034360 ( L
0034400 O G A N D ( \ X L R S H W O R
0034420 D N P O S ) \r
0034440
*
0034500 ( M A S K . 1 ' S 0 ( I M
0034520 I N B I T S P E R W O R D S
0034540 I Z E ] \r ) \r ( D E F I N E Q \r
0034560 \r ( 006 004 \ P U T B A S E B I T S
0034600 006 001 \r [ L A M B D A ( A D
0034620 D R P O S I T I O N S I Z E
0034640 V A L ) 006 003 006 001
0034660
0034700 006 003 ( * l m m " 1 2
0034720 - A p r - 8 5 1 5 : 1 8 " ) 006
0034740 001 \r ( 006 002 i f 006 001 ( G
0034760 R E A T E R P P O S I T I O N
0035000 B I T S P E R W O R D ) \r
0035020 006 002 t h e n 006 001 (
0035040 006 002 \ P U T B A S E B I T S 006 001
0035060 ( \ A D D B A S E A D D R
0035100 ( F O L D L O P O S I T I O N
0035120 B I T S P E R W O R D ) ) \r
0035140
0035160 ( I M O D P O S I T I O
0035200 N B I T S P E R W O R D ) \r
0035220
0035240 S I Z E V A L ) \r
0035260 006 002 e l s e i f 006 001 ( G
0035300 R E A T E R P S I Z E ( D I
0035320 F F E R E N C E B I T S P E R
0035340 W O R D P O S I T I O N ) ) \r
0035360 006 002 t h e n 006 001
0035400
*
0035460 006 003 ( * m o r e t h a n
0035500 o n e w o r d ) 006 001 \r
0035520 [ 006 002 \ P U T
0035540 B A S E B I T S 006 001 A D D R
0035560 P O S I T I O N ( D I F F E R
0035600 E N C E B I T S P E R W O R D
0035620 P O S I T I O N ) \r
0035640 (
0035660 R S H V A L ( S E T Q S I
0035700 Z E ( D I F F E R E N C E S
0035720 I Z E ( D I F F E R E N C E
0035740 B I T S P E R W O R D P O S I
0035760 T I O N ] \r
0036000 ( 006 002 \ P U T B A S E B I
0036020 T S 006 001 ( \ A D D B A S E A
0036040 D D R 1 ) \r
0036060 0 S I Z
0036100 E V A L ) \r 006 002 e
0036120 l s e 006 001
0036140
*
0036200 006 003 ( * a s
0036220 i n g l e w o r d ) 006 001 \r
0036240 ( \ P U T B A
0036260 S E A D D R 0 ( D E P O S
0036300 I T B Y T E ( \ G E T B A S E
0036320 A D D R 0 ) \r
0036340
0036360 ( D I F
0036400 F E R E N C E ( S U B 1 B I
0036420 T S P E R W O R D ) \r
0036440
*
0036500 P O S I T I O N ) \r
0036520
*
0036560 S I Z E V A L ] ) \r ) \r \r
0036600 \r \r 006 004 ( * ; ; " P r i m i
0036620 t i v e f u n c t i o n s ,
0036640 e s p e c i a l l y n e e d e
0036660 d f o r C o m m o n L i s p
0036700 a r r a y p a c k a g e . "
0036720 ) 006 001 \r \r ( D E C L A R E % :
0036740 D O N T C O P Y \r ( D E C L A
0036760 R E % : E V A L @ C O M P I L
0037000 E \r \r ( P U T P R O P S . H
0037020 I H A L F W O R D L O . M A C
0037040 R O ( ( X ) \r
0037060
0037100 ( L R S H X
0037120 B I T S P E R H A L F W O R D )
0037140 ) ) \r [ P U T P R O P S . H I
0037160 H A L F W O R D H I . M A C R
0037200 O ( ( X ) \r
0037220
0037240 ( L O G A N D X
0037260 ( C O N S T A N T ( L S H
0037300 M A S K H A L F W O R D 1 ' S
0037320 B I T S P E R H A L F W O R D ]
0037340 \r ( P U T P R O P S . L O H A
0037360 L F W O R D L O . M A C R O
0037400 ( ( X ) \r
0037420
0037440 ( L O G A N D X M
0037460 A S K H A L F W O R D 1 ' S ) )
0037500 ) \r ( P U T P R O P S . L O H
0037520 A L F W O R D H I . M A C R O
0037540 ( ( X ) \r
0037560
0037600 ( L L S H ( L O G
0037620 A N D X M A S K H A L F W O
0037640 R D 1 ' S ) \r
0037660
0037700 B I T
0037720 S P E R H A L F W O R D ) ) ) \r
0037740 ) \r \r ( D E C L A R E % : E V
0037760 A L @ C O M P I L E \r \r [ P U
0040000 T P R O P S \ G E T B A S E N
0040020 I B B L E D M A C R O ( O P
0040040 E N L A M B D A ( B A S E O
0040060 F F S T ) \r
0040100
0040120 ( [ L
0040140 A M B D A ( \ B y t e ) \r
0040160
*
0040220 ( D E
0040240 C L A R E ( L O C A L V A R S
0040260 \ B y t e ) ) \r
0040300
*
0040340 ( i f ( O D D
0040360 P O F F S T ) \r
0040400
*
0040440 t h e n
0040460 \r
0040500
*
0040540 ( L O G A N D \ B y t
0040560 e ( C O N S T A N T ( M A S
0040600 K . 1 ' S 0 B I T S P E R N
0040620 I B B L E ) \r
0040640
*
0040720 )
0040740 ) \r
0040760
*
0041020 e l s e \r
0041040
*
0041100 ( L R
0041120 S H \ B y t e B I T S P E R
0041140 N I B B L E ] \r
0041160
*
0041220 ( \ G E T B A S E B Y T E B A
0041240 S E ( F O L D L O O F F S T
0041260 N I B B L E S P E R B Y T E ]
0041300 \r [ P U T P R O P S \ P U T B
0041320 A S E N I B B L E D M A C R O
0041340 \r ( O P E N L A M
0041360 B D A ( B A S E O F F S T
0041400 V A L ) \r
0041420 ( [ L A M B D A ( \ B y
0041440 t e N o ) \r
0041460 ( D E C
0041500 L A R E ( L O C A L V A R S
0041520 \ B y t e N o ) ) \r
0041540
0041560 ( [ L A M B D A ( \ B y t e )
0041600 \r
0041620 (
0041640 D E C L A R E ( L O C A L V A
0041660 R S \ B y t e ) ) \r
0041700
0041720 ( \ P U T B A
0041740 S E B Y T E B A S E \ B y t
0041760 e N o \r
0042000
0042020 ( i f ( O D
0042040 D P O F F S T ) \r
0042060
*
0042120 t h e n \r
0042140
*
0042200 ( L O G O R ( L O G A N D
0042220 \ B y t e ( C O N S T A N T
0042240 ( M A S K . 1 ' S B I T S P E
0042260 R N I B B L E \r
0042300
*
0042400 B I T S P E R N
0042420 I B B L E ) ) ) \r
0042440
*
0042500 V A L ) \r
0042520
*
0042560 e l s e \r
0042600
*
0042640 ( L O G O R ( L O G
0042660 A N D \ B y t e ( C O N S T
0042700 A N T ( M A S K . 1 ' S 0
0042720 B I T S P E R N I B B L E ) ) )
0042740 \r
0042760
*
0043020 ( L L S H V A L B I T S P
0043040 E R N I B B L E ] \r
0043060
0043100 ( \ G E T B A S E B Y T E B
0043120 A S E \ B y t e N o ] \r
0043140 ( F O L
0043160 D L O O F F S T N I B B L E
0043200 S P E R B Y T E ] \r [ P U T P R
0043220 O P S \ G E T B A S E B I T
0043240 D M A C R O ( O P E N L A M B
0043260 D A ( B A S E O F F S T ) \r
0043300
*
0043340 ( [ L A M B D A ( \ B
0043360 y t e N o \ B i t M a s k ) \r
0043400
*
0043440 ( D E C
0043460 L A R E ( L O C A L V A R S
0043500 \ B y t e N o \ B i t M a s k
0043520 ) ) \r
0043540
0043560 (
0043600 i f ( E Q 0 ( L O G A N D
0043620 \ B i t M a s k ( \ G E T B
0043640 A S E B Y T E B A S E \ B y
0043660 t e N o ) ) ) \r
0043700
*
0043740 t h e n 0 e
0043760 l s e 1 ] \r
0044000
0044020 ( F O L
0044040 D L O O F F S T B I T S P E
0044060 R B Y T E ) \r
0044100
0044120 ( M A S
0044140 K . 1 ' S ( I D I F F E R E N
0044160 C E ( C O N S T A N T ( S U
0044200 B 1 B I T S P E R B Y T E ) )
0044220 \r
0044240
*
0044300 ( I M O D O F F
0044320 S T B I T S P E R B Y T E ) )
0044340 \r
0044360
0044400 1 ] \r
0044420 [ P U T P R O P S \ P U T B A
0044440 S E B I T D M A C R O ( O P
0044460 E N L A M B D A ( B A S E O
0044500 F F S T V A L ) \r
0044520
0044540 ( [
0044560 L A M B D A ( \ B y t e N o
0044600 \ B i t M a s k \ B y t e ) \r
0044620
*
0044660 ( D E C
0044700 L A R E ( L O C A L V A R S
0044720 \ B y t e N o \ B i t M a s k
0044740 \ B y t e ) ) \r
0044760
*
0045020 ( S E T Q \ B y t e
0045040 ( \ G E T B A S E B Y T E B
0045060 A S E \ B y t e N o ) ) \r
0045100
*
0045140 ( i f ( i
0045160 f ( E Q 0 ( L O G A N D
0045200 \ B i t M a s k \ B y t e ) )
0045220 \r
0045240
*
0045300 t h e n \r
0045320
*
0045360 ( N
0045400 O T ( E Q 0 V A L ) ) \r
0045420
*
0045500 e l s e \r
0045520
*
0045560 ( E Q
0045600 0 V A L ) ) \r
0045620
*
0045660 t h e n \r
0045700
*
0045740 ( \ P
0045760 U T B A S E B Y T E B A S E
0046000 \ B y t e N o ( L O G X O R
0046020 \ B i t M a s k \ B y t e ) )
0046040 ) \r
0046060
0046100 V A
0046120 L ] \r
0046140
0046160 ( F O L D L O
0046200 O F F S T B I T S P E R B Y T
0046220 E ) \r
0046240
0046260 ( M A S K . 1 '
0046300 S ( I D I F F E R E N C E (
0046320 C O N S T A N T ( S U B 1 B
0046340 I T S P E R B Y T E ) ) \r
0046360
*
0046440 ( I M O D O F F S T B
0046460 I T S P E R B Y T E ) ) \r
0046500
*
0046540 1 ] \r ) \r ) \r
0046560 \r \r \r 006 004 ( * ; ; " B e g i
0046600 n n i n g o f r e w r i t e
0046620 o f s o m e L L A R I T H
0046640 t h i n g s , m o d u l a r
0046660 l y u s i n g t h e m a c
0046700 r o s o f t h i s f i l e
0046720 " ) 006 001 \r \r ( D E C L A R E % :
0046740 D O N T C O P Y \r ( * F O
0046760 L L O W I N G D E F I N I T I
0047000 O N S E X P O R T E D ) \r \r \r
0047020 ( D E C L A R E % : E V A L @
0047040 C O M P I L E \r \r ( R P A Q Q
0047060 006 002 M A S K 0 W O R D 1 ' S 006
0047100 001 3 2 7 6 7 ) \r \r ( R P A Q Q
0047120 006 002 M A S K 1 W O R D 0 ' S 006
0047140 001 3 2 7 6 8 ) \r \r ( R P A Q Q
0047160 006 002 M A S K W O R D 1 ' S 006 001
0047200 6 5 5 3 5 ) \r \r ( R P A Q Q
0047220 006 002 M A S K H A L F W O R D 1 '
0047240 S 006 001 2 5 5 ) \r \r ( R P A Q Q
0047260 006 002 B I T S P E R H A L F W O
0047300 R D 006 001 8 ) \r \r ( C O N S T A
0047320 N T S M A S K 0 W O R D 1 ' S
0047340 M A S K 1 W O R D 0 ' S M A
0047360 S K W O R D 1 ' S M A S K H A
0047400 L F W O R D 1 ' S B I T S P E
0047420 R H A L F W O R D ) \r ) \r ( D E
0047440 C L A R E % : E V A L @ C O M
0047460 P I L E \r \r ( P U T P R O P S
0047500 E Q Z E R O P M A C R O (
0047520 ( X ) \r
0047540 ( E Q
0047560 0 X ) ) ) \r ) \r ( D E C L A
0047600 R E % : E V A L @ C O M P I L
0047620 E \r \r [ P U T P R O P S \ M
0047640 O V E T O B O X D M A C R O
0047660 ( O P E N L A M B D A ( N D
0047700 ) \r
0047720
0047740 ( S E L E C T C ( N
0047760 T Y P X N ) \r
0050000
*
0050040 ( \ S M A L L P ( r e p l
0050060 a c e ( F I X P H I N U M )
0050100 \r
0050120
*
0050160 o f D
0050200 w i t h 0 ) \r
0050220
*
0050260 ( r e p l a c
0050300 e ( F I X P L O N U M ) \r
0050320
*
0050400 o f D w i t h
0050420 N ) ) \r
0050440
0050460 (
0050500 \ F I X P ( r e p l a c e (
0050520 F I X P H I N U M ) \r
0050540
*
0050620 o f D w i t h ( f
0050640 e t c h ( F I X P H I N U M
0050660 ) \r
0050700
*
0050760 o f N )
0051000 ) \r
0051020
*
0051060 ( r e p l a c e ( F I X
0051100 P L O N U M ) \r
0051120
*
0051200 o f D w i t h ( f e t c
0051220 h ( F I X P L O N U M ) \r
0051240
*
0051340 o f N ) ) ) \r
0051360
*
0051420 ( \ I L L E
0051440 G A L . A R G N ] \r [ P U T P
0051460 R O P S . X U N B O X . M A
0051500 C R O ( ( X H X L X ) \r
0051520
0051540 ( u n t i l
0051560 ( S E T Q L X ( S E L E C T
0051600 C ( N T Y P X X ) \r
0051620
*
0051660 [ \ S
0051700 M A L L P ( C O N D ( ( I G
0051720 E Q X 0 ) \r
0051740
*
0052020 ( S E T Q H
0052040 X 0 ) \r
0052060
*
0052140 X ) \r
0052160
*
0052240 ( T ( S E T
0052260 Q H X M A S K W O R D 1 ' S
0052300 ) \r
0052320
*
0052400 ( \ L O L O C X ] \r
0052420
*
0052500 ( \ F I X P ( S E T Q H X
0052520 ( f e t c h ( F I X P H I
0052540 N U M ) \r
0052560
*
0052640 o f
0052660 X ) ) \r
0052700
*
0052740 ( f e t
0052760 c h ( F I X P L O N U M ) \r
0053000
*
0053060 o
0053100 f X ) ) \r
0053120
*
0053160 N I L ) ) \r
0053200
0053220 d o
0053240 \r
0053260
0053300 ( S E T Q X ( L I S P E
0053320 R R O R " I L L E G A L A R
0053340 G " X T ] \r [ P U T P R O P
0053360 S . X L L S H . M A C R O
0053400 ( ( H I L O N ) \r
0053420
0053440 ( i f ( I G E Q N
0053460 B I T S P E R W O R D ) \r
0053500
0053520 t h e n \r
0053540
0053560 ( * J
0053600 u m p 1 6 b i t s i n a
0053620 s i n g l e b o u n d ! ) \r
0053640
0053660 ( S E
0053700 T Q H I L O ) \r
0053720
0053740 ( S E T Q L O
0053760 0 ) \r
0054000
0054020 ( S E T Q N ( I D I F F E R
0054040 E N C E N B I T S P E R W O
0054060 R D ) ) ) \r
0054100 (
0054120 i f ( I G E Q N B I T S P
0054140 E R H A L F W O R D ) \r
0054160
0054200 t h e n \r
0054220
0054240 ( * J u
0054260 m p 8 b i t s i n a s
0054300 i n g l e b o u n d ! ) \r
0054320
0054340 ( S E T Q
0054360 H I ( L O G O R ( . L O H
0054400 A L F W O R D H I . H I ) \r
0054420
*
0054460 ( . H I
0054500 H A L F W O R D L O . L O ) )
0054520 ) \r
0054540 (
0054560 S E T Q L O ( . L O H A L F
0054600 W O R D H I . L O ) ) \r
0054620
0054640 ( S E T Q
0054660 N ( I D I F F E R E N C E N
0054700 B I T S P E R H A L F W O R D
0054720 ) ) ) \r
0054740 ( i f
0054760 ( I G E Q N 4 ) \r
0055000
0055020 t h e n \r
0055040
0055060 ( * J u
0055100 m p 4 b i t s i n a s
0055120 i n g l e b o u n d ! ) \r
0055140
0055160 ( S E T Q
0055200 H I ( L O G O R ( L R S H
0055220 L O ( C O N S T A N T ( I
0055240 D I F F E R E N C E B I T S P
0055260 E R W O R D 4 ) ) ) \r
0055300
*
0055340 ( L L S H [
0055360 L O G A N D H I ( C O N S T
0055400 A N T ( M A S K . 1 ' S 0
0055420 ( I D I F F E R E N C E \r
0055440
*
0055560 B I T S P E R W O R D 4 ]
0055600 \r
0055620
*
0055660 4 ) ) ) \r
0055700
0055720 ( S E T Q L O (
0055740 L L S H [ L O G A N D L O
0055760 ( C O N S T A N T ( M A S K .
0056000 1 ' S 0 ( I D I F F E R E N
0056020 C E B I T S P E R W O R D \r
0056040
*
0056160 4 ] \r
0056200
*
0056240 4 ) ) \r
0056260
0056300 ( S E T Q N ( I D I
0056320 F F E R E N C E N 4 ) ) ) \r
0056340
0056360 [ * M A S K
0056400 0 W O R D 1 ' S s h o u l d
0056420 b e s a m e a s ( S U B 1
0056440 ( L S H 1 ( S U B 1 B I
0056460 T S P E R W O R D ] \r
0056500
0056520 ( F R P T Q N ( S E
0056540 T Q H I ( L L S H ( L O G
0056560 A N D H I M A S K 0 W O R D
0056600 1 ' S ) \r
0056620
*
0056660 1 ) ) \r
0056700
0056720 ( S E T Q
0056740 L O ( L L S H ( i f ( I G
0056760 E Q L O M A S K 1 W O R D 0
0057000 ' S ) \r
0057020
*
0057060 t h e n \r
0057100
*
0057140 (
0057160 a d d H I 1 ) \r
0057200
*
0057240 ( L O
0057260 G A N D L O M A S K 0 W O R
0057300 D 1 ' S ) \r
0057320
*
0057360 e l s e L O
0057400 ) \r
0057420
*
0057460 1 ] \r [ P U T P R O P S . X
0057500 L L S H 1 . M A C R O ( ( H
0057520 I L O ) \r
0057540
0057560 ( S E T Q H I ( L L S H (
0057600 L O G A N D H I M A S K 0 W
0057620 O R D 1 ' S ) \r
0057640
*
0057700 1 ) ) \r
0057720 (
0057740 S E T Q L O ( L S H ( C O
0057760 N D ( ( I G E Q L O M A S
0060000 K 1 W O R D 0 ' S ) \r
0060020
*
0060060 ( S E T Q
0060100 H I ( L O G O R H I 1 ) )
0060120 \r
0060140
*
0060200 ( L O G A N D L O M A S K 0
0060220 W O R D 1 ' S ) ) \r
0060240
*
0060300 ( T L O ) ) \r
0060320
*
0060360 1 ] \r [ P U T P
0060400 R O P S . X L R S H . M A C
0060420 R O ( ( H I L O N ) \r
0060440
0060460 ( i f ( I G E Q
0060500 N B I T S P E R W O R D ) \r
0060520
0060540 t h e
0060560 n \r
0060600 (
0060620 * J u m p 1 0 b i t s i
0060640 n a s i n g l e b o u n d
0060660 ! ) \r
0060700
0060720 ( S E T Q L O H I ) \r
0060740
0060760 ( S E T Q
0061000 H I 0 ) \r
0061020
0061040 ( S E T Q N ( I D I F
0061060 F E R E N C E N B I T S P E
0061100 R W O R D ) ) ) \r
0061120
0061140 ( i f ( I G E Q N B I
0061160 T S P E R H A L F W O R D ) \r
0061200
0061220 t h e n
0061240 \r
0061260 ( *
0061300 J u m p 8 b i t s i n
0061320 a s i n g l e b o u n d ! )
0061340 \r
0061360 ( S
0061400 E T Q L O ( L O G O R ( .
0061420 H I H A L F W O R D L O . L O
0061440 ) \r
0061460
0061500 (
0061520 . L O H A L F W O R D H I . H
0061540 I ) ) ) \r
0061560
0061600 ( S E T Q H I ( . H I H
0061620 A L F W O R D L O . H I ) ) \r
0061640
0061660 ( S E
0061700 T Q N ( I D I F F E R E N C
0061720 E N B I T S P E R H A L F W
0061740 O R D ) ) ) \r
0061760
0062000 ( i f ( I G E Q N 4 ) \r
0062020
0062040 t h e n
0062060 \r
0062100 ( *
0062120 J u m p 4 b i t s i n
0062140 a s i n g l e b o u n d ! )
0062160 \r
0062200 ( S
0062220 E T Q L O ( L O G O R ( L
0062240 L S H ( L O G A N D H I (
0062260 C O N S T A N T ( M A S K . 1
0062300 ' S 0 4 ) ) ) \r
0062320
*
0062360 ( C O
0062400 N S T A N T ( I D I F F E R E
0062420 N C E B I T S P E R W O R D
0062440 4 ) ) ) \r
0062460
*
0062520 ( L R S H L O 4 ) ) ) \r
0062540
0062560 ( S E
0062600 T Q H I ( L R S H H I 4
0062620 ) ) \r
0062640
0062660 ( S E T Q N ( I D I F F E R
0062700 E N C E N 4 ) ) ) \r
0062720
0062740 ( * M A S K 1 W O R
0062760 D 0 ' S s h o u l d b e s
0063000 a m e a s \ S I G N B I T )
0063020 \r
0063040 ( F R P T Q
0063060 N ( S E T Q L O ( i f
0063100 ( O D D P H I ) \r
0063120
*
0063160 t h e n \r
0063200
*
0063240 ( L O
0063260 G O R ( L R S H L O 1 ) \r
0063300
*
0063360 M A S K 1 W O R D 0
0063400 ' S ) \r
0063420
*
0063460 e l s e \r
0063500
*
0063540 ( L R S H L O
0063560 1 ) ) ) \r
0063600
0063620 ( S E T Q H I ( L
0063640 R S H H I 1 ] \r [ P U T P R
0063660 O P S . A D D . 2 W O R D . I
0063700 N T E G E R S . M A C R O (
0063720 ( H X L X H Y L Y ) \r
0063740
*
0064000 ( * I g n o r e s c
0064020 a r r y o u t o f h i g h
0064040 - o r d e r w o r d ) \r
0064060
*
0064120 ( S E T Q H X ( . S U
0064140 M S M A L L M O D . H X H Y
0064160 ) ) \r
0064200
0064220 ( S E T Q L
0064240 X ( . S U M S M A L L M O D .
0064260 L X L Y ( S E T Q H X \r
0064300
*
0064400 ( i f ( E
0064420 Q H X \r
0064440
*
0064540 M A X . S M A L
0064560 L . I N T E G E R ) \r
0064600
*
0064700 t h e n 0
0064720 e l s e \r
0064740
*
0065040 ( A D D 1 H X ] \r [ P U
0065060 T P R O P S . S U B . 2 W O R
0065100 D . I N T E G E R S . M A C R
0065120 O ( ( H X L X H Y L Y )
0065140 \r
0065160
0065200 ( * I g n o r e
0065220 s c a r r y o u t o f h
0065240 i g h - o r d e r w o r d ) \r
0065260
*
0065320 ( S E T Q H X (
0065340 . D I F F E R E N C E S M A L L
0065360 M O D . H X H Y ) ) \r
0065400
*
0065440 ( S E T Q L X ( . D I
0065460 F F E R E N C E S M A L L M O D
0065500 . L X L Y \r
0065520
*
0065560 ( S
0065600 E T Q H X ( i f ( E Q H
0065620 X 0 ) \r
0065640
*
0065720 t h e n M A X
0065740 . S M A L L . I N T E G E R e
0065760 l s e \r
0066000
*
0066060 ( S U B 1 H X ]
0066100 \r [ P U T P R O P S . 3 2 B I
0066120 T M U L . M A C R O ( ( H R
0066140 L R X Y ) \r
0066160
0066200 ( P R O G ( H X L
0066220 X H Y L Y ) \r
0066240
0066260 ( i f (
0066300 I L E S S P X Y ) \r
0066320
*
0066360 t h e n \r
0066400
0066420 ( s w
0066440 a p X Y ) ) \r
0066460
0066500 ( * Y
0066520 i s t h e l e s s e r o f
0066540 t h e t w o n o w ) \r
0066560
*
0066620 ( . X U N B O X . X H X L
0066640 X ) \r
0066660
0066700 ( . X U N B O X . Y
0066720 H Y L Y ) \r
0066740
0066760 L P \r
0067000
0067020 (
0067040 i f ( O D D P L Y ) \r
0067060
*
0067120 t h e n \r
0067140
0067160 ( .
0067200 A D D . 2 W O R D . I N T E G E
0067220 R S . H R L R H X L X )
0067240 ) \r
0067260
0067300 ( i f ( E Q H Y 0
0067320 ) \r
0067340
0067360 t h e n \r
0067400
*
0067440 ( S E T Q L Y ( L R S
0067460 H L Y 1 ) ) \r
0067500
0067520 (
0067540 i f ( E Q L Y 0 ) \r
0067560
*
0067620 t h e n \r
0067640
*
0067700 ( R E T U R N ) ) \r
0067720
*
0067760 e l s e \r
0070000
*
0070040 ( . L R S H 1 . H Y L Y )
0070060 ) \r
0070100
0070120 ( * T r i m o f f
0070140 h i g h e s t b i t s , s o
0070160 t h a t l e f t - s h i f t
0070200 i n g d o e s n ' t g e n e
0070220 r a t e \r
0070240
0070260 F I X P s
0070300 ) \r
0070320
0070340 ( S E T Q H X ( L O
0070360 G A N D H X M A S K 0 W O R
0070400 D 1 ' S ) ) \r
0070420
0070440 ( . L L S H 1
0070460 . H X L X ) \r
0070500
0070520 ( G O L
0070540 P ] \r ) \r ( D E C L A R E % :
0070560 E V A L @ C O M P I L E \r \r [
0070600 P U T P R O P S . S U M S M A
0070620 L L M O D . M A C R O ( ( X
0070640 Y O V E R F L O W F O R M )
0070660 \r
0070700
0070720 ( [ L A M B D A ( \ S u m S m
0070740 a l l M o d V a r ) \r
0070760
*
0071020 ( D E C L A R E ( L O C A
0071040 L V A R S \ S u m S m a l l M
0071060 o d V a r ) ) \r
0071100
0071120 (
0071140 I F ( I L E Q X \ S u m S
0071160 m a l l M o d V a r ) \r
0071200
*
0071240 T H E N \r
0071260
*
0071320 ( I P L U S X
0071340 Y ) \r
0071360
0071400 E L
0071420 S E O V E R F L O W F O R M
0071440 ( I D I F F E R E N C E X (
0071460 A D D 1 \ S u m S m a l l M o
0071500 d V a r ] \r
0071520
0071540 ( I D I F F E R E N
0071560 C E M A X . S M A L L . I N T
0071600 E G E R Y ] \r [ P U T P R O P
0071620 S . D I F F E R E N C E S M A
0071640 L L M O D . M A C R O ( ( X
0071660 Y B O R R O W F O R M ) \r
0071700
*
0071740 ( I F ( N O T ( I
0071760 G R E A T E R P Y X ) ) \r
0072000
*
0072040 T H E N \r
0072060
*
0072120 ( I D I F F E R
0072140 E N C E X Y ) \r
0072160
*
0072220 E L S E B O R R O W F
0072240 O R M ( A D D 1 ( I D I F F
0072260 E R E N C E M A X . S M A L L
0072300 . I N T E G E R \r
0072320
*
0072420 ( I D I F F E R E N C E Y X
0072440 ] \r ) \r \r \r ( * E N D E X P
0072460 O R T E D D E F I N I T I O N
0072500 S ) \r \r \r ( D E C L A R E % :
0072520 E V A L @ C O M P I L E \r \r [
0072540 P U T P R O P S . A D D . 2 W
0072560 O R D . I N T E G E R S . M A
0072600 C R O ( ( H X L X H Y L
0072620 Y ) \r
0072640
0072660 ( * I g n o
0072700 r e s c a r r y o u t o f
0072720 h i g h - o r d e r w o r d
0072740 ) \r
0072760
0073000 ( S E T Q H X
0073020 ( . S U M S M A L L M O D .
0073040 H X H Y ) ) \r
0073060
0073100 ( S
0073120 E T Q L X ( . S U M S M A L
0073140 L M O D . L X L Y ( S E T
0073160 Q H X \r
0073200
*
0073260 (
0073300 i f ( E Q H X \r
0073320
*
0073420 M A X
0073440 . S M A L L . I N T E G E R ) \r
0073460
*
0073560 t h
0073600 e n 0 e l s e \r
0073620
*
0073720 ( A D D 1 H X
0073740 ] \r [ P U T P R O P S . S U B
0073760 . 2 W O R D . I N T E G E R S .
0074000 M A C R O ( ( H X L X H
0074020 Y L Y ) \r
0074040
0074060 ( * I
0074100 g n o r e s c a r r y o u t
0074120 o f h i g h - o r d e r w
0074140 o r d ) \r
0074160
0074200 ( S E T Q
0074220 H X ( . D I F F E R E N C E
0074240 S M A L L M O D . H X H Y )
0074260 ) \r
0074300
0074320 ( S E T Q L X
0074340 ( . D I F F E R E N C E S M A
0074360 L L M O D . L X L Y \r
0074400
*
0074460 ( S E T Q H X ( i f
0074500 ( E Q H X 0 ) \r
0074520
*
0074600 t h e
0074620 n M A X . S M A L L . I N T E
0074640 G E R e l s e \r
0074660
*
0074740 ( S U B
0074760 1 H X ] \r [ P U T P R O P S
0075000 . 3 2 B I T M U L . M A C R O
0075020 ( ( H R L R X Y ) \r
0075040
0075060 ( P R O G
0075100 ( H X L X H Y L Y ) \r
0075120
*
0075160 ( i f ( I L E S S P X Y )
0075200 \r
0075220
0075240 t h e n \r
0075260
*
0075320 ( s w a p X Y ) ) \r
0075340
*
0075400 ( * Y i s t h e l e s s
0075420 e r o f t h e t w o n o
0075440 w ) \r
0075460
0075500 ( . X U N B O X . X
0075520 H X L X ) \r
0075540
0075560 ( . X U N B
0075600 O X . Y H Y L Y ) \r
0075620
0075640 L
0075660 P \r
0075700
0075720 ( i f ( O D D P L Y
0075740 ) \r
0075760
0076000 t h e n \r
0076020
*
0076060 ( . A D D . 2 W O R D . I
0076100 N T E G E R S . H R L R H
0076120 X L X ) ) \r
0076140
0076160 ( i f ( E Q
0076200 H Y 0 ) \r
0076220
0076240 t h e
0076260 n \r
0076300
0076320 ( S E T Q L Y
0076340 ( L R S H L Y 1 ) ) \r
0076360
*
0076420 ( i f ( E Q L Y 0
0076440 ) \r
0076460
0076500 t h e n
0076520 \r
0076540
0076560 ( R E T U
0076600 R N ) ) \r
0076620
0076640 e l s e \r
0076660
*
0076720 ( . L R S H 1 . H
0076740 Y L Y ) ) \r
0076760
0077000 ( * T r i m
0077020 o f f h i g h e s t b i t
0077040 s , s o t h a t l e f t -
0077060 s h i f t i n g d o e s n ' t
0077100 g e n e r a t e \r
0077120
*
0077160 F I X P s ) \r
0077200
0077220 ( S E T Q H
0077240 X ( L O G A N D H X M A S
0077260 K 0 W O R D 1 ' S ) ) \r
0077300
0077320 ( .
0077340 L L S H 1 . H X L X ) \r
0077360
*
0077420 ( G O L P ] \r ) \r ) \r \r ( P U
0077440 T P R O P S 006 002 A D D A R I T
0077460 H F I L E T Y P E 006 001 C L :
0077500 C O M P I L E - F I L E ) \r ( P
0077520 U T P R O P S A D D A R I T H
0077540 C O P Y R I G H T ( " X e r
0077560 o x C o r p o r a t i o n "
0077600 1 9 8 2 1 9 8 3 1 9 8 4 1
0077620 9 8 5 1 9 8 6 ) ) \r ( D E C L
0077640 A R E % : D O N T C O P Y \r
0077660 ( F I L E M A P ( N I L (
0077700 3 8 4 0 3 9 9 1 ( C L : L O
0077720 G N O T 3 8 5 0 . 3 9 8 9
0077740 ) ) ( 5 8 4 5 6 5 9 3 ( L
0077760 D B 5 8 5 5 . 6 1 0 7 )
0100000 ( D P B 6 1 0 9 . 6 3 8 4
0100020 ) ( B Y T E \r 6 3 8 6 .
0100040 6 5 9 1 ) ) ( 6 5 9 4 1 2 3
0100060 6 6 ( \ L D B E X P A N D E R
0100100 6 6 0 4 . 8 8 0 4 ) ( \
0100120 D P B E X P A N D E R 8 8 0 6
0100140 . 1 2 3 6 4 ) ) ( 1 2 9 3
0100160 9 1 3 1 3 2 ( \r I M O D L E
0100200 S S P 1 2 9 4 9 . 1 3 1 3
0100220 0 ) ) ( 1 3 4 3 9 1 3 9 1 8
0100240 ( R O T 1 3 4 4 9 . 1 3
0100260 9 1 6 ) ) ( 1 4 6 9 5 1 5 7
0100300 4 2 ( \ P U T B A S E B I T S
0100320 1 4 7 0 5 . 1 5 7 4 0 ) )
0100340 \r ) ) ) \r S T O P \r
0100352