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