$ od -c -N 50000 [Pixel]<DragonWare0.1>XDE>Rapunzel>Rapunzel.courier!9 0000000 - - R a p u n z e l 4 . c r \r 0000020 \t - - C o p y r i g h t 323 0000040 1 9 8 6 , 1 9 8 7 b y X e 0000060 r o x C o r p o r a t i o n . 0000100 A l l r i g h t s r e s 0000120 e r v e d . \r \t - - D e m e r 0000140 s , S e p t e m b e r 1 8 , 0000160 1 9 8 6 5 : 3 9 : 5 3 p m 0000200 P D T \r \t - - W i l l i e - 0000220 S u e , A p r i l 9 , 1 9 0000240 8 7 4 : 5 7 : 5 9 p m P D 0000260 T \r \r R a p u n z e l : P R O 0000300 G R A M 2 2 0 0 V E R S I O 0000320 N 4 \r \t = B E G I N \r \t - - 0000340 I n t r o d u c t i o n \r \t \t 0000360 - - T h i s p a c k a g e 0000400 p r o v i d e s g e n e r i c 0000420 r e m o t e p e e k a n d 0000440 p o k e o p e r a t i o n s 0000460 f o r 1 6 - b i t a n d 0000500 3 2 - b i t e n t i t i e s . 0000520 \r \t \t - - I t a l s o p r 0000540 o v i d e s s p e c i a l i z 0000560 e d o p e r a t i o n s t h 0000600 a t a r e u s e f u l t o 0000620 t h e S o f t c a r d \r \t 0000640 \t - - W o r d O r d e r : 0000660 F o r e i t h e r S h o r t 0000700 ( n = 1 6 ) o r L o n 0000720 g ( n = 3 2 ) , a n n 0000740 - b i t n u m b e r o n t 0000760 h e s o u r c e m a c h i n 0001000 e i s m a p p e d t o ( 0001020 t h e s a m e ) n - b i t 0001040 n u m b e r i n s t a n d a 0001060 r d r e p r e s e n t a t i o 0001100 n o n t h e w i r e , w 0001120 h i c h i s m a p p e d t 0001140 o ( t h e s a m e ) n - b 0001160 i t n u m b e r o n t h e 0001200 t a r g e t m a c h i n e . 0001220 \r \t - - T y p e s \r \t \t S h o 0001240 r t : T Y P E = C A R D I 0001260 N A L ; \r \t \t L o n g : T Y P 0001300 E = L O N G C A R D I N A 0001320 L ; \r \t \t \r \t \t S e q S h o r t 0001340 : T Y P E = S E Q U E N C 0001360 E O F S h o r t ; \r \t \t S e 0001400 q L o n g : T Y P E = S E 0001420 Q U E N C E O F L o n g ; \r 0001440 \t \t \r \t \t A d d r e s s : T Y 0001460 P E = L O N G C A R D I N 0001500 A L ; \r \t \t \r \t \t P e e k S h o 0001520 r t C m d : T Y P E = R E 0001540 C O R D [ a d d r e s s : A 0001560 d d r e s s ] ; \r \t \t P o k e S 0001600 h o r t C m d : T Y P E = 0001620 R E C O R D [ a d d r e s s : 0001640 A d d r e s s , v a l u e : 0001660 S h o r t ] ; \r \t \t P o k e L 0001700 o n g C m d : T Y P E = R 0001720 E C O R D [ a d d r e s s : 0001740 A d d r e s s , v a l u e : 0001760 L o n g ] ; \r \t \t S h f t R e a 0002000 d C m d : T Y P E = R E C 0002020 O R D [ a d d r e s s : A d 0002040 d r e s s , n u m R e p e a t 0002060 s : S h o r t ] ; \r \t \t S h f 0002100 t W r i t e C m d : T Y P E 0002120 = R E C O R D [ a d d r e s 0002140 s : A d d r e s s , n u m R 0002160 e p e a t s : S h o r t ] ; \r 0002200 \t \t R e t u r n L e n g t h C m 0002220 d : T Y P E = R E C O R D 0002240 [ r e t u r n L e n g t h : 0002260 S h o r t ] ; \t - - i g n o r 0002300 e d i f n o t t h e f i 0002320 r s t C m d \r \t \t \r \t \t O p C 0002340 o d e : T Y P E = { \r \t \t 0002360 \t p e e k S h o r t ( 0 ) , p 0002400 o k e S h o r t ( 1 ) , p o k 0002420 e L o n g ( 2 ) , \r \t \t \t s h f 0002440 t R e a d ( 3 ) , s h f t W r 0002460 i t e ( 4 ) , \r \t \t \t r e t u r 0002500 n L e n g t h ( 5 ) \r \t \t \t } ; 0002520 \r \t \t \r \t \t C m d : T Y P E 0002540 = C H O I C E O p C o d e 0002560 O F { \r \t \t \t p e e k S h o r 0002600 t = > P e e k S h o r t C m 0002620 d , \r \t \t \t p o k e S h o r t 0002640 = > P o k e S h o r t C m d , 0002660 \r \t \t \t p o k e L o n g = > 0002700 P o k e L o n g C m d , \r \t \t \t 0002720 s h f t R e a d = > S h f t 0002740 R e a d C m d , \r \t \t \t s h f t 0002760 W r i t e = > S h f t W r i 0003000 t e C m d , \r \t \t \t r e t u r n 0003020 L e n g t h = > R e t u r n 0003040 L e n g t h C m d \r \t \t \t } ; \r 0003060 \t \t S e q C m d : T Y P E = 0003100 S E Q U E N C E O F C m d 0003120 ; \r \t \t \r \t \t P e e k S h o r t 0003140 R e s u l t : T Y P E = R 0003160 E C O R D [ v a l u e : S h 0003200 o r t ] ; \r \t \t P o k e S h o r 0003220 t R e s u l t : T Y P E = 0003240 R E C O R D [ ] ; \r \t \t P o k 0003260 e L o n g R e s u l t : T Y P 0003300 E = R E C O R D [ ] ; \r \t 0003320 \t S h f t R e a d R e s u l t : 0003340 T Y P E = R E C O R D [ 0003360 n u m R e p e a t s : S h o r 0003400 t ] ; \r \t \t S h f t W r i t e R 0003420 e s u l t : T Y P E = R E 0003440 C O R D [ n u m R e p e a t s 0003460 : S h o r t ] ; \r \t \t R e t u 0003500 r n L e n g t h R e s u l t : 0003520 T Y P E = R E C O R D [ ] 0003540 ; \t - - a c t u a l l y n o 0003560 t h i n g r e t u r n e d \r \t 0003600 \t \r \t \t R e s u l t : T Y P E 0003620 = C H O I C E O p C o d e 0003640 O F { \r \t \t \t p e e k S h o 0003660 r t = > P e e k S h o r t R 0003700 e s u l t , \r \t \t \t p o k e S h 0003720 o r t = > P o k e S h o r t 0003740 R e s u l t , \r \t \t \t p o k e L 0003760 o n g = > P o k e L o n g R 0004000 e s u l t , \r \t \t \t s h f t R e 0004020 a d = > S h f t R e a d R e 0004040 s u l t , \r \t \t \t s h f t W r i 0004060 t e = > S h f t W r i t e R 0004100 e s u l t , \r \t \t \t r e t u r n 0004120 L e n g t h = > R e t u r n 0004140 L e n g t h R e s u l t \r \t \t \t 0004160 } ; \r \t \t S e q R e s u l t : 0004200 T Y P E = S E Q U E N C E 0004220 O F R e s u l t ; \r \t - - E 0004240 r r o r s \r \t \t F a u l t : E 0004260 R R O R [ c o d e : F a u l 0004300 t C o d e , a d d r e s s : 0004320 A d d r e s s ] = 0 ; \r \t \t 0004340 F a u l t C o d e : T Y P E 0004360 = { \r \t \t \t n o n e x i s t e 0004400 n t ( 1 ) , \t - - t h e r e 0004420 f e r e n c e d m e m o r y 0004440 l o c a t i o n d o e s n o 0004460 t e x i s t \r \t \t \t p r o t e 0004500 c t i o n ( 2 ) , \t - - a c c 0004520 e s s d e n i e d ( c a n ' 0004540 t h a p p e n w i t h S o 0004560 f t c a r d ? ) \r \t \t \t a l i g 0004600 n m e n t S h o r t ( 3 ) , \t - 0004620 - a l i g n m e n t e r r o 0004640 r f o r S h o r t ( c a n 0004660 ' t h a p p e n w i t h 6 0004700 0 8 5 ) \r \t \t \t a l i g n m e n 0004720 t L o n g ( 4 ) \t - - a l i g 0004740 n m e n t e r r o r f o r 0004760 L o n g \r \t \t \t } ; \r \t \t \r \t - 0005000 - P r o c e d u r e s \r \t \t - 0005020 - P r o c e d u r e 0 i s 0005040 r e s e r v e d f o r a d 0005060 d r e s s l o o k u p - n 0005100 o t u s e d a t t h e m 0005120 o m e n t \r \t \t \r \t \t P e e k S 0005140 h o r t : P R O C E D U R E 0005160 [ a d d r e s s : A d d r e s 0005200 s ] \r \t \t \t R E T U R N S [ r 0005220 e s u l t : S h o r t ] \r \t \t 0005240 \t R E P O R T S [ F a u l t ] 0005260 \r \t \t \t = 1 ; \r \t \t \t \r \t \t P 0005300 o k e S h o r t : P R O C E D 0005320 U R E [ a d d r e s s : A d 0005340 d r e s s , v a l u e : S h 0005360 o r t ] \r \t \t \t R E P O R T S 0005400 [ F a u l t ] \r \t \t \t = 3 ; \r 0005420 \t \t \r \t \t P e e k S e q S h o r 0005440 t : P R O C E D U R E [ a d 0005460 d r e s s : A d d r e s s , 0005500 c o u n t : C A R D I N A L ] 0005520 \r \t \t \t R E T U R N S [ r e s 0005540 u l t S e q : S e q S h o r t 0005560 ] \r \t \t \t R E P O R T S [ F a 0005600 u l t ] \r \t \t \t = 4 ; \r \t \t \t 0005620 \r \t \t P e e k S e q L o n g : 0005640 P R O C E D U R E [ a d d r e 0005660 s s : A d d r e s s , c o u 0005700 n t : C A R D I N A L ] \r \t \t 0005720 \t R E T U R N S [ r e s u l t 0005740 S e q : S e q L o n g ] \r \t \t 0005760 \t R E P O R T S [ F a u l t ] 0006000 \r \t \t \t = 5 ; \r \t \t \t \r \t \t P 0006020 o k e S e q S h o r t : P R O 0006040 C E D U R E [ a d d r e s s : 0006060 A d d r e s s , v a l u e S 0006100 e q : S e q S h o r t ] \r \t \t 0006120 \t R E P O R T S [ F a u l t ] 0006140 \r \t \t \t = 6 ; \r \t \t \r \t \t P e 0006160 e k L o n g : P R O C E D U R 0006200 E [ a d d r e s s : A d d r 0006220 e s s ] \r \t \t \t R E T U R N S 0006240 [ r e s u l t : L o n g ] \r \t 0006260 \t \t R E P O R T S [ F a u l t 0006300 ] \r \t \t \t = 7 ; \r \t \t \t \r \t \t 0006320 P o k e L o n g : P R O C E D 0006340 U R E [ a d d r e s s : A d 0006360 d r e s s , v a l u e : L o 0006400 n g ] \r \t \t \t R E P O R T S [ 0006420 F a u l t ] \r \t \t \t = 8 ; \r \t 0006440 \t \t \r \t \t D o C m d s : P R O 0006460 C E D U R E [ c m d S e q : 0006500 S e q C m d ] \r \t \t \t R E T U R 0006520 N S [ r e s u l t S e q : S 0006540 e q R e s u l t ] \r \t \t \t R E P 0006560 O R T S [ F a u l t ] \r \t \t \t 0006600 = 9 ; \r \t \t \t \t \r \t \t S e t S 0006620 h f t A d d r s : P R O C E D 0006640 U R E [ s h f t A , s h f t B 0006660 : A d d r e s s ] \r \t \t \t R E 0006700 P O R T S [ F a u l t ] \r \t \t 0006720 \t = 1 0 ; \r \t \t \t \r \t \t W r i 0006740 t e S e q u e n t i a l : P R 0006760 O C E D U R E [ s t a r t i n g 0007000 A d d r e s s : A d d r e s s 0007020 , c o u n t : C A R D I N A 0007040 L , s e q : S e q L o n g ] 0007060 \r \t \t \t R E P O R T S [ F a u 0007100 l t ] \r \t \t \t = 1 1 ; \r \t \t \r 0007120 \t E N D . \r \r \r 0007130