$ 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