$ od -c -N 50000 [Pixel]<DragonWare0.1>XDE>Rapunzel>RapunzelServiceImpl.mesa!13 0000000 - - R a p u n z e l S e r v i 0000020 c e I m p l . m e s a \r \t - - 0000040 C o p y r i g h t 323 1 9 8 6 0000060 , 1 9 8 8 b y X e r o x 0000100 C o r p o r a t i o n . A l 0000120 l r i g h t s r e s e r v e 0000140 d . \r \t - - B i l l J a c k 0000160 s o n ( b j ) J a n u a r y 0000200 1 1 , 1 9 8 8 1 1 : 5 1 : 0000220 1 9 a m P S T \r \t - - W i 0000240 l l i e - S u e , A p r i l 0000260 9 , 1 9 8 7 6 : 5 4 : 0 4 0000300 p m P D T \r \r D I R E C T O R 0000320 Y \r \t E S C A l p h a U S I N 0000340 G [ a l p h a ] , \r \t H e 0000360 a p U S I N G [ s y s t e 0000400 m Z o n e ] , \r \t I n l i n e 0000420 U S I N G [ H i g h H a l 0000440 f , L o w H a l f , L o n g 0000460 N u m b e r ] , \r \t M o p c o 0000500 d e s U S I N G [ z E S C 0000520 ] , \r \t P u t U S I N G [ 0000540 L o n g N u m b e r , T e x 0000560 t ] , \r \t S y s t e m U S I 0000600 N G [ N e t w o r k A d d r 0000620 e s s ] , \r \t R a p u n z e l 0000640 ; \r \r R a p u n z e l S e r v i 0000660 c e I m p l : P R O G R A M \r 0000700 \t I M P O R T S H e a p , I 0000720 n l i n e , P u t , R a p u 0000740 n z e l \r \t E X P O R T S R a 0000760 p u n z e l = { \r \t O P E N 0001000 R a p u n z e l ; \r \t - - T 0001020 y p e s & M a g i c # ' s 0001040 \r \t \t p M e m F e t c h : E S 0001060 C A l p h a . a l p h a = 3 0001100 E H ; \r \t \t p M e m S m a s h : 0001120 E S C A l p h a . a l p h a 0001140 = 3 F H ; \r \t \t \t \r \t \t f i r 0001160 s t P h y s i c a l : R a p u 0001200 n z e l . A d d r e s s = 0 0001220 ; \r \t \t l o w e s t G u a r d e 0001240 d : R a p u n z e l . A d d r 0001260 e s s = ( L O N G [ 1 2 ] * 0001300 2 5 6 * 2 5 6 ) ; - - 1 . 5 0001320 M B \r \t \t l a s t P h y s i c a 0001340 l : R a p u n z e l . A d d r 0001360 e s s = ( ( L O N G [ 3 2 ] 0001400 * 2 5 6 * 2 5 6 ) - 1 ) ; - - 0001420 2 ^ ( 5 + 8 + 8 ) w o r d s 0001440 = 4 M B \r \t \t \t \r \t \t l o w 0001460 e r B o u n d : C A R D I N A 0001500 L = 0 ; \r \t \t u p p e r B o 0001520 u n d : C A R D I N A L = 0001540 1 0 2 3 ; \r \t \t \t \r \t \t M e m : 0001560 T Y P E = A R R A Y [ l 0001600 o w e r B o u n d . . u p p e r 0001620 B o u n d ] O F W O R D ; \r 0001640 \t \t m e m M o d : C A R D I N 0001660 A L = 1 0 2 4 ; \r \t - - G 0001700 l o b a l S t a t e \r \t \t m e 0001720 m : M e m ; \r \t \t n i l H a n 0001740 d l e : B i n d H a n d l e ; 0001760 \r \t \t s i m u l a t i o n : B 0002000 O O L E A N _ F A L S E ; \r 0002020 \t \t h i s t o r y B u f f e r : 0002040 B O O L E A N _ F A L S E 0002060 ; \r \t \t d e b u g g i n g : B 0002100 O O L E A N _ F A L S E ; \r 0002120 \t \t s h f t A A d d r : R a p 0002140 u n z e l . A d d r e s s ; \r \t 0002160 \t s h f t B A d d r : R a p u 0002200 n z e l . A d d r e s s ; \r \t \t 0002220 \r \t F a u l t : P U B L I C 0002240 E R R O R [ b H : B i n d 0002260 H a n d l e , c o d e : R a 0002300 p u n z e l . F a u l t C o d e 0002320 , a d d r e s s : R a p u n 0002340 z e l . A d d r e s s ] = 0002360 C O D E ; \r \t \t \r \t H i s t o r 0002400 y B u f f e r F e t c h : P R 0002420 O C [ p : L O N G C A R 0002440 D I N A L ] R E T U R N S 0002460 [ b : W O R D ] = M A 0002500 C H I N E C O D E { \r \t \t - 0002520 - b _ I O P O p s . G e t 0002540 B y t e [ p ! I O P O p s . 0002560 E r r o r = > { F a u l t 0002600 [ b H , x x , x x ] } ] 0002620 ; \r \t \t } ; \r \t \t \r \t H i s t o 0002640 r y B u f f e r S m a s h : P 0002660 R O C [ p : L O N G C A 0002700 R D I N A L , b : W O R D 0002720 ] = M A C H I N E C O D E 0002740 { \r \t \t - - I O P O p s . P 0002760 u t B y t e [ p , b ! I O 0003000 P O p s . E r r o r = > { 0003020 F a u l t [ b H , x x , x x 0003040 ] } ] ; \r \t \t } ; \r \t \t \r \t 0003060 M e m F e t c h : P R O C [ 0003100 L O N G C A R D I N A L ] 0003120 R E T U R N S [ W O R D 0003140 ] = M A C H I N E C O D E 0003160 { \r \t \t M o p c o d e s . z E 0003200 S C , p M e m F e t c h \r \t \t 0003220 } ; \r \t \t \r \t M e m S m a s h : 0003240 P R O C [ L O N G C A R 0003260 D I N A L , W O R D ] = 0003300 M A C H I N E C O D E { \r \t 0003320 \t M o p c o d e s . z E S C , 0003340 p M e m S m a s h \r \t \t } ; \r \t 0003360 \t \r \t D i s p l a y : P R O C 0003400 [ l e a d : L O N G S T 0003420 R I N G , v a l u e : L O N 0003440 G C A R D I N A L ] = { 0003460 \r \t \t I F ( N O T d e b u 0003500 g g i n g ) T H E N R E T 0003520 U R N ; \r \t \t P u t . T e x t [ 0003540 N I L , l e a d ] ; \r \t \t P u 0003560 t . L o n g N u m b e r [ N I L 0003600 , v a l u e , [ b a s e : 0003620 8 ] ] ; \r \t \t P u t . T e x t [ 0003640 N I L , " B \ n " ] ; \r \t \t } 0003660 ; \r \t \t \r \t P e e k O p C o d e 0003700 : P R O C [ b H : B i n 0003720 d H a n d l e , a d d r : L 0003740 O N G C A R D I N A L ] \r R 0003760 E T U R N S [ w o r d : W 0004000 O R D ] = I N L I N E { 0004020 \r \t \t p h y s : C A R D I N A 0004040 L = I n l i n e . L o w H a 0004060 l f [ a d d r ] ; \r \t \t S E L E 0004100 C T T R U E F R O M \r \t \t \t 0004120 ( s i m u l a t i o n ) = 0004140 > { \r \t \t \t \t - - I F N O 0004160 T ( p h y s I N [ l o w e 0004200 r B o u n d . . u p p e r B o u 0004220 n d ] ) T H E N E R R O R 0004240 F a u l t [ b H , n o n e x i 0004260 s t e n t , a d d r ] ; \r \t \t 0004300 \t \t w o r d _ m e m [ p h y 0004320 s M O D m e m M o d ] ; \r \t 0004340 \t \t \t } ; \r \t \t \t ( h i s t o 0004360 r y B u f f e r ) = > { \r 0004400 \t \t \t \t w o r d _ H i s t o 0004420 r y B u f f e r F e t c h [ a d 0004440 d r ] ; \r \t \t \t \t } ; \r \t \t \t E 0004460 N D C A S E = > { \r \t \t \t \t 0004500 I F N O T ( a d d r I N 0004520 [ l o w e s t G u a r d e d . 0004540 . l a s t P h y s i c a l ] ) 0004560 \r \t \t \t \t \t T H E N E R R O R 0004600 F a u l t [ b H , I F ( 0004620 a d d r < l o w e s t G u a 0004640 r d e d ) \r T H E N p r o t 0004660 e c t i o n E L S E n o n e 0004700 x i s t e n t , a d d r ] ; \r 0004720 \t \t \t \t w o r d _ M e m F e 0004740 t c h [ a d d r ] ; \r \t \t \t \t } 0004760 ; \r \t \t } ; \r \t \t \r \t P o k e O 0005000 p C o d e : P R O C [ b H 0005020 : B i n d H a n d l e , a d 0005040 d r : L O N G C A R D I N A 0005060 L , w o r d : W O R D ] 0005100 = I N L I N E { \r \t \t p h y 0005120 s : C A R D I N A L = I n 0005140 l i n e . L o w H a l f [ a d d 0005160 r ] ; \r \t \t S E L E C T T R U 0005200 E F R O M \r \t \t \t ( s i m u 0005220 l a t i o n ) = > { \r \t \t 0005240 \t \t - - I F N O T ( p h y 0005260 s I N [ l o w e r B o u n d 0005300 . . u p p e r B o u n d ] ) T 0005320 H E N E R R O R F a u l t [ 0005340 b H , n o n e x i s t e n t , 0005360 a d d r ] ; \r \t \t \t \t m e m [ 0005400 p h y s M O D m e m M o d ] 0005420 _ w o r d ; \r \t \t \t \t } ; \r 0005440 \t \t \t ( h i s t o r y B u f f 0005460 e r ) = > { \r \t \t \t \t H i 0005500 s t o r y B u f f e r S m a s h 0005520 [ a d d r , w o r d ] ; \r \t \t 0005540 \t \t } ; \r \t \t \t E N D C A S E 0005560 = > { \r \t \t \t \t I F N O T 0005600 ( a d d r I N [ l o w e s 0005620 t G u a r d e d . . l a s t P h 0005640 y s i c a l ] ) \r \t \t \t \t \t T 0005660 H E N E R R O R F a u l t [ 0005700 b H , I F ( a d d r < 0005720 l o w e s t G u a r d e d ) \r 0005740 T H E N p r o t e c t i o n 0005760 E L S E n o n e x i s t e n t 0006000 , a d d r ] ; \r \t \t \t \t M e m 0006020 S m a s h [ a d d r , w o r d 0006040 ] ; \r \t \t \t \t } ; \r \t \t } ; \r \t 0006060 \r \t S e t S h f t A d d r s : 0006100 P U B L I C P R O C [ b H 0006120 : B i n d H a n d l e , s h 0006140 f t A , s h f t B : R a p u 0006160 n z e l . A d d r e s s ] = 0006200 { \r \t \t s h f t A A d d r _ 0006220 s h f t A ; \r \t \t s h f t B A 0006240 d d r _ s h f t B ; \r \t \t } 0006260 ; \r \t \t \r \t P e e k S h o r t : 0006300 P U B L I C P R O C [ b 0006320 H : B i n d H a n d l e , a 0006340 d d r e s s : R a p u n z e l 0006360 . A d d r e s s ] \r \t \t \t R E 0006400 T U R N S [ r e s u l t : 0006420 R a p u n z e l . S h o r t ] 0006440 = { \r \t \t D i s p l a y [ " 0006460 P e e k S h o r t - a d d r 0006500 e s s : " , a d d r e s s ] 0006520 ; \r \t \t r e s u l t _ P e e 0006540 k O p C o d e [ b H , a d d r 0006560 e s s ] ; \r \t \t D i s p l a y [ 0006600 " \t r e s u l t : " , r e s 0006620 u l t ] ; \r \t \t } ; \r \t \t \r \t P 0006640 o k e S h o r t : P U B L I C 0006660 P R O C [ b H : B i n d 0006700 H a n d l e , a d d r e s s : 0006720 R a p u n z e l . A d d r e s 0006740 s , v a l u e : R a p u n z 0006760 e l . S h o r t ] = { \r \t 0007000 \t D i s p l a y [ " P o k e S h 0007020 o r t - a d d r e s s : " 0007040 , a d d r e s s ] ; \r \t \t D i 0007060 s p l a y [ " \t v a l u e : " 0007100 , v a l u e ] ; \r \t \t P o k e 0007120 O p C o d e [ b H , a d d r e 0007140 s s , v a l u e ] ; \r \t \t } ; 0007160 \r \t \t \r \t P e e k L o n g : P 0007200 U B L I C P R O C [ b H : 0007220 B i n d H a n d l e , a d d 0007240 r e s s : R a p u n z e l . A 0007260 d d r e s s ] \r \t \t \t R E T U 0007300 R N S [ r e s u l t : R a 0007320 p u n z e l . L o n g ] = 0007340 { \r \t \t x x : I n l i n e . L 0007360 o n g N u m b e r ; \r \t \t D i s 0007400 p l a y [ " P e e k L o n g - 0007420 a d d r e s s : " , a d d 0007440 r e s s ] ; \r \t \t x x . h i g h 0007460 _ P e e k O p C o d e [ b H 0007500 , a d d r e s s ] ; \r \t \t x x 0007520 . l o w _ P e e k O p C o d 0007540 e [ b H , ( a d d r e s s + 1 0007560 ) ] ; \r \t \t r e s u l t _ x 0007600 x . l c ; \r \t \t D i s p l a y [ 0007620 " \t r e s u l t : " , r e s 0007640 u l t ] ; \r \t \t } ; \r \t \t \r \t P 0007660 o k e L o n g : P U B L I C 0007700 P R O C [ b H : B i n d H 0007720 a n d l e , a d d r e s s : 0007740 R a p u n z e l . A d d r e s s 0007760 , v a l u e : R a p u n z e 0010000 l . L o n g ] = { \r \t \t D 0010020 i s p l a y [ " P o k e L o n g 0010040 - a d d r e s s : " , a 0010060 d d r e s s ] ; \r \t \t D i s p l 0010100 a y [ " \t v a l u e : " , v 0010120 a l u e ] ; \r \t \t P o k e O p C 0010140 o d e [ b H , a d d r e s s , 0010160 I n l i n e . H i g h H a l f 0010200 [ v a l u e ] ] ; \r \t \t P o k e 0010220 O p C o d e [ b H , ( a d d r 0010240 e s s + 1 ) , I n l i n e . L 0010260 o w H a l f [ v a l u e ] ] ; \r 0010300 \t \t } ; \r \t \t \r \t P e e k S e q 0010320 S h o r t : P U B L I C P R 0010340 O C [ b H : B i n d H a n 0010360 d l e , a d d r e s s : R a 0010400 p u n z e l . A d d r e s s , 0010420 c o u n t : C A R D I N A L 0010440 ] \r \t \t \t R E T U R N S [ r 0010460 e s u l t s : L O N G P O I 0010500 N T E R T O R a p u n z e l 0010520 . S e q S h o r t ] = { \r 0010540 \t \t C h u n k : T Y P E = 0010560 R E C O R D [ S E Q U E N C 0010600 E C O M P U T E D R a p u n 0010620 z e l . S e q S h o r t I n d e 0010640 x O F R a p u n z e l . S h 0010660 o r t ] ; \r \t \t z o n e : U 0010700 N C O U N T E D Z O N E = 0010720 H e a p . s y s t e m Z o n e ; 0010740 \r \t \t c h u n k : L O N G P 0010760 O I N T E R = z o n e . N E 0011000 W [ C h u n k [ c o u n t ] ] 0011020 ; \r \t \t D i s p l a y [ " P e e 0011040 k S e q S h o r t - a d d r 0011060 e s s : " , a d d r e s s ] 0011100 ; \r \t \t D i s p l a y [ " \t c o 0011120 u n t : " , c o u n t ] ; \r 0011140 \t \t r e s u l t s _ z o n e 0011160 . N E W [ R a p u n z e l . S 0011200 e q S h o r t _ D E S C R I 0011220 P T O R [ c h u n k , c o u n 0011240 t ] ] ; \r \t \t F O R i : C A 0011260 R D I N A L I N [ 0 . . c o 0011300 u n t ) D O \r \t \t \t r e s u l 0011320 t s [ i ] _ P e e k O p C o 0011340 d e [ b H , ( a d d r e s s + 0011360 i ) ] ; \r \t \t \t D i s p l a y [ 0011400 " \t " , r e s u l t s [ i ] ] 0011420 ; \r \t \t \t E N D L O O P ; \r \t \t 0011440 } ; \r \t \t \r \t P e e k S e q L o 0011460 n g : P U B L I C P R O C 0011500 [ b H : B i n d H a n d l e 0011520 , a d d r e s s : R a p u n 0011540 z e l . A d d r e s s , c o u 0011560 n t : C A R D I N A L ] \r \t 0011600 \t \t R E T U R N S [ r e s u 0011620 l t s : L O N G P O I N T E 0011640 R T O R a p u n z e l . S e 0011660 q L o n g ] = { \r \t \t C h 0011700 u n k : T Y P E = R E C O 0011720 R D [ S E Q U E N C E C O 0011740 M P U T E D R a p u n z e l . 0011760 S e q S h o r t I n d e x O F 0012000 R a p u n z e l . L o n g ] 0012020 ; \r \t \t z o n e : U N C O U N 0012040 T E D Z O N E = H e a p . 0012060 s y s t e m Z o n e ; \r \t \t c h 0012100 u n k : L O N G P O I N T E 0012120 R = z o n e . N E W [ C h 0012140 u n k [ c o u n t ] ] ; \r \t \t D 0012160 i s p l a y [ " P e e k S e q L 0012200 o n g - a d d r e s s : " 0012220 , a d d r e s s ] ; \r \t \t D i 0012240 s p l a y [ " \t c o u n t : " 0012260 , c o u n t ] ; \r \t \t r e s u 0012300 l t s _ z o n e . N E W [ 0012320 R a p u n z e l . S e q L o n g 0012340 _ D E S C R I P T O R [ c h 0012360 u n k , c o u n t ] ] ; \r \t \t 0012400 F O R i : C A R D I N A L 0012420 I N [ 0 . . c o u n t ) D O 0012440 \r \t \t \t x x : I n l i n e . L 0012460 o n g N u m b e r ; \r \t \t \t x x 0012500 . h i g h _ P e e k O p C o 0012520 d e [ b H , a d d r e s s + 2 0012540 * i ] ; \r \t \t \t x x . l o w _ 0012560 P e e k O p C o d e [ b H , 0012600 ( a d d r e s s + 2 * i + 1 ) ] 0012620 ; \r \t \t \t r e s u l t s [ i ] 0012640 _ x x . l c ; \r \t \t \t D i s p 0012660 l a y [ " \t " , r e s u l t s 0012700 [ i ] ] ; \r \t \t \t E N D L O O P 0012720 ; \r \t \t } ; \r \t \t \r \t P o k e S 0012740 e q S h o r t : P U B L I C 0012760 P R O C [ b H : B i n d H 0013000 a n d l e , a d d r e s s : 0013020 R a p u n z e l . A d d r e s s 0013040 , v a l u e S e q : L O N G 0013060 P O I N T E R T O R a p u 0013100 n z e l . S e q S h o r t ] 0013120 = { \r \t \t D i s p l a y [ " P 0013140 o k e S e q S h o r t - a d 0013160 d r e s s : " , a d d r e s 0013200 s ] ; \r \t \t D i s p l a y [ " \t 0013220 c o u n t : " , L E N G T H 0013240 [ v a l u e S e q ^ ] ] ; \r \t \t 0013260 F O R i : C A R D I N A L 0013300 I N [ 0 . . L E N G T H [ v a 0013320 l u e S e q ^ ] ) D O \r \t \t \t 0013340 D i s p l a y [ " \t " , v a l 0013360 u e S e q [ i ] ] ; \r \t \t \t P o 0013400 k e O p C o d e [ b H , ( a d 0013420 d r e s s + i ) , v a l u e S 0013440 e q [ i ] ] ; \r \t \t \t E N D L O 0013460 O P ; \r \t \t } ; \r \t \r \t D o C m 0013500 d s : P U B L I C P R O C 0013520 [ b H : B i n d H a n d l e 0013540 , c m d S e q : L O N G P 0013560 O I N T E R T O R a p u n z 0013600 e l . S e q C m d ] \r \t \t \t R 0013620 E T U R N S [ r e s u l t S 0013640 e q : L O N G P O I N T E R 0013660 T O R a p u n z e l . S e q 0013700 R e s u l t ] = { \r \t \t C 0013720 h u n k : T Y P E = R E C 0013740 O R D [ S E Q U E N C E C O 0013760 M P U T E D R a p u n z e l . 0014000 S e q R e s u l t I n d e x O 0014020 F R a p u n z e l . R e s u l 0014040 t ] ; \r \t \t z o n e : U N C O 0014060 U N T E D Z O N E = H e a 0014100 p . s y s t e m Z o n e ; \r \t \t 0014120 c h u n k : L O N G P O I N 0014140 T E R ; \r \t \t r e s L e n g t h 0014160 : C A R D I N A L ; \r \t \t r e 0014200 s I n d e x : C A R D I N A L 0014220 _ 0 ; \r \t \t c m d I n d e x 0014240 : C A R D I N A L _ 0 ; \r 0014260 \t \t B E G I N \r \t \t \t t h i s : 0014300 R a p u n z e l . C m d = 0014320 c m d S e q [ 0 ] ; \r \t \t \t W I 0014340 T H t h i s : t h i s S E 0014360 L E C T F R O M \r \t \t \t \t - - 0014400 r e t u r n L e n g t h = > 0014420 r e s L e n g t h _ t h i 0014440 s . r e t u r n L e n g t h . r 0014460 e t u r n L e n g t h * S I 0014500 Z E [ R a p u n z e l . R e s u 0014520 l t ] ; \r \t \t \t \t r e t u r n L 0014540 e n g t h = > r e s L e n g 0014560 t h _ t h i s . r e t u r n 0014600 L e n g t h . r e t u r n L e n 0014620 g t h ; \r \t \t \t \t E N D C A S E 0014640 = > r e s L e n g t h _ 0014660 c m d S e q ^ . L E N G T H ; \r 0014700 \t \t \t E N D ; \r \t \t \r \t \t c h u 0014720 n k _ z o n e . N E W [ C 0014740 h u n k [ r e s L e n g t h ] ] 0014760 ; \r \t \t r e s u l t S e q _ 0015000 z o n e . N E W [ R a p u n z 0015020 e l . S e q R e s u l t _ D 0015040 E S C R I P T O R [ c h u n k , 0015060 r e s L e n g t h ] ] ; \r \t \t 0015100 \r \t \t D i s p l a y [ " D o C m 0015120 d s - - c o u n t : " , 0015140 c m d S e q ^ . L E N G T H ] ; 0015160 \r \t \t W H I L E ( c m d I n 0015200 d e x < c m d S e q ^ . L E 0015220 N G T H ) D O \r \t \t \t t h i 0015240 s : R a p u n z e l . C m d 0015260 = c m d S e q [ c m d I n d e 0015300 x ] ; \r \t \t \t c m d I n d e x 0015320 _ c m d I n d e x + 1 ; \r 0015340 \t \t \t W I T H t h i s : t h 0015360 i s S E L E C T F R O M \r \t 0015400 \t \t \t p e e k S h o r t = > 0015420 { \r \t \t \t \t \t a d d r e s s : 0015440 R a p u n z e l . A d d r e s s 0015460 = t h i s . p e e k S h o r 0015500 t . a d d r e s s ; \r \t \t \t \t \t 0015520 r e s : R a p u n z e l . P e 0015540 e k S h o r t R e s u l t 254 0015560 N U L L ; \r \t \t \t \t \t r e s _ 0015600 [ P e e k O p C o d e [ b H , 0015620 a d d r e s s ] ] ; \r \t \t \t \t 0015640 \t I F ( d e b u g g i n g 0015660 ) T H E N { \r \t \t \t \t \t \t D 0015700 i s p l a y [ " \t a d d r e s s 0015720 : " , a d d r e s s ] ; \r \t 0015740 \t \t \t \t \t D i s p l a y [ " \t p 0015760 e e k S h o r t : " , r e s 0016000 ] ; \r \t \t \t \t \t \t } ; \r \t \t \t \t 0016020 \t r e s u l t S e q [ r e s I n 0016040 d e x ] _ [ p e e k S h o r 0016060 t [ r e s ] ] ; \r \t \t \t \t \t r e 0016100 s I n d e x _ r e s I n d e 0016120 x + 1 ; \r \t \t \t \t \t } ; \r \t 0016140 \t \t \t p o k e S h o r t = > 0016160 { \r \t \t \t \t \t a d d r e s s : 0016200 R a p u n z e l . A d d r e s s 0016220 = t h i s . p o k e S h o r 0016240 t . a d d r e s s ; \r \t \t \t \t \t 0016260 - - r e s : R a p u n z e l 0016300 . P o k e S h o r t R e s u l t 0016320 254 N U L L ; \r \t \t \t \t \t I F 0016340 ( d e b u g g i n g ) T 0016360 H E N { \r \t \t \t \t \t \t D i s p 0016400 l a y [ " \t a d d r e s s : " 0016420 , a d d r e s s ] ; \r \t \t \t \t 0016440 \t \t D i s p l a y [ " \t p o k e 0016460 S h o r t : " , t h i s . p 0016500 o k e S h o r t . v a l u e ] ; 0016520 \r \t \t \t \t \t \t } ; \r \t \t \t \t \t P 0016540 o k e O p C o d e [ b H , a d 0016560 d r e s s , t h i s . p o k e 0016600 S h o r t . v a l u e ] ; \r \t \t 0016620 \t \t \t r e s u l t S e q [ r e s 0016640 I n d e x ] _ [ p o k e S h 0016660 o r t [ N U L L ] ] ; \r \t \t \t \t 0016700 \t r e s I n d e x _ r e s I 0016720 n d e x + 1 ; \r \t \t \t \t \t } 0016740 ; \r \t \t \t \t p o k e L o n g = 0016760 > { \r \t \t \t \t \t a d d r e s s 0017000 : R a p u n z e l . A d d r e 0017020 s s = t h i s . p o k e L o 0017040 n g . a d d r e s s ; \r \t \t \t \t 0017060 \t - - r e s : R a p u n z e 0017100 l . P o k e S h o r t R e s u l 0017120 t 254 N U L L ; \r \t \t \t \t \t I 0017140 F ( d e b u g g i n g ) 0017160 T H E N { \r \t \t \t \t \t \t D i s 0017200 p l a y [ " \t a d d r e s s : 0017220 " , a d d r e s s ] ; \r \t \t \t 0017240 \t \t \t D i s p l a y [ " \t p o k 0017260 e S h o r t : " , t h i s . 0017300 p o k e L o n g . v a l u e ] ; 0017320 \r \t \t \t \t \t \t } ; \r \t \t \t \t \t P 0017340 o k e O p C o d e [ b H , a d 0017360 d r e s s , I n l i n e . H i 0017400 g h H a l f [ t h i s . p o k e 0017420 L o n g . v a l u e ] ] ; \r \t \t 0017440 \t \t \t P o k e O p C o d e [ b H 0017460 , a d d r e s s + 1 , I n l 0017500 i n e . L o w H a l f [ t h i s 0017520 . p o k e L o n g . v a l u e ] 0017540 ] ; \r \t \t \t \t \t r e s u l t S e 0017560 q [ r e s I n d e x ] _ [ p 0017600 o k e L o n g [ N U L L ] ] ; \r 0017620 \t \t \t \t \t r e s I n d e x _ 0017640 r e s I n d e x + 1 ; \r \t \t 0017660 \t \t \t } ; \r \t \t \t \t s h f t R e 0017700 a d = > { \r \t \t \t \t \t a d d 0017720 r e s s : R a p u n z e l . A 0017740 d d r e s s = t h i s . s h 0017760 f t R e a d . a d d r e s s ; \r 0020000 \t \t \t \t \t n u m R e p e a t s : 0020020 R a p u n z e l . S h o r t 0020040 = t h i s . s h f t R e a d . 0020060 n u m R e p e a t s ; \r \t \t \t \t 0020100 \t r e s : R a p u n z e l . S 0020120 h f t R e a d R e s u l t = 0020140 [ n u m R e p e a t s ] ; \r \t \t 0020160 \t \t \t I F ( d e b u g g i n 0020200 g ) T H E N { \r \t \t \t \t \t 0020220 \t D i s p l a y [ " \t a d d r e 0020240 s s : " , a d d r e s s ] ; 0020260 \r \t \t \t \t \t \t D i s p l a y [ " 0020300 \t s h i f t R e a d - n u m 0020320 R e p e a t s : " , n u m R 0020340 e p e a t s ] ; \r \t \t \t \t \t \t } 0020360 ; \r \t \t \t \t \t r e s u l t S e q 0020400 [ r e s I n d e x ] _ [ s h 0020420 f t R e a d [ r e s ] ] ; \r \t \t 0020440 \t \t \t r e s I n d e x _ r e 0020460 s I n d e x + 1 ; \r \t \t \t \t 0020500 \t F O R j : C A R D I N A L 0020520 I N [ 0 . . n u m R e p e a 0020540 t s ) D O \r \t \t \t \t \t \t r e s 0020560 : R a p u n z e l . P e e k S 0020600 h o r t R e s u l t 254 N U L 0020620 L ; \r \t \t \t \t \t \t [ ] _ P e 0020640 e k O p C o d e [ b H , s h f 0020660 t A A d d r ] ; \r \t \t \t \t \t \t [ 0020700 ] _ P e e k O p C o d e [ b 0020720 H , s h f t B A d d r ] ; \r \t 0020740 \t \t \t \t \t r e s _ [ P e e k 0020760 O p C o d e [ b H , a d d r e 0021000 s s ] ] ; \r \t \t \t \t \t \t r e s u 0021020 l t S e q [ r e s I n d e x ] 0021040 _ [ p e e k S h o r t [ r e s 0021060 ] ] ; \r \t \t \t \t \t \t r e s I n d 0021100 e x _ r e s I n d e x + 0021120 1 ; \r \t \t \t \t \t \t E N D L O O P 0021140 ; \r \t \t \t \t \t } ; \r \t \t \t \t s h 0021160 f t W r i t e = > { \r \t \t \t 0021200 \t \t a d d r e s s : R a p u n 0021220 z e l . A d d r e s s = t h 0021240 i s . s h f t W r i t e . a d d 0021260 r e s s ; \r \t \t \t \t \t n u m R e 0021300 p e a t s : R a p u n z e l . 0021320 S h o r t = t h i s . s h f 0021340 t W r i t e . n u m R e p e a t 0021360 s ; \r \t \t \t \t \t r e s : R a p 0021400 u n z e l . S h f t W r i t e R 0021420 e s u l t = [ n u m R e p e 0021440 a t s ] ; \r \t \t \t \t \t I F ( 0021460 d e b u g g i n g ) T H E N 0021500 { \r \t \t \t \t \t \t D i s p l a y 0021520 [ " \t a d d r e s s : " , a 0021540 d d r e s s ] ; \r \t \t \t \t \t \t D 0021560 i s p l a y [ " \t s h i f t W r 0021600 i t e - n u m R e p e a t s 0021620 : " , n u m R e p e a t s ] 0021640 ; \r \t \t \t \t \t \t } ; \r \t \t \t \t \t 0021660 r e s u l t S e q [ r e s I n d 0021700 e x ] _ [ s h f t W r i t e 0021720 [ r e s ] ] ; \r \t \t \t \t \t r e s 0021740 I n d e x _ r e s I n d e x 0021760 + 1 ; \r \t \t \t \t \t F O R j 0022000 : C A R D I N A L I N [ 0 0022020 . . n u m R e p e a t s ) D O 0022040 \r \t \t \t \t \t \t w r i t e V a l : 0022060 R a p u n z e l . C m d = 0022100 c m d S e q [ c m d I n d e x ] 0022120 ; \r \t \t \t \t \t \t c m d I n d e x 0022140 _ c m d I n d e x + 1 ; 0022160 \r \t \t \t \t \t \t W I T H w r i t 0022200 e V a l : w r i t e V a l S 0022220 E L E C T F R O M \r \t \t \t \t \t 0022240 \t \t p o k e S h o r t = > { 0022260 \r \t \t \t \t \t \t \t \t P o k e O p C 0022300 o d e [ b H , a d d r e s s , 0022320 w r i t e V a l . p o k e S h 0022340 o r t . v a l u e ] ; \r \t \t \t \t 0022360 \t \t \t \t [ ] _ P e e k O p C 0022400 o d e [ b H , s h f t A A d d 0022420 r ] ; \r \t \t \t \t \t \t \t \t [ ] _ 0022440 P e e k O p C o d e [ b H , 0022460 s h f t B A d d r ] ; \r \t \t \t \t 0022500 \t \t \t \t } ; \r \t \t \t \t \t \t \t E N 0022520 D C A S E = > E R R O R F 0022540 a u l t [ b H , n o n e x i s 0022560 t e n t , 0 ] ; \r \t \t \t \t \t \t 0022600 E N D L O O P ; \r \t \t \t \t \t } ; 0022620 \r \t \t \t \t r e t u r n L e n g t 0022640 h = > N U L L ; \r \t \t \t \t E 0022660 N D C A S E = > E R R O R 0022700 F a u l t [ b H , n o n e x i 0022720 s t e n t , 0 ] ; \r \t \t \t E N 0022740 D L O O P ; \r \t \t } ; \r \t \t \r \t 0022760 W r i t e S e q u e n t i a l : 0023000 P U B L I C P R O C [ b 0023020 H : B i n d H a n d l e , s 0023040 t a r t i n g A d d r e s s : 0023060 A d d r e s s , c o u n t : 0023100 C A R D I N A L , s e q : L 0023120 O N G P O I N T E R T O R 0023140 a p u n z e l . S e q L o n g 0023160 ] = { \r \t \t F O R i : C 0023200 A R D I N A L I N [ 0 . . c 0023220 o u n t ) D O \r \t \t \t a d d r 0023240 e s s : R a p u n z e l . A d 0023260 d r e s s = s t a r t i n g 0023300 A d d r e s s + 2 * i ; \r \t 0023320 \t \t v a l u e : L o n g = 0023340 s e q [ i ] ; \r \t \t \t P o k e O 0023360 p C o d e [ b H , a d d r e s 0023400 s , I n l i n e . H i g h H a 0023420 l f [ v a l u e ] ] ; \r \t \t \t P 0023440 o k e O p C o d e [ b H , a d 0023460 d r e s s + 1 , I n l i n e . 0023500 L o w H a l f [ v a l u e ] ] ; 0023520 \r \t \t \t E N D L O O P ; \r \t \t } 0023540 ; \r \t \t \r \t F r e e P e e k S e 0023560 q S h o r t R e s u l t s : P 0023600 U B L I C P R O C [ b H : 0023620 B i n d H a n d l e , r e s 0023640 u l t S e q : L O N G P O I 0023660 N T E R T O S e q S h o r t 0023700 ] = { \r \t \t z o n e : U 0023720 N C O U N T E D Z O N E = 0023740 H e a p . s y s t e m Z o n e ; 0023760 \r \t \t z o n e . F R E E [ @ ( 0024000 r e s u l t S e q ^ . B A S E ) 0024020 ] ; \r \t \t z o n e . F R E E [ 0024040 @ ( r e s u l t S e q ) ] ; \r \t 0024060 \t } ; \r \t \t \r \t F r e e P e e k 0024100 S e q L o n g R e s u l t s : 0024120 P U B L I C P R O C [ b H 0024140 : B i n d H a n d l e , r e 0024160 s u l t S e q : L O N G P O 0024200 I N T E R T O S e q L o n g 0024220 ] = { \r \t \t z o n e : U 0024240 N C O U N T E D Z O N E = 0024260 H e a p . s y s t e m Z o n e ; 0024300 \r \t \t z o n e . F R E E [ @ ( 0024320 r e s u l t S e q ^ . B A S E ) 0024340 ] ; \r \t \t z o n e . F R E E [ 0024360 @ ( r e s u l t S e q ) ] ; \r \t 0024400 \t } ; \r \t \t \r \t F r e e D o C m 0024420 d s R e s u l t s : P U B L I 0024440 C P R O C [ b H : B i n 0024460 d H a n d l e , r e s u l t S 0024500 e q : L O N G P O I N T E R 0024520 T O S e q R e s u l t ] 0024540 = { \r \t \t z o n e : U N C O 0024560 U N T E D Z O N E = H e a 0024600 p . s y s t e m Z o n e ; \r \t \t 0024620 z o n e . F R E E [ @ ( r e s 0024640 u l t S e q ^ . B A S E ) ] ; \r 0024660 \t \t z o n e . F R E E [ @ ( r 0024700 e s u l t S e q ) ] ; \r \t \t } ; 0024720 \r \t \r \t I n i t : P R O C = 0024740 { \r \t \t t r a s h : S y s t 0024760 e m . N e t w o r k A d d r e s 0025000 s _ T R A S H ; \r \t \t m e m 0025020 _ A L L [ 0 ] ; \r \t \t n i l 0025040 H a n d l e _ R a p u n z e 0025060 l . R e m o t e B i n d [ t r a 0025100 s h , N I L ] ; \r \t \t I F ( 0025120 n i l H a n d l e # N I L 0025140 ) T H E N E R R O R ; \r \t 0025160 \t } ; \r \t \t \r \t S h u t d o w n 0025200 : P R O C = { \r \t \t n i l 0025220 H a n d l e _ R a p u n z e 0025240 l . R e m o t e U n b i n d [ n 0025260 i l H a n d l e ] ; \r \t \t I F 0025300 ( n i l H a n d l e # N I 0025320 L ) T H E N E R R O R ; \r 0025340 \t \t } ; \r \t \r \t I n i t [ ] ; \r 0025360 \t } . \r \t 0025365