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